
:root{--bg:#edf3f8;--panel:#fff;--ink:#152033;--muted:#66758b;--line:#d9e3ef;--nav:#0b1f3a;--nav2:#163d68;--blue:#1266f1;--orange:#ff8a00;--green:#198754;--red:#dc3545;--purple:#7437d8}
*{box-sizing:border-box}body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:var(--bg);color:var(--ink)}button,input,select,textarea{font:inherit}textarea{min-height:92px;resize:vertical}
.app{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.sidebar{background:linear-gradient(180deg,var(--nav),var(--nav2));color:#fff;padding:18px;position:sticky;top:0;height:100vh;overflow:auto}.brand{display:flex;gap:12px;align-items:center;margin-bottom:18px}.logo{width:48px;height:48px;border-radius:15px;background:#fff;color:var(--nav);display:grid;place-items:center;font-weight:1000;font-size:25px}.brand h1{margin:0;font-size:23px}.brand small{opacity:.8}
.sideField label{font-size:11px;text-transform:uppercase;font-weight:900;color:#bfd4ee;display:block;margin:8px 0 5px}.sideField select{width:100%;border:0;border-radius:12px;padding:10px;background:#fff;color:#152033}.navbtn{width:100%;display:flex;gap:10px;align-items:center;border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);color:#fff;border-radius:14px;padding:12px 13px;margin:8px 0;font-weight:850;text-align:left;cursor:pointer}.navbtn:hover,.navbtn.active{background:#fff;color:var(--nav)}
.main{padding:22px;max-width:1450px;width:100%;margin:auto}.topbar{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:18px}h2{font-size:29px;margin:0 0 5px}h3{margin:0 0 12px}h4{margin:0 0 5px}.muted{color:var(--muted);font-size:14px}.small{font-size:12px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-6{grid-column:span 6}.col-8{grid-column:span 8}.col-12{grid-column:span 12}.card{background:var(--panel);border:1px solid var(--line);border-radius:21px;padding:18px;box-shadow:0 10px 28px rgba(16,35,70,.06);transition:.15s ease}.card.hover:hover,.stat:hover,.reportCard:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(16,35,70,.12);border-color:#a9c4ea}.stat{cursor:pointer}.stat b{font-size:32px;display:block}.stat p{margin:4px 0 0}
.btnrow{display:flex;flex-wrap:wrap;gap:9px;align-items:center}.btn{border:0;border-radius:13px;padding:10px 14px;min-height:40px;font-weight:900;cursor:pointer;box-shadow:0 7px 15px rgba(0,0,0,.08);display:inline-flex;align-items:center;gap:7px}.btn.primary{background:var(--blue);color:#fff}.btn.orange{background:var(--orange);color:#111}.btn.green{background:var(--green);color:#fff}.btn.red{background:var(--red);color:#fff}.btn.dark{background:var(--nav);color:#fff}.btn.purple{background:var(--purple);color:#fff}.btn.light{background:#edf4ff;color:#0d468f;border:1px solid #cfe0ff}.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line);box-shadow:none}.btn:disabled{opacity:.45;cursor:not-allowed}
.table{width:100%;border-collapse:collapse}.table th,.table td{text-align:left;border-bottom:1px solid var(--line);padding:10px;vertical-align:top}.table th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.table td:last-child .btn{padding:8px 11px;min-height:35px;font-size:13px}.pill{display:inline-flex;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:900;background:#eef2f7;color:#344258;margin:2px}.pill.green{background:#dbf7e5;color:#0b6b35}.pill.red{background:#ffe1e5;color:#9d0014}.pill.orange{background:#fff0d9;color:#804800}.pill.blue{background:#ddecff;color:#0e4a9b}.pill.purple{background:#eee4ff;color:#5b21b6}.pill.gray{background:#eef2f7;color:#475569}
.formgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.field.full{grid-column:1/-1}.field label{display:block;margin:0 0 6px;font-size:12px;text-transform:uppercase;font-weight:900;color:var(--muted)}.field input,.field select,.field textarea,.search{width:100%;border:1px solid var(--line);border-radius:13px;padding:11px;background:#fff}.field input:focus,.field select:focus,.field textarea:focus,.search:focus{outline:3px solid rgba(18,102,241,.15);border-color:#80adff}.search{margin:0 0 13px}
.tabs{display:flex;gap:8px;flex-wrap:wrap;background:#f8fbff;border:1px solid var(--line);padding:8px;border-radius:18px;margin-bottom:14px}.tab{border:1px solid var(--line);background:#fff;border-radius:13px;padding:10px 12px;font-weight:900;cursor:pointer}.tab.active{background:var(--nav);color:#fff}.reportCard{cursor:pointer;min-height:172px;display:flex;flex-direction:column;gap:5px;border-color:#ccdaeb}.reportCard.disabled{opacity:.45;cursor:not-allowed}.reportCard.disabled:hover{transform:none;box-shadow:0 10px 28px rgba(16,35,70,.06)}.reportIcon{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;color:#fff;font-weight:1000}.reportIcon.red{background:var(--red)}.reportIcon.orange{background:var(--orange);color:#111}.reportIcon.green{background:var(--green)}.reportIcon.blue{background:var(--blue)}.reportIcon.dark{background:var(--nav)}.reportIcon.purple{background:var(--purple)}.reportIcon.light{background:#ddecff;color:#0e4a9b}
.assetMeta{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}.assetCard{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.logline{border-left:4px solid var(--blue);background:#f7fbff;padding:9px 11px;border-radius:12px;margin:8px 0}.kpiBox{border:1px solid var(--line);border-left:5px solid var(--orange);border-radius:17px;padding:14px;margin:10px 0;background:#fff}
.modalback{position:fixed;inset:0;background:rgba(4,18,36,.58);display:flex;align-items:flex-start;justify-content:center;padding:32px 13px;z-index:99;overflow:auto}.modal{background:#fff;border-radius:22px;max-width:990px;width:100%;box-shadow:0 25px 80px rgba(0,0,0,.28);overflow:hidden}.modalhead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:17px 20px;border-bottom:1px solid var(--line);background:#f8fbff}.modalbody{padding:20px}.modalfoot{padding:15px 20px;border-top:1px solid var(--line);background:#f8fbff;display:flex;gap:9px;justify-content:flex-end}.x{border:1px solid var(--line);background:#fff;border-radius:12px;width:38px;height:38px;font-weight:1000;cursor:pointer}
.setup{max-width:900px;margin:38px auto}.setup .logo{background:var(--nav);color:#fff}pre{white-space:pre-wrap;font-family:inherit;background:#f7fbff;border:1px solid var(--line);border-radius:13px;padding:12px}
@media(max-width:900px){.app{display:block}.sidebar{position:relative;height:auto}.main{padding:14px}.grid{grid-template-columns:1fr}.col-3,.col-4,.col-6,.col-8,.col-12{grid-column:1}.formgrid{grid-template-columns:1fr}.topbar{display:block}}


/* V8 refinements */
.main{margin:0 auto auto auto; align-self:start}
#view{width:100%}
html,body{min-height:100%; overflow-x:hidden}
.search{color:var(--ink); caret-color:var(--blue)}
.kioskWrap{max-width:960px;margin:0 auto}
.kioskGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.kioskCard{min-height:150px;cursor:pointer;display:flex;flex-direction:column;gap:8px;justify-content:center;align-items:flex-start}
.kioskCard:hover{transform:translateY(-2px);box-shadow:0 18px 40px rgba(16,35,70,.12);border-color:#a9c4ea}
.copyBox{width:100%;min-height:260px;border:1px solid var(--line);border-radius:14px;padding:12px}
.sectionTitle{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:18px 0 8px;font-weight:1000}

/* V9 */
.copyBox{width:100%;min-height:260px;border:1px solid var(--line);border-radius:14px;padding:12px}


/* V11 accident/settings polish */
.featureGrid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.featureCheck{border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fbff;font-size:13px;font-weight:800;display:flex;gap:7px;align-items:center}
.featureCheck input{width:auto}
.accActions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;min-width:230px}
.accActions .btn{justify-content:center;width:100%;font-size:12px;padding:8px 9px;min-height:34px}
@media(max-width:1000px){.featureGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.accActions{grid-template-columns:1fr}}
#gateopsBusy{position:fixed;inset:0;z-index:9999;background:rgba(7,20,38,.72);display:none;align-items:center;justify-content:center;padding:20px}
.gateopsBusyCard{width:min(440px,100%);background:#fff;border-radius:20px;padding:28px;text-align:center;box-shadow:0 24px 80px rgba(0,0,0,.3)}
.gateopsSpinner{width:42px;height:42px;border:4px solid #dce8f5;border-top-color:#1677ff;border-radius:50%;margin:0 auto 16px;animation:gateopsSpin .8s linear infinite}
.gateopsProgress{height:10px;background:#e7eef6;border-radius:999px;overflow:hidden;margin:16px 0 8px}
.gateopsProgress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#1677ff,#14b8a6);transition:width .2s ease}
@keyframes gateopsSpin{to{transform:rotate(360deg)}}
#gateopsSyncStatus{position:fixed;right:18px;bottom:18px;z-index:8000;padding:10px 14px;border-radius:999px;color:#fff;font-size:13px;font-weight:800;box-shadow:0 8px 30px rgba(0,0,0,.2)}
#gateopsSyncStatus.saving{background:#205da8}#gateopsSyncStatus.saved{background:#16815d}#gateopsSyncStatus.error{background:#b42318}
.btn:disabled{opacity:.58;cursor:not-allowed}

/* V13 access/device control */
.lockscreen{min-height:70vh;display:flex;align-items:center;justify-content:center}.lockcard{max-width:560px;text-align:center;border:2px solid #fecaca;background:#fff7f7}.setup .card{max-width:760px;margin:auto}.table td .btn{margin:2px}

/* V15 final polish */
.accessGrid{display:grid;grid-template-columns:1.1fr .9fr;gap:16px;align-items:start}
.accessCard{min-height:420px;display:flex;flex-direction:column}
.accessCard .cardHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:12px}
.staffActions,.accFlow{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.staffActions .btn,.accFlow .btn{width:100%;justify-content:center;min-height:34px;font-size:12px;padding:8px 9px}
.checkReminder{border-left:4px solid #f59e0b;background:#fff7ed;padding:10px 12px;border-radius:12px;margin:8px 0}
@media(max-width:1000px){.accessGrid{grid-template-columns:1fr}.staffActions,.accFlow{grid-template-columns:1fr}}
.taskDone{opacity:.62}
.taskDone td:nth-child(2) b{text-decoration:line-through}
.redText{color:#b22b2b;font-weight:700}

/* V29 guided accident recovery */
.accCaseList{display:grid;gap:14px}
.accidentCase{border-left:6px solid var(--blue)}
.accidentCase.greenBorder{border-left-color:var(--green)}
.accidentCase.purpleBorder{border-left-color:var(--purple)}
.accidentCase.redBorder{border-left-color:var(--red)}
.accidentCase.orangeBorder{border-left-color:var(--orange)}
.accidentCase.blueBorder{border-left-color:var(--blue)}
.accCaseHead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.accCaseHead h3{margin:10px 0 4px}.accRef{font-size:14px;letter-spacing:.04em}
.accSteps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:16px 0}
.accStep{display:flex;align-items:center;gap:7px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:13px;background:#f8fafc;color:var(--muted)}
.accStep span{flex:0 0 27px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#e2e8f0;color:#475569;font-weight:1000}
.accStep small{font-weight:850;line-height:1.15}.accStep.done{background:#ecfdf3;border-color:#a7e4bf;color:#126a3b}.accStep.done span{background:var(--green);color:#fff}
.accStep.overdue{background:#fff1f2;border-color:#fecdd3;color:#a3132a}.accStep.overdue span{background:var(--red);color:#fff}
.caseHero{padding:14px 16px;background:#f7fbff;border:1px solid var(--line);border-radius:16px;margin-bottom:12px}
.caseActionGroups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
.caseActionGroups section{border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.caseActionGroups section h4{margin-bottom:10px}.logline[onclick]{cursor:pointer}
@media(max-width:900px){.accCaseHead{display:block}.accCaseHead>.btn{margin-top:10px}.accSteps{grid-template-columns:repeat(2,minmax(0,1fr))}.caseActionGroups{grid-template-columns:1fr}}
.assetGroup td{background:#eaf2fd;color:#183b68;font-size:12px;font-weight:1000;text-transform:uppercase;letter-spacing:.06em;border-top:12px solid #fff}
.tableScroll{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
#modalRoot{position:relative;z-index:9998}
@media(max-width:700px){
 .modalback{position:fixed;inset:0;width:100vw;height:100dvh;padding:max(8px,env(safe-area-inset-top)) 8px max(8px,env(safe-area-inset-bottom));align-items:flex-start;overflow:hidden}
 .modal{max-height:calc(100dvh - 16px);display:flex;flex-direction:column;border-radius:16px}
 .modalhead{flex:0 0 auto;padding:13px 14px}
 .modalbody{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px}
 .modalfoot{flex:0 0 auto;position:sticky;bottom:0;padding:11px 14px;padding-bottom:max(11px,env(safe-area-inset-bottom))}
 .modalfoot .btn{flex:1;justify-content:center}
 body:has(.modalback){overflow:hidden}
}
.evidenceGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:12px 0}
.evidenceItem{display:flex;flex-direction:column;min-width:0;border:1px solid var(--line);border-radius:13px;overflow:hidden;background:#f8fbff;color:var(--ink);text-decoration:none}
.evidenceItem img,.evidenceItem video{width:100%;height:105px;object-fit:cover;background:#0f172a}
.evidenceItem span{padding:8px;font-size:12px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.disabledField{opacity:.55}.disabledField input{background:#eef2f7}
.reminderHead{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.reminderHead h3{margin-bottom:4px}.reminderGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:9px;margin-top:12px}
.reminderCard{width:100%;display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;text-align:left;border:1px solid #f3c2c8;border-radius:14px;padding:11px;background:#fff7f8;color:var(--ink);cursor:pointer}
.reminderCard:hover{border-color:var(--red);box-shadow:0 8px 22px rgba(180,35,55,.12);transform:translateY(-1px)}
.reminderCard small{display:block;color:var(--muted);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.reminderCard strong{color:#a3132a;font-size:12px}.reminderIcon{width:30px;height:30px;border-radius:10px;background:#ffe1e5;color:#a3132a;display:grid;place-items:center;font-weight:1000}
@media(max-width:600px){.reminderHead{align-items:center}.reminderGrid{grid-template-columns:1fr}.reminderCard{grid-template-columns:auto minmax(0,1fr)}.reminderCard strong{display:none}}
.coverageHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:8px 0}.guardCoverageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.guardCoverageRow{display:grid;grid-template-columns:minmax(150px,1fr) minmax(150px,1fr);gap:8px;align-items:center;border:1px solid var(--line);border-radius:14px;padding:10px;background:#f8fbff}
.guardCoverageRow small{display:block;color:var(--muted);margin-top:3px}.guardCoverageRow select,.guardCoverageRow input{width:100%;border:1px solid var(--line);border-radius:11px;padding:9px;background:#fff}.guardTemp{grid-column:2}
@media(max-width:800px){.guardCoverageGrid{grid-template-columns:1fr}.guardCoverageRow{grid-template-columns:1fr}.guardTemp{grid-column:1}}
.vehicleCoverageGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.vehicleCoverageRow{display:grid;grid-template-columns:minmax(145px,1fr) minmax(145px,1fr);gap:8px;align-items:center;border:1px solid #cddff7;border-radius:14px;padding:10px;background:#f4f8ff}
.vehicleCoverageRow small{display:block;color:var(--muted);margin-top:3px}.vehicleCoverageRow select,.vehicleCoverageRow input{width:100%;border:1px solid var(--line);border-radius:11px;padding:9px;background:#fff}.vehicleTemp{grid-column:2}
.checkAssetCard{padding:14px;min-height:190px;display:flex;flex-direction:column;gap:8px}.checkAssetCard h4{font-size:15px;margin:0}.checkAssetCard p{margin:0}.checkCardTop,.checkCardFoot{display:flex;align-items:center;justify-content:space-between;gap:8px}.checkType{font-size:10px;font-weight:1000;text-transform:uppercase;letter-spacing:.07em;color:var(--muted)}.checkCardFoot{margin-top:auto;padding-top:8px;border-top:1px solid var(--line)}.checkCardFoot small{color:var(--muted)}.checkAssetCard .btn{min-height:32px;padding:7px 10px;font-size:12px}
.checkGroup{background:rgba(240,245,251,.68);border:1px solid var(--line);border-radius:18px;padding:14px}.checkGroupHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.checkGroupHead h3,.checkGroupHead p{margin:0}.checkGroupHead p{margin-top:4px}.checkGroup>.grid{margin:0}
@media(max-width:1100px){.checkAssetCard{grid-column:span 4}.vehicleCoverageGrid{grid-template-columns:1fr}}
@media(max-width:900px){.vehicleCoverageRow{grid-template-columns:1fr}.vehicleTemp{grid-column:1}.checkAssetCard{grid-column:1}}
