:root{--red:#b10f1a;--red-dark:#780a12;--ink:#17202a;--muted:#64748b;--bg:#f4f6f8;--panel:#fff;--line:#d8dee6;--ok:#19713d;--warn:#9a6700;--danger:#a40e18;--shadow:0 8px 28px rgba(15,23,42,.08)}
*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.5}body{margin:0}a{color:var(--red-dark);text-decoration:none}a:hover{text-decoration:underline}.skip-link{position:absolute;left:-9999px;top:0}.skip-link:focus{left:1rem;top:1rem;background:#fff;padding:.7rem;z-index:1000}.site-header{background:#111827;color:#fff;border-bottom:4px solid var(--red)}.header-inner{max-width:1440px;margin:auto;min-height:76px;padding:0 1.25rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.brand{display:flex;align-items:center;gap:.8rem;color:#fff}.brand:hover{text-decoration:none}.brand-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:var(--red);font-weight:900}.brand span:last-child{display:flex;flex-direction:column}.brand small{color:#cbd5e1}.main-nav{display:flex;gap:.3rem;align-items:center}.main-nav a{color:#fff;padding:.6rem .8rem;border-radius:8px}.main-nav a:hover{background:#263244;text-decoration:none}.nav-toggle{display:none}.content{min-height:calc(100vh - 155px)}.public-content{max-width:1200px;margin:auto;padding:2rem 1.25rem}.backend-shell{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 76px)}.sidebar{background:#1f2937;color:#fff;padding:1rem;display:flex;flex-direction:column;gap:.3rem}.sidebar a{color:#e5e7eb;padding:.65rem .75rem;border-radius:8px}.sidebar a:hover{background:#374151;text-decoration:none}.user-card{padding:.8rem;margin-bottom:.6rem;background:#111827;border-radius:10px;display:flex;flex-direction:column}.user-card span{color:#cbd5e1;font-size:.85rem}.backend-content{padding:1.5rem;min-width:0}.site-footer{background:#111827;color:#d1d5db;padding:1rem 1.25rem;display:flex;justify-content:space-between;gap:1rem}.hero{background:linear-gradient(125deg,#1f2937,#111827 60%,#52070c);color:#fff;border-radius:18px;padding:3rem;margin-bottom:2rem;box-shadow:var(--shadow)}.hero h1{font-size:clamp(2rem,5vw,4rem);line-height:1.05;margin:0 0 1rem}.hero p{max-width:760px;font-size:1.15rem;color:#e5e7eb}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:1.2rem;box-shadow:var(--shadow)}.card h2,.card h3{margin-top:0}.card-link{display:block;color:inherit}.card-link:hover{text-decoration:none;border-color:#b8c1cc}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;margin:1rem 0}.stat{background:#fff;border:1px solid var(--line);border-left:5px solid var(--red);border-radius:12px;padding:1rem}.stat strong{display:block;font-size:2rem}.toolbar{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:space-between;margin:0 0 1rem}.toolbar-actions{display:flex;flex-wrap:wrap;gap:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;border:1px solid #b8c1cc;background:#fff;color:#1f2937;border-radius:8px;padding:.65rem .9rem;font:inherit;font-weight:650;cursor:pointer}.btn:hover{background:#f3f4f6;text-decoration:none}.btn-primary{background:var(--red);border-color:var(--red);color:#fff}.btn-primary:hover{background:var(--red-dark)}.btn-danger{background:#fff5f5;border-color:#e9a3a8;color:var(--danger)}.btn-success{background:#effaf3;border-color:#9bd2ae;color:var(--ok)}.btn-small{padding:.4rem .6rem;font-size:.9rem}.table-wrap{overflow:auto;background:#fff;border:1px solid var(--line);border-radius:12px}.table{width:100%;border-collapse:collapse;min-width:760px}.table th,.table td{text-align:left;padding:.75rem;border-bottom:1px solid var(--line);vertical-align:top}.table th{background:#f8fafc;font-size:.86rem;text-transform:uppercase;letter-spacing:.02em}.status{display:inline-block;border-radius:999px;padding:.25rem .55rem;font-size:.82rem;font-weight:750;background:#e5e7eb}.status-published,.status-approved{background:#daf2e2;color:#125b30}.status-submitted,.status-in_review,.status-scheduled{background:#fff1c7;color:#805400}.status-rejected,.status-trash{background:#fde1e3;color:#8c111a}.status-returned,.status-change_draft{background:#e2ebff;color:#244a91}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;background:#fff;border:1px solid var(--line);border-radius:14px;padding:1.3rem}.field{display:flex;flex-direction:column;gap:.35rem}.field-wide{grid-column:1/-1}.field label,.field legend{font-weight:700}.field input,.field textarea,.field select{width:100%;border:1px solid #aeb8c5;border-radius:8px;padding:.65rem .7rem;font:inherit;background:#fff}.field input:focus,.field textarea:focus,.field select:focus{outline:3px solid rgba(177,15,26,.18);border-color:var(--red)}.field small,.muted{color:var(--muted)}fieldset.field{border:1px solid var(--line);border-radius:10px;padding:1rem}.check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem}.check{display:flex;gap:.5rem;align-items:flex-start}.check input{width:auto}.form-actions{display:flex;gap:.6rem;align-items:center}.alert{padding:.85rem 1rem;border-radius:10px;margin-bottom:1rem;border:1px solid}.alert-success{background:#effaf3;border-color:#9bd2ae;color:#125b30}.alert-error{background:#fff1f2;border-color:#e9a3a8;color:#8c111a}.alert-warning{background:#fff8dd;border-color:#dec26c;color:#725300}.alert-info{background:#eff6ff;border-color:#9fc2ec;color:#174b7a}.detail-grid{display:grid;grid-template-columns:2fr 1fr;gap:1.2rem}.meta-list{display:grid;grid-template-columns:170px 1fr;gap:.6rem;margin:0}.meta-list dt{font-weight:750}.meta-list dd{margin:0}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.gallery figure{margin:0;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}.gallery figcaption{padding:.7rem}.login-box{max-width:460px;margin:4rem auto;background:#fff;border:1px solid var(--line);border-radius:16px;padding:1.5rem;box-shadow:var(--shadow)}.pagination{display:flex;gap:.4rem;margin-top:1rem}.pagination a,.pagination span{padding:.45rem .7rem;border:1px solid var(--line);background:#fff;border-radius:7px}.code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;background:#eef1f5;padding:.2rem .4rem;border-radius:5px}.kpi-list{display:grid;gap:.7rem}.kpi-row{display:flex;justify-content:space-between;gap:1rem;border-bottom:1px solid var(--line);padding-bottom:.5rem}.system-ok{color:var(--ok);font-weight:700}.system-warn{color:var(--warn);font-weight:700}.system-error{color:var(--danger);font-weight:700}.empty{padding:2rem;text-align:center;color:var(--muted)}.nowrap{white-space:nowrap}
@media(max-width:950px){.backend-shell{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(3,1fr)}.user-card{grid-column:1/-1}.grid,.stats{grid-template-columns:repeat(2,1fr)}.detail-grid{grid-template-columns:1fr}}
@media(max-width:700px){.nav-toggle{display:block;background:#263244;color:#fff;border:0;padding:.55rem .7rem;border-radius:7px}.main-nav{display:none;position:absolute;top:72px;left:0;right:0;background:#111827;padding:1rem;flex-direction:column;align-items:stretch;z-index:50}.main-nav.open{display:flex}.header-inner{position:relative}.grid,.stats,.form-grid,.gallery{grid-template-columns:1fr}.field-wide{grid-column:auto}.sidebar{grid-template-columns:repeat(2,1fr)}.hero{padding:2rem 1.3rem}.site-footer{flex-direction:column}.meta-list{grid-template-columns:1fr}.meta-list dd{margin-bottom:.5rem}}

@media print{
  :root{--bg:#fff;--panel:#fff;--ink:#000;--muted:#333;--line:#bbb;--shadow:none}
  body{background:#fff;color:#000;font-size:11pt}
  .site-header,.site-footer,.sidebar,.no-print,.alert,.pagination{display:none!important}
  .content,.public-content,.backend-content,.backend-shell{display:block;max-width:none;min-height:0;margin:0;padding:0}
  .card,.table-wrap,.gallery figure{box-shadow:none;border-color:#aaa;break-inside:avoid}
  .detail-grid{grid-template-columns:2fr 1fr;gap:10mm}
  .gallery{grid-template-columns:repeat(2,1fr)}
  a{color:#000;text-decoration:none}
  h1,h2,h3{break-after:avoid}
  img{max-width:100%}
}

.permission-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.65rem 1rem}.permission-grid h3{grid-column:1/-1;margin:1rem 0 .25rem}.permission-item{align-items:flex-start;padding:.7rem;border:1px solid var(--line);border-radius:.55rem}.permission-item span{display:grid;gap:.2rem}.permission-item small{color:var(--muted)}.input-small{max-width:7rem}.inline-form{display:inline-flex;margin-left:.35rem}

.version-card summary{cursor:pointer}.diff-table td{white-space:pre-wrap}.compact-form{display:grid;grid-template-columns:1fr;padding:.85rem;box-shadow:none}.compact-form .field-wide{grid-column:1}.compact-form textarea{min-height:5rem}

/* Vollausbau 2.0 */
.nav-count{display:inline-grid;place-items:center;min-width:1.5rem;height:1.5rem;margin-left:.35rem;padding:0 .35rem;border-radius:999px;background:var(--red);color:#fff;font-size:.75rem}.map{height:360px;border:1px solid var(--line);border-radius:12px;margin-top:.8rem;overflow:hidden}.map-editor{background:#f8fafc}.autosave-note{min-height:1.4rem;color:var(--muted);font-size:.9rem}.media-card{position:relative}.media-card .media-actions{display:flex;flex-wrap:wrap;gap:.4rem;padding:.7rem}.media-document{display:grid;place-items:center;min-height:180px;background:#f8fafc;font-size:2rem;font-weight:800}.notification-unread{border-left:5px solid var(--red)}.notification-read{opacity:.75}.filters{margin-bottom:1rem}.pagination{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem}.gallery-hero{width:100%;max-height:520px;object-fit:cover;border-radius:14px}.badge{display:inline-flex;padding:.2rem .5rem;border-radius:999px;background:#e5e7eb;font-size:.8rem;font-weight:700}.split-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:1rem}.tabbar{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}.tabbar a{padding:.55rem .8rem;background:#fff;border:1px solid var(--line);border-radius:8px}.privacy-box{border-left:5px solid var(--warn)}.connection-result{padding:.65rem;border-radius:8px;background:#f8fafc}.inline-fields{display:flex;gap:.5rem;align-items:end;flex-wrap:wrap}.inline-fields .field{min-width:180px;flex:1}.media-meta{font-size:.9rem;color:var(--muted)}.comment{border-left:4px solid #94a3b8;padding-left:.8rem}.comment strong{display:block}.pdf-actions{display:flex;gap:.5rem;flex-wrap:wrap}
@media(max-width:850px){.split-layout{grid-template-columns:1fr}.map{height:300px}}
.card-cover{display:block;width:100%;height:190px;object-fit:cover;border-radius:.65rem;margin-bottom:.85rem}.gallery-hero{display:block;width:100%;max-height:520px;object-fit:cover;border-radius:.8rem}.comment-list article{border-top:1px solid var(--border,#d8dde3);padding:.9rem 0}.comment-list article:first-child{margin-top:1rem}.filters{margin-bottom:1rem}.filters>input{min-width:250px}.media-document{display:flex;align-items:center;justify-content:center;min-height:150px;font-size:2rem;font-weight:700;background:#eef1f4;border-radius:.6rem}.media-card img{width:100%;height:180px;object-fit:cover;border-radius:.5rem}.media-meta{font-size:.88rem}.input-small{width:6rem}.map{min-height:360px;border-radius:.65rem;overflow:hidden;background:#e8ecef}.nav-count{display:inline-flex;min-width:1.4rem;height:1.4rem;align-items:center;justify-content:center;border-radius:999px;background:#fff;color:#a40000;font-size:.75rem;font-weight:700}.gallery figure{margin:0}.gallery figcaption{padding:.5rem 0}.pdf-actions{display:flex;gap:.5rem;flex-wrap:wrap}
@media(max-width:700px){.card-cover,.media-card img{height:150px}.map{min-height:280px}}
.nav-form{margin:0;display:flex}.nav-button{appearance:none;border:0;background:transparent;color:#fff;padding:.6rem .8rem;border-radius:8px;font:inherit;cursor:pointer}.nav-button:hover,.nav-button:focus-visible{background:#263244;text-decoration:none;outline:2px solid #fff;outline-offset:2px}
input[readonly]{background:#f1f5f9;color:#475569}

/* Anonyme Einsatzstärken und Berichtsgenerierung 2.2 */
.generator-card{border-left:5px solid var(--red);background:#fffdfd}.generator-card h2{margin-bottom:.35rem}.deployment-table input[type=number]{min-width:5.2rem}.deployment-table .check{min-width:220px}.compact-table{min-width:620px}.report-source-note{padding:.75rem;border-left:4px solid #94a3b8;background:#f8fafc}
@media(max-width:700px){.deployment-table input[type=number]{min-width:4.6rem}.generator-card .toolbar-actions{align-items:stretch}.generator-card .btn{width:100%}}

/* Fahrzeugtechnik, Aufbau und Beladung 2.3 */
.section-heading{margin-top:.5rem;border-top:1px solid var(--line);padding-top:1rem}.section-heading h2{margin:0}.technical-field{padding:.75rem;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.technical-custom-row,.repeat-row{display:grid;grid-template-columns:1.4fr 1.4fr .7fr .8fr auto;gap:.7rem;align-items:end;padding:.75rem;border:1px solid var(--line);border-radius:10px;margin-bottom:.65rem;background:#fafbfc}.table-actions{display:flex;flex-wrap:wrap;gap:.35rem}.tabbar a.active{background:var(--red);border-color:var(--red);color:#fff}.compartment-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.compartment-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:start}.compartment-card-head h2{margin:.45rem 0}.compartment-thumb{display:block;width:100%;height:180px;object-fit:cover;border-radius:8px;margin:.7rem 0}.marker-editor{border:1px solid var(--line);border-radius:12px;padding:1rem;background:#f8fafc}.marker-stage{position:relative;display:inline-block;max-width:100%;touch-action:none;cursor:crosshair;user-select:none}.marker-stage[hidden]{display:none}.marker-stage img{display:block;max-width:100%;max-height:650px;border-radius:8px}.marker-selection{position:absolute;border:3px solid var(--red);background:rgba(177,15,26,.18);pointer-events:none}.marker-selection[hidden]{display:none}.marker-coordinate{min-width:0}.spec-list{display:grid;grid-template-columns:minmax(180px,.9fr) 1.1fr;gap:.55rem 1rem}.spec-list dt{font-weight:750}.spec-list dd{margin:0}.vehicle-layout-section{margin-top:2rem}.vehicle-marker-figure{margin:1rem 0}.vehicle-marker-map{position:relative;display:inline-block;max-width:100%}.vehicle-marker-map>img{display:block;max-width:100%;max-height:760px;border-radius:12px}.vehicle-marker-overlay{position:absolute;border:3px solid #fff;outline:3px solid var(--red);background:rgba(177,15,26,.22);display:flex;align-items:flex-start;justify-content:flex-start;color:#fff;font-weight:800;text-shadow:0 1px 3px #000;overflow:visible}.vehicle-marker-overlay span{background:var(--red);padding:.15rem .35rem;white-space:nowrap;transform:translateY(-100%)}.vehicle-marker-overlay:hover,.vehicle-marker-overlay:focus{background:rgba(177,15,26,.38);text-decoration:none}.vehicle-marker-figure figcaption{color:var(--muted);margin-top:.35rem}
@media(max-width:900px){.technical-custom-row,.repeat-row{grid-template-columns:1fr 1fr}.technical-custom-row .btn{align-self:end}.spec-list{grid-template-columns:1fr}}
@media(max-width:650px){.technical-custom-row,.repeat-row{grid-template-columns:1fr}.compartment-card-head{display:block}.marker-coordinate{grid-column:auto}.vehicle-marker-overlay span{font-size:.75rem}.table-actions .btn{flex:1}}
@media print{.vehicle-marker-overlay{outline:2px solid #000;border:1px solid #fff;background:rgba(0,0,0,.15);color:#000;text-shadow:none}.vehicle-marker-overlay span{background:#fff;color:#000;border:1px solid #000}}

/* 360°-Ansicht und Beladungs-Quiz 2.4 */
.spin-viewer{background:#fff;border:1px solid var(--line);border-radius:14px;padding:1rem;box-shadow:var(--shadow)}
.spin-frame{margin:0}.spin-frame[hidden]{display:none}.spin-frame figcaption{margin-top:.5rem;color:var(--muted)}
.spin-controls{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;margin-top:.75rem}.spin-controls input[type=range]{flex:1;min-width:180px}
.stacked-list{display:grid;gap:1rem}.quiz-card{padding:1rem 1.2rem}.quiz-option{display:flex;gap:.6rem;align-items:flex-start;padding:.7rem .8rem;border:1px solid var(--line);border-radius:10px;margin:.55rem 0;background:#fff}.quiz-option.is-correct{border-color:#9bd2ae;background:#effaf3}.quiz-option.is-wrong{border-color:#e9a3a8;background:#fff1f2}.quiz-option input{margin-top:.2rem}.notice{padding:.9rem 1rem;border-radius:10px;margin-bottom:1rem;border:1px solid #9bd2ae;background:#effaf3;color:#125b30}
