:root { color-scheme: light dark; }
.input { width: 100%; border-radius: 1rem; border: 1px solid rgb(226 232 240); padding: .85rem 1rem; background: rgba(255,255,255,.9); outline: none; }
.dark .input { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); color: white; }
.input:focus { border-color: rgb(16 185 129); box-shadow: 0 0 0 4px rgba(16,185,129,.15); }
.camera-card { border: 1px dashed rgb(148 163 184); border-radius: 1.5rem; padding: 1rem; min-height: 180px; background: rgba(15,23,42,.03); }
.dark .camera-card { background: rgba(255,255,255,.04); }
.card-link { border-radius: 1.5rem; background: white; border: 1px solid rgb(226 232 240); padding: 1.5rem; font-weight: 800; box-shadow: 0 10px 30px rgba(15,23,42,.04); }
.dark .card-link { background: rgb(15 23 42); border-color: rgba(255,255,255,.1); }
@media (max-width: 640px){ table thead{display:none} table,tbody,tr,td{display:block;width:100%} tr{padding:1rem;border-bottom:1px solid #e2e8f0} td{padding:.25rem!important} }
.input{width:100%;border-radius:1rem;border:1px solid rgb(203 213 225);background:white;padding:.85rem 1rem;outline:none}.dark .input{background:rgb(15 23 42);border-color:rgba(255,255,255,.12)}.input:focus{box-shadow:0 0 0 4px rgba(16,185,129,.18);border-color:rgb(16 185 129)}
.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;border-radius:1rem;transition:.2s;box-shadow:0 8px 24px rgba(15,23,42,.12)}.icon-btn:hover{transform:translateY(-1px);filter:brightness(.97)}
.wizard-step{display:none}.wizard-step.active{display:block}.step-dot{display:flex;align-items:center;gap:.5rem;border-radius:999px;padding:.55rem .85rem;font-weight:700;background:rgb(226 232 240);color:rgb(71 85 105)}.step-dot.active{background:rgb(16 185 129);color:white}.required-label{font-weight:700;font-size:.875rem;display:block;margin-bottom:.35rem}.camera-card{border:1px solid rgb(226 232 240);border-radius:1.5rem;padding:1rem;background:rgba(248,250,252,.7)}.dark .camera-card{border-color:rgba(255,255,255,.12);background:rgba(15,23,42,.6)}


/* V4.4 compact responsive sidebar */
.app-sidebar{position:fixed;inset:0 auto 0 0;z-index:40;width:16rem;display:flex;flex-direction:column;transform:translateX(-100%);transition:width .2s ease,transform .2s ease;overflow:hidden}.app-sidebar-brand{height:4rem;padding:.85rem 1rem;display:flex;align-items:center;border-bottom:1px solid rgba(255,255,255,.08)}.app-sidebar-nav{padding:.75rem;display:flex;flex-direction:column;gap:.25rem;overflow-y:auto;overscroll-behavior:contain}.app-menu-link{display:flex;align-items:center;gap:.75rem;border-radius:1rem;padding:.7rem .85rem;font-size:.875rem;font-weight:800;color:rgb(203 213 225);transition:.18s}.app-menu-link:hover{background:rgba(255,255,255,.08);color:white}.app-menu-link.active{background:rgba(16,185,129,.18);color:rgb(167 243 208)}.app-shell{min-height:100vh;transition:padding-left .2s ease}.sidebar-open .app-sidebar{transform:translateX(0)}
@media (min-width:1024px){.app-sidebar{transform:translateX(0);width:16rem}.app-shell{padding-left:16rem}.sidebar-collapsed .app-sidebar{width:5.25rem}.sidebar-collapsed .app-shell{padding-left:5.25rem}.sidebar-collapsed .menu-text{display:none}.sidebar-collapsed .app-menu-link{justify-content:center;padding:.72rem}.sidebar-collapsed .app-sidebar-brand{justify-content:center}.sidebar-collapsed .app-sidebar-nav{padding:.65rem}}
.receiver-picker{border:1px solid rgb(226 232 240);border-radius:1rem;padding:1rem;background:rgba(248,250,252,.8)}.dark .receiver-picker{border-color:rgba(255,255,255,.12);background:rgba(15,23,42,.6)}.receiver-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem;max-height:260px;overflow:auto}.receiver-item{display:flex;align-items:center;gap:.5rem;border:1px solid rgb(226 232 240);border-radius:.9rem;padding:.65rem .75rem;background:white;font-weight:700;font-size:.875rem;cursor:pointer}.dark .receiver-item{border-color:rgba(255,255,255,.12);background:rgba(255,255,255,.05)}.receiver-item:has(input:checked){border-color:rgb(16 185 129);background:rgba(16,185,129,.12);color:rgb(5 150 105)}
#savingOverlay{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.72);backdrop-filter:blur(8px)}#savingOverlay.active{display:flex}.saving-card{border-radius:2rem;background:white;color:rgb(15 23 42);padding:2rem;box-shadow:0 25px 80px rgba(0,0,0,.3);text-align:center;max-width:22rem}.dark .saving-card{background:rgb(15 23 42);color:white}.saving-spinner{width:3rem;height:3rem;border:.35rem solid rgb(209 213 219);border-top-color:rgb(16 185 129);border-radius:999px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{to{transform:rotate(360deg)}}


/* V4.8: final save lock overlay */
#savingOverlay.active{display:flex!important;position:fixed;inset:0;z-index:99999;align-items:center;justify-content:center;background:rgba(15,23,42,.72);backdrop-filter:blur(8px);pointer-events:all;}
html.saving-report-lock, html.saving-report-lock body{overflow:hidden!important;}
html.saving-report-lock body{user-select:none;}
/* V4.9 helper card fallback */
.card { border-radius: 1.5rem; background: white; border: 1px solid rgb(226 232 240); padding: 1.25rem; box-shadow: 0 10px 30px rgba(15,23,42,.04); }
.dark .card { background: rgb(15 23 42); border-color: rgba(255,255,255,.1); }
/* V5.0 temp camera upload status */
.camera-card img[src*="/shift/temp-photo/"]{outline:2px solid rgba(16,185,129,.25)}

/* V5.2 modern overlays, idle counter, aging highlight */
.app-message-overlay{position:fixed;inset:0;z-index:100000;display:none;align-items:center;justify-content:center;background:rgba(15,23,42,.58);backdrop-filter:blur(8px);padding:1.5rem}.app-message-overlay.active{display:flex}.app-message-card{max-width:28rem;width:100%;border-radius:2rem;background:#fff;color:#0f172a;padding:1.5rem;box-shadow:0 30px 90px rgba(15,23,42,.3);text-align:center}.dark .app-message-card{background:#0f172a;color:#fff}.app-message-icon{width:4rem;height:4rem;border-radius:1.5rem;display:flex;align-items:center;justify-content:center;margin:0 auto 1rem}.app-message-success .app-message-icon{background:#dcfce7;color:#047857}.app-message-warning .app-message-icon{background:#fef3c7;color:#b45309}.app-message-error .app-message-icon{background:#ffe4e6;color:#be123c}.app-modal-overlay{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;background:rgba(15,23,42,.72);backdrop-filter:blur(10px);padding:1.5rem}.app-modal-overlay.hidden{display:none}.app-modal-card{max-width:26rem;width:100%;border-radius:2rem;background:white;color:#0f172a;padding:1.75rem;text-align:center;box-shadow:0 30px 90px rgba(15,23,42,.35)}.dark .app-modal-card{background:#0f172a;color:white}.animate-pulse-subtle{animation:pulseSubtle 1.8s ease-in-out infinite}@keyframes pulseSubtle{0%,100%{box-shadow:0 0 0 rgba(244,63,94,0)}50%{box-shadow:0 0 0 6px rgba(244,63,94,.12)}}

/* V5.9 WebView/APK readiness */
:root { --app-vh: 1vh; }
html.android-webview, body.is-android-webview { overscroll-behavior: none; -webkit-tap-highlight-color: transparent; }
body.app-v65 { min-height: calc(var(--app-vh, 1vh) * 100); padding-top: env(safe-area-inset-top); padding-bottom: env(safe-area-inset-bottom); }
body.app-v65 .app-shell { min-height: calc(var(--app-vh, 1vh) * 100); }
body.app-v65 header.sticky { padding-top: env(safe-area-inset-top); }
body.app-v65 nav.fixed.bottom-0 { padding-bottom: env(safe-area-inset-bottom); }
body.app-v65 input, body.app-v65 select, body.app-v65 textarea, body.app-v65 button { touch-action: manipulation; }
.webview-network-overlay{position:fixed;inset:0;z-index:99999;background:rgba(15,23,42,.78);backdrop-filter:blur(10px);display:flex;align-items:center;justify-content:center;padding:24px;color:white;text-align:center}.webview-network-card{max-width:360px;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.06));box-shadow:0 24px 80px rgba(0,0,0,.4);border-radius:28px;padding:28px}
@media (display-mode: standalone) { body.app-v65 { user-select: none; } input, textarea { user-select: text; } }


/* V6.5 mobile idle indicator and dry-run tester mode */
.idle-countdown{white-space:nowrap;min-width:4.2rem;justify-content:center;}
@media (max-width:640px){.idle-countdown svg{width:1rem;height:1rem}.idle-countdown{min-width:3.8rem}.app-shell header .font-bold.truncate{max-width:9rem}.shift-dry-run-banner{border-radius:1.5rem}}
.shift-dry-run-banner{border:1px solid rgb(251 191 36);background:rgb(254 243 199);color:rgb(120 53 15);padding:1rem;box-shadow:0 10px 30px rgba(15,23,42,.06)}
.dark .shift-dry-run-banner{background:rgba(120,53,15,.25);border-color:rgba(251,191,36,.35);color:rgb(254 243 199)}
