/* ============================================================
   Runway — Execution OS · desktop, light
   ============================================================ */
:root{
  --bg:#eeeef1; --panel:#f7f7f9; --card:#fff; --ink:#16171b; --ink-2:#65666e; --ink-3:#a2a3ab; --line:#e8e8ea;
  --track-lane:#e4e2d8;
  --volt:#00c46e; --volt-deep:#00a85e; --gold:#f5a623; --gold-soft:#fff6e6;
  --rev:#ff7847; --rev-tint:#fff1ea; --rev-deep:#e8551f;
  --sup:#3b8cff; --sup-tint:#e9f2ff; --sup-deep:#1d68d6;
  --lea:#a06bff; --lea-tint:#f1eaff; --lea-deep:#7b3fe4;
  --amber:#f59e0b; --amber-soft:#fef4e2; --amber-track:#f6e2ba;
  --danger:#ff5f57;
  --shadow-sm:0 1px 2px rgba(20,20,30,.05),0 2px 8px rgba(20,20,30,.05);
  --shadow-md:0 2px 8px rgba(20,20,30,.06),0 14px 34px rgba(20,20,30,.09);
  --shadow-lg:0 12px 40px rgba(20,20,30,.14),0 30px 80px rgba(20,20,30,.16);
  --font:-apple-system,"SF Pro Display","SF Pro Text",BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;
  --r:18px; --r-sm:12px;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-font-smoothing:antialiased;}
html,body{height:100%;background:var(--bg);font-family:var(--font);color:var(--ink);overscroll-behavior:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--volt);outline-offset:2px;border-radius:6px;}
input,textarea,select{font-family:inherit;font-size:14px;color:var(--ink);background:var(--card);border:1px solid var(--line);border-radius:10px;padding:11px 12px;width:100%;}
input::placeholder,textarea::placeholder{color:var(--ink-3);}
textarea{resize:vertical;line-height:1.45;}
label{font-size:12px;color:var(--ink-2);font-weight:600;display:block;margin-bottom:7px;}
.hint{font-size:11.5px;color:var(--ink-3);margin-top:6px;line-height:1.4;}
.hint.warn{color:var(--amber);}
::-webkit-scrollbar{width:10px;height:10px;} ::-webkit-scrollbar-thumb{background:#d6d6da;border-radius:6px;border:3px solid var(--panel);} ::-webkit-scrollbar-track{background:transparent;}

#app{height:100vh;}

/* ---------- app shell ---------- */
.shell{display:grid;grid-template-columns:224px 1fr 300px;height:100vh;}
.shell.two{grid-template-columns:224px 1fr;}

/* ---------- sidebar ---------- */
.side{background:var(--panel);border-right:1px solid var(--line);padding:20px 13px;display:flex;flex-direction:column;overflow-y:auto;}
.side.dim .side-mid{opacity:.55;transition:opacity .2s;}
.side.dim:hover .side-mid{opacity:1;}
.brand{font-size:16px;font-weight:800;letter-spacing:.01em;padding:0 8px 20px;display:flex;align-items:center;gap:8px;}
.brand .dot{width:10px;height:10px;border-radius:50%;background:var(--volt);box-shadow:0 0 10px var(--volt);}
.brand .brand-logo{width:22px;height:22px;object-fit:contain;display:block;}
.navitem{display:flex;align-items:center;gap:11px;padding:9px 8px;border-radius:9px;font-size:13.5px;font-weight:600;color:var(--ink-2);width:100%;text-align:left;}
.navitem:hover{background:#ececef;}
.navitem.on{background:#e9e9ec;color:var(--ink);}
.navitem .ic{width:16px;height:16px;border-radius:5px;background:var(--ink-3);}
.navitem.on .ic{background:var(--volt);}
.side-sep{height:1px;background:var(--line);margin:14px 4px;}
.side-lab{font-size:10.5px;font-weight:700;color:var(--ink-3);letter-spacing:.06em;text-transform:uppercase;padding:6px 8px;display:flex;justify-content:space-between;align-items:center;}
.projitem{display:flex;align-items:center;gap:10px;padding:8px;border-radius:9px;font-size:13.5px;font-weight:560;width:100%;text-align:left;color:var(--ink);}
.projitem:hover{background:#ececef;}
.projitem.active{background:rgba(0,196,110,.1);font-weight:680;}
.projitem .pd{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.projitem .ct{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:650;}
.projitem.add{color:var(--ink-3);font-weight:600;}
.side-mid{display:flex;flex-direction:column;}
.side-foot{margin-top:auto;padding:10px 8px 4px;display:flex;align-items:center;gap:10px;}
.side-foot .av{width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--volt),#00c4ff);flex-shrink:0;}
.side-foot .nm{font-size:13px;font-weight:650;line-height:1.2;} .side-foot .nm span{display:block;font-size:11px;color:var(--ink-3);font-weight:550;margin-top:1px;}

/* ---------- center column ---------- */
.center{padding:22px 30px 60px;overflow-y:auto;}
.center.narrow{max-width:860px;margin-left:auto;margin-right:auto;width:100%;}
.ch{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:16px;}
.ch h1{font-size:24px;font-weight:780;letter-spacing:-0.02em;}
.ch h1 span{color:var(--ink-3);font-weight:600;font-size:14px;margin-left:8px;}
.ch .filter-wrap{position:relative;}
.filter-btn{font-size:12.5px;color:var(--ink-2);font-weight:600;background:var(--card);padding:8px 13px;border-radius:20px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:7px;}
.filter-btn .pd{width:8px;height:8px;border-radius:50%;}

/* filter chips row */
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px;}
.fchip{font-size:12.5px;font-weight:650;padding:7px 13px;border-radius:20px;background:var(--card);box-shadow:var(--shadow-sm);color:var(--ink-2);display:flex;align-items:center;gap:7px;border:1.5px solid transparent;}
.fchip .d{width:8px;height:8px;border-radius:50%;}
.fchip.on{background:var(--ink);color:#fff;}
.fchip:not(.on):hover{color:var(--ink);}

/* quote */
.quote{display:flex;align-items:center;gap:13px;background:linear-gradient(120deg,#fff,#fbfbf7);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:14px;padding:14px 17px;margin-bottom:16px;box-shadow:var(--shadow-sm);}
.quote .mark{font-size:32px;font-weight:800;color:var(--gold);line-height:.6;font-family:Georgia,serif;flex-shrink:0;}
.quote .qt{font-size:14.5px;font-weight:560;line-height:1.35;}
.quote .qt cite{display:block;font-size:11.5px;color:var(--ink-3);font-weight:600;font-style:normal;margin-top:4px;}

/* track card */
.track-card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:16px 22px;margin-bottom:12px;display:flex;align-items:center;gap:24px;box-shadow:var(--shadow-sm);}
.track-card .svgwrap{flex:1;min-width:0;}
.tc-stats{flex-shrink:0;text-align:right;}
.tc-stats .laps{font-size:34px;font-weight:800;letter-spacing:-0.03em;line-height:1;}
.tc-stats .laps small{font-size:14px;color:var(--ink-3);font-weight:600;}
.tc-stats .mi{font-size:12.5px;color:var(--ink-2);font-weight:600;margin-top:7px;}
.tc-stats .mi b{color:var(--gold);font-size:16px;}
.tc-stats .mo{font-size:11.5px;color:var(--ink-3);font-weight:600;margin-top:3px;}
.runner-dot{transition:none;}

/* money floor */
.floor{border-radius:var(--r-sm);padding:14px 17px;box-shadow:var(--shadow-sm);margin-bottom:18px;border:1px solid var(--line);background:var(--card);}
.floor.under{border-color:var(--amber-track);background:linear-gradient(120deg,#fff,var(--amber-soft));}
.floor.over{border-color:#bfe9cf;background:linear-gradient(120deg,#fff,#f2fbf6);}
.floor.off{opacity:.75;}
.floor-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.floor-top .lhs{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:720;}
.floor-top .pct b{font-size:15px;font-weight:750;}
.floor.under .floor-top .pct b{color:var(--amber);} .floor.over .floor-top .pct b{color:var(--volt-deep);}
.floor-top .pct span{color:var(--ink-3);font-weight:600;font-size:12.5px;}
.floor-bar{height:9px;border-radius:5px;background:var(--bg);overflow:hidden;position:relative;}
.floor-bar i{display:block;height:100%;border-radius:5px;}
.floor.under .floor-bar i{background:linear-gradient(90deg,#f5a623,#f7b94a);}
.floor.over .floor-bar i{background:linear-gradient(90deg,var(--volt),#33d98a);}
.floor-bar .mk{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--ink);opacity:.3;}
.floor .ff{font-size:11.5px;font-weight:560;margin-top:10px;line-height:1.4;}
.floor.under .ff{color:#9a6a12;} .floor.over .ff{color:var(--volt-deep);} .floor.off .ff{color:var(--ink-3);}
.floor .ff b{font-weight:720;}

/* now card */
.now{background:var(--card);border-radius:var(--r);padding:20px;box-shadow:var(--shadow-sm);margin-bottom:20px;border:1.5px solid #ffe4d6;}
.now.empty{border-style:dashed;border-color:var(--line);text-align:center;padding:34px 24px;}
.now.empty h3{font-size:17px;font-weight:700;margin-bottom:8px;} .now.empty p{font-size:13.5px;color:var(--ink-2);line-height:1.5;max-width:46ch;margin:0 auto 16px;}
.now .tagrow{display:flex;align-items:center;gap:8px;margin-bottom:12px;flex-wrap:wrap;}
.pchip{font-size:11px;font-weight:700;padding:5px 10px;border-radius:16px;display:flex;align-items:center;gap:6px;background:var(--bg);color:var(--ink-2);}
.pchip .d{width:7px;height:7px;border-radius:50%;}
.chip{font-size:11px;font-weight:700;padding:5px 10px;border-radius:16px;}
.chip.rev{color:var(--rev-deep);background:var(--rev-tint);}
.chip.sup{color:var(--sup-deep);background:var(--sup-tint);}
.chip.lea{color:var(--lea-deep);background:var(--lea-tint);}
.now .rn{font-size:11.5px;color:var(--ink-3);font-weight:600;margin-left:auto;}
.now h2{font-size:22px;font-weight:750;letter-spacing:-0.02em;line-height:1.2;margin-bottom:14px;}
.now .goal-feed{display:flex;align-items:center;gap:10px;margin:0 0 14px;}
.now .goal-feed .gf-b{flex:1;} .now .goal-feed .gf-top{display:flex;justify-content:space-between;font-size:11.5px;margin-bottom:5px;} .now .goal-feed .gf-top b{font-weight:650;} .now .goal-feed .gf-top span{color:var(--ink-3);font-weight:600;}
.now .goal-feed .gf-track{height:6px;background:var(--bg);border-radius:4px;overflow:hidden;} .now .goal-feed .gf-fill{height:100%;background:var(--rev);border-radius:4px;}
.now-grid{display:flex;gap:16px;align-items:flex-end;}
.now .fa{flex:1;background:var(--bg);border-radius:var(--r-sm);padding:13px 15px;}
.now .fa .k{font-size:10.5px;color:var(--ink-3);font-weight:700;text-transform:uppercase;margin-bottom:4px;letter-spacing:.03em;}
.now .fa .v{font-size:14.5px;font-weight:560;line-height:1.4;}
.startbtn{border:none;border-radius:var(--r-sm);padding:15px 28px;font-size:15.5px;font-weight:750;color:#fff;background:linear-gradient(135deg,var(--rev),#ff9838);box-shadow:0 8px 20px rgba(255,120,71,.3);white-space:nowrap;transition:transform .1s,filter .15s;}
.startbtn:hover{filter:brightness(1.05);} .startbtn:active{transform:scale(.98);}
.now .est{font-size:12px;color:var(--ink-3);font-weight:600;margin-top:12px;}
.now .est b{color:var(--volt-deep);}
.kbd{font-size:10.5px;color:var(--ink-3);font-weight:600;margin-left:6px;background:var(--bg);padding:2px 7px;border-radius:5px;border:1px solid var(--line);}

/* section + task rows */
.sec{font-size:12.5px;font-weight:700;color:var(--ink-2);margin:6px 2px 12px;display:flex;justify-content:space-between;}
.sec .sub{color:var(--ink-3);font-weight:600;}
.tcard{background:var(--card);border-radius:var(--r-sm);padding:12px 14px;box-shadow:var(--shadow-sm);display:flex;align-items:center;gap:12px;margin-bottom:8px;transition:border-color .15s;border:1px solid transparent;}
.tcard:hover{border-color:var(--line);}
.tcard .rail{width:4px;align-self:stretch;border-radius:3px;background:var(--ink-3);}
.tcard .tm{font-size:11.5px;font-weight:650;color:var(--ink-3);width:44px;flex-shrink:0;}
.tcard .b{flex:1;min-width:0;} .tcard .b h3{font-size:14.5px;font-weight:640;line-height:1.25;}
.tcard .b .m{font-size:11.5px;color:var(--ink-3);font-weight:550;margin-top:3px;display:flex;gap:7px;align-items:center;flex-wrap:wrap;}
.tcard .b .m .pdot{width:7px;height:7px;border-radius:50%;}
.tcard.done{opacity:.6;} .tcard.done .b h3{text-decoration:line-through;}
.tcard .laps{font-size:10.5px;font-weight:700;color:var(--volt-deep);background:rgba(0,196,110,.1);padding:4px 9px;border-radius:10px;flex-shrink:0;}
.tcard .play{width:32px;height:32px;border-radius:9px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.tcard .play:hover{background:#e9e9ec;}
.tcard .chk{width:24px;height:24px;border-radius:50%;background:var(--volt);display:flex;align-items:center;justify-content:center;flex-shrink:0;}

.add-row{width:100%;border:1.5px dashed #d5d5d8;background:transparent;color:var(--ink-2);padding:13px;border-radius:var(--r-sm);font-size:13.5px;font-weight:600;margin-top:4px;}
.add-row:hover{border-color:var(--ink-3);color:var(--ink);}

/* right rail */
.rail{background:var(--panel);border-left:1px solid var(--line);padding:22px 18px;overflow-y:auto;}
.rail h4{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:12px;}
.stat-lg{background:var(--card);border-radius:var(--r-sm);padding:16px;box-shadow:var(--shadow-sm);margin-bottom:11px;}
.stat-lg .k{font-size:11px;font-weight:650;color:var(--ink-3);margin-bottom:6px;}
.stat-lg .v{font-size:28px;font-weight:800;letter-spacing:-0.02em;line-height:1;}
.stat-lg .v small{font-size:14px;color:var(--ink-3);font-weight:650;}
.stat-lg .tr{font-size:11px;font-weight:650;margin-top:7px;}
.tr.good{color:var(--volt-deep);} .tr.bad{color:var(--amber);} .tr.flat{color:var(--ink-3);}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:11px;}
.stat-sm{background:var(--card);border-radius:var(--r-sm);padding:13px;box-shadow:var(--shadow-sm);}
.stat-sm .k{font-size:10.5px;font-weight:650;color:var(--ink-3);margin-bottom:5px;}
.stat-sm .v{font-size:21px;font-weight:780;letter-spacing:-0.02em;}
.stat-sm .u{font-size:10.5px;color:var(--ink-3);font-weight:550;margin-top:2px;}
.alloc{background:var(--card);border-radius:var(--r-sm);padding:15px;box-shadow:var(--shadow-sm);margin-bottom:11px;}
.alloc .k{font-size:11px;font-weight:650;color:var(--ink-3);margin-bottom:11px;}
.alloc-bar{height:11px;border-radius:6px;overflow:hidden;display:flex;background:var(--bg);}
.alloc-bar i{height:100%;}
.alloc-empty{font-size:11.5px;color:var(--ink-3);text-align:center;padding:2px 0;}
.alloc-leg{margin-top:11px;display:flex;flex-direction:column;gap:6px;}
.alloc-leg .li{font-size:11px;color:var(--ink-2);font-weight:600;display:flex;align-items:center;gap:7px;}
.alloc-leg .sw{width:8px;height:8px;border-radius:2px;}
.alloc-leg b{margin-left:auto;color:var(--ink);}
.shelf{background:var(--gold-soft);border:1px solid #f6e2ba;border-radius:var(--r-sm);padding:15px;}
.shelf .sh{font-size:12.5px;font-weight:750;margin-bottom:3px;color:#8a5a00;}
.shelf .cap2{font-size:10.5px;color:#a87b2e;font-weight:550;margin-bottom:12px;line-height:1.4;}
.shelf .opt{background:#fff;border-radius:10px;padding:10px 11px;display:flex;align-items:center;gap:9px;margin-bottom:6px;box-shadow:var(--shadow-sm);}
.shelf .opt .pdot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.shelf .opt .b{flex:1;min-width:0;} .shelf .opt .b h5{font-size:12px;font-weight:620;line-height:1.2;} .shelf .opt .b .m{font-size:9.5px;color:var(--ink-3);margin-top:2px;}
.shelf .opt .add{color:var(--rev-deep);font-size:17px;width:22px;height:22px;border-radius:50%;background:var(--rev-tint);display:flex;align-items:center;justify-content:center;flex-shrink:0;}

/* recovery banner */
.recovery{background:linear-gradient(150deg,#eafaf2,#fff);border:1px solid #bfe9cf;border-radius:var(--r);padding:20px;margin-bottom:18px;}
.recovery .rk{font-size:11px;font-weight:750;letter-spacing:.1em;text-transform:uppercase;color:var(--volt-deep);margin-bottom:9px;}
.recovery h3{font-size:18px;font-weight:720;margin-bottom:7px;}
.recovery p{font-size:13.5px;color:var(--ink-2);line-height:1.5;margin-bottom:15px;}
.recovery .rbtns{display:flex;gap:10px;}
.recovery .rbtn{padding:11px 18px;border-radius:var(--r-sm);font-size:13.5px;font-weight:650;}
.recovery .rbtn.primary{background:var(--volt);color:#053720;} .recovery .rbtn.ghost{border:1px solid var(--line);color:var(--ink-2);}

/* ---------- FOCUS ---------- */
.focus{background:linear-gradient(180deg,#fbfbf9,#f3f2ee);display:flex;flex-direction:column;height:100vh;}
.focus-top{display:flex;align-items:center;justify-content:space-between;padding:22px 30px 0;}
.focus-top .ex{font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--volt-deep);display:flex;align-items:center;gap:7px;}
.focus-top .ex .d{width:8px;height:8px;border-radius:50%;background:var(--volt);box-shadow:0 0 8px var(--volt);}
.focus-top .tags{display:flex;gap:8px;}
.focus-body{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 40px;text-align:center;}
.focus-quote{font-size:12.5px;color:var(--ink-3);font-weight:550;font-style:italic;margin-bottom:24px;max-width:42ch;}
.focus-body h1{font-size:29px;font-weight:770;letter-spacing:-0.02em;line-height:1.2;margin-bottom:13px;max-width:20ch;}
.focus-first{font-size:15.5px;color:var(--ink-2);line-height:1.5;max-width:46ch;border-left:3px solid var(--volt);padding-left:16px;text-align:left;margin-bottom:30px;}
.focus-track{width:min(540px,80%);margin-bottom:2px;}
.timer{font-size:78px;font-weight:800;letter-spacing:-0.03em;font-variant-numeric:tabular-nums;line-height:1;margin:18px 0 6px;color:var(--ink);}
.timer.over{color:var(--rev-deep);}
.timer.paused{color:var(--ink-3);}
.timer-sub{font-size:12px;font-weight:650;letter-spacing:.06em;color:var(--ink-3);}
.commit{font-size:13.5px;color:var(--ink-2);margin-top:18px;}
.commit b{color:var(--ink);}
.commit.cleared{color:var(--volt-deep);font-weight:600;}
.lap-note{font-size:11.5px;color:var(--volt-deep);font-weight:700;margin-top:7px;}
.focus-controls{padding:0 40px 32px;display:flex;flex-direction:column;gap:10px;max-width:540px;margin:0 auto;width:100%;}
.ctl-row{display:flex;gap:10px;}
.ctl{flex:1;padding:15px;border-radius:var(--r-sm);font-size:14.5px;font-weight:700;border:1px solid var(--line);background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm);transition:filter .15s;}
.ctl:hover{filter:brightness(.98);}
.ctl.finish{background:var(--volt);color:#053720;border-color:var(--volt);}
.ctl.pause{color:var(--ink-2);}
.ctl.stuck{background:transparent;color:#b8860b;border-color:#efd9a3;box-shadow:none;}
.kbds{text-align:center;font-size:10.5px;color:var(--ink-3);font-weight:600;margin-top:3px;}
.kbds span{background:var(--card);padding:2px 7px;border-radius:5px;margin:0 3px;border:1px solid var(--line);}

/* ---------- SIGNALS ---------- */
.sig-hero{background:var(--card);border-radius:var(--r);padding:22px;box-shadow:var(--shadow-sm);margin-bottom:14px;}
.sig-hero .k{font-size:12px;font-weight:700;color:var(--ink-2);margin-bottom:8px;}
.sig-hero .v,.sig-card .v,.stat-lg .v,.stat-sm .v,.tc-stats .laps,.mfoot .s b{font-variant-numeric:tabular-nums;}
.sig-hero .v{font-size:46px;font-weight:800;letter-spacing:-0.03em;line-height:1;}
.sig-hero .v small{font-size:18px;color:var(--ink-3);font-weight:650;}
.sig-hero .tr{font-size:13px;font-weight:650;margin-top:9px;}
.sig-duo{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.sig-card{background:var(--card);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);}
.sig-card .k{font-size:11.5px;font-weight:700;color:var(--ink-2);margin-bottom:7px;}
.sig-card .v{font-size:30px;font-weight:780;letter-spacing:-0.02em;}
.sig-card .v small{font-size:14px;color:var(--ink-3);font-weight:650;}
.sig-card .u{font-size:11.5px;color:var(--ink-3);font-weight:550;margin-top:3px;}
.panel{background:var(--card);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:14px;}
.panel h4{font-size:13px;font-weight:700;margin-bottom:3px;}
.panel .c{font-size:11.5px;color:var(--ink-3);font-weight:550;margin-bottom:15px;line-height:1.4;}
.mbars{display:flex;align-items:flex-end;gap:6px;height:88px;}
.mbars .b{flex:1;height:100%;background:var(--bg);border-radius:5px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;}
.mbars .b i{width:100%;background:linear-gradient(180deg,#33d98a,var(--volt));border-radius:5px;min-height:2px;}
.mbars .b.today i{background:linear-gradient(180deg,#f7b94a,var(--gold));}
.mx{display:flex;gap:6px;margin-top:7px;} .mx span{flex:1;text-align:center;font-size:9.5px;color:var(--ink-3);font-weight:600;}
.mfoot{display:flex;justify-content:space-between;margin-top:15px;padding-top:14px;border-top:1px solid var(--line);flex-wrap:wrap;gap:10px;}
.mfoot .s b{font-size:18px;font-weight:750;letter-spacing:-0.02em;} .mfoot .s span{display:block;font-size:11px;color:var(--ink-3);font-weight:600;margin-top:1px;}
.prow{display:flex;align-items:center;gap:10px;margin-bottom:9px;}
.prow .pl{font-size:12.5px;width:42%;font-weight:550;}
.prow .pt{flex:1;height:7px;background:var(--bg);border-radius:4px;overflow:hidden;}
.prow .pf{height:100%;background:var(--rev);border-radius:4px;}
.prow .pn{font-size:11.5px;color:var(--ink-3);font-weight:650;width:16px;text-align:right;}
.empty-note{font-size:12.5px;color:var(--ink-3);line-height:1.5;}

/* ---------- PLAN ---------- */
.plan-note{background:var(--sup-tint);border-radius:var(--r-sm);padding:12px 15px;font-size:12.5px;color:var(--sup-deep);font-weight:550;line-height:1.45;margin-bottom:16px;}
.goal{background:var(--card);border-radius:var(--r);padding:15px 16px;box-shadow:var(--shadow-sm);margin-bottom:10px;display:flex;gap:13px;align-items:center;}
.goal .grail{width:4px;align-self:stretch;border-radius:3px;background:var(--rev);}
.goal .gb{flex:1;min-width:0;} .goal .gh{display:flex;align-items:center;gap:8px;margin-bottom:9px;} .goal .gh h3{font-size:15px;font-weight:700;letter-spacing:-0.01em;}
.goal .gt{height:8px;background:var(--bg);border-radius:5px;overflow:hidden;margin-bottom:8px;} .goal .gt i{display:block;height:100%;border-radius:5px;}
.goal .gm{font-size:11.5px;color:var(--ink-3);font-weight:600;display:flex;gap:11px;flex-wrap:wrap;} .goal .gm b{color:var(--ink);}
.goal .adj{display:flex;flex-direction:column;gap:5px;flex-shrink:0;} .goal .adj button{width:32px;height:28px;border-radius:8px;background:var(--bg);font-size:17px;font-weight:600;color:var(--ink);} .goal .adj button:hover{background:#e9e9ec;}
.proj{background:var(--card);border-radius:var(--r);box-shadow:var(--shadow-sm);margin-bottom:12px;overflow:hidden;}
.proj-h{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid var(--line);}
.proj-h .pd{width:11px;height:11px;border-radius:50%;flex-shrink:0;}
.proj-h h3{font-size:15px;font-weight:740;letter-spacing:-0.01em;}
.proj-h .cnt{margin-left:auto;font-size:11px;color:var(--ink-3);font-weight:650;}
.proj-h .del{font-size:11px;color:var(--ink-3);font-weight:600;padding:4px 8px;border-radius:7px;}
.proj-h .del:hover{color:var(--danger);background:#fff0f0;}
.ptask{padding:12px 16px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);}
.ptask:last-of-type{border-bottom:none;}
.ptask .b{flex:1;min-width:0;} .ptask .b h4{font-size:14px;font-weight:600;}
.ptask .b .m{font-size:11px;color:var(--ink-3);font-weight:550;margin-top:2px;display:flex;gap:6px;align-items:center;}
.ptask.done .b h4{text-decoration:line-through;color:var(--ink-3);}
.ptask .flag{font-size:10.5px;font-weight:700;padding:6px 11px;border-radius:11px;white-space:nowrap;}
.ptask .flag.today{color:var(--volt-deep);background:rgba(0,196,110,.12);}
.ptask .flag.date{color:var(--ink-2);background:var(--bg);}
.ptask .flag.none{color:var(--ink-3);background:var(--bg);}
.proj-add{padding:12px 16px;font-size:12.5px;font-weight:600;color:var(--ink-2);width:100%;text-align:left;}
.proj-add:hover{color:var(--ink);background:var(--bg);}

/* ---------- modal / sheet ---------- */
.scrim{position:fixed;inset:0;z-index:100;background:rgba(20,20,28,.4);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px;animation:fade .18s;}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:var(--card);border-radius:22px;box-shadow:var(--shadow-lg);width:100%;max-width:480px;max-height:90vh;overflow-y:auto;padding:24px;animation:pop .22s cubic-bezier(.2,.9,.3,1);}
@keyframes pop{from{transform:scale(.96);opacity:0}to{transform:scale(1);opacity:1}}
.modal h3{font-size:19px;font-weight:750;margin-bottom:18px;}
.field{margin-bottom:15px;}
.cat-picker,.proj-picker{display:flex;gap:8px;flex-wrap:wrap;}
.cat-opt{padding:11px 8px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:13px;font-weight:600;text-align:center;flex:1;min-width:80px;color:var(--ink-2);}
.cat-opt.on-Revenue{border-color:var(--rev);background:var(--rev-tint);color:var(--rev-deep);}
.cat-opt.on-Support{border-color:var(--sup);background:var(--sup-tint);color:var(--sup-deep);}
.cat-opt.on-Learning{border-color:var(--lea);background:var(--lea-tint);color:var(--lea-deep);}
.cat-opt.on-none{border-color:var(--ink-3);background:var(--bg);color:var(--ink);}
.goal-opt,.proj-opt{padding:9px 12px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-size:13px;font-weight:560;color:var(--ink-2);display:flex;align-items:center;gap:7px;}
.goal-opt.on,.proj-opt.on{border-color:var(--volt);background:rgba(0,196,110,.08);color:var(--ink);}
.proj-opt .pd{width:8px;height:8px;border-radius:50%;}
.dur-row{display:flex;gap:8px;flex-wrap:wrap;}
.dur-opt{flex:1;min-width:52px;padding:11px;border-radius:10px;border:1px solid var(--line);background:var(--card);font-size:13px;text-align:center;color:var(--ink-2);font-weight:600;}
.dur-opt.on{border-color:var(--volt);color:var(--volt-deep);background:rgba(0,196,110,.08);}
.modal-actions{display:flex;gap:10px;margin-top:8px;}
.modal-actions .save{flex:1;background:var(--volt);color:#053720;font-weight:700;font-size:15px;padding:14px;border-radius:var(--r-sm);}
.modal-actions .cancel{padding:14px 20px;border-radius:var(--r-sm);border:1px solid var(--line);color:var(--ink-2);font-weight:600;}
.modal-actions .del{padding:14px 18px;border-radius:var(--r-sm);border:1px solid #ffd9d6;color:var(--danger);font-weight:600;}
.num-row{display:flex;gap:10px;} .num-field{flex:1;} .num-field .nl{font-size:11px;color:var(--ink-3);font-weight:600;margin-bottom:6px;display:block;}
.flag-row{display:flex;gap:8px;flex-wrap:wrap;}
.flag-opt{padding:9px 13px;border-radius:9px;border:1px solid var(--line);background:var(--card);font-size:12.5px;font-weight:600;color:var(--ink-2);}
.flag-opt.on{border-color:var(--volt);background:rgba(0,196,110,.08);color:var(--volt-deep);}

/* stuck sheet */
.sheet{background:var(--card);border-radius:22px;box-shadow:var(--shadow-lg);width:100%;max-width:460px;max-height:90vh;overflow-y:auto;padding:22px;animation:pop .22s cubic-bezier(.2,.9,.3,1);}
.sheet h3{font-size:18px;font-weight:730;margin-bottom:5px;}
.sheet .sub{font-size:13px;color:var(--ink-2);margin-bottom:18px;line-height:1.45;}
.reasons{display:grid;gap:7px;}
.reason{text-align:left;padding:13px 15px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--card);font-size:14.5px;font-weight:500;display:flex;align-items:center;justify-content:space-between;}
.reason:hover{border-color:var(--ink-3);}
.reason .arrow{color:var(--ink-3);}
.interv .r-echo{font-size:12px;color:var(--amber);font-weight:650;margin-bottom:14px;}
.interv .step{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);}
.interv .step:last-of-type{border-bottom:none;}
.interv .step .n{font-size:12px;color:var(--volt-deep);font-weight:700;padding-top:2px;}
.interv .step .c .h{font-size:14px;font-weight:650;margin-bottom:3px;}
.interv .step .c .p{font-size:13px;color:var(--ink-2);line-height:1.45;}
.interv .step .c .p .money{color:var(--rev-deep);font-weight:650;}
.interv .shrunk{font-size:13.5px;background:var(--bg);border:1px solid var(--line);border-left:3px solid var(--volt);border-radius:10px;padding:11px 13px;margin-top:8px;line-height:1.4;}
.interv-actions{display:flex;flex-direction:column;gap:9px;margin-top:20px;}
.big-start{width:100%;background:var(--volt);color:#053720;font-weight:750;font-size:16px;padding:15px;border-radius:var(--r-sm);}
.ghost-btn{width:100%;background:transparent;border:1px solid var(--line);color:var(--ink-2);padding:13px;border-radius:var(--r-sm);font-size:14px;font-weight:600;}

/* nudge / tally sheet inside finish */
.tally-line{font-size:14px;color:var(--ink-2);line-height:1.5;margin-bottom:14px;} .tally-line b{color:var(--ink);}
.wk-strip{display:flex;gap:5px;} .wk-strip .d{flex:1;text-align:center;} .wk-strip .d .bar{height:34px;background:var(--bg);border-radius:5px;display:flex;align-items:flex-end;overflow:hidden;margin-bottom:4px;} .wk-strip .d .bar i{width:100%;border-radius:5px;} .wk-strip .d.ok i{background:var(--volt);} .wk-strip .d.miss i{background:var(--amber);} .wk-strip .d small{font-size:9.5px;color:var(--ink-3);font-weight:600;}

/* toast */
.toast{position:fixed;bottom:26px;left:50%;transform:translateX(-50%);background:var(--ink);color:#fff;font-size:14px;font-weight:550;padding:13px 20px;border-radius:999px;z-index:200;box-shadow:var(--shadow-lg);animation:toastin .3s;max-width:90vw;text-align:center;}
@keyframes toastin{from{opacity:0;transform:translate(-50%,12px)}to{opacity:1;transform:translate(-50%,0)}}

@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important;}}
@media (max-width:1080px){ .shell{grid-template-columns:200px 1fr;} .rail{display:none;} }

/* ---------- project settings + delete confirm ---------- */
.proj-settings{width:30px;height:30px;border-radius:8px;color:var(--ink-3);font-size:18px;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.proj-settings:hover{background:var(--bg);color:var(--ink);}
.settings-list{display:flex;flex-direction:column;gap:8px;}
.settings-item{display:flex;align-items:center;gap:13px;padding:13px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:var(--card);text-align:left;width:100%;transition:border-color .15s,background .15s;}
.settings-item:hover{border-color:var(--ink-3);background:var(--bg);}
.settings-item.danger:hover{border-color:#ffd9d6;background:#fff5f5;}
.settings-item .si-ic{font-size:17px;flex-shrink:0;}
.settings-item .si-t{font-size:14px;font-weight:640;}
.settings-item .si-d{font-size:12px;color:var(--ink-3);margin-top:2px;}
.settings-item.danger .si-t{color:var(--danger);}
.del-confirm{padding:14px 20px;border-radius:var(--r-sm);background:#f3d0cd;color:#a3352c;font-weight:700;font-size:14px;flex:1;transition:background .15s,color .15s;cursor:not-allowed;}
.del-confirm.armed{background:var(--danger);color:#fff;cursor:pointer;box-shadow:0 6px 16px rgba(255,95,87,.3);}
.del-confirm:disabled{opacity:1;}

/* sidebar gear */
.side-gear{margin-left:auto;width:30px;height:30px;border-radius:8px;color:var(--ink-3);font-size:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.side-gear:hover{background:#ececef;color:var(--ink);}
