/* TeamGram Work design system, taken unchanged from the prototype (v160). */
/* Layout: app shell; fixed left rail of views, working area, case drawer slides over from the right */
:root{
  --bg:#f4f6f9; --panel:#ffffff; --sunk:#eceff4; --line:#dce1e9; --fg:#141922; --muted:#5b6475; --faint:#8a93a3;
  --accent:#2343c9; --accent-soft:#e5eafd; --on-accent:#ffffff;
  --good:#1a7f4b; --good-soft:#e2f4ea; --warn:#c2560c; --warn-soft:#fdf1e6; --crit:#c22f3a; --overdue:#8f1a22; --crit-soft:#fbe5e7;
  --st-new:#5b2d9e; --st-new-bg:#f3edfd; --st-act:#145a3a; --st-act-bg:#e1f7f7; --st-pos:#1d7a35; --st-pos-bg:#d6f2dc; --st-neg:#9a1b26; --st-neg-bg:#fdebef;
  --t-INQ:#7653e8; --t-SAL:#2343c9; --t-REN:#0b7f86; --t-SUP:#1f6f9f; --t-CMP:#c22f3a; --t-ONB:#4f7d12; --t-COL:#4d6b57; --t-UPG:#b0368f;
  --symmix:100%; --col-bg:var(--sunk); --card-bg:var(--panel); --rail-bg:#151b27; --rail-line:#151b27; --rail-fg:#ffffff; --rail-muted:#aab3c4; --rail-hover:rgba(255,255,255,.07); --rail-active:#2d3c6b; --rail-active-fg:#ffffff; --rail-badge:rgba(255,255,255,.16); --rail-badge-fg:#e6eaf2; --rail-brand:#ffffff; --rail-brand-fg:#151b27; --rail-new:#ffffff; --rail-focus:#9db0ff; --h1:#b0368f; --h2:#0d6fb8; --h3:#5e7316; --h4:#a8382a; --h5:#3f5d73; --h6:#1f8a6a;
  --shadow:0 12px 40px rgba(20,25,34,.14);
  --f-display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --f-body:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,"SF Mono",Menlo,monospace;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1b2029; --panel:#29303e; --sunk:#333b4b; --line:#414b5f; --fg:#e8ebf1; --muted:#a0a8b8; --faint:#6f7889;
  --accent:#7d93ff; --accent-soft:#232c4d; --on-accent:#0f1218;
  --good:#4cc487; --good-soft:#16301f; --warn:#f5a25d; --warn-soft:#36271b; --crit:#ff6b74; --overdue:#ff7a82; --crit-soft:#3a1a1e;
  --st-new:#cbb3ff; --st-new-bg:#2a2145; --st-act:#86dcb3; --st-act-bg:#123331; --st-pos:#8ddd9c; --st-pos-bg:#183622; --st-neg:#ffa3ab; --st-neg-bg:#3d1b22;
  --t-INQ:#a68cff; --t-SAL:#7d93ff; --t-REN:#3cc4cb; --t-SUP:#6cb4e4; --t-CMP:#ff6b74; --t-ONB:#9ccc55; --t-COL:#9cc4a8; --t-UPG:#ec7ccb;
  --symmix:62%; --col-bg:#232935; --card-bg:#363f52; --h1:#ec7ccb; --h2:#62b2f0; --h3:#9fc061; --h4:#ee7a6a; --h5:#94b2c8; --h6:#5fd1ac;
  --shadow:0 12px 40px rgba(0,0,0,.5); color-scheme:dark; --rail-bg:#08090d; --rail-line:#08090d; --rail-fg:var(--fg); --rail-muted:var(--muted); --rail-hover:rgba(255,255,255,.07); --rail-active:var(--accent-soft); --rail-active-fg:var(--accent); --rail-badge:rgba(255,255,255,.12); --rail-badge-fg:var(--fg); --rail-brand:var(--fg); --rail-brand-fg:#08090d; --rail-new:var(--accent); --rail-focus:var(--accent)}}
:root[data-theme="light"]{color-scheme:light}
:root[data-theme="dark"]{
  --bg:#1b2029; --panel:#29303e; --sunk:#333b4b; --line:#414b5f; --fg:#e8ebf1; --muted:#a0a8b8; --faint:#6f7889;
  --accent:#7d93ff; --accent-soft:#232c4d; --on-accent:#0f1218;
  --good:#4cc487; --good-soft:#16301f; --warn:#f5a25d; --warn-soft:#36271b; --crit:#ff6b74; --overdue:#ff7a82; --crit-soft:#3a1a1e;
  --st-new:#cbb3ff; --st-new-bg:#2a2145; --st-act:#86dcb3; --st-act-bg:#123331; --st-pos:#8ddd9c; --st-pos-bg:#183622; --st-neg:#ffa3ab; --st-neg-bg:#3d1b22;
  --t-INQ:#a68cff; --t-SAL:#7d93ff; --t-REN:#3cc4cb; --t-SUP:#6cb4e4; --t-CMP:#ff6b74; --t-ONB:#9ccc55; --t-COL:#9cc4a8; --t-UPG:#ec7ccb;
  --symmix:62%; --col-bg:#232935; --card-bg:#363f52; --h1:#ec7ccb; --h2:#62b2f0; --h3:#9fc061; --h4:#ee7a6a; --h5:#94b2c8; --h6:#5fd1ac;
  --shadow:0 12px 40px rgba(0,0,0,.5); color-scheme:dark; --rail-bg:#08090d; --rail-line:#08090d; --rail-fg:var(--fg); --rail-muted:var(--muted); --rail-hover:rgba(255,255,255,.07); --rail-active:var(--accent-soft); --rail-active-fg:var(--accent); --rail-badge:rgba(255,255,255,.12); --rail-badge-fg:var(--fg); --rail-brand:var(--fg); --rail-brand-fg:#08090d; --rail-new:var(--accent); --rail-focus:var(--accent)}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--fg);font:14px/1.45 var(--f-body);-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.app{display:grid;grid-template-columns:84px minmax(0,1fr);height:100%}
/* rail: icon + label, settings at the bottom with a popup menu */
.rail{background:var(--rail-bg);border-right:1px solid var(--rail-line);display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 6px;padding-left:max(6px,env(safe-area-inset-left,0px))}
.brand{width:40px;height:40px;border-radius:11px;background:var(--rail-brand);color:var(--rail-brand-fg);display:grid;place-items:center;font:700 15px/1 var(--f-display);letter-spacing:-.02em;margin-bottom:10px;flex:none}
.nav{display:flex;flex-direction:column;align-items:center;gap:2px}
.railbtn{all:unset;box-sizing:border-box;cursor:pointer;width:72px;padding:8px 4px 7px;border-radius:10px;display:flex;flex-direction:column;align-items:center;gap:4px;font-size:11px;font-weight:500;line-height:1.15;text-align:center;position:relative;color:var(--rail-muted)}
.railbtn svg{width:22px;height:22px;flex:none}
.railbtn:hover{background:var(--rail-hover);color:var(--rail-fg)}
.railbtn[aria-current="page"],.railbtn[aria-expanded="true"]{background:var(--rail-active);color:var(--rail-active-fg)}
.railbtn:focus-visible{outline:2px solid var(--rail-focus);outline-offset:-2px}
.railbtn.newbtn{color:var(--rail-new);margin-bottom:10px}
.railbtn.newbtn svg{width:30px;height:30px;padding:5px;border-radius:9px;background:var(--accent);color:var(--on-accent)}
.railbtn.newbtn:hover{background:var(--rail-hover)}
.nbadge{position:absolute;top:3px;left:calc(50% + 7px);font:600 10px/1.4 var(--f-mono);background:var(--rail-badge);color:var(--rail-badge-fg);border-radius:999px;padding:0 5px;min-width:16px;text-align:center}
.railbtn[aria-current="page"] .nbadge{background:var(--rail-bg);color:var(--rail-active-fg)}
.railbtn .apdot{position:absolute;top:5px;left:calc(50% - 15px);margin:0;box-shadow:0 0 0 2px var(--rail-bg)}
.rail .spacer{flex:1}
.popmenu{position:fixed;z-index:26;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);width:250px;padding:6px;display:flex;flex-direction:column;gap:2px}
.popmenu[hidden]{display:none}
.popmenu .pmh{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);padding:6px 10px 4px}
.popmenu [role=menuitem]{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;font-weight:500;color:var(--fg)}
.popmenu [role=menuitem] svg{width:18px;height:18px;color:var(--muted);flex:none}
.popmenu [role=menuitem]:hover,.popmenu [role=menuitem]:focus-visible{background:var(--sunk)}
.popmenu [role=menuitem][aria-current="page"]{background:var(--accent-soft);color:var(--accent)}
.popmenu [role=menuitem][aria-current="page"] svg{color:var(--accent)}
.popmenu [role=menuitem] .count{margin-left:auto;font:500 11px var(--f-mono);color:var(--faint)}
.popmenu .pmtheme{border-top:1px solid var(--line);margin-top:4px;padding:8px 10px 6px;display:flex;flex-direction:column;gap:6px}
.popmenu .pmtheme .lbl{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.popmenu .seg3{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:var(--sunk);border-radius:8px;padding:2px}
.popmenu .seg3 button{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:5px;padding:6px 4px;border-radius:6px;font-size:12.5px;font-weight:500;color:var(--muted)}
.popmenu .seg3 button svg{width:14px;height:14px}
.popmenu .seg3 button[aria-checked="true"]{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.popmenu .seg3 button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.popmenu .pmview{border-top:1px solid var(--line);margin-top:4px;padding:8px 10px 4px;display:flex;flex-direction:column;gap:5px;font-size:12px;color:var(--muted)}
.popmenu .pmview select{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 8px;font:inherit;font-size:13px;color:var(--fg)}
.ti.tidel .w{font-style:italic}
.ic.del{background:transparent;border:1px dashed var(--line);color:var(--faint)}
.ahist > summary{cursor:pointer;font-size:12.5px;color:var(--faint);list-style:none}
.ahist > summary::-webkit-details-marker{display:none}
.ahist > summary:hover{color:var(--accent)}
.ahist ol{margin:8px 0 0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:10px;font-size:13px}
.checks label.stale{color:var(--crit)}
.stalebox{display:flex;flex-direction:column}
.stalewhy{font-size:12px;color:var(--muted);margin-left:24px}
.pweights{display:grid;grid-template-columns:auto auto;gap:4px 10px;margin-top:6px;align-items:center;justify-content:start}
.pweights > .note{grid-column:1/-1}
.pw{display:contents;font-size:12.5px}
.pwin{display:inline-flex;align-items:center;gap:3px;color:var(--muted)}
.pwin input{width:62px;border:1px solid var(--line)!important;background:var(--panel)!important;border-radius:6px;padding:3px 6px!important;font:inherit;font-size:12.5px;text-align:right}
.tissue{display:inline-block;align-self:flex-start;margin:2px 0;font-size:11px;font-weight:600;color:var(--crit);background:var(--crit-soft);padding:1px 8px;border-radius:999px;vertical-align:middle}
.lfrom{display:flex;flex-direction:column;gap:10px}
.lfrom[hidden],.lnew[hidden],.pfrow[hidden]{display:none}
.lfrom select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font:inherit;font-weight:400;font-size:13.5px;color:var(--fg)}
.cinfo{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin-top:6px;font-size:13px}
.cinfo a{color:var(--fg);text-decoration:none}
.cinfo a:hover{color:var(--accent);text-decoration:underline}
.cinfo span{color:var(--muted)}
.cinfo .cedit{font-size:12.5px;color:var(--faint);font-weight:400}
.cinfo .cedit:hover{color:var(--accent)}
.asbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:0 0 16px;padding:8px 10px 8px 14px;border-radius:10px;background:var(--panel);color:var(--fg);font-size:13px;border:1px solid var(--line)}
.popmenu .pmfoot{border-top:1px solid var(--line);margin-top:4px;padding:8px 10px 4px;font-size:12px;color:var(--faint);display:flex;flex-direction:column;gap:6px}
.popmenu .pmfoot button{all:unset;cursor:pointer;color:var(--muted);text-decoration:underline;text-underline-offset:2px;align-self:flex-start}
.btn{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:7px 12px;font-weight:500}
.btn:hover{background:var(--sunk)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.btn.primary:hover{filter:brightness(1.08)}
.btn.danger{background:var(--crit);border-color:var(--crit);color:#fff}
.btn.danger:hover{filter:brightness(1.08)}
.btn:disabled,.btn[disabled]{opacity:.45;cursor:not-allowed;filter:none}
.btn.ghostdanger{color:var(--crit);border-color:transparent;background:transparent}
.btn.ghostdanger:hover{background:color-mix(in srgb,var(--crit) 10%,transparent)}
.btn.small{padding:4px 9px;font-size:13px}
/* main */
main{overflow:auto;min-width:0}
.wrap.wide{max-width:none}
.wrap{transition:max-width .2s;max-width:1180px;margin:0 auto;padding-block:26px 60px;padding-left:max(28px,env(safe-area-inset-left,0px));padding-right:max(28px,env(safe-area-inset-right,0px))}
.head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:12px 20px;margin-bottom:18px}
h1{font:700 26px/1.15 var(--f-display);letter-spacing:-.015em;margin:0;text-wrap:balance}
h2{font:600 15px/1.3 var(--f-display);margin:0}
.sub{color:var(--muted);margin-top:4px}
.sub b{color:var(--fg);font-weight:600}
.seg{display:inline-flex;background:var(--sunk);border-radius:8px;padding:3px;gap:2px}
.seg button{all:unset;cursor:pointer;padding:5px 11px;border-radius:6px;color:var(--muted);font-weight:500;font-size:13px}
.seg button[aria-pressed="true"]{background:var(--panel);color:var(--fg);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.fchip{border:1px solid var(--line);background:var(--panel);border-radius:999px;padding:4px 11px 4px 9px;font-size:13px;display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.fchip[aria-pressed="true"]{border-color:var(--fg);color:var(--fg)}
.fchip .n{font:500 11px var(--f-mono);color:var(--faint)}
.dot{width:8px;height:8px;border-radius:50%;background:var(--c,var(--faint));flex:none}
/* type chip + key */
.tchip{display:inline-flex;align-items:center;gap:5px;font:600 11px/1 var(--f-body);letter-spacing:.04em;text-transform:uppercase;color:var(--c);white-space:nowrap}
.tchip::before{content:"";width:8px;height:8px;border-radius:2px;background:var(--c)}
.key{font:500 12px var(--f-mono);color:var(--muted);white-space:nowrap}
.tsym{--sz:20px;display:inline-grid;place-items:center;flex:none;width:var(--sz);height:var(--sz);border-radius:calc(var(--sz)*.28);background:color-mix(in srgb,var(--c) var(--symmix),#000);color:#fff;vertical-align:middle}
.tsym svg{width:62%;height:62%}
.tsym ~ .tchip::before{display:none}
.cid{display:inline-flex;align-items:center;gap:8px;flex:none}
.prim{color:var(--muted);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto;max-width:40%;min-width:0}
.card .ct .prim{display:block;max-width:none;white-space:normal;font-size:12.5px;margin-bottom:2px}
@media (max-width:820px){ .row .line1{flex-wrap:wrap;row-gap:3px} .row .title{white-space:normal} .row .linet{flex-wrap:wrap;row-gap:4px} .row .prim{max-width:none} }

.tsym.lg{--sz:30px}.tsym.sm{--sz:18px}
.tcell{display:flex;gap:8px;align-items:center}
.symgal{display:grid;grid-template-columns:repeat(auto-fill,minmax(38px,1fr));gap:6px;margin-top:6px;max-width:520px}
.symgal button{display:grid;place-items:center;height:38px;border-radius:9px;border:1px solid var(--line);background:var(--panel);color:var(--muted);cursor:pointer;padding:0}
.symgal button svg{width:20px;height:20px}
.symgal button:hover{border-color:var(--c);color:var(--fg)}
.symgal button[aria-pressed="true"]{background:color-mix(in srgb,var(--c) var(--symmix),#000);border-color:transparent;color:#fff}
.symgal button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.status{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;padding:2px 8px;border-radius:999px;background:var(--sunk);color:var(--fg);white-space:nowrap;box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 35%,transparent)}
.status.cat-new{background:var(--st-new-bg);color:var(--st-new)} .status.cat-active{background:var(--st-act-bg);color:var(--st-act)} .status.cat-waiting{background:var(--sunk);color:var(--muted)} .status.cat-pos{background:var(--st-pos-bg);color:var(--st-pos)} .status.cat-neg{background:var(--st-neg-bg);color:var(--st-neg)}
.av{display:inline-grid;place-items:center;width:24px;height:24px;border-radius:50%;background:var(--sunk);font:600 10.5px var(--f-body);color:var(--muted);flex:none}
.av.me{background:var(--accent);color:var(--on-accent)}
.num{font-variant-numeric:tabular-nums}
/* today */
.rows{background:var(--panel);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.row{display:grid;grid-template-columns:4px minmax(0,1fr) auto;gap:0 14px;align-items:center;padding:12px 16px 12px 0;border-top:1px solid var(--line);cursor:pointer}
.row:first-child{border-top:0}
.row:hover{background:var(--sunk)}
.row .stripe{align-self:stretch;background:var(--c);border-radius:0 3px 3px 0;margin:-12px 0}
.row .main{min-width:0;display:flex;flex-direction:column;gap:3px}
.row .line1{display:flex;align-items:center;gap:10px;min-width:0}
.row .title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.row .nextstep b{font-weight:600;color:var(--fg)} .row .nextstep b.od{color:var(--overdue)}
.row .linet{display:flex;align-items:center;gap:10px;min-width:0}
.row .main > :not(.line1){margin-left:28px}
.card > :not(:first-child){margin-left:26px}
.row .linet > :not(.title){flex:none}
.row .line1 .prim{max-width:none}
.row .line2{display:flex;flex-wrap:wrap;gap:4px 12px;color:var(--muted);font-size:13px}
.row .reason{color:var(--fg)}
.row .reason.crit{color:var(--crit)} .row .reason.warn{color:var(--fg)}
.row .right{display:flex;align-items:center;gap:14px;text-align:right}
.empty{padding:28px;text-align:center;color:var(--muted);background:var(--panel);border:1px dashed var(--line);border-radius:10px}
/* board */
.board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(220px,1fr);gap:12px;overflow-x:auto;padding-bottom:8px}
.col{background:var(--col-bg);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:8px;min-height:240px}
.col.over{outline:2px dashed var(--accent);outline-offset:-2px}
.col-h{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 4px}
.col-h .s{font-weight:600;font-size:13px}
.col-h .t{font:500 11.5px var(--f-mono);color:var(--muted)}
.card{background:var(--card-bg);border:1px solid var(--line);border-radius:8px;padding:10px 11px;display:flex;flex-direction:column;gap:6px;cursor:grab}
.card:hover{border-color:var(--faint)}
.card.dragging{opacity:.4}
.card .ct{font-weight:600;font-size:13.5px;line-height:1.3}
.card .cm{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--muted);font-size:12.5px}
.card .cm > span:first-child{white-space:nowrap}.card .cm .num{text-align:right}
/* list */
.qerr{color:var(--crit);font-size:13px;margin:-4px 0 12px}
.tablewrap{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px}
table{border-collapse:collapse;width:100%;min-width:860px}
th{text-align:left;font-weight:600;font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:10px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle}
tr:last-child td{border-bottom:0}
tbody tr{cursor:pointer}
tbody tr:hover td{background:var(--sunk)}
td.r,th.r{text-align:right}
.muted{color:var(--muted)}
.crit{color:var(--crit)} .warn{color:var(--warn)}
/* customers */
.tlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;background:var(--panel);overflow:hidden}
.trow2{display:grid;grid-template-columns:74px 30px minmax(160px,1fr) minmax(0,2.4fr) minmax(130px,.8fr) auto;gap:16px;align-items:center;padding:14px 16px;border-top:1px solid var(--line);cursor:pointer}
.trow2:first-child{border-top:0}
.trow2:hover{background:var(--sunk)}
.trow2:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.trow2 .tn{display:flex;flex-direction:column;gap:2px;min-width:0}
.trow2 .tn .note{font-size:12.5px;line-height:1.35}
.trow2 .tm{display:flex;flex-direction:column;gap:2px;font-size:13px;min-width:0}
.tord{display:flex;align-items:center;gap:0}
.trow2.dragover{box-shadow:inset 0 2px 0 var(--accent)}
.trow2.dragover.below{box-shadow:inset 0 -2px 0 var(--accent)}
@media (max-width:1100px){ .trow2{grid-template-columns:74px 30px minmax(0,1fr) auto} .trow2 .flow{grid-column:3/-1;grid-row:2} .trow2 .tm{grid-column:3/-1;grid-row:3;flex-direction:row;gap:10px} }
.acct{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:14px 16px;display:flex;flex-direction:column;gap:10px;cursor:pointer;text-align:left}
.acct:hover{border-color:var(--faint)}
.acct .an{display:flex;justify-content:space-between;gap:8px;align-items:baseline}
.acct .an b{font-size:15px}
.tag{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:2px 6px}
.tag.risk{color:var(--crit);background:var(--crit-soft)}
.chain{display:flex;flex-direction:column;gap:0;background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:6px 16px}
.chain .ci{display:grid;grid-template-columns:86px 18px minmax(0,1fr) auto;gap:10px;align-items:center;padding:9px 0;cursor:pointer}
.chain .ci .date{font:500 12px var(--f-mono);color:var(--faint)}
.chain .ci .node{width:12px;height:12px;border-radius:50%;border:2px solid var(--c);background:var(--panel);justify-self:center;position:relative}
.chain .ci.closed .node{background:var(--c)}
.chain .ci .t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.section{margin-top:26px}
.section > h2{margin-bottom:10px}
.contacts{display:flex;flex-wrap:wrap;gap:10px}
.contact{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:9px 12px;font-size:13px}
.contact span{display:block;color:var(--muted);font-size:12px}
.back{all:unset;cursor:pointer;color:var(--muted);font-size:13px;margin-bottom:10px;display:inline-block}
/* types */
.flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.flow .arrow{color:var(--faint);font-size:12px}
.kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:6px 10px;font-size:13px}
.kv dt{color:var(--faint)} .kv dd{margin:0}
.legend{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
/* drawer */
.scrim{position:fixed;inset:0;background:rgba(10,14,20,.32);z-index:20}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(980px,100%);background:var(--panel);border-left:1px solid var(--line);box-shadow:var(--shadow);z-index:21;display:flex;flex-direction:column;padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px);padding-right:env(safe-area-inset-right,0px)}
.dh{padding:18px 22px 14px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.dh .top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.dh h1{font-size:21px}
.dh .meta{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:center;color:var(--muted);font-size:13px}
.dh select{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:5px 8px;font-weight:500}
.linkish{all:unset;cursor:pointer;color:var(--accent);font-weight:500}
.linkish:hover{text-decoration:underline}
.db{overflow:auto}
/* case drawer */
.dh{padding:16px 24px 14px;gap:8px}
.dh h1{font-size:22px;line-height:1.25;margin:2px 0 2px}
.xbtn{all:unset;cursor:pointer;width:32px;height:32px;border-radius:8px;display:grid;place-items:center;color:var(--muted);margin-right:-6px}
.xbtn:hover{background:var(--sunk);color:var(--fg)}
.xbtn:focus-visible{outline:2px solid var(--accent)}
.dh .meta{gap:10px 16px}
.ownsel{display:inline-flex;align-items:center;gap:4px}
.ownsel select{appearance:none;-webkit-appearance:none;border:1px solid transparent;background:transparent;padding:3px 6px;border-radius:6px;font-weight:500;color:var(--fg);cursor:pointer}
.ownsel select:hover{border-color:var(--line)}
.opened{color:var(--faint);font-size:12.5px}
.db{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-areas:"main side" "tl side";grid-template-rows:auto 1fr;gap:40px 28px;align-content:start;padding:20px 24px 36px}
.dmain{grid-area:main;display:flex;flex-direction:column;gap:40px;min-width:0}
.dtl{grid-area:tl;min-width:0}
.dside{grid-area:side;align-self:start;display:flex;flex-direction:column;gap:20px;border-left:1px solid var(--line);padding-left:24px;min-width:0}
.dsec h3{font-size:11.5px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;display:flex;align-items:center;gap:8px}
.dsec h3 .n{font:600 11px var(--f-mono);letter-spacing:0;background:var(--sunk);color:var(--muted);border-radius:999px;padding:1px 7px}
.dsec h3 .sub{font-weight:500;text-transform:none;letter-spacing:0;font-size:12px}
.dsec .ai{margin:0;font-size:14px;line-height:1.5}
.steps .plans{margin:0 0 4px}
.plan .pd.od{color:var(--overdue);font-weight:600}
.lead h3{margin-bottom:6px}
.leadbox{background:color-mix(in srgb,var(--accent) 7%,var(--panel));border-radius:12px;padding:14px 16px}
.lead h3 .secic{color:var(--accent)}
.secic{flex:none;margin-right:-2px}
/* Next steps: a checklist card */
.steps{padding:0}
.steps h3 .secic{color:var(--good)}
.steps .plans{gap:0}
.steps .plan{padding:7px 0;border-top:1px solid var(--line)}
.steps .plan:first-child{border-top:0}
.steps .plan.due{background:color-mix(in srgb,var(--warn) 9%,transparent);border-radius:8px;margin:0 -8px;padding-left:8px;padding-right:8px;border-top-color:transparent}
.steps .plan.due + .plan{border-top-color:transparent}
.steps .adder{border-top:1px solid var(--line);padding-top:6px;margin-top:2px}
.steps .adder.hl{border-top:0;padding-top:0}
.adder.hl > .addstep{background:var(--accent-soft);color:var(--accent);font-weight:600;padding:7px 14px;border-radius:8px;border:1px dashed color-mix(in srgb,var(--accent) 45%,transparent)}
.adder.hl > .addstep:hover{border-style:solid}
/* Timeline: entries on a vertical rail */
.tlsec{padding-top:0}
.dtl .tl{position:relative}
.dtl .tl::before{content:"";position:absolute;left:12.5px;top:14px;bottom:14px;width:1px;background:var(--line)}
.dtl .ti{border-top:0;position:relative;padding:8px 0}
.dtl .ti .ic{position:relative;z-index:1;border-radius:50%;box-shadow:0 0 0 3px var(--panel)}
.leadsrc{margin-top:10px;font-size:12px;color:var(--muted)}
.leadtext{margin:0;font-size:15px;line-height:1.55;color:var(--fg)}
.leadtext.empty{color:var(--muted);font-size:14px}
.descadd{all:unset;box-sizing:border-box;display:block;width:100%;cursor:text;border-radius:8px;padding:6px 8px;margin:-6px -8px}
.descadd:hover{background:color-mix(in srgb,var(--fg) 5%,transparent);color:var(--fg)}
.descadd:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.moretxt{font-size:13px;margin-top:6px;margin-right:12px}
.editlink{color:var(--muted)}
.descbody{margin-top:8px;padding-left:12px;border-left:2px solid var(--line)}
.descbody .leadtext{font-size:14px}
.descact{display:flex;justify-content:flex-end;margin-top:6px}
.desc > summary{list-style:none;cursor:pointer;color:var(--accent);font-size:13px;font-weight:500;padding:6px 0 0;display:inline-block}
.desc > summary::-webkit-details-marker{display:none}
.desc .desctext{display:block;box-sizing:border-box;width:100%;margin:8px 0 0;padding:8px 10px;border-color:var(--line);font-size:13.5px;line-height:1.5;resize:vertical}
.dlist{display:flex;flex-direction:column}
.drow{display:grid;grid-template-columns:108px minmax(0,1fr);gap:8px;align-items:start;padding:3px 0;font-size:13px}
.drow .dl{color:var(--muted);font-size:12.5px;padding-top:5px;line-height:1.3}
.drow .dv{min-width:0}
.drow .dv.ro{padding:4px 0}
.drow .fieldin{margin-left:0;padding:4px 6px}
.drow textarea.fieldin{resize:vertical}
.drow input[type=checkbox].fieldin{width:auto;margin:6px 0 0}
.drow .hint{display:block;font-size:11.5px;color:var(--faint);padding:0 6px}
.dside .rels{border-top:0;padding-top:0;gap:14px}
.drow.isempty .fieldin:not(select):not([type=date]){border:1px dashed var(--line)}
.drow.isempty .fieldin:not(select):not([type=date]):hover{border-style:solid}
.drow.isempty .fieldin::placeholder{color:var(--faint)}
.dstatus + .ddetails{border-top:1px solid var(--line);padding-top:12px}
.dh .dpeople{margin-top:4px}
.dside .rlabel{flex-direction:row;align-items:baseline;gap:6px}
.dside .links{gap:4px}
.dside .lk{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 8px;padding:7px 9px}
.dside .lk .rel{grid-column:1/-1;min-width:0;font-size:11.5px}
.lk .lt{display:flex;align-items:center;gap:7px;min-width:0}
.lk .ltt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.logk{display:flex;flex-wrap:wrap;gap:4px}
.logk button{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:8px;border:1px solid var(--line);font-size:12.5px;font-weight:500;color:var(--muted)}
.logk button:hover{color:var(--fg);border-color:var(--muted)}
.logk button[aria-checked="true"]{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.logk button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dtl .tl{margin-top:12px}
@media (max-width:900px){
  .db{grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "side" "tl";padding:16px 16px 32px}
  .dside{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:18px}
  .dh{padding:14px 16px 12px}
}

.box{border:1px solid var(--line);border-radius:9px;padding:12px 14px}
.box.next{border-color:var(--accent);background:var(--accent-soft)}
.box .lbl{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint);margin-bottom:6px;display:flex;justify-content:space-between;gap:8px}
.box.next .lbl{color:var(--accent)}
.ai{font-size:13.5px}
.ai .src{color:var(--faint);font-size:12px;margin-top:6px}
.score{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:13px}
.score .f{background:var(--sunk);border-radius:6px;padding:3px 8px;font-variant-numeric:tabular-nums}
.score .f small{color:var(--faint);margin-left:4px}
.score .op{color:var(--faint)}
.score .eq{font-weight:600;font-size:15px;margin-left:4px}
.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;font-size:13px}
.fields div span{display:block;color:var(--faint);font-size:11.5px;letter-spacing:.04em;text-transform:uppercase}
.links{display:flex;flex-direction:column;gap:6px}
.lk{display:flex;align-items:center;gap:10px;font-size:13px;cursor:pointer;padding:6px 8px;border-radius:7px;background:var(--sunk)}
.lk .rel{color:var(--faint);min-width:84px}
.tl{display:flex;flex-direction:column}
.ti{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;padding:9px 0;border-top:1px solid var(--line)}
.ti:first-child{border-top:0}
.ti .ic{width:26px;height:26px;border-radius:7px;background:var(--sunk);display:grid;place-items:center;font:600 10px var(--f-mono);color:var(--muted)}
.ti .ic.in{background:var(--accent-soft);color:var(--accent)}
.ti .w{font-size:12px;color:var(--faint)}
.ti .tx{font-size:13.5px}
/* modal */
.modal{position:fixed;inset:0;display:grid;place-items:start center;z-index:30;padding:max(16px,10vh) 16px 16px}
.modal .card2{background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);width:min(480px,100%);padding:20px 22px;display:flex;flex-direction:column;gap:14px;max-height:100%;overflow:auto}
.form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.form label,.form .lbl{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);font-weight:500}
.form label.full{grid-column:1/-1}
.form input,.form select,.form textarea{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:7px 9px;color:var(--fg);font-size:14px;min-width:0;width:100%;box-sizing:border-box}
.typepick{display:flex;flex-wrap:wrap;gap:6px;grid-column:1/-1}
.typepick button{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 10px;font-size:13px}
.typepick button[aria-pressed="true"]{border-color:var(--c);box-shadow:inset 0 0 0 1px var(--c)}
.mfoot{display:flex;justify-content:flex-end;gap:8px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--fg);color:var(--bg);padding:10px 16px;border-radius:9px;font-size:13.5px;z-index:40;box-shadow:var(--shadow);max-width:calc(100% - 32px)}
.note{font-size:12px;color:var(--faint)}
@media (max-width:820px){
  .app{grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr)}
  .rail{flex-direction:row;align-items:center;gap:2px;border-right:0;border-bottom:1px solid var(--rail-line);padding:6px max(10px,env(safe-area-inset-right,0px)) 6px max(10px,env(safe-area-inset-left,0px));overflow-x:auto}
  .brand{display:none}
  .nav{flex-direction:row}
  .railbtn{width:auto;min-width:0;flex:1 1 0;padding:6px 2px 5px;font-size:10.5px}
  .rail .spacer{display:none}
  .railbtn.newbtn{margin:0}
  .railbtn.newbtn svg{width:22px;height:22px;padding:3px}
  .wrap{padding-block:18px 50px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
  .row{grid-template-columns:4px minmax(0,1fr);row-gap:8px}
  .row .right{grid-column:2;justify-content:flex-start;margin-left:28px}
  .fields,.form{grid-template-columns:1fr}
  .chain .ci{grid-template-columns:70px 14px minmax(0,1fr)}
  .chain .ci .status{display:none}
}
/* Phones: settings tables become stacked cards */
@media (max-width:700px){
  .reltable.utable,.reltable.dtable{min-width:0;width:100%}
  .utable thead,.dtable thead{display:none}
  .utable,.utable tbody,.utable tr,.utable td,.dtable,.dtable tbody,.dtable tr,.dtable td{display:block}
  .utable tr,.dtable tr{position:relative;padding:10px 44px 10px 12px;border-bottom:1px solid var(--line)}
  .utable td,.dtable td{border:0!important;padding:3px 0!important;text-align:left!important}
  .utable td.r,.dtable td.r{position:absolute;top:8px;right:6px}
  .utable td.c:empty{display:none}
  .dtable td:nth-child(2)::before{content:"Reports to";display:block;font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.05em}
  .dname{padding-left:0!important}
  .acgrid{gap:22px}
  .sprow{max-width:100%}
}
@media (prefers-reduced-motion:no-preference){
  .drawer.anim{animation:slide .18s ease-out}
  @keyframes slide{from{transform:translateX(24px);opacity:.6}to{transform:none;opacity:1}}
}
/* type editor */
.ed-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px}
.ed-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.badge{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;border-radius:4px;padding:3px 7px;background:var(--warn-soft);color:var(--warn)}
.badge.ok{background:var(--good-soft);color:var(--good)}
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);margin:14px 0 18px;overflow-x:auto}
.tabs button{all:unset;cursor:pointer;padding:9px 12px;color:var(--muted);font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--fg);border-bottom-color:var(--accent)}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px}
.panel + .panel{margin-top:14px}
.panel h2{margin-bottom:4px}
.panel .help{color:var(--muted);font-size:13px;margin:0 0 14px;max-width:70ch}
.ed input[type=text],.ed input[type=number],.ed input:not([type]),.ed select,.ed textarea{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 9px;color:var(--fg);font-size:13.5px;min-width:0}
.ed textarea{width:100%;resize:vertical}
.ed label.f{display:flex;flex-direction:column;gap:5px;font-size:12.5px;color:var(--muted);font-weight:500}
.fgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 18px}
.fgrid .full{grid-column:1/-1}
.cpanel{max-width:760px}
.moneyin{display:flex;gap:4px;align-items:center;min-width:0}
.moneyin input{flex:1 1 auto;min-width:0}
.moneyin .cursel,.cursel{width:auto!important;flex:none;font-family:var(--f-mono);font-size:12.5px}
.form .moneyin input{width:100%}
.whenset{display:flex;flex-wrap:wrap;gap:4px}
.whenchip{border:1px solid transparent;cursor:pointer;font-size:11.5px;padding:2px 8px}
.whenchip[aria-pressed="false"]{background:transparent;color:var(--faint);border-color:var(--line);text-decoration:line-through;text-decoration-color:var(--faint)}
.whenchip:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.fhint{font-size:12px;color:var(--faint);font-weight:400}
.ferr{font-size:12px;color:var(--crit);font-weight:400}
.phin{display:flex;align-items:stretch;min-width:0;border:1px solid var(--line);border-radius:8px;background:var(--panel);font-weight:400}
.phin:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.phin input{border:0!important;background:transparent!important;flex:1;min-width:0;outline:none;box-shadow:none!important;border-radius:0 8px 8px 0!important;padding:8px 10px;font:inherit;font-size:13.5px;color:var(--fg)}
.phin:has(input[aria-invalid="true"]){border-color:var(--crit);background:color-mix(in srgb,var(--crit) 6%,var(--panel))}
.phcc{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:0 8px 0 9px;border-right:1px solid var(--line);color:var(--fg);font-size:13px;border-radius:8px 0 0 8px;flex:none}
.phcc:hover,.phcc[aria-expanded="true"]{background:var(--sunk)}
.phcc:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.phcc svg{color:var(--faint)}
.phcode{font-variant-numeric:tabular-nums;color:var(--muted)}
.flag{font-size:16px;line-height:1;font-family:'Apple Color Emoji','Segoe UI Emoji','Noto Color Emoji',sans-serif}
.flag.fb{font:700 9.5px var(--f-mono);letter-spacing:.02em;color:var(--muted);background:var(--sunk);border:1px solid var(--line);border-radius:3px;padding:2px 3px}
.phpick{width:290px;max-height:340px;padding:6px;gap:4px;z-index:60}
.phsearch{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:13px;color:var(--fg);flex:none}
.phlist{overflow:auto;display:flex;flex-direction:column;gap:1px;min-height:0;flex:1}
.phlist [role=option]{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;font-size:13px}
.phlist [role=option]:hover,.phlist [role=option]:focus-visible{background:var(--sunk)}
.phlist [role=option][aria-selected="true"]{background:var(--accent-soft);color:var(--accent);font-weight:600}
.phlist .phn{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phlist .count{font:500 11.5px var(--f-mono);color:var(--faint)}
.utable .phin{border-color:transparent;background:transparent}
.utable .phin:hover{border-color:var(--line)}
.utable .phin input{padding:3px 6px;font-size:13px}
.utable .phcc{padding:0 5px;gap:3px;border-right-color:transparent}
.utable .phcode{font-size:12px}
input[aria-invalid="true"]{border-color:var(--crit)!important;background:color-mix(in srgb,var(--crit) 6%,var(--panel))!important}
.ed input[aria-invalid="true"]{border-color:var(--crit)}
.dlabel{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:12.5px;color:var(--muted);font-weight:500}
.f > textarea{margin-top:6px;margin-bottom:5px}
.aibtn{display:inline-flex;align-items:center;gap:6px}
.aibtn:disabled{opacity:.45;cursor:not-allowed}
.spin{width:12px;height:12px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){ .spin{animation:none} }
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatches button{width:26px;height:26px;border-radius:7px;border:2px solid transparent;background:var(--c);padding:0}
.swatches button[aria-pressed="true"]{border-color:var(--fg);box-shadow:inset 0 0 0 2px var(--panel)}
.issues{border-radius:9px;padding:10px 14px;margin-bottom:14px;font-size:13px;display:flex;flex-direction:column;gap:4px}
.issues.err{background:var(--crit-soft);color:var(--crit)}
.issues.ok{background:var(--good-soft);color:var(--good)}
.stages{display:flex;flex-direction:column;gap:8px}
.stage{border:1px solid var(--line);border-radius:9px;background:var(--panel)}
.stage.dragover{outline:2px dashed var(--accent);outline-offset:1px}
.stage .sr{display:grid;grid-template-columns:22px 28px minmax(0,1fr) 170px 150px 232px;gap:8px;align-items:center;padding:8px 10px}
.stage .sr.noprob{grid-template-columns:22px 28px minmax(0,1fr) 170px 232px}
.grip{cursor:grab;color:var(--faint);font:600 14px/1 var(--f-mono);text-align:center;user-select:none}
.ord{font:500 12px var(--f-mono);color:var(--faint);text-align:center}
.prob{display:flex;align-items:center;gap:4px}
.prob input{width:60px}
.prob .pfx{font-size:12px;color:var(--muted);min-width:12px}
.prob .nom{font-size:12px;color:var(--faint);margin-left:4px;white-space:nowrap}
.prob.fixed{color:var(--muted);font-size:13px;padding-left:4px}
.sact{display:flex;gap:2px;justify-content:flex-end;align-items:center}
.icon-btn{all:unset;cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;color:var(--muted);font-size:13px}
.icon-btn:hover{background:var(--sunk);color:var(--fg)}
.icon-btn:disabled{opacity:.3;cursor:default}
.rulebtn{all:unset;cursor:pointer;font-size:12.5px;color:var(--accent);padding:4px 8px;border-radius:6px;white-space:nowrap}
.rulebtn:hover{background:var(--accent-soft)}
.rulebtn .n{font:500 11px var(--f-mono);background:var(--accent-soft);border-radius:4px;padding:1px 5px;margin-left:4px}
.srules{border-top:1px solid var(--line);padding:12px 14px 14px 68px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;background:var(--sunk);border-radius:0 0 9px 9px}
.srules h3{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:0 0 8px}
.checks{display:flex;flex-direction:column;gap:6px;font-size:13px}
.checks label{display:flex;gap:7px;align-items:center}
.inline{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:13px}
.inline input[type=number]{width:70px}
.preview-flow{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:14px}
.ftable{width:100%;min-width:640px}
.ftable td,.ftable th{padding:8px 8px}
.ftable input,.ftable select{width:100%}
.core{color:var(--muted);font-size:13px;display:flex;flex-wrap:wrap;gap:6px}
.core span{background:var(--sunk);border-radius:5px;padding:2px 8px}
.delta{font-variant-numeric:tabular-nums}
.delta.up{color:var(--good)} .delta.down{color:var(--crit)}
.tplgrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.tplgrid button{text-align:left;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}
.tplgrid button:hover{border-color:var(--faint)}
.tplgrid small{color:var(--muted);font-size:12.5px}
.hist{font-size:13px;display:flex;flex-direction:column;gap:6px}
.hist div{display:flex;gap:10px}
.hist .v{font:500 12px var(--f-mono);color:var(--faint);min-width:28px}
.fieldin{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:3px 6px;margin-left:-6px;font-size:13px}
.fieldin:hover{border-color:var(--line)}
.fieldin:focus{border-color:var(--accent);background:var(--panel)}
/* formula editor */
.fbox{margin-top:18px;border-top:1px solid var(--line);padding-top:16px}
.formula{font-family:var(--f-mono)!important;font-size:13.5px!important;line-height:1.6;margin-top:6px}
.ins{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;align-items:center}
.insl{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);min-width:70px}
.ins button{border:0;cursor:pointer;font:12px var(--f-mono);padding:3px 8px;border-radius:5px;background:var(--sunk);color:var(--fg)}
.ins button:hover{outline:1px solid var(--faint)}
.ins button.fn{color:var(--accent);background:var(--accent-soft)}
.ins button.op{min-width:26px;text-align:center;font-size:13px}
.trigs{display:flex;flex-direction:column;gap:10px}
.trig{border:1px solid var(--line);border-radius:9px;padding:10px 12px;display:flex;flex-direction:column;gap:8px}
.trig.off{opacity:.55}
.trow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.trow .when{font-weight:600;font-size:13px}
.tact{margin-left:auto;display:flex;gap:6px;align-items:center}
.switch{display:inline-flex;gap:5px;align-items:center;font-size:13px;color:var(--muted)}
.perms{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px}
.prow{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:8px 12px;border-top:1px solid var(--line);font-size:13.5px}
.prow:first-child{border-top:0}
.pseg{position:relative;display:inline-flex;align-items:center;padding:5px 11px;border-radius:6px;color:var(--muted);font-weight:500;font-size:13px;cursor:pointer}
.pseg input{position:absolute;opacity:0;pointer-events:none}
.pseg:has(input:checked){background:var(--panel);color:var(--fg);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.pseg:has(input:focus-visible){outline:2px solid var(--accent)}
.box.draft{border-left:3px solid var(--warn)}
.box.draft .lbl{color:var(--warn)}
.drafttext{white-space:pre-wrap;font-size:13.5px;background:var(--panel);border:1px solid var(--line);border-radius:7px;padding:10px 12px}
.ti .ic.agt{background:var(--accent);color:var(--on-accent)}
.apdot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--warn);margin-right:6px;vertical-align:middle;box-shadow:0 0 0 3px var(--warn-soft)}
.row .reason.appr{color:var(--warn);font-weight:500}
.draftline{font-size:13px;color:var(--muted);font-style:italic;background:var(--sunk);border-radius:6px;padding:5px 9px;margin-top:4px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.draftline.plain{background:var(--sunk);font-style:normal}
.apprbtn{font-weight:600;white-space:nowrap}
.cx{all:unset;cursor:pointer;width:20px;height:20px;display:grid;place-items:center;border-radius:50%;color:var(--muted)}
.cx:hover{background:var(--line);color:var(--fg)}
.addcbtn{all:unset;box-sizing:border-box;cursor:pointer;width:22px;height:22px;border-radius:50%;display:inline-grid;place-items:center;color:var(--faint);border:1px dashed var(--line);flex:none;transition:color .15s,border-color .15s,background .15s}
.addcbtn:hover,.addcbtn[aria-expanded="true"]{color:var(--accent);border-color:var(--accent);border-style:solid;background:var(--accent-soft)}
.addcbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.addparty{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:8px;color:var(--faint);font-size:13px;padding:2px 0;border-radius:6px}
.addparty:hover,.addparty[aria-expanded="true"]{color:var(--accent)}
.addparty:hover .addcbtn,.addparty[aria-expanded="true"] .addcbtn{color:var(--accent);border-color:var(--accent);border-style:solid;background:var(--accent-soft)}
.addparty:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cmenu{width:auto;min-width:220px;max-width:320px;z-index:40}
.popmenu .pmsep{height:1px;background:var(--line);margin:4px 2px}
.parties{display:flex;flex-wrap:wrap;gap:6px 16px;align-items:center}
.party{display:inline-flex;gap:6px;align-items:center;font-size:13.5px}
.reltable{min-width:760px}
.tchips{display:flex;flex-wrap:wrap;gap:6px 12px}
.reltable input{border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 7px;font:inherit}
.reltable input:hover{border-color:var(--line)}
.reltable input:focus{border-color:var(--accent);background:var(--panel)}
.reltable tr.noclick{cursor:default}
.reltable tr.noclick:hover td{background:transparent}
.rels{display:flex;flex-direction:column;gap:12px;border-top:1px solid var(--line);padding-top:12px}
.rels:not(.showall) .rextra{display:none}
.relmore{font-size:13px;align-self:flex-start}
.reladd{all:unset;cursor:pointer;align-self:flex-start;font-size:12px;color:var(--faint);padding:1px 0;border-radius:4px}
.reladd:hover{color:var(--accent)}
.reladd:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.reladdrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px}
.reladd[aria-expanded="true"]{color:var(--accent)}
/* "Show more" / "Show less" style links: quiet until hovered */
.linkish[data-moretxt],.linkish.relmore,.relsum .relmore,.desc > summary{color:var(--faint);font-size:12.5px;font-weight:400;text-decoration:none}
.linkish[data-moretxt]:hover,.linkish.relmore:hover,.desc > summary:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
.relsum{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;font-size:13px}
.relsum .rsl{color:var(--muted)}
.relsum .rsdot{color:var(--faint)}
.relsum .relmore{font-size:13px}
.relrow2{display:grid;grid-template-columns:180px minmax(0,1fr);gap:6px 16px;align-items:center}
.relrow2 > .rlabel{align-self:center}
.rleft{display:flex;flex-direction:column;gap:1px;min-width:0}
.relrow2 .rlabel{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.rorg2{display:flex;align-items:center;gap:2px;min-width:0}
.rorgname{font-size:14px;font-weight:600;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.rorg2 .cx{width:18px;height:18px;font-size:13px;opacity:.6;flex:none}
.rbody{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
.pcard{display:grid;grid-template-columns:26px minmax(0,auto) 18px;gap:8px;align-items:center;border:1px solid var(--line);border-radius:10px;padding:5px 6px 5px 6px;max-width:260px;background:var(--panel)}
.pav{width:26px;height:26px;border-radius:50%;background:var(--sunk);color:var(--muted);display:grid;place-items:center;font:600 10.5px var(--f-body)}
.ptxt{display:flex;flex-direction:column;min-width:0;line-height:1.25}
.pn{font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ptitle{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pcard .cx{width:18px;height:18px;font-size:13px;opacity:0;transition:opacity .15s}
.pcard:hover .cx,.pcard:focus-within .cx{opacity:1}
@media (hover:none){ .pcard .cx{opacity:.7} }
.pnote{font-size:12.5px;color:var(--muted)}
@media (max-width:640px){ .relrow2{grid-template-columns:minmax(0,1fr)} }

.rlabel{color:var(--muted);font-size:12.5px;display:flex;flex-direction:column;line-height:1.2}
@media (max-width:820px){ .relrow{grid-template-columns:minmax(0,1fr)} }
.corelist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:9px}
.corerow{display:grid;grid-template-columns:22px minmax(0,1fr) minmax(0,1.1fr);gap:10px 14px;align-items:center;padding:10px 12px;border-top:1px solid var(--line)}
.corerow:first-child{border-top:0}
.corerow.locked{background:var(--sunk)}
tr.cfhidden td{opacity:.6}
tr.cfhidden td.r{opacity:1}
.corerow.frow{grid-template-columns:84px 22px minmax(0,1fr) minmax(0,1.1fr)}
.corerow.frow.dragover{outline:2px dashed var(--accent);outline-offset:-2px}
.fmove{display:flex;align-items:center;gap:2px}
.fmove .grip{width:22px;flex:none;text-align:left}
.fmove .icon-btn{width:26px;height:26px}
.corerow .cmain{display:block;cursor:default}
.corerow.locked .cmain{cursor:default}
input[type=checkbox]{cursor:pointer}
.corerow .cset{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.corerow .cset input:not([type]){min-width:0;flex:1 1 160px}
.cdesc{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 7px;font:inherit;resize:vertical;color:var(--fg)}
.cdesc:hover{border-color:var(--line)}
.cdesc:focus{border-color:var(--accent);background:var(--panel)}
.subh{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:18px 0 8px}
.ucell{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.ucell2{align-items:flex-start}
.mgrtag2{align-self:flex-start;margin:0 0 0 4px}
.utable th.c,.utable td.c{text-align:center}
.ucell2 > .av{margin-top:5px}
.ustack{display:flex;flex-direction:column;gap:0;min-width:0}
.reltable input.usub{font-size:12.5px;color:var(--muted);padding-top:2px;padding-bottom:2px}
.uph{display:inline-flex;align-items:center;gap:2px}
.uphl{font:600 10px var(--f-mono);color:var(--faint);width:12px}
.uph input{font-size:13px;padding-top:3px!important;padding-bottom:3px!important}
.dav{background:var(--accent-soft);color:var(--accent)}
.dav svg{width:62%;height:62%}
.acgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px 24px}
@media (max-width:900px){ .acgrid{grid-template-columns:minmax(0,1fr)} }
.accol h3{margin:0 0 2px;font-size:13.5px}
.accol > label.inline{display:flex;margin:4px 0}
.acctree{display:flex;flex-direction:column;gap:2px;margin:6px 0 0 22px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--sunk)}
.acctree label{display:flex;gap:6px;align-items:center;font-size:13px}
.appbtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;margin-top:6px;padding:6px 12px 6px 6px;border:1px solid var(--line);border-radius:10px;background:var(--panel);max-width:420px}
.appbtn:hover{border-color:var(--muted)}
.appbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.applink{color:var(--accent);font-size:13px;font-weight:500}
.apppick{margin-top:10px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--sunk)}
.spath{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin:2px 0 4px}
.sprow{display:flex;min-width:0;overflow-x:auto;padding:1px}
.sp{all:unset;box-sizing:border-box;cursor:pointer;position:relative;padding:5px 14px 5px 18px;font-size:12.5px;font-weight:500;color:var(--faint);background:var(--sunk);white-space:nowrap;clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%,8px 50%);margin-right:-4px}
.sprow .sp:first-child{clip-path:polygon(0 0,calc(100% - 8px) 0,100% 50%,calc(100% - 8px) 100%,0 100%);padding-left:12px;border-radius:999px 0 0 999px}
.sp.past{color:var(--muted)}
.sp[data-stagego]:hover{color:var(--fg);background:color-mix(in srgb,var(--sunk) 70%,var(--line))}
.sp[aria-disabled="true"]{cursor:default}
.sp[aria-expanded="true"]{color:var(--fg);background:color-mix(in srgb,var(--sunk) 60%,var(--line))}
.sp:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.sp.on{cursor:default;font-weight:700;display:inline-flex;align-items:center;gap:5px}
.spchk{flex:none}
.vh{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.sp.on.cat-new{background:var(--st-new-bg);color:var(--st-new)}
.sp.on.cat-active{background:var(--st-act-bg);color:var(--st-act)}
.sp.on.cat-waiting{background:var(--muted);color:var(--panel)}
.sp.on.cat-pos{background:var(--st-pos-bg);color:var(--st-pos)}
.sp.on.cat-neg{background:var(--st-neg-bg);color:var(--st-neg)}
.spends{display:flex;gap:6px}
.sp.spend{clip-path:none;border-radius:999px;padding:4px 11px 4px 9px;margin:0;display:inline-flex;align-items:center;gap:6px;border:1px dashed var(--line);background:transparent}
.sp.spend.on{border-style:solid;border-color:transparent}
.spdot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.6}
.stconf{width:auto;padding:10px 12px;gap:8px;z-index:45}
.stconf p{margin:0;font-size:13px;line-height:1.8}
.stbtns{display:flex;justify-content:flex-end;gap:6px}
.admtag{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--fg);background:var(--sunk);border:1px solid var(--line);padding:2px 7px;border-radius:999px}
.popmenu [role=menuitem][aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.lic{font-size:13px;color:var(--muted);align-self:flex-end;white-space:nowrap}
.lic b{color:var(--fg);font-size:15px}
.susptag{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--warn);background:var(--warn-soft);padding:2px 6px;border-radius:999px}
tr.usus td:not(:last-child){opacity:.7}
.mgrchip.susp{opacity:.65;border-style:dashed}
.archsec{margin-top:22px}
.archsec > summary{cursor:pointer;font-weight:600;font-size:14px;color:var(--muted)}
.archsec > summary .count{font:500 11px var(--f-mono);color:var(--faint);margin-left:4px}
.heirs{display:flex;flex-direction:column;gap:8px}
.heir{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.heirt{display:inline-flex;align-items:center;gap:8px;min-width:0}
.heirt > span:last-child{display:flex;flex-direction:column;line-height:1.25}
.heir select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 9px;font:inherit;font-size:13.5px;color:var(--fg);min-width:170px}
.archnotes{margin:0;padding-left:18px;color:var(--muted);font-size:13px;display:flex;flex-direction:column;gap:4px}
.uadm{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px}
.utable select.usel,.dtable select.usel{border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 4px;font:inherit;color:var(--fg);max-width:100%}
.utable select.usel:hover,.dtable select.usel:hover{border-color:var(--line)}
.mgrtag{margin-left:6px;font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);padding:2px 6px;border-radius:999px}
.dname{display:inline-flex;align-items:center;gap:4px}
.dbranch{color:var(--faint);font-size:12px}
.mgrpick{display:flex;flex-wrap:wrap;gap:6px}
.mgrchip{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 3px;border-radius:999px;border:1px dashed var(--line);color:var(--muted);font-size:12.5px}
.mgrchip:hover{border-color:var(--muted);color:var(--fg)}
.mgrchip{border-style:solid}
.mgrchip[aria-expanded="true"]{border-color:var(--accent);color:var(--fg)}
.mgrchip.ismgr{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}
.mgrlbl{font-size:10px;letter-spacing:.05em;text-transform:uppercase;font-weight:700;opacity:.8}
.udkv{grid-template-columns:130px 1fr}
.udkv a{color:var(--accent);text-decoration:none}
.udkv a:hover{text-decoration:underline}
.av.big{width:40px;height:40px;font-size:14px;flex:none}
tr.flash td{animation:flashrow 1.6s ease-out}
@keyframes flashrow{0%{background:var(--accent-soft)}100%{background:transparent}}
.mgrchip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.warnnote{display:block;margin-top:4px;color:var(--warn)}
.addrow input{font-family:var(--f-body)}
.lock{font-size:10.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);font-weight:600}
.fields .wide{grid-column:1/-1}
.plans{display:flex;flex-direction:column;gap:2px;margin-bottom:10px}
.plan{display:grid;grid-template-columns:18px 22px minmax(0,1fr) auto 24px auto;gap:8px;align-items:center;font-size:13.5px;padding:4px 0}
.plan .pk{display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:var(--accent-soft);color:var(--accent)}
.plan .pd{font-size:12.5px;color:var(--muted);white-space:nowrap}
.plan .pd.crit{color:var(--crit)}
.plan .av{width:22px;height:22px;font-size:9.5px}
.planadd{display:flex;flex-wrap:wrap;gap:6px}
.planadd input,.planadd select{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:5px 8px;font-size:13px}
.planadd [data-f=text]{flex:1 1 180px;min-width:0}
.planadd [data-f=det]{flex:1 1 100%;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:6px 8px;font:inherit;font-size:13px;resize:vertical;min-height:60px}
.plan .pdet{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;white-space:pre-line;font-size:12.5px;color:var(--muted);margin-top:2px}
.plan .ptt{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plan .pt.open{cursor:pointer}
.undolink{font-size:12.5px;margin-top:2px}
.ti .ic.sic{background:color-mix(in srgb,var(--k) 15%,var(--panel));color:var(--k)}
.ti .ic.sic svg{width:14px;height:14px}
.ocb{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;padding:1px 8px 1px 6px;border-radius:999px;vertical-align:1px;margin-left:2px}
.ocb-good{background:var(--good-soft);color:var(--good)}
.ocb-crit{background:var(--crit-soft);color:var(--crit)}
.ocb-warn{background:var(--warn-soft);color:var(--warn)}
.ocb-accent{background:var(--accent-soft);color:var(--accent)}
.ocb-plan{background:transparent;border:1px solid var(--line);color:var(--muted);font-weight:500}
.ti .ic.sic.plan{background:var(--panel);border:1.5px dashed color-mix(in srgb,var(--k) 60%,transparent)}
.tchg{list-style:none;margin:3px 0 0;padding:0;font-size:13px;color:var(--muted);display:flex;flex-direction:column;gap:1px}
.tchg .tcf{color:var(--faint)}
.tchg s{color:var(--faint)}
.tchg .tlong{white-space:pre-line;color:var(--muted)}
.tfollow{font-size:12px;color:var(--faint);margin-top:1px}
.ocb-muted{background:var(--sunk);color:var(--muted)}
.tstep{font-size:13px;color:var(--fg);margin-top:2px;padding-left:8px;border-left:2px solid var(--line)}
.logbtn,.addstep{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:4px 0;border-radius:6px;color:var(--accent);font-size:13px;font-weight:500}
.logbtn:hover,.addstep:hover{text-decoration:underline;text-underline-offset:3px}
.logbtn:focus-visible,.addstep:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.dtl .ti[data-acti]{cursor:pointer;border-radius:8px}
.dtl .ti[data-acti]:hover .tx{text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:3px}
.dtl .ti[data-acti]:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.plan .pt{cursor:pointer}
.plan .pt:hover .ptt{text-decoration:underline;text-decoration-color:var(--faint);text-underline-offset:3px}
.tnote.clamp{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.tfiles{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);margin-top:3px}
.attach{display:flex;flex-direction:column;gap:6px}
.attbtn{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;cursor:pointer;font-size:13px;font-weight:500;color:var(--accent);padding:4px 0}
.attbtn input{position:absolute;width:1px;height:1px;opacity:0}
.attbtn:focus-within{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.attlist,.flinks{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.attlist li,.flinks li{display:flex;align-items:center;gap:6px;font-size:13px;padding:5px 8px;border:1px solid var(--line);border-radius:8px}
.attlist .an,.flinks a,.flinks span:not(.as){flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fdl{flex:1;min-width:0;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.as{font-size:12px;color:var(--faint);white-space:nowrap}
.dhead{display:flex;gap:12px;align-items:flex-start}
.dhead .ic{width:34px;height:34px;flex:none}
.dhead .ic svg{width:17px;height:17px}
.dhead .ic.sic{border-radius:50%;display:grid;place-items:center;background:color-mix(in srgb,var(--k) 15%,var(--panel));color:var(--k)}
.dhead .ic.sic.plan{background:var(--panel);border:1.5px dashed color-mix(in srgb,var(--k) 60%,transparent)}
.ic.big{border-radius:50%;background:var(--sunk);display:grid;place-items:center;font:600 11px var(--f-mono);color:var(--muted)}
.dtype{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-weight:600}
.dhead h2{margin:2px 0 0;font-size:18px;line-height:1.3}
.dkv{margin:0}
.dbody{white-space:pre-line;font-size:14px;line-height:1.55;background:var(--sunk);border-radius:10px;padding:12px 14px}
.modal .logk{margin-top:-4px}
.tnote{font-size:13px;color:var(--muted);white-space:pre-line;margin-top:2px}
.card2.wide{width:min(560px,100%)}
.card2 h2{display:flex;align-items:center;gap:8px}
.card2 h2 svg{color:var(--accent);flex:none}
.ocset{border:0;margin:0;padding:0}
.ocset legend{font-size:13px;font-weight:600;margin-bottom:8px;padding:0}
.ocpick{display:flex;flex-wrap:wrap;gap:6px}
.ocpick button{all:unset;cursor:pointer;padding:6px 12px;border-radius:999px;border:1px solid var(--line);font-size:13px;font-weight:500;color:var(--fg)}
.ocpick button:hover{border-color:var(--muted)}
.ocpick button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ocpick.small button{padding:4px 10px;font-size:12.5px}
.ocpick button[aria-checked="true"]{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}
.ocpick button.oc-pos[aria-checked="true"],.ocpick button.oc-done[aria-checked="true"],.ocpick button.oc-sent[aria-checked="true"]{background:var(--good);border-color:var(--good);color:#fff}
.ocpick button.oc-neg[aria-checked="true"],.ocpick button.oc-cx[aria-checked="true"]{background:var(--crit);border-color:var(--crit);color:#fff}
.cfl{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;min-width:0}
.cfl input,.cfl select{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font:inherit;font-weight:400;font-size:13.5px;color:var(--fg);min-width:0}
.cfl .opt{font-weight:400;color:var(--faint)}
.pclip{display:inline-flex;align-items:center;gap:2px;color:var(--faint);font-size:11.5px;vertical-align:middle;margin-left:4px}
.pclip svg{width:13px;height:13px}
.pform{display:flex;flex-direction:column;gap:14px}
.pfrow{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.fubox .pform{gap:12px}
.fubox .cfl input,.fubox .cfl select,.fubox .cfl textarea{background:var(--panel)}
.cfl textarea{border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font:inherit;font-weight:400;font-size:13.5px;resize:vertical;color:var(--fg)}
.fuq{font-size:13.5px;font-weight:500}
.fubox{margin-top:10px;padding:12px;border-radius:10px;background:var(--sunk)}
.fubox .planadd input,.fubox .planadd select,.fubox .planadd textarea{background:var(--panel)}
.ti .ic.done{background:var(--good-soft);color:var(--good);font-size:13px}
.plan > input[type=checkbox]{align-self:start;margin-top:4px}
.plan > .pk{align-self:start;margin-top:-1px}
.plan > .pd{align-self:start;margin-top:1px}
.plan > .av{align-self:start;margin-top:-2px}
.plan > .pacts{align-self:start;display:flex;gap:0;margin-top:-2px}
.pacts .cx{opacity:0;transition:opacity .15s}
.plan:hover .pacts .cx,.plan:focus-within .pacts .cx{opacity:1}
@media (hover:none){ .pacts .cx{opacity:.7} }
.plan .pt.open::after{content:"Show all";display:inline-block;font-size:12px;color:var(--accent);margin-top:2px}
.plan .pt.open .ptt,.plan .pt.open .pdet{-webkit-line-clamp:unset;display:block}
.plan .pt.open::after{content:"Show less"}
.plan .pt:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (max-width:820px){ .corerow{grid-template-columns:22px minmax(0,1fr)} .corerow .cset{grid-column:2} .corerow.frow{grid-template-columns:76px 22px minmax(0,1fr)} .corerow.frow .cset{grid-column:3} .plan{grid-template-columns:18px 22px minmax(0,1fr) auto auto} .plan .av{display:none} }
.dirctl{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;margin-bottom:10px}
.dirctl .dlbl{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);min-width:96px}
.dirctl input#dq{flex:1 1 220px;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:7px 12px;margin-left:auto}
.dsum{margin:4px 0 10px;font-size:13.5px;color:var(--fg);font-weight:500}
.dirtable tr.sub td:first-child{padding-left:34px}
.dirtable tr.sub td{background:color-mix(in srgb, var(--sunk) 45%, transparent)}
.tree{display:inline-block;width:10px;height:10px;border-left:1.5px solid var(--line);border-bottom:1.5px solid var(--line);margin:-6px 8px 0 -16px;vertical-align:middle}
.dirtable{min-width:640px}
.dirtable tr.dirrow{cursor:pointer}
.dicon{display:inline-block;width:10px;height:10px;margin-right:9px;vertical-align:middle;border:1.5px solid var(--muted)}
.dicon.org{border-radius:2px;background:var(--muted)}
.dicon.person{border-radius:50%;background:var(--muted)}
.dicon.ct{border-radius:50%;background:transparent}
.rtag{font-size:12px;font-weight:600;color:var(--accent);background:var(--accent-soft);border-radius:4px;padding:2px 7px}
.kindtag{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin-bottom:4px;display:flex;align-items:center}
.contact.clickable{cursor:pointer;display:flex;flex-direction:column;position:relative;padding-right:28px}
.contact.clickable:hover{border-color:var(--faint)}
.contact .cx{position:absolute;top:6px;right:4px}
.deps{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:14px}
.deps h3{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:0 0 8px;font-family:var(--f-body)}
.wt{display:flex;flex-direction:column;gap:6px}
.wt label{display:grid;grid-template-columns:minmax(0,1fr) 90px;gap:8px;align-items:center;font-size:13px}
.wt label span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.fcode{font:12px var(--f-mono);background:var(--sunk);padding:1px 5px;border-radius:4px;color:var(--fg)}
.cmph{font-size:11.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);margin:18px 0 10px}
.cmpl{display:grid;grid-template-columns:minmax(0,190px) minmax(0,1fr) 72px;gap:7px 12px;align-items:center;font-size:13px}
.cmpl > span:first-child, .cmpl > span{min-width:0}
.cmpl .me{font-weight:600}
.cmpl .bar{height:10px;border-radius:3px;background:var(--sunk);overflow:hidden}
.cmpl .bar i{display:block;height:100%;background:var(--c);opacity:.85}
.cmpl .bar.draft i{background:repeating-linear-gradient(135deg,var(--c) 0 6px,transparent 6px 9px);opacity:1;outline:1.5px solid var(--c);outline-offset:-1.5px}
.cmpl .r{text-align:right}
@media (max-width:820px){
  .stage .sr,.stage .sr.noprob{grid-template-columns:22px minmax(0,1fr) minmax(0,1fr);}
  .stage .sr .ord{display:none}
  .stage .sr > *:nth-child(n+5){grid-column:2/-1}
  .srules{grid-template-columns:1fr;padding-left:14px}
  .fgrid,.tplgrid{grid-template-columns:1fr}
}

/* All cases: ready-made lists, search, filter buttons and sortable columns. */
.vtabs{display:flex;flex-wrap:wrap;gap:4px 22px;border-bottom:1px solid var(--line);margin-bottom:14px}
.vtabs button{all:unset;cursor:pointer;padding:8px 0 9px;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--muted);font-weight:500;display:inline-flex;align-items:center;gap:7px}
.vtabs button:hover{color:var(--fg)}
.vtabs button[aria-pressed="true"]{color:var(--fg);border-bottom-color:var(--fg)}
.vtabs button:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
.vtabs .n{font:500 11.5px var(--f-mono);color:var(--faint)}
.fbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px}
.fsearch{flex:1 1 240px;min-width:200px;max-width:380px;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:0 10px;color:var(--faint)}
.fsearch:focus-within{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent)}
.fsearch input{all:unset;flex:1;min-width:0;padding:8px 0;color:var(--fg);font-size:13.5px}
.fsearch input::placeholder{color:var(--faint)}
.fgrp{display:inline-flex;align-items:center;border:1px solid var(--line);background:var(--panel);border-radius:999px}
.fgrp.on{border-color:var(--fg);background:var(--sunk)}
.fbtn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:5px;padding:5px 11px 5px 13px;font-size:13px;font-weight:500;color:var(--fg);border-radius:999px;max-width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fbtn svg{color:var(--faint);flex:none}
.fbtn.plain{padding-left:11px;color:var(--muted)}
.fgrp.on .fbtn.plain{color:var(--fg)}
.fbtn:focus-visible,.fx:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.fgrp.on .fbtn{padding-right:4px}
.fx{all:unset;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin-right:4px;border-radius:50%;color:var(--muted)}
.fx:hover{background:var(--line);color:var(--fg)}
.fclear{font-size:13px;margin-left:4px}
.fmenu{min-width:240px}
.fmenu [role=menuitemcheckbox],.fmenu [role=menuitemradio]{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:10px;width:100%;padding:7px 10px;border-radius:8px;font-weight:500;color:var(--fg)}
.fmenu [role=menuitemcheckbox]:hover,.fmenu [role=menuitemradio]:hover,.fmenu [role=menuitemcheckbox]:focus-visible,.fmenu [role=menuitemradio]:focus-visible{background:var(--sunk)}
.fmenu .count{margin-left:auto;font:500 11px var(--f-mono);color:var(--faint)}
.fcheck{width:16px;height:16px;flex:none;display:inline-flex;align-items:center;justify-content:center;border:1.5px solid var(--line);border-radius:4px;color:transparent}
.fmenu [role=menuitemradio] .fcheck{border-radius:50%}
.fmenu [aria-checked="true"] .fcheck{background:var(--fg);border-color:var(--fg);color:var(--panel)}
.fmsearch{border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:7px 9px;font:inherit;font-size:13px;color:var(--fg);margin:2px 2px 6px}
.fmlist{max-height:320px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.fmnone{margin:6px 10px;color:var(--faint);font-size:13px}
.fmore{width:300px;padding:6px 8px 12px}
.frange{display:flex;align-items:center;gap:6px;padding:0 4px 6px;color:var(--faint)}
.frange input{flex:1;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:7px;padding:7px 8px;font:inherit;font-size:13px;color:var(--fg)}
.sorth{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.sorth:hover,.sorth.on{color:var(--fg)}
.sorth:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:3px}
.sorth .sarr{display:inline-flex;opacity:0}
.sorth:hover .sarr{opacity:.45}
.sorth.on .sarr{opacity:1}
th.r .sorth{flex-direction:row-reverse}
td.num{white-space:nowrap}
/* Party search box (New case): type to search the directory. */
.ppick{position:relative;display:flex;align-items:center}
.ppick input{flex:1;min-width:0;padding-right:30px}
.form .lbl.invalid .ppick input{border-color:var(--crit);background:color-mix(in srgb,var(--crit) 6%,var(--panel))}
.ppclear{all:unset;cursor:pointer;position:absolute;right:6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;color:var(--muted)}
.ppclear:hover{background:var(--sunk);color:var(--fg)}
.pplist{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:280px;overflow-y:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow);padding:4px;display:flex;flex-direction:column;gap:1px}
.pplist [role=option]{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:baseline;gap:8px;padding:7px 10px;border-radius:7px;color:var(--fg);font-size:13.5px;font-weight:500}
.pplist [role=option]:hover,.pplist [role=option].on{background:var(--sunk)}
.pplist [role=option][aria-selected="true"]{background:var(--accent-soft);color:var(--accent)}
.ppcity{margin-left:auto;font-size:12px;color:var(--faint);font-weight:400}
.ppnone{margin:6px 10px;font-size:13px;color:var(--faint)}
/* More rows coming: placeholders under a list while its next batch loads. */
.lmwatch{height:1px}
.lmore.rows .skline:first-child{border-top:1px solid var(--line)}
.lmore.card{display:flex;flex-direction:column;gap:8px}
/* Tags: plain grey labels; a case's company tags show faded. */
.tagchips{display:inline-flex;flex-wrap:wrap;gap:4px;align-items:center;vertical-align:middle;min-width:0}
.tagchip{display:inline-flex;align-items:center;gap:2px;font-size:11.5px;font-weight:500;line-height:1.5;color:var(--muted);background:var(--sunk);border:1px solid var(--line);border-radius:5px;padding:0 6px;white-space:nowrap;max-width:180px;overflow:hidden;text-overflow:ellipsis}
.tagchip.more{color:var(--faint)}
.tagchips.faded .tagchip{background:transparent;border-style:dashed;color:var(--faint)}
.tagx{all:unset;cursor:pointer;margin:0 -3px 0 2px;padding:0 3px;border-radius:3px;color:var(--faint);font-size:13px;line-height:1}
.tagx:hover{color:var(--fg);background:var(--line)}
.tagx:focus-visible{outline:2px solid var(--accent)}
.tagbar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0 2px}
.tagbar .tagchip{font-size:12px;padding:1px 7px}
.taginh{display:inline-flex}
.tagadd{all:unset;cursor:pointer;font-size:12px;font-weight:500;color:var(--muted);border:1px dashed var(--line);border-radius:5px;padding:1px 8px}
.tagadd:hover{color:var(--fg);border-color:var(--muted)}
.tagadd:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.row .linet .tagchips{flex:none}
td .tagchips{margin-left:8px}
.card .tagchips{margin-top:-2px}
.tagpick{width:280px}
.tagpick [role=menuitem]{padding:7px 10px;flex-wrap:wrap;row-gap:0}
.tagdesc{flex-basis:100%;font-size:11.5px;font-weight:400;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tagnew{color:var(--accent)!important}
.tagfilter{width:290px}
.tfrow{display:flex;align-items:center;gap:2px}
.tfrow [role=menuitemcheckbox]{flex:1;min-width:0}
.tfrow.off .tfname{text-decoration:line-through;color:var(--muted)}
.tfnot{all:unset;cursor:pointer;width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:6px;color:var(--faint);font-size:14px}
.tfnot:hover{background:var(--sunk);color:var(--fg)}
.tfnot[aria-pressed="true"]{background:var(--crit-soft);color:var(--crit)}
.tfnot:focus-visible{outline:2px solid var(--accent)}
.tfmode{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:2px 4px 8px;font-size:12.5px;color:var(--muted)}
.tfmode .seg button{padding:3px 9px;font-size:12px}
.tfhint{margin:8px 10px 2px;font-size:11.5px;color:var(--faint)}
.tfnote{text-transform:none;letter-spacing:0;font-weight:400}
/* All cases: selected rows and the bar acting on them. */
.selcol{width:34px;padding-right:0!important}
.selcol input{margin:0;cursor:pointer}
tr.sel td{background:var(--accent-soft)}
.bulkbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0 0 10px;padding:8px 12px;background:var(--panel);border:1px solid var(--line);border-radius:9px;font-size:13px}
/* Tag settings */
.tagtable input{width:100%;border:1px solid transparent;background:transparent;border-radius:6px;padding:5px 7px;font:inherit;color:var(--fg)}
.tagtable input:hover{border-color:var(--line)}
.tagtable input:focus{border-color:var(--accent);background:var(--panel);outline:none}
.tagtable td.nowrap{white-space:nowrap;width:1%}
.tagtable td.nowrap > *{vertical-align:middle;margin-left:4px}
.tagsetting{display:flex;align-items:center;gap:8px;margin:0 0 12px;font-size:13px;color:var(--muted)}
.tagnewform{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.tagnewform input{flex:1 1 160px;min-width:0;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:8px 10px;font:inherit;color:var(--fg)}
.popmenu .skel,.pplist .skel{padding:8px 10px}
/* ---------- Today: the start page with frosted cards over a soft blue background ---------- */
:root{--t2-base:#e9f0fb;--t2-b1:#7fb0ff;--t2-b2:#9fd6f4;--t2-b3:#b4bcff;--t2-b4:#6fd0e0;--t2-glass:rgba(255,255,255,.66);--t2-glass-hi:rgba(255,255,255,.82);--t2-edge:rgba(255,255,255,.75);--t2-shadow:0 1px 2px rgba(20,40,80,.06),0 8px 24px rgba(20,40,80,.08)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--t2-base:#0c1526;--t2-b1:#1d4ed8;--t2-b2:#0e7490;--t2-b3:#4338ca;--t2-b4:#0369a1;--t2-glass:rgba(22,32,52,.62);--t2-glass-hi:rgba(30,44,70,.78);--t2-edge:rgba(255,255,255,.09);--t2-shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35)}}
:root[data-theme="dark"]{--t2-base:#0c1526;--t2-b1:#1d4ed8;--t2-b2:#0e7490;--t2-b3:#4338ca;--t2-b4:#0369a1;--t2-glass:rgba(22,32,52,.62);--t2-glass-hi:rgba(30,44,70,.78);--t2-edge:rgba(255,255,255,.09);--t2-shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px rgba(0,0,0,.35)}
.rail{position:relative;z-index:3}
.t2bg{position:fixed;inset:0;z-index:0;overflow:hidden;background:var(--t2-base);pointer-events:none}
.t2bg span{position:absolute;border-radius:50%;filter:blur(90px);opacity:.55}
.t2bg .b1{width:52vw;height:52vw;left:-8vw;top:-18vw;background:var(--t2-b1)}
.t2bg .b2{width:44vw;height:44vw;right:-10vw;top:4vw;background:var(--t2-b2)}
.t2bg .b3{width:40vw;height:40vw;left:22vw;bottom:-22vw;background:var(--t2-b3)}
.t2bg .b4{width:30vw;height:30vw;right:14vw;bottom:-8vw;background:var(--t2-b4);opacity:.4}
@media (prefers-reduced-motion:no-preference){ .t2bg .b1{animation:t2drift 38s ease-in-out infinite alternate} .t2bg .b3{animation:t2drift 46s ease-in-out infinite alternate-reverse} }
@keyframes t2drift{to{transform:translate(6vw,4vw) scale(1.08)}}
.t2{position:relative;z-index:1}
.t2glass{background:var(--t2-glass);border:1px solid var(--t2-edge);box-shadow:var(--t2-shadow);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5)}
.t2head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px 20px;margin:6px 0 20px}
.t2head h1{font-size:32px;line-height:1.15;letter-spacing:-.02em;margin:0}
.t2date{margin:4px 0 0;color:var(--muted);font-size:15px}
.t2scope{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.t2scope .seg{border-radius:10px}
.t2scope .seg button[aria-pressed="true"]{background:var(--t2-glass-hi)}
.t2tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:40px}
.t2tile{all:unset;box-sizing:border-box;cursor:pointer;display:flex;flex-direction:column;gap:2px;padding:16px 18px;border-radius:16px;background:var(--t2-glass);border:1px solid var(--t2-edge);box-shadow:var(--t2-shadow);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);transition:transform .15s,background .15s}
.t2tile b{font-size:30px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.t2tile span{color:var(--muted);font-size:13.5px}
.t2tile:hover:not(:disabled){background:var(--t2-glass-hi);transform:translateY(-1px)}
.t2tile:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.t2tile:disabled{cursor:default}
.t2tile:disabled b{color:var(--faint)}
.t2tile.hot b{color:var(--warn)}
.t2tile.risk b{color:var(--crit)}
.t2tile .sk.h1{height:28px}
.t2chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px}
.t2chips .fchip{border-color:var(--t2-edge)}
.t2chips .fgrp{background:var(--t2-glass);border-color:var(--t2-edge)}
.t2secs{display:flex;flex-wrap:wrap;align-items:flex-start;gap:24px 30px}
.t2sec{flex:1 1 100%;min-width:0;margin-bottom:20px;scroll-margin-top:16px}
.t2sec.small{flex:0 0 auto;width:max-content;max-width:100%}
.t2sec.small .t2sech{flex-wrap:nowrap}
.t2sec.small .t2why{display:none}
.t2sec.small .t2grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:260px}
@media (max-width:640px){ .t2sec.small{width:100%} .t2sec.small .t2grid{grid-auto-flow:row;grid-auto-columns:auto;grid-template-columns:1fr} }
.t2sech{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px;margin:0 0 12px}
.t2sech h2{font-size:17px;margin:0;letter-spacing:-.01em}
.t2ic{width:28px;height:28px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--t2-glass-hi);border:1px solid var(--t2-edge);color:var(--muted)}
.t2ic.approve{color:var(--warn)}
.t2ic.risk{color:var(--crit)}
.t2n{font:600 12px var(--f-mono);color:var(--muted);background:var(--t2-glass-hi);border-radius:999px;padding:1px 8px}
.t2why{color:var(--muted);font-size:13px}
.t2grid{display:grid;grid-template-columns:repeat(auto-fill,260px);gap:14px}
.t2card{box-sizing:border-box;width:260px;height:196px;border-radius:16px;padding:14px 15px 13px;display:flex;flex-direction:column;gap:5px;cursor:pointer;overflow:hidden;position:relative;transition:transform .15s,box-shadow .15s,background .15s}
.t2card:hover{transform:translateY(-2px);background:var(--t2-glass-hi);box-shadow:0 2px 4px rgba(20,40,80,.08),0 14px 34px rgba(20,40,80,.14)}
.t2card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
@media (prefers-reduced-motion:reduce){ .t2card,.t2tile{transition:none} .t2card:hover,.t2tile:hover{transform:none} }
.t2top{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:24px}
.t2id{display:inline-flex;align-items:center;gap:6px;min-width:0}
.t2title{font-weight:650;font-size:15px;line-height:1.3;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.t2prim{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.t2foot{margin-top:auto;display:flex;flex-direction:column;gap:5px;min-width:0}
.t2reason,.t2next{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.t2reason.crit{color:var(--crit)}
.t2reason.warn,.t2reason.appr{color:var(--fg)}
.t2next b{font-weight:600;color:var(--fg)}
.t2next b.od{color:var(--overdue)}
.t2draft{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;font-size:12px;font-weight:600;color:var(--muted);background:var(--t2-glass-hi);border:1px solid var(--t2-edge);border-radius:999px;padding:2px 9px}
.t2draft .dot{width:7px;height:7px;border-radius:50%;background:var(--faint)}
.t2draft.mine{color:var(--fg)}
.t2draft.mine .dot{background:var(--warn);box-shadow:0 0 0 3px var(--warn-soft)}
.t2pills{display:flex;align-items:center;gap:6px;min-width:0;overflow:hidden}
.t2pills .tagchips{flex-wrap:nowrap;min-width:0}
.t2 .lmore.card{display:grid;grid-template-columns:repeat(auto-fill,260px);gap:14px;margin-top:14px}
.t2 .lmore.card .skcard,.skcard2{width:260px;height:196px;box-sizing:border-box;border-radius:16px;background:var(--t2-glass);border:1px solid var(--t2-edge);padding:16px;display:flex;flex-direction:column;gap:10px}
.t2empty{border-radius:20px;padding:40px 24px;text-align:center;max-width:520px;margin:24px auto}
.t2empty h2{margin:10px 0 4px;font-size:22px}
.t2empty p{margin:0;color:var(--muted)}
.t2emptyic{display:inline-flex;width:56px;height:56px;border-radius:50%;align-items:center;justify-content:center;background:var(--good-soft);color:var(--good)}
@media (max-width:640px){ .t2grid,.t2 .lmore.card{grid-template-columns:1fr} .t2card,.t2 .lmore.card .skcard,.skcard2{width:100%} .t2head h1{font-size:26px} }
.t2rest{all:unset;box-sizing:border-box;cursor:pointer;display:block;margin:4px auto 0;padding:12px 22px;border-radius:999px;font-weight:600;font-size:14px;color:var(--fg);text-align:center}
.t2rest span{font-weight:400;color:var(--muted)}
.t2rest:hover{background:var(--t2-glass-hi)}
.t2rest:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Today background colours: the same soft blurred shapes in other tones, picked at the bottom of the page */
:root[data-t2tone="orange"] .t2bg,.tone-orange{--t2-base:#fbf0e7;--t2-b1:#ffb27a;--t2-b2:#ffd29a;--t2-b3:#ff9f7f;--t2-b4:#f7c06b}
:root[data-t2tone="purple"] .t2bg,.tone-purple{--t2-base:#f2edfb;--t2-b1:#b49bff;--t2-b2:#d4b8f7;--t2-b3:#9f9bff;--t2-b4:#c9a6ee}
:root[data-t2tone="green"] .t2bg,.tone-green{--t2-base:#eaf5ee;--t2-b1:#86d6a6;--t2-b2:#b8e5a8;--t2-b3:#7fd1c0;--t2-b4:#a5d98a}
:root[data-t2tone="gray"] .t2bg,.tone-gray{--t2-base:#eef0f3;--t2-b1:#b8bfca;--t2-b2:#d3d8df;--t2-b3:#a9b1bd;--t2-b4:#c6ccd5}
:root[data-t2tone="beige"] .t2bg,.tone-beige{--t2-base:#f6f1e7;--t2-b1:#e3cfa8;--t2-b2:#efdfc0;--t2-b3:#d9c3a0;--t2-b4:#e8d6b2}
:root[data-t2tone="pink"] .t2bg,.tone-pink{--t2-base:#fbedf3;--t2-b1:#ff9ec4;--t2-b2:#ffc2d9;--t2-b3:#f59fd0;--t2-b4:#ffb3b8}
@media (prefers-color-scheme: dark){:root[data-t2tone="orange"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-orange{--t2-base:#1f140c;--t2-b1:#c2410c;--t2-b2:#b45309;--t2-b3:#9a3412;--t2-b4:#a16207}:root[data-t2tone="purple"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-purple{--t2-base:#170f26;--t2-b1:#6d28d9;--t2-b2:#7e22ce;--t2-b3:#4338ca;--t2-b4:#86198f}:root[data-t2tone="green"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-green{--t2-base:#0c1d15;--t2-b1:#15803d;--t2-b2:#047857;--t2-b3:#0f766e;--t2-b4:#4d7c0f}:root[data-t2tone="gray"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-gray{--t2-base:#111418;--t2-b1:#3f4652;--t2-b2:#4b5563;--t2-b3:#374151;--t2-b4:#52525b}:root[data-t2tone="beige"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-beige{--t2-base:#1a160f;--t2-b1:#78603c;--t2-b2:#6b5a3e;--t2-b3:#57452c;--t2-b4:#806a48}:root[data-t2tone="pink"]:not([data-theme="light"]) .t2bg,:root:not([data-theme="light"]) .tone-pink{--t2-base:#22101a;--t2-b1:#be185d;--t2-b2:#9d174d;--t2-b3:#a21caf;--t2-b4:#be123c}}
:root[data-t2tone="orange"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-orange{--t2-base:#1f140c;--t2-b1:#c2410c;--t2-b2:#b45309;--t2-b3:#9a3412;--t2-b4:#a16207}
:root[data-t2tone="purple"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-purple{--t2-base:#170f26;--t2-b1:#6d28d9;--t2-b2:#7e22ce;--t2-b3:#4338ca;--t2-b4:#86198f}
:root[data-t2tone="green"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-green{--t2-base:#0c1d15;--t2-b1:#15803d;--t2-b2:#047857;--t2-b3:#0f766e;--t2-b4:#4d7c0f}
:root[data-t2tone="gray"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-gray{--t2-base:#111418;--t2-b1:#3f4652;--t2-b2:#4b5563;--t2-b3:#374151;--t2-b4:#52525b}
:root[data-t2tone="beige"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-beige{--t2-base:#1a160f;--t2-b1:#78603c;--t2-b2:#6b5a3e;--t2-b3:#57452c;--t2-b4:#806a48}
:root[data-t2tone="pink"][data-theme="dark"] .t2bg,:root[data-theme="dark"] .tone-pink{--t2-base:#22101a;--t2-b1:#be185d;--t2-b2:#9d174d;--t2-b3:#a21caf;--t2-b4:#be123c}
.t2tones{display:flex;align-items:center;gap:8px;width:max-content;max-width:100%;flex-wrap:wrap;margin:28px 0 8px auto;padding:8px 14px;border-radius:999px;font-size:13px;color:var(--muted)}
.t2toneclose{all:unset;cursor:pointer;margin-right:4px;border-radius:6px;padding:0 2px}
.t2toneclose:hover{color:var(--fg)}
.t2toneclose:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.t2tonebtn{all:unset;box-sizing:border-box;cursor:pointer;display:block;width:max-content;margin:28px 0 8px auto;padding:6px 14px;border-radius:999px;font-size:13px;color:var(--faint)}
.t2tonebtn:hover{color:var(--muted);background:var(--t2-glass)}
.t2tonebtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.t2tone{all:unset;box-sizing:border-box;cursor:pointer;width:24px;height:24px;border-radius:50%;border:1px solid var(--t2-edge);background:radial-gradient(circle at 30% 30%,var(--t2-b1),transparent 60%),radial-gradient(circle at 75% 70%,var(--t2-b3),transparent 60%),var(--t2-base);box-shadow:0 0 0 1px rgba(0,0,0,.08)}
.t2tone:hover{transform:scale(1.1)}
.t2tone[aria-pressed="true"]{box-shadow:0 0 0 2px var(--panel),0 0 0 4px var(--fg)}
.t2tone:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
/* Attached files: the picker in popups, and file rows on entries */
.fattach{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin-top:-4px}
.fattach .flist{flex:1 1 100%}
.fattach .qerr{flex:1 1 100%;margin:0}
.fpick{position:relative;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--accent);cursor:pointer;padding:4px 2px}
.fpick:hover span{text-decoration:underline}
.fpick input[type=file]{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.fpick:focus-within{outline:2px solid var(--accent);outline-offset:2px;border-radius:6px}
.fmax{font-size:12px;color:var(--faint)}
.flist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:4px}
.flist li{position:relative;display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:var(--panel);border-radius:8px;padding:6px 10px;font-size:13px;overflow:hidden}
.flist li>svg{flex:none;color:var(--muted)}
.flist .fname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--fg)}
.flist a.fname{color:var(--accent);text-decoration:none}
.flist a.fname:hover{text-decoration:underline}
.flist .fsize{flex:none;font-size:12px;color:var(--faint)}
.flist .frm{all:unset;flex:none;display:inline-flex;cursor:pointer;color:var(--faint);padding:2px;border-radius:4px}
.flist .frm:hover{color:var(--fg);background:var(--sunk)}
.flist .fprog{position:absolute;left:0;bottom:0;height:2px;width:40%;background:var(--accent);animation:fprog 1.1s ease-in-out infinite}
@keyframes fprog{from{left:-40%}to{left:100%}}
@media (prefers-reduced-motion:reduce){.flist .fprog{animation:none;width:100%;opacity:.4}}
.tfiles{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--muted);margin-top:3px}
/* Images on an entry: small squares in the popup, and the gallery they open */
.fthumbs{display:flex;flex-wrap:wrap;gap:8px}
.fthumb{all:unset;box-sizing:border-box;cursor:pointer;position:relative;display:grid;place-items:center;width:88px;height:88px;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:var(--sunk);color:var(--faint)}
.fthumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.fthumb:hover{border-color:var(--muted)}
.fthumb:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gal{position:fixed;inset:0;z-index:60;background:rgba(8,10,14,.94);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:grid;grid-template-rows:auto 1fr;color:#f3f4f6;outline:none}
.galbar{display:flex;align-items:center;gap:12px;padding:10px 12px 10px 18px;min-width:0}
.galname{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;font-size:14px}
.galpos{font-size:13px;color:#a1a7b3;white-space:nowrap}
.galbtn{all:unset;box-sizing:border-box;cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;font-size:13px;font-weight:500;color:#f3f4f6;white-space:nowrap}
.galbtn:hover{background:rgba(255,255,255,.12)}
.galbtn:focus-visible,.galnav:focus-visible{outline:2px solid #fff;outline-offset:2px}
.galx{padding:7px}
.galstage{position:relative;display:grid;place-items:center;min-height:0;padding:0 64px 24px}
.galstage img{max-width:100%;max-height:calc(100dvh - 84px);object-fit:contain;border-radius:4px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.galstage img.hid,.hid{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.galwait{position:absolute;inset:0;display:grid;place-items:center}
.galwait .sk{width:min(60vw,720px);height:min(50vh,480px);border-radius:8px;--ska:rgba(255,255,255,.08);--skb:rgba(255,255,255,.16)}
.galnone{text-align:center;color:#d1d5db}
/* Documents: white pages on the dark backdrop, scrolled inside the stage */
.galstage.doc{place-items:stretch;padding:0 64px}
.galpdf{position:relative;min-height:0;height:100%}
.galpages{position:absolute;inset:0;overflow:auto;scrollbar-gutter:stable;outline:none;padding:4px 12px 24px;overscroll-behavior:contain}
.galpages.wait{visibility:hidden}
.galpage{margin:0 auto 12px;background:#fff;border-radius:2px;box-shadow:0 6px 24px rgba(0,0,0,.45);max-width:none}
.galpage canvas{display:block;width:100%;height:100%;border-radius:2px}
.galwait .galprep{position:absolute;bottom:18%;left:0;right:0;margin:0;text-align:center;color:#d1d5db;font-size:14px}
.galzoom{display:inline-flex;align-items:center;gap:2px}
.galzpct{font:500 12px var(--f-mono);color:#a1a7b3;min-width:40px;text-align:center}
.galnone p{margin:0 0 12px}
.galnav{all:unset;cursor:pointer;position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.1);color:#fff}
.galnav:hover{background:rgba(255,255,255,.2)}
.galnav.prev{left:12px}
.galnav.next{right:12px}
@media (max-width:640px){ .galstage{padding:0 8px 72px} .galstage img{max-height:calc(100dvh - 140px)} .galnav{top:auto;bottom:14px;transform:none} }
@media (max-width:640px){ .galstage.doc{padding:0 0 72px} .galpages{padding:4px 6px 24px} .galzpct{display:none} }
/* File type icons: a page with its type on it, for files without a picture */
.ficon{position:relative;display:inline-grid;place-items:center;width:var(--s);height:var(--s);color:var(--muted);--ft:var(--muted)}
.ficon b{position:absolute;left:50%;top:62%;transform:translate(-50%,-50%);font:700 calc(var(--s) * .24)/1 var(--f-mono);letter-spacing:.02em;color:#fff;background:var(--ft);border-radius:3px;padding:2px 3px}
.ficon.pdf{--ft:var(--crit)}
.ficon.doc{--ft:var(--accent)}
.ficon.sheet{--ft:var(--good)}
.ficon.slides{--ft:var(--warn)}
.fthumb.fdoc{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:6px;background:var(--panel)}
.fdname{max-width:100%;font-size:11px;line-height:1.2;color:var(--fg);text-align:center;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;word-break:break-word}
.galdoc{display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;background:var(--panel);color:var(--fg);border-radius:16px;padding:32px 40px 28px;max-width:min(420px,90vw);box-shadow:0 10px 40px rgba(0,0,0,.5)}
.galdname{margin:10px 0 0;font-weight:600;font-size:15px;word-break:break-word}
.galdsize{margin:0 0 12px;font-size:13px;color:var(--muted)}
/* Files being dragged over a popup with Attach files: the details box and the picker show where they will go */
.card2.fdropping textarea{outline:2px dashed var(--accent);outline-offset:2px;background:var(--accent-soft)}
.card2.fdropping .fpick{outline:2px dashed var(--accent);outline-offset:3px;border-radius:6px}
/* The background setting sits near the window's right edge, not the content's: past the centred content area
   (the side rail is 84px; the content is at most 1180px with 28px padding), 16px from the edge. */
.t2tones,.t2tonebtn{margin-right:calc((min(1180px, 100vw - 84px) - (100vw - 84px)) / 2 - 12px)}
@media (max-width:820px){ .t2tones,.t2tonebtn{margin-right:0} }
/* One attached file under an entry or step: its name, opening the image or downloading the file */
.tfiles.one{all:unset;box-sizing:border-box;display:inline-flex;align-items:center;gap:4px;max-width:100%;margin-top:3px;font-size:12px;color:var(--accent);cursor:pointer}
.tfiles.one span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tfiles.one:hover span{text-decoration:underline}
.tfiles.one:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
/* Board over the Today background: columns of frosted glass, cards a little more solid */
.t2board .col,.t2board .skcolumn{background:var(--t2-glass);border:1px solid var(--t2-edge);box-shadow:var(--t2-shadow);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5)}
.t2board .card,.t2board .skcard{background:var(--t2-glass-hi);border-color:var(--t2-edge)}
.t2board .card:hover{border-color:var(--faint)}
