/* Demi — new design (v2). Paper and ink, serif headings, mono figures. Same API as the classic page. */
:root{--paper:#F4F2EC;--card:#FBFAF6;--ink:#10202A;--sub:#3C4C55;--muted:#56656D;--rule:#DDD8CB;--rule2:#C9C4B6;--blue:#1F5F8B;--blueH:#123E5C;--green:#1E6B45;--greenS:#E6F0E9;--red:#A23B2A;--redS:#F6E7E3;--amber:#8A5A12;--amberB:#B7791F;--amberS:#F7EEDC;--hover:#ECE8DD;
  --serif:"Source Serif 4",Georgia,serif;--sans:"IBM Plex Sans",system-ui,-apple-system,sans-serif;--mono:"IBM Plex Mono",Menlo,Consolas,monospace}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.5 var(--sans)}
a{color:var(--blue)} a:hover{color:var(--blueH)}
.wrap{max-width:1180px;margin:0 auto;padding:0 32px}
header.top{border-bottom:1px solid var(--ink)}
.topin{display:flex;align-items:baseline;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:18px 0}
.brand{display:flex;align-items:baseline;gap:14px;background:none;border:0;padding:0;cursor:pointer;color:var(--ink);min-height:0}
.brand b{font:700 30px/1 var(--serif);letter-spacing:-.5px}
.eyebrow{font:500 12px/1.3 var(--sans);letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
nav.main{display:flex;gap:20px;align-items:baseline;flex-wrap:wrap;font-size:14px}
nav.main button{background:none;border:0;color:var(--blue);padding:0;min-height:0;font:400 14px var(--sans);text-decoration:underline;cursor:pointer}
nav.main button.on{color:var(--ink);font-weight:600;text-decoration:none;border-bottom:2px solid var(--ink)}
nav.main .who{color:var(--muted)}
main{padding:28px 0 80px}
h1{font:600 38px/1.12 var(--serif);letter-spacing:-.5px;margin:0 0 6px;text-wrap:balance}
h2{font:600 21px/1.25 var(--serif);margin:0 0 10px}
h3{font:600 15px/1.3 var(--sans);margin:18px 0 6px}
p{line-height:1.5;margin:6px 0}
.lead{font:400 18px/1.45 var(--serif);color:var(--sub);max-width:720px}
.dim,.muted{color:var(--muted)} .small{font-size:13px}
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
button,.btn{font:600 15px/1 var(--sans);cursor:pointer;min-height:44px;padding:0 20px;border:0;background:var(--blue);color:#fff;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}
button:hover,.btn:hover{background:var(--blueH);color:#fff}
button.ghost,.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink);font-weight:500}
button.ghost:hover,.btn.ghost:hover{background:var(--hover);color:var(--ink)}
button.link{background:none;border:0;color:var(--blue);padding:0;min-height:0;font-weight:400;text-decoration:underline}
button.link:hover{background:none;color:var(--blueH)} button.link.danger{color:var(--red)}
button.amber{background:var(--amberB)} button:disabled{opacity:.55;cursor:default}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,tr:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.row{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.cols{display:flex;flex-wrap:wrap;gap:40px;align-items:flex-start}
.colmain{flex:999 1 520px;min-width:0} .colside{flex:1 1 320px;min-width:0}
label{display:block;font-size:13px;color:var(--muted);margin:14px 0 6px}
input,select,textarea{font:15px var(--sans);border:1px solid var(--ink);background:#fff;color:var(--ink);padding:9px 12px;width:100%;border-radius:0}
textarea{min-height:110px} textarea.draft{min-height:280px;font:13px/1.5 var(--mono)}
.lab{font:500 12px/1.3 var(--sans);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);margin:0 0 6px}
table{width:100%;border-collapse:collapse}
.tbl th{text-align:left;padding:8px 6px 8px 0;font:500 11px/1.3 var(--sans);letter-spacing:1.2px;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--ink)}
.tbl td{font-size:14px;padding:10px 6px 10px 0;border-bottom:1px solid var(--rule);vertical-align:middle}
.r,.tbl th.r{text-align:right}
.big{font:500 54px/1.05 var(--mono);letter-spacing:-1px;color:var(--green);margin:0 0 16px;overflow-wrap:anywhere}
.big.desp{color:var(--blue)}
.lines td{padding:9px 0;border-bottom:1px solid var(--rule);font:17px var(--serif)}
.lines td.n{text-align:right;font:16px var(--mono);padding-left:32px;white-space:nowrap}
.lines tr.tot td{border-top:1px solid var(--ink);border-bottom:0;font-weight:700}
.lines tr.setoff td{color:var(--muted);font-size:14px}
.box{border:1px solid var(--ink);background:var(--card)}
.boxhd{padding:14px 20px;border-bottom:1px solid var(--ink);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:baseline}
.boxbd{padding:16px 20px}
.boxbd + .boxbd{border-top:1px solid var(--rule)}
.chip{display:inline-block;padding:3px 8px;font-size:13px;border:1px solid;white-space:nowrap}
.chip.red{color:var(--red);border-color:var(--red)} .chip.amb{color:var(--amber);border-color:var(--amberB)} .chip.grn{color:var(--green);border-color:var(--green)} .chip.blu{color:var(--blue);border-color:var(--blue)} .chip.dim{color:var(--muted);border-color:var(--rule2)}
.bar{font:14px var(--mono);padding:2px 7px;white-space:nowrap} .bar.red{background:var(--red);color:#fff} .bar.amb{border:1px solid var(--amberB);color:var(--amber)} .bar.none{color:var(--muted)}
.err{border:1px solid var(--red);background:var(--redS);padding:14px 18px;margin:10px 0}
.warn{border:1px solid var(--amberB);background:var(--amberS);padding:14px 18px;margin:10px 0}
.okb{border:1px solid var(--green);background:var(--greenS);padding:14px 18px;margin:10px 0}
.flag{border-left:3px solid var(--amberB);background:var(--amberS);padding:10px 14px;margin:8px 0;font-size:14px}
.summ{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid var(--ink);margin-bottom:18px;background:var(--card)}
.summ div{padding:12px 16px;border-right:1px solid var(--ink)} .summ div:last-child{border-right:0}
.summ p{margin:0} .summ .n{font:28px var(--mono)}
.grp td{border-top:2px solid var(--ink)!important;border-bottom:0!important;padding-top:14px}
.grp button{background:transparent;color:var(--ink);padding:0;font:600 18px var(--serif);min-height:36px}
.grp button:hover{background:transparent;color:var(--ink)}
tr.vrow{cursor:pointer} tr.vrow:hover td{background:var(--hover)}
tr.vrow.arch td{opacity:.6}
.tabs{display:flex;flex-wrap:wrap;border-bottom:1px solid var(--ink);margin:0 0 22px}
.tabs button{background:transparent;color:var(--muted);border-bottom:3px solid transparent;font-weight:400;padding:0 16px}
.tabs button.on{color:var(--ink);border-bottom-color:var(--ink);font-weight:600}
.tabs button:hover{background:transparent;color:var(--ink)} .tabs button:disabled{opacity:.5}
.steps{list-style:none;margin:0 0 26px;padding:0;display:flex;font-size:13px;border-top:1px solid var(--rule2);border-bottom:1px solid var(--rule2)}
.steps li{flex:1;padding:10px 0;color:#5E6B72} .steps li.on{border-top:3px solid var(--ink);margin-top:-2px;font-weight:600;color:var(--ink)}
.drop{border:1px dashed var(--ink);background:var(--card);padding:28px;text-align:center;cursor:pointer}
.drop.over{background:#E7EEF3;border-color:var(--blue)}
.pick{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border:1px solid var(--ink)}
.pick button{min-height:66px;justify-content:flex-start;text-align:left;flex-direction:column;align-items:flex-start;padding:12px 18px;font:400 20px var(--serif);background:transparent;color:var(--ink);gap:2px}
.pick button + button{border-left:1px solid var(--ink)}
.pick button span{font:400 13px var(--sans);opacity:.85}
.pick button.on{background:var(--blue);color:#fff}
.trades{display:flex;flex-wrap:wrap;gap:8px}
.trades button{min-height:38px;padding:0 14px;font:500 14px var(--sans);background:transparent;color:var(--ink);border:1px solid var(--rule2)}
.trades button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.trades button:disabled{color:var(--muted);border-style:dashed;opacity:1}
.files{margin-top:10px}
.prog{display:grid;gap:10px;margin:18px 0}
.pstep{display:grid;grid-template-columns:26px 1fr;gap:12px;align-items:start}
.dot{width:22px;height:22px;border-radius:50%;border:2px solid var(--rule2);display:grid;place-items:center;font:500 11px/1 var(--mono);color:var(--muted);margin-top:1px}
.dot.done{border-color:var(--green);background:var(--greenS);color:var(--green)} .dot.now{border-color:var(--blue);color:var(--blue)} .dot.failed{border-color:var(--red);background:var(--redS);color:var(--red)}
.dot.pulse{animation:pulse 1.6s ease-out infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(31,95,139,.5)}70%{box-shadow:0 0 0 10px rgba(31,95,139,0)}100%{box-shadow:0 0 0 0 rgba(31,95,139,0)}}
@media (prefers-reduced-motion:reduce){.dot.pulse{animation:none}}
.checks{list-style:none;margin:0;padding:0}
.checks li{border-bottom:1px solid var(--rule)}
.checks button{background:transparent;color:var(--ink);width:100%;justify-content:flex-start;gap:12px;font-weight:400;padding:0;min-height:44px;text-align:left}
.checks button:hover{background:transparent;color:var(--ink)}
.tick{color:var(--green);font-weight:600;width:16px;flex:none} .cross{color:var(--red);font-weight:600;width:16px;flex:none}
.full{font-size:14px;color:var(--sub);padding:0 0 12px 28px;line-height:1.5}
details summary{cursor:pointer;font-size:15px;padding:12px 0;border-bottom:1px solid var(--rule)}
iframe.stmt{width:100%;height:80vh;min-height:520px;border:1px solid var(--ink);background:#fff}
.alt{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center;border-bottom:1px solid var(--rule);padding:12px 0}
.alt .u{font:13px var(--mono);color:var(--blue);margin-top:4px}
.three{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:12px}
.three .box{padding:14px 16px} .three h4{margin:0 0 8px;font-size:14px}
.figs{display:flex;gap:28px;flex-wrap:wrap;margin:10px 0} .figs div{font-size:12.5px;color:var(--muted)} .figs b{display:block;font:500 20px/1.3 var(--mono);color:var(--ink)}
.toast{position:fixed;right:24px;bottom:24px;background:var(--ink);color:#fff;font-size:14px;padding:12px 18px;opacity:0;transition:opacity .25s;pointer-events:none;max-width:90vw;z-index:9}
.toast.show{opacity:1}
.auth{max-width:440px;margin:30px auto}
.plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-top:12px}
.newbar{background:var(--ink);color:#E9EEF0;font-size:13px;padding:8px 0}
.newbar .wrap{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.newbar a{color:#BFD3DF}
@media (max-width:700px){.summ{grid-template-columns:repeat(2,minmax(0,1fr))}.summ div:nth-child(2){border-right:0}.summ div:nth-child(-n+2){border-bottom:1px solid var(--ink)}.big{font-size:38px}h1{font-size:30px}.wrap{padding:0 18px}.pick{grid-template-columns:1fr}.pick button + button{border-left:0;border-top:1px solid var(--ink)}.hide-sm{display:none}}
.rgrid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:26px;align-items:start;position:relative;left:50%;transform:translateX(-50%);width:min(1560px,calc(100vw - 64px))}
@media(max-width:980px){.rgrid{grid-template-columns:1fr}}
.xl{background:#fff;border:1px solid var(--ink);font:14.5px/1.45 Calibri,Arial,sans-serif;color:#111}
.xl .xlbar{background:#1D6F42;color:#fff;font:600 12px var(--sans);padding:7px 10px;display:flex;justify-content:space-between;gap:10px}
.xl table{border-collapse:collapse;min-width:100%}.xl td{border:1px solid #DADADA;padding:5px 9px;white-space:nowrap}.xl td.n{text-align:right;font-family:Consolas,monospace}
.xl tr.xmk td{background:#FFF2CC;cursor:pointer}.xl tr.xmk:hover td{background:#FFE08A}
.xtag{display:inline-block;background:var(--amberB);color:#fff;font:600 10px var(--sans);padding:1px 6px;margin-left:6px}
.xl .xtabs{display:flex;flex-wrap:wrap;border-top:1px solid #C8C8C8;background:#EDEDED;margin:0}
.xl .xtabs button{font:12.5px Calibri,Arial,sans-serif;border:0;border-right:1px solid #C8C8C8;background:transparent;padding:6px 14px;min-height:0;color:#333}
.xl .xtabs button.on{background:#fff;color:#1D6F42;font-weight:700;border-bottom:2px solid #1D6F42}
.mail{border:1px solid var(--ink);background:#fff}.mail .mhd{padding:10px 16px;border-bottom:1px solid var(--rule);font-size:13px;color:var(--sub)}
.mail .mbd{padding:14px 18px;font:15px/1.6 var(--serif)}
.rport{border-top:1px solid var(--ink)}
.rhead{all:unset;cursor:pointer;display:flex;justify-content:space-between;align-items:baseline;gap:10px;width:100%;padding:10px 0;font-family:var(--serif)}
.rhead:focus-visible{outline:2px solid var(--blue);outline-offset:2px}
.rname{font-weight:600;font-size:17px}.rfig{font:13px var(--mono);color:var(--sub)}.rfig b{color:var(--ink)}
.rstate{font:500 13px var(--sans);margin-left:8px}.rstate.ok{color:var(--green)}.rstate.ctr{color:var(--amber)}
.rpt{border-left:3px solid var(--amberB);background:var(--amberS);padding:9px 12px;margin:6px 0 10px;font-size:14.5px;transition:background .2s}
.rpt.off{border-left-color:var(--rule2);background:#F4F2EC;color:var(--muted)}.rpt.off .arg{text-decoration:line-through}.rpt.flash{background:#FFE08A}
.tog{display:flex;align-items:center;gap:8px;font:500 13px var(--sans);cursor:pointer;margin:6px 0 4px;color:var(--ink)}.tog input{width:17px;height:17px;accent-color:var(--ink);margin:0}
.rtot{border-top:2px solid var(--ink);padding-top:10px}.rtot table{width:100%;font-size:14.5px;border-collapse:collapse}.rtot td{padding:3px 0}.rtot td.n{text-align:right;font-family:var(--mono)}
.xl td.xlong{white-space:normal;font-weight:600}.xl td.xwrap{white-space:normal;min-width:180px;max-width:260px}

/* simpler screens, 12 Nov 2026 */
.side{padding:3px 8px;font-weight:600;font-size:12px;letter-spacing:.02em}
.side.so{background:#DCE8F3;color:#1F4F7A} .side.sc{background:#DDEBDF;color:#2E6B47}
.sbar{background:var(--card,#FBFAF6);border:1px solid var(--ink);padding:14px 18px;margin:0 0 6px}
.sline{display:flex;align-items:center;gap:16px;flex-wrap:wrap} .stxt{flex:1;min-width:260px}
.sopts{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-top:14px}
.mtbl{width:100%;max-width:720px;border-collapse:collapse;font-size:15px}
.mtbl th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);font-weight:500;text-align:left;padding:8px 0;border-bottom:1px solid var(--ink)}
.mtbl td{padding:11px 0;border-bottom:1px solid var(--rule)} .mtbl .n{text-align:right;font-family:var(--mono);white-space:nowrap;padding-left:14px}
.mtbl tr.tot td{font-weight:700;border-top:1px solid var(--ink)}

/* ---- time sheet (12 Nov): a card per port */
.tscard{background:var(--card);border:1px solid var(--ink);margin:0 0 26px}
.tshead{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:16px 20px;border-bottom:1px solid var(--ink);background:#EFEDE6}
.tshead h3{display:inline;margin:0;font:600 24px var(--serif)} .tsrole{margin-left:10px;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);border:1px solid var(--rule2);padding:2px 8px;vertical-align:4px}
.tsamt{text-align:right;display:flex;flex-direction:column;align-items:flex-end;line-height:1.25} .tsamt b{font:500 26px var(--mono)} .tsamt.d b{color:var(--red)} .tsamt.s b{color:var(--green)}
.lab2{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--sub)}
.tsfacts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;margin:0;border-bottom:1px solid var(--rule)}
.tsfacts>div{padding:12px 20px;border-right:1px solid var(--rule)} .tsfacts>div:last-child{border-right:0}
.tsfacts dt{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);margin:0 0 4px} .tsfacts dd{margin:0;font:500 15px var(--mono);white-space:nowrap}
.tsfacts dd.why{font:12px/1.35 var(--sans);color:var(--muted);white-space:normal;margin-top:4px}
.tsbar{display:flex;height:12px;margin:16px 20px 6px;gap:2px} .tsbar .seg{display:block;min-width:2px}
.tsbar .cnt,.tslegend i.cnt{background:var(--blue)} .tsbar .exc,.tslegend i.exc{background:repeating-linear-gradient(45deg,#C9C4B6 0 3px,#E8E4DA 3px 6px)} .tsbar .dem,.tslegend i.dem{background:var(--amberB)}
.tslegend{display:flex;gap:18px;margin:0 20px 10px;font-size:12px;color:var(--sub)} .tslegend i{display:inline-block;width:12px;height:10px;margin-right:6px;vertical-align:-1px}
table.ts{width:100%;border-collapse:collapse;font-size:14px}
table.ts th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub);font-weight:500;text-align:left;padding:10px 12px;border-top:1px solid var(--rule);border-bottom:1px solid var(--ink);background:var(--card)}
table.ts td{padding:10px 12px;border-bottom:1px solid var(--rule);vertical-align:top} table.ts tr:last-child td{border-bottom:0}
table.ts th:first-child,table.ts td:first-child{padding-left:20px} table.ts th:last-child,table.ts td:last-child{padding-right:20px}
table.ts .n{text-align:right;font-family:var(--mono);white-space:nowrap} table.ts td.t{white-space:nowrap;font-family:var(--mono);font-size:13px}
table.ts tbody tr:hover td{background:var(--hover)}
table.ts tr.ex td{color:var(--muted)} table.ts tr.dem td{background:var(--amberS)} table.ts tr.dem td:first-child{box-shadow:inset 3px 0 0 var(--amberB)}
.pill{margin-left:8px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--rule2);color:var(--sub);padding:1px 6px;white-space:nowrap}
table.ts tr.exp td{padding:0;border-bottom:0} .expl{display:block;padding:8px 20px;background:var(--ink);color:#fff;font-weight:600;font-size:13px;letter-spacing:.03em}
table.ts tr.cc td{font-style:italic;color:var(--sub)}

.myxl{padding:12px 14px;margin:0 0 18px;border:1px solid var(--rule2);background:#fff} .myxl a{font-weight:600}
.noxl{margin:10px 0 6px;padding:8px 12px;background:var(--greenS);color:var(--green);font-weight:600;font-size:14px;border-left:3px solid var(--green)}
