:root, body.darkmode {
  --bg: #0f0f0f; --bg-2: #161616; --bg-3: #1e1e1e; --bg-4: #252525; --bg-5: #2e2e2e;
  --border: #2a2a2a; --border-dk: #444;
  --blue: #4da3ff; --blue-dim: rgba(77,163,255,0.12);
  --green: #22c55e; --green-dim: rgba(34,197,94,0.12);
  --amber: #f59e0b; --red: #ef4444; --red-dim: rgba(239,68,68,0.12);
  --teal: #14b8a6; --teal-dim: rgba(20,184,166,0.12);
  --violet: #a78bfa; --violet-dim: rgba(167,139,250,0.12);
  --text: #f0f0f0; --text-mid: #a0a0a0; --text-lt: #666;
  --shadow-lg: 0 8px 32px rgba(0,0,0,0.5);
  --card-shadow: 0 2px 12px rgba(0,0,0,0.35);
  --table-hover: rgba(255,255,255,0.06);
  --cc-val-bg: rgba(128,128,128,0.14);
  --blue-ring: rgba(77,163,255,0.4); --red-ring: rgba(239,68,68,0.4);
  --amber-ring: rgba(245,158,11,0.4); --teal-ring: rgba(20,184,166,0.4); --violet-ring: rgba(167,139,250,0.4);
  --hint-bg: var(--bg-2); --hint-border: var(--border);
  /* v2-style size tier (for expanded grid + strip) */
  --sz-s: #5dcaa5; --sz-m: #f0c060; --sz-l: #f08060; --sz-xl: #e05555;
}
/* Light — aligned with app modals (white / #F8F9FA / #007BFF / #DEE2E6) */
body:not(.darkmode) {
  --bg: #f1f3f5; --bg-2: #ffffff; --bg-3: #ffffff; --bg-4: #f8f9fa; --bg-5: #e9ecef;
  --border: #dee2e6; --border-dk: #ced4da;
  --blue: #007bff; --blue-dim: rgba(0,123,255,0.1);
  --link-cyan: #00aeef;
  --green: #198754; --green-dim: rgba(25,135,84,0.1);
  --amber: #d97706; --red: #dc3545; --red-dim: rgba(220,53,69,0.1);
  --teal: #0d9488; --teal-dim: rgba(13,148,136,0.1);
  --violet: #6f42c1; --violet-dim: rgba(111,66,193,0.1);
  --text: #212529; --text-mid: #495057; --text-lt: #6c757d;
  --shadow-lg: 0 10px 40px rgba(0,0,0,0.08), 0 2px 8px rgba(0,0,0,0.04);
  --card-shadow: 0 2px 16px rgba(0,0,0,0.06), 0 1px 3px rgba(0,0,0,0.04);
  --table-hover: rgba(0,123,255,0.06);
  --cc-val-bg: rgba(0,0,0,0.06);
  --blue-ring: rgba(0,123,255,0.45); --red-ring: rgba(220,53,69,0.45);
  --amber-ring: rgba(217,119,6,0.45); --teal-ring: rgba(13,148,136,0.45); --violet-ring: rgba(111,66,193,0.45);
  --hint-bg: #e7f3ff; --hint-border: #b6daff;
  --sz-s: #0f8a5f; --sz-m: #c58a00; --sz-l: #c45c2e; --sz-xl: #b02a2a;
}

.fl{font-size:10px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--text-mid);margin-bottom:8px;display:block;}

/* ── v7: Time estimate row ── */
.te-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 14px;background:var(--bg-4);border:1px solid var(--border);border-radius:8px;}
.hrs-wrap{display:flex;align-items:center;background:var(--bg-3);border:1px solid var(--border-dk);border-radius:6px;overflow:hidden;}
.hrs-wrap:focus-within{border-color:var(--blue);}
.hrs-lbl-in{padding:0 8px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-lt);background:var(--bg-5);border-right:1px solid var(--border);display:flex;align-items:center;white-space:nowrap;}
.hrs-in{width:52px;padding:8px 6px;border:none;outline:none;font-family:inherit;font-size:18px;font-weight:700;color:var(--text);background:transparent;text-align:center;}
.hrs-u{padding:0 8px 0 2px;font-size:10px;color:var(--text-lt);}
.te-helper{flex:1;font-size:11px;color:var(--text-lt);min-width:180px;}
.btn-improve{padding:8px 14px;background:var(--bg-5);border:1px solid var(--border-dk);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--text-mid);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px;transition:all .15s;}
.btn-improve:hover{border-color:var(--blue);color:var(--blue);}
.btn-improve:disabled{opacity:.45;cursor:not-allowed;}
body:not(.darkmode) .btn-improve{background:var(--blue);border-color:var(--blue);color:#fff;}
body:not(.darkmode) .btn-improve:hover{border-color:var(--blue);color:#fff;filter:brightness(1.06);}

/* ── Effective hours badge (always visible once calculated) ── */
.story-pts-badge{padding:6px 14px;border-radius:8px;font-size:14px;font-weight:700;color:#fff;background:var(--green);border:1px solid var(--green);white-space:nowrap;box-shadow:0 2px 8px rgba(0,0,0,0.12);letter-spacing:0.02em;}

/* ── CRUMB panel (hidden until Improve) ── */
.crumb-panel{display:none;margin-top:14px;}
.crumb-panel.show{display:block;animation:fadeIn .25s ease;}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px);}to{opacity:1;transform:none;}}

.crumb-card{background:var(--bg-4);border:1px solid var(--border);border-radius:8px;overflow:hidden;}
.crumb-card::before{content:'';display:block;height:3px;background:linear-gradient(90deg,var(--teal),var(--violet),var(--amber));opacity:.85;}

.ce-head{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;cursor:pointer;user-select:none;border-bottom:1px solid var(--border);background:var(--bg-2);}
.ce-head:hover{background:var(--bg-3);}
.ce-head-lbl{font-size:11px;font-weight:700;letter-spacing:0.06em;color:var(--text-mid);display:flex;align-items:center;gap:8px;}
.ce-chev{font-size:10px;color:var(--text-lt);transition:transform .2s;display:inline-block;}
.crumb-card.collapsed .ce-chev{transform:rotate(-90deg);}
.crumb-card.collapsed .ce-inner{display:none;}

.ce-inner{padding:12px;}
.ce-row{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap;margin-bottom:10px;}
.ce-row-mid{align-items:center;}
.crumb-arrow{color:var(--text-lt);font-size:14px;}
.ce-base-note{font-size:10px;color:var(--text-lt);width:100%;margin-bottom:6px;line-height:1.35;}
.est-block{flex:1;min-width:160px;}
.est-val{font-size:18px;font-weight:700;color:var(--blue);font-variant-numeric:tabular-nums;cursor:pointer;}
.est-val:hover{opacity:.9;}
.est-hint{font-size:9px;color:var(--text-lt);margin-top:3px;line-height:1.35;}
.adv-toggle{padding:6px 10px;background:var(--bg-5);border:1px solid var(--border-dk);border-radius:6px;font-family:inherit;font-size:10px;font-weight:600;color:var(--text-mid);cursor:pointer;display:inline-flex;align-items:center;gap:5px;white-space:nowrap;transition:all .15s;}
.adv-toggle:hover{border-color:var(--blue);color:var(--blue);}
.adv-toggle.on{background:var(--blue-dim);border-color:var(--blue);color:var(--blue);}

/* chips */
.crumb-chips-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-bottom:6px;}
.cc{display:inline-flex;align-items:center;gap:3px;padding:4px 8px;border-radius:5px;cursor:pointer;border:1px dashed var(--border-dk);color:var(--text-lt);background:var(--bg-5);font-size:11px;font-weight:600;user-select:none;transition:all .15s;}
.cc:hover{border-color:var(--blue);color:var(--blue);}
.cc.set{border-style:solid;}
.cc.sc{background:var(--blue-dim);border-color:var(--blue-ring);color:var(--blue);}
.cc.sr{background:var(--red-dim);border-color:var(--red-ring);color:var(--red);}
.cc.su{background:rgba(245,158,11,0.12);border-color:var(--amber-ring);color:var(--amber);}
body:not(.darkmode) .cc.su{background:rgba(217,119,6,0.1);}
.cc.sm2{background:var(--teal-dim);border-color:var(--teal-ring);color:var(--teal);}
.cc.sb{background:var(--violet-dim);border-color:var(--violet-ring);color:var(--violet);}
.cc-ltr{font-weight:700;}
.cc-val{font-size:9px;background:var(--cc-val-bg);padding:1px 4px;border-radius:3px;}
.chip-hint{font-size:9px;color:var(--text-lt);margin-left:4px;}

.inline-picker{display:none;gap:4px;padding:7px;background:var(--bg-3);border:1px solid var(--border-dk);border-radius:6px;margin-bottom:8px;box-shadow:var(--shadow-lg);}
.inline-picker.open{display:flex;}
.ip-opt{flex:1;padding:6px 3px;border:1px solid var(--border);border-radius:5px;text-align:center;cursor:pointer;background:var(--bg-4);}
.ip-opt:hover{border-color:var(--blue);}
.ip-opt.sel-c{background:var(--blue-dim);border-color:var(--blue-ring);}
.ip-opt.sel-r{background:var(--red-dim);border-color:var(--red-ring);}
.ip-opt.sel-u{background:rgba(245,158,11,0.12);border-color:var(--amber-ring);}
body:not(.darkmode) .ip-opt.sel-u{background:rgba(217,119,6,0.1);}
.ip-opt.sel-m{background:var(--teal-dim);border-color:var(--teal-ring);}
.ip-opt.sel-b{background:var(--violet-dim);border-color:var(--violet-ring);}
.ip-sz{font-size:12px;font-weight:700;display:block;}
.ip-desc{font-size:8px;color:var(--text-lt);line-height:1.2;}

/* ── v2 expanded: strip + table ── */
.adv-expanded{display:none;border-top:1px solid var(--border);margin-top:10px;padding-top:10px;}
.adv-expanded.open{display:block;}
.adv-expanded.open .sig-label,.adv-expanded.open .signal-strip{display:none;}

.signal-strip{display:flex;height:22px;margin-bottom:10px;border-radius:6px;overflow:hidden;gap:2px;}
.signal-seg{flex:1;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;letter-spacing:0.06em;}
.sig-label{font-size:9px;color:var(--text-lt);text-transform:uppercase;letter-spacing:0.08em;margin-bottom:4px;}

.vote-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;}
.badge-vote{font-size:9px;font-weight:700;padding:2px 8px;border-radius:100px;background:var(--violet-dim);color:var(--violet);border:1px solid var(--violet-ring);}
.vote-instr{font-size:9px;color:var(--text-lt);letter-spacing:0.04em;text-transform:uppercase;}

.crumb-table{width:100%;border-collapse:collapse;font-size:11px;table-layout:fixed;}
.crumb-table th{padding:8px 6px;font-size:10px;font-weight:600;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);color:var(--text-mid);overflow:hidden;}
.crumb-table th:first-child{text-align:left;width:36px;padding-left:8px;color:var(--text-lt);font-size:8px;letter-spacing:0.08em;}
.crumb-table th:last-child{border-right:none;}
.crumb-table td{padding:8px 6px;text-align:center;border-bottom:1px solid var(--border);border-right:1px solid var(--border);cursor:pointer;transition:background .12s;color:var(--text-mid);user-select:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.crumb-table td:first-child{font-size:10px;font-weight:700;color:var(--text-lt);text-align:left;padding-left:8px;cursor:default;}
.crumb-table td:last-child{border-right:none;}
.crumb-table tr:last-child td{border-bottom:none;}
.crumb-table td:not(:first-child):hover{background:var(--table-hover);}

.crumb-table tr.row-s td.sel{background:rgba(93,202,165,0.15);color:var(--sz-s);font-weight:700;}
.crumb-table tr.row-m td.sel{background:rgba(240,192,96,0.15);color:var(--sz-m);font-weight:700;}
.crumb-table tr.row-l td.sel{background:rgba(240,128,96,0.15);color:var(--sz-l);font-weight:700;}
.crumb-table tr.row-xl td.sel{background:rgba(224,85,85,0.15);color:var(--sz-xl);font-weight:700;}
.crumb-table td.dim-unset:not(:first-child){color:var(--text-lt);font-style:italic;}

.crumb-locked .btn-improve{display:none;}
.crumb-locked .crumb-table td:not(:first-child){pointer-events:none;cursor:default;}
.crumb-locked .hrs-in{background:var(--bg-2,#f0f0f0);cursor:not-allowed;color:var(--text-lt);}

.adv-foot{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding-top:8px;border-top:1px solid var(--border);gap:8px;flex-wrap:wrap;}
.adv-formula{font-size:9px;color:var(--text-lt);font-style:italic;}
.adv-mult{font-size:12px;font-weight:700;color:var(--text);}
.cap-warn{font-size:9px;color:var(--amber);display:none;}

.ft-hint{margin-top:16px;padding:12px 14px;background:var(--hint-bg);border:1px solid var(--hint-border);border-left:4px solid var(--blue);border-radius:8px;font-size:11px;color:var(--text-mid);line-height:1.5;}
body.darkmode .ft-hint{border-left-width:1px;border-left-color:var(--border);}
.ft-hint strong{color:var(--text);}

/* ── CRUMB vote button ── */
.crumb-vote-btn{padding:6px 12px;background:var(--violet-dim);border:1px solid var(--violet-ring);border-radius:6px;font-family:inherit;font-size:11px;font-weight:600;color:var(--violet);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:5px;transition:all .15s;}
.crumb-vote-btn:hover{filter:brightness(1.1);}
.crumb-vote-btn:disabled{opacity:.45;cursor:not-allowed;}
body:not(.darkmode) .crumb-vote-btn{background:var(--violet-dim);color:var(--violet);}

/* ── CRUMB votes display section ── */
.crumb-votes-section{overflow-x:auto;}
.crumb-votes-section table tr:hover td{background:var(--table-hover);}
