@import url("https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap");
:root{font:15px "DM Sans",sans-serif;color:#172a2b;background:#f3f6f4;--green:#145749;--ink:#182e2a;--muted:#546862;--border:#dce6df;--white:#fff}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button,select{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid #3ca58b;outline-offset:3px}
.shell{display:grid;grid-template-columns:226px minmax(0,1fr);min-height:100vh}
aside{background:#102f29;color:#e5f2e9;padding:29px 17px;display:flex;flex-direction:column;gap:12px}
.brand{display:flex;gap:12px;align-items:center;color:white;text-decoration:none;font:800 20px Manrope,sans-serif;margin:0 7px 42px}.mark{background:#b9f1c8;color:#12382c;border-radius:11px;width:40px;height:40px;display:grid;place-items:center;font-size:26px}.brand small{display:block;font:700 9px "DM Sans",sans-serif;letter-spacing:.14em;color:#a6c6b5;margin-top:3px}
.side-label{font-size:10px;letter-spacing:.14em;font-weight:700;color:#a2beb2;margin-left:10px}nav{display:grid;gap:5px}nav button{background:none;border:0;color:#d3e6dc;text-align:left;padding:11px 12px;border-radius:8px;font-weight:600}nav button[aria-current]{background:#285448;color:#fff}nav button span{display:inline-block;width:24px;color:#b9f1c8}.side-bottom{margin-top:auto;padding:22px 10px 0;color:#bed4ca;font-size:13px}.demo-dot{display:inline-block;width:8px;height:8px;background:#a5e5b2;border-radius:50%;margin-right:7px}
.top{height:65px;background:white;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 34px;gap:12px;color:var(--muted);font-weight:700}.role{display:flex;align-items:center;gap:9px;font-size:13px}.role select{min-width:118px}
main{max-width:1320px;margin:auto;padding:30px 34px 48px}.hero{background:#16483e;background-image:radial-gradient(ellipse at 97% 5%,#397763,transparent 55%);border-radius:19px;color:#fff;padding:30px;display:flex;justify-content:space-between;align-items:flex-end;gap:16px}.hero p{color:#e2f0e7;margin:7px 0 0}.hero .eyebrow{color:#bef1cc}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
h1,h2,h3{font-family:Manrope,sans-serif;margin:0;color:inherit}h1{font-size:clamp(26px,4vw,39px);line-height:1.12;letter-spacing:-.045em;margin-top:7px}h2{font-size:20px;letter-spacing:-.025em}h3{font-size:16px}p{line-height:1.5}
.btn{border:1px solid transparent;border-radius:8px;background:var(--green);color:white;padding:9px 13px;font-weight:700;white-space:normal}.btn:hover{filter:brightness(.94)}.secondary{background:#fff;color:var(--green);border-color:var(--border)}.hero .btn{background:#c1f1ce;color:#13382d;flex-shrink:0}.compact{font-size:13px;padding:7px 10px}.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px;margin:18px 0}.metric,.panel{background:white;border:1px solid var(--border);border-radius:13px}.metric{padding:14px 16px}.metric strong{font:800 28px Manrope,sans-serif;display:block}.metric span,.muted,small{color:var(--muted)}.metric span{font-size:13px}.grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(260px,1fr);gap:15px}.panel{padding:19px;min-width:0;margin-bottom:13px}.panel-head{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:13px}.line{padding:12px 0;border-top:1px solid #e8ede9;display:flex;align-items:center;justify-content:space-between;gap:10px}.line:first-of-type{border-top:0}.line small,.unit small{display:block;margin-top:4px}.line-info{min-width:0;overflow-wrap:anywhere}.pill{display:inline-block;border-radius:30px;padding:5px 9px;background:#e9f1ef;color:#24584d;font-size:11px;font-weight:800;line-height:1.25}.warn{background:#fff1d5;color:#795017}.done{background:#dff3e4;color:#1e5835}.plain-title{margin-bottom:19px}.unit{border:1px solid var(--border);border-radius:9px;padding:12px;margin:9px 0}.unit-head{display:flex;justify-content:space-between;align-items:center;gap:10px}.unit p{margin:8px 0;white-space:pre-wrap}.schedule{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.slot{background:#f3f7f4;border-radius:8px;padding:10px;margin:6px 0}.callout{background:#fff4dc;border:1px solid #f3e2ba;color:#634817;border-radius:9px;padding:11px;margin:8px 0 13px}.photo-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0}.photo-row img{width:100%;height:130px;object-fit:contain;background:#eef2ef;border-radius:6px}.photo-box{background:#f1f6f2;border-radius:7px;padding:9px;min-width:0}.photo-box strong{display:block;margin-bottom:6px}
label.field{display:grid;gap:5px;font-weight:700;margin:9px 0}input,textarea,select{max-width:100%;border:1px solid #cddbd3;border-radius:7px;background:white;color:var(--ink);padding:8px}input[type=checkbox]{accent-color:var(--green)}textarea{resize:vertical;min-height:65px}fieldset{border:1px solid var(--border);border-radius:8px;margin:12px 0;padding:10px}fieldset label{display:block;padding:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:9px}.form-error{color:#a12828;min-height:1em}dialog{width:min(620px,calc(100vw - 24px));border:1px solid var(--border);border-radius:14px;padding:20px;color:var(--ink);max-height:92vh}dialog::backdrop{background:#0c2626a6}.modal-header{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:9px}#toast{position:fixed;bottom:18px;right:18px;max-width:calc(100vw - 36px);background:#123c32;color:white;border-radius:9px;padding:10px 14px;z-index:1}#toast:empty,#printout{display:none}.report-title{border-bottom:2px solid #16483e;padding-bottom:13px}.report-block{border-bottom:1px solid var(--border);padding:10px 0;break-inside:avoid}.report-block p{white-space:pre-wrap;margin:4px 0}
@media(max-width:900px){.shell{grid-template-columns:175px minmax(0,1fr)}main,.top{padding-left:17px;padding-right:17px}.grid{grid-template-columns:1fr}.brand{font-size:15px}.brand small{font-size:8px}}
@media(max-width:630px){.shell{display:block}aside{padding:10px 12px;gap:7px}.brand{margin:0}.mark{width:32px;height:32px;font-size:20px}.side-label,.side-bottom{display:none}nav{display:flex;overflow:auto}nav button{white-space:nowrap;padding:7px 8px;font-size:12px}nav button span{width:16px}.top{height:47px;font-size:12px}main{padding:15px 12px 30px}.hero{padding:18px;align-items:flex-start;flex-direction:column}.metrics{grid-template-columns:repeat(2,1fr);gap:7px}.panel{padding:12px}.schedule,.form-row{grid-template-columns:1fr}}
@media print{@page{size:A4;margin:14mm}body{background:white;color:#111;font-size:11pt}.shell,dialog,#toast{display:none!important}#printout{display:block}.photo-row img{height:145px}h2,h3{break-after:avoid}}

.calendar-grid{margin-top:16px}.agenda-toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:end;margin-bottom:16px}.agenda-toolbar .field{margin:0}.agenda-team{min-width:0;padding:12px;border:1px solid var(--border);border-radius:10px}.agenda-team h3{margin-bottom:10px}.agenda-team .slot p{margin:5px 0}.agenda-team .slot+.slot{margin-top:9px}details{padding:8px 0}summary{cursor:pointer;font-weight:700}

.dispatch-context{background:#eef6f1;border-radius:10px;padding:13px;margin:12px 0}.dispatch-context p{margin:4px 0 0;color:var(--muted)}.dispatch-choices{border:0;padding:0}.dispatch-choices legend{font-weight:800;margin-bottom:7px}.dispatch-choices .dispatch-choice{display:flex;align-items:center;gap:10px;border:1px solid var(--border);border-radius:9px;padding:10px 12px;margin:7px 0;cursor:pointer}.dispatch-choice small{display:block;margin-top:3px}.dispatch-choice:has(input:checked){background:#eef8f1;border-color:#578873}.dispatch-manual{display:none}.dispatch-choices:has([value=manual]:checked) .dispatch-manual{display:block}
.simulation-guide{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#e4f3eb;border:1px solid #bdd8c9;border-radius:13px;padding:16px 20px;margin-bottom:16px}.simulation-guide p{margin:5px 0 0}.simulation-guide .eyebrow{color:#306754;margin-bottom:4px}.simulation-guide .btn{flex-shrink:0}@media(max-width:630px){.simulation-guide{flex-direction:column;align-items:flex-start;gap:9px}}
.report-preview{margin-top:18px}.report-preview h1{font-size:28px}.simulation-guide .actions{justify-content:flex-end}@media(max-width:630px){.simulation-guide .actions{justify-content:flex-start}}
@media print{#printout>section{break-inside:avoid}.photo-row img{height:105px}.photo-row{margin:5px 0}.report-title p{margin:4px 0}.report-block{padding:5px 0}.report-block p{margin:2px 0;line-height:1.3}#printout>section>p{margin:4px 0 8px}}
.photo-row{display:block}.photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:8px}.photo-pair:last-child{margin-bottom:0}@media print{.photo-pair{break-inside:avoid}.report-block:has(.photo-row-long),#printout>section:has(.photo-row-long){break-inside:auto}}
[hidden]{display:none!important}.live-portal .role,.live-portal .side-bottom{display:none}.portal-actions{display:flex;gap:8px;align-items:center}.signed-out .shell{display:block}.signed-out aside,.signed-out .top{display:none}.login-layout{min-height:75vh;display:grid;grid-template-columns:1fr minmax(300px,440px);align-items:center;gap:42px;max-width:900px;margin:auto}.login-copy{background:#16483e;color:#fff;padding:38px;border-radius:22px}.login-copy .eyebrow{color:#c4f2ce}.login-panel{padding:24px}.login-panel .btn{width:100%}.portal-links{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0}.portal-links a{border:1px solid var(--border);border-radius:8px;padding:7px 10px;color:var(--green);text-decoration:none}.portal-links a[aria-current]{background:#e2f4e7;font-weight:700}@media(max-width:680px){.login-layout{grid-template-columns:1fr;gap:14px;min-height:0}.login-copy{padding:22px}.portal-actions span{display:none}.portal-actions .btn{padding:5px 7px}}
