/* Z-INDEX LADDER (ascending; do not change a value without updating this block)
   1   .msearch        — sticky search inside a panel
   5   nav.tabs        — sticky top tab bar
   20  #fab            — floating quick-add button
   25  modals (base)   — #addModal, #editModal, #notesModal, #closeModal, #mergeModal
   26  #createMenu     — create-type chooser sheet
   30  #toast          — transient toast
   40  ritual/people overlays — #ritual, #people
   45  #editModal, #closeModal (override) — raised above ritual when opened from inside it
   46  #mergeModal (override) — above edit/close
   50  .combolist      — dropdown floats above everything
   Pattern: modals declare a z25 BASE, and #editModal/#closeModal (z45) + #mergeModal (z46) add an
   OVERRIDE so a modal opened from inside #ritual (z40) sits above the ritual instead of behind it. */
:root{
  --bg:#FFFFFF; --panel:#F6F8FA; --text:#1F2328; --muted:#656D76;
  --border:#D0D7DE; --accent:#0969DA; --success:#1A7F37; --warn:#9A6700; --danger:#CF222E;
  --t0:#CF222E; --t1:#BC4C00; --t2:#0969DA; --t3:#6E7781;
  --board-max:840px;                          /* v28: wide-desktop cap for the board list (tunable) */
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#0D1117; --panel:#161B22; --text:#E6EDF3; --muted:#7D8590;
    --border:#30363D; --accent:#2F81F7; --success:#3FB950; --warn:#D29922; --danger:#F85149;
    --t0:#F85149; --t1:#DB6D28; --t2:#2F81F7; --t3:#8B949E;
  }
}
*{ box-sizing:border-box; -webkit-tap-highlight-color:transparent; }
html{ color-scheme:light dark; }
body{ font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  background:var(--bg); color:var(--text); margin:0; line-height:1.5; font-size:15px;
  padding:0 0 96px; -webkit-font-smoothing:antialiased; }
.container{ max-width:1400px; margin:0 auto; padding:16px; }

header.top{ display:flex; justify-content:space-between; align-items:baseline; flex-wrap:wrap; gap:8px; padding-bottom:12px; }
header.top h1{ font-size:20px; margin:0; font-weight:600; }
header.top .meta{ color:var(--muted); font-size:12px; }
header.top .meta b{ color:var(--text); font-weight:600; }
#syncDot{ font-size:11px; color:var(--muted); }
#syncDot.err{ color:var(--danger); }

/* tabs — desktop underline; becomes bottom nav on mobile */
nav.tabs{ display:flex; gap:2px; border-bottom:1px solid var(--border); margin-bottom:18px; position:sticky; top:0; background:var(--bg); z-index:5; }
nav.tabs button{ background:none; border:none; border-bottom:2px solid transparent; color:var(--muted); font:600 14px/1 inherit; padding:12px 14px; cursor:pointer; flex:1; }
nav.tabs button.on{ color:var(--accent); border-bottom-color:var(--accent); }

.panel{ display:none; } .panel.on{ display:block; }
h2{ font-size:15px; font-weight:600; margin:24px 0 10px; }
h2:first-child{ margin-top:0; }
h2 .c{ font-size:12px; color:var(--muted); font-weight:400; }
.note{ color:var(--muted); font-size:12px; font-style:italic; }

/* KPIs */
.kpis{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:10px; margin-bottom:22px; }
.kpi{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:14px; }
.kpi .l{ font-size:11px; color:var(--muted); text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px; }
.kpi .v{ font-size:26px; font-weight:600; line-height:1; }
.kpi .s{ font-size:11px; color:var(--muted); margin-top:4px; }
.kpi.warn .v{ color:var(--warn); } .kpi.danger .v{ color:var(--danger); } .kpi.ok .v{ color:var(--success); }
.kpi.tap{ cursor:pointer; } .kpi.tap:hover{ border-color:var(--accent); }
@media (max-width:560px){
  .kpis{ grid-template-columns:repeat(3,1fr); gap:8px; margin-bottom:16px; }
  .kpi{ padding:10px 8px; }
  .kpi .v{ font-size:20px; } .kpi .l{ font-size:9.5px; margin-bottom:3px; letter-spacing:.2px; } .kpi .s{ font-size:9.5px; }
}

/* Overview: ritual nudge + cold banner + collapsed throughput */
.nudge{ display:flex; align-items:center; gap:8px; background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:9px 12px; margin-bottom:8px; cursor:pointer; font-size:13px; }
.nudge:hover{ border-color:var(--accent); }
.nudge .nudgemain{ flex:1; min-width:0; }
.nudge .nudgex{ flex:0 0 auto; background:none; border:none; color:var(--muted); font-size:14px; line-height:1; cursor:pointer; padding:4px 6px; }
.coldbanner{ display:block; width:100%; text-align:left; background:rgba(207,34,46,.08); border:1px solid var(--danger); color:var(--danger);
  border-radius:8px; padding:11px 14px; font:600 13px inherit; cursor:pointer; margin-bottom:8px; }

/* tier pills */
.tier-pill{ flex:0 0 auto; display:inline-block; font-size:10px; font-weight:700; padding:2px 7px; border-radius:5px; letter-spacing:.3px; }
.tier-t0{ background:rgba(207,34,46,.15); color:var(--t0); }
.tier-t1{ background:rgba(188,76,0,.15); color:var(--t1); }
.tier-t2{ background:rgba(9,105,218,.15); color:var(--t2); }
.tier-t3{ background:rgba(110,119,129,.15); color:var(--t3); }
.cold{ flex:0 0 auto; font-size:9px; font-weight:700; letter-spacing:.4px; color:var(--danger); border:1px solid var(--danger); border-radius:4px; padding:0 4px; }
.bang{ color:var(--danger); font-weight:700; flex:0 0 auto; }

/* Today's Focus */
.focus{ border:1px solid var(--border); border-radius:10px; overflow:hidden; margin-bottom:22px; }
.frow{ display:flex; align-items:center; gap:10px; padding:11px 14px; border-top:1px solid var(--border); font-size:14px; min-height:44px; }
.frow:first-child{ border-top:none; }
.frow .ftxt{ flex:1; min-width:0; }
.frow .fper{ flex:0 0 auto; color:var(--muted); font-size:12px; }
.frow.t0{ background:rgba(207,34,46,.06); }
.frow[data-id]{ cursor:pointer; }
.frow[data-id]:active{ background:var(--panel); }

/* Overview by-area chips */
.areachips{ display:flex; flex-wrap:wrap; gap:8px; }
.areachip{ display:inline-flex; align-items:center; gap:8px; background:var(--panel); border:1px solid var(--border);
  border-radius:999px; padding:8px 12px 8px 14px; cursor:pointer; font:600 13px inherit; color:var(--text); }
.areachip:hover{ border-color:var(--accent); color:var(--accent); }
.areachip .an{ color:var(--accent); }
.areachip:hover .an{ color:var(--accent); }
.areachip .ac{ background:var(--bg); border:1px solid var(--border); border-radius:999px; min-width:20px; text-align:center;
  padding:1px 7px; font-size:12px; color:var(--muted); font-variant-numeric:tabular-nums; }

/* checkbox (tappable, persists) */
.cb{ width:18px; height:18px; flex:0 0 auto; border:1.5px solid var(--muted); border-radius:5px; cursor:pointer; position:relative; }
.cb::before{ content:''; position:absolute; inset:-7px; }  /* ~32px tap target without growing the box */
.cb.on{ background:var(--success); border-color:var(--success); }
.cb.on::after{ content:"\2713"; color:#fff; font-size:12px; position:absolute; left:2px; top:-2px; }
.cb.dash{ border-style:dashed; }
.adot{ width:9px; height:9px; border-radius:50%; background:var(--warn); flex:0 0 auto; }

/* cards / patterns */
.cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:10px; }
.card{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:13px 15px; }
.card h4{ margin:0 0 8px; font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); }
.brow{ display:flex; align-items:center; gap:10px; padding:3px 0; font-size:13px; }
.brow .lab{ flex:1; min-width:0; overflow-wrap:anywhere; } .brow .val{ color:var(--muted); font-variant-numeric:tabular-nums; }
.btrack{ flex:2; height:8px; background:rgba(110,119,129,.2); border-radius:5px; overflow:hidden; }
.bfill{ height:100%; background:var(--accent); border-radius:5px; }

/* Full Board */
.filters{ border:1px solid var(--border); background:var(--panel); border-radius:10px; padding:12px; margin-bottom:14px;
  display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; align-items:end; }
.fld{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.fld label{ font-size:10px; letter-spacing:.5px; text-transform:uppercase; color:var(--muted); }
.fld input,.fld select{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:9px 10px; font:14px inherit; width:100%; }
.fld input:focus,.fld select:focus{ outline:none; border-color:var(--accent); }
.btn{ background:var(--bg); border:1px solid var(--border); color:var(--muted); border-radius:7px; padding:9px 12px; font:600 13px inherit; cursor:pointer; height:40px; }
.btn:hover{ border-color:var(--accent); color:var(--accent); }
.boardmeta{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:10px; font-size:12.5px; color:var(--muted); }
.boardmeta b{ color:var(--text); }
.boardmeta select{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:6px; padding:4px 8px; font:13px inherit; }
.tbl{ border:1px solid var(--border); border-radius:10px; overflow:hidden; }
.grp{ background:var(--panel); border-top:1px solid var(--border); border-left:3px solid transparent; padding:8px 14px; display:flex; justify-content:space-between; font-size:11px; letter-spacing:.7px; text-transform:uppercase; color:var(--muted); font-weight:700; cursor:pointer; user-select:none; }
.grp:first-child{ border-top:none; }
.grp .gtitle{ display:flex; align-items:center; gap:6px; }
.grp .caret{ display:inline-block; width:9px; font-size:9px; color:var(--muted); }
.grp .gcount{ font-weight:700; }
.grp:hover{ color:var(--text); }

/* Follow-up: message-a-delegate copy button (right of the sub-header) */
.fup-copy-btn{ display:inline-flex; align-items:center; gap:4px; flex:0 0 auto;
  border:1px solid var(--border); background:var(--bg); color:var(--muted);
  font:600 11px/1 inherit; text-transform:none; letter-spacing:.2px;
  padding:5px 9px; border-radius:6px; cursor:pointer;
  transition:transform .08s ease, background .12s ease, border-color .12s ease, color .12s ease; }
.fup-copy-btn .ti{ font-size:13px; line-height:1; }
.fup-copy-btn:active{ transform:scale(.96); background:var(--panel); }
.fup-copy-btn.is-copied{ border-color:var(--success); color:var(--success);
  background:color-mix(in srgb, var(--success) 12%, transparent); }
.fup-copy-btn.is-failed{ border-color:var(--danger); color:var(--danger); }
/* v28 board row: full-width block (no flex starvation -> title/meta/note wrap normally at any width). */
#tbl{ max-width:var(--board-max); }                        /* wide-desktop cap, left-aligned (no-op on mobile) */
.rowt{ display:block; padding:9px 12px; border-top:1px solid var(--border); border-left:3px solid transparent; }
/* recently-updated marker: 3px left accent; transparent on others -> no layout shift, no corner radius */
.rowt.recent{ border-left-color:var(--accent); }
/* TOP ROW: id (left, truncates) + controls cluster (checkbox · tier · edit) */
.rhead{ display:flex; align-items:center; gap:10px; }
.rid{ flex:1; min-width:0; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10.5px; color:var(--muted);
  opacity:.7; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rctl{ flex:0 0 auto; display:flex; align-items:center; gap:8px; }
.rowedit{ flex:0 0 auto; background:none; border:1px solid var(--border); color:var(--muted);
  width:34px; height:34px; border-radius:8px; font-size:15px; line-height:1; cursor:pointer; }
.rowedit:hover{ border-color:var(--accent); color:var(--accent); }
/* TITLE: full width, wraps by words */
.rbody{ display:block; cursor:pointer; margin-top:4px; }
.rbody:active{ opacity:.7; }
.rtitle{ font-size:13.5px; font-weight:500; line-height:1.35; overflow-wrap:break-word; }
.rtitle .bang{ margin-right:4px; }
.rowt.done-row .rtitle{ text-decoration:line-through; color:var(--muted); }
/* META STRIP: full width, wraps */
.rmeta{ display:flex; flex-wrap:wrap; align-items:center; gap:5px 9px; font-size:11.5px; color:var(--muted); margin-top:5px; }
.rmeta .stat{ font-size:10px; letter-spacing:.5px; text-transform:uppercase; }
.rmeta .stat.active{ color:var(--accent); } .rmeta .stat.waiting{ color:var(--warn); } .rmeta .stat.done{ color:var(--success); }
.rmeta .rarea{ color:var(--accent); }
.rmeta .rage.coldage{ color:var(--danger); }
/* PART C: due-date chip — neutral when set, amber within 2 days, red overdue */
.rmeta .rdue{ font-size:10px; font-weight:600; color:var(--muted); border:1px solid var(--border); border-radius:4px; padding:0 5px; }
.rmeta .rdue.soon{ color:var(--warn); border-color:var(--warn); }
.rmeta .rdue.over{ color:var(--danger); border-color:var(--danger); }
.rmeta .rnct{ cursor:pointer; } .rmeta .rnct.empty{ opacity:.55; }
/* NOTE: full-width own line, italic, 2-line clamp */
.rnote{ margin-top:5px; font-size:11.5px; font-style:italic; color:var(--muted); opacity:.9; line-height:1.4;
  display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:break-word; }

/* ---- Stage 2: 3-role tasks + delegation ---- */
.type-pill{ flex:0 0 auto; display:inline-block; font-size:9px; font-weight:700; letter-spacing:.3px; text-transform:uppercase;
  padding:1px 5px; border-radius:4px; border:1px solid var(--border); color:var(--muted); }
.type-decision{ color:var(--accent); border-color:var(--accent); }
.type-follow-up{ color:var(--warn); border-color:var(--warn); }
.type-action{ color:var(--muted); }
.rper.deleg{ color:var(--accent); }
.rper.rides{ color:var(--warn); }
.rper.onplate{ color:var(--muted); font-style:italic; }
/* Overview chip: things you're holding that could be delegated */
.delegbanner{ display:block; width:100%; text-align:left; background:rgba(9,105,218,.08); border:1px solid var(--accent); color:var(--accent);
  border-radius:8px; padding:11px 14px; font:600 13px inherit; cursor:pointer; margin-bottom:8px; }
/* edit-sheet labelled selects (delegate / rides_on / type / status) */
.sheet .ef{ display:flex; flex-direction:column; gap:4px; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.sheet .ef select{ text-transform:none; letter-spacing:0; }
.sheet .ef select:disabled{ opacity:.5; }

/* searchable people combobox (edit pickers + Board person filter) */
.combo{ position:relative; }
.comboinput{ text-transform:none; letter-spacing:0; }
.combolist{ position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:50; display:none;
  background:var(--bg); border:1px solid var(--border); border-radius:8px; max-height:240px; overflow-y:auto;
  box-shadow:0 8px 24px rgba(0,0,0,.28); }
.combolist.on{ display:block; }
.combogrp{ font-size:9px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); padding:7px 10px 2px; }
.comboopt{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:9px 10px; cursor:pointer;
  font-size:14px; min-height:40px; text-transform:none; letter-spacing:0; color:var(--text); }
.comboopt:hover, .comboopt.sel{ background:var(--panel); }
.comboopt .cslug{ flex:0 0 auto; color:var(--muted); font-size:11px; }
.comboadd{ display:flex; align-items:center; min-height:40px; padding:9px 10px; cursor:pointer; font-size:13px;
  color:var(--accent); border-top:1px solid var(--border); text-transform:none; letter-spacing:0; }
.comboadd:hover{ background:var(--panel); }
.combonone{ padding:9px 10px; color:var(--muted); font-size:12px; font-style:italic; }

/* multi-select Area filter: button styled like an input + checkbox options panel */
.fld .msbtn{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px;
  padding:9px 10px; font:14px inherit; width:100%; text-align:left; cursor:pointer; text-transform:none; letter-spacing:0; }
.fld .msbtn:focus{ outline:none; border-color:var(--accent); }
.fld .msbtn.active{ border-color:var(--accent); color:var(--accent); }
.msopt{ display:flex; align-items:center; gap:9px; padding:9px 10px; cursor:pointer; font-size:14px;
  min-height:40px; text-transform:none; letter-spacing:0; color:var(--text); }
.msopt:hover{ background:var(--panel); }
.msopt input{ width:auto; margin:0; }
/* panel header: "Select all" (left) + per-field Clear ✕ (right) */
.mshead{ display:flex; align-items:center; justify-content:space-between; gap:8px; padding:7px 10px; border-bottom:1px solid var(--border); }
.msall{ display:flex; align-items:center; gap:8px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); cursor:pointer; }
.msall input{ width:auto; margin:0; }
.msclear{ background:none; border:none; color:var(--muted); cursor:pointer; font-size:14px; line-height:1; padding:2px 8px; border-radius:6px; }
.msclear:hover{ color:var(--text); background:var(--panel); }
/* Show-done top-level toggle (in the board meta row) */
.donetgl{ font-size:12px; padding:4px 10px; }
.donetgl.on{ border-color:var(--accent); color:var(--accent); }
.msearch{ position:sticky; top:0; z-index:1; width:100%; box-sizing:border-box; background:var(--bg);
  border:none; border-bottom:1px solid var(--border); color:var(--text); border-radius:8px 8px 0 0; padding:9px 10px; font:14px inherit; }
.msearch:focus{ outline:none; }

/* sort field + direction flip (one toggle replaces paired asc/desc options) */
.sortrow{ display:flex; gap:6px; align-items:stretch; }
.sortrow select{ flex:1; width:auto; }
.sortdir{ display:flex; flex:0 0 auto; }
.dirbtn{ background:var(--bg); border:1px solid var(--border); color:var(--muted); width:32px; cursor:pointer; font:11px inherit; padding:0; }
.dirbtn:first-child{ border-radius:7px 0 0 7px; }
.dirbtn:last-child{ border-radius:0 7px 7px 0; border-left:none; }
.dirbtn.on{ border-color:var(--accent); color:var(--accent); }

/* derived status display in the edit sheet */
.derivedwrap{ display:flex; align-items:center; gap:10px; margin:2px 0 12px; }
.derivedwrap .dlab{ font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.derived{ font-size:13px; font-weight:600; padding:3px 10px; border-radius:6px; border:1px solid var(--border); }
.derived.active{ color:var(--muted); }
.derived.waiting-internal{ color:var(--accent); border-color:var(--accent); }
.derived.waiting-external{ color:var(--warn); border-color:var(--warn); }
.derived.someday{ color:var(--muted); }
.derived.done{ color:var(--success); border-color:var(--success); }

/* thoughts */
.thtadd{ background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:12px; margin-bottom:12px; }
.thtadd textarea{ width:100%; box-sizing:border-box; background:var(--bg); border:1px solid var(--border); color:var(--text);
  border-radius:8px; padding:10px; font:14px inherit; resize:vertical; min-height:84px; max-height:40vh; field-sizing:content; }   /* PART D: taller + auto-grow */
.thtadd textarea:focus{ outline:none; border-color:var(--accent); }
.thtaddrow{ display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; }
.thttoggle{ display:flex; align-items:center; gap:7px; font-size:13px; color:var(--muted); cursor:pointer; }
.thttoggle input{ width:auto; }
.thttag{ font-size:11px; color:var(--accent); }
.thtadd .primary{ background:var(--accent); color:#fff; border:none; border-radius:8px; padding:9px 16px; font:600 13px inherit; cursor:pointer; }
.thtfilters{ display:flex; gap:6px; margin-bottom:12px; flex-wrap:wrap; }
.thtf{ background:var(--bg); border:1px solid var(--border); color:var(--muted); border-radius:999px; padding:5px 12px; font:600 12px inherit; cursor:pointer; }
.thtf.on{ border-color:var(--accent); color:var(--accent); }
.thought{ background:var(--panel); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:8px; padding:12px 15px; margin-bottom:10px; }
.thought .d{ font-size:11px; color:var(--accent); margin-bottom:5px; font-weight:600; }
.thought.idea{ border-left-color:var(--warn); }
.thought.idea .d{ color:var(--warn); display:flex; align-items:center; gap:8px; }
.ideapill{ font-size:9px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; padding:1px 6px; border-radius:4px; border:1px solid var(--border); color:var(--muted); }
.ideapill.open{ color:var(--accent); border-color:var(--accent); }
.ideapill.shipped{ color:var(--success); border-color:var(--success); }
.ideapill.dropped{ color:var(--muted); }
.ideaacts{ display:flex; gap:8px; margin-top:8px; }
.ideaact{ background:none; border:1px solid var(--border); color:var(--muted); border-radius:6px; padding:4px 10px; font:600 11.5px inherit; cursor:pointer; }
.ideaact:hover{ border-color:var(--accent); color:var(--accent); }

/* PART A: in-place thought/idea text editing */
.thought .d{ display:flex; align-items:center; gap:8px; }
.thtedit{ margin-left:auto; flex:0 0 auto; background:none; border:none; color:var(--muted); font-size:13px; line-height:1; cursor:pointer; padding:2px 4px; border-radius:6px; }
.thtedit:hover{ color:var(--accent); }
.thtbody{ white-space:pre-wrap; word-break:break-word; }
.thteditform{ display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.thteditbox{ width:100%; box-sizing:border-box; background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:9px 10px; font:14px inherit; min-height:72px; max-height:40vh; field-sizing:content; resize:vertical; }
.thteditbox:focus{ outline:none; border-color:var(--accent); }
.thteditacts{ display:flex; gap:8px; justify-content:flex-end; }
.thteditacts .ghost{ background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:7px 14px; font:600 12.5px inherit; cursor:pointer; }
.thteditacts .primary{ background:var(--accent); color:#fff; border:none; border-radius:7px; padding:7px 16px; font:600 12.5px inherit; cursor:pointer; }

/* v24: captures — read-only raw-dump log (notebook). Muted vs curated thoughts (no accent left-border). */
.capture{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:10px 13px; margin-bottom:8px; }
.capture .d{ font-size:11px; color:var(--muted); margin-bottom:5px; display:flex; align-items:center; gap:8px; }
.capbody{ font-size:14px; line-height:1.45; white-space:pre-wrap; word-break:break-word; }
.captag{ font-size:9px; font-weight:700; letter-spacing:.3px; border:1px solid var(--border); color:var(--muted); border-radius:4px; padding:1px 6px; }
.captag.voice{ color:var(--accent); border-color:var(--accent); }
.capmore{ text-align:center; margin:12px 0 4px; }

/* v26 PART A: optional note-at-create textarea */
.ednotewrap{ margin-top:8px; }
.ednotewrap[hidden]{ display:none; }
.ednotewrap textarea{ width:100%; box-sizing:border-box; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px; font:14px inherit; resize:vertical; min-height:58px; max-height:30vh; field-sizing:content; }
.ednotewrap textarea:focus{ outline:none; border-color:var(--accent); }

/* v26 PART B: inline new-person category chooser + needs-enrichment badge */
.capanel{ padding:4px 2px; }
.caphead{ font-size:12px; color:var(--text); margin:2px 2px 8px; }
.captypes{ display:flex; flex-wrap:wrap; gap:6px; }
.captype{ background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:999px; padding:6px 12px; font:600 12px inherit; cursor:pointer; }
.captype:hover{ border-color:var(--accent); color:var(--accent); }
.capnote{ font-size:10.5px; color:var(--muted); margin:8px 2px 4px; }
.capcancel{ background:none; border:none; color:var(--muted); font:600 12px inherit; cursor:pointer; padding:2px; }
.penrich{ flex:0 0 auto; font-size:9px; font-weight:700; letter-spacing:.3px; color:var(--warn); border:1px solid var(--warn); border-radius:4px; padding:0 5px; }
/* v29: subtle string-only "possible duplicate?" hint on the People roster — informational, never auto-acts */
.pdup{ flex:0 0 auto; font-size:9px; font-weight:600; letter-spacing:.2px; color:var(--muted); border:1px dashed var(--border); border-radius:4px; padding:0 5px; opacity:.85; }
/* v29: small helper line under a manual person field (e.g. handle-rename note) */
.pfhint{ font-size:10px; text-transform:none; letter-spacing:0; color:var(--muted); margin-top:2px; }

/* v26 PART D: streak tracker — motivating, Cool Slate; celebrates, never punishes */
.streakcard{ background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:14px 16px; margin-bottom:18px; }
.streaktop{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.streakmain{ display:flex; align-items:baseline; gap:8px; }
.flame{ font-size:26px; line-height:1; }
.flame.cold{ filter:grayscale(1); opacity:.45; }
.streaknum{ font-size:34px; font-weight:800; color:var(--text); line-height:1; }
.streaklab{ font-size:12px; color:var(--muted); }
.streakstats{ display:flex; flex-direction:column; align-items:flex-end; gap:2px; font-size:12px; color:var(--muted); }
.streakstats b{ color:var(--text); }
.streaknext{ color:var(--accent); font-weight:600; }
.msrow{ display:flex; gap:6px; margin:12px 0 10px; }
.msbadge{ flex:1; text-align:center; font-size:11px; font-weight:700; color:var(--muted); background:var(--bg); border:1px solid var(--border); border-radius:6px; padding:5px 0; }
.msbadge.hit{ color:var(--success); border-color:var(--success); background:rgba(63,185,80,.10); }
.heatmap{ display:grid; grid-template-rows:repeat(7,1fr); grid-auto-flow:column; grid-auto-columns:1fr; gap:3px; }
.hcell{ aspect-ratio:1; border-radius:2px; background:var(--border); opacity:.4; }
.hcell.on{ background:var(--success); opacity:1; }
.heatlegend{ font-size:10.5px; color:var(--muted); margin-top:8px; }
@keyframes streakpulse{ 0%{ box-shadow:0 0 0 0 rgba(63,185,80,.5); } 100%{ box-shadow:0 0 0 14px rgba(63,185,80,0); } }
.streakcard.celebrate{ animation:streakpulse 1.2s ease-out; border-color:var(--success); }

/* quick add (floating) */
#fab{ position:fixed; right:18px; bottom:22px; width:56px; height:56px; border-radius:50%;
  background:var(--accent); color:#fff; border:none; font-size:28px; line-height:1; cursor:pointer;
  box-shadow:0 4px 14px rgba(0,0,0,.25); z-index:20; }
#addModal,#editModal,#notesModal,#closeModal,#mergeModal{ position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; align-items:center; justify-content:center; padding:16px; z-index:25; }
#addModal.on,#editModal.on,#notesModal.on,#closeModal.on,#mergeModal.on{ display:flex; }

/* PART B: unified create menu — bottom-sheet on mobile, centered card on wider screens */
#createMenu{ position:fixed; inset:0; background:rgba(0,0,0,.45); display:none; align-items:flex-end; justify-content:center; z-index:26; }
#createMenu.on{ display:flex; }
.cmsheet{ width:100%; max-width:560px; background:var(--bg); border:1px solid var(--border); border-radius:16px 16px 0 0; padding:16px 16px calc(16px + env(safe-area-inset-bottom)); max-height:88vh; overflow-y:auto; }
.cmgroup{ margin-bottom:14px; }
.cmlabel{ font-size:10px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); font-weight:700; margin:2px 2px 8px; display:flex; align-items:center; gap:8px; }
.cmhint{ font-weight:600; letter-spacing:.3px; text-transform:none; color:var(--muted); border:1px solid var(--border); border-radius:999px; padding:1px 8px; }
.cmopt{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:10px; padding:12px 14px; margin-bottom:8px; cursor:pointer; }
.cmopt:hover{ border-color:var(--accent); }
.cmopt.ai{ border-style:dashed; }                          /* the AI/parse one reads distinct from instant-create */
.cmico{ font-size:22px; flex:0 0 auto; line-height:1; }
.cmtxt{ display:flex; flex-direction:column; gap:2px; }
.cmtxt b{ font-size:14px; }
.cmtxt small{ font-size:11.5px; color:var(--muted); }
.cmsheet .actions{ display:flex; margin-top:4px; }
.cmsheet .ghost{ flex:1; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:12px; font:600 14px inherit; cursor:pointer; }
@media (min-width:560px){ #createMenu{ align-items:center; } .cmsheet{ border-radius:14px; } }
.sheet{ background:var(--bg); border:1px solid var(--border); border-radius:14px; width:100%; max-width:560px; max-height:88vh; overflow-y:auto; padding:18px 16px calc(18px + env(safe-area-inset-bottom)); }
.sheet h3{ margin:0 0 12px; font-size:15px; }
.sheet .row{ display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px; }
.sheet input,.sheet select{ background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:11px; font:14px inherit; width:100%; }
.sheet .full{ grid-column:1 / -1; }
.sheet .actions{ display:flex; gap:10px; margin-top:6px; }
.sheet .primary{ flex:1; background:var(--accent); color:#fff; border:none; border-radius:8px; padding:12px; font:600 14px inherit; cursor:pointer; }
.sheet .ghost{ flex:0 0 auto; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:12px 16px; font:600 14px inherit; cursor:pointer; }

#toast{ position:fixed; left:50%; bottom:90px; transform:translateX(-50%); background:var(--text); color:var(--bg);
  padding:9px 16px; border-radius:20px; font-size:13px; opacity:0; transition:opacity .2s; pointer-events:none; z-index:30; }
#toast.on{ opacity:.95; }
.loading{ text-align:center; color:var(--muted); padding:40px; font-size:14px; }
.foot{ margin-top:28px; padding-top:14px; border-top:1px solid var(--border); color:var(--muted); font-size:11px; text-align:center; }
.footlink{ background:none; border:none; color:var(--accent); font:inherit; font-size:11px; cursor:pointer; padding:0; text-decoration:underline; }

/* Feature #5: notes history + close prompt */
.naddrow{ display:flex; gap:8px; margin:10px 0 12px; }
.naddrow input{ flex:1; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:11px; font:14px inherit; }
.naddrow input:focus{ outline:none; border-color:var(--accent); }
.naddrow .primary{ flex:0 0 auto; background:var(--accent); color:#fff; border:none; border-radius:8px; padding:0 16px; font:600 13px inherit; cursor:pointer; }
.noterow{ border:1px solid var(--border); border-radius:8px; padding:9px 11px; margin-bottom:8px; background:var(--panel); }
.ntmeta{ display:flex; align-items:center; gap:8px; margin-bottom:4px; }
.nkind{ font-size:9px; font-weight:700; letter-spacing:.4px; text-transform:uppercase; padding:1px 6px; border-radius:4px; border:1px solid var(--border); color:var(--muted); }
.nkind.k-status{ color:var(--accent); border-color:var(--accent); }
.nkind.k-close{ color:var(--success); border-color:var(--success); }
.nkind.k-field-change{ color:var(--warn); border-color:var(--warn); }
.nkind.k-system{ color:var(--muted); }
.nts{ font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.nbody{ font-size:13.5px; overflow-wrap:anywhere; }
.ctitle{ font-size:13.5px; color:var(--muted); margin:2px 0 12px; overflow-wrap:anywhere; }
#closeModal textarea{ width:100%; box-sizing:border-box; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px; font:14px inherit; resize:vertical; margin-top:4px; }
#closeModal textarea:focus{ outline:none; border-color:var(--accent); }

/* ---- Phase 2A: AI capture ---- */
.modetabs{ display:flex; gap:6px; margin-bottom:14px; }
.modetabs .mt{ flex:1; background:var(--panel); border:1px solid var(--border); color:var(--muted);
  border-radius:8px; padding:10px; font:600 13px inherit; cursor:pointer; }
.modetabs .mt.on{ color:var(--accent); border-color:var(--accent); background:transparent; }
.dumpwrap{ position:relative; }
/* PART D: taller, auto-growing (field-sizing where supported, min/max bound everywhere) so mobile typing isn't cramped */
#dpText{ width:100%; min-height:160px; max-height:50vh; field-sizing:content; resize:vertical; background:var(--panel); border:1px solid var(--border);
  color:var(--text); border-radius:10px; padding:12px 46px 12px 12px; font:15px inherit; line-height:1.45; }
#dpText:focus{ outline:none; border-color:var(--accent); }
/* shared mic button (brain dump + Thoughts quick-add) — positioned bottom-right of its textarea wrapper */
.dpmic{ position:absolute; right:8px; bottom:8px; width:34px; height:34px; border-radius:50%;
  background:var(--bg); border:1px solid var(--border); cursor:pointer; font-size:16px; line-height:1; }
.dpmic.rec{ background:var(--danger); border-color:var(--danger); color:#fff; animation:pulse 1s infinite; }
.dpmic.busy{ animation:pulse 1.1s infinite; opacity:.7; cursor:default; }
.dpmic:disabled{ cursor:default; }
/* PART A: Thoughts quick-add mic — same recorder, reserve right padding so text clears the button */
.thtwrap{ position:relative; }
.thtwrap textarea{ padding-right:44px; }
@keyframes pulse{ 50%{ opacity:.55; } }
.recstatus{ min-height:16px; margin:6px 2px 0; font-size:12px; color:var(--muted); }
.recstatus.rec{ color:var(--danger); font-weight:600; }
.recstatus.busy{ color:var(--accent); }
#dpResult{ margin-top:14px; }
#dpResult .rhdr{ font-size:12px; color:var(--muted); margin:6px 0 8px; }
.pcard{ background:var(--panel); border:1px solid var(--border); border-radius:10px; padding:10px 12px; margin-bottom:10px; }
.pcard input.t{ width:100%; background:var(--bg); border:1px solid var(--border); color:var(--text);
  border-radius:7px; padding:9px 10px; font:14px inherit; margin-bottom:8px; }
.pcard .meta{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.pcard .meta select, .pcard .meta input{ background:var(--bg); border:1px solid var(--border); color:var(--text);
  border-radius:7px; padding:8px 9px; font:13px inherit; width:100%; }
.pcard .pderived{ display:inline-block; margin-top:8px; font-size:12px; }
.pcard .ftrow{ display:flex; align-items:center; justify-content:space-between; margin-top:8px; }
.pcard .ftrow label{ font-size:12.5px; color:var(--muted); display:flex; align-items:center; gap:6px; }
.pcard .drop{ background:none; border:none; color:var(--danger); font:600 12px inherit; cursor:pointer; }
.pcard .flag{ font-size:11.5px; color:var(--warn); margin-top:6px; }
/* C1: create-card deadline pill — dashed "+ add deadline" affordance when empty, solid accent when set */
.pcard .pcduerow{ margin-top:8px; }
.pcard .pcdue{ font:600 11px inherit; color:var(--muted); background:var(--bg); border:1px dashed var(--border); border-radius:999px; padding:3px 10px; cursor:pointer; }
.pcard .pcdue.set{ color:var(--accent); border-style:solid; border-color:var(--accent); }
.pcard .pcd{ display:block; margin-top:6px; font:13px inherit; background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:6px 8px; }
.pthought{ background:var(--panel); border:1px solid var(--border); border-left:3px solid var(--accent);
  border-radius:8px; padding:9px 12px; margin-bottom:8px; font-size:13px; }
.dpnote{ font-size:12.5px; color:var(--warn); margin:6px 0 12px; font-style:italic; }
.dnone{ font-style:normal; background:rgba(154,103,0,.08); border:1px solid var(--warn); border-radius:8px; padding:9px 12px; }
.spin{ text-align:center; color:var(--muted); padding:20px; font-size:14px; }

/* Brain-dump UPDATE / CLOSE decision cards (update-as-capture, Parts 2–3) */
.dcard{ background:var(--panel); border:1px solid var(--border); border-left:3px solid var(--accent); border-radius:10px; padding:10px 12px; margin-bottom:10px; }
.dcard.close{ border-left-color:var(--success); }
.dcard.low{ border-left-color:var(--warn); }
.dcard.applied{ opacity:.55; }
.dhdr{ display:flex; justify-content:space-between; align-items:center; gap:8px; }
.dbadge{ font:700 11px/1 ui-monospace,SFMono-Regular,Menlo,monospace; letter-spacing:.5px; color:var(--accent); }
.dcard.close .dbadge{ color:var(--success); }
.dconf{ font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.dttl{ font-size:14px; margin:5px 0 6px; overflow-wrap:anywhere; }
.dlowbanner{ font-size:12px; color:var(--warn); background:rgba(154,103,0,.10); border:1px solid var(--warn); border-radius:7px; padding:6px 8px; margin-bottom:8px; }
.umeta{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
.umeta select,.umeta input{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:9px 10px; font:14px inherit; width:100%; box-sizing:border-box; }
.umeta select:focus,.umeta input:focus{ outline:none; border-color:var(--accent); }
.dnotelab{ display:flex; flex-direction:column; gap:4px; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin-top:4px; }
.dnote{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:8px 10px; font:14px inherit; width:100%; box-sizing:border-box; resize:vertical; }
.dnote:focus{ outline:none; border-color:var(--accent); }
/* two-tone change preview: accent = changes I drove, warn = rule-derived "(auto)". Low-alpha tints work light+dark. */
.udiff{ display:flex; flex-direction:column; gap:3px; margin:8px 0; }
.udiff .dfrow{ display:flex; align-items:baseline; gap:6px; flex-wrap:wrap; padding:3px 8px; border-radius:6px; font-size:12px; }
.udiff .dflabel{ flex:0 0 auto; min-width:62px; font-size:9.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); }
.udiff .dffrom{ color:var(--muted); text-decoration:line-through; opacity:.75; }
.udiff .dfarrow{ color:var(--muted); }
.udiff .dfto{ font-weight:600; }
.udiff .dfrow.driven{ background:rgba(9,105,218,.09); }
.udiff .dfrow.driven .dfto{ color:var(--accent); }
.udiff .dfrow.auto{ background:rgba(154,103,0,.12); }
.udiff .dfrow.auto .dfto{ color:var(--warn); }
.udiff .dfauto{ flex:0 0 auto; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.4px; color:var(--warn);
  border:1px solid var(--warn); border-radius:4px; padding:0 4px; }
.udiff .dfnone{ font-size:11.5px; color:var(--muted); font-style:italic; padding:2px 0; }
.dwhy{ font-size:11.5px; color:var(--muted); font-style:italic; margin:6px 0; overflow-wrap:anywhere; }
.dacts{ display:flex; gap:10px; justify-content:flex-end; align-items:center; flex-wrap:wrap; margin-top:8px; }
.ddone{ font-size:12.5px; color:var(--success); font-weight:600; }

/* ---- Phase 2B: rituals (brief / dump) ---- */
.rituals{ display:flex; gap:10px; margin-bottom:18px; }
.ritbtn{ flex:1; background:var(--panel); border:1px solid var(--border); color:var(--text);
  border-radius:10px; padding:13px; font:600 14px inherit; cursor:pointer; }
.ritbtn:hover{ border-color:var(--accent); color:var(--accent); }
#ritual,#people{ position:fixed; inset:0; background:rgba(0,0,0,.5); display:none; align-items:center; justify-content:center; padding:16px; z-index:40; }
#ritual.on,#people.on{ display:flex; }
/* PART B: edit + close sheets must sit ABOVE the ritual (z40) when opened from the evening dump */
#editModal,#closeModal{ z-index:45; }
/* v30: merge confirm opens from inside the People overlay (z40) — must sit above it */
#mergeModal{ z-index:46; }
#mergeModal .primary.danger{ background:var(--danger); }
.ritsheet{ background:var(--bg); border:1px solid var(--border); border-radius:14px; width:100%; max-width:620px;
  max-height:88vh; display:flex; flex-direction:column; }
.rithead{ display:flex; justify-content:space-between; align-items:center; padding:16px; border-bottom:1px solid var(--border); font-weight:600; }
.rithead button{ background:none; border:none; color:var(--muted); font-size:18px; cursor:pointer; }
#ritBody,#peopleBody{ overflow-y:auto; padding:16px calc(16px + env(safe-area-inset-right)) calc(20px + env(safe-area-inset-bottom)) 16px; }
.rsec{ font-size:12px; text-transform:uppercase; letter-spacing:.5px; color:var(--muted); margin:18px 0 8px; }
.rsec:first-child{ margin-top:0; }
.ritem{ display:flex; gap:10px; align-items:flex-start; padding:8px 0; border-top:1px solid var(--border); }
.ritem:first-of-type{ border-top:none; }
.ritem .rtx{ flex:1; } .ritem .rwhy{ color:var(--muted); font-size:12.5px; margin-top:2px; }
.rline{ font-size:13.5px; padding:5px 0; } .rline.pb{ color:var(--warn); }
.script{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:10px 12px; margin-bottom:8px; position:relative; }
.script .sfor{ font-size:11px; color:var(--accent); margin-bottom:4px; }
.script .sop{ font-size:13.5px; padding-right:50px; }
.script .copy{ position:absolute; top:8px; right:8px; background:var(--bg); border:1px solid var(--border); color:var(--muted);
  border-radius:6px; font:600 11px inherit; padding:3px 8px; cursor:pointer; }
.primary.wide{ width:100%; background:var(--accent); color:#fff; border:none; border-radius:8px; padding:12px; font:600 14px inherit; cursor:pointer; margin:6px 0 4px; }
.primary.wide:disabled{ opacity:.6; }
.rkpis{ display:grid; grid-template-columns:repeat(5,1fr); gap:6px; margin-bottom:12px; }
@media (max-width:520px){ .rkpis{ grid-template-columns:repeat(3,1fr); } }
.rkpi{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:10px 6px; text-align:center; }
.rkpi .v{ font-size:20px; font-weight:600; } .rkpi .l{ font-size:10px; color:var(--muted); text-transform:uppercase; letter-spacing:.3px; margin-top:3px; }
.rsum{ font-size:13.5px; line-height:1.5; background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:11px 13px; }
/* PART B: slipped rows are actionable — title (tap to edit) + id, optional stale nudge, then tag + Edit/Close */
.sliprow{ padding:9px 0; border-top:1px solid var(--border); }
.sliptop{ display:flex; align-items:baseline; gap:8px; }
.sliprow .stx{ font-size:13.5px; flex:1; min-width:0; cursor:pointer; }
.sliprow .stx:hover{ color:var(--accent); }
.slipid{ flex:0 0 auto; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10.5px; color:var(--muted); opacity:.65; }
.slipstale{ font-size:11px; color:var(--warn); margin:4px 0 2px; }
.sliprowacts{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:7px; }
.sliprow .etag{ background:var(--bg); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:7px; font:12.5px inherit; flex:1; min-width:120px; }
.slipbtn{ flex:0 0 auto; background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:7px; padding:7px 12px; font:600 12.5px inherit; cursor:pointer; }
.slipbtn:hover{ border-color:var(--accent); color:var(--accent); }
.slipclose:hover{ border-color:var(--success); color:var(--success); }
.sliprow .snote{ font-size:11.5px; color:var(--muted); margin-top:5px; }
.sliprow.slipdone{ opacity:.55; }
.sliprow.slipdone .stx{ text-decoration:line-through; }
.slipdonelab{ color:var(--success); font-weight:600; font-size:12.5px; }

/* ritual cache bar */
.regenbar{ display:flex; justify-content:space-between; align-items:center; font-size:11.5px; color:var(--muted); margin-bottom:10px; }
.regenbar button{ background:var(--bg); border:1px solid var(--border); color:var(--accent); border-radius:6px; font:600 11.5px inherit; padding:4px 9px; cursor:pointer; }

/* people manager */
.flink{ background:none; border:none; color:var(--accent); font:inherit; font-size:10px; text-transform:none; letter-spacing:0; cursor:pointer; padding:0; margin-left:6px; }
.person{ cursor:pointer; } .person:hover{ color:var(--accent); }
.prow{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:none; border-top:1px solid var(--border); padding:10px 2px; min-height:44px; cursor:pointer; color:var(--text); font:inherit; }
.prow:first-of-type{ border-top:none; }
.prow:hover{ color:var(--accent); }
.prow .pnm{ flex:0 0 auto; font-weight:600; font-size:14px; }
.prow .psub{ flex:1; min-width:0; color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.prow .ptag{ flex:0 0 auto; font-size:9px; text-transform:uppercase; letter-spacing:.4px; border:1px solid var(--border); border-radius:4px; padding:1px 5px; color:var(--muted); }
.prow .ptag.manual{ color:var(--accent); border-color:var(--accent); }
.pback{ background:none; border:none; color:var(--accent); font:600 13px inherit; cursor:pointer; padding:0 0 6px; }
.pauto{ background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:10px 12px; }
.amixwrap{ display:flex; flex-wrap:wrap; gap:6px; margin:6px 0 2px; }
.amix{ font-size:11px; color:var(--muted); background:var(--bg); border:1px solid var(--border); border-radius:5px; padding:2px 7px; }
.ptiny{ font-size:11px; background:var(--bg); border:1px solid var(--border); border-radius:5px; padding:2px 7px; color:var(--text); cursor:pointer; }
.ptiny:hover{ border-color:var(--accent); color:var(--accent); }
.pfld{ display:flex; flex-direction:column; gap:4px; font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); margin-top:12px; }
.pfld input,.pfld select,.pfld textarea{ background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:10px; font:14px inherit; text-transform:none; letter-spacing:0; width:100%; }
.pfld input:focus,.pfld select:focus,.pfld textarea:focus{ outline:none; border-color:var(--accent); }
.pfld textarea{ min-height:60px; resize:vertical; }
/* inline collision warning above the Handle field (mirrors .mwarn, dark-safe tint) */
.pwarn{ font-size:12px; color:var(--danger); border:1px solid var(--danger); border-radius:8px;
  padding:9px 11px; background:color-mix(in srgb, var(--danger) 8%, transparent);
  margin-top:12px; text-transform:none; letter-spacing:0; }
.pwarn[hidden]{ display:none; }

/* v30: merge duplicates */
.ptools{ display:flex; justify-content:flex-end; align-items:center; margin-bottom:2px; }
.flink.undo{ color:var(--muted); }                        /* v31: undo-last — secondary to "Merge duplicates" */
.mhint{ font-size:12px; color:var(--muted); background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:9px 11px; margin-bottom:10px; }
.mhint b{ color:var(--text); }
.mrow{ display:flex; align-items:center; gap:10px; width:100%; border-top:1px solid var(--border); padding:10px 6px; min-height:44px; cursor:pointer; color:var(--text); }
.mrow:first-of-type{ border-top:none; }
.mrow.sel{ background:var(--panel); }
.mrow .mck{ flex:0 0 18px; width:18px; height:18px; border:1.5px solid var(--muted); border-radius:5px; display:flex; align-items:center; justify-content:center; font-size:12px; font-weight:700; color:#fff; }
.mrow.sel .mck{ background:var(--accent); border-color:var(--accent); }
.mrow .pnm{ flex:0 0 auto; font-weight:600; font-size:14px; }
.mrow .psub{ flex:1; min-width:0; color:var(--muted); font-size:12px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mrow .pdup{ flex:0 0 auto; }
.mkeep{ flex:0 0 auto; background:var(--bg); border:1px solid var(--border); color:var(--muted); border-radius:6px; font:600 11px inherit; padding:4px 9px; cursor:pointer; }
.mkeep.on{ background:var(--accent); border-color:var(--accent); color:#fff; }
.mbar{ position:sticky; bottom:0; margin:14px -16px calc(-20px - env(safe-area-inset-bottom)); padding:12px 16px calc(12px + env(safe-area-inset-bottom));
  background:var(--bg); border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.mbarinfo{ font-size:12.5px; color:var(--muted); } .mbarinfo b{ color:var(--text); }
.mbaracts{ display:flex; gap:8px; }
.mbaracts .ghost{ background:var(--panel); border:1px solid var(--border); color:var(--text); border-radius:8px; padding:9px 14px; font:600 13px inherit; cursor:pointer; }
.mbaracts .primary{ background:var(--accent); color:#fff; border:none; border-radius:8px; padding:9px 16px; font:600 13px inherit; cursor:pointer; }
.mbaracts .primary:disabled{ opacity:.45; cursor:default; }
/* merge confirm modal body */
.mkeepcard{ background:var(--panel); border:1px solid var(--success); border-radius:8px; padding:10px 12px; font-size:14px; }
.mkeepcard .mkl{ font-size:10px; text-transform:uppercase; letter-spacing:.4px; color:var(--success); font-weight:700; margin-right:4px; }
.mkeepcard .mkn{ font-size:11.5px; color:var(--muted); margin-top:4px; }
.mdup{ border-top:1px solid var(--border); padding:8px 2px; }
.mdup:first-of-type{ border-top:none; }
.mdupn{ font-weight:600; font-size:13.5px; }
.mdupm{ font-size:11.5px; color:var(--muted); margin-top:2px; }
.mres{ font-size:12.5px; line-height:1.7; background:var(--panel); border:1px solid var(--border); border-radius:8px; padding:10px 12px; margin:12px 0; }
.mwarn{ font-size:12px; color:var(--danger); border:1px solid var(--danger); border-radius:8px; padding:9px 11px; background:rgba(207,34,46,.07); margin-bottom:6px; }
