:root{font-family:Arial,Helvetica,sans-serif;color:#17324d;background:#eef3f7}*{box-sizing:border-box}body{margin:0}header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 20px;background:#0d3155;color:#fff;position:sticky;top:0;z-index:5}nav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}nav a,nav button{color:#fff;background:none;border:0;text-decoration:none;font:inherit;cursor:pointer;padding:6px}.user-badge{padding:6px 10px;border-radius:999px;background:rgba(255,255,255,.15);font-size:.82rem}main{max-width:1180px;margin:auto;padding:20px}.card,.hero{background:#fff;border-radius:16px;padding:22px;margin-bottom:18px;box-shadow:0 8px 30px rgba(23,50,77,.1)}.narrow{max-width:520px;margin:40px auto}.admin-layout{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}.admin-wide{width:100%}label{display:block;font-weight:700;margin:12px 0}input,select,textarea{display:block;width:100%;margin-top:6px;padding:13px;border:1px solid #b9c7d5;border-radius:10px;font:inherit;background:#fff}textarea{min-height:90px;resize:vertical}.button,button{display:inline-block;padding:12px 18px;border-radius:10px;border:1px solid #0d3155;text-decoration:none;cursor:pointer;font:inherit}.primary{background:#0d5ea8;color:#fff;border-color:#0d5ea8}.danger{background:#fff;color:#b42318;border-color:#f1b4ae}.full,.finish{width:100%}.finish{font-size:1.1rem;margin:0 0 40px}.error,.flash.error{color:#8a1c13;background:#fff0ee;border-color:#f1b4ae}.flash.success{color:#17643a;background:#edf9f1;border-color:#99d5ae}.flash{padding:14px 16px;border:1px solid;border-radius:12px;margin:0 0 18px}.hint{color:#5f7182;font-weight:400}.optional{font-weight:400;color:#718190}.action-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px}.accordion-list{display:grid;gap:12px}.accordion-item{border:1px solid #d7e0e8;border-radius:12px;background:#fff;overflow:hidden}.accordion-item summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:16px;cursor:pointer;list-style:none}.accordion-item summary::-webkit-details-marker{display:none}.accordion-item summary span:first-child{display:grid;gap:4px}.accordion-item summary small{font-weight:400;color:#5f7182}.detail-form{padding:0 16px 18px;border-top:1px solid #e0e7ee}.vehicle-detail img{display:block;width:100%;max-height:320px;object-fit:cover}.camera-flow{min-height:380px}.camera-step{text-align:center}.step-number{display:inline-block;padding:5px 10px;border-radius:999px;background:#e8f1f9;color:#174d7d;font-weight:700}.camera-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important;white-space:nowrap!important}.camera-preview{display:grid;place-items:center;min-height:220px;margin:18px 0;border:2px dashed #b9c7d5;border-radius:14px;background:#f6f9fb;color:#6a7d8f;overflow:hidden}.camera-preview img{width:100%;max-height:420px;object-fit:contain;background:#111}.camera-button{font-size:1.08rem;min-height:54px}.progress-row{display:grid;gap:8px;margin-bottom:16px}.progress{height:10px;background:#dce6ee;border-radius:999px;overflow:hidden}.progress span{display:block;height:100%;width:0;background:#0d5ea8;transition:width .25s}.checks{display:grid;gap:14px}.checks label,fieldset{border:1px solid #d7e0e8;border-radius:12px;padding:14px}fieldset{margin:0 0 14px}.vehicle-detail{display:grid;grid-template-columns:minmax(220px,340px) 1fr;gap:16px;padding:16px;border-top:1px solid #e0e7ee}.vehicle-detail .detail-form{padding:0;border:0}
@media(max-width:820px){header{align-items:flex-start;flex-direction:column}main{padding:12px}.card,.hero{padding:18px;border-radius:14px}.admin-layout{grid-template-columns:1fr}.vehicle-detail{grid-template-columns:1fr}.action-row>*{flex:1}.user-badge{width:100%}.camera-preview{min-height:260px}.accordion-item summary{padding:14px}.button,button,input,select,textarea{min-height:48px}}
@media(max-width:480px){header strong{font-size:.96rem}nav{width:100%;justify-content:space-between}main{padding:8px}.card,.hero{padding:15px;margin-bottom:12px;border-radius:12px}h1{font-size:1.65rem}h2{font-size:1.3rem}.camera-button{position:sticky;bottom:10px;z-index:3}.camera-preview{min-height:300px}.action-row{flex-direction:column}.action-row>*{width:100%}}

.progress-title{display:flex;justify-content:space-between;align-items:center;gap:12px}.capture-instruction{margin:18px 0;padding:14px 16px;border-radius:12px;background:#fff4d6;border:1px solid #f0cd76;color:#4c3900;font-size:1.08rem;line-height:1.45;text-align:left}.camera-action-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center}.camera-action-row .camera-button{width:100%}.photo-counter-inline{display:grid;place-items:center;min-width:72px;min-height:54px;padding:8px 12px;border-radius:12px;background:#e8f1f9;color:#0d3155;font-size:1.1rem;font-weight:800}.captured-gallery{margin:14px 0 18px;padding:12px;border:1px solid #d7e0e8;border-radius:14px;background:#f7fafc}.gallery-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:10px}.gallery-items{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x proximity}.gallery-items figure{flex:0 0 110px;margin:0;scroll-snap-align:start}.gallery-items img{display:block;width:110px;height:82px;object-fit:cover;border-radius:10px;background:#111}.gallery-items figcaption{margin-top:5px;font-size:.75rem;line-height:1.2;color:#4b6072;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.note-checks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.note-card{border:1px solid #d7e0e8;border-radius:14px;overflow:hidden;background:#fff}.note-card label{border:0!important;margin:0;padding:14px}.note-photo{background:#eef3f7;min-height:150px;display:grid;place-items:center}.note-photo img{display:block;width:100%;height:220px;object-fit:cover;background:#111}
@media(max-width:820px){.note-checks{grid-template-columns:1fr}}
@media(max-width:480px){.camera-action-row{grid-template-columns:minmax(0,1fr) 68px}.photo-counter-inline{min-width:68px;padding:6px}.capture-instruction{font-size:1rem}.note-photo img{height:190px}}

.capture-target{margin:18px 0}.capture-target-label{margin:0 0 12px;font-size:1.35rem;font-weight:800;color:#0d3155;text-align:center}.vehicle-guide{width:min(100%,380px);margin:0 auto;padding:10px 12px;border:1px solid #d7e0e8;border-radius:16px;background:#fff}.vehicle-guide svg{display:block;width:100%;height:auto}.guide-lines{fill:none;stroke:#172b3d;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}.guide-marker{fill:rgba(218,35,35,.66);stroke:#c01919;stroke-width:3;stroke-linejoin:round;filter:drop-shadow(0 3px 5px rgba(150,0,0,.22));animation:guidePulse 1.45s ease-in-out infinite}.vehicle-guide-front .guide-marker,.vehicle-guide-rear .guide-marker{transform-origin:center}.vehicle-guide-side-left .guide-marker,.vehicle-guide-side-right .guide-marker{transform-origin:center}.vehicle-guide-cargo .guide-marker,.vehicle-guide-cab .guide-marker{transform-origin:center}@keyframes guidePulse{0%,100%{opacity:.62}50%{opacity:.95}}.gallery-items figure{flex-basis:150px;padding:8px;border:1px solid #d7e0e8;border-radius:12px;background:#fff}.gallery-items img{width:100%;height:100px;object-fit:cover;border-radius:8px}.gallery-items figcaption{margin:0 0 7px;font-size:.8rem;font-weight:800;color:#17324d;white-space:normal;min-height:2.2em}.gallery-delete{width:100%;margin-top:8px;padding:8px 6px;border-color:#e3aaa5;background:#fff4f3;color:#9d2018;font-size:.76rem;line-height:1.2}.note-preview-title{padding:11px 14px;background:#e8f1f9;color:#0d3155;font-weight:800;border-bottom:1px solid #d7e0e8}
@media(max-width:480px){.capture-target-label{font-size:1.2rem}.vehicle-guide{max-width:330px;padding:8px}.gallery-items figure{flex-basis:140px}.gallery-items img{height:96px}}
.capture-target{display:flex;flex-direction:column;align-items:center}.capture-target-label{order:2;margin:.75rem 0 0;font-size:1.15rem;font-weight:800;text-align:center;color:#0d3155}.damage-card{display:grid;gap:1rem}.damage-camera-input{position:absolute!important;width:1px!important;height:1px!important;opacity:0!important;pointer-events:none!important}.damage-photo-preview{min-height:120px;border:2px dashed #a9b8c7;border-radius:14px;display:flex;align-items:center;justify-content:center;background:#f6f9fc;color:#52687c;overflow:hidden}.damage-photo-preview img{width:100%;max-height:260px;object-fit:cover;display:block}.damage-camera-button{width:100%}

.password-field {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 0.6rem;
    align-items: stretch;
}

.password-field input {
    min-width: 0;
}

.password-toggle {
    white-space: nowrap;
    padding-inline: 1rem;
}

@media (max-width: 420px) {
    .password-field {
        grid-template-columns: 1fr;
    }
}

.section-heading-row {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    flex-wrap: wrap;
}

.damage-list {
    display: grid;
    gap: 1rem;
    margin-top: 1rem;
}

.protocol-items {
    display: grid;
    gap: 0.75rem;
    padding: 1rem;
}

.protocol-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem;
    border: 1px solid #d8e0e8;
    border-radius: 12px;
    background: #fff;
}

.protocol-item div {
    display: grid;
    gap: 0.25rem;
}

.protocol-item small {
    color: #526b82;
}

@media (max-width: 640px) {
    .protocol-item {
        align-items: stretch;
        flex-direction: column;
    }

    .protocol-item .button {
        width: 100%;
        text-align: center;
    }
}

.protocol-tabs {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    padding-bottom: 8px;
    margin: 18px 0;
}

.protocol-tab {
    border: 1px solid #cbd5e1;
    background: #ffffff;
    color: #0f2742;
    border-radius: 999px;
    padding: 10px 14px;
    white-space: nowrap;
    cursor: pointer;
    font-weight: 700;
}

.protocol-tab.is-active {
    background: #0f2742;
    color: #ffffff;
    border-color: #0f2742;
}

.protocol-panel {
    display: grid;
    gap: 12px;
}

.protocol-group {
    border: 1px solid #d7e0ea;
    border-radius: 12px;
    overflow: hidden;
    background: #ffffff;
}

.protocol-group > summary {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    cursor: pointer;
    padding: 14px 16px;
    background: #f6f8fb;
}

.table-scroll {
    width: 100%;
    overflow-x: auto;
}

.protocol-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 840px;
}

.protocol-table th,
.protocol-table td {
    padding: 12px;
    text-align: left;
    border-top: 1px solid #e5eaf0;
    vertical-align: top;
}

.protocol-table th {
    font-size: 0.84rem;
    color: #526579;
    background: #fbfcfd;
}

.protocol-actions {
    display: flex;
    gap: 8px;
    align-items: center;
    flex-wrap: wrap;
}

.protocol-actions form {
    margin: 0;
}

@media (max-width: 700px) {
    .protocol-tabs {
        margin-left: -4px;
        margin-right: -4px;
    }
}

[hidden]{display:none!important}
.damage-list{display:grid;gap:12px;margin-bottom:14px}.add-damage-button{margin-top:8px}.damage-card{border:1px solid #d7e0e8;border-radius:12px;background:#fff;overflow:hidden}.damage-card>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px;cursor:pointer;list-style:none}.damage-card>summary::-webkit-details-marker{display:none}.damage-summary-status{font-size:.85rem;color:#5f7182;text-align:right}.damage-card-content{padding:0 14px 16px;border-top:1px solid #e0e7ee}.damage-photo-preview{display:grid;place-items:center;min-height:160px;margin:14px 0;border:2px dashed #b9c7d5;border-radius:12px;overflow:hidden;color:#6a7d8f}.damage-photo-preview img{width:100%;max-height:360px;object-fit:contain;background:#111}.damage-camera-input{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(1px,1px,1px,1px)!important}.protocol-focus header{display:none}.protocol-focus main{padding-top:8px}.protocol-focus-zone{scroll-margin-top:8px}
.saved-confirmation{text-align:center;padding-top:42px;padding-bottom:42px}.saved-check{width:112px;height:112px;margin:0 auto 22px;border-radius:50%;display:grid;place-items:center;background:#168545;color:#fff;font-size:74px;font-weight:900;line-height:1;box-shadow:0 12px 30px rgba(22,133,69,.28)}.saved-confirmation h1{color:#126c3b}.saved-confirmation .button{margin-top:18px}

.api-guide {
    margin-top: 1.25rem;
    border-top: 1px solid #d8e2ec;
    padding-top: 1rem;
}

.api-guide summary {
    cursor: pointer;
    font-size: 1.05rem;
    color: #0d3155;
}

.api-guide pre {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    padding: 0.9rem;
    border-radius: 0.65rem;
    background: #eef4f9;
    border: 1px solid #d3dfeb;
}

.hero .action-row {
    margin-top: 1rem;
}

/* v20: kontinuierlicher Kamera-Modus */
.capture-intro{margin:0 0 14px;color:#4f6478;line-height:1.5}.camera-guide-template{display:none}.camera-open{overflow:hidden}.camera-overlay{position:fixed;inset:0;z-index:1000;background:#000;color:#fff}.camera-stage{position:relative;width:100%;height:100%;overflow:hidden;background:#000}.camera-stage video{width:100%;height:100%;object-fit:cover}.camera-topbar{position:absolute;left:0;right:0;top:0;display:grid;grid-template-columns:74px minmax(0,1fr) 48px;gap:10px;align-items:center;padding:max(12px,env(safe-area-inset-top)) 12px 12px;background:linear-gradient(180deg,rgba(0,0,0,.82),rgba(0,0,0,.15));text-shadow:0 2px 5px rgba(0,0,0,.8)}.camera-guide-overlay{width:74px;height:62px;display:grid;place-items:center;border-radius:12px;background:rgba(255,255,255,.92);overflow:hidden}.camera-guide-overlay .vehicle-guide{width:100%;height:100%;padding:3px;border:0;border-radius:0;background:transparent}.camera-guide-overlay svg{width:100%;height:100%}.camera-task{min-width:0;display:grid;gap:3px}.camera-task strong{font-size:clamp(1.05rem,4.8vw,1.45rem);line-height:1.15;overflow-wrap:anywhere}.camera-task span{font-size:1rem;font-weight:800}.camera-close{width:46px;height:46px;padding:0;border:1px solid rgba(255,255,255,.6);border-radius:50%;background:rgba(0,0,0,.45);color:#fff;font-size:2rem;line-height:1}.camera-controls{position:absolute;left:0;right:0;bottom:0;display:grid;place-items:center;padding:18px 18px max(24px,env(safe-area-inset-bottom));background:linear-gradient(0deg,rgba(0,0,0,.8),rgba(0,0,0,.05))}.camera-shutter{width:82px;height:82px;padding:7px;border:4px solid #fff;border-radius:50%;background:rgba(255,255,255,.2);box-shadow:0 3px 18px rgba(0,0,0,.5)}.camera-shutter span{display:block;width:100%;height:100%;border-radius:50%;background:#fff}.camera-shutter:active span{transform:scale(.9)}.camera-shutter:disabled{opacity:.55}.camera-status{position:absolute;left:50%;bottom:122px;transform:translateX(-50%);min-height:28px;padding:5px 12px;border-radius:999px;background:rgba(0,0,0,.55);font-weight:800}.camera-status:empty{display:none}@media(orientation:landscape){.camera-topbar{grid-template-columns:64px minmax(0,1fr) 44px}.camera-guide-overlay{width:64px;height:50px}.camera-shutter{width:70px;height:70px}.camera-status{bottom:102px}}

/* v21: gestückelte Uploads und lokale Notfall-Speicherung */
.upload-overlay{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px;background:rgba(5,20,35,.82);backdrop-filter:blur(4px)}
.upload-dialog{width:min(100%,520px);padding:24px;border-radius:18px;background:#fff;color:#17324d;box-shadow:0 24px 70px rgba(0,0,0,.35)}
.upload-dialog h2{margin-top:0}.upload-dialog .progress{margin:18px 0 10px}.upload-dialog .action-row>*{flex:1}
.pending-upload-link{position:relative}.pending-upload-count{font-weight:800}
.pending-upload-list{display:grid;gap:14px;margin-top:18px}
.pending-upload-card{display:grid;gap:10px;padding:16px;border:1px solid #d7e0e8;border-radius:14px;background:#fff}
.pending-upload-card>div:first-child{display:grid;gap:4px}.pending-upload-card span,.pending-upload-card small{color:#5f7182}
.pending-progress{height:10px;overflow:hidden;border-radius:999px;background:#dce6ee}.pending-progress span{display:block;height:100%;background:#0d5ea8;transition:width .25s}
.pending-upload-card.is-complete{border-color:#8acba5;background:#effaf3}
@media(max-width:520px){.upload-dialog{padding:18px}.upload-dialog .action-row{display:grid}.pending-upload-card .action-row{display:grid}.pending-upload-card .action-row>*{width:100%}}

.user-inspection-days{display:grid;gap:14px}.user-inspection-day{border:1px solid #d7e0e8;border-radius:14px;overflow:hidden;background:#f8fafc}.user-inspection-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:#e8f1f9}.user-inspection-day-heading span{font-size:.9rem;color:#355a78;font-weight:700}.user-inspection-list{display:grid}.user-inspection-item{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;background:#fff;border-top:1px solid #e0e7ee}.user-inspection-item:first-child{border-top:0}.user-inspection-item div{display:grid;gap:4px}.user-inspection-item small{color:#5f7182}.inspection-arrived{white-space:nowrap;padding:6px 10px;border-radius:999px;background:#edf9f1;color:#17643a;font-size:.82rem;font-weight:700}@media(max-width:600px){.user-inspection-day-heading,.user-inspection-item{align-items:flex-start}.user-inspection-item{flex-direction:column}.inspection-arrived{align-self:flex-start}}
.upload-progress-group{display:grid;gap:8px;margin:18px 0 10px}.upload-progress-label{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.88rem;font-weight:700;color:#38536b}.upload-progress-group .progress{margin:0}.upload-progress-group .progress span{transition:width .12s linear}.upload-dialog{width:min(520px,100%)}

/* v22: einfacher Zielrahmen fuer gleichmaessigere Pflichtfotos */
.camera-target-frame{position:absolute;left:50%;top:51%;transform:translate(-50%,-50%);z-index:2;border:2px solid rgba(255,255,255,.88);border-radius:18px;box-shadow:0 0 0 100vmax rgba(0,0,0,.32);pointer-events:none;transition:width .2s ease,height .2s ease,border-radius .2s ease}.camera-target-wide{width:min(86vw,760px);height:min(48vh,470px)}.camera-target-square{width:min(78vw,520px);height:min(78vw,52vh,520px);border-radius:22px}.camera-target-narrow{width:min(82vw,680px);height:min(34vh,270px)}.camera-target-minimum{position:absolute;inset:14%;border:2px dashed rgba(255,255,255,.72);border-radius:12px}.camera-target-frame .corner{position:absolute;width:38px;height:38px;border-color:#42e879;border-style:solid}.camera-target-frame .corner-tl{left:-3px;top:-3px;border-width:6px 0 0 6px;border-radius:16px 0 0 0}.camera-target-frame .corner-tr{right:-3px;top:-3px;border-width:6px 6px 0 0;border-radius:0 16px 0 0}.camera-target-frame .corner-bl{left:-3px;bottom:-3px;border-width:0 0 6px 6px;border-radius:0 0 0 16px}.camera-target-frame .corner-br{right:-3px;bottom:-3px;border-width:0 6px 6px 0;border-radius:0 0 16px 0}.camera-frame-instruction{position:absolute;z-index:3;left:50%;bottom:126px;transform:translateX(-50%);width:min(90vw,620px);padding:9px 14px;border-radius:12px;background:rgba(0,0,0,.64);color:#fff;font-size:.95rem;font-weight:800;line-height:1.25;text-align:center;text-shadow:0 1px 3px rgba(0,0,0,.8);pointer-events:none}.camera-status{bottom:172px;z-index:4}@media(orientation:landscape){.camera-target-frame{top:54%}.camera-target-wide{width:min(70vw,760px);height:min(62vh,430px)}.camera-target-square{width:min(46vw,430px);height:min(64vh,430px)}.camera-target-narrow{width:min(68vw,680px);height:min(42vh,260px)}.camera-frame-instruction{bottom:100px}.camera-status{bottom:142px}}@media(max-width:480px) and (orientation:portrait){.camera-target-frame{top:50%}.camera-target-wide{width:88vw;height:43vh}.camera-target-square{width:82vw;height:82vw;max-height:48vh}.camera-target-narrow{width:86vw;height:27vh}.camera-frame-instruction{bottom:121px;font-size:.88rem}.camera-status{bottom:166px}}
