/* Canvas · one stylesheet. Tokens from boundeduncertainty.com and the Bounded Companion; dark first.
   Type: Figtree for the interface, Lora for display lines, Source Serif 4 for reading passages. Nothing under 13 px.
   Radii 20 / 14 / 10. One stroke icon set (24 viewBox, 1.75 stroke, round caps). Motion only where it explains a change. */

/* ---------- tokens ---------- */
:root{
  --bg:#141a24; --soft:#1a212e; --glow1:#1b2a44; --glow2:#15302f; --glow3:#2d2230;
  --surface:#1a2030; --solid:#262b3c; --sunk:#1f2534; --field:#2c3245; --paper:#1e2431; --grouped:#121722; --raised:#2d3346;
  --ink:#f2f4f8; --ink2:#c8cdd6; --ink3:#a8afba; --line:rgba(255,255,255,.09); --hair:rgba(255,255,255,.07);
  --blue:#5fb8ff; --blue-ink:#07131d; --blue-soft:#1b3350; --tint:#4cc2ff;
  --btn:#4cc2ff; --btn-ink:#04121c; --btn-h:#73d0ff;
  --teal:#43cdb9; --teal-soft:#15322e; --amber:#f2b550; --amber-soft:#3a2e17;
  --red:#ff8572; --red-soft:#3f231e; --green:#62d394; --green-soft:#183324;
  --orange:#f0975a; --orange-soft:#3b2a1c; --violet:#b39df5; --violet-soft:#2b2541;
  --shadow:0 0 0 1px rgba(255,255,255,.06),0 10px 30px -18px rgba(0,0,0,.7);
  --shadow-h:0 0 0 1px rgba(255,255,255,.1),0 22px 48px -20px rgba(0,0,0,.8);
  --elev:0 0 0 1px rgba(255,255,255,.08),0 24px 70px -28px rgba(0,0,0,.85);
  --blob1:#3f82cf; --blob2:#7fb0e6; --blob-glow:#ffffff;
  --sel:rgba(95,184,255,.45);
  --font:'Figtree',ui-sans-serif,system-ui,-apple-system,'Segoe UI Variable Text','Segoe UI',sans-serif;
  --font-d:'Lora','Georgia','Cambria',serif;
  --serif:'Source Serif 4','Cambria','Charter','Georgia',serif;
  --mono:ui-monospace,'Cascadia Mono','SF Mono',Menlo,Consolas,monospace;
  --t1:28px; --t2:22px; --t3:17px; --t4:15px; --t5:14px; --t6:13px;
  --r-lg:20px; --r-md:14px; --r-sm:10px; --r-pill:999px;
  --spring:cubic-bezier(.2,.8,.2,1); --sheetc:cubic-bezier(.32,.72,0,1);
  --dur:.18s;
  color-scheme:dark;
}
:root[data-theme="light"]{
  --bg:#eaeef4; --soft:#f1f4f8; --glow1:#dbe8fa; --glow2:#d6f3ef; --glow3:#f7e6ec;
  --surface:#ffffff; --solid:#ffffff; --sunk:#e3e8f0; --field:#f4f6f9; --paper:#ffffff; --grouped:#e1e7ef; --raised:#ffffff;
  --ink:#0e1116; --ink2:#3f4651; --ink3:#5a6270; --line:rgba(14,17,22,.16); --hair:rgba(14,17,22,.11);
  --blue:#2667b8; --blue-ink:#ffffff; --blue-soft:#e4edf9; --tint:#317fd8;
  --btn:#0e1116; --btn-ink:#ffffff; --btn-h:#2b3038;
  --teal:#087a6d; --teal-soft:#ddf4f0; --amber:#9c5f06; --amber-soft:#fcefd8;
  --red:#b8321f; --red-soft:#fbe3de; --green:#1c7f49; --green-soft:#dff3e7;
  --orange:#b95a14; --orange-soft:#fbe8da; --violet:#6b4fbb; --violet-soft:#ece6fa;
  --shadow:0 0 0 1px rgba(14,17,22,.10),0 1px 2px rgba(14,17,22,.06),0 10px 28px -18px rgba(23,75,217,.28);
  --shadow-h:0 0 0 1px rgba(14,17,22,.14),0 2px 4px rgba(14,17,22,.06),0 22px 48px -20px rgba(23,75,217,.34);
  --elev:0 0 0 1px rgba(14,17,22,.06),0 24px 70px -28px rgba(23,75,217,.4);
  --blob1:#5f9be6; --blob2:#86b5f0; --blob-glow:#ffffff;
  --sel:rgba(38,103,184,.28);
  color-scheme:light;
}
@media (prefers-color-scheme:light){:root:not([data-theme]){
  --bg:#eaeef4; --soft:#f1f4f8; --glow1:#dbe8fa; --glow2:#d6f3ef; --glow3:#f7e6ec;
  --surface:#ffffff; --solid:#ffffff; --sunk:#e3e8f0; --field:#f4f6f9; --paper:#ffffff; --grouped:#e1e7ef; --raised:#ffffff;
  --ink:#0e1116; --ink2:#3f4651; --ink3:#5a6270; --line:rgba(14,17,22,.16); --hair:rgba(14,17,22,.11);
  --blue:#2667b8; --blue-ink:#ffffff; --blue-soft:#e4edf9; --tint:#317fd8;
  --btn:#0e1116; --btn-ink:#ffffff; --btn-h:#2b3038;
  --teal:#087a6d; --teal-soft:#ddf4f0; --amber:#9c5f06; --amber-soft:#fcefd8;
  --red:#b8321f; --red-soft:#fbe3de; --green:#1c7f49; --green-soft:#dff3e7;
  --orange:#b95a14; --orange-soft:#fbe8da; --violet:#6b4fbb; --violet-soft:#ece6fa;
  --shadow:0 0 0 1px rgba(14,17,22,.10),0 1px 2px rgba(14,17,22,.06),0 10px 28px -18px rgba(23,75,217,.28);
  --shadow-h:0 0 0 1px rgba(14,17,22,.14),0 2px 4px rgba(14,17,22,.06),0 22px 48px -20px rgba(23,75,217,.34);
  --elev:0 0 0 1px rgba(14,17,22,.06),0 24px 70px -28px rgba(23,75,217,.4);
  --blob1:#5f9be6; --blob2:#86b5f0; --blob-glow:#ffffff;
  --sel:rgba(38,103,184,.28);
  color-scheme:light;
}}
@media (forced-colors:active){.card,.kcard,.file,.item,.chip,.btn,.tag,.tab,.hcard,.ocard2,.menu{border:1px solid CanvasText}}

/* ---------- base ---------- */
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%;overflow:hidden}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:var(--t4);line-height:1.5;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(70vw 55vh at 8% -12%,var(--glow1),transparent 70%),radial-gradient(55vw 50vh at 104% 6%,var(--glow2),transparent 70%),radial-gradient(60vw 44vh at 62% 112%,var(--glow3),transparent 70%)}
.mica body{background:transparent}.mica body::before{opacity:.5}
h1,h2,h3,h4{margin:0;text-wrap:balance}
h1,h2{font-family:var(--font-d);font-weight:400;letter-spacing:-.01em}
h1{font-size:var(--t1);line-height:1.15} h2{font-size:var(--t2);line-height:1.2}
h3{font-size:var(--t3);line-height:1.25;font-weight:600} h4{font-size:var(--t4);line-height:1.3;font-weight:600}
p{margin:0} button{font:inherit;color:inherit} input,select,textarea{font:inherit;color:inherit}
.small{font-size:var(--t5)} .tiny{font-size:var(--t6)} .ink2{color:var(--ink2)} .ink3{color:var(--ink3)}
.eyebrow{font-size:var(--t6);font-weight:600;color:var(--ink3);letter-spacing:.08em;text-transform:uppercase}
.num{font-variant-numeric:tabular-nums}
.lora{font-family:var(--font-d);font-style:italic;font-weight:400}
::selection{background:var(--sel)}
:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
*{scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--ink) 22%,transparent) transparent}
*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:color-mix(in srgb,var(--ink) 20%,transparent);border-radius:8px;border:3px solid transparent;background-clip:padding-box}*::-webkit-scrollbar-track{background:transparent}
svg[aria-hidden="true"]{width:1em;height:1em;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;vertical-align:-.15em;flex:none}
.eyebrow svg{width:14px;height:14px;vertical-align:-2px;margin-right:4px}
svg.i{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;flex:none}
code{font-family:var(--mono);font-size:.9em;background:var(--sunk);padding:1px 5px;border-radius:5px}
kbd{font-family:var(--font);font-size:var(--t6);font-weight:600;color:var(--ink3);border:1px solid var(--line);border-radius:6px;padding:0 6px;background:var(--sunk);line-height:20px;display:inline-block}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}

/* ---------- controls ---------- */
.btn{appearance:none;border:1px solid var(--line);border-radius:var(--r-pill);min-height:36px;padding:7px 16px;font-weight:600;font-size:var(--t5);cursor:pointer;background:var(--solid);color:var(--ink);display:inline-flex;align-items:center;gap:8px;white-space:nowrap;transition:background var(--dur),border-color var(--dur),transform var(--dur) var(--spring)}
.btn:hover{background:color-mix(in srgb,var(--solid) 80%,var(--ink) 6%)} .btn:active{transform:scale(.98)}
.btn.primary{background:var(--btn);color:var(--btn-ink);border-color:transparent} .btn.primary:hover{background:var(--btn-h)}
.btn.teal{background:var(--teal);color:#06211d;border-color:transparent}
.btn.ghost{background:transparent;border-color:transparent;color:var(--blue)} .btn.ghost:hover{background:var(--sunk)}
.btn.sm{min-height:30px;padding:4px 12px;font-size:var(--t6)}
.btn:disabled{opacity:.45;cursor:default;transform:none}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icobtn{appearance:none;width:34px;height:34px;border-radius:var(--r-sm);background:transparent;border:1px solid transparent;color:var(--ink2);display:grid;place-items:center;cursor:pointer;transition:background var(--dur),color var(--dur)}
.icobtn:hover{background:var(--sunk);color:var(--ink)}
.icobtn:active{transform:scale(.96)}
.icobtn[aria-pressed="true"]{background:var(--blue-soft);color:var(--blue)}
.icobtn svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.kbtn{appearance:none;min-height:34px;padding:5px 10px;gap:8px;border-radius:var(--r-pill);background:var(--sunk);border:1px solid transparent;color:var(--ink2);font-size:var(--t6);display:inline-flex;align-items:center;cursor:pointer}
.kbtn:hover{background:color-mix(in srgb,var(--sunk) 70%,var(--ink) 6%);color:var(--ink)}
.kbtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round}
.seg{display:inline-flex;background:var(--sunk);border-radius:var(--r-pill);padding:3px;gap:2px}
.seg button{appearance:none;border:0;background:transparent;min-height:28px;padding:4px 12px;border-radius:var(--r-pill);font-size:var(--t6);font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.seg button[aria-pressed="true"]{background:var(--solid);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.seg button .num{opacity:.6}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:var(--t6);font-weight:600;padding:2px 10px;border-radius:var(--r-pill);white-space:nowrap;min-height:22px}
.tag i{width:7px;height:7px;border-radius:50%;background:currentColor;display:block}
.t-blue{background:var(--blue-soft);color:var(--blue)} .t-teal{background:var(--teal-soft);color:var(--teal)} .t-amber{background:var(--amber-soft);color:var(--amber)} .t-red{background:var(--red-soft);color:var(--red)} .t-green{background:var(--green-soft);color:var(--green)} .t-plain{background:var(--sunk);color:var(--ink2)} .t-violet{background:var(--violet-soft);color:var(--violet)}
.chips{display:flex;gap:6px;flex-wrap:wrap}
.chip{appearance:none;border:1px solid var(--line);background:var(--solid);border-radius:var(--r-pill);min-height:30px;padding:4px 12px;font-size:var(--t6);font-weight:600;color:var(--ink2);cursor:pointer}
.chip[aria-pressed="true"]{background:var(--btn);color:var(--btn-ink);border-color:transparent}
.chip.sel-teal[aria-pressed="true"]{background:var(--teal-soft);color:var(--teal)}
.tick{appearance:none;border:1px solid var(--line);background:var(--solid);border-radius:var(--r-pill);min-height:26px;padding:2px 9px;font-size:var(--t6);font-weight:600;color:var(--ink3);cursor:pointer;display:inline-flex;align-items:center;gap:5px;pointer-events:auto}
.tick.on{background:var(--green-soft);color:var(--green);border-color:transparent}
.tick.key:not(.on){color:var(--amber);background:var(--amber-soft);border-color:transparent}
.tick svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
.switch{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-weight:500;font-size:var(--t5);color:var(--ink)}
.switch input{position:absolute;opacity:0;width:1px;height:1px}
.switch i{width:42px;height:26px;flex:none;border-radius:999px;background:color-mix(in srgb,var(--ink) 20%,transparent);position:relative;transition:background .22s}
.switch i::after{content:'';position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:transform .22s var(--spring)}
.switch input:checked+i{background:var(--green)}.switch input:checked+i::after{transform:translateX(16px)}
.switch input:focus-visible+i{outline:2px solid var(--tint);outline-offset:2px}
.msel{appearance:none;border:1px solid transparent;background:var(--field);color:var(--ink);border-radius:9px;font:inherit;font-size:var(--t6);padding:5px 26px 5px 10px;min-height:30px;cursor:pointer;position:relative;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:170px}
.msel::after{content:'';position:absolute;right:10px;top:50%;width:6px;height:6px;border-right:1.6px solid var(--ink3);border-bottom:1.6px solid var(--ink3);transform:translateY(-70%) rotate(45deg)}
.msel:hover{border-color:var(--line)}
.say{appearance:none;border:1px solid var(--line);background:var(--solid);width:26px;height:26px;border-radius:50%;display:inline-grid;place-items:center;cursor:pointer;color:var(--ink2);vertical-align:middle;margin-left:6px;flex:none}
.say:hover{color:var(--blue);border-color:var(--blue)}
.say svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.field{display:flex;flex-direction:column;gap:4px;font-size:var(--t6);font-weight:600;color:var(--ink2);align-items:stretch;text-align:left}
.field input,.field select,.field textarea,.email input,.email textarea,.note textarea,.contacts textarea,.dnote,.sayrow input,.srow .ctl input,.srow .ctl select,.srow .ctl textarea,.areacard input,.areacard textarea,.areacard select{background:var(--field);border:1px solid transparent;border-radius:var(--r-sm);color:var(--ink);padding:8px 10px;font-size:var(--t5);font-weight:400;transition:border-color var(--dur),box-shadow var(--dur);width:100%}
.field input:focus,.field select:focus,.field textarea:focus,.email input:focus,.email textarea:focus,.note textarea:focus,.contacts textarea:focus,.dnote:focus,.srow .ctl input:focus,.srow .ctl select:focus,.srow .ctl textarea:focus,.areacard input:focus,.areacard textarea:focus{border-color:color-mix(in srgb,var(--tint) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 22%,transparent);outline:none}
.field textarea{min-height:80px;resize:vertical;line-height:1.5}
.fields{display:grid;gap:10px;grid-template-columns:1fr 1fr} .fields>.wide{grid-column:1/-1}
@media (max-width:600px){.fields{grid-template-columns:1fr}}
.card{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:18px;min-width:0}
.sayrow{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:var(--t6);color:var(--ink3)}
.pathtxt{font-family:var(--mono);font-size:var(--t6);color:var(--ink2);word-break:break-all}
.kv{display:grid;grid-template-columns:auto 1fr;gap:4px 14px;font-size:var(--t5)} .kv dt{color:var(--ink3)} .kv dd{margin:0}

/* presence: the Bounded orb */
.presence{position:relative;width:var(--s,40px);height:var(--s,40px);display:grid;place-items:center;flex:none}
.presence .core{width:84%;height:84%;border-radius:50%;background:radial-gradient(circle at 38% 32%,#ffffff 0%,#e7f0fa 18%,#bcd4f0 44%,#7fb0e6 72%,#3f82cf 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.5),0 10px 30px -10px rgba(63,130,207,.7),0 0 34px 2px rgba(127,176,230,.32);animation:breathe 5s ease-in-out infinite}
.presence.busy .core{animation-duration:1.6s}
@keyframes breathe{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}

/* ---------- shell and title bar ---------- */
.shell{height:100%;display:flex;flex-direction:column;min-width:0}
.top{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,440px) minmax(0,1fr);align-items:center;gap:12px;min-height:46px;padding:6px 10px 6px 14px;border-bottom:1px solid var(--hair);background:var(--surface);-webkit-app-region:drag;flex:none}
.top button,.top input,.top kbd{-webkit-app-region:no-drag}
.top .crumbs,.top .tc{-webkit-app-region:drag}
.top .tl{display:flex;align-items:center;gap:8px;min-width:0}
.top .tc{display:flex;justify-content:center;min-width:0}
.top .tc .kbtn{width:100%;justify-content:flex-start}
.top .tc .kbtn span{flex:1;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.paneBtn{display:none} .incase .paneBtn{display:inline-grid}
@media (max-width:1100px){.top{grid-template-columns:minmax(0,1fr) minmax(44px,240px) minmax(0,1fr)}.top .save span{display:none}}
@media (max-width:760px){.top .tc .kbtn span{display:none}.top .tc .kbtn{width:auto}}
.brand{display:flex;align-items:center;gap:9px;min-width:0;flex:none}
.brand .mark{width:22px;height:22px;display:inline-grid;place-items:center;color:var(--ink)} .brand .mark svg{width:22px;height:22px}
.brand b{font-family:var(--font-d);font-weight:500;font-size:18px;line-height:1.1}
.crumbs{display:flex;align-items:center;gap:4px;font-size:var(--t5);color:var(--ink2);min-width:0;flex:1}
.crumbs button{appearance:none;border:0;background:transparent;min-height:30px;padding:3px 9px;border-radius:8px;cursor:pointer;color:var(--ink2);font-weight:500}
.crumbs button:hover{background:var(--sunk)}
.crumbs b{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crumbs .sep{color:var(--ink3);opacity:.7}
.top .right{display:flex;align-items:center;gap:4px;justify-content:flex-end;min-width:0}
.save{display:inline-flex;align-items:center;gap:6px;font-size:var(--t6);color:var(--ink3);margin-right:6px}
.save i{width:7px;height:7px;border-radius:50%;background:var(--green);display:block}
.askbtn{position:relative}
.askbtn .presence{--s:22px}
.askbadge{position:absolute;top:1px;right:1px;min-width:16px;height:16px;border-radius:8px;background:var(--amber);color:#1a1200;font-size:13px;font-weight:800;display:grid;place-items:center;padding:0 4px;border:2px solid var(--surface);line-height:1}
.askbadge:empty{display:none}
.winctl{display:none;margin-left:6px;gap:0;-webkit-app-region:no-drag}
.customtitle .winctl{display:inline-flex}
.winctl button{appearance:none;border:0;background:transparent;width:46px;height:34px;display:grid;place-items:center;color:var(--ink2);cursor:pointer;border-radius:8px}
.winctl button:hover{background:var(--sunk);color:var(--ink)} .winctl button.x:hover{background:#c42b1c;color:#fff}
.winctl svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:1.4;stroke-linecap:square}
.focusing .top{opacity:.35;transition:opacity .35s}.focusing .top:hover,.focusing .top:focus-within{opacity:1}
@media (max-width:900px){.kbtn span,.kbtn kbd{display:none}.kbtn{padding:5px 9px}.save span{display:none}}
.main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr)}
.main.cl{--claude-w:50%;grid-template-columns:minmax(0,1fr) 6px var(--claude-w)}
.view{min-height:0;overflow:auto;position:relative;min-width:0}
.view.fixed{overflow:hidden}
.cpane{display:flex;flex-direction:column;min-height:0;min-width:0;border-left:1px solid var(--hair);background:var(--surface)}
.cph{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 14px;border-bottom:1px solid var(--hair);min-height:46px;flex-wrap:wrap}
.cph b{font-size:var(--t5)}
.cph .sp{flex:1}
.cph .tiny{max-width:34ch;line-height:1.3}
.cpane webview,.cpane #cweb{flex:1;min-height:0;width:100%;display:flex;background:#fff}
:root[data-theme="dark"] .cpane webview{background:#1f1e1d}

/* ---------- tooltip, menu, toast ---------- */
.tip{position:fixed;z-index:120;pointer-events:none;background:color-mix(in srgb,var(--ink) 94%,transparent);color:var(--bg);font-size:var(--t6);font-weight:500;padding:6px 10px;border-radius:9px;box-shadow:0 8px 24px -10px rgba(0,0,0,.5);opacity:0;transform:translateY(4px);transition:opacity .12s,transform .16s var(--spring);max-width:280px;line-height:1.4;white-space:normal}
.tip.on{opacity:1;transform:none}
.tip kbd{color:var(--bg);border-color:color-mix(in srgb,var(--bg) 40%,transparent);background:transparent;margin-left:6px}
.menulayer{position:fixed;inset:0;z-index:110;pointer-events:none} .menulayer.on{pointer-events:auto}
.menu{position:fixed;min-width:220px;max-width:340px;max-height:min(70vh,520px);overflow:auto;background:var(--raised);border:1px solid var(--line);border-radius:var(--r-md);padding:6px;box-shadow:var(--elev);display:flex;flex-direction:column;gap:1px;animation:menuin .14s var(--spring);transform-origin:top left}
.menu.up{transform-origin:bottom left}
@keyframes menuin{from{opacity:0;transform:scale(.98) translateY(-3px)}to{opacity:1;transform:none}}
.menu .mi{appearance:none;border:0;background:transparent;text-align:left;padding:8px 12px;border-radius:9px;font-size:var(--t5);color:var(--ink);cursor:pointer;display:grid;grid-template-columns:20px 1fr auto;gap:10px;align-items:center;min-height:36px;width:100%}
.menu .mi:hover,.menu .mi[aria-selected="true"]{background:var(--sunk)}
.menu .mi:disabled{opacity:.5;cursor:default}
.menu .mi svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.menu .mi .k{font-size:var(--t6);color:var(--ink3)}
.menu .mi small{display:block;color:var(--ink3);font-size:var(--t6);font-weight:400;line-height:1.3}
.menu .mi.on{color:var(--blue)}.menu .mi.on::before{content:'✓';font-weight:700}
.menu .mi.danger{color:var(--red)}
.menu hr{border:0;border-top:1px solid var(--line);margin:4px 8px}
.menu .mh{font-size:var(--t6);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);padding:8px 12px 4px}
.menu.fonts .mi{font-size:15px}
.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,16px);opacity:0;z-index:160;background:color-mix(in srgb,var(--ink) 94%,transparent);color:var(--bg);padding:10px 16px;border-radius:var(--r-pill);font-size:var(--t5);font-weight:500;transition:opacity .22s,transform .3s var(--spring);pointer-events:none;max-width:90vw;box-shadow:0 10px 30px -10px rgba(0,0,0,.5)}
.toast.on{opacity:1;transform:translate(-50%,0)}

/* ---------- board ---------- */
.board{padding:22px 24px 48px;max-width:1480px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
.board-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}
.board-head h1{font-size:var(--t1)}
.board-head .lead{color:var(--ink2);font-size:var(--t5);margin-top:2px}
.board-head .seg{max-width:100%;overflow:auto;scrollbar-width:none}
.board-head .seg::-webkit-scrollbar{display:none}
.board-head .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.dash{display:grid;gap:16px;grid-template-columns:minmax(320px,400px) minmax(0,1fr);align-items:start}
@media (max-width:1040px){.dash{grid-template-columns:1fr}}
.dash-l{display:flex;flex-direction:column;gap:12px;min-width:0}
.card.plan{padding:0;overflow:hidden}
.plan-h{display:flex;align-items:center;gap:10px;padding:14px 16px 10px}
.plan-h h3{flex:1}
.plan-h .tiny{color:var(--ink3)}
.dayblock{padding:4px 10px 10px}
.dayblock+.dayblock{border-top:1px solid var(--hair)}
.dayblock .dh{display:flex;align-items:baseline;gap:8px;padding:8px 6px 6px}
.dayblock .dh b{font-size:var(--t5);font-weight:600}
.dayblock .dh span{font-size:var(--t6);color:var(--ink3)}
.dayblock .dh .hol{margin-left:auto;font-size:var(--t6);color:var(--la,var(--ink3));font-weight:600}
.tline{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:start;padding:7px 8px;border-radius:10px;font-size:var(--t5);color:var(--ink)}
.tline:hover{background:var(--sunk)}
.tline small{display:block;color:var(--ink3);font-size:var(--t6);line-height:1.4}
.tline .when{font-size:var(--t6);color:var(--ink3);font-variant-numeric:tabular-nums;padding-top:2px;white-space:nowrap}
.tline .who{font-weight:600}
.tdo{appearance:none;width:20px;height:20px;border-radius:50%;border:1.75px solid var(--la,var(--ink3));background:transparent;cursor:pointer;margin-top:1px;display:grid;place-items:center;color:transparent}
.tdo:hover{background:var(--la,var(--ink3));color:#fff}
.tdo svg{width:11px;height:11px;stroke:currentColor;fill:none;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.tdot{width:20px;height:20px;display:grid;place-items:center}
.tdot i{width:8px;height:8px;border-radius:50%;background:var(--la,var(--ink3));display:block}
.tdot svg{width:14px;height:14px;stroke:var(--ink3);fill:none;stroke-width:1.75;stroke-linecap:round}
.empty-day{padding:4px 8px 6px;font-size:var(--t6);color:var(--ink3)}
.olist{display:flex;flex-direction:column;gap:8px;padding:2px}
.olist-h{display:flex;align-items:center;gap:8px;padding:6px 6px 0}
.olist-h h3{flex:1}
.ocard2{position:relative;border-radius:var(--r-md);padding:12px 14px;display:grid;grid-template-columns:30px 1fr auto;gap:12px;align-items:start;background:color-mix(in srgb,var(--la) 12%,var(--solid));border:1px solid var(--hair);color:var(--ink);font-size:var(--t5);min-width:0}
.ocard2 .kopen{position:absolute;inset:0;appearance:none;border:0;background:transparent;cursor:pointer;border-radius:inherit}
.ocard2 .kopen:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.ocard2>*:not(.kopen){position:relative;pointer-events:none}
.ocard2>.on{width:30px;height:30px;border-radius:50%;background:var(--la);color:#fff;display:grid;place-items:center;font-weight:700;font-size:var(--t5)}
.ocard2 .body{min-width:0}
.ocard2 .body b{font-weight:600}
.ocard2 .body .sub{color:var(--ink3);font-size:var(--t6)}
.ocard2 small{display:block;color:var(--ink2);font-size:var(--t6);margin-top:2px;line-height:1.4}
.ocard2 .cticks{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px;pointer-events:auto}
.ocard2 .cticks .tick{min-height:24px;font-size:var(--t6);padding:1px 8px}
.ocard2 .odue{text-align:center;min-width:44px;padding-right:26px}
.ocard2 .odue b{display:block;font-family:var(--font-d);font-weight:500;font-size:22px;line-height:1}
.ocard2 .odue small{margin:0;font-size:var(--t6);color:var(--ink3)}
.ocard2.tight .odue b{color:var(--amber)}.ocard2.late .odue b{color:var(--red)}
.ocard2.min{padding:9px 14px;align-items:center}
.ocard2.min .cticks,.ocard2.min small{display:none}
.ocard2.min .odue{padding-right:26px}
.cmenu,.cmin{position:absolute;right:8px;width:28px;height:28px;border-radius:8px;border:0;background:transparent;color:var(--ink3);display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity var(--dur),background var(--dur);pointer-events:auto}
.cmenu{top:8px} .cmin{top:38px}
.ocard2.min .cmin{top:8px;right:8px} .ocard2.min .cmenu{display:none}
.cmenu svg,.cmin svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ocard2:hover .cmenu,.ocard2:hover .cmin,.kcard:hover .cmenu,.kcard:hover .cmin,.cmenu:focus-visible,.cmin:focus-visible,.ocard2.min .cmin{opacity:1}
.cmenu:hover,.cmin:hover{background:var(--sunk);color:var(--ink)}
.kanban{display:grid;gap:14px;grid-template-columns:repeat(5,minmax(230px,1fr));overflow-x:auto;padding-bottom:6px;align-items:start}
@media (max-width:1180px){.kanban{grid-template-columns:repeat(5,260px)}}
.kcol{display:flex;flex-direction:column;gap:10px;min-width:0;background:color-mix(in srgb,var(--sunk) 55%,transparent);border-radius:var(--r-lg);padding:10px;min-height:200px;max-height:calc(100vh - 240px);overflow:auto}
.kcol-h{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:4px 8px 6px}
.kcol-h h4{font-size:var(--t5)} .kcol-h span{font-size:var(--t6);color:var(--ink3);font-variant-numeric:tabular-nums}
.kcol-h small{display:block;font-size:var(--t6);color:var(--ink3);font-weight:400}
.kcard{position:relative;border:1px solid var(--hair);background:var(--solid);border-radius:var(--r-md);box-shadow:var(--shadow);padding:14px 14px 12px 16px;display:flex;flex-direction:column;gap:8px;overflow:hidden;min-width:0;width:100%;color:var(--ink)}
.kcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--la)}
.kcard .kopen{position:absolute;inset:0;appearance:none;border:0;background:transparent;cursor:pointer;border-radius:inherit}
.kcard>*:not(.kopen){position:relative;pointer-events:none}
.kcard .row{display:flex;justify-content:space-between;gap:8px;align-items:flex-start;padding-right:26px}
.kcard .ref{font-family:var(--mono);font-size:var(--t6);color:var(--ink3)}
.kcard h4{font-size:var(--t4)}
.kcard .school{font-size:var(--t6);color:var(--ink2)}
.kcard .days{text-align:right;white-space:nowrap}
.kcard .days b{display:block;font-family:var(--font-d);font-weight:500;font-size:22px;line-height:1;color:var(--ink)}
.kcard .days span{font-size:var(--t6);color:var(--ink3)}
.kcard .days.soon b{color:var(--amber)} .kcard .days.late b{color:var(--red)}
.kcard .next{font-size:var(--t6);color:var(--ink2);display:flex;gap:6px;white-space:normal}
.kcard .next::before{content:"→";color:var(--blue);font-weight:700;flex:none}
.kcard .ticks{pointer-events:auto;display:flex;gap:5px;flex-wrap:wrap}
.kcard .foot{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.kcard.min .ticks,.kcard.min .next,.kcard.min .foot,.kcard.min .school{display:none}
.kcard .cmenu{top:6px;right:6px} .kcard .cmin{top:36px;right:6px} .kcard.min .cmin{top:6px}.kcard.min .cmenu{display:none}
.onum{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;background:var(--btn);color:var(--btn-ink);font-size:13px;font-weight:800;font-style:normal;margin-right:4px;vertical-align:middle}
.month .dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-bottom:4px}
.month .dow span{font-size:var(--t6);font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);padding:0 6px}
.mgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.mday{background:color-mix(in srgb,var(--sunk) 80%,transparent);border-radius:12px;min-height:108px;padding:8px;display:flex;flex-direction:column;gap:4px;min-width:0}
.mday.we{opacity:.6}
.mday b{font-size:var(--t5);color:var(--ink3);font-weight:600} .mday.today b{color:var(--tint)}
.mday.today{box-shadow:inset 0 0 0 2px var(--tint)}
.mday .hbs{display:flex;gap:2px;height:5px;margin:-2px 0 3px}.mday .hb{flex:1;border-radius:2px;display:block}
.month .legend{display:flex;gap:14px;flex-wrap:wrap;font-size:var(--t6);color:var(--ink2);margin-bottom:8px;align-items:center}.month .legend i{display:inline-block;width:14px;height:5px;border-radius:2px;margin-right:6px;vertical-align:middle}
.mday .ev{font-size:var(--t6);padding:3px 7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.week{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}.week .day{min-width:0}.week .ev{overflow-wrap:anywhere;min-width:0}
.day{background:color-mix(in srgb,var(--sunk) 80%,transparent);border-radius:var(--r-sm);padding:8px;min-height:84px;display:flex;flex-direction:column;gap:4px}
.day b{font-size:var(--t6);color:var(--ink3);font-weight:600}
.ev{font-size:var(--t6);padding:3px 6px;border-radius:4px;line-height:1.3;border-left:3px solid var(--la);background:var(--solid)}
.ev.deadline{background:var(--red-soft);color:var(--red);border-left-color:var(--red)}
.mday .ev.hol{background:transparent;border-left-color:var(--la);color:var(--ink2)}
.mday .ev.cal,.day .ev.cal{border-left-color:var(--ink3);color:var(--ink2);background:color-mix(in srgb,var(--solid) 70%,transparent)}
.mday .ev.cal b{color:var(--ink);font-weight:600}
.mday .ev.sess{color:var(--ink)}
.mnav{display:inline-flex;gap:2px}
.calcard .ch{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.calcard .ch>div{display:flex;gap:8px;align-items:center}

/* ---------- case: three regions ---------- */
.ws{--rail-w:280px;--panel-w:360px;display:grid;grid-template-columns:var(--rail-w) 6px minmax(0,1fr) 6px var(--panel-w);height:100%;min-height:0}
.ws.panel-wide{--panel-w:430px}
.ws.nopanel{grid-template-columns:var(--rail-w) 6px minmax(0,1fr)}.ws.nopanel .panel,.ws.nopanel .rz.r{display:none}
.ws.norail{grid-template-columns:minmax(0,1fr) 6px var(--panel-w)}.ws.norail .rail,.ws.norail .rz.l{display:none}
.ws.norail.nopanel{grid-template-columns:minmax(0,1fr)}
.ws.focus{grid-template-columns:minmax(0,1fr)}.ws.focus .rail,.ws.focus .panel,.ws.focus .rz{display:none}
@media (max-width:1100px){.ws:not(.nopanel):not(.focus){--panel-w:320px}}
@media (max-width:940px){.ws:not(.norail):not(.focus){grid-template-columns:var(--rail-w) 6px minmax(0,1fr)}.ws.norail:not(.focus){grid-template-columns:minmax(0,1fr)}.ws .panel,.ws .rz.r{display:none}}
.rz{cursor:col-resize;position:relative;background:transparent;z-index:2}
.rz::after{content:'';position:absolute;inset:0 2px;border-radius:3px;background:transparent;transition:background var(--dur)}
.rz:hover::after,.rz.on::after{background:color-mix(in srgb,var(--tint) 55%,transparent)}
.rail{border-right:1px solid var(--hair);background:var(--surface);overflow:auto;padding:14px 10px 24px;display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0}
.rail .child{padding:4px 8px 0;display:flex;flex-direction:column;gap:2px}
.rail .child h2{font-size:20px;font-family:var(--font);font-weight:600;display:flex;align-items:center;gap:8px}
.rail .child h2 i{width:9px;height:9px;border-radius:50%;background:var(--la);display:block;flex:none}
.rail .child h2 span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail .fline{display:flex;align-items:center;gap:6px;font-size:var(--t6);color:var(--ink3);min-width:0}
.rail .fline svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.75;flex:none}
.rail .fname{cursor:text;border-radius:6px;padding:1px 5px;margin:0 -5px;outline:none;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink2)}
.rail .fname:hover{background:var(--sunk)}
.rail .fname:focus{background:var(--field);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 22%,transparent);white-space:normal;color:var(--ink)}
.rail .rowb{display:flex;gap:6px;margin-top:8px;align-items:center;flex-wrap:wrap}
.railsec{margin:0 4px;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.railsec .sh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 2px}
.railsec .sh .ghb{gap:8px}
.formlink{appearance:none;text-align:left;border:0;background:transparent;padding:0;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:6px;width:100%;font:inherit}
.formlink:hover .eyebrow{color:var(--ink2)}
.formlink .hrow{display:flex;gap:6px;flex-wrap:wrap}
.formlink .hp{font-size:var(--t6);font-weight:600;color:var(--ink2);background:var(--sunk);border-radius:var(--r-pill);padding:2px 9px;display:inline-flex;gap:6px;align-items:center;max-width:100%}
.formlink .hp i{width:7px;height:7px;border-radius:50%;background:var(--blue);display:inline-block;flex:none}
.formlink .hp.lead i{background:var(--teal)}
.formlink .hp span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tracking .ticks{display:flex;gap:5px;flex-wrap:wrap}
.dnote{border:1px solid transparent;background:var(--sunk);border-radius:10px;padding:7px 9px;font-size:var(--t6);color:var(--ink);outline:none;width:100%;line-height:1.45;min-height:32px}
.dnote:empty::before{content:attr(data-ph);color:var(--ink3)}
.sharebox{background:var(--teal-soft);border-color:color-mix(in srgb,var(--teal) 25%,transparent)}
.sharebox h4{color:var(--teal);display:flex;align-items:center;gap:8px;font-size:var(--t5);justify-content:space-between}
.sharebox h4 svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75}
.plan{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;counter-reset:p}
.plan li{display:grid;grid-template-columns:20px minmax(0,1fr) 28px;gap:6px;align-items:center;font-size:var(--t5);color:var(--ink2);padding:2px 0;border-radius:8px}
.plan li.sel{background:color-mix(in srgb,var(--teal) 10%,transparent)}
.plan li .tk{appearance:none;border:0;background:transparent;color:inherit;font:inherit;text-align:left;padding:3px 4px;border-radius:7px;cursor:pointer;min-width:0;display:block}
.plan li .tk:hover{background:var(--sunk);color:var(--ink)}
.plan li .tk .t{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.plan li .tn{appearance:none;border:0;background:transparent;width:28px;height:28px;border-radius:7px;display:grid;place-items:center;color:var(--ink3);cursor:pointer}
.plan li .tn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75}
.plan li .tn:hover{background:var(--sunk);color:var(--ink)} .plan li .tn.has{color:var(--teal)}
.tasknotes{display:flex;flex-direction:column;gap:4px;margin-top:4px}
.tasknotes .lblrow{display:flex;justify-content:space-between;align-items:baseline;padding:4px 2px}
details.tnote{border:1px solid var(--hair);border-radius:var(--r-sm);background:var(--surface)}
details.tnote summary{list-style:none;display:grid;grid-template-columns:22px minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;cursor:pointer;font-size:var(--t5);font-weight:600;color:var(--ink)}
details.tnote summary::-webkit-details-marker{display:none}
details.tnote summary .n{width:22px;height:22px;border-radius:50%;background:var(--solid);border:1px solid var(--line);display:grid;place-items:center;font-size:var(--t6);font-weight:700;color:var(--ink3)}
details.tnote[open] summary .n{background:var(--teal);color:#fff;border-color:transparent}
details.tnote summary .t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
details.tnote summary small{font-size:var(--t6);color:var(--ink3);font-weight:500}
details.tnote .note{padding:0 10px 8px}
details.tnote .note label{padding-top:0}
.plan li::before{counter-increment:p;content:counter(p);width:20px;height:20px;border-radius:50%;background:var(--solid);border:1px solid var(--line);display:grid;place-items:center;font-size:var(--t6);font-weight:700;color:var(--ink3)}
.plan li.done{color:var(--ink3)} .plan li.done .t{text-decoration:line-through}
.plan li.done::before{background:var(--green-soft);color:var(--green);border-color:transparent;content:"✓"}
.plan li.now{color:var(--ink);font-weight:600} .plan li.now::before{background:var(--teal);color:#fff;border-color:transparent}
.plan li small{display:block;font-size:var(--t6);color:var(--ink3);font-weight:400}
.plan li .how{font-weight:600}
.plan li small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sharebox .live{font-size:var(--t6);color:var(--ink2);padding-top:6px;border-top:1px solid color-mix(in srgb,var(--teal) 25%,transparent)} .sharebox .live b{color:var(--teal)}
.group{display:flex;flex-direction:column;gap:2px}
.gh{display:flex;align-items:center;justify-content:space-between;padding:4px 8px 6px;cursor:grab}
.ghb{appearance:none;border:0;background:transparent;display:flex;gap:6px;align-items:center;cursor:pointer;color:inherit;padding:0;font:inherit}
.ghb svg{width:10px;height:10px;stroke:var(--ink3);fill:none;stroke-width:2.2;transition:transform .2s;flex:none}
.ghb[aria-expanded="false"] svg{transform:rotate(-90deg)}
.group.over{outline:2px dashed var(--blue);outline-offset:2px;border-radius:10px}
.file{appearance:none;border:0;background:transparent;display:grid;grid-template-columns:22px 1fr auto;gap:8px;align-items:center;padding:7px 8px;border-radius:var(--r-sm);min-height:36px;cursor:pointer;color:var(--ink);text-align:left;width:100%;min-width:0}
.file:hover{background:var(--sunk)} .file.on{background:var(--blue-soft);color:var(--blue)}
.file .nm{font-size:var(--t5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file .nm small{display:block;font-size:var(--t6);color:var(--ink3);font-weight:400}
.ic{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;font-family:var(--font);font-size:13px;font-weight:700;letter-spacing:.02em;flex:none}
.ic.docx{background:var(--blue-soft);color:var(--blue)} .ic.pdf{background:var(--red-soft);color:var(--red)} .ic.img{background:var(--teal-soft);color:var(--teal)} .ic.md{background:var(--amber-soft);color:var(--amber)} .ic.txt,.ic.json,.ic.file{background:var(--sunk);color:var(--ink2)}
.file .share{display:inline-flex;align-items:center;gap:4px;font-size:var(--t6);font-weight:600;color:var(--teal)}
.file .share svg,.file .lock svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.75}
.file .lock{color:var(--ink3)}
.file.newf .nm::after{content:"new";margin-left:6px;font-size:13px;font-weight:700;color:var(--teal);background:var(--teal-soft);padding:1px 5px;border-radius:4px;vertical-align:middle}
.swatches{display:inline-flex;gap:4px}.swatch{width:22px;height:22px;border-radius:50%;border:2px solid transparent;cursor:pointer;appearance:none}.swatch[aria-pressed="true"]{border-color:var(--ink);box-shadow:0 0 0 2px var(--solid) inset}

/* centre: tabs, header, ribbon, the page */
.centre{display:flex;flex-direction:column;min-width:0;min-height:0;height:100%}
.tabsbar{display:flex;align-items:flex-end;box-shadow:inset 0 -1px 0 var(--hair);flex:none;padding-right:6px}
.tabs{display:flex;gap:3px;padding:6px 10px 0;overflow-x:auto;scrollbar-width:none;align-items:flex-end;flex:1;min-width:0;scroll-behavior:smooth}
.tabs::-webkit-scrollbar{display:none}
.tabsmore{appearance:none;border:1px solid transparent;background:var(--sunk);color:var(--ink2);min-height:28px;margin-bottom:5px;padding:0 8px 0 10px;border-radius:var(--r-pill);display:inline-flex;align-items:center;gap:4px;cursor:pointer;font-size:var(--t6);font-weight:600;flex:none}
.tabsmore svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.tabsmore:hover{color:var(--ink);background:color-mix(in srgb,var(--sunk) 70%,var(--ink) 6%)}
.tab{appearance:none;border:1px solid transparent;border-bottom:0;background:transparent;min-height:36px;padding:7px 10px 8px 12px;border-radius:10px 10px 0 0;font-size:var(--t6);font-weight:500;color:var(--ink2);cursor:pointer;display:inline-flex;align-items:center;gap:8px;white-space:nowrap;max-width:260px}
.tab .nm{overflow:hidden;text-overflow:ellipsis}
.tab[aria-selected="true"]{background:var(--paper);color:var(--ink);border-color:var(--hair);font-weight:600}
.tab{flex:none}
.tab .x{width:18px;height:18px;border-radius:50%;display:grid;place-items:center;color:var(--ink3);font-size:13px}
.tab .x:hover{background:var(--sunk);color:var(--ink)}
.tab .ic{width:18px;height:18px;font-size:12px}
.dochead{display:flex;align-items:center;gap:8px;padding:6px 12px;border-bottom:1px solid var(--hair);min-height:44px;background:var(--paper);flex:none;flex-wrap:nowrap}
.dochead .dname{font-size:var(--t5);font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.dochead .dsub{font-size:var(--t6);color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.dochead .grow{flex:1;min-width:0}
@media (max-width:1180px){.dochead .dsub{display:none}}
.chev{appearance:none;border:0;background:var(--sunk);border-radius:8px;width:30px;height:30px;display:grid;place-items:center;cursor:pointer;color:var(--ink2);transition:transform .2s}
.chev svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.chev[aria-expanded="true"]{transform:rotate(180deg)}
.editorwrap{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--grouped);position:relative}
.ribbon{display:flex;gap:6px;align-items:center;padding:6px 12px;border-bottom:1px solid var(--hair);background:var(--paper);flex:none;flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;max-height:56px;transition:max-height .2s,padding .2s,opacity .15s}
.ribbon::-webkit-scrollbar{display:none}
.ribbon.closed{max-height:0;padding-block:0;opacity:0;border-bottom-width:0}
.ribbon .rtabs{display:inline-flex;gap:2px;flex:none;padding-right:8px;border-right:1px solid var(--line);margin-right:2px}
.ribbon .rbody{display:inline-flex;gap:3px;align-items:center;flex-wrap:nowrap;flex:none}
.ribbon .rt{appearance:none;border:0;background:transparent;min-height:28px;padding:4px 10px;border-radius:var(--r-pill);font-size:var(--t6);font-weight:600;color:var(--ink2);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}
.ribbon .rt svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ribbon .rt:hover{background:var(--sunk);color:var(--ink)}
.ribbon .rt[aria-pressed="true"]{background:var(--sunk);color:var(--ink)}
.ribbon .sep{width:1px;height:18px;background:var(--line);margin:0 5px;flex:none}
.ribbon .ri{appearance:none;border:0;background:transparent;width:30px;height:30px;border-radius:8px;display:grid;place-items:center;color:var(--ink2);cursor:pointer;flex:none}
.ribbon .ri:hover{background:var(--sunk);color:var(--ink)}
.ribbon .ri[aria-pressed="true"]{background:var(--blue-soft);color:var(--blue)}
.ribbon .ri svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.ribbon .ri .g{font-family:var(--serif);font-size:16px;line-height:1}
.ribbon .ri .hl{background:var(--amber-soft);color:var(--amber);border-radius:5px;padding:0 6px;font-family:var(--serif);font-size:15px}
.ribbon .colr{position:relative;overflow:hidden;cursor:pointer}
.ribbon .colr input{position:absolute;inset:0;opacity:0;cursor:pointer}
.ribbon .colr span{font-family:var(--serif);font-size:16px;line-height:1;border-bottom:3px solid var(--ink);padding-bottom:1px}
.ribbon .rl{font-size:var(--t6);color:var(--ink3);margin-left:4px;white-space:nowrap}
.ribbon .symbols{display:inline-flex;flex-wrap:nowrap;gap:1px}
.ribbon .sym{width:26px;height:26px;font-size:15px;color:var(--ink);font-family:var(--serif)}
.ribbon .msel{margin-right:2px}
.ribbon .ovf{display:none!important}
.ribbon .rmore{padding:4px 8px}
#sdoc{flex:1;min-height:0;overflow:auto;padding:24px 20px 96px;display:flex;flex-direction:column;align-items:center;scrollbar-gutter:stable both-edges}
#sdoc>*{width:100%}
.editorwrap .superdoc{width:100%}
.editorwrap .superdoc__document{padding:0;display:flex;justify-content:center}
.editorwrap .superdoc__document>*{max-width:100%}
.editorwrap .superdoc-page,.editorwrap .ProseMirror.super-editor,.editorwrap .presentation-editor__page{border-radius:var(--r-md);border:1px solid var(--hair);box-shadow:0 1px 3px rgba(0,0,0,.25)}
.editorwrap .presentation-editor__selection-rect,.editorwrap .superdoc__selection-layer .sd-highlight,.editorwrap .superdoc__temp-selection{background:var(--sel)!important;opacity:1!important;mix-blend-mode:normal}
.editorwrap .presentation-editor__caret,.editorwrap [class*="__caret"]{background:var(--ink)!important;width:2px!important}
.editorwrap .ProseMirror ::selection{background:var(--sel)}
.editorwrap.darkpage .superdoc-page,.editorwrap.darkpage .super-editor,.editorwrap.darkpage .ProseMirror,.editorwrap.darkpage .presentation-editor__page{background:var(--paper)!important}
.editorwrap.darkpage .ProseMirror,.editorwrap.darkpage .ProseMirror *:not(img):not(mark):not([data-highlight]){color:var(--ink)!important}
.editorwrap.darkpage .ProseMirror td,.editorwrap.darkpage .ProseMirror th{border-color:var(--line)!important}
.editorwrap.darkpage .ProseMirror mark,.editorwrap.darkpage .ProseMirror [style*="background"]{color:#111!important}
.editorwrap .floating-comments,.editorwrap .comments-dialog,.editorwrap [data-sd-part="comment-thread"],.editorwrap .superdoc__comments-layer .comments-dialog{display:none!important}
.otherwrap{flex:1;min-height:0;display:flex;flex-direction:column}
.sdhost{display:none;width:100%}.sdhost.on{display:block}
.docwait{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:var(--ink3);font-size:var(--t5);gap:10px;opacity:0;transition:opacity .2s}
.docwait.on{opacity:1}
.floatbar{position:fixed;display:flex;gap:2px;align-items:center;background:var(--raised);color:var(--ink);border:1px solid var(--line);box-shadow:var(--elev);padding:4px;border-radius:var(--r-pill);font-size:var(--t5);z-index:30;animation:pop .16s var(--spring)}
@keyframes pop{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.floatbar button{appearance:none;border:0;background:transparent;color:inherit;width:30px;height:30px;border-radius:8px;cursor:pointer;display:grid;place-items:center;padding:0}
.floatbar button:hover{background:var(--sunk)}
.floatbar button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.floatbar .g{font-family:var(--serif);font-size:16px}
.floatbar .msel{max-width:130px;border-radius:var(--r-pill);min-height:30px}
.canvas{flex:1;min-height:0;overflow:auto;padding:28px 20px 80px;display:flex;justify-content:center;align-items:flex-start}
.pdfframe{flex:1;min-height:0;border:0;width:100%;background:var(--sunk)}
.imgview{width:min(760px,100%);background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--shadow);padding:24px;display:flex;flex-direction:column;gap:12px;align-items:center}
.imgreal{max-width:100%;max-height:calc(100vh - 220px);object-fit:contain;border-radius:8px}
.mdedit{width:min(760px,100%);background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--shadow);padding:clamp(24px,5vw,48px);font-family:var(--font);font-size:var(--t4);line-height:1.7;color:var(--ink);min-height:500px;outline:none;resize:none;white-space:pre-wrap}
.mdedit:focus{border-color:color-mix(in srgb,var(--tint) 50%,transparent)}

/* comments, Canvas's own list over the engine's store */
.cmts{display:flex;flex-direction:column;gap:10px}
.cmt{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:6px;cursor:pointer;transition:border-color var(--dur),background var(--dur)}
.cmt:hover{border-color:var(--line)}
.cmt.on{border-color:color-mix(in srgb,var(--tint) 60%,transparent);background:color-mix(in srgb,var(--blue-soft) 60%,var(--solid))}
.cmt.done{opacity:.6}
.cmt .ch{display:flex;align-items:center;gap:8px}
.cmt .av{width:26px;height:26px;border-radius:50%;background:var(--blue-soft);color:var(--blue);display:grid;place-items:center;font-size:13px;font-weight:700;flex:none}
.cmt .who{font-size:var(--t6);font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cmt .when{font-size:var(--t6);color:var(--ink3);white-space:nowrap}
.cmt .q{font-size:var(--t6);color:var(--ink3);border-left:2px solid var(--line);padding-left:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cmt .tx{font-size:var(--t5);line-height:1.45;white-space:pre-wrap}
.cmt .reply{margin-left:14px;padding-left:10px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:3px}
.cmt .reply .who{font-size:var(--t6)}
.cmt .cacts{display:flex;gap:2px;margin:2px -4px -4px;align-items:center}
.cmt .cacts .icobtn{width:28px;height:28px}
.cmt .cacts .icobtn svg{width:15px;height:15px}
.cmt .cacts .sp{flex:1}
.cmt textarea,.cmtnew textarea{background:var(--field);border:1px solid transparent;border-radius:9px;padding:8px 10px;font-size:var(--t5);color:var(--ink);width:100%;min-height:60px;resize:vertical;line-height:1.45;outline:none}
.cmt textarea:focus,.cmtnew textarea:focus{border-color:color-mix(in srgb,var(--tint) 60%,transparent)}
.cmtnew{background:var(--solid);border:1px solid color-mix(in srgb,var(--tint) 50%,transparent);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.cmtnew .acts{display:flex;gap:6px;justify-content:flex-end}
.cmts-empty{padding:18px 8px;text-align:center;color:var(--ink3);font-size:var(--t5);display:flex;flex-direction:column;gap:8px;align-items:center}
.cmts-empty svg{width:28px;height:28px;stroke:currentColor;fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.7}

/* ---------- session ---------- */
.banner{display:flex;align-items:center;gap:12px;padding:10px 16px;background:var(--teal-soft);border-bottom:1px solid color-mix(in srgb,var(--teal) 25%,transparent);color:var(--ink);flex-wrap:wrap;font-size:var(--t5);flex:none}
.banner .dot{width:10px;height:10px;border-radius:50%;background:var(--teal);box-shadow:0 0 0 4px color-mix(in srgb,var(--teal) 25%,transparent);flex:none}
.banner b{color:var(--teal)} .banner .sp{flex:1}
.material{flex:1;min-height:0;overflow:auto;padding:24px 20px 60px;display:flex;justify-content:center;align-items:flex-start}
.mat{width:min(760px,100%);background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-md);box-shadow:var(--shadow);padding:clamp(24px,5vw,48px);min-height:520px}
.mat.reading{font-family:var(--serif);font-size:22px;line-height:1.9} .mat.reading p{margin:0 0 1.2em}
.mat.qsheet{font-family:var(--serif);font-size:20px;line-height:1.7}
.mat .quiet{font-family:var(--font);font-size:var(--t6);color:var(--ink3);text-align:center;margin-top:24px}

/* ---------- panel: notes and record forms ---------- */
.panel{border-left:1px solid var(--hair);background:var(--surface);display:flex;flex-direction:column;min-height:0;min-width:0}
.panel .ptabs{display:flex;gap:0;padding:8px 10px 0;border-bottom:1px solid var(--hair);align-items:center}
.panel .ptabs button[role=tab]{appearance:none;border:0;background:transparent;min-height:38px;padding:8px 10px;border-radius:10px 10px 0 0;font-size:var(--t6);font-weight:600;color:var(--ink3);cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.panel .ptabs button svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75}
.panel .ptabs button[aria-selected="true"]{color:var(--ink);box-shadow:inset 0 -2px 0 var(--tint)}
.panel .ptabs .pc{margin-left:auto;display:flex;gap:2px}
.panel .ptabs .pc .icobtn{width:30px;height:30px}
.pbody{flex:1;min-height:0;overflow:auto;padding:12px 12px 20px;display:flex;flex-direction:column;gap:14px}
.priv{display:flex;align-items:center;gap:6px;font-size:var(--t6);color:var(--ink3);padding:0 2px}
.priv svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.75;flex:none}
.note{display:flex;flex-direction:column;gap:8px}
.note label{font-size:var(--t6);font-weight:600;color:var(--ink2);display:flex;justify-content:space-between;align-items:center;gap:8px}
.note textarea{line-height:1.5;resize:vertical;min-height:96px;outline:none;font-size:var(--t4)}
.tally{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}
.tally button{appearance:none;border:1px solid var(--hair);background:var(--solid);border-radius:var(--r-md);padding:10px 8px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;color:var(--ink)}
.tally button b{font-family:var(--font-d);font-size:24px;line-height:1;font-variant-numeric:tabular-nums}
.tally button span{font-size:var(--t6);color:var(--ink3);font-weight:600}
.timer{display:flex;align-items:center;justify-content:space-between;gap:10px;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-md);padding:10px 12px}
.timer b{font-family:var(--mono);font-size:22px;font-variant-numeric:tabular-nums}
.score{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-md);padding:10px 12px}
.score b{font-family:var(--font-d);font-size:24px;font-variant-numeric:tabular-nums;font-weight:500}
.items{display:flex;flex-direction:column;gap:6px}
.item{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:8px 10px}
.item.cur{box-shadow:0 0 0 2px var(--tint)}
.item .w{font-size:var(--t5);min-width:0} .item .w small{display:block;color:var(--ink3);font-size:var(--t6)}
.item .s{display:inline-flex;gap:2px;background:var(--sunk);border-radius:8px;padding:2px}
.item .s button{appearance:none;border:0;background:transparent;min-width:26px;height:24px;border-radius:6px;font-size:var(--t6);font-weight:700;color:var(--ink3);cursor:pointer;padding:0 5px}
.item .s button[aria-pressed="true"]{background:var(--solid);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12);font-weight:800}
.hchips{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.hchips .lbl{font-size:var(--t6);color:var(--ink3);margin-right:2px}
.hchip{appearance:none;border:1px solid var(--line);background:var(--solid);border-radius:var(--r-pill);padding:4px 10px;font-size:var(--t6);font-weight:700;color:var(--ink2);cursor:pointer}
.hchip[data-v="for"]{background:var(--teal-soft);color:var(--teal);border-color:transparent}
.hchip[data-v="against"]{background:var(--amber-soft);color:var(--amber);border-color:transparent}
.nudge{display:flex;gap:10px;align-items:flex-start;background:var(--blue-soft);border-radius:var(--r-md);padding:10px 12px;font-size:var(--t5);color:var(--ink)}
.nudge .presence{--s:26px} .nudge>div{display:flex;flex-direction:column;gap:6px;min-width:0}
.nudge .acts{display:flex;gap:6px;flex-wrap:wrap}

/* ---------- ask (chief of staff) popover ---------- */
.orbpop{position:fixed;right:12px;top:52px;z-index:36;width:min(440px,calc(100vw - 24px));max-height:min(74vh,680px);background:var(--raised);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--elev);display:flex;flex-direction:column;opacity:0;pointer-events:none;transform:translateY(-6px);transition:opacity .16s,transform .22s var(--spring)}
.orbpop.on{opacity:1;pointer-events:auto;transform:none}
.orbhead{display:flex;align-items:center;gap:10px;padding:14px 14px 10px;border-bottom:1px solid var(--line)}
.orbmode{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.sw{display:inline-flex;align-items:center;gap:6px;font-size:var(--t6);font-weight:600;color:var(--ink2);cursor:pointer}
.sw input{accent-color:var(--teal);width:15px;height:15px}
.orbbody{flex:1;min-height:120px;overflow:auto;padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.msgs{display:flex;flex-direction:column;gap:10px}
.msg{max-width:94%;padding:10px 13px;border-radius:16px;font-size:var(--t5);line-height:1.5}
.msg.me{align-self:flex-end;background:var(--btn);color:var(--btn-ink);border-bottom-right-radius:5px}
.msg.ai{align-self:flex-start;background:var(--solid);border:1px solid var(--line);border-bottom-left-radius:5px;display:flex;flex-direction:column;gap:8px}
.msg.ai ul{margin:0;padding-left:18px} .msg.ai p{margin:0 0 .5em}.msg.ai p:last-child{margin:0}
.composer{display:flex;gap:8px;align-items:flex-end;background:var(--solid);border:1px solid var(--line);border-radius:var(--r-md);padding:8px;margin:0 12px 12px}
.composer textarea{flex:1;min-width:0;border:0;background:transparent;resize:none;font:inherit;font-size:var(--t5);color:var(--ink);padding:6px;min-height:36px;max-height:120px;outline:none}
.adv{display:grid;grid-template-columns:8px 1fr auto;gap:10px;align-items:start;background:var(--solid);border:1px solid var(--line);border-radius:12px;padding:8px 10px;font-size:var(--t5)}
.advk{flex:none;width:8px;height:8px;border-radius:50%;margin-top:7px;background:var(--ink3)}.advk.docs{background:var(--red)}.advk.book{background:var(--teal)}.advk.ring{background:var(--amber)}.advk.send{background:var(--blue)}.advk.inv{background:var(--violet)}.advk.acad{background:var(--orange)}.advk.seq{background:var(--ink)}
mark.hit{background:var(--amber-soft);color:inherit;border-radius:3px}

/* ---------- sheet (dialog), palette, formulation ---------- */
.scrim{position:fixed;inset:0;z-index:40;background:rgba(6,9,14,.5);opacity:0;transition:opacity .2s;pointer-events:none}
.scrim.on{opacity:1;pointer-events:auto}
.sheet{position:fixed;z-index:41;left:0;right:0;margin-inline:auto;top:50%;width:min(840px,94vw);max-height:88vh;border-radius:24px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--elev);transform:translateY(calc(-50% + 12px));opacity:0;pointer-events:none;transition:transform .26s var(--sheetc),opacity .18s;display:flex;flex-direction:column}
.sheet.on{transform:translateY(-50%);opacity:1;pointer-events:auto}
.sheet.wide{width:min(1040px,96vw);max-height:92vh}
.sheet-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:22px 26px 10px}
.sheet-head>div{display:flex;flex-direction:column;gap:3px;min-width:0}
.sheet-head h3{font-family:var(--font);font-weight:600;font-size:var(--t3)}
.sheet-body{overflow:auto;padding:6px 26px 26px;display:flex;flex-direction:column;gap:16px;min-height:0}
.sheet .acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px} .acts .sp{flex:1}
.close{appearance:none;border:0;background:var(--sunk);width:32px;height:32px;border-radius:50%;cursor:pointer;display:grid;place-items:center;flex:none;color:var(--ink2)}
.close:hover{color:var(--ink);background:color-mix(in srgb,var(--sunk) 70%,var(--ink) 8%)}
.close svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round}
.palette{position:fixed;z-index:45;left:0;right:0;margin-inline:auto;top:14vh;width:min(680px,92vw);max-height:min(72vh,620px);border-radius:22px;background:var(--raised);border:1px solid var(--line);box-shadow:var(--elev);display:flex;flex-direction:column;overflow:hidden;opacity:0;pointer-events:none;transform:translateY(8px);transition:opacity .16s,transform .22s var(--spring)}
.palette.on{opacity:1;pointer-events:auto;transform:none}
.palin{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line)}
.palin svg{width:18px;height:18px;stroke:var(--ink3);fill:none;stroke-width:1.75;stroke-linecap:round;flex:none}
.palette input{border:0;background:transparent;padding:4px 0;font-size:var(--t3);width:100%;outline:none;color:var(--ink)}
.palette ul{list-style:none;margin:0;padding:8px;overflow:auto;min-height:0;flex:1}
.palette li{display:grid;grid-template-columns:32px 1fr auto;gap:12px;align-items:center;padding:9px 12px;border-radius:12px;cursor:pointer;font-size:var(--t5)}
.palette li small{display:block;color:var(--ink3);font-size:var(--t6)}
.palette li[aria-selected="true"],.palette li:hover{background:var(--sunk)}
.palette li .pi{width:30px;height:30px;border-radius:9px;background:var(--field);display:grid;place-items:center;font-size:13px;font-weight:800;color:var(--ink2)}
.palette .pk{font-size:var(--t6);color:var(--ink3)}
.palfoot{display:flex;gap:16px;padding:8px 18px;border-top:1px solid var(--line);font-size:var(--t6);color:var(--ink3)}
.palfoot kbd{margin-right:4px}
.formul{position:fixed;inset:0;z-index:44;display:grid;place-items:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}
.formul.on{opacity:1;pointer-events:auto}
.organiser{width:min(1100px,100%);max-height:92vh;overflow:auto;background:var(--raised);border:1px solid var(--line);border-radius:24px;box-shadow:var(--elev);padding:22px 26px 24px;display:flex;flex-direction:column;gap:18px}
.org-head{display:flex;align-items:flex-start;gap:16px}
.org-head .q{flex:1;min-width:260px;display:flex;flex-direction:column;gap:6px}
.org-head .q textarea{width:100%;border:0;background:transparent;font-family:var(--font-d);font-size:var(--t2);color:var(--ink);resize:none;outline:none;line-height:1.3;padding:0}
.org-head .q textarea::placeholder{color:var(--ink3)}
.org-head .tools{display:flex;gap:8px;align-items:center;flex:none}
.sharebar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-radius:12px;font-size:var(--t5)}
.sharebar.private{background:var(--sunk);color:var(--ink2)}
.sharebar.parents{background:var(--amber-soft);color:var(--amber)}
.sharebar.school{background:var(--blue-soft);color:var(--blue)}
.sharebar b{font-weight:600}
.sharebar svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;flex:none}
.org-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.hcard{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-md);padding:14px 16px 12px;display:flex;flex-direction:column;gap:10px;min-width:0}
.hcard .hh{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hcard .hk{font-size:var(--t6);font-weight:700;color:var(--ink3);letter-spacing:.06em}
.hcard textarea{width:100%;border:0;background:transparent;font:inherit;color:var(--ink);resize:none;outline:none;line-height:1.45;padding:0}
.hcard textarea.t{font-weight:600;font-size:var(--t4)}
.hcard textarea::placeholder{color:var(--ink3)}
.hcard .sec{display:flex;flex-direction:column;gap:3px;padding-top:8px;border-top:1px solid var(--hair)}
.hcard .sec .eyebrow{font-size:var(--t6)}
.hcard .sec textarea{font-size:var(--t5);color:var(--ink2);min-height:38px}
.hcard .meter{height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.hcard .meter span{display:block;height:100%;border-radius:3px;background:var(--blue);transition:width .4s var(--spring)}
.hcard.lead .meter span{background:var(--teal)}
.hcard .cnt{display:flex;justify-content:space-between;align-items:center;font-size:var(--t6);color:var(--ink3);font-variant-numeric:tabular-nums}
.hcard .cnt b{color:var(--teal)} .hcard .cnt i{font-style:normal;color:var(--amber)}
.hcard .hx{appearance:none;border:0;background:transparent;color:var(--ink3);font-size:var(--t6);cursor:pointer;padding:2px 6px;border-radius:6px}
.hcard .hx:hover{color:var(--red);background:var(--red-soft)}
.addh{appearance:none;border:1.5px dashed var(--line);background:transparent;border-radius:var(--r-md);min-height:120px;display:grid;place-items:center;color:var(--ink3);font-weight:600;cursor:pointer;font-size:var(--t5)}
.addh:hover{border-color:var(--blue);color:var(--blue)}
.evidence{display:flex;flex-direction:column;gap:6px}
.evrow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;font-size:var(--t5);padding:8px 12px;border-radius:10px;background:var(--sunk)}
.evrow .src{font-size:var(--t6);color:var(--ink3);white-space:nowrap}
.evrow .tags{display:flex;gap:4px}
.evrow .tags span{font-size:var(--t6);font-weight:700;padding:1px 7px;border-radius:5px}
.evrow .tags .f{background:var(--teal-soft);color:var(--teal)} .evrow .tags .a{background:var(--amber-soft);color:var(--amber)}
.org-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap} .org-foot .sp{flex:1}
.formul.meeting .organiser{font-size:var(--t3)}
.formul.meeting .hcard textarea.t{font-size:20px}
.formul.meeting .hcard .sec textarea{font-size:var(--t4)}
.formul.meeting .evidence,.formul.meeting .hidem{display:none}
.formul.shared .hidem,.formul.shared .hcard .meter,.formul.shared .hcard .cnt,.formul.shared .hcard .sec.next,.formul.shared .evidence,.formul.shared .addh,.formul.shared .hcard .hx{display:none}

/* ---------- sheets: content pieces ---------- */
.steps2{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.st{display:grid;grid-template-columns:24px 1fr auto;gap:10px;align-items:center;background:var(--sunk);border-radius:12px;padding:8px 10px;font-size:var(--t5)}
.st>span:first-child{width:24px;height:24px;border-radius:50%;background:var(--solid);display:grid;place-items:center;font-weight:700;font-size:var(--t6);color:var(--ink3)}
.st.done>span:first-child{background:var(--green-soft);color:var(--green)}
.st.skip{opacity:.7}
.st small{display:block;color:var(--ink3);font-size:var(--t6)}
.email{display:grid;gap:8px}
.email .row{display:grid;grid-template-columns:72px 1fr;gap:10px;align-items:center;font-size:var(--t5)}
.email .row>span:first-child{color:var(--ink3);font-size:var(--t6)}
.email textarea{min-height:150px;resize:vertical;line-height:1.5}
.attach{display:inline-flex;align-items:center;gap:8px;background:var(--sunk);border-radius:10px;padding:6px 10px;font-size:var(--t6);font-weight:600}
.send-list{display:flex;flex-direction:column}
.send-list label{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 0;border-top:1px solid var(--hair);font-size:var(--t5);cursor:pointer}
.send-list label:first-child{border-top:0}
.send-list input{accent-color:var(--tint);width:16px;height:16px}
.send-list small{color:var(--ink3);font-size:var(--t6)}
.pseudo{display:grid;grid-template-columns:1fr auto 1fr;gap:4px 10px;font-size:var(--t6);background:var(--sunk);border-radius:var(--r-md);padding:10px 12px;align-items:center}
.pseudo .tok{font-family:var(--mono);color:var(--teal);font-weight:600} .pseudo .arr{color:var(--ink3)}
.brief-head{display:flex;gap:14px;align-items:center} .brief-head .presence{--s:48px}
.brief-sec{display:flex;flex-direction:column;gap:8px}
.contacts textarea{min-height:64px;resize:vertical;line-height:1.5}
.chk{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:start;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:8px 10px}
.chk input[type=checkbox]{accent-color:var(--teal);width:16px;height:16px;margin-top:3px}
.chk .t{border:0;background:transparent;font:inherit;color:var(--ink);width:100%;outline:none;padding:0}
.chk .x{appearance:none;border:0;background:transparent;color:var(--ink3);cursor:pointer}
.audit{display:flex;flex-direction:column;gap:6px}
.audit .row{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:9px 12px;font-size:var(--t5)}
.audit .row small{display:block;color:var(--ink3);font-size:var(--t6)}
.windowcard{border:1px solid var(--hair);border-radius:var(--r-md);overflow:hidden;background:var(--sunk)}
.windowcard .bar{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--solid);border-bottom:1px solid var(--hair);font-size:var(--t6);font-weight:600;color:var(--ink2)}
.windowcard .bar i{width:9px;height:9px;border-radius:50%;background:var(--line);display:block} .windowcard .bar i:first-child{background:var(--red)}
.windowcard .inner{padding:12px;font-size:var(--t6);color:var(--ink2);min-height:110px;display:flex;flex-direction:column;gap:6px}
.windowcard .inner .ln{height:7px;border-radius:4px;background:var(--line)}
.toolrow{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:9px 4px;border-top:1px solid var(--hair);font-size:var(--t5);cursor:pointer}
.toolrow:first-child{border-top:0}
.toolrow input{accent-color:var(--tint);width:16px;height:16px}
.toolrow small{color:var(--ink3);font-size:var(--t6);display:block}
.toolrow .tag{font-size:13px}
.builder{background:var(--sunk);border-radius:var(--r-md);padding:12px 14px;display:flex;flex-direction:column;gap:8px}
.builder .brow{display:flex;gap:8px;align-items:flex-start}
.builder textarea{flex:1;background:var(--field);border:1px solid transparent;border-radius:var(--r-sm);padding:9px 12px;font-size:var(--t5);color:var(--ink);min-height:44px;resize:vertical;line-height:1.5;outline:none}
.builder textarea:focus{border-color:color-mix(in srgb,var(--tint) 60%,transparent)}
.builder .prev{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:var(--t5)}
.builder .prev ol{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:3px}
.builder .prev li{color:var(--ink2)}

/* ---------- settings ---------- */
.settings{display:grid;grid-template-columns:200px minmax(0,1fr);gap:0;min-height:min(70vh,640px);margin:0 -26px -26px}
.snav{border-right:1px solid var(--line);padding:6px 10px 16px 18px;display:flex;flex-direction:column;gap:2px}
.snav button{appearance:none;border:0;background:transparent;text-align:left;padding:8px 12px;border-radius:10px;font-size:var(--t5);font-weight:500;color:var(--ink2);cursor:pointer;display:flex;align-items:center;gap:10px;min-height:38px}
.snav button svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round;opacity:.8}
.snav button:hover{background:var(--sunk);color:var(--ink)}
.snav button[aria-selected="true"]{background:var(--blue-soft);color:var(--blue)}
.sbody{padding:4px 26px 26px 24px;overflow:auto;max-height:min(76vh,720px);display:flex;flex-direction:column;gap:16px}
.sbody h3{font-size:var(--t3);font-weight:600}
.sbody .lead{color:var(--ink2);font-size:var(--t5);max-width:60ch}
.sgroup{background:var(--sunk);border-radius:var(--r-md);overflow:hidden}
.srow{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px;min-height:52px}
.srow+.srow{border-top:1px solid var(--hair)}
.srow .lbl{font-size:var(--t5);font-weight:500;color:var(--ink)}
.srow .lbl small{display:block;font-size:var(--t6);color:var(--ink3);font-weight:400;line-height:1.4;margin-top:1px}
.srow .ctl{display:flex;gap:8px;align-items:center;justify-content:flex-end;min-width:0}
.srow .ctl input,.srow .ctl select{padding:6px 10px;min-width:220px;max-width:360px;width:auto}
.srow .ctl input[type=color]{min-width:34px;width:34px;height:30px;padding:2px}
.srow.stack{grid-template-columns:1fr}
.srow.stack .ctl{justify-content:flex-start}.srow.stack .ctl input,.srow.stack .ctl textarea,.srow.stack .ctl select{min-width:0;max-width:none;width:100%}
.srow .ctl textarea{min-height:70px;resize:vertical;line-height:1.5}
.areacard{background:var(--sunk);border-radius:var(--r-md);padding:12px 14px;display:flex;flex-direction:column;gap:10px}
.areacard .ah{display:flex;align-items:center;gap:10px}
.areacard .ah .dot{width:12px;height:12px;border-radius:50%;flex:none}
.areacard .ah input{background:transparent;border:0;padding:4px 6px;font-weight:600;font-size:var(--t4);flex:1}
.areacard details summary{cursor:pointer;font-size:var(--t6);color:var(--ink2);font-weight:600}
.areacard .srow{padding:8px 0}
.areacard .srow+.srow{border-top:1px solid var(--hair)}
.areacard textarea{min-height:60px;resize:vertical}
.stat{display:inline-flex;gap:6px;align-items:center;font-size:var(--t6);color:var(--ink3)}
.stat b{color:var(--ink);font-weight:600}
@media (max-width:760px){.settings{grid-template-columns:1fr}.snav{flex-direction:row;overflow:auto;border-right:0;border-bottom:1px solid var(--line);padding:6px 16px}}

/* ---------- tour (first run and how it works) ---------- */
.tourlayer{position:fixed;inset:0;z-index:150;display:none} .tourlayer.on{display:block}
.tour{position:absolute;inset:0;background:var(--bg);overflow:hidden;display:grid;grid-template-rows:auto auto minmax(0,1fr);padding:22px max(32px,calc((100vw - 1080px)/2)) 36px;gap:10px}.tour.tin{animation:fade .3s ease}.tour:not(.tin) .tstep,.tour:not(.tin) .splash{animation:tstepIn .28s var(--spring) both}@keyframes tstepIn{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.tour .tstep,.tour .splash{animation:none}}
.tour .aura{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.tour .aura i{position:absolute;border-radius:50%;filter:blur(70px);opacity:.1;animation:drift 20s ease-in-out infinite alternate}
.tour .aura i:nth-child(1){width:46%;aspect-ratio:1;left:-8%;top:-10%;background:#bcd4f0}
.tour .aura i:nth-child(2){width:40%;aspect-ratio:1;right:-6%;top:28%;background:#f6d9c8;animation-duration:24s;animation-delay:-6s}
.tour .aura i:nth-child(3){width:36%;aspect-ratio:1;left:24%;bottom:-14%;background:#a9dcd6;animation-duration:28s;animation-delay:-12s}
:root[data-theme="light"] .tour .aura i{opacity:.5}
@keyframes drift{0%{transform:translate(0,0) scale(1)}50%{transform:translate(6%,4%) scale(1.08)}100%{transform:translate(-4%,6%) scale(.96)}}
@keyframes fade{from{opacity:0}}
.tour>*{position:relative;z-index:1}
.tprog{display:flex;gap:5px;width:min(560px,100%);margin:0 auto}
.tprog button{all:unset;cursor:pointer;flex:1;height:4px;border-radius:2px;background:color-mix(in srgb,var(--ink) 14%,transparent);transition:background .3s;position:relative}
.tprog button::before{content:"";position:absolute;inset:-10px 0}
.tprog button.done{background:color-mix(in srgb,var(--ink) 55%,transparent)}.tprog button.on{background:var(--ink)}
.tprog button:focus-visible{outline:2px solid var(--tint);outline-offset:4px}
.thead{display:flex;justify-content:space-between;align-items:center;min-height:36px;width:min(1080px,100%);margin:0 auto}
.thead .meta{font-size:var(--t6);color:var(--ink3)}
.linkbtn{appearance:none;background:none;border:0;padding:6px 8px;color:var(--blue);font-weight:600;font-size:var(--t5);cursor:pointer;border-radius:8px}
.linkbtn:hover{background:var(--sunk)}
.splash{min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:clamp(18px,3.6vh,36px);padding:0 10px 20px}
.sorbw{position:relative;width:min(34vh,300px);aspect-ratio:1;display:grid;place-items:center;transition:transform .6s var(--spring);transform:translate(calc(var(--mx,0) * 14px),calc(var(--my,0) * 10px))}
.sorb{position:absolute;inset:14%;border-radius:50%;background:radial-gradient(circle at 38% 32%,#ffffff 0%,#e7f0fa 22%,#bcd4f0 48%,#7fb0e6 74%,#3f82cf 100%);box-shadow:inset 0 0 0 1px rgba(255,255,255,.6),0 18px 60px -10px rgba(63,130,207,.65),0 0 90px 10px rgba(127,176,230,.42);animation:sbreathe 5s ease-in-out infinite,spop .9s cubic-bezier(.2,.9,.3,1.3) both}
.sring{position:absolute;inset:14%;border-radius:50%;border:1.5px solid rgba(63,130,207,.45);animation:sripple 4.5s ease-out infinite}
.sring.r2{animation-delay:1.5s}.sring.r3{animation-delay:3s}
.smark{position:relative;z-index:1;width:30%;color:#fff;filter:drop-shadow(0 2px 6px rgba(20,60,120,.35));animation:sfade 1s .5s both}
.smark svg{width:100%;height:auto;display:block}
.swords{display:flex;flex-direction:column;align-items:center;gap:6px;animation:sup .8s .35s both}
.swel{font-size:clamp(13px,1.7vh,16px);letter-spacing:.14em;text-transform:uppercase;color:var(--ink2);font-weight:600}
.sword{display:flex;align-items:center;gap:12px;font-family:var(--font-d);font-size:clamp(28px,5vh,46px);line-height:1.1;color:var(--ink)}
.sword svg{width:.95em;height:.95em;color:var(--ink)}
.scomp{font-family:var(--font-d);font-style:italic;font-size:clamp(44px,8vh,84px);line-height:1.1;padding:0 .08em .1em;background:linear-gradient(100deg,#3f82cf,#7fb0e6 45%,#e8a487);-webkit-background-clip:text;background-clip:text;color:transparent}
.slead{max-width:560px;font-size:clamp(16px,2.1vh,19px);line-height:1.55;color:var(--ink2);animation:sup .8s .6s both}
.tnav{display:flex;justify-content:center;gap:10px;animation:sup .8s .8s both}
.tnav .btn{min-height:52px;padding:0 28px;font-size:16px}
.tnav .sgo{min-width:min(320px,100%);min-height:58px;font-size:17px}
@keyframes sbreathe{0%,100%{transform:scale(1)}50%{transform:scale(1.045)}}
@keyframes spop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}
@keyframes sripple{0%{transform:scale(1);opacity:.7}100%{transform:scale(1.75);opacity:0}}
@keyframes sfade{from{opacity:0}to{opacity:1}}
@keyframes sup{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.tstep{min-height:0;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center;width:min(1080px,100%);margin:0 auto;animation:tin .28s var(--spring)}
@keyframes tin{from{opacity:.3;transform:translateX(10px)}to{opacity:1;transform:none}}
.tstage{min-height:0;height:min(64vh,560px);border-radius:28px;display:grid;place-items:center;padding:24px;background:linear-gradient(160deg,color-mix(in srgb,var(--blue-soft) 70%,var(--solid)),color-mix(in srgb,var(--solid) 60%,transparent));border:1px solid var(--hair);overflow:hidden;position:relative}
.tstage.warm{background:linear-gradient(160deg,color-mix(in srgb,var(--amber-soft) 70%,var(--solid)),color-mix(in srgb,var(--solid) 60%,transparent))}
.tstage.cool{background:linear-gradient(160deg,color-mix(in srgb,var(--teal-soft) 70%,var(--solid)),color-mix(in srgb,var(--solid) 60%,transparent))}
.tstage.plum{background:linear-gradient(160deg,color-mix(in srgb,var(--violet-soft) 70%,var(--solid)),color-mix(in srgb,var(--solid) 60%,transparent))}
.ttext h2{font-family:var(--font-d);font-size:clamp(30px,3.6vw,48px);line-height:1.12;margin-bottom:14px;letter-spacing:-.01em}
.ttext p{font-size:clamp(16px,1.35vw,19px);line-height:1.55;color:var(--ink2);max-width:52ch}
.ttext .tnav{justify-content:flex-start;margin-top:26px;animation:none}
.ttext .tnav .btn{min-width:150px}
.ttext .fields{margin-top:18px;max-width:520px}
.ttext .field input{min-height:44px;font-size:var(--t4)}
.tmm{width:min(360px,100%);display:flex;flex-direction:column;gap:10px;color:var(--ink);text-align:left}
.tmm>*{animation:tmup .5s var(--spring) both}
.tmm>*:nth-child(2){animation-delay:.12s}.tmm>*:nth-child(3){animation-delay:.3s}.tmm>*:nth-child(4){animation-delay:.5s}.tmm>*:nth-child(5){animation-delay:.7s}
@keyframes tmup{from{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:none}}
.tcard{background:var(--solid);border-radius:16px;padding:12px 14px;box-shadow:0 20px 44px -24px rgba(0,0,0,.6);border:1px solid var(--hair);display:flex;flex-direction:column;gap:6px;font-size:14px}
.tcard .eyebrow{font-size:var(--t6)}
.tfolder{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:10px;background:var(--sunk);font-size:13.5px}
.tfolder .ic{width:22px;height:22px}
.tpage{background:var(--paper);border-radius:12px;padding:18px 20px;font-family:var(--serif);font-size:13px;line-height:1.5;color:var(--ink);box-shadow:0 20px 44px -24px rgba(0,0,0,.6);border:1px solid var(--hair)}
.tpage h5{font-family:inherit;font-size:16px;margin:0 0 8px;font-weight:700}
.tpage .ln{height:7px;border-radius:4px;background:color-mix(in srgb,var(--ink) 14%,transparent);margin:6px 0}
.tpage .ln.s{width:60%}
.tpage mark{background:color-mix(in srgb,var(--teal) 25%,transparent);color:inherit;border-bottom:1.5px dotted var(--teal)}
.tribbon{display:flex;gap:6px;align-items:center;font-size:var(--t6);padding:6px 10px;border-radius:10px;background:var(--sunk)}
.tribbon b{background:var(--solid);border-radius:999px;padding:2px 9px;font-weight:600}
.tribbon span{color:var(--ink3)}
.twin2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.tscreen{background:var(--solid);border-radius:14px;padding:10px;border:1px solid var(--hair);box-shadow:0 20px 44px -24px rgba(0,0,0,.6)}
.tscreen .bar{display:flex;gap:5px;padding:0 2px 8px}
.tscreen .bar i{width:8px;height:8px;border-radius:50%;background:var(--line);display:block}.tscreen .bar i:first-child{background:var(--red)}
.tscreen .body{background:var(--paper);border-radius:9px;min-height:90px;padding:10px;font-size:var(--t6);line-height:1.45}
.tscreen .lbl{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--teal);display:block;margin-bottom:6px}
.tscreen.priv .lbl{color:var(--ink3)}
.thyp{background:var(--solid);border-radius:14px;padding:12px 14px;border:1px solid var(--hair);display:flex;flex-direction:column;gap:6px;font-size:13.5px}
.thyp .hk{font-size:13px;font-weight:800;color:var(--blue)}
.thyp .meter{height:5px;border-radius:3px;background:var(--line);overflow:hidden}.thyp .meter i{display:block;height:100%;background:linear-gradient(90deg,var(--blue),var(--teal))}
.tshield{width:120px;height:120px;border-radius:36px;background:var(--solid);display:grid;place-items:center;color:var(--tint);box-shadow:0 20px 44px -24px rgba(0,0,0,.6)}
.tshield svg{width:56px;height:56px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tswap{display:flex;align-items:center;gap:10px;background:var(--solid);border-radius:12px;padding:9px 12px;font-size:13.5px;border:1px solid var(--hair)}
.tswap s{color:var(--ink3);flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-decoration-color:var(--red)}
.tswap b{color:var(--teal);white-space:nowrap}
@media (max-width:860px){.tstep{grid-template-columns:1fr;align-content:start;overflow:auto}.tstage{height:38vh}.ttext h2{font-size:28px}}

/* ---------- misc ---------- */
.empty{max-width:560px;margin:10vh auto;display:flex;flex-direction:column;gap:18px;align-items:flex-start;padding:0 24px}
.empty h1{font-size:32px}

/* =====================================================================
   Fetwell rooms: the thread, the case room, facts and the paper reader,
   the day, the session room. Same tokens; one display line per screen.
   ===================================================================== */

/* ---------- the thread ---------- */
.thread{display:flex;align-items:center;min-width:0}
.thread em{flex:1 1 10px;min-width:6px;height:1px;background:var(--line);margin:0 2px}
.thread .step{appearance:none;border:0;background:transparent;display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border-radius:var(--r-pill);font:inherit;font-size:var(--t6);font-weight:500;color:var(--ink3);white-space:nowrap;cursor:pointer;flex:none;transition:background var(--dur),color var(--dur)}
.thread .step:hover{background:var(--sunk);color:var(--ink)}
.thread .step i{width:10px;height:10px;border-radius:50%;background:var(--sunk);border:1.5px solid var(--line);flex:none;display:block}
.thread .step.done{color:var(--ink2)} .thread .step.done i{background:var(--green);border-color:transparent}
.thread .step.now{color:var(--teal);font-weight:700;background:var(--teal-soft)} .thread .step.now i{background:var(--teal);border-color:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 30%,transparent)}
.thread .step .eta{color:var(--ink3);font-weight:500}
.thread .step.now .eta{color:color-mix(in srgb,var(--teal) 75%,var(--ink2))}
.thread.mini{pointer-events:auto}
.thread.mini .step{padding:2px 0;gap:6px;cursor:default;font-size:13px}
.thread.mini .step:hover{background:transparent;color:inherit}
.thread.mini .step:not(.now) .sl{display:none}
.ccase .thread .step.now,.thread.mini .step.now{background:transparent}
.thread.mini .step.now{background:transparent;padding:2px 2px}
.thread.mini .step i{width:9px;height:9px}
.thread.mini em{flex:1 1 14px;max-width:46px}

/* ---------- the case room ---------- */
.caseroom{display:flex;flex-direction:column;height:100%;min-height:0}
.caseroom .ws{height:auto;flex:1;min-height:0}
.caseroom.focus .threadbar{display:none}
.threadbar{flex:none;display:flex;align-items:center;gap:16px;padding:10px 16px 10px 18px;border-bottom:1px solid var(--hair);background:var(--surface);min-width:0}
.threadbar .who{display:flex;flex-direction:column;gap:1px;min-width:0;flex:0 1 auto;max-width:36%;padding-right:16px;border-right:1px solid var(--hair)}
.threadbar .nmrow{display:flex;align-items:center;gap:8px;min-width:0}
.threadbar .ladot{width:9px;height:9px;border-radius:50%;background:var(--la);flex:none}
.threadbar :is(h1,h2){font-family:var(--font-d);font-weight:500;font-size:var(--t2);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.threadbar small{font-size:var(--t6);color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.threadbar small b{font-weight:600;color:var(--ink2)} .threadbar small b.soon{color:var(--amber)} .threadbar small b.late{color:var(--red)}
.threadbar .fline{display:flex;align-items:center;gap:6px;font-size:var(--t6);color:var(--ink3);min-width:0}
.threadbar .fline svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.75;flex:none}
.threadbar .fname,.threadbar .saynote{outline:none;border-radius:6px;padding:0 4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.threadbar .fname:focus,.threadbar .saynote:focus{background:var(--field);color:var(--ink);text-overflow:clip}
.threadbar .saynote{opacity:.8} .threadbar .saynote::before{content:"·";margin-right:6px;opacity:.6}
.threadbar .thread{flex:1;overflow-x:auto;scrollbar-width:none;padding:2px 0}
.threadbar .thread::-webkit-scrollbar{display:none}
.threadbar .tbacts{display:flex;align-items:center;gap:4px;flex:none}
.threadbar .tbacts .tag{min-height:18px;padding:0 7px;margin-left:2px}
@media (max-width:1280px){.threadbar .thread .step:not(.now):not(:hover) .sl{display:none}}
@media (max-width:900px){.threadbar .who{max-width:50%}.threadbar .thread .step:not(.now) .sl{display:none}}

.rail .rsec{display:flex;flex-direction:column;gap:2px;margin:0 2px}
.rail .rsec.sharebox{background:var(--teal-soft);border:1px solid color-mix(in srgb,var(--teal) 22%,transparent);border-radius:var(--r-md);padding:8px 6px 10px;gap:4px}
.rail .rh{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 6px 6px}
.rail .rh .ghb{gap:8px}
.paper{appearance:none;border:0;background:transparent;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 8px;border-radius:var(--r-sm);min-height:40px;cursor:pointer;color:var(--ink2);text-align:left;font:inherit;width:100%}
.paper:hover{background:var(--sunk);color:var(--ink)}
.paper.on{background:var(--blue-soft);color:var(--ink)}
.paper .rd{width:8px;height:8px;border-radius:50%;background:var(--tint);transition:background .3s,box-shadow .3s}
.paper .rd.read{background:transparent;box-shadow:inset 0 0 0 1.5px var(--line)}
.paper .nm{font-size:var(--t5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.paper .nm small{display:block;font-size:var(--t6);color:var(--ink3);overflow:hidden;text-overflow:ellipsis}
.paper .n{font-size:var(--t6);color:var(--teal);font-weight:600;white-space:nowrap}
.paper.newf .nm::after{content:"new";margin-left:6px;font-size:13px;font-weight:700;color:var(--tint)}

/* ---------- facts ---------- */
.facts{display:flex;flex-direction:column;gap:8px}
.fact{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 12px 8px;display:flex;flex-direction:column;gap:6px;animation:factin .35s var(--spring)}
@keyframes factin{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.fact .ft{font-size:var(--t5);line-height:1.5;color:var(--ink);outline:none;border-radius:6px}
.fact .ft:focus{background:var(--field);box-shadow:0 0 0 4px var(--field)}
.fact .src{display:flex;align-items:center;gap:6px;font-size:var(--t6);color:var(--ink3)}
.fact .src .sp{flex:1}
.fact .srcb{appearance:none;border:0;background:transparent;color:var(--teal);font:inherit;font-weight:600;padding:2px 4px;margin-left:-4px;border-radius:6px;cursor:pointer;text-align:left;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fact .srcb b{color:var(--ink2);font-weight:600}
.fact .srcb:hover{background:var(--sunk)}
.fact .fx{appearance:none;border:0;background:transparent;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;color:var(--ink3);cursor:pointer;opacity:.6}
.fact .fx:hover{opacity:1;background:var(--sunk);color:var(--ink)}
.fact .fx svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.fact .hchips{padding-top:2px}
.empty-facts{display:flex;flex-direction:column;gap:6px;padding:18px 14px;border:1px dashed var(--line);border-radius:var(--r-md);color:var(--ink2);font-size:var(--t5);line-height:1.5}
.empty-facts b{color:var(--ink);font-weight:600}

/* ---------- the paper reader ---------- */
.reader{display:flex;flex-direction:column;flex:1;min-height:0;background:var(--grouped)}
.rbar{display:flex;align-items:center;gap:6px;padding:6px 12px;border-bottom:1px solid var(--hair);background:var(--paper);flex:none;min-height:40px}
.rbar .sp{flex:1} .rbar .icobtn{width:30px;height:30px;font-weight:700;font-size:16px}
.rbar .icobtn svg{width:16px;height:16px}
@media (max-width:1100px){.rbar .hidesm{display:none}}
.pdfread{flex:1;min-height:0;overflow:auto;padding:24px 20px 80px;display:flex;flex-direction:column;align-items:center;gap:18px;outline:none}
.pdfread .pg{position:relative;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.08),0 18px 40px -22px rgba(0,0,0,.65);border-radius:3px;flex:none;overflow:hidden}
.pdfread .pg canvas{position:absolute;inset:0;display:block}
.pdfread .pgn{position:absolute;right:10px;bottom:8px;font-size:13px;color:#8a8f98;z-index:3;pointer-events:none}
.pdfread .pg.scanned::after{content:"This page is a scan with no text layer, so words cannot be selected here. Type the fact in the Facts panel instead.";position:absolute;left:12px;right:12px;top:12px;z-index:4;background:color-mix(in srgb,var(--amber-soft) 92%,transparent);color:var(--amber);font-size:var(--t6);padding:8px 10px;border-radius:8px}
.textLayer{position:absolute;inset:0;overflow:hidden;line-height:1;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;z-index:2}
.textLayer span,.textLayer br{color:transparent;position:absolute;white-space:pre;cursor:text;transform-origin:0% 0%}
.textLayer span.markedContent{top:0;height:0}
.textLayer ::selection{background:rgba(64,140,255,.32)}
.textLayer br::selection{background:transparent}
.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:-1;cursor:default;user-select:none}
.textLayer .endOfContent.active{top:0}
.textLayer span.flash{background:rgba(67,205,185,.38);border-radius:2px;transition:background 1.6s}
.keepchip{position:fixed;z-index:115;animation:factin .2s var(--spring)}
.keepchip button{appearance:none;border:1px solid var(--line);background:var(--raised);color:var(--ink);box-shadow:var(--elev);border-radius:var(--r-pill);padding:7px 14px 7px 11px;font:inherit;font-size:var(--t6);font-weight:600;display:inline-flex;gap:8px;align-items:center;cursor:pointer}
.keepchip button:hover{background:var(--solid)} .keepchip svg{width:15px;height:15px;stroke:var(--teal);fill:none;stroke-width:1.9}

/* ---------- the day ---------- */
.view.dayview{background:radial-gradient(1100px 520px at 18% -10%,color-mix(in srgb,var(--tint) 7%,transparent),transparent 70%),var(--bg)}
.dayboard{gap:8px;max-width:1320px}
.daytop{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.daytop .sp{flex:1} .daytop .seg{max-width:100%;overflow:auto;scrollbar-width:none}
.dayroom{padding-top:6px}
.daygrid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:36px;align-items:start}
.daycol{display:flex;flex-direction:column;gap:16px;min-width:0}
.greet h1{font-family:var(--font-d);font-weight:500;font-size:38px;line-height:1.15;letter-spacing:-.01em}
.greet p{color:var(--ink2);font-size:var(--t3);margin-top:6px;max-width:60ch;line-height:1.5}
.nextcard{background:var(--raised);border-color:var(--line);box-shadow:var(--elev);padding:20px 22px;display:flex;flex-direction:column;gap:8px;position:relative;overflow:hidden}
.nextcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--la,var(--tint))}
.nextcard .when{color:var(--teal);font-weight:700;font-size:var(--t6);letter-spacing:.08em;text-transform:uppercase}
.nextcard h3{font-family:var(--font-d);font-weight:500;font-size:var(--t1);line-height:1.2}
.nextcard .plan{color:var(--ink2);font-size:var(--t5);line-height:1.55} .nextcard .plan b{color:var(--ink);font-weight:600}
.nextcard .act{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.nextcard.calm::before{background:var(--green)} .nextcard.calm .when{color:var(--green)}
.daycol .sect{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-top:8px}
.daycol .sect h3{font-family:var(--font-d);font-weight:500;font-size:var(--t2)}
.thenlist{display:flex;flex-direction:column;gap:8px}
.then{display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:14px;align-items:center;padding:12px 14px 12px 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--hair);transition:opacity .35s,transform .35s,max-height .4s,padding .4s,margin .4s;max-height:140px}
.then .dot{width:9px;height:9px;border-radius:50%;background:var(--la,var(--tint))}
.then .t{min-width:0;font-size:var(--t5);color:var(--ink2)} .then .t b{color:var(--ink);font-weight:600;display:block} .then .t small{display:block;color:var(--ink3);font-size:var(--t6);margin-top:1px}
.then.done{opacity:0;transform:translateX(16px);max-height:0;padding-top:0;padding-bottom:0;margin-top:-8px;border-width:0}
.where{display:flex;gap:14px;align-items:center;padding:14px 16px;border-radius:var(--r-md);background:color-mix(in srgb,var(--sunk) 70%,transparent);border:1px dashed var(--line);color:var(--ink2);font-size:var(--t5);line-height:1.5}
.where b{color:var(--ink);font-weight:600} .where .sp{flex:1}
.where svg{width:20px;height:20px;stroke:var(--tint);fill:none;stroke-width:1.75;flex:none}
.wstrip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
.wstrip .wd{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-sm);padding:9px 8px;min-height:104px;display:flex;flex-direction:column;gap:5px;min-width:0}
.wstrip .wd.past{opacity:.6}
.wstrip .wd.today{border-color:color-mix(in srgb,var(--tint) 70%,transparent);background:color-mix(in srgb,var(--tint) 7%,var(--surface))}
.wstrip .d{font-weight:700;font-size:var(--t6);color:var(--ink2)} .wstrip .d small{font-weight:500;color:var(--ink3);margin-left:4px}
.wstrip .ev{font-size:13px;line-height:1.3;padding:3px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:block;border-left-width:2px}
.wstrip .ev i{display:none}
.wstrip .ev.cal{border-left-color:var(--ink3);color:var(--ink2);background:transparent}
.wstrip .ev.sess{color:var(--ink);font-weight:600}
.wstrip .ev.due{background:var(--red-soft);color:var(--red);border-left-color:var(--red)}
.wstrip .ev.hol{background:transparent;color:var(--amber);border-left-color:var(--amber)}
.wstrip .ev.more{border:0;background:transparent;color:var(--ink3);padding-left:2px}
.holnote{display:flex;gap:8px;align-items:flex-start;line-height:1.45}
.holnote svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75;flex:none;margin-top:2px}
.river{display:flex;flex-direction:column;gap:8px}
.ccase{position:relative;display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:2px 14px;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:12px 14px 10px 0;overflow:hidden;transition:background var(--dur),border-color var(--dur)}
.ccase:hover{background:var(--solid);border-color:var(--line)}
.ccase .kopen{position:absolute;inset:0;appearance:none;border:0;background:transparent;cursor:pointer;border-radius:inherit;z-index:1}
.ccase .kopen:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.ccase>*:not(.kopen):not(.cmenu){position:relative;pointer-events:none}
.ccase .bar{grid-row:1/3;background:var(--la);border-radius:0 3px 3px 0}
.ccase h4,.ccase h3.cch{margin:0;font-size:var(--t4);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccase .m{font-size:var(--t6);color:var(--ink3);display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ccase .due{text-align:right;font-size:var(--t6);color:var(--ink3);padding-right:26px;line-height:1.1}
.ccase .due b{display:block;font-size:var(--t2);font-family:var(--font-d);font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.ccase .thread{grid-column:2/-1;margin-top:8px;overflow:hidden}
.ccase .cmenu{z-index:2;top:8px;right:6px}
.ccase:hover .cmenu{opacity:1}
.monthfold{background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:0 12px}
.monthfold summary{list-style:none;display:flex;align-items:center;justify-content:space-between;padding:12px 2px;cursor:pointer;font-family:var(--font-d);font-size:var(--t3)}
.monthfold summary::-webkit-details-marker{display:none}
.monthfold summary svg{width:16px;height:16px;stroke:var(--ink3);fill:none;stroke-width:2;transition:transform .2s}
.monthfold[open] summary svg{transform:rotate(180deg)}
.monthfold .month{padding-bottom:12px}
@media (max-width:1060px){.daygrid{grid-template-columns:1fr}.greet h1{font-size:30px}}

/* ---------- the session room ---------- */
body.inroom .top .crumbs{opacity:.55}
.sroom{display:flex;flex-direction:column;height:100%;min-height:0;background:#0f141c;color:#f2f4f8;
  --ink:#f2f4f8;--ink2:#c3c8d2;--ink3:#9aa1ad;--surface:#161c27;--solid:#222838;--raised:#2a3142;--sunk:#1b2130;--field:#232a3b;--line:rgba(255,255,255,.1);--hair:rgba(255,255,255,.07);
  --teal:#43cdb9;--teal-soft:#15322e;--amber:#f2b550;--amber-soft:#3a2e17;--green:#62d394;--green-soft:#183324;--red:#ff8572;--red-soft:#3f231e;--blue-soft:#1b3350;--tint:#4cc2ff;color-scheme:dark}
.sbar{display:flex;align-items:center;gap:12px;padding:9px 16px 9px 22px;border-bottom:1px solid var(--hair);background:var(--surface);flex:none;min-width:0}
.slive{display:inline-flex;align-items:center;gap:8px;color:var(--teal);font-weight:800;font-size:var(--t6);letter-spacing:.1em;text-transform:uppercase;flex:none}
.slive i{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:spulse 1.6s infinite}
@keyframes spulse{0%,100%{opacity:.35}50%{opacity:1}}
.sbar .who{font-family:var(--font-d);font-weight:500;font-size:var(--t3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.sshared{display:inline-flex;align-items:center;gap:8px;font-size:var(--t6);color:var(--ink3);padding:5px 11px;border-radius:var(--r-pill);background:var(--sunk);white-space:nowrap;flex:none}
.sshared svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:1.75} .sshared b{color:var(--ink2)}
.sbar .sp{flex:1}
.stimer{font-variant-numeric:tabular-nums;font-size:var(--t3);font-weight:600;color:var(--ink2);margin-right:4px}
@media (max-width:1100px){.sshared,#sBlank{display:none}}
.sgrid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 380px}
.stask{padding:clamp(24px,5vh,56px) clamp(24px,6vw,96px);display:flex;flex-direction:column;justify-content:flex-start;gap:24px;min-width:0;overflow:auto}
.stask>:first-child{margin-top:auto}.stask>:last-child{margin-bottom:auto}
.sitem{font-size:var(--t6);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--teal)}
.stask h2{font-family:var(--font-d);font-weight:500;font-size:clamp(28px,3.4vw,44px);line-height:1.2;max-width:24ch;letter-spacing:-.005em}
.stask h2 em{font-style:normal;color:#fff;box-shadow:inset 0 -.18em 0 color-mix(in srgb,var(--teal) 38%,transparent)}
.stask .answer{color:var(--ink3);font-size:var(--t5)}
.verb{display:flex;flex-direction:column;gap:6px;max-width:760px}
.verb label{font-size:var(--t6);font-weight:600;color:var(--ink3)}
.vline{display:grid;grid-template-columns:56px minmax(0,1fr) 24px;gap:10px;align-items:baseline;color:var(--ink2);font-family:var(--serif);font-size:var(--t3);line-height:1.45}
.vline small{font-family:var(--font);color:var(--ink3);font-size:var(--t6);font-variant-numeric:tabular-nums}
.vline .vx{appearance:none;border:0;background:transparent;color:var(--ink3);opacity:0;cursor:pointer;width:24px;height:24px;border-radius:6px;display:grid;place-items:center}
.vline:hover .vx{opacity:.8} .vline .vx svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:2}
.verb textarea{background:transparent;border:0;border-bottom:1px solid var(--line);color:var(--ink);font-family:var(--serif);font-size:var(--t3);padding:6px 0;resize:none;width:100%;min-height:40px;outline:none;line-height:1.45}
.verb textarea:focus{border-color:var(--teal)} .verb textarea::placeholder{color:var(--ink3);font-family:var(--font);font-size:var(--t5)}
.keys{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.skey{appearance:none;min-width:68px;height:60px;padding:0 14px;border-radius:14px;background:var(--solid);border:1px solid var(--line);display:inline-flex;flex-direction:column;align-items:center;justify-content:center;font:inherit;font-size:var(--t2);font-weight:700;color:var(--ink);cursor:pointer;transition:background .12s,transform .08s,box-shadow .15s}
.skey small{display:block;font-size:13px;color:var(--ink3);font-weight:500;line-height:1.1;margin-top:2px}
.skey:hover{background:var(--raised)} .skey:active{transform:translateY(1px)}
.skey[aria-pressed="true"]{background:var(--teal);color:#061a17;border-color:transparent;box-shadow:0 0 0 4px var(--teal-soft)} .skey[aria-pressed="true"] small{color:#0b3a33}
.skey.ok[aria-pressed="true"]{background:var(--green);box-shadow:0 0 0 4px var(--green-soft)} .skey.no[aria-pressed="true"]{background:var(--red);color:#2a0b06;box-shadow:0 0 0 4px var(--red-soft)}
.skey.wide{flex-direction:row;justify-content:flex-start;gap:10px;font-size:var(--t4);font-weight:500;height:auto;min-height:52px;padding:10px 16px;text-align:left;max-width:520px}
.skey.wide b{font-size:var(--t3);font-weight:800;color:var(--ink3)} .skey.wide[aria-pressed="true"] b{color:#061a17}
.keys .hint{color:var(--ink3);font-size:var(--t6);margin-left:8px;line-height:2}
.keys .hint kbd,.tbtn kbd{background:var(--sunk);border:1px solid var(--line);color:var(--ink2)}
.stim{display:grid;place-items:center;background:#fff;border-radius:var(--r-md);padding:14px;max-width:760px}
.stim img{max-width:100%;max-height:46vh;object-fit:contain;display:block}
.tallies{display:flex;gap:10px;flex-wrap:wrap}
.tbtn{appearance:none;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:12px;align-items:center;padding:10px 14px;min-width:140px;border-radius:14px;background:var(--solid);border:1px solid var(--line);color:var(--ink);font:inherit;cursor:pointer;text-align:left}
.tbtn b{font-size:var(--t1);font-family:var(--font-d);font-weight:500;font-variant-numeric:tabular-nums;grid-row:1/3}
.tbtn span{font-size:var(--t6);color:var(--ink2)} .tbtn kbd{justify-self:start;font-size:13px}
.tbtn:hover{background:var(--raised)} .tbtn.on{background:var(--teal-soft);border-color:color-mix(in srgb,var(--teal) 40%,transparent)} .tbtn.on b{color:var(--teal)}
.tbtn.bump{animation:bump .25s}
@keyframes bump{50%{transform:scale(1.05);background:var(--teal-soft)}}
.passage{font-family:var(--serif);font-size:var(--t3);line-height:1.7;color:var(--ink2);max-width:68ch;background:var(--surface);border:1px solid var(--hair);border-radius:var(--r-md);padding:20px 24px}
.passage h1{font-family:var(--font-d);font-size:var(--t2);font-weight:500;color:var(--ink);margin:0 0 10px} .passage p{margin:0 0 10px}
.compq{display:flex;flex-direction:column;gap:6px;max-width:760px}
.compq .cq{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:8px 12px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--hair);font-size:var(--t5)}
.compq .cq small{display:block;color:var(--ink3);font-size:var(--t6)}
.compq .cm{display:flex;gap:4px} .compq .cm button{appearance:none;width:34px;height:34px;border-radius:9px;border:1px solid var(--line);background:var(--solid);color:var(--ink);cursor:pointer;font-weight:700}
.compq .cm button[aria-pressed="true"]{background:var(--teal);color:#061a17;border-color:transparent}
.sside{border-left:1px solid var(--hair);background:var(--surface);padding:20px 18px 32px;display:flex;flex-direction:column;gap:12px;overflow:auto;min-height:0}
.sside h4{font-size:var(--t6);font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3);margin-top:6px}
.splan{display:flex;flex-direction:column;gap:3px}
.strow{appearance:none;border:0;background:transparent;font:inherit;text-align:left;display:grid;grid-template-columns:24px minmax(0,1fr);gap:10px;align-items:center;padding:8px;border-radius:var(--r-sm);color:var(--ink2);font-size:var(--t5);cursor:pointer;width:100%}
.strow:hover{background:var(--sunk)}
.strow .n{width:24px;height:24px;border-radius:50%;background:var(--solid);border:1px solid var(--line);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--ink3)}
.strow .n svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.6}
.strow .nm{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .strow small{display:block;color:var(--ink3);font-size:var(--t6)}
.strow.done .n{background:var(--green);color:#061a10;border-color:transparent}
.strow.now{background:var(--teal-soft);color:var(--ink)} .strow.now .n{background:var(--teal);color:#061a17;border-color:transparent}
.raw{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.sside .raw:has(>div:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.raw>div{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-sm);padding:10px 12px;min-width:0}
.raw b{display:block;font-size:var(--t1);font-family:var(--font-d);font-weight:500;font-variant-numeric:tabular-nums;line-height:1.1;white-space:nowrap}
.raw span{font-size:var(--t6);color:var(--ink3)}
.rule{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:var(--r-sm);background:var(--sunk);font-size:var(--t6);color:var(--ink2);border:1px solid var(--hair);line-height:1.5}
.rule svg{width:15px;height:15px;stroke:var(--ink3);fill:none;stroke-width:1.9;flex:none;margin-top:1px}
.rule.hot{background:var(--amber-soft);border-color:transparent;color:var(--ink)} .rule.hot svg{stroke:var(--amber)}
.rule.warm{border-color:color-mix(in srgb,var(--amber) 40%,transparent)} .rule.warm svg{stroke:var(--amber)}
.igrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(34px,1fr));gap:4px}
.igrid button{appearance:none;height:30px;border-radius:7px;border:1px solid var(--hair);background:var(--sunk);color:var(--ink3);font:inherit;font-size:13px;font-weight:600;cursor:pointer;font-variant-numeric:tabular-nums}
.igrid button.p0{background:var(--red-soft);color:var(--red);border-color:transparent}
.igrid button.p1,.igrid button.pq{background:color-mix(in srgb,var(--teal) 22%,var(--sunk));color:var(--ink);border-color:transparent}
.igrid button.p2{background:var(--teal);color:#061a17;border-color:transparent}
.igrid button.cur{box-shadow:0 0 0 2px var(--tint);color:var(--ink)}
.igrid button.dead{opacity:.35}
.sside textarea.obs{background:var(--field);border:1px solid transparent;border-radius:var(--r-sm);padding:10px 12px;min-height:110px;font:inherit;font-size:var(--t5);color:var(--ink);width:100%;resize:vertical;line-height:1.5;outline:none}
.sside textarea.obs:focus{border-color:var(--teal)}
@media (max-width:980px){.sgrid{grid-template-columns:1fr}.sside{display:none}}

/* ---------- Fetwell: the opening, the introduction, the launch ---------- */
.tstep{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}
.lmark{position:relative;width:min(22vh,168px);aspect-ratio:1;display:grid;place-items:center}
.lmark .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
.lmark .ring circle{fill:none;stroke:var(--tint);stroke-width:1.6;stroke-linecap:round;stroke-dasharray:340;stroke-dashoffset:340;animation:ldraw 1.4s .1s cubic-bezier(.6,0,.2,1) forwards}
.lmark .mk{width:46%;color:var(--ink);opacity:0;transform:scale(.86);animation:lmk .9s .9s var(--spring) forwards}
.lmark .mk svg{width:100%;height:auto;display:block}
@keyframes ldraw{to{stroke-dashoffset:0}}
@keyframes lmk{to{opacity:1;transform:none}}
.splash .swords{animation:sup .8s 1.2s both;gap:4px}
.sname{font-family:var(--font-d);font-weight:500;font-size:clamp(48px,9vh,88px);line-height:1;letter-spacing:-.015em;color:var(--ink)}
.sby{font-size:var(--t6);letter-spacing:.14em;text-transform:uppercase;color:var(--ink3);font-weight:600}
.splash .slead{animation-delay:1.5s} .splash .tnav{animation-delay:1.8s}
.twhy{display:flex;gap:12px;align-items:flex-start;margin-top:22px;padding:14px 16px;border-radius:var(--r-md);background:var(--surface);border:1px solid var(--hair);font-size:var(--t5);color:var(--ink2);line-height:1.5;max-width:52ch}
.twhy b{color:var(--ink);font-weight:600} .twhy svg{width:18px;height:18px;stroke:var(--teal);fill:none;stroke-width:1.75;flex:none;margin-top:2px}
.tmm.wide{width:min(480px,100%)}
.tarrow{display:flex;justify-content:center;color:var(--ink3)} .tarrow svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.75;animation:tnudge 1.4s infinite}
@keyframes tnudge{50%{transform:translateY(4px)}}
.tcase{background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--elev)}
.tcase>div:first-child{display:flex;justify-content:space-between;align-items:center;gap:10px}
.tcase .typed{font-size:var(--t3);display:inline-block;overflow:hidden;white-space:nowrap;border-right:2px solid var(--tint);width:0;animation:ttype 1.1s 1s steps(12) forwards,tcaret .1s 2.2s forwards}
@keyframes ttype{to{width:7.2em}} @keyframes tcaret{to{border-color:transparent}}
.tcase .thread{margin:4px 0}
.tcase svg.ok{width:13px;height:13px;stroke:var(--teal);fill:none;stroke-width:2.4;vertical-align:-2px;margin-right:6px}
.tnext{background:var(--raised);border:1px solid var(--line);border-radius:16px;padding:16px 18px;display:flex;flex-direction:column;gap:6px;box-shadow:var(--elev);border-left:4px solid var(--teal)}
.tnext .when{color:var(--teal);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.tnext b{font-family:var(--font-d);font-weight:500;font-size:var(--t2)} .tnext .ink2{font-size:var(--t6)}
.tthen{display:grid;grid-template-columns:9px minmax(0,1fr) auto;gap:12px;align-items:center;padding:10px 12px;border-radius:12px;background:var(--solid);border:1px solid var(--hair);font-size:var(--t6);opacity:0;animation:sup .5s var(--d) forwards}
.tthen i{width:9px;height:9px;border-radius:50%;background:var(--la)} .tthen b{display:block;font-size:var(--t5);font-weight:600} .tthen small{color:var(--ink3)}
.tthen .btn{pointer-events:none}
.tthen.gone{animation:sup .5s var(--d) forwards,tgone .5s 2.6s forwards}
@keyframes tgone{to{opacity:0;transform:translateX(18px);max-height:0;padding:0 12px;margin-top:-10px;border-width:0}}
.tpaper{background:#f7f5f0;color:#1c1c1c;border-radius:8px;padding:18px 20px;font-family:var(--serif);font-size:14px;line-height:1.6;box-shadow:0 22px 50px -26px rgba(0,0,0,.8);position:relative}
.tpaper .eyebrow{color:#6b6b6b;font-family:var(--font);display:block;margin-bottom:6px}
.tpaper p{margin:0}
.tpaper .hl{background:linear-gradient(rgba(64,140,255,.3),rgba(64,140,255,.3)) no-repeat 0 0/0 100%;animation:thl 1s .6s forwards;border-radius:2px}
@keyframes thl{to{background-size:100% 100%}}
.tkeep{position:absolute;right:16px;top:-16px;display:inline-flex;gap:7px;align-items:center;background:var(--raised);color:var(--ink);border:1px solid var(--line);border-radius:999px;padding:6px 12px;font:600 12px var(--font);box-shadow:var(--elev);opacity:0;animation:sup .4s 1.7s forwards}
.tkeep svg{width:13px;height:13px;stroke:var(--teal);fill:none;stroke-width:2.4}
.tfact{background:var(--solid);border:1px solid var(--hair);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:6px;font-size:var(--t5);opacity:0;animation:sup .5s 2.4s forwards}
.tfact small{font-size:13px;color:var(--ink3)} .tfact small b{color:var(--teal)}
.troom{background:#0f141c;color:#f2f4f8;border-radius:18px;padding:22px;gap:16px;box-shadow:var(--elev)}
.troom .tq{font-family:var(--font-d);font-weight:500;font-size:22px;line-height:1.25;min-height:2.5em}
.tkeys{display:flex;gap:8px} .tkeys span{width:52px;height:48px;border-radius:12px;background:#222838;border:1px solid rgba(255,255,255,.1);display:grid;place-items:center;font-weight:700;font-size:18px;transition:all .15s}
.tkeys span.hit{background:#43cdb9;color:#061a17;box-shadow:0 0 0 4px #15322e}
.tscore{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap} .tscore b{font-family:var(--font-d);font-weight:500;font-size:32px;font-variant-numeric:tabular-nums} .tscore span{color:#9aa1ad;font-size:13px}
.trule{color:#f2b550!important;opacity:0;transition:opacity .3s} .trule.on{opacity:1}
.twrite{display:grid;grid-template-columns:1fr 1.15fr;gap:16px;align-items:center;width:min(520px,100%)}
.tchips{display:flex;flex-direction:column;gap:6px}
.tchips span{background:var(--solid);border:1px solid var(--hair);border-radius:999px;padding:6px 12px;font-size:13px;color:var(--ink2);width:max-content;max-width:100%;opacity:0;animation:tslide .45s var(--d) forwards}
.tchips .pseud{background:var(--teal-soft);color:var(--teal);border-color:transparent;font-weight:600}
@keyframes tslide{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.tdoc{background:#f7f5f0;color:#1c1c1c;border-radius:6px;padding:12px 14px 16px;box-shadow:0 20px 44px -22px rgba(0,0,0,.8);font-size:13px;opacity:0;animation:sup .6s 1.9s forwards}
.tdoc .hdr{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid #d9d4c8;padding-bottom:6px;margin-bottom:6px;font:600 9px var(--font);letter-spacing:.06em;text-transform:uppercase;color:#555}
.tdoc .hdr b{background:#2c5aa0;color:#fff;padding:2px 6px;border-radius:3px;letter-spacing:0;text-transform:none}
.tdoc small{display:block;color:#666;font:10px var(--font);margin-bottom:4px}
.tdoc i{display:block;height:6px;border-radius:3px;background:#dcd7cc;margin:6px 0;transform-origin:left;transform:scaleX(0);animation:tgrow .45s var(--d) forwards}
.tdoc em{display:block;font:700 9px var(--font);color:#2c5aa0;font-style:normal;margin:8px 0 2px;letter-spacing:.06em;text-transform:uppercase}
@keyframes tgrow{to{transform:scaleX(1)}}
.tchecks{gap:10px}
.tck{display:flex;gap:10px;align-items:center;font-size:var(--t5);color:var(--ink2)}
.tck i{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line);display:grid;place-items:center;flex:none;animation:tok .3s var(--d) forwards}
.tck i svg{width:12px;height:12px;stroke:#061a10;fill:none;stroke-width:3;opacity:0;animation:sfade .2s var(--d) forwards}
@keyframes tok{to{background:var(--green);border-color:transparent}}
.tdone{display:flex;gap:10px;align-items:center;margin-top:8px;padding:12px 14px;border-radius:12px;background:var(--green-soft);color:var(--green);font-weight:600;opacity:0;animation:sup .5s var(--d) forwards}
.tdone svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.4}
@media (prefers-reduced-motion:reduce){.tcase .typed{width:auto;animation:none;border:0}.tthen,.tfact,.tkeep,.tdoc,.tchips span,.tdone{opacity:1;animation:none}.tdoc i{transform:none;animation:none}.tck i{background:var(--green);border-color:transparent;animation:none}.tck i svg{opacity:1;animation:none}.lmark .ring circle{stroke-dashoffset:0;animation:none}.lmark .mk{opacity:1;transform:none;animation:none}.splash .swords,.splash .slead,.splash .tnav{animation:none}}

/* the launch: the mark draws itself while the folders are read */
.launch{position:fixed;inset:0;z-index:200;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;transition:opacity .45s ease,visibility .45s}
.launch.off{opacity:0;visibility:hidden}
.launch .lmark{width:112px}
.launch .lname{font-family:var(--font-d);font-weight:500;font-size:40px;letter-spacing:-.01em;opacity:0;animation:sup .7s .8s both}
.launch .lstat{font-size:var(--t6);color:var(--ink3);display:flex;gap:8px;align-items:center;opacity:0;animation:sup .6s 1.2s both}
.launch .lstat i{width:6px;height:6px;border-radius:50%;background:var(--tint);animation:spulse 1.2s infinite}

/* ---------- the Fetwell mark: one line writes, then the others form ---------- */
.nmark{width:100%;height:100%;display:block;overflow:visible}
.brand .nmk{width:24px;height:24px;display:inline-block;color:var(--ink)}
.lmark.draw{position:relative;width:min(24vh,176px);aspect-ratio:1}
.launch .lmark.draw{width:128px}
.lmark.draw .nmark path{stroke-dasharray:1 1;stroke-dashoffset:1}
.lmark.draw .nmark .ln:nth-of-type(2){animation:ndraw 1.15s cubic-bezier(.45,0,.3,1) .15s forwards}
.lmark.draw .nmark .ring{animation:ndraw .9s cubic-bezier(.3,0,.3,1) 1.2s forwards}
.lmark.draw .nmark .ln:not(:nth-of-type(2)){animation:ndraw 1s cubic-bezier(.4,0,.2,1) forwards;animation-delay:calc(1.45s + var(--i) * .08s)}
@keyframes ndraw{to{stroke-dashoffset:0}}
.sby{display:inline-flex;align-items:center;gap:8px}
.sby .mk{width:14px;height:14px;display:inline-block;color:var(--ink3)} .sby .mk svg{width:100%;height:100%}
.splash .swords{animation-delay:2s} .splash .slead{animation-delay:2.3s} .splash .tnav{animation-delay:2.6s}
.launch .lname{animation-delay:1.9s} .launch .lstat{animation-delay:2.2s}
@media (prefers-reduced-motion:reduce){.lmark.draw .nmark path{stroke-dashoffset:0;animation:none!important}}
.lmark.draw .nmark .ring{position:static;inset:auto;width:auto;height:auto;transform:none}

/* ---------- 0.4.0-beta.4: accessibility and layout pass ---------- */
/* the selection bar: 36 px targets, labelled actions, a visible focus and pressed state */
.floatbar{gap:2px;padding:4px;border-radius:14px}
.floatbar button{width:36px;height:36px;border-radius:10px}
.floatbar button[data-wide]{width:auto;padding:0 12px 0 10px;gap:7px;display:inline-flex;align-items:center;font:600 var(--t6)/1 var(--font)}
.floatbar button .lb{white-space:nowrap}
.floatbar button[aria-pressed="true"]{background:var(--blue-soft);color:var(--tint)}
.floatbar button:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.floatbar .g{font-size:17px;line-height:1}
.floatbar .gh{font-family:var(--font);font-weight:700;font-size:15px}
.floatbar .hlg{background:#ffe86b;color:#1c1c1c;border-radius:4px;padding:0 5px;font-family:var(--serif)}
.floatbar .sep{width:1px;height:22px;background:var(--line);margin:0 3px}
/* information notes: a plain icon where the orb used to be */
.nudge .nicon{width:18px;height:18px;flex:none;color:var(--tint);margin-top:1px}
.nudge .nicon svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.9}
.nmk-lg{width:52px;height:52px;flex:none;color:var(--ink)}
/* Claude as a named button, not a second panel icon */
.claudebtn{appearance:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px 0 10px;border-radius:var(--r-pill);border:1px solid var(--line);background:transparent;color:var(--ink2);font:600 var(--t6) var(--font);cursor:pointer;-webkit-app-region:no-drag}
.claudebtn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linejoin:round}
.claudebtn:hover{background:var(--sunk);color:var(--ink)}
.claudebtn[aria-pressed="true"]{background:color-mix(in srgb,#d97757 18%,transparent);border-color:color-mix(in srgb,#d97757 45%,transparent);color:var(--ink)}
.claudebtn[aria-pressed="true"] svg{stroke:#d97757}
/* folder panel: one control folds everything */
.railtop{display:flex;align-items:center;justify-content:space-between;padding:0 4px 2px 8px}
.linkbtn.sm{font-size:var(--t6);padding:4px 8px}
/* notes sections fold */
.psh{appearance:none;border:0;background:transparent;width:100%;display:flex;align-items:center;gap:8px;padding:8px 4px 6px;font:600 var(--t6) var(--font);letter-spacing:.06em;text-transform:uppercase;color:var(--ink3);cursor:pointer;border-radius:8px;text-align:left}
.psh:hover{color:var(--ink)} .psh .sp{flex:1} .psh .tiny{text-transform:none;letter-spacing:0;font-weight:500}
.psh svg{width:10px;height:10px;stroke:var(--ink3);fill:none;stroke-width:2.2;transition:transform .2s;flex:none}
.psh[aria-expanded="false"] svg{transform:rotate(-90deg)}
.cmtbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.cmtbar .btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
/* stages you can drag */
.threadbar .step[draggable="true"]{cursor:grab}
.threadbar .step.dragging{opacity:.4}
.threadbar .step.dropl{box-shadow:inset 3px 0 0 var(--tint)}
.threadbar .step.dropr{box-shadow:inset -3px 0 0 var(--tint)}
.threadbar .step:focus-visible{outline:2px solid var(--tint);outline-offset:1px}
/* the report sits in the middle of the column, between the two panels, whatever the window width */
#sdoc{padding:24px 16px 96px;align-items:stretch;scrollbar-gutter:stable}
.sdhost.on{display:flex;justify-content:safe center;min-width:min-content}
.sdhost .superdoc{width:max-content;flex:none;margin-inline:auto}
.editorwrap .superdoc__document>*{max-width:none}
/* steadier scrolling in long reports: no extra text shaping, and each page paints on its own */
#sdoc,#sdoc *{text-rendering:auto}
#sdoc{overflow-anchor:none;will-change:scroll-position;overscroll-behavior:contain}
#sdoc .superdoc-page{contain:layout paint}
#sdoc{scrollbar-gutter:stable both-edges}
.editorwrap .presentation-editor__viewport{margin-inline:auto}
/* SuperDoc's own floating comment and AI tools beside the page: Fetwell has its own selection bar */
#sdoc .tools,#sdoc .tools-item,#sdoc .superdoc__tools-icon,#sdoc .ai-tool{display:none!important}
.panel .formlink .sh svg,.panel .formlink svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.75}
/* dark page: the rendered pages (not only the hidden editing layer) get light text, so the report reads at full contrast */
.editorwrap.darkpage .superdoc-page *:not(img):not(svg):not(path){color:var(--ink)!important}
.editorwrap.darkpage .superdoc-page [style*="background-color"]:not([style*="transparent"]){color:#111!important}
.editorwrap.darkpage .superdoc-page td,.editorwrap.darkpage .superdoc-page th,.editorwrap.darkpage .superdoc-page [style*="border"]{border-color:rgba(255,255,255,.28)!important}

/* ===== 0.4.0-beta.5 ===== */
.todaycard{border:1px solid var(--line);border-radius:12px;background:var(--raised);overflow:hidden;margin-bottom:18px}
.todaycard .trow{display:grid;grid-template-columns:64px 1fr;gap:10px;padding:9px 12px;border-top:1px solid var(--line);position:relative}
.todaycard .trow:first-child{border-top:0}
.todaycard .trow::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--la)}
.todaycard .trow .tt{font-variant-numeric:tabular-nums;font-size:var(--t6);color:var(--ink2);display:flex;flex-direction:column}
.todaycard .trow .tt small{color:var(--ink3)}
.todaycard .trow .tb{min-width:0}.todaycard .trow .tb b{font-weight:600;display:block}.todaycard .trow .tb small{color:var(--ink3);display:block}
.todaycard .trow.hol{background:color-mix(in srgb,var(--la) 10%,transparent)}
.todaycard .trow.past{opacity:.55}
.todaycard .trow[data-tcase]{cursor:pointer}.todaycard .trow[data-tcase]:hover{background:var(--soft)}
.todaycard .trow[data-tcase]:focus-visible{outline:2px solid var(--teal);outline-offset:-2px}
.todaycard .tnow{display:grid;grid-template-columns:64px 1fr;gap:10px;align-items:center;padding:4px 12px;border-top:1px solid var(--line)}
.todaycard .tnow span{font-size:13px;font-weight:600;color:var(--red);font-variant-numeric:tabular-nums}
.todaycard .tnow i{flex:1;height:2px;background:var(--red);border-radius:2px}
.linkbtn{background:none;border:0;padding:0;color:var(--teal);text-decoration:underline;cursor:pointer;font:inherit}
.greet.sm h1{font-size:1.6rem;margin:0}.greet.sm p{margin:2px 0 0;color:var(--ink2)}
.overview{padding:0 4px}
/* classic menu bar and toolbar */
.ribbon.classic{display:flex;flex-direction:column;gap:0;padding:0;border-bottom:1px solid var(--line);background:var(--surface)}
.ribbon.classic .mbar{display:flex;align-items:center;gap:2px;padding:4px 10px;min-height:36px}
.ribbon.classic .mbtn{background:none;border:0;color:var(--ink2);font:inherit;font-size:var(--t6);padding:5px 10px;border-radius:7px;cursor:pointer}
.ribbon.classic .mbtn:hover,.ribbon.classic .mbtn.open,.ribbon.classic .mbtn[aria-expanded="true"]{background:var(--soft);color:var(--ink)}
.ribbon.classic .mbtn:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.ribbon.classic .mbar .sp{flex:1}
.ribbon.classic .mbar .rt{display:inline-flex;align-items:center;gap:6px}
.ribbon.classic .mbar .rt svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.6}
.ribbon.classic .focusbtn[aria-pressed="true"]{background:color-mix(in srgb,var(--teal) 18%,transparent);color:var(--ink)}
.ribbon.classic .tbchev{transition:transform .2s}
.ribbon.classic.closed .tbchev{transform:rotate(180deg)}
.ribbon.classic .rbody{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;padding:6px 10px 8px;border-top:1px solid var(--hair);overflow:visible;height:auto}
.ribbon.classic.closed .rbody{display:none}
.ribbon.classic .tg{display:inline-flex;align-items:center;gap:2px}
.ribbon.classic .tg+.tg{padding-left:14px;border-left:1px solid var(--hair);margin-left:-14px}
.ribbon.classic .tg .msel+.msel{margin-left:4px}
.menu.docmenu{min-width:230px}
.focusexit{position:fixed;bottom:18px;right:18px;z-index:60;display:none;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--ink2);font:inherit;font-size:var(--t6);cursor:pointer;box-shadow:var(--shadow)}
.focusexit kbd{font:inherit;font-size:13px;color:var(--ink3);border:1px solid var(--line);border-radius:4px;padding:0 4px}
.focusing .focusexit{display:inline-flex}
.ribbon.classic,.ribbon.classic.closed{max-height:none;opacity:1;overflow:visible;flex-wrap:nowrap;background:var(--paper);border-bottom:1px solid var(--hair)}
.ribbon.classic.closed{padding-block:0;border-bottom-width:1px}
.ribbon.classic .rbody{flex:none;width:100%;box-sizing:border-box}
/* reorderable rail sections */
.rail .rh{position:relative}
.rail .grip{appearance:none;border:0;background:none;width:14px;height:20px;padding:0;margin:0 0 0 -4px;display:grid;place-items:center;color:var(--ink3);cursor:grab;opacity:0;transition:opacity .15s;flex:none;touch-action:none}
.rail .grip svg{width:8px;height:12px;fill:currentColor}
.rail .rsec:hover .grip,.rail .grip:focus-visible,.rail.reordering .grip{opacity:1}
.rail .grip:focus-visible{outline:2px solid var(--teal);border-radius:4px}
.rail .rsec.dragging{background:var(--raised);box-shadow:var(--shadow);border-radius:10px;outline:1.5px solid color-mix(in srgb,var(--teal) 50%,transparent)}
.rail.reordering{cursor:grabbing;user-select:none}
/* contacts strip under the case name */
.pstrip{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.pchip{appearance:none;display:inline-flex;align-items:center;gap:6px;max-width:300px;border:1px solid var(--line);background:var(--raised);color:var(--ink);border-radius:999px;padding:3px 10px 3px 4px;font:inherit;font-size:var(--t6);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pchip .pr{background:var(--sunk);color:var(--ink2);border-radius:999px;padding:1px 8px;font-size:13px;font-weight:600}
.pchip small{color:var(--ink3)}
.pchip:hover{border-color:var(--ink3)}
.pchip:focus-visible,.pfind:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.pchip.none{color:var(--ink3);padding:3px 10px;border-style:dashed}
.pchip.none i{font-style:normal;opacity:.8}
.pchip.mine .pr{background:color-mix(in srgb,var(--teal) 18%,transparent);color:var(--ink)}
.pfind{appearance:none;border:0;background:none;color:var(--teal);font:inherit;font-size:var(--t6);cursor:pointer;padding:3px 4px;text-decoration:underline;text-underline-offset:2px}
.pfind:disabled{color:var(--ink3);text-decoration:none;cursor:default}
.autof{border-bottom:1px dashed var(--ink3)}
.pedit{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.4fr;gap:6px;margin:6px 0}
.pedit input{min-width:0}
/* the deadline warms as it nears: green, amber, red */
.duec{color:hsl(var(--dueh,130) 75% 29%)}
.duec b{color:inherit}
.isdark .duec{color:hsl(var(--dueh,130) 70% 62%)}
.duepill{display:inline-flex;align-items:baseline;gap:4px;padding:1px 8px;border-radius:999px;background:hsl(var(--dueh,130) 70% 45% / .16);color:hsl(var(--dueh,130) 65% 36%)}
.isdark .duepill{color:hsl(var(--dueh,130) 75% 66%)}
.ccase .due.duec b,.ocard2 .odue.duec b,.ocard2.tight .odue.duec b,.ocard2.late .odue.duec b,.kcard .days.duec b{color:hsl(var(--dueh,130) 75% 29%)}
.isdark .ccase .due.duec b,.isdark .ocard2 .odue.duec b,.isdark .kcard .days.duec b{color:hsl(var(--dueh,130) 72% 62%)}
.ccase .due.duec:not([style*="dueh"]) b,.ocard2 .odue.duec:not([style*="dueh"]) b,.kcard .days.duec:not([style*="dueh"]) b{color:var(--ink)}
.ccase .due.duec{color:var(--ink3)}
/* what their screen shows, beside your controls */
.smirror{border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-bottom:14px;background:var(--raised)}
.smirror .mhead{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:var(--t6);color:var(--ink2);border-bottom:1px solid var(--hair)}
.smirror .mhead b{margin-left:auto;color:var(--ink);font-weight:600;max-width:60%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.smirror .mdot{width:8px;height:8px;border-radius:50%;background:var(--ink3)}
.smirror .mdot.on{background:var(--teal);box-shadow:0 0 0 3px color-mix(in srgb,var(--teal) 25%,transparent)}
.smirror .mframe{aspect-ratio:16/10;background:#fff;color:#0E1116;display:grid;place-items:center;overflow:hidden;position:relative}
.smirror .mframe img{max-width:100%;max-height:100%;object-fit:contain}
.smirror .mblank{color:#8A919C;font-size:13px;display:flex;flex-direction:column;align-items:center;gap:8px}
.smirror .mq{padding:10px 14px;text-align:center;font-family:Cambria,Georgia,serif;font-size:13px;line-height:1.35}
.smirror .mq small{display:block;font-family:system-ui;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:#626A77;margin-bottom:6px}
.smirror .mq b{font-weight:400;font-size:14px}
.smirror .mq ul{list-style:none;padding:0;margin:8px 0 0;text-align:left}.smirror .mq li{border:1px solid #e6e8ec;border-radius:6px;padding:2px 6px;margin:3px 0}.smirror .mq li.sel{background:#E4EDF9;font-weight:700}
.smirror .mh{position:absolute;inset:0;padding:10px 14px;font-family:Cambria,Georgia,serif;font-size:7px;line-height:1.5;overflow:hidden}
.smirror .mh img{max-width:100%;height:auto}
.pagectl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 12px}
.pagectl .pdots{display:inline-flex;gap:5px}
.pagectl .pdots button{width:9px;height:9px;border-radius:50%;border:0;background:var(--line);padding:0;cursor:pointer}
.pagectl .pdots button.on{background:var(--teal)}
.sharehelp h4{margin:18px 0 8px}
.shcols{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:stretch}
.shcol{border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--raised)}
.shcol h4{margin:0 0 8px}
.shcol ul{margin:0;padding-left:18px;line-height:1.6;font-size:var(--t5)}
.shcol.theirs{border-color:color-mix(in srgb,var(--teal) 45%,transparent);background:color-mix(in srgb,var(--teal) 7%,var(--raised))}
.sharrow{align-self:center;font-size:22px;color:var(--ink3)}
.shsteps{padding-left:20px;line-height:1.6}.shsteps li{margin-bottom:6px}
.shplan div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--hair)}
.shplan b.sh{color:var(--teal);font-weight:600}.shplan b.vb{color:var(--ink3);font-weight:500}
@media (max-width:760px){.shcols{grid-template-columns:1fr}.sharrow{transform:rotate(90deg);justify-self:center}}

.rail .rh .ghb{flex:1;min-width:0}
.rail .rh .ghb .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rail .grip{position:absolute;left:-7px;top:50%;transform:translateY(-50%);margin:0}
.threadbar .who{max-width:44%}
.pstrip{flex-wrap:wrap}
.pchip{flex:none;max-width:220px}
.ribbon.classic{align-items:stretch}
.ribbon.classic .mbar{justify-content:flex-start}
.rail .sharebox .rh{flex-wrap:wrap;row-gap:2px}
.rail .sharebox .rh .ghb{flex:none}
.smirror .mh{font-size:13px;line-height:1.6;padding:14px 18px}
.smirror .mh h1{font-size:1.6em;font-weight:700;margin:0 0 .5em}.smirror .mh h2,.smirror .mh h3{font-size:1.25em;margin:.4em 0}.smirror .mh p{margin:0 0 .8em}
.ribbon.classic{container-type:inline-size}
@container (max-width:560px){.ribbon.classic .tbtxt{display:none}.ribbon.classic .mbtn{padding:5px 7px}}
/* tasks for the session */
.tasks2{display:grid;grid-template-columns:1fr 1fr;gap:18px;min-height:340px}
.tkcol{display:flex;flex-direction:column;gap:8px;min-width:0}
.tkcol.lib{border-left:1px solid var(--hair);padding-left:18px}
.tkhead{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:34px}
.tkhead h4{margin:0;font-size:var(--t5)}
.tkhead input{max-width:200px;min-width:0}
.tkplan,.tklib{display:flex;flex-direction:column;gap:6px;overflow:auto;max-height:52vh;padding:2px}
.tkh{font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);margin:8px 2px 2px}
.tkrow{display:grid;grid-template-columns:30px 1fr auto;gap:10px;align-items:center;padding:8px 10px;border-radius:12px;background:var(--raised);border:1px solid var(--hair)}
.tkrow.in{border-color:color-mix(in srgb,var(--teal) 30%,var(--hair))}
.tkrow.dragging{opacity:.5}
.tkrow .tkname{min-width:0}.tkrow .tkname b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tkrow .tkname small{color:var(--ink3);font-size:var(--t6)}
.tkgrip{width:28px;height:28px;border-radius:8px;border:0;background:var(--sunk);color:var(--ink2);font:inherit;font-weight:600;cursor:grab}
.tkgrip:focus-visible,.tkx:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.tkkind{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:var(--sunk);color:var(--ink3)}
.tkkind.sh{color:var(--teal);background:color-mix(in srgb,var(--teal) 14%,transparent)}
.tkkind svg,.tkx svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
.tkx{width:28px;height:28px;border-radius:8px;border:0;background:none;color:var(--ink3);display:grid;place-items:center;cursor:pointer}
.tkx:hover{background:var(--sunk);color:var(--ink)}
.tkempty{color:var(--ink3);font-size:var(--t6);padding:14px 6px}
.tknew{display:flex;align-items:center;gap:10px;margin-top:6px;flex-wrap:wrap}
.tknew .btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2;margin-right:4px}
.newtask{display:flex;flex-direction:column;gap:12px}
.ntname{font-size:var(--t4);font-weight:600;padding:10px 12px}
.ntopts{display:flex;flex-wrap:wrap;gap:10px}
.ntpaste{min-height:260px;max-height:50vh;overflow:auto;border:1px solid var(--line);border-radius:12px;padding:14px 16px;background:var(--field);color:var(--ink);line-height:1.55;outline:none}
.ntpaste:focus{border-color:var(--teal)}
.ntpaste:empty::before{content:attr(data-ph);color:var(--ink3)}
.ntpaste h1,.ntpaste h2,.ntpaste h3{font-size:1.1em;margin:.6em 0 .3em}.ntpaste p{margin:0 0 .5em}.ntpaste ul,.ntpaste ol{margin:0 0 .6em;padding-left:22px}
.ntfoot{display:flex;align-items:center;gap:10px;min-height:24px}
@media (max-width:820px){.tasks2{grid-template-columns:1fr}.tkcol.lib{border-left:0;padding-left:0}}
.sbar #sAdd svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2;margin-right:4px}
.ntname,.tkhead input{background:var(--field);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;outline:none}
.ntname{font-size:var(--t4);font-weight:600;padding:10px 12px}
.tkhead input{padding:6px 10px;font-size:var(--t6)}
.ntname:focus,.tkhead input:focus{border-color:var(--teal)}
/* arranged dashboards */
.dash3{display:grid;grid-template-columns:var(--cols);gap:24px;align-items:start;padding-top:6px}
.dcol{display:flex;flex-direction:column;gap:18px;min-width:0;min-height:60px}
.tile{min-width:0}
.tile .tileh{display:flex;align-items:baseline;gap:12px;margin:2px 0 10px}
.tile .tileh :is(h2,h3){font-family:var(--font-d);font-weight:500;font-size:var(--t2);margin:0;white-space:nowrap}
.tile .tileh .tsub{font-size:var(--t6);color:var(--ink3);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .tileh .sp{flex:1}
.tile .tileh .tacts{display:flex;align-items:center;gap:8px}
.tile .tilenone{padding:8px 2px}
.tile .olist-h h3{display:none}
.tile .card.plan,.tile .calcard{margin:0}
.dash3.editing .tile{border:1.5px dashed var(--line);border-radius:14px;padding:10px 12px 12px;background:color-mix(in srgb,var(--raised) 60%,transparent)}
.dash3.editing .tile .tileh{cursor:grab;align-items:center;margin-bottom:8px;user-select:none}
.dash3.editing .tile .tileb{pointer-events:none;max-height:220px;overflow:hidden;mask-image:linear-gradient(#000 70%,transparent)}
.dash3.editing .tile.dragging{outline:2px solid var(--teal);box-shadow:var(--shadow);opacity:.9}
.dash3.dragging{cursor:grabbing}
.tmove,.tx{width:28px;height:28px;border-radius:8px;border:0;background:var(--sunk);color:var(--ink2);display:grid;place-items:center;cursor:grab;flex:none}
.tx{background:none;cursor:pointer}.tx:hover{background:var(--sunk);color:var(--ink)}
.tmove svg,.tx svg,#dArrange svg,.dashbar .btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
#dArrange{display:inline-flex;gap:6px;align-items:center}
.tmove:focus-visible,.tx:focus-visible{outline:2px solid var(--teal);outline-offset:1px}
.dcol-drop{border:1.5px dashed var(--line);border-radius:12px;padding:18px;text-align:center;color:var(--ink3);font-size:var(--t6)}
.dashbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:10px 14px;margin:4px 0 14px;border-radius:12px;background:color-mix(in srgb,var(--teal) 10%,var(--raised));border:1px solid color-mix(in srgb,var(--teal) 35%,transparent);font-size:var(--t6)}
.dashbar .sp{flex:1}.dashbar .btn{display:inline-flex;gap:6px;align-items:center}
/* the week ahead, folded */
.plan2{display:flex;flex-direction:column;gap:10px}
.plan2 .dayblock{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--raised)}
.wfold{border:1px solid var(--line);border-radius:12px;background:var(--raised);overflow:hidden}
.wfold summary{list-style:none;display:flex;align-items:center;gap:10px;padding:10px 12px;cursor:pointer}
.wfold summary::-webkit-details-marker{display:none}
.wfold summary span{color:var(--ink3);font-size:var(--t6)}
.wfold summary .cnt{margin-left:auto}
.wfold summary svg{width:14px;height:14px;stroke:var(--ink3);fill:none;stroke-width:2;transition:transform .2s}
.wfold[open] summary svg{transform:rotate(180deg)}
.wfold>:not(summary){margin:0 12px 10px}
.wfold .dayblock{border:0;padding:6px 0;border-top:1px solid var(--hair);border-radius:0;background:none}
.wfold summary .hol{font-size:13px}
@media (max-width:1100px){.dash3{grid-template-columns:1fr 1fr}.dash3 .dcol[data-dcol="2"]{grid-column:1 / -1}}
@media (max-width:760px){.dash3{grid-template-columns:1fr}}
.wfold summary{flex-wrap:wrap;row-gap:2px}
.wfold summary b{white-space:nowrap}
.wfold summary .cnt{white-space:nowrap}
.dash3 .ocard2 .cticks{gap:4px}
.dash3 .ocard2 .tick{font-size:13px;padding:1px 8px}
.tile .olist-h{margin:-4px 0 6px}
/* search results: one icon and colour per kind */
.palette li.palh{display:block;padding:10px 12px 4px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3);cursor:default;background:none!important}
.palette li.palnone{display:block;color:var(--ink3);cursor:default}
.palette li .pi svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.8}
.palette li .pi.k-case{background:color-mix(in srgb,var(--la,var(--teal)) 22%,transparent);color:var(--la,var(--teal))}
.palette li .pi.k-report{background:color-mix(in srgb,var(--blue) 18%,transparent);color:var(--blue)}
.palette li .pi.k-file{background:color-mix(in srgb,var(--blue) 12%,transparent);color:var(--blue)}
.palette li .pi.k-pdf{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.palette li .pi.k-folder{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}
.palette li .pi.k-task{background:color-mix(in srgb,var(--teal) 16%,transparent);color:var(--teal)}
.palette li .pi.k-cmd{background:color-mix(in srgb,var(--violet) 16%,transparent);color:var(--violet)}
.palette li .pi.k-nav{background:color-mix(in srgb,var(--green) 16%,transparent);color:var(--green)}
.palette li .pi.k-set{background:var(--field);color:var(--ink2)}
.palette li.psub{padding-left:34px}
.palette li.psub .pi{width:26px;height:26px}
.palette .pk em{font-style:normal;font-size:13px;color:var(--ink3)}
/* new case */
.ncarea{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:12px}
.ncarea .lbl{font-weight:600;font-size:var(--t6);color:var(--ink2);min-width:42px}
.ncarea .chips{display:flex;flex-wrap:wrap;gap:6px}
.achip{appearance:none;display:inline-flex;align-items:center;gap:8px;padding:6px 14px;border-radius:999px;border:1px solid var(--line);background:var(--raised);color:var(--ink);font:inherit;font-size:var(--t5);cursor:pointer}
.achip i{width:9px;height:9px;border-radius:50%;background:var(--la)}
.achip[aria-pressed="true"]{border-color:var(--la);background:color-mix(in srgb,var(--la) 20%,var(--raised));font-weight:600}
.achip:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
.ncarea #ncTpl{flex-basis:100%;padding-left:52px}
.ncpaste{border:1px dashed var(--line);border-radius:12px;padding:8px 12px;margin-bottom:12px}
.ncpaste summary{cursor:pointer;display:flex;align-items:center;gap:8px;font-size:var(--t6);color:var(--teal);list-style:none}
.ncpaste summary::-webkit-details-marker{display:none}
.ncpaste summary svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8}
.ncpaste textarea{width:100%;margin-top:8px;box-sizing:border-box}
input.autof{border-color:color-mix(in srgb,var(--teal) 55%,transparent)!important}
.ncwhat{margin:4px 0 0}
.rail .rsec>.rh{cursor:grab}
.rail.reordering .rsec>.rh{cursor:grabbing}
.ncpaste textarea{background:var(--field);border:1px solid var(--line);border-radius:10px;color:var(--ink);font:inherit;padding:8px 10px;outline:none;resize:vertical}
.ncpaste textarea:focus{border-color:var(--teal)}
.sharehelp2{display:flex;flex-direction:column;gap:16px}
.shpair{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}
.shbox{border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;flex-direction:column;gap:4px;background:var(--raised)}
.shbox b{font-size:var(--t4)}.shbox span{color:var(--ink2);font-size:var(--t6)}
.shbox.theirs{border-color:color-mix(in srgb,var(--teal) 50%,transparent);background:color-mix(in srgb,var(--teal) 8%,var(--raised))}
.sharehelp2 .shsteps{margin:0;padding-left:20px;line-height:1.7}
.sharehelp2 kbd{border:1px solid var(--line);border-radius:5px;padding:0 5px;font:inherit;font-size:13px}
/* privacy check */
.privchk{display:flex;flex-direction:column;gap:12px}
.pcstat{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--sunk);font-size:var(--t6);color:var(--ink2)}
.pcstat.done{background:color-mix(in srgb,var(--green) 12%,var(--raised));color:var(--ink)}
.pcstat svg{width:16px;height:16px;stroke:var(--green);fill:none;stroke-width:2;flex:none}
.pcstat .spin{width:14px;height:14px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--teal);animation:spin 0.9s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.pcgrid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:16px;min-height:340px}
.pccol{display:flex;flex-direction:column;gap:8px;min-width:0}
.pccol h4{margin:0;font-size:var(--t5)}
.pclist{display:flex;flex-direction:column;gap:4px;overflow:auto;max-height:46vh}
.pcrow{display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;padding:6px 8px;border-radius:9px;background:var(--raised);border:1px solid var(--hair)}
.pcrow.let{grid-template-columns:1fr auto;opacity:.75}
.pcl{font-family:var(--mono);font-size:13px;padding:2px 6px;border-radius:6px;background:color-mix(in srgb,var(--teal) 18%,transparent);color:var(--ink);white-space:nowrap}
.pcv{min-width:0;overflow:hidden;text-overflow:ellipsis}.pcv small{display:block;color:var(--ink3);font-size:13px}
.pcadd{display:flex;gap:6px}.pcadd input{flex:1;min-width:0;background:var(--field);border:1px solid var(--line);border-radius:9px;color:var(--ink);font:inherit;padding:6px 10px}
.pcout{overflow:auto;max-height:52vh;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--field);font-size:var(--t6);line-height:1.6;white-space:normal}
.pcout mark{background:color-mix(in srgb,var(--teal) 24%,transparent);color:inherit;border-radius:4px;padding:0 2px;font-family:var(--mono);font-size:.92em}
.pbar{width:180px;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}.pbar i{display:block;height:100%;width:0;background:var(--teal);transition:width .3s}
@media (max-width:820px){.pcgrid{grid-template-columns:1fr}}
.perfl{font-family:var(--mono);font-size:13px;line-height:1.7;color:var(--ink2)}
.floatbar{flex-wrap:wrap;max-width:min(860px,calc(100vw - 16px))}
.floatbar button{width:32px;height:32px}
.floatbar .fsel{font-weight:500;max-width:110px;overflow:hidden;text-overflow:ellipsis;display:inline-block}
.floatbar .fsel::after{content:"▾";font-size:13px;margin-left:5px;opacity:.6}
.floatbar .gcol{text-decoration:underline 3px var(--red);text-underline-offset:3px}
.ntpic{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.ntpic .btn svg,.tkadded svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.8;margin-right:4px}
.tkadded{color:var(--teal)}

/* Case Management edition: the writing, session and AI parts step out of the way */
html.ed-cm #claudeTog,html.ed-cm #cpane,html.ed-cm #orbBtn,html.ed-cm [data-sharefile],html.ed-cm #toolsBtn,html.ed-cm #startSession{display:none!important}
.cmword{max-width:860px;margin:0 auto;padding:18px 20px 60px}
.cmbar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;position:sticky;top:0;padding:10px 0;background:var(--bg);z-index:2}
.cmbar .sp{flex:1}
.cmpage{background:#fff;color:#1b1b1b;padding:56px 64px;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,.18);font:15px/1.6 "Segoe UI",system-ui,sans-serif}
.cmpage img{max-width:100%}.cmpage table{border-collapse:collapse}.cmpage td,.cmpage th{border:1px solid #ccc;padding:4px 8px}
@media (max-width:700px){.cmpage{padding:28px 20px}}
.cmpage h1,.cmpage h2,.cmpage h3,.cmpage h4{font-family:inherit;line-height:1.3;margin:1.1em 0 .4em}
.cmpage h1{font-size:22px}.cmpage h2{font-size:18px}.cmpage h3{font-size:16px}.cmpage p{margin:0 0 .7em}

/* ---------- Cases: one table for every case ---------- */
.casesboard .cases{display:flex;flex-direction:column;gap:14px;min-height:0}
.casebar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.casebar .sp{flex:1}
.csearch{display:flex;align-items:center;gap:8px;background:var(--field);border:1px solid var(--line);border-radius:var(--r-pill,999px);padding:0 14px;min-width:min(340px,100%);flex:0 1 360px;transition:border-color .15s,box-shadow .15s}
.csearch:focus-within{border-color:var(--tint);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 22%,transparent)}
.csearch svg{width:15px;height:15px;stroke:var(--ink3);fill:none;stroke-width:2;flex:none}
.csearch input{border:0;background:transparent;padding:9px 0;flex:1;min-width:0;color:var(--ink);font:inherit;outline:none}
.casebar select{background:var(--field);border:1px solid var(--line);border-radius:10px;padding:7px 10px;color:var(--ink);font:inherit;font-size:var(--t5)}
.ctable-wrap{border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:auto;box-shadow:var(--shadow)}
.ctable{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--t5)}
.ctable thead th{position:sticky;top:0;z-index:1;background:color-mix(in srgb,var(--surface) 92%,transparent);backdrop-filter:blur(8px);text-align:left;font-weight:500;border-bottom:1px solid var(--line);padding:0}
.ctable thead button{all:unset;display:flex;gap:4px;align-items:center;width:100%;box-sizing:border-box;padding:11px 14px;color:var(--ink3);font-size:13px;letter-spacing:.06em;text-transform:uppercase;cursor:pointer}
.ctable thead button:hover,.ctable thead [aria-sort="ascending"] button,.ctable thead [aria-sort="descending"] button{color:var(--ink)}
.ctable thead button:focus-visible{outline:2px solid var(--tint);outline-offset:-2px;border-radius:6px}
.sarr{color:var(--tint)}
.ctable td{padding:12px 14px;border-bottom:1px solid var(--hair,var(--line));vertical-align:top;color:var(--ink)}
.ctable td small{display:block;color:var(--ink3);font-size:13px;margin-top:2px}
.ctable tbody tr{cursor:pointer;transition:background .12s}
.ctable tbody tr:hover{background:var(--soft)}
.ctable tbody tr:focus-visible{outline:none;background:var(--sel);box-shadow:inset 3px 0 0 var(--tint)}
.ctable tbody tr:last-child td{border-bottom:0}
.cname{font-weight:600}
.adot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:8px;vertical-align:1px;flex:none}
.stg{display:inline-block;padding:3px 10px;border-radius:999px;font-size:13px;font-weight:500;background:var(--soft);color:var(--ink2);white-space:nowrap}
.stg.s-papers{background:var(--amber-soft);color:var(--amber)}
.stg.s-unbooked{background:var(--orange-soft);color:var(--orange)}
.stg.s-booked{background:var(--blue-soft);color:var(--blue)}
.stg.s-audit{background:var(--violet-soft);color:var(--violet)}
.stg.s-invoice{background:var(--teal-soft);color:var(--teal)}
.stg.s-invoiced{background:var(--green-soft);color:var(--green)}
@media (max-width:900px){.ctable th:nth-child(3),.ctable td:nth-child(3),.ctable th:nth-child(7),.ctable td:nth-child(7){display:none}}

/* ---------- the case log ---------- */
.logadd{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--raised,var(--surface));margin-bottom:14px}
.logkinds{align-self:flex-start;flex-wrap:wrap}
.logrow{display:flex;gap:8px}
.logrow input{flex:1;min-width:0;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:7px 10px;color:var(--ink);font:inherit;font-size:var(--t5)}
.logrow input[type=datetime-local]{flex:0 0 auto;max-width:190px;color:var(--ink2)}
.logadd textarea{min-height:64px;resize:vertical;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);font:inherit;font-size:var(--t5);line-height:1.5}
.logadd input:focus,.logadd textarea:focus{outline:none;border-color:var(--tint);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 20%,transparent)}
.logacts{display:flex;align-items:center;gap:8px}.logacts .sp{flex:1}
.loglist{list-style:none;margin:0;padding:0 0 0 4px;position:relative}
.loglist:before{content:"";position:absolute;left:17px;top:6px;bottom:6px;width:1px;background:var(--line)}
.loglist li{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:6px 0 12px;position:relative;animation:logIn .28s var(--spring,ease) both}
.loglist li.lognone{display:block;padding-left:4px}
.loglist li.lognone:before{display:none}
.lk{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-size:13px;background:var(--surface);border:1px solid var(--line);position:relative;z-index:1;color:var(--ink2)}
.lk.k-call{color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
.lk.k-email{color:var(--blue);border-color:color-mix(in srgb,var(--blue) 40%,var(--line))}
.lk.k-meeting{color:var(--violet);border-color:color-mix(in srgb,var(--violet) 40%,var(--line))}
.lk.k-visit{color:var(--teal);border-color:color-mix(in srgb,var(--teal) 40%,var(--line))}
.loglist .lh{display:flex;align-items:baseline;gap:8px;font-size:var(--t5)}
.loglist .lh b{font-weight:600}
.loglist time{color:var(--ink3);font-size:13px;margin-left:auto;white-space:nowrap}
.loglist .lh .icobtn{opacity:0;transition:opacity .15s;width:22px;height:22px}
.loglist li:hover .icobtn,.loglist .icobtn:focus-visible{opacity:1}
.loglist p{margin:3px 0 0;color:var(--ink2);font-size:var(--t5);line-height:1.5;white-space:normal}
@keyframes logIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.loglist li{animation:none}}

/* ---------- Money and Not heard from ---------- */
.mbig{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}
.mbig div{background:var(--soft);border-radius:12px;padding:10px 12px}
.mbig b{display:block;font-family:var(--font-d);font-weight:500;font-size:var(--t2);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.mbig span{color:var(--ink3);font-size:13px}
.mbig div:first-child b{color:var(--teal)}
.mtable{width:100%;border-collapse:collapse;font-size:var(--t5);font-variant-numeric:tabular-nums}
.mtable th{font-weight:500;text-align:left;color:var(--ink3);font-size:13px;padding:6px 6px 6px 0}
.mtable tbody th{color:var(--ink);font-size:var(--t5);font-weight:500;white-space:nowrap}
.mtable td{padding:6px;text-align:left}
.mtable td small{color:var(--ink3);margin-left:6px}
.mtable tbody tr+tr th,.mtable tbody tr+tr td{border-top:1px solid var(--hair,var(--line))}
.quiet{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.linkrow{all:unset;box-sizing:border-box;display:flex;gap:8px;align-items:baseline;width:100%;padding:8px 10px;border-radius:10px;cursor:pointer;font-size:var(--t5)}
.linkrow:hover{background:var(--soft)}
.linkrow:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.linkrow .sp{flex:1}.linkrow .tiny{color:var(--orange)}

/* undo in a toast */
.toast.hasbtn{pointer-events:auto}
.tundo{all:unset;cursor:pointer;margin-left:10px;font-weight:600;color:var(--tint);text-decoration:underline;text-underline-offset:3px}

/* tour cards for cases and the log */
.tcases .trow{display:grid;grid-template-columns:auto 1.2fr 1fr 1.2fr auto;gap:10px;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair,var(--line));font-size:var(--t5)}
.tcases .trow:last-child{border-bottom:0}
.tlog{display:grid;grid-template-columns:28px 1fr;gap:10px;padding:8px 0}
.tlog p{margin:2px 0 0;font-size:var(--t5)}
.nextcard .plan .nc{display:block;margin:2px 0}
.nextcard .plan .nc b{display:inline;font-weight:600}
.ncopy{all:unset;cursor:pointer;color:var(--tint);margin-left:4px;font-variant-numeric:tabular-nums}.ncopy:focus-visible{outline:2px solid var(--tint);border-radius:4px}
.ncopy:hover{text-decoration:underline}
.mtable th{white-space:nowrap}
.mtable td{white-space:nowrap}
.unres{all:unset;cursor:pointer;display:inline-flex;gap:6px;align-items:center;color:var(--amber);background:var(--amber-soft);padding:7px 12px;border-radius:999px;font-size:var(--t5)}
.unres svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.unres:focus-visible{outline:2px solid var(--amber);outline-offset:2px}

/* narrow windows: one part of the case at a time */
.npbar{display:none}
.ws.narrow{grid-template-columns:minmax(0,1fr)!important}
.ws.narrow>.rz{display:none!important}
.ws.narrow>.rail,.ws.narrow>.centre,.ws.narrow>.panel{display:none!important}
.ws.narrow[data-np="rail"]>.rail,.ws.narrow[data-np="panel"]>.panel{display:flex!important;flex-direction:column;width:auto;max-width:none;border:0}
.ws.narrow[data-np="doc"]>.centre{display:flex!important}
.caseroom:has(.ws.narrow) .npbar{display:flex;gap:4px;padding:8px max(16px,env(safe-area-inset-left,0px));border-bottom:1px solid var(--line);background:var(--bg)}
.npbar button{all:unset;cursor:pointer;flex:1;text-align:center;padding:8px 6px;border-radius:999px;font-size:var(--t5);color:var(--ink2)}
.npbar button[aria-pressed="true"]{background:var(--soft);color:var(--ink);font-weight:600}
.npbar button:focus-visible{outline:2px solid var(--tint);outline-offset:2px}

/* the case at a glance */
.ovw{max-width:1040px;margin:0 auto;padding:20px max(20px,env(safe-area-inset-left,0px)) 60px;display:flex;flex-direction:column;gap:16px}
.ovtop{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:16px;align-items:start}
@media (max-width:900px){.ovtop{grid-template-columns:minmax(0,1fr)}}
.ovcard{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:16px 18px;min-width:0}
.ovcard header{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.ovcard header .sp{flex:1}
.ovcard h3{margin:0;font-family:var(--font-d);font-weight:500;font-size:var(--t3)}
.ovgrid{display:grid;grid-template-columns:minmax(0,1fr);gap:0;margin:0}
.ovrow{display:grid;grid-template-columns:140px minmax(0,1fr);gap:12px;padding:8px 0;border-top:1px solid var(--hair)}
.ovrow:first-child{border-top:0}
.ovrow dt{color:var(--ink3);font-size:var(--t6)}
.ovrow dd{margin:0;font-size:var(--t5);overflow-wrap:anywhere}
.ovpeople{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ovpeople li{display:flex;flex-direction:column;gap:4px;padding-top:10px;border-top:1px solid var(--hair)}
.ovpeople li:first-child{border-top:0;padding-top:0}
.ovrole{font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.ovacts{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ovbtn{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:999px;background:var(--soft);border:1px solid var(--line);color:var(--tint);font-size:var(--t6);max-width:100%;overflow-wrap:anywhere}
.ovbtn svg,.ovcopy svg{width:14px;height:14px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8}
.ovbtn:hover{border-color:var(--tint)}
.ovcopy{all:unset;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;color:var(--ink3)}
.ovcopy:hover{background:var(--soft);color:var(--ink)}
.ovbtn:focus-visible,.ovcopy:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.ovfocus{margin:0 0 8px;line-height:1.6;color:var(--ink2);font-size:var(--t5)}
.ovchecks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:var(--t5)}
.ovchecks li.done{color:var(--ink3);text-decoration:line-through}
.ovnotes{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.ovnotes blockquote{margin:0;padding:10px 12px;border-radius:12px;background:var(--amber-soft);color:var(--ink)}
.ovnotes p{margin:0;line-height:1.55;font-size:var(--t5)}
.ovnotes cite{display:block;margin-top:4px;font-style:normal;font-size:13px;color:var(--ink3)}
.ovlog{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;padding:6px 0;font-size:var(--t5);line-height:1.5}
.editdet{margin-left:6px}
.editdet svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.8}
.cnote{display:flex;gap:6px;align-items:flex-start;margin-top:6px;font-size:13px;color:var(--ink2);background:var(--amber-soft);padding:4px 8px;border-radius:8px;max-width:420px}
.cnote svg{width:13px;height:13px;flex:none;margin-top:2px;fill:none;stroke:currentColor;stroke-width:1.8}
/* moving tiles between Today and Overview, and cases between stages */
.dsend{display:none;padding:7px 12px;border:1.5px dashed var(--tint);border-radius:999px;color:var(--tint);font-size:var(--t6)}
.dsend.on{display:block}.dsend.over{background:color-mix(in srgb,var(--tint) 16%,transparent)}
.tsend{all:unset;cursor:pointer;font-size:13px;color:var(--tint);padding:3px 8px;border-radius:999px;border:1px solid var(--line);white-space:nowrap}
.tsend:hover{border-color:var(--tint)}.tsend:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.kghost{position:fixed;left:0;top:0;z-index:300;pointer-events:none;box-shadow:var(--elev);opacity:.95}
.kmoving{opacity:.35}
.kcol.kover{outline:2px dashed var(--tint);outline-offset:-4px;border-radius:14px}
.kanban .kopen{cursor:grab}
.ctable td:nth-child(2),.ctable td:nth-child(6){white-space:nowrap}
.ctable td:nth-child(6) small{white-space:nowrap}

.tthemes{display:flex;gap:6px;align-items:center;justify-content:center;flex-wrap:wrap;margin:6px 0 4px}
.tthemes span{color:var(--ink3);font-size:var(--t6);margin-right:4px}
.tthemes button{all:unset;cursor:pointer;padding:8px 14px;min-height:28px;border-radius:999px;border:1px solid var(--line);color:var(--ink2);font-size:var(--t5)}
.tthemes button[aria-pressed="true"]{background:var(--ink);color:var(--bg);border-color:var(--ink);font-weight:600}
.tthemes button:focus-visible{outline:2px solid var(--tint);outline-offset:2px}

/* ---------- case management: the case header, laid out like a native app ---------- */
html.ed-cm .threadbar{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who acts" "status status";align-items:start;gap:12px 16px;padding:16px 20px 14px}
html.ed-cm .threadbar .who{grid-area:who;max-width:none;border-right:0;padding-right:0;gap:4px}
html.ed-cm .threadbar .tbacts{grid-area:acts}
html.ed-cm .threadbar .st2bar{grid-area:status}
html.ed-cm .threadbar .who :is(h1,h2){font-size:26px}
html.ed-cm .threadbar .who>small{font-size:var(--t5);color:var(--ink2)}
html.ed-cm .pchip{max-width:340px;padding:5px 12px 5px 5px;font-size:var(--t5);min-height:32px}
html.ed-cm .pstrip{gap:8px;margin-top:8px}
html.ed-cm .threadbar .fline{display:none}
html.ed-cm .icobtn{min-width:36px;min-height:36px}
.st2bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px;padding:3px;border-radius:14px;background:var(--sunk);border:1px solid var(--hair)}
.st2{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:48px;border-radius:11px;min-width:0;transition:background .15s}
.st2:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.st2:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.st2c{flex:none;width:22px;height:22px;border-radius:50%;border:1.5px solid var(--ink3);display:grid;place-items:center}
.st2c svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:3}
.st2.done .st2c{background:var(--green);border-color:var(--green)}
.st2.plain .st2c{border-style:dashed}
.st2t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.st2l{font-weight:600;font-size:var(--t5);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st2s{font-size:13px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st2.done .st2s{color:var(--green)}
@media (max-width:760px){.st2bar{grid-template-columns:repeat(3,minmax(0,1fr))}}
.st2menu{min-width:240px}
/* the evidence list: a plain sidebar list with comfortable rows */
html.ed-cm .rail .railtop{display:none}
html.ed-cm .rail .paper{min-height:52px;padding:8px 10px;border-radius:10px}
html.ed-cm .rail .paper .nm{font-size:var(--t5)}
html.ed-cm .rail .rh .eyebrow{font-size:13px}
/* Word evidence: the page reads like a page; wide tables scroll inside it */
.cmpage{overflow-x:auto}
.cmpage table{max-width:100%;width:auto;table-layout:auto;font-size:14px}
.cmpage td,.cmpage th{vertical-align:top;overflow-wrap:break-word;word-break:normal}
.textLayer{text-align:initial}
.imgfact{display:flex;gap:8px;align-items:flex-start;max-width:760px;margin:12px auto 0;width:100%}
.imgfact textarea{flex:1;min-height:44px;background:var(--field);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);font:inherit;font-size:var(--t5)}

/* ---------- design review against Apple's Human Interface Guidelines ---------- */
/* legibility: secondary text and links at 4.5:1 or better in light, nothing under 12px */
:root[data-theme="light"]{--ink3:#4b5260;--tint:#1d68c0;--green:#14683a;--amber:#875000;--teal:#06695e;--blue:#1f5ea8}
@media (prefers-color-scheme:light){:root:not([data-theme]){--ink3:#4b5260;--tint:#1d68c0;--green:#14683a;--amber:#875000;--teal:#06695e;--blue:#1f5ea8}}
.pchip .pr,.ovrole,.mday .ev,.month .ev,.week .ev,.mcell,.ic.pdf,.ic.docx,.ic.md,.ic.img,.tabs .ic{font-size:13px!important}
.tabs .ic,.paper .ic{font-size:13px!important;letter-spacing:.02em}
.month .d,.mcal .dn{font-size:13px}
/* targets: at least 28px for anything you press with a mouse */
.dchk,[data-then] .chk,.then .chk,.ovcopy,.cmenu,.cmin{min-width:28px;min-height:28px}
.rh .ghb{min-height:32px}
.ncopy{padding:4px 6px;margin:-4px -2px;border-radius:6px}
/* board cards: one clear next step instead of a row of ticks */
.kcard>.cmenu,.kcard>.cmin{position:absolute!important}
.kcard .knext{margin:0;font-size:var(--t5);color:var(--ink);font-weight:500}
.boardsub{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin:-4px 0 14px}
.areapick .adot{margin-right:6px}
/* the dashboards fold to one column before they get cramped */
@media (max-width:1180px){.dash3{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.dash3 .dcol[data-dcol="2"]{grid-column:1 / -1}}
@media (max-width:980px){.dash3{grid-template-columns:minmax(0,1fr)!important}.dash3 .dcol{grid-column:auto!important}}
/* case management header: no duplicate details button */
html.ed-cm #detailsBtn{display:none}
html.ed-cm .pfind{font-size:var(--t6)}
@media (max-width:900px){.st2bar{grid-template-columns:repeat(3,minmax(0,1fr))}.st2s{white-space:normal}}
/* primary button with its icon */
#newCase svg{width:16px;height:16px;margin-right:4px;vertical-align:-3px;fill:none;stroke:currentColor;stroke-width:2}
.tdo{position:relative}.tdo::after{content:"";position:absolute;inset:-5px}
small{font-size:max(12px,.8em)}
.wstrip .d small,.mtable td small{font-size:13px}
.palette li.palh{font-size:13px}
.dash3 .ocard2 .tick,.tick{font-size:13px}
:root[data-theme="light"]{--orange:#9a470b;--red:#a72b19}
@media (prefers-color-scheme:light){:root:not([data-theme]){--orange:#9a470b;--red:#a72b19}}
.tnow span{font-size:13px}

/* menus: rows never squeeze when the menu scrolls; a person's name heads their actions */
.menu>*{flex-shrink:0}
.menu .mi span small{margin-top:2px;overflow-wrap:anywhere}
.menu .minfo{padding:10px 12px 4px;display:flex;flex-direction:column;gap:2px}
.menu .minfo b{font-size:var(--t5);font-weight:600;color:var(--ink)}
.menu .minfo small{font-size:13px;color:var(--ink3);line-height:1.35;overflow-wrap:anywhere}
.menu.pmenu{max-width:360px}

/* reference: N/A when a case has none */
.refwrap{display:flex;gap:10px;align-items:center}.refwrap input[type=text],.refwrap input:not([type]){flex:1;min-width:0}
.refna{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--ink2);white-space:nowrap;min-height:32px;cursor:pointer}

/* the places, always in the title bar */
.top .crumbs{gap:6px}
.topnav{flex:none}
.topnav button{min-height:30px;padding:4px 14px;font-size:13px}
.navback{appearance:none;border:0;background:transparent;width:32px;height:32px;display:grid;place-items:center;border-radius:9px;color:var(--ink2);cursor:pointer;flex:none}
.navback:hover{background:var(--sunk);color:var(--ink)}.navback svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2}
.navdoc{margin-left:6px}
@media (max-width:1280px){.brand b{display:none}}
@media (max-width:1000px){.topnav button{padding:4px 9px}.topnav .num{display:none}}
@media (max-width:760px){#railTog{display:none}.topnav button{padding:4px 7px;font-size:13px}}

/* widgets: a gallery, and cards you can resize */
.tile{position:relative}
.tile.sized{display:flex;flex-direction:column;min-height:0}
.tile.sized>.tileb{flex:1;min-height:0;overflow:auto}
.tgrip{appearance:none;border:0;position:absolute;right:2px;bottom:2px;width:24px;height:24px;border-radius:8px;background:transparent;cursor:nwse-resize;opacity:0;transition:opacity .15s;z-index:2}
.tgrip::after{content:"";position:absolute;right:6px;bottom:6px;width:9px;height:9px;border-right:2px solid var(--ink3);border-bottom:2px solid var(--ink3);border-bottom-right-radius:3px}
.tile:hover>.tgrip,.tgrip:focus-visible,.dash3.editing .tgrip,.tile.resizing>.tgrip{opacity:1}
.tgrip:focus-visible{outline:2px solid var(--tint);outline-offset:1px}
.tile.resizing{outline:2px solid color-mix(in srgb,var(--tint) 55%,transparent);outline-offset:2px}
.wgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;margin:12px 0 16px}
.wgcard{display:flex;flex-direction:column;justify-content:space-between;gap:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--solid)}
.wgcard.on{border-color:color-mix(in srgb,var(--tint) 60%,var(--line));background:color-mix(in srgb,var(--tint) 7%,var(--solid))}
.wgt{display:flex;flex-direction:column;gap:4px}.wgt b{font-size:15px}.wgt span{font-size:13px;color:var(--ink2);line-height:1.45}
.wgcard .btn{align-self:flex-start}
/* ---------- the briefing ---------- */
.brief2{max-width:1180px;margin:0 auto;padding:22px 24px 48px;display:flex;flex-direction:column;gap:16px}
.bfhead{display:flex;align-items:flex-end;gap:16px;flex-wrap:wrap;padding-bottom:4px}
.bfhead .eyebrow{display:inline-flex;align-items:center;gap:8px}
.bfhead h1{font-family:var(--font-d);font-weight:500;font-size:34px;line-height:1.1;margin:6px 0 4px}
.bfhead p{margin:0;color:var(--ink2);font-size:15px}
.bfacts{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.bfdue{display:inline-flex;flex-direction:column;padding:6px 12px;border-radius:12px;background:var(--sunk);font-weight:600;font-size:14px;color:hsl(var(--dueh,140) 55% 42%)}
.bfdue small{font-weight:500;color:var(--ink3);font-size:13px}
.bfgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.bfgrid .bfwide{grid-column:span 2}
@media (max-width:1100px){.bfgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:720px){.bfgrid{grid-template-columns:1fr}.bfgrid .bfwide{grid-column:auto}.brief2{padding:16px}}
.bffocus{width:100%;resize:vertical;min-height:72px;background:var(--field,var(--sunk));border:1px solid var(--line);border-radius:12px;padding:10px 12px;font:inherit;font-size:15px;line-height:1.55;color:var(--ink)}
.bffocus:focus{outline:none;border-color:var(--tint);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 22%,transparent)}
.bfchecks{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:2px}
.bfchecks li{display:grid;grid-template-columns:28px 1fr auto;gap:8px;align-items:center;min-height:36px;font-size:14px}
.bfck{appearance:none;width:24px;height:24px;border-radius:50%;border:2px solid var(--ink3);background:transparent;display:grid;place-items:center;cursor:pointer;color:#fff;padding:0}
.bfck.done{background:var(--green);border-color:var(--green)}.bfck svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:3}
.bfchecks li .done+span{color:var(--ink3);text-decoration:line-through}
.bfadd{display:flex;gap:8px}.bfadd input{flex:1;min-width:0;background:var(--field,var(--sunk));border:1px solid var(--line);border-radius:10px;padding:7px 10px;color:var(--ink);font:inherit;font-size:14px}
.bfgroup{margin:4px 0 12px}
.bfsrc{appearance:none;border:0;background:transparent;display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:14px;color:var(--ink);padding:4px 0;cursor:pointer;min-height:32px}
.bfsrc:hover{color:var(--tint)}
.bfgroup ul{list-style:none;margin:2px 0 0;padding:0 0 0 12px;border-left:2px solid color-mix(in srgb,var(--teal) 45%,transparent);display:flex;flex-direction:column;gap:2px}
.bffb{appearance:none;border:0;background:transparent;text-align:left;width:100%;display:flex;flex-direction:column;gap:6px;padding:7px 10px;border-radius:10px;cursor:pointer;color:var(--ink);font:inherit;font-size:14px;line-height:1.5;position:relative}
.bffb:hover{background:var(--sunk)}.bffb .pg{position:absolute;right:10px;top:8px;font-size:13px;color:var(--ink3);font-weight:600}
.bffb>span{padding-right:40px}
.bfpapers{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.bfpapers button{appearance:none;border:0;background:transparent;width:100%;text-align:left;display:grid;grid-template-columns:12px 1fr;column-gap:10px;padding:7px 8px;border-radius:9px;cursor:pointer;color:var(--ink);font:inherit;font-size:14px;min-height:36px}
.bfpapers button:hover{background:var(--sunk)}.bfpapers small{grid-column:2;color:var(--ink3);font-size:13px}
.bfpapers i{width:8px;height:8px;border-radius:50%;background:var(--blue);margin-top:7px}.bfpapers i.rd{background:transparent;box-shadow:inset 0 0 0 1.5px var(--ink3)}
.bflog{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.bflog li{display:grid;grid-template-columns:1fr auto;gap:2px 8px}.bflog small{color:var(--ink3);font-size:13px}.bflog span{grid-column:1 / -1;color:var(--ink2);line-height:1.45}
/* the map */
.bfmap{background:var(--solid);border:1px solid var(--hair);border-radius:var(--r-lg,18px);padding:14px 16px 10px;position:relative}
.bfmap header{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.bfmap h3{margin:0;font-size:15px}
.mlegend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--ink2)}
.mlegend span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--mc);margin-right:6px;vertical-align:1px}
.mapwrap{height:min(62vh,560px);margin-top:6px;cursor:grab;touch-action:none;border-radius:14px;background:radial-gradient(closest-side,color-mix(in srgb,var(--tint) 9%,transparent),transparent)}
.mapwrap.panning{cursor:grabbing}
.bfmap.big{position:fixed;inset:56px 16px 16px;z-index:60;box-shadow:var(--elev)}.bfmap.big .mapwrap{height:calc(100% - 64px)}
.cmap{width:100%;height:100%;display:block;user-select:none}
.cmap .me{fill:none;stroke:var(--ink3);stroke-opacity:.35;stroke-width:1.3;transition:stroke-opacity .2s,stroke .2s}
.cmap .mn rect{fill:color-mix(in srgb,var(--mc) 13%,var(--solid));stroke:color-mix(in srgb,var(--mc) 60%,transparent);stroke-width:1.2;transition:filter .2s}
.cmap .mn .mdot{fill:var(--mc)}
.cmap .ml{font-size:13px;font-weight:600;fill:var(--ink);font-family:var(--font-ui,inherit)}
.cmap .ms{font-size:13px;fill:var(--ink2);font-family:var(--font-ui,inherit)}
.cmap .m-fact .ml{font-weight:500}
.cmap .mn.act{cursor:pointer}.cmap .mn:focus{outline:none}.cmap .mn:focus-visible rect{stroke:var(--ink);stroke-width:2.2}
.cmap .mchild circle{stroke:none}.cmap .mchild .halo{opacity:.18;animation:mhalo 3.2s ease-in-out infinite}
.cmap .mct{font-family:var(--font-d);font-size:16px;fill:#fff;text-anchor:middle;font-weight:600}.cmap .mcs{font-size:13px;fill:#fff;opacity:.9;text-anchor:middle}
@keyframes mhalo{50%{opacity:.3;transform:scale(1.06)}}
@media (prefers-reduced-motion:reduce){.cmap .mchild .halo{animation:none}}
.cmap.hl .mn:not(.on):not(.mchild){opacity:.28}.cmap.hl .me{stroke-opacity:.12}.cmap .me.on{stroke:var(--tint);stroke-opacity:.9;stroke-width:2}
.cmap .mn.on rect{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--mc) 55%,transparent))}
.mhelp{margin:6px 2px 0}
/* picture and table facts */
.fact.fpic{display:flex;flex-direction:column;gap:6px}
.fpicb{appearance:none;border:0;padding:0;background:transparent;cursor:zoom-in;text-align:left;border-radius:8px;overflow:hidden}
.fsnip{display:block;max-width:100%;max-height:260px;border-radius:8px;border:1px solid var(--line);background:#fff}
.ftable{max-height:240px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.ftable table{border-collapse:collapse;font-size:13px;width:100%}.ftable td,.ftable th{border:1px solid var(--hair);padding:4px 6px;vertical-align:top;color:var(--ink)}
.fact .ft[data-ph]:empty::before{content:attr(data-ph);color:var(--ink3)}
.tablekeep{position:absolute;z-index:5;appearance:none;border:0;display:inline-flex;align-items:center;gap:6px;background:var(--tint);color:#06121f;font-weight:600;font-size:13px;padding:6px 12px;border-radius:999px;cursor:pointer;box-shadow:0 6px 18px -8px rgba(0,0,0,.5);transform:translateY(-100%)}
.tablekeep svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.sniplayer{position:absolute;inset:44px 0 0 0;z-index:20;cursor:crosshair;background:rgba(0,0,0,.08)}
.sniphint{position:absolute;left:50%;top:12px;transform:translateX(-50%);background:var(--raised);border:1px solid var(--line);padding:8px 14px;border-radius:999px;font-size:13px;box-shadow:var(--elev);pointer-events:none;white-space:nowrap}
.sniprect{position:absolute;border:2px solid var(--tint);background:color-mix(in srgb,var(--tint) 12%,transparent);border-radius:4px;pointer-events:none}
@media print{body.printbrief .top,body.printbrief .rail,body.printbrief .panel,body.printbrief .threadbar,body.printbrief .npbar,body.printbrief .tabsbar,body.printbrief .bfacts,body.printbrief .mhelp,body.printbrief #mapBig,body.printbrief .bfadd,body.printbrief [data-bfckx]{display:none!important}body.printbrief .ws{display:block!important}body.printbrief .mapwrap{height:440px}body.printbrief .bfgrid{grid-template-columns:1fr 1fr}}

.fpicb{display:block;max-width:100%}.fsnip{width:auto;max-width:100%;height:auto}
.ic.brief{display:inline-grid;place-items:center;background:color-mix(in srgb,var(--tint) 22%,transparent)}.ic.brief i{width:8px;height:8px;border-radius:50%;background:var(--tint);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 30%,transparent)}
@media (max-width:900px) and (min-width:761px){.top .tc .kbtn span{display:block}}
/* the briefing and the case at a glance scroll inside the centre */
.otherwrap:has(> .ovw){display:block;overflow-y:auto;overscroll-behavior:contain}
/* tile titles and their controls share the line, and wrap rather than spill into the next column */
.tileh{flex-wrap:wrap;row-gap:6px;min-width:0}
.tileh :is(h2,h3){min-width:0}
.tileh .tacts{max-width:100%;min-width:0;flex-wrap:wrap}
.tileh .tacts .seg button{padding:3px 9px}
/* parents and carers */
.pcwarn{background:color-mix(in srgb,var(--amber) 13%,transparent);border:1px solid color-mix(in srgb,var(--amber) 45%,transparent);border-radius:12px;padding:10px 12px;margin:0 0 12px;font-size:14px;line-height:1.45}
.pcwarn p{margin:0 0 4px}.pcwarn .btn{margin-top:6px}
.pcwarn.sm{font-size:13px}
.pcok{display:flex;gap:8px;align-items:center;color:var(--green);font-weight:600;font-size:14px;margin:0 0 12px}.pcok svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2.4}
.pcrows{display:flex;flex-direction:column;gap:8px;margin-bottom:14px}
.pcrow{display:grid;grid-template-columns:28px minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr) minmax(0,1.3fr);gap:8px;align-items:center;padding:8px;border:1px solid var(--line);border-radius:12px;background:var(--solid)}
.pcrow.off{opacity:.5}
.pcrow input:not([type=checkbox]),.pcrow select{min-width:0;background:var(--field,var(--sunk));border:1px solid var(--line);border-radius:9px;padding:7px 9px;color:var(--ink);font:inherit;font-size:14px}
.pcrow .pcsrc{grid-column:2 / -1;font-size:13px;color:var(--ink3)}
.pckeep{display:grid;place-items:center;min-height:32px}.pckeep input{width:18px;height:18px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
@media (max-width:760px){.pcrow{grid-template-columns:28px 1fr 1fr}.pcrow .pcsrc{grid-column:1 / -1}}
/* emails Fetwell writes for you */
.mailw{display:grid;grid-template-columns:minmax(200px,260px) minmax(0,1fr);gap:16px;min-height:0}
@media (max-width:760px){.mailw{grid-template-columns:1fr}}
.maillist{display:flex;flex-direction:column;gap:6px}
.mailpick{appearance:none;text-align:left;border:1px solid var(--line);background:var(--solid);border-radius:12px;padding:10px 12px;cursor:pointer;color:var(--ink);display:flex;flex-direction:column;gap:2px;font:inherit}
.mailpick b{font-size:14px;font-weight:600}.mailpick small{font-size:13px;color:var(--ink3)}
.mailpick[aria-checked="true"]{border-color:var(--tint);box-shadow:0 0 0 1px var(--tint);background:color-mix(in srgb,var(--tint) 8%,var(--solid))}
.msug{font-size:13px;font-weight:700;color:var(--green);margin-left:4px}
.mailed{display:flex;flex-direction:column;gap:10px;min-width:0}
.mfield{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--ink3)}
.mfield input,.mfield textarea{background:var(--field);border:1px solid var(--line);border-radius:10px;padding:8px 10px;color:var(--ink);font:inherit;font-size:14px;line-height:1.5}
.mfield textarea{resize:vertical;min-height:240px}
.mopt{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:13px;color:var(--ink3)}
.mopt>span{min-width:64px}
.mchips{display:flex;flex-wrap:wrap;gap:6px}
.mchip{display:inline-flex;gap:6px;align-items:center;padding:5px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--ink);cursor:pointer;background:var(--solid)}
.mchip:has(input:checked){border-color:var(--tint);background:color-mix(in srgb,var(--tint) 10%,var(--solid))}
.riskb{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 14px;border-radius:12px;background:color-mix(in srgb,var(--amber) 13%,transparent);border:1px solid color-mix(in srgb,var(--amber) 45%,transparent);font-size:14px}
.avail{display:flex;flex-direction:column;gap:10px}
.avl{margin:0;font-size:14px;color:var(--ink2)}.avl b{font-family:var(--font-d);font-size:26px;color:var(--ink);font-weight:500;margin-right:4px}
.avbtns{display:flex;flex-wrap:wrap;gap:8px}
.avbtns .btn small{font-size:13px;color:var(--ink3);margin-left:6px;font-weight:500}
/* service mode: schools */
.schools{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.scard{appearance:none;text-align:left;border:1px solid var(--line);background:var(--solid);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;color:var(--ink);font:inherit;min-width:0}
.scard:hover{border-color:color-mix(in srgb,var(--tint) 50%,var(--line))}
.scard .sh{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.scard .sh b{font-size:16px}.scard .num{font-size:13px;font-weight:600;white-space:nowrap}
.stypes{display:flex;flex-wrap:wrap;gap:6px}.stypes .chip{font-size:13px;padding:3px 9px;border-radius:999px;background:var(--sunk);color:var(--ink2)}
.sal{display:flex;flex-direction:column;gap:4px}.sal small{font-size:13px;color:var(--ink3)}
.salbar{display:block;height:8px;border-radius:4px;background:var(--sunk);overflow:hidden}.salbar i{display:block;height:100%;border-radius:4px;background:var(--tint)}.salbar.big{height:12px;border-radius:6px}
.smeta{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px;color:var(--ink3)}
.school1{display:flex;flex-direction:column;gap:16px}
.s1head{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap}.s1head h1{font-family:var(--font-d);font-weight:500;font-size:32px;margin:4px 0}
.s1acts{display:flex;gap:8px;flex-wrap:wrap}
.s1stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
@media (max-width:860px){.s1stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
.s1stats>div{background:var(--solid);border:1px solid var(--hair);border-radius:14px;padding:12px 14px;display:flex;flex-direction:column}
.s1stats b{font-family:var(--font-d);font-weight:500;font-size:26px;font-variant-numeric:tabular-nums}.s1stats b small{font-family:var(--font-ui);font-size:14px;color:var(--ink3)}.s1stats span{font-size:13px;color:var(--ink3)}
.s1grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:14px}
@media (max-width:980px){.s1grid{grid-template-columns:1fr}}
.wgh{font-size:13px;font-weight:700;margin:12px 0 4px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink2)}.wgh span{text-transform:none;letter-spacing:0;font-weight:500}
.stable{width:100%;border-collapse:collapse;font-size:14px}.stable td{padding:8px 6px;border-top:1px solid var(--hair);vertical-align:top}.stable td small{display:block;color:var(--ink3);font-size:13px}.stable tr{cursor:pointer}.stable tr:hover td{background:var(--sunk)}.stable .num{text-align:right;color:var(--ink3);white-space:nowrap;font-variant-numeric:tabular-nums}
.tlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.tlist li{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--hair);font-size:14px}.tlist small{display:block;color:var(--ink3);font-size:13px}.tlist .num{white-space:nowrap;font-variant-numeric:tabular-nums}
.mysch{display:flex;flex-direction:column;gap:4px}
.msrow{appearance:none;border:0;background:transparent;text-align:left;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;padding:8px 10px;border-radius:10px;cursor:pointer;color:var(--ink);font:inherit;font-size:14px}.msrow:hover{background:var(--sunk)}.msrow span{font-size:13px}
.month{display:flex;flex-direction:column;gap:10px}.mlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px}.mlist b{font-variant-numeric:tabular-nums}.mlist small{color:var(--ink3)}
.logdur{margin:2px 0}.logdur button{padding:3px 9px;font-size:13px}
.lmin{font-weight:500;font-size:13px;color:var(--teal);margin-left:6px}
.stg.s-work{background:color-mix(in srgb,var(--violet) 16%,transparent);color:var(--violet)}

.logdur{flex-wrap:wrap}
body.incase .brand b{display:none}
@media (min-width:1101px){.top{grid-template-columns:minmax(0,1fr) minmax(200px,380px) minmax(0,1fr)}}

/* ---------- Team (a lead's view) ---------- */
.teamboard .daytop{flex-wrap:wrap;gap:12px}
.teamtabs{flex-wrap:wrap}
.tplan-top{display:flex;gap:20px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;margin:6px 0 10px}
.tplan-top>div:first-child{max-width:680px}
.tplan-h{font-family:var(--font-d,inherit);font-size:clamp(20px,2.2vw,26px);line-height:1.25;margin:4px 0 6px;font-weight:500}
.tplan-acts{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.tweights{margin:4px 0 14px;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);padding:10px 16px}
.tweights summary{cursor:pointer;font-weight:600;font-size:var(--t5)}
.wgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:10px 24px;margin-top:10px}
.wrow{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:var(--t5)}
.seg.sm button{min-height:30px;padding:3px 10px;font-size:var(--t6)}
.tplan-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:16px;align-items:start}
.tplan-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start;margin-top:16px}
@media (max-width:1000px){.tplan-grid{grid-template-columns:1fr}}
.tmapc{position:sticky;top:12px}
.tmap{width:100%;height:auto;display:block}
.tm-town{font-size:12px;fill:var(--ink3);pointer-events:none}
.tm-s{cursor:pointer;transition:opacity .2s}
.tm-s:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.tm-s.dim,.tm-ep.dim{opacity:.18}
.tm-ep{cursor:pointer}.tm-ini{font-size:9px;font-weight:700}
.tm-line{stroke-width:1;opacity:.45}
.tm-scale line{stroke:var(--ink3);stroke-width:1.5}.tm-scale text{font-size:12px;fill:var(--ink3)}
.tm-empty{padding:40px 10px;text-align:center;color:var(--ink3)}
.teps{display:flex;flex-direction:column;gap:8px}
.tep{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;border-left:4px solid var(--c)}
.tep.on{box-shadow:var(--shadow-h)}
.tep-h{all:unset;box-sizing:border-box;display:grid;grid-template-columns:auto minmax(0,1fr) minmax(150px,220px);gap:12px;align-items:center;width:100%;padding:12px 14px;cursor:pointer}
.tep-h:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.tdot{width:10px;height:10px;border-radius:50%;background:var(--c)}
.tep-n b{display:block}.tep-n small,.tep-l small{display:block;color:var(--ink3);font-size:var(--t6);margin-top:2px}
.tbar{display:block;height:8px;border-radius:5px;background:var(--sunk);overflow:hidden}.tbar i{display:block;height:100%;border-radius:5px}
.tep-b{padding:0 14px 12px}
.tplan td{vertical-align:top}.tplan td small{display:block;color:var(--ink3)}
.why{display:inline-block;margin:0 6px 3px 0;padding:1px 8px;border-radius:10px;background:var(--sunk);color:var(--ink2);font-size:13px}
.why.up{background:var(--green-soft);color:var(--ink)}.why.down{background:var(--amber-soft);color:var(--ink)}
.tacts{white-space:nowrap}.tacts select{max-width:150px}
.icobtn.on{color:var(--tint)}
.linkish{all:unset;cursor:pointer;color:inherit}.linkish:hover{text-decoration:underline}.linkish:focus-visible{outline:2px solid var(--tint)}
.tchecks{margin:0;padding-left:18px}.tchecks li{margin:4px 0;font-size:var(--t5)}.tchecks li.warn::marker{color:var(--red)}.tchecks li.note::marker{color:var(--ink3)}
.tfit{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}
.tfit li{display:flex;gap:12px;align-items:center;justify-content:space-between;padding:10px 12px;border-radius:12px;background:var(--sunk)}
.tfit li.best{background:var(--blue-soft,var(--sunk))}
.tfit li b{margin-right:8px}.tfit li small{color:var(--ink3);margin-right:8px}.tfit li .small{display:block;margin-top:4px}
.chip.sm{min-height:22px;padding:1px 8px;font-size:13px;cursor:default}
.treq-top{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:4px 0 12px}.treq-top p{max-width:720px;margin:0}
.treq{margin-bottom:12px}
.tstats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:6px 0 4px}
.tstats>div{background:var(--surface);border-radius:14px;box-shadow:var(--shadow);padding:12px 16px}
.tstats b{display:block;font-size:28px;font-weight:600;line-height:1.1}.tstats span{font-size:var(--t6);color:var(--ink2)}
.tstats .bad b{color:var(--red)}.tstats .warn b{color:var(--amber)}
.tchart{width:100%;height:auto;display:block}.tc-v{font-size:13px;fill:var(--ink2)}.tc-x{font-size:12px;fill:var(--ink3)}.tc-l{font-size:13px;fill:var(--ink)}.tc-key text{font-size:13px;fill:var(--ink2)}
.tdl tr.late td:first-child,.tdl tr.risk td:first-child{box-shadow:inset 3px 0 0 var(--red)}
.tdl td small{display:block;color:var(--ink3)}
.duec.late{color:var(--red);font-weight:600}.duec.risk{color:var(--amber);font-weight:600}
.tpack{display:flex;flex-direction:column;gap:12px}.tpack-h h2{margin:2px 0 0;font-weight:500}
.tpack-t textarea{width:100%;font:inherit;line-height:1.55}
.tpoints{display:flex;flex-direction:column;gap:10px}.tpoint h3{margin:4px 0 6px;font-size:var(--t4,17px)}
.tagenda ol{padding-left:20px;margin:6px 0}.tagenda li{margin:8px 0}.tagenda li small{display:block;color:var(--ink3)}
.tagadd{display:flex;gap:8px;margin-top:10px}.tagadd input{flex:1}
.tmailto{list-style:none;padding:0;margin:0}.tmailto li{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--hair)}.tmailto small{display:block;color:var(--ink3)}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chipck{display:inline-flex;gap:6px;align-items:center;padding:4px 10px;border:1px solid var(--line);border-radius:16px;font-size:var(--t6)}
@media print{body.printpack *{visibility:hidden}body.printpack #tpack,body.printpack #tpack *{visibility:visible}body.printpack #tpack{position:absolute;left:0;top:0;width:100%}body.printpack #tpack textarea{border:0;resize:none}body.printpack .ovcard,body.printpack .tstats>div{box-shadow:none;border:1px solid #ddd}}
.topnav.many button{padding:4px 10px}
@media (max-width:1560px){.topnav.many .num{display:none}.topnav.many button{padding:4px 8px}}
.tm-town{paint-order:stroke;stroke:var(--surface);stroke-width:3px;stroke-linejoin:round}
.tmapc header{flex-wrap:wrap}
.tep-h{grid-template-columns:auto minmax(0,1fr) minmax(170px,240px)}
.tplan-grid>*,.tplan-grid2>*{min-width:0}
@media (max-width:1000px){.tmapc{position:static}}
@media (max-width:760px){.topnav{overflow-x:auto;scrollbar-width:none;max-width:100%;flex:0 1 auto}.topnav::-webkit-scrollbar{display:none}.topnav button{flex:none}.crumbs{overflow:hidden}
  .tep-h{grid-template-columns:auto minmax(0,1fr)}.tep-l{grid-column:1/-1}.tacts select{max-width:120px}.tfit li{flex-direction:column;align-items:flex-start}}
@media (max-width:760px){.top{grid-template-columns:minmax(0,1fr) 40px auto}}
/* school details */
.sinfo{margin:14px 0}
.sabout{margin:4px 0 10px;color:var(--ink2);max-width:860px}
.sdl{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px 16px;margin:0}
.sdl dt{font-size:var(--t6);font-weight:600;color:var(--ink3);text-transform:uppercase;letter-spacing:.06em;padding-top:3px}
.sdl dd{margin:0;font-size:var(--t5)}.sdl dd small{display:block;margin-top:2px}
.sacts{display:inline-flex;gap:10px;align-items:center;margin-left:10px;flex-wrap:wrap}
.sgrades{margin:6px 0 0;padding-left:18px;font-size:var(--t6)}
.sinfo a{color:var(--tint);text-underline-offset:2px}
@media (max-width:640px){.sdl{grid-template-columns:1fr}.sdl dt{padding-top:6px}.sacts{margin-left:0;margin-top:6px}}
.gmlist,.alloclist{list-style:none;padding:0;margin:8px 0;max-height:46vh;overflow:auto}
.gmlist li,.alloclist li{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid var(--hair)}
.gmlist li.done span:last-child{color:var(--ink2)}.alloclist small{display:block;color:var(--ink3)}
.tfit{margin-top:8px}
/* practice rules */
.rbask{margin:8px 0 4px;padding-left:20px;font-size:var(--t6,13.5px);line-height:1.45;color:var(--ink)}.rbask li{margin:3px 0}
.rbsug{margin:8px 0 4px;padding:8px 10px;border-radius:8px;background:color-mix(in srgb,var(--tint) 12%,transparent)}
.rbwhy{margin:8px 0 2px;font-size:var(--t6,13.5px)}.rbwhy summary{cursor:pointer;color:var(--ink2)}.rbwhy[open] summary{margin-bottom:6px}
.rbsrc{margin:6px 0;padding-left:18px;font-size:13px;color:var(--ink2)}.rbsrc a{color:var(--tint)}
.rbfoot{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.tagenda{position:sticky;top:12px;align-self:start}
.rbgroup{margin:22px 0 8px;font-size:var(--t4,17px)}
.rbgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:12px}
.rbrule header{display:flex;gap:10px;align-items:flex-start;justify-content:space-between}.rbrule h3{margin:4px 0 6px}
.rbrule.off{opacity:.62}.rbrule details{margin:6px 0}.rbrule details summary{cursor:pointer;color:var(--ink2)}
.rbtog{display:flex;gap:6px;align-items:center;font-size:13px;white-space:nowrap}
.rbmeta{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0}
.rbguess{color:var(--amber)}
.rbrule.flash,.tpoint.flash{outline:2px solid var(--tint);outline-offset:2px}
.rbnotes{list-style:none;margin:4px 0 8px;padding:0;display:flex;flex-direction:column;gap:4px}.rbnotes li{font-size:13px;padding:6px 10px;border-radius:8px;background:color-mix(in srgb,var(--amber) 10%,transparent)}
.rbtris{display:flex;flex-direction:column;gap:6px;margin:6px 0 10px}.rbtri{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:13.5px}
.rbopts{display:flex;flex-direction:column;gap:8px;margin-top:10px}.rbopts .btn{justify-content:flex-start;text-align:left}
.rbchip{margin-top:6px}.rbchip.on{background:color-mix(in srgb,var(--amber) 18%,transparent);border-color:var(--amber)}
.rbfacts{margin:10px 0}.rbfacts summary{cursor:pointer}
.tdl tr.held .duec{background:color-mix(in srgb,var(--ink3) 18%,transparent);color:var(--ink2)}
@media (max-width:760px){.rbgrid{grid-template-columns:1fr}.tagenda{position:static}.rbtri{flex-direction:column;align-items:flex-start}}
/* roles on the first screen of the walk-through */
.troles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(640px,100%);animation:sup .8s 1.65s both}
.troles button{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:3px;padding:12px 14px;border-radius:16px;border:1px solid var(--line);background:color-mix(in srgb,var(--solid) 60%,transparent);text-align:left;transition:border-color .2s,background .2s,transform .2s var(--spring)}
.troles button b{font-size:var(--t5,15px);color:var(--ink)}.troles button small{font-size:13px;color:var(--ink3);line-height:1.35}
.troles button:hover{transform:translateY(-1px)}.troles button[aria-pressed="true"]{border-color:var(--tint);background:color-mix(in srgb,var(--tint) 14%,var(--solid));box-shadow:0 0 0 1px var(--tint) inset}
.troles button:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
/* pictures for the service and team steps */
.tsbar{display:block;height:8px;border-radius:99px;background:var(--line);overflow:hidden;flex:1}.tsbar i{display:block;height:100%;border-radius:99px;background:var(--tint);animation:tgrow 1s .5s var(--spring) both;transform-origin:left}
@keyframes tgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.tinfo{flex-direction:row;align-items:center;justify-content:space-between;padding:10px 14px}.tinfo span b{display:block;font-size:13px;color:var(--ink3);font-weight:600;text-transform:uppercase;letter-spacing:.04em}
.tdlp{font-size:13px;padding:4px 10px;border-radius:99px;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--tint);white-space:nowrap}
.twork{display:grid;grid-template-columns:110px 1fr auto;gap:8px;align-items:center;padding:6px 0;border-top:1px solid var(--hair);font-size:13.5px}.twork:first-of-type{border-top:0}.twork small{color:var(--ink3)}
.tsteps{display:flex;gap:4px}.tsteps i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--ink3)}.tsteps i.done{background:var(--teal,var(--tint));border-color:var(--teal,var(--tint))}
.tmonth{flex-direction:row;justify-content:space-around;text-align:center}.tmonth span{display:flex;flex-direction:column;font-size:13px;color:var(--ink2)}.tmonth b{font-size:26px;color:var(--ink);font-family:var(--serif,inherit)}.tmonth small{color:var(--ink3)}
.tmapmini{width:100%;height:auto}.tmapmini circle{animation:tpop .4s var(--spring) both}@keyframes tpop{from{opacity:0;transform:scale(.3)}to{opacity:1;transform:none}}.tmapmini circle{transform-box:fill-box;transform-origin:center}
.tload{display:grid;grid-template-columns:110px 1fr auto;gap:10px;align-items:center;font-size:13px}.tload small{color:var(--ink3);min-width:36px;text-align:right}
.treqrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;border-radius:12px;font-size:14px}.treqrow small{flex-basis:100%;color:var(--ink3)}.treqrow.best{background:color-mix(in srgb,var(--tint) 12%,transparent)}
.tweeks{width:100%;height:auto}
.trow .tdue{margin-left:auto;font-size:13px;padding:2px 8px;border-radius:99px}.tdue.risk{background:color-mix(in srgb,var(--red) 18%,transparent);color:var(--red)}.tdue.held{background:color-mix(in srgb,var(--ink3) 18%,transparent);color:var(--ink2)}
.tqs{margin:6px 0;padding-left:18px;font-size:13px;line-height:1.45}.tfb{display:flex;gap:6px;margin-top:4px}.tfb span{font-size:13px;padding:3px 10px;border-radius:99px;border:1px solid var(--line);color:var(--ink2)}
.tbig{align-items:flex-start}.tbig b{font-size:64px;line-height:1;font-family:var(--serif,inherit);color:var(--tint)}.tbig>span:not(.eyebrow){font-size:16px;color:var(--ink)}
/* Time Fetwell saves */
.tsv{display:flex;flex-direction:column;gap:14px}.tsvrole{align-self:flex-start}
.tsvhero{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tsvhero div{padding:16px 18px;border-radius:18px;background:linear-gradient(160deg,color-mix(in srgb,var(--tint) 16%,var(--solid)),var(--solid));border:1px solid var(--hair);display:flex;flex-direction:column;gap:2px}
.tsvhero b{font-size:clamp(28px,4vw,42px);line-height:1.05;font-family:var(--serif,inherit);color:var(--ink)}.tsvhero div:first-child b{color:var(--tint)}.tsvhero span{font-size:13px;color:var(--ink2)}
.tsvin{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px}.tsvin .field{font-size:13px}
.tsvt td small{display:block;color:var(--ink3);font-size:13px}.tsvt input{width:58px;padding:4px 6px;font:inherit;font-size:13px;border-radius:8px;border:1px solid var(--line);background:var(--solid);color:var(--ink)}.tsvt td:nth-child(2) small,.tsvt td:nth-child(3) small{display:inline;margin-left:4px}
.tsvbar{width:28%;min-width:90px}.tsvbar span{display:block;height:7px;margin:3px 0;border-radius:99px;background:color-mix(in srgb,var(--line) 50%,transparent)}.tsvbar i{display:block;height:100%;border-radius:99px}.tsvbar i.b{background:var(--ink3)}.tsvbar i.a{background:var(--tint)}
@media (max-width:760px){.troles{grid-template-columns:1fr}.tsvhero{grid-template-columns:1fr}.tsvbar{display:none}.twork{grid-template-columns:1fr auto}.twork small{grid-column:1}}
.tcard>svg{display:block;flex:none;width:100%}.tcard>svg.tmapmini{height:190px;width:100%}.tcard>svg.tweeks{height:118px;width:100%}.tcard>svg[viewBox="0 0 280 110"]{height:110px}
.tsvt th{text-align:left}.tsvt td:nth-child(2),.tsvt td:nth-child(3){white-space:nowrap}
@media (max-width:760px){.splash{justify-content:flex-start;gap:14px;overflow-y:auto;padding-top:8px}.splash .lmark{width:64px!important;height:auto}.splash .slead{font-size:15px}.troles{gap:6px}.troles button{padding:9px 12px}}
/* Fetwell mark: the motion drives the strands itself; the still mark shows at once */
.nmark.moving .ln,.nmark.still .ln,.nmark.still .ring{stroke-dasharray:none!important;stroke-dashoffset:0!important;animation:none!important}
.nmark.moving .ring{stroke-dasharray:1 1!important}
.splash .swords{animation-delay:2.4s}.splash .slead{animation-delay:2.7s}.troles{animation-delay:2.9s}.splash .tthemes{animation-delay:3s}.splash .tnav{animation-delay:3.1s}
.launch .lname{animation-delay:2.4s}.launch .lstat{animation-delay:2.7s}
.nmark .ring{position:static;inset:auto;width:auto;height:auto;transform:none;border:0;border-radius:0;background:none;animation:none}
/* evidence: preview tab, long lists */
.tab.preview .nm{font-style:italic}
.tab.preview{opacity:.92}
.paper .nm{white-space:normal}
.paper .nm .pt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere;line-height:1.3}
.paper .nm small{white-space:nowrap}
.paper[hidden]{display:none}
.pfind{display:block;margin:4px 4px 6px}.pfind input{width:100%;font:inherit;font-size:var(--t6);padding:7px 10px;border-radius:10px;border:1px solid var(--line);background:var(--solid);color:var(--ink)}
.plist{display:flex;flex-direction:column;gap:2px}.pnone{padding:6px 8px}
.permdot{width:10px;height:10px;border-radius:50%;display:inline-block;margin-right:8px;vertical-align:middle}.permdot.ok{background:var(--green,#2fa565)}.permdot.half{background:var(--amber)}.permdot.no{background:var(--red)}
/* calls and done today */
.callrows{display:flex;flex-direction:column;gap:10px;margin:10px 0 14px}
.callrow{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:14px;background:color-mix(in srgb,var(--ink) 4%,transparent);border:1px solid var(--hair)}
.callrow .cwho b{display:block}.callrow .cwho small{color:var(--ink3);font-size:13px}
.callrow .seg{flex-wrap:wrap}
.donetoday{margin-top:12px;border-top:1px solid var(--hair);padding-top:8px}
.donetoday summary{cursor:pointer;display:flex;gap:8px;align-items:center;font-weight:600;font-size:var(--t6);color:var(--ink2);list-style:none}
.donetoday summary::-webkit-details-marker{display:none}.donetoday summary::before{content:'▸';color:var(--ink3);font-size:13px}.donetoday[open] summary::before{content:'▾'}
.donetoday ul{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.donetoday li{display:grid;grid-template-columns:44px 1fr auto auto;gap:8px;align-items:baseline;font-size:13px}
.donetoday time{color:var(--ink3);font-variant-numeric:tabular-nums}.donetoday li b{font-weight:500;text-decoration:line-through;text-decoration-color:color-mix(in srgb,var(--ink3) 60%,transparent)}.donetoday li small{display:block;color:var(--ink3)}
/* notes on papers */
.annlayer{position:absolute;inset:0;pointer-events:none;z-index:3}
.annmark{position:absolute;background:color-mix(in srgb,var(--c) 38%,transparent);mix-blend-mode:multiply;border-radius:2px;pointer-events:auto;cursor:pointer}
html.dark .annmark,:root[data-theme="dark"] .annmark{mix-blend-mode:normal}
mark.annmark.annw{position:static;background:color-mix(in srgb,var(--c) 40%,transparent);color:inherit;padding:0 1px;border-radius:2px}
.annpin{position:absolute;transform:translate(-50%,-100%);pointer-events:auto;min-width:22px;height:22px;padding:0 6px;border-radius:11px 11px 11px 2px;border:2px solid #fff;background:var(--c);color:#1b2230;font:700 11px/18px Inter,system-ui,sans-serif;cursor:pointer;box-shadow:0 4px 12px -4px rgba(0,0,0,.5);z-index:4}
.annpin.inl{position:relative;transform:translateY(-6px);display:inline-block;margin-left:2px;height:18px;min-width:18px;font-size:12px;line-height:14px;padding:0 4px}
.annmark.flash,.annpin.flash{outline:3px solid var(--tint);outline-offset:2px}
.annimg{position:relative;display:inline-block;max-width:100%}.annimg img{display:block;max-width:100%}
body.annpinning #pdfread .pg,body.annpinning .annimg img{cursor:crosshair}
.annpop{position:fixed;z-index:60;width:min(340px,92vw);background:var(--raised);border:1px solid var(--line);border-radius:16px;box-shadow:var(--elev);padding:12px;display:flex;flex-direction:column;gap:8px}
.annpop textarea{width:100%;font:inherit;font-size:var(--t6);padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--solid);color:var(--ink);resize:vertical}
.annq{font-size:13px;color:var(--ink2);font-style:italic;max-height:5.2em;overflow:auto}
.anncols{display:flex;gap:6px;align-items:center}.anncol{width:18px;height:18px;border-radius:50%;border:2px solid transparent;background:var(--c);cursor:pointer}.anncol[aria-pressed="true"]{border-color:var(--ink)}
.annpop .acts{display:flex;gap:6px;align-items:center}
.keepchip{display:flex;gap:6px}
.annpanel{display:flex;flex-direction:column;gap:12px;padding:4px 2px}.annempty{padding:6px 4px;line-height:1.5}
.anngrp h4{margin:4px 0 6px;font-size:var(--t6);color:var(--ink2)}
.annitem{all:unset;box-sizing:border-box;cursor:pointer;display:grid;grid-template-columns:6px 1fr;gap:10px;padding:8px;border-radius:10px;width:100%}.annitem:hover{background:color-mix(in srgb,var(--ink) 6%,transparent)}
.annitem .annsw{border-radius:3px;background:var(--c)}.annitem q{display:block;font-size:13px;color:var(--ink2);font-style:italic}.annitem b{display:block;font-weight:500;font-size:var(--t6)}.annitem small{color:var(--ink3);font-size:13px}
.threadbar .who .rbchip{align-self:flex-start;width:auto;max-width:100%;margin-top:6px}
.tab .ic{width:auto;min-width:18px;padding:0 3px}
.tep-l small b.over{color:var(--red);font-weight:700}
.demobadge{position:fixed;left:12px;bottom:10px;z-index:30;font-size:13px;padding:4px 10px;border-radius:99px;background:color-mix(in srgb,var(--raised) 92%,transparent);border:1px solid var(--line);color:var(--ink3);pointer-events:none}
/* review fixes: tables, phone widths */
.teamboard .stable th{text-align:left}.teamboard .acts{gap:10px;flex-wrap:wrap}
.srow .ctl{flex-wrap:wrap}
.sheet .sbody,.sheet #sbody{min-width:0}
@media (max-width:700px){
  .srow{grid-template-columns:1fr}.srow .ctl{justify-content:flex-start}.srow .ctl input,.srow .ctl select{min-width:0;width:100%;max-width:none}
  .topnav{mask-image:linear-gradient(90deg,#000 85%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 85%,transparent);overflow-x:auto;scrollbar-width:none}
  html.ed-cm .threadbar,.threadbar{display:flex;flex-direction:column;align-items:stretch;gap:8px}
  html.ed-cm .threadbar .who,.threadbar .who{max-width:none;border-right:0;padding-right:0}
  .threadbar .who>small{white-space:normal}
  .threadbar .nmrow{flex-wrap:wrap;gap:4px}
  .threadbar .tbacts{position:static;align-self:flex-end}
  .st2bar{overflow-x:auto;scrollbar-width:none}.st2bar .st2l{white-space:nowrap}
  .ctable thead{display:none}.ctable,.ctable tbody,.ctable tr,.ctable td{display:block;width:100%}
  .ctable tr{padding:10px 12px;border-bottom:1px solid var(--hair)}.ctable td{padding:2px 0!important;border:0!important}
}
@media (max-width:700px){.demobadge{display:none}}

/* ---------- the reading room (reading.js) ---------- */
.paper .spn{display:none}
html.ed-cm .caseroom.reading:not(.hdropen) .threadbar{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"who status acts";align-items:center;gap:14px;padding:7px 14px 7px 18px}
.caseroom.reading:not(.hdropen) .threadbar .who{flex-direction:row;align-items:baseline;gap:12px;min-width:0}
.caseroom.reading:not(.hdropen) .threadbar .who>*:not(.nmrow):not(small){display:none}
.caseroom.reading:not(.hdropen) .threadbar .who>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.caseroom.reading:not(.hdropen) .threadbar .editdet,.caseroom.reading:not(.hdropen) .threadbar .nmrow .say{display:none}
html.ed-cm .caseroom.reading:not(.hdropen) .threadbar .who :is(h1,h2){font-size:18px;white-space:nowrap}
.caseroom.reading:not(.hdropen) .st2bar{display:flex;gap:2px;padding:2px;border-radius:999px}
.caseroom.reading:not(.hdropen) .st2{min-height:30px;padding:3px 11px 3px 5px;gap:6px;border-radius:999px}
.caseroom.reading:not(.hdropen) .st2s{display:none}
.caseroom.reading:not(.hdropen) .st2l{white-space:nowrap;font-size:var(--t5)}
.caseroom.reading:not(.hdropen) .st2c{transform:scale(.78)}
.rdback{display:none}.caseroom.reading .rdback{display:inline-flex}
.caseroom.reading.spines .ws{display:block!important;position:relative;--spine:64px}
.caseroom.reading.spines .ws>.rz{display:none!important}
.caseroom.reading.spines .ws>.centre{position:absolute;top:0;bottom:0;left:var(--spine);right:0;height:auto;animation:rdIn .32s cubic-bezier(.2,.7,.2,1)}
@keyframes rdIn{from{opacity:.4;transform:translateX(10px)}to{opacity:1;transform:none}}
.caseroom.reading.spines .ws>.rail{display:flex!important;position:absolute;left:0;top:0;bottom:0;width:var(--spine);z-index:30;padding:10px 8px 20px;overflow:hidden;transition:width .2s ease,box-shadow .2s ease}
.caseroom.reading.spines .ws>.rail:hover,.caseroom.reading.spines .ws>.rail:focus-within{width:320px;overflow:auto;box-shadow:24px 0 48px -24px rgba(0,0,0,.45);transition-delay:.18s,.18s}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within)>*:not([data-sec="papers"]),
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .rh,
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .pfind{display:none}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .plist{display:flex;flex-direction:column;gap:4px}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-height:46px;padding:5px 0;position:relative;border-radius:9px;border-left:3px solid transparent}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper .nm,.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper .n{display:none}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper .spn{display:flex;flex-direction:column;align-items:center;line-height:1}
.caseroom.reading .paper .spn b{font-size:13px;font-weight:650;letter-spacing:.02em;color:var(--ink)}
.caseroom.reading .paper .spn i{font-style:normal;font-size:9px;letter-spacing:.08em;color:var(--ink3);margin-top:3px}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper .rd{position:absolute;top:6px;right:6px;width:6px;height:6px}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .paper.on{background:color-mix(in srgb,var(--tint) 16%,transparent);border-left-color:var(--tint)}
.caseroom.reading .ws>.panel{display:flex!important;position:absolute;top:0;right:0;bottom:0;width:min(400px,86%);z-index:31;transform:translateX(102%);transition:transform .26s cubic-bezier(.2,.7,.2,1),box-shadow .26s;visibility:hidden}
.caseroom.reading.drawer .ws>.panel{transform:none;visibility:visible;box-shadow:-30px 0 60px -30px rgba(0,0,0,.5)}
.drawertab{position:absolute;right:0;top:50%;transform:translateY(-50%);z-index:32;writing-mode:vertical-rl;appearance:none;border:1px solid var(--hair);border-right:0;background:var(--surface);color:var(--ink2);font:inherit;font-size:var(--t5);padding:14px 7px;border-radius:12px 0 0 12px;cursor:pointer;display:flex;align-items:center;gap:8px;box-shadow:-8px 0 20px -14px rgba(0,0,0,.4);transition:right .26s cubic-bezier(.2,.7,.2,1),color .15s}
.drawertab:hover{color:var(--ink)}.drawertab i{font-style:normal;writing-mode:horizontal-tb;font-size:13px;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;background:var(--tint);color:#fff}
.caseroom.reading.drawer .drawertab{right:min(400px,86%)}
.drawertab[hidden]{display:none}
.rdnav{display:inline-flex;align-items:center;gap:2px;margin-right:6px;padding-right:8px;border-right:1px solid var(--hair)}
.rdnav .icobtn{font-size:18px;line-height:1}.rdnav .icobtn[disabled]{opacity:.3;pointer-events:none}
.caseroom.reading .pdfread{background:var(--sunk)}
.pdfread.margins .pg{overflow:visible;margin-right:270px}
.pdfread.margins .pg canvas{border-radius:3px}
.pmargin{position:absolute;left:calc(100% + 20px);top:0;width:236px;height:100%;pointer-events:none}
.mcard{pointer-events:auto;position:absolute;left:0;right:0;appearance:none;text-align:left;font:inherit;font-size:13px;line-height:1.4;color:var(--ink);background:var(--surface);border:1px solid var(--hair);border-left:3px solid var(--c,var(--tint));border-radius:8px;padding:7px 9px;display:flex;gap:7px;align-items:flex-start;box-shadow:0 6px 18px -12px rgba(0,0,0,.4);cursor:pointer;transition:transform .15s,box-shadow .15s}
button.mcard:hover{transform:translateX(-3px);box-shadow:0 10px 24px -12px rgba(0,0,0,.5)}
.mcard b{flex:none;font-size:13px;min-width:18px;height:18px;border-radius:9px;display:grid;place-items:center;background:var(--c,var(--tint));color:#111}
.mcard.mfact{display:flex;cursor:default;--c:var(--teal);background:color-mix(in srgb,var(--teal) 7%,var(--surface))}
.mcard.mfact b{background:none;color:var(--teal)}.mcard.mfact b svg{width:13px;height:13px}
.mcard span{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.annmark.lit{outline:2px solid var(--c);outline-offset:1px}.annpin.lit{transform:translate(-50%,-100%) scale(1.25)}
@media (prefers-reduced-motion:reduce){.caseroom.reading .ws>.centre{animation:none}.caseroom.reading .ws>.rail,.caseroom.reading .ws>.panel,.drawertab{transition:none}}
.caseroom.reading:not(.hdropen) .threadbar .nmrow{flex:none}
/* icon choice (Set up › Appearance) and at install */
.icopick,.wdicons{display:inline-flex;gap:8px}
.icopick button,.wdicons button{appearance:none;border:1px solid var(--hair);background:var(--surface);border-radius:14px;padding:6px 10px 6px 6px;display:inline-flex;align-items:center;gap:8px;cursor:pointer;font:inherit;color:var(--ink2)}
.wdicons button{padding:5px}
.icopick button[aria-checked="true"],.wdicons button[aria-checked="true"]{border-color:var(--tint);box-shadow:0 0 0 2px color-mix(in srgb,var(--tint) 35%,transparent);color:var(--ink)}
.icopick img,.wdicons img{border-radius:10px;display:block}

/* ---------- beta.21: today is marked in every week view ---------- */
.week .day.today{outline:2px solid var(--tint);outline-offset:-2px;background:color-mix(in srgb,var(--tint) 8%,var(--surface))}
.week .day.today>b{color:var(--tint)}
.todaytag{font-style:normal;font-size:13px;font-weight:700;letter-spacing:.02em;padding:1px 7px;border-radius:9px;background:var(--blue);color:var(--blue-ink);margin-left:6px;vertical-align:1px}
.wstrip .wd.today{outline:2px solid var(--tint);outline-offset:-2px;background:color-mix(in srgb,var(--tint) 9%,var(--surface))}
.wstrip .wd.today .d{color:var(--tint)}
.wstrip .ev.extra{display:none}
.tile.sized .wstrip .ev.extra,.tile.g-tall .wstrip .ev.extra{display:flex}
.tile.sized .wstrip .ev.more,.tile.g-tall .wstrip .ev.more{display:none}

/* ---------- beta.21: one editor for contacts and details ---------- */
.pcedit{display:flex;flex-direction:column;gap:14px}
.pchead{display:flex;gap:12px;align-items:flex-start}.pchead p{margin:0;flex:1}
.pcstate{font-size:13px;color:var(--ink3);white-space:nowrap;padding:3px 10px;border-radius:10px;background:var(--sunk)}
.pcstate:empty{display:none}
.pcstate.dirty{color:var(--amber);background:color-mix(in srgb,var(--amber) 14%,transparent);font-weight:600}
.pcedit .dets{grid-template-columns:2fr 1fr 1fr}
.detsrc{font-weight:400;font-size:13px;color:var(--ink3);min-height:1em}.detsrc .linkbtn{font-size:13px}
.detalt b{color:var(--amber)}
.psec h4{margin:0 0 6px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink3)}
.prows{display:flex;flex-direction:column;gap:6px;margin-bottom:6px}
.pedit2{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.5fr) minmax(0,.9fr) 30px;gap:6px;align-items:center}
.pedit2 input,.pedit2 select{min-width:0;background:var(--field);border:1px solid transparent;border-radius:var(--r-sm);color:var(--ink);padding:8px 10px;font:inherit;font-size:var(--t5)}
.pedit2 input:focus,.pedit2 select:focus{outline:none;border-color:color-mix(in srgb,var(--tint) 60%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 22%,transparent)}
.pedit2 .psrc{font-size:13px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pedit2 .psrc .linkbtn{font-size:13px}
.pedit2 .ownrole{border-color:color-mix(in srgb,var(--tint) 50%,transparent)}
.oldnote{margin:2px 0 6px}
.bcontacts{list-style:none;margin:0 0 8px;padding:0;display:flex;flex-direction:column;gap:4px;font-size:14px}.bcontacts .ovrole{margin-right:6px}
.pcguard{position:sticky;bottom:0;display:flex;gap:8px;align-items:center;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--amber) 16%,var(--raised));border:1px solid color-mix(in srgb,var(--amber) 50%,transparent);font-size:14px;font-weight:600}
@media (max-width:820px){.pedit2{grid-template-columns:1fr 1fr 30px}.pedit2 .psrc{grid-column:1/-1}.pcedit .dets{grid-template-columns:1fr}}

/* ---------- beta.21: six steps, warming from blue to green ---------- */
html.ed-cm .threadbar .st6wrap{grid-area:status}
.st6wrap{display:flex;flex-direction:column;gap:6px;--stc:hsl(var(--sth,212) 70% 62%)}
@media (prefers-color-scheme:light){:root:not([data-theme]) .st6wrap{--stc:hsl(var(--sth,212) 62% 40%)}}
:root[data-theme="light"] .st6wrap{--stc:hsl(var(--sth,212) 62% 40%)}
.st6{list-style:none;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:2px;padding:3px;border-radius:14px;background:var(--sunk);border:1px solid var(--hair)}
.st6 li{min-width:0;display:flex}
.st6b{all:unset;box-sizing:border-box;flex:1;cursor:pointer;display:flex;align-items:center;gap:10px;padding:8px 12px;min-height:48px;border-radius:11px;min-width:0;transition:background .15s}
.st6b:hover{background:color-mix(in srgb,var(--surface) 70%,transparent)}
.st6b:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.st6c{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--ink3);display:grid;place-items:center;font-style:normal;font-size:13px;font-weight:700;color:var(--ink3)}
.st6c svg{width:13px;height:13px;fill:none;stroke:#fff;stroke-width:3}
.st6b.done .st6c{background:var(--stc);border-color:var(--stc)}
.st6b.cur{background:var(--surface);box-shadow:inset 0 0 0 2px var(--stc)}
.st6b.cur .st6c{border-color:var(--stc);color:var(--stc);border-width:2px}
.st6t{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.st6l{font-weight:600;font-size:var(--t5);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st6s{font-size:13px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.st6b.done .st6s{color:var(--ink2)}
.st6b.rc-draft .st6s{color:var(--tint);font-weight:600}
.st6b.rc-audit .st6s{color:var(--amber);font-weight:600}
.st6b.rc-audit .st6c{border-color:var(--amber);color:var(--amber)}
.st6b.rc-ready .st6s{color:var(--green);font-weight:600}
.st6meta{display:flex;align-items:center;gap:12px;font-size:13px;color:var(--ink2);padding:0 4px}
.st6track{flex:0 0 160px;height:6px;border-radius:3px;background:var(--sunk);overflow:hidden}
.st6track i{display:block;height:100%;border-radius:3px;background:linear-gradient(90deg,hsl(212 70% 55%),var(--stc));transition:width .4s ease}
.caseroom.reading:not(.hdropen) .st6wrap{flex-direction:row}
.caseroom.reading:not(.hdropen) .st6meta,.caseroom.reading:not(.hdropen) .st6s{display:none}
.caseroom.reading:not(.hdropen) .st6{display:flex;padding:2px;border-radius:999px}
.caseroom.reading:not(.hdropen) .st6b{min-height:30px;padding:3px 11px 3px 5px;gap:6px;border-radius:999px}
.caseroom.reading:not(.hdropen) .st6c{transform:scale(.78)}
@media (max-width:1100px){.st6s{display:none}.st6b{padding:8px}}
@media (max-width:760px){.st6{grid-template-columns:repeat(3,minmax(0,1fr))}.st6s{display:block}}

/* the four views of a case, pinned at the start of the tab strip */
.tabsbar.withviews{align-items:center}
.cviews{display:flex;gap:2px;padding:4px;margin:6px 4px 6px 10px;border-radius:12px;background:var(--sunk);flex:none}
.cviews button{appearance:none;border:0;background:transparent;color:var(--ink2);font:inherit;font-size:var(--t6);font-weight:600;padding:7px 14px;border-radius:9px;cursor:pointer;min-height:32px}
.cviews button:hover:not(:disabled){color:var(--ink);background:color-mix(in srgb,var(--surface) 60%,transparent)}
.cviews button[aria-selected="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.cviews button:disabled{opacity:.45;cursor:default}
.cviews button:focus-visible{outline:2px solid var(--tint);outline-offset:-2px}
.tabsbar.withviews .tabs{align-self:flex-end}

/* the welcome page */
.welcome{max-width:1180px;margin:0 auto;padding:12px max(20px,env(safe-area-inset-left,0px)) 60px;display:flex;flex-direction:column;gap:14px}
.wtop{display:flex;align-items:center}.wtop .sp{flex:1}
.wcols{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:16px;align-items:start}
.wmain,.wside{display:flex;flex-direction:column;gap:16px;min-width:0}
.wsec{background:var(--surface);border-radius:16px;box-shadow:var(--shadow);padding:18px 20px;min-width:0}
.wsec>header{display:flex;align-items:center;gap:6px;margin-bottom:10px}.wsec>header .sp{flex:1}
.wsec h3{margin:0 0 10px;font-family:var(--font-d);font-weight:500;font-size:var(--t3)}.wsec>header h3{margin:0}
.wintro{background:linear-gradient(135deg,color-mix(in srgb,var(--tint) 10%,var(--surface)),var(--surface) 70%)}
.wlead{font-family:var(--font-d);font-size:21px;line-height:1.5;margin:8px 0 8px;color:var(--ink);max-width:62ch}
.wconf{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:12px;background:color-mix(in srgb,var(--amber) 13%,transparent);border:1px solid color-mix(in srgb,var(--amber) 40%,transparent);font-size:14px;line-height:1.45}
.wconf svg{flex:none;width:18px;height:18px;stroke:var(--amber);fill:none;stroke-width:2;margin-top:1px}.wconf span{flex:1}
.wsteps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.wstep{all:unset;box-sizing:border-box;cursor:pointer;width:100%;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px;background:var(--sunk);transition:background .15s}
.wstep:hover{background:color-mix(in srgb,var(--tint) 10%,var(--sunk))}
.wstep:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.wstep .wn{flex:none;width:26px;height:26px;border-radius:50%;background:var(--blue);color:var(--blue-ink);display:grid;place-items:center;font-weight:700;font-size:13px}
.wstep>span:nth-child(2){flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.wstep b{font-weight:600;font-size:var(--t5)}.wstep small{color:var(--ink3);font-size:13px}
.wgoarr svg{width:16px;height:16px;stroke:var(--ink3);fill:none;stroke-width:2}
.wgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.warea{border-radius:12px;padding:12px 14px;background:var(--sunk);border-top:3px solid var(--ac,var(--tint));display:flex;flex-direction:column;gap:6px;min-width:0}
.warea.a-cl{--ac:#3f7fd1}.warea.a-ci{--ac:#2a9d8f}.warea.a-semh{--ac:#c0713a}.warea.a-sp{--ac:#8a63c9}
.warea h4,.warea h3.wah{margin:0;font-size:14px;font-weight:700;font-family:var(--font)}
.warea p{margin:0;font-size:14px;line-height:1.45}
.wsrc{all:unset;cursor:pointer;display:inline-block;margin-left:6px;font-size:13px;color:var(--tint);text-decoration:underline;text-underline-offset:2px}
.wsrc:focus-visible{outline:2px solid var(--tint)}
.warea .btn{align-self:flex-start}
.wpeople{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.wpeople li{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:14px}
.wpeople .linkbtn{font-size:13px}
.wcust{list-style:none;margin:10px 0;padding:0;display:flex;flex-direction:column;gap:4px}
.wcust li{display:flex;align-items:center;gap:6px;padding:6px 10px;border-radius:10px;background:var(--sunk)}.wcust .sp{flex:1}
.wcust label{display:flex;gap:8px;align-items:center;font-size:var(--t5)}
@media (max-width:1000px){.wcols{grid-template-columns:1fr}}
@media (max-width:640px){.wgrid{grid-template-columns:1fr}}

/* the timeline */
.tlview{max-width:900px;margin:0 auto;padding:18px max(20px,env(safe-area-inset-left,0px)) 60px;display:flex;flex-direction:column;gap:14px}
.tlhead{display:flex;align-items:flex-end;gap:8px;flex-wrap:wrap}.tlhead .sp{flex:1}
.tlhead h2{margin:4px 0;font-family:var(--font-d);font-weight:500;font-size:26px}.tlhead p{margin:0}
.tlfilter{align-self:flex-start;flex-wrap:wrap}
ol.tl{list-style:none;margin:0;padding:0;position:relative}
ol.tl::before{content:"";position:absolute;left:83px;top:6px;bottom:6px;width:2px;background:var(--hair)}
.tl-sm::before{left:63px}
.tlm{padding:14px 0 6px 104px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.tli{display:grid;grid-template-columns:70px 28px minmax(0,1fr);gap:0 12px;align-items:start;padding:8px 0;position:relative}
.tl-sm .tli{grid-template-columns:50px 28px minmax(0,1fr);padding:5px 0}
.tld{text-align:right;font-size:13px;color:var(--ink2);font-weight:600;padding-top:4px;display:flex;flex-direction:column}.tld small{font-weight:400;color:var(--ink3)}
.tlic{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--surface);border:2px solid var(--hair);font-size:13px;position:relative;z-index:1;color:var(--ink2)}
.tli.k-contact .tlic{border-color:color-mix(in srgb,var(--teal) 60%,transparent);color:var(--teal)}
.tli.k-stage .tlic{border-color:color-mix(in srgb,var(--green) 60%,transparent);color:var(--green)}
.tli.k-note .tlic{border-color:color-mix(in srgb,var(--amber) 60%,transparent);color:var(--amber)}
.tli.k-evidence .tlic{border-color:color-mix(in srgb,var(--tint) 60%,transparent);color:var(--tint)}
.tli.future{opacity:.75}.tli.future .tlic{border-style:dashed}
.tlt{display:flex;flex-direction:column;gap:2px;font-size:14px;line-height:1.45;padding-top:3px;min-width:0}.tlt b{font-weight:600}.tlt .ink2{overflow-wrap:anywhere}
.welcome{container-type:inline-size}
@container (max-width:880px){.wcols{display:flex;flex-direction:column;align-items:stretch}.wmain,.wside{display:contents}}
.wintro>header{margin-bottom:0}

/* ---------- beta.21: the evidence rail, search inside, one kind of note ---------- */
.pfrow{display:flex;padding:2px 4px 6px}
.railmode{width:100%}.railmode button{flex:1;font-size:13px;padding:4px 6px;min-height:28px}
.rail .psearch{display:flex;align-items:center;gap:6px;margin:0 4px 6px;padding:0 10px;border-radius:10px;background:var(--field)}
.rail .psearch svg{flex:none;width:15px;height:15px;stroke:var(--ink3);fill:none;stroke-width:2}
.rail .psearch input{flex:1;min-width:0;border:0;background:transparent;padding:8px 0;color:var(--ink);font:inherit;font-size:var(--t6);outline:none}
.rail .psearch:focus-within{box-shadow:0 0 0 2px color-mix(in srgb,var(--tint) 50%,transparent)}
.phits{display:flex;flex-direction:column;gap:6px;margin:0 4px 8px}.phits[hidden],.phits:empty{display:none}
.phhead,.phwait{padding:2px 4px}
.phgrp{border-radius:10px;background:var(--sunk);padding:6px}
.phf{font-size:13px;font-weight:600;padding:2px 4px 4px}
.phit{all:unset;box-sizing:border-box;display:block;width:100%;cursor:pointer;padding:5px 6px;border-radius:7px;font-size:13px;line-height:1.4;color:var(--ink2)}
.phit:hover{background:var(--surface)}.phit:focus-visible{outline:2px solid var(--tint)}
.phit b{color:var(--ink);font-weight:600}
.phit mark,.palprev mark{background:color-mix(in srgb,var(--amber) 45%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.wflash{background:color-mix(in srgb,var(--amber) 60%,transparent)!important;border-radius:2px;transition:background .6s}
.paper .pwide{display:none}
.rail[data-mode="wide"] .paper{grid-template-columns:10px minmax(0,1fr) auto 130px}
.rail[data-mode="wide"] .paper .pwide{display:flex;flex-direction:column;font-size:13px;color:var(--ink3);text-align:right}
.rail[data-mode="wide"] .paper .pwide i{font-style:normal;color:var(--tint)}
.rail[data-mode="narrow"] .paper small,.rail[data-mode="narrow"] .paper .n{display:none}
.rail[data-mode="narrow"] .paper .pt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.nhead{padding:0 2px 6px}.nfilter{flex-wrap:wrap}.nfilter button{font-size:13px}
.nfor{display:inline-flex;gap:0;border-radius:8px;background:var(--sunk);padding:2px;flex:none}
.nfor button{appearance:none;border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--ink3);padding:3px 7px;border-radius:6px;cursor:pointer;white-space:nowrap}
.nfor button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.nfor button[aria-pressed="true"][data-nfor$=":report"]{color:var(--green)}
.nfor button:focus-visible{outline:2px solid var(--tint)}
.unote .src{flex-wrap:wrap;gap:6px}
.uann{border-left:3px solid var(--c)}.uann .annitem{background:transparent;padding:0;width:100%}
.welcome{width:100%;box-sizing:border-box}
.wintro>header .eyebrow{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* ---------- beta.21: search, in the middle of the screen ---------- */
.palette{top:50%;width:min(940px,94vw);height:min(640px,86vh);max-height:none;transform:translate(0,calc(-50% + 10px)) scale(.985);transition:opacity .14s,transform .2s var(--spring)}
.palette.on{transform:translate(0,-50%)}
.palin{padding:16px 20px;gap:12px}
.palin svg{width:20px;height:20px}
.palette .palin input{font-size:21px;flex:1;min-width:0}
.palchip{appearance:none;border:0;font:inherit;font-size:13px;font-weight:600;padding:5px 10px;border-radius:8px;background:var(--sunk);color:var(--ink2);white-space:nowrap;cursor:pointer}
.palchip.on{background:color-mix(in srgb,var(--tint) 16%,var(--sunk));color:var(--ink)}
.palesc{flex:none}
.palbody{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.95fr)}
.palette ul{border-right:1px solid var(--line);padding:8px 10px}
.palette li{grid-template-columns:32px minmax(0,1fr) auto;padding:8px 10px}
.palette li .pt{min-width:0;display:flex;flex-direction:column;gap:1px}
.palette li .ptt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.palette li small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette li[aria-selected="true"]{background:color-mix(in srgb,var(--tint) 14%,var(--sunk))}
.palette li:hover:not([aria-selected="true"]){background:var(--sunk)}
.palette li .pi.k-hit b{font-size:9.5px;letter-spacing:.02em;color:var(--tint)}
.palette li mark{background:color-mix(in srgb,var(--amber) 40%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.palette li.palsep{height:1px;padding:0;margin:6px 4px;background:var(--line);cursor:default}
.palprevhost{min-width:0;overflow:auto;background:color-mix(in srgb,var(--sunk) 50%,var(--raised))}
.palprev{padding:18px 20px;display:flex;flex-direction:column;gap:10px}
.palprev h3{margin:0;font-family:var(--font-d);font-weight:500;font-size:22px}
.palprev p{margin:0}
.pvpage{background:var(--paper,var(--surface));color:var(--ink);border-radius:8px;padding:18px 20px;box-shadow:0 1px 0 var(--hair),0 12px 30px -20px rgba(0,0,0,.45);font-size:14.5px;line-height:1.6}
.pvkeys{display:flex;flex-wrap:wrap;gap:8px;font-size:13px;color:var(--ink3)}
.pvkeys span{padding:4px 8px;border-radius:7px;background:var(--surface);border:1px solid var(--hair)}
.palfoot{flex-wrap:wrap;gap:6px 16px;padding:9px 18px}.palfoot .sp{flex:1}
@media (max-width:760px){.palbody{grid-template-columns:1fr}.palprevhost{display:none}.palette ul{border-right:0}}
.kbig{font-size:13px;padding:4px 10px}
.scwarn{min-height:1em;margin:4px 12px;color:var(--ink3)}.scwarn.bad{color:var(--amber);font-weight:600}
.scnote{display:flex;gap:12px;margin-top:14px;padding:12px 14px;border-radius:12px;background:var(--sunk)}
.scnote>svg{flex:none;width:18px;height:18px;stroke:var(--tint);fill:none;stroke-width:2;margin-top:2px}
.scnote p{margin:4px 0 0;max-width:70ch}
.kbtn .kbhint{margin-left:auto;font-size:13px;padding:1px 7px;opacity:.8}
.pvpage p+p{margin-top:8px}

/* ---------- beta.21: the dashboard on 12 columns ---------- */
.dgrid{position:relative;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-auto-rows:var(--grow,56px);grid-auto-flow:row dense;gap:var(--ggap,16px);padding-top:6px;align-items:start}
.dgrid>.tile{min-width:0;height:100%;box-sizing:border-box;overflow:hidden;align-self:stretch}
.dgrid>.tile:not(.sized){align-self:start;height:auto}
.dgrid>.tile.sized{display:flex;flex-direction:column}.dgrid>.tile.sized>.tileb{flex:1;min-height:0;overflow:auto}
.dguides{position:absolute;inset:6px 0 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--ggap,16px);pointer-events:none;z-index:0;opacity:.0;transition:opacity .2s}
.dgrid.editing .dguides{opacity:1}.dguides i{border-radius:8px;background:color-mix(in srgb,var(--tint) 6%,transparent)}
.dgrid.resizing .dguides i{background:color-mix(in srgb,var(--tint) 12%,transparent)}
.dgrid.editing>.tile{position:relative;z-index:1;border:1.5px dashed var(--line);border-radius:14px;padding:10px 12px 12px;background:color-mix(in srgb,var(--raised) 82%,transparent)}
.dgrid.editing>.tile .tileh{cursor:grab;align-items:center;margin-bottom:8px;user-select:none}
.dgrid.editing>.tile .tileb{pointer-events:none}
.dgrid.editing>.tile:not(.sized) .tileb{max-height:260px;overflow:hidden;mask-image:linear-gradient(#000 75%,transparent)}
.dgrid.editing>.tile.dragging{outline:2px solid var(--teal);box-shadow:var(--shadow);opacity:.92}
.dgrid.dragging{cursor:grabbing}
.tsize{font-size:13px;font-weight:600;color:var(--ink3);white-space:nowrap}
.tedge{position:absolute;z-index:3;background:transparent;transition:background .15s}
.tedge.r{top:12px;bottom:12px;right:0;width:12px;cursor:ew-resize}
.tedge.l{top:12px;bottom:12px;left:0;width:12px;cursor:ew-resize}
.tedge.b{left:12px;right:12px;bottom:0;height:12px;cursor:ns-resize}
.dgrid.editing,.dgrid.resizing{user-select:none}
.tedge.r::after,.tedge.l::after{content:"";position:absolute;top:50%;left:3px;width:4px;height:44px;margin-top:-22px;border-radius:3px;background:var(--tint);opacity:.0;transition:opacity .15s}
.tedge.b::after{content:"";position:absolute;left:50%;top:3px;height:4px;width:44px;margin-left:-22px;border-radius:3px;background:var(--tint);opacity:0;transition:opacity .15s}
.dgrid.editing .tile:hover .tedge::after,.tile.resizing .tedge::after{opacity:.85}
.tbadge{position:absolute;right:12px;top:10px;z-index:4;font-size:13px;font-weight:700;padding:4px 10px;border-radius:10px;background:var(--btn,var(--ink));color:var(--btn-ink,var(--surface));opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .15s;pointer-events:none;white-space:nowrap}
.tile.resizing .tbadge{opacity:1;transform:none}
.dgrid>.tile.resizing{outline:2px solid var(--tint);outline-offset:2px;box-shadow:0 0 0 6px color-mix(in srgb,var(--tint) 14%,transparent)}
.presets button{display:inline-flex;align-items:center;gap:6px}.pico{width:22px;height:14px;color:var(--tint);flex:none}.pico rect{stroke-width:1}
@media (max-width:980px){.dgrid>.tile{grid-column:span 12!important}}
.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .psearch,.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .pfrow,.caseroom.reading.spines .ws>.rail:not(:hover):not(:focus-within) .phits{display:none}
@media (max-width:1360px){.kbtn .kbhint{display:none}}

/* ---------- beta.23: Set up never squeezes or cuts off a row ---------- */
.sbody>*{flex-shrink:0}
.srow{grid-template-columns:minmax(240px,1fr) minmax(0,auto)}
.srow .ctl{min-width:0;max-width:min(560px,100%)}
.srow .ctl code,.srow .ctl .tiny,.srow .ctl span{overflow-wrap:anywhere;min-width:0}
.srow .ctl code{font-size:13px}
@media (max-width:900px){.srow{grid-template-columns:1fr}.srow .ctl{justify-content:flex-start;max-width:none}}

/* ---------- beta.24: more room for the case ---------- */
/* the header: name and contacts, four facts at a glance, then the six steps on one slim line */
html.ed-cm .threadbar{grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"who glance acts" "status status status";gap:10px 22px;padding:12px 20px 10px}
html.ed-cm .threadbar .glance{grid-area:glance}
.chiprow{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
html.ed-cm .chiprow .pstrip{margin-top:0}
.glance{display:grid;grid-template-columns:repeat(4,minmax(130px,190px));gap:8px;align-self:start}
.gl{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:1px;min-width:0;padding:8px 12px;border-radius:12px;background:var(--sunk);border:1px solid var(--hair);cursor:pointer;transition:background .15s,border-color .15s;position:relative}
.gl:hover{border-color:color-mix(in srgb,var(--tint) 45%,transparent)}
.gl:focus-visible{outline:2px solid var(--tint);outline-offset:1px}
.gl:disabled{cursor:default;opacity:.8}
.gl small{font-size:13px;letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:var(--ink3)}
.gl b{font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl span{font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gl.due{cursor:default;background:color-mix(in srgb,hsl(var(--dueh,130) 70% 45%) 10%,var(--sunk));border-color:color-mix(in srgb,hsl(var(--dueh,130) 70% 45%) 35%,transparent)}
.gl.due b{color:hsl(var(--dueh,130) 75% 32%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .gl.due b{color:hsl(var(--dueh,130) 75% 68%)}}
:root[data-theme="dark"] .gl.due b{color:hsl(var(--dueh,130) 75% 68%)}
.glwarn{all:unset;cursor:pointer;margin-top:4px;font-size:13px;font-weight:700;color:var(--btn-ink,#fff);background:var(--btn,var(--ink));border-radius:8px;padding:3px 8px;align-self:flex-start}
.glwarn:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.gl.rc-audit b{color:var(--amber)}.gl.rc-ready b{color:var(--green)}.gl.rc-draft b{color:var(--tint)}
@media (max-width:1400px){.glance{grid-template-columns:repeat(4,minmax(104px,150px))}.gl{padding:7px 10px}.gl b{font-size:14px}}
@media (max-width:1000px){html.ed-cm .threadbar{grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"who acts" "glance glance" "status status"}.glance{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* the six steps as one slim line */
.st6wrap{flex-direction:row;align-items:center;gap:10px}
.st6{display:flex;flex-wrap:wrap;align-items:center;gap:0;padding:0;background:none;border:0;border-radius:0}
.st6 li{display:flex;align-items:center}
.st6 li+li::before{content:"";width:14px;height:2px;background:var(--line);margin:0 4px;flex:none}
.st6 li:has(.done)+li::before{background:var(--stc)}
.st6b{flex:none;min-height:32px;padding:4px 12px 4px 5px;gap:7px;border-radius:999px;background:var(--sunk);border:1px solid var(--hair)}
.st6b:hover{background:color-mix(in srgb,var(--sunk) 70%,var(--tint) 10%)}
.st6c{width:22px;height:22px;font-size:13px}
.st6b.cur{background:var(--surface);box-shadow:none;border:2px solid var(--stc);padding:3px 11px 3px 4px}
.st6l{font-size:13.5px}
.st6s{font-size:13px;color:var(--ink3);font-weight:400}
.st6b .st6s::before{content:"· ";color:var(--ink3)}
.st6n{margin-left:auto;font-size:13px;color:var(--ink2);white-space:nowrap}
.st6due{display:none;font-size:13px;font-weight:700;white-space:nowrap;padding:4px 10px;border-radius:999px;background:color-mix(in srgb,hsl(var(--dueh,130) 70% 45%) 12%,var(--sunk))}
@media (max-width:1100px){.st6b:not(.cur) .st6s{display:none}}
@media (max-width:760px){.st6{grid-template-columns:none}.st6s{display:inline}}
/* scrolling down (and the briefing map) shrinks the header to one line */
html.ed-cm .caseroom.slim .threadbar{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"who status acts";align-items:center;gap:16px;padding:6px 14px 6px 18px}
.caseroom.slim .threadbar .who>*:not(.nmrow){display:none}
.caseroom.slim .threadbar .editdet,.caseroom.slim .threadbar .nmrow .say{display:none}
html.ed-cm .caseroom.slim .threadbar .who :is(h1,h2){font-size:19px;white-space:nowrap}
.caseroom.slim .threadbar .glance{display:none}
.caseroom.slim .st6s,.caseroom.slim .st6n{display:none}
.caseroom.slim .st6b.cur .st6s{display:inline}
.caseroom.slim .st6due{display:inline-block;margin-left:auto}
.caseroom .threadbar{transition:padding .18s ease}
/* the side panels fold to thin edges; hovering an edge opens it over the page */
.ws.folded{position:relative;grid-template-columns:40px 0 minmax(0,1fr) 0 40px}
.ws.folded>.rz{display:none!important}
.ws.folded>.rail,.ws.folded>.panel{display:flex!important;position:absolute;top:0;bottom:0;width:40px;z-index:30;overflow:hidden;transition:width .2s ease,box-shadow .2s ease;transition-delay:0s}
.ws.folded>.rail{left:0}.ws.folded>.panel{right:0;flex-direction:column}
.ws.folded>.centre{grid-column:3}
.ws.folded>.rail:hover,.ws.folded>.rail:focus-within{width:var(--rail-w,300px);overflow:auto;box-shadow:24px 0 48px -24px rgba(0,0,0,.45);transition-delay:.15s}
.ws.folded>.panel:hover,.ws.folded>.panel:focus-within{width:var(--panel-w,360px);overflow:auto;box-shadow:-24px 0 48px -24px rgba(0,0,0,.45);transition-delay:.15s}
.ws.folded>.rail:not(:hover):not(:focus-within)>*,.ws.folded>.panel:not(:hover):not(:focus-within)>*{visibility:hidden}
.ws.folded>.rail:not(:hover):not(:focus-within)::after,.ws.folded>.panel:not(:hover):not(:focus-within)::after{position:absolute;top:16px;left:50%;transform:translateX(-50%) rotate(180deg);writing-mode:vertical-rl;font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--ink3);white-space:nowrap}
.ws.folded>.rail:not(:hover):not(:focus-within)::after{content:"EVIDENCE ›"}
.ws.folded>.panel:not(:hover):not(:focus-within)::after{content:"‹ LOG AND NOTES";transform:translateX(-50%)}
/* view tools at the right of the tab strip */
.vtools{display:flex;align-items:center;gap:4px;margin:0 8px 0 auto;flex:none}
.vt{appearance:none;border:0;background:transparent;font:inherit;font-size:13px;font-weight:600;color:var(--tint);padding:6px 10px;border-radius:9px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.vt svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:2}
.vt:hover{background:var(--sunk)}.vt:focus-visible{outline:2px solid var(--tint)}
.vt.strong{background:var(--btn,var(--ink));color:var(--btn-ink,#fff)}
.vtseg button{font-size:13px;padding:4px 12px}
.tabsbar.withviews .tabs{flex:0 1 auto}
#view .centre{container-type:inline-size;container-name:centre}
@container centre (max-width:980px){.vt{font-size:0;gap:0;padding:6px 8px}.vt svg{width:16px;height:16px}.vt.strong,#bfPrint{font-size:13px}}
/* the welcome uses the whole centre */
.wcanvas{padding:16px 20px 60px;display:block}
.welcome{max-width:none;padding:0;gap:16px}
.wcols{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) minmax(0,.9fr);gap:16px;align-items:start}
.wa,.wb,.wc{display:flex;flex-direction:column;gap:16px;min-width:0}
.wb .wgrid{grid-template-columns:1fr}
@container (min-width:1400px){.wcols{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-flow:row dense}.wa,.wb,.wc{display:contents}.wcols .wsec{grid-column:span 2}.wcols .wareas{grid-column:1/-1}.wareas .wgrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container (max-width:1100px){.wcols{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}.wa{grid-column:1;grid-row:1}.wb{grid-column:1;grid-row:2}.wc{grid-column:2;grid-row:1/span 2}.wb .wgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container (max-width:720px){.wcols{display:flex;flex-direction:column}.wa,.wb,.wc{display:contents}.wb .wgrid{grid-template-columns:1fr}}
/* the briefing map: map and words side by side, filling the room */
.otherwrap:has(> .brief2.cm){display:flex;overflow:hidden}
.brief2.cm{flex:1;min-height:0;max-width:none;margin:0;padding:12px 16px;box-sizing:border-box;display:flex;flex-direction:column;gap:12px;width:100%}
.bfhead.printonly{display:none}
.bfsplit{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,440px);gap:14px}
.brief2.cm .bfmap{display:flex;flex-direction:column;min-height:0}
.brief2.cm .mapwrap{flex:1;height:auto;min-height:360px}
.bfwords{min-height:0;overflow:auto;display:flex;flex-direction:column;gap:12px;padding-right:2px}
.bfwh{padding:2px 4px}
.bfwords .bfgrid{grid-template-columns:1fr}.bfwords .bfgrid .bfwide{grid-column:auto}
.brief2.m-map .bfsplit{grid-template-columns:1fr}.brief2.m-map .bfwords{display:none}
.brief2.m-words .bfsplit{display:block;overflow:auto}.brief2.m-words .bfmap{display:none}.brief2.m-words .bfwords{overflow:visible}.brief2.m-words .bfwords .bfgrid{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}.brief2.m-words .bfwords .bfgrid .bfwide{grid-column:span 2}
@media (max-width:1000px){.bfsplit{grid-template-columns:1fr;overflow:auto}.brief2.cm .mapwrap{min-height:420px}}
@media print{body.printbrief .bfhead.printonly{display:flex}}
.chiprow .rbchip,.threadbar .who .chiprow .rbchip{margin-top:0}
.chiprow .pstrip{display:contents}
@media (max-width:1400px){html.ed-cm .chiprow .pchip{max-width:190px}html.ed-cm .chiprow .pchip{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* beta.25: an open document uses the same one-line header as the slim one */
.caseroom.reading:not(.hdropen) .threadbar .glance{display:none}
.caseroom.reading:not(.hdropen) .st6s,.caseroom.reading:not(.hdropen) .st6n{display:none}
.caseroom.reading:not(.hdropen) .st6b.cur .st6s{display:inline}
.caseroom.reading:not(.hdropen) .st6due{display:inline-block;margin-left:auto}
html.ed-cm .caseroom.reading:not(.hdropen) .threadbar{grid-template-columns:auto minmax(0,1fr) auto}
.caseroom.reading:not(.hdropen) .st6{flex-wrap:nowrap;overflow:hidden}
.caseroom.reading:not(.hdropen) .st6b:not(.cur) .st6l{display:none}
.caseroom.reading:not(.hdropen) .st6b:not(.cur){padding:4px 5px}
.caseroom.reading:not(.hdropen) .st6 li{flex:none}
@media (max-width:1500px){.caseroom.slim .st6b:not(.cur) .st6l{display:none}.caseroom.slim .st6b:not(.cur){padding:4px 5px}}

/* ---------- beta.26: reading a piece of evidence ---------- */
/* the evidence stays a list beside the page, at the width you give it; the log and notes stay a drawer on the right */
.caseroom.reading .ws{position:relative;display:grid!important;grid-template-columns:var(--rail-w,300px) 6px minmax(0,1fr) 0 0!important}
.caseroom.reading .ws.norail{grid-template-columns:0 0 minmax(0,1fr) 0 0!important}
.caseroom.reading .ws>.rz.r{display:none!important}
.caseroom.reading .ws>.centre{grid-column:3;position:relative;animation:rdIn .32s cubic-bezier(.2,.7,.2,1)}
.caseroom.reading .rail .paper.on{background:color-mix(in srgb,var(--tint) 14%,transparent);box-shadow:inset 3px 0 0 var(--tint)}
.rdback{display:none!important}
/* one toolbar */
.tabsbar.withdoc{flex-wrap:nowrap;align-items:center;gap:6px;padding:4px 8px 4px 0}
.rtools{display:flex;align-items:center;gap:6px;flex:1 1 auto;min-width:0;overflow:hidden}
.rtools .dochead{border:0;padding:0 4px;min-height:0;background:none;flex:1 1 auto;min-width:0;gap:6px}
.rtools .dochead .grow{flex:1}
.rtools .rbar{display:flex;align-items:center;gap:4px;border:0;padding:0;background:none;flex:none;order:0}
.rtools .rbar .sp,.rtools .rbar .hidesm{display:none}
.rtools .rbar #pdfPos{white-space:nowrap;margin-right:6px}
.rtools .rdkeep{flex:none}
.rtools .rdkeep svg{width:14px;height:14px;stroke:currentColor;fill:none;stroke-width:2}
.tabs.onetab{display:none}
.tabsbar.withdoc .tabs{flex:0 1 auto;max-width:30%}
#headHost:empty{display:none}
@container centre (max-width:1100px){.rtools .dochead .dsub,.rtools .rbar #pdfPos{display:none}}
@container centre (max-width:900px){.rtools .rdkeep{font-size:0;gap:0}.cviews button{padding:7px 9px}}
/* the evidence column at any width */
.rz.l{position:relative}
.rz.l.on::before{content:attr(data-w) " · double-click to fit";position:absolute;top:50%;left:14px;transform:translateY(-50%);z-index:40;white-space:nowrap;font-size:13px;font-weight:700;padding:5px 10px;border-radius:9px;background:var(--btn,var(--ink));color:var(--btn-ink,#fff);pointer-events:none}
.rz.l.fold::before{content:"Let go to fold the evidence away"}

.pfrow:empty{display:none}
.rail[data-mode="narrow"]{padding-left:4px;padding-right:4px}
.rail[data-mode="narrow"] .rsec:not([data-sec="papers"]),.rail[data-mode="narrow"] .railtop,.rail[data-mode="narrow"] .psearch,.rail[data-mode="narrow"] .phits,.rail[data-mode="narrow"] .rh .tiny{display:none}
.rail[data-mode="narrow"] .paper{display:flex!important;flex-direction:column;align-items:center;gap:3px;padding:7px 2px;min-height:0;position:relative}
.rail[data-mode="narrow"] .paper .nm,.rail[data-mode="narrow"] .paper .n,.rail[data-mode="narrow"] .paper .pwide{display:none}
.rail[data-mode="narrow"] .paper .spn{display:flex;flex-direction:column;align-items:center;gap:3px;line-height:1}
.rail[data-mode="narrow"] .paper .spn i{font-style:normal;font-size:9.5px;font-weight:800;letter-spacing:.04em;color:var(--tint);background:color-mix(in srgb,var(--tint) 12%,transparent);border-radius:6px;padding:6px 5px}
.rail[data-mode="narrow"] .paper .spn b{font-size:13px;font-weight:500;color:var(--ink2);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail[data-mode="narrow"] .paper .rd{position:absolute;top:6px;right:8px}

.rtools>.dochead{display:contents}
.rtools .rdnav{order:0;display:inline-flex;align-items:center;gap:2px;white-space:nowrap;flex:none}
.rtools .dname{order:0;min-width:0;flex:0 1 auto}.rtools .dsub{order:0}
.rtools .grow{order:1;flex:1 1 0}
.rtools .rbar{order:2}
.rtools #docFocus,.rtools #docMenu,.rtools [data-openext],.rtools [data-showin],.rtools [data-sharefile]{order:3;flex:none}
.rtools .rdkeep{order:4}
@container centre (max-width:1050px){.rtools .rbar .btn{font-size:0;gap:0;padding:6px 7px}.rtools .rbar #pdfOut{display:none}.rtools #docFocus{font-size:13px}}
@container centre (max-width:820px){.cviews button{padding:6px 8px;font-size:13px}.rtools .dname{display:none}}

/* ---------- beta.27 (Labs): the guided tour ---------- */
#guide{position:fixed;inset:0;z-index:200;pointer-events:auto}
#guide .gshade{position:absolute;inset:0;background:rgba(8,12,20,.55);backdrop-filter:blur(3px)}
#guide.center{display:grid;place-items:center;padding:20px}
#guide .gspot{position:fixed;border-radius:14px;box-shadow:0 0 0 9999px rgba(8,12,20,.58),0 0 0 3px var(--tint),0 0 30px 6px color-mix(in srgb,var(--tint) 40%,transparent);transition:left .35s cubic-bezier(.2,.7,.2,1),top .35s cubic-bezier(.2,.7,.2,1),width .35s cubic-bezier(.2,.7,.2,1),height .35s cubic-bezier(.2,.7,.2,1);pointer-events:none}
#guide .gspot.none{box-shadow:0 0 0 9999px rgba(8,12,20,.58);width:0;height:0;left:50%;top:50%}
#guide.busy .gbub{opacity:.4}
.gbub{position:fixed;z-index:2;background:var(--raised);color:var(--ink);border-radius:18px;padding:16px 18px 14px;box-shadow:0 30px 70px -20px rgba(0,0,0,.55),0 0 0 1px var(--line);display:flex;flex-direction:column;gap:8px;animation:gIn .32s cubic-bezier(.2,.7,.2,1);transition:left .35s cubic-bezier(.2,.7,.2,1),top .35s cubic-bezier(.2,.7,.2,1)}
@keyframes gIn{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
.gbub .garrow{position:absolute;width:16px;height:16px;background:var(--raised);transform:rotate(45deg);box-shadow:-1px -1px 0 var(--line)}
.gbub[data-side="below"] .garrow{top:-8px;margin-left:-8px}
.gbub[data-side="above"] .garrow{bottom:-8px;margin-left:-8px;box-shadow:1px 1px 0 var(--line)}
.gbub[data-side="right"] .garrow{left:-8px;margin-top:-8px;box-shadow:-1px 1px 0 var(--line)}
.gbub[data-side="left"] .garrow{right:-8px;margin-top:-8px;box-shadow:1px -1px 0 var(--line)}
.gbub[data-side="inside"] .garrow,.gbub[data-side="none"] .garrow{display:none}
.gbub .gtop{display:flex;align-items:center;gap:10px}.gbub .gtop .linkbtn{margin-left:auto;font-size:13px}
.gstep{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--tint)}
.gdots{display:flex;gap:3px}.gdots i{width:6px;height:6px;border-radius:50%;background:var(--line)}.gdots i.done{background:color-mix(in srgb,var(--tint) 50%,transparent)}.gdots i.on{background:var(--tint);width:16px;border-radius:3px}
.gbub h3{margin:2px 0 0;font-family:var(--font-d);font-weight:500;font-size:21px;line-height:1.25}
.gbub p{margin:0;font-size:14.5px;line-height:1.55;color:var(--ink2)}
.gwhy{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:12px;background:color-mix(in srgb,var(--green) 10%,var(--sunk));font-size:13.5px;line-height:1.45;color:var(--ink2)}
.gwhy svg{flex:none;width:18px;height:18px;stroke:var(--green);fill:none;stroke-width:2;margin-top:1px}.gwhy b{color:var(--ink);font-weight:600}
.gacts{display:flex;align-items:center;gap:8px;margin-top:4px}.gacts .sp{flex:1}
.gcard{position:relative;z-index:2;width:min(760px,100%);max-height:92vh;overflow:auto;background:var(--raised);border-radius:26px;padding:30px 34px 26px;box-shadow:0 40px 100px -30px rgba(0,0,0,.6),0 0 0 1px var(--line);display:flex;flex-direction:column;gap:14px;animation:gIn .4s cubic-bezier(.2,.7,.2,1)}
.gcard h2{margin:0;font-family:var(--font-d);font-weight:500;font-size:32px;line-height:1.2}
.gcard .glead{margin:0;font-size:16px;line-height:1.6;color:var(--ink2)}
.gmark{width:84px;height:84px}.gmark.sm{width:56px;height:56px}.gmark svg{width:100%;height:100%}
.gwhy3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.gwhy3>div{border-radius:14px;padding:12px 14px;background:var(--sunk);display:flex;flex-direction:column;gap:4px}.gwhy3 b{font-size:14.5px}.gwhy3 span{font-size:13px;color:var(--ink2);line-height:1.45}
.groles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.groles button{all:unset;box-sizing:border-box;cursor:pointer;border-radius:14px;padding:12px 14px;border:1.5px solid var(--line);display:flex;flex-direction:column;gap:4px;background:var(--surface)}
.groles button b{font-size:14.5px}.groles button small{font-size:13px;color:var(--ink2);line-height:1.4}
.groles button[aria-checked="true"]{border-color:var(--tint);background:color-mix(in srgb,var(--tint) 10%,var(--surface));box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 20%,transparent)}
.groles button:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.gfacts{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px;font-size:14.5px;color:var(--ink2)}
.labtag{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:7px;background:color-mix(in srgb,var(--amber) 22%,transparent);color:var(--amber);margin-right:6px;vertical-align:1px}
#abVer{cursor:default;user-select:none}
@media (max-width:760px){.gwhy3,.groles{grid-template-columns:1fr}.gcard{padding:22px}}
@media (prefers-reduced-motion:reduce){.gbub,.gcard{animation:none}#guide .gspot,.gbub{transition:none}}
@media (max-width:1500px){.top{grid-template-columns:auto minmax(110px,440px) minmax(0,1fr)}}
@media (max-width:1100px){.top{grid-template-columns:auto minmax(44px,240px) minmax(0,1fr)}}

/* ---------- beta.28: Set up › Privacy, No internet, the connection log ---------- */
.nvorg{background:color-mix(in srgb,var(--blue) 10%,transparent);border:1px solid color-mix(in srgb,var(--blue) 30%,transparent);border-radius:10px;padding:8px 12px;margin:0 0 12px}
.nvmaster.on{border-color:color-mix(in srgb,var(--amber) 55%,transparent);background:color-mix(in srgb,var(--amber) 8%,var(--sunk))}
.nvh4{font-size:var(--t5);font-weight:600;margin:18px 0 6px;color:var(--ink2)}
.nvrow .lbl small{display:block;max-width:62ch}
.nvrow .lbl small b{font-weight:600;color:var(--ink2)}
.nvrow.nvoff .lbl{color:var(--ink3)}
.nvnever{max-width:72ch;margin:10px 2px 0;line-height:1.5}
.nvlogwrap{padding:4px 12px 12px}
.nvonly{display:inline-flex;gap:6px;align-items:center;margin:4px 0 8px;color:var(--ink2)}
.nvlog{max-height:340px;overflow:auto;border:1px solid var(--hair);border-radius:10px}
.nvlog table{width:100%;border-collapse:collapse;font-size:var(--t6)}
.nvlog th{position:sticky;top:0;background:var(--surface);text-align:left;font-weight:600;color:var(--ink2);padding:7px 10px;border-bottom:1px solid var(--hair)}
.nvlog td{padding:6px 10px;border-bottom:1px solid color-mix(in srgb,var(--hair) 80%,transparent);vertical-align:top}
.nvlog td.num{white-space:nowrap;color:var(--ink3)}
.nvlog td.nvh{font-family:var(--mono);font-size:.92em;word-break:break-all;min-width:120px}
.nvlog tr.nvb td{color:var(--ink3)}
.nvempty{padding:6px 2px}
.netbadge{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:99px;border:1px solid color-mix(in srgb,var(--amber) 55%,transparent);background:color-mix(in srgb,var(--amber) 14%,transparent);color:var(--ink);font:inherit;font-size:var(--t6);font-weight:600;cursor:pointer;white-space:nowrap}
.netbadge svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round}
.netbadge:hover{background:color-mix(in srgb,var(--amber) 22%,transparent)}
@media (max-width:1380px){.netbadge span{display:none}.netbadge{padding:0 7px}}
.cpoff{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:28px 24px;max-width:44ch}
.cpoff p{margin:0;color:var(--ink2);font-size:var(--t5)}

/* beta.30: Show details opens the folded case header where you are */
.hdrtog{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;font-weight:600}
.hdrtog.open svg{width:18px;height:18px}
.hdrtog svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.caseroom.canslim:not(.hdropen) .threadbar .who :is(h1,h2){cursor:pointer}
.caseroom.canslim:not(.hdropen) .threadbar .who :is(h1,h2):hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#saveState.failed{cursor:pointer;color:var(--red)}#saveState.failed:hover{text-decoration:underline}
/* beta.32: text evidence is read, not edited */
.mdbar{display:flex;align-items:center;justify-content:space-between;gap:10px;max-width:820px;margin:0 auto 8px;padding:0 4px}
.cmpage.mdread h2{font-size:1.35em;margin:.2em 0 .5em}.cmpage.mdread h3{font-size:1.15em;margin:1em 0 .4em}.cmpage.mdread h4,.cmpage.mdread h5,.cmpage.mdread h6{font-size:1em;margin:.9em 0 .3em}
.cmpage.mdread ul,.cmpage.mdread ol{padding-left:1.4em;margin:.4em 0 .8em}.cmpage.mdread li{margin:.2em 0}
.cmpage.mdread blockquote{border-left:3px solid var(--hair);margin:.6em 0;padding:.2em .9em;color:var(--ink2)}
.cmpage .txtread{white-space:pre-wrap;font-family:inherit;margin:0}
/* beta.32: the open document's name keeps room in the reading toolbar, and names never clip without an ellipsis */
#rtools .dochead{min-width:0}
#rtools .dname{flex:0 1 auto;min-width:min(14ch,100%);max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
#rtools .dsub{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:1500px){#rtools .dsub,#rtools .hidesm{display:none}}
.pchip{min-width:0}.pchip .pn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pchip .pr,.pchip small{flex:none}
.threadbar .who :is(h1,h2){overflow:hidden;text-overflow:ellipsis}
/* Save and Close stay in view at the foot of a long sheet */
.sheet-body .acts:last-child{position:sticky;bottom:-26px;z-index:3;background:var(--raised);padding-top:12px;padding-bottom:26px;margin-bottom:-26px;box-shadow:0 -12px 14px -12px rgba(0,0,0,.3)}
/* beta.34: a closed side panel leaves a labelled edge; a click opens it (no hover) */
.ws{position:relative}
.edgetab{display:none;position:absolute;top:0;bottom:0;width:26px;z-index:20;align-items:flex-start;justify-content:center;padding:14px 0 0;border:0;background:var(--sunk);color:var(--ink3);cursor:pointer;font:inherit;font-size:var(--t6);font-weight:650;letter-spacing:.08em;text-transform:uppercase}
.edgetab span{writing-mode:vertical-rl;white-space:nowrap}
.edgetab.l{left:0;border-right:1px solid var(--hair)}.edgetab.l span{transform:rotate(180deg)}
.edgetab.r{right:0;border-left:1px solid var(--hair)}
.edgetab:hover,.edgetab:focus-visible{color:var(--ink);background:color-mix(in srgb,var(--tint) 12%,var(--sunk))}
.edgetab.l span::after{content:" ›"}.edgetab.r span::before{content:"‹ "}
.ws.norail>.edgetab.l,.ws.nopanel>.edgetab.r{display:flex}
.ws.norail>.centre{padding-left:26px}.ws.nopanel>.centre{padding-right:26px}
.caseroom.reading .ws>.edgetab.r,.ws.focus>.edgetab,.ws.narrow>.edgetab{display:none!important}
.caseroom.reading .ws.nopanel>.centre,.ws.focus>.centre{padding-right:0}

/* Word layout tables: words are never split letter by letter; a wide table scrolls instead of squeezing, and empty grid cells take no room */
.cmpage table{max-width:none}
.cmpage td:empty,.cmpage td:has(> p:only-child:empty){padding:0;border-color:transparent;width:0}
.cmpage td>p:first-child{margin-top:0}.cmpage td>p:last-child{margin-bottom:0}
/* beta.34: schools now and before; sentences from the papers per area */
.wschools{display:flex;gap:10px;align-items:flex-start;margin-top:10px;padding:10px 12px;border-radius:12px;background:var(--fill,rgba(127,127,127,.08));border:1px solid var(--line);font-size:14px;line-height:1.45}
.wschools svg{flex:none;width:18px;height:18px;stroke:var(--ink3);fill:none;stroke-width:2;margin-top:1px}.wschools span{flex:1}
.wareas>header{display:flex;align-items:baseline;gap:8px}.wareas>header .sp{flex:1}
.wqhd{display:block;font-size:13px;letter-spacing:.02em;color:var(--ink3);margin:2px 0 4px}
.wq{border-left:2px solid var(--line);padding:2px 0 2px 10px;margin:6px 0}
.wq p{color:var(--ink2);font-style:normal}
.wqact{display:flex;align-items:center;gap:8px;margin-top:4px}.wqact .wsrc{margin-left:0}.wqact .btn{margin-left:auto}
.wqact .btn svg{width:13px;height:13px;margin-right:4px}
/* beta.35: join entries for the same person; changes that were not saved come back */
.pedit2{grid-template-columns:minmax(0,1.25fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.5fr) minmax(0,.9fr) 30px 30px}
.pedit2 .pjoin svg{width:15px;height:15px}
.pedit2.pjust{animation:pjust 1.4s ease}
@keyframes pjust{0%{background:color-mix(in srgb,var(--tint) 22%,transparent)}100%{background:transparent}}
.pcjoin,.pcdraft{display:flex;gap:10px;align-items:center;margin:8px 0;padding:9px 12px;border-radius:12px;font-size:14px;line-height:1.4;border:1px solid var(--line);background:var(--fill,rgba(127,127,127,.08))}
.pcdraft{background:color-mix(in srgb,var(--amber) 13%,transparent);border-color:color-mix(in srgb,var(--amber) 40%,transparent)}
.pcjoin svg,.pcdraft svg{flex:none;width:17px;height:17px;stroke:var(--ink3);fill:none;stroke-width:2}.pcjoin span,.pcdraft span{flex:1}
.wareas .wmore{display:block;margin:6px auto 0}
.warea.wopen{box-shadow:0 0 0 1px color-mix(in srgb,var(--tint) 35%,transparent)}
@media (prefers-reduced-motion:reduce){.pedit2.pjust{animation:none}}
@media (max-width:820px){.pedit2{grid-template-columns:1fr 1fr 30px 30px}}
/* the school's name opens a card about the school */
.schoolname{all:unset;cursor:pointer;border-bottom:1px dotted color-mix(in srgb,currentColor 55%,transparent)}
.schoolname:hover,.schoolname:focus-visible{color:var(--tint);border-bottom-color:var(--tint)}.schoolname:focus-visible{outline:2px solid var(--tint);outline-offset:2px;border-radius:3px}
.schoolpop{position:fixed;z-index:400;display:none;max-height:min(70vh,560px);overflow:auto;padding:14px 16px;border-radius:14px;background:var(--raised);color:var(--ink);border:1px solid var(--line);box-shadow:var(--elev);font-size:14px;line-height:1.45}
.schoolpop.on{display:block;animation:spin1 .14s ease-out}
@keyframes spin1{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.schoolpop header{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}.schoolpop header b{flex:1;font-size:15px}
.schoolpop .spabout{color:var(--ink2);margin:4px 0 8px}
.spdl{display:grid;grid-template-columns:72px 1fr;gap:5px 10px;margin:0}.spdl dt{color:var(--ink3);font-size:13px;padding-top:1px}.spdl dd{margin:0}.spdl .linkbtn{display:block;margin-top:2px}
.schoolpop .sgrades{margin:4px 0 0;padding-left:18px;font-size:13px}
.spbusy{display:flex;gap:8px;align-items:center}.spbusy .spin{width:12px;height:12px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--tint);animation:sprot 0.9s linear infinite}
@keyframes sprot{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.schoolpop.on,.spbusy .spin{animation:none}}
.schoolpop a{color:var(--tint)}
/* beta.37: merge any entries, everything else found, the school's people checked */
.pedit2{grid-template-columns:22px minmax(0,1.2fr) minmax(0,1.3fr) minmax(0,1fr) minmax(0,1.5fr) minmax(0,.9fr) 30px}
.pedit2 .psel{display:flex;align-items:center;justify-content:center;cursor:pointer}.pedit2 .psel input{width:16px;height:16px;accent-color:var(--tint);cursor:pointer}
.pedit2.pmerging{background:color-mix(in srgb,var(--tint) 10%,transparent);border-radius:var(--r-sm)}
.pcmerge{position:sticky;top:0;z-index:3;display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:8px 0;padding:10px 12px;border-radius:12px;background:var(--raised);border:1px solid color-mix(in srgb,var(--tint) 45%,transparent);box-shadow:var(--elev);font-size:14px}
.pcmerge[data-open]{display:block}.pcmerge .sp{flex:1}
.pcmerge .pmhead{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;margin-bottom:8px}
.pmf{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center;border:0;margin:0 0 8px;padding:0}.pmf legend,.pmf>span{float:left;width:70px;color:var(--ink3);font-size:13px;padding:0}
.pmf label{display:flex;gap:6px;align-items:center;cursor:pointer}.pmf input{accent-color:var(--tint)}
.pcalso .palso{display:grid;grid-template-columns:52px minmax(0,1.1fr) minmax(0,2fr) auto auto;gap:8px;align-items:center;padding:6px 0;border-bottom:1px solid var(--line);font-size:13.5px}
.palso .pak{font-size:13px;color:var(--ink3)}.palso .pactx{color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pccheck{margin-top:8px}.pccheck ul{list-style:none;margin:4px 0 0;padding:0;font-size:13.5px}.pccheck li{padding:3px 0 3px 22px;position:relative;line-height:1.4}
.pccheck li::before{content:'·';position:absolute;left:6px;color:var(--ink3)}.pccheck li.ok::before{content:'✓';color:var(--green,#2e9e5b);left:3px}.pccheck li.warn::before{content:'!';color:var(--amber);font-weight:700;left:6px}
.pccheck .spin{display:inline-block;width:10px;height:10px;border-radius:50%;border:2px solid var(--line);border-top-color:var(--tint);animation:sprot .9s linear infinite;vertical-align:-1px}
@media (max-width:820px){.pedit2{grid-template-columns:22px 1fr 1fr 30px}.pcalso .palso{grid-template-columns:1fr auto}.palso .pactx,.palso .pak{display:none}}
/* beta.38: week cells that stay readable when narrow; parents' meetings */
.wstrip .d{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;min-width:0}.wstrip .d small{margin-left:0}
.wstrip .d .todaytag{margin-left:0;flex:none}
.wstrip .ev{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow-wrap:break-word;hyphens:auto}
.wstrip .ev.meet,.mday .ev.meet{color:var(--ink);font-weight:600;border-left-style:dashed}
.tick.key{background:inherit;color:inherit;border-color:var(--hair)}
.month.wd5 .dow,.month.wd5 .mgrid{grid-template-columns:repeat(5,1fr)}
.month .legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px}.month .legend .sp{flex:1}.month .mwe{display:flex;gap:5px;align-items:center;cursor:pointer}
.pfind.pdone{color:var(--green,#2e9e5b)}
/* beta.39: what is already done shows on the step itself */
.st6p{display:inline-flex;gap:3px;align-items:center;margin-left:2px}
.st6p i{width:7px;height:7px;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--ink3) 70%,transparent);display:block}
.st6p i.on{background:var(--stc,var(--green));border-color:var(--stc,var(--green))}
.st6b.part .st6c{border-color:var(--stc);color:var(--stc);background:conic-gradient(color-mix(in srgb,var(--stc) 22%,transparent) 0 50%,transparent 50% 100%)}
.st6b.part{border-color:color-mix(in srgb,var(--stc) 45%,transparent)}
/* beta.40: the assessment not booked yet */
.st6b.unbooked{border-color:color-mix(in srgb,var(--amber) 60%,transparent);background:color-mix(in srgb,var(--amber) 10%,transparent)}
.st6b.unbooked .st6c{border-color:var(--amber);color:var(--amber)}.st6b.unbooked .st6s{color:var(--amber)}
.trow.remind .tb b{color:var(--amber)}
.loglist li .lh .icobtn{opacity:0;transition:opacity .15s}.loglist li:hover .lh .icobtn,.loglist li:focus-within .lh .icobtn{opacity:1}
.logedit{display:flex;flex-direction:column;gap:6px;margin-top:2px}.logedit .lerow{display:grid;grid-template-columns:110px 1fr 170px;gap:6px}
.logedit select,.logedit input,.logedit textarea{background:var(--field);border:1px solid var(--hair);border-radius:var(--r-sm);color:var(--ink);padding:6px 8px;font:inherit;font-size:13.5px;min-width:0}
.logedit textarea{resize:vertical;line-height:1.45}.logedit .acts{display:flex;gap:6px}
@media (max-width:600px){.logedit .lerow{grid-template-columns:1fr 1fr}}
/* Ctrl+K: the chosen case at a glance */
.pvcase h3{margin:2px 0 4px}.palprev .pvwarn{color:var(--amber);font-weight:600}
.pvsteps{list-style:none;display:flex;flex-wrap:wrap;gap:4px;margin:10px 0;padding:0}
.pvsteps li{font-size:13px;padding:3px 8px;border-radius:999px;border:1px solid var(--hair);color:var(--ink3)}
.pvsteps li.done{background:color-mix(in srgb,var(--green) 16%,transparent);border-color:color-mix(in srgb,var(--green) 40%,transparent);color:var(--ink)}
.pvppl{list-style:none;margin:8px 0;padding:0;display:grid;gap:3px;font-size:13px}.pvppl .num{color:var(--tint)}
.pvlast{margin-top:10px;padding:8px 10px;border-radius:10px;background:var(--field)}.pvlast p{margin:3px 0 0}
/* the briefing inside the welcome page */
.wbrief .wbgrid{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:18px;margin-top:6px}
.wbrief .eyebrow{display:block;margin-bottom:6px}
.wbrief .bffocus{width:100%;box-sizing:border-box}
.wbmap{margin-top:14px;border-top:1px solid var(--hair);padding-top:10px}
.wbmap summary{cursor:pointer;font-weight:600;font-size:14px;list-style:none;display:flex;gap:8px;align-items:baseline}
.wbmap summary::before{content:'›';display:inline-block;transition:transform .15s;color:var(--ink3)}.wbmap[open] summary::before{transform:rotate(90deg)}
.wbmap .inwelcome{margin-top:10px}
@media (max-width:900px){.wbrief .wbgrid{grid-template-columns:1fr}}
.welcome .wfull{display:flex;flex-direction:column;gap:14px}.welcome .wfull .wsec{margin:0}.welcome .wfull .wareas .wgrid{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
.rdcl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.rdcl input,.rdcl select{background:var(--field);border:1px solid var(--hair);border-radius:var(--r-sm);color:var(--ink);padding:6px 8px;font:inherit;font-size:13px}.rdcl input{width:230px}
/* a tile made taller than its content: the content's card grows with it, so no bare space under it */
.tile.sized{display:flex;flex-direction:column}.tile.sized>.tileb{flex:1;display:flex;flex-direction:column;min-height:0}
.tile.sized>.tileb>.todaycard,.tile.sized>.tileb>.thenlist,.tile.sized>.tileb>.river{flex:1}
.todaycard .tnow:last-child{margin-top:auto}
.tgrip::after{opacity:.6}
/* beta.40 polish: progress readable at a glance; quieter labels */
.st6b.done{background:color-mix(in srgb,var(--stc) 11%,var(--sunk));border-color:color-mix(in srgb,var(--stc) 35%,transparent)}
.st6b.done .st6l{color:var(--ink)}
.st6 li:has(.done)+li::before{height:3px;border-radius:2px}
.st6b .st6s::before{content:none}.st6b .st6s{margin-left:2px}
.st6b .st6p+.st6s{margin-left:0}
.eyebrow{text-transform:none;letter-spacing:.01em;font-weight:600;font-size:13px}
.wsec>header h3,.wsec>h3{letter-spacing:-.005em}
.welcome .wsec{transition:box-shadow .2s}.welcome .wsec:focus-within{box-shadow:0 0 0 1px color-mix(in srgb,var(--tint) 30%,transparent)}

/* ===================================================================================
   Bounded look (beta.41). Tokens from the Bounded Uncertainty Apps design system:
   navy dark (#10151f, cards #212a3b, fields #2a3447) and a soft blue light (#f2f4f8 with #e4eefb),
   tint #4cc2ff / #2f74c9, aqua #5fd3cc, peach #ffab8a, sky #8bb7e9. Lora italic for names and titles,
   Figtree for everything you work with. One memorable element: the journey line on the case page.
   =================================================================================== */
:root{
  --bg:#10151f; --soft:#141a26; --glow1:#15253b; --glow2:#11282b; --glow3:#211d2a;
  --surface:#151c29; --solid:#212a3b; --sunk:#1a2130; --field:#2a3447; --paper:#1b2231; --grouped:#0d121b; --raised:#263045;
  --ink:#f3f5f9; --ink2:#c9d0db; --ink3:#a3acba; --line:rgba(255,255,255,.10); --hair:rgba(255,255,255,.07);
  --blue:#6cc6ff; --blue-soft:#18324b; --tint:#4cc2ff; --btn:#4cc2ff; --btn-ink:#04121d; --btn-h:#7ad3ff;
  --teal:#5fd3cc; --teal-soft:#143433; --aqua:#5fd3cc; --peach:#ffab8a; --sky:#8bb7e9;
  --green:#5fd3cc; --green-soft:#143433;
  --shadow:0 0 0 1px rgba(255,255,255,.06),0 18px 40px -26px rgba(0,0,0,.85);
  --shadow-h:0 0 0 1px rgba(255,255,255,.10),0 26px 54px -26px rgba(0,0,0,.9);
  --elev:0 0 0 1px rgba(255,255,255,.08),0 30px 70px -30px rgba(0,0,0,.9);
  --r-lg:22px; --r-md:16px; --r-sm:11px;
  --jline:rgba(255,255,255,.13); --node-bg:#10151f;
}
:root[data-theme="light"]{
  --bg:#f2f4f8; --soft:#f6f8fb; --glow1:#e4eefb; --glow2:#e2f4f2; --glow3:#fbeee8;
  --surface:#fbfcfe; --solid:#ffffff; --sunk:#e9edf4; --field:#eef1f6; --paper:#ffffff; --grouped:#e6ebf2; --raised:#ffffff;
  --ink:#17202f; --ink2:#3f4651; --ink3:#5d6571; --line:rgba(23,32,47,.14); --hair:rgba(23,32,47,.09);
  --blue:#2867b5; --blue-soft:#e3edfa; --tint:#2867b5; --btn:#2f74c9; --btn-ink:#ffffff; --btn-h:#2763ae;
  --teal:#0f766e; --teal-soft:#dcf3f0; --aqua:#2aa8a0; --peach:#d9693f; --sky:#4f86c6;
  --green:#0f766e; --green-soft:#dcf3f0;
  --shadow:0 0 0 1px rgba(23,32,47,.07),0 1px 2px rgba(23,32,47,.05),0 16px 34px -24px rgba(47,116,201,.35);
  --shadow-h:0 0 0 1px rgba(23,32,47,.10),0 2px 4px rgba(23,32,47,.05),0 24px 48px -24px rgba(47,116,201,.42);
  --elev:0 0 0 1px rgba(23,32,47,.06),0 30px 70px -30px rgba(47,116,201,.45);
  --jline:rgba(23,32,47,.14); --node-bg:#f2f4f8;
}
@media (prefers-color-scheme:light){:root:not([data-theme]){
  --bg:#f2f4f8; --soft:#f6f8fb; --glow1:#e4eefb; --glow2:#e2f4f2; --glow3:#fbeee8;
  --surface:#fbfcfe; --solid:#ffffff; --sunk:#e9edf4; --field:#eef1f6; --paper:#ffffff; --grouped:#e6ebf2; --raised:#ffffff;
  --ink:#17202f; --ink2:#3f4651; --ink3:#5d6571; --line:rgba(23,32,47,.14); --hair:rgba(23,32,47,.09);
  --blue:#2867b5; --blue-soft:#e3edfa; --tint:#2867b5; --btn:#2f74c9; --btn-ink:#ffffff; --btn-h:#2763ae;
  --teal:#0f766e; --teal-soft:#dcf3f0; --aqua:#2aa8a0; --peach:#d9693f; --sky:#4f86c6;
  --green:#0f766e; --green-soft:#dcf3f0;
  --shadow:0 0 0 1px rgba(23,32,47,.07),0 1px 2px rgba(23,32,47,.05),0 16px 34px -24px rgba(47,116,201,.35);
  --shadow-h:0 0 0 1px rgba(23,32,47,.10),0 2px 4px rgba(23,32,47,.05),0 24px 48px -24px rgba(47,116,201,.42);
  --elev:0 0 0 1px rgba(23,32,47,.06),0 30px 70px -30px rgba(47,116,201,.45);
  --jline:rgba(23,32,47,.14); --node-bg:#f2f4f8;
}}
h1,h2{font-style:italic;letter-spacing:-.005em}
.lora,.greet h1,.nextcard h3{font-style:italic}

/* top bar: the brand in Lora, places as one pill group */
.top{background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--hair)}
.brand b{font-family:var(--font-d);font-weight:400;font-size:19px;letter-spacing:0}.brand b i{font-style:italic}
.crumbs{flex:0 1 auto}
.top .crumbs:has(button+button){background:color-mix(in srgb,var(--sky) 11%,transparent);border-radius:999px;padding:3px;gap:2px}
.crumbs button{border-radius:999px;font-weight:600;padding:4px 13px}
.crumbs button[aria-current],.crumbs button.on{background:var(--solid);color:var(--ink);box-shadow:0 1px 2px rgba(0,0,0,.18)}
.top .tc .kbtn{background:var(--field);border-radius:12px;min-height:36px;padding:6px 12px}

/* cards everywhere: rounder, quieter edges */
.card,.kcard,.tile{border-radius:var(--r-lg)}
.btn.primary{box-shadow:0 8px 20px -12px color-mix(in srgb,var(--btn) 80%,transparent)}

/* ---------- case header ---------- */
.threadbar{background:transparent;border-bottom:0}
html.ed-cm .threadbar{padding:20px 26px 6px}
.threadbar .nmrow :is(h1,h2){font-family:var(--font-d);font-style:italic;font-weight:400;font-size:40px;line-height:1.08;letter-spacing:-.01em}
.threadbar .who>small{font-size:15px;color:var(--ink2)}
.threadbar .ladot{display:none}
.glance{gap:0;grid-template-columns:repeat(4,minmax(120px,184px))}
.gl{background:transparent;border:0;border-left:1px solid var(--hair);border-radius:0;padding:4px 16px}
.gl:hover{background:color-mix(in srgb,var(--sunk) 70%,transparent);border-radius:12px}
.gl small{text-transform:none;letter-spacing:0;font-size:13px;font-weight:500}
.gl b{font-size:16px}
.gl.due{background:transparent;border-left:1px solid var(--hair)}
.gl.due b{font-family:var(--font-d);font-size:23px;font-weight:400;line-height:1.15;color:var(--ink)}
.gl.due span{color:hsl(var(--dueh,130) 62% 58%);font-weight:600}
:root[data-theme="light"] .gl.due span{color:hsl(var(--dueh,130) 65% 26%)}
@media (prefers-color-scheme:light){:root:not([data-theme]) .gl.due span{color:hsl(var(--dueh,130) 65% 26%)}}

/* ---------- the journey line: six steps on one line, the step now raised ---------- */
.caseroom:not(.slim):not(.reading) .st6wrap,.caseroom.reading.hdropen .st6wrap{flex-direction:row;align-items:flex-start;gap:16px;padding-top:6px}
.caseroom:not(.slim):not(.reading) .st6,.caseroom.reading.hdropen .st6{display:grid;align-items:start;grid-template-columns:repeat(6,minmax(0,1fr));flex:1;min-width:0;gap:0;padding:0;background:none;border:0;flex-wrap:nowrap}
.caseroom:not(.slim):not(.reading) .st6 li,.caseroom.reading.hdropen .st6 li{position:relative;display:block;min-width:0}
.caseroom:not(.slim):not(.reading) .st6 li::before,.caseroom.reading.hdropen .st6 li::before{content:"";position:absolute;top:13px;left:12px;width:100%;height:3px;border-radius:2px;background:var(--jline);margin:0}
.caseroom:not(.slim):not(.reading) .st6 li:last-child::before,.caseroom.reading.hdropen .st6 li:last-child::before{display:none}
.caseroom:not(.slim):not(.reading) .st6 li:has(.done)::before,.caseroom.reading.hdropen .st6 li:has(.done)::before{background:var(--aqua)}
.caseroom:not(.slim):not(.reading) .st6 li:has(.part)::before,.caseroom.reading.hdropen .st6 li:has(.part)::before{background:linear-gradient(90deg,var(--aqua) 0 45%,var(--jline) 45%)}
.caseroom:not(.slim):not(.reading) .st6b,.caseroom.reading.hdropen .st6b{position:relative;display:grid;grid-template-columns:auto;justify-items:start;align-content:start;gap:1px;width:100%;min-height:0;padding:0 14px 8px 0;background:none!important;border:0!important;border-radius:12px;box-shadow:none}
.caseroom:not(.slim):not(.reading) .st6b:hover .st6l,.caseroom.reading.hdropen .st6b:hover .st6l{color:var(--tint)}
.caseroom:not(.slim):not(.reading) .st6c,.caseroom.reading.hdropen .st6c{position:relative;z-index:1;width:26px;height:26px;margin-bottom:8px;border:2px solid color-mix(in srgb,var(--ink) 30%,transparent);background:var(--node-bg);color:var(--ink3);font-size:13px;transform:none}
.caseroom:not(.slim):not(.reading) .st6b.done .st6c,.caseroom.reading.hdropen .st6b.done .st6c{background:var(--aqua);border-color:var(--aqua)}
.caseroom:not(.slim):not(.reading) .st6b.done .st6c svg,.caseroom.reading.hdropen .st6b.done .st6c svg{stroke:var(--node-bg);stroke-width:3.4}
.caseroom:not(.slim):not(.reading) .st6b.part .st6c,.caseroom.reading.hdropen .st6b.part .st6c{border:3px solid var(--aqua);color:var(--aqua);background:var(--node-bg)}
.caseroom:not(.slim):not(.reading) .st6b.cur .st6c,.caseroom.reading.hdropen .st6b.cur .st6c{background:var(--tint);border-color:var(--tint);color:var(--btn-ink);box-shadow:0 0 0 6px color-mix(in srgb,var(--tint) 20%,transparent);animation:jpulse 2.8s ease-in-out infinite}
.caseroom:not(.slim):not(.reading) .st6b.cur.part .st6c,.caseroom.reading.hdropen .st6b.cur.part .st6c{background:conic-gradient(var(--aqua) 0 50%,var(--tint) 50% 100%);border-color:var(--tint)}
.caseroom:not(.slim):not(.reading) .st6b.unbooked .st6c,.caseroom.reading.hdropen .st6b.unbooked .st6c{border-color:var(--amber);color:var(--amber);background:var(--node-bg);box-shadow:0 0 0 6px color-mix(in srgb,var(--amber) 16%,transparent)}
.caseroom:not(.slim):not(.reading) .st6b.unbooked .st6l,.caseroom.reading.hdropen .st6b.unbooked .st6l{color:var(--amber)}
@keyframes jpulse{0%,100%{box-shadow:0 0 0 5px color-mix(in srgb,var(--tint) 22%,transparent)}50%{box-shadow:0 0 0 9px color-mix(in srgb,var(--tint) 8%,transparent)}}
.caseroom:not(.slim):not(.reading) .st6l,.caseroom.reading.hdropen .st6l{font-size:14.5px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:6px;max-width:100%}
.caseroom:not(.slim):not(.reading) .st6b.cur .st6l,.caseroom.reading.hdropen .st6b.cur .st6l{color:var(--tint);font-weight:700}
.caseroom:not(.slim):not(.reading) .st6b:not(.done):not(.cur):not(.part):not(.unbooked) .st6l,.caseroom.reading.hdropen .st6b:not(.done):not(.cur):not(.part):not(.unbooked) .st6l{color:var(--ink2)}
.caseroom:not(.slim):not(.reading) .st6s,.caseroom.reading.hdropen .st6s{display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;white-space:normal;font-size:13px;line-height:1.35;color:var(--ink3);margin:0;max-width:100%}
.caseroom:not(.slim):not(.reading) .st6b.cur .st6s,.caseroom.reading.hdropen .st6b.cur .st6s{color:var(--ink2)}
.caseroom:not(.slim):not(.reading) .st6p,.caseroom.reading.hdropen .st6p{position:absolute;top:10px;left:34px;z-index:1;background:var(--node-bg);padding:0 4px;border-radius:6px}
.caseroom:not(.slim):not(.reading) .st6n,.caseroom.reading.hdropen .st6n{display:none}
@media (max-width:900px){.caseroom:not(.slim):not(.reading) .st6s{display:none!important}}
@media (max-width:640px){.caseroom:not(.slim):not(.reading) .st6l{font-size:13px}.caseroom:not(.slim):not(.reading) .st6p{display:none}}

/* compact header (slim, reading): soft pills on one line */
.caseroom.slim .st6b,.caseroom.reading:not(.hdropen) .st6b{background:var(--sunk);border:1px solid var(--hair)}
.caseroom.slim .st6b.cur,.caseroom.reading:not(.hdropen) .st6b.cur{border:2px solid var(--tint)}
.caseroom.slim .st6b.done .st6c,.caseroom.reading:not(.hdropen) .st6b.done .st6c{background:var(--aqua);border-color:var(--aqua)}

/* ---------- six segments: lists and Ctrl+K ---------- */
.seg6{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px;width:100%;max-width:220px}
.seg6 i{height:5px;border-radius:3px;background:var(--jline);display:block}
.seg6 i.on{background:var(--aqua)}
.seg6 i.part{background:linear-gradient(90deg,var(--aqua) 0 50%,var(--jline) 50%)}
.seg6 i.cur:not(.on){background:var(--tint)}
.seg6 i.cur.part{background:linear-gradient(90deg,var(--aqua) 0 50%,var(--tint) 50%)}
.ccase .who .seg6{margin-top:7px}
.pvseg{display:flex;flex-direction:column;gap:6px;margin:8px 0 4px}.pvseg .seg6{max-width:none}.pvseg .seg6 i{height:6px}

/* ---------- Today ---------- */
.greet h1{font-weight:400;font-size:44px}
.nextcard{background:var(--solid);border:0;border-radius:24px;padding:24px 26px}
.nextcard::before{display:none}
.nextcard .when{color:var(--tint);letter-spacing:.14em;font-size:13px}
.nextcard h3{font-weight:400;font-size:30px}
.nextcard .act .btn{border-radius:14px;min-height:42px;padding:9px 18px;font-size:15px}
.then,.ccase{background:var(--solid);border:0;box-shadow:var(--shadow)}
.ccase .who h4,.ccase .who h3.cch{font-family:var(--font-d);font-style:italic;font-weight:400;font-size:19px}
.sect h3{font-family:var(--font-d);font-style:italic;font-weight:400;font-size:22px}
.todaycard{border-radius:var(--r-lg)}

/* ---------- Welcome and briefing cards ---------- */
.welcome .card{background:var(--solid);border:0;box-shadow:var(--shadow);border-radius:24px}
.welcome .card h2,.welcome .card h3{font-family:var(--font-d);font-style:italic;font-weight:400}

/* ---------- Contacts: each group a quiet list you can type into ---------- */
.psec h4{text-transform:none;letter-spacing:0;font-size:13.5px;font-weight:600;color:var(--ink3);margin:16px 0 7px 4px}
.prows{gap:0;background:var(--solid);border-radius:16px;box-shadow:var(--shadow);padding:4px 6px;margin-bottom:8px}
.prows>.pedit2{padding:6px 4px;border-radius:12px}
.prows>.pedit2+.pedit2{border-top:1px solid var(--hair);border-radius:0}
.prows .pedit2 input,.prows .pedit2 select{background:transparent;border-color:transparent}
.prows .pedit2 input:hover,.prows .pedit2 select:hover{background:var(--field)}
.prows .pedit2 input:focus,.prows .pedit2 select:focus{background:var(--field)}
.prows .pedit2 input:not(:placeholder-shown)[type="text"]:first-of-type{font-weight:600}
.pedit2 .psrc{justify-self:start;max-width:100%;background:color-mix(in srgb,var(--tint) 12%,transparent);color:var(--tint);border-radius:999px;padding:3px 10px;font-weight:600}
.pedit2 .psrc .linkbtn{color:inherit;text-decoration:none}
.pccheck{background:color-mix(in srgb,var(--aqua) 7%,var(--solid));border-radius:14px;padding:10px 14px;box-shadow:var(--shadow)}
.pccheck li.ok::before{color:var(--aqua)}
#sheet .pchead h2,#sheet>h2{font-family:var(--font-d);font-style:italic;font-weight:400}

/* ---------- Ctrl+K ---------- */
.palette{border-radius:24px}
.palprev h3{font-style:italic;font-weight:400;font-size:28px}
.pvcase .pvppl{background:var(--field);border-radius:14px;padding:8px 12px}
.tile{overflow:clip;overflow-clip-margin:8px}
#sheetTitle{font-family:var(--font-d);font-style:italic;font-weight:400;font-size:26px;line-height:1.15}
.sheet{border-radius:26px}
.wpeople{gap:0}
.wpeople li{flex-wrap:nowrap;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--hair)}
.wpeople li:first-child{border-top:0}
.wav{flex:none;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;font-weight:700;font-size:13px;letter-spacing:.02em}
.wav.g-fam{background:color-mix(in srgb,var(--peach) 18%,var(--solid));color:var(--peach)}
.wav.g-sch{background:color-mix(in srgb,var(--aqua) 18%,var(--solid));color:var(--aqua)}
.wav.g-la{background:color-mix(in srgb,var(--sky) 20%,var(--solid));color:var(--sky)}
.wav.g-oth{background:var(--sunk);color:var(--ink2)}
.wpt{min-width:0;display:flex;flex-direction:column}
.wpt b{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wpt small{font-size:13px;color:var(--ink3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.wpt .ovrole{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ink3);font-weight:500}
.wpt .linkbtn{font-size:13px;text-decoration:none;color:var(--tint)}
.wpt .linkbtn:hover{text-decoration:underline}
.wcontacts header h3,.wsec header h3{font-family:var(--font-d);font-style:italic;font-weight:400;font-size:21px}
.pvcase .pvppl{gap:0;padding:4px 14px}
.pvcase .pvppl li{display:grid!important;grid-template-columns:92px minmax(0,1fr) auto;gap:10px;align-items:baseline;padding:7px 0;font-size:14px}
.pvcase .pvppl li+li{border-top:1px solid var(--hair)}
.pvcase .pvppl li>*{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pvcase .pvppl .num{font-weight:600}
.pvcase .pvlast{border-radius:14px;padding:10px 14px}
.wpt small{white-space:normal}
.threadbar .nmrow :is(h1,h2){font-size:clamp(28px,2.5vw,40px)}
@media (max-width:1500px){.glance{grid-template-columns:repeat(4,minmax(104px,160px))}.gl{padding:4px 12px}.gl.due b{font-size:21px}}
.pedit2{grid-template-columns:22px minmax(0,1fr) minmax(0,1.6fr) minmax(0,1.1fr) minmax(0,1.6fr) minmax(0,.8fr) 30px}
.ptablist{display:contents}

/* ===================================================================================
   beta.42: accessibility and motion
   =================================================================================== */
.kbtn .kbhint{opacity:1;color:var(--ink3)}
/* focus you can follow: two rings, on dark and light */
:focus-visible{outline:2px solid var(--tint);outline-offset:2px;box-shadow:0 0 0 5px color-mix(in srgb,var(--tint) 22%,transparent)}
.btn:focus-visible,.icobtn:focus-visible,.chip:focus-visible,.st6b:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
/* targets: never under 24 px; 44 px on a touch screen */
.icobtn{min-width:32px;min-height:32px}
.tick,.chip,.btn.sm,.kbtn,.seg button{min-height:28px}
@media (pointer:coarse){
  .btn,.icobtn,.chip,.tick,.kbtn,.seg button,.crumbs button,.st6b,.linkbtn,.tundo,.gl,.ptabs button,[role=tab]{min-height:44px}
  .icobtn{min-width:44px}
  .st6c{width:32px!important;height:32px!important}
}
/* Increase Contrast: hairlines solid, grey text darker */
@media (prefers-contrast:more){
  :root{--line:rgba(255,255,255,.45);--hair:rgba(255,255,255,.3);--ink2:#ffffff;--ink3:#e6e9ef;--jline:rgba(255,255,255,.4)}
  :root[data-theme="light"]{--line:rgba(0,0,0,.55);--hair:rgba(0,0,0,.35);--ink2:#000000;--ink3:#1f2633;--jline:rgba(0,0,0,.4)}
  .card,.then,.ccase,.prows,.palette,.sheet{box-shadow:0 0 0 1.5px var(--line)!important}
}
/* Reduce Motion: a short fade instead of movement (the global rule already stops animation) */
@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation-duration:.15s!important}}

/* a step just done: the line fills, the tick draws, the next step rises */
@keyframes jFill{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes jPop{0%{transform:scale(.8)}55%{transform:scale(1.18)}100%{transform:scale(1)}}
@keyframes jTick{from{stroke-dashoffset:24}to{stroke-dashoffset:0}}
@keyframes jRise{0%{transform:scale(.7);opacity:.4}100%{transform:scale(1);opacity:1}}
.st6 li.jdone::after{content:"";position:absolute;top:13px;left:12px;width:100%;height:3px;border-radius:2px;background:var(--aqua);transform-origin:left;animation:jFill .38s var(--spring) both}
.st6 li.jdone:last-child::after{display:none}
.st6 li.jprev::after{content:"";position:absolute;top:13px;left:12px;width:100%;height:3px;border-radius:2px;background:var(--aqua);transform-origin:left;animation:jFill .32s var(--spring) both}
.st6 li.jdone .st6c{animation:jPop .42s .12s var(--spring) both}
.st6 li.jdone .st6c svg{stroke-dasharray:24;animation:jTick .26s .3s ease-out both}
.st6 li.jnext .st6c{animation:jRise .42s .42s var(--spring) both}
/* new things arrive gently: log entries, list rows, cards */
@keyframes fwIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.logitem.new,.lg.new,.then.new,.wpeople li{animation:fwIn .32s var(--spring) both}
.wpeople li:nth-child(2){animation-delay:.04s}.wpeople li:nth-child(3){animation-delay:.08s}.wpeople li:nth-child(4){animation-delay:.12s}.wpeople li:nth-child(5){animation-delay:.16s}
/* Today into a case: the name travels */
::view-transition-old(root),::view-transition-new(root){animation-duration:.22s}
::view-transition-group(casename){animation-duration:.34s;animation-timing-function:cubic-bezier(.2,.8,.2,1)}
/* toast: rises in, with Undo */
#toast{transition:transform .28s var(--spring),opacity .2s}
/* waiting that feels short: shapes of what is coming */
@keyframes fwShimmer{0%{background-position:-400px 0}100%{background-position:400px 0}}
.skel{display:block;height:14px;border-radius:7px;background:linear-gradient(90deg,var(--field) 0,color-mix(in srgb,var(--field) 60%,var(--ink) 10%) 50%,var(--field) 100%);background-size:800px 14px;animation:fwShimmer 1.4s linear infinite}
.skel+.skel{margin-top:8px}
input[type=checkbox]{min-width:18px;min-height:18px}
@media (pointer:coarse){input[type=checkbox]{min-width:24px;min-height:24px}}
.sect h3,.greet h1{padding-left:3px;margin-left:-3px}
.maskview{white-space:pre-wrap;font-family:var(--mono);font-size:13px;line-height:1.55;background:var(--field);border-radius:12px;padding:14px 16px;max-height:60vh;overflow:auto}

/* ---------- the day as a strip (Today) ---------- */
.dband{position:relative;margin:2px 0 12px;padding:0 2px}
.dbh{display:flex;font-size:13px;color:var(--ink3);border-bottom:1px solid var(--hair);padding-bottom:5px;font-variant-numeric:tabular-nums}
.dbh span{flex:1;min-width:0;overflow:hidden;white-space:nowrap}
.dbt{position:relative;height:64px;margin-top:8px;background:repeating-linear-gradient(90deg,var(--hair) 0 1px,transparent 1px calc(100% / var(--cols,10)))}
.dbb{position:absolute;top:0;height:64px;border-radius:12px;padding:7px 10px;overflow:hidden;cursor:pointer;background:color-mix(in srgb,var(--la,var(--tint)) 18%,var(--solid));box-shadow:inset 3px 0 0 var(--la,var(--tint));transition:transform .18s var(--spring),box-shadow .18s;animation:fwIn .35s var(--spring) both}
.dbb:hover{transform:translateY(-1px);box-shadow:inset 3px 0 0 var(--la,var(--tint)),0 8px 20px -12px rgba(0,0,0,.6)}
.dbb b{display:block;font-size:13.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink)}
.dbb small{display:block;font-size:13px;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbb.past{opacity:.55}
.dbb.cal{background:color-mix(in srgb,var(--sky) 16%,var(--solid));box-shadow:inset 3px 0 0 var(--sky)}
.dbf{position:absolute;top:22px;text-align:center;font-size:13px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;pointer-events:none}
.dbn{position:absolute;top:-6px;bottom:-6px;width:2px;margin-left:-1px;background:var(--peach);border-radius:2px;transition:left .6s ease;z-index:2}
.dbn span{position:absolute;top:-22px;left:50%;transform:translateX(-50%);background:var(--peach);color:#10151f;font-weight:700;font-size:13px;border-radius:999px;padding:0 8px;line-height:20px;font-variant-numeric:tabular-nums}
.dband{padding-top:22px}

/* ---------- empty places that say what to do ---------- */
.emptyst{display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;padding:28px 20px;border-radius:var(--r-lg);background:var(--solid);box-shadow:var(--shadow)}
.emptyst b{font-size:17px;font-weight:700}
.emptyst p{margin:0;max-width:34ch;color:var(--ink2);font-size:14.5px;line-height:1.5}
.emptyst .btn{margin-top:4px}
.emptyst .eic{width:52px;height:52px;border-radius:16px;display:grid;place-items:center;background:color-mix(in srgb,var(--tint) 14%,transparent);color:var(--tint)}
.emptyst .eic.peach{background:color-mix(in srgb,var(--peach) 16%,transparent);color:var(--peach)}
.emptyst .eic svg{width:24px;height:24px;stroke:currentColor;fill:none;stroke-width:1.8}
.emptyst.sm{padding:18px 14px;box-shadow:none;background:transparent}
.emptyst.sm .eic{width:42px;height:42px;border-radius:13px}
.dband{container-type:inline-size;padding-top:0;padding-bottom:26px}
.dbt{height:78px}
.dbb{height:52px}
.dbb.thin{overflow:visible;padding:0;height:28px;border-radius:9px}
.dbb.thin b,.dbb.thin small{position:absolute;left:0;max-width:150px;padding-left:2px}
.dbb.thin b{top:32px;font-size:13px}
.dbb.thin small{top:50px;font-size:13px;color:var(--ink3)}
.dbf{top:16px}
.dbn{top:0;bottom:-4px}
.dbn span{top:auto;bottom:-22px}
@container (max-width:620px){.dbh span:nth-child(even){visibility:hidden}}
.sect{overflow:visible}.sect h3{padding-left:4px;margin-left:-4px}
.tileh{padding-left:4px}
.tileh :is(h2,h3){font-family:var(--font-d);font-style:italic;font-weight:400}
:root[data-theme="light"] .wav.g-fam{color:#8f3a17}:root[data-theme="light"] .wav.g-sch{color:#0b5c55}:root[data-theme="light"] .wav.g-la{color:#285a92}
@media (prefers-color-scheme:light){:root:not([data-theme]) .wav.g-fam{color:#8f3a17}:root:not([data-theme]) .wav.g-sch{color:#0b5c55}:root:not([data-theme]) .wav.g-la{color:#285a92}}
.wsec h2.wt{margin:0 0 10px;font-family:var(--font-d);font-style:italic;font-weight:400;font-size:21px;letter-spacing:-.005em;line-height:1.25}
.wsec>header h2.wt{margin:0}
:root[data-theme="light"] .dbb{background:color-mix(in srgb,var(--la,var(--tint)) 40%,#fff);box-shadow:inset 3px 0 0 var(--la,var(--tint)),0 0 0 1px color-mix(in srgb,var(--la,var(--tint)) 35%,transparent)}
:root[data-theme="light"] .dbb.cal{background:color-mix(in srgb,var(--sky) 42%,#fff);box-shadow:inset 3px 0 0 var(--sky),0 0 0 1px color-mix(in srgb,var(--sky) 35%,transparent)}

/* ---------- the day band, second pass: one calm lane ---------- */
.dband{padding:0 0 14px;margin:0 0 10px}
.dbh{display:grid;grid-template-columns:repeat(var(--cols,10),1fr);border:0;padding:0 0 4px;font-size:13px;color:var(--ink3)}
.dbh span{padding-left:4px;border-left:1px solid color-mix(in srgb,var(--ink3) 45%,transparent);line-height:14px;visibility:visible}
.dbt{height:44px;margin-top:0;border-radius:12px;background:color-mix(in srgb,var(--ink) 4%,transparent);box-shadow:inset 0 0 0 1px var(--hair)}
.dbt::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--ink3) 22%,transparent) 0 1px,transparent 1px calc(100% / var(--cols,10)))}
.dbb,.dbb.thin{top:4px;height:36px;border-radius:9px;padding:3px 9px;overflow:hidden;display:flex;flex-direction:column;justify-content:center;z-index:1}
.dbb b,.dbl b{font-size:13.5px;line-height:16px}
.dbb small,.dbl small{font-size:13px;line-height:15px;font-variant-numeric:tabular-nums}
.dbb.thin{padding:0}
.dbl{position:absolute;top:4px;height:36px;display:flex;flex-direction:column;justify-content:center;max-width:160px;pointer-events:none;z-index:1}
.dbl b{display:block;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbl small{display:block;color:var(--ink2);white-space:nowrap}
.dbf{top:4px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:9px;border:1px dashed color-mix(in srgb,var(--ink3) 40%,transparent);background:transparent;box-sizing:border-box}
.dbf i{font-style:normal;font-size:13px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 6px}
.dbn{top:-4px;bottom:-4px;z-index:3}
.dbn span{top:auto;bottom:-24px}
@container (max-width:620px){.dbh span:nth-child(even){visibility:hidden}}
:root[data-theme="light"] .dbt{background:#f4f6fa}
.dband{padding-bottom:24px}
.dbp{position:absolute;left:0;top:0;bottom:0;border-radius:12px 0 0 12px;background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--ink3) 10%,transparent) 0 2px,transparent 2px 7px);pointer-events:none;transition:width .6s ease}
/* third pass: words live in the caption and the list; the lane shows the shape of the day */
.dband{padding:14px 16px 4px;margin:0}
.dbh{padding-bottom:5px}
.dbh span:first-child{border-left-color:transparent}
.dbn{top:-27px;bottom:-3px}
.dbn span{top:0;bottom:auto;line-height:19px}
.dbb{justify-content:center}
.dbb.onnow{box-shadow:inset 3px 0 0 var(--la,var(--tint)),0 0 0 2px color-mix(in srgb,var(--peach) 70%,transparent)}
.dbc{display:flex;justify-content:space-between;gap:12px;margin-top:9px;font-size:13.5px;color:var(--ink2)}
.dbc span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dbc b{color:var(--ink);font-weight:700;margin-right:4px}
.dbc span:last-child{color:var(--ink3)}
.dband{padding-bottom:12px;border-bottom:1px solid var(--hair)}
/* mouse targets: at least 24 px (WCAG 2.2 AA 2.5.8) */
.schoolname,.linkbtn,.wsrc{min-height:24px;display:inline-flex;align-items:center}
input[type=checkbox]{min-width:20px;min-height:20px;margin:2px}
.rz{position:relative}.rz::before{content:"";position:absolute;top:0;bottom:0;left:-9px;right:-9px}
.chip{min-height:24px}

/* ---------- the briefing from the papers ---------- */
.bxbox{margin:0 0 18px;padding:18px 20px;border-radius:var(--r-lg);background:var(--solid);box-shadow:var(--shadow)}
.bxhead{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:12px}.bxhead>div:first-child{flex:1;min-width:220px}
.bxhead h2{margin:0;font-family:var(--font-d);font-style:italic;font-weight:400;font-size:24px}
.bxhead p{margin:2px 0 0}
.bxacts{display:flex;gap:8px;flex-wrap:wrap}
.bxgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
@container (max-width:900px){.bxgrid{grid-template-columns:1fr}}
@media (max-width:1100px){.bxgrid{grid-template-columns:1fr}}
.bxcard{background:color-mix(in srgb,var(--ink) 4%,transparent);border-radius:14px;padding:14px 16px;min-width:0}
.bxcard h3{margin:0 0 8px;font-family:var(--font-d);font-style:italic;font-weight:400;font-size:20px}
.bxcard h4{margin:12px 0 4px;font-size:12.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink3)}
.bxcard p{margin:0 0 10px;line-height:1.55}
.bxcard ol{margin:0;padding-left:20px;line-height:1.55}.bxcard li{margin:0 0 6px}
.bxp{display:flex;gap:10px;align-items:flex-start;padding:7px 0;border-top:1px solid var(--hair)}.bxp>div{flex:1;min-width:0}
.bxnote{margin:0 0 6px;padding:9px 11px;border-radius:11px;background:color-mix(in srgb,var(--amber) 12%,transparent);font-size:14px}
.bxsrc{display:inline-flex;align-items:center;min-height:24px;margin:1px 2px;padding:0 8px;border:0;border-radius:999px;background:color-mix(in srgb,var(--tint) 14%,transparent);color:var(--tint);font:600 12.5px var(--font);cursor:pointer;vertical-align:baseline}
.bxsrc:hover{background:color-mix(in srgb,var(--tint) 24%,transparent)}
.bxmore{margin-top:12px;border-top:1px solid var(--hair);padding-top:10px}.bxmore summary{cursor:pointer;font-weight:700;min-height:24px}
.bxconf{padding:8px 0;border-bottom:1px solid var(--hair)}.bxvals{display:grid;gap:4px;margin-top:4px;padding-left:12px;border-left:3px solid var(--amber)}
.bxtab{width:100%;border-collapse:collapse;font-size:14px;margin-top:8px}.bxtab th{text-align:left;font-size:12.5px;color:var(--ink3);font-weight:700;padding:6px 8px}.bxtab td{padding:7px 8px;border-top:1px solid var(--hair);vertical-align:top}.bxtab .nowrap{white-space:nowrap}
.bxleak{margin:10px 0;padding:10px 12px;border-radius:11px;background:color-mix(in srgb,var(--red,#d9534f) 14%,transparent)}
.bxsend .maskview{max-height:46vh}

/* ---------- where every case is ---------- */
.stcols{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}
@media (max-width:1000px){.stcols{grid-template-columns:repeat(3,minmax(0,1fr))}}
.stcol{background:color-mix(in srgb,var(--ink) 4%,transparent);border-radius:14px;padding:10px 10px 8px;min-width:0}
.stcol header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px;font-size:14px}.stcol header span{color:var(--ink3);font-variant-numeric:tabular-nums}
.stcol ul{list-style:none;margin:0;padding:0;display:grid;gap:5px}
.stc{display:flex;align-items:stretch;border-radius:10px;background:var(--solid);box-shadow:inset 3px 0 0 var(--la),0 0 0 1px var(--hair);overflow:hidden}
.stn{flex:1;min-width:0;display:flex;align-items:center;justify-content:space-between;gap:6px;min-height:32px;padding:4px 6px 4px 11px;border:0;background:none;color:var(--ink);font:600 14px var(--font);text-align:left;cursor:pointer;white-space:nowrap;overflow:hidden}
.stn:hover{background:color-mix(in srgb,var(--la) 12%,transparent)}
.std{flex:none;font-size:12.5px;font-weight:600;color:var(--ink3);font-variant-numeric:tabular-nums}.std.warm{color:var(--peach)}
.stq{flex:none;width:28px;min-height:32px;border:0;border-left:1px solid var(--hair);background:none;color:var(--ink3);cursor:pointer;display:grid;place-items:center}
.stq:hover{color:var(--tint);background:color-mix(in srgb,var(--tint) 10%,transparent)}.stq svg{width:14px;height:14px}
.stnone{margin:4px 2px;font-size:13px;color:var(--ink3)}
.qnote .seg{margin-bottom:12px}
:root[data-theme="light"] .std.warm{color:#b2481c}
.bxbox{container-type:inline-size}
@media (max-width:1100px){.bxgrid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@container (max-width:900px){.bxgrid{grid-template-columns:1fr}}
.wbfnudge{display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;margin:0 0 12px;padding:12px 14px;border:0;border-radius:14px;background:color-mix(in srgb,var(--tint) 13%,transparent);box-shadow:inset 3px 0 0 var(--tint);color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.wbfnudge:hover{background:color-mix(in srgb,var(--tint) 20%,transparent)}.wbfnudge span{font-size:14px;color:var(--ink2)}
.bxsrc{color:var(--ink);background:color-mix(in srgb,var(--tint) 18%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tint) 35%,transparent)}
.bxnote .bxsrc{background:var(--solid)}
:root[data-theme="light"] .st6due{color:hsl(var(--dueh,130) 75% 24%)}
/* AI extras: nothing shows unless switched on */
html:not(.aix) #claudeTog,html:not(.aix) [data-om],html:not(.aix) #cpane{display:none!important}
/* an event that has happened stays readable: quieter colour, not faded text */
.todaycard .trow.past{opacity:1}.todaycard .trow.past .tt,.todaycard .trow.past .tt small,.todaycard .trow.past .tb small{color:var(--ink3)}.todaycard .trow.past .tb b{color:var(--ink2)}

/* ---------- found in the papers: offered, never filled in ---------- */
.fndtray{margin:0 0 14px;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--tint) 7%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tint) 22%,transparent)}
.fndtray h4{margin:0;font-size:15px}.fndtray header p{margin:2px 0 8px}
.fndlist{display:grid;gap:6px;max-height:42vh;overflow:auto}
.fnd{display:flex;gap:12px;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;padding:9px 10px;border-radius:11px;background:var(--solid);box-shadow:0 0 0 1px var(--hair)}
.fndw{flex:1;min-width:240px;display:flex;flex-wrap:wrap;gap:2px 8px;align-items:baseline}
.fndv{font-size:14px;color:var(--ink2);font-variant-numeric:tabular-nums}
.fndctx{display:block;flex-basis:100%;margin:3px 0 1px;font-size:13px;color:var(--ink2);quotes:"“" "”";font-style:italic}
.fndacts{display:flex;gap:4px;flex-wrap:wrap;align-items:center}.fndacts .btn{min-height:28px;padding:3px 10px}
.fndno{color:var(--ink3)}
.pfound{border:0;border-radius:999px;padding:5px 12px;min-height:28px;background:color-mix(in srgb,var(--tint) 16%,transparent);color:var(--ink);font:600 13.5px var(--font);cursor:pointer}
.pfound:hover{background:color-mix(in srgb,var(--tint) 26%,transparent)}
.pchip.none i{opacity:1;color:var(--ink3)}
.fndv{display:inline-flex;align-items:center;gap:2px;padding:0 2px 0 8px;border-radius:999px;background:color-mix(in srgb,var(--ink) 6%,transparent)}
.fndx{border:0;background:none;color:var(--ink3);width:24px;height:24px;border-radius:50%;cursor:pointer;font-size:15px;line-height:1}
.fndx:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 10%,transparent)}

/* ---------- the case page: briefing and post-its ---------- */
.chome{display:flex;flex-direction:column;gap:18px;padding:4px 2px 40px;max-width:1100px}
.hcard{background:var(--solid);border-radius:var(--r-lg);box-shadow:var(--shadow);padding:16px 20px}
.hcard>header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.hcard>header h2{margin:0;font-family:var(--font-d);font-style:italic;font-weight:400;font-size:24px}
.hbview{font-size:15px;line-height:1.6;max-width:78ch}
.hbview h3{margin:14px 0 4px;font-size:15px;font-weight:700;font-family:var(--font);font-style:normal}.hbview h3:first-child{margin-top:0}
.hbview p{margin:0 0 8px}.hbview ul,.hbview ol{margin:0 0 10px;padding-left:22px}.hbview li{margin:0 0 3px}
.hbview .mdrow{color:var(--ink2);font-size:14px;margin:0 0 3px}
.hbtext{width:100%;min-height:220px;resize:vertical;border:0;border-radius:12px;padding:12px 14px;background:var(--field);color:var(--ink);font:15px/1.55 var(--font)}
.hbempty{display:flex;flex-direction:column;gap:4px;width:100%;padding:18px;border:1.5px dashed var(--hair);border-radius:14px;background:none;color:var(--ink);font:inherit;text-align:left;cursor:pointer}
.hbempty span{color:var(--ink2);font-size:14px}.hbempty:hover{border-color:var(--tint)}
.pilegend{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;color:var(--ink2)}
.pilegend i{display:inline-block;width:11px;height:11px;border-radius:3px;background:var(--pi);margin-right:5px;vertical-align:-1px;box-shadow:0 0 0 1px rgba(0,0,0,.15)}
.pirow{display:grid;grid-template-columns:200px minmax(0,1fr);gap:14px;padding:14px 0;border-top:1px solid var(--hair)}
.pilab{display:flex;flex-direction:column;gap:3px;min-width:0}.pilab .linkbtn{text-align:left;font-weight:700;color:var(--ink);font-size:14.5px}
.pistrip{display:flex;gap:2px;margin-top:4px;max-width:180px}
.pistrip i{flex:1;height:8px;border-radius:2px;background:color-mix(in srgb,var(--ink) 9%,transparent)}.pistrip i.on{background:var(--pi)}
.piline{list-style:none;margin:0;padding:4px 2px;display:flex;flex-wrap:wrap;gap:14px}
.pnote{width:168px;min-height:132px;transform:rotate(-1.2deg)}
.pnote:nth-child(3n+2){transform:rotate(.9deg)}.pnote:nth-child(3n){transform:rotate(-.4deg)}
.pib{position:relative;display:flex;flex-direction:column;gap:6px;width:100%;height:100%;min-height:132px;padding:22px 12px 26px;border:0;border-radius:3px 3px 6px 3px;background:var(--pi);color:#2b2414;font:14px/1.38 var(--font);text-align:left;cursor:pointer;
  box-shadow:0 1px 1px rgba(0,0,0,.15),0 10px 18px -10px rgba(0,0,0,.55);transition:transform .16s var(--spring),box-shadow .16s}
.pib::after{content:"";position:absolute;right:0;bottom:0;width:18px;height:18px;background:linear-gradient(135deg,transparent 50%,rgba(0,0,0,.12) 50%);border-radius:0 0 6px 0}
.pib:hover{transform:translateY(-3px) rotate(0deg);box-shadow:0 2px 2px rgba(0,0,0,.15),0 16px 24px -12px rgba(0,0,0,.6)}
.pib:focus-visible{outline:3px solid var(--tint);outline-offset:3px}
.pitab{position:absolute;top:6px;left:10px;font-size:12px;font-weight:800;letter-spacing:.02em;color:#5a4a1f}
.pib q{font-style:italic;color:#4a3f22;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pit{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.pik{position:absolute;left:12px;bottom:6px;font-size:12px;font-weight:700;color:#5a4a1f}
.piadd .pib{background:transparent;color:var(--ink2);box-shadow:none;border:2px dashed var(--hair);align-items:center;justify-content:center}
.piadd .pib::after{display:none}.piplus{font-size:30px;line-height:1;color:var(--ink3)}
.pinew textarea{width:100%;height:100%;min-height:132px;border:0;border-radius:3px;padding:12px;background:var(--pi);color:#2b2414;font:14px/1.4 var(--font);resize:none;box-shadow:0 10px 18px -10px rgba(0,0,0,.55)}
.pinone{margin:12px 0 0;padding-top:12px;border-top:1px solid var(--hair)}
@media (prefers-reduced-motion:reduce){.pnote,.pnote:nth-child(n){transform:none}.pib:hover{transform:none}}

/* ---------- spring clean: the log asks for who, when and how long only once you start writing ---------- */
.logadd:not(:focus-within):not(.has) .logmore,.logadd:not(:focus-within):not(.has) .logacts{display:none}
.logadd textarea#logText{min-height:44px;transition:min-height .2s}
.logadd:focus-within textarea#logText,.logadd.has textarea#logText{min-height:84px}
.logmore{display:flex;flex-direction:column;gap:8px}
.glance{grid-template-columns:repeat(2,minmax(150px,200px))}
/* notes: the post-its say what they are; no legend, no page strips, a gentler tilt */
.hnotes .pilegend,.pistrip{display:none}
.pnote{transform:rotate(-.6deg)}.pnote:nth-child(3n+2){transform:rotate(.5deg)}.pnote:nth-child(3n){transform:none}
.pirow{grid-template-columns:180px minmax(0,1fr)}
/* Then: lines, not boxes */
.thenlist{gap:0!important}
.thenlist .then{background:none;border:0;border-radius:0;border-top:1px solid var(--hair);padding:12px 4px 12px 6px}
.thenlist .then:first-child{border-top:0}
/* ---------- Team › Overview ---------- */
.tvtop{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:4px 0 10px}.tvtop .sp{flex:1}.tvtop p{margin:0}
.tvkpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:16px}
.tvk{all:unset;box-sizing:border-box;cursor:pointer;background:var(--surface);border-radius:14px;box-shadow:var(--shadow);padding:12px 16px;display:flex;flex-direction:column;gap:2px;border:1px solid transparent;transition:border-color .15s,transform .15s}
.tvk:hover{transform:translateY(-1px)}.tvk:focus-visible{outline:2px solid var(--tint);outline-offset:2px}.tvk.on{border-color:var(--tint)}
.tvk b{font-family:var(--font-d);font-weight:500;font-size:28px;line-height:1.1}.tvk span{font-size:13px;color:var(--ink2)}
.tvk.bad b{color:var(--red)}.tvk.warn b{color:var(--amber)}
.tvgrid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr);gap:16px;align-items:start}
.tvmain,.tvside{display:flex;flex-direction:column;gap:16px;min-width:0}
.tvscroll{overflow-x:auto}
.tvtab{width:100%;border-collapse:collapse;font-size:14px}
.tvtab th,.tvtab td{padding:3px 4px;text-align:center;border-top:1px solid var(--hair)}.tvtab thead th{border-top:0;font-weight:500;color:var(--ink3);font-size:12px}
.tvtab th[scope=row]{text-align:left;white-space:nowrap}.tvtab th[scope=row] small{display:block;margin-left:18px}
.tvtab td.num{text-align:right;padding-right:8px}.tvtab tr.on th[scope=row] .tvep{color:var(--tint)}
.tvh{all:unset;cursor:pointer;padding:4px 6px;border-radius:6px}.tvh:hover,.tvh.on{color:var(--ink);background:var(--hair)}.tvh:focus-visible{outline:2px solid var(--tint)}
.tvep{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:8px;padding:4px 6px;border-radius:6px;font-weight:500}.tvep:hover{background:var(--hair)}.tvep:focus-visible{outline:2px solid var(--tint)}
.tvep i{width:8px;height:8px;border-radius:50%;background:var(--ep)}.tvep.on{color:var(--tint)}.tvep.sm{font-size:13px;font-weight:500;padding:2px 4px}
.tvc{all:unset;box-sizing:border-box;cursor:pointer;min-width:58px;min-height:36px;width:100%;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;background:color-mix(in srgb,var(--tint) 10%,transparent);transition:background .15s}
.tvc small{font-size:11px;font-weight:500}.tvc:hover{background:color-mix(in srgb,var(--tint) 22%,transparent)}.tvc:focus-visible{outline:2px solid var(--tint)}
.tvc.zero{background:none;color:var(--ink3);font-weight:400}.tvc.risk{background:color-mix(in srgb,var(--amber) 18%,transparent)}.tvc.risk small{color:var(--amber)}
.tvc.late{background:color-mix(in srgb,var(--red) 18%,transparent)}.tvc.late small{color:var(--red)}.tvc.on{box-shadow:inset 0 0 0 2px var(--tint)}
.tvrows{list-style:none;margin:0;padding:0}
.tvrows li{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,1fr) 84px;gap:10px;align-items:center;padding:9px 2px;border-top:1px solid var(--hair);font-size:14px}
.tvrows li:first-child{border-top:0}.tvrows small{display:block;color:var(--ink3);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tvrows .duec{text-align:right}
.tvwho,.tvst{color:var(--ink2)}
.tvalloc ul,.tvroom ul,.tvmeet ul{list-style:none;margin:0 0 8px;padding:0}
.tvalloc li{padding:10px 0;border-top:1px solid var(--hair);display:flex;flex-direction:column;gap:6px;font-size:14px}.tvalloc li:first-child{border-top:0;padding-top:0}
.tvalloc small,.tvfit small{display:block;color:var(--ink3);font-size:12px}
.tvfit{display:flex;align-items:center;gap:10px;justify-content:space-between;background:color-mix(in srgb,var(--tint) 8%,transparent);border-radius:10px;padding:6px 6px 6px 10px}
.tvroom li{display:grid;grid-template-columns:118px 1fr 52px;gap:8px;align-items:center;padding:3px 0}.tvroom li>.tiny{text-align:right}
.tvbar{position:relative;height:8px;border-radius:4px;background:var(--hair)}.tvbar i{position:absolute;left:0;top:0;bottom:0;border-radius:4px;background:var(--tint)}.tvbar i.over{background:var(--amber)}
.tvbar em{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--ink3);border-radius:1px}
.tvmeet li{padding:8px 0;border-top:1px solid var(--hair);display:flex;flex-direction:column;gap:2px;font-size:14px}.tvmeet li:first-child{border-top:0;padding-top:0}.tvmeet li b{font-weight:500}.tvmeet .linkish{align-self:flex-start}
.tvwarn{color:var(--amber)}
.tvprev{background:var(--hair);border-radius:10px;padding:10px 12px;margin:6px 0}.tvprev p{margin:2px 0}
@media (max-width:1100px){.tvgrid{grid-template-columns:1fr}.tvkpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px){.tvkpis{grid-template-columns:repeat(2,minmax(0,1fr))}.tvrows li{grid-template-columns:1fr 84px}.tvwho,.tvst{display:none}}
.tvtab th[scope=row] small{font-weight:400;color:var(--ink3);font-size:11px}
.tvside .ovcard header{flex-wrap:wrap}.tvside .ovcard h2{white-space:nowrap}
.tvgrid .ovcard h2{margin:0;font-family:var(--font-d);font-weight:500;font-size:var(--t3)}
.tvc.b-late:not(.zero){background:color-mix(in srgb,var(--red) 20%,transparent);color:var(--red)}
.tvc.b-risk:not(.zero){background:color-mix(in srgb,var(--amber) 20%,transparent);color:var(--amber)}
.tvc.b-held:not(.zero){background:color-mix(in srgb,var(--ink3) 14%,transparent)}
.tvc.b-ok:not(.zero){background:none;font-weight:500;color:var(--ink2)}
.tvtab .tvon{text-align:left;white-space:nowrap;padding-left:8px}.tvtab td.tvon small{display:block;color:var(--ink3);font-size:11px}.tvtab td.tvon b{font-weight:600}
.logtools{display:flex;align-items:center;gap:8px;margin:-4px 2px 10px}.logtools .sp{flex:1}
.cswitch{margin-right:6px}
.logtools .linkish{display:inline-flex;align-items:center;gap:6px;color:var(--tint)}.logtools .linkish svg{width:14px;height:14px}

/* ================= Polish (beta.55): one visual pass over the case page =================
   Space and tone instead of outlines; small spaced capitals for section labels; the serif for the child's name and the date;
   teal for what is done and next; muted paper colours for notes. */
/* top bar: text tabs, a dot under the current one */
.topnav{background:none!important;border:0!important;box-shadow:none!important;gap:6px;padding:0}
.topnav button{background:none!important;box-shadow:none!important;color:var(--ink3);font-weight:500;font-size:14.5px;padding:6px 10px;position:relative;border-radius:8px}
.topnav button:hover{color:var(--ink)}
.topnav button[aria-current="page"]{color:var(--ink);font-weight:600}
.topnav button[aria-current="page"]::after{content:"";position:absolute;left:50%;bottom:-6px;width:4px;height:4px;border-radius:50%;background:var(--teal);transform:translateX(-50%)}
.topnav .num{background:none;color:var(--ink3);font-weight:500;padding:0 0 0 2px}
/* case header */
.threadbar{padding:22px 28px 6px 28px;align-items:flex-start;gap:28px}
.threadbar .who{border-right:0;max-width:none;flex:1 1 auto;padding-right:0;gap:4px}
.threadbar .who>small.cmeta{order:-1;font-size:13.5px;color:var(--ink3);letter-spacing:.01em}
.threadbar .who>small.cmeta .schoolname{color:var(--ink2)}
.caseroom:not(.slim) .threadbar .nmrow :is(h1,h2){font-size:clamp(30px,2.8vw,44px)!important}
.threadbar .nmrow :is(h1,h2){font-style:normal!important;font-weight:400;letter-spacing:-.015em;line-height:1.1}
.threadbar .fline{opacity:.75}
.threadbar .tbacts{gap:2px;margin-top:-4px}
.threadbar .tbacts .icobtn{color:var(--ink3);background:none}
.threadbar .tbacts .icobtn:hover{color:var(--ink);background:var(--sunk)}
.chiprow{gap:0;margin-top:10px}
.pchip{border:0!important;background:none!important;flex-direction:column;align-items:flex-start;gap:1px;padding:2px 18px 2px 0!important;margin-right:18px;border-radius:0!important;border-right:1px solid var(--hair)!important;font-size:14px;max-width:240px}
.pchip:last-of-type{border-right:0!important}
.pchip .pr,.pchip.mine .pr{background:none!important;padding:0!important;font-size:11px!important;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink3)!important}
.pchip:hover{color:var(--tint)}
.pchip.none{flex-direction:row;color:var(--ink3);border-style:solid!important}
.pfound{background:none!important;color:var(--amber);font-weight:500;padding:4px 0!important;display:inline-flex;align-items:center;gap:8px}
.pfound::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--amber);box-shadow:0 0 0 4px color-mix(in srgb,var(--amber) 16%,transparent)}
.pfound:hover{text-decoration:underline;text-underline-offset:3px}
/* due: a ring of days left */
.glance.gring{display:block;grid-template-columns:none}
.gdue{display:flex;align-items:center;gap:18px;padding:2px 4px 0}
.gdue .ring{position:relative;width:84px;height:84px;flex:none}
.gdue .ring svg{width:84px;height:84px;transform:rotate(-90deg)}
.gdue .ring circle{fill:none;stroke-width:4}
.gdue .ring .rt{stroke:var(--hair)}
.gdue .ring .rf{stroke:hsl(var(--dueh,150) 62% 52%);stroke-linecap:round;transition:stroke-dashoffset .8s var(--spring,ease)}
.gdue.late .ring .rf,.gdue.risk .ring .rf{stroke:var(--amber)}
.gdue.late .ring .rf{stroke:var(--red)}
/* past the deadline: the whole ring turns red, with the number */
.gdue.late .ring .rt{stroke:var(--red);stroke-width:5}
.gdue.late .ring b,.gdue.late .ring b small{color:var(--red)}
.gdue.late .ring{border-radius:50%;background:color-mix(in srgb,var(--red) 8%,transparent)}
.gdue .ring b{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;font-family:var(--font-d);font-weight:400;font-size:28px;line-height:1}
.gdue .ring b small{font-family:var(--font);font-size:10px;font-weight:600;letter-spacing:.12em;color:var(--ink3);margin-top:4px}
.gdt{display:flex;flex-direction:column;gap:2px;min-width:0}
.gdt>small{font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.gdt>b{font-family:var(--font-d);font-weight:400;font-size:22px;line-height:1.2;color:var(--ink);white-space:nowrap}
.glc{all:unset;cursor:pointer;font-size:13.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.glc:hover{color:var(--ink)}.glc:focus-visible{outline:2px solid var(--tint);outline-offset:2px;border-radius:4px}
.gdt .glwarn{align-self:flex-start;margin-top:4px}
/* the journey: one thin line, dots, the current step glowing */
.st6wrap{padding:0 28px 18px;margin-top:4px;border-bottom:1px solid var(--hair)}
.st6{display:grid!important;grid-template-columns:repeat(6,minmax(0,1fr));position:relative;background:none!important;border:0!important;padding:0!important;gap:0!important}
.st6::before{content:"";position:absolute;left:12px;right:12px;top:12px;height:2px;background:var(--hair);border-radius:2px}
.st6 li{position:relative;display:block!important}
.st6 li+li::before{content:none!important}
.st6 li:has(.st6b.done)::after{content:"";position:absolute;left:12px;right:-12px;top:12px;height:2px;background:linear-gradient(90deg,color-mix(in srgb,var(--teal) 70%,transparent),var(--teal));border-radius:2px}
.st6 li:last-child:has(.st6b.done)::after{display:none}
.st6b{all:unset;box-sizing:border-box;cursor:pointer;position:relative;z-index:1;display:flex!important;flex-direction:column;align-items:flex-start;gap:6px;padding:0 10px 4px 0!important;background:none!important;border:0!important;box-shadow:none!important;min-height:0;border-radius:8px}
.st6b:hover .st6l{color:var(--tint)}
.st6b:focus-visible{outline:2px solid var(--tint);outline-offset:4px}
.st6c{width:24px!important;height:24px!important;border-radius:50%;border:2px solid var(--line)!important;background:var(--bg)!important;color:transparent!important;font-size:0!important;display:grid;place-items:center}
.st6b.done .st6c{background:var(--teal)!important;border-color:var(--teal)!important}
.st6c svg{width:12px;height:12px;stroke:var(--bg)!important;stroke-width:3.2}
.st6b.cur .st6c{border-color:#7fb4ff!important;box-shadow:0 0 0 6px color-mix(in srgb,#7fb4ff 16%,transparent),0 0 18px color-mix(in srgb,#7fb4ff 55%,transparent)}
.st6b.part .st6c,.st6b.unbooked .st6c{border-color:var(--amber)!important;background:var(--bg)!important}
.st6l{font-size:14px!important;font-weight:600;color:var(--ink)}
.st6b:not(.done):not(.cur) .st6l{color:var(--ink3);font-weight:500}
.st6b.cur .st6l{color:#a9cbff}
.st6s{font-size:12.5px!important;color:var(--ink3)!important;font-weight:400!important;margin:0!important;white-space:normal}
.st6b.unbooked .st6s{color:var(--amber)!important}
.st6p{margin:0;position:absolute;left:32px;top:8px}
.st6n,.st6due{display:none!important}
/* papers on the left */
.paper{border-radius:10px;padding:8px 10px}
.paper.on{background:color-mix(in srgb,var(--ink) 5%,transparent)}
.paper .nm .pt{font-size:14px}
.pbadge{position:relative;display:inline-block;width:22px;height:20px;flex:none;vertical-align:middle}
.pbadge i{position:absolute;inset:0;border-radius:2px;background:var(--pc);transform:rotate(5deg);opacity:.5}
.pbadge b{position:absolute;inset:0;border-radius:2px;background:var(--pc);color:#2a2414;font:700 11.5px/20px var(--font);text-align:center;transform:rotate(-3deg);box-shadow:0 3px 6px -2px rgba(0,0,0,.45)}
.paper .n{display:flex;align-items:center}
/* the Case page: labels, quiet actions, no boxes */
.chome{gap:0;padding-top:10px;max-width:1080px}
.chome .hcard{background:none!important;border:0!important;border-radius:0!important;padding:4px 0 28px!important;margin-bottom:22px;border-bottom:1px solid var(--hair)!important;box-shadow:none!important}
.chome .hcard:last-child{border-bottom:0!important}
.chome .hcard>header{margin-bottom:14px}
.chome .hcard>header h2{font-family:var(--font)!important;font-style:normal!important;font-size:11.5px!important;font-weight:600!important;letter-spacing:.12em;text-transform:uppercase;color:var(--ink3)}
.chome .hcard>header h2 .hn{color:var(--ink3);font-weight:600;margin-left:4px}
.chome .hcard>header h2 .hn::before{content:"· "}
.chome .hcard>header .btn{border-radius:999px;background:color-mix(in srgb,var(--ink) 6%,transparent);color:var(--ink2);border:0;box-shadow:none;padding:5px 12px;min-height:30px;font-weight:500}
.chome .hcard>header .btn:hover{background:color-mix(in srgb,var(--ink) 10%,transparent);color:var(--ink)}
.chome .hcard>header .btn.hacc{background:color-mix(in srgb,var(--teal) 12%,var(--card,#fff));color:color-mix(in srgb,var(--teal) 80%,#000)}
:root[data-theme=dark] .chome .hcard>header .btn.hacc{color:var(--teal)}
.chome .hcard>header .btn.primary{background:var(--tint);color:#fff}
.hbempty{border:0!important;padding:0!important;background:none!important;gap:8px}
.hbempty b{font-family:var(--font-d);font-style:italic;font-weight:400;font-size:20px;line-height:1.45;color:var(--ink3);max-width:600px}
.hbempty span{font-size:13.5px;color:var(--ink2)}
.hbempty:hover b{color:var(--ink2)}
.hnone{color:var(--ink3);font-size:14px;margin:0}
/* notes as piles */
.piles{list-style:none;margin:6px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:30px 24px}
.pile{position:relative;min-width:0}
.pilebtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:12px;width:100%}
.pilebtn:focus-visible{outline:2px solid var(--tint);outline-offset:6px;border-radius:6px}
.pile .stack{position:relative;display:block;height:146px}
.pile .sh{position:absolute;left:0;top:0;width:100%;height:136px;border-radius:3px;background:var(--pc);box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 14px 24px -14px rgba(0,0,0,.65)}
.pile .sh.b2{transform:translate(8px,8px) rotate(2.4deg);filter:brightness(.8)}
.pile .sh.b1{transform:translate(4px,4px) rotate(-1.5deg);filter:brightness(.9)}
.pile .sh.top{display:flex;flex-direction:column;gap:5px;padding:16px 15px;box-sizing:border-box;color:#2a2414;font-size:14px;line-height:1.42;transform:rotate(-.6deg);background:linear-gradient(180deg,rgba(255,255,255,.2),rgba(255,255,255,0) 45%),var(--pc);transition:transform .25s var(--spring,ease),box-shadow .25s}
.pile .sh.top::before{content:"";position:absolute;left:50%;top:-7px;width:54px;height:15px;transform:translateX(-50%) rotate(-2deg);background:rgba(255,255,255,.3);border-radius:2px}
.pile:nth-child(3n+2) .sh.top{transform:rotate(.7deg)}.pile:nth-child(3n) .sh.top{transform:rotate(-.2deg)}
.pilebtn:hover .sh.top{transform:translateY(-4px) rotate(0)}
.pile.open .sh.top{box-shadow:0 0 0 2px var(--tint),0 14px 24px -14px rgba(0,0,0,.65)}
.pile .pip{font-size:10.5px;font-weight:700;letter-spacing:.08em;opacity:.6}
.pile .ptx{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.pile .cnt{position:absolute;right:-8px;top:-9px;min-width:22px;height:22px;padding:0 6px;box-sizing:border-box;border-radius:11px;background:var(--ink);color:var(--bg);font-size:12px;font-weight:700;display:grid;place-items:center;box-shadow:0 4px 10px rgba(0,0,0,.35);z-index:2}
.pile .nm{font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pile .nm small{display:block;font-size:12.5px;font-weight:400;color:var(--ink3)}
.pinew .sh.top{transform:none}
.pinew textarea{width:100%;height:100%;border:0;background:transparent;resize:none;outline:none;font:inherit;color:#2a2414}
.pinew textarea::placeholder{color:rgba(42,36,20,.55)}
.piabout{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink3)}
.piabout select{flex:1;min-width:0;font:inherit;font-size:13px;color:var(--ink);background:var(--sunk);border:1px solid var(--hair);border-radius:8px;padding:4px 6px}
.pispread{margin-top:26px;padding:16px 18px 18px;border-radius:16px;background:color-mix(in srgb,var(--pc) 7%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--pc) 22%,transparent);animation:logIn .25s var(--spring,ease) both}
.pispread>header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.pispread>header .sp{flex:1}
.pispread .piline{gap:18px}
.pispread .pnote{width:180px}
.pib{border-radius:3px!important;box-shadow:0 1px 0 rgba(255,255,255,.25) inset,0 12px 22px -14px rgba(0,0,0,.6)!important;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 45%),var(--pi)!important}
.pib::after{display:none}
/* reading: the paper's notes button */
.pnbtn{display:inline-flex;align-items:center;gap:8px}
/* the log */
.panel{background:var(--surface)}
.logadd{border:0!important;background:none!important;padding:4px 0 0!important;gap:10px}
.logadd .logkinds{background:color-mix(in srgb,var(--ink) 5%,transparent);border:0;border-radius:10px;padding:3px;width:max-content}
.logadd .logkinds button{border-radius:7px;font-size:13px;min-height:28px;padding:3px 11px}
.logadd textarea{background:color-mix(in srgb,var(--ink) 3.5%,transparent)!important;border:1px solid var(--hair)!important;border-radius:10px!important;min-height:42px!important}
.loglist:before{background:var(--hair)}
.loglist .lk{background:color-mix(in srgb,var(--ink) 6%,transparent)!important;border:0!important;color:var(--ink2)!important}
.loglist .lh b{font-weight:600;font-size:13.5px}
.loglist p{color:var(--ink2)}
.logtools{margin:2px 0 14px}
.chome .hcard>header .sp{flex:1}.pile .pip,.pile .ptx{text-align:left;color:#2a2414}

/* the slim header (scrolling) and the reading header: one short row of dots, then the current step in words */
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .threadbar .nmrow :is(h1,h2){font-size:19px!important}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .threadbar{padding:8px 18px!important;align-items:center}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .threadbar .who{gap:14px}
.caseroom.reading:not(.hdropen) .threadbar .who>small.cmeta{order:2;font-size:13px;color:var(--ink3)}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6wrap{display:flex!important;flex-direction:row!important;align-items:center;gap:14px;padding:0!important;border:0!important;margin:0!important;min-width:0}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6{flex:0 1 300px;min-width:180px}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6::before{top:9px;left:9px;right:9px}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6 li:has(.st6b.done)::after{top:9px;left:9px;right:-9px}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6c{width:18px!important;height:18px!important;border-width:2px!important}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6c svg{width:10px;height:10px}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6b{padding:0!important;gap:0}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) :is(.st6l,.st6s,.st6p){display:none!important}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6b.cur .st6c{box-shadow:0 0 0 4px color-mix(in srgb,var(--tint) 18%,transparent)}
:is(.caseroom.slim,.caseroom.reading:not(.hdropen)) .st6n{display:inline!important;font-size:13px;color:var(--ink2);white-space:nowrap;margin:0}
/* the current step in the theme's own blue, so it reads in light and dark */
.st6b.cur .st6c{border-color:var(--tint)!important;box-shadow:0 0 0 6px color-mix(in srgb,var(--tint) 16%,transparent),0 0 16px color-mix(in srgb,var(--tint) 45%,transparent)}
.st6b.cur .st6l{color:var(--tint)}
/* the evidence search: one soft ring around the box, nothing on the field inside */
.rail .psearch input,.rail .psearch input:focus,.rail .psearch input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important;background:transparent!important;appearance:none;-webkit-appearance:none}
.rail .psearch input::-webkit-search-decoration{-webkit-appearance:none}
.rail .psearch{border:1px solid transparent;transition:box-shadow .15s,border-color .15s}
.rail .psearch:focus-within{border-color:color-mix(in srgb,var(--tint) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 14%,transparent)}
.caseroom.reading .ws>.panel{background:var(--surface);z-index:31}
/* ---------- a paper open: one calm toolbar (beta.58) ----------
   ‹ Case · the paper's name with its place in the list · its tools, quiet · Keep as a note.
   The open-paper tabs are gone: the evidence list on the left is the list of papers. */
.tabsbar.withviews .tabs,.tabsbar.withviews .tabsmore{display:none!important}
.tabsbar.withdoc{display:flex;align-items:center;gap:10px;padding:8px 14px 8px 12px;min-height:56px;background:var(--surface);border-bottom:1px solid var(--hair)}
.tabsbar.withdoc .cviews{flex:none;background:none!important;border:0;padding:0}
.tabsbar.withdoc .cviews [data-cview="welcome"]{background:none!important;box-shadow:none!important;border:0;color:var(--ink2);font-weight:500;font-size:14px;padding:6px 10px 6px 6px;border-radius:8px;display:inline-flex;align-items:center;gap:4px}
.tabsbar.withdoc .cviews [data-cview="welcome"]::before{content:"‹";font-size:20px;line-height:1;margin-top:-2px;color:var(--ink3)}
.tabsbar.withdoc .cviews [data-cview="welcome"]:hover{background:var(--sunk)!important;color:var(--ink)}
.tabsbar.withdoc .rtools{flex:1;min-width:0;display:flex;align-items:center;gap:4px;padding-left:12px;border-left:1px solid var(--hair)}
.rtools .dochead{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:0;border:0;background:none}
.rtools .dochead .dname{order:1;font-size:15px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:none;font-style:normal}
.rtools .dochead .rdnav{order:2;display:inline-flex;align-items:center;gap:0;flex:none;color:var(--ink3)}
.rtools .dochead .rdnav .icobtn{width:24px;height:24px;color:var(--ink3);font-size:16px}
.rtools .dochead .rdnav .icobtn:hover{color:var(--ink);background:var(--sunk)}
.rtools .dochead .rdnav .tiny{font-size:12.5px;font-variant-numeric:tabular-nums}
.rtools .dochead .dsub{display:none}
.rtools .dochead .grow{order:3;flex:1}
.rtools .dochead>.btn,.rtools .dochead>.icobtn{order:4}
.rtools .btn.ghost,.rtools .icobtn{color:var(--ink2)!important;background:none;font-weight:500}
.rtools .btn.ghost:hover,.rtools .icobtn:hover{background:var(--sunk);color:var(--ink)!important}
.rtools .btn.ghost svg{stroke:currentColor}
.rtools .pnbtn{padding-left:6px}
.rtools .rbar{display:flex;align-items:center;gap:2px;padding:0 0 0 8px;margin:0;border:0;background:none;min-height:0;flex:none}
.rtools .rbar .sp,.rtools .rbar .hidesm{display:none}
.rtools .rbar #pdfPos{font-size:12.5px;color:var(--ink3);margin-right:6px;white-space:nowrap;font-variant-numeric:tabular-nums}
.rtools .rbar #pdfZoomOut{margin-left:6px;border-radius:8px 0 0 8px;background:var(--sunk)}
.rtools .rbar #pdfZoomIn{border-radius:0 8px 8px 0;background:var(--sunk)}
.rtools .rdkeep{margin-left:8px;flex:none}
.rtools>*{flex-shrink:0}.rtools>.dochead{flex-shrink:1}
@media (max-width:1250px){.rtools .rbar #pdfSnip,.rtools .rbar #annPinBtn{font-size:0;gap:0;width:34px;padding:0;justify-content:center}.rtools .rbar #pdfSnip svg,.rtools .rbar #annPinBtn svg{margin:0}}
/* a page wider than the window starts at its left edge instead of being cut off */
.pdfread{align-items:safe center}
.rtools .rdnav,.rtools .dochead .rdnav{border:0!important;padding:0!important;margin:0!important;box-shadow:none!important}

/* Ctrl K: the field has no box of its own inside the search bar */
.palette input,.palette input:focus,.palette input:focus-visible{outline:none!important;box-shadow:none!important;border:0!important;background:transparent!important}
.ntq{margin:0 0 10px;padding:8px 12px;border-left:3px solid var(--line);color:var(--ink2);font-style:italic}.setup .acts .sp{flex:1}.btn.danger{color:var(--red)}
/* the empty contact: the same shape as a full one */
.pchip.none{flex-direction:column!important;align-items:flex-start;border:0!important;color:var(--ink3)}
.pchip.none .pn{display:inline-flex;align-items:center;gap:4px;color:var(--ink3);font-size:14px}
.pchip.none .pn svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.pchip.none:hover .pn{color:var(--tint)}
.schclash .linkbtn{color:var(--amber);text-align:left;font-size:13px}
/* the search box: an edge you can see (3:1 against the bar), a clear focus ring */
.top .tc .kbtn{border:1px solid color-mix(in srgb,var(--ink) 42%,transparent)!important;color:var(--ink2)}
.top .tc .kbtn:hover{border-color:color-mix(in srgb,var(--ink) 60%,transparent)!important}
.top .tc .kbtn:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.top .tc .kbtn .kbhint{color:var(--ink2);border-color:color-mix(in srgb,var(--ink) 35%,transparent)}
/* ---------- reminders ---------- */
.rmpick{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:8px 0 2px}
.rmpick>.tiny{margin-right:2px}
.rmc{appearance:none;border:0;cursor:pointer;font:500 13px var(--font);padding:4px 10px;border-radius:999px;background:var(--sunk);color:var(--ink2);display:inline-flex;align-items:center;gap:5px;min-height:28px}
.rmc:hover{color:var(--ink)}.rmc[aria-pressed="true"]{background:var(--ink);color:var(--bg)}
.rmc.sug{background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}.rmc.sug[aria-pressed="true"]{background:var(--amber);color:#fff}
.rmc svg,.rmchip svg,.rmic svg,.pibell svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.rmdate input{font:inherit;font-size:13px;color:var(--ink2);background:var(--sunk);border:1px solid var(--hair);border-radius:999px;padding:3px 9px;min-height:28px}
.pinew .rmpick{margin:10px 0 6px}
.pibell{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;margin-top:auto;font-size:11.5px;font-weight:700;color:#7a3e12;background:rgba(255,255,255,.55);border-radius:999px;padding:2px 8px}
.rmlist{list-style:none;margin:0;padding:0}
.rmrow{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:12px;align-items:center;padding:9px 0;border-top:1px solid var(--hair)}
.rmrow:first-child{border-top:0}
.rmic{width:28px;height:28px;border-radius:8px;display:grid;place-items:center;background:color-mix(in srgb,var(--amber) 16%,transparent);color:var(--amber)}
.rmrow.late .rmic{background:color-mix(in srgb,var(--red) 14%,transparent);color:var(--red)}
.rmt{all:unset;cursor:pointer;min-width:0}.rmt b{display:block;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rmt small{color:var(--ink3);font-size:12.5px}.rmt:hover b{color:var(--tint)}.rmt:focus-visible{outline:2px solid var(--tint);border-radius:4px}
.rmrow.late .rmt small{color:var(--red)}
.rmacts{display:flex;gap:4px}
.rmsoon{margin:12px 0 2px}
.rmlist.soon .rmic{background:var(--sunk);color:var(--ink3)}
.rmcase{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.rmchip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--amber);background:color-mix(in srgb,var(--amber) 13%,transparent);border-radius:999px;padding:4px 6px 4px 11px}
.rmchip b{font-weight:700}.rmchip .linkbtn{margin-left:4px;font-weight:600;color:var(--ink);padding:2px 8px;border-radius:999px;background:var(--surface)}
.rmchip.late{color:var(--red);background:color-mix(in srgb,var(--red) 11%,transparent)}
.rmchip.sm{display:flex;width:max-content;max-width:100%;margin-top:5px;font-size:12px;padding:2px 9px;font-weight:600}
/* ---------- beta.64: Ctrl K like Raycast ---------- */
.palette{top:13vh;width:min(680px,94vw);height:auto;max-height:min(560px,78vh);transform:translateY(8px) scale(.99);border-radius:16px;transition:opacity .14s,transform .2s var(--spring),width .18s ease}
.palette.on{transform:none}
.palette.pv{width:min(940px,94vw)}
.palin{height:58px;padding:0 18px;gap:10px}
.palin svg{width:19px;height:19px}
.palette .palin input{font-size:18px}
.palchip{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;padding:3px 9px;border-radius:7px}
.palchip i{width:8px;height:8px;border-radius:50%;background:var(--teal)}
#palScope:empty{display:none}
.palbody{display:grid;grid-template-columns:minmax(0,1fr);min-height:0;flex:1}
.palette.pv .palbody{grid-template-columns:minmax(0,1fr) minmax(0,.92fr)}
.palette:not(.pv) .palprevhost{display:none}
.palette:not(.pv) ul{border-right:0}
.palette ul{padding:6px 8px 8px}
.palette li.palh{padding:10px 10px 4px;font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink3)}
.palette li.pwait{font-weight:500;font-style:italic}
.palette li{display:flex;align-items:center;gap:11px;height:40px;padding:0 10px;border-radius:9px;font-size:14.5px}
.palette li .pt{display:block;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palette li .ptt{display:inline;white-space:nowrap}
.palette li .pt small{display:inline;margin-left:8px;font-size:13.5px;color:var(--ink3)}
.palette li .pk{flex:none;display:flex;gap:4px;align-items:center;font-size:12.5px;color:var(--ink3);white-space:nowrap}
.palette li .pk kbd{min-width:20px;text-align:center;font-size:11.5px;line-height:18px;padding:0 5px}
.palette li[aria-selected="true"]{background:color-mix(in srgb,var(--tint) 13%,var(--sunk))}
.palette li mark{background:none;color:var(--ink);font-weight:700;text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--tint) 55%,transparent);text-decoration-thickness:2px;text-underline-offset:3px;padding:0}
.palette li .pi{flex:none;width:24px;height:24px;border-radius:6px;display:grid;place-items:center;font-size:11px;font-weight:700;color:#fff;background:#5d6778}
.palette li .pi b{font-size:8.5px;letter-spacing:.02em;color:#fff}
.palette li .pi svg{width:14px;height:14px;stroke:#fff;fill:none;stroke-width:2}
.palette li .pi.c-case{background:color-mix(in srgb,var(--la,#3a9d8f) 50%,#0c1824)}
.palette li[aria-selected="true"] .pt small,.palette li[aria-selected="true"] .pk{color:var(--ink2)}
.palette li .pi.c-pdf{background:#c2493c}.palette li .pi.c-doc{background:#3569c4}.palette li .pi.c-note{background:#b8901f}.palette li .pi.c-rem{background:#b2621f}
.palette li .pi.c-act{background:#6a58c8}.palette li .pi.c-nav{background:#5a6475}.palette li .pi.c-per{background:#a8642a}
.ptag{display:inline-block;padding:2px 7px;border-radius:6px;font-weight:600;font-size:12px;background:var(--sunk);color:var(--ink2)}
.ptag.late{background:color-mix(in srgb,var(--red,#b4382c) 14%,var(--raised));color:color-mix(in srgb,var(--red,#b4382c) 85%,var(--ink))}
.ptag.soon{background:color-mix(in srgb,var(--amber,#b97a10) 16%,var(--raised));color:color-mix(in srgb,var(--amber,#9c5f06) 70%,var(--ink))}
.palbar{display:flex;align-items:center;gap:10px;height:44px;padding:0 10px 0 14px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--sunk) 45%,var(--raised));font-size:13px;color:var(--ink2);flex:none}
.palbar .sp{flex:1}
.pallogo{width:18px;height:18px;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font-size:9px;font-weight:800;color:var(--ink)}
.palbar button{all:unset;display:inline-flex;align-items:center;gap:6px;padding:4px 8px;border-radius:7px;cursor:pointer;color:var(--ink2)}
.palbar button:hover{background:var(--sunk)}.palbar button:focus-visible{outline:2px solid var(--tint)}
.palbar .palpri{color:var(--ink);font-weight:600}
.palbar kbd{min-width:20px;text-align:center;font-size:11.5px;line-height:18px;padding:0 5px}
.palbar .vs{width:1px;height:16px;background:var(--line)}
.palact{position:absolute;right:10px;bottom:52px;width:310px;max-height:70%;display:flex;flex-direction:column;border-radius:12px;background:var(--raised);box-shadow:0 0 0 1px var(--line),0 20px 50px -14px rgba(0,0,0,.45);overflow:hidden;z-index:2}
.palact[hidden]{display:none}
.palact .pah{padding:8px 12px 2px;font-size:12px;font-weight:600;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palact ul{list-style:none;margin:0;padding:4px 6px;overflow:auto;border:0!important}
.palact li{display:flex;align-items:center;gap:10px;height:36px;padding:0 8px;border-radius:8px;font-size:14px;cursor:pointer}
.palact li[aria-selected="true"]{background:color-mix(in srgb,var(--tint) 13%,var(--sunk))}
.palact .pai{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;background:var(--sunk);color:var(--ink2);flex:none}
.palact .pai svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.palact .pat{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.palact .pak{display:flex;gap:3px}.palact .pak kbd{font-size:11.5px;line-height:18px;padding:0 5px}
.palact input{border:0!important;border-top:1px solid var(--line)!important;padding:0 12px!important;height:40px;font-size:14px!important;outline:none;background:transparent;color:var(--ink)}
@media (max-width:760px){.palette.pv .palbody{grid-template-columns:1fr}.palette.pv .palprevhost{display:none}}
/* ---------- beta.65: contacts, calmer ---------- */
.pcedit{gap:16px}
.pchead{align-items:center}
.pcedit .pkid{margin:0;flex:1;font-size:15px;color:var(--ink2)}
.pcedit .pkid .linkbtn{margin-left:6px;font-size:14px}
.pckidf{margin-top:-6px;padding:12px 14px;border-radius:14px;background:var(--field)}
.pckidf[hidden]{display:none}
.pctodo{padding:12px 14px 14px;border-radius:16px;background:color-mix(in srgb,var(--amber) 7%,var(--solid));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--amber) 22%,transparent)}
.pctodo[hidden]{display:none}
.pctodo header h4{margin:0;font-size:15px;font-weight:600;display:flex;align-items:center;gap:8px}
.pctodo header p{margin:2px 0 10px}
.pcn{display:inline-grid;place-items:center;min-width:22px;height:20px;padding:0 6px;border-radius:999px;background:color-mix(in srgb,var(--amber) 22%,var(--solid));font-size:12px;font-weight:700;color:var(--ink)}
.pcn:empty{display:none}
.pctodo .fndtray{margin:0;padding:0;background:none;box-shadow:none;border-radius:0}
.pctodo .fndlist,#pcAlsoList{display:grid;gap:6px;max-height:none}
#pcAlso{margin-top:6px}#pcAlso[hidden]{display:none}
.pctodo .fnd{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:9px 10px 9px 14px;border-radius:12px;background:var(--solid);box-shadow:0 1px 0 var(--hair);border:0}
.pctodo .fndw{flex:1;min-width:220px;display:flex;flex-wrap:wrap;align-items:center;gap:3px 8px}
.pctodo .fndw>b{font-size:15px}
.pctodo .fndw>.tiny,.pctodo .pafrom{flex-basis:100%;order:9}
.pctodo .fndacts{display:flex;align-items:center;gap:8px}
.fndseg{display:inline-flex;gap:2px;padding:2px;border-radius:9px;background:var(--sunk)}
.fndseg button{all:unset;cursor:pointer;font-size:13px;font-weight:600;padding:4px 10px;border-radius:7px;color:var(--ink2)}
.fndseg button:hover{background:var(--solid);color:var(--ink)}.fndseg button:focus-visible{outline:2px solid var(--tint)}
.pctodo .fndno{color:var(--ink3)}
.pctodo .palso .pak{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--sunk);color:var(--ink2)}
.pctodo .palso .pak svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2}
.pctodo .palso .pactx{flex-basis:100%;order:8;color:var(--ink2);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcedit .psh{display:flex;align-items:center;justify-content:space-between;margin:0 0 6px 4px}
.pcedit .psh h4{margin:0}
.pcedit .psec{margin-top:4px}
.pcedit .prows:empty{display:none}
.pcedit .pnone{display:none;margin:0 0 4px;padding:10px 14px;border-radius:14px;border:1.5px dashed var(--line);color:var(--ink3);font-size:14px}
.pcedit .prows:empty+.pnone{display:block}
.pcedit .prows>.pedit2.pcard{display:grid;grid-template-columns:18px 38px minmax(0,1fr) 30px;gap:4px 10px;align-items:center;padding:10px 8px 10px 4px}
.pcard .psel{opacity:0;transition:opacity .12s}
.pcard:hover .psel,.pcard:focus-within .psel,.pcedit:has([data-psel]:checked) .psel{opacity:1}
.pav{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;font-size:13.5px;font-weight:700;background:color-mix(in srgb,var(--ink3) 16%,var(--solid));color:var(--ink)}
.pav svg{width:17px;height:17px;stroke:currentColor;fill:none;stroke-width:1.8}
.pav.r-parent{background:color-mix(in srgb,var(--amber) 20%,var(--solid))}
.pav.r-setting{background:color-mix(in srgb,var(--teal) 18%,var(--solid))}
.pav.r-la{background:color-mix(in srgb,var(--blue) 16%,var(--solid))}
.pmain{min-width:0;display:grid;gap:2px}
.pl1{display:flex;align-items:center;gap:8px;min-width:0}
.pl2{display:flex;flex-wrap:wrap;gap:0 14px;min-width:0}
.pcedit .pcard input,.pcedit .pcard select{padding:4px 6px;border-radius:7px;border:1px solid transparent;background:transparent;color:var(--ink);font:inherit;min-width:0}
.pcedit .pcard input:hover,.pcedit .pcard select:hover{background:var(--field)}
.pcedit .pcard input:focus,.pcedit .pcard select:focus{background:var(--field);border-color:color-mix(in srgb,var(--tint) 60%,transparent);outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--tint) 18%,transparent)}
.pcedit .pcard .pname{flex:1;font-size:15.5px;font-weight:600!important}
.pcedit .pcard select{flex:none;max-width:42%;font-size:13px;font-weight:600;color:var(--ink2);background:var(--sunk);padding:3px 8px}
.pf{display:inline-flex;align-items:center;gap:4px;min-width:0;flex:1 1 200px;color:var(--ink3)}
.pf svg{width:14px;height:14px;flex:none;stroke:currentColor;fill:none;stroke-width:1.8}
.pcedit .pf input{flex:1;font-size:14px;font-variant-numeric:tabular-nums}
.pcedit .pf input::placeholder{color:var(--tint);opacity:.9}
.pcedit .pcard .psrc{all:unset;display:block;padding:0 6px;font-size:12.5px;color:var(--ink3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcedit .pcard .psrc .linkbtn{font-size:12.5px;color:var(--tint);text-decoration:underline;text-underline-offset:2px}
.pcedit .pcard [data-prm]{opacity:.45}.pcedit .pcard:hover [data-prm],.pcedit .pcard [data-prm]:focus-visible{opacity:1}
.pcedit .pccheck{background:none;box-shadow:none;padding:2px 6px 0}
.pcedit .pccheck li{font-size:13.5px}
.pcedit .acts .quiet{color:var(--ink3);font-weight:500}
@media (max-width:820px){.pcedit .prows>.pedit2.pcard{grid-template-columns:18px 32px minmax(0,1fr) 28px}.pcard select{max-width:50%}}
.pcedit .pcard select{field-sizing:content;max-width:210px}
.pcedit .acts .btn{white-space:nowrap}.pcedit .acts .btn.quiet{display:inline-flex;align-items:center;gap:6px}
.calnote{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:14px;background:color-mix(in srgb,var(--tint) 7%,var(--solid));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--tint) 18%,transparent);margin:4px 0 12px}
.calnote>svg{width:18px;height:18px;flex:none;margin-top:2px;stroke:var(--tint);fill:none;stroke-width:1.8}
.calnote p{margin:3px 0 0}
.rmpop{display:flex;align-items:center;gap:8px;margin-top:8px}.rmpop svg{width:13px;height:13px;vertical-align:-2px;margin-right:5px;stroke:currentColor;fill:none;stroke-width:2}
/* plans */
.planpill{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:6px 8px 6px 14px;border-radius:999px;font-size:13.5px;color:var(--ink2);background:var(--solid);box-shadow:0 0 0 1px var(--line)}
.planpill span{padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--tint) 14%,var(--solid));color:var(--tint);font-weight:600}
.planpill.over{box-shadow:0 0 0 1px color-mix(in srgb,var(--amber) 40%,transparent);background:color-mix(in srgb,var(--amber) 8%,var(--solid))}
.planpill:focus-visible{outline:2px solid var(--tint);outline-offset:2px}
.planlock{cursor:pointer}.planlock svg{width:12px;height:12px}
.plcards{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 10px}
.plcard{position:relative;padding:18px 18px 16px;border-radius:16px;background:var(--solid);box-shadow:0 0 0 1px var(--line)}
.plcard.on{box-shadow:0 0 0 2px var(--tint)}
.plcard h4{margin:0;font-family:var(--font-d);font-weight:400;font-size:22px}
.plcard .plp{margin:4px 0 2px;font-size:20px;font-weight:700}
.plcard ul{margin:10px 0 0;padding-left:18px;font-size:14px;color:var(--ink2);line-height:1.6}
.plcard .pltag{position:absolute;top:14px;right:14px;font-size:12px;font-weight:600;padding:3px 9px;border-radius:999px;background:color-mix(in srgb,var(--tint) 14%,var(--solid));color:var(--tint)}
.plbuy{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.plmore{margin-top:6px}.plmore summary{cursor:pointer;color:var(--tint)}
@media (max-width:640px){.plcards{grid-template-columns:1fr}}
.plbuy a.btn{text-decoration:none}
.topnav .num{color:var(--ink3);opacity:1!important}

/* beta.70: a narrow sheet for short jobs (a note, a code, the school) */
.sheet.narrow{width:min(560px,94vw)}
.sheet.narrow textarea{min-height:0;resize:none;field-sizing:content;max-height:40vh}
.schedit{appearance:none;border:0;background:none;padding:2px 3px;margin-left:2px;border-radius:6px;color:var(--ink3);cursor:pointer;vertical-align:-2px;display:inline-flex}
.schedit svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.schedit:hover,.schedit:focus-visible{color:var(--ink);background:var(--sunk)}
.schedit0{appearance:none;border:0;background:none;padding:0;font:inherit;color:var(--ink3);cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.schedit0:hover{color:var(--ink)}
.scopts{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin:8px 0 12px}
.pchip.nil .pn{color:var(--ink3)}
/* beta.70 reminders on Today: Today, Tomorrow, Later, each row with its time */
.rmcols{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:4px 28px}
.rmgrp .wgh{margin:2px 0 4px}
.rmrow{grid-template-columns:62px minmax(0,1fr) auto}
.rmwhen{display:flex;flex-direction:column;line-height:1.15;font-variant-numeric:tabular-nums}
.rmwhen b{font-weight:600;font-size:15px;color:var(--ink)}
.rmwhen small{font-size:12px;color:var(--ink3)}
.rmrow.late .rmwhen small,.rmrow.late .rmwhen b{color:var(--red)}
.rmat{display:inline-flex;align-items:center;gap:6px}
.rmat[hidden]{display:none}
.rmat input{font:inherit;font-size:13px;color:var(--ink2);background:var(--sunk);border:1px solid var(--hair);border-radius:999px;padding:3px 9px;min-height:28px}
.rmcols .rmrow{grid-template-columns:76px minmax(0,1fr) auto;align-items:start}
.rmcols .rmt b{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.3}
.rmcols .rmacts{flex-direction:column;align-items:flex-end;gap:0}
.rmcols .rmacts .btn.sm{min-height:26px;padding:2px 8px}
