.bos-is-grid{display:flex;flex-wrap:wrap;gap:14px;}
.bos-is-col-100{flex:0 0 100%}
.bos-is-col-50{flex:0 0 calc(50% - 7px)}
.bos-is-col-33{flex:0 0 calc(33.333% - 10px)}
.bos-is-col-25{flex:0 0 calc(25% - 11px)}
.bos-is-row-break{flex:0 0 100%;height:0;margin:0;padding:0;}
.bos-is-field label{display:block;font-weight:600;margin-bottom:6px;}
.bos-is-field input,.bos-is-field select,.bos-is-field textarea{width:100%;max-width:100%;box-sizing:border-box;}
.bos-is-field input[type="text"],.bos-is-field input[type="email"],.bos-is-field input[type="tel"],.bos-is-field select{height:42px;line-height:42px;padding:0 12px;}
.bos-is-field textarea{padding:10px 12px;line-height:1.35;}
.bos-is-status{padding:10px 12px;border-radius:8px;margin:10px 0;}
.bos-is-ok{background:#e7f7ed;border:1px solid #b7e3c6;}
.bos-is-fail{background:#fdecec;border:1px solid #f3b8b8;}
.bos-is-errors{margin:8px 0 0 18px;}
.bos-is-hidden{display:none !important;}
.bos-is-card{border:1px solid #e2e4e7;border-radius:14px;padding:14px 14px 6px 14px;background:transparent;}
.bos-is-card h3{margin:2px 0 10px 0;}
.bos-is-card .bos-is-card-desc{margin:0 0 10px 0;font-size:0.95em;opacity:0.85;}
.bos-is-pages{width:100%;}
.bos-is-page{display:none;}
.bos-is-page.is-active{display:block;animation:bos-is-fade .18s ease-out;}
@keyframes bos-is-fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.bos-is-nav{display:flex;gap:10px;margin-top:14px;align-items:center;}
.bos-is-nav .bos-is-spacer{flex:1;}
.bos-is-progress{font-size:12px;color:#646970;}
.bos-is-gdpr{font-weight:400;display:flex;gap:8px;align-items:center;}
.bos-is-gdpr input{margin-top:0;}
.bos-is-checkbox{font-weight:400 !important;display:flex !important;gap:10px;align-items:flex-start;margin:0;cursor:pointer;}
.bos-is-checkbox input{width:auto;max-width:none;margin:0 10px 0 0 !important;flex:0 0 auto;transform:translateY(2px);}
.bos-is-checkbox span{line-height:1.35;font-weight:400 !important;}
.bos-is-multiselect{display:flex;flex-direction:column;gap:8px;margin-top:2px;}
#bos-submit:disabled,.bos-is-nav button:disabled,.bos-is-nav input[type="submit"]:disabled,.bos-is-nav .bos-is-disabled{opacity:.6;cursor:not-allowed;}
@media (max-width:720px){
.bos-is-col-50,.bos-is-col-33,.bos-is-col-25{flex:0 0 100%}
}
#bos-is-summary{margin-top:6px;}
.bos-is-summary-list{display:flex;flex-direction:column;gap:10px;margin-top:6px;}
.bos-is-summary-row{display:grid;grid-template-columns:minmax(140px,260px) 1fr;column-gap:16px;row-gap:6px;align-items:start;}
.bos-is-summary-key{font-weight:600;font-size:14px;line-height:1.35;}
.bos-is-summary-val{font-size:14px;line-height:1.35;white-space:pre-wrap;word-break:break-word;}
.bos-is-summary-hint{margin-top:12px;opacity:.75;font-size:13px;}
.bos-is-summary-empty{opacity:.75;font-size:14px;}
.bos-is-summary-gdpr{margin-top:14px;padding-top:12px;border-top:1px solid rgba(0,0,0,0.08);display:flex;gap:8px;align-items:center;font-size:14px;line-height:1.35;}
.bos-is-summary-gdpr input{margin-top:0;}
.bos-is-summary-gdpr a{margin-left:6px;font-weight:600;text-decoration:underline;}
.bos-is-summary-gdpr a:hover{text-decoration-thickness:2px;}
.bos-is-summary-consent-label{display:flex;gap:8px;align-items:center;}
.bos-is-summary-consent-label input{margin-top:0;}
.bos-is-summary-consent-text a{text-decoration:underline;}
.bos-is-summary-consent-text a:hover{text-decoration-thickness:2px;}
.bos-is-debug{margin:16px 0;padding:10px;border:1px solid #ddd;border-radius:10px;background:transparent;}
.bos-is-debug summary{cursor:pointer;}
.bos-is-debug-grid{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px;}
@media (min-width:900px){
.bos-is-debug-grid{grid-template-columns:1fr 1fr;}
}
.bos-is-debug-label{font-weight:600;margin-bottom:6px;}
.bos-is-debug textarea{width:100%;box-sizing:border-box;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;}
.bos-is-debug-hint{opacity:.8;margin-top:8px;}
.bos-is-crop-open{overflow:hidden;}
.bos-is-crop-modal{position:fixed;inset:0;z-index:99999;}
.bos-is-crop-modal.bos-is-hidden{display:none;}
.bos-is-crop-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.55);}
.bos-is-crop-card{position:relative;max-width:920px;width:92vw;max-height:90vh;margin:5vh auto;background:#fff;border-radius:16px;display:flex;flex-direction:column;overflow:hidden;}
.bos-is-crop-head{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid rgba(0,0,0,.08);}
.bos-is-crop-title{font-weight:700;}
.bos-is-crop-close{border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;}
.bos-is-crop-body{padding:10px;display:flex;justify-content:center;align-items:center;min-height:220px;}
.bos-is-crop-body img{max-width:100%;max-height:60vh;display:block;}
.bos-is-crop-foot{display:flex;gap:10px;justify-content:flex-end;padding:12px 14px;border-top:1px solid rgba(0,0,0,.08);}
/* =========================================================
   Foto-Crop: als Box + mittig
========================================================= */
.bos-is-crop-overlay{
position:fixed;
inset:0;
z-index:999999;
display:none;
align-items:center;
justify-content:center;
padding:24px;
background:rgba(0,0,0,.55);
}
.bos-is-crop-overlay[style*="display: flex"]{display:flex !important;}
.bos-is-crop-modal{
width:min(980px,calc(100vw - 48px));
max-height:calc(100vh - 48px);
background:#fff;
border-radius:14px;
box-shadow:0 16px 60px rgba(0,0,0,.25);
display:flex;
flex-direction:column;
overflow:hidden;
margin:auto;
}
.bos-is-crop-head{
padding:14px 18px;
border-bottom:1px solid #e5e7eb;
font-weight:700;
}
.bos-is-crop-body{
padding:16px 18px;
background:#fff;
flex:1;
display:flex;
align-items:center;
justify-content:center;
min-height:320px;
overflow:hidden;
}
.bos-is-crop-img{
max-width:100%;
max-height:calc(100vh - 220px);
display:block;
width:100%;
height:auto;
object-fit:contain;
}
/* =========================================================
   CropperJS Mobile-Fix: verhindert Überlauf des Crop-Rahmens
========================================================= */
.bos-is-crop-modal .cropper-container{width:100% !important;max-width:100% !important;}
.bos-is-crop-modal .cropper-wrap-box,
.bos-is-crop-modal .cropper-canvas,
.bos-is-crop-modal .cropper-drag-box{max-width:100% !important;overflow:hidden !important;}
.bos-is-crop-modal .cropper-canvas img{max-width:100% !important;height:auto !important;}
.bos-is-crop-modal .cropper-crop-box{max-width:100% !important;}
.bos-is-crop-foot{
padding:12px 18px;
border-top:1px solid #e5e7eb;
background:#fff;
display:flex;
justify-content:flex-end;
gap:10px;
}
.bos-is-crop-btn{
border:1px solid currentColor;
background:transparent;
color:inherit;
border-radius:10px;
padding:8px 14px;
cursor:pointer;
}
.bos-is-crop-btn.bos-is-crop-cancel{
background:transparent;
color:inherit;
border-color:currentColor;
}
.bos-is-crop-btn:disabled{
opacity:.45;
cursor:not-allowed;
}
/* =========================================================
   Foto-Vorschau im Formular
========================================================= */
.bos-is-photo-preview{
display:none;
margin-top:10px;
border:1px solid rgba(0,0,0,.12);
border-radius:12px;
background:transparent;
padding:10px;
max-width:200px;
}
.bos-is-photo-preview.has-image{
display:block;
padding:8px;
}
.bos-is-photo-preview-img{
display:block;
width:100%;
max-width:180px;
height:auto;
border-radius:10px;
margin:0 auto;
}
/* =========================================================
   Foto-Vorschau in der Zusammenfassung
========================================================= */
.bos-is-summary-value{justify-self:start;}
.bos-is-summary-value img{margin:0;}
.bos-is-summary-photo{
max-width:140px;
border-radius:10px;
display:block;
box-shadow:0 4px 12px rgba(0,0,0,.15);
}
/* =========================================================
   Dokumente: Liste der ausgewählten Dateien + Entfernen
========================================================= */
.bos-is-filelist{margin-top:8px;display:none;}
.bos-is-filelist.is-active{display:flex;flex-direction:column;gap:8px;}
.bos-is-fileitem{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:8px 10px;border:1px solid rgba(0,0,0,.10);border-radius:12px;background:transparent;}
.bos-is-filename{font-size:13px;line-height:1.35;word-break:break-word;}
.bos-is-file-remove{border:1px solid currentColor;background:transparent;border-radius:10px;padding:7px 10px;cursor:pointer;font-size:13px;line-height:1;white-space:nowrap;}
.bos-is-file-remove:hover{border-color:currentColor;}
@media (max-width:720px){
.bos-is-fileitem{align-items:flex-start;flex-direction:column;}
.bos-is-file-remove{align-self:flex-start;}
}
/* =========================================================
   Dokumente – Entfernen Button immer sichtbar
========================================================= */
.bos-is-file-remove{
opacity:1 !important;
visibility:visible !important;
transition:background .15s ease,border-color .15s ease;
}
.bos-is-fileitem:hover .bos-is-file-remove{
background:transparent;
border-color:currentColor;
}
/* =========================================================
   Zusammenfassung: Dokumente als Liste (Flucht wie "Herr")
========================================================= */
.bos-is-summary-docs{
margin:0;
padding:0;
list-style:none;
display:flex;
flex-direction:column;
gap:4px;
}
.bos-is-summary-docs li{margin:0;}
/* Fix: "Entfernen" Text in Dokument-Buttons immer sichtbar */
.bos-is-file-remove{
color:inherit !important;
-webkit-text-fill-color:inherit !important;
opacity:1 !important;
visibility:visible !important;
font-size:13px !important;
line-height:1.2 !important;
background:transparent !important;
}
.bos-is-fileitem:hover .bos-is-file-remove{
background:transparent !important;
border-color:currentColor !important;
}