/* ESO Training Sandbox — modeled on the ESO EHR look (ESO-AUDIT.md §8). */
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;background:#eef1f4;color:#1c2733}
a{color:#0b6fa4}.muted{color:#6b7a89}.small{font-size:.85em}.error{color:#b00020}.right{text-align:right}.center{text-align:center}
.suitebar{background:#14202e;color:#fff;display:flex;align-items:center;gap:14px;padding:8px 16px}
.eso-word{font-weight:700;font-style:italic;letter-spacing:-1px;font-size:1.3em}.eso-word.big{font-size:2.6em;color:#14202e}
.suite-title{font-weight:600}.suite-user{margin-left:auto;font-size:.9em}.suite-user a{color:#9fd3ee}
.train-banner{background:#fff3cd;border-bottom:2px solid #e0a800;color:#664d03;padding:7px 16px;font-size:.9em}
.mainnav{background:#fff;border-bottom:1px solid #d5dce2;padding:8px 16px;display:flex;gap:18px}
main{max-width:1180px;margin:0 auto;padding:18px 16px 60px}
h1{font-size:1.5em}h2{font-size:1.1em;text-transform:uppercase;letter-spacing:.03em}
.loginbody{background:#14202e;display:flex;align-items:center;justify-content:center;min-height:100vh}
.login-card{background:#fff;border-radius:10px;padding:32px;max-width:380px;width:92%}
.login-card label{display:block;margin:12px 0}.login-card input{width:100%;padding:9px;margin-top:4px}
.cardform label{display:block;margin:10px 0}.cardform input,.cardform select,.cardform textarea{width:100%;padding:8px;margin-top:3px}
.cardform.wide{max-width:720px}
.greenbtn{background:#43a047;color:#fff;border:0;border-radius:5px;padding:9px 18px;cursor:pointer;font-size:.95em;text-decoration:none;display:inline-block}
.greenbtn:hover{background:#388e3c}.greenbtn.alt{background:#8a97a5}.greenbtn:disabled{opacity:.5}
.delbtn{background:none;border:0;color:#c62828;cursor:pointer;font-size:.95em}
.records{width:100%;border-collapse:collapse;background:#fff}
.records th,.records td{border-bottom:1px solid #e2e8ee;padding:8px;text-align:left;font-size:.93em}
.icon.lock{color:#2e7d32}.icon.draft{color:#1565c0}
.listbar{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:12px 0}
.tile{background:#fff;border:1px solid #d5dce2;border-radius:8px;padding:14px;text-decoration:none;color:inherit;display:block;position:relative}
.tile.started{border-color:#43a047}.tile .corner{color:#43a047;font-weight:700}
.tileform{margin:0}
/* chart shell */
.chartbar{background:#37474f;color:#fff;display:flex;align-items:center;gap:14px;padding:8px 14px;border-radius:6px 6px 0 0}
.chartbar .homebtn{color:#fff;text-decoration:none;font-size:1.2em}.patientdd{font-weight:600}
.chart-actions{margin-left:auto;display:flex;gap:10px;align-items:center}
.iconbtn{background:none;border:1px solid #90a4ae;color:#fff;border-radius:50%;width:32px;height:32px;cursor:pointer;font-size:1em}
.bolt{color:#ef5350;font-size:1.3em}
.tabbar{background:#29b6f6;display:flex;flex-wrap:wrap;border-radius:0 0 6px 6px;overflow:hidden}
.tab{color:#fff;text-decoration:none;padding:11px 16px;font-weight:600;font-size:.92em;letter-spacing:.02em}
.tab.on{background:#0288d1}.tab:hover{background:#03a9f4}
.scenario-note,.locked-note{background:#e3f2fd;border:1px solid #90caf9;padding:8px 12px;margin:12px 0;border-radius:6px}
.locked-note{background:#e8f5e9;border-color:#a5d6a7}
.withnav{display:flex;gap:0;margin-top:14px;align-items:flex-start}
.subnav{background:#fff;min-width:170px;border:1px solid #d5dce2;border-radius:6px;padding:8px 0;position:sticky;top:10px}
.subnav a{display:block;padding:8px 14px;color:#37474f;text-decoration:none;font-size:.88em;font-weight:600}
.subnav a:hover{background:#eceff1}
.tabbody{flex:1;padding-left:16px;min-width:0}
.card{background:#fff;border:1px solid #d5dce2;border-radius:6px;padding:16px;margin-bottom:16px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.grid.single{grid-template-columns:1fr}
.field label{display:block;font-size:.85em;color:#546e7a;margin-bottom:4px;font-weight:600}
.field input,.field select,.field textarea{width:100%;padding:8px;border:1px solid #b0bec5;border-bottom:2px dashed #90a4ae;border-radius:4px;background:#fff}
.field.wide{grid-column:1/-1}
.pillgroup{display:flex;flex-wrap:wrap;gap:6px}
.pill{background:#eceff1;border:1px solid #b0bec5;border-radius:20px;padding:6px 13px;cursor:pointer;font-size:.88em}
.pill.on{background:#29b6f6;color:#fff;border-color:#0288d1}
.checkgroup{display:flex;flex-wrap:wrap;gap:10px}.check{font-weight:400}
.sectionform .greenbtn{margin-top:12px}.saved-note{color:#2e7d32;margin-left:8px}
.fixedbar{position:sticky;bottom:0;background:#e8f5e9;border-top:2px solid #43a047;padding:10px;display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.segcontrol{display:flex;gap:0;margin-bottom:10px}.seg{border:1px solid #90a4ae;background:#eceff1;padding:7px 16px;cursor:pointer}.seg.on{background:#0288d1;color:#fff}
.hidden{display:none !important}
/* slide-overs, pickers, modals */
.slideover{position:fixed;top:0;right:0;width:min(480px,96vw);height:100vh;background:#fff;box-shadow:-4px 0 18px rgba(0,0,0,.3);z-index:50;overflow-y:auto;padding:16px}
.slide-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.picker{position:fixed;inset:0;background:#101c28;z-index:60;overflow-y:auto;padding:18px;color:#fff}
.pickgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;margin-top:14px}
.navytile{width:100%;background:#1d3247;color:#fff;border:1px solid #33506e;border-radius:6px;padding:16px 10px;cursor:pointer;font-size:.95em}
.navytile:hover{background:#274a68}.badge{background:#43a047;border-radius:10px;padding:1px 8px}
.pickersearch{padding:9px;width:260px}
.modal{position:fixed;inset:0;background:rgba(10,20,30,.55);z-index:70;display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;padding:24px 10px}
.modal-card{background:#fff;border-radius:8px;padding:20px;max-width:640px;width:96%}
.modal-card.wide{max-width:900px}
.valhead{display:flex;gap:14px;align-items:center}.valcount{color:#c62828;font-size:2em;font-weight:700}
.issuebtn{display:block;width:100%;text-align:left;background:#fdecea;border:1px solid #ef9a9a;color:#b71c1c;border-radius:5px;padding:8px 12px;margin:5px 0;cursor:pointer}
.bigcheck{font-size:3em;color:#43a047}
.genbtn{width:100%;background:#1976d2;color:#fff;border:0;border-radius:6px;padding:13px;font-size:1.05em;cursor:pointer}
.ai-warning{color:#c62828;font-weight:600;margin:10px 0}
.action-banner{background:#f5f5f5;border-left:5px solid #f9a825;padding:10px 12px;margin:10px 0}
.narrative-text{white-space:pre-wrap;background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;padding:12px}
.cor{border-top:1px solid #ddd;margin-top:16px;padding-top:10px}
.sigbox{border:2px dashed #90a4ae;border-radius:6px;padding:22px;text-align:center;cursor:pointer;color:#546e7a}
.sigcanvas{border:2px dashed #90a4ae;border-radius:6px;background:#fff;cursor:crosshair;max-width:100%}
.signed-line{color:#2e7d32;font-weight:600}
.flowrow{display:flex;gap:14px;align-items:center;background:#fff;border-bottom:1px solid #e2e8ee;padding:9px 6px;flex-wrap:wrap}
.inline{display:inline}.inlineform{display:flex;gap:8px;margin-top:10px;align-items:center}
.chip{background:#e3f2fd;border-radius:12px;padding:2px 9px;font-size:.85em}
.axrow{border-bottom:1px solid #eee;padding:10px 0}.axrow-head{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.findings{margin:8px 0 4px 22px}.findings-head{font-weight:600;color:#546e7a;font-size:.88em}
.finding{padding:6px 8px;cursor:pointer;border-radius:5px}.finding:hover{background:#f5f5f5}
.finding .slider{display:inline-flex;gap:8px;margin-right:8px;color:#90a4ae}
.finding.present{background:#e3f2fd}.finding.present .s-check{color:#1565c0;font-weight:700}
.finding.absent{background:#fdecea}.finding.absent .s-x{color:#c62828;font-weight:700}
.finding em{color:#1565c0;font-style:normal;font-weight:600}
.fbrow{display:flex;gap:12px;padding:10px;border-bottom:1px solid #eee}
.fbrow.pass span:first-child{color:#2e7d32;font-weight:700}.fbrow.fail span:first-child{color:#c62828;font-weight:700}
.preview-text{white-space:normal;color:#37474f}
.imported-note{color:#2e7d32;font-weight:600}
.warnbox{background:#fff8e1;border:1px solid #ffe082;border-radius:6px;padding:10px 12px;margin:10px 0}
.conflictbox{background:#fdecea;border:1px solid #ef9a9a;border-radius:6px;padding:10px 12px;margin:10px 0}
.dosetable{width:100%;border-collapse:collapse}
.dosetable th,.dosetable td{border-bottom:1px solid #eee;padding:7px;text-align:left;font-size:.93em}
@media(max-width:760px){.withnav{flex-direction:column}.subnav{position:static;display:flex;flex-wrap:wrap;min-width:0}.tabbody{padding-left:0}}
/* ---- Phase 3: CAD sandbox (iNet model) + Pulsara ---- */
.cadbar{background:#101c28;color:#fff;display:flex;align-items:center;gap:14px;padding:9px 16px;border-bottom:3px solid #c9a227}
.cad-logo{font-weight:700;font-size:1.15em}.cad-logo em{font-style:normal;color:#9fd3ee}
.cad-title{font-weight:600}.connlight{color:#43a047;font-size:1.1em}.cadbar .suite-user a{color:#9fd3ee}
.cadval{padding:8px;border:1px solid #e2e8ee;border-radius:4px;background:#fafafa;min-height:20px}
.cad-actions-row{display:flex;gap:14px;margin-top:12px}
/* boards: status colors per CAD-INET-NOTES §2.5/§2.6 */
.cadboard td.up-avail,.up-avail{color:#1565c0}.cadboard td.up-dispatch,.up-dispatch{color:#8e1414}
.cadboard td.up-ack{color:#2e7d32}.cadboard td.up-enroute,.up-enroute{color:#2e7d32}
.cadboard td.up-atscene,.up-atscene{color:#2e7d32}.cadboard td.up-transport,.up-transport{color:#6a1b9a}
.cadboard td.up-atdest,.up-atdest{color:#c2185b}.cadboard td.up-oos,.up-oos{color:#212121}
.cadboard tr.ev-assigned td{color:#2e7d32}.cadboard tr.ev-held td{color:#6a1b9a}
.cadboard tr.ev-sched td{color:#c2185b}.cadboard tr.ev-closed td{color:#2e7d32}
.cadbadge{border-radius:10px;padding:1px 8px;font-size:.82em;font-weight:600;white-space:nowrap}
.cadbadge.warn{background:#fff3cd;color:#664d03}.cadbadge.bad{background:#fdecea;color:#b71c1c}
/* comment log: pale-yellow, time in a right column; dispatcher notes in blue */
.cadlog{background:#fffde7;border:1px solid #e0d9a8;border-radius:6px;padding:10px 12px;max-height:420px;overflow-y:auto}
.logline{display:flex;justify-content:space-between;gap:14px;padding:4px 0;border-bottom:1px dotted #e6dfae;font-size:.93em}
.logline.note .logtext{color:#1565c0}.logline.radio .logtext{color:#6a1b9a}
.logtime{color:#8a7d2a;font-size:.85em;white-space:nowrap}
/* crew (iNetMobile) chrome */
.cadmobile{max-width:900px;margin:0 auto}
.cadmap{position:relative;background:repeating-linear-gradient(0deg,#dfe9dc 0 34px,#cfe0cc 34px 36px),repeating-linear-gradient(90deg,#dfe9dc 0 34px,#cfe0cc 34px 36px);background-color:#dfe9dc;border:1px solid #b0bec5;border-radius:8px;min-height:230px;padding:12px;margin-bottom:0}
.maptools{position:absolute;top:8px;right:10px;background:rgba(255,255,255,.85);border-radius:4px;padding:3px 8px;font-size:.82em;color:#37474f}
.mappin{position:absolute;background:#1565c0;color:#fff;border-radius:14px;padding:3px 10px;font-size:.85em;font-weight:600}
.mappin.unitpin{left:8%;top:34%}.mappin.eventpin{right:12%;top:52%;background:#2e7d32}
.mapnote{position:absolute;left:10px;bottom:8px;background:rgba(255,255,255,.85);border-radius:4px;padding:3px 8px;font-size:.82em;color:#37474f}
.cadevent{background:rgba(255,255,255,.94);border:1px solid #90a4ae;border-radius:6px;padding:10px 14px;max-width:520px;margin-top:26px;position:relative}
.cadevent-title{font-weight:700;background:#37474f;color:#fff;margin:-10px -14px 8px;padding:6px 14px;border-radius:6px 6px 0 0}
.cadstatusbar{display:flex;align-items:center;gap:12px;background:#263238;color:#fff;padding:9px 12px;border-radius:0 0 6px 6px;flex-wrap:wrap}
.unitpill{font-weight:700;padding:5px 12px;border-radius:4px;background:#37474f;color:#fff;text-transform:uppercase}
.unitpill.up-avail{background:#1565c0}.unitpill.up-dispatch{background:#8e1414}.unitpill.up-ack{background:#2e7d32}
.unitpill.up-enroute{background:#2e7d32}.unitpill.up-atscene{background:#2e7d32}.unitpill.up-transport{background:#6a1b9a}
.unitpill.up-atdest{background:#c2185b}.unitpill.up-oos{background:#000}
.incchip{background:#fff9c4;color:#212121;border-radius:4px;padding:4px 9px;font-weight:700}
.locline{color:#b3e5fc;flex:1}.cadclock{font-variant-numeric:tabular-nums;font-weight:600}
.cadmsgline{background:#000;color:#fff;padding:7px 12px;font-size:.93em;min-height:20px}
.cadmsg-ok{color:#69f0ae;font-weight:600}.cadmsg-err{color:#ffb74d;font-weight:600}
.cadbtnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.cadbtnform{margin:0;display:inline}
.cadbtn{display:inline-block;background:#263238;color:#fff;border:1px solid #546e7a;border-bottom:4px solid #101c28;border-radius:6px;padding:14px 20px;font-size:1em;font-weight:600;cursor:pointer;text-decoration:none;text-align:center}
.cadbtn:hover{background:#37474f}.cadbtn:active{border-bottom-width:1px;transform:translateY(2px)}
.mileageform{display:flex;gap:22px;align-items:flex-start;flex-wrap:wrap}
.keypad{display:grid;grid-template-columns:repeat(3,64px);gap:6px}
.key{background:#37474f;color:#fff;border:0;border-radius:6px;padding:14px 0;font-size:1.05em;cursor:pointer}
.key:hover{background:#455a64}
#mileageInput{font-size:1.5em;letter-spacing:.15em;max-width:240px}
