/* Brand Map GAT 2025 (v2.2): headlines Montserrat ExtraBold caps, body Lato; colours from slides 19-22. */
@font-face{font-family:Lato;font-weight:300;font-display:swap;src:url(/fonts/Lato-Light.ttf) format("truetype")}
@font-face{font-family:Lato;font-weight:400;font-display:swap;src:url(/fonts/Lato-Regular.ttf) format("truetype")}
@font-face{font-family:Lato;font-weight:700;font-display:swap;src:url(/fonts/Lato-Bold.ttf) format("truetype")}
@font-face{font-family:Montserrat;font-weight:800;font-display:swap;src:url(/fonts/Montserrat-ExtraBold.ttf) format("truetype")}
:root{
  --aero-green:#41B64F; --forest:#34903F; --mint:#63C76F; --deep-green:#004E00;
  --deep-blue:#005F73; --chill-blue:#007681;
  --near-black:#242424; --dark-grey:#646464; --mid-grey:#949494; --light-grey:#E4E4E4; --near-white:#F4F4F4;
  --gradient:linear-gradient(90deg,#63C76F,#34903F);
  --danger:#B3261E; /* not in brand map: used only for error/overdue states */
  --radius:12px;
}
*{box-sizing:border-box}
html,body{margin:0;background:var(--near-white);color:var(--near-black);font:400 16px/1.45 Lato,system-ui,sans-serif}
h1,h2,h3{font-family:Montserrat,Lato,sans-serif;font-weight:800;text-transform:uppercase;letter-spacing:.02em;margin:.2em 0 .5em}
h1{font-size:1.35rem} h2{font-size:1.05rem} h3{font-size:.9rem;color:var(--dark-grey)}
a{color:var(--deep-green)}
.top{position:sticky;top:0;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:8px;
  background:#fff;padding:calc(10px + env(safe-area-inset-top)) 14px 10px;border-bottom:3px solid var(--aero-green)}
.brand img{display:block;height:22px;width:auto}
.who{font-size:.8rem;color:var(--dark-grey);text-align:right}
.view{max-width:760px;margin:0 auto;padding:14px 14px calc(90px + env(safe-area-inset-bottom))}
.nav{position:fixed;bottom:0;left:0;right:0;z-index:5;display:flex;background:#fff;border-top:1px solid var(--light-grey);
  padding-bottom:env(safe-area-inset-bottom)}
.nav a{flex:1;text-align:center;padding:12px 4px;font-size:.8rem;font-weight:700;color:var(--dark-grey);text-decoration:none}
.nav a.on{color:var(--deep-green);box-shadow:inset 0 3px 0 var(--aero-green)}
.offline{background:var(--near-black);color:#fff;text-align:center;padding:8px;font-size:.9rem}
.card{background:#fff;border-radius:var(--radius);padding:14px;margin:0 0 12px;box-shadow:0 1px 2px rgba(0,0,0,.06)}
.muted{color:var(--dark-grey)} .small{font-size:.85rem}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:46px;padding:0 16px;border-radius:10px;
  border:2px solid var(--forest);background:var(--forest);color:#fff;font:700 1rem Lato,sans-serif;cursor:pointer;text-decoration:none}
.btn.alt{background:#fff;color:var(--deep-green)} .btn.ghost{background:transparent;border-color:var(--light-grey);color:var(--near-black)}
.btn.danger{background:#fff;border-color:var(--danger);color:var(--danger)}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.block{width:100%}
.actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.actions .wide{grid-column:1/-1}
input,select,textarea{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--mid-grey);border-radius:10px;font:400 1rem Lato,sans-serif;background:#fff;color:var(--near-black)}
textarea{min-height:110px}
label{display:block;font-weight:700;font-size:.9rem;margin:10px 0 4px}
.tabs{display:flex;gap:6px;overflow-x:auto;margin:0 0 10px;padding-bottom:2px}
.tabs button{flex:none;min-height:38px;padding:0 14px;border-radius:19px;border:1px solid var(--light-grey);background:#fff;font:700 .85rem Lato;color:var(--dark-grey)}
.tabs button.on{background:var(--deep-green);border-color:var(--deep-green);color:#fff}
.row{display:flex;gap:8px;align-items:center}
.lead{display:block;text-decoration:none;color:inherit}
.lead .nm{font-weight:700;font-size:1.05rem}
.badge{display:inline-block;padding:2px 9px;border-radius:10px;font-size:.75rem;font-weight:700;background:var(--light-grey);color:var(--near-black);margin:2px 4px 2px 0}
.badge.green{background:var(--mint);color:var(--near-black)} .badge.blue{background:var(--chill-blue);color:#fff}
.badge.late{background:var(--danger);color:#fff}
.kv{display:grid;grid-template-columns:110px 1fr;gap:4px 10px;font-size:.95rem} .kv dt{color:var(--dark-grey)} .kv dd{margin:0;word-break:break-word}
.log{border-left:3px solid var(--light-grey);padding:4px 0 4px 10px;margin:8px 0;font-size:.92rem;white-space:pre-wrap}
.toast{position:fixed;left:50%;bottom:calc(80px + env(safe-area-inset-bottom));transform:translateX(-50%);background:var(--near-black);color:#fff;
  padding:10px 16px;border-radius:10px;z-index:10;max-width:90vw}
.hero{background:var(--gradient);color:#fff;border-radius:var(--radius);padding:18px;margin-bottom:12px}
.hero h1{color:#fff}
dialog{border:0;border-radius:var(--radius);padding:16px;width:min(520px,94vw)} dialog::backdrop{background:rgba(0,0,0,.4)}
.chk{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid var(--near-white);font-weight:400}
.chk input{width:22px;min-height:22px;height:22px}
.steps li{margin:6px 0}
.err{color:var(--danger);font-weight:700}
@media (min-width:1000px){.view{max-width:1100px}.split{display:grid;grid-template-columns:420px 1fr;gap:14px}}
