/* Hour1 Capital desk and sign-in pages. Look agreed 27 Oct 2026 (spec §5.0): a conventional
   business application, the system's interface font, navy sidebar, plain bordered panels.
   Ported from the "Hour1 Capital Desk Prototype" artifact. No inline styles anywhere: the
   desk runs under a nonce Content-Security-Policy. */
@font-face{font-family:"Inter Tight";font-style:normal;font-weight:100 900;font-display:swap;src:url(/static/app/inter-tight-latin.woff2) format("woff2")}

/* Layout: a conventional back-office app. Navy sidebar, white toolbar, grey work area with plain bordered panels and tables. */
:root{
  --bg:#eef0f3; --panel:#ffffff; --panel-2:#f7f8fa; --ink:#1c2430; --ink-2:#444f5c; --muted:#5d6875;
  --line:#d5d9df; --line-2:#e7e9ed; --field:#b9c0c9;
  --navy:#0a2e5c; --navy-2:#123f7a; --on-navy:#ffffff; --on-navy-2:#b8c6da; --gold:#b7862e;
  --logo-ink:#0a2e5c; --link:#1b5fb0; --primary:#0a2e5c; --on-primary:#ffffff; --sel:#e8eef7;
  --good:#1b7a3e; --good-bg:#e6f3ea; --warn:#8a5300; --warn-bg:#fdf1dc; --bad:#b3261e; --bad-bg:#fbe8e6; --live:#c62f20;
  --ui:"Segoe UI",-apple-system,BlinkMacSystemFont,Roboto,"Helvetica Neue",Arial,sans-serif;
  --logo:"Inter Tight","Segoe UI",Arial,sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#15191f; --panel:#1d232b; --panel-2:#222932; --ink:#e4e8ed; --ink-2:#c1c8d1; --muted:#9aa4b0;
  --line:#343c47; --line-2:#2a313a; --field:#4a5461;
  --navy:#0b2347; --navy-2:#163a6b; --on-navy:#ffffff; --on-navy-2:#a8b8cf; --gold:#d9a84a;
  --logo-ink:#e4e8ed; --link:#7fb0ef; --primary:#3d74c4; --on-primary:#ffffff; --sel:#22324a;
  --good:#6cc48a; --good-bg:#1c3324; --warn:#e7b25e; --warn-bg:#352a15; --bad:#f08a80; --bad-bg:#3a1f1d; --live:#e5554a; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#15191f; --panel:#1d232b; --panel-2:#222932; --ink:#e4e8ed; --ink-2:#c1c8d1; --muted:#9aa4b0;
  --line:#343c47; --line-2:#2a313a; --field:#4a5461;
  --navy:#0b2347; --navy-2:#163a6b; --on-navy:#ffffff; --on-navy-2:#a8b8cf; --gold:#d9a84a;
  --logo-ink:#e4e8ed; --link:#7fb0ef; --primary:#3d74c4; --on-primary:#ffffff; --sel:#22324a;
  --good:#6cc48a; --good-bg:#1c3324; --warn:#e7b25e; --warn-bg:#352a15; --bad:#f08a80; --bad-bg:#3a1f1d; --live:#e5554a; color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--ui)}
button,input,select,textarea{font:inherit;color:inherit}
a,.lk{color:var(--link)}
:focus-visible{outline:2px solid var(--link);outline-offset:1px}
.lk{border:0;background:none;padding:0;cursor:pointer;text-decoration:underline;min-height:28px}
.btn{min-height:34px;padding:0 12px;border-radius:3px;border:1px solid var(--field);background:var(--panel);cursor:pointer}
.btn:hover{background:var(--panel-2)}
.btn.pri{background:var(--primary);border-color:var(--primary);color:var(--on-primary);font-weight:600}
.btn.pri:hover{background:var(--navy-2)}
.btn.red{color:var(--bad)}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.logo{font-family:var(--logo);font-size:21px;line-height:1;letter-spacing:-.03em;white-space:nowrap;display:inline-flex;align-items:baseline}
.logo b{font-weight:800}.logo .lt{font-weight:300}.logo .one{color:var(--gold)}

/* sign-in */
.auth{min-height:calc(100% - 42px);display:flex;align-items:center;justify-content:center;padding:32px 16px}
.authbox{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px}
.authbox .logo{color:var(--navy);font-size:24px;align-self:center;margin-bottom:6px}
:root[data-theme="dark"] .authbox .logo{color:var(--ink)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .authbox .logo{color:var(--ink)}}
.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:22px;display:flex;flex-direction:column;gap:12px}
.card h1{margin:0 0 2px;font-size:18px;font-weight:600}
.f{display:flex;flex-direction:column;gap:4px;min-width:0}
.f label{font-size:13px;font-weight:600;color:var(--ink-2)}
.f input,.f select,.f textarea{min-height:34px;padding:0 9px;border:1px solid var(--field);border-radius:3px;background:var(--panel);width:100%}
.f textarea{padding:7px 9px;min-height:80px;resize:vertical}
.f .src{font-size:12px;color:var(--muted)}
.ts{display:flex;align-items:center;justify-content:space-between;border:1px solid var(--line);background:var(--panel-2);border-radius:3px;padding:10px 12px;min-height:58px}
.ts label{display:flex;gap:8px;align-items:center;cursor:pointer}
.ts input{width:20px;height:20px}
.ts small{font-size:10.5px;color:var(--muted);text-align:right}
.err{background:var(--bad-bg);color:var(--bad);border:1px solid var(--bad);border-radius:3px;padding:8px 10px;font-size:13px}
.code{font-size:22px;letter-spacing:.25em;font-variant-numeric:tabular-nums}
.below{display:flex;justify-content:space-between;font-size:13px}

/* shell */
.shell{display:flex;min-height:calc(100% - 42px)}
.side{width:210px;flex:0 0 210px;background:var(--navy);color:var(--on-navy);display:flex;flex-direction:column}
.side .logo{color:#fff;padding:18px 18px 16px;border-bottom:1px solid rgba(255,255,255,.12)}
.side a.logo{text-decoration:none}
.side a.logo:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.side nav{display:flex;flex-direction:column;padding:8px 0}
.side nav button{border:0;background:none;color:var(--on-navy-2);text-align:left;padding:9px 18px;cursor:pointer;min-height:38px;border-left:3px solid transparent}
.side nav button:hover{color:#fff;background:rgba(255,255,255,.06)}
.side nav button[aria-current="page"]{color:#fff;background:rgba(255,255,255,.1);border-left-color:var(--gold);font-weight:600}
.side .navsec{font-size:11.5px;color:var(--on-navy-2);padding:14px 18px 4px;opacity:.8}
.main{flex:1;min-width:0;display:flex;flex-direction:column}
.tool{background:var(--panel);border-bottom:1px solid var(--line);min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding-block:6px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.tool h1{margin:0;font-size:17px;font-weight:600}
.tool .r{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.tool select{min-height:32px;border:1px solid var(--field);border-radius:3px;background:var(--panel);padding:0 6px}
.who{color:var(--muted);font-size:13px}
@media (max-width:820px){
  .shell{flex-direction:column}
  .side{width:auto;flex:none}
  .side .logo{padding:12px 16px;border-bottom:0}
  .side nav{flex-direction:row;overflow-x:auto;padding:0 8px}
  .side nav button{border-left:0;border-bottom:3px solid transparent;white-space:nowrap;padding:8px 12px}
  .side nav button[aria-current="page"]{border-bottom-color:var(--gold)}
  .side .navsec{display:none}
}
.callbar{background:var(--live);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding-block:7px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.callbar .btn{background:transparent;color:#fff;border-color:rgba(255,255,255,.6)}
.callbar .btn.end{background:#fff;color:var(--live);border-color:#fff;font-weight:600}
.callbar .t{font-variant-numeric:tabular-nums;font-weight:600}
.alert{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;background:var(--warn-bg);border-bottom:1px solid var(--line);padding-block:8px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.content{padding:14px max(16px,env(safe-area-inset-right,0px)) 32px max(16px,env(safe-area-inset-left,0px));display:flex;gap:14px;align-items:flex-start;flex-wrap:wrap}
.pnl{background:var(--panel);border:1px solid var(--line);border-radius:4px;min-width:0}
.pnl > .hd{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;border-bottom:1px solid var(--line);font-weight:600;background:var(--panel-2)}
h2.hd0{margin:0;font-size:inherit;font-weight:inherit}
h2.hd{margin:0;font-size:inherit;line-height:inherit;color:inherit}
.pnl > .hd small{font-weight:400;color:var(--muted)}
.pnl > .bd{padding:12px}
.listp{flex:1 1 280px;max-width:340px}
@media (max-width:820px){.listp{max-width:none}}
.workp{flex:999 1 520px}
.rows{display:flex;flex-direction:column}
.row{display:block;width:100%;text-align:left;border:0;border-bottom:1px solid var(--line-2);background:var(--panel);padding:9px 12px;cursor:pointer}
.row:hover{background:var(--panel-2)}
.row.on{background:var(--sel);box-shadow:inset 3px 0 0 var(--primary)}
.row .a{display:flex;justify-content:space-between;gap:8px}
.row .n{font-weight:600}
.row .s{font-size:12.5px;color:var(--muted)}
.row .x{font-size:12.5px;margin-top:2px}
.grp{font-size:12px;font-weight:600;color:var(--ink-2);background:var(--panel-2);padding:6px 12px;border-bottom:1px solid var(--line-2)}
.tag{display:inline-block;font-size:11.5px;padding:0 6px;border-radius:2px;border:1px solid var(--line);color:var(--ink-2);white-space:nowrap}
.tag.app{border-color:var(--good);color:var(--good)}
.tag.text{border-color:var(--warn);color:var(--warn)}
.ok{color:var(--good)} .wn{color:var(--warn)} .no{color:var(--bad)} .mu{color:var(--muted)}
.lh{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:12px;border-bottom:1px solid var(--line)}
.lh h2{margin:0;font-size:19px;font-weight:600}
.lh .s{color:var(--muted);font-size:13px;margin-top:2px}
.lh .callwrap{display:flex;flex-direction:column;align-items:flex-end;gap:3px}
.lh .why{font-size:12px;color:var(--bad);max-width:260px;text-align:right}
.tabs{display:flex;border-bottom:1px solid var(--line);padding:0 8px;overflow-x:auto}
.tabs button{border:0;background:none;padding:9px 12px;min-height:38px;cursor:pointer;color:var(--ink-2);border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--primary);font-weight:600}
.tabs .cnt{display:inline-block;background:var(--bad);color:#fff;border-radius:8px;font-size:11px;padding:0 5px;margin-left:4px}
.pad{padding:12px;display:flex;flex-direction:column;gap:12px}
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px 16px}
dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:5px 14px;font-size:13.5px}
dt{color:var(--muted)} dd{margin:0}
.player{display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:3px;padding:6px 8px;background:var(--panel-2)}
.player button{min-width:34px;min-height:30px;border:1px solid var(--field);border-radius:3px;background:var(--panel);cursor:pointer}
.player .bar{flex:1;height:4px;background:var(--line)}
.player .bar div{height:4px;background:var(--primary);width:0}
.player .tm{font-size:12.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.foot{border-top:1px solid var(--line);padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px;align-items:center}

.qbox{border:1px solid var(--line);border-radius:3px;font-size:13.5px}
.qbox .hd2{padding:7px 10px;border-bottom:1px solid var(--line);font-weight:600;background:var(--panel-2)}
.qbox .ln{display:flex;justify-content:space-between;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line-2)}
.qbox .nt{padding:7px 10px;font-size:12px;color:var(--muted)}
.thread{display:flex;flex-direction:column;gap:8px;max-height:300px;overflow:auto;padding:4px 2px}
.msg{max-width:78%;padding:7px 10px;border-radius:3px;font-size:13.5px;border:1px solid var(--line)}
.msg.out{align-self:flex-end;background:var(--sel)}
.msg.in{align-self:flex-start;background:var(--panel-2)}
.msg small{display:block;color:var(--muted);font-size:11.5px;margin-top:2px}
.compose{display:flex;gap:8px}
.compose input{flex:1;min-height:34px;border:1px solid var(--field);border-radius:3px;padding:0 9px;background:var(--panel)}
table{width:100%;border-collapse:collapse;font-size:13.5px}
th{text-align:left;font-weight:600;color:var(--ink-2);background:var(--panel-2);padding:7px 10px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:7px 10px;border-bottom:1px solid var(--line-2);vertical-align:top}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.scroll{overflow-x:auto}
.slot{width:100%;min-height:40px;border:1px dashed var(--field);background:none;border-radius:2px;color:var(--muted);cursor:pointer;font-size:12px}
.slot:hover{border-color:var(--link);color:var(--link)}
.mtg{width:100%;min-height:40px;text-align:left;border:1px solid var(--navy-2);border-left-width:4px;background:var(--sel);border-radius:2px;padding:3px 6px;cursor:pointer;font-size:12px;color:var(--ink)}
.mtg.mv{border-color:var(--warn);background:var(--warn-bg)}
.mtg.ns{border-color:var(--bad);background:var(--bad-bg)}
.off{min-height:40px;background:var(--line-2);border-radius:2px;padding:3px 6px;color:var(--muted);font-size:12px}
.ov{position:fixed;inset:0;background:rgba(10,20,35,.45);display:flex;align-items:center;justify-content:center;padding:16px;z-index:20}
.dlg{background:var(--panel);border:1px solid var(--line);border-radius:4px;width:100%;max-width:420px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.dlg .hd{padding:10px 14px;border-bottom:1px solid var(--line);font-weight:600;background:var(--panel-2)}
.dlg .bd{padding:14px;display:flex;flex-direction:column;gap:10px}
.dlg .ft{padding:10px 14px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end}
.toast{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:3px;font-size:13.5px;z-index:30;max-width:calc(100% - 32px)}
/* Today panel on the desk list (2 Nov 2026) */
.tp{border-bottom:1px solid var(--line);background:var(--panel)}
.tpt{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.tpt div{padding:8px 12px;border-right:1px solid var(--line-2);border-bottom:1px solid var(--line-2)}
.tpt div:nth-child(2n){border-right:0}
.tpt b{display:block;font-size:20px;line-height:1.2;font-variant-numeric:tabular-nums;color:var(--ink)}
.tpt span{font-size:12px;color:var(--muted)}
.tpt span.tps{display:block;font-size:11.5px;color:var(--ink-2)}
.tpn{display:block;padding:8px 12px;font-size:13px;color:var(--ink);text-decoration:none}
.tpn:hover,.tpn:focus-visible{background:var(--panel-2)}
.row .x.prep{color:var(--ink-2);font-size:12.5px}
.stat{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border-bottom:1px solid var(--line)}
.stat div{padding:10px 12px;border-right:1px solid var(--line-2)}
.stat b{display:block;font-size:20px;font-variant-numeric:tabular-nums}
.stat span{font-size:12.5px;color:var(--muted)}

/* sign-in pages */
body.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px}
body.auth .authbox{width:100%;max-width:380px;display:flex;flex-direction:column;gap:14px}
.check{display:flex;gap:8px;align-items:center;font-size:13.5px;cursor:pointer}
.check input{width:18px;height:18px}
.qr{display:flex;justify-content:center}
.qr svg{width:220px;height:220px;max-width:100%;display:block}
.codes{columns:2;list-style:none;padding:0;margin:4px 0 8px;font-size:15px}
.codes li{padding:3px 0}
details.below summary{cursor:pointer;color:var(--link)}
.note{font-size:12.5px;color:var(--muted);margin:0}
/* Account page: one readable column of sections (27 Oct 2026) */
.acct{display:flex;flex-direction:column;gap:14px;width:100%;max-width:640px}
.acct dd{margin:0}
.acct dt{color:var(--muted)}
code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.95em}
.btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;color:var(--ink)}
a.btn.pri{color:var(--on-primary)}
.cf-turnstile{min-height:65px}

/* desk pages (server-rendered) */
.side nav a{display:block;color:var(--on-navy-2);text-decoration:none;padding:9px 18px;min-height:38px;border-left:3px solid transparent}
.side nav a:hover{color:#fff;background:rgba(255,255,255,.06)}
.side nav a[aria-current=page]{color:#fff;background:rgba(255,255,255,.1);border-left-color:var(--gold);font-weight:600}
@media (max-width:820px){.side nav a{border-left:0;border-bottom:3px solid transparent;white-space:nowrap;padding:8px 12px}.side nav a[aria-current=page]{border-bottom-color:var(--gold)}}
.skip{position:absolute;left:-9999px;top:0;background:var(--panel);padding:8px 12px;z-index:50}
.skip:focus{left:8px}
.vh{position:absolute;left:0;top:0;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.scroll,.tool,.qsf,th{position:relative}
.qsf{margin:0}
.qs{min-height:32px;border:1px solid var(--field);border-radius:3px;padding:0 9px;background:var(--panel);width:220px;max-width:100%}
.tool form{margin:0}
.who{color:var(--muted);font-size:13px;text-decoration:none}
/* Switch to the admin console (Arthur, 4 Nov 2026): admins only, top right */
.appsw{font-size:13px;font-weight:500;color:var(--link);text-decoration:none;display:inline-flex;align-items:center;min-height:32px}
.appsw:hover{text-decoration:underline}
.flash{background:var(--good-bg);color:var(--good);border-bottom:1px solid var(--line);padding:8px max(16px,env(safe-area-inset-right,0px)) 8px max(16px,env(safe-area-inset-left,0px))}
.content{min-width:0}
a.row{display:block;color:inherit;text-decoration:none}
.row.on{background:var(--sel);box-shadow:inset 3px 0 0 var(--primary)}
.tag.t-application,.tag.t-website{border-color:var(--good);color:var(--good)}
.tag.t-texted{border-color:var(--warn);color:var(--warn)}
.tag.t-warm{border-color:var(--bad);color:var(--bad)}
.empty{color:var(--muted);padding:16px;text-align:center}
.lh .callwrap{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:12.5px}
.hlx{display:flex;flex-wrap:wrap;gap:8px 26px;padding:10px 12px;border-bottom:1px solid var(--line-2);background:var(--panel-2)}
.hlx div{display:flex;flex-direction:column;font-size:13.5px;min-width:0}
.hlx span{font-size:12px;color:var(--muted)}
/* Stage: a slim progress line, not buttons (Arthur, 28 Oct 2026: the arrow shapes looked
   clickable). It moves by itself from calls, outcomes and the application. */
.pathwrap{padding:7px 12px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pathlbl{font-size:12px;color:var(--muted)}
.path{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;font-size:12.5px;color:var(--muted)}
.path li{display:flex;align-items:center;white-space:nowrap}
.path li + li::before{content:"";width:18px;height:2px;background:var(--line);margin:0 7px}
.path li.done + li::before{background:var(--good)}
.path .dot{width:8px;height:8px;border-radius:50%;background:var(--line);margin-right:5px;flex:none}
.path li.done{color:var(--good)} .path li.done .dot{background:var(--good)}
.path li.cur{color:var(--ink);font-weight:600}
.path li.cur .dot{background:var(--navy);box-shadow:0 0 0 3px color-mix(in srgb,var(--navy) 22%,transparent)}
.pnl > .hd input{font-weight:400}
.tabs a{display:inline-block;padding:9px 12px;min-height:38px;color:var(--ink-2);border-bottom:2px solid transparent;white-space:nowrap;text-decoration:none}
.tabs a[aria-current=page]{color:var(--ink);border-bottom-color:var(--primary);font-weight:600}
.stack{display:flex;flex-direction:column;gap:8px}
.stack p{margin:0}
.warmnote{background:var(--warn-bg);padding:8px 10px;border-radius:3px}
.between{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.appwrap{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-start}
.appwrap form,.appwrap fieldset{flex:999 1 420px;min-width:0}
.appwrap .qbox{flex:1 1 220px}
.acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.acts form{margin:0}
.outs{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:0}
.foot{flex-direction:column;align-items:stretch}
.fu{margin-top:4px}
.fu summary{list-style:none;display:inline-flex}
.fu summary::-webkit-details-marker{display:none}
.fuf{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-top:8px}
.fuf .f{min-width:200px}
[aria-invalid=true]{border-color:var(--bad)!important;outline:1px solid var(--bad)}
.linkbox{width:100%;min-height:34px;border:1px solid var(--field);border-radius:3px;padding:0 9px;background:var(--panel-2)}
.note-ok{border-color:var(--good);margin-bottom:14px}
.note-ok .bd{padding:12px}
.wide{flex:1 1 100%}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;flex:1 1 100%}
details.pnl{flex:1 1 100%}
details.pnl > summary{cursor:pointer}
.content > .wn,.content > .flash{flex:1 1 100%}
audio{width:100%;max-width:360px;height:36px}

/* One screen, no page scroll (Arthur, 27 Oct 2026: "I don't want to be scrolling forever").
   On a laptop or desktop the page fills the window exactly and never scrolls: the list,
   the business's tab content and table rows scroll inside their own boxes, with the
   business's header and the outcome buttons always in view. Pages that are long by
   nature (admin) scroll inside the content area, under a fixed top bar. */
@media (min-width:821px) and (min-height:560px){
  html,body{height:100%;overflow:hidden}
  .shell{height:100vh;height:100dvh;min-height:0}
  .side{overflow-y:auto}
  .main{height:100%;min-height:0}
  .tool,.flash{flex:none}
  .content{flex:1;min-height:0;overflow-y:auto;padding-bottom:14px}
  .content:has(> .listp),.content:has(> .pnl.wide:only-child){flex-wrap:nowrap;align-items:stretch;overflow:hidden}
  .listp{max-height:100%;overflow-y:auto}
  .listp > .hd{position:sticky;top:0;z-index:2}
  .workp{max-height:100%;display:flex;flex-direction:column;min-height:0;overflow:hidden}
  .workp > *{flex:none}
  .workp > .tabbody{flex:1 1 auto;min-height:0;overflow-y:auto}
  .workp > .foot{flex-direction:row;flex-wrap:wrap;align-items:center;background:var(--panel)}
  .workp > .foot .fu{margin-top:0}
  .content > .pnl.wide:only-child{max-height:100%;width:100%;display:flex;flex-direction:column;min-height:0}
  .content > .pnl.wide:only-child > .hd{flex:none}
  .content > .pnl.wide:only-child > .scroll{flex:1 1 auto;min-height:0;overflow:auto}
  .content > .pnl.wide:only-child thead th{position:sticky;top:0;z-index:1}
  .workp > .foot{flex-wrap:wrap;gap:5px 8px;padding:7px 12px 8px}
  .workp > .foot .outs{flex-wrap:wrap;gap:5px}
  .workp > .foot .btn{min-height:30px;padding:0 9px;font-size:13px;white-space:nowrap}
  .workp > .foot .fu[open] .fuf{position:absolute;bottom:100%;right:12px;margin:0 0 6px;background:var(--panel);
    border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 14px rgba(0,0,0,.12);padding:10px;z-index:6}
  .workp > .foot{position:relative}
  #appForm.cols{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
}
/* On a phone the page scrolls, but the outcome buttons stay at the bottom of the screen
   in one row that scrolls sideways. */
@media (max-width:820px){
  .workp{order:-1}                          /* the business first, the list after it */
  .workp > .foot{position:sticky;bottom:0;z-index:5;background:var(--panel);box-shadow:0 -2px 6px rgba(0,0,0,.06)}
  .workp > .foot{min-width:0}
  .workp > .foot .outs{flex-wrap:nowrap;overflow-x:auto;max-width:100%;min-width:0}
  .workp > .foot .outs .btn{flex:none}
}

/* Calendar (27 Oct 2026). Colours: blue = callback agreed with Mark, grey = the rep's
   follow-up. The week grid has 56 rows of 15 minutes (7 AM-9 PM Eastern); .rN puts a block
   at row N (classes, not inline styles: the CSP forbids those). */
.cal .calhd{flex-wrap:wrap}
.calnav{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.calnav .btn{min-height:30px;padding:0 10px;font-weight:400}
.seg{display:inline-flex;margin-left:6px}
.seg .btn{border-radius:0} .seg .btn:first-child{border-radius:3px 0 0 3px} .seg .btn:last-child{border-radius:0 3px 3px 0}
.seg .btn[aria-current=page]{background:var(--navy);color:#fff;border-color:var(--navy)}
.calrep{display:flex;gap:4px;margin-left:6px} .calrep select{min-height:30px;border:1px solid var(--field);border-radius:3px;background:var(--panel)}
.calbody{padding:8px 12px 12px;display:flex;flex-direction:column;gap:6px;min-height:0;flex:1 1 auto}
.legend{margin:0;font-size:12.5px;color:var(--muted);display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.sw{display:inline-block;width:10px;height:10px;border-radius:2px;margin-left:8px} .sw:first-child{margin-left:0}
.sw-cb,.ev-cb{--evc:#1f5fbf} .sw-ol,.ev-ol{--evc:#7a4fb5} .sw-fu,.ev-fu{--evc:#5d6875} .sw-mt,.ev-mt{--evc:var(--good)}
.sw{background:var(--evc)}
.calcount{margin:0;font-size:12.5px;color:var(--muted)}
.ev{display:block;font-size:12px;line-height:1.25;padding:1px 5px;border-left:3px solid var(--evc);background:color-mix(in srgb,var(--evc) 10%,var(--panel));
    color:var(--ink);text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;border-radius:2px}
.ev:hover,.ev:focus-visible{background:color-mix(in srgb,var(--evc) 20%,var(--panel))}
.wk{display:grid;grid-template-columns:48px repeat(7,minmax(0,1fr));flex:1 1 auto;min-height:420px;border:1px solid var(--line);border-radius:3px;overflow-y:auto}
.wk > div{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--line-2)}
.wk > .hrs{border-left:0}
.wk .dh{flex:none;height:30px;position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:center;gap:4px;font-size:12.5px;color:var(--ink-2);
    border-bottom:1px solid var(--line);text-decoration:none;background:var(--panel-2)}
.wk .now .dh{color:var(--navy);font-weight:600;box-shadow:inset 0 -2px 0 var(--navy)}
.wk .we .slots{background:var(--panel-2)}
.wk .slots{flex:1 1 auto;display:grid;grid-template-rows:repeat(56,minmax(18px,1fr));min-height:calc(56 * 18px);position:relative;
    background:repeating-linear-gradient(to bottom,transparent 0,transparent calc(400%/56 - 1px),var(--line-2) calc(400%/56 - 1px),var(--line-2) calc(400%/56))}
.wk .hr{font-size:11px;color:var(--muted);text-align:right;padding-right:6px;grid-row-end:span 4;line-height:1}
.blk{display:flex;gap:2px;align-items:flex-start;padding:0 2px;min-width:0;z-index:1}
.blk .ev{flex:1 1 auto;min-width:0}
.blk .more,.month .more{font-size:11.5px;color:var(--link);flex:none;padding:1px 3px}
.r1{grid-row:1/span 1}.r2{grid-row:2/span 1}.r3{grid-row:3/span 1}.r4{grid-row:4/span 1}.r5{grid-row:5/span 1}.r6{grid-row:6/span 1}.r7{grid-row:7/span 1}.r8{grid-row:8/span 1}.r9{grid-row:9/span 1}.r10{grid-row:10/span 1}.r11{grid-row:11/span 1}.r12{grid-row:12/span 1}.r13{grid-row:13/span 1}.r14{grid-row:14/span 1}.r15{grid-row:15/span 1}.r16{grid-row:16/span 1}.r17{grid-row:17/span 1}.r18{grid-row:18/span 1}.r19{grid-row:19/span 1}.r20{grid-row:20/span 1}.r21{grid-row:21/span 1}.r22{grid-row:22/span 1}.r23{grid-row:23/span 1}.r24{grid-row:24/span 1}.r25{grid-row:25/span 1}.r26{grid-row:26/span 1}.r27{grid-row:27/span 1}.r28{grid-row:28/span 1}.r29{grid-row:29/span 1}.r30{grid-row:30/span 1}.r31{grid-row:31/span 1}.r32{grid-row:32/span 1}.r33{grid-row:33/span 1}.r34{grid-row:34/span 1}.r35{grid-row:35/span 1}.r36{grid-row:36/span 1}.r37{grid-row:37/span 1}.r38{grid-row:38/span 1}.r39{grid-row:39/span 1}.r40{grid-row:40/span 1}.r41{grid-row:41/span 1}.r42{grid-row:42/span 1}.r43{grid-row:43/span 1}.r44{grid-row:44/span 1}.r45{grid-row:45/span 1}.r46{grid-row:46/span 1}.r47{grid-row:47/span 1}.r48{grid-row:48/span 1}.r49{grid-row:49/span 1}.r50{grid-row:50/span 1}.r51{grid-row:51/span 1}.r52{grid-row:52/span 1}.r53{grid-row:53/span 1}.r54{grid-row:54/span 1}.r55{grid-row:55/span 1}.r56{grid-row:56/span 1}
.wkag{display:none}
.agenda{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.agday h3{margin:0 0 4px;font-size:13.5px}
.agday ol{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:3px}
.ag{display:flex;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line-2);border-left:3px solid var(--evc)}
.ag:last-child{border-bottom:0}
.ag-cb{--evc:#1f5fbf} .ag-ol{--evc:#7a4fb5} .ag-fu{--evc:#5d6875} .ag-mt{--evc:var(--good)}
.ag .tm{flex:none;width:70px;font-variant-numeric:tabular-nums;color:var(--ink-2)}
.ag .s{font-size:12.5px;color:var(--muted)}
.tag.t-cb{border-color:#1f5fbf;color:#1f5fbf} .tag.t-ol{border-color:#7a4fb5;color:#7a4fb5} .tag.t-mt{border-color:var(--good);color:var(--good)}
.month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));grid-template-rows:auto;grid-auto-rows:minmax(64px,1fr);flex:1 1 auto;min-height:0;
    border:1px solid var(--line);border-radius:3px}
.month .mh{font-size:12px;color:var(--muted);padding:4px 6px;background:var(--panel-2);border-bottom:1px solid var(--line)}
.month .mc{border-top:1px solid var(--line-2);border-left:1px solid var(--line-2);padding:3px 4px;min-width:0;overflow:hidden;display:flex;flex-direction:column;gap:1px}
.month .mc.out{background:var(--panel-2)} .month .mc.out .dn{color:var(--muted)}
.month .mc.now .dn{background:var(--navy);color:#fff;border-radius:50%}
.month .dn{font-size:12.5px;text-decoration:none;color:var(--ink);width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center}
.month .cnt{display:none}
.month ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:1px;min-width:0}
.cal .calbody > .agenda{overflow-y:auto;min-height:0}
@media (min-width:821px) and (min-height:560px){
  .content > .pnl.wide.cal:only-child > .calbody{overflow:hidden}
  .cal .calbody > .agenda{flex:1 1 auto}
}
@media (max-width:820px){
  .cal .calhd{flex-direction:column;align-items:stretch;gap:8px}
  .calnav .seg,.calrep{margin-left:0}
  .wk{display:none} .wkag{display:block}
  .month{grid-auto-rows:minmax(48px,auto)}
  .month ul{display:none} .month .cnt{display:block;font-size:11px;color:var(--navy);font-weight:600}
}

.foothint{margin:0;font-size:12.5px;color:var(--muted);flex-basis:100%}

/* a submitted application: where it went and what happens next (28 Oct 2026) */
.subbox{border:1px solid var(--good);background:var(--good-bg);border-radius:4px;padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.subbox p{margin:0;font-size:13.5px}
fieldset.locked{border:0;margin:0;padding:0;min-width:0}
fieldset.locked input,fieldset.locked select{background:var(--panel-2);color:var(--ink)}

/* call buttons in two labelled rows (28 Oct 2026) */
.orow{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;flex-basis:100%}
.olbl{font-size:12.5px;color:var(--muted);width:126px;flex:none;white-space:nowrap}
.osep{width:10px;flex:none}
@media (max-width:820px){
  .olbl{width:auto;flex-basis:100%}
  .workp > .foot .orow{flex-wrap:nowrap;overflow-x:auto;max-width:calc(100vw - 34px)}   /* scroll the row, not the page */
  .workp > .foot .orow .olbl{flex-basis:auto}
  .workp > .foot .orow .btn,.workp > .foot .orow .fu{flex:none}
}

/* money fields: a $ inside the box (28 Oct 2026) */
.money{display:flex;align-items:center;border:1px solid var(--field);border-radius:3px;background:var(--panel);min-height:34px}
.money > span{padding:0 2px 0 9px;color:var(--muted)}
.f .money input{border:0;min-height:32px;padding-left:2px}
.money:focus-within{outline:2px solid var(--primary);outline-offset:1px}
[aria-invalid="true"]{border-color:var(--bad)!important;box-shadow:0 0 0 1px var(--bad)}
.money:has([aria-invalid="true"]){border-color:var(--bad)}

/* application actions: a bar that stays at the top of the tab while the fields scroll */
.appbar{position:sticky;top:0;z-index:3;display:flex;justify-content:space-between;align-items:center;gap:8px 12px;flex-wrap:wrap;
  padding:8px 12px;background:var(--panel);border-bottom:1px solid var(--line)}
.appbar .acts{gap:6px}

/* after submitting: progress and documents (28 Oct 2026) */
.h3{margin:4px 0 6px;font-size:14px;display:flex;gap:8px;align-items:baseline}
.path.deal li span small{display:block;font-size:11px;color:var(--muted);font-weight:400}
.path.deal li{align-items:flex-start}
.path.deal .dot{margin-top:4px}
.docs{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:3px}
.docs li{display:flex;align-items:center;gap:10px;padding:6px 10px;border-bottom:1px solid var(--line-2)}
.docs li:last-child{border-bottom:0}
.docs .tick{width:18px;height:18px;border:1px solid var(--field);border-radius:3px;display:inline-flex;align-items:center;
  justify-content:center;font-size:13px;flex:none;color:#fff}
.docs li.got .tick{background:var(--good);border-color:var(--good)}
.docs .dl{flex:1;min-width:0;font-size:13.5px}
.docs form{margin:0}
.docs .btn{min-height:28px;padding:0 9px;font-size:12.5px}
.answers > summary{list-style:none;display:inline-flex}
.answers > summary::-webkit-details-marker{display:none}
.answers[open] > summary{margin-bottom:10px}

/* timeline for Activity and Notes: a line on the left with a dot per entry (28 Oct 2026) */
.tl{list-style:none;margin:0;padding:0 0 0 4px;display:flex;flex-direction:column}
.tl li{position:relative;border-left:2px solid var(--line);padding:2px 0 14px 16px}
.tl li:last-child{padding-bottom:2px}
.tl li::before{content:"";position:absolute;left:-6px;top:6px;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid var(--primary)}
.tl .th{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:13.5px}
.tl .tb{margin-top:3px;font-size:13.5px;white-space:pre-wrap;overflow-wrap:anywhere;max-width:72ch}
.tl audio{margin-top:6px;max-width:100%}
.noteform{display:flex;flex-direction:column;gap:6px;max-width:72ch}
.noteform label{font-size:13px;font-weight:600;color:var(--ink-2)}
.noteform textarea{border:1px solid var(--field);border-radius:3px;padding:7px 9px;min-height:72px;resize:vertical;font:inherit}

/* Activity by day, coloured by kind */
.act{gap:16px}
.actday .h3{position:sticky;top:0;background:var(--panel);z-index:1;padding:2px 0;margin:0 0 6px}
.tl .tm{font-variant-numeric:tabular-nums;color:var(--muted);min-width:64px}
.tl .kd{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);min-width:78px}
.tl li.k-call::before{border-color:#1f5fbf} .tl li.k-outcome::before{border-color:var(--warn)}
.tl li.k-note::before{border-color:#5d6875} .tl li.k-deal::before{border-color:var(--good);background:var(--good)}
.tl li.k-doc::before{border-color:var(--good)}
.tl .tb{margin-left:0}
@media (max-width:820px){.tl .kd{display:none}}
.path.deal{font-size:12px;row-gap:6px}
.path.deal li + li::before{width:10px;margin:7px 5px 0}

/* From the owner: files under each checklist line, their details and signature (28 Oct 2026) */
.docs .files{list-style:none;margin:3px 0 0;padding:0}
.docs .files li{display:block;padding:1px 0;border:0;font-size:12.5px;overflow-wrap:anywhere}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:6px 0;font-size:13.5px}
.kv dt{color:var(--muted)}
.kv dd{margin:0;overflow-wrap:anywhere}
.sig{display:block;max-width:260px;width:100%;height:auto;max-height:110px;object-fit:contain;object-position:left;background:#fff;border:1px solid var(--line);border-radius:3px}
