/* =====================================================================
   Pilot HQ · UX lab design system — "Drafting Room" v1 (2026-10-18)
   Presentation only. Sits on top of the original Pilot base CSS (inline in index.html),
   which keeps the shell mechanics: one scroll region, safe areas, keyboard fit, 900px desktop switch.

   Principles
   1. The address is the identity. House numbers are set apart and tabular so 30 projects scan
      like a building directory.
   2. Colour means state, never decoration. Redline red = past due, amber = due today,
      dashed graphite = waiting on others, green = done. Category hues appear only as small
      identity marks. Prussian blue = actions.
   3. One next move above the fold; everything else is grouped, counted and capped.
   4. Dense but calm: hairlines over shadows, two elevations, 8px rhythm, 44px touch targets.
   5. Honest status: sync state, AI availability and what got filed are always stated plainly.
   ===================================================================== */

@font-face{
  font-family:'Archivo';
  src:url('/fonts/archivo-wdth.woff2') format('woff2-variations'), url('/fonts/archivo-wdth.woff2') format('woff2');
  font-weight:100 900; font-stretch:62% 125%; font-style:normal; font-display:optional;
}

:root{
  /* Paper and ink */
  --ux-paper:#F1F2EE;  --ux-paper-2:#E8EAE5;  --ux-sheet:#FFFFFF;  --ux-sheet-2:#F7F8F5;
  --ux-rule:#E2E4DF;   --ux-rule-2:#CED2CB;
  --ux-ink:#17212E;    --ux-ink-2:#465160;    --ux-ink-3:#5F6875;   --ux-ink-4:#7D838C;
  /* Prussian blue: actions and brand (primary buttons stay #2B4C7E by request) */
  --ux-blue:#2B4C7E;   --ux-blue-hover:#365F91; --ux-blue-press:#203A62; --ux-blue-deep:#1B3253;
  --ux-blue-tint:#E7EDF6; --ux-blue-ink:#24436F;
  /* States */
  --ux-red:#BE2F24;    --ux-red-tint:#FCE8E6;   --ux-red-ink:#A62820;
  --ux-amber:#C98314;  --ux-amber-tint:#FBF0DA; --ux-amber-ink:#7F4D00;
  --ux-wait:#5C6676;   --ux-wait-tint:#EDEFF2;
  --ux-green:#2D7350;  --ux-green-tint:#E3F0E8;
  /* Category identity (soft tints chosen earlier for Pilot; strokes are the marks) */
  --cat-design:#4A6585;  --cat-design-tint:#F2F6FB;
  --cat-dob:#3F6B5E;     --cat-dob-tint:#F1F7F4;
  --cat-coord:#84602F;   --cat-coord-tint:#FAF5EC;
  --cat-unset:#6F6A62;   --cat-unset-tint:#F5F3EF;
  /* Type: one family, two widths. Archivo with system fallbacks. */
  --ux-font:'Archivo',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --ux-narrow:88%;
  /* Shape and depth */
  --ux-r-sheet:14px; --ux-r-ctl:10px; --ux-r-tile:10px; --ux-r-pill:999px;
  --ux-e1:0 1px 0 rgba(23,33,46,.035);
  --ux-e2:0 1px 2px rgba(23,33,46,.06),0 10px 28px -12px rgba(23,33,46,.22);
  /* Motion: short, optional */
  --ux-fast:120ms; --ux-med:180ms; --ux-ease:cubic-bezier(.2,.7,.2,1);

  /* Legacy tokens used by the base stylesheet, mapped onto this system */
  --paper:var(--ux-paper); --card:var(--ux-sheet); --ink:var(--ux-ink); --muted:var(--ux-ink-2); --faint:var(--ux-ink-3);
  --line:var(--ux-rule); --line2:var(--ux-rule-2); --accent:var(--ux-blue); --accent-soft:var(--ux-blue-tint);
  --high:var(--ux-red); --high-soft:var(--ux-red-tint); --med:var(--ux-amber-ink); --med-soft:var(--ux-amber-tint);
  --low:var(--ux-ink-3); --low-soft:#ECEEEA; --done:var(--ux-green); --done-soft:var(--ux-green-tint);
  --stale:var(--ux-amber-ink); --danger:var(--ux-red); --shadow:var(--ux-e1); --radius:var(--ux-r-sheet);
  /* Urgency red is clean red, never terracotta */
  --hq-accent:#C93A2F; --hq-accent-text:#BE2F24; --hq-accent-tint-bg:#FCE8E6; --hq-accent-tint-text:#A62820;
}

/* ---------- Base ---------- */
html,body{background:var(--ux-paper)}
body{font-family:var(--ux-font);color:var(--ux-ink);font-size:15px;line-height:1.45;letter-spacing:0;font-variant-numeric:lining-nums;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
button,input,select,textarea{font-family:inherit;letter-spacing:inherit}
::selection{background:#CFDBEC}
:focus{outline:none}
:focus-visible{outline:2.5px solid var(--ux-blue);outline-offset:2px;border-radius:6px}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ico{flex:none;display:block}
.addr-num{font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.link,.link-btn,.showall,.tx{color:var(--ux-blue-ink);font-weight:600;cursor:pointer}
.link-btn,.tx{border:0;background:none;padding:0;font:inherit;font-weight:600;color:var(--ux-blue-ink);cursor:pointer;text-align:left}
.link-btn:hover,.link:hover,.tx:hover{text-decoration:underline;text-underline-offset:3px}
.empty{color:var(--ux-ink-3);font-style:normal;font-size:14px;padding:10px 2px}

/* Buttons: one primary (Prussian), one ghost, one destructive. */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:var(--ux-r-ctl);font-weight:600;font-size:15px;letter-spacing:0;box-shadow:none;transition:background var(--ux-fast) var(--ux-ease),border-color var(--ux-fast) var(--ux-ease),transform 60ms}
.btn.primary,.billing-launcher.is-primary{background:#2B4C7E;border:1px solid #2B4C7E;color:#FFFFFF}
.btn.primary:hover{background:#365F91;border-color:#365F91;filter:none}
.btn.primary:active{background:#203A62;border-color:#203A62}
.btn.primary[disabled]{opacity:.65}
.btn.ghost{background:var(--ux-sheet);border:1px solid var(--ux-rule-2);color:var(--ux-ink)}
.btn.ghost:hover{background:var(--ux-sheet-2);border-color:#B9BEB6}
.btn.danger{background:var(--ux-sheet);border:1px solid #E7C3BF;color:var(--ux-red-ink)}
.btn.sm{padding:9px 14px;font-size:14px;min-height:40px}
.del{display:inline-flex;align-items:center;min-height:40px;border-radius:var(--ux-r-ctl);background:var(--ux-sheet);border:1px solid #E7C3BF;color:var(--ux-red-ink);font-weight:600;font-size:14px;padding:8px 14px}
.reviewed-btn{display:inline-flex;align-items:center;gap:6px;min-height:36px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-ink-2);font-size:13px;font-weight:600;padding:6px 13px;cursor:pointer;white-space:nowrap}
.reviewed-btn:hover{border-color:#B9BEB6;color:var(--ux-ink)}
.reviewed-btn.on{background:var(--ux-green-tint);border-color:#BFDCCB;color:var(--ux-green)}
.back{display:inline-flex;align-items:center;gap:4px;min-height:40px;margin:0 0 6px -6px;padding:6px 8px;border:0;background:none;border-radius:8px;color:var(--ux-ink-2);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.back:hover{color:var(--ux-ink);background:var(--ux-paper-2)}
.showall{display:inline-flex;align-items:center;min-height:40px;margin:4px 0 0;padding:6px 2px;border:0;background:none;font:inherit;font-size:14px;color:var(--ux-blue-ink)}

/* Inputs share one treatment */
input,select,textarea{color:var(--ux-ink)}
.sel,.dateedit input,.assign,.editpanel input,.editpanel select,.archive-note-tools input,.archive-note-tools select,.billing-add input,.billing-add select,.project-info-edit textarea,.addrow input{
  background:var(--ux-sheet);border:1px solid var(--ux-rule-2);border-radius:var(--ux-r-ctl);color:var(--ux-ink);min-height:40px;font-size:15px
}
.sel:focus,.dateedit input:focus,.assign:focus,.editpanel input:focus,.editpanel select:focus,.archive-note-tools input:focus,.archive-note-tools select:focus,.billing-add input:focus,.billing-add select:focus,.project-info-edit textarea:focus,.addrow input:focus,.proj-search:focus,textarea#inp:focus,.askhq-form textarea:focus{
  outline:none;border-color:var(--ux-blue);box-shadow:0 0 0 3px rgba(43,76,126,.16)
}
::placeholder{color:var(--ux-ink-4);opacity:1}

/* ---------- App header ---------- */
header.app-header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 0 10px;min-height:56px}
.brand{display:flex;align-items:center;gap:8px;min-width:0;font-family:var(--ux-font);font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--ux-ink);white-space:nowrap}
.brand b{color:var(--ux-ink);font-weight:800}
.brand-name{font-stretch:var(--ux-narrow)}
.brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--ux-blue-deep);color:#fff;flex:none}
.brand-mark svg{width:20px;height:20px}
.lab-flag .lab-more{display:inline}
.lab-flag{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:6px;border:1px dashed #9DAA9F;background:#EDF3EE;color:#3E6A4C;font-size:11px;font-weight:700;letter-spacing:.01em;white-space:nowrap}
.hgroup{display:flex;align-items:center;gap:6px;flex:none}
.statuschip,.statuschip.saving,.statuschip.saved,.statuschip.local{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 10px 0 9px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule);background:var(--ux-sheet);color:var(--ux-ink-2);font-size:12px;font-weight:600;letter-spacing:0;white-space:nowrap}
.statuschip::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ux-ink-4);flex:none}
.statuschip.saved::before{background:var(--ux-green)}
.statuschip.saving::before{background:var(--ux-amber)}
.statuschip.local::before{background:#7C8794}
.who{font-size:12px;color:var(--ux-ink-2)}
.who > .who-email,.who > .who-signout{display:none}
.account-menu{display:block;position:relative}
.account-menu summary{list-style:none;display:grid;place-items:center;width:40px;height:40px;border-radius:var(--ux-r-ctl);border:1px solid var(--ux-rule);background:var(--ux-sheet);color:var(--ux-ink-2);cursor:pointer;line-height:1}
.account-menu summary::-webkit-details-marker{display:none}
.account-menu[open] summary{border-color:var(--ux-rule-2);background:var(--ux-sheet-2);color:var(--ux-ink)}
.account-popover{position:absolute;right:0;top:46px;z-index:60;display:grid;gap:4px;min-width:236px;padding:8px;border-radius:12px;border:1px solid var(--ux-rule);background:var(--ux-sheet);box-shadow:var(--ux-e2)}
.account-email,.account-note{margin:2px 6px 6px;font-size:12.5px;line-height:1.4;color:var(--ux-ink-3);white-space:normal}
.account-signout{display:flex;align-items:center;width:100%;min-height:42px;border:0;border-radius:8px;background:transparent;color:var(--ux-ink);padding:8px 10px;font:inherit;font-size:14px;font-weight:600;text-align:left;cursor:pointer}
.account-signout:hover{background:var(--ux-sheet-2)}
.account-signout.account-primary{background:#2B4C7E;color:#fff;justify-content:center;margin-bottom:4px}
.account-signout.account-primary:hover{background:#365F91}

/* ---------- Page heads and section headings ---------- */
header.page-head,header.alpha-hero{display:block;padding:0;gap:0}
.page-head{margin:2px 0 14px}
.page-kicker{margin:0 0 2px;font-size:14px;font-weight:550;color:var(--ux-ink-3)}
.page-title,.askhq-head h1{font-family:var(--ux-font);margin:0;font-size:28px;line-height:1.08;font-weight:750;font-stretch:var(--ux-narrow);letter-spacing:-.015em;color:var(--ux-ink)}
.page-sub{margin:6px 0 0;font-size:14.5px;line-height:1.45;color:var(--ux-ink-2);max-width:62ch}
.ph-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.ph-actions{display:flex;align-items:center;gap:8px}
h2.sec{display:flex;align-items:baseline;justify-content:flex-start;gap:8px;margin:22px 0 8px;font-size:15px;font-weight:650;letter-spacing:0;text-transform:none;color:var(--ux-ink)}
h2.sec:first-of-type{margin-top:4px}
h2.sec .n{font-size:13px;font-weight:600;color:var(--ux-ink-3);font-variant-numeric:tabular-nums}
.sweepline{margin:0 0 10px;font-size:13.5px;color:var(--ux-ink-3)}

/* ---------- Rows (tasks, captures, billing, review): hairline lists on one sheet ---------- */
.rows{background:var(--ux-sheet);border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);overflow:hidden;box-shadow:var(--ux-e1)}
.rows > *{border-radius:0}
.rows > * + *{border-top:1px solid var(--ux-rule)}
.item{position:relative;display:flex;align-items:flex-start;gap:10px;margin:0;padding:12px 6px 12px 12px;background:var(--ux-sheet);border:0;border-radius:0;box-shadow:none}
.rows .item{margin:0}
.item::before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:3px;border-radius:0 3px 3px 0;background:transparent}
.item.s-overdue::before{background:var(--ux-red)}
.item.s-today::before{background:var(--ux-amber)}
.item.s-waiting::before{background:repeating-linear-gradient(180deg,var(--ux-wait) 0 4px,transparent 4px 7px)}
.item.fresh{animation:uxFresh 1.2s var(--ux-ease)}
@keyframes uxFresh{from{background:#FFF8E6}to{background:var(--ux-sheet)}}
.item.flash{box-shadow:inset 0 0 0 2px var(--ux-blue)}
.item .body{flex:1;min-width:0;padding-top:1px}
.item .t{font-size:15.5px;line-height:1.35;font-weight:500;color:var(--ux-ink);word-break:normal;overflow-wrap:anywhere}
.item.done .t{color:var(--ux-ink-3);text-decoration:line-through;text-decoration-color:rgba(23,33,46,.35)}
.item .line{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:5px;font-size:13px}
.next-tag{display:inline-block;margin:0 0 3px;font-size:11.5px;font-weight:700;color:var(--ux-blue)}
.item.is-next{background:linear-gradient(90deg,var(--ux-blue-tint),var(--ux-sheet) 70%)}
.proj-link{display:inline;max-width:100%;border:0;background:none;padding:0;font:inherit;font-size:13px;font-weight:550;color:var(--ux-ink-2);cursor:pointer;text-align:left}
.proj-link .addr-num{color:var(--ux-ink)}
.proj-link:hover{color:var(--ux-blue-ink);text-decoration:underline;text-underline-offset:3px}
.due{font-size:13px;font-weight:550;color:var(--ux-ink-3);white-space:nowrap}
.due.overdue{color:var(--ux-red);font-weight:650}
.due.today{color:var(--ux-amber-ink);font-weight:650}
.age{font-size:12.5px;color:var(--ux-ink-3);white-space:nowrap}
.src,.said{color:var(--ux-ink-3)}
.said{flex-basis:100%;font-size:13px;font-style:normal;line-height:1.45}
.pill{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:var(--ux-r-pill);font-size:11.5px;font-weight:650;letter-spacing:.01em;text-transform:capitalize;white-space:nowrap}
.pill.high,.flag.danger,.pl-tag{background:var(--ux-red-tint);color:var(--ux-red-ink)}
.pill.medium{background:#ECEEEA;color:var(--ux-ink-2)}
.pill.low{background:#ECEEEA;color:var(--ux-ink-3)}
.pill.waiting{background:var(--ux-wait-tint);color:var(--ux-wait);box-shadow:inset 0 0 0 1px rgba(92,102,118,.35);text-transform:none}
.thumb{width:44px;height:44px;object-fit:cover;border-radius:8px;border:1px solid var(--ux-rule);flex:none;cursor:zoom-in;background:var(--ux-paper)}
.thumb.sm{width:34px;height:34px;border-radius:7px;vertical-align:middle;margin-right:8px}

/* Check: 22px box, 44px hit area. */
.check{position:relative;display:grid;place-items:center;flex:none;width:40px;height:40px;margin:-8px -6px -8px -8px;padding:0;border:0;border-radius:10px;background:transparent;color:transparent;cursor:pointer;transition:color var(--ux-fast)}
.check::before{content:"";grid-area:1/1;width:21px;height:21px;border:1.7px solid #AEB4AC;border-radius:6px;background:var(--ux-sheet);transition:background var(--ux-fast),border-color var(--ux-fast)}
.check .ico{grid-area:1/1;position:relative;width:14px;height:14px;stroke-width:2.6}
.check:hover::before{border-color:var(--ux-green)}
.check:hover{color:rgba(45,115,80,.45)}
.check.done::before{background:var(--ux-green);border-color:var(--ux-green)}
.check.done{color:#fff;background:transparent;border:0}
.check.done::after{content:none}
.kebab{display:grid;place-items:center;flex:none;width:40px;height:40px;margin:-6px 0 -6px 0;border:0;border-radius:10px;background:transparent;color:var(--ux-ink-3);cursor:pointer;font-size:20px;line-height:1}
.kebab:hover,.kebab[aria-expanded="true"]{background:var(--ux-paper);color:var(--ux-ink)}
.itemmenu{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:10px 0 2px;border-top:1px dashed var(--ux-rule-2)}
.itemmenu .taskedit,.itemmenu .noteedit{flex:1 1 100%;min-height:42px;padding:9px 11px}
.dateedit{display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--ux-ink-2)}
.dateedit input{padding:7px 9px}
.assign{min-height:40px;padding:8px 10px;font-weight:600;color:var(--ux-blue-ink);border-color:#BCCBE0;background:var(--ux-blue-tint)}

/* ---------- Feedback: capture result and undo ---------- */
#feedbackZone{z-index:20}
.result{margin:0 0 12px;border-radius:var(--ux-r-sheet);border:1px solid #BFDCCB;background:var(--ux-sheet);box-shadow:var(--ux-e2);overflow:hidden;animation:uxIn var(--ux-med) var(--ux-ease)}
@keyframes uxIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.result .top{display:flex;align-items:center;gap:8px;padding:11px 14px;font-size:14.5px;font-weight:650;color:var(--ux-green);background:var(--ux-green-tint)}
.result .items{padding:0 14px 6px}
.result .ri{display:flex;align-items:flex-start;gap:10px;padding:9px 0;border-top:1px solid var(--ux-rule);font-size:14px}
.result .ri:first-child{border-top:0}
.result .ri .k{flex:none;margin-top:1px;padding:2px 7px;border-radius:6px;font-size:11px;font-weight:700;letter-spacing:.01em;text-transform:none;color:#fff;background:var(--ux-ink-2)}
.k.task{background:var(--ux-blue)} .k.note{background:var(--ux-ink-2)} .k.promise{background:var(--ux-red)} .k.call{background:var(--ux-green)} .k.inbox{background:var(--ux-amber-ink)}
.result .ri .meta{margin-top:1px;font-size:13px;color:var(--ux-ink-3)}
.undo{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 12px;padding:8px 8px 8px 14px;border-radius:12px;border:0;background:var(--ux-ink);color:#E8ECF1;box-shadow:var(--ux-e2);font-size:14px;animation:uxIn var(--ux-med) var(--ux-ease)}
.undo .link,.undo-btn{color:#fff;font-weight:700;font-size:14px}
.undo-btn{min-height:36px;padding:6px 12px;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:transparent;font:inherit;font-weight:700;cursor:pointer}
.undo-msg{display:inline-flex;align-items:center;gap:8px;min-width:0}
.undo-msg span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.undo-done .ico{color:#8FD3AC}

/* ---------- Capture composer ---------- */
.capture:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:8px;row-gap:7px;align-items:end}
.capture{margin:0;padding:12px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.capture .lead{display:none}
.capture .capbox{display:contents}
.capture textarea#inp{grid-column:1;grid-row:2;display:block;width:100%;min-height:46px;height:46px;max-height:168px;margin:0;padding:12px 16px;resize:none;border:1px solid var(--ux-rule-2);border-radius:23px;background:var(--ux-sheet-2);font-size:16px;line-height:1.35;color:var(--ux-ink);overflow-y:auto;transition:border-color var(--ux-fast),box-shadow var(--ux-fast),background var(--ux-fast)}
.capture textarea#inp:focus{background:var(--ux-sheet)}
.capture .capbtns{grid-column:2;grid-row:2;display:flex;align-items:center;gap:6px;width:auto}
.capture .btn.mic,.capture .btn.cam{width:46px;height:46px;min-height:46px;padding:0;border-radius:50%;border:1px solid var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-ink-2);font-size:20px}
.capture .btn.mic:hover,.capture .btn.cam:hover{color:var(--ux-blue);border-color:#B9BEB6}
.capture .btn.mic.listening{background:var(--ux-red-tint);color:var(--ux-red);border-color:#E7C3BF}
.capture .btn.primary{height:46px;min-height:46px;padding:0 20px;border-radius:23px;flex:none}
.capture .photoprev{grid-column:1/-1;grid-row:1;margin:0}
.capture .cap-dest{grid-column:1/-1;grid-row:3;font-size:13.5px;color:var(--ux-ink-2);line-height:1.4;padding:0 6px}
.capture .cap-dest:empty{display:none}
.cap-dest .cd-k{color:var(--ux-ink-3)}
.cap-dest .cd-p{color:var(--ux-ink);font-weight:600}
.cap-dest .cd-due{color:var(--ux-amber-ink);font-weight:600}
.cap-dest .cd-mode{margin-left:8px;font-size:12px;color:var(--ux-ink-3)}
.cap-dest .cd-mode::before{content:"· "}
.capture .hint{grid-column:1/-1;grid-row:4;margin:0;font-size:12.5px;color:var(--ux-ink-3)}
.capture .hint.tip,.capture .hint.tip b{color:var(--ux-blue-ink)}
.capture .chips{grid-column:1/-1;grid-row:5}
.chip{border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule);background:var(--ux-sheet-2);color:var(--ux-ink-2)}
.capture.has-draft textarea#inp{grid-column:1/-1;grid-row:3;border-radius:16px}
.capture.has-draft .cap-dest{grid-column:1/-1;grid-row:2}
.capture.has-draft .capbtns{grid-column:1/-1;grid-row:4;justify-content:flex-end}
.photoprev{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:9px 10px;border-radius:12px;border:1px solid #CBD7E8;background:var(--ux-blue-tint)}
.photoprev img{width:44px;height:44px;border-radius:8px;object-fit:cover}
.photoprev .ptxt b{color:var(--ux-blue-ink)} .photoprev .ptxt span{color:var(--ux-ink-2)}
.photoprev .prem{width:36px;height:36px;border-radius:9px;border:1px solid #CBD7E8;background:#fff;color:var(--ux-ink-2)}
.alpha-project-photo-link{display:grid;grid-template-columns:auto minmax(140px,1fr) auto;align-items:center;gap:7px;margin-left:auto;min-width:min(100%,380px)}
.alpha-project-photo-label{font-size:12px;font-weight:650;color:var(--ux-ink-3)}
.alpha-project-photo-link select{min-height:40px;border:1px solid var(--ux-rule-2);border-radius:var(--ux-r-ctl);background:#fff;padding:7px 9px;font:inherit;font-size:14px}
.alpha-project-photo-link button{min-height:40px;border:0;border-radius:var(--ux-r-ctl);background:#2B4C7E;color:#fff;padding:0 12px;font:inherit;font-size:13px;font-weight:650;cursor:pointer}

/* ---------- Today ---------- */
.alpha-hero{margin:4px 0 12px;padding:0;background:none;border:0;box-shadow:none}
.lanes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0 0 14px}
.lanes.lanes-5{grid-template-columns:repeat(5,minmax(0,1fr))}
.lane{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:2px;min-height:58px;padding:8px 10px 8px 12px;border:1px solid var(--ux-rule);border-radius:12px;background:var(--ux-sheet);color:var(--ux-ink);font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:border-color var(--ux-fast)}
.lane::before{content:"";position:absolute;left:0;top:9px;bottom:9px;width:3px;border-radius:0 3px 3px 0;background:var(--ux-rule-2)}
.lane:hover{border-color:var(--ux-rule-2)}
.lane-n{font-size:23px;line-height:1;font-weight:750;font-variant-numeric:tabular-nums;font-stretch:var(--ux-narrow)}
.lane-l{font-size:12px;line-height:1.2;font-weight:600;color:var(--ux-ink-3);white-space:nowrap}
.lane-overdue::before{background:var(--ux-red)} .lane-overdue .lane-n{color:var(--ux-red)}
.lane-today::before{background:var(--ux-amber)} .lane-today .lane-n{color:var(--ux-amber-ink)}
.lane-waiting::before{background:repeating-linear-gradient(180deg,var(--ux-wait) 0 4px,transparent 4px 7px)} .lane-waiting .lane-n{color:var(--ux-wait)}
.lane-glance::before{background:var(--ux-amber-ink)}
.lane-bill::before{background:var(--ux-blue)} .lane-bill .lane-n{color:var(--ux-blue-ink)}
.lane.is-zero .lane-n{color:var(--ux-ink-4)} .lane.is-zero::before{background:var(--ux-rule)}

/* The one bold moment: the next move, set on blueprint. */
.next-move{position:relative;overflow:hidden;margin:0 0 18px;padding:15px 16px 14px;border-radius:16px;background:var(--ux-blue-deep);color:#fff;box-shadow:var(--ux-e2)}
.next-move::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);background-size:18px 18px;-webkit-mask-image:linear-gradient(100deg,transparent 35%,#000 100%);mask-image:linear-gradient(100deg,transparent 35%,#000 100%)}
.next-move > *{position:relative}
.nm-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}
.nm-states{display:inline-flex;align-items:center;gap:6px}
.nm-state{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:6px;background:#CF3A2E;color:#fff;font-size:12.5px;font-weight:700}
.nm-inbox .nm-state{background:#E7A93A;color:#2A1B00}
.next-move:not(.nm-inbox) .nm-states .nm-state:only-child{background:#E7A93A;color:#2A1B00}
.nm-age{font-size:13px;font-weight:600;color:#F3B8B2}
.nm-pos{font-size:12.5px;font-weight:600;color:#A9BBD3;font-variant-numeric:tabular-nums}
.nm-task{margin:0;font-size:20px;line-height:1.25;font-weight:650;letter-spacing:-.005em;color:#fff;overflow-wrap:anywhere}
.nm-project{display:inline-flex;align-items:center;gap:3px;margin:8px 0 0 -2px;padding:3px 2px;border:0;background:none;color:#C6D4E8;font:inherit;font-size:14.5px;font-weight:550;cursor:pointer;text-align:left}
.nm-project .addr-num{color:#fff}
.nm-project:hover{color:#fff;text-decoration:underline;text-underline-offset:3px}
.nm-why{margin:6px 0 0;font-size:13.5px;line-height:1.4;color:#B7C6DB}
.nm-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:14px}
.nm-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:0 16px;border-radius:var(--ux-r-ctl);border:1px solid rgba(255,255,255,.3);background:transparent;color:#fff;font:inherit;font-size:15px;font-weight:650;cursor:pointer;transition:background var(--ux-fast)}
.nm-btn:hover{background:rgba(255,255,255,.1)}
.nm-done{background:#fff;color:var(--ux-blue-deep);border-color:#fff}
.nm-done:hover{background:#E8EEF7}
.nm-done .ico{color:var(--ux-green)}
.nm-skip{border-color:transparent;color:#C6D4E8;padding:0 10px}
.nm-assign{flex:1 1 220px;min-height:44px;background:#fff;border-color:#fff;color:var(--ux-blue-deep)}
.next-move :focus-visible{outline-color:#fff}

.clear-state{margin:0 0 18px;padding:16px;border-radius:16px;border:1px solid #CFE3D6;background:var(--ux-green-tint)}
.clear-title{margin:0;font-size:17px;font-weight:650;color:var(--ux-green)}
.clear-sub,.clear-next{margin:6px 0 0;font-size:14px;color:var(--ux-ink-2)}
.today-sec{margin:0 0 18px}
.today-sec > h2.sec{margin-top:0}
.bill-mini{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 8px 11px 14px;background:var(--ux-sheet)}
.bill-mini-text{min-width:0;font-size:15px;font-weight:500}
.bill-mini-proj{display:block;margin-top:2px;font-size:13px;color:var(--ux-ink-3);font-weight:500}
.rhythm{margin:8px 0 12px;padding:12px 2px 0;border-top:1px solid var(--ux-rule);font-size:13px;line-height:1.6;color:var(--ux-ink-3)}
.rhythm span{display:inline}
.rhythm b{color:var(--ux-ink-2);font-weight:650}

/* ---------- Projects ---------- */
.billing-launcher{display:inline-flex;align-items:center;gap:7px;width:auto;margin:0;min-height:40px;padding:0 12px;border:1px solid var(--ux-rule-2);border-left:1px solid var(--ux-rule-2);border-radius:var(--ux-r-ctl);background:var(--ux-sheet);color:var(--ux-ink);box-shadow:none;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.billing-launcher:hover{border-color:#B9BEB6;background:var(--ux-sheet-2)}
.billing-launcher .billing-count{color:var(--ux-ink-3);font-weight:550;font-size:13px;white-space:nowrap}
.btn.new-proj{min-height:40px;padding:0 13px}
.proj-tools{margin:0 0 10px}
.proj-search-wrap{position:relative;display:block}
.proj-search-wrap .ico{position:absolute;left:13px;top:50%;transform:translateY(-50%);color:var(--ux-ink-3);pointer-events:none}
.proj-search,.proj-search-wrap .proj-search{display:block;width:100%;height:46px;margin:0;padding:0 14px 0 40px;border:1px solid var(--ux-rule-2);border-radius:12px;background:var(--ux-sheet);font:inherit;font-size:16px;color:var(--ux-ink)}
.proj-filter-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px}
.proj-filter-row .fchips{flex:1 1 100%}
.proj-filter-row .seg{margin-left:auto}
.fchips{display:flex;gap:6px;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:1px;margin:-1px}
.fchips::-webkit-scrollbar{display:none}
.fchip{display:inline-flex;align-items:center;gap:6px;flex:none;min-height:36px;padding:0 12px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-ink-2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.fchip-n{font-size:12px;color:var(--ux-ink-3);font-variant-numeric:tabular-nums}
.fchip.on{background:var(--ux-ink);border-color:var(--ux-ink);color:#fff}
.fchip.on .fchip-n{color:#C4CBD4}
.seg{display:inline-flex;flex:none;padding:3px;border-radius:var(--ux-r-pill);background:var(--ux-paper-2)}
.seg button{min-height:30px;padding:0 11px;border:0;border-radius:var(--ux-r-pill);background:transparent;color:var(--ux-ink-3);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.seg button.on{background:var(--ux-sheet);color:var(--ux-ink);box-shadow:0 1px 2px rgba(23,33,46,.12)}
.proj-count{margin:8px 2px 0;font-size:13px;color:var(--ux-ink-3)}
.proj-count:empty{display:none}
.proj-list .grid{display:block;background:var(--ux-sheet);border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);overflow:hidden;box-shadow:var(--ux-e1)}
.proj-group{margin:0 0 16px}
.proj-group-title,h2.proj-group-title{display:flex;align-items:baseline;gap:8px;margin:18px 2px 8px;font-size:14.5px;font-weight:650;letter-spacing:0;text-transform:none;color:var(--ux-ink)}
.proj-group-title .n{font-size:13px;color:var(--ux-ink-3);font-weight:600;font-variant-numeric:tabular-nums}
.urgency-high .proj-group-title{color:var(--ux-red-ink)}
.urgency-attention .proj-group-title{color:var(--ux-amber-ink)}
.prow-head{display:none}
.pcard.prow{display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-areas:"id name sig" "id meta next";column-gap:12px;row-gap:3px;align-items:center;min-height:64px;margin:0;padding:11px 12px 11px 12px;background:var(--ux-sheet);border:0;border-left:0;border-radius:0;box-shadow:none;cursor:pointer;transition:background var(--ux-fast)}
.pcard.prow + .pcard.prow{border-top:1px solid var(--ux-rule)}
.pcard.prow:hover{background:var(--ux-sheet-2);border-color:var(--ux-rule)}
.pcard.prow:focus-visible{outline-offset:-3px;border-radius:4px}
.prow-id{grid-area:id;align-self:center}
.pcard .pname{grid-area:name;min-width:0;font-size:16px;line-height:1.25;font-weight:550;font-stretch:var(--ux-narrow);color:var(--ux-ink)}
.prow-meta{grid-area:meta;display:flex;align-items:baseline;gap:7px;min-width:0;font-size:13px;color:var(--ux-ink-3)}
.prow-meta .pmeta{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ux-ink-3);font-size:13px;margin:0}
.cat-label{flex:none;font-size:12.5px;font-weight:650;color:var(--ux-ink-2)}
.cat-design .cat-label{color:var(--cat-design)} .cat-dob-filing .cat-label{color:var(--cat-dob)} .cat-coordination .cat-label{color:var(--cat-coord)} .cat-unset .cat-label{color:var(--cat-unset)}
.prow-open{display:none}
.prow-next{grid-area:next;justify-self:end;font-size:12.5px;font-weight:600;color:var(--ux-ink-3);white-space:nowrap;font-variant-numeric:tabular-nums}
.prow-next.is-overdue{color:var(--ux-red)} .prow-next.is-today{color:var(--ux-amber-ink)}
.prow-next.is-none .prow-next-k{font-weight:500;color:var(--ux-ink-4)}
.prow-next-k{font-weight:500}
.prow-sig{grid-area:sig;justify-self:end;display:flex;gap:4px;align-items:center}
.prow-chev{display:none;color:var(--ux-ink-4)}
.urgency-high .sig-high{display:none}
.sig{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--ux-r-pill);font-size:11.5px;font-weight:700;white-space:nowrap}
.sig-overdue{background:var(--ux-red-tint);color:var(--ux-red-ink)}
.sig-today{background:var(--ux-amber-tint);color:var(--ux-amber-ink)}
.sig-quiet{background:#ECEEEA;color:var(--ux-ink-2)}
.sig-hold{background:transparent;color:var(--ux-wait);box-shadow:inset 0 0 0 1px rgba(92,102,118,.45)}
.sig-high{background:transparent;color:var(--ux-red-ink);box-shadow:inset 0 0 0 1px rgba(190,47,36,.4)}
.pcard.is-hold .pname{color:var(--ux-ink-2)}
.alpha-project-thumb,.alpha-project-fallback{width:42px;height:42px;flex:none;border-radius:var(--ux-r-tile);border:1px solid rgba(23,33,46,.08);box-shadow:none}
.alpha-project-thumb{object-fit:cover;background:var(--ux-paper)}
.alpha-project-fallback{display:grid;place-items:center;background:var(--cat-unset-tint);color:var(--cat-unset);font-size:13.5px;font-weight:750;letter-spacing:.02em;font-stretch:var(--ux-narrow)}
/* Category identity: soft tint + coloured mark, kept separate from the urgency palette. */
.pcard.cat-design .alpha-project-fallback,.dhead.cat-design .alpha-project-fallback{background:#F2F6FB;color:var(--cat-design);border-color:#D8E2EF}
.pcard.cat-dob-filing .alpha-project-fallback,.dhead.cat-dob-filing .alpha-project-fallback{background:#F1F7F4;color:var(--cat-dob);border-color:#D8E8E1}
.pcard.cat-coordination .alpha-project-fallback,.dhead.cat-coordination .alpha-project-fallback{background:#FAF5EC;color:var(--cat-coord);border-color:#EADFCB}
.pcard.cat-unset .alpha-project-fallback,.dhead.cat-unset .alpha-project-fallback{background:#F5F3EF;color:var(--cat-unset);border-color:#E3DED5}
.proj-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:18px 2px 8px;font-size:13px;color:var(--ux-ink-3)}
.mobile-archive-link,.proj-foot .mobile-archive-link{display:inline-flex;align-items:center;gap:6px;min-height:40px;margin:0;padding:0 12px;border:1px solid var(--ux-rule-2);border-radius:var(--ux-r-ctl);background:var(--ux-sheet);color:var(--ux-ink);font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.empty-state{margin:8px 0;padding:22px 18px;border-radius:var(--ux-r-sheet);border:1px dashed var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-ink-2);font-size:14.5px}
.empty-state p{margin:0 0 8px}
.empty-state p:first-child{font-weight:650;color:var(--ux-ink)}

/* ---------- Project detail ---------- */
.detail .dhead,.dhead{display:block;margin:0 0 12px;padding:16px;border:1px solid var(--ux-rule);border-left:1px solid var(--ux-rule);border-radius:16px;background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.project-detail-headrow{display:flex;align-items:flex-start;gap:14px}
.project-detail-copy{min-width:0;flex:1}
.project-photo-control{flex:none;width:76px;padding:0;border:0;background:transparent;font:inherit;cursor:pointer;text-align:center;color:var(--ux-blue-ink)}
.project-photo-control .alpha-project-thumb,.project-photo-control .alpha-project-fallback{width:72px;height:72px;margin:0 auto 6px;border-radius:14px;font-size:19px}
.project-photo-control > span:not(.alpha-project-fallback){display:block;font-size:12px;font-weight:650;line-height:1.2;color:var(--ux-blue-ink)}
.project-photo-control:focus-visible{border-radius:14px}
.dh-kicker{margin:0 0 3px;font-size:13px}
.dhead h1,.detail .dhead h1{margin:0;font-size:25px;line-height:1.12;font-weight:750;font-stretch:var(--ux-narrow);letter-spacing:-.012em;color:var(--ux-ink)}
.dhead .dm{margin:6px 0 0;font-size:14px;line-height:1.4;color:var(--ux-ink-2)}
.dh-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.tag{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:var(--ux-r-pill);background:#ECEEEA;color:var(--ux-ink-2);font-size:12px;font-weight:650;text-transform:capitalize}
.tag-status.s-active{background:var(--ux-green-tint);color:var(--ux-green)}
.tag-status.s-hold{background:transparent;color:var(--ux-wait);box-shadow:inset 0 0 0 1px rgba(92,102,118,.45)}
.tag-status.s-completed{background:var(--ux-blue-tint);color:var(--ux-blue-ink)}
.dh-tags .pill{height:24px;font-size:12px}
.person{display:inline-flex;align-items:center;height:24px;padding:0 9px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule);background:var(--ux-sheet-2);font-size:12px;color:var(--ux-ink-2)}
.dh-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}
.dh-actions .btn.sm{min-height:38px;padding:0 13px}
.dstats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(0,1.4fr);margin:0 0 16px;border:1px solid var(--ux-rule);border-radius:12px;background:var(--ux-sheet);overflow:hidden}
.dstat{display:flex;flex-direction:column;gap:1px;padding:9px 10px;min-width:0}
.dstat + .dstat{border-left:1px solid var(--ux-rule)}
.dstat b{font-size:18px;line-height:1.15;font-weight:700;font-variant-numeric:tabular-nums;font-stretch:var(--ux-narrow);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dstat span{font-size:11.5px;font-weight:600;color:var(--ux-ink-3)}
.dstat.is-alert b{color:var(--ux-red)} .dstat.is-wait b{color:var(--ux-wait)}
.dstat-wide b{font-size:15px;padding-top:2px}
.project-tabs{display:flex;gap:20px;margin:0 0 14px;border-bottom:1px solid var(--ux-rule-2);overflow-x:auto;scrollbar-width:none}
.project-tabs::-webkit-scrollbar{display:none}
.project-tab{position:relative;min-height:44px;margin-bottom:-1px;padding:10px 0;border:0;border-bottom:2px solid transparent;background:none;color:var(--ux-ink-3);font:inherit;font-size:14.5px;font-weight:600;white-space:nowrap;cursor:pointer}
.project-tab.active{color:var(--ux-ink);border-bottom-color:var(--ux-ink)}
.project-tab[data-count]::after{content:attr(data-count);margin-left:6px;font-size:12.5px;font-weight:600;color:var(--ux-ink-3);font-variant-numeric:tabular-nums}
.project-tab-panel{margin:0 0 16px}
.facts{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0 0 6px}
.fact{display:flex;flex-direction:column;gap:3px;min-width:0;padding:10px 12px;border:1px solid var(--ux-rule);border-radius:12px;background:var(--ux-sheet);font:inherit;text-align:left;cursor:pointer}
.fact:hover{border-color:var(--ux-rule-2)}
.fact-k{font-size:12px;font-weight:650;color:var(--ux-ink-3)}
.fact-v{font-size:14px;line-height:1.35;color:var(--ux-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.fact-v.is-empty{color:var(--ux-ink-4)}
.facts-empty{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;grid-template-columns:none;padding:2px 2px 4px;font-size:13.5px;color:var(--ux-ink-3)}
.project-info-card{padding:14px 16px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1);min-height:0}
.project-info-text{font-size:15px;line-height:1.6;white-space:pre-wrap}
.project-empty{width:100%;min-height:72px;padding:16px;border:1px dashed var(--ux-rule-2);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);color:var(--ux-blue-ink);font:inherit;font-size:14.5px;font-weight:600;text-align:left;cursor:pointer}
.project-info-edit textarea{min-height:140px;padding:11px 12px;line-height:1.5}
.promise-row{display:flex;align-items:center;gap:10px;padding:11px 8px 11px 13px;background:var(--ux-sheet)}
.promise-row > .ico{color:var(--ux-ink-3)}
.promise-row.overdue > .ico{color:var(--ux-red)}
.pr-body{flex:1;min-width:0}
.pr-text{font-size:15px;line-height:1.35}
.pr-meta{margin-top:2px;font-size:13px;color:var(--ux-ink-3)}
.pr-late{color:var(--ux-red);font-weight:650}
.detail-side > h2.sec{margin-top:24px}
.tl{position:relative;margin:4px 0 0;padding:6px 14px 4px 32px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.tl .ev{position:relative;padding:8px 0 12px 2px}
.tl .ev + .ev{border-top:1px solid var(--ux-rule)}
.tl .ev::before{content:"";position:absolute;left:-21px;top:14px;width:8px;height:8px;border-radius:50%;background:var(--ux-sheet);box-shadow:0 0 0 2px var(--ux-ink-4)}
.tl .ev::after{content:none}
.tl .ev-call::before{box-shadow:0 0 0 2px var(--ux-green)}
.tl .ev-promise::before{box-shadow:0 0 0 2px var(--ux-red)}
.tl .ev-activity::before{background:var(--ux-ink-3);box-shadow:0 0 0 2px var(--ux-ink-3)}
.tl .ev .when{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;font-size:12.5px;color:var(--ux-ink-3)}
.tl .ev .what{margin-top:3px;font-size:14.5px;line-height:1.45;color:var(--ux-ink);overflow-wrap:anywhere}
.tl .ev .tx{display:inline-flex;align-items:center;min-height:30px;margin:0;padding:0 2px;font-size:12.5px}
.knowledge-source-card{border-radius:var(--ux-r-sheet);border:1px solid var(--ux-rule);box-shadow:var(--ux-e1)}

/* ---------- Weekly review ---------- */
.review-head .ph-row{align-items:baseline}
.review-count{font-size:14px;font-weight:650;color:var(--ux-ink-2);font-variant-numeric:tabular-nums;white-space:nowrap}
.alpha-progress{height:6px;margin-top:12px;border-radius:999px;background:var(--ux-paper-2);overflow:hidden}
.alpha-progress > span{display:block;height:100%;border-radius:999px;background:var(--ux-green);transition:width var(--ux-med) var(--ux-ease)}
.rrow{margin:0;padding:12px 10px 12px 14px;background:var(--ux-sheet);border:0;border-radius:0;box-shadow:none}
.rrow .rh{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap}
.rrow .rname{min-width:0;padding:4px 0;border:0;background:none;font:inherit;font-size:16px;font-weight:600;font-stretch:var(--ux-narrow);color:var(--ux-ink);text-align:left;cursor:pointer}
.rrow .rname:hover{color:var(--ux-blue-ink);text-decoration:underline;text-underline-offset:3px}
.rrow .rdetail{display:flex;flex-direction:column;gap:5px;margin-top:4px;font-size:13.5px;color:var(--ux-ink-2)}
.rbadges{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rcount{font-size:13px;color:var(--ux-ink-3)}
.flag{display:inline-flex;align-items:center;gap:5px;height:22px;margin:0;padding:0 8px;border-radius:var(--ux-r-pill);background:var(--ux-amber-tint);color:var(--ux-amber-ink);font-size:11.5px;font-weight:700}
.flag.hold{background:var(--ux-wait-tint);color:var(--ux-wait)} .flag.ok{background:var(--ux-green-tint);color:var(--ux-green)}
.rrow .promise{color:var(--ux-ink-2)} .rrow .promise.overdue{color:var(--ux-red);font-weight:600}
.nudge{font-size:13px;color:var(--ux-amber-ink);font-weight:600}
.rrow.is-reviewed .rname{color:var(--ux-ink-2)}
h2.sec.band.needs{color:var(--ux-red-ink)}
.allclear{margin:0 0 18px;padding:13px 14px;border-radius:var(--ux-r-sheet);background:var(--ux-green-tint);color:var(--ux-green);font-weight:650}

/* ---------- Billing ---------- */
.billing-shell{max-width:900px}
.billing-add{display:grid;grid-template-columns:minmax(0,1fr) minmax(170px,.42fr) auto;gap:10px;align-items:end;margin:0 0 18px;padding:14px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.billing-add label{display:grid;gap:5px;font-size:12.5px;font-weight:650;color:var(--ux-ink-3)}
.billing-add input,.billing-add select{width:100%;min-height:44px;padding:9px 11px}
.billing-add .btn{min-height:44px}
.billing-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 10px 12px 14px;background:var(--ux-sheet);border:0;border-radius:0;box-shadow:none}
.billing-row-main{min-width:0}
.billing-row-text{font-size:15.5px;font-weight:550;overflow-wrap:anywhere}
.billing-row.is-billed .billing-row-text{color:var(--ux-ink-3)}
.billing-row-meta{display:flex;flex-wrap:wrap;gap:4px 12px;margin-top:3px;font-size:13px;color:var(--ux-ink-3)}
.billing-row-project{padding:0;border:0;background:none;font:inherit;font-size:13px;font-weight:600;color:var(--ux-ink-2);cursor:pointer}
.billing-action{flex:none}

/* ---------- Archive and recently deleted ---------- */
.archive-shell{max-width:100%}
.archive-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 12px;overflow:visible}
.archive-tab{min-height:38px;padding:0 13px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-ink-2);font:inherit;font-size:13.5px;font-weight:600;cursor:pointer;white-space:nowrap}
.archive-tab.active{background:var(--ux-ink);border-color:var(--ux-ink);color:#fff}
.archive-note-tools{display:grid;grid-template-columns:1fr;gap:8px;margin:0 0 12px}
.archive-note-tools input,.archive-note-tools select{min-height:44px;padding:9px 12px}
.archive-list{display:block;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);overflow:hidden;box-shadow:var(--ux-e1)}
.archive-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0;padding:12px 10px 12px 14px;border:0;border-radius:0;background:var(--ux-sheet);box-shadow:none}
.archive-row + .archive-row{border-top:1px solid var(--ux-rule)}
.archive-row b{display:block;font-size:15px;font-weight:550;line-height:1.38;overflow-wrap:anywhere}
.archive-row .meta,.deleted-row .meta{margin-top:3px;font-size:12.5px;color:var(--ux-ink-3)}
.archive-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px;flex:none}
.archive-note-photo{color:var(--ux-ink-3)}
.deleted-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0;padding:12px 10px 12px 14px;border:0;border-radius:0;background:var(--ux-sheet);box-shadow:none}
.deleted-row b{font-weight:550}

/* ---------- Ask HQ ---------- */
.askhq-shell{max-width:820px}
.askhq-notice{margin:0 0 12px;padding:10px 13px;border-radius:12px;border:1px dashed var(--ux-rule-2);background:var(--ux-sheet);font-size:13.5px;color:var(--ux-ink-2)}
.alpha-ask-intro{margin:0 0 12px;padding:16px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.alpha-ask-intro b{display:block;margin-bottom:3px;font-size:15.5px;color:var(--ux-ink)}
.alpha-ask-intro span{font-size:14px;color:var(--ux-ink-2)}
.alpha-ask-examples{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.alpha-ask-chip{min-height:40px;padding:0 13px;border-radius:var(--ux-r-pill);border:1px solid var(--ux-rule-2);background:var(--ux-sheet-2);color:var(--ux-ink);font:inherit;font-size:14px;font-weight:550;cursor:pointer;text-align:left}
.alpha-ask-chip:hover{border-color:#B9BEB6}
.askhq-message{border-radius:14px;box-shadow:none;font-size:15px}
.askhq-message.user{background:#2B4C7E;border-color:#2B4C7E;color:#fff;border-bottom-right-radius:5px}
.askhq-message.assistant{background:var(--ux-sheet);border:1px solid var(--ux-rule);border-bottom-left-radius:5px}
.askhq-error{border-radius:12px;border:1px solid #E7C3BF;background:var(--ux-red-tint);color:var(--ux-red-ink)}
.askhq-form{display:flex;align-items:flex-end;gap:8px;padding:8px 8px 8px 14px;border:1px solid var(--ux-rule-2);border-radius:18px;background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.askhq-form textarea{flex:1;min-width:0;min-height:44px;max-height:140px;padding:10px 2px;border:0;background:transparent;resize:none;font-size:16px;line-height:1.4}
.askhq-form textarea:focus{box-shadow:none}
.askhq-form .btn,.askhq-form .btn.primary{flex:none;min-height:44px;border-radius:12px}
.addrow .btn.primary,.rowbtns .btn.primary,.billing-add .btn.primary{flex:none}

/* ---------- Forms, onboarding, login ---------- */
.editpanel{padding:16px;border:1px solid var(--ux-rule);border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.editpanel label{margin:14px 0 6px;font-size:13px;font-weight:650;letter-spacing:0;color:var(--ux-ink-2)}
.editpanel label:first-child{margin-top:0}
.editpanel input,.editpanel select{min-height:44px;padding:10px 12px}
.onboard{padding:18px;border:1px solid var(--ux-rule);border-left:4px solid #2B4C7E;border-radius:var(--ux-r-sheet);background:var(--ux-sheet);box-shadow:var(--ux-e1)}
.onboard h3{font-size:18px;font-weight:700}
.seeded .p{background:var(--ux-blue-tint);color:var(--ux-blue-ink)}
.addbtn{border-radius:var(--ux-r-ctl);border:1px dashed var(--ux-rule-2);background:var(--ux-sheet);color:var(--ux-blue-ink)}
.logincard{border:1px solid var(--ux-rule);border-radius:18px;background:var(--ux-sheet);box-shadow:var(--ux-e2)}
.logincard .brand{font-size:22px}
.loginmsg{color:var(--ux-blue-ink)}
.addrow input{min-height:46px;padding:10px 13px}

/* Bulk ingest stays utilitarian; align its surfaces with the system. */
.ingest-card{border-radius:var(--ux-r-sheet);border:1px solid var(--ux-rule);box-shadow:var(--ux-e1)}
.ingest-head h1{font-family:var(--ux-font);font-weight:750;font-stretch:var(--ux-narrow);letter-spacing:-.01em}
.ingest-row{border-radius:12px;border-color:var(--ux-rule)}

/* Lightbox stays dark and quiet. */
.lightbox .lc{background:rgba(0,0,0,.45)}

footer{margin-top:28px;padding-top:14px;border-top:1px solid var(--ux-rule);font-size:12.5px;color:var(--ux-ink-3)}
footer b{color:var(--ux-ink-2)}

/* =====================================================================
   Phone and tablet shell (below 900px)
   ===================================================================== */
@media (max-width:899px){
  body{font-size:16px;line-height:1.45}
  #app > #onboard{order:1}
  #app > #scrollzone{order:2}
  #app > .capture{order:3}
  #app > .mobile-bottom-nav{order:5}
  #scrollzone{padding-top:2px;padding-bottom:24px}
  header.app-header{padding:8px 0 8px;min-height:54px}

  /* Composer sits above the tab bar, thumb-reachable, and rides the keyboard when typing. */
  #app > .capture{margin:0 calc(-1 * max(13px, env(safe-area-inset-right))) 0 calc(-1 * max(13px, env(safe-area-inset-left)));padding:8px max(13px, env(safe-area-inset-right)) 8px max(13px, env(safe-area-inset-left));border:0;border-top:1px solid var(--ux-rule);border-radius:0;background:rgba(255,255,255,.97);box-shadow:none;-webkit-backdrop-filter:saturate(1.2);backdrop-filter:saturate(1.2)}
  .capture .btn.primary{display:none}
  .capture.has-draft .btn.primary,.capture:has(#photoPrev[style*="flex"]) .btn.primary{display:inline-flex}
  .capture .hint{display:none}
  .capture .hint.tip{display:block}
  .kb-open #app > .capture{padding-bottom:8px}

  .mobile-bottom-nav{grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;margin:0 calc(-1 * max(13px, env(safe-area-inset-right))) 0 calc(-1 * max(13px, env(safe-area-inset-left)));padding:5px max(8px, env(safe-area-inset-right)) max(6px, env(safe-area-inset-bottom)) max(8px, env(safe-area-inset-left));border-top:1px solid var(--ux-rule);background:rgba(255,255,255,.98)}
  .mobile-bottom-nav button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:52px;padding:4px 2px;border-radius:12px;background:transparent;color:var(--ux-ink-3);font-size:11.5px;font-weight:600;letter-spacing:0}
  .mobile-bottom-nav button .ico{width:23px;height:23px}
  .mobile-bottom-nav button.active{background:transparent;color:var(--ux-blue)}
  .mobile-bottom-nav button.active .ico{stroke-width:2}
  .mobile-bottom-nav button.active::before{content:"";position:absolute;top:2px;left:50%;width:42px;height:30px;transform:translateX(-50%);border-radius:10px;background:var(--ux-blue-tint);z-index:-1}
  .mobile-bottom-nav button{isolation:isolate}
  .mobile-bottom-nav .count{position:absolute;top:2px;left:calc(50% + 7px);min-width:18px;height:18px;margin:0;padding:0 5px;border-radius:9px;background:var(--ux-ink-3);color:#fff;font-size:10.5px;font-weight:700;line-height:18px;text-align:center;font-variant-numeric:tabular-nums}
  .mobile-bottom-nav .count.is-alert{background:var(--ux-red)}

  /* One capture shortcut on every non-Today screen. */
  .mobile-capture-link{position:fixed;right:max(16px, env(safe-area-inset-right));bottom:calc(76px + env(safe-area-inset-bottom));z-index:30;display:inline-flex;float:none;align-items:center;gap:6px;height:48px;margin:0;padding:0 18px 0 14px;border:0;border-radius:24px;background:#2B4C7E;color:#fff;box-shadow:var(--ux-e2);font:inherit;font-size:15px;font-weight:650;cursor:pointer}
  #app[data-view="today"] > .mobile-capture-link,#app[data-view="askhq"] > .mobile-capture-link,#app[data-view="newproj"] > .mobile-capture-link,#app[data-view="editproj"] > .mobile-capture-link,#app[data-view="billing"] > .mobile-capture-link,#app:not([data-view]) > .mobile-capture-link,.kb-open .mobile-capture-link{display:none}
  #app:not([data-view="today"]) #scrollzone{padding-bottom:84px}

  #feedbackZone{position:sticky;top:0}
  .page-title{font-size:27px}
  .detail .dhead h1{font-size:23px}
  .lab-flag{height:20px;font-size:10.5px;padding:0 6px}
}

@media (max-width:640px){
  .wrap{padding-bottom:0}
  .lab-flag .lab-more{display:none}
  .nm-task{font-size:19px}
  .ph-actions .bl-label{display:none}
  .billing-add{grid-template-columns:1fr}
  .billing-row{align-items:center;flex-direction:row}
  .facts{grid-template-columns:1fr}
  .dstats{grid-template-columns:repeat(4,minmax(0,1fr))}
  .dstat-wide{grid-column:1/-1;flex-direction:row;align-items:baseline;gap:8px;border-left:0!important;border-top:1px solid var(--ux-rule)}
  .dstat-wide b{font-size:14px;padding:0}
  .dstat-wide span{order:-1;font-size:13px}
  .project-tabs{gap:16px}
  .project-tab{font-size:14px;font-stretch:88%}
  .alpha-project-photo-link{width:100%;margin-left:0;grid-template-columns:1fr auto;padding-top:8px;border-top:1px solid #CBD7E8}
  .alpha-project-photo-label{grid-column:1/-1}
  .archive-row{flex-wrap:wrap}
  .archive-row > div:first-child{flex:1 1 200px;min-width:0}
  .rrow .rh{align-items:flex-start}
}
@media (max-width:380px){
  .brand-name{font-size:17px}
  .statuschip{padding:0 9px 0 8px}
  .project-tab{font-size:13.5px}
  .lane{padding:8px 8px 8px 10px}
  .lane-n{font-size:21px}
  .lane-l{font-size:11.5px}
  .lanes.lanes-5 .lane-l{font-size:10.5px}
  .capture .btn.mic,.capture .btn.cam{width:44px;height:44px;min-height:44px}
}

/* =====================================================================
   Desktop (900px and wider): sidebar, sticky composer, real columns
   ===================================================================== */
@media (min-width:900px){
  body{background:var(--ux-paper)}
  .wrap{max-width:1440px;padding:0 28px 48px}
  header.app-header{padding:14px 0 12px;min-height:64px}
  .brand{font-size:19px}
  #app{grid-template-columns:224px minmax(0,1fr);column-gap:28px}
  .desktop-nav{top:16px;min-height:0;padding:8px;border:0;border-radius:0;background:transparent;box-shadow:none}
  .desktop-nav-head{display:none}
  .desktop-nav-btn{position:relative;display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;min-height:38px;margin:1px 0;padding:7px 10px;border:0;border-radius:9px;background:transparent;color:var(--ux-ink-2);font:inherit;font-size:14.5px;font-weight:600;text-align:left;cursor:pointer}
  .desktop-nav-btn > span:first-child{flex:1}
  .desktop-nav-btn::before{content:"";flex:none;width:19px;height:19px;background:currentColor;-webkit-mask:var(--nav-ico) center/contain no-repeat;mask:var(--nav-ico) center/contain no-repeat;opacity:.9}
  .desktop-nav-btn:not([data-ico])::before,.desktop-nav-btn[data-ico=""]::before{display:none}
  .desktop-nav-btn:hover{background:var(--ux-paper-2);color:var(--ux-ink)}
  .desktop-nav-btn.active{background:var(--ux-sheet);color:var(--ux-blue-ink);box-shadow:0 0 0 1px var(--ux-rule),var(--ux-e1)}
  .desktop-nav-btn .count{margin-left:auto;min-width:22px;padding:1px 7px;border-radius:20px;background:transparent;color:var(--ux-ink-3);font-size:12px;font-weight:650;text-align:center;font-variant-numeric:tabular-nums}
  .desktop-nav-btn .count.is-alert{background:var(--ux-red);color:#fff}
  .desktop-nav-btn.active .count{background:var(--ux-blue-tint);color:var(--ux-blue-ink)}
  .desktop-nav-btn.active .count.is-alert{background:var(--ux-red);color:#fff}
  .desktop-nav-label{margin:18px 10px 6px;padding:0;font-size:12px;font-weight:650;letter-spacing:0;text-transform:none;color:var(--ux-ink-3)}
  .desktop-nav-group{font-size:13.5px;font-weight:550;min-height:34px}
  .desktop-nav-group::before{display:block;width:9px;height:9px;margin:0 5px;border-radius:3px;-webkit-mask:none;mask:none;background:var(--cat-unset)}
  .desktop-nav-group[data-cat="design"]::before{background:var(--cat-design)}
  .desktop-nav-group[data-cat="dob_filing"]::before{background:var(--cat-dob)}
  .desktop-nav-group[data-cat="coordination"]::before{background:var(--cat-coord)}
  .desktop-nav-btn[data-ico="today"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='5' width='16' height='15' rx='2.5'/%3E%3Cpath d='M4 9.5h16M8.5 3v4M15.5 3v4'/%3E%3Cpath d='m9.2 14.6 1.9 1.9 3.8-3.9'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="projects"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 20.5h17'/%3E%3Cpath d='M5.5 20.5V9.2L12 4.5l6.5 4.7v11.3'/%3E%3Cpath d='M9.5 20.5v-5h5v5'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="review"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 6.5h9M4.5 12h9M4.5 17.5h6'/%3E%3Cpath d='m15 16.6 2.3 2.3 4.2-4.6'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="ask"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 19V6.9A1.9 1.9 0 0 1 6.9 5h10.2A1.9 1.9 0 0 1 19 6.9v7.2a1.9 1.9 0 0 1-1.9 1.9H9.2z'/%3E%3Cpath d='M9 9.6h6M9 12.6h3.6'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="archive"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='4.5' width='17' height='4.2' rx='1.1'/%3E%3Cpath d='M5.2 8.7v9.9c0 .5.4.9.9.9h11.8c.5 0 .9-.4.9-.9V8.7M10 12.4h4'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="trash"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 7h15M9.5 7V4.8h5V7M6.6 7l.8 11.7c0 .5.5.8 1 .8h7.2c.5 0 1-.3 1-.8L17.4 7'/%3E%3C/svg%3E")}
  .desktop-nav-btn[data-ico="tray"]{--nav-ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 13.6 6.4 5.5h11.2L20 13.6v4.9c0 .6-.4 1-1 1H5c-.6 0-1-.4-1-1z'/%3E%3Cpath d='M4 13.6h4.6l1.4 2.4h4l1.4-2.4H20'/%3E%3C/svg%3E")}

  /* Composer: a compact bar at the top of the work column. */
  #app > .capture{padding:10px 10px 10px 12px;border-radius:16px;box-shadow:var(--ux-e2);top:12px}
  .capture .hint{grid-row:4;padding:0 6px}
  .capture .hint .cap-tip{display:inline}
  .capture textarea#inp{min-height:46px}
  #feedbackZone{position:sticky;top:96px}
  #scrollzone{padding-top:18px}
  .proj-filter-row{flex-wrap:nowrap;align-items:flex-start}
  .proj-filter-row .fchips{flex:1 1 auto;flex-wrap:wrap;overflow:visible}
  .mobile-capture-link{display:none}

  /* Today: decide on the left, keep watch on the right. */
  .today-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,1fr);gap:24px;align-items:start}
  .today-side .today-sec:first-child > h2.sec{margin-top:0}
  .next-move{padding:20px 22px 18px}
  .nm-task{font-size:23px}
  .page-title{font-size:32px}

  /* Projects: a real table with column headings. */
  .proj-tools{display:grid;grid-template-columns:minmax(260px,420px) minmax(0,1fr);gap:12px;align-items:center}
  .proj-filter-row{margin-top:0}
  .proj-count{grid-column:1/-1;margin-top:0}
  .proj-list{position:relative}
  .prow-head{display:grid;grid-template-columns:42px minmax(200px,1.5fr) 118px minmax(0,1.6fr) 64px 92px minmax(130px,auto) 18px;column-gap:14px;padding:6px 12px;font-size:12px;font-weight:650;color:var(--ux-ink-3);position:sticky;top:0}
  .pcard.prow{grid-template-columns:42px minmax(200px,1.5fr) 118px minmax(0,1.6fr) 64px 92px minmax(130px,auto) 18px;grid-template-areas:"id name cat meta open next sig chev";column-gap:14px;row-gap:0;min-height:58px;padding:8px 12px}
  .prow-meta{display:contents}
  .prow-meta .cat-label{grid-area:cat}
  .prow-meta .pmeta{grid-area:meta}
  .prow-open{display:block;grid-area:open;font-size:13px;color:var(--ux-ink-3);font-variant-numeric:tabular-nums}
  .prow-open b{color:var(--ux-ink);font-weight:650}
  .prow-next{justify-self:start}
  .prow-next-k{display:none}
  .prow-next.is-none .prow-next-k{display:inline}
  .prow-sig{justify-self:end}
  .prow-chev{display:block;grid-area:chev}
  .alpha-project-thumb,.alpha-project-fallback{width:38px;height:38px}
  .proj-group-title,h2.proj-group-title{margin-top:20px}

  /* Project detail: work on the left, memory on the right. */
  .detail-cols{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,1fr);gap:24px;align-items:start}
  .detail-side{position:sticky;top:96px;max-height:calc(100vh - 112px);overflow:auto;padding-right:2px}
  .detail-side > h2.sec{margin-top:0}
  .detail .dhead{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
  .detail .dh-actions{flex:none;margin:0;padding:0;border:0}
  .dhead h1,.detail .dhead h1{font-size:30px}

  .rows .rrow,.rrow{max-width:none}
  .review-head,.rows,.allclear{max-width:1060px}
  .archive-note-tools{grid-template-columns:minmax(220px,1fr) 220px}
  .archive-shell{max-width:1120px}
}

@media (min-width:1280px){
  .today-grid{grid-template-columns:minmax(0,1.6fr) minmax(340px,1fr)}
}

/* Motion is optional. */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms!important;animation-iteration-count:1!important;transition-duration:1ms!important;scroll-behavior:auto!important}
}

/* Mobile secondary routes (Archive, Recently deleted) live in the account menu; the footer is desktop-only. */
@media(max-width:899px){footer{display:none}}

/* Codex accessibility and inbox-hero hardening, 2026-10-18 */
.nm-inbox-body{width:100%;margin-top:12px}
.nm-inbox-body .inbox-row{width:100%;border-radius:12px;background:#fff;color:var(--ux-ink);box-shadow:none}
.nm-inbox-body .inbox-row .assign{min-width:140px;max-width:100%}
@media(max-width:899px){
  .check,.kebab{min-width:44px;min-height:44px}
  .fchip,.seg button,.tx,.reviewed-btn,.project-tab{min-height:44px}
  .nm-inbox-body .inbox-row .thumb{min-width:44px;min-height:44px}
}

@media(max-width:899px){.tl .ev .tx{min-height:44px;display:inline-flex;align-items:center;}}

/* Sync recovery banner (conflict / recovered draft) */
.sync-banner{margin:8px 12px;padding:10px 12px;border:1px solid var(--ux-rule);border-radius:10px;background:var(--ux-sheet);color:var(--ux-ink-2);font-size:13px;line-height:1.4}
.sync-banner[hidden]{display:none}
.sync-banner.conflict{border-color:#c0392b}
.sync-banner .sync-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.sync-banner .sync-error{color:#c0392b}

/* Task entry on project detail, separate from general Capture / unassigned notes. */
.project-task-compose{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;margin:12px 0 18px;border:1px solid #dce4d9;border-radius:15px;background:#fff}
.project-task-compose input[type=text]{flex:2 1 190px;min-width:0;padding:11px 13px;border:1px solid #cbd6cc;border-radius:10px;background:#fff;color:inherit;font:inherit}
.project-task-compose input[type=date]{flex:0 1 150px;min-width:0;padding:10px;border:1px solid #cbd6cc;border-radius:10px;background:#fff;color:inherit;font:inherit}
.project-task-compose button{flex:0 0 auto}
@media(max-width:420px){.project-task-compose input[type=text]{flex-basis:100%}.project-task-compose input[type=date]{flex:1 1 120px}}

/* My Pilot phone QA 2026-10-18: reserve the real viewport for the lab banner.
   The banner lives before .wrap; without a flex-height reservation the shell
   incorrectly uses 100dvh PLUS banner height, clipping bottom tab labels. */
@media (max-width:899px){
  body{
    display:flex;
    flex-direction:column;
    height:100vh;
    height:100dvh;
    height:var(--app-vh,100dvh);
    /* Never exceed a newly resized viewport while visualViewport updates. */
    height:min(var(--app-vh,100dvh),100dvh);
    min-height:0;
  }
  body > #my-pilot-release-banner{flex:0 0 auto;width:100%}
  body > .wrap{flex:1 1 0;min-height:0;height:auto;max-height:100%;overflow:hidden}
  .mobile-bottom-nav{flex-shrink:0}
}
@media (max-width:640px){
  /* Project-task creation must be obvious and comfortable under the thumb. */
  .project-task-compose{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    align-items:center;
    gap:8px;
    padding:9px 10px;
    margin:8px 0 12px;
  }
  .project-task-compose input[type=text]{
    grid-column:1/-1;
    width:100%;
    min-height:60px;
    font-size:16px;
    line-height:1.3;
    padding:15px 16px;
  }
  .project-task-compose input[type=date]{
    grid-column:1;
    width:100%;
    min-width:0;
    min-height:44px;
    padding:8px 12px;
    font-size:16px;
  }
  .project-task-compose button{
    grid-column:2;
    min-height:44px;
    padding-inline:16px;
  }
  .mobile-bottom-nav{
    padding-bottom:max(8px,env(safe-area-inset-bottom));
  }
  .mobile-bottom-nav button{
    min-height:52px;
    padding:4px 2px 5px;
  }
}

/* Desktop primary navigation: identical compact hitbox and centered badge for all four routes. */
@media (min-width:900px){
  .dn-primary .desktop-nav-btn{
    height:36px;min-height:36px;max-height:36px;
    margin:1px 0;padding:4px 10px;
    line-height:1.15;align-items:center;
  }
  .dn-primary .desktop-nav-btn .count{
    display:inline-flex;align-items:center;justify-content:center;
    flex:0 0 auto;min-height:18px;line-height:18px;padding:0 7px;
  }
}
