/* Command Central — NashCore brand: navy + orange on white, Lora headings, system sans body.
   Layout: sticky white header (mark + title + tabs), stat row, attention card, filters, grouped task cards. */
@font-face{font-family:"Lora";src:url(/lora-var.woff) format("woff");font-weight:400 700;font-style:normal;font-display:swap}
:root{
  --navy:#243B59; --navy-deep:#172A42; --orange:#DE692C; --orange-dk:#C4561C; --amber:#EA9332;
  --blue:#396CA9; --slate:#354251; --ink:#1B2430; --muted:#5C6773; --line:#E4E8EE; --wash:#F5F7FA; --white:#FFFFFF;
  --navy-tint:#EDF1F6; --orange-tint:#FCEFE7; --blue-tint:#EAF0F8; --green:#2F7D4F; --green-tint:#E8F3EC;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --serif:"Lora",Georgia,"Times New Roman",serif;
  --r:12px; --r-sm:8px;
  --shadow:0 1px 2px rgba(23,42,66,.06),0 8px 24px -12px rgba(23,42,66,.18);
  --page:#F5F7FA; --card:#FFFFFF; --card-2:#F5F7FA; --heading:#243B59; --ring:#EDF1F6; --line-strong:#CBD3DE;
  --hot-text:#C4561C; --blue-text:#396CA9; --green-text:#2F7D4F; --amber-tint:#FDF4E6; --amber-text:#9A5B12;
  --danger:#B4321F; --danger-line:#EBC3BC; --overlay:rgba(23,42,66,.45);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --page:#172A42; --card:#20375A; --card-2:#1B3150; --heading:#F2F5FA; --ink:#E6ECF4; --slate:#C5D0DE; --muted:#9FB0C6;
  --line:#33507A; --line-strong:#4A6A96; --ring:rgba(255,255,255,.14); --navy-tint:rgba(255,255,255,.10);
  --orange-tint:rgba(222,105,44,.22); --hot-text:#F5A06E; --blue-tint:rgba(57,108,169,.40); --blue-text:#A9CBF2;
  --green-tint:rgba(47,125,79,.32); --green-text:#8FD6AC; --amber-tint:rgba(234,147,50,.20); --amber-text:#F3C07F;
  --danger:#F59A8C; --danger-line:#7A4A4A; --overlay:rgba(5,12,22,.6);
  --shadow:0 1px 2px rgba(0,0,0,.25),0 8px 24px -12px rgba(0,0,0,.5); color-scheme:dark;}}
:root[data-theme="dark"]{
  --page:#172A42; --card:#20375A; --card-2:#1B3150; --heading:#F2F5FA; --ink:#E6ECF4; --slate:#C5D0DE; --muted:#9FB0C6;
  --line:#33507A; --line-strong:#4A6A96; --ring:rgba(255,255,255,.14); --navy-tint:rgba(255,255,255,.10);
  --orange-tint:rgba(222,105,44,.22); --hot-text:#F5A06E; --blue-tint:rgba(57,108,169,.40); --blue-text:#A9CBF2;
  --green-tint:rgba(47,125,79,.32); --green-text:#8FD6AC; --amber-tint:rgba(234,147,50,.20); --amber-text:#F3C07F;
  --danger:#F59A8C; --danger-line:#7A4A4A; --overlay:rgba(5,12,22,.6);
  --shadow:0 1px 2px rgba(0,0,0,.25),0 8px 24px -12px rgba(0,0,0,.5); color-scheme:dark;}
*,*::before,*::after{box-sizing:border-box}
html,body{margin:0}
body{background:var(--page);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
[hidden]{display:none!important}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--heading);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
.wrap{max-width:1280px;margin:0 auto;padding-inline:20px}
main.wrap{padding-block:24px 56px}

/* header */
.hdr{background:var(--card);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;padding-top:env(safe-area-inset-top,0px)}
.hdr .wrap{display:flex;align-items:center;gap:16px;min-height:68px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:12px;color:var(--heading);text-decoration:none;min-width:0}
.brand{flex-direction:column;align-items:flex-start;gap:5px}
.brand img{height:24px;width:auto;flex:none}
/* "COMMAND CENTRAL" is stretched to exactly the logo's width (190px) */
.brand .brand-name{display:block;width:190px;height:11px;overflow:visible;color:var(--slate)}
.brand .brand-name text{font-family:var(--sans);font-size:10.5px;font-weight:700;fill:currentColor}
/* wide screens: the header is a little wider than the page (still centered) so the full tab labels fit on one row */
@media (min-width:1500px){.hdr .wrap{max-width:1440px}}
.brand-name{font-family:var(--serif);font-weight:600;font-size:1.3rem;line-height:1.1;letter-spacing:-.01em;display:block}
.brand-sub{display:block;font-size:.62rem;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:var(--slate);margin-top:3px}
nav.tabs{display:flex;gap:4px;margin-left:24px}
nav.tabs button{background:none;border:0;border-radius:var(--r-sm);padding:8px 12px;font-weight:600;font-size:14.5px;color:var(--muted);cursor:pointer}
nav.tabs button:hover{color:var(--heading);background:var(--card-2)}
nav.tabs button[aria-selected="true"]{color:var(--heading);background:var(--navy-tint)}
nav.tabs a.tab-link{display:inline-flex;align-items:center;border-radius:var(--r-sm);padding:8px 12px;font-weight:600;font-size:14.5px;color:var(--muted);text-decoration:none;white-space:nowrap}
nav.tabs a.tab-link:hover{color:var(--heading);background:var(--card-2)}

.who-chip{display:flex;align-items:center;gap:10px}
.who-chip .who-text{display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}
.who-chip span{font-weight:600;font-size:14px;color:var(--ink)}
.who-chip em{font-style:normal;font-size:12px;color:var(--muted)}
.who-chip button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:6px 12px;font-size:13px;font-weight:600;color:var(--slate);cursor:pointer}
.who-chip button:hover{border-color:var(--heading);color:var(--heading)}

/* page title */
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:18px}
.page-head h1{font-family:var(--serif);font-weight:600;color:var(--heading);font-size:1.75rem;line-height:1.15;margin:0;letter-spacing:-.01em}
.page-head p{margin:4px 0 0;color:var(--muted)}

/* stats */
.gauges{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:18px}
.gauge{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:2px;box-shadow:var(--shadow)}
.gauge b{font-family:var(--serif);font-weight:600;font-size:1.9rem;line-height:1.1;color:var(--heading);font-variant-numeric:tabular-nums}
.gauge span{font-size:13px;color:var(--muted)}
.gauge.hot b{color:var(--hot-text)} .gauge.wait b{color:var(--blue-text)}

/* attention */
.attention{background:var(--card);border:1px solid var(--line);border-left:3px solid var(--orange);border-radius:var(--r);padding:16px 18px;margin-bottom:18px;box-shadow:var(--shadow)}
.eyebrow,.attention h2,.group h2,.section h2{margin:0 0 10px;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;display:flex;align-items:center;gap:10px}
.attention h2{color:var(--orange)}
.attention h2::before{content:"";width:22px;height:2px;background:currentColor;border-radius:2px}
.attention ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.attention li{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.linkish{background:none;border:0;padding:0;font-weight:600;text-align:left;cursor:pointer;color:var(--heading)}
.linkish:hover{text-decoration:underline}

/* filters */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:20px}
.filters input[type=search],.filters select{height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);max-width:100%}
.filters input[type=search]{flex:1 1 220px;min-width:0}
.filters input[type=search]:focus,.filters select:focus{border-color:var(--heading);outline:none;box-shadow:0 0 0 3px var(--ring)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:40px;text-decoration:none;border:1px solid var(--line);background:var(--card);color:var(--heading);border-radius:var(--r-sm);padding:0 16px;font-weight:600;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--heading)}
.btn.primary{background:var(--orange);border-color:var(--orange);color:#FFFFFF}
.btn.primary:hover{background:var(--orange-dk);border-color:var(--hot-text)}
.btn.danger{color:var(--danger);border-color:var(--danger-line)}
.btn.danger:hover{border-color:var(--danger)}
.btn.small{height:32px;padding:0 12px;font-size:13px}
.btn:disabled{opacity:.55;cursor:default}

/* task groups */
.group{margin-bottom:24px}
.group h2{color:var(--slate)}
.group h2 .n{font-weight:600;letter-spacing:0;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:11px}
.task{display:flex;gap:16px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 16px;margin-bottom:8px;transition:border-color .15s,box-shadow .15s}
.task:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}
.task.done{opacity:.6} .task.done .t-title{text-decoration:line-through}
.t-main{min-width:0;flex:1;display:flex;flex-direction:column;gap:6px}
.t-title{background:none;border:0;padding:0;text-align:left;font-weight:600;font-size:15.5px;cursor:pointer;color:var(--ink);line-height:1.35}
.t-title:hover{color:var(--heading);text-decoration:underline;text-underline-offset:3px}
.t-meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px;color:var(--muted)}
.chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:999px;font-size:11.5px;font-weight:700;letter-spacing:.02em}
.vchip{background:var(--navy-tint);color:var(--heading)}
.vchip.priv{background:var(--card);border:1px dashed var(--line-strong)}
.pri-High{background:var(--orange-tint);color:var(--hot-text)}
.pri-Medium{background:var(--amber-tint);color:var(--amber-text)}
.pri-Low{background:var(--card-2);color:var(--muted)}
.flag{font-size:12px;font-weight:600;color:var(--hot-text)}
.flag.soft{color:var(--muted)}
.flag::before{content:"• ";color:var(--line)}
.t-side{display:flex;gap:12px;align-items:center;flex-shrink:0}
.due{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.due.over{color:var(--hot-text);font-weight:600}
select.status{height:32px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);font-size:13px;font-weight:600;color:var(--slate);max-width:180px;cursor:pointer}
select.status.s-InProgress{background:var(--blue-tint);border-color:var(--blue-tint);color:var(--blue-text)}
select.status.s-Waiting{background:var(--amber-tint);border-color:var(--amber-tint);color:var(--amber-text)}
select.status.s-Complete{background:var(--green-tint);border-color:var(--green-tint);color:var(--green-text)}
select.status:disabled{cursor:default;opacity:.8}
.note{font-size:13.5px;color:var(--slate);background:var(--card-2);border-radius:var(--r-sm);padding:6px 10px;white-space:pre-wrap;overflow-wrap:anywhere}

/* empty + sections */
.empty{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:40px 24px;text-align:center;color:var(--muted)}
.empty strong{display:block;color:var(--heading);font-family:var(--serif);font-weight:600;font-size:1.35rem;margin-bottom:6px}
.empty p{margin:6px auto;max-width:52ch}
.empty .btn{margin-top:10px}
.section{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;margin-bottom:16px}
.section h2{color:var(--slate)}
.section p{margin:0;color:var(--muted);max-width:72ch}
.roster{overflow-x:auto}
.roster table{width:100%;border-collapse:collapse;min-width:780px}
.roster th{text-align:left;font-size:12px;font-weight:600;color:var(--muted);padding:8px;border-bottom:1px solid var(--line)}
.roster td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.roster tr:last-child td{border-bottom:0}
.roster input[type=text],.roster input[type=email]{width:100%;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}
.sees{display:flex;flex-wrap:wrap;gap:6px 12px;font-size:14px;padding-top:6px}
.sees label,.chk{display:flex;gap:6px;align-items:center;white-space:nowrap}
.mono{font-size:12px;color:var(--muted);margin-top:4px}
input[type=checkbox]{accent-color:var(--heading);width:16px;height:16px}
.addform{display:grid;grid-template-columns:1fr 1.4fr 1fr auto;gap:10px;align-items:end}
.addform .full-row{grid-column:1/-1;margin:2px 0 0;font-size:14px}
.row-btns{display:flex;gap:6px;flex-wrap:wrap}

/* sheet (editor) */
#overlay{position:fixed;inset:0;background:var(--overlay);display:flex;align-items:flex-start;justify-content:center;padding:16px;overflow:auto;z-index:20}
.sheet{background:var(--card);color:var(--ink);border-radius:var(--r);box-shadow:0 24px 64px -16px rgba(23,42,66,.4);width:100%;max-width:600px;padding:22px;display:flex;flex-direction:column;gap:14px;margin-top:5vh}
.sheet h3{margin:0;font-family:var(--serif);font-weight:600;font-size:1.45rem;color:var(--heading)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fgrid .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:5px;min-width:0}
.field label,.field .lbl{font-size:12.5px;font-weight:600;color:var(--slate)}
.field input,.field select,.field textarea{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);width:100%}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--heading);outline:none;box-shadow:0 0 0 3px var(--ring)}
.field textarea{min-height:80px;resize:vertical}
.ro{padding:6px 0;font-size:15px;overflow-wrap:anywhere}
.history{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:13px;color:var(--muted);max-height:140px;overflow:auto}
.row-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px}
.row-actions .right{display:flex;gap:8px}

#toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(20px + env(safe-area-inset-bottom,0px));background:var(--heading);color:var(--card);padding:10px 18px;border-radius:999px;font-weight:600;font-size:14px;z-index:30;max-width:calc(100% - 32px);box-shadow:var(--shadow)}

@media (max-width:760px){
  nav.tabs{margin-left:0;order:3;width:100%}
  .gauges{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:620px){
  .task{flex-direction:column;align-items:stretch;gap:10px}
  .t-side{justify-content:space-between}
  .fgrid,.addform{grid-template-columns:1fr}
  .who-chip .who-text{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}

/* logo + theme toggle */
.brand .mark-dark{display:none}
:root[data-theme="dark"] .brand .mark-light{display:none}
:root[data-theme="dark"] .brand .mark-dark{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .brand .mark-light{display:none}:root:not([data-theme="light"]) .brand .mark-dark{display:block}}
.hdr-right{margin-left:auto;display:flex;align-items:center;gap:10px}
.theme-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer;padding:0}
.theme-btn:hover{border-color:var(--heading);color:var(--heading)}
.theme-btn svg{width:17px;height:17px}
.theme-btn .ic-sun{display:none}
:root[data-theme="dark"] .theme-btn .ic-sun{display:block}:root[data-theme="dark"] .theme-btn .ic-moon{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .theme-btn .ic-sun{display:block}:root:not([data-theme="light"]) .theme-btn .ic-moon{display:none}}

/* sidebar layout */
#main.wide{max-width:1280px}
#main.full{max-width:none;padding-inline:clamp(16px,2.5vw,40px)}
.layout{display:grid;grid-template-columns:272px minmax(0,1fr);gap:28px;align-items:start}
.side{position:sticky;top:88px;max-height:calc(100vh - 104px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px}
.side-head{font-size:.7rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);padding:12px 10px 6px}
.side-group{display:flex;flex-direction:column;gap:2px}
.side-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;background:none;border:0;border-radius:var(--r-sm);padding:8px 10px;text-align:left;cursor:pointer;color:var(--ink);font-size:14px;font-weight:500}
.side-item:hover{background:var(--card-2)}
.side-item.active{background:var(--navy-tint);color:var(--heading);font-weight:700}
.side-item.active .side-n{background:var(--orange);color:#FFFFFF}
.side-item.dim{color:var(--muted)}
.side-label{display:flex;align-items:center;gap:8px;min-width:0;line-height:1.25}
.side-code{flex:none;font-size:10.5px;font-weight:700;letter-spacing:.03em;color:var(--heading);background:var(--navy-tint);border-radius:4px;padding:1px 5px;min-width:38px;text-align:center}
.side-code.priv{background:transparent;border:1px dashed var(--line-strong)}
.side-n{flex:none;font-size:11.5px;font-weight:700;color:var(--muted);background:var(--card-2);border-radius:999px;padding:1px 8px;font-variant-numeric:tabular-nums}
.side-sub{margin:2px 0 6px 22px;padding-left:10px;border-left:2px solid var(--line);display:flex;flex-direction:column;gap:2px}
.side-item.proj{font-size:13.5px;padding:6px 10px}
.crumb{margin:0 0 2px;font-size:.74rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--orange)}
.crumb:empty{display:none}
@media (max-width:900px){
  .layout{grid-template-columns:1fr;gap:16px}
  .side{position:static;max-height:none;padding:8px;overflow-x:auto}
  .side-head{display:none}
  .side-group{flex-direction:row;flex-wrap:nowrap;gap:6px}
  .side-item{width:auto;white-space:nowrap;border:1px solid var(--line)}
  .side-item.dim{display:none}
  .side-sub{margin:6px 0 0;padding:0;border:0;flex-direction:row;flex-wrap:nowrap;order:99}
  .side{display:flex;flex-direction:column;gap:6px}
  .side > .side-group:last-child{flex-wrap:wrap}
  .side-sub{flex-basis:100%;flex-wrap:wrap}
}

/* OAuth consent */
.consent{max-width:520px;margin:48px auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--shadow)}
.consent h1{font-family:var(--serif);font-weight:600;color:var(--heading);font-size:1.6rem;margin:0 0 12px}
.consent p{margin:0 0 12px;color:var(--ink)}
.consent ul{margin:0 0 14px;padding-left:20px;color:var(--slate)}
.consent-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;border-top:1px solid var(--line);padding-top:16px}

/* On Hold */
.gauge.hold b{color:var(--muted)}
.task.hold{opacity:.72;border-style:dashed}
select.status.s-Hold{background:var(--card-2);border-color:var(--line-strong);color:var(--muted)}
@media (max-width:760px){.gauges{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* nested project tree */
.side-sub .side-sub{margin:2px 0 4px 12px}
.caret{flex:none;width:12px;height:12px;display:inline-block;position:relative}
.caret::before{content:"";position:absolute;left:3px;top:2px;border:4px solid transparent;border-left:5px solid var(--muted)}
.caret.open::before{left:1px;top:4px;border:4px solid transparent;border-top:5px solid var(--muted)}
.caret.none::before{display:none}
.side-item.dim0{color:var(--muted)}

/* view toggle + head actions */
.head-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:var(--r-sm);overflow:hidden;background:var(--card);height:40px}
.seg button{border:0;background:none;padding:0 14px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.seg button+button{border-left:1px solid var(--line)}
.seg button[aria-pressed="true"]{background:var(--navy-tint);color:var(--heading)}
.ms-chip{background:var(--orange-tint);color:var(--hot-text)}

/* dependencies in editor */
.deps{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.deps .lbl{font-size:12.5px;font-weight:600;color:var(--slate)}
.deps ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.deps li{display:flex;align-items:center;gap:8px;font-size:13.5px;min-width:0}
.deps li .linkish{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.dep-st{flex:none;width:8px;height:8px;border-radius:50%;background:var(--line-strong)}
.dep-st.s-InProgress{background:var(--blue)} .dep-st.s-Waiting{background:var(--amber)} .dep-st.s-Complete{background:var(--green)} .dep-st.s-Hold{background:var(--muted)}
.dep-x{border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;padding:0 4px}
.dep-x:hover{color:var(--danger)}
.dep-add{display:flex;gap:6px;margin-top:8px}
.dep-add input{flex:1;min-width:0;height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}
@media (max-width:620px){.deps{grid-template-columns:1fr}}

/* timeline (Gantt) */
.gantt-wrap{--g-label:360px;overflow:auto;max-height:72vh;background:var(--card);border:1px solid var(--line);border-radius:var(--r);position:relative}
.gantt-grid{display:grid;grid-template-rows:46px auto;width:max-content;min-width:100%}
.g-corner{position:sticky;top:0;left:0;z-index:4;background:var(--card);border-bottom:1px solid var(--line);border-right:1px solid var(--line);display:flex;align-items:flex-end;padding:0 12px 8px;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.g-head{position:sticky;top:0;z-index:3;background:var(--card);border-bottom:1px solid var(--line)}
.g-labels{position:sticky;left:0;z-index:2;background:var(--card);border-right:1px solid var(--line)}
.g-body{position:relative}
.g-svg{display:block}
.g-row{height:36px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid var(--line);font-size:13.5px;min-width:0;cursor:pointer;box-sizing:border-box}
.g-row:hover{background:var(--card-2)}
.g-grow{background:var(--card-2);font-weight:700;color:var(--heading)}
.g-grow .chip{flex:none}
.g-gname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.g-gmeta{flex:none;max-width:45%;overflow:hidden;text-overflow:ellipsis;font-weight:500;font-size:11.5px;color:var(--muted);white-space:nowrap}
.g-trow{padding-left:22px}
.g-tname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;color:var(--ink)}
.g-tname.done{text-decoration:line-through;color:var(--muted)}
.g-who{flex:none;font-size:12px;color:var(--muted)}
.g-blk{flex:none;font-size:11px;font-weight:700;color:var(--hot-text)}
.g-ms{color:var(--orange);font-size:12px}
.g-empty{color:var(--muted);cursor:default;white-space:normal;height:auto;padding:16px 12px}
.g-month{font-size:12px;font-weight:700;fill:var(--heading)}
.g-day{font-size:10.5px;fill:var(--muted)}
.g-day.we{fill:var(--line-strong)}
.g-day.today{fill:var(--orange);font-weight:700}
.g-month-line{stroke:var(--line-strong)}
.g-week-line{stroke:var(--line)}
.g-row-line{stroke:var(--line)}
.g-weekend{fill:var(--card-2)}
.g-group-band{fill:var(--card-2);opacity:.6}
.g-summary{fill:var(--heading);opacity:.55}
.g-target polygon{fill:none;stroke:var(--heading);stroke-width:2}
.g-target.late polygon{stroke:var(--danger)}
.g-today{stroke:var(--orange);stroke-width:2}
.g-task{cursor:pointer;outline:none}
.g-task:focus .g-bar,.g-task:hover .g-bar{stroke:var(--heading);stroke-width:2}
.g-bar{fill:var(--navy-tint);stroke:var(--line-strong);stroke-width:1}
.g-bar.p-High{stroke:var(--orange)}
.g-bar.s-InProgress{fill:var(--blue)} .g-bar.s-WaitingonExternal{fill:var(--amber)} .g-bar.s-Complete{fill:var(--green);opacity:.55} .g-bar.s-OnHold{fill:var(--card-2);stroke-dasharray:4 3}
.g-bar.blocked{fill:url(#g-hatch)}
.g-bar.over{stroke:var(--danger);stroke-width:2}
.g-bar-label{font-size:11px;font-weight:600;fill:var(--heading);pointer-events:none}
.g-bar.s-InProgress + .g-bar-label,.g-bar.s-WaitingonExternal + .g-bar-label{fill:#FFFFFF}
.g-mile{fill:var(--orange);stroke:var(--card);stroke-width:1.5}
.g-mile.s-Complete{fill:var(--green)} .g-mile.over{stroke:var(--danger);stroke-width:2}
.g-hatch-bg{fill:var(--card-2)} .g-hatch-line{stroke:var(--hot-text);stroke-width:2;opacity:.45}
.g-dep{fill:none;stroke:var(--slate);stroke-width:1.4;opacity:.75}
.g-dep.late{stroke:var(--danger);opacity:1;stroke-dasharray:4 3}
.g-arrowhead{fill:var(--slate)} .g-arrowhead.late{fill:var(--danger)}
.g-unsched{margin-top:14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 14px}
.g-unsched summary{cursor:pointer;font-weight:600;color:var(--slate)}
.g-unsched ul{margin:10px 0 0;padding-left:18px;display:grid;gap:4px;max-height:280px;overflow:auto}
@media (max-width:620px){.gantt-wrap{--g-label:170px}}

.field label.chk{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:13.5px;font-weight:500;color:var(--ink)}
.field label.chk input{width:16px;height:16px;min-height:0;padding:0;flex:none}

/* ---- moving projects and tasks ---- */
.side-hint{font-size:11.5px;color:var(--muted);margin:12px 10px 0;line-height:1.4}
.side-item[draggable="true"],.task[draggable="true"]{cursor:grab}
.is-dragging .side-item[data-drop]{outline:1px dashed transparent}
.side-item.drop-ok{background:var(--orange-tint);outline:2px dashed var(--orange);outline-offset:-2px;color:var(--heading)}
.dragging{opacity:.45}
.sheet.narrow{max-width:480px}
.sheet.wide{max-width:980px}
.sheet p{margin:0}
dl.mv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;margin:0;font-size:14px}
dl.mv dt{font-weight:600;color:var(--slate)}
dl.mv dd{margin:0}
.warn{background:var(--amber-tint);color:var(--amber-text);border-radius:var(--r-sm);padding:10px 12px;font-size:13.5px;font-weight:500}
label.chk{display:flex;align-items:center;gap:8px;font-size:13.5px}
label.chk input{width:16px;height:16px;flex:none}

/* ---- sub-tasks ---- */
.subs{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:6px}
.subs li{display:flex;align-items:center;gap:8px;font-size:13.5px;min-width:0}
.subs li input[type="checkbox"]{width:16px;height:16px;min-height:0;padding:0;flex:none;accent-color:var(--green)}
.subs li .linkish{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;flex:1}
.subs li .mono{margin:0;white-space:nowrap}
.linkish.done{text-decoration:line-through;color:var(--muted)}
.dep-add select{height:32px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);max-width:170px}
.chip.subchip{background:var(--green-tint);color:var(--green-text)}
.parent-ref{color:var(--muted);font-style:italic;max-width:32ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.task.nested{margin-left:28px;position:relative;padding-block:9px}
.task.nested::before{content:"";position:absolute;left:-16px;top:-9px;bottom:50%;width:12px;border-left:2px solid var(--line-strong);border-bottom:2px solid var(--line-strong);border-bottom-left-radius:6px}
.g-trow.g-sub{padding-left:40px}
.g-trow.g-sub .g-tname{color:var(--slate);font-size:13px}
@media (max-width:760px){.task.nested{margin-left:16px}.task.nested::before{left:-12px;width:9px}}

/* ---- templates ---- */
.tpl-card .tpl-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}
.tpl-card h2{font-family:var(--serif);font-size:1.2rem;letter-spacing:0;text-transform:none;color:var(--heading);margin:0 0 4px}
.tpl-items{margin-top:12px}
.tpl-items summary{cursor:pointer;font-size:13px;font-weight:600;color:var(--blue-text)}
.tpl-items ul{list-style:none;margin:10px 0 0;padding:0;display:grid;gap:4px;font-size:13.5px}
.tpl-items li .mono{display:inline;margin-left:6px}
.tpl-items li.tp-sub{padding-left:22px;color:var(--slate)}
.ti-list{display:grid;gap:0;position:relative}
.ti-gap{height:14px;position:relative}
.ti-gap:first-child{height:6px}
.ti-ins{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:24px;height:24px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--blue-text);font-weight:700;font-size:15px;line-height:1;cursor:pointer;opacity:0;transition:opacity .12s;z-index:2}
.ti-gap::before{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--line);opacity:0;transition:opacity .12s}
.ti-gap:hover .ti-ins,.ti-gap:hover::before,.ti-ins:focus-visible{opacity:1}
@media (hover:none){.ti-gap{height:26px}.ti-ins{opacity:.75}}
.ti-list.ti-dragging .ti-ins{display:none}
.ti-list.ti-dragging{user-select:none;-webkit-user-select:none}
.ti-grip{flex:none;width:20px;text-align:center;font-size:16px;line-height:36px;color:var(--muted);cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}
.ti-grip:hover{color:var(--ink)}
.ti-dragging .ti-grip{cursor:grabbing}
.ti.ti-drag{opacity:.4}
.ti-drop{position:absolute;right:0;height:3px;margin-top:-1px;border-radius:2px;background:var(--orange);pointer-events:none;z-index:3}
.ti{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px;background:var(--card-2);display:grid;gap:8px}
.ti.ti-in{margin-left:34px;border-left:3px solid var(--orange)}
.ti-top{display:flex;gap:6px;align-items:center}
.ti-top input{flex:1;min-width:0;height:36px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-weight:600}
.ti-n{width:24px;text-align:right;font-size:12px;font-weight:700;color:var(--muted);flex:none}
.ti-bot{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding-left:56px}
.ti-bot label{display:flex;flex-direction:column;gap:3px;font-size:11.5px;font-weight:600;color:var(--slate)}
.ti-bot label.chk{flex-direction:row;align-items:center;height:32px;font-size:13px;font-weight:500;color:var(--ink)}
.ti-bot select,.ti-bot input:not([type="checkbox"]){height:32px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-size:13px}
.ti-bot input.num{width:64px}
.ti-bot input.num2{width:90px}
.ti-bot label.grow{flex:1;min-width:160px}
.ti-bot label.grow input{width:100%}
.ti-bot input:disabled{opacity:.5}
.btn.ghost{border-color:transparent;background:none;padding:0 8px;min-width:32px}
.btn.ghost:hover{border-color:var(--line)}
.pick{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.pick-btn{width:100%;text-align:left;display:flex;flex-direction:column;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:12px 14px;cursor:pointer}
.pick-btn:hover{border-color:var(--heading)}
.pick-btn strong{color:var(--heading)}
.pick-btn .mono{margin:0}
@media (max-width:620px){.ti-bot{padding-left:0}.ti.ti-in{margin-left:14px}}

.ven-access{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line)}
.ven-access label{font-weight:600;color:var(--heading)}

/* ---- owners ---- */
.owners{display:flex;flex-wrap:wrap;gap:6px 14px;padding:6px 0}
.owners label.own{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:500;color:var(--ink);cursor:pointer}
.owners label.own input,.own-list input{width:16px;height:16px;min-height:0;padding:0;flex:none;accent-color:var(--navy)}
.field .hint{font-style:normal;font-weight:400;color:var(--muted);margin-left:6px}
.lbl-wrap{display:flex;flex-direction:column;gap:3px}
.mini-lbl{font-size:11.5px;font-weight:600;color:var(--slate)}
.owner-pick{position:relative}
.owner-pick summary{list-style:none;cursor:pointer;height:32px;line-height:30px;padding:0 26px 0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-size:13px;min-width:120px;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:relative}
.owner-pick summary::-webkit-details-marker{display:none}
.owner-pick summary::after{content:"\25BE";position:absolute;right:8px;top:0;color:var(--muted)}
.owner-pick .own-list{position:absolute;z-index:5;top:36px;left:0;background:var(--card);border:1px solid var(--line-strong);border-radius:var(--r-sm);box-shadow:var(--shadow);padding:8px 10px;display:grid;gap:6px;min-width:180px}
.own-list label.own{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:var(--ink);cursor:pointer;white-space:nowrap}

/* ---- scheduled blocks ---- */
.chip.sched-chip{background:var(--blue-tint);color:var(--blue-text);font-weight:600;white-space:nowrap}
.fgrid .full-span{grid-column:1/-1;margin:-4px 0 0}
.warn-text{color:var(--hot-text)}

.side-item.side-add{color:var(--blue-text);font-weight:600}
.side-item.side-add:hover{background:var(--blue-tint)}

/* ---- tree: tasks in the sidebar, folding ---- */
.side-item .caret[data-act="tree"]{cursor:pointer;border-radius:4px;padding:6px;margin:-6px -2px -6px -6px;box-sizing:content-box}
.side-item .caret[data-act="tree"]:hover{background:var(--navy-tint)}
.side-item.task-item{font-size:13px;padding:5px 10px;color:var(--slate);font-weight:500}
.side-item.task-item .side-label{display:flex;align-items:center;gap:6px;min-width:0}
.side-item.task-item .t-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.side-item.task-item.prog .t-name{color:var(--heading)}
.side-item .dot{width:7px;height:7px;border-radius:50%;flex:none;background:var(--line-strong)}
.side-item .dot.p-High{background:var(--orange)}
.side-item .dot.p-Medium{background:var(--blue)}
.side-n.hot{background:var(--orange-tint);color:var(--hot-text)}
.chip.fold{border:0;cursor:pointer;font:inherit;font-size:11.5px;font-weight:700}
.chip.fold:hover{filter:brightness(.95)}

/* ---- projects tab ---- */
.pfilters{flex-wrap:wrap}
.ptable-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:10px}
.ptable{width:100%;border-collapse:collapse;font-size:13.5px;min-width:1100px}
.ptable th{position:sticky;top:0;background:var(--card-2);text-align:left;font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--slate);border-bottom:1px solid var(--line);padding:0}
.ptable th button{background:none;border:0;padding:10px 12px;width:100%;text-align:left;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;cursor:pointer;white-space:nowrap}
.ptable th button:hover,.ptable th[aria-sort] button{color:var(--heading)}
.ptable td{padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
.ptable tr.prow{cursor:pointer}
.ptable tr.prow:hover td{background:var(--card-2)}
.ptable tr.prow:focus-visible{outline:3px solid var(--orange);outline-offset:-3px}
.ptable tr.muted td{opacity:.65}
.ptable td.pname{white-space:normal;min-width:240px;max-width:360px}
.ptable .pparent{display:block;font-size:11.5px;color:var(--muted)}
.ptable .pname strong{color:var(--heading)}
.ptable .pdesc{display:block;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:340px}
.ptable .pauto{display:block;font-size:11px;color:var(--muted)}
.ptable td.num{text-align:right}
.ptable td.hot{color:var(--hot-text);font-weight:700}
.ptable .chip.auto{opacity:.7;font-style:italic}
.ptable .pact{text-align:right}
.pbar{display:inline-block;width:70px;height:6px;border-radius:3px;background:var(--line);vertical-align:middle;margin-right:8px;overflow:hidden}
.pbar span{display:block;height:100%;background:var(--green)}
.ptable .mono{display:inline;margin:0}

/* projects tree table: one line per project */
.ptable td{white-space:nowrap}
.ptable td.pname{white-space:nowrap;min-width:260px;max-width:none}
.ptable .pnw{display:flex;align-items:center;gap:6px}
.ptable .pindent{display:inline-block;flex:none}
.ptable .pn{font-weight:700;color:var(--heading);overflow:hidden;text-overflow:ellipsis}
.ptable tr.child .pn{font-weight:600;color:var(--ink)}
.ptable .psubn{font-size:11px;font-weight:700;color:var(--muted);background:var(--card-2);border-radius:999px;padding:1px 7px}
.ptable .caret[data-act="ptoggle"]{cursor:pointer;padding:6px;margin:-6px;box-sizing:content-box;border-radius:4px}
.ptable .caret[data-act="ptoggle"]:hover{background:var(--navy-tint)}
.ptable td.pown{max-width:200px;overflow:hidden;text-overflow:ellipsis}
.ptable td.pown.auto{color:var(--muted);font-style:italic}
.ptable .pheld{font-size:11px;color:var(--muted);font-weight:600}
.ptable tr.child td{background:color-mix(in srgb,var(--card-2) 45%,transparent)}

/* ---- repeat ---- */
.chip.rec-chip{background:var(--navy-tint);color:var(--heading);font-weight:600;white-space:nowrap}
.rec{display:grid;gap:10px;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card-2)}
.rec-row{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;font-size:13.5px}
.rec-row label{display:flex;align-items:center;gap:6px;font-weight:500;color:var(--ink)}
.rec select,.rec input[type="number"],.rec input[type="date"]{height:32px;padding:0 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);font-size:13px;min-height:0;width:auto}
.rec input.num{width:64px}
.rec input[type="radio"],.rec input[type="checkbox"]{width:16px;height:16px;min-height:0;padding:0}
.rec-custom{display:grid;gap:10px}
.daychip{border:1px solid var(--line);border-radius:999px;padding:3px 10px;background:var(--card);cursor:pointer}
.daychip input{margin:0}
.sched-wrap{position:relative}
.sched-btn{justify-content:flex-start;min-width:220px}
.sched-pop{position:absolute;z-index:20;top:calc(100% + 6px);left:0;width:min(520px,100%);background:var(--card);border:1px solid var(--line);border-radius:var(--r-md,12px);box-shadow:0 10px 30px rgba(0,0,0,.18);padding:14px}
.sched-row{display:flex;flex-wrap:wrap;gap:10px}
.sched-row .mini{display:flex;flex-direction:column;gap:4px;flex:1 1 130px;font-size:12px;color:var(--muted,#5C6773)}
.sched-row .mini input,.sched-row .mini select{width:100%}
.sched-acts{display:flex;align-items:center;margin-top:12px;gap:8px}
.sched-acts .right{margin-left:auto;display:flex;gap:8px}
#update-bar{position:fixed;top:0;left:0;right:0;z-index:40;display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap;padding:10px 16px;background:var(--heading);color:var(--card);font-size:14px;box-shadow:var(--shadow)}
#update-bar .btn{flex:0 0 auto}
/* feedback */
#fb-bubble{position:fixed;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(20px + env(safe-area-inset-bottom,0px));z-index:25;width:52px;height:52px;border-radius:50%;border:0;background:var(--orange,#DE692C);color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px -6px rgba(23,42,66,.45)}
#fb-bubble:hover{filter:brightness(1.06);transform:translateY(-1px)}
#fb-bubble:focus-visible{outline:3px solid var(--ring);outline-offset:2px}
.fb-kinds{align-self:flex-start}
.fb-mine h4{margin:6px 0 8px;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.fb-mine ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;max-height:260px;overflow:auto}
.fb-mine li{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px}
.fb-line{display:flex;gap:8px;align-items:center;margin-bottom:4px}
.fb-body{white-space:pre-wrap;line-height:1.5}
.fb-reply{margin-top:6px;padding:6px 10px;border-left:3px solid var(--orange,#DE692C);background:var(--wash);font-size:14px}
.fb-st{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--wash);color:var(--slate)}
.fb-st.new{background:var(--orange-tint);color:var(--orange-dk)}
.fb-st.planned{background:var(--blue-tint);color:var(--blue)}
.fb-st.done{background:var(--green-tint);color:var(--green)}
.fb-st.no,.fb-st.dup{background:var(--wash);color:var(--muted)}
.fb-card{display:grid;gap:8px}
.fb-head{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fb-kind{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:6px;background:var(--navy-tint,#E3ECF7);color:var(--heading)}
.fb-kind.bug{background:var(--orange-tint);color:var(--orange-dk)}
.fb-also,.fb-task,.fb-client{margin:0;font-size:13.5px;color:var(--muted)}
.fb-actions{display:grid;gap:8px;margin-top:4px}
.fb-actions textarea{min-height:40px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;resize:vertical}
.fb-btns{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.fb-btns select{height:32px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);max-width:260px}
.tab-badge{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;margin-left:4px;border-radius:999px;background:var(--orange,#DE692C);color:#fff;font-size:11px;font-weight:800}
.fb-filter{flex-wrap:wrap;height:auto}
.fb-filter button{height:38px}
#main{padding-bottom:84px}
/* what's new */
.wn{max-height:86vh;overflow:auto}
.wn-rel{border-top:1px solid var(--line);padding-top:12px}
.wn-rel:first-of-type{border-top:0;padding-top:0}
.wn-date{font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.wn-rel h4{margin:2px 0 8px;font-size:16px;color:var(--heading)}
.wn-rel ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.wn-rel li{display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:start;line-height:1.5}
.wn-type{justify-self:start;margin-top:2px;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:800}
.wn-type.new{background:var(--orange-tint);color:var(--orange-dk)}
.wn-type.improved{background:var(--blue-tint);color:var(--blue)}
.wn-type.fixed{background:var(--green-tint);color:var(--green)}
.fb-left{display:flex;gap:8px;flex-wrap:wrap}
/* feedback panel: docked bottom right, above the button */
#fb-panel{position:fixed;z-index:26;right:calc(20px + env(safe-area-inset-right,0px));bottom:calc(84px + env(safe-area-inset-bottom,0px));width:min(380px,calc(100vw - 32px));max-height:calc(100vh - 120px);overflow:auto;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 48px -12px rgba(23,42,66,.45);padding:16px;animation:fbIn .14s ease-out}
@keyframes fbIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){#fb-panel{animation:none}}
#fb-panel form{display:grid;gap:12px}
#fb-panel p{margin:0;font-size:13px}
.fb-top{display:flex;align-items:center;justify-content:space-between}
.fb-top h3{margin:0;font-family:var(--serif);font-weight:600;font-size:1.2rem;color:var(--heading)}
.icon-x{border:0;background:none;font-size:24px;line-height:1;width:32px;height:32px;border-radius:8px;color:var(--muted);cursor:pointer}
.icon-x:hover{background:var(--wash);color:var(--ink)}
#fb-panel .fb-kinds{height:36px;width:100%}
#fb-panel .fb-kinds button{flex:1;padding:0 8px;font-size:13px}
#fb-panel textarea{width:100%;min-height:96px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;resize:vertical}
#fb-panel textarea:focus{border-color:var(--heading);outline:none;box-shadow:0 0 0 3px var(--ring)}
.fb-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.fb-foot .fb-left{gap:14px;font-size:13.5px}
#fb-panel .fb-mine ul{max-height:220px}
#fb-bubble.open{background:var(--navy,#243B59)}
.wn h3:focus{outline:none}
.wn .row-actions{position:sticky;bottom:-22px;margin:0 -22px -22px;padding:12px 22px 22px;background:var(--card);border-top:1px solid var(--line)}
.wn-left{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.ed-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.complete-btn{color:var(--green);border-color:var(--green)}
.complete-btn:hover{background:var(--green-tint)}
.complete-btn.armed{background:var(--green);color:#fff}
button.gauge{font:inherit;text-align:left;cursor:pointer;color:inherit;transition:border-color .12s,box-shadow .12s,transform .12s}
button.gauge:hover{border-color:var(--line-strong);transform:translateY(-1px)}
button.gauge:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
button.gauge[aria-pressed="true"]{border-color:var(--heading);box-shadow:inset 0 0 0 1px var(--heading)}
#e-project-new{margin-top:8px}
/* bell + notifications */
#who{display:flex;align-items:center;gap:10px}
.bell-wrap{position:relative}
.bell{position:relative;display:grid;place-items:center;width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:var(--card);color:var(--slate);cursor:pointer}
.bell:hover,.bell[aria-expanded="true"]{border-color:var(--heading);color:var(--heading)}
.bell-badge{position:absolute;top:-4px;right:-4px;min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--orange,#DE692C);color:#fff;font-size:11px;font-weight:800;display:grid;place-items:center;line-height:1}
.bell-dd{position:absolute;right:0;top:calc(100% + 8px);width:min(380px,calc(100vw - 24px));background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 48px -12px rgba(23,42,66,.45);z-index:40;overflow:hidden}
.bell-head,.bell-foot{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;font-size:14px}
.bell-head{border-bottom:1px solid var(--line)}
.bell-foot{border-top:1px solid var(--line);justify-content:center}
.nt-list{list-style:none;margin:0;padding:0}
.nt button{display:flex;gap:10px;width:100%;text-align:left;background:none;border:0;padding:10px 14px;cursor:pointer;color:var(--ink);font:inherit}
.nt+.nt button{border-top:1px solid var(--line)}
.nt button:hover{background:var(--wash)}
.nt-ic{flex:0 0 auto;width:22px;text-align:center}
.nt-tx{display:flex;flex-direction:column;gap:2px;min-width:0}
.nt-t{font-size:14px;color:var(--muted)}
.nt.unread .nt-t{font-weight:700;color:var(--ink)}
.nt-b{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nt-d{font-size:12px;color:var(--muted)}
.nt.cleared{opacity:.55}
.nt-empty{padding:18px 14px;color:var(--muted);margin:0;font-size:14px}
.nt-page{background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.nt-page .nt-b{white-space:normal}
/* estimates, deadlines, risk */
.est-chip{font-variant-numeric:tabular-nums}
.est-chip.noest{border:1px dashed var(--line-strong);background:transparent;color:var(--muted)}
.risk-chip{background:var(--orange-tint);color:var(--hot-text);font-weight:700}
.needs-est{color:var(--hot-text)}
.dl-seg{height:40px}
.dl-seg .seg-opt{display:flex;align-items:center;gap:6px;padding:0 14px;font-weight:600;font-size:13.5px;color:var(--muted);cursor:pointer}
.dl-seg .seg-opt+.seg-opt{border-left:1px solid var(--line)}
.dl-seg .seg-opt:has(input:checked){background:var(--navy-tint);color:var(--heading)}
.dl-seg input{width:auto;min-height:0;margin:0}
/* agenda */
.ag-ctl{flex-wrap:wrap}
.ag-ctl input[type=date],.ag-ctl select{height:40px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink)}
.ag-allday{margin:0 0 12px;font-size:14px;color:var(--muted)}
.ag-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,1fr);gap:18px;align-items:start}
@media (max-width:900px){.ag-grid{grid-template-columns:1fr}}
.ag-time{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 12px 12px 88px;box-shadow:var(--shadow)}
.ag-tl{position:relative}
.ag-hr{position:absolute;left:0;right:0;border-top:1px solid var(--line);height:0}
.ag-hr span{position:absolute;left:-82px;top:-8px;width:50px;text-align:right;font-size:11.5px;color:var(--muted)}
.ag-off{position:absolute;left:0;right:0;background:repeating-linear-gradient(135deg,transparent 0 6px,var(--wash) 6px 12px);opacity:.9}
.ag-gap{position:absolute;left:0;right:0;border:1.5px dashed var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12.5px;color:var(--muted);background:transparent}
.ag-gap.drop{cursor:copy}
.ag-gap.drop:hover,.ag-gap.drop:focus-visible{border-color:var(--heading);color:var(--heading);outline:none}
.ag-tl.choosing .ag-gap.fits{border-color:var(--green,#2F7D4F);background:var(--green-tint,#E8F3EC);color:var(--green,#2F7D4F)}
.ag-tl.choosing .ag-gap.nofit{opacity:.55}
.ag-ev{position:absolute;left:0;right:0;border-radius:8px;padding:4px 30px 4px 10px;overflow:hidden;display:flex;flex-direction:column;gap:1px;font-size:13px}
.ag-ev.mtg{background:var(--wash);border:1px solid var(--line);color:var(--slate)}
.ag-ev.blk{background:var(--navy-tint);border-left:4px solid var(--heading);color:var(--heading)}
.ag-evt{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ag-evm{font-size:11.5px;color:var(--muted)}
.ag-x{position:absolute;top:4px;right:4px;border:0;background:none;color:var(--muted);font-size:18px;line-height:1;cursor:pointer;width:22px;height:22px;border-radius:6px}
.ag-x:hover{background:var(--card);color:var(--danger)}
.ag-now{position:absolute;left:-8px;right:0;border-top:2px solid var(--orange,#DE692C);z-index:3}
.ag-now::before{content:"";position:absolute;left:-4px;top:-5px;width:8px;height:8px;border-radius:50%;background:var(--orange,#DE692C)}
.ag-preview{position:absolute;left:6px;right:6px;border-radius:8px;background:var(--heading);color:var(--card);opacity:.85;font-size:12px;font-weight:700;padding:3px 8px;pointer-events:none;z-index:4}
.ag-recs h2{margin:0 0 4px;font-size:1.05rem;color:var(--heading)}
.ag-recs>.mono{margin:0 0 10px}
.ag-list{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.ag-rec{background:var(--card);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;display:grid;gap:6px}
.ag-rec[draggable]{cursor:grab}
.ag-rec[draggable]:hover{border-color:var(--line-strong)}
.ag-rec.picked{border-color:var(--heading);box-shadow:inset 0 0 0 1px var(--heading)}
.ag-rt{display:flex;justify-content:space-between;gap:10px;font-weight:600;font-size:14px}
.ag-open{font-size:12.5px;flex:0 0 auto}
.ag-rm{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12.5px}
.ag-foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:10px;margin-top:14px;padding:12px 14px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);font-size:14px}
.days{display:flex;flex-wrap:wrap;gap:6px}
/* schedules */
.sch-chip{background:var(--blue-tint);color:var(--blue-text)}
.est-wrap{display:flex;gap:8px}
.est-wrap select{flex:1}
.est-wrap input{width:110px}
.sheet.wide .sch-card{border:1px solid var(--line);border-radius:var(--r-sm);padding:12px;display:grid;gap:10px}
.sch-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.sch-name{flex:1 1 200px;min-height:38px;padding:6px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font-weight:700}
.sch-days{display:grid;gap:6px}
.sch-day{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center}
.sch-dn{font-size:13px;font-weight:700;color:var(--slate)}
.sch-ranges{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.sch-r{display:inline-flex;align-items:center;gap:4px;position:relative;padding-right:22px}
.sch-r input{height:32px;padding:0 6px;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--ink)}
.sch-r .ag-x{top:5px;right:0}
.sch-off{font-size:12.5px}
.sch-more{display:flex;flex-wrap:wrap;gap:8px}
/* agenda: schedule lanes and placement slots */
.ag-lane{position:absolute;width:4px;border-radius:2px;opacity:.85}
.ag-lane.l0,.ag-sw.l0{background:var(--heading)} .ag-lane.l1,.ag-sw.l1{background:var(--orange,#DE692C)} .ag-lane.l2,.ag-sw.l2{background:var(--green,#2F7D4F)}
.ag-lane.l3,.ag-sw.l3{background:#7A5AF8} .ag-lane.l4,.ag-sw.l4{background:#0E9AA7} .ag-lane.l5,.ag-sw.l5{background:#B4321F}
.ag-legend{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0 0;font-size:12.5px;color:var(--muted)}
.ag-legend span{display:inline-flex;align-items:center;gap:6px}
.ag-sw{display:inline-block;width:10px;height:10px;border-radius:3px}
.ag-tl.choosing .ag-gap{opacity:.35}
.ag-slot{position:absolute;left:0;right:0;border:2px dashed var(--line-strong);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:12.5px;font-weight:700;cursor:copy;z-index:2}
.ag-slot.fits{border-color:var(--green,#2F7D4F);background:var(--green-tint,#E8F3EC);color:var(--green,#2F7D4F)}
.ag-slot.nofit{background:var(--wash);color:var(--muted)}
.ag-slot:hover,.ag-slot:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ring)}
/* hold / resume */
.ed-acts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.hold-btn{color:var(--slate)}
.resume-btn{color:var(--blue-text);border-color:var(--blue-text)}
.resume-btn:hover{background:var(--blue-tint)}
.held-note{margin:0;padding:8px 12px;border-radius:var(--r-sm);background:var(--wash);color:var(--slate);font-size:13.5px}
.hold-chip{background:var(--wash);color:var(--slate)}
/* date picker */
input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}
@media (pointer: fine){input[type=date]{cursor:pointer}}
.dp{position:fixed;z-index:80;width:272px;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 48px -12px rgba(23,42,66,.45);padding:10px}
.dp-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.dp-head strong{font-size:14px;color:var(--heading)}
.dp-nav{border:0;background:none;width:32px;height:32px;border-radius:8px;font-size:18px;color:var(--slate);cursor:pointer}
.dp-nav:hover{background:var(--wash)}
.dp-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.dp-wd{font-size:11px;font-weight:700;color:var(--muted);padding:4px 0}
.dp-day{border:0;background:none;height:32px;border-radius:8px;font:inherit;font-size:13px;color:var(--ink);cursor:pointer}
.dp-day:hover,.dp-day:focus-visible{background:var(--wash);outline:none}
.dp-day.out{color:var(--muted);opacity:.6}
.dp-day.today{box-shadow:inset 0 0 0 1.5px var(--heading);font-weight:700}
.dp-day.sel{background:var(--heading);color:var(--card);font-weight:700}
.dp-foot{display:flex;justify-content:space-between;align-items:center;margin-top:8px;padding-top:8px;border-top:1px solid var(--line)}
.pn-tasks{display:flex;flex-direction:column;gap:6px;max-height:220px;overflow:auto;padding:8px 10px;border:1px solid var(--line);border-radius:10px}
.pn-tasks .chk{font-weight:400}
/* attachments */
.att{display:grid;gap:8px;border:1px dashed transparent;border-radius:12px;padding:2px;transition:border-color .15s,background .15s}
.att.att-over{border-color:var(--blue);background:var(--card-2)}
.att .lbl{font-size:12.5px;font-weight:600;color:var(--slate)}
.att-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.att-item{display:flex;align-items:center;gap:10px;min-width:0;padding:6px 8px;border:1px solid var(--line);border-radius:10px}
.att-thumb{flex:none;width:44px;height:44px;border-radius:6px;overflow:hidden;background:var(--card-2);display:block}
.att-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.att-ic{flex:none;width:44px;height:44px;display:grid;place-items:center;font-size:22px;background:var(--card-2);border-radius:6px}
.att-body{display:grid;min-width:0;flex:1}
.att-name-l{font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
.att-body .mono{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.att-add{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.att-up{cursor:pointer}
.att-linkrow{display:flex;flex-wrap:wrap;gap:8px}
.att-linkrow .att-url{flex:2 1 220px}
.att-linkrow .att-name{flex:1 1 140px}
.dep-x.armed{font-size:12px;color:var(--danger);font-weight:600}
.att-chip{background:var(--card-2);color:var(--slate)}
.pfiles{margin-left:8px;font-size:12px;color:var(--muted)}
/* comments and @mentions */
.field,.cmt-box,.cmt-text{position:relative}
.mn-menu{position:absolute;z-index:30;margin:2px 0 0;padding:4px;list-style:none;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(23,42,66,.16);min-width:200px;max-width:280px}
.mn-menu li{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:7px;cursor:pointer;font-size:13.5px}
.mn-menu li.on,.mn-menu li:hover{background:var(--blue-tint)}
.mn-av,.cmt-av{flex:none;display:grid;place-items:center;border-radius:50%;background:var(--navy-tint);color:var(--heading);font:600 11px/1 inherit}
.mn-av{width:22px;height:22px}
.cmt-av{width:30px;height:30px;font-size:12px}
.cmt-av.me{background:var(--orange-tint);color:var(--hot-text,var(--orange-dk))}
.mention{color:var(--blue-text,var(--blue));background:var(--blue-tint);border-radius:4px;padding:0 3px;font-weight:600}
.cmt{display:grid;gap:10px}
.cmt .lbl{font-size:12.5px;font-weight:600;color:var(--slate)}
.cmt-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.cmt-item{display:flex;gap:10px;align-items:flex-start}
.cmt-body{flex:1;min-width:0}
.cmt-meta{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;align-items:center;gap:4px}
.cmt-meta strong{color:var(--ink)}
.cmt-tools{margin-left:auto;display:flex;gap:10px}
.cmt-tools .linkish{font-size:12.5px}
.danger-l{color:var(--danger)!important}
.cmt-text{margin-top:3px;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere;background:var(--card-2);border-radius:0 10px 10px 10px;padding:8px 11px}
.cmt-text textarea{width:100%;min-height:70px}
.cmt-item.deleted p{margin:2px 0 0}
.cmt-new{display:flex;gap:10px;align-items:flex-start}
.cmt-box{flex:1;min-width:0;display:grid;gap:6px}
.cmt-box textarea{width:100%;min-height:58px;resize:vertical}
.cmt-acts{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:6px}
.cmt-acts .btn+.btn{margin-left:6px}
.cmt-vers{margin-top:8px;padding:8px 10px;border-left:3px solid var(--line);display:grid;gap:8px}
.cmt-ver{display:grid;gap:2px;font-size:13px;white-space:pre-wrap}
/* selecting several tasks */
.task{position:relative}
.t-sel{position:absolute;left:-30px;top:16px;width:22px;height:22px;display:grid;place-items:center;opacity:0;transition:opacity .12s;cursor:pointer}
.t-sel input{width:17px;height:17px;margin:0;cursor:pointer;accent-color:var(--orange)}
.task:hover .t-sel,.t-sel:focus-within,#list.selecting .t-sel{opacity:1}
@media (hover:none){.t-sel{opacity:1}}
.task.picked{outline:2px solid var(--orange);outline-offset:-1px}
#list{padding-left:30px}
#bulkbar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:40;display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;max-width:calc(100vw - 32px);padding:10px 14px;background:var(--card);color:var(--ink);border:1px solid var(--line-strong);border-radius:14px;box-shadow:0 16px 40px -12px rgba(23,42,66,.45)}
#bulkbar .bb-count{font-size:13.5px;white-space:nowrap}
#bulkbar .bb-acts{display:flex;flex-wrap:wrap;gap:6px}
#bulkbar .linkish{font-size:13.5px}
/* row shortcuts */
.row-btn{white-space:nowrap}
.start-btn{border-color:var(--green);color:var(--green-text,var(--green))}
button.sched-chip{border:0;cursor:pointer;font:inherit}
button.sched-chip:hover{filter:brightness(.95);text-decoration:underline}
.row-pop{position:fixed;z-index:45;width:340px;max-width:calc(100vw - 24px);background:var(--card);border:1px solid var(--line-strong);border-radius:12px;box-shadow:0 16px 40px -12px rgba(23,42,66,.45);padding:12px}
.row-pop .rp-title{margin:0 0 8px;font-weight:600;font-size:13.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#subEst{max-width:110px}
.cmt-fol{margin:0}
.cmt-fol .fol{display:inline-flex;align-items:center;gap:2px;font-weight:600;color:var(--ink)}
/* Ask Claude */
.ai-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;height:38px;min-width:38px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:var(--card);color:var(--heading);font:600 13.5px/1 inherit;cursor:pointer;margin-right:8px;flex:none;white-space:nowrap}
@media (max-width:1499px){.ai-btn span{display:none}.ai-btn{padding:0}}
.ai-btn:hover,.ai-btn[aria-pressed="true"]{border-color:var(--orange);color:var(--orange-dk)}
#ai-panel{position:fixed;top:72px;right:16px;bottom:16px;width:410px;max-width:calc(100vw - 32px);z-index:35;display:flex;flex-direction:column;background:var(--card);color:var(--ink);border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 24px 64px -16px rgba(23,42,66,.45);overflow:hidden}
.ai-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;border-bottom:1px solid var(--line)}
.ai-head>div:first-child{display:grid;gap:2px}
.ai-hacts{display:flex;align-items:center;gap:4px}
.ai-pad{padding:14px}
.ai-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.ai-msg{max-width:88%;padding:9px 12px;border-radius:14px;font-size:14px;line-height:1.45;overflow-wrap:anywhere}
.ai-msg p{margin:0 0 6px}.ai-msg p:last-child{margin:0}
.ai-msg ul{margin:4px 0 6px;padding-left:18px}.ai-msg li{margin:2px 0}
.ai-msg code{font-size:12.5px;background:var(--card-2);padding:0 4px;border-radius:4px}
.ai-msg.user{align-self:flex-end;background:var(--navy);color:#fff;border-bottom-right-radius:4px}
.ai-msg.assistant{align-self:flex-start;background:var(--card-2);border-bottom-left-radius:4px}
.ai-tool{align-self:flex-start;font-size:12px;color:var(--muted);padding-left:4px}
.ai-tid{font-weight:600;color:var(--blue-text,var(--blue))}
.ai-empty{display:grid;gap:8px;color:var(--slate);font-size:14px}
.ai-sugg{text-align:left;padding:8px 11px;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);cursor:pointer;font:inherit;font-size:13.5px}
.ai-sugg:hover{border-color:var(--orange)}
.ai-busy{display:flex;gap:4px;padding:12px 14px}
.ai-busy span{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:aidot 1s infinite ease-in-out}
.ai-busy span:nth-child(2){animation-delay:.15s}.ai-busy span:nth-child(3){animation-delay:.3s}
@keyframes aidot{0%,80%,100%{opacity:.25}40%{opacity:1}}
@media (prefers-reduced-motion:reduce){.ai-busy span{animation:none;opacity:.6}}
.ai-pend{margin:0 14px 10px;padding:10px 12px;border:1px solid var(--orange);border-radius:12px;background:var(--orange-tint);font-size:13.5px}
.ai-pend p{margin:0 0 6px}.ai-pend ul{margin:0 0 8px;padding-left:18px;display:grid;gap:4px}
.ai-pend li .mono{display:block;font-size:12px;overflow-wrap:anywhere}
.ai-pacts{display:flex;justify-content:flex-end;gap:6px}
.ai-form{border-top:1px solid var(--line);padding:10px 12px;display:grid;gap:6px}
.ai-form textarea{width:100%;resize:none;min-height:46px;max-height:160px}
.ai-facts{display:flex;justify-content:space-between;align-items:center;gap:8px}
.ai-set{display:flex;flex-wrap:wrap;align-items:flex-end;gap:12px;margin:8px 0}
.ai-set label{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--slate)}
.ai-set input{width:120px}
.ai-use{width:auto;min-width:360px}
@media (max-width:620px){#ai-panel{top:0;right:0;bottom:0;left:0;width:auto;max-width:none;border-radius:0}}
/* progress */
.prog-seg{display:flex;flex-wrap:nowrap;gap:0;border:1px solid var(--line-strong);border-radius:10px;overflow:hidden;background:var(--card)}
.prog-seg .seg-opt{flex:1 1 0;min-width:0;display:flex;align-items:center;justify-content:center;padding:9px 2px;margin:0;font-size:13px;font-weight:600;color:var(--slate);cursor:pointer;border-left:1px solid var(--line);white-space:nowrap;position:relative}
.prog-seg .seg-opt:first-child{border-left:0}
.prog-seg .seg-opt input{position:absolute;opacity:0;width:1px;height:1px;margin:0;pointer-events:none}
.prog-seg .seg-opt:has(input:checked){background:var(--navy);color:#fff}
.prog-seg .seg-opt:has(input:focus-visible){outline:2px solid var(--orange);outline-offset:-2px}
.prog-seg .seg-opt:has(input:disabled){cursor:default;opacity:.7}
.prog-chip{position:relative;overflow:hidden;background:var(--card-2);color:var(--ink);font-variant-numeric:tabular-nums}
.prog-chip i{position:absolute;left:0;top:0;bottom:0;background:var(--green-tint);z-index:0}
.prog-chip{isolation:isolate}
.prog-chip i{z-index:-1}
/* Transition Readiness */
:root{--s1:#2a78d6;--s2:#eb6834;--s3:#1baf7a;--s4:#eda100;--s5:#e87ba4;--ok:#2F7D4F;--bad:#B4321F}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--ok:#5cc28a;--bad:#F59A8C}}
:root[data-theme="dark"]{--s1:#3987e5;--s2:#d95926;--s3:#199e70;--s4:#c98500;--s5:#d55181;--ok:#5cc28a;--bad:#F59A8C}
.rd-verdict{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:18px 20px;border-radius:var(--r);border:1px solid var(--line);background:var(--card);margin-bottom:16px;border-left:6px solid var(--muted)}
.rd-verdict.ready{border-left-color:var(--ok)}
.rd-verdict.notyet{border-left-color:var(--orange)}
.rd-verdict h2{margin:2px 0 4px;font:600 28px/1.1 var(--serif,Georgia,serif);color:var(--heading)}
.rd-verdict p{margin:0;color:var(--slate)}
.rd-kicker{font-size:12px!important;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)!important}
.rd-vside{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.rd-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-bottom:16px}
.rd-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;display:grid;gap:4px;border-top:4px solid var(--line)}
.rd-card.green{border-top-color:var(--ok)}.rd-card.red{border-top-color:var(--bad)}
.rd-card header{display:flex;align-items:center;gap:8px}
.rd-card h3{margin:0;font-size:14px;color:var(--heading);flex:1}
.rd-st{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;background:var(--card-2);color:var(--muted)}
.rd-card.green .rd-st{background:var(--ok);color:#fff}.rd-card.red .rd-st{background:var(--bad);color:#fff}
.rd-stl{font-size:12px;color:var(--muted)}
.rd-val{margin:4px 0 0;font:600 26px/1.15 var(--serif,Georgia,serif);color:var(--ink);font-variant-numeric:tabular-nums}
.rd-tgtl{margin:0;font-size:13px;color:var(--slate)}
.rd-card .mono{margin:2px 0 0}
.rd-spark{width:100%;height:36px;margin-top:4px}
.rd-spark path{fill:none;stroke:var(--s1);stroke-width:2;stroke-linejoin:round}
.rd-spark circle{fill:var(--s1)}
.rd-spark .rd-tgt{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 3}
.rd-chart{width:100%;height:auto;display:block}
.rd-grid{stroke:var(--line);stroke-width:1}.rd-grid.zero{stroke:var(--line-strong)}
.rd-ax{fill:var(--muted);font-size:11px;font-family:inherit}
.rd-tl{fill:var(--slate);font-weight:600}
.rd-bar .rd-hit{fill:transparent}
.rd-bar:hover .rd-hit{fill:var(--card-2)}
.rd-bar rect.base{fill:var(--s1)}.rd-bar rect.ok{fill:var(--ok)}.rd-bar rect.neg{fill:var(--bad)}
.rd-bar.prog rect:not(.rd-hit){opacity:.45}
.rd-target{stroke:var(--heading);stroke-width:2;stroke-dasharray:6 4}
.rd-legend{display:flex;flex-wrap:wrap;gap:14px;margin:6px 0 4px;font-size:13px;color:var(--slate)}
.rd-legend i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.rd-tablewrap{overflow-x:auto}
.rd-table{width:100%;border-collapse:collapse;font-size:13.5px;font-variant-numeric:tabular-nums}
.rd-table th,.rd-table td{padding:8px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
.rd-table th:first-child,.rd-table td:first-child{text-align:left}
.rd-table thead th{font-size:12px;color:var(--muted);font-weight:600}
.rd-table td.good{color:var(--ok)}.rd-table td.bad{color:var(--bad)}
.rd-conn td,.rd-conn th{text-align:left;white-space:normal}
.rd-cact{display:flex;gap:6px;justify-content:flex-end;flex-wrap:wrap}
.rd-raw summary{cursor:pointer;font-weight:600;color:var(--heading)}
.rd-settings h3{font-size:14px;margin:18px 0 8px;color:var(--heading)}
.rd-settings h3 .hint{font-weight:400}
.rd-sal{display:flex;gap:8px;align-items:center;margin-bottom:6px;flex-wrap:wrap}
.rd-sal .rd-role{flex:2 1 220px}.rd-sal .rd-amt{flex:1 1 120px;max-width:180px}
.rd-set-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px;margin:12px 0}
.rd-set-grid label{display:grid;grid-template-rows:1fr auto;align-items:end;gap:4px;font-size:12.5px;font-weight:600;color:var(--slate)}
.rd-set-grid input,.rd-set-grid select{height:36px;box-sizing:border-box}
.rd-acc{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin-bottom:8px}
.rd-acc summary{cursor:pointer;font-weight:600}
.rd-acc ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:4px}
.rd-acc .chk{font-weight:400}
.rd-people{display:flex;flex-wrap:wrap;gap:8px 18px}
.rd-foot{margin-top:8px}
@media (max-width:1499px){nav.tabs button{padding:8px 9px;font-size:14px}.tab-x{display:none}}
.rd-ax{font-size:13px}
.rd-legend i.lg-ok{background:var(--ok)}.rd-legend i.lg-base{background:var(--s1)}.rd-legend i.lg-prog{background:var(--s1);opacity:.45}
.rd-legend i.lg-line{height:0;border-top:2px dashed var(--heading);border-radius:0;width:18px;vertical-align:3px}
.rd-acc li{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px}
.rd-prio{font-size:12px;color:var(--slate)}
/* Financials */
.fin-bar{display:flex;flex-wrap:wrap;align-items:end;gap:10px 16px;margin:0 0 16px}
.fin-bar label{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--slate)}
.fin-bar select{height:36px;min-width:150px}
.fin-close{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.fin-pull{margin-left:auto}
.chip.ok{background:var(--green-tint);color:var(--green-text)}
.chip.warn{background:var(--amber-tint);color:var(--amber-text)}
.fin-close .chip:not(.ok):not(.warn),.fin-tags .chip:not(.ok):not(.warn){background:var(--navy-tint);color:var(--heading)}
.fin-tags{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 10px}
.fin-tools{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 10px}
.fin-tools .seg{height:34px}
.fin-d{font-size:11px;margin-left:4px}.fin-d.up{color:var(--ok)}.fin-d.down{color:var(--bad)}
.rd-table tr.tot th,.rd-table tr.tot td{font-weight:700;border-top:1.5px solid var(--heading)}
.rd-table tr.sub th,.rd-table tr.sub td{color:var(--muted);font-size:12.5px}
.rd-table tr.muted th,.rd-table tr.muted td{color:var(--muted)}
.pill{font-size:10.5px;font-weight:600;color:var(--blue-text);background:var(--blue-tint);border-radius:999px;padding:1px 6px;margin-left:4px}
.rd-table td svg{vertical-align:middle}
@media (max-width:700px){.fin-pull{margin-left:0}}
/* Cash forecast & Collections */
.fin-nav{margin:0 0 14px;height:38px}
.cash-t th,.cash-t td{font-size:12.5px;padding:7px 8px}
.cash-t tbody th{min-width:180px}
.cash-notes{margin:8px 0 0;padding-left:18px;display:grid;gap:4px}
.cash-set .cs-ns{display:flex;align-items:center;gap:8px;font-weight:600;align-self:end;height:36px}
.cash-rows{display:grid;gap:8px;margin:8px 0}
.cash-row{display:grid;grid-template-columns:90px minmax(140px,1fr) 130px 200px 150px 32px;gap:8px;align-items:center}
.cash-rows[data-k="oneoffs"] .cash-row{grid-template-columns:90px minmax(140px,1fr) 130px 150px 32px}
.cash-row input,.cash-row select{height:34px;min-width:0}
.ar-bar{width:100%;height:28px;display:block;margin:6px 0 8px}
.ar-legend{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px;font-size:12.5px;color:var(--slate)}
.ar-legend .sw{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:6px;vertical-align:-1px}
.ar-t details summary{cursor:pointer}.ar-t details summary .mono{margin-left:6px}
.ar-invs{margin:6px 0 2px;padding-left:16px;font-weight:400}
@media (max-width:760px){.cash-row,.cash-rows[data-k="oneoffs"] .cash-row{grid-template-columns:1fr 1fr}.cash-row .dep-x{justify-self:end}}
.rd-legend i.lg-neg{background:var(--bad)}
/* receivables age colors: green / yellow / orange / red / dark red */
:root{--age1:#2e9d5b;--age2:#e2b007;--age3:#ec7a1c;--age4:#d63a2a;--age5:#7f1d16}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--age1:#46b978;--age2:#e8c13a;--age3:#f08a33;--age4:#ee5a47;--age5:#b0281c}}
:root[data-theme="dark"]{--age1:#46b978;--age2:#e8c13a;--age3:#f08a33;--age4:#ee5a47;--age5:#b0281c}
.ar-seg{cursor:pointer;transition:opacity .15s}.ar-seg.dim{opacity:.3}.ar-seg:hover{opacity:.85}
.ar-legend{gap:6px 8px}
.ar-lg{border:1px solid var(--line);background:var(--card);color:var(--slate);border-radius:999px;padding:4px 10px;font:inherit;font-size:12.5px;cursor:pointer}
.ar-lg.on{border-color:var(--heading);color:var(--heading);box-shadow:0 0 0 1px var(--heading)}.ar-lg.dim{opacity:.55}
.age-chip{display:inline-block;padding:1px 8px;border-radius:999px;font-size:11.5px;font-weight:700;color:#fff;white-space:nowrap}
.age-chip.age-a60{color:#2b2100}
.th-sort{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;font-weight:600}.th-sort.on{color:var(--heading)}
.ar-t td.sel{background:var(--navy-tint)}
/* Collection notices */
.nt-card{border:1px solid var(--line);border-radius:12px;padding:14px 16px;margin:0 0 12px;display:grid;gap:10px;background:var(--card)}
.nt-card header{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.nt-card label{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--slate)}
.nt-card input,.nt-card textarea{font:inherit;font-size:14px;width:100%;box-sizing:border-box}
.nt-card textarea{min-height:200px;line-height:1.5}
.nt-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.nt-row input{max-width:320px}
.nt-set summary{cursor:pointer;list-style:none}.nt-set summary h2{display:inline}
.nt-set fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 14px;margin:10px 0}
.nt-set fieldset label{display:grid;gap:4px;font-size:12.5px;font-weight:600;color:var(--slate);margin:6px 0}
.nt-set textarea,.nt-set input{font:inherit;width:100%;box-sizing:border-box}
.nt-att{margin:12px 0;font-weight:600}
.ar-job{display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end;margin:10px 0 4px;padding:10px;border:1px dashed var(--line);border-radius:10px;font-weight:400}
.ar-job label{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--slate)}
.ar-job .mono{flex-basis:100%;order:-1}
.ar-claim{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px 14px;align-items:end;border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin:0}
.ar-claim legend{font-size:12px;font-weight:700;color:var(--slate);padding:0 4px}
.ar-claim label{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--slate)}
.ar-claim .mono{flex-basis:100%;order:0;margin:0}
.ar-claim input,.ar-claim select{width:160px}
.age-chip.age-a90,.age-chip.age-a90p{color:#fff}
.ar-name{border:0;background:none;padding:0;font:inherit;font-weight:700;color:var(--heading);cursor:pointer;text-align:left}
.ar-t tr.ar-detail td{text-align:left;white-space:normal;background:var(--navy-tint)}

.acc-roles label{white-space:nowrap}.acc-eff{margin-top:4px;max-width:340px;white-space:normal}
.acc-pos{display:grid;gap:4px;font-size:14px}.acc-posrow{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}.acc-co{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;font-size:13px}.acc-co[hidden]{display:none}
.acc-break{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 22px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13.5px}
.acc-grp ul{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:3px}.acc-grp li{overflow-wrap:anywhere}.acc-off{color:var(--muted);text-decoration:line-through}
.chip.acc-add{background:#e3f1e6;color:#1f6b3a}.chip.acc-rem{background:#fbe6e0;color:#a33a1c}
.acc-adj{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}.acc-adjlist{list-style:none;margin:6px 0;padding:0;display:grid;gap:8px;font-size:14px}.acc-adjlist li{display:flex;flex-wrap:wrap;gap:4px 8px;align-items:baseline}
.acc-reason{flex-basis:100%;color:var(--slate);font-size:13px}.acc-adjform{display:grid;gap:10px;margin-top:8px;max-width:760px}.acc-adjform fieldset{border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;flex-wrap:wrap;gap:6px 16px}
.acc-adjform legend{font-size:12px;font-weight:700;color:var(--slate);padding:0 4px}.acc-why{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--slate)}.acc-who{min-width:110px}
.acc-adjform select,.acc-adjform input[type=date]{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit}
.acc-item{border:1px solid var(--line);border-radius:10px;padding:8px 12px;margin:8px 0}.acc-item>summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}
.acc-form{display:grid;gap:10px;margin-top:10px}.acc-form fieldset{border:1px solid var(--line);border-radius:8px;padding:6px 10px;display:flex;flex-wrap:wrap;gap:6px 16px}
.acc-form legend{font-size:12px;font-weight:700;color:var(--slate);padding:0 4px}.acc-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.acc-grid label{display:grid;gap:3px;font-size:12px;font-weight:600;color:var(--slate)}.acc-team{max-width:480px}
details.section.acc>summary{cursor:pointer}details.section.acc>summary h2{display:inline}

.dl-btns{display:inline-flex;gap:6px;flex-wrap:wrap}.jobs-table td.neg{color:var(--danger,#b42318)}.jobs-table tr.muted th,.jobs-table tr.muted td{color:var(--slate)}
.job-detail h3{margin:12px 0 4px;font-size:13px}.job-detail .rd-table{font-size:12px}.chip.on{outline:2px solid currentColor}
.job-detail th,.job-detail td{text-align:left}.job-detail th:last-child,.job-detail td:last-child{text-align:right}

#viewas-bar{position:sticky;top:0;z-index:60;background:#111418;color:#fff;padding:8px 16px;display:flex;align-items:center;gap:12px;font-size:14px;flex-wrap:wrap}
#viewas-bar select{background:#111418;color:#fff;border:1px solid #9aa4b2;border-radius:4px;padding:5px 8px;min-width:220px}
#viewas-bar .btn{margin-left:auto;background:#2a2f36;color:#fff;border-color:#4a525d}#viewas-bar .va-note{color:#f5b78e;font-size:12px;font-weight:600}
.who-menu{position:relative}.who-btn{display:flex;align-items:center;gap:6px;border:0;background:none;font:inherit;color:inherit;cursor:pointer;padding:4px 6px;border-radius:8px}
.who-btn:hover{background:var(--navy-tint)}.who-dd{position:absolute;right:0;top:calc(100% + 6px);background:var(--card,#fff);border:1px solid var(--line);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.15);min-width:170px;padding:6px;z-index:70;display:grid}
.who-dd button{border:0;background:none;text-align:left;padding:8px 12px;border-radius:6px;font:inherit;color:inherit;cursor:pointer}.who-dd button:hover{background:var(--navy-tint)}
.rd-table td.txt{text-align:left;white-space:nowrap}
.jobs-table thead th:nth-child(-n+6),.ar-t thead th:nth-child(-n+2){text-align:left}.jobs-table thead th:nth-child(-n+6) .th-sort,.ar-t thead th:nth-child(-n+2) .th-sort{text-align:left}
.jobs-table{font-size:13px}.jobs-table th,.jobs-table td{padding:6px 7px}.jobs-table thead th{white-space:normal;vertical-align:bottom;line-height:1.2}
.jobs-table tbody th{position:sticky;left:0;background:var(--card);z-index:1}.jobs-table td.txt{white-space:nowrap}.jobs-table td:last-child{white-space:nowrap}
.jobs-table .sub{font-size:12px;color:var(--muted);font-weight:400;margin-top:2px}.jobs-table tbody th .sub{padding-left:14px}.jobs-table .th2 .th-sort{padding:0}
table[data-resize] thead th{position:relative}
.col-grip{position:absolute;top:0;right:-3px;width:7px;height:100%;cursor:col-resize;z-index:2;touch-action:none}
.col-grip::after{content:'';position:absolute;top:25%;bottom:25%;left:3px;width:1px;background:var(--line)}
.col-grip:hover::after,table.resizing .col-grip::after{background:var(--slate);width:2px}
table.sized td,table.sized tbody th{overflow:hidden;text-overflow:ellipsis}table.resizing{user-select:none}
.job-detail{width:600px;overflow-x:auto}.job-detail .rd-table{table-layout:fixed;width:100%;min-width:860px}
.job-detail col.c-date{width:108px}.job-detail col.c-type{width:110px}.job-detail col.c-num{width:100px}.job-detail col.c-name{width:230px}.job-detail col.c-acct{width:200px}.job-detail col.c-amt{width:110px}
.job-detail tr.acct-head th{font-size:11px;font-weight:600;color:var(--muted);padding-top:6px;padding-left:22px}.job-detail tr.acct-head th~th{padding-left:6px}
.job-detail td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.job-detail td.memo-cell{text-overflow:clip}
.job-detail .memo{overflow-x:auto;white-space:nowrap;scrollbar-width:thin;padding-bottom:2px}
.job-detail tr.acct-row td{background:var(--card-2);border-top:1px solid var(--line)}.job-detail tr.acct-row .ar-name{font-weight:600}
.job-detail tr.acct-line td:first-child{padding-left:22px}.job-detail tr[hidden],.job-detail table[hidden]{display:none}.job-detail h3 .ar-name{font-size:13px;font-weight:700}
.job-detail .row-btns{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.clipd{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}table.sized .clipd{max-width:none}
.fin-bar select[data-act=jobtype]{max-width:240px}

/* ---------- Kanban board ---------- */
.layout > .content{min-width:0} /* lets the board scroll inside the page instead of widening it */
#list.kb-mode{padding-left:0} /* no row checkboxes on the board */
.kb-hint{margin:0 0 8px}
.kb-board{display:flex;gap:12px;align-items:flex-start;overflow-x:auto;padding-bottom:12px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.kb-col{flex:0 0 280px;max-width:86vw;background:var(--card-2);border:1px solid var(--line);border-radius:var(--r);display:flex;flex-direction:column;max-height:calc(100vh - 220px);scroll-snap-align:start;transition:border-color .12s,box-shadow .12s}
.kb-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 8px;border-bottom:3px solid var(--line-strong);border-radius:var(--r) var(--r) 0 0}
.kb-head.s-InProgress{border-bottom-color:var(--blue)}
.kb-head.s-Waiting{border-bottom-color:var(--orange)}
.kb-head.s-Hold{border-bottom-color:var(--muted)}
.kb-head.s-Complete{border-bottom-color:var(--green-text)}
.kb-head h2{margin:0;font-size:.74rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--slate)}
.kb-head .n{font-weight:600;color:var(--muted);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:0 8px;font-size:11px}
.kb-cards{display:grid;gap:8px;padding:10px;overflow-y:auto;min-height:60px}
.kb-empty{margin:6px 0;text-align:center;font-size:12.5px;color:var(--muted)}
.kb-card{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--line-strong);border-radius:var(--r-sm);padding:9px 10px;display:grid;gap:6px;transition:border-color .12s,box-shadow .12s}
.kb-card[data-movable]{cursor:grab;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.kb-card[data-movable] .kb-title{cursor:pointer}
.kb-ghost{position:fixed;left:0;top:0;z-index:60;pointer-events:none;margin:0;box-shadow:0 18px 40px -12px rgba(23,42,66,.45);opacity:.95}
body.kb-grabbing,body.kb-grabbing *{cursor:grabbing!important}
.kb-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow)}
.kb-card.p-High{border-left-color:var(--orange)}
.kb-card.p-Medium{border-left-color:var(--blue)}
.kb-card.done{opacity:.6}.kb-card.done .kb-title{text-decoration:line-through}
.kb-card.hold{border-style:dashed}
.kb-card.kb-dragging{opacity:.35}
.kb-title{all:unset;cursor:pointer;font-weight:600;font-size:14px;line-height:1.3;color:var(--ink);overflow-wrap:anywhere}
.kb-title:hover{color:var(--blue-text);text-decoration:underline}
.kb-title:focus-visible{outline:2px solid var(--blue);outline-offset:2px;border-radius:3px}
.kb-parent{font-size:12px;color:var(--muted);font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.kb-meta{display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.kb-meta .chip{height:20px;font-size:11px;padding:0 7px}
.kb-st{background:var(--card-2);color:var(--slate)}
.kb-due{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;margin-left:auto;white-space:nowrap}
.kb-due.over{color:var(--hot-text);font-weight:700}
.kb-due.today{color:var(--orange);font-weight:600}
.kb-sub{display:flex;flex-wrap:wrap;gap:4px 10px;font-size:12px;color:var(--muted)}
.kb-sub span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.kb-flags{display:flex;flex-wrap:wrap;gap:4px 10px}.kb-flags .flag{font-size:11.5px}
.kb-prog{height:4px;border-radius:2px;background:var(--line);overflow:hidden}.kb-prog i{display:block;height:100%;background:var(--blue)}
.kb-board.kb-on .kb-col{border-style:dashed}
.kb-board.kb-on{scroll-snap-type:none} /* snapping would undo the edge auto-scroll while dragging */
.kb-col.kb-over{border:2px solid var(--orange);box-shadow:0 0 0 3px rgba(232,119,34,.15)}
@media (max-width:620px){.kb-col{flex-basis:84vw;max-height:none}.kb-cards{overflow:visible}}
/* Notices: tabs, collapsible drafts, grouped settings */
.nt-bar[hidden]{display:none}
.nt-tabs{display:flex;gap:4px;margin:0 0 16px;border-bottom:1px solid var(--line);overflow-x:auto}
.nt-tabs button{flex:none;white-space:nowrap;background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px;padding:10px 12px;font-weight:600;font-size:14px;color:var(--muted);cursor:pointer}
.nt-tabs button:hover{color:var(--heading)}
.nt-tabs button[aria-pressed="true"]{color:var(--heading);border-bottom-color:var(--orange,#DE692C)}
.fin-nav+.nt-tabs{margin-top:14px}
.nt-n{font-weight:600;color:var(--muted);font-size:12px}
.tab-badge.warn{background:var(--hot-text)}
.nt-bar .mono{flex:1 1 260px;margin:0 0 8px}
.nt-tools{margin-left:auto;font-size:12.5px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--muted)}
.nt-tools .linkish{font-size:12.5px}
.nt-tip{margin:-4px 0 10px}
details.nt-card{padding:0;gap:0}
details.nt-card>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:12px 16px;border-radius:12px}
details.nt-card>summary::-webkit-details-marker,.nt-grp>summary::-webkit-details-marker,.nt-sub>summary::-webkit-details-marker{display:none}
details.nt-card>summary:hover{background:var(--card-2)}
details.nt-card[open]>summary{border-bottom:1px solid var(--line);border-radius:12px 12px 0 0}
details.nt-card>summary .mono{margin:0}
.nt-amt{font-weight:700;font-variant-numeric:tabular-nums;color:var(--heading)}
.nt-body{display:grid;gap:10px;padding:14px 16px}
.nt-grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.nt-caret{flex:none;width:12px;color:var(--muted);transition:transform .15s}
.nt-caret::before{content:"\25B8"}
details[open]>summary>.nt-caret{transform:rotate(90deg)}
.nt-mailcard header .mono{margin:0}
.nt-grp>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:4px 12px}
.nt-grp>summary h2{margin:0}
.nt-grp>summary .mono{margin:0;font-size:12.5px}
.nt-grp[open]>summary{margin-bottom:12px}
.nt-sub{border:1px solid var(--line);border-radius:10px;margin:8px 0;background:var(--card)}
.nt-sub>summary{list-style:none;cursor:pointer;display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;padding:10px 14px}
.nt-sub>summary .mono{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.nt-sub>summary:hover{background:var(--card-2);border-radius:10px}
.nt-set .nt-sub fieldset{border:0;border-top:1px solid var(--line);border-radius:0;margin:0;padding:10px 14px}
.nt-fields{font-size:12px;margin:0 0 6px;overflow-wrap:anywhere}
.nt-savebar{position:sticky;bottom:0;z-index:2;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:8px 16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 16px;box-shadow:var(--shadow)}
.nt-savebar .nt-att{margin:0}
@media (max-width:640px){details.nt-card>summary{padding:10px 12px}.nt-body{padding:12px}.nt-savebar{padding:10px 12px}}

/* ================= Redesign (layout): left sidebar, company chips, one-line task rows ================= */
/* Sidebar. Only pages that load the app shell have body.has-rail; sign-in/error pages keep the simple header. */
body.has-rail{--rail-w:232px;--rail-bg:#172A42;--rail-ink:#FFFFFF;--rail-dim:#9FB0C6;--rail-line:#33507A;--rail-on:#2B4670;--rail-head:#F08A4B;padding-left:var(--rail-w)}
body.has-rail.signed-out{padding-left:0}
body.has-rail.signed-out .rail,body.has-rail.signed-out .hdr{display:none}
.rail{position:fixed;inset:0 auto 0 0;width:var(--rail-w);z-index:20;background:var(--rail-bg);color:var(--rail-ink);display:flex;flex-direction:column;gap:20px;padding:calc(20px + env(safe-area-inset-top,0px)) 14px calc(14px + env(safe-area-inset-bottom,0px));overflow-y:auto;box-sizing:border-box}
:root[data-theme="dark"] .rail{background:#12233A;border-right:1px solid var(--line)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .rail{background:#12233A;border-right:1px solid var(--line)}}
.rail-brand{display:flex;align-items:center;gap:12px;padding:0 4px;color:var(--rail-ink);text-decoration:none}
.rail-brand img{width:44px;height:44px;border-radius:10px;flex:none}
.rail-name{display:inline-flex;flex-direction:column;font-family:var(--serif);font-weight:600;font-size:18px;line-height:1.15}
.rail-just{display:flex;justify-content:space-between}
.rail-just i,.rail-sub i{font-style:normal}
.rail-sub{display:flex;justify-content:space-between;margin:-8px 4px 0;padding-bottom:10px;border-bottom:2px solid var(--orange);font-size:11px;font-weight:700;text-transform:uppercase;color:var(--rail-dim)}
.rail-sub .sp{width:4px}
.rail-nav{display:flex;flex-direction:column;gap:18px}
.rail-group{display:flex;flex-direction:column;gap:2px}
.rail-head{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rail-head);padding:0 12px 6px}
.rail-nav button,.rail-item{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-height:42px;padding:0 12px;border:0;border-radius:8px;background:none;color:var(--rail-ink);font:600 15px/1.2 var(--sans);text-align:left;cursor:pointer}
.rail-nav button:hover,.rail-item:hover{background:rgba(255,255,255,.08)}
.rail-nav button[aria-selected="true"],.rail-item[aria-pressed="true"],.rail-item[aria-expanded="true"]{background:var(--rail-on)}
.rail :focus-visible{outline-color:var(--rail-head)}
.rail .tab-badge{margin-left:0}
.rail-foot{margin-top:auto;position:relative;border-top:1px solid var(--rail-line);padding-top:12px}
#who{display:flex;flex-direction:column;align-items:stretch;gap:2px}
.rail .ai-btn{height:auto;border-radius:8px;border:0;background:none;color:var(--rail-ink);font:600 15px/1.2 var(--sans);justify-content:flex-start;padding:0 12px}
.rail .ai-btn span{display:inline}
.rail .ai-btn:hover,.rail .ai-btn[aria-pressed="true"]{color:var(--rail-ink)}
.rail .bell{width:100%;height:auto;border:0;border-radius:8px;background:none;color:var(--rail-ink);place-items:initial}
.rail .bell:hover,.rail .bell[aria-expanded="true"]{color:var(--rail-ink)}
.rail .bell-badge{position:static;margin-left:auto}
.rail .bell-dd{position:fixed;left:calc(var(--rail-w) + 8px);right:auto;top:auto;bottom:16px;color:var(--ink)}
.rail-user{position:relative;display:flex;align-items:center;gap:8px;margin-top:8px;padding-right:40px}
.rail .who-btn{display:flex;align-items:center;gap:10px;min-width:0;flex:1;padding:6px 8px;border:0;border-radius:8px;background:none;color:var(--rail-ink);font:inherit;text-align:left}
.rail button.who-btn{cursor:pointer}
.rail button.who-btn:hover{background:rgba(255,255,255,.08)}
.rail-av{flex:none;width:32px;height:32px;border-radius:50%;background:var(--orange);color:#172A42;font-weight:700;font-size:13px;display:grid;place-items:center}
.rail .who-text{display:flex;flex-direction:column;min-width:0;line-height:1.3}
.rail .who-text span{font-weight:600;font-size:14px;color:var(--rail-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rail .who-text em,.rail .who-text small{font-style:normal;font-size:12px;color:var(--rail-dim);font-variant-numeric:tabular-nums}
.rail .who-dd{top:auto;bottom:calc(100% + 6px);left:0;right:auto;color:var(--ink)}
.rail-out{border:1px solid var(--rail-line);background:none;color:var(--rail-ink);border-radius:999px;padding:6px 10px;font:600 12px var(--sans);cursor:pointer;white-space:nowrap}
.rail .theme-btn{position:absolute;right:4px;bottom:8px;background:none;border-color:var(--rail-line);color:var(--rail-ink)}
.rail .theme-btn:hover{border-color:var(--rail-ink);color:var(--rail-ink)}
.rail-scrim{display:none}
body.has-rail .hdr{display:none}
body.has-rail main.wrap{padding-block:28px 56px;padding-inline:32px}
body.has-rail #main.wide{max-width:1320px}
body.has-rail .side{top:24px;max-height:calc(100vh - 48px)}
body.has-rail #ai-panel{top:16px}
body.has-rail #viewas-bar{margin-left:0}
@media (max-width:900px){
  body.has-rail{padding-left:0}
  body.has-rail .hdr{display:flex;align-items:center;gap:10px;min-height:56px;padding:env(safe-area-inset-top,0px) 12px 0;background:#172A42;border-bottom:0}
  .rail-open-btn{width:44px;height:44px;display:grid;place-items:center;border:0;border-radius:8px;background:none;color:#FFFFFF;cursor:pointer}
  .hdr-title{font-family:var(--serif);font-weight:600;font-size:18px;color:#FFFFFF;text-decoration:none}
  .rail{left:calc(-1 * var(--rail-w) - 60px);width:min(280px,86vw);z-index:50;transition:left .18s ease}
  body.rail-open .rail{left:0}
  body.rail-open .rail-scrim{display:block;position:fixed;inset:0;z-index:45;border:0;background:var(--overlay)}
  .rail .bell-dd{left:8px;right:8px;bottom:8px;width:auto}
  body.has-rail main.wrap{padding-inline:16px;padding-block:20px 56px}
}
@media (prefers-reduced-motion:reduce){.rail{transition:none}}

/* Tasks: company chips */
.co-chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:16px}
.co-chip{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 14px;border-radius:999px;border:1px solid var(--line-strong);background:var(--card);color:var(--heading);font:700 14px var(--sans);cursor:pointer}
.co-chip b{font-weight:600;opacity:.8;font-variant-numeric:tabular-nums}
.co-chip:hover{border-color:var(--heading)}
.co-chip[aria-pressed="true"]{background:var(--navy);border-color:var(--navy);color:#FFFFFF}
.tree-btn[aria-pressed="true"]{background:var(--navy-tint);border-color:var(--line-strong)}
.layout.no-side{grid-template-columns:minmax(0,1fr)}
.layout.no-side>.side{display:none}

/* Tasks: stat shortcuts as one compact row */
.gauges{display:flex;flex-wrap:wrap;gap:8px}
.gauge{flex-direction:row;align-items:baseline;gap:8px;padding:8px 14px;box-shadow:none;cursor:pointer}
.gauge b{font-family:var(--sans);font-weight:700;font-size:1.15rem}
.gauge[aria-pressed="true"]{border-color:var(--heading);box-shadow:0 0 0 1px var(--heading)}

/* Tasks: one-line rows with aligned columns, grouped in a single card */
.group{background:var(--card);border:1px solid var(--line);border-radius:var(--r);margin-bottom:20px}
.group h2{margin:0;padding:12px 20px 10px;background:var(--card-2);border-bottom:1px solid var(--line);border-radius:var(--r) var(--r) 0 0;display:flex;justify-content:space-between;align-items:center}
.task{display:grid;grid-template-columns:minmax(0,1fr) 56px 76px 52px 132px 168px;gap:12px;align-items:center;margin:0;padding:8px 20px;min-height:56px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:none;box-shadow:none}
.group .task:last-child{border-bottom:0;border-radius:0 0 var(--r) var(--r)}
.task:hover{box-shadow:none;background:var(--card-2)}
.task.hold{border-style:solid}
.t-main{gap:2px}
.t-title{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.t-meta{gap:2px 10px;min-height:22px}
.t-meta .chip{height:20px}
.t-meta .row-btn{height:24px;padding:0 8px;font-size:12px}
.t-proj{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:36ch}
.t-co{justify-self:start}
.t-own{display:flex;align-items:center;min-width:0}
.t-own i{flex:none;width:30px;height:30px;border-radius:50%;background:var(--navy-tint);color:var(--heading);font:700 11.5px var(--sans);display:grid;place-items:center;border:2px solid var(--card);margin-left:-8px}
.t-own i:first-child{margin-left:0}
.t-own i.none{background:none;border:1px dashed var(--danger);color:var(--danger)}
.t-own-names{display:none}
.t-est{text-align:right;font-size:13.5px;color:var(--slate);font-variant-numeric:tabular-nums;white-space:nowrap}
.t-due{justify-self:start;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.t-side{justify-content:flex-end}
.t-side select.status{max-width:100%;width:100%}
.task .note{margin-top:4px;max-height:3.1em;overflow:hidden}
.task.nested{margin-left:0;padding-left:48px;padding-block:6px}
.task.nested::before{left:28px;top:0;bottom:50%}
.t-sel{left:-28px;top:50%;transform:translateY(-50%)}
@media (max-width:1100px){
  .task{grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"main main main main" "co own due side";row-gap:8px;padding:12px 16px}
  .t-main{grid-area:main}.t-co{grid-area:co}.t-own{grid-area:own}.t-due{grid-area:due;justify-self:end}.t-side{grid-area:side}
  .t-est{display:none}
  .t-title{white-space:normal}
  .t-own-names{display:inline;margin-left:8px;font-size:13px;color:var(--muted)}
  .t-side select.status{width:auto}
  .task.nested{padding-left:32px}.task.nested::before{left:14px}
  .t-sel{left:-22px}
}
@media (max-width:620px){
  .task{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"main main" "co own" "due side";gap:8px}
  .t-due{justify-self:start}
  .t-own i:not(:first-child){display:none}
}
.rail .bell{display:flex}
.attention{border-left:1px solid var(--line);box-shadow:none}

/* Team & access: summary cards, one line per person (open a person to manage them) */
.tm-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin-bottom:16px}
.tm-card{margin:0}
.tm-card h2{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tm-big{font-size:1.6rem;font-weight:700;color:var(--ink)!important;font-variant-numeric:tabular-nums;margin:4px 0!important}
.tm-locks{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px;font-size:14px}
.tm-locks li{display:flex;gap:10px;align-items:center}
.roster{padding:0;overflow:visible}
.roster>h2{padding:16px 20px 0}
.tm-head,.tm-person>summary{display:grid;grid-template-columns:minmax(180px,1.1fr) minmax(120px,1fr) minmax(160px,1.6fr) 170px 76px;gap:16px;align-items:center;padding:10px 20px}
.tm-head{font-size:12.5px;font-weight:600;color:var(--muted);border-bottom:1px solid var(--line)}
.tm-person{border-bottom:1px solid var(--line)}
.tm-person:last-child{border-bottom:0}
.tm-person>summary{min-height:60px;cursor:pointer;list-style:none;font-size:14px;color:var(--slate)}
.tm-person>summary::-webkit-details-marker{display:none}
.tm-person>summary:hover,.tm-person[open]>summary{background:var(--card-2)}
.tm-who{display:flex;align-items:center;gap:12px;min-width:0}
.tm-who strong{display:block;color:var(--ink);font-size:15px}
.tm-who small{display:block;color:var(--muted);font-size:13px}
.tm-av{flex:none;width:36px;height:36px;border-radius:50%;background:var(--navy-tint);color:var(--heading);font:700 13px var(--sans);font-style:normal;display:grid;place-items:center}
.tm-seen{font-variant-numeric:tabular-nums}
.tm-seen.pending{color:var(--amber-text);font-weight:600}
.tm-manage{justify-self:end;display:inline-flex;align-items:center;height:32px;padding:0 12px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--card);color:var(--heading);font-weight:600;font-size:13px}
.tm-person[open] .tm-manage{background:var(--navy-tint)}
.tm-edit{display:grid;gap:14px;padding:16px 20px 20px;border-top:1px solid var(--line)}
.tm-edit input[type=text],.tm-edit input[type=email]{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card)}
.tm-lab{font-size:12px;font-weight:700;color:var(--slate)}
.tm-flags{display:flex;flex-wrap:wrap;gap:8px 20px;font-size:14px}
.tm-edit .acc-eff{max-width:none}
@media (max-width:1100px){
  .tm-head{display:none}
  .tm-person>summary{grid-template-columns:minmax(0,1fr) auto;row-gap:4px}
  .tm-roles,.tm-sees,.tm-seen{grid-column:1/-1;padding-left:48px}
  .tm-manage{grid-row:1;grid-column:2}
}
.rail .bell>span:first-child{flex:1;text-align:left}
details.section.acc,#aiBox{overflow-x:auto}
details.rd-settings>summary{margin-bottom:0}
details.rd-settings[open]>summary{margin-bottom:12px}

/* Projects on a phone: each project is a short card; filters sit behind one button */
.pf-btn,.pf-sort{display:none}
@media (max-width:760px){
  .pf-btn,.pf-sort{display:inline-flex}
  .pfilters select.pf-sort{display:block;flex:1 1 140px}
  .pfilters:not(.show) select:not(.pf-sort),.pfilters:not(.show) .seg{display:none}
  .pfilters.show select:not(.pf-sort){flex:1 1 100%}
  .ptable{min-width:0;display:block}
  .ptable thead{display:none}
  .ptable tbody{display:block}
  .ptable tr.prow{display:grid;grid-template-columns:minmax(0,1fr) auto auto;grid-template-areas:"name name co" "own own pri" "prog prog prog" "open over st" "next end act";gap:6px 12px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--line)}
  .ptable tr.prow:last-child{border-bottom:0}
  .ptable td{display:block;padding:0;border:0;white-space:normal;min-width:0}
  .ptable tr.prow:hover td,.ptable tr.child td{background:none}
  .ptable tr.child{background:var(--card-2);padding-left:32px}
  .ptable td.pname{grid-area:name;min-width:0;white-space:normal;font-size:15.5px}
  .ptable .pindent{display:none}
  .ptable .pn{white-space:normal}
  .ptable td.pc-co{grid-area:co;justify-self:end}
  .ptable td.pown{grid-area:own;max-width:none;font-size:13.5px}
  .ptable td.pc-pri{grid-area:pri;justify-self:end}
  .ptable td.pc-prog{grid-area:prog;display:flex;align-items:center;gap:10px}
  .ptable td.pc-prog .pbar{flex:1}
  .ptable td.pc-open{grid-area:open;text-align:left}
  .ptable td.pc-over{grid-area:over;text-align:left}
  .ptable td.pc-st{grid-area:st;justify-self:end;text-align:right}
  .ptable td.pc-next{grid-area:next}
  .ptable td.pc-end{grid-area:end}
  .ptable td.pact{grid-area:act;justify-self:end}
  .ptable td.pc-hide{display:none}
  .ptable td[data-l]:not(.pown)::before{content:attr(data-l) " ";color:var(--muted);font-weight:400}
  .ptable .caret[data-act="ptoggle"]{padding:12px;margin:-12px -6px -12px -12px}
}
.rail-nav a.tab-link{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:42px;padding:0 12px;border-radius:8px;color:var(--rail-ink);font:600 15px/1.2 var(--sans);text-decoration:none}
.rail-nav a.tab-link:hover{background:rgba(255,255,255,.08)}
/* team members have no menu on their name, so Sign out sits on its own line under it */
.rail-user{flex-wrap:wrap}
.rail-out{margin:0 0 4px 50px}
.rail-user>div.who-btn{flex:1 0 100%;box-sizing:border-box}

/* Financials › P&L: summary first */
.fin-sum{padding:24px}
.section h2.fs-head{display:block;font:600 1.7rem/1.2 var(--serif);color:var(--heading);margin:6px 0;letter-spacing:-.01em;text-transform:none}
.fs-line{margin:0 0 18px!important;color:var(--slate)!important;max-width:78ch!important}
.fs-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.fs-tile{background:var(--card-2);border-radius:10px;padding:14px 16px;display:grid;gap:2px}
.fs-l{font-size:13px;color:var(--muted)}
.fs-tile b{font-size:1.6rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2}
.fs-tile b.bad{color:var(--bad)}
.fs-d{font-size:12.5px;font-weight:600;color:var(--muted)}
.fs-d.up{color:var(--ok)}.fs-d.down{color:var(--bad)}
.fin-books ul{list-style:none;margin:8px 0 0;padding:0}
.fin-books li{display:grid;gap:2px;padding:10px 0;border-top:1px solid var(--line)}
.fin-books li strong{color:var(--ink);font-size:14.5px}
.fin-books li span{font-size:13px;color:var(--muted)}

/* Readiness: what the target is made of, and the gap on each test */
.rd-need dl{margin:8px 0 0;display:grid;gap:6px;max-width:460px;font-size:14px;font-variant-numeric:tabular-nums}
.rd-need dl div{display:flex;justify-content:space-between;gap:16px}
.rd-need dt{color:var(--slate)}.rd-need dd{margin:0;color:var(--ink)}
.rd-need .tot{border-top:1px solid var(--line-strong);padding-top:6px;font-weight:700}
.rd-need .tot dt{color:var(--ink)}
.rd-gap{margin:4px 0 0;font-size:13px;font-weight:600;color:var(--slate)}
.rd-gap.red{color:var(--bad)}.rd-gap.green{color:var(--ok)}

/* Task panel beside the list */
.layout.has-peek{grid-template-columns:272px minmax(0,1fr) 360px}
.layout.no-side.has-peek{grid-template-columns:minmax(0,1fr) 360px}
.peek{position:sticky;top:24px;max-height:calc(100vh - 48px);overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;display:grid;gap:14px;align-content:start}
.peek[hidden]{display:none}
.pk-top{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--muted)}
.pk-path{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pk-x{flex:none;width:36px;height:36px;margin:-8px -8px -8px 0;border:0;border-radius:8px;background:none;color:var(--slate);font-size:22px;line-height:1;cursor:pointer}
.pk-x:hover{background:var(--card-2);color:var(--heading)}
.pk-title{margin:0;font:600 1.15rem/1.3 var(--sans);color:var(--ink);letter-spacing:0;text-transform:none;overflow-wrap:anywhere}
.pk-flags{margin:0;display:flex;flex-wrap:wrap;gap:4px 10px}
.pk-facts{margin:0;display:grid;grid-template-columns:84px minmax(0,1fr);gap:8px 12px;align-items:center;font-size:14px}
.pk-facts dt{color:var(--muted)}
.pk-facts dd{margin:0;color:var(--ink);font-weight:600;min-width:0}
.pk-facts select.status{max-width:100%}
.pk-over,.pk-sub.over{color:var(--hot-text)}
.pk-sec h3{margin:0 0 6px;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.pk-deps{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:10px}
.pk-deps li{display:grid;gap:2px;padding:10px 12px;border-top:1px solid var(--line)}
.pk-deps li:first-child{border-top:0}
.pk-deps .linkish{text-align:left;font-weight:600;font-size:14px}
.pk-sub{font-size:13px;color:var(--muted)}
.pk-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding-top:4px}
.task.peeked{background:var(--navy-tint)}
/* the list reflows by its own width, so opening the panel (or the project tree) never squeezes the columns */
.layout>.content{container-type:inline-size}
@container (max-width:860px){
  .task{grid-template-columns:minmax(0,1fr) auto auto auto;grid-template-areas:"main main main main" "co own due side";row-gap:8px;padding:12px 16px}
  .t-main{grid-area:main}.t-co{grid-area:co}.t-own{grid-area:own}.t-due{grid-area:due;justify-self:end}.t-side{grid-area:side}
  .t-est{display:none}
  .t-title{white-space:normal}
  .t-own-names{display:inline;margin-left:8px;font-size:13px;color:var(--muted)}
  .t-side select.status{width:auto}
  .task.nested{padding-left:32px}.task.nested::before{left:14px}
}
@media (max-width:1100px){.layout.has-peek,.layout.no-side.has-peek{grid-template-columns:minmax(0,1fr)}.peek{display:none}}

/* Today (home) */
.td-urgent{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-bottom:16px}
.td-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px 20px;display:flex;flex-direction:column;gap:8px}
.td-why{margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;font-weight:700}
.td-why .bad,.td-sub .bad{color:var(--danger)}
.td-why .soon{color:var(--amber-text)}
.td-card h2{margin:0;font:600 1.1rem/1.3 var(--sans)}
.td-card h2 .linkish{font-size:inherit;color:var(--ink);text-align:left}
.td-sub{margin:0;font-size:13.5px;color:var(--muted)}
.td-warn{color:var(--danger)!important}
.td-acts{margin-top:auto;padding-top:6px;display:flex;flex-wrap:wrap;gap:8px}
.td-more{margin:-4px 0 16px}
.td-cols{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:16px;align-items:start;margin-bottom:16px}
.td-cols>.section,.td-stack>.section{margin:0}
.td-cols>.section:only-child{grid-column:1/-1}
.td-stack{display:grid;gap:16px}
.td-lead{margin:0 0 8px!important;color:var(--slate)!important;font-size:15px}
.td-lead strong{color:var(--ink)}
.td-list{list-style:none;margin:6px 0 0;padding:0}
.td-list li{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line);min-height:44px}
.td-main{flex:1;min-width:0;display:grid;gap:2px}
.td-main .linkish{text-align:left;font-size:14.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-est{flex:none;min-width:44px;text-align:right;font-size:13.5px;color:var(--slate);font-variant-numeric:tabular-nums}
.td-bar{width:100%;margin:2px 0 0}
.td-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin:0!important;padding-top:12px;border-top:1px solid var(--line);max-width:none!important}
.td-key{display:flex;gap:16px;margin:8px 0 6px!important;font-size:13px}
.td-key span{display:inline-flex;align-items:center;gap:6px}
.td-key i,.td-bars i{display:block;height:10px;border-radius:2px;background:var(--line-strong)}
.td-key i{width:10px}
.td-key i.late,.td-bars i.late{background:var(--orange-dk)}
.td-load ul{list-style:none;margin:0;padding:0}
.td-load li{display:grid;grid-template-columns:minmax(90px,150px) minmax(0,1fr) 124px;gap:12px;align-items:center;min-height:38px;border-top:1px solid var(--line);font-size:14px}
.td-n{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.td-bars{display:flex;gap:1px}
.td-c{text-align:right;color:var(--slate);font-variant-numeric:tabular-nums;white-space:nowrap}
.td-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px}
.td-tile{background:var(--card-2);border-radius:10px;padding:12px 14px;display:grid;gap:2px}
.td-tile b{font-size:1.25rem;font-weight:700;color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:900px){.td-cols{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.td-load li{grid-template-columns:minmax(0,1fr) 110px}.td-bars{grid-column:1/-1;grid-row:2}.td-tiles{grid-template-columns:minmax(0,1fr)}}
.td-group{list-style:none;margin:0;padding:0;display:grid;gap:4px;font-size:14px}
.td-group .linkish{font-weight:500;text-align:left;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
.td-card{min-width:0}
.td-group,.td-group li{min-width:0}
.td-group .linkish{display:block;width:100%}
/* Today › Everyone: tasks that aren't yours */
:root{--shade:#D9E1EC}
:root[data-theme="dark"]{--shade:rgba(255,255,255,.17)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--shade:rgba(255,255,255,.17)}}
.td-card.not-mine{background:var(--shade);border-color:var(--line-strong)}
.td-list li.not-mine{background:var(--shade);margin-inline:-10px;padding-inline:10px;border-radius:8px}
.td-legend{display:inline-flex;align-items:center;gap:6px;margin-left:8px;font-size:13px;white-space:nowrap}
.td-legend i{width:14px;height:14px;border-radius:4px;background:var(--shade);border:1px solid var(--line-strong);display:block}
.not-mine .chip.vchip:not(.priv){background:var(--card)}
.not-mine .td-sub,.not-mine .mono{color:var(--slate)}

/* Tasks grouped by urgency */
.task{grid-template-columns:minmax(0,1fr) 56px 76px 52px 172px 168px}
.group.u-hard>h2{background:var(--orange-tint);color:var(--danger)}
.group.u-late>h2{color:var(--hot-text)}
@container (max-width:860px){.task{grid-template-columns:minmax(0,1fr) auto auto auto}}
@media (max-width:1100px){.task{grid-template-columns:minmax(0,1fr) auto auto auto}}
@media (max-width:620px){.task{grid-template-columns:auto minmax(0,1fr)}}

/* Search (Cmd/Ctrl+K) */
.rail-search{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;margin-top:-6px;padding:0 12px;border:1px solid var(--rail-line);border-radius:8px;background:rgba(255,255,255,.06);color:var(--rail-dim);font:500 14px var(--sans);cursor:pointer;text-align:left}
.rail-search:hover{border-color:var(--rail-ink);color:var(--rail-ink)}
.rail-search span{flex:1}
.rail-search kbd{font:600 11px var(--sans);border:1px solid var(--rail-line);border-radius:5px;padding:1px 6px;color:var(--rail-dim)}
.hdr-search{margin-left:auto}
#ck{position:fixed;inset:0;z-index:70;background:var(--overlay);display:flex;justify-content:center;align-items:flex-start;padding:12vh 16px 16px}
.ck-box{width:min(640px,100%);max-height:76vh;display:flex;flex-direction:column;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:0 24px 64px -16px rgba(23,42,66,.5);overflow:hidden}
#ck-in{flex:none;height:54px;padding:0 18px;border:0;border-bottom:1px solid var(--line);background:none;font-size:16px;color:var(--ink);outline:none}
#ck-in:focus-visible{box-shadow:inset 0 -2px 0 var(--orange)}
#ck-list{list-style:none;margin:0;padding:6px;overflow:auto;flex:1}
#ck-list li[role=option]{display:grid;gap:1px;padding:9px 12px;border-radius:8px;cursor:pointer;min-height:44px;align-content:center}
#ck-list li[role=option]:hover{background:var(--card-2)}
#ck-list li[aria-selected="true"]{background:var(--navy-tint)}
.ck-g{padding:10px 12px 4px;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ck-l{font-weight:600;font-size:14.5px;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-s{font-size:12.5px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ck-none{padding:18px 12px;color:var(--muted);font-size:14px}
.ck-foot{flex:none;display:flex;gap:16px;margin:0;padding:8px 14px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}
.ck-foot kbd{font:600 11px var(--sans);border:1px solid var(--line-strong);border-radius:4px;padding:0 5px;margin-right:3px}
@media (max-width:620px){#ck{padding-top:8px}.ck-foot{display:none}}

/* ---------- Subcontractors ---------- */
.sb-warn{margin:0 0 12px;padding:10px 14px;border:1px solid var(--line);border-left:4px solid var(--orange);border-radius:var(--r-sm);background:var(--amber-tint);color:var(--ink);font-size:14px}
.sb-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:14px}
.sb-bar input[type=search]{flex:1 1 240px;max-width:360px;height:40px;padding:0 12px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink)}
.sb-bar input[type=search]:focus{border-color:var(--heading);outline:none;box-shadow:0 0 0 3px var(--ring)}
.sb-seg{height:auto;min-height:40px;flex-wrap:wrap}.sb-seg button{min-height:38px}.sb-seg b{font-weight:700;color:var(--hot-text);margin-left:2px}
.sb-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:20px;align-items:start}
.sb-wrap.has-open{grid-template-columns:minmax(0,1fr) minmax(360px,440px)}
.sb-list{min-width:0}
.sb-table{width:100%;border-collapse:separate;border-spacing:0;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;font-size:14px}
.sb-table th{text-align:left;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:10px 14px;border-bottom:1px solid var(--line);background:var(--card-2);white-space:nowrap}
.sb-table td{padding:12px 14px;border-top:1px solid var(--line);vertical-align:top}
.sb-table tbody tr:first-child td{border-top:0}
.sb-table tr.on td{background:var(--navy-tint)}
.sb-table tr.off td{opacity:.6}
.sb-table .linkish{font-size:15px}
.sb-sub{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.sb-need{display:block;font-size:13px;color:var(--muted)}
.sb-chip{white-space:nowrap}
.sb-chip.none{background:var(--card-2);color:var(--muted);border:1px solid var(--line)}
.sb-chip.ok{background:var(--green-tint);color:var(--green-text)}
.sb-chip.warn{background:var(--amber-tint);color:var(--amber-text)}
.sb-chip.bad{background:var(--orange-tint);color:var(--hot-text)}
.sb-table td .sb-chip+.sb-chip,.sb-table td .sb-chip+.sb-need{margin-top:4px}
.sb-peek{top:16px;scroll-margin-top:76px}
.sb-clear{margin:0;padding:8px 12px;border-radius:var(--r-sm);font-size:14px;font-weight:600}
.sb-clear.ok{background:var(--green-tint);color:var(--green-text)}
.sb-clear.no{background:var(--amber-tint);color:var(--amber-text)}
.sb-peek .pk-facts dd{font-weight:500;overflow-wrap:anywhere}
.sb-peek .pk-facts{align-items:start}
.sb-line{margin:0 0 8px;font-size:14px;line-height:1.5}
.sb-files{list-style:none;margin:0 0 8px;padding:0;font-size:14px;display:grid;gap:4px}
.sb-files li{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.sb-docs{margin-bottom:10px}
.sb-docs li{gap:4px}
.sb-doc{display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}
.sb-docs .pk-sub{overflow-wrap:anywhere}
.sb-docs .pk-acts{padding-top:6px}
.sb-mini{font-size:13px;font-weight:500;color:var(--blue-text)}
.sb-peek a{color:var(--blue-text)}
.sb-hist{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:13.5px;line-height:1.45}
.sb-hist li{display:grid;gap:1px;overflow-wrap:anywhere}
.sb-undone{text-decoration:line-through;opacity:.75}
.sb-appr{display:block;padding-left:10px;border-left:2px solid var(--line)}
.sb-count{display:block;margin-top:4px;font-size:12.5px;color:var(--muted)}
.sb-wofacts{margin:0 0 14px;grid-template-columns:max-content minmax(0,1fr);column-gap:18px}
#sbForm .field>.chk{margin-top:4px}
#sbForm p.sb-warn{margin:0}
@media (max-width:1100px){
  .sb-wrap.has-open{grid-template-columns:minmax(0,1fr)}
  .sb-wrap.has-open .sb-list{display:none}
  .peek.sb-peek{display:grid;position:static;max-height:none}
}
@media (max-width:760px){
  .sb-table thead{display:none}
  .sb-table,.sb-table tbody,.sb-table tr,.sb-table td{display:block}
  .sb-table{border:0;background:none;border-radius:0}
  .sb-table tr{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;margin-bottom:10px;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 8px}
  .sb-table td{border:0;padding:0}
  .sb-table td[data-l="Subcontractor"],.sb-table td[data-l="Status"]{grid-column:1/-1}
  .sb-table td[data-l="Agreement"]::before,.sb-table td[data-l="W-9"]::before,.sb-table td[data-l="Insurance"]::before{content:attr(data-l);display:block;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}
  .sb-seg{width:100%}.sb-seg button{flex:1 1 auto}
  .sb-bar input[type=search]{max-width:none}
}
.sb-filebtn{position:relative;cursor:pointer}
.sb-filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.sb-help{margin-top:10px;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 14px;font-size:14px;line-height:1.5}
.sb-help summary{cursor:pointer;font-weight:600;color:var(--heading)}
.sb-help ul{margin:8px 0;padding-left:18px;display:grid;gap:6px}
.sb-help p{margin:8px 0 0}
.sb-help code{font-size:12.5px;background:var(--card-2);border:1px solid var(--line);border-radius:4px;padding:1px 5px;overflow-wrap:anywhere}
#sbForm input[type=color]{padding:4px;height:44px;width:100%}

/* org chart: top to bottom */
.oc-scroll{overflow-x:auto;padding:4px 0 8px}.oc-tree,.oc-tree ul{list-style:none;margin:0;padding:0;display:flex;justify-content:center}
.oc-tree{width:max-content;min-width:100%}.oc-tree ul{position:relative;padding-top:18px}
.oc-tree ul::before{content:'';position:absolute;top:0;left:50%;height:18px;border-left:2px solid var(--line)}
.oc-tree li{position:relative;padding:18px 6px 0;display:flex;flex-direction:column;align-items:center}.oc-tree>li{padding-top:0}.oc-tree.oc-multi{align-items:flex-start;gap:14px}
.oc-tree ul>li::before,.oc-tree ul>li::after{content:'';position:absolute;top:0;width:50%;height:18px;border-top:2px solid var(--line)}
.oc-tree ul>li::before{right:50%}.oc-tree ul>li::after{left:50%;border-left:2px solid var(--line);margin-left:-1px}
.oc-tree ul>li:first-child::before,.oc-tree ul>li:last-child::after{border-top:0}
.oc-tree ul.oc-stack{flex-direction:column;align-items:center;justify-content:flex-start}
.oc-tree ul.oc-stack>li{padding-top:6px}.oc-tree ul.oc-stack>li:first-child{padding-top:0}
.oc-tree ul.oc-stack>li::before,.oc-tree ul.oc-stack>li::after{display:none}
.oc-node{display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;border:1px solid var(--line);border-radius:10px;padding:6px 12px;background:var(--card);min-width:96px;max-width:150px}.oc-node .chip{white-space:normal;height:auto;line-height:1.3;padding:3px 8px;border-radius:8px;display:block}.oc-tree li{padding-left:4px;padding-right:4px}
.oc-node.oc-float{border-style:dashed;color:var(--slate)}.oc-off{margin-top:12px;font-size:14px}
.acc-over{margin-top:10px}.acc-over select,.tm-block .acc-grid select,.tm-block .acc-grid input[type=date]{width:100%;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit}

/* invoice approvals */
.ap-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;position:sticky;top:0;z-index:3;background:var(--bg);padding:8px 0;margin-bottom:8px}
.ap-table td,.ap-table th{vertical-align:top;text-align:left;white-space:normal}.ap-table td:last-child{min-width:170px;max-width:260px}.ap-table td:nth-child(2) small{margin-top:4px}.ap-table small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.ap-table .ap-tick{width:28px}
.ap-table input[type=checkbox]{width:18px;height:18px}.ap-table .num,.ap-confirm .num{text-align:right;white-space:nowrap}.ap-table tr.ap-done td{color:var(--muted)}
.ap-table small.ap-why,.ap-confirm small.ap-why{color:var(--hot-text);max-width:240px}.ap-table tfoot td{border-top:1px solid var(--line);font-weight:600}.ap-table tfoot tr+tr td{border-top:0}
.ap-total td{font-size:15px;font-weight:700}.ap-table .btn.small{margin-top:6px;display:block}
.ap-confirm{margin:8px 0 14px;width:100%}.ap-confirm td{text-align:left;white-space:normal}.ap-confirm td:nth-child(2){white-space:nowrap;color:var(--muted)}.ap-confirm small{display:block;color:var(--muted);font-size:12px}.ap-confirm td{vertical-align:top;padding:6px 8px 6px 0}
.ap-dt{display:grid;grid-template-columns:1fr 150px;gap:8px}#apForm label.chk{display:flex;align-items:flex-start;gap:8px;white-space:normal;margin:4px 0;font-weight:400}#apForm label.chk input{flex:none;margin-top:3px}#apForm textarea{width:100%;margin-top:8px;font:inherit;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink)}
.ap-waiver{white-space:pre-wrap;border:1px solid var(--line);border-radius:var(--r-sm);padding:14px;max-height:50vh;overflow:auto;font-size:14px;line-height:1.5}
.ap-sig{display:grid;grid-template-columns:110px 1fr;gap:4px 12px;margin:12px 0;font-size:14px}.ap-sig dt{color:var(--muted)}.ap-sig dd{margin:0}
@media print{body:has(.ap-waiver) #app,body:has(.ap-waiver) .row-actions{display:none}.ap-waiver{max-height:none;border:0}}

/* signatures: list, editor, templates */
.sg-list small{display:block;color:var(--muted);font-size:12px;margin-top:2px}.sg-list td,.sg-list th{text-align:left;vertical-align:top;white-space:normal}
.sg-acts{white-space:nowrap}.sg-acts .btn{margin-left:6px}.sg-who-tabs{display:inline-flex;margin-left:10px;vertical-align:middle}
.sg-title{font:inherit;font-weight:inherit;color:inherit;background:transparent;border:1px solid transparent;border-radius:var(--r-sm);padding:2px 6px;margin-left:-7px;width:100%;max-width:760px}
.sg-title:hover,.sg-title:focus{border-color:var(--line);background:var(--card)}.sg-type{height:30px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit;padding:0 8px}
.crumb{margin:0 0 2px;font-size:13px}#sgHead>div:first-child{flex:1;min-width:0}#sgHead h1{display:block}
.sg-build{display:grid;grid-template-columns:210px minmax(0,1fr) 290px;gap:16px;align-items:start}.sg-build.sg-ro{grid-template-columns:minmax(0,1fr) 320px}
.sg-left,.sg-right{position:sticky;top:12px;max-height:calc(100vh - 24px);overflow:auto;display:grid;gap:12px;align-content:start}
.sg-side-block{border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:12px;display:grid;gap:8px}.sg-side-block .mono{margin:0}
.sg-side-block input:not([type=checkbox]),.sg-side-block select,.sg-side-block textarea{width:100%;min-height:34px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit}
.sg-side-block .chk,#sgForm .chk{display:flex;gap:8px;align-items:flex-start;font-size:13px;font-weight:400;white-space:normal;margin:3px 0}#sgForm .chk input{flex:none;margin-top:3px}
.sg-help summary{cursor:pointer;font-size:13px;font-weight:600}.sg-help ul{margin:6px 0 0;padding-left:18px;font-size:12.5px;color:var(--muted);display:grid;gap:4px}
.sg-dims{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;color:var(--muted)}.sg-dims label{display:grid;gap:3px}
.sg-pals{display:grid;gap:6px}.sg-pal{display:block;width:100%;text-align:left;padding:7px 10px;border:1px dashed var(--line-strong,var(--line));border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font:inherit;font-size:13px;cursor:grab;touch-action:none}
.sg-pal:hover{border-style:solid}.sg-pal.armed{border-style:solid;border-color:var(--navy);box-shadow:0 0 0 2px var(--navy) inset}
.sg-signerpick{display:flex;flex-wrap:wrap;gap:6px}.sg-who{border:2px solid transparent;border-radius:999px;padding:3px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sg-who.on{border-color:var(--ink)}
.sg-mid{min-width:0;display:grid;gap:8px}
.sg-bar{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);padding:6px 8px;position:sticky;top:8px;z-index:5}
.sg-sep{width:1px;height:22px;background:var(--line);margin:0 4px}.sg-zoom{min-width:46px;text-align:center;font-size:13px;font-variant-numeric:tabular-nums}
.sg-goto{font-size:13px;display:inline-flex;align-items:center;gap:6px}.sg-goto select{height:30px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit}
.sg-pages{display:block;overflow:auto;height:calc(100vh - 190px);min-height:420px;background:var(--bg-sunk,rgba(0,0,0,.06));border:1px solid var(--line);border-radius:var(--r);padding:12px}
.sg-pagewrap{width:max-content;margin:0 auto 18px}.sg-pageno{font-size:12px;color:var(--muted);margin-bottom:4px}.sg-pages.sg-arming .sg-page{cursor:crosshair}
.sg-page{position:relative;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.25)}.sg-page canvas{position:absolute;inset:0;width:100%;height:100%}.sg-layer{position:absolute;inset:0}
.sg-field{position:absolute;box-sizing:border-box;border:1.5px solid;border-radius:2px;line-height:1.05;font-weight:600;display:flex;align-items:center;padding:0 3px;white-space:nowrap;cursor:move;user-select:none;touch-action:none;font-family:Arial,Helvetica,sans-serif}
.sg-tx{overflow:hidden;text-overflow:clip;max-width:100%}.sg-field.sg-box{padding:0;justify-content:center}
.sg-ro .sg-field{cursor:default}.sg-field.sel{outline:2px solid #111;outline-offset:1px;z-index:3}.sg-field:focus-visible{outline:2px solid #111;outline-offset:2px}
.sg-handle{position:absolute;width:9px;height:9px;background:#fff;border:1.5px solid #111;border-radius:2px;z-index:4}
.sg-h-nw{left:-6px;top:-6px;cursor:nwse-resize}.sg-h-n{left:calc(50% - 5px);top:-6px;cursor:ns-resize}.sg-h-ne{right:-6px;top:-6px;cursor:nesw-resize}.sg-h-e{right:-6px;top:calc(50% - 5px);cursor:ew-resize}
.sg-h-se{right:-6px;bottom:-6px;cursor:nwse-resize}.sg-h-s{left:calc(50% - 5px);bottom:-6px;cursor:ns-resize}.sg-h-sw{left:-6px;bottom:-6px;cursor:nesw-resize}.sg-h-w{left:-6px;top:calc(50% - 5px);cursor:ew-resize}
.sg-inline{position:absolute;inset:-1px;width:calc(100% + 2px);height:calc(100% + 2px);border:0;outline:2px solid #1d4ed8;background:#fff;color:#000;font:inherit;font-weight:400;padding:0 3px;min-width:60px;z-index:6}
.sg-guide{position:absolute;pointer-events:none;z-index:2}.sg-gx{top:0;bottom:0;border-left:1px dashed #d6336c}.sg-gy{left:0;right:0;border-top:1px dashed #d6336c}
.sg-s1{background:rgba(232,119,34,.22);border-color:#b4530c;color:#6b2f02}.sg-s2{background:rgba(23,63,90,.18);border-color:#173f5a;color:#0d2a3d}.sg-s3{background:rgba(22,128,90,.2);border-color:#0f6b4a;color:#08402c}
.sg-s4{background:rgba(124,58,172,.18);border-color:#6a2f96;color:#40195e}.sg-s5{background:rgba(190,24,93,.16);border-color:#a3154f;color:#660b30}.sg-s6{background:rgba(2,132,150,.18);border-color:#036a78;color:#02434c}
.sg-you{background:rgba(255,255,255,.6);border-color:#777;border-style:dashed;border-width:1px;color:#000;font-weight:400}.sg-you.sg-empty{border-color:#b42318;color:#b42318}
.sg-ghost{position:fixed;z-index:1000;transform:translate(-50%,-50%);pointer-events:none;padding:5px 10px;border-radius:4px;background:#111;color:#fff;font-size:12px;opacity:.85}
.sg-signer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px;align-items:center}.sg-signer>div{display:grid;gap:4px;min-width:0}.sg-signer small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis}
.sg-dot{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1.5px solid}
.sg-events{list-style:none;margin:0;padding:0;display:grid;gap:8px;font-size:13px}.sg-events .mono{display:block}
.sg-typerow{display:grid;grid-template-columns:1fr 1.2fr auto auto;gap:8px;margin-bottom:8px;align-items:center}.sg-typerow .chk{font-size:12.5px;white-space:nowrap}@media (max-width:640px){.sg-typerow{grid-template-columns:1fr}}
.sg-note{margin:8px 0 0;padding:8px 10px;border-left:3px solid var(--orange);background:var(--amber-tint);border-radius:var(--r-sm);font-size:12.5px}
.sg-plist{max-height:260px;overflow:auto;margin:0 0 12px}.sg-plist .mono{display:inline}.sg-plist li.mono{display:block}
#sgProject p{margin:0 0 8px;font-size:13px}#sg-fres{display:block;margin-top:6px}.sg-typerow input,#sgForm [data-role]{min-height:36px;padding:6px 8px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:inherit}
#sgForm [data-role]{width:100%;margin-bottom:6px}.flabel{display:block;font-weight:600;font-size:13px;margin-bottom:4px}
.sg-sharelist{border:1px solid var(--line);border-radius:var(--r-sm);padding:10px;margin-top:6px;max-height:240px;overflow:auto}.sg-sharelist .tm-lab{margin:6px 0 2px}.sg-sharelist .tm-lab:first-child{margin-top:0}
@media (max-width:1100px){.sg-build{grid-template-columns:minmax(0,1fr)}.sg-left,.sg-right{position:static;max-height:none}.sg-pals{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.sg-pages{height:70vh}}
