:root{--brand: #0b3d5c;--accent: #f5a623;--ok: #1e7b34;--bad: #b3261e;--bg: #f6f8fa;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:#111}*{box-sizing:border-box}body{margin:0;background:var(--bg)}.app{max-width:720px;margin:0 auto;min-height:100vh;padding-bottom:calc(64px + env(safe-area-inset-bottom))}header{display:flex;justify-content:space-between;align-items:center;background:var(--brand);color:#fff;padding:12px 16px;padding-top:calc(12px + env(safe-area-inset-top));position:sticky;top:0;z-index:2}header h1{font-size:1.1rem;margin:0}.net{font-size:.75rem;padding:2px 8px;border-radius:10px}.net.on{background:#2e7d32}.net.off{background:#8d6e63}main{padding:12px 16px}nav{position:fixed;bottom:0;left:0;right:0;display:flex;background:#fff;border-top:1px solid #ddd;padding-bottom:env(safe-area-inset-bottom);z-index:2}nav a{flex:1;text-align:center;padding:14px 0;color:#444;text-decoration:none;font-size:.9rem;position:relative}nav a.active{color:var(--brand);font-weight:600;border-top:3px solid var(--brand)}.badge{background:var(--bad);color:#fff;border-radius:10px;font-size:.7rem;padding:1px 6px;margin-left:4px}button{font:inherit;padding:10px 14px;border-radius:8px;border:1px solid #bbb;background:#fff;margin:4px 4px 4px 0;min-height:44px}button.primary{background:var(--brand);color:#fff;border-color:var(--brand)}button.primary:disabled{background:#8aa4b5;border-color:#8aa4b5}button.big{width:100%;font-size:1.1rem;padding:14px}button.ok{border-color:var(--ok);color:var(--ok)}button.bad{border-color:var(--bad);color:var(--bad)}button.link{border:none;background:none;color:var(--brand);text-decoration:underline;padding:4px 0;min-height:0}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:8px}.card{background:#fff;border-radius:10px;padding:12px;box-shadow:0 1px 2px #00000014}.card .value{font-size:1.5rem;font-weight:700;color:var(--brand)}.card .label{font-size:.8rem;color:#555}.card-row{background:#fff;border-radius:8px;padding:8px 12px;margin:6px 0}h2{font-size:1.05rem;margin:20px 0 8px}fieldset{background:#fff;border:1px solid #ddd;border-radius:10px;margin:12px 0;padding:8px 12px 12px}legend{font-weight:600;padding:0 4px}.field{display:flex;flex-direction:column;margin:6px 0;flex:1;min-width:0}.field span{font-size:.8rem;color:#444;margin-bottom:2px}input,select,textarea{font:inherit;font-size:16px;padding:8px;border:1px solid #bbb;border-radius:6px;width:100%;background:#fff}.row{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}.check{display:flex;align-items:center;gap:10px;padding:8px 0;min-height:44px}.check input{width:22px;height:22px;flex:none}.group h4{margin:8px 0 0;font-size:.85rem;color:var(--brand)}.list{list-style:none;padding:0}.list li a{display:block;background:#fff;border-radius:8px;padding:10px 12px;margin:6px 0;color:inherit;text-decoration:none}.sub{font-size:.85rem;color:#555}.plain{padding-left:18px}.pill{display:inline-block;font-size:.72rem;padding:2px 8px;border-radius:10px;margin-left:6px;vertical-align:middle}.pill.ok{background:#d7f0dc;color:var(--ok)}.pill.warn{background:#fde2e1;color:var(--bad)}.pill.rec{background:#fff1d6;color:#8a5a00}.status{font-size:.8rem;padding:2px 8px;border-radius:10px;background:#eee}.status.flown{background:#d7f0dc;color:var(--ok)}.alert{background:#fde2e1;color:var(--bad);padding:10px;border-radius:8px;margin:8px 16px}.hint{color:#555;font-size:.9rem}.small{font-size:.75rem}.drill,.drill-row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;background:#fff;border-radius:8px;padding:6px 10px;margin:4px 0}.drill-detail{flex-basis:100%;font-size:.9rem}.msg{background:#e8f0fe;padding:10px;border-radius:8px}.battery{border-top:1px solid #eee}.backup{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;background:#fff1d6;color:#5c3d00;padding:8px 12px;margin:8px 16px;border-radius:8px;font-size:.9rem}.backup.ok{background:#d7f0dc;color:var(--ok)}.results{padding-left:18px}.results .bad{color:var(--bad)}.results .ok{color:var(--ok)}.sync-warning{background:#fde2e1;color:var(--bad);font-weight:600;padding:8px 10px;border-radius:8px;margin:8px 0}.test-banner{position:sticky;top:0;z-index:1000;box-sizing:border-box;height:calc(32px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 8px 0;line-height:30px;background:#ffd400;color:#000;font-weight:800;text-align:center;letter-spacing:.04em;border-bottom:2px solid #000}.has-test-banner header{top:calc(32px + env(safe-area-inset-top));padding-top:12px}.alert.usage{background:#fff4d6;color:#5a3b00;border-color:#e0a800}meter{width:100%;height:1.2rem}:root{--go: #1b8a3a;--caution: #d68a00;--nogo: #c62828;--nodata: #9e9e9e}.home-actions{display:grid;grid-template-columns:2fr 1fr;gap:8px;margin-bottom:6px}.overall{padding:14px;border-radius:10px;color:#fff;font-size:1.3rem;margin:8px 0}.overall.go{background:var(--go)}.overall.caution{background:var(--caution)}.overall.nogo{background:var(--nogo)}.overall.nodata{background:var(--nodata)}.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:6px;margin:8px 0}.tile{border-radius:8px;padding:8px;border-left:8px solid var(--nodata);background:#f6f7f9}.tile.go{border-color:var(--go)}.tile.caution{border-color:var(--caution)}.tile.nogo{border-color:var(--nogo);background:#fdecea}.tile .t-label{font-size:.8rem;color:#555}.tile .t-value{font-weight:600}.attribution{font-weight:600;margin:4px 0}.gauge svg,.sun svg,.battery-bar svg,.chart{width:100%;max-width:420px;display:block}figure{margin:10px 0}figcaption{font-size:.85rem}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.chip{border-radius:18px;padding:10px 14px;border:1px solid #b8c2cc;background:#fff;min-height:44px}.chip.on,.yesno button.on,.seg button.on{background:#2f6fb0;color:#fff;border-color:#2f6fb0}.yesno{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0}.yesno button{min-height:44px;padding:8px 14px}.seg button{font-size:.8rem;padding:4px 8px}.zone{padding:6px 8px;border-left:6px solid var(--caution);margin:4px 0;background:#fff8e8}.zone.nogo{border-color:var(--nogo);background:#fdecea}.zone small.block{display:block;color:#555}.night.nogo{color:var(--nogo);font-weight:600}.ladder{margin:8px 0}.rungs{display:flex;flex-wrap:wrap;gap:4px;align-items:stretch;margin:3px 0}.rungs .lvl{width:2.2em;font-weight:700;align-self:center}.rung{flex:1 1 120px;border:2px solid #b8c2cc;border-radius:6px;padding:6px;font-size:.85rem;background:#fff;display:flex;justify-content:space-between;gap:4px}.rung.passed{background:var(--go);border-color:var(--go);color:#fff}.gate{text-align:center;font-size:.85rem;border:2px dashed #6b7a8a;border-radius:6px;padding:4px;margin:6px 0}.gate.done{border-style:solid;border-color:var(--go);color:var(--go);font-weight:700}.cred{border-left:6px solid #2f6fb0}.cred.expired{border-left-color:var(--nogo)}.cred-ref{font-size:1.4rem;font-weight:700;letter-spacing:.04em;word-break:break-all}.cred-img{max-width:100%;border-radius:6px;margin:6px 0}.check.big-tick input,fieldset[data-testid=checklist] input[type=checkbox]{width:28px;height:28px;margin-right:10px}fieldset[data-testid=checklist] .check{min-height:44px;display:flex;align-items:center}.run-form{border:1px solid #d0d7de;border-radius:8px;padding:8px;margin:6px 0 12px}.step-row,.shot-row{display:flex;justify-content:space-between;gap:8px;align-items:center;margin:4px 0}.advisory{color:#7a5200}.setting-row{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.set-label{color:#556;font-size:.75rem}.small{font-size:.85rem}
