/* Fonts hosted on this site (SIL Open Font License), no third-party requests */
@font-face{font-family:"DM Sans";src:url("dmsans.woff") format("woff");font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:"Schibsted Grotesk";src:url("schibsted.woff") format("woff");font-weight:400 900;font-style:normal;font-display:swap}

/* Layout: a window pane splashed with paint opens every screen and gets squeegeed clean; below it a calm working sheet, tab bar on phone, top nav on desktop. */
:root{
  --bg:#F2F6FA; --surface:#FFFFFF; --surface-2:#E9F0F7; --ink:#0D1B2E; --muted:#56687E; --line:#D6E0EA;
  --navy:#0C2B4E; --navy-2:#123A66; --on-navy:#F6FAFD; --on-navy-muted:#A9BCD3;
  --cyan:#00B4D8; --cyan-ink:#04617A; --red:#C8102E; --gold:#F2B705;
  --primary:#0C2B4E; --on-primary:#FFFFFF; --focus:#00B4D8;
  --ok:#0B8A5C; --ok-bg:#DCF4E8; --warn:#B45A06; --warn-bg:#FFEAD3; --bad:#C62F3A; --bad-bg:#FDE2E4; --grey-bg:#E8EDF2;
  --z-mar:#0A84E8; --z-mer:#0B8A5C; --z-jeu:#B45A06; --z-venL:#C8102E; --z-venC:#7A3FD1;
  --map-bg:#E6EFF7; --map-grid:#D3E0EC;
  --shadow:0 1px 2px rgba(12,43,78,.06),0 10px 28px -14px rgba(12,43,78,.28);
  --lift:0 2px 0 rgba(12,43,78,.08),0 18px 36px -18px rgba(12,43,78,.45);
  --f-display:"Schibsted Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-body:"DM Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --r:14px; --r-sm:10px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#07111D; --surface:#0E1C2E; --surface-2:#15283F; --ink:#E6EEF7; --muted:#93A6BC; --line:#22384F;
  --navy:#06182C; --navy-2:#0E2A48; --on-navy:#EAF2FA; --on-navy-muted:#8FA6BF;
  --cyan-ink:#5FD3EA; --primary:#2A8FD6; --on-primary:#FFFFFF; --focus:#3CC9E8;
  --ok:#3FCB91; --ok-bg:#0F3326; --warn:#F2A24B; --warn-bg:#3A2410; --bad:#F2747D; --bad-bg:#3B1418; --grey-bg:#1B2C40;
  --z-mar:#4BA8F5; --z-mer:#3FCB91; --z-jeu:#F2A24B; --z-venL:#F2747D; --z-venC:#B18CF5;
  --map-bg:#0F2236; --map-grid:#1A3150;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.7);
  --lift:0 2px 0 rgba(0,0,0,.3),0 18px 36px -18px rgba(0,0,0,.8);
  color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#07111D; --surface:#0E1C2E; --surface-2:#15283F; --ink:#E6EEF7; --muted:#93A6BC; --line:#22384F;
  --navy:#06182C; --navy-2:#0E2A48; --on-navy:#EAF2FA; --on-navy-muted:#8FA6BF;
  --cyan-ink:#5FD3EA; --primary:#2A8FD6; --on-primary:#FFFFFF; --focus:#3CC9E8;
  --ok:#3FCB91; --ok-bg:#0F3326; --warn:#F2A24B; --warn-bg:#3A2410; --bad:#F2747D; --bad-bg:#3B1418; --grey-bg:#1B2C40;
  --z-mar:#4BA8F5; --z-mer:#3FCB91; --z-jeu:#F2A24B; --z-venL:#F2747D; --z-venC:#B18CF5;
  --map-bg:#0F2236; --map-grid:#1A3150;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -14px rgba(0,0,0,.7);
  --lift:0 2px 0 rgba(0,0,0,.3),0 18px 36px -18px rgba(0,0,0,.8);
  color-scheme:dark}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{min-height:100%}
body{background:var(--bg);color:var(--ink);font:15px/1.5 var(--f-body);-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:50;background:var(--navy)}
h1,h2,h3{font-family:var(--f-display);margin:0;letter-spacing:-.015em;line-height:1.12;text-wrap:balance}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.num{font-variant-numeric:tabular-nums}
.eyebrow{font:700 11px/1 var(--f-display);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.muted{color:var(--muted)}
.gut{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}

/* Demo ribbon */
.ribbon{background:var(--gold);color:#2A1D00;font:600 12.5px/1.35 var(--f-body);text-align:center;padding-block:7px}

/* ---------- The window pane (signature element) ---------- */
.pane{position:relative;overflow:hidden;background:#0B2440;isolation:isolate}
.pane canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:pan-y;cursor:grab}
.pane .frame{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.12),inset 0 -40px 60px -40px rgba(0,0,0,.45),inset 0 30px 50px -40px rgba(255,255,255,.18);z-index:2}
.pane .over{position:relative;z-index:3;pointer-events:none;color:#F6FAFD}
.pane .over a,.pane .over button{pointer-events:auto}
.hint{display:inline-flex;align-items:center;gap:8px;font:600 12px/1 var(--f-body);color:rgba(246,250,253,.86);background:rgba(6,24,44,.42);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);padding:7px 11px;border-radius:99px}
.hint svg{width:15px;height:15px}

/* ---------- Login ---------- */
#login{min-height:100%;display:grid;grid-template-rows:auto 1fr}
.login-pane{min-height:430px}
.login-pane .over{padding-block:28px 120px;max-width:1080px;margin:0 auto;display:grid;gap:18px}
.brandrow{display:flex;align-items:center;gap:12px}
.brandrow img{width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 6px 12px rgba(0,0,0,.45))}
.brandrow b{font:900 17px/1.05 var(--f-display);letter-spacing:.03em;display:block}
.brandrow small{font-size:12.5px;color:rgba(246,250,253,.75)}
.login-pane h1{font-size:clamp(34px,7vw,64px);font-weight:900;letter-spacing:-.03em;max-width:13ch;text-shadow:0 4px 24px rgba(0,0,0,.35)}
.login-pane h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 30px rgba(0,180,216,.45)}
.login-pane p{margin:0;max-width:46ch;font-size:16px;color:rgba(246,250,253,.88);text-shadow:0 2px 12px rgba(0,0,0,.4)}
.login-card-wrap{margin-top:-96px;position:relative;z-index:5;padding-block:0 40px}
.login-card{max-width:440px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--lift);padding:22px;display:grid;gap:14px;transform-style:preserve-3d;transition:transform .25s ease}
.login-card h2{font-size:22px}
.seg{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;background:var(--surface-2);border-radius:12px;padding:4px;gap:4px}
.seg button{border:0;background:transparent;padding:9px 10px;border-radius:9px;font-weight:600;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.field{display:grid;gap:6px;min-width:0}
.field>span{font-size:13px;font-weight:600;color:var(--muted)}
input[type=text],input[type=email],input[type=tel],input[type=password],input[type=search],select,textarea{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;min-height:44px}
textarea{resize:vertical;min-height:90px}
.two{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.small{font-size:12.5px;color:var(--muted);line-height:1.45}

/* Buttons: pressable, with a little depth */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:10px 16px;border-radius:12px;font-weight:600;cursor:pointer;text-decoration:none;white-space:nowrap;min-height:44px;transition:transform .08s ease,box-shadow .12s ease,filter .12s}
.btn:hover{border-color:var(--muted)}
.btn:active{transform:translateY(2px)}
.btn svg{width:18px;height:18px;flex:none}
.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary);box-shadow:0 3px 0 color-mix(in srgb,var(--primary) 55%,#000)}
.btn.primary:active{box-shadow:0 1px 0 color-mix(in srgb,var(--primary) 55%,#000)}
.btn.cyan{background:var(--cyan);border-color:var(--cyan);color:#05202B;box-shadow:0 3px 0 #04789A}
.btn.cyan:active{box-shadow:0 1px 0 #04789A}
.btn.ghost{background:transparent;border-color:transparent;color:var(--muted)}
.btn.sm{min-height:36px;padding:6px 12px;font-size:13.5px;border-radius:10px}
.btn.block{width:100%}
.btn[disabled]{opacity:.5;cursor:not-allowed}
.linkbtn{border:0;background:none;color:var(--cyan-ink);font-weight:600;cursor:pointer;padding:4px 0}

/* ---------- App shell ---------- */
#app{min-height:100%}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:30;background:var(--navy);color:var(--on-navy)}
.top-in{max-width:1080px;margin:0 auto;display:flex;align-items:center;gap:14px;min-height:60px}
.top .brandrow img{width:40px;height:40px}
.top .brandrow b{font-size:14px}
.top .brandrow small{color:var(--on-navy-muted);font-size:11.5px}
.topnav{display:flex;gap:4px;margin-left:auto}
.topnav a{display:flex;align-items:center;gap:8px;color:var(--on-navy-muted);text-decoration:none;font-weight:600;font-size:14px;padding:9px 12px;border-radius:10px}
.topnav a svg{width:18px;height:18px}
.topnav a:hover{color:var(--on-navy);background:rgba(255,255,255,.06)}
.topnav a .b{background:var(--red);color:#fff;border-radius:99px;font:700 10.5px/1 var(--f-body);padding:3px 6px}
.topnav a[aria-current="page"]{color:var(--on-navy);background:var(--navy-2);box-shadow:inset 0 -2px 0 var(--cyan)}
.avatar{width:36px;height:36px;border-radius:50%;background:var(--cyan);color:#05202B;display:grid;place-items:center;font:800 13px var(--f-display);border:0;cursor:pointer;flex:none}
.app-pane{height:178px}
.app-pane .over{max-width:1080px;margin:0 auto;height:100%;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;padding-block:18px 22px}
.app-pane h1{font-size:clamp(26px,5vw,38px);font-weight:800;text-shadow:0 3px 18px rgba(0,0,0,.45)}
.app-pane .sub{font-size:14.5px;color:rgba(246,250,253,.88);text-shadow:0 2px 10px rgba(0,0,0,.45);max-width:60ch}
.main{max-width:1080px;margin:0 auto;padding-block:20px 48px;display:grid;gap:18px}
.main>*{min-width:0}
.tabbar{display:none}

/* Panels & cards */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);min-width:0}
.panel-h{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px 18px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.panel-h h2{font-size:18px}
.panel-b{padding:16px 18px;display:grid;gap:12px;min-width:0}
.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.grid2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:18px;align-items:start}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:8px;align-content:start;box-shadow:var(--shadow);transform-style:preserve-3d;transition:transform .2s ease}
.tile .v{font:800 26px/1.05 var(--f-display);font-variant-numeric:tabular-nums}
.tile .s{font-size:13.5px;color:var(--muted)}
.tile .act{margin-top:4px;display:flex;gap:8px;flex-wrap:wrap}

/* The urgent call-to-action: a raised glossy slab */
.sos{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px;border-radius:18px;border:0;cursor:pointer;text-align:left;width:100%;color:#fff;background:linear-gradient(135deg,#D2142F 0%,#A80E27 100%);box-shadow:0 5px 0 #7B0A1C,0 22px 40px -20px rgba(200,16,46,.75);position:relative;overflow:hidden;transition:transform .1s ease,box-shadow .1s ease}
.sos::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(255,255,255,.28) 0%,rgba(255,255,255,0) 38%);pointer-events:none}
.sos:active{transform:translateY(3px);box-shadow:0 2px 0 #7B0A1C,0 12px 24px -14px rgba(200,16,46,.75)}
.sos .ic{width:52px;height:52px;border-radius:14px;background:rgba(255,255,255,.16);display:grid;place-items:center}
.sos .ic svg{width:28px;height:28px}
.sos b{font:800 18px/1.15 var(--f-display);display:block}
.sos span{font-size:13.5px;opacity:.9}
.sos .go{width:22px;height:22px}

/* Status pills */
.pill{display:inline-flex;align-items:center;gap:6px;border-radius:99px;padding:3px 10px;font:600 12px/1.45 var(--f-body);white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.pill.ok{color:var(--ok);background:var(--ok-bg)}
.pill.warn{color:var(--warn);background:var(--warn-bg)}
.pill.bad{color:var(--bad);background:var(--bad-bg)}
.pill.grey{color:var(--muted);background:var(--grey-bg)}
.tag{display:inline-block;border-radius:6px;padding:2px 7px;font-size:11.5px;font-weight:700;background:var(--surface-2);color:var(--muted);letter-spacing:.02em}

/* Lists */
.rows{display:grid}
.rowi{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;align-items:center;padding:14px 18px;border-top:1px solid var(--line)}
.rowi:first-child{border-top:0}
.rowi .t{font-weight:600;overflow-wrap:anywhere}
.rowi .m{font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rowi .amt{font:700 16px var(--f-display);font-variant-numeric:tabular-nums;text-align:right}
.rowi .acts{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap}
.empty{padding:26px 18px;text-align:center;color:var(--muted)}
.empty b{display:block;color:var(--ink);font-family:var(--f-display);font-size:16px;margin-bottom:4px}

/* Zones */
.zones{display:grid;gap:8px}
.zone{display:grid;grid-template-columns:12px minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}
.zone i{width:12px;height:12px;border-radius:4px}
.zone b{font-family:var(--f-display);font-weight:700}
.zone small{display:block;color:var(--muted);font-size:12.5px}
.zone .d{font:700 13px var(--f-display);color:var(--muted);text-align:right}
.zone.off{opacity:.45}
.mapwrap{border-radius:12px;overflow:hidden;border:1px solid var(--line);background:var(--map-bg)}
.mapwrap svg{display:block;width:100%;height:auto}
.out-zone{display:flex;gap:10px;align-items:flex-start;background:var(--warn-bg);border-radius:12px;padding:12px 14px;font-size:14px}
.out-zone svg{width:18px;height:18px;color:var(--warn);flex:none;margin-top:2px}

/* Calendar */
.calnav{display:flex;align-items:center;justify-content:space-between;gap:8px}
.calnav strong{font:700 17px var(--f-display);text-transform:capitalize}
.iconbtn{border:1px solid var(--line);background:var(--surface);border-radius:10px;width:40px;height:40px;display:inline-grid;place-items:center;cursor:pointer;color:var(--ink)}
.iconbtn svg{width:18px;height:18px}
.iconbtn[disabled]{opacity:.35;cursor:not-allowed}
.dow,.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
.dow span{font:700 11px var(--f-display);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0}
.cday{aspect-ratio:1/1.05;max-width:100%;border-radius:12px;border:1px solid transparent;background:transparent;display:grid;align-content:space-between;justify-items:center;padding:6px 2px;font:600 14px var(--f-display);color:var(--muted);min-width:0}
.cday.out{visibility:hidden}
.cday.na{opacity:.38}
.cday.ok{background:var(--surface);border-color:var(--line);color:var(--ink);cursor:pointer;box-shadow:0 2px 0 var(--line)}
.cday.ok:hover{border-color:var(--cyan)}
.cday.ok[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy);box-shadow:0 3px 0 #000;transform:translateY(-1px)}
.cday.full{background:var(--surface-2);color:var(--muted);cursor:not-allowed}
.cday .cnt{font:700 10.5px/1 var(--f-body);padding:3px 6px;border-radius:99px;background:color-mix(in srgb,var(--zc,var(--cyan)) 16%,transparent);color:var(--zc,var(--cyan-ink))}
.cday[aria-pressed="true"] .cnt{background:var(--cyan);color:#05202B}
.cday .bar{width:60%;height:3px;border-radius:2px;background:var(--zc,var(--cyan))}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.slots{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:8px}
.slot{border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:12px 8px;font:700 15px var(--f-display);font-variant-numeric:tabular-nums;cursor:pointer;box-shadow:0 2px 0 var(--line);transition:transform .08s}
.slot small{display:block;font:500 11.5px var(--f-body);color:var(--muted);margin-top:2px}
.slot:hover{border-color:var(--cyan)}
.slot:active{transform:translateY(2px);box-shadow:none}
.dayhead{display:flex;justify-content:space-between;gap:10px;align-items:baseline;flex-wrap:wrap}
.dayhead h3{font-size:17px}

/* Doc tabs */
.tabs{display:flex;gap:6px;flex-wrap:wrap}
.tabs button{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 14px;font-weight:600;cursor:pointer;color:var(--muted)}
.tabs button[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.tabs .n{opacity:.75;margin-left:4px;font-variant-numeric:tabular-nums}
.kv{display:grid;grid-template-columns:150px minmax(0,1fr);gap:10px 14px;margin:0;font-size:14.5px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;overflow-wrap:anywhere}

/* Sheet / modal */
.scrim{position:fixed;inset:0;background:rgba(6,24,44,.55);z-index:80;animation:fade .18s ease}
.sheet{position:fixed;z-index:81;left:0;right:0;bottom:0;max-height:92%;background:var(--surface);border-radius:22px 22px 0 0;display:flex;flex-direction:column;box-shadow:0 -20px 60px rgba(3,12,23,.45);animation:up .24s cubic-bezier(.2,.9,.3,1);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:760px){.sheet{left:50%;right:auto;bottom:auto;top:50%;width:min(620px,calc(100% - 48px));transform:translate(-50%,-50%);border-radius:20px;animation:pop .22s ease}}
.sheet-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 20px 12px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px))}
.sheet-h h2{font-size:20px}
.sheet-b{overflow:auto;padding:4px 20px 20px;padding-left:max(20px,env(safe-area-inset-left,0px));padding-right:max(20px,env(safe-area-inset-right,0px));display:grid;gap:14px;align-content:start}
.sheet-b>*{min-width:0}
.sheet .grab{width:44px;height:5px;border-radius:3px;background:var(--line);margin:8px auto 0}
@media (min-width:760px){.sheet .grab{display:none}}
@keyframes up{from{transform:translateY(40px);opacity:0}}
@keyframes pop{from{transform:translate(-50%,-48%) scale(.97);opacity:0}}
@keyframes fade{from{opacity:0}}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border:1px solid var(--line);background:var(--surface);border-radius:99px;padding:8px 13px;font-size:13.5px;font-weight:600;cursor:pointer;color:var(--muted)}
.chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:var(--on-navy)}
.recap{display:grid;gap:6px;background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:14px}
.recap div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.recap b{font-family:var(--f-display)}
.thumbs{display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));gap:8px}
.thumbs img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;display:block;max-width:100%}
.done{display:grid;justify-items:center;text-align:center;gap:10px;padding:10px 0 6px}
.done .check{width:76px;height:76px;border-radius:50%;background:var(--ok-bg);color:var(--ok);display:grid;place-items:center;animation:popc .4s cubic-bezier(.2,1.6,.4,1)}
.done .check svg{width:40px;height:40px}
@keyframes popc{from{transform:scale(.4);opacity:0}}
.note{display:flex;gap:10px;align-items:flex-start;background:var(--surface-2);border-radius:12px;padding:10px 12px;font-size:13px;color:var(--muted)}
.note svg{width:16px;height:16px;flex:none;margin-top:2px}

/* Document preview */
.doc{border:1px solid var(--line);border-radius:14px;padding:16px;display:grid;gap:12px;background:var(--surface)}
.doc-top{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:flex-start}
.doc-top .me{display:flex;gap:10px;align-items:center}
.doc-top img{width:44px;height:44px;object-fit:contain}
.doc-top .me b{display:block;color:var(--ink);font-family:var(--f-display)}
.doc-top .me span{font-size:12.5px;color:var(--muted)}
.doc-top .no{text-align:right;font-size:13px;color:var(--muted)}
.doc-top .no b{display:block;font:800 19px var(--f-display);color:var(--ink)}
.tablewrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:14px}
th{font:700 11px/1 var(--f-display);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);text-align:left;padding:10px 8px;border-bottom:1px solid var(--line)}
td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
td.r,th.r{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.totals{display:grid;justify-content:end;gap:4px;font-size:14px;text-align:right}
.totals b{font:800 18px var(--f-display)}
.art{display:grid;gap:10px;font-size:14px}
.art h4{margin:0;font:700 14px var(--f-display)}
.art p{margin:2px 0 0;color:var(--muted);line-height:1.55}

/* Toggles */
.switch{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;border-top:1px solid var(--line)}
.switch:first-child{border-top:0}
.switch input{width:46px;height:28px;appearance:none;-webkit-appearance:none;background:var(--line);border-radius:99px;position:relative;cursor:pointer;flex:none;transition:background .15s}
.switch input::after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .15s}
.switch input:checked{background:var(--ok)}
.switch input:checked::after{transform:translateX(18px)}

/* Owner access */
.owner{display:grid;gap:10px;padding:14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}
.owner b{display:block;font-family:var(--f-display);font-size:16px}
.or{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--muted)}
.or::before,.or::after{content:"";flex:1;height:1px;background:var(--line)}
.pvbar{position:sticky;top:calc(env(safe-area-inset-top,0px) + 60px);z-index:29;background:var(--gold);color:#2A1D00}
.pvbar>div{max-width:1080px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-block:8px;font-weight:600;font-size:14px}
.pvbar .btn{min-height:34px;padding:5px 12px;font-size:13px;background:#2A1D00;color:#FFF7DA;border-color:#2A1D00}
.acct{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 16px;padding:16px 18px;border-top:1px solid var(--line);align-items:start}
.acct:first-child{border-top:0}
.acct h3{font-size:17px}
.acct .meta{display:flex;gap:8px;flex-wrap:wrap;align-items:center;font-size:13px;color:var(--muted);margin-top:4px}
.acct .facts{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.acct .valid{grid-column:1/-1;display:grid;gap:8px;background:var(--surface-2);border-radius:12px;padding:12px}
.acct .valid textarea{min-height:64px}
.acct .valid .row2{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.chk{display:flex;gap:10px;align-items:center;font-weight:600;cursor:pointer}
.chk input{width:20px;height:20px;accent-color:var(--ok)}
.zdot{display:inline-block;width:9px;height:9px;border-radius:3px;margin-right:5px;vertical-align:0}
.pas{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;padding:12px 18px;border-top:1px solid var(--line);align-items:center}
.pas:first-child{border-top:0}
.pas .dd{font:800 20px/1 var(--f-display);text-align:center;min-width:44px}
.pas .dd small{display:block;font:700 10.5px/1.2 var(--f-body);text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.pas b{display:block}
.pas span{font-size:13px;color:var(--muted)}
@media (max-width:640px){.acct{grid-template-columns:minmax(0,1fr)}}
/* Toast */
.toast{position:fixed;left:50%;bottom:calc(92px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--navy);color:var(--on-navy);padding:11px 16px;border-radius:12px;box-shadow:var(--lift);z-index:95;font-weight:600;max-width:calc(100% - 32px);text-align:center}

/* Responsive */
@media (max-width:900px){.grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.grid2{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .topnav{display:none}
  .top-in .avatar{margin-left:auto}
  .main{padding-block:16px calc(96px + env(safe-area-inset-bottom,0px))}
  .tabbar{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--navy);padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));box-shadow:0 -10px 30px -12px rgba(0,0,0,.4)}
  .tabbar a{display:grid;justify-items:center;gap:3px;color:var(--on-navy-muted);text-decoration:none;font-size:11.5px;font-weight:600;padding:7px 2px;border-radius:10px;position:relative}
  .tabbar a svg{width:23px;height:23px}
  .tabbar a[aria-current="page"]{color:var(--on-navy);background:var(--navy-2)}
  .tabbar a .b{position:absolute;top:3px;left:calc(50% + 6px);background:var(--red);color:#fff;border-radius:99px;font:700 10px/1 var(--f-body);padding:3px 5px}
  .app-pane{height:150px}
  .kv{grid-template-columns:minmax(0,1fr);gap:2px}
  .kv dd{margin-bottom:8px}
}
@media (max-width:520px){.grid{grid-template-columns:minmax(0,1fr)}.two{grid-template-columns:minmax(0,1fr)}.login-pane{min-height:400px}.cday{font-size:13px;border-radius:10px}.dow,.cal{gap:4px}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---- Live app additions ---- */
.formerr{margin:0;color:var(--bad);background:var(--bad-bg);border-radius:10px;padding:9px 12px;font-size:14px;font-weight:600}
.login-card h2{font-size:22px}
.sigpad{position:relative;border:2px dashed var(--line);border-radius:12px;background:#fff;height:180px;touch-action:none}
.sigpad.on{border-style:solid;border-color:var(--navy)}
.sigpad canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;border-radius:10px}
.sigpad em{position:absolute;left:14px;bottom:10px;font-style:normal;font-size:12.5px;color:#56687E;pointer-events:none}
.sigpad.on em{display:none}
.sigpad .linkbtn{position:absolute;right:12px;top:6px;color:#04617A}
.sigimg{display:block;margin-top:10px;max-width:300px;width:100%;height:auto;border:1px solid var(--line);border-radius:10px;background:#fff}
.chk{line-height:1.4;font-weight:500;align-items:flex-start}
.chk input{flex:none;margin-top:1px}

.legalfoot{text-align:center;font-size:12.5px;color:var(--muted);margin:0 auto;padding-block:0 28px;max-width:1080px}
.legalfoot a{color:var(--muted)}
@media (max-width:760px){#app .legalfoot{padding-bottom:calc(96px + env(safe-area-inset-bottom,0px))}}
.chk a{color:var(--cyan-ink)}
.mandat{background:var(--surface-2);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.55;display:grid;gap:6px}
.mandat b{font-family:var(--f-display)}
