/* Layout: field logbook — slim header, single column of panels, bottom tab bar like a native app. */
:root{
  --bg:#eef1f3; --panel:#ffffff; --ink:#15212b; --muted:#5b6a76; --line:#d5dce1; --soft:#e4e9ec;
  --accent:#e5600f; --accent-ink:#ffffff;
  --l1:#2a8c82; --l2:#c98a10; --l3:#b23a3a;
  --ok:#2f7d46; --ok-bg:#e3f2e7; --warn:#a86200; --warn-bg:#fdf1dc; --bad:#b23a3a; --bad-bg:#f8e3e3;
  --f-display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --f-body:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --f-mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --tabs-h:62px;
  color-scheme:light;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#10171d; --panel:#18222a; --ink:#e6edf1; --muted:#93a3ae; --line:#2b3943; --soft:#22303a;
  --accent:#f2782f; --accent-ink:#111;
  --l1:#3fa99d; --l2:#d39a2a; --l3:#cf5656;
  --ok:#6cc58a; --ok-bg:#1d3326; --warn:#f0b04a; --warn-bg:#3a2c12; --bad:#e78080; --bad-bg:#3a1d1d;
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#10171d; --panel:#18222a; --ink:#e6edf1; --muted:#93a3ae; --line:#2b3943; --soft:#22303a;
  --accent:#f2782f; --accent-ink:#111;
  --l1:#3fa99d; --l2:#d39a2a; --l3:#cf5656;
  --ok:#6cc58a; --ok-bg:#1d3326; --warn:#f0b04a; --warn-bg:#3a2c12; --bad:#e78080; --bad-bg:#3a1d1d;
  color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:15px;line-height:1.45;padding-bottom:calc(var(--tabs-h) + env(safe-area-inset-bottom,0px))}
body.noTabs{padding-bottom:env(safe-area-inset-bottom,0px)}
[hidden]{display:none!important}
img{max-width:100%}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
header.top{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line);padding-top:env(safe-area-inset-top,0px)}
.hd{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-block:10px}
.brand{display:flex;align-items:center;gap:10px;min-width:0;color:inherit;text-decoration:none}
.brand img{border-radius:7px}
.brand h1{font-family:var(--f-display);font-weight:700;font-size:24px;letter-spacing:.02em;margin:0;text-transform:uppercase;white-space:nowrap}
.hd-right{display:flex;gap:8px;align-items:center}
.me{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;padding:3px 10px 3px 3px;background:var(--panel);color:var(--ink);font:500 13px var(--f-body);text-decoration:none;max-width:200px}
.me span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av{flex:none;display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--soft);font:700 12px var(--f-display);letter-spacing:.04em;color:var(--ink);border:2px solid var(--c,var(--line))}
.rope{height:4px;background:repeating-linear-gradient(115deg,var(--accent) 0 8px,var(--ink) 8px 11px,var(--accent) 11px 19px,var(--panel) 19px 22px);opacity:.85}
.offline{background:var(--warn-bg);color:var(--warn);text-align:center;font-size:13px;padding:6px 16px}
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:6;background:var(--panel);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(5,1fr);padding:0 env(safe-area-inset-right,0px) env(safe-area-inset-bottom,0px) env(safe-area-inset-left,0px);height:calc(var(--tabs-h) + env(safe-area-inset-bottom,0px))}
.tabs a{position:relative;display:grid;justify-items:center;align-content:center;gap:2px;color:var(--muted);text-decoration:none;font:600 11px var(--f-body);letter-spacing:.02em}
.tabs svg{width:24px;height:24px;fill:currentColor}
.tabs a[aria-current="page"]{color:var(--accent)}
.tabs a[aria-current="page"]::before{content:"";position:absolute;top:0;left:25%;right:25%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}
.tabs .badge{position:absolute;top:6px;left:calc(50% + 6px)}
.badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--accent);color:var(--accent-ink);font:600 11px var(--f-body)}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
main{padding-block:18px 28px;display:grid;gap:16px}
h2{font-family:var(--f-display);font-weight:600;font-size:20px;letter-spacing:.04em;text-transform:uppercase;margin:0}
h3{font-family:var(--f-display);font-weight:600;font-size:17px;letter-spacing:.04em;text-transform:uppercase;margin:0}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px;min-width:0}
.panel-hd{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.narrow{max-width:560px;width:100%;justify-self:center}
.sub{color:var(--muted);font-size:13px}
.mono{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
.btn{font:600 14px var(--f-body);border-radius:6px;border:1px solid var(--line);background:var(--panel);color:var(--ink);padding:9px 14px;cursor:pointer;text-decoration:none;display:inline-block;text-align:center;min-height:40px}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.ok{background:var(--ok);color:var(--panel);border-color:var(--ok)}
.btn.ghost{border-color:transparent;background:transparent;color:var(--muted)}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.sm{padding:5px 10px;font-size:13px;min-height:32px}
.btn.block{width:100%}
.btn:disabled{opacity:.5;cursor:not-allowed}
.link{background:none;border:0;padding:0;color:var(--accent);font:inherit;cursor:pointer;text-decoration:underline}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.filters label{display:grid;gap:4px;font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;flex:1 1 160px}
select,input,textarea{font:inherit;font-size:16px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:9px 10px;min-width:0;width:100%}
textarea{resize:vertical;min-height:70px}
.levels{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.lvl{border:1px solid var(--line);border-radius:8px;padding:14px;background:var(--panel);display:grid;gap:4px;border-top:5px solid var(--c)}
.lvl .k{font-family:var(--f-display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:15px;color:var(--muted)}
.lvl .v{font-family:var(--f-display);font-weight:700;font-size:44px;line-height:1}
.lvl .v small{font-size:18px;color:var(--muted);font-weight:500;margin-left:3px}
.lvl .s{font-size:12px;color:var(--muted)}
.lvl.total{--c:var(--ink)}
.split{display:flex;height:10px;border-radius:5px;overflow:hidden;background:var(--soft);margin-top:12px}
.split i{display:block;height:100%}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--muted);margin-top:8px}
.legend b{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}
.alert{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--warn-bg);color:var(--warn);border:1px solid color-mix(in srgb,var(--warn) 35%,transparent);border-radius:8px;padding:12px 14px;flex-wrap:wrap}
.alert.okc{background:var(--ok-bg);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 35%,transparent)}
.alert.badc{background:var(--bad-bg);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 35%,transparent)}
.alert strong{font-weight:600}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bars{display:grid;gap:10px}
.bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;align-items:center}
.bar .n{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px}
.bar .h{font-family:var(--f-mono);font-size:13px;font-variant-numeric:tabular-nums}
.bar .t{grid-column:1/-1;height:8px;background:var(--soft);border-radius:4px;overflow:hidden}
.bar .t i{display:block;height:100%;background:var(--bc,var(--accent));border-radius:4px}
.empty-mini{color:var(--muted);font-size:14px;padding:8px 0;margin:0}
.loc{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 0;border-top:1px solid var(--line)}
.loc:first-child{border-top:0}
.loc .a{font-weight:500;overflow-wrap:anywhere}
.loc .m{font-size:12px;color:var(--muted)}
.loc .h{font-family:var(--f-mono);text-align:right}
.loc a{color:var(--accent);font-size:12px;text-decoration:none;text-align:right}
.entry{border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.entry+.entry{margin-top:8px}
.erow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 14px;cursor:pointer;width:100%;text-align:left;background:none;border:0;color:inherit;font:inherit}
.date{font-family:var(--f-mono);font-size:12px;color:var(--muted);text-align:center;line-height:1.2;min-width:44px}
.date b{display:block;font-family:var(--f-display);font-size:24px;color:var(--ink);font-weight:700}
.emain{min-width:0}
.emain .c{display:block;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.emain .a{display:block;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eside{display:grid;justify-items:end;gap:4px}
.hrs{font-family:var(--f-display);font-weight:700;font-size:22px;line-height:1}
.hrs small{font-size:13px;color:var(--muted);font-weight:500}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:2px 8px;white-space:nowrap}
.pill.ok{background:var(--ok-bg);color:var(--ok)}
.pill.wait{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}
.pill.mut{background:var(--soft);color:var(--muted)}
.lv{font-family:var(--f-display);font-weight:700;font-size:13px;color:#fff;border-radius:3px;padding:1px 6px;letter-spacing:.04em}
.lv1{background:var(--l1)} .lv2{background:var(--l2)} .lv3{background:var(--l3)}
.edetail{border-top:1px solid var(--line);padding:14px;display:grid;gap:14px}
dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:6px 14px;margin:0;font-size:14px}
dt{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding-top:2px}
dd{margin:0;overflow-wrap:anywhere}
.tags{display:flex;flex-wrap:wrap;gap:6px}
.tag{font-size:12px;background:var(--soft);border-radius:3px;padding:2px 7px}
.sign{border:1px dashed var(--line);border-radius:8px;padding:14px;display:grid;gap:10px}
.signed{background:var(--ok-bg);border:1px solid color-mix(in srgb,var(--ok) 35%,transparent);border-radius:8px;padding:12px 14px;color:var(--ok);display:grid;gap:2px}
.signed .sig{font-family:var(--f-display);font-size:22px;font-weight:600;color:var(--ink)}
.returned{background:var(--bad-bg);border:1px solid color-mix(in srgb,var(--bad) 35%,transparent);border-radius:8px;padding:12px 14px;color:var(--bad);display:grid;gap:4px}
.returned p{margin:0;color:var(--ink)}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14px}
.check input{width:20px;height:20px;margin-top:1px;flex:none}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.seg button{font:600 13px var(--f-body);border:0;background:var(--panel);color:var(--muted);padding:8px 12px;cursor:pointer}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--panel)}
form{display:grid;gap:14px;margin:0}
.field{display:grid;gap:5px}
.field>span{font-size:12px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.lvpick{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.lvpick label{position:relative;border:1px solid var(--line);border-radius:8px;padding:10px;text-align:center;cursor:pointer;font-family:var(--f-display);font-weight:700;font-size:20px;letter-spacing:.04em}
.lvpick input{position:absolute;opacity:0;pointer-events:none}
.lvpick label:has(input:checked){border-color:var(--c);background:color-mix(in srgb,var(--c) 14%,var(--panel));box-shadow:inset 0 0 0 1px var(--c)}
.lvpick label:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}
.lvpick label:has(input:disabled){opacity:.4;cursor:not-allowed}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font:500 13px var(--f-body);border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:999px;padding:7px 12px;cursor:pointer}
.chip[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--panel)}
.formfoot{display:flex;gap:10px;justify-content:flex-end;align-items:center;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:14px}
.note{font-size:13px;color:var(--muted)}
.err{color:var(--bad);font-size:13px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabs-h) + 14px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--panel);padding:10px 16px;border-radius:6px;font-size:14px;z-index:20;max-width:calc(100% - 32px)}
.state{text-align:center;padding:36px 16px;display:grid;gap:10px;justify-items:center}
.state h2{font-size:24px}
.state p{max-width:50ch;color:var(--muted);margin:0}
.people{display:grid}
.person{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:4px 12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}
.person:first-child{border-top:0}
.person .nm{font-weight:600;overflow-wrap:anywhere}
.person .meta{font-size:12px;color:var(--muted);overflow-wrap:anywhere}
.person .more{grid-column:1/-1}
.card-me{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center}
.card-me .av{width:56px;height:56px;font-size:22px;border-width:3px}
.code{font-family:var(--f-mono);font-size:22px;letter-spacing:.15em;background:var(--soft);border-radius:6px;padding:6px 12px;user-select:all}
.chat{display:grid;grid-template-rows:auto minmax(0,1fr) auto;height:calc(100dvh - 210px - env(safe-area-inset-bottom,0px) - env(safe-area-inset-top,0px));min-height:360px;padding:0;overflow:hidden}
.chat-hd{padding:10px 12px;border-bottom:1px solid var(--line);display:flex;gap:10px;align-items:center}
.msgs{overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:0}
.msg{display:grid;grid-template-columns:auto minmax(0,1fr);gap:8px;align-items:start;max-width:620px}
.msg.mine{align-self:flex-end;grid-template-columns:minmax(0,1fr)}
.msg.mine .av{display:none}
.bubble{background:var(--soft);border-radius:12px 12px 12px 3px;padding:8px 12px;min-width:0}
.msg.mine .bubble{background:color-mix(in srgb,var(--accent) 16%,var(--panel));border-radius:12px 12px 3px 12px}
.bubble .who{font-size:12px;font-weight:600;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.bubble .who time{font-weight:400;color:var(--muted)}
.bubble p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.dayline{align-self:center;font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.composer{display:flex;gap:8px;border-top:1px solid var(--line);padding:10px 12px}
.composer textarea{min-height:42px;height:42px;resize:none}
.thread{border-top:1px solid var(--line);padding-top:12px;display:grid;gap:10px}
.thread .msgs{padding:0;max-height:320px}
.thread .composer{border:0;padding:0}
.auth{max-width:420px;width:100%;justify-self:center;display:grid;gap:16px}
.auth .hero{text-align:center;display:grid;gap:8px;justify-items:center;padding-top:10px}
.auth .hero img{width:76px;height:76px;border-radius:18px}
.auth .hero h2{font-size:30px}
.auth .hero p{margin:0;color:var(--muted);max-width:36ch}
.foot{text-align:center;font-size:12px;color:var(--muted)}
.foot a{color:var(--muted)}
@media (min-width:900px){.tabs{top:auto;max-width:640px;left:50%;transform:translateX(-50%);border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0}}
@media (max-width:820px){.levels{grid-template-columns:repeat(2,1fr)}.grid2{grid-template-columns:1fr}}
@media (max-width:460px){.row2{grid-template-columns:1fr}.lvl .v{font-size:36px}.me span:last-child{display:none}.me{padding:3px}.brand h1{font-size:21px}#hdNew{padding:8px 10px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* qualifications */
.quals{display:grid;gap:12px}
.qcard{border:1px solid var(--line);border-radius:8px;padding:12px;display:grid;gap:10px;background:var(--panel)}
.qhd{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap}
.qslots{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qslot{display:grid;gap:4px;min-width:0}
.qlab{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.qthumb{display:grid;place-items:center;aspect-ratio:1.586;width:100%;max-width:100%;border-radius:8px;overflow:hidden;background:var(--soft);border:1px solid var(--line);padding:0;cursor:pointer;color:var(--muted);font:600 13px var(--f-body);text-decoration:none}
.qthumb img{width:100%;height:100%;object-fit:cover;display:block}
.qthumb.empty{border-style:dashed;text-align:center;padding:8px;overflow-wrap:anywhere}
.qthumb.add{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.qthumb.add:focus-within{outline:2px solid var(--accent);outline-offset:2px}
.qthumb.pdf{color:var(--accent)}
.qrep{font-size:12px;justify-self:start}
.qedit{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:10px}
.qexp input[type=date]:disabled{opacity:.5;cursor:not-allowed}
.qexp .check{margin-top:3px}
.zoom{position:fixed;inset:0;z-index:30;background:rgba(10,15,20,.92);display:grid;place-items:center;padding:calc(16px + env(safe-area-inset-top,0px)) 16px calc(16px + env(safe-area-inset-bottom,0px));gap:12px;grid-template-rows:1fr auto}
.zoom img{max-width:100%;max-height:100%;object-fit:contain;border-radius:6px}

.qpick{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;justify-self:start}
.qpick input{width:18px;height:18px}
.qpdf{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--soft)}
.qcard.qneed{border-color:var(--bad);box-shadow:inset 3px 0 0 var(--bad)}
.qthumb{position:relative}
.qbadge{position:absolute;right:6px;bottom:6px;background:var(--ink);color:var(--panel);font:700 10px var(--f-body);letter-spacing:.06em;padding:2px 6px;border-radius:4px}
.qcat{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.qpdf.open{display:grid;gap:12px;background:var(--panel);border-color:var(--accent)}
.qpdf-hd{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.qpdf-hd .actions{gap:14px}
.qpdf-list{display:grid;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.qpdf-item{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;cursor:pointer}
.qpdf-item+.qpdf-item{border-top:1px solid var(--line)}
.qpdf-item input{width:20px;height:20px;flex:none;margin-top:1px}
.qpdf-item .t{display:block;font-weight:500}
.qpdf-item .s{display:block;font-size:12px;color:var(--muted)}
.qpills{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.qprivate{margin:0;font-size:13px;color:var(--muted);background:var(--soft);border-radius:6px;padding:10px 12px}
.qmed{display:grid;gap:8px;font-size:13px;color:var(--muted);background:var(--soft);border-radius:8px;padding:12px}
.qmed strong{color:var(--ink)}
/* dashboard widgets */
.dashbar{display:flex;justify-content:space-between;align-items:end;gap:10px;flex-wrap:wrap}
.dashbar .filters{flex:1 1 300px}
.widget .wlink{margin-top:10px;font-size:13px}
.widget .wlink a,.wlink a{color:var(--accent);font-weight:600;text-decoration:none}
.wrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line);color:inherit;text-decoration:none;font-size:14px}
.wrow:first-of-type{border-top:0}
.wrow>span:first-child{min-width:0;overflow-wrap:anywhere}
.qsum{display:grid;gap:8px;font-size:14px}
.weekstrip{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.wday{display:grid;justify-items:center;gap:2px;padding:6px 2px;border-radius:6px;border:1px solid var(--line);color:inherit;text-decoration:none;min-width:0}
.wday .wd{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.04em}
.wday .dn{font:700 18px var(--f-display)}
.wday .sl{font-size:10px;font-weight:600}
.wlist{display:grid;border:1px solid var(--line);border-radius:8px;overflow:hidden}
.wedit{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px}
.wedit+.wedit{border-top:1px solid var(--line)}
.wedit.off{opacity:.7}
.wedit .actions{flex:none;gap:4px}
/* availability colours */
.st-available,.av-available{background:color-mix(in srgb,var(--ok) 18%,var(--panel));color:var(--ok)}
.st-unavailable,.av-unavailable{background:var(--soft);color:var(--muted)}
.st-leave,.av-leave{background:color-mix(in srgb,#3b6fd6 18%,var(--panel));color:#3b6fd6}
.st-booked,.av-booked{background:color-mix(in srgb,var(--accent) 18%,var(--panel));color:var(--accent)}
.pill.av-available,.pill.av-unavailable,.pill.av-leave,.pill.av-booked{font-weight:600}
/* calendar */
.calmodes{max-width:100%;overflow-x:auto}
.calmodes button{white-space:nowrap}
.calpanel{display:grid;gap:12px}
.calhd{display:flex;align-items:center;gap:6px}
.calhd h2{flex:1;text-align:center}
.paint{display:flex;flex-wrap:wrap;gap:6px}
.pchip{font:600 13px var(--f-body);border:1px solid var(--line);border-radius:999px;padding:7px 12px;cursor:pointer;background:var(--panel);color:var(--ink)}
.pchip[aria-pressed="true"]{outline:2px solid var(--ink);outline-offset:1px}
.cgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cw{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);text-align:center;padding-bottom:2px}
.cday{position:relative;display:grid;align-content:start;justify-items:center;gap:1px;min-height:54px;padding:4px 2px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--ink);cursor:pointer;font:inherit;min-width:0}
.cday.out{opacity:.45}
.cday.today .dn{background:var(--ink);color:var(--panel);border-radius:999px;padding:0 6px}
.cday.sel{outline:2px solid var(--accent);outline-offset:1px}
.cday .dn{font:700 15px var(--f-display)}
.cday .sl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.02em}
.cday .mk{display:flex;gap:3px;position:absolute;bottom:4px}
.mx,.mr{display:inline-block;width:7px;height:7px;border-radius:50%}
.mx{background:var(--bad)} .mr{background:#3b6fd6}
.mkey{white-space:nowrap}
.cday .cnt{font:700 11px var(--f-body);border-radius:999px;padding:0 5px}
.cnt.av{background:color-mix(in srgb,var(--ok) 20%,var(--panel));color:var(--ok)}
.cnt.bk{background:color-mix(in srgb,var(--accent) 20%,var(--panel));color:var(--accent)}
.legend b.av{background:var(--ok)} .legend b.bk{background:var(--accent)}
.calnote{margin:0 0 8px;font-size:14px;padding:8px 10px;border-radius:6px;background:var(--soft)}
.calnote.bad{background:var(--bad-bg);color:var(--bad)}
.explist{display:grid}
.exrow{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 0;border-top:1px solid var(--line)}
.exrow:first-child{border-top:0}
.remchip input{width:16px;height:16px;margin-right:4px;vertical-align:-3px}
.remchip:has(input:checked){background:var(--ink);color:var(--panel);border-color:var(--ink)}
/* menu */
.mgroup{display:grid;gap:8px}
.mgroup h3{color:var(--muted);font-size:14px}
.mtile{display:flex;align-items:center;gap:14px;padding:14px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);text-decoration:none}
.mtile svg{width:26px;height:26px;fill:var(--accent);flex:none}
.mtile>span:nth-child(2){display:grid;gap:2px;min-width:0;flex:1}
.mtile .badge{flex:none}
@media (max-width:420px){.cday{min-height:46px}.cday .sl{display:none}.cday.st-available,.cday.st-unavailable,.cday.st-leave,.cday.st-booked{border-width:2px}}
.cday.st-available{background:color-mix(in srgb,var(--ok) 18%,var(--panel));border-color:color-mix(in srgb,var(--ok) 45%,var(--line))}
.cday.st-unavailable{background:var(--soft);border-color:var(--line)}
.cday.st-leave{background:color-mix(in srgb,#3b6fd6 18%,var(--panel));border-color:color-mix(in srgb,#3b6fd6 45%,var(--line))}
.cday.st-booked{background:color-mix(in srgb,var(--accent) 18%,var(--panel));border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
.cday.st-available .sl{color:var(--ok)} .cday.st-leave .sl{color:#3b6fd6} .cday.st-booked .sl{color:var(--accent)} .cday.st-unavailable .sl{color:var(--muted)}

.logtabs{display:grid;grid-template-columns:1fr 1fr}
.logtabs a{font:600 14px var(--f-body);text-align:center;padding:9px 12px;color:var(--muted);text-decoration:none;background:var(--panel)}
.logtabs a+a{border-left:1px solid var(--line)}
.logtabs a.on{background:var(--ink);color:var(--panel)}
.trstats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.trstats>div{display:grid;gap:2px}
.trstats .k{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.trstats .v{font:700 20px var(--f-display)}
.trstats .s{font-size:12px;color:var(--muted)}
.lv.trin{background:#5b6a76}
.lv.lvun{background:transparent;color:var(--l3);box-shadow:inset 0 0 0 1.5px currentColor}
.lv1.lvun{color:var(--l1)}
.lv2.lvun{color:var(--l2)}
@media (max-width:460px){.trstats{grid-template-columns:1fr 1fr}}
/* address picker + maps */
.addrpick>label{display:block}
.addrbox{position:relative}
.addrlist{position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:20;margin:0;padding:4px 0;list-style:none;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:0 10px 28px rgba(0,0,0,.18);max-height:320px;overflow:auto}
.addrlist li{padding:10px 12px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;align-items:baseline;font-size:14px}
.addrlist li small{color:var(--muted);white-space:nowrap}
.addrlist li:hover,.addrlist li.on{background:var(--soft)}
.addrlist li.grp{cursor:default;font:600 11px var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);padding:8px 12px 4px}
.addrlist li.grp:hover{background:none}
.addrtools{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:8px}
.addrtools .note{margin:0}
.addrmap{margin-top:10px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--soft)}
.addrmap .mapel{height:280px}
.addrmap .maphint{margin:0;padding:8px 12px;background:var(--panel)}
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}
.linkbtn:disabled{color:var(--muted);text-decoration:none;cursor:default}
.mappanel{padding:8px}
.logmap{height:min(62vh,560px);min-height:320px;border-radius:8px;overflow:hidden;background:var(--soft)}
.mpop{display:grid;gap:4px;font:13px/1.4 var(--f-body);color:#15212b}
.mpop .h{font-family:var(--f-mono);color:#5b6a76}
.mpop ul{margin:4px 0;padding-left:16px}
.mpop a{color:#c4510b;color:color-mix(in srgb,var(--accent) 80%,#000)}
.mpop .dir{font-weight:600}
.maplink{color:var(--accent);font-size:13px;margin-left:6px;white-space:nowrap}
.leaflet-container{font-family:var(--f-body)}
.srcol{display:grid;gap:4px;justify-items:end;margin-left:auto}
.mw{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.cday.hi{box-shadow:inset 0 0 0 2px var(--accent)}
.calentry{display:grid;grid-template-columns:auto 1fr auto auto;gap:10px;align-items:center;padding:10px 12px;margin-bottom:8px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:8px;color:inherit;text-decoration:none;background:var(--panel)}
.calentry:hover{background:var(--soft)}
.calentry .go{font-size:20px;color:var(--muted)}
.cday .wk{display:grid;width:100%;padding:0 2px 9px;text-align:center;font-size:9.5px;line-height:1.15;color:var(--ink)}
.cday .wk b,.cday .wk span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.cday .wk b{color:var(--accent);font-weight:700}
.cday .wk span{color:var(--muted)}
.cday:has(.wk){min-height:64px}
@media (max-width:420px){.cday .wk{font-size:8.5px;padding-bottom:8px}.cday:has(.wk){min-height:58px}}
.cexp{grid-column:1/-1;margin:2px 0 6px;padding:12px;border:2px solid var(--accent);border-radius:10px;background:var(--panel);display:grid;gap:8px;animation:cexpIn .16s ease-out}
@keyframes cexpIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.cexp{animation:none}}
.cexp-hd{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.cexp-hd .sub{margin-right:auto}
.cexp-x{background:none;border:1px solid var(--line);border-radius:999px;width:30px;height:30px;color:var(--muted);cursor:pointer;font:inherit}
.cexp-list .calentry{margin-bottom:6px}
.cexp-list .calentry small{font-size:10px;color:var(--muted)}
.cexp .btn{justify-self:start}
.cday.open{background:var(--accent);border-color:var(--accent)}
.cday.open .dn,.cday.open .wk b,.cday.open .wk span{color:#fff}
.pchip.pview[aria-pressed="true"]{background:var(--ink);color:var(--panel);border-color:var(--ink)}
/* calendar sync */
.syncopts{display:grid;gap:8px}
.syncopt{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border:1px solid var(--line);border-radius:8px;cursor:pointer}
.syncopt input{width:20px;height:20px;margin-top:2px;accent-color:var(--accent);flex:none}
.syncopt span{display:grid}
.synch{margin:16px 0 8px;font-size:15px}
.syncbtns{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
.syncbtn{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);text-decoration:none;border-left:4px solid var(--accent)}
.syncbtn:hover{background:var(--soft)}
.syncbtn b{font-size:15px}.syncbtn span{font-size:12px;color:var(--muted)}
.copyrow{display:flex;gap:8px}.copyrow input{flex:1;min-width:0;font-size:12px}
.synchelp{margin-top:12px;border:1px solid var(--line);border-radius:8px;padding:8px 12px}
.synchelp summary{cursor:pointer;font-weight:600}
.synchelp p{margin:8px 0;font-size:14px}
/* how to guide */
.helptoc{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin-top:12px}
.helptoc a{display:flex;gap:8px;align-items:center;padding:9px 10px;border:1px solid var(--line);border-radius:8px;color:var(--ink);text-decoration:none;font-size:14px;font-weight:500}
.helptoc a:hover{background:var(--soft)}
.helptoc svg,.helphd svg{width:20px;height:20px;fill:var(--accent);flex:none}
.helphd{display:flex;gap:10px;align-items:flex-start;margin-bottom:8px}
.helphd svg{width:26px;height:26px;margin-top:2px}
.helphd h2{margin:0}.helphd p{margin:2px 0 0}
.helpitem{border-top:1px solid var(--line);padding:2px 0}
.helpitem summary{cursor:pointer;padding:10px 0;font-weight:600;list-style:none;display:flex;justify-content:space-between;gap:10px}
.helpitem summary::-webkit-details-marker{display:none}
.helpitem summary::after{content:"+";color:var(--accent);font-size:20px;line-height:1}
.helpitem[open] summary::after{content:"–"}
.helpitem ol{margin:0 0 12px;padding-left:22px;display:grid;gap:6px}
.helpitem p{margin:0 0 12px}
.helpsec>.btn{margin-top:10px}
.helpsec{scroll-margin-top:80px}
.mtile.helptile{border:2px solid var(--accent);margin-bottom:14px}
/* appearance */
.swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:8px}
.swatch{position:relative;display:grid;justify-items:center;gap:6px;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:500 12px var(--f-body);cursor:pointer;text-align:center}
.swatch i{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12);font-style:normal;color:#fff;font-size:20px;font-weight:600}
.swatch[aria-checked="true"]{border:2px solid var(--ink);padding:9px 5px}
.swatch[aria-checked="true"] i::after{content:"✓";color:#fff;font-size:18px;text-shadow:0 0 3px rgba(0,0,0,.5)}
.swatch.custom i{background:conic-gradient(#e53935,#fdd835,#43a047,#1e88e5,#8e24aa,#e53935)}
.swatch.custom[aria-checked="true"] i{background:var(--sw)}
.swatch.custom input{position:absolute;inset:0;opacity:0;width:100%;height:100%;cursor:pointer}
.accprev{padding:12px;border:1px dashed var(--line);border-radius:10px}
.accprev a{color:var(--accent)}
/* theme picker */
.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.themeopt{display:grid;gap:4px;justify-items:center;text-align:center;padding:10px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font:inherit;cursor:pointer}
.themeopt[aria-checked="true"]{border:2px solid var(--accent);padding:9px 5px}
.themeopt .sub{font-size:11px;line-height:1.25}
.thprev{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:10px 14px;gap:3px;width:64px;height:44px;padding:5px;border-radius:7px;border:1px solid rgba(0,0,0,.15)}
.thprev i{border-radius:3px}.thprev i:first-child{grid-column:1/-1}
.th-light .thprev{background:#eef1f3}.th-light .thprev i{background:#fff;box-shadow:inset 0 0 0 1px #d5dce1}.th-light .thprev i:first-child{background:var(--accent)}
.th-dark .thprev{background:#10171d}.th-dark .thprev i{background:#18222a;box-shadow:inset 0 0 0 1px #2b3943}.th-dark .thprev i:first-child{background:var(--accent)}
.th-auto .thprev{background:linear-gradient(90deg,#eef1f3 50%,#10171d 50%)}.th-auto .thprev i:nth-child(2){background:#fff;box-shadow:inset 0 0 0 1px #d5dce1}.th-auto .thprev i:nth-child(3){background:#18222a;box-shadow:inset 0 0 0 1px #2b3943}.th-auto .thprev i:first-child{background:var(--accent)}
/* community */
.gav{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--soft);font-size:18px;font-weight:700;color:var(--accent);flex:none}
.gav.big{width:46px;height:46px;font-size:22px}
.person.grow{width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);font:inherit;color:inherit;cursor:pointer;padding:10px 2px}
.person.grow:hover{background:var(--soft)}
.person .go,.cwhead .go{margin-left:auto;font-size:20px;color:var(--muted)}
.person .badge{margin-left:auto}
.person .badge+.go{margin-left:8px}
.cwrow{border-bottom:1px solid var(--line)}
.cwrow .person{border:0}
.cwhead{display:block;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.cwrow.open{background:color-mix(in srgb,var(--accent) 5%,var(--panel));border-radius:8px}
.cwdetail{padding:0 10px 12px}
.cwdetail h4{margin:12px 0 6px;font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.cwquals{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cwquals li{display:flex;justify-content:space-between;gap:10px;align-items:center;font-size:14px}
.avstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(30px,1fr));gap:3px;flex:1;min-width:0}
.avd{display:grid;justify-items:center;padding:3px 0;border:1px solid var(--line);border-radius:5px;font-size:11px;line-height:1.2;background:var(--panel)}
.avd b{font-size:9px;color:var(--muted);font-weight:600}
.avd.av-available,.avkey.av-available{background:color-mix(in srgb,var(--ok) 25%,var(--panel));border-color:color-mix(in srgb,var(--ok) 50%,var(--line))}
.avd.av-booked,.avkey.av-booked{background:color-mix(in srgb,#3b6fd6 25%,var(--panel));border-color:color-mix(in srgb,#3b6fd6 50%,var(--line))}
.avd.av-leave,.avkey.av-leave{background:color-mix(in srgb,var(--warn) 25%,var(--panel));border-color:color-mix(in srgb,var(--warn) 50%,var(--line))}
.avd.av-unavailable,.avkey.av-unavailable{background:color-mix(in srgb,var(--bad) 22%,var(--panel));border-color:color-mix(in srgb,var(--bad) 45%,var(--line))}
.avkey{display:inline-block;width:12px;height:12px;border-radius:3px;border:1px solid var(--line);vertical-align:-1px;margin-left:6px}
.crewav{display:grid;gap:8px}
.crewavrow{display:grid;grid-template-columns:110px 1fr;gap:8px;align-items:center}
.crewavrow .nm{font-weight:600;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gform{display:grid;gap:10px;margin-top:12px;padding:12px;border:1px solid var(--line);border-radius:10px}
.logtabs .badge{margin-left:4px}
.logtabs:has(> :nth-child(3)){grid-template-columns:repeat(3,1fr)}
@media (max-width:420px){.crewavrow{grid-template-columns:72px 1fr}.crewavrow .nm .lv{display:none}}
/* phone */
.phline{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;margin:0 0 10px;font-size:14px}
.otp{font-size:24px;letter-spacing:.35em;text-align:center}
/* biometrics */
.btn.bio{display:flex;align-items:center;justify-content:center;gap:8px;min-height:48px;font-weight:600}
.ordiv{display:flex;align-items:center;gap:10px;margin:14px 0;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}
.ordiv::before,.ordiv::after{content:"";flex:1;height:1px;background:var(--line)}
.biobox{border-top:1px solid var(--line);padding-top:12px;margin:4px 0 12px;display:grid;gap:8px}
.pklist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.pklist li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-size:14px}
.biolock{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:24px;background:var(--bg)}
.biolock-in{width:100%;max-width:340px;display:grid;gap:12px;justify-items:center;text-align:center}
.biolock-in img{border-radius:14px}
.biolock-in h2{margin:4px 0 0;font-family:var(--f-display);text-transform:uppercase;letter-spacing:.02em}
.biolock-in p{margin:0;color:var(--muted)}
body.locked{overflow:hidden}
body.locked #app,body.locked header.top,body.locked #tabs{visibility:hidden}
/* qualifications widget rows link to the item */
a.qsrow{display:flex;align-items:center;gap:8px;color:inherit;text-decoration:none;padding:4px 6px;margin:-4px -6px;border-radius:8px}
a.qsrow:hover,a.qsrow:focus-visible{background:var(--soft)}
a.qsrow .go{margin-left:auto;color:var(--muted);font-size:18px}
.qcard{scroll-margin-top:84px}
.qcard.qflash{animation:qflash 1.8s ease-out}
@keyframes qflash{0%,30%{box-shadow:0 0 0 3px var(--accent)}100%{box-shadow:0 0 0 0 transparent}}
@media (prefers-reduced-motion:reduce){.qcard.qflash{animation:none;outline:3px solid var(--accent)}}
/* qualification files: view and download */
.qfiles{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--line)}
.qfile{display:inline-flex;align-items:center;gap:4px}
.qfn{font-size:13px;font-weight:600;margin-right:2px}.qfn small{font-weight:400;color:var(--muted)}
.fviewer{position:fixed;inset:0;z-index:900;display:flex;flex-direction:column;background:#0b1015;color:#fff}
.fv-hd{display:flex;align-items:center;gap:8px;padding:calc(10px + env(safe-area-inset-top,0px)) 12px 10px;border-bottom:1px solid rgba(255,255,255,.12)}
.fv-t{flex:1;min-width:0;display:grid}.fv-t strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fv-t span{font-size:12px;opacity:.75}
.fv-tabs{margin:10px auto 0;display:grid;grid-template-columns:1fr 1fr;width:min(260px,80%)}
.fv-body{flex:1;overflow:auto;padding:12px;display:grid;gap:12px;justify-items:center;align-content:start;-webkit-overflow-scrolling:touch}
.fv-img,.fv-page{max-width:100%;height:auto;border-radius:6px;background:#fff;box-shadow:0 4px 18px rgba(0,0,0,.4)}
.fv-load{opacity:.8;text-align:center}
body.noscroll{overflow:hidden}
/* unverified sign-offs */
.signed.unv{color:var(--warn);background:var(--warn-bg);border-color:color-mix(in srgb,var(--warn) 40%,var(--line))}
.signed .vline{color:var(--muted)!important;font-size:12px}
.unvh{color:var(--warn)}
.entry,.edetail,.edetail>*{min-width:0}
.edetail dd{overflow-wrap:anywhere}
.signed{min-width:0}.signed .pill{white-space:normal;text-align:left}
/* IRATA register check */
.irchk{display:grid;gap:10px}
.irsteps{margin:0;padding-left:20px;display:grid;gap:14px}
.irsteps>li{display:grid;gap:8px}
.ircopy{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel)}
.ircopy span{display:grid}.ircopy small{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}.ircopy b{font-size:17px}
.irst{display:flex;flex-wrap:wrap;gap:8px}.irst label{display:flex;gap:6px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:999px;cursor:pointer;font-size:14px}
.irst label:has(input:checked){border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.vquals summary{cursor:pointer;font-weight:600;font-size:14px}
.irst{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
.irst label{display:flex!important;flex-direction:row!important;justify-content:center;align-items:center;gap:6px;white-space:nowrap;padding:9px 6px!important;font-size:13px!important;margin:0}
.irst input{margin:0}
.vreqdl{margin:0}.vqueue .person .meta{white-space:normal}
/* platform admin */
.alog{list-style:none;margin:0;padding:0;display:grid;gap:8px}.alog li{display:grid;gap:2px;font-size:14px;border-bottom:1px solid var(--line);padding-bottom:6px}
.alist{display:grid}.arow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);font-size:14px}
.arow>.mono{font-size:12px;color:var(--muted)}
@media (max-width:480px){.arow{grid-template-columns:1fr auto}.arow>.mono{grid-column:1/-1}}
.danger-zone{border-color:color-mix(in srgb,var(--bad) 40%,var(--line))}
.ppills{display:grid;gap:4px;justify-items:end}
/* company directory picker */
.dirpick{display:grid;gap:8px}
.dpsel{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.dpsel>span{min-width:0;overflow-wrap:anywhere}
.dpadd{display:grid;gap:10px;padding:12px;border:1px dashed var(--line);border-radius:10px}
.addrlist li>span{min-width:0;overflow-wrap:anywhere}
.cocard{display:grid;gap:10px;margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);min-width:0}
.cohd{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.cohd strong{overflow-wrap:anywhere}
.codl{display:grid;grid-template-columns:max-content 1fr;gap:6px 14px;margin:0;font-size:14px}
.codl dt{color:var(--muted)}
.codl dd{margin:0;min-width:0;overflow-wrap:anywhere}
@media (max-width:420px){.codl{grid-template-columns:1fr}.codl dd{margin-bottom:6px}}
.coform{display:grid;gap:10px}
.row3{display:grid;grid-template-columns:2fr 2fr 1fr;gap:10px}
@media (max-width:560px){.row3{grid-template-columns:1fr 1fr}}
.cofs{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:10px;margin:0}
.cofs legend{font-weight:600;padding:0 6px}
.dpinfo{flex-basis:100%}
.codetails{margin:0 0 12px}
.codetails summary{cursor:pointer;font-weight:600}

.mapfind{display:flex;gap:10px;align-items:center;margin-bottom:10px}
.mapfind input{flex:1 1 auto;min-width:0}
.mapfind .note{margin:0;white-space:nowrap}
.gm-style .mpop{font:14px var(--f-body);color:#1d2430}
.mbmark{display:inline-block;font:700 13px/1 system-ui,sans-serif;letter-spacing:-.02em;color:#333!important;background:rgba(255,255,255,.85);padding:3px 6px;border-radius:4px;text-decoration:none}
.leaflet-bottom.leaflet-left .mbmark{margin-bottom:30px}
.leaflet-control-layers{font-size:13px}
.dpnew{margin-top:8px}
.dupbox{display:grid;gap:8px;padding:12px;border:1px solid var(--wait,#c98a00);border-radius:10px;background:var(--soft)}
.duplist{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.duplist li{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.duplist li>span{min-width:0;overflow-wrap:anywhere}
.reqbox{display:grid;gap:8px;padding:12px;margin:0 0 12px;border:1px solid var(--accent);border-radius:10px;background:var(--soft)}
.reqlist{display:grid;gap:8px}
.reqrow{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.reqrow:first-child{border-top:0}
.reqrow>span:first-child{min-width:0;flex:1 1 200px;overflow-wrap:anywhere}
.former{margin-top:12px}
.daynote{font-size:14px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft);margin-top:-6px}
.daynote .bad{color:var(--bad)}
.cday.rvw{box-shadow:inset 0 -3px 0 var(--l2)}
.mkey i.mrv{display:inline-block;width:14px;height:3px;background:var(--l2);vertical-align:middle;margin:0 4px 0 8px}
.cday .rmk{display:block;font-size:10px;line-height:1.2;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%;color:var(--muted)}
.cday .rmk.bad{color:var(--bad);font-weight:600}
.remlist{display:grid;gap:4px}
.remrow{display:flex;gap:12px;align-items:center;text-align:left;width:100%;padding:10px 8px;border:0;border-top:1px solid var(--line);background:none;color:inherit;font:inherit;cursor:pointer;border-radius:0}
.remrow:first-child{border-top:0}.remrow:hover{background:var(--soft)}
.remrow>span:nth-child(2){flex:1;min-width:0;overflow-wrap:anywhere}
.remd{display:grid;text-align:center;min-width:52px;font-weight:700;font-size:14px}.remd small{font-weight:400;color:var(--muted);font-size:11px}
.remrow strong.bad{color:var(--bad)}
.rvnote{display:inline-block;margin-top:4px}
.rvcalc{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.wclist{display:grid}
.wcrow{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.wcrow:first-child{border-top:0}
.wcrow>span:first-child{flex:1 1 220px;min-width:0;overflow-wrap:anywhere}
.wcadd{display:grid;gap:8px;margin-top:10px}
.wpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}
.wopt{position:relative;display:block;cursor:pointer}
.wopt input{position:absolute;opacity:0;pointer-events:none}
.wopt>span{display:grid;gap:2px;min-height:100%;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow-wrap:anywhere}
.wopt>span strong{font-size:14px;line-height:1.25}
.wopt>span small{color:var(--muted);font-size:12px}
.wopt input:checked+span{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--soft)}
.wopt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.rvtoggle{display:inline-flex;gap:6px;align-items:flex-start;margin-top:6px;font-size:13px;color:var(--ink);text-transform:none;letter-spacing:0;font-weight:400}
.vh{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.eform{display:grid;gap:14px}
.fsec{border:1px solid var(--line);border-radius:12px;padding:12px 14px 14px;margin:0;display:grid;gap:12px;min-width:0}
.fsec legend{padding:0 6px;font:700 14px var(--f-body);letter-spacing:.02em;display:flex;align-items:center;gap:8px}
.fsec legend b{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--accent);color:#fff;font-size:12px}
.datequick{display:flex;gap:8px;flex-wrap:wrap}
.unitbox{display:flex;align-items:center;gap:8px}.unitbox input{flex:1;min-width:0}.unitbox>span{font-weight:600;color:var(--muted)}
.supfind{display:flex;gap:8px}.supfind input{flex:1;min-width:0}
.crewlist{list-style:none;margin:0;padding:0;display:grid}
.crewlist li{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 0;border-top:1px solid var(--line)}
.crewlist li:first-child{border-top:0}
.crewlist li>span:first-child{flex:1 1 160px;min-width:0;overflow-wrap:anywhere}
.crewsup{font-size:13px;text-transform:none;letter-spacing:0}
.trpick{display:grid;gap:8px}
.l3roles{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0;display:grid;gap:8px}.l3roles legend{font-weight:700;padding:0 6px;font-size:14px}
.efgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.efthumb{position:relative;display:grid;gap:4px;padding:4px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:inherit;font:inherit;text-align:left;cursor:pointer;min-width:0}
.efthumb img,.efthumb .efpdf{width:100%;aspect-ratio:1;object-fit:cover;border-radius:7px;background:var(--soft)}
.efthumb .efpdf{display:grid;place-items:center;font-weight:800;color:var(--bad);letter-spacing:.05em}
.efthumb small{font-size:11px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.efthumb.new{border-style:dashed}
.efx{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(0,0,0,.6);color:#fff;font-size:13px;cursor:pointer;line-height:1}
.efadd{justify-self:start;cursor:pointer;margin-top:4px}
.homemap{height:260px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--soft)}
.thsw{display:inline-flex;border:1px solid var(--line);border-radius:999px;padding:2px;gap:2px}
.thbtn{width:30px;height:30px;display:grid;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;padding:0}
.thbtn svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.thbtn[data-theme-set="dark"] svg{fill:currentColor;stroke:none}
.thbtn[aria-pressed="true"]{background:var(--ink);color:var(--panel)}
.thbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (max-width:400px){.thbtn{width:26px;height:26px}.thbtn svg{width:15px;height:15px}}
.brand h1{overflow:hidden;text-overflow:ellipsis}
.hd{gap:8px}
@media (max-width:460px){.brand{gap:7px}.brand h1{font-size:18px}.hd-right{gap:6px}#hdNew{font-size:13px;padding:7px 9px;line-height:1.15}}
@media (max-width:380px){.brand h1{display:none}}
@media (max-width:460px){.hdl{display:none}#hdNew{padding:8px 12px}}
#hdNew{white-space:nowrap}@media (max-width:460px){.brand h1{font-size:17px;letter-spacing:0}.brand img{width:26px;height:26px}}
.invprev summary{cursor:pointer;font-weight:600}
.invprev pre{white-space:pre-wrap;font:14px/1.5 var(--f-body);background:var(--soft);border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:6px 0 0;overflow-wrap:anywhere}
.invlist{list-style:none;margin:0;padding:0;display:grid;gap:6px}.invlist li{display:grid}
.levels.prior{margin:4px 0 12px}
.priorlist{display:grid}
.priorrow{display:flex;gap:10px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-top:1px solid var(--line)}
.priorrow:first-child{border-top:0}
.priorrow>span:first-child{flex:1 1 220px;min-width:0}
.bfh{font-size:12px;color:var(--muted);text-decoration:underline dotted}
/* paper logbook pages */
.scanadd{display:grid;gap:8px;padding:12px;border:1px dashed var(--line);border-radius:12px;background:var(--soft)}
.scanadd .actions{display:flex;gap:8px;flex-wrap:wrap}
.scanadd label.busy{opacity:.55;pointer-events:none}
.scangroups{display:grid;gap:14px;margin-top:14px}
.scanhd{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:6px}
.scanhd .btn{margin-left:auto}
.scview{display:block;padding:0;border:0;background:none;cursor:pointer;width:100%}
.efx.sure{width:auto;padding:0 8px;border-radius:13px;background:var(--bad)}

/* level filter on the hours tiles */
.levels .lvl[data-lvf]{cursor:pointer;transition:opacity .15s,box-shadow .15s}
.levels .lvl[data-lvf]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.levels.filt .lvl:not(.on){opacity:.5}
.levels .lvl.on{box-shadow:0 0 0 2px var(--c) inset}
.lvfon{font-size:10px;letter-spacing:.04em;padding:1px 6px;border-radius:9px;background:var(--c);color:#fff;vertical-align:2px;margin-left:4px}
.legend{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
/* next level countdown */
.upgrade{border-top:5px solid var(--c)}
.upgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.upm{display:grid;gap:6px;align-content:start;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--soft)}
.upm .k{font-family:var(--f-display);font-weight:600;letter-spacing:.06em;text-transform:uppercase;font-size:13px;color:var(--muted)}
.upm .v{font-family:var(--f-display);font-weight:700;font-size:34px;line-height:1.05}
.upm .v small{font-size:15px;color:var(--muted);font-weight:500;margin-left:3px}
.upm .s{font-size:12px;color:var(--muted)}
.upm .btn{justify-self:start}
.upbar{height:10px;border-radius:6px;background:var(--line);overflow:hidden}
.upbar i{display:block;height:100%;border-radius:6px}
.okt{color:var(--ok)}
.upready{padding:10px 12px;margin:0 0 12px;border-radius:10px;background:color-mix(in srgb,var(--ok) 14%,transparent);border:1px solid color-mix(in srgb,var(--ok) 40%,transparent)}
@media (max-width:560px){.upgrid{grid-template-columns:1fr}}
/* keep maps (Leaflet/Mapbox draw at z-index 400+) underneath the header and bottom menu */
.homemap,.logmap,.leaflet-container,.entmap,.mapbox{position:relative;z-index:0;isolation:isolate}
