/* Diamond Quality Service – back office · v1.4 "Punda" theme
   Layout: fixed sidebar (deep harbour teal) + light content area; split-screen login with the Handelskade picture. */
/* Fonts are hosted with the portal (no Google request on every page) */
@font-face{font-family:"Figtree";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/figtree-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:500;font-display:swap;src:url(fonts/figtree-latin-500-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/figtree-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Figtree";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/figtree-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/bricolage-grotesque-latin-600-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:700;font-display:swap;src:url(fonts/bricolage-grotesque-latin-700-normal.woff2) format("woff2")}
@font-face{font-family:"Bricolage Grotesque";font-style:normal;font-weight:800;font-display:swap;src:url(fonts/bricolage-grotesque-latin-800-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:400;font-display:swap;src:url(fonts/jetbrains-mono-latin-400-normal.woff2) format("woff2")}
@font-face{font-family:"JetBrains Mono";font-style:normal;font-weight:600;font-display:swap;src:url(fonts/jetbrains-mono-latin-600-normal.woff2) format("woff2")}
:root{
  --bg:#ffffff; --surface:#ffffff; --sunk:#f1f6fd; --line:#d5e3f4; --line-2:#b9cfea;
  --fg:#0a0d14; --muted:#3d4a5c; --faint:#7d8a9c;
  --accent:#0a6fd6; --accent-2:#1e95f5; --accent-ink:#ffffff; --accent-soft:#e1f0fe;
  --sun:#ffc72c; --coral:#ff6a55; --aqua:#13c2c9;
  --side:#0b5fc8; --side-2:#1272db; --side-fg:#eef6ff; --side-muted:#cfe2fa;
  --gold:#0a0d14; --ok:#11804b; --ok-soft:#d9f6e6; --warn:#a05600; --warn-soft:#fff0cf; --bad:#cc2f45; --bad-soft:#ffe3e7;
  --f-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;
  --f-body:"Figtree","Segoe UI",system-ui,sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:14px; --r-sm:10px;
  --shadow:0 1px 2px rgba(10,60,130,.05),0 6px 20px -8px rgba(10,60,130,.12);
  --shadow-lg:0 2px 4px rgba(10,60,130,.06),0 18px 40px -16px rgba(10,60,130,.25);
  --side-w:252px;
  color-scheme:light;
}
/* v2.3.1: no dark theme – the portal is always bright white, blue and black */

*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--f-body);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding-left:16px;padding-right:16px}
h1,h2,h3{font-family:var(--f-display);letter-spacing:-.015em;text-wrap:balance;line-height:1.2}
h2{font-size:1.65rem;margin:0;font-weight:700}
h3{font-size:1.08rem;margin:0 0 12px;font-weight:700}
.ico{width:20px;height:20px;flex:none}
:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
[hidden]{display:none!important}

/* ---------- App shell ---------- */
body.app{display:block}
.side{position:fixed;inset:0 auto 0 0;width:var(--side-w);background:var(--side);color:var(--side-fg);display:flex;flex-direction:column;z-index:30;
  background-image:radial-gradient(120% 55% at 0% 0%,rgba(19,194,201,.45),transparent 62%),radial-gradient(90% 40% at 100% 100%,rgba(30,149,245,.55),transparent 62%),linear-gradient(180deg,var(--side),var(--side-2))}
.side-brand{display:flex;align-items:center;gap:11px;padding:20px 18px 18px;border-bottom:1px solid rgba(255,255,255,.16)}
.side-brand .mark{width:34px;height:34px;flex:none;filter:drop-shadow(0 4px 10px rgba(22,163,184,.45))}
.side-brand strong{display:block;color:#fff;font-family:var(--f-display);font-size:1rem;line-height:1.15;letter-spacing:-.01em}
.side-brand span{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--side-muted);margin-top:2px}
.side-nav{flex:1;overflow-y:auto;padding:12px 10px;display:flex;flex-direction:column;gap:2px}
.side-nav a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;color:var(--side-fg);text-decoration:none;font-weight:500;font-size:.93rem;position:relative}
.side-nav a .ico{opacity:.9}
.side-nav a:hover{background:rgba(255,255,255,.14);color:#fff}
.side-nav a[aria-current="page"]{background:rgba(255,255,255,.2);color:#fff;font-weight:700;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.side-nav a[aria-current="page"] .ico{opacity:1;color:var(--sun)}
.side-nav a[aria-current="page"]::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:4px;border-radius:0 4px 4px 0;background:var(--sun)}
.side-label{margin:16px 12px 6px;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:var(--side-muted);font-weight:600}
.side-foot{padding:12px 10px 16px;border-top:1px solid rgba(255,255,255,.16);display:grid;gap:4px}
.me{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;color:var(--side-fg);text-decoration:none}
.me:hover,.me[aria-current="page"]{background:rgba(255,255,255,.14)}
.me strong{display:block;color:#fff;font-size:.9rem;line-height:1.2}
.me small{display:block;color:var(--side-muted);font-size:.74rem}
.avatar{width:34px;height:34px;border-radius:50%;display:grid;place-items:center;flex:none;font-weight:700;font-size:.8rem;letter-spacing:.02em;color:#06262b;
  background:linear-gradient(135deg,#7ff3f0,#ffc72c)}
.side-out{display:flex;justify-content:flex-start;align-items:center;gap:12px;width:100%;padding:9px 12px;border-radius:10px;border:0;background:transparent;color:var(--side-muted);font:inherit;font-weight:500;font-size:.9rem;cursor:pointer}
.side-out:hover{background:rgba(255,255,255,.14);color:#fff}
.side .side-close{display:none;margin-left:auto}
.shell{margin-left:var(--side-w);min-height:100vh;display:flex;flex-direction:column}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:12px;padding:14px 32px;background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid transparent}
.hello{display:flex;flex-direction:column;line-height:1.25}
.hello strong{font-family:var(--f-display);font-size:1.05rem}
.hello span{font-size:.8rem;color:var(--muted)}
.top-me{margin-left:auto;text-decoration:none}
.iconbtn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:10px;border:1px solid var(--line);background:var(--surface);color:var(--fg);cursor:pointer;padding:0}
.menu-btn{display:none}
.content{flex:1;width:100%;max-width:1320px;padding:10px 32px 40px}
.foot{color:var(--faint);font-size:.78rem;padding:0 32px 28px}
.scrim{display:none}

@media (max-width:980px){
  .side{transform:translateX(-102%);transition:transform .22s ease;box-shadow:var(--shadow-lg);width:min(300px,86vw)}
  body.nav-open .side{transform:none}
  body.nav-open .scrim{display:block;position:fixed;inset:0;background:rgba(6,20,26,.45);z-index:25}
  .side .side-close{display:inline-grid;background:transparent;color:#fff;border-color:rgba(255,255,255,.18)}
  .shell{margin-left:0}
  .menu-btn{display:inline-grid}
  .topbar{padding:12px 16px}
  .content{padding:8px 16px 32px}
  .foot{padding:0 16px 24px}
}
@media (prefers-reduced-motion:reduce){.side{transition:none}}

/* ---------- Page header & surfaces ---------- */
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:8px 0 22px}
.head p{margin:6px 0 0;color:var(--muted);max-width:72ch}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.6fr);gap:20px;align-items:start}
.grid2.wide-right{grid-template-columns:minmax(0,.75fr) minmax(0,2fr)}
@media (max-width:1100px){.grid2.wide-right{grid-template-columns:minmax(0,1fr)}}
@media (max-width:900px){.grid2{grid-template-columns:minmax(0,1fr)}}
.colstack{min-width:0;display:grid;gap:20px;grid-template-columns:minmax(0,1fr)}
.colstack > *{min-width:0}
.secgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;align-items:start}

/* Stat cards */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px;margin-bottom:20px}
.stat{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 18px;box-shadow:var(--shadow);overflow:hidden}
.stat::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--c,var(--accent-2))}
.stat::after{content:"";position:absolute;right:-28px;top:-28px;width:86px;height:86px;border-radius:50%;background:color-mix(in srgb,var(--c,var(--accent-2)) 14%,transparent)}
.stats .stat:nth-child(4n+1){--c:#1e95f5} .stats .stat:nth-child(4n+2){--c:#13c2c9} .stats .stat:nth-child(4n+3){--c:#ffb81c} .stats .stat:nth-child(4n+4){--c:#2fc27a}
.stat > *{position:relative;z-index:1}
.stat .k{font-size:.72rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);font-weight:600}
.stat .v{font-family:var(--f-display);font-size:1.75rem;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.25;margin-top:2px}
.stat .v .s{font-family:var(--f-body);font-size:.85rem;font-weight:500}
.stat .s{font-size:.8rem;color:var(--muted)}
.money{color:var(--gold)}

/* ---------- Forms ---------- */
form.stack{display:grid;gap:14px}
.row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.row3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:480px){.row,.row3{grid-template-columns:minmax(0,1fr)}}
label{display:grid;gap:6px;font-size:.8rem;font-weight:600;color:var(--muted)}
input,select,textarea{font:inherit;font-size:.95rem;color:var(--fg);background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-sm);padding:10px 12px;width:100%;min-width:0;transition:border-color .15s,box-shadow .15s}
input:hover,select:hover,textarea:hover{border-color:var(--faint)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-2);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-2) 18%,transparent)}
input[type=radio],input[type=checkbox]{width:auto;accent-color:var(--accent)}
textarea{min-height:72px;resize:vertical}
fieldset{border:0;padding:0;margin:0;display:grid;gap:12px}
legend{font-family:var(--f-display);font-weight:700;color:var(--fg);padding:0;margin-bottom:4px}
.sep{border-top:1px solid var(--line);padding-top:14px}
.lock{font-size:.66rem;color:var(--ok);font-weight:700;letter-spacing:.06em;background:var(--ok-soft);padding:1px 6px;border-radius:99px;vertical-align:1px}
.hint{font-size:.85rem;color:var(--muted);margin:0}
.calc{font-family:var(--f-mono);font-variant-numeric:tabular-nums;background:var(--accent-soft);color:var(--fg);border-radius:var(--r-sm);padding:11px 14px;font-size:.9rem;border:1px dashed color-mix(in srgb,var(--accent) 35%,transparent)}
.choice{display:flex;gap:10px;align-items:flex-start;font-size:.92rem;font-weight:400;color:var(--fg);background:var(--sunk);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;cursor:pointer}
.choice:has(input:checked){border-color:var(--accent-2);background:var(--accent-soft)}
.choice input{margin-top:4px}

/* Buttons */
button,.btn{font:inherit;font-weight:600;font-size:.92rem;cursor:pointer;border-radius:var(--r-sm);padding:9px 16px;border:1px solid var(--line-2);background:var(--surface);color:var(--fg);text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.3;transition:background .15s,border-color .15s,transform .05s,box-shadow .15s}
button:hover,.btn:hover{border-color:var(--faint);background:var(--sunk)}
button:active,.btn:active{transform:translateY(1px)}
button.primary,.btn.primary{background:linear-gradient(180deg,var(--accent-2),var(--accent));border-color:var(--accent);color:var(--accent-ink);box-shadow:0 6px 14px -6px color-mix(in srgb,var(--accent) 70%,transparent)}
button.primary:hover,.btn.primary:hover{filter:brightness(1.06);background:linear-gradient(180deg,var(--accent-2),var(--accent))}
button.danger{color:var(--bad);border-color:color-mix(in srgb,var(--bad) 45%,transparent);background:var(--surface)}
button.danger:hover{background:var(--bad-soft)}
button.link{border:0;background:none;padding:2px 6px;color:var(--accent);box-shadow:none}
button.link:hover{text-decoration:underline;background:none}
button:disabled{opacity:.55;cursor:not-allowed}
form.inline{display:inline}
.actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* ---------- Tables ---------- */
.tbl{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow)}
table{border-collapse:collapse;width:100%;font-size:.9rem}
th,td{text-align:left;padding:12px 14px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:top}
th{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);background:var(--sunk);font-weight:600}
tbody tr{transition:background .12s}
tbody tr:hover{background:color-mix(in srgb,var(--accent-soft) 40%,transparent)}
tbody tr:last-child td{border-bottom:0}
td a{font-weight:600;text-decoration:none}
td a:hover{text-decoration:underline}
.n{text-align:right;font-family:var(--f-mono);font-variant-numeric:tabular-nums}
tfoot td{font-weight:600;background:var(--sunk);border-top:1px solid var(--line-2)}
td .sub{display:block;color:var(--muted);font-size:.8rem;white-space:normal;font-weight:400}
td .sub.nw{white-space:nowrap}
td.wrap-cell{white-space:normal;min-width:220px}
.empty{padding:32px;text-align:center;color:var(--muted);white-space:normal}

/* Pills & status */
.pill{display:inline-flex;align-items:center;gap:5px;font-size:.72rem;font-weight:600;padding:3px 9px;border-radius:99px;letter-spacing:.02em;vertical-align:middle;white-space:nowrap}
.p-ft{background:var(--accent-soft);color:var(--accent)}
.p-pt{background:var(--warn-soft);color:var(--warn)}
.p-oc{background:var(--sunk);color:var(--muted);border:1px solid var(--line)}
.p-act{background:var(--ok-soft);color:var(--ok)}
.p-end{background:var(--bad-soft);color:var(--bad)}
.pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.mid{background:var(--accent-soft);color:var(--accent)}
.pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.bad{background:var(--bad-soft);color:var(--bad)}
.pill.ok::before,.pill.mid::before,.pill.warn::before,.pill.bad::before,.p-act::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.over{color:var(--warn);font-weight:600}

/* Toolbar & segmented control */
.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:end;margin-bottom:18px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow)}
.toolbar label{min-width:150px;flex:1 1 150px}
.seg{display:inline-flex;padding:3px;gap:2px;background:var(--sunk);border:1px solid var(--line);border-radius:12px}
.seg a{padding:7px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-radius:9px;font-size:.9rem}
.seg a:hover{color:var(--fg)}
.seg a[aria-current="true"]{background:var(--surface);color:var(--accent);box-shadow:0 1px 3px rgba(13,43,54,.15)}

/* Flash messages */
.flash{border-radius:var(--r-sm);padding:12px 16px;margin-bottom:16px;font-weight:500;border:1px solid transparent;display:flex;gap:10px;align-items:flex-start}
.flash::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:currentColor;margin-top:7px}
.flash-ok{background:var(--ok-soft);color:var(--ok);border-color:color-mix(in srgb,var(--ok) 20%,transparent)}
.flash-error{background:var(--bad-soft);color:var(--bad);border-color:color-mix(in srgb,var(--bad) 20%,transparent)}
.flash-info{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 20%,transparent)}

/* Bars, % and legend */
.bar{height:8px;background:var(--sunk);border-radius:99px;overflow:hidden;min-width:80px}
.bar i{display:block;height:100%;background:var(--accent)}
.tbar{height:10px;background:var(--sunk);border-radius:99px;overflow:hidden;min-width:110px}
.tbar i{display:block;height:100%;border-radius:99px}
.tbar i.ok,.st-ok{background:linear-gradient(90deg,#2fb877,var(--ok))} .tbar i.mid,.st-mid{background:linear-gradient(90deg,var(--accent-2),var(--accent))}
.tbar i.warn,.st-warn{background:linear-gradient(90deg,#f4b740,var(--warn))} .tbar i.bad,.st-bad{background:linear-gradient(90deg,var(--coral),var(--bad))}
.pct{font-family:var(--f-mono);font-weight:600;font-variant-numeric:tabular-nums}
.pct.ok{color:var(--ok)} .pct.mid{color:var(--accent)} .pct.warn{color:var(--warn)} .pct.bad{color:var(--bad)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.82rem;color:var(--muted);margin:12px 0 0}
.legend span{display:inline-flex;align-items:center;gap:7px}
.legend i{width:11px;height:11px;border-radius:4px;display:inline-block}

/* Report */
.reporthead{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:16px;margin-bottom:16px}
.reporthead .name{font-family:var(--f-display);font-size:1.45rem;font-weight:700}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 16px;font-size:.88rem;margin:0}
.kv dt{color:var(--muted)} .kv dd{margin:0}
.keybox{font-family:var(--f-mono);background:var(--sunk);border:1px dashed var(--line-2);border-radius:var(--r-sm);padding:12px;word-break:break-all;user-select:all}
pre.code{font-family:var(--f-mono);background:var(--sunk);border-radius:var(--r-sm);padding:12px;overflow-x:auto;font-size:.82rem}

/* ---------- Two-step login, account ---------- */
.qr{background:#fff;padding:12px;border-radius:12px;display:inline-block;line-height:0;border:1px solid var(--line);box-shadow:var(--shadow)}
.qr svg{width:200px;height:200px}
.codes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 18px;font-family:var(--f-mono);font-size:1rem;background:var(--sunk);border-radius:var(--r-sm);padding:14px;max-width:340px;user-select:all}
.or{display:flex;align-items:center;gap:10px;color:var(--faint);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em;margin:4px 0}
.or::before,.or::after{content:"";flex:1;border-top:1px solid var(--line)}
.cf-turnstile{min-height:65px}
.wa-msg{font-size:.88rem;color:var(--bad);min-height:1.2em;margin:0}
.statusline{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.statusline strong{font-family:var(--f-display);font-size:1.02rem}

/* ---------- Login (split screen) ---------- */
body.auth{min-height:100vh;background:var(--surface)}
.auth-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(380px,1fr);min-height:100vh}
.auth-art{position:relative;overflow:hidden;background:#2aa7d1}
.auth-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 62%}
.auth-art::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,40,52,0) 45%,rgba(9,40,52,.55) 78%,rgba(9,40,52,.82) 100%)}
.auth-caption{position:absolute;left:44px;right:44px;bottom:40px;z-index:1;color:#fff;display:grid;gap:4px;text-shadow:0 2px 12px rgba(0,0,0,.25)}
.auth-caption .eyebrow{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;opacity:.85;font-weight:600}
.auth-caption strong{font-family:var(--f-display);font-size:clamp(2.6rem,5vw,4.2rem);font-weight:800;letter-spacing:-.03em;line-height:1}
.auth-caption span:last-child{font-size:1.02rem;opacity:.92}
.auth-panel{display:flex;flex-direction:column;justify-content:center;align-items:center;padding:48px 32px 24px;background:var(--bg)}
.auth-panel > .flash{width:100%;max-width:400px}
.login{width:100%;max-width:400px}
.login .mark,.login svg.mark{width:46px;height:46px;margin-bottom:14px;filter:drop-shadow(0 6px 14px rgba(22,163,184,.35))}
.login h2{font-size:1.9rem}
.login > .hint{margin:6px 0 22px!important}
.login .panel{padding:24px;box-shadow:var(--shadow-lg);border-radius:18px}
.login button.primary{padding:12px 16px;font-size:.98rem}
.auth-foot{margin-top:28px;color:var(--faint);font-size:.78rem;text-align:center}
@media (max-width:860px){
  .auth-grid{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .auth-art{height:230px}
  .auth-caption{left:20px;right:20px;bottom:18px}
  .auth-caption strong{font-size:2.3rem}
  .auth-art::after{background:linear-gradient(180deg,rgba(9,40,52,0) 15%,rgba(9,40,52,.55) 55%,rgba(9,40,52,.85) 100%)}
  .auth-panel{justify-content:flex-start;padding:28px 16px 20px}
}

/* ---------- Roster ---------- */
.roster-wrap{max-width:100%}
table.roster{border-collapse:separate;border-spacing:0}
table.roster th,table.roster td{border-bottom:1px solid var(--line);border-right:1px solid var(--line)}
table.roster tbody tr:hover{background:none}
table.roster .who{position:sticky;left:0;z-index:2;background:var(--surface);min-width:170px;max-width:200px;white-space:normal}
table.roster thead .who,table.roster tfoot .who{background:var(--sunk)}
table.roster th.day{text-align:center;min-width:104px;line-height:1.3}
table.roster th.day a{color:inherit;text-decoration:none}
table.roster th.day a:hover{color:var(--accent)}
table.roster th.today{background:var(--accent);color:var(--accent-ink)}
table.roster td.cell{vertical-align:top;padding:6px;min-height:44px}
table.roster td.today{background:color-mix(in srgb,var(--accent-soft) 55%,transparent)}
table.roster td.weekend,table.roster th.weekend:not(.today){background:color-mix(in srgb,var(--sunk) 70%,transparent)}
table.roster td.na{background:repeating-linear-gradient(45deg,var(--sunk),var(--sunk) 4px,transparent 4px,transparent 8px)}
table.roster td.vac{background:var(--warn-soft)}
table.roster .tot{background:var(--sunk);white-space:nowrap}
table.roster tfoot td{text-align:center;font-family:var(--f-mono);font-size:.85rem}
.chip{display:block;text-decoration:none;color:var(--fg);background:var(--accent-soft);border-left:3px solid var(--accent);border-radius:7px;padding:5px 7px;margin-bottom:4px;font-size:.8rem;line-height:1.25;font-weight:500}
td .chip{font-weight:500}
.chip b{display:block;font-family:var(--f-mono);font-weight:600;font-variant-numeric:tabular-nums}
.chip span{display:block;color:var(--muted);font-size:.74rem;white-space:normal}
.chip.planned{background:var(--surface);border:1px dashed var(--accent);border-left:3px solid var(--accent)}
.chip:hover{filter:brightness(.97);text-decoration:none}
.chip.clash{background:var(--bad-soft);border-left-color:var(--bad);color:var(--bad)}
.vacchip{display:block;text-align:center;font-weight:600;font-size:.78rem;color:var(--warn);padding:4px 0}
td.free .add{display:block;text-align:center;color:var(--faint);text-decoration:none;border:1px dashed transparent;border-radius:7px;padding:6px 0;font-weight:600}
td.free .add:hover,td.free .add:focus-visible{border-color:var(--line-2);color:var(--accent);background:var(--sunk);text-decoration:none}
table.roster.compact th.day{min-width:34px;padding:6px 2px;font-size:.66rem}
table.roster.compact td.cell{padding:3px 2px;text-align:center}
table.roster.compact .chip{padding:3px 0;text-align:center;font-family:var(--f-mono);font-size:.74rem;border-left-width:0;border-top:3px solid var(--accent);margin:0;border-radius:5px}
table.roster.compact .chip.planned{border-top-style:solid}
table.roster.compact .chip.clash{border-top-color:var(--bad)}
table.roster.compact td.free .add{padding:3px 0;font-size:.8rem}
table.roster.compact .vacchip{padding:3px 0}
.lg-shift{background:var(--accent)} .lg-planned{border:1px dashed var(--accent);background:var(--surface)}
.lg-vac{background:var(--warn-soft);border:1px solid var(--warn)} .lg-clash{background:var(--bad-soft);border:1px solid var(--bad)}
.lg-na{background:repeating-linear-gradient(45deg,var(--sunk),var(--sunk) 2px,var(--line-2) 2px,var(--line-2) 4px)}
.hours-scale{position:relative;height:1em;font-weight:500}
.hours-scale span{position:absolute;transform:translateX(-50%);font-size:.66rem;letter-spacing:0}
.hours-scale span:first-child{transform:none}.hours-scale span:last-child{transform:translateX(-100%)}
.timeline{position:relative;height:20px;background:var(--sunk);border-radius:6px;background-image:linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:25% 100%}
.timeline i{position:absolute;top:3px;bottom:3px;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:4px}
.timeline i.planned{background:transparent;border:1px dashed var(--accent)}
ul.plain{list-style:none;padding:0;margin:10px 0 0;display:grid;gap:8px}

/* ---------- Print ---------- */
@media print{
  :root{--bg:#fff;--surface:#fff;--sunk:#f2f2f2;--fg:#000;--muted:#444;--line:#ccc;--gold:#000;--accent:#000;--shadow:none}
  .side,.topbar,.scrim,.toolbar,.no-print,.foot,.flash{display:none!important}
  .shell{margin:0} .content{padding:0;max-width:none}
  .panel,.stat,.tbl{box-shadow:none} .panel{border:0;padding:0}
  .tbl{border:0;overflow:visible}
  th,td{padding:6px 8px}
  table.roster .who{position:static} .chip{border:1px solid #999}
}

/* ---------- Smooth page switching ---------- */
@view-transition{navigation:auto}
.side{view-transition-name:side}
.topbar{view-transition-name:topbar}
::view-transition-old(root),::view-transition-new(root){animation-duration:.16s}
@media (prefers-reduced-motion:reduce){@view-transition{navigation:none}}
.label-row{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.label-row a{font-weight:600;font-size:.8rem;text-decoration:none}
.label-row a:hover{text-decoration:underline}

/* ---------- Settings rows (Settings, My account) ---------- */
.subnav{display:flex;gap:4px;flex-wrap:wrap;margin:-6px 0 18px;position:sticky;top:68px;z-index:5;padding:6px;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px}
.subnav a{padding:6px 12px;border-radius:99px;text-decoration:none;color:var(--muted);font-weight:600;font-size:.86rem;border:1px solid var(--line);background:var(--surface)}
.subnav a:hover{color:var(--accent);border-color:var(--accent-2)}
.setrow{display:grid;grid-template-columns:minmax(0,300px) minmax(0,1fr);gap:28px;padding:24px 0;border-top:1px solid var(--line);scroll-margin-top:120px;max-width:1100px;align-items:start}
.setrow:first-of-type{border-top:0}
.setrow .about h3{margin:0 0 6px;font-size:1.05rem}
.setrow .about p{margin:0 0 10px;color:var(--muted);font-size:.9rem;line-height:1.5}
.setrow .panel{display:grid;gap:14px;align-content:start}
.setrow .panel > .sep{margin:0}
@media (max-width:900px){.setrow{grid-template-columns:minmax(0,1fr);gap:12px;padding:18px 0}.subnav{top:64px}}
.choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.choices.three{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:640px){.choices,.choices.three{grid-template-columns:minmax(0,1fr)}}
.formfoot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.formfoot .hint{flex:1 1 220px}
.inline-form{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap}
.inline-form label{flex:1 1 200px}
.inline-form.compact{gap:6px;align-items:center;flex-wrap:nowrap}
.inline-form.compact input{width:150px;padding:6px 10px}
.infobox{background:var(--accent-soft);border-radius:var(--r-sm);padding:10px 14px;font-size:.9rem}
ol.steps{margin:0;padding-left:20px;display:grid;gap:6px;color:var(--muted);font-size:.9rem}
code.copy{user-select:all;word-break:break-all;font-family:var(--f-mono);font-size:.82rem;background:var(--sunk);padding:2px 6px;border-radius:6px}
details > summary{cursor:pointer;list-style-position:inside}
details[open] > summary{margin-bottom:10px}
.itemlist{list-style:none;margin:0;padding:0;display:grid;gap:0;border:1px solid var(--line);border-radius:var(--r-sm)}
.itemlist li{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;border-top:1px solid var(--line);flex-wrap:wrap}
.itemlist li:first-child{border-top:0}
.itemlist li .hint{display:block;font-size:.8rem}
.qr-setup{display:grid;grid-template-columns:auto minmax(0,1fr);gap:20px;align-items:start}
@media (max-width:640px){.qr-setup{grid-template-columns:minmax(0,1fr)}}
.profile-head{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin:8px 0 18px}
.profile-head h2{margin:0}
.profile-head .hint{margin-top:2px}
.profile-badges{margin-left:auto}
.avatar.lg{width:56px;height:56px;font-size:1.15rem}
.callout{border-color:var(--warn);background:var(--warn-soft);margin-bottom:18px;display:grid;gap:10px}
.choice.switch{justify-content:space-between;align-items:center}
.choice.switch:has(input:checked){background:var(--sunk);border-color:var(--line)}
.choice.switch input{appearance:none;-webkit-appearance:none;width:42px;height:24px;border-radius:99px;background:var(--line-2);position:relative;flex:none;cursor:pointer;margin:0;border:0;transition:background .15s}
.choice.switch input::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:left .15s}
.choice.switch input:checked{background:var(--accent)}
.choice.switch input:checked::after{left:21px}
label > .lock, label .lock{justify-self:start;width:max-content}

/* ---------- Invoices, companies, import, pay ---------- */
.row4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:640px){.row4{grid-template-columns:repeat(2,minmax(0,1fr))}}
.mono{font-family:var(--f-mono);font-size:.85rem}
.upload-panel{margin-bottom:18px}
.upload-row{display:flex;gap:14px;align-items:stretch;flex-wrap:wrap}
.dropzone{flex:1 1 320px;display:grid;gap:4px;padding:22px;border:2px dashed var(--line-2);border-radius:var(--r);background:var(--sunk);cursor:pointer;color:var(--fg);font-size:.95rem;text-align:center;place-items:center}
.dropzone:hover,.dropzone.drag{border-color:var(--accent-2);background:var(--accent-soft)}
.dropzone input[type=file]{max-width:320px;background:transparent;border:0;padding:4px}
.upload-row > button{align-self:center}
.ocr-status{display:flex;align-items:center;gap:10px;font-size:.9rem;color:var(--muted);width:100%}
.ocr-status .tbar{flex:1;max-width:320px}
.inv-edit{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:20px;align-items:start;margin-bottom:22px}
@media (max-width:1000px){.inv-edit{grid-template-columns:minmax(0,1fr)}}
.scan-panel{position:sticky;top:80px}
.scan{display:block;width:100%;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--sunk)}
iframe.scan{height:72vh}
img.scan{max-height:76vh;object-fit:contain}
.staffpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:8px}
.staffpick legend{grid-column:1/-1}
.pick{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--sunk);font-weight:500;color:var(--fg);cursor:pointer}
.pick:has(input:checked){border-color:var(--accent-2);background:var(--accent-soft)}
.pick input{width:auto}
.pick small{display:block;color:var(--muted);font-weight:400}
.found{background:color-mix(in srgb,var(--ok-soft) 70%,transparent)!important;border-color:var(--ok)!important}
.verified{display:flex;align-items:center;gap:8px;font-size:.85rem;color:var(--ok);background:var(--ok-soft);border-radius:var(--r-sm);padding:8px 12px}
.verified::before{content:"";width:16px;height:16px;flex:none;border-radius:50%;background:var(--ok) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.5l2.5 2.5L12 5.5' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat}
td .verified{display:inline-flex;padding:2px 8px;font-size:.75rem;background:transparent}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;flex-wrap:wrap}
.tabs a{padding:9px 14px;text-decoration:none;color:var(--muted);font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}
.tabs a[aria-current="page"]{color:var(--fg);border-bottom-color:var(--accent)}
.tbl input.cell-in{width:96px;padding:5px 8px;text-align:right;font-family:var(--f-mono);font-size:.85rem}
.tbl select.cell-in{width:auto;min-width:170px;padding:5px 8px;font-size:.85rem}
.neg{color:var(--bad)}
.pos{color:var(--ok)}
.yeargrid td,.yeargrid th{padding:8px 9px;font-size:.82rem}
.yeargrid td.paid{background:color-mix(in srgb,var(--ok-soft) 55%,transparent)}
.yeargrid td.open{background:color-mix(in srgb,var(--warn-soft) 45%,transparent)}
.yeargrid .who{position:sticky;left:0;background:var(--surface);z-index:1}
.yeargrid thead .who,.yeargrid tfoot .who{background:var(--sunk)}
.warnlist{margin:0;padding-left:18px;display:grid;gap:4px;font-size:.88rem}
.stepper{display:flex;gap:8px;flex-wrap:wrap;margin:-4px 0 18px;font-size:.85rem;color:var(--muted)}
.stepper span{padding:4px 10px;border-radius:99px;border:1px solid var(--line);background:var(--surface)}
.stepper span.on{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.stepper span.done{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.linkbtn{background:none;border:0;padding:0;margin:0 0 0 6px;color:var(--accent);font:inherit;font-size:.82rem;font-weight:600;cursor:pointer;text-decoration:underline;min-height:0;box-shadow:none}
.linkbtn:hover{background:none;color:var(--accent-2)}
.warn-t{color:var(--warn);font-weight:600}
.tbl td .sub + .sub{margin-top:0}
.inline-form.compact .cell-in{width:110px}
.stack > *, .panel, .grid2 > *{min-width:0}
.tbl input.cell-txt{width:230px;padding:5px 8px;font-size:.85rem;text-align:left;font-family:inherit}
.tbl td .stack{display:grid;gap:6px}
.verified{display:block;position:relative;padding-left:34px}
.verified::before{position:absolute;left:11px;top:50%;transform:translateY(-50%)}
td .verified{display:inline-block;padding:2px 6px 2px 24px}
td .verified::before{left:4px;width:14px;height:14px}
.fxbox{display:grid;gap:10px;padding:12px;border:1px dashed var(--line-2);border-radius:var(--r-sm);background:var(--sunk)}
.fxbox .calc{margin:0;align-self:end}
.fxbox label b{display:inline;font-weight:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.langswitch{margin:0}
.langswitch select{width:auto;padding:6px 30px 6px 10px;font-size:.85rem;border-radius:99px;min-height:0;background-color:var(--surface)}
.topbar .langswitch{margin-left:auto}
.topbar .langswitch + .top-me{margin-left:10px}
.auth-lang{display:flex;justify-content:flex-end;margin-bottom:8px}
/* ---------- Full-width form on top, list below (Work hours, Staff, Vacation) ---------- */
.pagestack{display:grid;gap:20px;min-width:0}
.pagestack > *{min-width:0}
.formgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 14px;align-items:end}
.formgrid .span2{grid-column:span 2}
.formgrid .span3{grid-column:span 3}
.formgrid .span4{grid-column:1/-1}
@media (max-width:1000px){.formgrid{grid-template-columns:repeat(2,minmax(0,1fr))}.formgrid .span3{grid-column:1/-1}}
@media (max-width:560px){.formgrid .span2,.formgrid .span3{grid-column:1/-1}.topbar .hello span{display:none}}
.formfoot .calc{margin:0;flex:1 1 260px}
.fsgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;align-items:start}
.fsgrid fieldset{margin:0;min-width:0;display:grid;gap:12px;align-content:start}
@media (max-width:1100px){.fsgrid{grid-template-columns:minmax(0,1fr)}}
details.formpanel > summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between}
details.formpanel > summary::-webkit-details-marker{display:none}
details.formpanel > summary h3{margin:0}
details.formpanel > summary::after{content:"";width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);margin-right:6px;transition:transform .15s}
details.formpanel[open] > summary::after{transform:rotate(-135deg)}
details.formpanel[open] > summary{margin-bottom:16px}
/* Language buttons EN / NL / PAP */
.langswitch{display:inline-flex;gap:4px;margin:0;padding:3px;border:1px solid var(--line);border-radius:99px;background:var(--surface)}
.langswitch button{min-height:0;padding:5px 10px;border:0;border-radius:99px;background:transparent;box-shadow:none;font-size:.78rem;font-weight:700;letter-spacing:.04em;color:var(--muted);cursor:pointer}
.langswitch button:hover{color:var(--fg);background:var(--sunk)}
.langswitch button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.invlines input:not(.cell-in){min-width:260px;padding:6px 10px}
.invlines tfoot td{background:var(--sunk)}
.logo-prev{max-height:64px;max-width:220px;object-fit:contain;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px}
.btn.small{padding:5px 10px;font-size:.82rem;min-height:0}
details.days{margin-top:4px;font-size:.8rem}
details.days summary{color:var(--accent);font-weight:600;cursor:pointer}
details.days table{margin-top:4px;border-collapse:collapse}
details.days td{padding:2px 8px 2px 0;border:0;font-size:.8rem;white-space:nowrap}
.paymethod{width:auto;min-width:130px}
video.tutorial{display:block;width:100%;max-height:78vh;border-radius:var(--r-sm);background:#0b3f86}
.chapters{margin:0;padding-left:20px;display:grid;gap:6px}
.chapters .linkbtn{margin:0 6px 0 0;font-variant-numeric:tabular-nums}

/* v2.2.11 – staff pay: cash/bank, Mark paid and slip under each staff member */
button.small{padding:5px 10px;font-size:.82rem;min-height:0}
.btn.small .ico,button.small .ico{width:15px;height:15px}
td.paycell{min-width:172px;width:172px}
table.paytbl th,table.paytbl td{padding-left:9px;padding-right:9px}
table.paytbl td.paycell .sub{white-space:normal}
.payrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:3px 0}
.payrow .paymethod{min-width:0;width:100%;padding:5px 8px;font-size:.85rem}
.pm{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px}
.pm-bank{background:var(--accent-soft);color:var(--accent)}
.pm-cash{background:var(--warn-soft);color:var(--warn)}
/* v2.2.12 – from–to date filter */
.toolbar label.rangef{flex:0 1 165px}
.quickrange{display:flex;flex-wrap:wrap;gap:6px;flex-basis:100%;margin-top:2px}
.quickrange a{font-size:.8rem;font-weight:600;padding:4px 10px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--muted);text-decoration:none}
.quickrange a:hover{border-color:var(--accent-2);color:var(--accent)}
.quickrange a[aria-current="true"]{background:var(--accent-soft);border-color:var(--accent-2);color:var(--accent)}
.toolbar .or{align-self:center;color:var(--muted);font-size:.85rem;padding:0 2px}
/* v2.2.12 – staff pay list: filter tabs and pages */
.payfilter .seg{flex-wrap:wrap;max-width:100%}
.seg .cnt{display:inline-block;min-width:20px;padding:0 6px;margin-left:4px;border-radius:999px;background:var(--sunk);color:var(--muted);font-size:.75rem;font-weight:700;text-align:center}
.seg a[aria-current="true"] .cnt{background:var(--accent-soft);color:var(--accent)}
.pager{display:flex;flex-wrap:wrap;gap:6px;align-items:center;justify-content:flex-end;margin-top:12px}
.pager .hint{margin-right:auto}
/* v2.3 – already-paid safeguard on Staff pay */
.alert-paid{display:flex;gap:14px;align-items:flex-start;background:#fff4d6;border:1px solid #f2c14e;border-left:6px solid #e5a000;color:#3d2a00;border-radius:var(--r);padding:14px 18px;margin:0 0 18px;box-shadow:var(--shadow)}
.alert-paid .ap-ico{flex:none;width:30px;height:30px;border-radius:50%;background:#e5a000;color:#fff;display:grid;place-items:center;font-weight:800;font-size:1.1rem}
.alert-paid ul{margin:6px 0 6px 18px;padding:0}
.alert-paid li{margin:2px 0}
.sub.warnline{color:#a05600;font-weight:600}
tr.row-paid td{background:color-mix(in srgb,var(--ok-soft) 45%,transparent)}

/* v2.3 – page area: bright white, blue and black (the blue menu stays as it is) */
.shell{background:#ffffff}
.topbar{background:rgba(255,255,255,.92);border-bottom:1px solid var(--line)}
h2,h3,.hello strong{color:#05070c}
.head h2{display:inline-flex;align-items:center;gap:10px}
.head h2::before{content:"";width:6px;height:26px;border-radius:3px;background:linear-gradient(180deg,#1e95f5,#0a6fd6)}
.panel,.stat,.toolbar,.tbl{border-color:#cfe0f5;box-shadow:0 1px 2px rgba(10,60,130,.05),0 8px 24px -14px rgba(10,60,130,.18)}
.stat .v,.stat .v.money,.money{color:#05070c}
.stats .stat:nth-child(4n+1){--c:#0a6fd6} .stats .stat:nth-child(4n+2){--c:#1e95f5} .stats .stat:nth-child(4n+3){--c:#05070c} .stats .stat:nth-child(4n+4){--c:#5cb6ff}
th{background:#eaf3ff;color:#0a4fa8}
tbody tr:hover td{background:#f6faff}
tfoot td{background:#f1f6fd;color:#05070c;font-weight:700}
.tabs a[aria-current="page"]{color:#0a6fd6;border-bottom-color:#0a6fd6}
.seg{background:#eef5fe;border-color:#cfe0f5}
.seg a[aria-current="true"]{background:#0a6fd6;color:#fff;box-shadow:0 2px 8px -2px rgba(10,111,214,.5)}
.seg a[aria-current="true"] .cnt{background:rgba(255,255,255,.25);color:#fff}
.quickrange a[aria-current="true"]{background:#0a6fd6;border-color:#0a6fd6;color:#fff}
button:not(.primary):not(.linkbtn):not(.link):not(.danger):not(.side-out):not(.iconbtn),.btn:not(.primary){border-color:#b9cfea;color:#05070c}
input,select,textarea{border-color:#c3d6ea}
input:focus,select:focus,textarea:focus{border-color:#1e95f5;box-shadow:0 0 0 3px rgba(30,149,245,.18)}
/* v2.4 – payroll reminder, advances (red) and extra pay (green), invoice templates, paid days in the roster */
.paybanner{display:flex;gap:16px;align-items:center;flex-wrap:wrap;background:linear-gradient(100deg,#0a6fd6,#1e95f5);color:#fff;border-radius:var(--r);padding:16px 20px;margin:0 0 18px;box-shadow:0 10px 28px -14px rgba(10,111,214,.7)}
.paybanner .pb-ico{flex:none;width:46px;height:46px;border-radius:12px;background:rgba(255,255,255,.18);display:grid;place-items:center}
.paybanner .pb-ico .ico{width:26px;height:26px;color:#fff}
.paybanner .pb-main{flex:1 1 320px;min-width:0}
.paybanner .pb-k{font-size:.78rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#d8ecff}
.paybanner .pb-v{font-size:1.45rem;font-weight:800;line-height:1.25}
.paybanner .pb-s{font-size:.9rem;color:#e6f2ff}
.paybanner .pb-warn{margin-top:6px;display:inline-block;background:#fff4d6;color:#5a3d00;border-radius:8px;padding:4px 10px;font-size:.85rem;font-weight:600}
.paybanner .pb-warn a{color:#8a4b00}
.paybanner .btn.primary{background:#fff;color:#0a4fa8;border-color:#fff}
.amt-adv{color:#d0202f;font-weight:700}
.amt-ext{color:#11804b;font-weight:700}
td.advcell{min-width:118px}
td.advcell .amt-adv,td.advcell .amt-ext{display:block;white-space:nowrap;margin-bottom:3px}
input.cell-in.in-adv{border-color:#f0a3ab;background:#fff5f6;color:#b3121f}
input.cell-in.in-adv::placeholder{color:#e0707c}
input.cell-in.in-ext{border-color:#9ad8b5;background:#f2fbf6;color:#0b6b3d}
input.cell-in.in-ext::placeholder{color:#4fb27f}
.kindpick{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.kindpick label{display:flex;gap:8px;align-items:center;border:2px solid var(--line);border-radius:10px;padding:8px 10px;cursor:pointer;font-weight:700}
.kindpick small{display:block;font-weight:500;color:var(--muted)}
.kindpick .k-adv{color:#b3121f}.kindpick .k-ext{color:#0b6b3d}
.kindpick .k-adv:has(input:checked){border-color:#d0202f;background:#fff5f6}
.kindpick .k-ext:has(input:checked){border-color:#11804b;background:#f2fbf6}
.tplpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:12px}
.tplpick .tpl{display:flex;flex-direction:column;gap:6px;align-items:center;border:2px solid var(--line);border-radius:12px;padding:8px;cursor:pointer;background:#fff;text-align:center;font-size:.82rem;font-weight:600}
.tplpick .tpl img{width:100%;height:auto;border-radius:4px;box-shadow:0 1px 4px rgba(0,0,0,.15)}
.tplpick .tpl input{position:absolute;opacity:0;pointer-events:none}
.tplpick .tpl:has(input:checked){border-color:#0a6fd6;box-shadow:0 0 0 3px rgba(30,149,245,.25)}
.tplpick .tpl:has(input:focus-visible){outline:2px solid #0a6fd6;outline-offset:2px}
.tplpick .tpl a{font-size:.75rem;font-weight:500}
.chip.paid{background:#e3f7ec;border-left-color:#11804b;color:#0a4d2c}
.chip.unpaid{background:#fde8ea;border-left-color:#d0202f;color:#8f1220}
.legend i.lg-paid{background:#e3f7ec;border-left:3px solid #11804b}
.legend i.lg-unpaid{background:#fde8ea;border-left:3px solid #d0202f}
.pill.p-paid{background:#e3f7ec;color:#0b6b3d}
.pill.p-unpaid{background:#fde8ea;color:#b3121f}
.logopick{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.logopick .lg{display:flex;flex-direction:column;gap:6px;align-items:center;border:2px solid var(--line);border-radius:12px;padding:10px;cursor:pointer;background:#fff;text-align:center;font-size:.82rem;font-weight:600;position:relative}
.logopick .lg input{position:absolute;opacity:0;pointer-events:none}
.logopick .lg-img{width:100%;height:84px;display:grid;place-items:center;background:#fff;border-radius:6px}
.logopick .lg-img img{max-width:100%;max-height:84px;object-fit:contain}
.logopick .lg-txt{color:var(--muted);font-size:1.1rem;border:1px dashed var(--line)}
.logopick .lg:has(input:checked){border-color:#0a6fd6;box-shadow:0 0 0 3px rgba(30,149,245,.25)}
.logopick .lg:has(input:focus-visible){outline:2px solid #0a6fd6;outline-offset:2px}

.staffno{display:inline-block;font:600 .78em/1.4 ui-monospace,Menlo,Consolas,monospace;color:#1d4ed8;background:#e8f0ff;border-radius:4px;padding:0 .35em;margin-right:.2em;vertical-align:1px}
.numpre{display:flex;align-items:stretch}.numpre>span{display:flex;align-items:center;padding:0 .6em;border:1px solid var(--line,#cfd8e3);border-right:0;border-radius:10px 0 0 10px;background:#f1f5fb;font-family:ui-monospace,Menlo,Consolas,monospace;font-weight:600}.numpre input{border-radius:0 10px 10px 0!important;font-family:ui-monospace,Menlo,Consolas,monospace}
.itempick{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end;padding:12px 14px;border:1px dashed #9cc3f5;border-radius:12px;background:#f4f8ff}.itempick label{min-width:280px;flex:0 1 420px}
.invlines tr.justadded td{background:#e6f9ee;transition:background .4s}
tr.muted td{opacity:.6}

/* ---------- Finance overview (Income / Outcome / Summary) ---------- */
.fin-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:22px;align-items:start}

.fin-sec{min-width:0}
.fin-band{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap;margin:0 0 10px;padding:10px 16px;border-radius:12px;background:linear-gradient(90deg,#0b5fc8,#1e95f5);color:#fff;font-size:1.35rem;letter-spacing:.01em}
.fin-band span{font:500 .85rem/1.3 inherit;font-family:inherit;opacity:.9}
.fin-outcome .fin-band{background:linear-gradient(90deg,#0f172a,#334155)}
.fin-summary .fin-band{background:linear-gradient(90deg,#1e95f5,#5fb8ff)}
.fin-tbl td{vertical-align:middle}
.fin-tbl td.st{font-weight:700;text-align:center;min-width:92px}
td.st-paid{background:#5cb85c!important;color:#fff}
td.st-open{background:#e5363c!important;color:#fff}
.markpaid summary{cursor:pointer;list-style:none;color:#fff}.markpaid summary::-webkit-details-marker{display:none}
.markpaid summary::after{content:' ▾';font-weight:400}
.markpaid[open]{position:relative}.markpaid form{position:absolute;right:0;top:26px;z-index:5;min-width:220px;padding:12px;background:#fff;color:#0f172a;border:1px solid #cfd8e3;border-radius:12px;box-shadow:0 12px 30px rgba(15,23,42,.18);text-align:left;font-weight:400}
.fin-sumwrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;align-items:start}
.fin-sumtbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid #dbe4ef;border-radius:12px;overflow:hidden}
.fin-sumtbl th{background:#eef4fc;text-align:left;font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:#334155;padding:9px 12px}
.fin-sumtbl td{padding:8px 12px;border-top:1px solid #eef2f7}
.fin-sumtbl td.n,.fin-sumtbl th.n{text-align:right;font-family:ui-monospace,Menlo,Consolas,monospace;white-space:nowrap}
.fin-sumtbl tr.strong td{font-weight:700}
.fin-sumtbl tr.sub td:first-child{padding-left:28px;color:#475569;font-size:.92em}
.fin-sumtbl tr.pos td.n{color:#15803d}
.fin-sumtbl tr.neg td.n{color:#c81e1e;font-weight:700}
.fin-sumtbl tr.total td{background:#0f172a;color:#fff;font-weight:700;border-top:0}
.fin-sumtbl tr.total + tr.total td{background:#1e293b}
.fin-sumtbl td.neg{color:#ff8a8a}
.srctag{display:inline-block;font-size:.7rem;font-weight:600;padding:0 .45em;border-radius:5px;background:#e8f0ff;color:#1d4ed8;vertical-align:1px}
.expform{margin-bottom:12px}.expform>summary{cursor:pointer;font-weight:700;color:#0b5fc8}.expform[open]>summary{margin-bottom:10px}
.fin-act{font-size:.85em;width:1%;white-space:normal;min-width:52px}.fin-act form{display:block}
.fin-sumtbl tr.sub + tr.sub td:first-child{}
.fin-tbl td:nth-child(2),.fin-income .fin-tbl td:first-child{white-space:normal;min-width:180px}.fin-tbl th,.fin-tbl td{padding:10px 10px}
.billcalc{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 16px;border-radius:12px;background:#eaf3ff;border:1px solid #b9d6fb}.billcalc>div{display:flex;flex-direction:column;gap:2px}.billcalc strong{color:#0b4ea8}
.invlines td:first-child{width:52%;min-width:260px}.invlines td:first-child input{width:100%}
table.compact td,table.compact th{padding:6px 12px}
.typeprices{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px}
.pricegrid td .cell-in{width:84px}.pricegrid td,.pricegrid th{padding:8px 8px}
#types table.compact td,#types table.compact th{padding:6px 8px}
#types table.compact td:first-child{width:46%}#types .linkbtn{white-space:nowrap}

/* jobs (types of work) */
.job{--jc:#64748b;--jb:#f1f5f9}
.job-1{--jc:#0b5fc8;--jb:#e6f0ff}.job-2{--jc:#7c3aed;--jb:#f1eaff}.job-3{--jc:#c2410c;--jb:#fff1e6}.job-4{--jc:#047857;--jb:#e3f8ef}.job-5{--jc:#be185d;--jb:#fde8f2}.job-0{--jc:#475569;--jb:#eef2f6}
.jobcount .job{display:inline-block;padding:1px 8px;border-radius:999px;background:var(--jb);color:var(--jc);font-weight:600;margin-right:4px}
.jobpick{display:flex;flex-wrap:wrap;gap:4px;max-width:250px}
.jobpick button.job{font-size:.74rem;padding:3px 8px;border-radius:999px;border:1px solid #d5dde8;background:#fff;color:#64748b;min-height:0;box-shadow:none;font-weight:600;line-height:1.3}
.jobpick button.job:hover{border-color:var(--jc);color:var(--jc)}
.jobpick button.job[aria-pressed=true]{background:var(--jc);border-color:var(--jc);color:#fff}
.jobradio{display:flex;flex-wrap:wrap;gap:6px;border:0;padding:0;margin:0}.jobradio legend{font-size:.85rem;margin-bottom:6px;padding:0}
.jobradio label.job{display:inline-flex;cursor:pointer}.jobradio input{position:absolute;opacity:0;pointer-events:none}
.jobradio label.job span{padding:6px 12px;border-radius:999px;border:1px solid #d5dde8;background:#fff;color:#475569;font-weight:600;font-size:.85rem}
.jobradio input:checked + span{background:var(--jc);border-color:var(--jc);color:#fff}
.jobradio input:focus-visible + span{outline:2px solid var(--jc);outline-offset:2px}
.sliptbl td .cell-in{width:140px}.sliptbl tfoot td{font-weight:700}.sliptbl tr.slipnet td{background:#0f172a;color:#fff;font-size:1.05rem}
.slipsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.slipsum>div{display:flex;flex-direction:column;gap:2px;padding:12px 14px;border-radius:12px;background:#f4f8ff;border:1px solid #dbe7f7}
.slipsum .k{font-size:.75rem;text-transform:uppercase;letter-spacing:.06em;color:#475569}.slipsum strong{font:700 1.35rem/1.2 ui-monospace,Menlo,Consolas,monospace;color:#0f172a}
.pill.p-payroll{background:#ede9fe;color:#5b21b6}
.calcgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:18px;align-items:start}@media(min-width:1100px){.calcgrid{grid-template-columns:360px minmax(0,1fr)}}
.netbox{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px;border-radius:14px;background:linear-gradient(135deg,#0b5fc8,#1e95f5);color:#fff;text-align:center}
.netbox .k{font-size:.8rem;text-transform:uppercase;letter-spacing:.08em;opacity:.9}.netbox strong{font:700 2.1rem/1.1 ui-monospace,Menlo,Consolas,monospace}.netbox .hint{color:#e6f0ff}
.netbox.empty{background:#eef4fc;color:#0f172a}.netbox.empty .hint{color:#475569}
.usecalc{padding:12px;border-radius:12px;background:#f4f8ff;border:1px solid #dbe7f7;flex-wrap:wrap}
.calcfill{flex-wrap:wrap;align-items:end;gap:10px 14px}
.payrollcall{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;border-left:4px solid #7c3aed}.payrollcall>div{display:flex;flex-direction:column;gap:2px}
.pill.p-calc{background:#fff4d6;color:#8a5a00}

/* payroll on/off */
.prswitch{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border-radius:999px;border:1px solid #d5dde8;background:#fff;color:#64748b;font-weight:600;font-size:.78rem;min-height:0;box-shadow:none;cursor:pointer;white-space:nowrap}
.prswitch .track,.switch .track{position:relative;display:inline-block;width:34px;height:20px;border-radius:999px;background:#cbd5e1;transition:background .15s;flex:none}
.prswitch .track::after,.switch .track::after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.25);transition:left .15s}
.prswitch[aria-pressed=true]{background:#ecfdf3;border-color:#16a34a;color:#15803d}
.prswitch[aria-pressed=true] .track{background:#16a34a}.prswitch[aria-pressed=true] .track::after{left:16px}
.prcount{display:inline-block;padding:1px 8px;border-radius:999px;background:#ecfdf3;color:#15803d;font-weight:600}
.payrollbox{border:1px solid #d5dde8;border-radius:14px;padding:12px 14px;margin:0;background:#f8fafc}
.payrollbox:has(input[data-payroll-toggle]:checked){border-color:#16a34a;background:#f0fdf4}
.switch{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:1rem}.switch input{position:absolute;opacity:0;pointer-events:none}
.switch input:checked + .track{background:#16a34a}.switch input:checked + .track::after{left:16px}
.switch input:focus-visible + .track{outline:2px solid #16a34a;outline-offset:2px}
.switch .state-on{display:none;color:#15803d;font-weight:700}.switch input:checked ~ .lbl .state-on{display:inline}.switch input:checked ~ .lbl .state-off{display:none}.switch .state-off{color:#64748b}
.payroll-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;align-items:end;margin-top:8px}
.payrollbox:not(:has(input[data-payroll-toggle]:checked)) .payroll-fields{opacity:.5}

/* Staff pay table: keep everything inside the page */
table.paytbl td:nth-child(2){white-space:normal;min-width:160px}
table.paytbl td:nth-child(2) strong{overflow-wrap:anywhere}
table.paytbl .bankline{white-space:normal;overflow-wrap:anywhere}
table.paytbl td.advcell{min-width:112px;width:112px}
table.paytbl td.advcell input.cell-in{width:104px;display:block;margin:3px 0 0 auto}
td.paycell{min-width:150px;width:150px}
td.paycell .payrow{flex-direction:column;align-items:stretch;gap:5px}
td.paycell .payrow > .btn,td.paycell .payrow > button{width:100%;justify-content:center;text-align:center;white-space:nowrap}
td.paycell .payrow .pill,td.paycell .payrow .pm{align-self:flex-start}
td.paycell .payrow:has(> .pill){flex-direction:row;align-items:center;flex-wrap:wrap}
table.paytbl{width:100%}

/* Staff pay: one main button per row, the rest under More */
td.paycell{min-width:170px;width:170px}
td.paycell .payrow{flex-direction:row;align-items:center;flex-wrap:nowrap;gap:6px}
td.paycell .payrow .paymethod{width:auto;flex:1 1 auto;min-width:0}
td.paycell .payrow > .btn,td.paycell .payrow > button{width:auto;flex:none}
td.paycell .payrow > .btn:only-child,td.paycell .payrow > button:only-child{width:100%}
.paystate{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-bottom:4px}.paystate .sub{flex-basis:100%}
details.more{position:relative;margin-top:4px}
details.more>summary{list-style:none;cursor:pointer;font-size:.78rem;color:#475569;display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border-radius:6px}
details.more>summary::-webkit-details-marker{display:none}
details.more>summary::after{content:'▾';font-size:.7rem}
details.more>summary:hover{background:#eef4fc;color:#0b5fc8}
details.more[open]>summary{background:#eef4fc;color:#0b5fc8}
details.more .menu{position:static;min-width:0;margin-top:4px;padding:6px;display:flex;flex-direction:column;background:#fff;border:1px solid #d5dde8;border-radius:12px;box-shadow:0 14px 34px rgba(15,23,42,.18);text-align:left;white-space:normal}
details.more .menu a,details.more .menu button.linkbtn{display:block;padding:8px 10px;border-radius:8px;text-decoration:none;color:#0f172a;font-size:.86rem;text-align:left;width:100%}
details.more .menu a:hover,details.more .menu button.linkbtn:hover{background:#eef4fc}
details.more .menu button.linkbtn.neg{color:#c81e1e}
details.more .menu .hint{padding:4px 10px;font-size:.75rem}

/* To do (Overview) */
.todo{margin-bottom:18px}
.todolist{list-style:none;margin:10px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:8px}
.todolist li{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;border:1px solid #dbe4ef;background:#fff;border-left:5px solid #1e95f5}
.todolist li.todo-red{border-left-color:#e5363c;background:#fff6f6}.todolist li.todo-amber{border-left-color:#f59e0b;background:#fffaf0}
.todolist .tn{font:700 1.15rem/1 ui-monospace,Menlo,Consolas,monospace;min-width:2.6em;text-align:center;color:#0f172a}
.todolist .tt{flex:1;font-size:.9rem}
.todo-ok{margin:10px 0 0;color:#15803d;font-weight:600}
/* Payday */
.pdprogress{display:flex;align-items:center;gap:14px;margin:6px 0 16px}.pdbar{flex:1;height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden}.pdbar span{display:block;height:100%;background:linear-gradient(90deg,#16a34a,#22c55e);border-radius:999px}
.pdsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.pdstep{display:flex;gap:14px;padding:14px 16px;border-radius:14px;border:1px solid #dbe4ef;background:#fff}
.pdstep.current{border:2px solid #1e95f5;box-shadow:0 8px 24px rgba(30,149,245,.15)}
.pdstep.done{background:#f6fdf8;border-color:#bbe5c9}
.pdnum{flex:none;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;font-weight:700;background:#eef4fc;color:#0b5fc8}
.pdstep.current .pdnum{background:#1e95f5;color:#fff}.pdstep.done .pdnum{background:#16a34a;color:#fff}
.pdbody{flex:1;min-width:0}.pdbody h3{margin:4px 0 4px;font-size:1.05rem}.pdbody p{margin:0 0 10px;color:#475569}
.pdactions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.pdactions .btn.tick{border-color:#16a34a;color:#15803d}
.pdstep.done .pdbody p{color:#64748b}

/* Menu groups */
.side-nav details.navgroup>summary{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:10px;color:var(--side-fg);font-weight:500;font-size:.93rem;cursor:pointer;list-style:none;position:relative}
.side-nav details.navgroup>summary::-webkit-details-marker{display:none}
.side-nav details.navgroup>summary::after{content:'';margin-left:auto;width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);opacity:.7;transition:transform .15s}
.side-nav details.navgroup[open]>summary::after{transform:rotate(-135deg)}
.side-nav details.navgroup>summary:hover{background:rgba(255,255,255,.14);color:#fff}
.side-nav details.navgroup>summary.in{color:#fff;font-weight:700}.side-nav details.navgroup>summary.in .ico{color:var(--sun)}
.side-nav .navsub{display:flex;flex-direction:column;gap:1px;margin:2px 0 6px 22px;padding-left:12px;border-left:1px solid rgba(255,255,255,.25)}
.side-nav .navsub a{padding:7px 10px;font-size:.88rem}
.side-nav .navsub a[aria-current="page"]::before{left:-13px}

/* Phones: tables become cards, bigger buttons, calmer top bar */
@media (max-width:700px){
  table.cards thead{display:none}
  table.cards,table.cards tbody,table.cards tfoot{display:block;width:100%}
  table.cards tr{display:grid;grid-template-columns:auto minmax(0,1fr);gap:6px 12px;padding:14px 14px 12px;border-bottom:1px solid var(--line)}
  table.cards td{display:block;padding:0;border:0;white-space:normal;text-align:left}
  table.cards td.n{text-align:left}
  table.cards td[data-label]{grid-column:1/-1;display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
  table.cards td[data-label]::before{content:attr(data-label);font-size:.75rem;text-transform:uppercase;letter-spacing:.05em;color:#64748b;padding-top:2px;flex:none}
  table.cards td[data-label]>*{text-align:right}
  table.cards td.hide-m{display:none}
  table.cards td.paycell,table.cards td.rowact{grid-column:1/-1;width:auto;min-width:0}
  table.cards td.advcell{width:auto;min-width:0}
  table.cards td.advcell input.cell-in{width:140px}
  table.cards tfoot tr{display:flex;flex-wrap:wrap;gap:6px 14px;background:var(--sunk)}
  table.cards tfoot td:empty{display:none}
  table.paytbl td:nth-child(2){min-width:0}
  table.cards td.paycell .payrow .paymethod{flex:1}
  table.cards .jobpick{max-width:none;justify-content:flex-end}
  .btn,button:not(.linkbtn):not(.job):not(.prswitch):not(.iconbtn),select,input:not([type=checkbox]):not([type=radio]){min-height:44px}
  .btn.small,button.small{min-height:40px}
  .topbar{padding:10px 14px}
  .topbar .hello strong{font-size:1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:34vw;display:block}
  .head p{font-size:.92rem}
  .tabs{overflow-x:auto;flex-wrap:nowrap}
  .tabs a{white-space:nowrap}
}
@media (max-width:700px){
  .fin-sumwrap{grid-template-columns:minmax(0,1fr)}
  .fin-sumtbl td,.fin-sumtbl th{padding:7px 8px}
  .jobpick button.job{min-height:36px;padding:6px 10px}
}
.fin-sumtbl td:first-child,.fin-sumtbl th:first-child{white-space:normal}
@media (max-width:700px){
  table.cards td[data-label]>.val{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
  table.cards td.advcell .val input.cell-in{width:150px;margin:0}
}
@media (max-width:700px){table.cards tr.row-paid{background:#f0fdf4}table.cards tr.row-paid td{background:transparent!important}}
/* payroll slip: estimate vs official */
.pill.p-off{background:#dff3e8;color:#16623b}
.slipstate{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:12px 14px;border-radius:12px;margin:0 0 16px;border:1px solid var(--line,#dfe6e9);background:#fff}
.slipstate.is-calc{background:#fffaf0;border-color:#f1dca8}
.slipstate.is-official{background:#f2fbf6;border-color:#bfe3cd}
.slipstate .hint{flex-basis:100%}
fieldset.slipkind{border:1px solid var(--line,#dfe6e9);border-radius:12px;padding:10px 14px;margin:0;display:grid;gap:8px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
fieldset.slipkind legend{font-weight:600;padding:0 6px}
fieldset.slipkind .choice>span{display:flex;flex-direction:column}
fieldset.slipkind .choice.off{opacity:.55}
table.slipslist .sub{display:block}
table.slipslist td:last-child{white-space:nowrap}
table.slipslist td:last-child details.more{display:inline-block;margin-left:6px}
/* login: quote of the day */
.dailyquote{position:relative;margin:18px 0 0;padding:16px 18px 14px 46px;border-radius:14px;background:linear-gradient(135deg,rgba(14,116,224,.08),rgba(56,189,248,.10));border:1px solid rgba(14,116,224,.18);text-align:left}
.dailyquote .dq-mark{position:absolute;left:14px;top:4px;font:700 44px/1 Georgia,serif;color:#0e74e0;opacity:.55}
.dailyquote blockquote{margin:0;font-size:15px;line-height:1.5;font-style:italic;color:var(--ink,#13303d)}
.dailyquote figcaption{margin-top:6px;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:#5b6f78}
/* Settings: security check */
.seclist{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.seclist li{display:flex;gap:12px;align-items:flex-start}
.seclist li>div{display:flex;flex-direction:column;gap:2px}
.secdot{flex:0 0 26px;height:26px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:14px;color:#fff;background:#1f9d5c}
.sec-warn .secdot{background:#d99a06}
.sec-bad .secdot{background:#d64545}
