/* ============================================================
   Cohesion pass — shared pageKit + Health + Journal + Business Factory
   (2026-06-06). Loaded after styles.css; reuses the same theme vars.
   ============================================================ */

/* Shared page header / briefing */
.page-header { border-left: 3px solid var(--accent); margin-bottom: 16px; }
.page-header-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
.page-header-titles { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.page-header-title { font-size: 19px; font-weight: 600; margin: 0; }
.page-header-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.page-header-briefing { margin-top: 8px; font-size: 14px; color: var(--text-2); line-height: 1.45; }

/* Honest provenance badges */
.src-badge {
  font-size: 10px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase;
  padding: 2px 8px; border-radius: 999px; border: 1px solid currentColor; white-space: nowrap;
}
.src-live { color: var(--ok); }
.src-manual { color: var(--text-mute); }
.src-generated { color: #b98bff; }
.src-detected { color: var(--accent); }
.src-synced { color: var(--money); }
.src-ai { color: #7cc6ff; }                 /* a real model produced this */
.src-rule { color: var(--text-mute); }       /* deterministic rules / templates */
.src-bank { color: var(--money); }
.src-email { color: var(--accent); }
.src-needs_review { color: var(--warn, #e0a33e); }

/* Action brief extras (honest AI/rule provenance) */
.askagent-why { font-size: 13px; color: var(--text-2); margin: 2px 0 8px; line-height: 1.45; }
.askagent-done { margin-top: 8px; font-size: 12.5px; color: var(--ok); font-weight: 600; }

/* Per-step "explain this step" */





.explain-fields > div { line-height: 1.45; }
.explain-k { display: inline-block; min-width: 92px; font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .04em; color: var(--text-mute); margin-right: 6px; }


/* Email/bill action summary + Stability explain box */
.action-summary { background: var(--surface-2); border-radius: 10px; padding: 10px 12px; margin-top: 10px; }
.action-summary-head { font-weight: 600; font-size: 14px; }
.action-summary-detail { font-size: 12.5px; color: var(--text-2); margin-top: 3px; line-height: 1.5; }
.action-summary-foot { margin-top: 6px; }
.btn-ai { display: inline-flex; align-items: center; gap: 6px; }



/* ---- Actionable step tools (Task Drawer) ---- */
.step-act-chip { margin-left: 6px; font-size: 11px; opacity: .8; }
.step-item.has-capture .step-text::after { content: ' •'; color: var(--ok); }
.step-explain.open { color: var(--accent); border-color: var(--accent); }
.step-tools { margin: 2px 0 10px 30px; background: var(--surface-2); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 9px; font-size: 12.5px; line-height: 1.5; }

.step-launchers { display: flex; gap: 8px; flex-wrap: wrap; }
.step-launchers .btn-ghost { text-decoration: none; }
.step-script { background: var(--surface-1, var(--bg)); border: 1px solid var(--hair); border-radius: 8px; padding: 8px 10px; }
.step-script-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 4px; }
.step-script-body { white-space: pre-wrap; color: var(--text-2); }
.step-capture { display: flex; flex-direction: column; gap: 7px; }
.cap-row { display: flex; gap: 6px; }
.cap-input { flex: 1; min-width: 0; background: var(--bg); border: 1px solid var(--hair); border-radius: 6px; padding: 5px 8px; color: var(--text); font-size: 12.5px; }
.cap-textarea { width: 100%; box-sizing: border-box; background: var(--bg); border: 1px solid var(--hair); border-radius: 6px; padding: 6px 8px; color: var(--text); font-size: 12.5px; resize: vertical; }
.cap-outcomes { display: flex; gap: 6px; flex-wrap: wrap; }
.cap-outcome { background: var(--bg); border: 1px solid var(--hair); border-radius: 999px; padding: 4px 10px; font-size: 12px; cursor: pointer; color: var(--text-2); }
.cap-outcome.on { background: var(--accent); color: #fff; border-color: var(--accent); }

.sl-item { display: grid; grid-template-columns: 22px 1fr auto; gap: 6px; align-items: start; padding: 4px 0; border-bottom: 1px solid var(--hair); }
.sl-item.chosen { background: rgba(124,198,255,.06); }
.sl-star { background: none; border: none; cursor: pointer; color: var(--accent); font-size: 15px; }
.sl-body { word-break: break-word; }
.sl-del { background: none; border: none; cursor: pointer; color: var(--text-mute); font-size: 15px; }
.sl-add { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.sl-add .cap-input { flex: 1 1 90px; }
.appt-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; }
.appt-field { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: var(--text-mute); }
@media (max-width: 480px) { .appt-grid { grid-template-columns: 1fr; } }
.move-launch { margin-top: 6px; }

/* ---- 3-level model: Improve checklist menu + Work this task surface ---- */
.checklist-improve { position: relative; margin-top: 4px; }



.improve-opt strong { font-size: 13px; color: var(--text); }
.improve-opt span { font-size: 11.5px; color: var(--text-mute); }














.ws-tools a { text-decoration: none; }


.ws-sl-row a { text-decoration: none; }

/* Inline shortlist-call rows (the "call top 3" step uses saved entries) */
.sl-call { background: var(--bg); border: 1px solid var(--hair); border-radius: 8px; padding: 7px 9px; margin-bottom: 6px; display: flex; flex-direction: column; gap: 5px; }
.sl-call.booked { border-color: var(--ok); }
.sl-call-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.sl-call-name { font-size: 12.5px; word-break: break-word; }
.sl-call-btn { text-decoration: none; flex: none; }


/* Research / candidate fetch ("the app does the computer work") */
.sl-fetch { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.sl-msg { font-size: 12px; padding: 4px 0; }
.sl-msg.ok { color: var(--ok); }
.sl-msg.warn { color: var(--warn, #e0a33e); }
.sl-cov { color: var(--money); font-size: 12px; }
.sl-meta { display: block; font-size: 12px; color: var(--text-2); margin-top: 1px; }
.sl-tags { display: inline-flex; gap: 6px; align-items: center; margin-top: 3px; flex-wrap: wrap; }
.sl-tags a { font-size: 11.5px; }
.sl-manual { margin-top: 6px; }
.sl-manual summary { font-size: 12px; color: var(--text-mute); cursor: pointer; }




/* Intelligence status card (Settings) */
.intel-status { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.intel-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--text-mute); flex: none; }
.intel-dot.on { background: var(--ok); }
.intel-providers { margin-top: 10px; font-size: 12.5px; color: var(--text-2); line-height: 1.6; }
.intel-providers code { background: var(--surface-2); padding: 1px 6px; border-radius: 4px; font-size: 12px; }

/* ---- Health ---- */
.streak-row { display: flex; gap: 12px; flex-wrap: wrap; }
.streak-pill { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 12px 18px; border-radius: var(--r); background: var(--surface-2); border: 1px solid var(--hair); min-width: 120px; }
.streak-days { font-size: 28px; font-weight: 700; color: var(--accent); }
.streak-label { font-size: 12px; color: var(--text-2); }
.streak-since, .streak-edit { font-size: 11px; color: var(--text-faint); background: none; border: none; cursor: pointer; }
.streak-since:hover { color: var(--accent); }
.streak-edit { display: flex; gap: 4px; align-items: center; }
.floor-input, .jc-body, .ssb-input, .agent-prompt, .strategy-field textarea, .source-add textarea { width: 100%; resize: vertical; font: inherit; padding: 10px 12px; border-radius: var(--r); border: 1px solid var(--hair-strong); background: var(--surface-2); color: var(--text); box-sizing: border-box; }
.sleep-grid { display: grid; grid-template-columns: 100px 140px 1fr; gap: 12px; }
.sleep-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--text-2); }
.sleep-grid input, .sleep-grid select { font: inherit; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--hair-strong); background: var(--surface-2); color: var(--text); }
.quick-actions, .strategy-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.quick-action-btn { font: inherit; font-size: 13px; cursor: pointer; padding: 8px 14px; border-radius: 999px; border: 1px solid var(--hair-strong); background: transparent; color: var(--text); }
.quick-action-btn:hover { border-color: var(--accent); }
.factors-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.factor-head { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; margin-bottom: 8px; }
.factor-head.risk { color: var(--warn); }
.factor-head.help { color: var(--ok); }
.factor-row { display: flex; justify-content: space-between; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--hair); font-size: 14px; }
.factor-del { background: none; border: none; color: var(--text-faint); cursor: pointer; font-size: 16px; }
.factor-del:hover { color: var(--critical); }
.factor-add, .journal-search, .jc-row { display: flex; gap: 8px; margin-top: 8px; }
.factor-add input, .journal-search input, .jc-row input, .jc-row select { font: inherit; flex: 1; padding: 8px 10px; border-radius: var(--r-sm); border: 1px solid var(--hair-strong); background: var(--surface-2); color: var(--text); }
.stability-log-row { display: flex; gap: 10px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid var(--hair); font-size: 14px; }
.slog-date { color: var(--text-faint); font-size: 11px; min-width: 80px; }
.slog-text { flex: 1; }
.linked-project-row { display: flex; gap: 12px; align-items: center; width: 100%; text-align: left; padding: 10px 12px; border: 1px solid var(--hair); border-radius: var(--r); background: var(--surface-2); margin-bottom: 8px; cursor: pointer; font: inherit; color: var(--text); }
.linked-project-row:hover { border-color: var(--accent); }
.lp-name { font-weight: 600; }
.lp-next { flex: 1; color: var(--text-mute); font-size: 13px; }
.lp-open { color: var(--text-faint); font-size: 12px; white-space: nowrap; }

/* ---- Journal ---- */
.journal-search { margin-bottom: 14px; }
.journal-entry { padding: 12px 0; border-bottom: 1px solid var(--hair); }
.journal-entry.pinned { background: var(--surface-2); border-radius: var(--r); padding: 12px; }
.je-head { display: flex; align-items: center; gap: 8px; }
.je-kind { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; padding: 2px 7px; border-radius: 999px; border: 1px solid var(--hair-strong); color: var(--text-mute); }
.je-kind.kind-recovery { color: var(--ok); border-color: var(--ok); }
.je-kind.kind-business { color: #b98bff; border-color: #b98bff; }
.je-kind.kind-source { color: var(--accent); border-color: var(--accent); }
.je-title { font-weight: 600; }
.je-spacer { flex: 1; }
.je-pin { background: none; border: none; cursor: pointer; color: var(--warn); font-size: 15px; }
.je-body { margin: 6px 0; font-size: 14px; white-space: pre-wrap; }
.je-foot { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.je-link-chip { font-size: 11px; color: var(--accent); border: 1px solid var(--accent-line); border-radius: 999px; padding: 1px 8px; }
.je-tag { font-size: 11px; color: var(--text-faint); }
.je-date { margin-left: auto; font-size: 11px; color: var(--text-faint); }
.feed-row { display: flex; gap: 10px; align-items: baseline; padding: 8px 0; border-bottom: 1px solid var(--hair); font-size: 13px; cursor: pointer; }
.feed-row:hover { background: var(--surface-2); }
.feed-src { color: var(--text-faint); white-space: nowrap; min-width: 90px; }
.feed-text { flex: 1; }
.feed-date { color: var(--text-faint); font-size: 11px; }

/* ---- Business: Strategy + Factory ---- */


.strategy-field.money .strategy-label { color: var(--money); }











.source-stage-block.filled { background: var(--surface); }

















@media (max-width: 900px) {
  .factors-grid, .strategy-grid { grid-template-columns: 1fr; }
  .sleep-grid { grid-template-columns: 1fr 1fr; }
}

/* ---- Business: artifact editor + bundles (artifact pass) ---- */












.quick-action-btn.on { border-color: var(--ok); color: var(--ok); }




.art-field textarea { width: 100%; resize: vertical; font: inherit; padding: 9px 11px; border-radius: var(--r-sm); border: 1px solid var(--hair-strong); background: var(--surface-2); color: var(--text); box-sizing: border-box; }








/* ---- Worksheet Quality System ---- */




   







 
 
 

.qp-notes li { margin-bottom: 4px; }







.rev-row.undone { opacity: .5; }







/* Product preview (buyer-facing printable) */


.product-preview.st-draft .pp-statebar { background: var(--warn-soft); color: var(--warn); }
.product-preview.st-edited .pp-statebar { background: var(--accent-soft); color: var(--accent); }
.product-preview.st-ready .pp-statebar { background: rgba(120,190,150,.18); color: var(--ok); }









/* Danny Voice card */




/* Bundle worksheet quality chips */







/* ---- Action Intelligence: Recovery card ---- */











/* ---- Action Intelligence: Business launchpad ---- */


.biz-pipeline-status .biz-stage { font-size: 11px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--hair); color: var(--text-faint); }





.biz-active-link { font: inherit; font-size: 14px; font-weight: 600; background: none; border: none; color: var(--accent); cursor: pointer; padding: 0; text-align: left; }
.biz-active-link:hover { text-decoration: underline; }




.biz-nextmove-action .biz-nextmove-val { font-size: 16px; font-weight: 600; margin: 6px 0 12px; line-height: 1.35; }
.biz-nextmove-btn { font-size: 14px; }

/* ---- Checklist provenance + done condition ---- */
.checklist-head-aux { display: inline-flex; gap: 8px; align-items: center; }
.checklist-source { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: var(--text-faint); border: 1px solid var(--hair-strong); border-radius: 999px; padding: 1px 8px; }
.done-condition { font-size: 13px; color: var(--ok); background: rgba(120,190,150,.1); border-radius: var(--r-sm); padding: 7px 11px; margin: 6px 0 10px; }


/* ---- Bill intelligence (auto-pay + bank-aware) ---- */
.msg-next-main { display: flex; flex-direction: column; gap: 2px; flex: 1; min-width: 0; }
.msg-next-context { font-size: 11px; color: var(--text-faint); }
.bill-intel { margin: 10px 0; padding: 10px 12px; border-radius: var(--r); background: var(--surface-2); border: 1px solid var(--hair); }
.bill-intel-line { font-size: 13px; color: var(--text); font-weight: 500; }
.bill-intel-note { font-size: 12px; color: var(--text-mute); margin-top: 5px; line-height: 1.45; }
.bill-autopay-toggle { margin-top: 8px; font: inherit; font-size: 12px; cursor: pointer; padding: 5px 11px; border-radius: 999px; border: 1px dashed var(--hair-strong); background: transparent; color: var(--text-mute); }
.bill-autopay-toggle:hover { border-color: var(--accent); color: var(--text); }
.bill-autopay-toggle.on { border-style: solid; border-color: var(--ok); color: var(--ok); }

/* ---- Do Next card progress bars (checklist closeness, no click needed) ---- */



.cmdq-progress-fill.complete { box-shadow: 0 0 9px rgba(120, 190, 150, .7); }
/* precise count chip in the header */

.cmdq-steps.complete { background: rgba(120, 190, 150, .15); opacity: 1; }

/* ---- Snooze menu (task drawer) ---- */
.compact-actions-wrap { display: flex; flex-direction: column; gap: 8px; margin-bottom: 6px; }
.btn-ghost.snooze-open { border-color: var(--accent); color: var(--accent); }
.snooze-menu { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 8px 10px; border: 1px solid var(--accent-line); border-radius: var(--r); background: var(--surface-2); }
.snooze-menu-label { font-size: 12px; color: var(--text-faint); margin-right: 2px; }
.snooze-menu button { font: inherit; font-size: 12px; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--hair-strong); background: transparent; color: var(--text); cursor: pointer; }
.snooze-menu button:hover { border-color: var(--accent); color: var(--accent); }
.snooze-status { font-size: 12px; color: var(--text-mute); }

/* ---- Do Next typed cards + email evidence ---- */

.cmdq-type.ctype-money { color: var(--warn); }
.cmdq-type.ctype-email { color: var(--accent); }
.cmdq-type.ctype-business { color: #b98bff; }
.cmdq-type.ctype-stability { color: #5fb8a8; }
.cmdq-type.ctype-cal { color: var(--accent); }
.cmdq-type.ctype-project { color: #5b9dff; }
.cmdq-type.ctype-call { color: var(--ok); }
.cmdq-type.ctype-errand { color: var(--text-mute); }
.cmdq-type.ctype-task { color: var(--text-mute); }

.related-evidence { align-items: flex-start; }
.related-snip { display: block; font-size: 12px; color: var(--text-faint); margin-top: 4px; line-height: 1.4; }

/* ---- Email Ops: labeled disposition actions + dedup cluster + expand ---- */
.msg-quick { display: flex; flex-direction: column; gap: 3px; }
.msg-quick button { display: flex; align-items: center; gap: 5px; font-size: 11px; padding: 3px 8px; border-radius: var(--r-sm); border: 1px solid var(--hair); background: transparent; color: var(--text-mute); cursor: pointer; white-space: nowrap; }
.msg-quick button:hover { border-color: var(--accent); color: var(--text); }
.msg-quick .q-label { font-size: 10px; }
.msg-dupes { font-size: 11px; color: var(--text-faint); padding: 2px 12px 8px 40px; }
.msg-dupes b { color: var(--warn); }
.detail-fullsnip { background: var(--surface-2); border: 1px solid var(--hair); border-radius: var(--r); padding: 12px 14px; font-size: 14px; line-height: 1.55; white-space: pre-wrap; margin: 10px 0; }
.detail-fullsnip-label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-faint); margin-bottom: 6px; }

/* ---- Adaptive Task Drawer ---- */
/* Date inputs read correctly in the dark theme (no white blob, themed picker). */
.task-drawer input[type="date"], .drawer-edit-field input[type="date"], .defer-date { color-scheme: dark; }

/* Compact chore drawer */
.task-compact .drawer-body { display: flex; flex-direction: column; gap: 4px; }
.compact-why { font-size: 13px; color: var(--text-mute); margin: 2px 0 8px; }
.compact-file { margin-bottom: 10px; }
.compact-file-btn { font: inherit; font-size: 12px; cursor: pointer; padding: 4px 11px; border-radius: 999px; border: 1px dashed var(--hair-strong); background: transparent; color: var(--accent); }
.compact-file-btn:hover { border-style: solid; background: var(--accent-soft); }
.compact-lane { font-size: 12px; color: var(--text-mute); }
.compact-move { padding: 14px 16px; border-radius: var(--r); background: var(--surface-2); border: 1px solid var(--accent-line); margin: 4px 0 12px; }
.compact-move-label { font-size: 11px; font-weight: 700; letter-spacing: .06em; color: var(--accent); margin-bottom: 6px; }
.compact-move-text { font-size: 18px; font-weight: 600; line-height: 1.35; }
.compact-approach { font-size: 12px; color: var(--text-faint); margin-top: 8px; font-style: italic; }
.compact-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 6px; }
.compact-actions .btn-primary, .compact-actions .btn-ghost { font-size: 13px; }
.defer-date { font: inherit; padding: 7px 10px; border-radius: var(--r-sm); border: 1px solid var(--accent); background: var(--surface-2); color: var(--text); }
.compact-addnote { align-self: flex-start; font-size: 12px; margin-top: 4px; }
.task-compact .drawer-section { margin-top: 10px; }

/* ============================================================
   Home rebuild (2026-06-07) — control strip, hero, recovery, rail
   ============================================================ */
/* Control strip: 6 compact tiles that point to exact surfaces */








/* Hero: Do Next dominates */
#home-donext.card-dominant { border-left: 3px solid var(--accent); }
#home-donext > .card-title > span:first-child { font-size: 18px; }

/* Rows stack earlier so there are no cramped/dead gaps at half-monitor width */
@media (max-width: 920px) { .home-row-2 { grid-template-columns: 1fr; } }

/* Recovery card — recovery-literate */
.recovery-hero { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; background: none; border: none; cursor: pointer; padding: 2px 0 8px; text-align: left; }
.recovery-hero-num { font-size: 30px; font-weight: 800; color: var(--accent); line-height: 1.05; }
.recovery-hero-label { font-size: 12px; color: var(--text-2); }
.recovery-counters { display: flex; gap: 22px; padding: 6px 0; border-top: 1px solid var(--hair); border-bottom: 1px solid var(--hair); }
.recovery-counter { display: flex; flex-direction: column; }
.recovery-counter-num { font-size: 18px; font-weight: 700; }
.recovery-counter-label { font-size: 10.5px; color: var(--text-mute); text-transform: uppercase; letter-spacing: .04em; }

.recovery-anchor.set { border-left: 3px solid var(--ok); }






/* Briefing rail — trimmed (no duplicated status facts) */



/* Schedule "next" highlight */





/* ============================================================
   Home presence pass (2026-06-07) — use the viewport, kill the void
   ============================================================ */
.home-wide { grid-template-columns: minmax(0, 1fr) 400px; gap: 18px; }
@media (min-width: 1700px) { .home-wide { grid-template-columns: minmax(0, 1fr) 460px; gap: 20px; } }

/* Control strip — taller, readable tiles (no more tiny stat-card feel) */






/* Do Next — a true hero card */
#home-donext.card-dominant { padding: 22px 26px; }
#home-donext > .card-title > span:first-child { font-size: 22px; }
#home-donext .cmdq-item.tier-now { padding: 20px 22px; }
#home-donext .cmdq-item.tier-now .cmdq-title { font-size: 19px; }
#home-donext .cmdq-item.tier-now .cmdq-next { font-size: 15px; }
#home-donext .cmdq-item.tier-now .cmdq-why { font-size: 13.5px; }

/* Recovery: today's meeting anchor (fills the card, recovery-literate) */





/* Schedule: collapse recurring soup */


/* ============================================================
   Home — Hybrid C product-confidence pass (2026-06-07)
   Mockup-1 visual language: icon status tiles, depth, hero glow.
   ============================================================ */
/* Status instruments — icon chip + big value + severity color */




.readout-ic svg { width: 18px; height: 18px; }
.readout-ic.tone-accent { color: #c9bdff; background: rgba(124,108,255,.30); }
.readout-ic.tone-money { color: #7ee0a3; background: rgba(70,200,120,.26); }
.readout-ic.tone-warn { color: #ffc06a; background: rgba(224,150,60,.28); }
.readout-ic.tone-business { color: #d3b6ff; background: rgba(185,139,255,.28); }
.readout-ic.tone-mute { color: #aeb2c8; background: rgba(255,255,255,.08); }




.readout-seg.tone-warn .readout-seg-sub { color: var(--critical, #e0a23c); }

/* HERO — the prepared-work cockpit */
.hero-card { padding: 0; overflow: hidden;
  background:
    radial-gradient(130% 150% at 0% 0%, var(--accent-soft), transparent 52%),
    var(--card-grad-elev);
  border: 1px solid var(--accent-line);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 0 0 1px var(--accent-soft), 0 28px 64px -22px var(--glow); }
.hero-head { display: flex; justify-content: space-between; align-items: center; padding: 10px 16px; border-bottom: 1px solid var(--hair); }
.hero-head-title { display: flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 700; }
.hero-head-title svg { width: 18px; height: 18px; color: var(--accent); }
.hero-head-actions { display: flex; gap: 8px; }
.btn-ghost-sm { background: rgba(255,255,255,.04); border: 1px solid var(--hair); color: var(--text-2); border-radius: 9px; padding: 6px 12px; font-size: 12.5px; cursor: pointer; }
.btn-ghost-sm.strong { background: var(--accent-soft, rgba(124,108,255,.18)); color: var(--accent); border-color: transparent; font-weight: 600; }
.btn-ghost-sm:hover { border-color: var(--accent); }
.hero-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 0; }
@media (max-width: 1180px) { .hero-grid { grid-template-columns: 1fr; } }
.hero-now { padding: 22px 24px; min-width: 0; }
.hero-kicker { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; color: var(--accent); display: flex; align-items: center; gap: 8px; }
.hero-src { font-size: 9px; }
.hero-headline { font-size: 32px; font-weight: 800; line-height: 1.08; margin: 8px 0 6px; letter-spacing: -.01em; }
.hero-sub { font-size: 15px; color: var(--text-2); line-height: 1.45; }
.hero-arrow { color: var(--accent); }
.hero-why { font-size: 13px; color: var(--text-mute); margin-top: 6px; }
.hero-checks { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.hero-checks li { font-size: 13.5px; color: var(--text); }
.hero-checks li::first-letter { color: var(--ok); }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }
.btn-hero { background: linear-gradient(180deg, var(--accent), color-mix(in srgb, var(--accent) 78%, #000)); color: var(--on-accent, #0c0c0c);
  border: none; border-radius: 11px; padding: 12px 20px; font-size: 14px; font-weight: 700; cursor: pointer;
  box-shadow: 0 10px 26px -8px var(--glow); transition: transform .12s ease, filter .12s ease; }
.btn-hero:hover { filter: brightness(1.06); transform: translateY(-1px); }
.btn-hero:disabled { opacity: .6; }
.btn-hero-ghost { background: rgba(255,255,255,.05); color: var(--text); border: 1px solid var(--hair); border-radius: 11px; padding: 12px 16px; font-size: 13.5px; font-weight: 600; cursor: pointer; }
.btn-hero-ghost:hover { border-color: var(--accent); }
.hero-empty { padding: 40px 24px; }
/* Up next */
.upnext { padding: 14px 16px; border-left: 1px solid var(--hair); display: flex; flex-direction: column; gap: 6px; }
@media (max-width: 1180px) { .upnext { border-left: none; border-top: 1px solid var(--hair); } }
.upnext-label { font-size: 10px; font-weight: 700; letter-spacing: .1em; color: var(--text-mute); margin-bottom: 4px; }
.upnext-row { display: flex; align-items: flex-start; gap: 10px; width: 100%; text-align: left; cursor: pointer;
  background: none; border: none; border-radius: 10px; padding: 6px 8px; }
.upnext-row:hover { background: rgba(255,255,255,.03); }
.upnext-dot { width: 9px; height: 9px; border-radius: 50%; margin-top: 5px; flex: none; background: var(--text-mute); }
.upnext-dot.dot-money { background: var(--money); } .upnext-dot.dot-business { background: #b98bff; }
.upnext-dot.dot-career { background: var(--accent); } .upnext-dot.dot-life { background: var(--text-2); }
.upnext-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 1px; }
.upnext-type { font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-mute); }
.upnext-title { font-size: 13.5px; font-weight: 600; }
.upnext-next { font-size: 12px; color: var(--text-mute); }
.upnext-when { font-size: 11px; color: var(--text-faint); white-space: nowrap; }

/* Runway bar (real data only) */
.runway-bar { position: relative; height: 8px; border-radius: 6px; background: rgba(255,255,255,.06); margin: 4px 0 10px; overflow: hidden; }
.runway-bar-fill { height: 100%; border-radius: 6px; background: var(--money); }
.runway-bar-fill.warn { background: var(--critical, #e0a23c); }
.runway-bar-fill.critical { background: #e0533c; }
.runway-bar-mark { position: absolute; top: -2px; width: 1px; height: 12px; background: rgba(255,255,255,.25); }

/* Richer card surfaces across Home */
.home-main > .card, .home-rail > .card { box-shadow: 0 8px 24px rgba(0,0,0,.18); border-color: var(--hair); }
.home-rail .card-title span:first-child, .home-main .card-title span:first-child { font-size: 15px; font-weight: 700; }

/* ===== Decision Queue (2026-06-08) — "approve, not figure out" ===== */
.decisions-wrap { display: flex; flex-direction: column; gap: 12px; }
.decisions-banner { display: flex; flex-direction: column; gap: 4px; border-left: 3px solid var(--accent); }
.decisions-banner-main { display: flex; align-items: baseline; gap: 8px; }
.decisions-count { font-size: 30px; font-weight: 800; color: var(--accent); line-height: 1; }
.decisions-count-label { font-size: 15px; font-weight: 600; color: var(--text); }
.decisions-banner-sub { font-size: 12.5px; color: var(--text-mute); }
.promo-collapse { display: flex; align-items: center; justify-content: space-between; gap: 12px; background: var(--surface-2); }
.promo-collapse-text { font-size: 13px; color: var(--text-2); }
.promo-collapse-actions { display: flex; gap: 8px; flex-shrink: 0; }
.decision-card { display: flex; flex-direction: column; gap: 6px; border-left: 3px solid var(--hair-strong); }
.decision-card.handled { opacity: 0.72; border-left-color: var(--ok); }
.decision-head { display: flex; justify-content: space-between; align-items: baseline; }
.decision-from { font-weight: 600; font-size: 13px; color: var(--text); }
.decision-date { font-size: 11.5px; color: var(--text-faint); }
.decision-subj { font-size: 14.5px; font-weight: 600; color: var(--text); }
.decision-dupes { font-size: 11.5px; color: var(--text-mute); font-weight: 500; }
.decision-badges { display: flex; gap: 6px; flex-wrap: wrap; }
.decision-headline { font-size: 14px; font-weight: 700; color: var(--text); margin-top: 2px; }
.decision-why { font-size: 12.5px; color: var(--text-2); line-height: 1.45; }
.decision-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 6px; }
.decision-fullmsg { margin-top: 2px; }
.decision-fullmsg-toggle { background: none; border: none; color: var(--accent); font-size: 12px; cursor: pointer; padding: 2px 0; font: inherit; }
.decision-fullmsg-body { margin-top: 6px; padding: 10px 12px; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: var(--r); font-size: 12.5px; color: var(--text-2); white-space: pre-wrap; max-height: 320px; overflow-y: auto; line-height: 1.5; }
.handled-collapse { background: var(--surface-2); }
.handled-collapse-head { background: none; border: none; color: var(--text-2); font-size: 13px; font-weight: 600; cursor: pointer; padding: 2px 0; font: inherit; width: 100%; text-align: left; }
.decision-wrong { background: none; border: none; color: var(--text-faint); font-size: 11.5px; cursor: pointer; font: inherit; margin-left: auto; align-self: center; padding: 2px 4px; }
.decision-wrong:hover { color: var(--text-2); text-decoration: underline; }

/* ===== Decision Queue v2 (2026-06-08) — confidence, buckets, pressure, reply ===== */
.decisions-pressure { display: flex; gap: 8px; align-items: center; font-size: 12.5px; color: var(--text-2); margin-top: 2px; }
.pressure-stat b { color: var(--text); font-weight: 700; }
.pressure-sep { color: var(--text-faint); }
.decision-head-right { display: flex; align-items: center; gap: 8px; }
.conf-chip { font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; padding: 2px 7px; border-radius: 999px; }
.conf-approve { background: var(--money-soft); color: var(--money); border: 1px solid var(--money-line); }
.conf-review { background: var(--warn-soft); color: var(--warn); border: 1px solid rgba(212,167,110,0.36); }
.conf-auto { background: var(--neutral-soft); color: var(--text-mute); border: 1px solid var(--hair-strong); }
.decision-card.bucket-reply { border-left-color: var(--accent); }
.decision-card.bucket-consequence { border-left-color: var(--warn); }
.decision-card.bucket-record { border-left-color: var(--money); }
.decision-card.bucket-review { border-left-color: var(--hair-strong); }
.reply-composer { margin-top: 8px; padding: 12px; background: var(--bg-deep); border: 1px solid var(--accent-line); border-radius: var(--r-lg); }
.reply-composer-loading { color: var(--text-2); font-size: 13px; }
.reply-composer-head { font-size: 12.5px; font-weight: 600; color: var(--text-2); margin-bottom: 8px; display: flex; align-items: center; gap: 8px; }
.reply-composer-text { width: 100%; box-sizing: border-box; background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r); color: var(--text); font: inherit; font-size: 13px; padding: 10px; resize: vertical; line-height: 1.5; }
.reply-composer-actions { display: flex; gap: 8px; margin-top: 8px; }

.ai-reading { color: var(--accent); font-style: italic; }
.ai-mark { font-size: 12px; }

/* ===== Home cockpit rebuild (2026-06-08) ===== */
/* Capture bar — the one typing surface */
.capture-bar { display: flex; align-items: center; gap: 10px; padding: 12px 16px; background: linear-gradient(180deg, var(--surface-2), var(--surface)); border: 1px solid var(--hair-strong); border-radius: var(--r-lg); box-shadow: 0 1px 0 rgba(255,255,255,0.02) inset, 0 6px 18px rgba(0,0,0,0.25); margin-bottom: 14px; }
.capture-ic { color: var(--accent); font-size: 15px; opacity: 0.8; }
.capture-input { flex: 1; background: transparent; border: none; outline: none; color: var(--text); font: inherit; font-size: 14.5px; }
.capture-input::placeholder { color: var(--text-faint); }
.capture-btn { background: var(--accent-soft); border: 1px solid var(--accent-line); color: var(--accent); border-radius: var(--r); padding: 7px 16px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.capture-btn:hover:not(:disabled) { background: var(--accent); color: #06121d; }
.capture-btn:disabled { opacity: 0.4; cursor: default; }
.capture-flash { color: var(--money); font-size: 13px; font-weight: 600; }

/* Focused email action — right-side panel, NOT the old drawer */
.focus-panel { position: fixed; top: 0; right: 0; height: 100vh; width: 540px; max-width: 92vw; background: var(--surface); border-left: 1px solid var(--hair-strong); box-shadow: -16px 0 40px rgba(0,0,0,0.4); z-index: 1200; display: flex; flex-direction: column; animation: focusIn 0.18s ease-out; }
@keyframes focusIn { from { transform: translateX(24px); opacity: 0.6; } to { transform: translateX(0); opacity: 1; } }
.focus-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; border-bottom: 1px solid var(--hair); }
.focus-head-tag { font-size: 10px; letter-spacing: 0.08em; color: var(--text-faint); font-weight: 700; }
.focus-body { padding: 20px; overflow-y: auto; }
.focus-from { color: var(--text-2); font-size: 13px; font-weight: 600; }
.focus-subj { font-size: 19px; font-weight: 700; color: var(--text); margin: 4px 0 10px; line-height: 1.25; }
.focus-read { font-size: 14.5px; font-weight: 700; color: var(--accent); margin-bottom: 10px; }
.focus-snip { font-size: 13px; color: var(--text-2); line-height: 1.55; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: var(--r); padding: 12px 14px; max-height: 240px; overflow-y: auto; white-space: pre-wrap; }
.focus-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 16px; }
.focus-linked { margin-top: 18px; }
.focus-linked-label { font-size: 10px; letter-spacing: 0.08em; color: var(--text-faint); font-weight: 700; margin-bottom: 6px; }
.focus-linked-row { display: block; width: 100%; text-align: left; background: var(--surface-2); border: 1px solid var(--hair); border-radius: var(--r); padding: 8px 12px; margin-bottom: 6px; color: var(--text-2); font: inherit; font-size: 13px; cursor: pointer; }
.focus-linked-row:hover { border-color: var(--accent-line); }
.focus-linked-kind { color: var(--text-faint); font-size: 11px; text-transform: uppercase; margin-right: 6px; }

/* Active Work — movement bar */
.portfolio-progress { height: 4px; background: var(--surface-3); border-radius: 3px; margin-top: 8px; overflow: hidden; }
.portfolio-progress-fill { height: 100%; background: linear-gradient(90deg, var(--accent), var(--money)); border-radius: 3px; }

/* De-emphasize runway (balances are the headline, runway is a slim line) */
.cash-runway-big { display: flex; align-items: baseline; gap: 8px; margin: 10px 0 6px; }
.cash-runway-num { font-size: 22px; font-weight: 700; }
.cash-runway-num.warn { color: var(--warn); } .cash-runway-num.critical { color: var(--critical); }
.cash-runway-label { font-size: 12px; color: var(--text-mute); }

/* Premium card depth on Home */
.home-main > .card, .home-rail > .card { box-shadow: 0 1px 0 rgba(255,255,255,0.02) inset, 0 4px 16px rgba(0,0,0,0.22); }

/* ===== Home visual-grade pass (2026-06-08) — Miles-style ===== */
/* OS-style mono section labels on every Home card */
.home-wide .card-title > span:first-child { font-family: var(--ff-mono); font-size: 11.5px; letter-spacing: 0.09em; text-transform: uppercase; color: var(--text-2); font-weight: 700; }
.home-wide .card-title .label-aux { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.04em; }
/* Do Next = the dominant surface */
.home-main .hero-card { border-left: 3px solid var(--accent); background: linear-gradient(180deg, rgba(110,168,212,0.05), transparent 40%); }
/* Timeline — premium time-rail */





.tl-rail-list { display: flex; flex-direction: column; }
.tl-row { display: grid; grid-template-columns: 50px 16px 1fr auto; align-items: start; width: 100%; text-align: left; background: none; border: none; cursor: pointer; padding: 0; }
.tl-time { font-family: var(--ff-mono); font-size: 11px; color: var(--text-mute); text-align: right; padding-right: 10px; padding-top: 3px; }
.tl-rail { position: relative; display: flex; justify-content: center; }
.tl-rail::before { content: ''; position: absolute; top: 0; bottom: 0; left: 50%; width: 1px; background: var(--hair); transform: translateX(-50%); }
.tl-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--surface-elev); border: 2px solid var(--hair-strong); margin-top: 5px; z-index: 1; }
.tl-row:hover .tl-dot { border-color: var(--accent); }
.tl-body { display: flex; flex-direction: column; padding-left: 12px; padding-bottom: 12px; }
.tl-title { color: var(--text); font-size: 13.5px; font-weight: 600; }
.tl-row:hover .tl-title { color: var(--accent); }
.tl-sub { color: var(--text-mute); font-size: 11.5px; margin-top: 1px; }
.tl-tag { align-self: start; margin-top: 3px; font-family: var(--ff-mono); font-size: 9px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--text-faint); border: 1px solid var(--hair); border-radius: 5px; padding: 1px 5px; }
.tl-skipped .tl-title { text-decoration: line-through; opacity: 0.5; }
.tl-now { display: flex; align-items: center; gap: 10px; margin: 4px 0 12px; padding-left: 50px; }
.tl-now-time { font-family: var(--ff-mono); font-size: 10px; color: var(--accent); font-weight: 700; }
.tl-now-rail { flex: 1; height: 1px; background: linear-gradient(90deg, var(--accent), transparent); }
.tl-now-tag { font-family: var(--ff-mono); font-size: 9.5px; color: var(--accent); font-weight: 700; letter-spacing: 0.1em; }
.tl-upcoming { margin-top: 8px; }
.tl-section-label { font-family: var(--ff-mono); font-size: 10px; color: var(--text-faint); letter-spacing: 0.09em; font-weight: 700; margin-bottom: 6px; }
.tl-up-row { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: none; border: none; border-top: 1px solid var(--hair); padding: 9px 0; cursor: pointer; }
.tl-up-when { font-family: var(--ff-mono); font-size: 11px; color: var(--text-mute); min-width: 56px; }
.tl-up-title { flex: 1; color: var(--text-2); font-size: 13px; }
.tl-up-row:hover .tl-up-title { color: var(--accent); }
.tl-up-rep { font-size: 9px; color: var(--text-faint); margin-left: 8px; border: 1px solid var(--hair-strong); border-radius: 6px; padding: 1px 5px; text-transform: uppercase; letter-spacing: 0.04em; }
.tl-up-time { font-family: var(--ff-mono); font-size: 11px; color: var(--text-mute); }

/* ===== Home compaction (2026-06-08) — tighten, reduce empty hero space ===== */
.home-main .hero-card { padding: 14px 18px; }
.home-main .hero-now { padding: 4px 0; }
.home-main .hero-now .hero-headline { margin: 4px 0; }
.home-main .hero-actions { margin-top: 8px; }
.home-row-2 { gap: 14px; margin-top: 14px; }
.home-main, .home-rail { gap: 14px; }
.recovery-card, .home-main .card, .home-rail .card { padding: 16px 18px; }
.focus-hide { margin-left: auto; color: var(--text-faint); }
.focus-hide:hover { color: var(--text-2); }

/* Home balance (2026-06-08): stack Recovery+Active Work vertically so the left
   column fills height to match the rail — no L-shaped gap. */
.home-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; align-items: stretch; }

/* ===== Daily routine tracker (2026-06-08) — Miles-style tap habits ===== */
.home-os-label { font-family: var(--ff-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-faint); font-weight: 600; }








.daily-habit.done { background: var(--money-soft); border-color: var(--money-line); }

.daily-habit.done .daily-check { background: var(--money); border-color: var(--money); color: var(--bg-deep); font-weight: 800; }


.daily-habit.done .daily-label { color: var(--text-2); }


/* ===== Research card (2026-06-08) — live money-engine research ===== */
.research-row { padding: 7px 0; border-top: 1px solid var(--hair); }
.research-row:first-of-type { border-top: none; }
.research-row-head { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.research-row-title { font-size: 13.5px; font-weight: 600; color: var(--text); }
.research-row-when { font-size: 11px; color: var(--text-faint); font-weight: 400; }
.research-row-actions { display: flex; gap: 8px; align-items: center; flex-shrink: 0; }
.research-running { font-size: 12px; color: var(--accent); font-style: italic; margin-top: 6px; }
.research-body { margin-top: 10px; padding: 12px 14px; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: var(--r); font-size: 12.5px; color: var(--text-2); line-height: 1.6; white-space: pre-wrap; max-height: 340px; overflow-y: auto; }
.research-err { color: var(--critical); font-size: 12px; margin-top: 8px; }
.research-foot { font-size: 11px; color: var(--text-faint); margin-top: 10px; }

/* ===== Business Money Board (2026-06-08) ===== */
.money-board { display: flex; flex-direction: column; gap: 16px; }
.money-hero { border-left: 3px solid var(--money); }
.money-hero-move { font-size: 17px; font-weight: 800; color: var(--text); margin: 6px 0 4px; line-height: 1.35; }
.money-hero-fast { font-size: 13px; color: var(--money); font-weight: 600; }
.money-hero-actions { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.money-lanes { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.money-lane { display: flex; flex-direction: column; gap: 7px; }
.lane-peer { border-top: 3px solid var(--money); }
.lane-lf { border-top: 3px solid var(--accent); }
.money-lane-tag { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; align-self: flex-start; }
.tag-fast { background: var(--money-soft); color: var(--money); border: 1px solid var(--money-line); }
.tag-venture { background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent-line); }
.money-lane-title { font-size: 16px; font-weight: 800; color: var(--text); }
.money-lane-headline { font-size: 13px; color: var(--text-2); line-height: 1.5; }
.money-lane-rows { display: flex; flex-direction: column; gap: 5px; margin: 4px 0; }
.money-lane-rows > div { font-size: 12.5px; color: var(--text); line-height: 1.45; }
.money-lane-rows span { display: inline-block; min-width: 64px; color: var(--text-faint); font-size: 10px; text-transform: uppercase; letter-spacing: 0.06em; font-weight: 700; vertical-align: top; }



.money-lane-prog { height: 5px; background: var(--surface-3); border-radius: 3px; overflow: hidden; }
.money-lane-prog-fill { height: 100%; background: linear-gradient(90deg, var(--accent), var(--money)); }
.money-lane-prog-label { font-size: 11px; color: var(--text-mute); }


.money-pipe-stage.st-active { background: var(--accent-soft); border-color: var(--accent-line); flex-wrap: wrap; }

.st-done .money-pipe-dot { background: var(--money); }
.st-active .money-pipe-dot { background: var(--accent); box-shadow: 0 0 0 3px var(--accent-soft); }
.st-skip .money-pipe-dot { background: var(--text-faint); }

.st-done .money-pipe-label { color: var(--text-2); }
.st-skip .money-pipe-label { color: var(--text-faint); text-decoration: line-through; }




.money-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.money-mini { display: flex; flex-direction: column; gap: 5px; }
.money-mini-title { font-size: 14px; font-weight: 700; color: var(--text); }
.money-mini-sub { font-size: 12px; color: var(--text-mute); line-height: 1.45; }
.money-mini-next { font-size: 12.5px; color: var(--accent); line-height: 1.45; }
.money-mini-big { font-size: 26px; font-weight: 800; color: var(--money); }
.money-mini-actions { display: flex; gap: 10px; align-items: center; margin-top: 4px; }
.money-rev-add { display: flex; gap: 6px; align-items: center; margin-top: 6px; flex-wrap: wrap; }
.money-rev-add input { background: var(--surface); border: 1px solid var(--hair-strong); border-radius: var(--r-sm); color: var(--text); font: inherit; font-size: 12px; padding: 6px 8px; }
.money-rev-add input[type=number] { width: 64px; }
.money-rev-add input[type=text] { flex: 1; min-width: 90px; }
.money-report-head { display: flex; justify-content: space-between; align-items: center; }
.money-report-body { margin-top: 10px; white-space: pre-wrap; font-size: 12.5px; color: var(--text-2); line-height: 1.6; max-height: 380px; overflow-y: auto; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: var(--r); padding: 12px 14px; }

/* ===== Email Butler Report (2026-06-08) ===== */
.butler-report { border-left: 3px solid var(--accent); }
.butler-report-head { display: flex; justify-content: space-between; align-items: center; margin-bottom: 12px; }
.butler-report-title { font-size: 15px; font-weight: 700; color: var(--text); }
.butler-report-stats { display: flex; gap: 10px; flex-wrap: wrap; }
.brep-stat { display: flex; flex-direction: column; align-items: center; gap: 2px; background: var(--surface-2); border: 1px solid var(--hair); border-radius: var(--r); padding: 10px 16px; min-width: 78px; font: inherit; cursor: default; }
button.brep-stat { cursor: pointer; }
button.brep-stat:hover { border-color: var(--accent-line); }
.brep-stat b { font-size: 20px; font-weight: 800; color: var(--text); }
.brep-stat span { font-size: 10.5px; color: var(--text-mute); text-transform: uppercase; letter-spacing: 0.04em; }
.brep-stat.brep-need b { color: var(--warn); }
.butler-report-clear { margin-top: 12px; font-size: 13px; color: var(--money); font-weight: 600; }
.butler-report-logbtn { margin-top: 12px; }
.butler-report-log { margin-top: 8px; display: flex; flex-direction: column; gap: 5px; }
.brep-log-row { font-size: 12px; color: var(--text-2); }
.brep-log-row b { color: var(--text); font-weight: 600; }

.research-flash { font-size: 12px; color: var(--money); font-weight: 600; margin-top: 8px; }

/* ===== Home tweaks (2026-06-09) — sync-all, compact daily + active work ===== */
.capture-row { display: flex; gap: 10px; align-items: stretch; margin-bottom: 0; }
.capture-row .capture-bar { flex: 1; margin-bottom: 0; }
.sync-all-btn { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 2px; min-width: 76px; background: var(--surface-2); border: 1px solid var(--hair-strong); border-radius: var(--r-lg); color: var(--accent); font: inherit; font-size: 17px; cursor: pointer; flex-shrink: 0; }
.sync-all-btn:hover:not(:disabled) { border-color: var(--accent-line); background: var(--accent-soft); }
.sync-all-btn:disabled { opacity: 0.55; }
a.snapshot-btn { text-decoration: none; }
.sync-all-label { font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-mute); }
/* compact Daily Routine — 2-up grid, tighter rows */


/* compact Active Work so it stops scrolling off */
.portfolio-row { padding: 8px 11px; }
.portfolio-group { margin-bottom: 8px; }
.portfolio-group-head { margin-bottom: 4px; }

/* recovery daily reflection — read-only, auto-rotating */




/* ============================================================
   Task workbench rebuild (2026-06-09) — wider drawer + Action Console
   ============================================================ */
/* Roomier workbench so the script + call targets breathe. Compact + stability
   drawers keep the original 560px. */
.task-drawer.task-workbench { width: 720px; }
.task-drawer.task-compact { width: 620px; }
@media (max-width: 760px) { .task-drawer.task-workbench, .task-drawer.task-compact { width: 100vw; } }

/* Action Console — the "do it now" hero block inside the workbench. */
.action-console {
  margin: 14px 0 16px;
  padding: 14px 16px 16px;
  border-radius: 14px;
  border: 1px solid var(--accent-line, rgba(120,160,255,0.35));
  background:
    radial-gradient(120% 100% at 0% 0%, rgba(120,160,255,0.10), transparent 60%),
    var(--surface-2, rgba(255,255,255,0.03));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04), 0 8px 24px rgba(0,0,0,0.22);
}
.ac-eyebrow {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--ff-mono); font-size: 10px; font-weight: 700;
  letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent, #8aa6ff);
}
.ac-pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--accent, #8aa6ff); box-shadow: 0 0 0 0 rgba(138,166,255,0.7); animation: acPulse 1.8s infinite; }
@keyframes acPulse { 0% { box-shadow: 0 0 0 0 rgba(138,166,255,0.55); } 70% { box-shadow: 0 0 0 7px rgba(138,166,255,0); } 100% { box-shadow: 0 0 0 0 rgba(138,166,255,0); } }
.ac-move { margin-top: 6px; font-size: 16px; font-weight: 600; color: var(--text); line-height: 1.4; }

/* the script, front and center */
.ac-script { margin-top: 12px; border-radius: 10px; border: 1px solid var(--hair); background: var(--bg, rgba(0,0,0,0.25)); overflow: hidden; }
.ac-script-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 11px; border-bottom: 1px solid var(--hair); background: rgba(255,255,255,0.02); }
.ac-script-label { display: flex; align-items: center; gap: 7px; font-size: 11px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-2); }
.ac-tailored { font-size: 9px; }
.ac-script-tools { display: flex; align-items: center; gap: 12px; }
.ac-script-body { padding: 12px 13px; white-space: pre-wrap; font-size: 14px; line-height: 1.55; color: var(--text); }

/* call targets */
.ac-targets { margin-top: 13px; display: flex; flex-direction: column; gap: 8px; }
.ac-targets-label { font-size: 10px; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--text-faint, var(--text-mute)); }
.ac-target { padding: 9px 11px; border-radius: 10px; border: 1px solid var(--hair); background: var(--surface, rgba(255,255,255,0.02)); transition: border-color .15s, background .15s; }
.ac-target.chosen { border-color: var(--accent-line, rgba(120,160,255,0.5)); background: rgba(120,160,255,0.06); }
.ac-target.booked { border-color: var(--ok-line, rgba(80,200,140,0.5)); background: rgba(80,200,140,0.07); }
.ac-target-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.ac-target-name { font-size: 14px; font-weight: 500; color: var(--text); }
.ac-cov { color: var(--text-mute); font-size: 12px; font-weight: 400; }
.ac-call-btn { flex: none; display: inline-flex; align-items: center; gap: 5px; padding: 6px 12px; border-radius: 999px; font-size: 13px; font-weight: 600; color: #0b1020; background: var(--accent, #8aa6ff); text-decoration: none; white-space: nowrap; box-shadow: 0 2px 8px rgba(138,166,255,0.3); }
.ac-call-btn:hover { filter: brightness(1.08); }
.ac-outcomes { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 9px; }
.ac-outcome { padding: 4px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; color: var(--text-2); background: transparent; border: 1px solid var(--hair); cursor: pointer; transition: all .12s; }
.ac-outcome:hover { border-color: var(--hair-strong); color: var(--text); }
.ac-outcome.on { color: #0b1020; background: var(--text-2, #cfd6e6); border-color: transparent; }
.ac-find { margin-top: 13px; }
.ac-find-msg { margin-top: 8px; font-size: 12px; color: var(--text-mute); }

/* appointment → calendar confirmation */
.appt-synced { margin-top: 9px; padding: 7px 10px; border-radius: 8px; font-size: 12.5px; color: var(--ok, #5cc890); background: rgba(80,200,140,0.08); border: 1px solid var(--ok-line, rgba(80,200,140,0.35)); }
.appt-synced-sub { color: var(--text-mute); }
.appt-hint { margin-top: 9px; font-size: 12px; color: var(--text-mute); font-style: italic; }

/* ============================================================
   Home pass 1 (2026-06-09) — denser daily routine + always-rich hero
   ============================================================ */
/* tighter habit rows so 10 habits don't eat the page */



/* hero checklist — the Do-Next "now" task always shows its plan, tappable inline */
.hero-checklist { list-style: none; margin: 13px 0 6px; padding: 0; display: flex; flex-direction: column; gap: 7px; }
.hero-cl-item { display: flex; align-items: flex-start; gap: 9px; }
.hero-cl-check { flex: none; width: 19px; height: 19px; border-radius: 6px; border: 1.5px solid var(--hair-strong, rgba(255,255,255,0.28)); background: transparent; color: #0b1020; font-size: 12px; font-weight: 700; line-height: 1; display: flex; align-items: center; justify-content: center; cursor: pointer; margin-top: 1px; transition: all .12s; }
.hero-cl-check:hover { border-color: var(--accent, #8aa6ff); }
.hero-cl-check.on { background: var(--accent, #8aa6ff); border-color: var(--accent, #8aa6ff); }
.hero-cl-item.done .hero-cl-text { color: var(--text-mute); text-decoration: line-through; }
.hero-cl-text { font-size: 14px; line-height: 1.45; color: var(--text-2); }
.hero-cl-more { font-size: 12px; color: var(--text-mute); padding-left: 28px; }
.hero-generating { margin: 13px 0 4px; font-size: 13px; color: var(--accent, #8aa6ff); }

/* ============================================================
   Pass 2 (2026-06-09) — Recovery tap-log + actionable Cash
   ============================================================ */
/* Recovery card — one-tap log */


.rec-taps { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.rec-tap { position: relative; display: flex; flex-direction: column; align-items: center; gap: 3px; padding: 8px 4px; border-radius: 10px; border: 1px solid var(--hair); background: var(--surface, rgba(255,255,255,0.02)); cursor: pointer; transition: all .12s; }
.rec-tap:hover { background: rgba(255,255,255,0.05); transform: translateY(-1px); }
.rec-tap:active { transform: translateY(0); }
.rec-tap:disabled { opacity: 0.5; cursor: default; }
.rec-tap-emoji { font-size: 17px; line-height: 1; }
.rec-tap-label { font-size: 11px; color: var(--text-2); font-weight: 500; }
.rec-tap-count { position: absolute; top: -5px; right: -5px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 9px; background: var(--accent, #8aa6ff); color: #0b1020; font-size: 10px; font-weight: 700; display: flex; align-items: center; justify-content: center; }





/* Recovery card — compact reflection */







.rec-reflect-edit input { flex: 1; background: var(--bg, rgba(0,0,0,0.25)); border: 1px solid var(--hair); border-radius: 7px; padding: 6px 9px; color: var(--text); font-size: 13px; }

/* Recovery drawer — tap-log history */
.rec-tap-history { margin-top: 10px; display: flex; flex-direction: column; gap: 2px; }
.rec-tap-row { display: flex; align-items: center; gap: 8px; padding: 5px 2px; border-bottom: 1px solid var(--hair); font-size: 12.5px; }
.rec-tap-row-k { color: var(--text); white-space: nowrap; }
.rec-tap-row-txt { color: var(--text-mute); flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rec-tap-row-date { margin-left: auto; color: var(--text-faint, var(--text-mute)); font-size: 11px; }

/* Cash + Runway — decision layer */
.cash-decide { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--hair); }
.cash-decide-head { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: 8px; }
.cash-decide-label { font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-faint, var(--text-mute)); font-weight: 700; }
.cash-fresh { font-size: 10px; color: var(--ok, #5cc890); }
.cash-drain-row { display: flex; align-items: center; gap: 9px; margin-bottom: 6px; }
.cash-drain-cat { font-size: 12.5px; color: var(--text-2); width: 100px; flex: none; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cash-drain-bar { flex: 1; height: 7px; border-radius: 4px; background: rgba(255,255,255,0.06); overflow: hidden; }
.cash-drain-fill { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--accent, #8aa6ff), rgba(138,166,255,0.45)); }
.cash-drain-amt { font-size: 12.5px; color: var(--text); font-variant-numeric: tabular-nums; width: 58px; text-align: right; flex: none; }
.cash-action { margin-top: 9px; font-size: 12.5px; line-height: 1.5; color: var(--text-2); }
.cash-action strong { color: var(--text); }
.cash-pressure { margin-top: 7px; font-size: 12px; line-height: 1.45; color: var(--warn, #e0b85a); }

/* ============================================================
   Pass 3 (2026-06-09) — Do-Next contract + compact timeline
   ============================================================ */
.hero-suggested { margin-left: 8px; font-size: 9px; font-weight: 700; letter-spacing: 0.04em; color: var(--accent, #8aa6ff); border: 1px solid var(--accent-line, rgba(120,160,255,0.4)); border-radius: 4px; padding: 1px 6px; text-transform: none; vertical-align: middle; }
.hero-context { font-size: 12px; color: var(--text-mute); margin-top: 4px; }
.hero-done { margin-top: 11px; font-size: 12.5px; color: var(--text-2); }
.hero-done::before { content: '✓ '; color: var(--ok, #5cc890); font-weight: 700; }
/* compact timeline so Next Money Move stays above the fold */
.tl-rail-scroll { max-height: 210px; overflow-y: auto; }
.tl-up-more { margin-top: 6px; font-size: 11px; color: var(--text-mute); background: none; border: none; cursor: pointer; padding: 3px 2px; }
.tl-up-more:hover { color: var(--accent, #8aa6ff); }

/* ============================================================
   Pass 4 (2026-06-09) — Home efficiency + Recovery instrument panel
   ============================================================ */
/* Daily Routine → compact pill grid (was a tall 2-col checklist slab) */



.daily-habit.done { background: rgba(80,200,140,0.12); border-color: var(--ok-line, rgba(80,200,140,0.4)); }

.daily-habit:not(.done) .daily-check { display: none; }


.daily-habit.done .daily-label { color: var(--ok, #5cc890); }


/* Right rail → tighter; rail scrolls internally so the bottom card is never cut off */
.home-rail { gap: 8px; }  /* unclamped: page scroll owns overflow; the old max-height hid rail cards behind an inner scrollbar */
.home-rail .card { padding: 12px 14px; }


.tl-rail-scroll { max-height: 100px; }
.tl-rail-list .tl-row { padding-top: 4px; padding-bottom: 4px; }
.tl-up-row { padding-top: 4px; padding-bottom: 4px; }
/* shave Cash vertical rhythm (CSS spacing only — logic untouched) */
.card-dominant .cash-runway-big { margin: 6px 0; }
.card-dominant .cash-decide { margin-top: 9px; padding-top: 9px; }
.card-dominant .cash-drain-row { margin-bottom: 5px; }
.card-dominant .cash-actions { margin-top: 10px; }

/* Recovery → sober instrument panel: official AA Daily Reflection block */
.recovery-refl { display: block; margin-top: 8px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--hair); background: var(--surface-2, rgba(255,255,255,0.03)); text-decoration: none; transition: border-color .12s; }
.recovery-refl:hover { border-color: var(--accent-line, rgba(120,160,255,0.4)); }
.recovery-refl-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.recovery-refl-label { font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; color: var(--text-faint, var(--text-mute)); font-weight: 700; }
.recovery-refl-date { font-size: 11px; color: var(--text-mute); }
.recovery-refl-title { font-size: 14px; font-weight: 600; color: var(--text); margin-top: 5px; }

.recovery-refl-cta { font-size: 12px; color: var(--accent, #8aa6ff); margin-top: 6px; font-weight: 500; }

/* ============================================================
   Sleep Lab (redesigned 2026-06-13) — glance hero + sparkline + tap rows
   ============================================================ */
.sleep-lab { display: flex; flex-direction: column; gap: 12px; }
/* Hero: fast manual entry (left) + compact 14-night sparkline (right). */
.sleep-hero { display: flex; align-items: stretch; gap: 20px; }
.sleep-entry { flex: none; display: flex; flex-direction: column; gap: 9px; justify-content: center; min-width: 172px; padding-right: 20px; border-right: 1px solid var(--hair); }
.sleep-entry-k { font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; font-weight: 700; color: var(--text-faint); }
.sleep-entry-src { color: var(--text-faint); letter-spacing: 0; text-transform: none; font-weight: 500; }
.sleep-entry-edit { display: flex; align-items: center; gap: 3px; }
.sleep-time-input { width: 46px; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: 8px; padding: 8px 4px; color: var(--text); font-family: var(--ff-mono); font-size: 20px; font-weight: 700; text-align: center; -moz-appearance: textfield; }
.sleep-time-input::-webkit-outer-spin-button, .sleep-time-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.sleep-time-input:focus { border-color: var(--accent); }
.sleep-time-u { font-size: 13px; color: var(--text-mute); margin-right: 5px; }
.sleep-save-btn { background: var(--accent-soft); color: var(--accent); border: 1px solid var(--accent-line); border-radius: 8px; padding: 8px 12px; font-size: 12px; font-weight: 600; cursor: pointer; margin-left: 4px; }
.sleep-save-btn:hover { background: color-mix(in srgb, var(--accent) 20%, transparent); }
.sleep-entry-val { background: none; border: none; cursor: pointer; font-family: var(--ff-mono); font-size: 38px; font-weight: 700; line-height: 1; letter-spacing: -0.02em; color: var(--text); padding: 0; text-align: left; }
.sleep-entry-val.q-good { color: #54c08a; }
.sleep-entry-val.q-poor { color: #e07856; }
.sleep-entry-pencil { font-size: 14px; color: var(--text-faint); }
.sleep-qword { font-size: 12px; color: var(--text-mute); margin-left: 5px; }
.sleep-spark { flex: 1; display: flex; gap: 7px; align-items: flex-end; padding-top: 2px; min-width: 0; }
.sleep-night { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; min-width: 0; cursor: default; }
.sleep-bar-slot { height: 60px; width: 100%; display: flex; align-items: flex-end; justify-content: center; }
.sleep-bar { width: 60%; max-width: 18px; border-radius: 5px 5px 0 0; background: var(--text-mute); min-height: 5px; transition: height .2s ease; }
/* Quality colors are FIXED hexes (theme accent/warn can both be gold → mid/poor
   would be indistinguishable). */
.sleep-bar.q-good { background: #54c08a; }
.sleep-bar.q-mid { background: #6f9bff; }
.sleep-bar.q-poor { background: #e07856; }
.sleep-bar-none { width: 60%; max-width: 18px; height: 3px; border-radius: 2px; background: var(--hair-strong); margin-bottom: 1px; }
.sleep-sigdots { display: flex; gap: 3px; height: 6px; align-items: center; }
.sdot { width: 4px; height: 4px; border-radius: 50%; display: inline-block; }
.sdot-med { background: var(--accent); }
.sdot-mask { background: #54c08a; }
.sdot-wind { background: #b58ae0; }
.sdot-caf { background: var(--warn); }
.sdot-caf.late { background: #e05c5c; }
.sleep-dow { font-size: 9px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--text-faint); line-height: 1; }
.sleep-log-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.sleep-row-k { font-size: 10px; letter-spacing: 0.07em; text-transform: uppercase; font-weight: 700; color: var(--text-mute); min-width: 88px; flex: none; }
.sleep-chip { background: color-mix(in srgb, var(--bg-deep) 60%, transparent); border: 1px solid var(--hair); color: var(--text-2); border-radius: 999px; padding: 5px 11px; font-size: 12px; cursor: pointer; line-height: 1.2; transition: all .12s ease; }
.sleep-chip:hover { color: var(--accent); border-color: var(--accent-line); }
.sleep-chip.on { color: var(--accent); border-color: var(--accent-line); background: var(--accent-soft); font-weight: 600; }
.sleep-stars { display: inline-flex; gap: 1px; }
.sleep-star { background: none; border: none; cursor: pointer; font-size: 14px; line-height: 1; padding: 1px; color: var(--hair-strong); }
.sleep-star.on { color: var(--warn); }
.sleep-star:hover { color: var(--warn); }
/* Insight = the payoff (honest, computed from real rows). Baseline = the honest
   cold-start state until there's enough data. */
.sleep-insight { font-size: 12.5px; color: var(--text-2); line-height: 1.5; background: var(--accent-soft); border: 1px solid var(--accent-line); border-radius: 10px; padding: 9px 12px; }
.sleep-insight-k { display: inline-block; font-size: 10px; font-weight: 800; letter-spacing: 0.05em; text-transform: uppercase; color: var(--accent); margin-right: 8px; }
.sleep-insight b { color: var(--text); font-weight: 700; }
.sleep-baseline { font-size: 12px; color: var(--text-mute); padding: 1px 2px; }
.sleep-trend { font-size: 11.5px; color: var(--money); margin-left: auto; font-weight: 600; }

/* ============================================================
   Home integrity pass (2026-06-12) — void + echo fixes.
   • Hero cell centers vertically: when content is shorter than the up-next
     column, space distributes evenly instead of pooling into a bottom void.
   • Up-next overflow row, in-place ▶ NEXT highlight (banner echo removed).
   ============================================================ */
.hero-grid { align-items: center; }
.upnext-more { background: none; border: none; color: var(--text-mute); font-size: 12px; text-align: left; padding: 6px 10px 2px; cursor: pointer; }
.upnext-more:hover { color: var(--accent, #8aa6ff); }
.tl-next-chip { display: inline-block; font-size: 9px; font-weight: 800; letter-spacing: 0.07em; color: var(--accent, #8aa6ff); border: 1px solid var(--accent-line, rgba(120,160,255,0.4)); border-radius: 5px; padding: 1px 5px; margin-right: 7px; vertical-align: 1px; }
.tl-row.tl-isnext { background: rgba(120,160,255,0.06); border-radius: 8px; }
.tl-row.tl-isnext .tl-title { color: var(--text); font-weight: 600; }
.tl-up-row.tl-isnext { background: rgba(120,160,255,0.06); border-radius: 8px; }
.tl-up-row.tl-isnext .tl-up-title { color: var(--text); font-weight: 600; }
/* Type colors for the live Up Next chips — ported 2026-06-12 from the dead
   .cmdq-type block (the colors were orphaned on an unrendered component;
   live markup puts ctype-* on .upnext-type). */
.upnext-type.ctype-money { color: var(--warn); }
.upnext-type.ctype-email { color: var(--accent); }
.upnext-type.ctype-business { color: #b98bff; }
.upnext-type.ctype-stability { color: #5fb8a8; }
.upnext-type.ctype-cal { color: var(--accent); }
.upnext-type.ctype-project { color: #5b9dff; }
.upnext-type.ctype-call { color: var(--ok); }

/* ============================================================
   Business workbench (2026-06-09) — Money Mission + working pipeline
   ============================================================ */
.money-hero-why { font-size: 13px; color: var(--text-2); line-height: 1.5; margin-top: 6px; }
.mh-k { font-size: 10px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--text-faint, var(--text-mute)); font-weight: 700; margin-right: 6px; }
.money-hero-ctx { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 8px; }
.mh-ctx-item { font-size: 12px; color: var(--text-mute); }
.mh-ctx-item::before { content: '• '; color: var(--accent, #8aa6ff); }
.money-hero-steps { margin: 10px 0 4px; padding-left: 18px; display: flex; flex-direction: column; gap: 4px; }
.money-hero-steps li { font-size: 12.5px; color: var(--text-2); line-height: 1.4; }
.mh-step-stage { font-size: 10px; text-transform: uppercase; letter-spacing: 0.04em; color: var(--accent, #8aa6ff); font-weight: 700; margin-right: 6px; }
.money-hero-done { margin-top: 10px; font-size: 12.5px; color: var(--ok, #5cc890); }
.money-lane-actions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.money-lane-valrow { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.vchip { font-size: 11px; padding: 3px 9px; border-radius: 999px; border: 1px solid var(--hair); color: var(--text-mute); }
.vchip-key { color: var(--accent, #8aa6ff); border-color: var(--accent-line, rgba(120,160,255,0.4)); }
.vchip-zero { color: var(--warn, #e0b85a); border-color: var(--warn-line, rgba(224,184,90,0.4)); }
.vchip-ok { color: var(--ok, #5cc890); border-color: var(--ok-line, rgba(80,200,140,0.4)); }
.money-jobs-report { margin-top: 10px; max-height: 220px; overflow-y: auto; padding: 10px; border-radius: 8px; border: 1px solid var(--hair); background: var(--bg, rgba(0,0,0,0.2)); white-space: pre-wrap; font-size: 12px; color: var(--text-2); line-height: 1.5; }
.erin-draft { margin-top: 10px; padding: 10px; border-radius: 8px; border: 1px solid var(--accent-line, rgba(120,160,255,0.3)); background: var(--surface-2, rgba(255,255,255,0.03)); }
.erin-draft textarea { width: 100%; box-sizing: border-box; margin-top: 6px; background: var(--bg, rgba(0,0,0,0.25)); border: 1px solid var(--hair); border-radius: 7px; padding: 8px; color: var(--text); font: inherit; font-size: 13px; resize: vertical; }
.erin-draft-actions { display: flex; gap: 8px; margin-top: 8px; align-items: center; }
.money-pipe2 { display: flex; flex-direction: column; gap: 7px; }
.money-pipe2-stage { padding: 9px 11px; border-radius: 10px; border: 1px solid var(--hair); background: var(--surface, rgba(255,255,255,0.02)); border-left: 3px solid var(--hair-strong, rgba(255,255,255,0.15)); }
.money-pipe2-stage.st-active { border-left-color: var(--accent, #8aa6ff); background: rgba(120,160,255,0.05); }
.money-pipe2-stage.st-done { border-left-color: var(--ok, #5cc890); opacity: 0.85; }
.money-pipe2-stage.st-skip { opacity: 0.5; }
.mp2-head { display: flex; align-items: center; gap: 8px; }
.mp2-dot { width: 7px; height: 7px; border-radius: 50%; background: var(--text-mute); flex: none; }
.st-active .mp2-dot { background: var(--accent, #8aa6ff); }
.st-done .mp2-dot { background: var(--ok, #5cc890); }
.mp2-label { font-size: 13px; font-weight: 600; color: var(--text); }
.mp2-state { margin-left: auto; font-size: 10px; letter-spacing: 0.05em; text-transform: uppercase; font-weight: 700; color: var(--text-mute); }
.mp2-state.state-active { color: var(--accent, #8aa6ff); }
.mp2-state.state-done { color: var(--ok, #5cc890); }
.mp2-body { margin: 5px 0 0 15px; display: flex; flex-direction: column; gap: 2px; }
.mp2-ev { font-size: 12px; color: var(--ok, #5cc890); }
.mp2-missing { font-size: 12px; color: var(--warn, #e0b85a); }
.mp2-next, .mp2-dc { font-size: 12px; color: var(--text-2); line-height: 1.4; }
.mp2-k { font-size: 9px; letter-spacing: 0.05em; text-transform: uppercase; color: var(--text-faint, var(--text-mute)); font-weight: 700; margin-right: 5px; }
.mp2-actions { display: flex; gap: 6px; margin: 8px 0 0 15px; flex-wrap: wrap; }
.money-sig-add { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.money-sig-add select, .money-sig-add input { background: var(--bg, rgba(0,0,0,0.25)); border: 1px solid var(--hair); border-radius: 7px; padding: 5px 8px; color: var(--text); font-size: 12px; }
.money-sig-add input { flex: 1; min-width: 100px; }
.money-mini-big.zero { color: var(--warn, #e0b85a); }

/* ============================================================
   Task drawer overhaul (2026-06-10) — step rows expand on tap (no more "?"),
   Research workbench for research-shaped tasks, Business inline fact editor.
   ============================================================ */
.step-text-tap { cursor: pointer; }
.step-text-tap:hover { color: var(--accent); }
/* Current step — the checklist is the single surface now, so the first
   unchecked step carries the "you are here" marker (no separate MOVE box). */
.wb-step.wb-step-now { background: rgba(120,160,255,0.06); border-radius: 8px; }
.wb-step-now-tag { display: inline-block; font-size: 9px; font-weight: 800; letter-spacing: 0.07em; color: var(--accent, #8aa6ff); border: 1px solid var(--accent-line, rgba(120,160,255,0.4)); border-radius: 5px; padding: 1px 5px; margin-right: 7px; vertical-align: 1px; }
.step-expand { background: none; border: 1px solid var(--hair); color: var(--text-mute); cursor: pointer;
  width: 22px; height: 22px; border-radius: 6px; font-size: 11px; line-height: 1; flex: none; }
.step-expand:hover, .step-expand.open { color: var(--accent); border-color: var(--accent); }

/* Research workbench */
.research-bench { margin: 12px 0 4px; padding: 12px 14px; background: var(--surface-2); border: 1px solid var(--hair); border-radius: 12px; display: flex; flex-direction: column; gap: 10px; }
.rb-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.rb-title { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.rb-goal { font-size: 13.5px; color: var(--text); line-height: 1.45; }
.rb-k { display: block; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--text-mute); margin-bottom: 4px; }
.rb-goal .rb-k { display: inline-block; margin-right: 6px; margin-bottom: 0; }
.rb-note { font-weight: 500; text-transform: none; letter-spacing: 0; color: var(--text-mute); margin-left: 6px; }
.rb-block { display: flex; flex-direction: column; }
.rb-list { margin: 0; padding-left: 18px; font-size: 13px; color: var(--text-2); line-height: 1.55; }
.rb-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.rb-chip { background: var(--bg-deep); border: 1px solid var(--hair); color: var(--text-2); border-radius: 999px; padding: 4px 10px; font-size: 12px; }
.rb-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rb-msg { font-size: 12.5px; line-height: 1.4; }
.rb-msg.ok { color: var(--ok, #4caf82); }
.rb-msg.warn { color: var(--warn, #e0a458); }
.rb-findings { display: flex; flex-direction: column; gap: 8px; }
.rb-finding { background: var(--bg-deep); border: 1px solid var(--hair); border-radius: 10px; padding: 10px 12px; }
.rb-finding-head { font-size: 11px; color: var(--text-mute); margin-bottom: 6px; display: flex; align-items: center; gap: 6px; }
.rb-finding-body { white-space: pre-wrap; font-size: 12.5px; color: var(--text-2); line-height: 1.6; max-height: 320px; overflow-y: auto; }
.rb-followup { display: flex; gap: 8px; align-items: center; }
.rb-followup .cap-input { flex: 1; }

/* Business inline fact editor (replaces bare window.prompt) */
.fact-panel { margin-top: 12px; padding: 12px 14px; background: var(--surface-2); border: 1px solid var(--hair); border-radius: 12px; display: flex; flex-direction: column; gap: 8px; }
.fact-panel-label { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--text-2); }
.fact-panel-help { font-size: 12.5px; color: var(--text-mute); line-height: 1.45; }
.fact-panel-evidence { font-size: 12.5px; color: var(--text-2); line-height: 1.45; }
.fact-panel textarea { width: 100%; box-sizing: border-box; background: var(--bg-deep); border: 1px solid var(--hair); border-radius: 8px; color: var(--text); font: inherit; font-size: 13px; padding: 8px 10px; resize: vertical; }
.fact-panel-actions { display: flex; gap: 8px; }

/* Cleanup pass (2026-06-10b) — readable research findings (MarkdownLite) */
.rb-md { font-size: 12.5px; color: var(--text-2); line-height: 1.6; max-height: 420px; overflow-y: auto; }
.rb-md a { color: var(--accent); text-decoration: none; }
.rb-md a:hover { text-decoration: underline; }
.md-h { font-weight: 700; color: var(--text); margin: 10px 0 4px; }
.md-h1, .md-h2 { font-size: 13px; text-transform: uppercase; letter-spacing: .05em; }
.md-h3, .md-h4 { font-size: 12.5px; }
.md-p { margin: 4px 0; }
.md-ul { margin: 4px 0; padding-left: 18px; }
.md-ul li { margin: 2px 0; }
.md-hr { border: none; border-top: 1px solid var(--hair); margin: 8px 0; }
.md-table-wrap { overflow-x: auto; margin: 6px 0; }
.md-table { border-collapse: collapse; width: 100%; font-size: 12px; }
.md-table th, .md-table td { border: 1px solid var(--hair); padding: 5px 8px; text-align: left; vertical-align: top; }
.md-table th { background: var(--bg-deep); color: var(--text); font-weight: 700; white-space: nowrap; }
.rb-raw-toggle { margin-left: auto; }
.rb-finding-head { display: flex; align-items: center; gap: 6px; }

/* ---- Research bench, stage 2 ("research ran") — findings lead, decide fast ---- */
/* (research drawers had a 780px special case — removed 2026-06-11: every task
   drawer is the same width; one object, one look. Findings cards reflow fine.) */
.rb-ran .rb-title { color: var(--accent); }
/* The newest finding is the payload — full width, readable, NO inner scroll
   (the drawer itself scrolls; scroll-within-scroll amputated the tables). */
.rb-finding-main .rb-md { max-height: none; font-size: 13.5px; color: var(--text); }
.rb-finding-main { border-color: var(--hair-strong); }
/* Wide comparison tables reflow into stacked option cards (no clipping ever). */
.md-cards { display: flex; flex-direction: column; gap: 8px; margin: 8px 0; }
.md-card { background: var(--surface-2); border: 1px solid var(--hair-strong); border-radius: 10px; padding: 10px 12px; }
.md-card-title { font-size: 14px; font-weight: 800; color: var(--text); margin-bottom: 6px; }
.md-card-rows { display: flex; flex-direction: column; gap: 4px; }
.md-card-row { display: flex; gap: 10px; align-items: baseline; }
.md-card-k { flex: 0 0 170px; font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--text-mute); }
.md-card-v { flex: 1; font-size: 13px; color: var(--text); line-height: 1.45; }
@media (max-width: 480px) { .md-card-row { flex-direction: column; gap: 1px; } .md-card-k { flex: none; } }
/* "Your call" — the one job after research: decide, in one or two sentences. */
.rb-call { background: var(--bg-deep); border: 1px solid var(--hair-strong); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 8px; }
/* While reading the findings above, the decision box stays pinned on screen —
   the "what am I supposed to do" answer is always visible. Sticks only within
   the research bench, then scrolls away normally. */
.rb-ran .rb-call { position: sticky; bottom: 8px; z-index: 2; box-shadow: 0 -6px 18px rgba(0,0,0,.35); }
.rb-call-label { font-size: 11px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; color: var(--accent); display: flex; align-items: center; gap: 8px; }
.rb-saved { color: var(--ok, #4caf82); font-size: 11px; text-transform: none; letter-spacing: 0; font-weight: 600; }
.rb-deciding { font-size: 12px; color: var(--text-mute); line-height: 1.5; }
.rb-call-input { font-size: 13.5px; }
.rb-step-chip { align-self: flex-start; background: transparent; border: 1px solid var(--ok, #4caf82); color: var(--ok, #4caf82); border-radius: 999px; padding: 5px 12px; font-size: 12.5px; cursor: pointer; text-align: left; }
.rb-step-chip:hover { background: rgba(76, 175, 130, .12); }
/* Folded-away sections: earlier findings + the brief (coaching) once research ran. */
.rb-older summary, .rb-brief-fold summary { cursor: pointer; font-size: 12px; color: var(--text-mute); padding: 2px 0; user-select: none; }
.rb-older summary:hover, .rb-brief-fold summary:hover { color: var(--text-2); }
.rb-brief-fold { border-top: 1px dashed var(--hair); padding-top: 8px; }
.rb-brief-fold > .rb-goal, .rb-brief-fold > .rb-block, .rb-brief-fold > .link-btn { margin-top: 10px; }
.rb-older > .rb-finding { margin-top: 8px; }

/* Timeline: past events compress — faded one-liner, reduced height. */
.tl-row.tl-past { opacity: .45; padding-top: 3px; padding-bottom: 3px; }
.tl-row.tl-past .tl-title { font-size: 12px; font-weight: 500; }
.tl-row.tl-past:hover { opacity: .8; }

/* Daily Reflection inline reading (from Danny's own book, local table). */
.recovery-refl-quote { font-size: 13px; color: var(--text-2); font-style: italic; line-height: 1.5; margin-top: 4px; }
.recovery-refl-src { font-style: normal; font-size: 11px; color: var(--text-mute); }
.recovery-refl-body-fold { margin-top: 6px; }
.recovery-refl-body-fold summary { cursor: pointer; font-size: 12px; color: var(--accent); user-select: none; }
.recovery-refl-body { margin-top: 8px; font-size: 13.5px; color: var(--text); line-height: 1.62; white-space: pre-wrap; }
.recovery-counter.day-zero .recovery-counter-num { color: var(--text-2); font-size: 15px; }
.recovery-counter.day-zero .recovery-counter-label { color: var(--text-mute); }
.portfolio-stale { font-size: 9.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--warn, #e0b85a); border: 1px solid rgba(224,184,90,.4); border-radius: 999px; padding: 1px 7px; margin-left: 6px; }

/* ============================================================
   Calendar — This Week grid (2026-06-10): 7 day columns, today highlighted,
   fixed commitments distinct, past faded, click → detail + prep task.
   ============================================================ */
.wk-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 8px; margin-top: 10px; }
.wk-col { background: var(--surface-2, rgba(255,255,255,0.03)); border: 1px solid var(--hair); border-radius: 12px; padding: 8px; min-height: 130px; display: flex; flex-direction: column; gap: 6px; }
.wk-col.today { border-color: var(--accent-line, rgba(120,160,255,0.45)); background: rgba(120,160,255,0.05); }
.wk-day-head { display: flex; align-items: baseline; gap: 6px; padding-bottom: 5px; border-bottom: 1px solid var(--hair); }
.wk-dow { font-size: 10px; font-weight: 800; text-transform: uppercase; letter-spacing: .06em; color: var(--text-mute); }
.wk-col.today .wk-dow { color: var(--accent, #8aa6ff); }
.wk-num { font-size: 13px; font-weight: 700; color: var(--text-2); margin-left: auto; }
.wk-evts { display: flex; flex-direction: column; gap: 4px; }
.wk-evt { display: flex; flex-direction: column; gap: 1px; text-align: left; padding: 5px 7px; border-radius: 8px; border: 1px solid var(--hair); background: var(--bg-deep); cursor: pointer; transition: border-color .12s; }
.wk-evt:hover { border-color: var(--hair-strong); }
.wk-evt.sel { border-color: var(--accent, #8aa6ff); }
.wk-evt.fixed { border-left: 3px solid var(--warn, #e0b85a); }
.wk-evt.done { opacity: .5; }
.wk-evt.done .wk-evt-title { text-decoration: line-through; }
.wk-evt.past { opacity: .45; }
.wk-evt.skipped { opacity: .4; }
.wk-evt-time { font-size: 9.5px; color: var(--text-mute); font-variant-numeric: tabular-nums; }
.wk-evt-title { font-size: 11.5px; color: var(--text); line-height: 1.3; overflow: hidden; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.wk-free { font-size: 11px; color: var(--text-faint, var(--text-mute)); text-align: center; padding-top: 14px; }
.wk-detail .wk-detail-meta { font-size: 12.5px; color: var(--text-2); margin-top: 2px; }
.wk-detail .wk-detail-desc { font-size: 12.5px; color: var(--text-mute); line-height: 1.5; margin-top: 8px; white-space: pre-wrap; }
.wk-detail-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; align-items: center; }
@media (max-width: 900px) { .wk-grid { grid-template-columns: repeat(2, 1fr); } }

/* Evening (6pm+): today is history — compress the past receipt, surface what's coming. */
.tl-card.tl-evening .tl-rail-scroll { max-height: 64px; }
.tl-card.tl-evening .tl-row.tl-past { padding-top: 2px; padding-bottom: 2px; }
.tl-card.tl-evening .tl-upcoming { border-top: 1px solid var(--hair); }
.tl-card.tl-evening .tl-up-row { padding-top: 5px; padding-bottom: 5px; }
.capture-open { margin-left: 8px; font-weight: 700; }

/* ============================================================
   Projects Inbox (2026-06-11) — loose tasks visible on the landing view.
   Reuses task-panel-row / task-check / doctor-reparent / task-quickadd.
   ============================================================ */
.inbox-section { margin-bottom: 22px; }
.inbox-grid { display: grid; grid-template-columns: 1fr 1fr; column-gap: 28px; }
@media (max-width: 980px) { .inbox-grid { grid-template-columns: 1fr; } }
/* 5 columns — the base .task-panel-row grid has 4, which wrapped the archive
   button onto its own line under every row (the floating-glyph breakage). */
.inbox-row { grid-template-columns: 18px minmax(0, 1fr) 52px 118px 26px; padding-top: 5px; padding-bottom: 5px; }
.inbox-row .task-panel-due { text-align: right; }
.inbox-newproj { grid-column: 1 / -1; display: flex; align-items: center; gap: 8px; padding: 8px 10px; margin: 2px 0 6px 26px; background: var(--surface-2); border: 1px solid var(--accent-line, var(--hair-strong)); border-radius: 8px; }
.inbox-newproj input[type=text] { flex: 1; background: transparent; border: none; outline: none; color: var(--text); font-size: 13px; }
.inbox-newproj select { font-size: 12px; }
.inbox-row .task-title { font-size: 13px; }
.inbox-move { max-width: 110px; font-size: 11px; }
.inbox-empty { font-size: 12.5px; color: var(--text-mute); border: 1px dashed var(--hair); border-radius: 8px; padding: 10px 12px; }
.inbox-quickadd { margin-top: 8px; }
.task-panel-meta-tag.loose { color: var(--text-mute); font-style: italic; }
/* One line per inbox row: long titles ellipsize (full title in the drawer). */
.inbox-row .task-panel-title-wrap { min-width: 0; }
.inbox-row .task-title { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ============================================================
   POP polish pass (2026-06-13) — loaded last so it wins the cascade.
   ============================================================ */
/* (B) Narrow-width collapse. cohesion's .home-wide (2-col, ~line 481) had no
   media query and overrode the styles.css 1180 collapse → the Cash card
   overlapped the capture bar at narrow widths. Restore the stack. */
@media (max-width: 1180px) {
  .home-wide { grid-template-columns: 1fr; }
  .home-rail { position: static; }
}
/* Accent pips before each home card-title eyebrow — color rhythm + "designed". */
.home-wide .card-title > span:first-child { position: relative; padding-left: 15px; }
.home-wide .card-title > span:first-child::before {
  content: ''; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
  width: 3px; height: 12px; border-radius: 2px; background: var(--accent);
  box-shadow: 0 0 9px var(--glow);
}
/* Subtle glow on the headline stat numbers so they read as the anchors. */
.recovery-hero-num, .sleep-hero-num, .cash-runway-num, .hero-headline { text-shadow: 0 0 20px var(--glow); }
/* Runway bar: money→accent sweep (re-assert over the solid override above). */
.runway-bar-fill { background: linear-gradient(90deg, color-mix(in srgb, var(--money) 58%, var(--accent)), var(--money)); }
/* Card lift on the interactive home rail/active-work cards that open a drawer. */
.recovery-card, .sleep-lab { transition: border-color .14s ease, box-shadow .14s ease; }
