/* Over-classified hub styles. Split from index.html 2026-10-01; type tokens live in the first :root block. */
/* ── COVER PALETTE (dashboard only) ── */
:root{
  /* Type tokens: every font and the common text sizes resolve here, so a type change is made in one place */
  --font-ui:-apple-system,BlinkMacSystemFont,'SF Pro Text','Helvetica Neue',sans-serif;--font-serif:'Libre Baskerville',Georgia,serif;
  --font-mono:var(--font-ui);--font-display:var(--font-serif);   /* controls and labels use the system font; the serif is kept for reading text */
  --label-ios2:#3C3C43;--fill-gray:#E5E5EA;--road-accent:#2A6DBE;
  --fs-2xs:10px;--fs-xs:11px;--fs-sm:11.5px;--fs-md:12.5px;--fs-base:13px;--fs-lg:14px;--fs-xl:15px;--fs-xl2:16px;--fs-2xl:16px;--fs-3xl:18px;--fs-4xl:20px;

  --cover-black:#17191E;--cover-red:#C70025;--cover-steel:#6B7078;
  --cover-warm:#4D313A;--cover-cream:#D3CCD1;
  /* Apple light (all other tabs) */
  --page-bg:#F2F2F7;--card-bg:#FFFFFF;--label-primary:#000000;
  --label-secondary:#8E8E93;--separator:#C6C6C8;--accent:#3D5A99;--pri-color:#C70025;
  /* Shared functional */
  --done-bg:#eef5ec;--done-fg:#2d6b2d;--hold-bg:#fff4e6;--hold-fg:#b05a00;--pri-bg:#fff0f0;--open-hover:#e8f0fe;
  --tag-editing:#1a4a6b;--tag-publishing:#4b1a6b;--tag-todo:#1a6b4a;--tag-research:#6b4a1a;--tag-hubui:#1e508c;
  --badge-assigned-bg:#dff0d8;--badge-assigned-fg:#2a5a1a;
  --badge-reserved-bg:#fdf6dc;--badge-reserved-fg:#7a5f10;
  --badge-un-bg:#eeebe4;--badge-un-fg:#6b6358;
  /* Universal control height */
  --ctrl-h:34px;
  /* For Dave / For Claude dialogue */
  --fordave-bg:#fffbf0;--fordave-border:#d4a020;
  --fordave-badge-bg:#fff3cd;--fordave-badge-fg:#7a5a00;
  --forclaude-bg:#f0f7ff;--forclaude-border:#2070C8;
  --forclaude-badge-bg:#dbeafe;--forclaude-badge-fg:#1a4a8a;
  --flow-on-bg:#1a6b2a;--flow-on-fg:#fff;
  --input-bg:#f7f7f9;
  /* Tab notification badge */
  --tab-badge-bg:rgba(199,0,37,0.10);--tab-badge-fg:#C70025;--tab-badge-border:rgba(199,0,37,0.25);
  /* iOS pop-up system: one palette, one radius, one backdrop, one z-index scale for every dialog, sheet, toast and banner */
  --ios-blue:#007AFF;--ios-green:#34C759;--ios-orange:#FF9500;--ios-red:#FF3B30;
  --ios-blue-ink:#0A60D6;--ios-green-ink:#248A3D;--ios-orange-ink:#B25000;--ios-red-ink:#D70015;
  --dlg-radius:14px;--dlg-bg:rgba(250,250,252,.96);--dlg-hairline:rgba(60,60,67,.22);
  --dlg-backdrop:rgba(0,0,0,.40);--dlg-blur:blur(8px);--dlg-shadow:0 10px 40px rgba(0,0,0,.22);
  --toast-bg:rgba(44,44,46,.94);--toast-ink:#fff;--toast-link:#64A8FF;
  --z-dlg:9000;--z-toast:9500;--z-banner:9600;
  /* Pills: one height, one shape, one type size for every chip, filter, select and small action button */
  --pill-h:32px;--pill-r:999px;--pill-fs:var(--fs-md);--pill-track:.05em;--pill-pad:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-serif);background:var(--page-bg);color:var(--label-primary);height:100vh;overflow:hidden;display:flex;flex-direction:column;background-attachment:fixed;background-size:cover;background-position:center center;transition:background-image .4s ease}
/* ── PER-TAB PHOTO BACKGROUNDS ── */
/* ── APPLE-STYLE LEGIBILITY ──
   Photo at full strength in header and gaps between cards.
   Cards nearly opaque white — crisp black text always. Photo shows in gaps.
*/
body::before{display:none}
.hd,.search-bar{z-index:50}.tabs{position:sticky;top:0;z-index:49}.filter-row{position:sticky;top:40px;z-index:48;background:rgba(255,255,255,0.97)}
.tabs{background:rgba(255,255,255,0.94) !important;border-bottom:1px solid rgba(0,0,0,0.08) !important}
.filter-row{position:sticky;top:40px;z-index:48;background:rgba(255,255,255,0.97) !important}
.list-bar{background:rgba(255,255,255,0.90) !important}
.ihead{background:rgba(255,255,255,0.93) !important;box-shadow:0 1px 6px rgba(0,0,0,0.08) !important}
.icard{background:rgba(255,255,255,0.90) !important}
.settings-card{background:rgba(255,255,255,0.93) !important}
.help-sidebar{background:rgba(255,255,255,0.92) !important}
.help-fn-card{background:rgba(255,255,255,0.93) !important;box-shadow:0 1px 6px rgba(0,0,0,0.08) !important}
.help-device-row{background:rgba(255,255,255,0.93) !important}
.rm-phase-header{background:rgba(255,255,255,0.92) !important}
.rm-item-row{background:rgba(255,255,255,0.88) !important}
.rm-detail-panel{background:rgba(255,255,255,0.95) !important}
.gantt-row-label{background:rgba(255,255,255,0.88) !important}
.phase-label-cell{background:rgba(255,255,255,0.92) !important}
.gantt-header-label{background:rgba(255,255,255,0.92) !important}
#thread-overlay{background:rgba(248,248,252,0.98) !important}
.help-content{background:rgba(255,255,255,0.96) !important}
.list-wrap{background:transparent !important}
#list{background:transparent !important}
/* (removed 2026-10-01: a stray copy of the page head and the :root block it made the browser drop) */

*{box-sizing:border-box;margin:0;padding:0}
body{font-family:var(--font-serif);background:var(--page-bg);color:var(--label-primary);height:100vh;overflow:hidden;display:flex;flex-direction:column;background-attachment:fixed;background-size:cover;background-position:center center;transition:background-image .4s ease}
/* ── PER-TAB PHOTO BACKGROUNDS ── */
/* ── GLASS THEME — consistent semi-transparent surfaces throughout ──
   Opacity vocabulary:
   0.96 = near-solid (overlays, panels, dense text areas)
   0.92 = content areas (help content, pass tables)
   0.88 = cards/items (notes, roadmap rows)
   0.85 = input areas
   0.82 = chrome (tabs, headers, section bars)
   0.78 = filter/control bars, chips
   0.75 = subtle bars (list-bar, footer)
*/
body::before{display:none}
.hd,.search-bar{z-index:50}.tabs{position:sticky;top:0;z-index:49}.filter-row{position:sticky;top:40px;z-index:48;background:rgba(255,255,255,0.97)}
/* Chrome */
.tabs{background:rgba(255,255,255,0.82) !important}
.search-bar{background:rgba(255,255,255,0.82) !important}
.dark-band{background:rgba(255,255,255,0.82) !important}
.tab:hover{background:rgba(255,255,255,0.92) !important}
.deck-trigger:hover,.deck-group:hover .deck-trigger{background:rgba(255,255,255,0.92) !important}
.deck-flyout{background:rgba(255,255,255,0.97) !important}
/* Filter row */
.filter-row{position:sticky;top:40px;z-index:48;background:rgba(30,30,35,0.97) !important}
.dash-sel{background:rgba(255,255,255,0.88) !important}
.fchip{background:rgba(255,255,255,0.88) !important}
.fchip.act{background:rgba(255,255,255,0.97) !important}
/* List bars */
.list-bar{background:rgba(255,255,255,0.75) !important}
/* Input areas */
.inp-wrap{background:rgba(242,242,247,0.82) !important}
.inp-card{background:rgba(255,255,255,0.88) !important}
.inp-collapse-bar{background:rgba(255,255,255,0.85) !important}
/* Note items — semi-transparent so photo shows between items */
.item{background:rgba(255,255,255,0.88) !important}
.item.done{background:rgba(230,242,230,0.88) !important}
.item.hold{background:rgba(255,244,230,0.88) !important}
.item.pri:not(.done):not(.hold){background:rgba(255,240,243,0.88) !important}
.item.fordave:not(.done){background:rgba(255,251,240,0.88) !important}
.item.needs-response:not(.done){background:rgba(255,251,204,0.88) !important}
.item.flow-item:not(.done){background:rgba(221,238,255,0.88) !important}
/* ihead: let item background show through */
.ihead{background:transparent !important;border:none !important}
.ihead:hover{background:rgba(0,0,0,0.03) !important}
/* Section bars */
.section-bar{background:rgba(255,255,255,0.85) !important}
/* Settings / help UI */
.settings-card{background:rgba(255,255,255,0.88) !important}
.help-sidebar{background:rgba(255,255,255,0.88) !important}
.help-fn-card{background:rgba(255,255,255,0.85) !important}
.help-device-row{background:rgba(255,255,255,0.85) !important}
.help-content{background:rgba(255,255,255,0.92) !important}
/* Pass tables — need solid enough for dense text readability */
.pass-tier{background:rgba(255,255,255,0.95);border-radius:8px;padding:12px 14px;margin-bottom:16px}
.pass-table tbody tr{background:rgba(255,255,255,0.92)}
.pass-table tbody tr:hover{background:rgba(255,255,255,0.97) !important}
/* Roadmap */
.rm-phase-header{background:rgba(255,255,255,0.92) !important}
.rm-item-row{background:rgba(255,255,255,0.88) !important}
.rm-detail-panel{background:rgba(255,255,255,0.97) !important}
.gantt-row-label{background:rgba(255,255,255,0.82) !important}
.phase-label-cell{background:rgba(255,255,255,0.85) !important}
.gantt-header-label{background:rgba(255,255,255,0.85) !important}
.gantt-legend-bar{background:rgba(255,255,255,0.82) !important}
/* Overlays — near solid for focus */
#thread-overlay{background:rgba(248,248,252,0.97) !important}
/* Footer */
.ftr{background:rgba(255,255,255,0.75) !important}



/* ── COMPACT HEADER ROW ── */
.hd{padding:0;position:relative;background:transparent}
.hd::after{content:'';position:absolute;inset:0;background:linear-gradient(to bottom,rgba(10,30,80,0.12) 0%,rgba(0,0,0,0.28) 100%);z-index:0}
.hd::before{content:'';position:absolute;bottom:0;left:0;right:0;height:1px;background:rgba(255,255,255,0.15);z-index:2}
.hd-compact{display:flex;align-items:center;gap:0;padding:0 20px;height:84px;margin-top:3px;position:relative;z-index:1}
.hd-title{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:500;color:rgba(255,255,255,0.55);white-space:nowrap;margin-right:20px;flex-shrink:0;letter-spacing:.12em;text-transform:uppercase;text-shadow:0 1px 4px rgba(0,0,0,.5);display:flex;flex-direction:column;gap:4px}
.hd-project-pill{font-family:'Playfair Display',serif;font-size:var(--fs-3xl);font-weight:700;color:#f0ebe2;letter-spacing:.01em;text-transform:none;border:1.5px solid rgba(255,255,255,0.30);border-radius:5px;padding:2px 9px 3px;background:rgba(255,255,255,0.07);cursor:default;display:inline-block;transition:background .15s,border-color .15s}
.hd-project-pill:hover{background:rgba(255,255,255,0.13);border-color:rgba(255,255,255,0.52)}
.hd-project-pill em{font-style:italic;color:#c8bfa8}
.hd-subtitle{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;letter-spacing:.09em;text-transform:uppercase;color:#f0a030;line-height:1;font-style:normal}
.hd-sync-badge{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:#f0a030;line-height:1;display:none;gap:4px;align-items:center}
.hd-sync-badge.visible{display:flex}
.hd-stats-inline{display:flex;align-items:center;gap:0;flex:1;overflow:hidden}
.hd-stat{display:flex;align-items:baseline;gap:4px;padding:0 12px;border-right:1px solid rgba(255,255,255,0.18);white-space:nowrap;flex-shrink:0}
.hd-stat:last-child{border-right:none}
.hd-stat-val{font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:500;color:#ffffff;line-height:1}
.hd-stat-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,0.65)}
/* Header search — sits between title and Copy button */
.hd-search-wrap{flex:1;margin:0 20px;position:relative;display:flex;align-items:center}
.hd-search-input{width:100%;background:rgba(255,255,255,.2);border:1px solid rgba(255,255,255,.35);border-radius:4px;color:#fff;font-family:var(--font-mono);font-size:var(--fs-base);padding:0 30px 0 10px;height:30px;outline:none;transition:border-color .15s}
.hd-search-input::placeholder{color:rgba(255,255,255,.5);font-style:italic}
.hd-search-input:focus{border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.28)}
.hd-search-clear{position:absolute;right:4px;background:none;border:none;color:rgba(255,255,255,.6);cursor:pointer;font-size:var(--fs-2xl);line-height:1;padding:6px 8px;min-width:32px;min-height:32px;display:flex;align-items:center;justify-content:center}
.hd-search-clear:hover{color:#fff}
.hd-actions{display:flex;align-items:center;gap:8px;flex-shrink:0;margin-left:12px}
.hd-copy-btn{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;background:var(--cover-red);color:#fff;border:none;padding:0 14px;height:30px;cursor:pointer;border-radius:4px;white-space:nowrap;transition:all .15s;box-shadow:0 2px 5px rgba(199,0,37,0.35),0 1px 2px rgba(0,0,0,0.15)}
.hd-copy-btn:hover{background:#a50020;box-shadow:0 3px 8px rgba(199,0,37,0.45),0 1px 3px rgba(0,0,0,0.2)}
.hd-copy-ok{font-family:var(--font-mono);font-size:var(--fs-sm);color:#8aba80;display:none}

/* ── SEARCH BAR (between header and tabs) ── */
.search-bar{display:flex;align-items:center;padding:6px 16px;background:#ffffff;border-top:none;border-bottom:1px solid var(--fill-gray)}
.search-input-wrap{display:flex;align-items:center;flex:1;background:var(--page-bg);border:1.5px solid var(--separator);border-radius:8px;padding:0 10px;gap:8px;transition:border-color .15s}
.search-input-wrap:focus-within{border-color:var(--pri-color)}
.search-icon{color:var(--label-secondary);font-size:var(--fs-xl2);flex-shrink:0;line-height:1}
.search-input{flex:1;background:none;border:none;outline:none;font-family:var(--font-mono);font-size:var(--fs-xl);font-weight:500;color:#000000;padding:7px 0;min-width:0}
.search-input::placeholder{color:var(--label-secondary);font-weight:400}
.search-clear{background:none;border:none;cursor:pointer;color:var(--label-secondary);font-size:var(--fs-3xl);padding:0 2px;line-height:1;flex-shrink:0;display:none}
.search-clear.visible{display:block}
.search-clear:hover{color:#000}

/* ── STICKY HEADER SYSTEM ── */
/* Header and tab-bar stay pinned; filter row slides under */
.hd{position:sticky;top:0;z-index:50;flex-shrink:0}
.dark-band{position:sticky;top:0;z-index:49}
/* Filter-row collapse transition */
#filter-row{transition:max-height .22s ease,opacity .18s ease;overflow:hidden}
#filter-row.fr-collapsed{max-height:0!important;opacity:0;pointer-events:none}
#filter-row.fr-visible{opacity:1}
/* Reveal pill — appears at top of list when filter is hidden */
#filter-reveal-pill{display:none;position:sticky;top:0;z-index:48;text-align:left;padding:3px 12px}
#filter-reveal-pill button{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.07em;text-transform:uppercase;background:rgba(61,90,153,0.10);border:1px solid rgba(61,90,153,0.22);border-radius:12px;padding:2px 10px;color:var(--accent);cursor:pointer}
#filter-reveal-pill button:hover{background:rgba(61,90,153,0.18)}

/* ── TAB ROW ── */
.tabs{display:flex;background:#ffffff;padding:4px 32px 0;gap:4px;border-top:none;border-bottom:1px solid var(--fill-gray);align-items:flex-end;flex-wrap:nowrap;overflow:visible}
.tab{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:9px 18px 9px;border:1px solid var(--fill-gray);border-bottom:none;background:var(--page-bg);color:var(--label-secondary);cursor:pointer;border-radius:6px 6px 0 0;transition:all .18s;white-space:nowrap;position:relative;top:2px;text-align:center;flex-shrink:0;box-shadow:0 -1px 3px rgba(0,0,0,0.06),0 1px 2px rgba(0,0,0,0.04) inset}
.tab:hover{color:var(--accent);background:#ffffff;border-color:var(--separator);box-shadow:0 -2px 6px rgba(61,90,153,0.12),0 1px 2px rgba(0,0,0,0.04) inset}
.tab.active{color:#ffffff;background:var(--accent);border-color:var(--accent);border-bottom:2px solid var(--accent);margin-bottom:-1px;font-weight:700;top:0;padding-bottom:10px;box-shadow:0 -3px 8px rgba(61,90,153,0.28),0 2px 4px rgba(61,90,153,0.18);text-shadow:0 1px 2px rgba(0,0,0,0.15)}
.tab-spacer{flex:1}
/* ── TAB-ACTION BUTTON (Update Claude) ── */
.tab-action{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:600;letter-spacing:.05em;text-transform:uppercase;padding:9px 16px;border:1px solid var(--accent);border-bottom:none;background:var(--accent);color:#fff;cursor:pointer;border-radius:6px 6px 0 0;transition:all .18s;white-space:nowrap;position:relative;top:2px;flex-shrink:0;box-shadow:0 -2px 6px rgba(61,90,153,0.25),0 2px 4px rgba(61,90,153,0.15);text-shadow:0 1px 2px rgba(0,0,0,0.15);display:flex;align-items:center;gap:7px}
.tab-action-prime{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:6px 14px;border:1.5px solid #2C2F3A;border-radius:6px;background:#2C2F3A;color:#D4B483;cursor:pointer;transition:all .18s;white-space:nowrap;flex-shrink:0;box-shadow:0 2px 8px rgba(0,0,0,0.22);display:flex;align-items:center;gap:6px;align-self:center;margin-left:20px}
.tab-action-prime:hover{background:#1e2130;border-color:#1e2130;box-shadow:0 3px 12px rgba(0,0,0,0.32)}
.tab-action-prime:active{transform:scale(0.97)}
.tab-action:hover{background:#2d4a85;border-color:#2d4a85;box-shadow:0 -3px 10px rgba(61,90,153,0.38),0 2px 4px rgba(61,90,153,0.20)}
.tab-action:active{top:1px}
.tab-action-ok{font-family:var(--font-mono);font-size:var(--fs-md);color:#2a7a2a;display:none;margin-right:4px;align-self:center;position:relative;top:1px}
.hd-reload{display:flex;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.3);border-radius:5px;color:rgba(255,255,255,.85);font-size:var(--fs-2xl);width:32px;height:32px;cursor:pointer;align-items:center;justify-content:center;transition:background .15s;flex-shrink:0;line-height:1}
.hd-reload:hover{background:rgba(255,255,255,.28)}
.uc-overlay{display:none;position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:var(--z-dlg);align-items:center;justify-content:center;padding:16px}
.uc-overlay.open{display:flex}
.uc-modal{--tone:var(--ios-blue);background:var(--dlg-bg);border-radius:var(--dlg-radius);padding:22px 22px 18px;max-width:400px;width:100%;box-shadow:var(--dlg-shadow);text-align:center;font-family:var(--font-ui)}
.uc-modal h3{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-primary);margin:0 0 6px 0}
.uc-modal p{font-family:var(--font-ui);font-size:13px;color:var(--label-ios2);line-height:1.45;margin:0 0 18px 0}
.uc-modal p strong{color:var(--label-primary);font-weight:600}
.uc-modal-btns{display:flex;flex-direction:column;gap:6px;align-items:stretch}
.uc-open-btn{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;padding:12px 20px;background:var(--tone);color:#fff;border:none;border-radius:12px;cursor:pointer;transition:filter .15s}
.uc-open-btn:hover{filter:brightness(.92)}
.uc-dismiss-btn{font-family:var(--font-ui);font-size:17px;color:var(--tone);background:none;border:none;cursor:pointer;padding:10px 8px;text-decoration:none}
.uc-dismiss-btn:hover{filter:brightness(.8)}
.uc-remember{display:flex;align-items:center;gap:8px;margin-top:10px;padding-top:12px;border-top:1px solid var(--dlg-hairline);text-align:left}
.uc-remember input{accent-color:var(--ios-blue);cursor:pointer}
.uc-remember label{font-family:var(--font-ui);font-size:12px;color:var(--label-secondary);cursor:pointer;letter-spacing:0}
.uc-toast{display:none;position:fixed;bottom:calc(24px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);background:var(--toast-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:22px;padding:10px 18px;font-family:var(--font-ui);font-size:14px;font-weight:500;color:var(--toast-ink);z-index:var(--z-toast);box-shadow:var(--dlg-shadow);pointer-events:none;white-space:nowrap}
.uc-toast.show{display:block}

/* ── DECK TAB GROUP ── */
.deck-group{position:relative;display:flex;align-items:flex-end;flex-shrink:0}
.deck-trigger{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:500;letter-spacing:.06em;text-transform:uppercase;padding:9px 14px;border:1px solid var(--fill-gray);border-bottom:none;background:var(--page-bg);color:var(--label-secondary);cursor:pointer;border-radius:6px 6px 0 0;white-space:nowrap;position:relative;top:2px;user-select:none;transition:all .18s;display:flex;align-items:center;gap:6px;box-shadow:0 -1px 3px rgba(0,0,0,0.06)}
.deck-trigger:hover,.deck-group:hover .deck-trigger{color:#000;background:#fff;border-color:var(--separator)}
.deck-trigger.active{color:#fff;background:var(--accent);border-color:var(--accent);border-bottom:2px solid #fff;font-weight:700;top:0;padding-bottom:9px;box-shadow:0 -3px 8px rgba(61,90,153,0.28),0 2px 4px rgba(61,90,153,0.18)}
.deck-arrow{font-size:var(--fs-xs);opacity:.7;transition:transform .2s}
.deck-group:hover .deck-arrow{transform:rotate(180deg)}
.deck-flyout{position:absolute;top:100%;left:0;background:#ffffff;border:1px solid var(--separator);border-top:none;border-radius:0 0 8px 8px;min-width:180px;z-index:200;display:none;flex-direction:column;box-shadow:0 4px 16px rgba(0,0,0,.12)}
.deck-group:hover .deck-flyout,.deck-group.open .deck-flyout{display:flex}
/* ── MEGA-MENU TAB GROUPS (click-triggered) ── */
.mega-group{position:relative;display:flex;align-items:flex-end;flex-shrink:0}
.mega-group .tab{border-radius:6px 6px 0 0}
.mega-flyout{position:absolute;top:100%;left:0;background:rgba(255,255,255,0.98);border:1px solid var(--separator);border-top:2px solid var(--accent);border-radius:0 8px 8px 8px;min-width:200px;z-index:300;display:none;flex-direction:column;box-shadow:0 6px 20px rgba(0,0,0,.14)}
.mega-group.open .mega-flyout{display:flex}
.mega-flyout-section{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);padding:8px 14px 4px;border-bottom:1px solid var(--separator)}
.mega-flyout-item{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:500;letter-spacing:.04em;text-transform:uppercase;padding:9px 16px;color:var(--label-ios2);cursor:pointer;border-bottom:1px solid var(--page-bg);white-space:nowrap;transition:background .12s;display:flex;align-items:center;gap:8px}
.mega-flyout-item:last-child{border-bottom:none;border-radius:0 0 8px 8px}
.mega-flyout-item:hover{background:var(--page-bg);color:#000}
.mega-flyout-item .mega-item-icon{font-size:var(--fs-lg);flex-shrink:0;opacity:.7}
.deck-flyout-item{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:10px 16px;color:var(--label-ios2);cursor:pointer;border-bottom:1px solid var(--page-bg);white-space:nowrap;transition:all .12s}
.deck-flyout-item:last-child{border-bottom:none}
.deck-flyout-item:hover{background:var(--page-bg);color:#000}
.deck-flyout-item.active{color:var(--pri-color);background:#FFF5F7;font-weight:600}



/* ── DARK BAND / DASHBOARD (cover palette) ── */
.dark-band{background:#ffffff;border-bottom:1px solid var(--fill-gray);flex-shrink:0}
.status-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:10px 32px 6px}
.dash-btn{display:flex;flex-direction:column;align-items:flex-start;padding:6px 14px;border:1px solid var(--fill-gray);background:var(--page-bg);cursor:pointer;transition:all .15s;min-width:72px;font-family:var(--font-mono);border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,0.08),0 1px 2px rgba(0,0,0,0.05) inset}
.dash-btn:hover{border-color:var(--separator);background:var(--fill-gray);box-shadow:0 2px 6px rgba(0,0,0,0.12)}
.dash-btn.act-red{border-color:var(--pri-color);background:rgba(199,0,37,0.08)}
.dash-btn.act-gold{border-color:var(--label-secondary);background:rgba(142,142,147,0.12)}
.dash-count{font-size:var(--fs-3xl);font-weight:500;color:#000000;line-height:1}
.dash-btn.act-red .dash-count{color:var(--pri-color)}
.dash-btn.act-gold .dash-count{color:var(--label-ios2)}
.dash-lbl{font-size:var(--fs-md);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);margin-top:2px}
.dash-btn.act-red .dash-lbl{color:var(--pri-color)}
.dash-btn.act-gold .dash-lbl{color:var(--label-ios2)}
.filter-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;padding:6px 20px 8px;background:var(--page-bg);border-bottom:1px solid var(--fill-gray)}
.dash-sel{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.04em;text-transform:uppercase;border:1px solid var(--separator);background:#ffffff;color:var(--label-ios2);padding:0 9px;cursor:pointer;outline:none;height:32px;line-height:32px;vertical-align:middle;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,0.07)}
.dash-sel:focus{border-color:var(--pri-color)}
.dash-sel option{background:#ffffff;color:#000000}
.dash-showall{font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.06em;text-transform:uppercase;color:var(--label-secondary);background:none;border:1px solid var(--separator);padding:0 12px;cursor:pointer;transition:all .15s;height:30px;line-height:30px;vertical-align:middle;border-radius:6px}
.dash-showall:hover{color:#000;border-color:var(--label-secondary)}
/* Filter chips: label + count badge */
.fchip{display:inline-flex;align-items:center;gap:0;background:#ffffff;border:1px solid var(--separator);border-radius:6px;cursor:pointer;transition:all .15s;height:32px;flex-shrink:0;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.07)}
.fchip:hover{border-color:var(--label-secondary)}
.fchip.act{border-color:var(--pri-color);background:rgba(199,0,37,.06);box-shadow:0 1px 4px rgba(199,0,37,0.18)}
.fchip-lbl{font-family:var(--font-mono);font-size:var(--fs-lg);letter-spacing:.04em;text-transform:uppercase;color:var(--label-ios2);padding:0 11px;white-space:nowrap;transition:color .15s}
.fchip.act .fchip-lbl{color:var(--pri-color);font-weight:600}
.fchip-ct{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:600;background:var(--page-bg);color:var(--label-ios2);padding:0 9px;height:100%;display:flex;align-items:center;border-left:1px solid var(--fill-gray);min-width:30px;justify-content:center;transition:all .15s}
.fchip.act .fchip-ct{background:rgba(199,0,37,.1);color:var(--pri-color);border-left-color:rgba(199,0,37,.2)}
.fchip-sep{width:1px;background:var(--fill-gray);margin:0 4px;height:20px;flex-shrink:0}


/* ── PANELS (Apple light) ── */
.panel{display:none;visibility:hidden;background:var(--page-bg);position:relative;z-index:1;padding-bottom:36px}
.panel.active{display:flex;visibility:visible;flex-direction:column;flex:1;overflow:hidden;min-height:0}

/* ── NOTES INPUT (Apple light) ── */
.inp-wrap{background:var(--page-bg);border-bottom:1px solid var(--separator);padding:14px 32px 16px;flex-shrink:0}
.inp-card{background:var(--card-bg);border:1.5px solid var(--separator);border-radius:10px;padding:12px 14px;box-shadow:0 1px 4px rgba(0,0,0,0.07)}
/* Collapsible input form */
.inp-collapse-bar{display:flex;align-items:center;justify-content:space-between;padding:7px 14px;background:var(--card-bg);border:1.5px solid var(--separator);border-radius:10px;cursor:pointer;user-select:none;transition:background .15s}
.inp-collapse-bar:hover{background:var(--page-bg)}
.inp-collapse-label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary)}
.inp-collapse-chev{font-size:var(--fs-base);color:var(--label-secondary);transition:transform .2s}
.inp-collapse-chev.open{transform:rotate(180deg)}
/* Glass add button */
.inp-add{background:rgba(61,90,153,0.12);color:var(--accent);border:1.5px solid rgba(61,90,153,0.3);cursor:pointer;font-size:var(--fs-3xl);padding:0 16px;align-self:stretch;transition:all .15s;font-family:var(--font-mono);border-radius:8px;flex-shrink:0;min-width:46px;backdrop-filter:blur(4px)}
.inp-add:hover{background:rgba(61,90,153,0.22);border-color:var(--accent);color:var(--accent);box-shadow:0 2px 8px rgba(61,90,153,0.18)}
.inp-top{display:flex;gap:10px;align-items:flex-start}
.inp-ta{flex:1;font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.5;color:var(--label-primary);background:var(--page-bg);border:1px solid var(--separator);border-radius:6px;padding:9px 13px;resize:vertical;min-height:64px;outline:none;transition:border-color .15s}
.inp-ta:focus{border-color:var(--accent)}
.inp-ta::placeholder{color:var(--label-secondary);font-style:italic}
.inp-right{display:flex;flex-direction:column;gap:6px;flex-shrink:0}
.inp-add{background:rgba(61,90,153,0.14);color:var(--accent);border:1.5px solid rgba(61,90,153,0.32);cursor:pointer;font-size:var(--fs-4xl);padding:0 18px;align-self:stretch;transition:all .15s;font-family:var(--font-mono);border-radius:8px;flex-shrink:0;min-width:48px;backdrop-filter:blur(4px);position:relative}
.inp-add:hover{background:rgba(61,90,153,0.24);border-color:var(--accent);box-shadow:0 2px 8px rgba(61,90,153,0.18)}
.inp-add::after{content:'Press to save';position:absolute;bottom:calc(100% + 6px);left:50%;transform:translateX(-50%);background:rgba(30,40,80,0.88);color:#fff;font-size:var(--fs-sm);font-family:-apple-system,BlinkMacSystemFont,'SF Pro Text',sans-serif;padding:3px 8px;border-radius:4px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .15s}
.inp-add:hover::after{opacity:1}
.inp-ctrls{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;align-items:center;padding-top:9px;border-top:1px solid var(--separator)}

/* Universal control height applied to selects, inputs, toggles */
.inp-sel,input[type=text].inp-sel,input[type=date].inp-sel,
select.inp-sel,.inp-sel{
  font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.05em;text-transform:uppercase;
  border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);
  padding:0 8px;cursor:pointer;outline:none;border-radius:4px;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle
}
.inp-sel:focus{border-color:var(--accent)}
input[type=date].inp-sel{font-size:var(--fs-md);width:130px}

.ptoggle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.07em;text-transform:uppercase;color:var(--label-secondary);cursor:pointer;border:1px solid var(--separator);padding:0 14px;background:var(--card-bg);border-radius:20px;transition:all .15s;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.ptoggle:hover{border-color:var(--label-primary);color:var(--label-primary)}
.ptoggle.on{border-color:#b06000;background:#b06000;color:#fff7e0;font-weight:600}
.ptoggle.mem-toggle{border-radius:20px}
.ptoggle.mem-on{border-color:#6b1010;background:#6b1010;color:#f5e6c8;font-weight:600}

.list-wrap{padding:0 32px 40px;flex:1;overflow-y:auto;min-height:0}
.list-bar{display:flex;align-items:center;padding:8px 12px;margin:0 -32px;background:#e8e8ed;border-bottom:1px solid var(--separator);gap:10px}
.list-ct{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary);margin-right:auto}
.list-bar-btn{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);background:none;border:1px solid var(--separator);padding:4px 12px;cursor:pointer;transition:all .15s}
.list-bar-btn:hover{color:var(--label-primary);border-color:var(--label-primary)}

/* ── ITEMS (Apple light) ── */
.item{border-left:3px solid transparent;margin:3px 0;background:var(--card-bg);transition:border-color .15s,box-shadow .15s,background .15s;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,0.08);overflow:hidden}
.item.done{background:var(--done-bg);border-left-color:var(--done-fg)}
.item.hold{background:var(--hold-bg);border-left-color:var(--hold-fg)}
.item.pri:not(.done):not(.hold){background:var(--pri-bg);border-left-color:var(--pri-color)}
.ihead{display:flex;align-items:flex-start;gap:10px;padding:5px 12px;cursor:pointer;user-select:none;flex-wrap:wrap}
.ihead-pills{display:flex;gap:4px;align-items:center;flex-shrink:0;flex-basis:100%;padding-left:28px;padding-bottom:3px}
.item:not(.done):not(.hold) .ihead:hover{background:var(--open-hover)}
.item.done .ihead:hover{background:rgba(45,107,45,0.08)}
.item.hold .ihead:hover{background:rgba(176,90,0,0.08)}
.item.pri:not(.done):not(.hold) .ihead:hover{background:rgba(199,0,37,0.08)}
/* ── RESURFACED ITEMS (deferred reminder reached) ── */
.item.resurface .ihead{background:rgba(199,120,0,0.10) !important;border-left:3px solid #C77800 !important}
.item.resurface .ihead:hover{background:rgba(199,120,0,0.18) !important}
/* ── DEFER MODAL ── */
.defer-overlay{display:none;position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:calc(var(--z-dlg) + 100);align-items:center;justify-content:center;padding:16px}
.defer-overlay.open{display:flex}
.defer-modal{--tone:var(--ios-blue);background:var(--dlg-bg);border-radius:var(--dlg-radius);padding:22px;max-width:380px;width:100%;box-shadow:var(--dlg-shadow);font-family:var(--font-ui)}
.defer-modal-title{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-primary);margin-bottom:8px}
.defer-modal-text{font-family:var(--font-ui);font-size:14px;color:var(--label-ios2);line-height:1.5;margin-bottom:18px;max-height:60px;overflow:hidden;text-overflow:ellipsis}
.defer-pills{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px}
.defer-pill{font-family:var(--font-ui);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;border:none;background:rgba(118,118,128,.12);color:var(--label-primary);padding:8px 16px;border-radius:20px;cursor:pointer;transition:all .15s;white-space:nowrap}
.defer-pill:hover{background:rgba(0,122,255,.14);color:var(--ios-blue-ink)}
.defer-pill.never{color:var(--label-secondary)}
.defer-pill.never:hover{color:var(--label-secondary);background:rgba(118,118,128,.2)}
.defer-custom-row{display:none;align-items:center;gap:8px;margin-bottom:16px}
.defer-custom-row.open{display:flex}
.defer-cancel{font-family:var(--font-ui);font-size:14px;color:var(--ios-blue);background:none;border:none;cursor:pointer;padding:4px 0;text-decoration:none}
/* ── RESURFACE ALERT MODAL ── */
.rsf-overlay{display:none;position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:calc(var(--z-dlg) + 200);align-items:center;justify-content:center;padding:16px}

.rsf-modal{--tone:var(--ios-blue);background:var(--dlg-bg);border-radius:var(--dlg-radius);padding:22px;max-width:380px;width:100%;box-shadow:var(--dlg-shadow);font-family:var(--font-ui)}
.rsf-modal h3{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-primary);margin:0 0 10px;text-align:center}
.rsf-modal p{font-family:var(--font-ui);font-size:14px;color:var(--label-primary);line-height:1.5;margin:0 0 18px}
.rsf-ok{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;background:var(--tone);color:#fff;border:none;border-radius:12px;padding:12px 24px;cursor:pointer;width:100%}
.icb{width:15px;height:15px;flex-shrink:0;border:1.5px solid var(--separator);background:var(--card-bg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);cursor:pointer;margin-top:2px;transition:all .15s}
.done .icb{background:var(--done-fg);border-color:var(--done-fg);color:white}
.hold .icb{background:var(--hold-fg);border-color:var(--hold-fg);color:white;font-size:7px}
.itext{flex:1;font-size:var(--fs-xl);color:var(--label-primary);line-height:1.4;min-width:0}
.itext-l1{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.itext-l2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--fs-base);color:var(--label-secondary);margin-top:2px}
.itext-l2-from{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--label-secondary);opacity:.7}
.done .itext{color:var(--done-fg)}
.imeta{display:flex;align-items:center;gap:5px;flex-shrink:0}
.istar{font-size:var(--fs-md);color:var(--separator)}.istar.on{color:var(--pri-color)}
.imem{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--separator);cursor:pointer;transition:color .15s}.imem.on{color:#b06000}
.tag-pill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:2px 6px}
.tag-editing{background:rgba(26,74,107,.1);color:var(--tag-editing)}
.tag-publishing{background:rgba(75,26,107,.1);color:var(--tag-publishing)}
.tag-todo{background:rgba(26,107,74,.1);color:var(--tag-todo)}
.tag-research{background:rgba(107,74,26,.1);color:var(--tag-research)}
.type-pill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:2px 6px;background:#eee;color:var(--label-secondary)}
.type-pill.rm-pill{--rm-c:var(--accent);background:color-mix(in srgb,var(--rm-c) 12%,transparent);color:var(--rm-c);border:1px solid color-mix(in srgb,var(--rm-c) 45%,transparent);text-transform:none;letter-spacing:.02em;font-family:var(--font-ui);font-size:12px;font-weight:600;border-radius:6px}
.item.type-roadmap .ihead{background:linear-gradient(90deg,rgba(61,90,153,.04),transparent 40%)}
.sp-open{background:rgba(26,74,107,.07);color:var(--tag-editing);font-family:var(--font-mono);font-size:var(--fs-xs);padding:2px 6px}
.sp-deferred{background:rgba(176,90,0,.12);color:var(--hold-fg);font-family:var(--font-mono);font-size:var(--fs-xs);padding:2px 6px}
.chev{font-size:var(--fs-md);color:#bbb;transition:transform .2s;flex-shrink:0;margin-top:2px}
.item.expanded .chev{transform:rotate(90deg)}
.ibody{display:none;padding:0 12px 7px 37px;font-size:var(--fs-xl);line-height:1.6;color:var(--label-secondary);border-top:1px solid var(--separator)}
.item.expanded .ibody{display:block}
.ianswer{color:var(--label-primary);margin:8px 0;white-space:pre-wrap;font-size:var(--fs-lg)}
.iactions{display:flex;gap:6px;margin-top:8px;flex-wrap:wrap}
.iabtn{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.07em;text-transform:uppercase;background:none;border:1px solid var(--separator);padding:0 12px;height:32px;cursor:pointer;color:var(--label-secondary);transition:all .15s;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,0.07)}
.iabtn:hover{border-color:var(--label-primary);color:var(--label-primary)}
.iabtn.danger:hover{border-color:var(--pri-color);color:var(--pri-color)}
.iright{display:flex;flex-direction:column;align-items:flex-end;gap:3px;flex-shrink:0}
.iright-top{display:flex;align-items:center;gap:8px}
.ibadge-row{display:flex;align-items:center;gap:4px;flex-basis:100%;padding:0 0 4px 25px;flex-wrap:wrap;min-height:0}
.item.kb-focus{outline:2px solid var(--accent);outline-offset:-2px}
/* Item context menu */
#item-ctx-menu{position:fixed;z-index:9999;background:var(--dlg-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;box-shadow:var(--dlg-shadow);padding:6px;min-width:180px;display:none}
.ctx-item{font-family:var(--font-ui);font-size:14px;letter-spacing:0;border-radius:8px;padding:8px 12px;cursor:pointer;color:var(--label-primary);display:block;background:none;border:none;width:100%;text-align:left;transition:background .1s}
.ctx-item:hover{background:rgba(0,122,255,.12)}
.ctx-item.ctx-danger{color:var(--ios-red-ink)}
.ctx-item.ctx-danger:hover{background:rgba(255,59,48,.12)}
.idate-cols{display:flex;flex-direction:column;gap:1px;align-items:flex-end;flex-shrink:0;min-width:88px}
.idate-pair{display:flex;flex-direction:column;align-items:flex-end}
.idate-lbl{font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.07em;text-transform:uppercase;color:var(--label-secondary)}
.idate-val{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-primary)}
.idate-val.overdue{color:var(--pri-color);font-weight:600}
.od-chip{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;font-weight:700;color:#fff;background:var(--pri-color);padding:1px 6px;border-radius:3px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.rm-late-chip{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700;color:var(--pri-color);border:1px solid var(--pri-color);padding:0 6px;border-radius:3px;margin-left:6px;flex-shrink:0;white-space:nowrap}
.rm-task-date.late{color:var(--pri-color);font-weight:600}
.gantt-task-bar.is-late{box-shadow:inset 0 0 0 2px var(--pri-color)}
.gantt-task-bar.is-late .gantt-task-bar-fill{width:100%!important;opacity:.55}

/* ── EDIT MODE (Apple light) ── */
.edit-wrap{margin-top:8px}
.edit-wrap-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary);display:block;margin-bottom:5px}
.edit-ta{width:100%;font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.5;color:var(--label-primary);background:var(--page-bg);border:1px solid var(--accent);padding:8px 12px;resize:vertical;min-height:60px;outline:none}
.edit-meta-row{display:flex;gap:6px;margin-top:5px;flex-wrap:wrap}
.edit-sel{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:0 7px;cursor:pointer;outline:none;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.edit-pritoggle{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);padding:0 9px;cursor:pointer;transition:all .15s;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.edit-pritoggle.on{border-color:var(--pri-color);color:var(--pri-color);background:rgba(199,0,37,0.08)}
.edit-actions{display:flex;gap:6px;margin-top:6px}
.edit-save{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;background:var(--label-primary);color:var(--card-bg);border:none;padding:5px 12px;cursor:pointer}
.edit-save:hover{background:var(--accent)}
.edit-cancel{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;background:none;color:var(--label-secondary);border:1px solid var(--separator);padding:5px 12px;cursor:pointer}

/* ── FOOTER ── */
.ftr{display:flex;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 32px 16px;border-top:1px solid var(--separator);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);background:var(--card-bg)}
.copy-btn{background:var(--label-primary);color:var(--card-bg);border:none;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;transition:background .15s;margin-left:auto}
.copy-btn:hover{background:var(--accent)}
.copy-ok{color:var(--done-fg);font-size:var(--fs-sm);display:none}

/* ── INTEGRATED GANTT (Roadmap tab) ── */
.road-tab-wrap{padding:0 0 40px}

/* Collapse-level strip */
.road-collapse-strip{display:none} /* replaced by gantt-ctrl-bar */
/* ── Unified Gantt control bars ── */
.gantt-ctrl-bar{display:flex;align-items:center;gap:6px;padding:6px 8px 6px 8px;background:var(--page-bg);border-bottom:1px solid var(--separator);flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch}
.gantt-ctrl-bar.add-bar{border-bottom:1px solid var(--separator)}
.gpill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;border:1px solid rgba(42,109,190,.4);background:none;color:var(--road-accent);padding:3px 12px;cursor:pointer;transition:all .15s;border-radius:99px;white-space:nowrap;flex-shrink:0}
.gpill:hover{background:rgba(42,109,190,.08)}
.gpill.active{background:rgba(42,109,190,.15);border-color:var(--road-accent)}
.gpill.active-solid{background:var(--road-accent);color:#fff;border-color:var(--road-accent)}
.gpill-sep{width:1px;height:18px;background:var(--separator);flex-shrink:0;margin:0 2px}
.gantt-toolbar-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary);margin-left:auto;white-space:nowrap}

/* ── Outer scroll wrapper: full width, sticky label col ── */
.gantt-scroll-outer{width:100%;overflow-x:auto;overflow-y:auto;max-height:calc(100vh - 260px);position:relative;border-bottom:1px solid #D1D5DB;-webkit-overflow-scrolling:touch;touch-action:manipulation}
.gantt-scroll-inner{position:relative;display:inline-block;min-width:100%;vertical-align:top}

/* Sticky label column — width controlled by --gantt-label-w (resizable) */
:root{--gantt-label-w:224px}
.gantt-label-col{position:sticky;left:0;z-index:20;background:var(--page-bg);flex-shrink:0;width:var(--gantt-label-w);min-width:80px}

/* Header row */
.gantt-header-row{display:flex;align-items:stretch;height:46px;border-bottom:2px solid #C7CBD6;position:sticky;top:0;z-index:15;background:#F0F2F7}
.gantt-header-label{width:var(--gantt-label-w);flex-shrink:0;position:sticky;left:0;z-index:25;background:#F0F2F7;border-right:1px solid #C7CBD6;display:flex;align-items:center;justify-content:flex-start;padding:0 8px 0 8px;gap:6px}
.gantt-header-timeline{flex:1;position:relative;overflow:hidden;z-index:10}
.gantt-today-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;border:1px solid rgba(42,109,190,.4);background:#F0F2F7;color:var(--road-accent);padding:3px 12px;cursor:pointer;transition:all .15s;border-radius:99px;white-space:nowrap}
.gantt-today-btn:hover{background:rgba(42,109,190,.08)}
.gantt-today-btn.active{background:rgba(42,109,190,.15);color:var(--road-accent);border-color:var(--road-accent)}
.gantt-week-lbl{position:absolute;font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:500;color:#6B7280;white-space:nowrap;transform:translateX(-50%);top:4px;z-index:2;pointer-events:none;display:flex;flex-direction:column;align-items:center;line-height:1.3}
.gantt-tick-l1{font-size:var(--fs-2xs);opacity:.7}
.gantt-tick-l2{font-size:var(--fs-sm);font-weight:700}
.gantt-week-lbl.today-week{color:var(--pri-color);font-weight:700}
.gantt-week-lbl.today-week .gantt-tick-l2{color:var(--pri-color)}

/* Timeline content area */
.gantt-timeline-area{flex:1;position:relative}

/* Week lines (dotted only, no bands) */
.gantt-week-line{position:absolute;top:0;bottom:0;width:1px;border-left:1px dashed #D1D5DB;z-index:1;pointer-events:none}
.gantt-today-line-v{position:absolute;top:0;bottom:0;height:100%;width:2px;background:var(--pri-color);opacity:.55;z-index:5;pointer-events:none}

/* ── Phase row ── */
.gantt-phase-row{display:flex;align-items:stretch;min-height:58px;border-bottom:3px solid transparent;background:rgba(240,242,247,0.72);position:relative;z-index:2}
.gantt-phase-label-cell{width:var(--gantt-label-w);min-width:80px;position:sticky;left:0;z-index:10;display:flex;align-items:center;gap:6px;padding:0 10px 0 8px;border-right:1px solid #D1D5DB;background:rgba(240,242,247,0.82)}
/* phase label cell colored border */
.gantt-phase-label-cell.ph-frame{border-left:4px solid var(--ph-color,#3a6b9e)}
.gantt-drag-handle{font-size:var(--fs-3xl);color:#bbb;cursor:grab;flex-shrink:0;user-select:none;line-height:1;padding:0 2px;transition:color .15s}.gantt-drag-handle:hover{color:#555}.gantt-drag-handle:active{cursor:grabbing;color:#333}
.gantt-task-drag-handle{font-size:var(--fs-xl);color:#ccc;cursor:grab;flex-shrink:0;user-select:none;line-height:1;padding:0 2px;margin-left:2px;transition:color .15s}.gantt-task-drag-handle:hover{color:#666}.gantt-task-drag-handle:active{cursor:grabbing;color:#333}
.gantt-col-resize-handle{position:absolute;right:0;top:0;bottom:0;width:10px;cursor:col-resize;z-index:25;display:flex;align-items:center;justify-content:center;touch-action:none;background:rgba(100,160,220,.15);border-left:2px solid rgba(100,160,220,.5)}.gantt-col-resize-handle:hover,.gantt-col-resize-handle:active{background:rgba(100,160,220,.3);border-left-color:#4a90d0}.gantt-col-resize-handle svg{pointer-events:none}.gantt-col-resizing{cursor:col-resize!important;user-select:none!important}
.gantt-col-rail{position:fixed;width:10px;z-index:200;pointer-events:auto;cursor:col-resize;touch-action:none;background:rgba(100,160,220,.15);border-left:2px solid rgba(100,160,220,.5);display:none;box-sizing:border-box}
.gantt-col-rail:hover,.gantt-col-rail:active{background:rgba(100,160,220,.3);border-left-color:#4a90d0}
.gantt-expand-btn{width:20px;height:20px;border:1.5px solid var(--ph-color,#3a6b9e);border-radius:3px;background:none;cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-base);font-weight:700;color:var(--ph-color,#3a6b9e);display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1;transition:all .15s}
.gantt-expand-btn:hover{background:var(--ph-color,#3a6b9e);color:#fff}
.gantt-phase-name{flex:1;min-width:0;font-family:-apple-system,BlinkMacSystemFont,'SF Pro Display','Helvetica Neue',sans-serif;font-size:17px;font-weight:700;color:#111827;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}
.gantt-phase-pct{font-family:var(--font-mono);font-size:var(--fs-base);color:var(--ph-color,#3a6b9e);flex-shrink:0}
.gantt-phase-track{position:absolute;left:0;right:0;top:0;bottom:0;background:transparent;pointer-events:none;z-index:0}

/* Phase bar */
.gantt-ph-bar{position:absolute;top:10%;transform:none;height:80%;border-radius:4px;overflow:hidden;min-width:6px;border:1.5px solid transparent}
.gantt-ph-bar-bg{position:absolute;inset:0}
.gantt-ph-bar-fill{position:absolute;top:0;left:0;height:100%;transition:width .4s}

/* Gate diamonds on phase rows */
.gantt-gate-diamond{position:absolute;top:50%;transform:translateY(-50%) translateX(-8px) rotate(45deg);width:16px;height:16px;border:2.5px solid var(--ph-color,#3a6b9e);background:#fff;cursor:pointer;z-index:6;box-shadow:0 1px 4px rgba(0,0,0,.2);transition:all .18s}
.gantt-gate-diamond.met{background:var(--ph-color,#3a6b9e)}
.gantt-gate-diamond:hover{transform:translateY(-50%) translateX(-8px) rotate(45deg) scale(1.25)}

/* ── Task rows ── */
.gantt-tasks-wrap{background:var(--page-bg)}
.gantt-task-row{display:flex;align-items:stretch;min-height:36px;border-bottom:3px solid transparent;background:rgba(255,255,255,0.78);position:relative;z-index:2}
.gantt-swipe-wrap{position:relative}.gantt-swipe-inner{position:relative;display:flex;align-items:stretch;width:100%;transition:transform .18s ease}.gantt-swipe-reveal-l{position:absolute;right:0;top:0;bottom:0;width:100%;background:#D43540;display:flex;align-items:center;justify-content:flex-end;padding-right:18px;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;color:#fff;letter-spacing:.06em;pointer-events:none;opacity:0;transition:opacity .12s}.gantt-swipe-reveal-r{position:absolute;left:0;top:0;bottom:0;width:100%;background:#2070C8;display:flex;align-items:center;justify-content:flex-start;padding-left:18px;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:700;color:#fff;letter-spacing:.06em;pointer-events:none;opacity:0;transition:opacity .12s}.gantt-swipe-delete-btn{position:absolute;left:0;top:0;bottom:0;width:auto;min-width:80px;background:#D43540;display:flex;align-items:center;justify-content:center;font-family:var(--font-mono);font-size:var(--fs-sm);font-weight:700;color:#fff;letter-spacing:.06em;cursor:pointer;z-index:5}
.gantt-task-label-cell{width:var(--gantt-label-w);min-width:80px;position:sticky;left:0;z-index:10;display:flex;align-items:center;gap:6px;padding:0 8px 0 20px;border-right:1px solid #D1D5DB;background:rgba(255,255,255,0.82)}
.gantt-task-cb{width:13px;height:13px;flex-shrink:0;border:1.5px solid var(--separator);background:var(--card-bg);display:flex;align-items:center;justify-content:center;font-size:var(--fs-2xs);cursor:pointer;transition:all .15s}
.gantt-task-cb.checked{background:var(--done-fg);border-color:var(--done-fg);color:#fff}
.gantt-task-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--ph-color,#3a6b9e)}
.gantt-task-name{flex:1;font-family:var(--font-ui);font-size:var(--fs-xl2);color:#374151;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-task-name.done{text-decoration:line-through;color:var(--done-fg);opacity:.7}
.gantt-task-pct{font-family:var(--font-mono);font-size:var(--fs-xs);color:#9CA3AF;flex-shrink:0}
.gantt-task-track{position:absolute;left:0;right:0;top:0;bottom:0;background:transparent;pointer-events:none;z-index:0}

/* Task bar */
.gantt-task-bar{position:absolute;top:10%;transform:none;height:80%;border-radius:3px;overflow:hidden;min-width:4px}
.gantt-task-bar-bg{position:absolute;inset:0;opacity:.35}
.gantt-task-bar-fill{position:absolute;top:0;left:0;height:100%;transition:width .4s}
/* Task bar date drag: resize from either end, move by the body */
.gantt-task-bar{pointer-events:auto;cursor:grab;z-index:3}
.gantt-filter-sel,.gantt-filter-search{font-family:var(--font-ui);font-size:12px;border:none;background:rgba(255,255,255,.88);color:var(--label-primary);border-radius:999px;padding:3px 10px;margin-left:6px;height:26px;vertical-align:middle}
.gantt-filter-search{width:170px;max-width:40vw}
.gantt-phase-label-cell,.gantt-task-label-cell{cursor:pointer}
.gantt-task-detail{position:relative;background:var(--card-bg);border-bottom:1px solid var(--separator)}
.gantt-task-detail-inner{position:sticky;left:0;max-width:min(680px,94vw);padding:8px 14px 10px 30px;border-left:3px solid var(--ph-color,#3a6b9e);font-family:-apple-system,BlinkMacSystemFont,'Helvetica Neue',sans-serif;font-size:var(--fs-lg);line-height:1.5;color:var(--label-primary)}
.gantt-task-detail-inner .gtd-title{font-weight:600;margin-bottom:2px}
.gantt-task-detail-inner .gtd-meta{font-family:var(--font-mono);font-size:10.5px;color:var(--label-secondary);margin-bottom:4px}
.gantt-task-detail-inner .gtd-note{white-space:pre-wrap}
.gantt-task-bar.dragging{cursor:grabbing;box-shadow:0 0 0 2px rgba(32,112,200,.55),0 2px 8px rgba(0,0,0,.18);z-index:6}
.gantt-task-bar.dragging .gantt-task-bar-fill{transition:none}
.gantt-bar-h{position:absolute;top:0;bottom:0;width:min(9px,35%);cursor:ew-resize;z-index:2;touch-action:none;display:flex;align-items:center;justify-content:center}
.gantt-bar-h.l{left:0}.gantt-bar-h.r{right:0}
.gantt-bar-h::after{content:'';width:2px;height:55%;border-radius:1px;background:rgba(0,0,0,.45);opacity:0;transition:opacity .12s}
.gantt-task-bar:hover .gantt-bar-h::after,.gantt-task-bar.dragging .gantt-bar-h::after{opacity:.8}
@media (pointer:coarse){.gantt-bar-h{width:min(16px,35%)}.gantt-bar-h::after{opacity:.55}}

/* Gate-task row — shows diamond only in track */
.gantt-gate-task-row{display:flex;align-items:stretch;min-height:32px;border-bottom:3px solid transparent;background:rgba(253,248,237,0.80);position:relative;z-index:2}
.gantt-gate-task-label{width:var(--gantt-label-w);min-width:80px;position:sticky;left:0;z-index:10;display:flex;align-items:center;gap:6px;padding:0 8px 0 20px;border-right:1px solid #D1D5DB;border-left:3px solid var(--ph-color,#b06000);background:rgba(253,248,237,0.82)}
.gantt-gate-task-name{flex:1;font-family:var(--font-ui);font-size:var(--fs-xl);color:#7a5a10;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gantt-gate-task-track{position:absolute;left:0;right:0;top:0;bottom:0;background:transparent;pointer-events:none;z-index:0}

/* Add task row */
.gantt-add-task-row{display:flex;align-items:stretch;min-height:28px;border-bottom:3px solid transparent;background:rgba(242,242,247,0.60);position:relative;z-index:2}
.gantt-add-task-label{width:var(--gantt-label-w);min-width:80px;position:sticky;left:0;z-index:10;padding:0 8px 0 20px;display:flex;align-items:center;border-right:1px solid #D1D5DB;background:rgba(242,242,247,0.70)}
.gantt-add-task-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:#9CA3AF;background:none;border:1px dashed #D1D5DB;padding:2px 10px;cursor:pointer;width:100%;text-align:left;transition:all .15s}
.gantt-add-task-btn:hover{border-color:var(--accent);color:var(--accent)}
.gantt-add-task-track{flex:1;background:var(--page-bg)}

/* Legend bar */
.gantt-legend-bar{display:flex;gap:16px;padding:8px 32px 8px;flex-wrap:wrap;border-bottom:1px solid var(--separator);background:var(--card-bg)}
.gantt-leg{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:#6B7280}
.gantt-leg-swatch{width:14px;height:8px;border-radius:2px}
.gantt-leg-diamond{width:11px;height:11px;border:2px solid #888;transform:rotate(45deg);display:inline-block}
.gantt-leg-diamond.filled{background:#888;border-color:#888}

/* ── Slide-in panel ── */
.gantt-panel-overlay{display:none;position:fixed;inset:0;z-index:100;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur)}
.gantt-panel-overlay.open{display:block}
.gantt-slide-panel{position:fixed;top:0;right:-400px;width:380px;height:100vh;background:var(--dlg-bg);border-radius:var(--dlg-radius) 0 0 var(--dlg-radius);z-index:101;overflow-y:auto;transition:right .22s ease;box-shadow:var(--dlg-shadow);display:flex;flex-direction:column}
.gantt-slide-panel.open{right:0}
.gantt-panel-hd{background:transparent;color:var(--label-primary);padding:16px 16px 12px;border-bottom:1px solid var(--dlg-hairline);display:flex;align-items:center;justify-content:space-between;flex-shrink:0}
.gantt-panel-title{font-family:var(--font-ui);font-size:17px;letter-spacing:0;text-transform:none;font-weight:600}
.gantt-panel-close{background:rgba(118,118,128,.16);border:none;color:var(--label-secondary);width:26px;height:26px;border-radius:50%;font-size:18px;cursor:pointer;line-height:1;padding:0;display:flex;align-items:center;justify-content:center}
.gantt-panel-close:hover{background:rgba(118,118,128,.28)}
.gantt-panel-body{padding:14px;flex:1;overflow-y:auto}
.gantt-panel-field{margin-bottom:10px}
.gantt-panel-lbl{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-secondary);display:block;margin-bottom:5px}
.gantt-panel-input{width:100%;font-family:var(--font-ui);font-size:14px;border:1px solid transparent;border-radius:10px;background:rgba(118,118,128,.12);color:var(--label-primary);padding:8px 11px;outline:none;resize:vertical}
.gantt-panel-input:focus{border-color:var(--ios-blue);background:var(--card-bg)}
.gantt-panel-input.mono{font-family:var(--font-ui);font-size:13px}
.gantt-panel-row{display:flex;gap:6px}
.gantt-panel-row .gantt-panel-input{flex:1}
.gantt-panel-add-btn{width:100%;font-family:var(--font-ui);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;background:var(--ios-blue);color:#fff;border:none;border-radius:12px;padding:11px;cursor:pointer;margin-top:4px;transition:filter .15s}
.gantt-panel-add-btn:hover{filter:brightness(.92)}
.gantt-panel-del-btn{display:block;width:100%;font-family:var(--font-ui);font-size:14px;font-weight:500;letter-spacing:0;text-transform:none;background:none;border:none;color:var(--pri-color);padding:8px;margin-top:14px;border-radius:10px;cursor:pointer;transition:background .15s}
.gantt-panel-del-btn:hover{background:rgba(199,0,37,.08)}
.gantt-panel-divider{border:none;border-top:1px solid var(--dlg-hairline);margin:12px 0}
.gantt-panel-section{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-secondary);margin-bottom:8px}
.gantt-panel-toggle-row{display:flex;align-items:center;gap:8px;margin-bottom:10px}
.gantt-panel-toggle-lbl{font-family:var(--font-ui);font-size:13px;color:var(--label-ios2);flex:1}
.gantt-panel-toggle{position:relative;width:38px;height:20px;cursor:pointer}
.gantt-panel-toggle input{opacity:0;width:0;height:0;position:absolute}
.gantt-panel-toggle-track{position:absolute;inset:0;background:#ccc;border-radius:20px;transition:background .2s}
.gantt-panel-toggle input:checked+.gantt-panel-toggle-track{background:var(--ios-green)}
.gantt-panel-toggle-thumb{position:absolute;top:3px;left:3px;width:14px;height:14px;background:#fff;border-radius:50%;transition:left .2s;box-shadow:0 1px 3px rgba(0,0,0,.25)}
.gantt-panel-toggle input:checked~.gantt-panel-toggle-thumb{left:21px}

/* Open panel button */
.gantt-open-panel-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;border:1px solid rgba(42,109,190,.4);background:none;color:var(--road-accent);padding:3px 12px;cursor:pointer;transition:all .15s;border-radius:99px;white-space:nowrap}
.gantt-open-panel-btn:hover{background:rgba(42,109,190,.08)}
.gantt-toolbar{display:flex;align-items:center;gap:6px;padding:6px 8px;border-bottom:1px solid var(--separator);background:var(--page-bg);flex-wrap:nowrap;overflow-x:auto}
.gantt-toolbar-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary);margin-left:auto;white-space:nowrap}
.gantt-toolbar-sep{width:1px;height:16px;background:var(--separator);margin:0 2px}

/* ── REFERENCE / STYLE / DIST / PASSES / OUTREACH ── */
.ref-section{padding:20px 32px;background:rgba(255,255,255,0.94);flex:1;overflow-y:auto}
.ref-section h2{font-size:var(--fs-lg);font-weight:600;color:var(--label-primary);letter-spacing:.05em;text-transform:uppercase;margin-bottom:12px;padding-bottom:6px;border-bottom:1.5px solid var(--label-primary);font-family:var(--font-mono)}
.isbn-table{width:100%;border-collapse:collapse;font-size:var(--fs-lg);margin-bottom:24px}
.isbn-table th{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--label-ios2);text-align:left;padding:0 10px 8px 10px;border-bottom:1px solid var(--separator)}
.isbn-table td{padding:10px;border-bottom:3px solid transparent;vertical-align:top}
.isbn-table tbody tr{background:rgba(255,255,255,0.94)}
.isbn-table tbody tr:hover{background:rgba(255,255,255,0.96)}
.isbn-code{font-family:var(--font-mono);font-size:var(--fs-lg);color:var(--label-primary);white-space:nowrap;font-weight:500}
.fmt-name{font-weight:600;color:var(--label-primary);font-size:var(--fs-lg)}
.fmt-note{font-size:var(--fs-base);color:var(--label-ios2);margin-top:2px}
.badge{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;padding:3px 8px;white-space:nowrap}
.b-asgn{background:var(--badge-assigned-bg);color:var(--badge-assigned-fg)}
.b-res{background:var(--badge-reserved-bg);color:var(--badge-reserved-fg)}
.b-un{background:var(--badge-un-bg);color:var(--badge-un-fg)}
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin-bottom:24px}
.price-card{background:rgba(255,255,255,0.95);border:1px solid rgba(229,229,234,0.6);padding:14px;border-radius:6px;backdrop-filter:blur(4px)}
.price-format{font-weight:600;font-size:var(--fs-lg);color:var(--label-primary);margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--separator);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase}
.price-row{display:flex;justify-content:space-between;font-size:var(--fs-base);padding:3px 0;color:var(--label-ios2)}
.price-row .val{font-family:var(--font-mono);color:var(--label-primary);font-weight:500}
.price-row.net .val{color:var(--done-fg);font-weight:600}
.style-grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr;gap:0;background:rgba(255,255,255,0.94);flex:1;overflow-y:auto}
.style-col{padding:20px 32px;background:rgba(255,255,255,0.94)}
.style-col+.style-col{border-left:1px solid var(--separator)}
.s-block{margin-bottom:20px}
.s-block h3{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.15em;text-transform:uppercase;color:var(--accent);margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid rgba(199,0,37,.2)}
.s-rule{font-size:var(--fs-base);color:var(--label-primary);padding:4px 0;border-bottom:1px solid var(--separator);line-height:1.5}
.s-rule span{font-family:var(--font-mono);font-size:var(--fs-md);background:var(--page-bg);padding:1px 5px;color:var(--accent)}
.s-rule em{font-style:italic;color:var(--label-ios2)}
.aiterm{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-sm);background:rgba(199,0,37,.08);color:var(--accent);border:1px solid rgba(199,0,37,.2);padding:1px 6px;margin:2px 2px;line-height:1.6}
.ch-table{width:100%;border-collapse:collapse;font-size:var(--fs-base)}
.ch-table th{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-ios2);text-align:left;padding:0 8px 6px 8px;border-bottom:1px solid var(--separator)}
.ch-table td{padding:5px 8px;border-bottom:1px solid var(--separator);vertical-align:top}
.ch-table tbody tr:hover{background:rgba(255,255,255,0.97)}
.ch-num{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-ios2);font-weight:500}
.ch-part{font-size:var(--fs-xs);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;padding:1px 5px;white-space:nowrap}
.pt-phenomena{background:#e8f4f8;color:#1a5a6b}
.pt-secrecy{background:#f5e8f5;color:#5a1a6b}
.pt-evidence{background:#e8f5e8;color:#1a5a2a}
.pt-disclosure{background:#f5f0e0;color:#6b5010}
.dist-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px 32px;background:rgba(255,255,255,0.94)}
.dist-card{background:rgba(255,255,255,0.95);border:1px solid var(--separator);padding:14px}
.dist-card h3{font-size:var(--fs-lg);font-weight:600;color:var(--label-primary);margin-bottom:4px;font-family:var(--font-serif)}
.dist-badge{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;margin-bottom:10px;display:inline-block}
.dist-primary{background:#e0eefd;color:#1a4a7b}
.dist-secondary{background:#eee;color:var(--label-ios2)}
.dist-row{font-size:var(--fs-base);padding:4px 0;border-bottom:1px solid var(--separator);display:flex;gap:6px}
.dist-row:last-child{border-bottom:none}
.dist-lbl{color:var(--label-ios2);flex-shrink:0;min-width:90px}
.dist-val{color:var(--label-primary);font-weight:500}
.dist-warn{font-size:var(--fs-md);color:var(--hold-fg);background:var(--hold-bg);border:1px solid rgba(122,90,16,.3);padding:5px 8px;margin-top:8px}
.dist-note{padding:0 32px 20px;font-size:var(--fs-base);color:var(--label-ios2);line-height:1.6}
.dist-note strong{color:var(--label-primary)}
/* ── OUTREACH ── */
.ot-wrap{padding:16px 32px}
.ot-filter-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;padding:8px 0 10px 0;margin-bottom:8px;border-bottom:1px solid var(--separator)}
.ot-add{background:var(--card-bg);border:1px solid var(--separator);padding:14px;margin-bottom:16px;border-radius:4px}
.ot-add-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.15em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:10px}
.ot-form{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ot-form input,.ot-form select,.ot-form textarea{font-size:var(--fs-base);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:6px 10px;outline:none;width:100%;font-family:var(--font-serif);border-radius:3px}
.ot-form input:focus,.ot-form select:focus,.ot-form textarea:focus{border-color:var(--accent)}
.ot-form .full{grid-column:1/-1}
.ot-add-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;background:var(--label-primary);color:var(--card-bg);border:none;padding:6px 16px;cursor:pointer;margin-top:6px;border-radius:3px}
.ot-add-btn:hover{background:var(--accent)}
/* contact cards */
.ot-cards{display:flex;flex-direction:column;gap:10px}
.ot-wave-hdr{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.14em;text-transform:uppercase;color:#8a7a50;padding:12px 0 4px;border-bottom:1px solid var(--separator);margin-bottom:4px}
.ot-card{background:var(--card-bg);border:1px solid var(--separator);border-radius:4px;overflow:hidden}
.ot-card-head{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer;user-select:none;transition:background .12s}
.ot-card-head:hover{background:var(--page-bg)}
.ot-card-chevron{font-size:var(--fs-sm);color:var(--label-secondary);flex-shrink:0;transition:transform .18s;width:12px}
.ot-card-chevron.open{transform:rotate(90deg)}
.ot-card-name{font-weight:600;font-size:var(--fs-lg);color:var(--label-primary);flex-shrink:0}
.ot-card-role{font-size:var(--fs-md);color:var(--label-secondary);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ot-card-badges{display:flex;gap:5px;align-items:center;flex-shrink:0;margin-left:auto}
.ot-status-badge{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:2px;font-weight:600;white-space:nowrap}
.ot-st-new{background:#f0f0f0;color:#888}
.ot-st-waiting{background:#fdf6dc;color:#7a5a10}
.ot-st-confirmed{background:#dff0d8;color:#2a5a1a}
.ot-st-closed{background:#e8eaf0;color:#3a4a6b}
.ot-st-rejected{background:#fde8e8;color:#8a1a1a}
.ot-req-badge{font-family:var(--font-mono);font-size:var(--fs-xs);padding:2px 7px;border-radius:2px;background:#f0eaf8;color:#5a1a8a;letter-spacing:.04em}
.ot-note-ct{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary);white-space:nowrap}
.ot-card-body{display:none;border-top:1px solid var(--separator);padding:14px}
.ot-card-body.open{display:block}
.ot-fields-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.ot-field{display:flex;flex-direction:column;gap:3px}
.ot-field.full{grid-column:1/-1}
.ot-field-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary)}
.ot-field-val{font-size:var(--fs-base);color:var(--label-primary);line-height:1.4}
.ot-field input,.ot-field select,.ot-field textarea{font-size:var(--fs-base);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:5px 8px;outline:none;width:100%;font-family:var(--font-serif);border-radius:3px}
.ot-field input:focus,.ot-field select:focus,.ot-field textarea:focus{border-color:var(--accent)}
.ot-edit-actions{display:flex;gap:6px;margin-top:8px}
.ot-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--separator);background:none;padding:4px 12px;cursor:pointer;color:var(--label-secondary);border-radius:3px;transition:all .12s}
.ot-btn:hover{border-color:var(--label-primary);color:var(--label-primary)}
.ot-btn.primary{background:var(--label-primary);color:var(--card-bg);border-color:var(--label-primary)}
.ot-btn.primary:hover{background:var(--accent);border-color:var(--accent)}
.ot-btn.danger{color:var(--accent)}
.ot-btn.danger:hover{border-color:var(--accent);background:rgba(199,0,37,.06)}
.ot-mat-link{color:var(--tag-editing);font-size:var(--fs-md);text-decoration:none;word-break:break-all}
.ot-mat-link:hover{text-decoration:underline}
/* notes log */
.ot-notes-section{margin-top:12px;padding-top:12px;border-top:1px solid var(--separator)}
.ot-notes-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ot-notes-title{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary)}
.ot-note-add-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;background:none;border:1px solid var(--separator);padding:3px 10px;cursor:pointer;color:var(--label-secondary);border-radius:3px}
.ot-note-add-btn:hover{border-color:var(--label-primary);color:var(--label-primary)}
.ot-note-compose{margin-bottom:10px;display:none}
.ot-note-compose.open{display:block}
.ot-note-compose textarea{width:100%;font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.5;color:var(--label-primary);background:var(--card-bg);border:1px solid var(--accent);padding:7px 10px;resize:vertical;min-height:56px;outline:none;border-radius:3px}
.ot-note-compose-actions{display:flex;gap:6px;margin-top:4px}
.ot-note-entry{background:var(--page-bg);border:1px solid var(--separator);border-radius:3px;padding:8px 10px;margin-bottom:6px}
.ot-note-entry:last-child{margin-bottom:0}
.ot-note-meta{display:flex;align-items:center;gap:8px;margin-bottom:4px}
.ot-note-ts{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.ot-note-text{font-size:var(--fs-base);color:var(--label-primary);line-height:1.5;white-space:pre-wrap}
.ot-note-edit-area{width:100%;font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.5;color:var(--label-primary);background:var(--card-bg);border:1px solid var(--accent);padding:5px 8px;resize:vertical;min-height:44px;outline:none;border-radius:3px;margin-top:4px;display:none}
.ot-note-edit-area.open{display:block}
.ot-note-actions{display:flex;gap:4px;margin-top:3px}
.rf-wrap{padding:16px 32px}
.rf-add{background:var(--card-bg);border:1px solid var(--separator);padding:14px;margin-bottom:16px}
.rf-add h3{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.15em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:10px}
.rf-kw-wrap{display:flex;gap:6px;align-items:center}
.rf-kw-select,.rf-kw-new{font-size:var(--fs-base);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:6px 10px;outline:none;font-family:var(--font-serif)}
.rf-kw-select{flex:1}.rf-kw-new{width:130px}
.rf-kw-new:focus,.rf-kw-select:focus{border-color:var(--accent)}
.rf-add-kw-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;background:var(--page-bg);color:var(--label-secondary);border:1px solid var(--separator);padding:0 10px;cursor:pointer;white-space:nowrap;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.rf-add-kw-btn:hover{background:var(--label-primary);color:var(--card-bg)}
.rf-save-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;background:var(--label-primary);color:var(--card-bg);border:none;padding:0 16px;cursor:pointer;white-space:nowrap;align-self:end;
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.rf-save-btn:hover{background:var(--accent)}
.rf-filter{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.rf-filter-lbl{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary)}
.rf-filter-sel{font-family:var(--font-mono);font-size:var(--fs-md);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:0 8px;height:32px;outline:none;cursor:pointer;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,0.07);
  height:var(--ctrl-h);line-height:var(--ctrl-h);box-sizing:border-box;vertical-align:middle}
.rf-filter-sel:focus{border-color:var(--accent)}
.rf-cat-section{margin-bottom:8px;border:1px solid var(--separator);border-radius:8px;overflow:hidden}
.rf-cat-header{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;background:var(--card-bg);user-select:none;transition:background 0.15s}
.rf-cat-header:hover{background:var(--separator)}
.rf-cat-icon{font-size:var(--fs-xl);flex-shrink:0}
.rf-cat-label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-primary);flex:1}
.rf-cat-count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);background:var(--separator);padding:2px 7px;border-radius:10px}
.rf-cat-arrow{font-size:var(--fs-xl);color:var(--label-secondary);flex-shrink:0;line-height:1}
.rf-cat-body{background:var(--card-bg)}
.notes-grp-section{margin-bottom:6px}
.notes-grp-header{display:flex;align-items:center;gap:8px;padding:8px 14px;cursor:pointer;background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;user-select:none;transition:background 0.15s;margin-bottom:2px}
/* Two-section Notes layout */
.section-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;cursor:pointer;user-select:none;transition:background .15s;margin-bottom:2px}
.section-bar:hover{background:var(--page-bg)}
.section-bar-label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary);display:flex;align-items:center;gap:8px}
.section-bar-ct{background:var(--separator);color:var(--label-secondary);font-family:var(--font-mono);font-size:var(--fs-xs);padding:1px 7px;border-radius:10px}
.section-bar-chev{font-size:var(--fs-md);color:var(--label-secondary);transition:transform .2s}
.section-bar-chev.open{transform:rotate(180deg)}
/* Roadmap section rows */
.rm-phase-hd{padding:6px 14px 4px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);border-top:1px solid var(--separator);margin-top:4px;display:flex;align-items:center;gap:8px}
.rm-phase-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.rm-task-row{display:flex;align-items:center;gap:8px;padding:5px 14px 5px 28px;border-bottom:1px solid rgba(0,0,0,0.04);background:rgba(255,255,255,0.82);margin:1px 0;border-radius:4px}
.rm-task-row.done-row{color:var(--label-secondary);text-decoration:line-through}
.rm-task-row.gate-row{font-style:italic;color:var(--label-secondary);padding-left:14px}
.rm-task-label{flex:1;font-family:var(--font-serif);font-size:var(--fs-base)}
.rm-task-date{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);white-space:nowrap}
.rm-task-done-mark{width:14px;height:14px;flex-shrink:0}
.notes-grp-header:hover{background:var(--separator)}
.notes-grp-label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:var(--label-primary);flex:1}
.notes-grp-count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);background:var(--separator);padding:2px 7px;border-radius:10px}
.notes-grp-arrow{font-size:var(--fs-lg);color:var(--label-secondary)}
.rf-table{width:100%;border-collapse:collapse;font-size:var(--fs-lg)}
.rf-table th{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);text-align:left;padding:0 10px 7px 10px;border-bottom:1.5px solid var(--label-primary)}
.rf-table td{padding:8px 10px;border-bottom:1px solid var(--separator);vertical-align:middle;background:var(--card-bg)}
.rf-table tbody tr:hover{background:var(--card-bg)}
.rf-kw-pill{display:inline-block;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;background:rgba(199,0,37,.08);color:var(--accent);border:1px solid rgba(199,0,37,.2);padding:2px 7px;white-space:nowrap}
.rf-url-link{color:var(--tag-editing);font-size:var(--fs-base);text-decoration:none;word-break:break-all}
.rf-url-link:hover{text-decoration:underline}
.rf-desc{font-size:var(--fs-lg);color:var(--label-primary)}
.rf-edit-row{display:none}
.rf-edit-row.open{display:table-row}
.rf-edit-cell{padding:10px;border-bottom:1px solid var(--separator);background:var(--page-bg)}
.rf-edit-grid{display:grid;grid-template-columns:180px 1fr 2fr;gap:8px;margin-bottom:8px}
.rf-edit-grid input,.rf-edit-grid select{font-size:var(--fs-base);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);padding:6px 10px;outline:none;width:100%;font-family:var(--font-serif)}
.rf-edit-acts{display:flex;gap:6px}
.rf-edit-save{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;background:var(--label-primary);color:var(--card-bg);border:none;padding:4px 10px;cursor:pointer}
.rf-edit-save:hover{background:var(--done-fg)}
.rf-edit-cancel{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;background:none;color:var(--label-secondary);border:1px solid var(--separator);padding:4px 10px;cursor:pointer}
.rf-act-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;background:none;border:1px solid var(--separator);padding:2px 7px;cursor:pointer;color:var(--label-secondary)}
.rf-act-btn:hover{border-color:var(--label-primary);color:var(--label-primary)}
.rf-act-btn.danger:hover{border-color:var(--accent);color:var(--accent)}
.rf-empty,.empty-state{text-align:center;padding:28px;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary);letter-spacing:.1em}
/* ── RESOURCES SIDEBAR LAYOUT ── */
.rf-layout{display:flex;height:100%;overflow:hidden}
.rf-sidebar{width:160px;flex-shrink:0;background:rgba(255,255,255,0.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-right:1px solid var(--separator);padding:16px 10px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}
.rf-sidebar-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:8px;padding:0 8px}
.rf-sidebar-sep{height:1px;background:var(--separator);margin:8px 0}
.rf-nav{background:none;border:none;border-radius:7px;padding:8px 10px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.04em;color:var(--label-primary);cursor:pointer;text-align:left;width:100%;transition:background .15s}
.rf-nav:hover{background:rgba(0,0,0,0.05)}
.rf-nav.active{background:var(--accent);color:#fff;font-weight:600}
.rf-content{flex:1;overflow-y:auto;padding:24px 28px;background:rgba(255,255,255,0.96)}
.rf-spanel{display:none}
.rf-spanel.active{display:flex;flex-direction:column;overflow-y:auto;min-height:0}
/* ── UAP DAILY ── */
.uap-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--separator)}
.uap-new-btn{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:#fff;border:none;padding:8px 18px;border-radius:6px;cursor:pointer;transition:background .15s}
.uap-new-btn:hover{background:#a0001e}
.uap-count{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);margin-left:auto}
.uap-report-card{background:rgba(255,255,255,0.95);border:1px solid var(--separator);border-radius:8px;padding:12px 16px;margin-bottom:10px;cursor:pointer;transition:box-shadow .15s}
.uap-report-card:hover{box-shadow:0 2px 10px rgba(0,0,0,0.10)}
.uap-card-header{display:flex;align-items:center;gap:10px}
.uap-card-date{font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;color:var(--label-primary)}
.uap-card-kw{display:flex;gap:5px;flex-wrap:wrap;flex:1}
.uap-card-pill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;background:rgba(199,0,37,.08);color:var(--accent);border:1px solid rgba(199,0,37,.2);padding:2px 6px;border-radius:3px}
.uap-card-del{font-family:var(--font-mono);font-size:var(--fs-xs);background:none;border:1px solid var(--separator);color:var(--label-secondary);padding:2px 7px;cursor:pointer;border-radius:3px;flex-shrink:0}
.uap-card-del:hover{border-color:var(--accent);color:var(--accent)}
/* UAP Report Modal */
.uap-modal-overlay{display:none;position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:2000;align-items:center;justify-content:center}
.uap-modal-overlay.open{display:flex}
.uap-modal{background:var(--dlg-bg);border-radius:var(--dlg-radius);width:min(820px,92vw);max-height:85vh;display:flex;flex-direction:column;box-shadow:var(--dlg-shadow);overflow:hidden}
.uap-modal-head{padding:18px 22px 14px;border-bottom:1px solid var(--separator);display:flex;align-items:flex-start;gap:12px;flex-shrink:0}
.uap-modal-title{font-family:var(--font-ui);font-size:17px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-primary);flex:1}
.uap-modal-close{background:none;border:none;font-size:var(--fs-4xl);cursor:pointer;color:var(--label-secondary);line-height:1;padding:0 4px}
.uap-modal-body{flex:1;overflow-y:auto;padding:20px 24px;font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.7;color:var(--label-primary);white-space:pre-wrap}
@media(max-width:600px){/* rf-layout flex-direction handled by base rule */.rf-layout{flex-direction:column}.rf-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;padding:8px;gap:4px;border-right:none;border-bottom:1px solid var(--separator)}.rf-sidebar-label,.rf-sidebar-sep{display:none}.rf-nav{padding:5px 10px;font-size:var(--fs-sm);flex-shrink:0}/* rf-content padding set in base rule */}
.passes-wrap{padding:16px 32px;background:rgba(255,255,255,0.94);flex:1;overflow-y:auto}
.passes-intro{font-size:var(--fs-lg);color:var(--label-ios2);margin-bottom:18px;line-height:1.65}
.pass-tier{margin-bottom:24px}
.pass-tier-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px;padding-bottom:6px;border-bottom:1.5px solid var(--label-primary);flex-wrap:wrap;cursor:pointer;user-select:none}
.pass-tier-head:hover{opacity:0.85}
.pass-tier-arrow{font-size:var(--fs-sm);color:var(--label-ios2);margin-left:auto;transition:transform .2s;display:inline-block}
.pass-tier.collapsed .pass-tier-arrow{transform:rotate(-90deg)}
.pass-tier.collapsed .pass-tier-body{display:none}
.pass-tier-summary{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-ios2);letter-spacing:.04em;margin-left:6px}
.pass-tier-head h2{font-family:var(--font-mono);font-size:var(--fs-base);letter-spacing:.08em;text-transform:uppercase;color:var(--label-primary)}
.pass-tier-tag{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--label-ios2);border:1px solid var(--separator);padding:1px 5px}
.pass-table{width:100%;border-collapse:collapse;font-size:var(--fs-base);margin-bottom:8px}
.pass-table th{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--label-ios2);text-align:left;padding:0 10px 7px 10px;border-bottom:1px solid var(--separator)}
.pass-table td{padding:8px 10px;border-bottom:1px solid var(--separator);vertical-align:top;line-height:1.5}
.pass-table tbody tr:hover{background:var(--card-bg)}
.pass-cmd{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--accent);background:rgba(199,0,37,.06);border:1px solid rgba(199,0,37,.15);padding:2px 7px;white-space:nowrap;display:inline-block}
.pass-label{font-weight:600;color:var(--label-primary);font-size:var(--fs-base);font-family:var(--font-mono)}
.pass-desc{color:var(--label-primary);font-size:var(--fs-base)}
.pass-desc em{color:var(--label-ios2);font-style:italic}
.pass-status{font-family:var(--font-mono);font-size:var(--fs-sm);white-space:nowrap}
.ps-done{color:var(--done-fg);background:var(--done-bg);padding:2px 7px;display:inline-block}
.ps-next{color:var(--accent);background:rgba(199,0,37,.08);padding:2px 7px;display:inline-block}
/* ── GANTT EDIT BUTTONS ── */
.gantt-edit-btn{background:none;border:none;cursor:pointer;font-size:var(--fs-lg);padding:1px 4px;color:#bbb;transition:color .15s;flex-shrink:0;line-height:1;opacity:.6}
.gantt-edit-btn:hover{color:#d4b860;opacity:1}
.gantt-phase-label-cell:hover .gantt-edit-btn,
.gantt-task-label-cell:hover .gantt-edit-btn{opacity:1}
/* ── STANDALONE GATE (larger diamond on phase row) ── */
.gantt-standalone-gate{position:absolute;top:50%;transform:translateY(-50%) translateX(-12px) rotate(45deg);width:24px;height:24px;border:3px solid var(--ph-color,#b06000);background:#fff;cursor:pointer;z-index:7;box-shadow:0 2px 6px rgba(0,0,0,.25);transition:all .18s}
.gantt-standalone-gate.met{background:var(--ph-color,#b06000)}
.gantt-standalone-gate:hover{transform:translateY(-50%) translateX(-12px) rotate(45deg) scale(1.2)}
/* ── TYPOGRAPHY: code and preformatted text keep a monospace face; everything else follows the type tokens in the first :root block ── */
code,pre{font-family:'Source Code Pro',monospace}
/* ── ROADMAP / OUTREACH EXTRA FILTERS ── */
.road-hidden-line{opacity:.75}
.road-hidden-line:hover{opacity:1;color:var(--accent)!important;background:rgba(0,0,0,.02)}
select.road-xsel{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;border:1px solid rgba(42,109,190,.4);background:none;color:var(--road-accent);padding:2px 6px;border-radius:99px;cursor:pointer;height:24px;max-width:130px;-webkit-appearance:auto}
.xdue-wrap{align-items:center;gap:4px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary)}
.xdue-wrap input{font-family:var(--font-mono);font-size:var(--fs-md);border:1px solid var(--separator);border-radius:6px;padding:2px 4px;background:var(--input-bg);color:var(--label-primary)}
.xdue-wrap input[type=number]{width:52px}
/* Item ID on note cards */
.iid{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.02em;color:var(--label-secondary);opacity:.75;cursor:copy;margin-left:auto;padding:0 2px;white-space:nowrap}
.iid:hover{opacity:1;color:var(--accent)}
/* ── KEYWORD & TYPE MANAGER ── */
.km-name{cursor:text;border-bottom:1px dotted transparent}
.km-name:hover{border-bottom-color:var(--label-secondary)}
.km-ct{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;box-sizing:border-box;border-radius:8px;background:var(--accent);color:#fff;font-size:var(--fs-xs);font-weight:600;letter-spacing:0;line-height:1;margin-left:3px}
.km-ct:empty{display:none}
/* Keyword and custom-type chips: name white on accent, count accent on white */
#kw-chips .kw-chip,#req-chips .kw-chip,#role-chips .kw-chip,#task-chips .kw-chip,#ct-chips .kw-chip:not(.km-builtin){background:var(--accent);border-color:var(--accent);color:#fff}
#kw-chips .kw-chip .km-ct,#req-chips .kw-chip .km-ct,#role-chips .kw-chip .km-ct,#task-chips .kw-chip .km-ct,#ct-chips .kw-chip:not(.km-builtin) .km-ct{background:#fff;color:var(--accent)}
#kw-chips .kw-chip .kw-chip-x,#req-chips .kw-chip .kw-chip-x,#role-chips .kw-chip .kw-chip-x,#task-chips .kw-chip .kw-chip-x,#ct-chips .kw-chip:not(.km-builtin) .kw-chip-x{color:rgba(255,255,255,.75)}
#kw-chips .kw-chip .kw-chip-x:hover,#req-chips .kw-chip .kw-chip-x:hover,#role-chips .kw-chip .kw-chip-x:hover,#task-chips .kw-chip .kw-chip-x:hover,#ct-chips .kw-chip:not(.km-builtin) .kw-chip-x:hover{color:#fff}
#kw-chips .km-name:hover,#req-chips .km-name:hover,#role-chips .km-name:hover,#task-chips .km-name:hover,#ct-chips .km-name:hover{border-bottom-color:rgba(255,255,255,.8)}
#kw-chips .km-inline,#req-chips .km-inline,#role-chips .km-inline,#task-chips .km-inline,#ct-chips .km-inline{border-color:#fff}
.km-inline{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;border:1px solid var(--accent);border-radius:4px;padding:1px 4px;width:120px;background:var(--input-bg);color:var(--label-primary);outline:none}
.km-modal{position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:3000;display:flex;align-items:center;justify-content:center}
.km-box{background:var(--dlg-bg);border-radius:var(--dlg-radius);width:min(620px,94vw);max-height:88vh;overflow-y:auto;padding:22px 24px;box-shadow:var(--dlg-shadow)}
.km-h{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.02em;text-transform:none;color:var(--label-secondary)}
.km-title{font-family:var(--font-serif);font-size:var(--fs-3xl);color:var(--label-primary);margin:6px 0 2px}
.km-sum{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary);margin-bottom:14px}
.km-opts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.km-opt{text-align:left;border:1px solid var(--dlg-hairline);border-radius:12px;padding:10px 12px;background:var(--card-bg);cursor:pointer}
.km-opt b{display:block;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.05em;text-transform:uppercase;color:var(--label-primary);margin-bottom:3px}
.km-opt span{font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.45;color:var(--label-secondary)}
.km-opt.on{border-color:var(--ios-blue);box-shadow:0 0 0 1px var(--ios-blue)}
.km-flow{margin-top:16px;padding-top:14px;border-top:1px solid var(--separator);font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.55;color:var(--label-primary)}
.km-flow select,.km-flow input[type=text]{font-family:var(--font-mono);font-size:var(--fs-base);padding:5px 8px;border:1px solid var(--separator);border-radius:6px;background:var(--input-bg);color:var(--label-primary);min-width:200px}
.km-warn{color:#b35c00}
.km-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:16px}
.km-foot button{font-family:var(--font-ui);font-size:15px;font-weight:500;letter-spacing:0;text-transform:none;border-radius:10px;padding:9px 18px;cursor:pointer;border:none;background:rgba(118,118,128,.12);color:var(--ios-blue)}
.km-foot button.go{background:var(--ios-blue);color:#fff;font-weight:600}
.km-foot button.go:disabled{opacity:.4;cursor:default}
@media(max-width:560px){.km-opts{grid-template-columns:1fr}}
/* ── DATA MANAGEMENT ── */
.dm-body{font-family:var(--font-mono);font-size:var(--fs-md);line-height:1.75;color:var(--label-primary)}
.dm-note{font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.55;color:var(--label-secondary);margin:10px 0 0}
.dm-btnrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.dm-btnrow .iabtn{height:34px}
.dm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-top:8px}
.dm-grid .inp-sel{width:100%;font-size:var(--fs-base)}
.dm-sub{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);margin-top:18px;padding-top:12px;border-top:1px solid var(--separator)}
.dm-quick{display:flex;gap:4px;margin-top:6px}
.dm-quick button{font-family:var(--font-mono);font-size:var(--fs-sm);border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);border-radius:4px;padding:2px 8px;cursor:pointer}
.dm-quick button:hover{border-color:var(--accent);color:var(--accent)}
.dm-bar{height:8px;border-radius:4px;background:var(--separator);overflow:hidden;margin:4px 0 2px;max-width:420px}
.dm-bar>div{height:100%;border-radius:4px}
.dm-row{display:flex;gap:10px;align-items:flex-start;padding:6px 0;border-bottom:1px solid var(--separator)}
.dm-row:last-child{border-bottom:none}
.dm-row-main{flex:1;min-width:0}
.dm-row-text{font-family:var(--font-serif);font-size:12.5px;line-height:1.45;color:var(--label-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dm-row-meta{font-size:var(--fs-sm);color:var(--label-secondary)}
.dm-row button{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);border-radius:4px;padding:3px 9px;cursor:pointer;flex-shrink:0}
.dm-row button:hover{border-color:#c00;color:#c00}
.dm-scroll{max-height:320px;overflow-y:auto;border:1px solid var(--separator);border-radius:6px;padding:0 10px;margin-top:6px}
.dm-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:8px}
.dm-link{background:none;border:none;color:var(--accent);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;text-transform:uppercase;cursor:pointer;padding:0}
/* Archive view in Notes */
.arch-head{padding:10px 32px 6px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary)}
.arch-head input{flex:1;min-width:180px;max-width:420px;font-family:var(--font-mono);font-size:var(--fs-base);border:1px solid var(--separator);border-radius:6px;padding:5px 9px;background:var(--input-bg);color:var(--label-primary);outline:none}
.arch-card{margin:6px 32px;padding:10px 14px;border:1px solid var(--separator);border-radius:8px;background:var(--card-bg);cursor:pointer}
.arch-card:hover{border-color:var(--label-secondary)}
.arch-meta{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.04em;color:var(--label-secondary);margin-bottom:4px}
.arch-text{font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.5;color:var(--label-primary);white-space:pre-wrap;word-break:break-word}
.arch-dlg{margin-top:8px;padding:6px 10px;border-left:3px solid var(--separator);font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.5;white-space:pre-wrap;word-break:break-word}
.arch-dlg b{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);font-weight:600}
/* ── ROADMAP OPEN FILTER ── */
.road-open-filter{display:flex;align-items:center;gap:8px;margin-left:16px}
.road-open-filter-btn{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);padding:0 12px;height:32px;cursor:pointer;transition:all .15s;border-radius:6px;box-shadow:0 1px 3px rgba(0,0,0,0.07)}
.road-open-filter-btn:hover{border-color:var(--label-primary);color:var(--label-primary)}
.road-open-filter-btn.active{background:#1a5a2a;color:#fff;border-color:#1a5a2a}
/* ── HUB INTERFACE TAG ── */
.tag-hubui{background:rgba(30,80,140,.12);color:#1e508c}
/* ── FOR DAVE TYPE ── */
.item.fordave:not(.done){background:var(--fordave-bg);border-left-color:var(--fordave-border)}
.fordave-badge{display:inline-flex;align-items:center;gap:3px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;background:var(--fordave-badge-bg);color:var(--fordave-badge-fg);border:1px solid var(--fordave-border)}
.dash-btn.act-amber{border-color:var(--fordave-border);background:rgba(212,160,32,0.18)}
.dash-btn.act-amber .dash-count{color:#d4a020}
.dash-btn.act-amber .dash-lbl{color:#d4a020}
/* ── GANTT HOVER TOOLTIP ── */
#gantt-tooltip{
  position:fixed;z-index:9999;pointer-events:none;
  background:var(--dlg-bg);color:var(--label-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  font-family:var(--font-ui);font-size:12px;line-height:1.4;
  padding:8px 12px;border-radius:12px;border:1px solid var(--dlg-hairline);
  box-shadow:var(--dlg-shadow);
  max-width:320px;white-space:normal;
  opacity:0;transition:opacity .12s;
}
#gantt-tooltip.visible{opacity:1}
@media (hover:none){[title]:not(input):not(textarea):not(select),[data-ttl]:not(input):not(textarea):not(select),[data-tip],[data-tip-name]{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}} /* long-press shows the tooltip, not the iOS callout */
.tt-name,#gantt-tooltip .tt-name{font-weight:600;font-size:13px;color:var(--label-primary);display:block}
.tt-date,#gantt-tooltip .tt-date{color:var(--label-ios2);font-size:12px;display:block;margin-top:2px}
.tt-range,#gantt-tooltip .tt-range{color:var(--label-secondary);font-size:12px;display:block;margin-top:1px}

/* ── URL / BOOKMARK FIELD ── */
.inp-url-row{display:flex;align-items:center;gap:6px;margin-top:5px}
.inp-url{flex:1;background:var(--input-bg);border:1px solid var(--separator);border-radius:5px;padding:5px 8px;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-primary);outline:none}
.inp-url:focus{border-color:var(--accent)}
.inp-url-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);white-space:nowrap}
.item-link-row{margin:4px 0 2px 0;display:flex;align-items:center;gap:6px}
.item-link-a{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--accent);text-decoration:none;word-break:break-all}
.item-link-a:hover{text-decoration:underline}
.item-link-plain{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary);font-style:italic}
.item-link-badge{font-size:var(--fs-sm);flex-shrink:0;opacity:.7}

/* ── SETTINGS PANEL ── */
.kw-chip{display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;background:var(--page-bg);border:1px solid var(--separator);border-radius:20px;padding:2px 9px 2px 9px;color:var(--label-primary);white-space:nowrap}
.kw-chip-x{cursor:pointer;color:var(--label-secondary);font-size:var(--fs-md);line-height:1;margin-left:2px;transition:color .1s}
.kw-chip-x:hover{color:var(--pri-color)}
.settings-section h3{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.12em;text-transform:uppercase;color:var(--gold);margin-bottom:12px;padding-bottom:6px;border-bottom:1px solid var(--rule)}
.settings-field{margin-bottom:12px}
.settings-lbl{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);display:block;margin-bottom:4px}
.settings-input{width:100%;background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;padding:9px 12px;font-family:var(--font-mono);font-size:var(--fs-base);color:var(--label-primary);outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;box-shadow:0 1px 3px rgba(0,0,0,0.06)}
.settings-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(199,0,37,0.08)}
.settings-input::placeholder{color:var(--label-secondary);font-style:italic}
.settings-preview{display:none;margin-top:6px;padding:7px 12px;background:var(--page-bg);border:1px solid var(--separator);border-radius:6px;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);word-break:break-all}
.settings-preview span{color:var(--accent)}
.settings-save-btn{background:var(--accent);color:#fff;border:none;border-radius:8px;padding:9px 20px;font-family:var(--font-mono);font-size:var(--fs-md);font-weight:600;cursor:pointer;letter-spacing:.06em;transition:background .15s,box-shadow .15s;box-shadow:0 2px 6px rgba(199,0,37,0.2)}
.settings-save-btn:hover{background:#a50020;box-shadow:0 3px 10px rgba(199,0,37,0.3)}
.settings-note{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);margin-top:6px;line-height:1.6}
.settings-card{background:var(--card-bg);border:1px solid var(--separator);border-radius:10px;padding:18px 20px;margin-top:12px;box-shadow:0 1px 4px rgba(0,0,0,0.06)}
.settings-card+.settings-card{margin-top:12px}
/* ── HELP SUB-TABS ── */
.help-stab{font-family:var(--font-mono);font-size:var(--fs-base);font-weight:500;letter-spacing:.05em;text-transform:uppercase;padding:8px 16px 8px;border:1px solid var(--fill-gray);border-bottom:none;background:var(--page-bg);color:var(--label-secondary);cursor:pointer;border-radius:6px 6px 0 0;transition:all .18s;white-space:nowrap;position:relative;top:1px;flex-shrink:0}
.help-stab:hover{color:var(--accent);background:#ffffff;border-color:var(--separator)}
.help-stab.active{color:#ffffff;background:var(--accent);border-color:var(--accent);border-bottom:2px solid #ffffff;font-weight:700;top:0}
.help-spanel{display:none;padding:0}
.help-spanel.active{display:block}
.settings-card-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:14px;display:block}
.device-guide{background:#222018;border:1px solid #3a3630;border-radius:6px;padding:14px 16px;margin-bottom:16px}
.device-guide h4{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:#c9a050;margin-bottom:10px}
.device-guide ul{list-style:none;padding:0;margin:0}
.device-guide li{font-family:var(--font-display);font-size:var(--fs-xl2);color:#c8bfa8;padding:4px 0;padding-left:14px;position:relative;line-height:1.5}
.device-guide li::before{content:'›';position:absolute;left:0;color:#706858}
.device-guide li strong{color:#e8dfc8}


/* ── UNIVERSAL SEARCH ── */

.search-results-panel{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:300;display:none;align-items:flex-start;justify-content:center;padding-top:80px}
.search-results-panel.open{display:flex}
.search-results-box{background:var(--dlg-bg);border-radius:var(--dlg-radius);width:min(680px,96vw);max-height:75vh;display:flex;flex-direction:column;box-shadow:var(--dlg-shadow);overflow:hidden}
.search-results-header{padding:12px 16px;border-bottom:1px solid var(--fill-gray);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:transparent}
.search-results-title{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.1em;text-transform:uppercase;color:#6e6e73}
.search-results-close{background:none;border:none;cursor:pointer;color:#6e6e73;font-size:var(--fs-4xl);line-height:1;padding:0 4px}
.search-results-close:hover{color:#000}
.sr-filter-row{display:flex;gap:6px;align-items:center;padding:8px 16px 8px;border-bottom:1px solid var(--fill-gray);flex-shrink:0;flex-wrap:wrap}
.sr-filter-btn{font-family:var(--font-ui);font-size:12px;font-weight:500;letter-spacing:0;text-transform:none;border:none;background:rgba(118,118,128,.12);color:var(--label-ios2);padding:5px 12px;border-radius:999px;cursor:pointer;transition:all .15s}
.sr-filter-btn:hover{background:rgba(118,118,128,.2)}
.sr-filter-btn.active{background:var(--ios-blue);color:#fff;font-weight:600}
.sr-filter-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary)}
.sr-tag-chips{display:flex;gap:4px;flex-wrap:wrap;align-items:center;margin-left:4px}
.sr-tag-chip{font-family:var(--font-mono);font-size:var(--fs-xs);padding:2px 7px;border-radius:10px;border:1px solid var(--separator);background:var(--page-bg);color:#636366;cursor:pointer;transition:all .12s;white-space:nowrap}
.sr-tag-chip.active{border-color:var(--accent);background:rgba(199,0,37,.08);color:var(--accent);font-weight:600}
.sr-tag-chip:hover{border-color:#888;color:#333}
.search-results-scroll{overflow-y:auto;flex:1;padding:4px 0}
.search-result-item{display:flex;align-items:flex-start;gap:10px;padding:10px 16px;cursor:pointer;border-bottom:1px solid #f0f0f5;transition:background .1s}
.search-result-item:hover{background:#f7f7fa}
.search-result-item:last-child{border-bottom:none}
.sr-source{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);width:72px;padding-top:2px;line-height:1.4}
.sr-snippet{font-family:var(--font-serif);font-size:var(--fs-md);color:var(--label-secondary);margin-top:3px;line-height:1.45;font-style:italic}
.sr-action-label{flex-shrink:0;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);opacity:0;transition:opacity .15s;padding-top:2px;white-space:nowrap;margin-right:4px}
.search-result-item:hover .sr-action-label{opacity:1}
.search-result-item.kbd-hi .sr-action-label{opacity:1}
.sr-source.src-roadmap{color:#2070C8}
.sr-source.src-notes{color:#d4a020}
.sr-source.src-passes{color:#1A9E78}
.sr-source.src-refs{color:#B03090}
.sr-source.src-other{color:var(--label-secondary)}
.sr-body{flex:1;min-width:0}
.sr-title{font-family:var(--font-display);font-size:var(--fs-2xl);color:#1c1c1e;line-height:1.3;margin-bottom:2px}
.sr-title mark{background:rgba(199,0,37,.12);color:var(--pri-color);border-radius:2px;padding:0 1px}
.sr-sub{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sr-arrow{flex-shrink:0;color:var(--separator);font-size:var(--fs-2xl);align-self:center}
.search-empty{padding:24px 16px;text-align:center;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-secondary)}


/* ── TAB NOTIFICATION BADGES ── */
.tab{position:relative}
.tab-nbadge{position:absolute;top:3px;right:4px;min-width:14px;height:14px;border-radius:7px;background:var(--tab-badge-bg);color:var(--tab-badge-fg);border:1px solid var(--tab-badge-border);font-family:var(--font-mono);font-size:var(--fs-2xs);font-weight:700;display:flex;align-items:center;justify-content:center;padding:0 3px;pointer-events:none;line-height:1;letter-spacing:.02em}
.tab-nbadge.zero{display:none}

/* ── FLOW TOGGLE (entry form) ── */
.flow-toggle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid var(--flow-on-bg);padding:0 11px;background:var(--flow-on-bg);color:var(--flow-on-fg);border-radius:20px;height:28px;transition:all .15s;font-weight:600;white-space:nowrap;flex-shrink:0}
.flow-toggle.off{border-color:var(--separator);background:var(--card-bg);color:var(--label-secondary);font-weight:400}
.flow-toggle:hover{opacity:.85}

/* ── REMINDER TOGGLE ── */
.rem-toggle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid var(--separator);padding:0 11px;background:var(--card-bg);color:var(--label-secondary);border-radius:20px;height:28px;transition:all .15s;white-space:nowrap;flex-shrink:0}
.rem-toggle.on{border-color:#b06000;background:#b06000;color:#fff7e0;font-weight:600}
.rem-toggle:hover{opacity:.85}
.rep-toggle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid var(--separator);padding:0 11px;background:var(--card-bg);color:var(--label-secondary);border-radius:20px;height:28px;transition:all .15s;white-space:nowrap;flex-shrink:0}
.rep-toggle.on{border-color:#1A6E9E;background:#1A6E9E;color:#e8f4fb;font-weight:600}
.rep-toggle:hover{opacity:.85}
.rep-config-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:6px 0 2px;border-top:1px solid var(--separator);margin-top:6px}
.rep-config-row label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);white-space:nowrap}
.rep-config-row select,.rep-config-row input[type=number],.rep-config-row input[type=date]{font-family:var(--font-mono);font-size:var(--fs-md);border:1px solid var(--separator);border-radius:4px;padding:3px 7px;background:var(--card-bg);color:var(--label-primary);outline:none}
.rep-config-row input[type=number]{width:58px}
.rem-due-row{display:flex;align-items:center;gap:8px;margin-top:6px;padding:7px 10px;background:var(--input-bg);border-radius:6px;border:1px solid var(--separator)}
.rem-due-row label{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.07em;text-transform:uppercase;color:var(--label-secondary);white-space:nowrap}

/* ── STATUS TOGGLE (Open/Deferred) ── */
.status-toggle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid var(--separator);padding:0 12px;background:var(--card-bg);color:var(--label-secondary);border-radius:20px;height:var(--ctrl-h);transition:all .15s;white-space:nowrap;flex-shrink:0}
.status-toggle.deferred{border-color:#b06000;background:rgba(176,96,0,.12);color:#7a4500;font-weight:600}
.status-toggle.open{border-color:#2a7a2a;background:rgba(42,122,42,.10);color:#1a5a1a;font-weight:600}

/* ── PRIORITY CYCLE BUTTON ── */
.pri-cycle{display:flex;align-items:center;gap:5px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border:1.5px solid var(--separator);padding:0 11px;background:var(--card-bg);color:var(--label-secondary);border-radius:20px;height:28px;transition:all .15s;white-space:nowrap;flex-shrink:0}
.pri-cycle.med{border-color:#b06000;background:rgba(176,96,0,.12);color:#7a4500;font-weight:600}
.pri-cycle.high{border-color:var(--pri-color);background:rgba(199,0,37,.12);color:#900020;font-weight:700}

/* ── ENTRY FORM REDESIGN ── */
.inp-section-divider{border:none;border-top:1px solid var(--separator);margin:10px 0 8px}
.inp-field-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.10em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:4px;display:block}
.inp-text-wrap{background:var(--input-bg);border:1px solid var(--separator);border-radius:6px;padding:9px 13px;margin-bottom:2px}
.inp-text-wrap textarea{width:100%;font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.5;color:var(--label-primary);background:transparent;border:none;resize:none;min-height:52px;max-height:160px;outline:none;overflow-y:auto;transition:max-height .2s ease}
.inp-text-wrap textarea.expanded{max-height:400px}
.inp-text-wrap textarea::placeholder{color:var(--label-secondary);font-style:italic}
.inp-text-show-more{display:none;font-size:var(--fs-sm);font-family:var(--font-mono);color:var(--accent);cursor:pointer;padding:2px 0;text-align:right;letter-spacing:.04em;opacity:.8}
.inp-text-show-more:hover{opacity:1}
.inp-url-block{background:var(--input-bg);border:1px solid var(--separator);border-radius:6px;padding:7px 13px;display:flex;align-items:center;gap:8px;margin-top:6px}
.inp-url-block input{flex:1;font-family:var(--font-mono);font-size:var(--fs-md);color:var(--label-primary);background:transparent;border:none;outline:none}
.inp-url-block input::placeholder{color:var(--label-secondary)}
.inp-url-block-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);white-space:nowrap;flex-shrink:0}
.inp-controls-row{display:flex;gap:7px;margin-top:9px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--separator);padding-top:9px}

/* ── DIALOGUE THREAD ── */
.item.flow-item:not(.done){background:#ddeeff;border-left-color:var(--forclaude-border)}
.item.flow-item:not(.done) .ihead{background:#ddeeff !important}
.item.flow-item:not(.done) .ihead:hover{background:#cce4ff !important}
.item.needs-response:not(.done){background:#fff3cc;border-left-color:var(--fordave-border)}
.item.needs-response:not(.done) .ihead{background:#fff3cc !important}
.item.needs-response:not(.done) .ihead:hover{background:#ffe9a0 !important}
.item.fordave:not(.done){background:#fff3cc;border-left-color:var(--fordave-border)}
.item.fordave:not(.done) .ihead{background:#fff3cc !important}
.item.fordave:not(.done) .ihead:hover{background:#ffe9a0 !important}
/* System dialogue entries (resurface alerts) */
.dl-entry.from-system{background:rgba(199,120,0,0.07);border-left:2px solid #C77800;margin-left:-2px}
.dl-entry.from-system .dl-from{color:#C77800}
.idlg-ct{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:600;letter-spacing:.04em;background:var(--separator);color:var(--label-secondary);padding:1px 5px;border-radius:8px;line-height:1.6;flex-shrink:0}
.item.flow-item:not(.done) .idlg-ct{background:rgba(32,112,200,0.18);color:#1a4a90}
.item.needs-response:not(.done) .idlg-ct,.item.fordave:not(.done) .idlg-ct{background:rgba(212,160,32,0.25);color:#7a5000}
.flow-badge.for-claude{background:var(--forclaude-badge-bg);color:var(--forclaude-badge-fg);border:1px solid var(--forclaude-border)}
.flow-badge.for-dave{background:var(--fordave-badge-bg);color:var(--fordave-badge-fg);border:1px solid var(--fordave-border)}
.dialogue-thread{padding:10px 14px;border-top:1px solid var(--separator);display:flex;flex-direction:column;gap:8px}
.dl-entry{border-radius:6px;padding:8px 12px;font-size:var(--fs-base);line-height:1.55}
.dl-entry.from-dave{background:var(--forclaude-badge-bg);border-left:3px solid var(--forclaude-border)}
.dl-entry.from-claude{background:var(--fordave-badge-bg);border-left:3px solid var(--fordave-border)}
.dl-entry.from-note{background:var(--card-bg);border-left:3px solid var(--separator);color:var(--label-secondary)}
.item.type-note:not(.done){background:var(--card-bg) !important;border-left-color:var(--separator) !important}
.dl-meta{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary);margin-bottom:3px;display:flex;gap:8px;align-items:center}
.dl-from{font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.dl-ts{color:var(--label-secondary)}
.dl-text{white-space:pre-wrap;word-break:break-word}
.dl-reply-row{padding:8px 14px;border-top:1px solid var(--separator)}
.dl-reply-ta{width:100%;font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.45;border:1px solid var(--separator);border-radius:5px;padding:7px 10px;background:var(--input-bg);resize:vertical;min-height:48px;outline:none}
.dl-reply-ta:focus{border-color:var(--forclaude-border)}
.dl-reply-actions{display:flex;gap:8px;margin-top:6px;align-items:center}
.dl-send-btn{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;background:var(--forclaude-border);color:#fff;border:none;border-radius:4px;padding:5px 14px;cursor:pointer;transition:background .15s}
.dl-send-btn:hover{background:#1a5aaa}
.dl-cancel-link{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);cursor:pointer;text-decoration:underline}
.dl-awaiting{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);font-style:italic;padding:4px 0}
.dl-actions{display:flex;gap:6px;flex-wrap:wrap;padding:8px 14px;border-top:1px solid var(--separator);align-items:center}
.icollapsed-pills{display:inline-flex;gap:5px;align-items:center;flex-wrap:wrap;margin-left:2px}
/* ── BATCH SELECT ── */
.batch-bar{display:none;align-items:center;gap:8px;padding:8px 12px;background:rgba(250,250,252,.94);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--dlg-hairline);font-family:var(--font-ui);font-size:var(--fs-base);flex-wrap:wrap;flex-shrink:0}
.batch-bar.active{display:flex}
.batch-ct{font-family:var(--font-ui);font-weight:600;font-size:13px;color:var(--label-primary);white-space:nowrap;margin-right:4px}
.batch-btn{--tone:var(--ios-blue);--tone-ink:var(--ios-blue-ink);padding:6px 14px;border-radius:999px;border:none;background:color-mix(in srgb,var(--tone) 14%,transparent);color:var(--tone-ink);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-ui);letter-spacing:0;text-transform:none;transition:background .12s}
.batch-btn:hover{background:color-mix(in srgb,var(--tone) 24%,transparent)}
.batch-btn:active{background:color-mix(in srgb,var(--tone) 32%,transparent)}
.batch-btn.bb-accept{--tone:var(--ios-green);--tone-ink:var(--ios-green-ink)}
.batch-btn.bb-defer{--tone:var(--ios-orange);--tone-ink:var(--ios-orange-ink)}
.batch-btn.bb-reply{--tone:var(--ios-blue);--tone-ink:var(--ios-blue-ink)}
.batch-btn.bb-done{--tone:#8E8E93;--tone-ink:var(--label-ios2)}
.batch-btn.bb-delete{--tone:var(--ios-red);--tone-ink:var(--ios-red-ink)}
.batch-btn.bb-cancel{--tone:#8E8E93;--tone-ink:var(--label-secondary);margin-left:auto}
.item-cb{display:none;width:16px;height:16px;margin:0 2px 0 0;cursor:pointer;accent-color:var(--accent);flex-shrink:0}
.batch-mode .item-cb{display:inline-block}
.batch-mode .ihead{cursor:default}
.batch-mode .item.batch-sel{outline:2px solid var(--ios-blue);outline-offset:-2px;background:rgba(0,122,255,.07) !important}
.select-mode-btn{padding:0 18px;border-radius:999px;border:none;background:rgba(0,122,255,.12);color:var(--ios-blue-ink);font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;white-space:nowrap;cursor:pointer;font-family:var(--font-ui);transition:background .12s}
.select-mode-btn.active{background:var(--ios-blue);color:#fff}
.select-mode-btn:hover{background:rgba(0,122,255,.2)}
.select-mode-btn.active:hover{background:var(--ios-blue);filter:brightness(.94)}
.dl-act-pill{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.06em;text-transform:uppercase;padding:4px 13px;border-radius:20px;cursor:pointer;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);transition:all .15s;white-space:nowrap}
.dl-act-pill:hover{border-color:var(--accent);color:var(--accent)}
.dl-act-pill.pill-accept{border-color:var(--done-fg);color:var(--done-fg);background:var(--done-bg)}
.dl-act-pill.pill-accept:hover{background:#d4ead4}
.dl-act-pill.pill-defer{border-color:var(--hold-fg);color:var(--hold-fg);background:var(--hold-bg)}
.dl-act-pill.pill-defer:hover{background:#fde8cc}
.dl-act-pill.pill-else{border-color:var(--accent);color:var(--accent)}
.dl-act-pill-inline{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;padding:3px 8px;border-radius:20px;cursor:pointer;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);transition:all .15s;white-space:nowrap;flex-shrink:0}
.dl-act-pill-inline.pill-accept{border-color:var(--done-fg);color:var(--done-fg);background:var(--done-bg)}
.dl-act-pill-inline.pill-accept:hover{background:#d4ead4}
.dl-act-pill-inline.pill-defer{border-color:var(--hold-fg);color:var(--hold-fg);background:var(--hold-bg)}
.dl-act-pill-inline.pill-defer:hover{background:#fde8cc}
.dl-act-pill-inline.pill-else{border-color:var(--accent);color:var(--accent)}
.dl-act-pill-inline.pill-else:hover{background:rgba(199,0,37,0.08)}
.dl-compose{padding:6px 14px 10px;display:none}
.dl-compose.open{display:block}
.dl-compose-ta{width:100%;font-family:var(--font-serif);font-size:var(--fs-base);line-height:1.45;border:1px solid var(--forclaude-border);border-radius:5px;padding:7px 10px;background:var(--input-bg);resize:none;min-height:44px;outline:none;box-sizing:border-box}
.dl-compose-row{display:flex;gap:8px;margin-top:5px;align-items:center}

/* ── MOVE-TO-ROADMAP SLIDE PANEL ── */
.mtr-overlay{display:none;position:fixed;inset:0;z-index:200;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur)}
.mtr-overlay.open{display:block}
.mtr-panel{position:fixed;top:0;right:-420px;width:400px;height:100vh;background:var(--dlg-bg);border-radius:var(--dlg-radius) 0 0 var(--dlg-radius);z-index:201;overflow-y:auto;transition:right .22s ease;box-shadow:var(--dlg-shadow);display:flex;flex-direction:column}
.mtr-panel.open{right:0}
.mtr-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 12px;border-bottom:1px solid var(--dlg-hairline);flex-shrink:0}
.mtr-title{font-family:var(--font-ui);font-size:17px;letter-spacing:0;text-transform:none;color:var(--label-primary);font-weight:600}
.mtr-close{background:rgba(118,118,128,.16);border:none;font-size:18px;cursor:pointer;color:var(--label-secondary);width:26px;height:26px;border-radius:50%;padding:0;line-height:1;display:flex;align-items:center;justify-content:center}
.mtr-close:hover{background:rgba(118,118,128,.28)}
.mtr-body{padding:18px;flex:1;display:flex;flex-direction:column;gap:14px}
.mtr-field label{display:block;font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--label-secondary);margin-bottom:5px}
.mtr-field input,.mtr-field select,.mtr-field textarea{width:100%;border:1px solid transparent;border-radius:10px;padding:8px 11px;font-family:var(--font-ui);font-size:14px;background:rgba(118,118,128,.12);color:var(--label-primary);outline:none}
.mtr-field input:focus,.mtr-field select:focus,.mtr-field textarea:focus{border-color:var(--ios-blue);background:var(--card-bg)}
.mtr-type-row{display:flex;gap:8px}
.mtr-type-btn{flex:1;font-family:var(--font-ui);font-size:13px;font-weight:500;letter-spacing:0;text-transform:none;border:none;border-radius:999px;padding:8px 4px;cursor:pointer;background:rgba(118,118,128,.12);color:var(--label-ios2);transition:all .15s;text-align:center}
.mtr-type-btn.active{background:var(--ios-blue);color:#fff;font-weight:600}
.mtr-actions{display:flex;gap:10px;padding:16px 18px;border-top:1px solid var(--dlg-hairline);flex-shrink:0}
.mtr-save-btn{flex:1;background:var(--ios-blue);color:#fff;border:none;border-radius:12px;padding:11px 0;font-family:var(--font-ui);font-size:15px;letter-spacing:0;text-transform:none;cursor:pointer;font-weight:600;transition:filter .15s}
.mtr-save-btn:hover{filter:brightness(.92)}
.mtr-cancel-btn{background:rgba(118,118,128,.12);border:none;border-radius:12px;padding:11px 18px;font-family:var(--font-ui);font-size:15px;letter-spacing:0;text-transform:none;cursor:pointer;color:var(--ios-blue-ink);font-weight:500;transition:background .15s}
.mtr-cancel-btn:hover{background:rgba(118,118,128,.2)}
.mtr-source-preview{background:rgba(118,118,128,.12);border-radius:10px;padding:9px 12px;font-family:var(--font-ui);font-size:13px;color:var(--label-ios2);line-height:1.45;font-style:normal;border:none}


/* Roadmap type pill */
.type-pill.roadmap{background:rgba(30,120,80,0.12);color:#1a6040;border:1px solid rgba(30,120,80,0.25);}
/* Thread overlay dialogue entries */
.tov-entry{border-radius:8px;padding:12px 14px;line-height:1.6}
.tov-entry.from-dave{background:#fffbf0;border-left:3px solid #d4a020}
.tov-entry.from-claude{background:#f0f4ff;border-left:3px solid #4060c8}
.tov-entry.from-note{background:var(--card-bg);border-left:3px solid var(--separator)}
.tov-entry.tov-original{border-left-width:4px;opacity:.9}
.tov-meta{display:flex;gap:10px;align-items:center;margin-bottom:6px}
.tov-from{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.08em;text-transform:uppercase;font-weight:600}
.tov-from.dave{color:#7a5a00}
.tov-from.claude{color:#2040a0}
.tov-from.note{color:var(--label-secondary)}
.tov-mode-btn{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.07em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);padding:4px 12px;border-radius:20px;cursor:pointer;transition:all .15s}
.tov-mode-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.tov-ts{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary)}
.tov-text{font-family:var(--font-serif);font-size:var(--fs-xl);color:var(--label-primary);white-space:pre-wrap}
.tov-text.collapsed{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.tov-more-btn{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:none;border:none;cursor:pointer;padding:4px 0 0;display:block}
/* Roadmap notes view */
.rm-phase-header{padding:10px 14px 6px;background:rgba(255,255,255,0.92);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.10em;text-transform:uppercase;font-weight:700;border-left:4px solid var(--accent);margin:8px 0 2px;background:var(--input-bg);border-radius:0 6px 6px 0}
.rm-item-row{display:flex;align-items:center;gap:10px;padding:7px 14px 7px 22px;border-bottom:1px solid var(--separator);background:rgba(255,255,255,0.88);font-family:var(--font-serif);font-size:var(--fs-lg);color:var(--label-primary)}
.rm-item-row.is-gate{font-style:italic;color:var(--label-secondary)}
.rm-item-row.done{text-decoration:line-through;opacity:.5}
.rm-kind-badge{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;padding:2px 6px;border-radius:3px;flex-shrink:0}
.rm-kind-badge.phase{background:rgba(199,0,37,.1);color:var(--pri-color)}
.rm-kind-badge.step{background:rgba(30,100,200,.08);color:#1a50b0}
.rm-kind-badge.gate{background:rgba(100,50,180,.08);color:#5030a0}

/* Roadmap detail panel */
.rm-detail-panel{background:var(--input-bg);border:1px solid var(--separator);border-top:none;border-radius:0 0 6px 6px;padding:10px 14px 10px;margin:0 0 6px 0}
.rm-detail-meta{margin-bottom:8px;display:flex;flex-direction:column;gap:3px}
.rm-detail-meta-row{display:flex;gap:10px;align-items:baseline;font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-primary)}
.rm-detail-lbl{color:var(--label-secondary);letter-spacing:.06em;text-transform:uppercase;flex-shrink:0;width:70px}
.rm-detail-section-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.10em;text-transform:uppercase;color:var(--label-secondary);margin:8px 0 3px}
.rm-detail-note{font-family:var(--font-serif);font-size:var(--fs-lg);color:var(--label-primary);line-height:1.55;margin-bottom:4px;white-space:pre-wrap}
.rm-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px;padding-top:8px;border-top:1px solid var(--separator)}
.rm-phase-header.done{text-decoration:line-through;opacity:.6}
.rm-item-row{cursor:pointer}
.rm-item-row:hover{background:var(--input-bg)}
.rm-phase-header:hover{opacity:.88}

/* ── HELP REDESIGN ── */
.help-layout{display:flex;height:100%;overflow:hidden}
.help-sidebar{width:160px;flex-shrink:0;background:var(--card-bg);border-right:1px solid var(--separator);padding:16px 10px;display:flex;flex-direction:column;gap:3px;overflow-y:auto}
.help-sidebar-label{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:8px;padding:0 8px}
.help-sidebar-sep{height:1px;background:var(--separator);margin:8px 0}
.help-nav{background:none;border:none;border-radius:7px;padding:8px 10px;font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.04em;color:var(--label-primary);cursor:pointer;text-align:left;width:100%;transition:background .15s}
.help-nav:hover{background:var(--input-bg)}
.help-nav.active{background:var(--accent);color:#fff;font-weight:600}
.help-content{flex:1;overflow-y:auto;padding:24px 28px}
.help-spanel{display:none}
.help-spanel.active{display:block}
.help-h2{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--label-primary);margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid var(--separator)}
.help-h3{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.12em;text-transform:uppercase;color:var(--label-secondary);margin:24px 0 8px;padding-bottom:6px;border-bottom:1px solid var(--separator)}
.help-shortcut-table{width:100%;border-collapse:collapse;margin-bottom:8px;font-size:var(--fs-lg)}
.help-shortcut-table tr{border-bottom:1px solid var(--separator)}
.help-shortcut-table td{padding:8px 10px;vertical-align:middle;color:var(--label-primary);font-family:var(--font-serif)}
.help-sc-key{font-family:var(--font-mono);font-size:var(--fs-md);background:var(--page-bg);border:1px solid var(--separator);border-radius:5px;padding:3px 8px;white-space:nowrap;width:230px;color:var(--label-primary)}
.help-p{font-family:var(--font-display);font-size:var(--fs-xl2);color:var(--label-primary);line-height:1.65;margin-bottom:10px}
.help-ul{list-style:none;padding:0;margin:0 0 10px}
.help-ul li{font-family:var(--font-display);font-size:var(--fs-xl2);color:var(--label-primary);padding:5px 0 5px 14px;border-bottom:1px solid var(--separator);position:relative;line-height:1.5}
.help-ul li:last-child{border-bottom:none}
.help-ul li::before{content:"›";position:absolute;left:0;color:var(--label-secondary)}
/* Function grid */
.help-fn-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin:12px 0 20px}
.help-fn-card{background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;padding:14px 16px;cursor:pointer;transition:box-shadow .15s,transform .1s}
.help-fn-card:hover{box-shadow:0 3px 12px rgba(0,0,0,0.12);transform:translateY(-1px)}
.help-fn-name{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:600;margin-bottom:6px}
.help-fn-desc{font-family:var(--font-display);font-size:var(--fs-lg);color:var(--label-primary);line-height:1.55}
/* Device list */
.help-device-list{display:flex;flex-direction:column;gap:6px;margin:10px 0}
.help-device-row{display:flex;align-items:flex-start;gap:12px;font-family:var(--font-display);font-size:var(--fs-xl);color:var(--label-primary);padding:8px 12px;background:var(--card-bg);border:1px solid var(--separator);border-radius:6px;line-height:1.5}
.help-device-icon{flex-shrink:0;font-size:var(--fs-2xl);width:24px;text-align:center}
/* Info icon button */
.info-btn{background:none;border:none;cursor:pointer;padding:0 14px;display:flex;align-items:center;justify-content:center;color:var(--label-secondary);transition:color .15s;flex-shrink:0;font-size:var(--fs-3xl);line-height:1;align-self:center;letter-spacing:0}
.info-btn:hover{color:var(--accent)}
/* Mobile: sidebar collapses to top strip */
@media(max-width:600px){
  .help-layout{flex-direction:column}
  .help-sidebar{width:100%;flex-direction:row;flex-wrap:wrap;padding:8px;gap:4px;border-right:none;border-bottom:1px solid var(--separator)}
  .help-sidebar-label,.help-sidebar-sep{display:none}
  .help-nav{padding:5px 10px;font-size:var(--fs-sm);flex-shrink:0}
  .help-content{padding:16px}
}

/* ── GMAIL LEADS PANEL ── */
/* ── VIEWPORT SCROLL FIX ── */
/* Non-notes panels: allow their content to scroll within the panel */
/* panel-refs/outreach/help/settings scroll handled by inner containers */
#panel-passes.active{overflow-y:auto}
#panel-passes .passes-wrap{min-height:100%}
.rf-section{display:block}
.help-spanel{overflow-y:auto}
/* Roadmap panel: overflow hidden (gantt manages its own scroll) */
#panel-roadmap{overflow:hidden}
/* Inner panel content scroll */
/* rf-content already has overflow-y:auto — no override needed for panel-refs */
/* Outreach and Help/Settings panels: their inner layouts scroll */
.ot-wrap{overflow-y:auto;min-height:0}
#panel-help .help-content{overflow-y:auto;min-height:0}
#panel-settings .help-content{overflow-y:auto;min-height:0}
/* Style & Chapter Map panel: needs overflow to scroll two-column grid */
#panel-style{overflow-y:auto}
/* Section bars in notes panel: flex-shrink:0 */
.section-bar{flex-shrink:0}


/* Retired passes */
.pass-retired-section{margin-top:14px;border-top:1px dashed var(--separator);padding-top:10px}
.pass-retired-toggle{font-size:var(--fs-md);color:var(--label-secondary);cursor:pointer;user-select:none;display:flex;align-items:center;gap:6px;margin-bottom:8px}
.pass-retired-toggle::before{content:'▶';font-size:var(--fs-xs);transition:transform 0.2s}
.pass-retired-toggle.open::before{transform:rotate(90deg)}
.pass-retired-body{display:none}
.pass-retired-body.open{display:block}
.pass-retired-row{display:flex;align-items:baseline;gap:10px;padding:5px 0;opacity:0.55}
.pass-retired-label{font-size:var(--fs-base);font-weight:600;color:var(--label-secondary);min-width:120px;text-decoration:line-through;text-decoration-color:var(--label-secondary)}
.pass-retired-badge{font-size:var(--fs-sm);background:var(--page-bg);color:var(--label-secondary);border:1px solid var(--separator);border-radius:4px;padding:1px 6px;white-space:nowrap}
.pass-retired-note{font-size:var(--fs-md);color:var(--label-secondary);font-style:italic}
/* Active pass green border */
.pass-table tbody tr{border-left:3px solid transparent}
.pass-table tbody tr.pass-active{border-left:3px solid #34C759}


/* ── Multi-link block (itemUrls) ── */
.item-links-block{margin:8px 0 4px 0;padding-top:6px;border-top:1px solid var(--separator)}
.item-links-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:2px}
.item-link-entry{margin:3px 0 7px 0}
.item-link-note{margin:1px 0 0 22px;font-size:var(--fs-md);line-height:1.4;color:var(--label-secondary);white-space:pre-wrap;overflow-wrap:anywhere}
.links-ed{display:flex;flex-direction:column;gap:4px;align-items:flex-start;width:100%}
.links-ed-rows{display:flex;flex-direction:column;gap:5px;width:100%}
.links-ed-row{display:flex;gap:6px;align-items:flex-start;width:100%}
.links-ed-url,.links-ed-note{box-sizing:border-box;border:1px solid var(--separator);border-radius:4px;background:var(--input-bg);color:var(--label-primary);padding:5px 8px;font-size:var(--fs-md);outline:none;min-width:0}
.links-ed-url{flex:1.3;font-family:var(--font-mono)}
.links-ed-note{flex:1.7;font-family:var(--font-serif);resize:vertical;min-height:30px;line-height:1.4}
.links-ed-rm{flex-shrink:0;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);border-radius:4px;width:28px;height:30px;cursor:pointer;font-size:var(--fs-lg);line-height:1}
.links-ed-rm:hover{color:#c00;border-color:#c00}
@media (max-width:640px){.links-ed-row{flex-wrap:wrap}.links-ed-url,.links-ed-note{flex:1 1 100%}}

/* Links at the top of the full-screen note body: visible on open, capped so long lists scroll inside the block */
#thread-overlay-body > .item-links-block{margin:0 0 10px 0;padding:0 0 8px 0;border-top:none;border-bottom:1px solid var(--separator);max-height:34vh;overflow-y:auto;flex:0 0 auto}

/* ── Links as part of the note (v2) ── */
.item-link-entry{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:10px;align-items:start;margin:4px 0 8px}
.item-link-main .item-link-row{margin:0}
.item-link-a{font-family:var(--font-serif);font-size:var(--fs-xl);word-break:normal;overflow-wrap:anywhere;line-height:1.4}
#tov-links-slot .item-link-a{font-size:var(--fs-xl2)}
.item-link-note-ed{box-sizing:border-box;width:100%;border:1px solid var(--separator);border-radius:5px;background:var(--input-bg);color:var(--label-primary);font-family:var(--font-serif);font-size:var(--fs-xl);line-height:1.4;padding:5px 8px;resize:vertical;min-height:30px;outline:none;field-sizing:content}
#tov-links-slot .item-link-note-ed{font-size:var(--fs-xl2)}
.item-link-note-ed:focus{border-color:var(--accent)}
.item-link-note-ed::placeholder{color:var(--label-secondary);opacity:.65}
@media (max-width:640px){.item-link-entry{grid-template-columns:1fr}}
.tov-note-card{background:var(--card-bg);border-bottom:1px solid var(--separator);padding:12px 18px 14px;flex-shrink:0}
.tov-note-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.tov-note-edit{margin-left:6px;font-family:var(--font-mono);font-size:var(--fs-2xs);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--separator);background:none;color:var(--label-secondary);padding:1px 8px;border-radius:3px;cursor:pointer}
.tov-note-text{font-family:var(--font-serif);font-size:var(--fs-xl2);color:var(--label-primary);line-height:1.5;white-space:pre-wrap;word-break:break-word;max-height:40vh;overflow-y:auto}
#tov-links-slot .item-links-block{margin:10px 0 0 0;padding-top:8px;border-top:1px solid var(--separator);border-bottom:none;max-height:none}
#tov-links-slot .item-links-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:4px}
#tov-links-slot .links-ed{margin-top:10px;padding-top:8px;border-top:1px solid var(--separator)}

/* ── Calm tiles (Settings toggle; per device) ── */
body.calm-tiles .item:not(.zz):not(.zz):not(.zz),
body.calm-tiles .item.pri:not(.done):not(.hold),
body.calm-tiles .item.fordave:not(.done),
body.calm-tiles .item.needs-response:not(.done),
body.calm-tiles .item.flow-item:not(.done),
body.calm-tiles .item.hold,body.calm-tiles .item.done{background:var(--card-bg) !important;border-left:3px solid transparent !important}
body.calm-tiles .item:not(.zz):not(.zz):not(.zz) .ihead{background:transparent !important}
body.calm-tiles .item:not(.zz):not(.zz):not(.zz) .ihead:hover{background:rgba(0,0,0,.025) !important}
body.calm-tiles .item.hold:not(.zz):not(.zz):not(.zz),body.calm-tiles .item.done:not(.zz):not(.zz):not(.zz){border-left-color:var(--separator) !important}
body.calm-tiles .item.fordave:not(.done):not(.zz):not(.zz):not(.zz),body.calm-tiles .item.needs-response:not(.done):not(.zz):not(.zz):not(.zz){border-left-color:var(--fordave-border) !important}
body.calm-tiles .item.flow-item:not(.done):not(.zz):not(.zz):not(.zz){border-left-color:var(--forclaude-border) !important}

body.calm-tiles .item.done{opacity:.72}
body.calm-tiles .istar:not(.on),body.calm-tiles .imem:not(.on){opacity:0;transition:opacity .15s}
body.calm-tiles .item:hover .istar:not(.on),body.calm-tiles .item:hover .imem:not(.on){opacity:.4}
body.calm-tiles .item:not(.zz):not(.zz):not(.zz) .idlg-ct{background:rgba(0,0,0,.06);color:var(--label-secondary)}

/* ── Link rows v3: fixed-width address column, comment gets the rest ── */
.item-link-entry{grid-template-columns:clamp(150px,22%,240px) minmax(0,1fr)}
.item-link-main{position:relative;min-height:1.7em;min-width:0}
.item-link-main .item-link-row{min-width:0}
.item-link-main .item-link-a{display:block;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:normal}
.item-link-main:hover .item-link-row,.item-link-main:focus-within .item-link-row{position:absolute;left:-4px;top:-2px;z-index:8;background:var(--card-bg);box-shadow:0 2px 12px rgba(0,0,0,.2);border-radius:5px;padding:2px 10px 2px 4px;max-width:min(92vw,720px)}
.item-link-main:hover .item-link-a,.item-link-main:focus-within .item-link-a{overflow:visible;text-overflow:clip}
@media (max-width:640px){.item-link-entry{grid-template-columns:1fr}.item-link-main:hover .item-link-row{position:static;box-shadow:none;padding:0}}

/* ── Tile icons now sit left of the text, in fixed slots so titles stay aligned ── */
.imeta-left{display:flex;align-items:center;gap:3px;flex-shrink:0;align-self:flex-start;margin-top:2px;min-height:18px}
.imeta-left > *{display:inline-flex;align-items:center;justify-content:center;flex:0 0 18px;width:18px}
.imeta-left > .idlg-ct{flex-basis:22px;width:22px;box-sizing:border-box;padding:1px 0}
.imeta-left > .is-empty{visibility:hidden}
@media (max-width:600px){.imeta-left{gap:1px}.imeta-left > *{flex-basis:16px;width:16px}.imeta-left > .idlg-ct{flex-basis:20px;width:20px}}

/* ── Tile rows v4: title, note, keywords, pills; id under the dates ── */
.itext-l3{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:5px}
.itext-l3:empty,.itext-l4:empty{display:none}
.itext-l4{margin-top:6px}
.itext-l4 .icollapsed-pills{margin-left:0}
.iright .iid{margin:3px 2px 0 0;text-align:right;align-self:flex-end}
/* Batch mode: the done box doubles as the selection box */
.batch-mode .icb{border-color:var(--ios-blue);border-radius:50%}
.batch-mode .item.batch-sel .icb{background:var(--ios-blue);border-color:var(--ios-blue);color:#fff}
.batch-mode .item.batch-sel .icb:empty::after{content:"\2713";font-size:11px;line-height:1}
.item-cb{display:none !important}
/* Project Notes key */
.section-bar-key{margin-left:6px;font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-secondary);padding:1px 9px;border-radius:10px;cursor:pointer}
.section-bar-key.on,.section-bar-key:hover{border-color:var(--accent);color:var(--accent)}
.notes-legend{background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;padding:12px 16px;margin:6px 0 8px}
.lg-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 28px}
.lg-head{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.1em;text-transform:uppercase;color:var(--label-secondary);margin-bottom:6px}
.lg-row{display:flex;gap:10px;align-items:flex-start;margin:0 0 6px}
.lg-ico{flex:0 0 46px;display:flex;justify-content:center;align-items:center;min-height:20px}
.lg-txt{font-family:var(--font-serif);font-size:var(--fs-lg);line-height:1.4;color:var(--label-primary)}
.lg-edge{display:inline-block;width:0;height:18px;border-left:3px solid}
.lg-red{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--pri-color);font-weight:600}
.lg-box{display:inline-flex;width:15px;height:15px;margin:0}
.lg-line{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);border:1px solid var(--separator);border-radius:50%;width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center}
.lg-pill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;border:1px solid var(--separator);border-radius:12px;padding:2px 8px;white-space:nowrap}
.lg-idtxt{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}

.section-bar-key .key-chev{font-size:1.05em;margin-left:3px;line-height:1}
.section-bar-key{padding:2px 10px}

/* Reference deck: a chosen item closes the menu even while the pointer is still over it */
.deck-group.suppress .deck-flyout{display:none !important}
.deck-group.suppress:hover .deck-trigger{background:inherit}

/* ── ONE THEME FOR EVERY TAB (v-theme) ──
   Header, status bar, Update Claude button, and Roadmap toolbars share these values. Change them here only. */
:root{--hd-top:#1768b3;--hd-bottom:#0f5499;--bar-bg:#0c4580;--bar-line:rgba(255,255,255,.24);--bar-ink:rgba(255,255,255,.92);--bar-ink-soft:rgba(255,255,255,.72);--bar-chip:rgba(255,255,255,.88);--bar-chip-act:#ffffff;--bar-chip-ink:#1c1c1e}
body[class*="tab-"]{background-image:none !important;background-color:var(--page-bg) !important}
.hd{background:linear-gradient(180deg,var(--hd-top) 0%,var(--hd-bottom) 100%) !important}
.hd::after{background:none !important}
.filter-row{background:var(--bar-bg) !important}
.tab-action-prime{background:var(--bar-bg);border-color:var(--bar-bg)}
.tab-action-prime:hover{background:#0a3a6e;border-color:#0a3a6e}
/* Roadmap toolbars in the same family */
.gantt-ctrl-bar,.gantt-toolbar,#gantt-scale-bar{background:var(--bar-bg) !important;border-bottom:1px solid var(--bar-line) !important}
.gantt-ctrl-bar .gpill,.gantt-toolbar .gpill{background:var(--bar-chip);color:var(--bar-chip-ink);border-color:transparent;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.gantt-ctrl-bar .gpill:hover,.gantt-toolbar .gpill:hover{background:#fff;border-color:rgba(255,255,255,.7)}
.gantt-ctrl-bar .gpill.active,.gantt-toolbar .gpill.active{background:var(--bar-chip-act);color:var(--pri-color);border-color:var(--pri-color);font-weight:600}
.gantt-ctrl-bar .gpill.active-solid,.gantt-toolbar .gpill.active-solid{background:var(--bar-chip-act);color:var(--bar-bg);border-color:#fff;font-weight:600}
.gantt-ctrl-bar .gpill-sep,.gantt-toolbar .gpill-sep,.gantt-toolbar .gantt-toolbar-sep{background:var(--bar-line)}
.gantt-ctrl-bar select,.gantt-toolbar select,.gantt-ctrl-bar .road-xsel{background:var(--bar-chip) !important;color:var(--bar-chip-ink) !important;border:1px solid transparent !important;border-radius:var(--pill-r);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.gantt-toolbar input,.gantt-ctrl-bar input{background:var(--bar-chip) !important;color:var(--bar-chip-ink) !important;border:1px solid transparent !important;border-radius:var(--pill-r)}
.gantt-toolbar input::placeholder,.gantt-ctrl-bar input::placeholder{color:#6b6b73}
.gantt-toolbar-title,#gantt-summary-lbl,.gantt-ctrl-bar .gantt-toolbar-title{color:var(--bar-ink-soft) !important}

/* ── Update Claude tab and page ── */
.upd-wrap{padding:22px 32px 40px;max-width:820px;overflow-y:auto}
.upd-status{background:var(--card-bg);border:1px solid var(--separator);border-radius:8px;padding:14px 16px;margin:6px 0 20px}
.upd-status-main{font-family:var(--font-serif);font-size:var(--fs-xl2);line-height:1.5;color:var(--label-primary);margin-bottom:10px}
.upd-status-main.bad{color:#c00}
.upd-status-btns{display:flex;gap:8px;flex-wrap:wrap}
.upd-size{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.05em;color:var(--label-secondary);margin-top:10px}
.upd-h{font-family:var(--font-display,var(--font-serif));font-size:var(--fs-xl2);margin:22px 0 8px;padding-bottom:4px;border-bottom:1px solid var(--separator)}
.upd-steps,.upd-list{font-family:var(--font-serif);font-size:var(--fs-xl);line-height:1.6;color:var(--label-primary);margin:8px 0 0 22px;padding:0}
.upd-steps li,.upd-list li{margin:0 0 8px}
/* header title: 20 percent larger and brighter */
.hd-title{font-size:calc(var(--fs-xs) * 1.2) !important;color:rgba(255,255,255,.96) !important;text-shadow:0 1px 4px rgba(0,0,0,.35)}

/* An active tab keeps its blue and white print while the pointer is still over it after a click */
.tab.active:hover{background:var(--accent) !important;color:#ffffff !important;border-color:var(--accent) !important}

/* Tile chevron is a real control now: expands or collapses the tile in place */
.item .chev{cursor:pointer;padding:6px 6px 6px 10px;margin:-6px -6px 0 0;border-radius:6px}
.item .chev:hover{color:var(--accent);background:rgba(0,0,0,.04)}

.upd-times{font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:.04em;color:var(--label-secondary);margin-top:6px;line-height:1.7}
.upd-times strong{color:var(--label-primary);font-weight:600}
.upd-wait{font-family:var(--font-serif);font-size:var(--fs-lg);letter-spacing:0;color:var(--label-primary);margin-top:4px}

/* ── iOS POP-UP SYSTEM ──
   Shared dialog, sheet, toast and banner. Tone sets one color per message:
   info/confirm = blue, success = green, attention = orange, destructive = red.
   Color goes on the icon, the title accent and the primary button, never the whole surface. */
.hub-dlg-overlay{position:fixed;inset:0;background:var(--dlg-backdrop);-webkit-backdrop-filter:var(--dlg-blur);backdrop-filter:var(--dlg-blur);z-index:var(--z-dlg);display:flex;align-items:center;justify-content:center;padding:16px;animation:hubDlgFade .16s ease-out}
.hub-dlg{--tone:var(--ios-blue);width:min(var(--dlg-w,400px),100%);max-height:88vh;display:flex;flex-direction:column;background:var(--dlg-bg);border-radius:var(--dlg-radius);box-shadow:var(--dlg-shadow);overflow:hidden;font-family:var(--font-ui);color:var(--label-primary);animation:hubDlgPop .18s ease-out}
.hub-dlg.tone-info{--tone:var(--ios-blue)}
.hub-dlg.tone-ok{--tone:var(--ios-green)}
.hub-dlg.tone-attn{--tone:var(--ios-orange)}
.hub-dlg.tone-danger{--tone:var(--ios-red)}
.hub-dlg-body{padding:22px 22px 18px;overflow-y:auto;text-align:center}
.hub-dlg-icon{font-size:28px;line-height:1;margin-bottom:10px;color:var(--tone)}
.hub-dlg-title{font-size:17px;font-weight:600;line-height:1.3;margin:0 0 6px;color:var(--label-primary)}
.hub-dlg.tone-attn .hub-dlg-title{color:var(--ios-orange-ink)}
.hub-dlg.tone-danger .hub-dlg-title{color:var(--ios-red-ink)}
.hub-dlg-msg{font-size:13px;line-height:1.45;margin:0 0 8px;color:var(--label-ios2)}
.hub-dlg-msg:last-child{margin-bottom:0}
.hub-dlg-msg strong{font-weight:600;color:var(--label-primary)}
.hub-dlg-msg.is-small{font-size:12px;color:var(--label-secondary)}
.hub-dlg-opt{display:block;width:100%;text-align:left;padding:12px 14px;margin:0 0 8px;border:1px solid var(--dlg-hairline);border-radius:12px;background:var(--card-bg)}
.hub-dlg-opt:last-child{margin-bottom:0}
.hub-dlg-opt b{display:block;font-size:14px;font-weight:600;margin-bottom:2px}
.hub-dlg-opt span{display:block;font-size:13px;line-height:1.4;color:var(--label-secondary)}
.hub-dlg-opt.is-danger{border-color:rgba(255,59,48,.35);background:rgba(255,59,48,.05)}
.hub-dlg-opt.is-danger b{color:var(--ios-red-ink)}
.hub-dlg-code{margin:0 0 12px;padding:10px 12px;background:rgba(118,118,128,.12);border-radius:10px;font-family:var(--font-mono);font-size:12px;text-align:left;user-select:all;color:var(--label-primary)}
.hub-dlg-actions{display:flex;border-top:1px solid var(--dlg-hairline);flex-shrink:0}
.hub-dlg-btn{flex:1;padding:14px 10px;font-family:var(--font-ui);font-size:17px;font-weight:400;color:var(--ios-blue);background:none;border:none;border-left:1px solid var(--dlg-hairline);cursor:pointer;transition:background .12s}
.hub-dlg-btn:first-child{border-left:none}
.hub-dlg-btn:hover{background:rgba(118,118,128,.1)}
.hub-dlg-btn:active{background:rgba(118,118,128,.2)}
.hub-dlg-btn:disabled{opacity:.4;cursor:default}
.hub-dlg-btn:focus{outline:none}
.hub-dlg-btn:focus-visible{background:rgba(118,118,128,.16)}
.hub-dlg-btn.is-primary{font-weight:600;color:var(--ios-blue)}
.hub-dlg-btn.is-destructive{color:var(--ios-red)}
.hub-dlg-actions.is-stack{flex-direction:column}
.hub-dlg-actions.is-stack .hub-dlg-btn{border-left:none;border-top:1px solid var(--dlg-hairline)}
.hub-dlg-actions.is-stack .hub-dlg-btn:first-child{border-top:none}
/* Bottom sheet on narrow screens (opt in with .is-sheet on the overlay) */
@media(max-width:600px){
  .hub-dlg-overlay.is-sheet{align-items:flex-end;padding:8px 8px calc(8px + env(safe-area-inset-bottom,0px))}
  .hub-dlg-overlay.is-sheet .hub-dlg{width:100%;animation:hubDlgSheet .22s ease-out}
}
@keyframes hubDlgFade{from{opacity:0}to{opacity:1}}
@keyframes hubDlgPop{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
@keyframes hubDlgSheet{from{transform:translateY(24px);opacity:.6}to{transform:translateY(0);opacity:1}}
/* Toasts: translucent pills at the bottom; a tone dot carries the color */
.hub-toast{--tone:var(--ios-blue);position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);display:flex;align-items:center;gap:12px;max-width:min(92vw,520px);padding:10px 18px;background:var(--toast-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:var(--toast-ink);border-radius:22px;font-family:var(--font-ui);font-size:14px;font-weight:500;line-height:1.35;box-shadow:var(--dlg-shadow);z-index:var(--z-toast)}
.hub-toast::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--tone);flex-shrink:0}
.hub-toast--ok{--tone:var(--ios-green)}
.hub-toast--attn{--tone:var(--ios-orange)}
.hub-toast--danger{--tone:var(--ios-red)}
.hub-toast--stack{bottom:calc(76px + env(safe-area-inset-bottom,0px))}
.hub-toast--quiet{pointer-events:none;white-space:nowrap;transition:opacity .2s}
.hub-toast-btn{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--toast-link);background:rgba(255,255,255,.14);border:none;border-radius:14px;padding:5px 12px;cursor:pointer;white-space:nowrap}
.hub-toast-btn:hover{background:rgba(255,255,255,.22)}
/* Full-width banner for errors that must not be missed */
.hub-banner{position:fixed;top:0;left:0;right:0;z-index:var(--z-banner);display:flex;align-items:center;gap:14px;padding:calc(10px + env(safe-area-inset-top,0px)) 16px 10px;background:var(--ios-red);color:#fff;font-family:var(--font-ui);font-size:13px;font-weight:500;line-height:1.4;border-radius:0 0 var(--dlg-radius) var(--dlg-radius);box-shadow:var(--dlg-shadow)}
.hub-banner .hub-toast-btn{color:#fff;background:rgba(255,255,255,.2)}
/* Resurface alert list */
.rsf-sec{margin-bottom:14px}
.rsf-sec:last-child{margin-bottom:0}
.rsf-h{font-family:var(--font-ui);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--ios-blue-ink);margin-bottom:6px}
.rsf-h.is-due{color:var(--ios-blue-ink)}
.rsf-row{display:flex;gap:10px;align-items:baseline;padding:7px 0;border-bottom:1px solid var(--dlg-hairline);font-family:var(--font-ui);font-size:14px;color:var(--label-primary)}
.rsf-row:last-child{border-bottom:none}
.rsf-when{font-size:12px;font-weight:600;color:var(--ios-blue-ink);flex-shrink:0}
.rsf-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* New Note row: Batch pill at the left edge of the tiles, New Note bar beside it */
.inp-top-row{display:flex;align-items:stretch;gap:8px}
.inp-top-row .inp-collapse-bar{flex:1;min-width:0}
.inp-top-row .select-mode-btn{flex:none;height:auto;min-height:34px}
/* Filter row 2: optional inputs (date ranges, expand/collapse) wrap under the grid so the nine columns stay aligned with the chips */
#filter-row2 #due-custom-wrap,#filter-row2 #due-range-wrap,#filter-row2 #created-custom-wrap,#filter-row2 #created-range-wrap{grid-column:1/-1;order:2}
#filter-row2 .gpill{order:1}
/* Row 2 selects sit in the same nine columns as the chips, so trim padding and tracking to keep labels whole */
#filter-row2 .dash-sel{padding:0 4px 0 8px;letter-spacing:.02em;text-overflow:ellipsis}
/* Roadmap Add menu (New: Phase, Gate, Task) */
#gantt-add-menu{background:var(--dlg-bg);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-radius:12px;box-shadow:var(--dlg-shadow);padding:6px;min-width:150px}
#gantt-add-menu button{display:block;width:100%;text-align:left;padding:8px 12px;font-family:var(--font-ui);font-size:14px;letter-spacing:0;text-transform:none;background:none;border:none;border-radius:8px;color:var(--label-primary);cursor:pointer}
#gantt-add-menu button:hover{background:rgba(0,122,255,.12)}
.rsf-link{display:block;width:100%;margin-top:8px;padding:8px;background:none;border:none;font-family:var(--font-ui);font-size:15px;color:var(--ios-blue);cursor:pointer;text-align:center}
.rsf-link:hover{filter:brightness(.8)}

/* ── UNIFIED PILL SYSTEM ──
   Every chip, filter, select, toggle and small action button is one shape: 32px tall, fully rounded,
   the same type size and tracking. Rows of pills sit on the same nine columns (Notes and Roadmap). */
.pill-grid{display:grid !important;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;align-items:center;width:100%;box-sizing:border-box}
.gantt-ctrl-bar.pill-grid{padding:6px 32px 5px;overflow:visible}
.gantt-toolbar.pill-grid{padding:4px 32px 6px;overflow:visible}
.pill-grid > .gantt-add-wrap{min-width:0}
.pill-grid > .gantt-add-wrap .gpill{width:100%}
.pill-grid .xdue-wrap{grid-column:1/-1}
.pill-grid > #gantt-summary-lbl{grid-column:1/-1;margin:0 !important;text-align:left;font-family:var(--font-ui);font-size:12px;letter-spacing:0;text-transform:none}
.pill-grid > .gpill,.pill-grid > select,.pill-grid > input,.pill-grid > .fchip{width:100%;min-width:0;max-width:none;margin:0}
@media(max-width:900px){.pill-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.gantt-ctrl-bar.pill-grid,.gantt-toolbar.pill-grid{padding-left:12px;padding-right:12px}}

.fchip,.dash-sel,.gpill,.gantt-filter-sel,.gantt-filter-search,select.road-xsel,.rf-filter-sel,.select-mode-btn,.road-open-filter-btn,.batch-btn{
  box-sizing:border-box;height:var(--pill-h);border-radius:var(--pill-r);font-family:var(--font-mono);font-size:var(--pill-fs);
  letter-spacing:var(--pill-track);text-transform:uppercase}
.batch-btn,.select-mode-btn{font-weight:600}
.fchip-lbl{font-size:var(--pill-fs);letter-spacing:var(--pill-track);padding:0 var(--pill-pad)}
.fchip-ct{font-size:var(--pill-fs);min-width:34px}
.dash-sel,.rf-filter-sel,select.road-xsel,.gantt-filter-sel{padding:0 12px 0 var(--pill-pad);line-height:normal;max-width:none}
.gantt-filter-search{padding:0 var(--pill-pad);margin-left:0;text-transform:none;letter-spacing:0}

/* gpill: same look as a Notes chip wherever the bar is light; dark bars keep their own overrides above */
.gpill{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 var(--pill-pad);background:var(--card-bg);border:1px solid var(--separator);color:var(--label-ios2);font-weight:500;box-shadow:0 1px 3px rgba(0,0,0,.07)}
.gpill:hover{background:var(--card-bg);border-color:var(--label-secondary)}
.gpill.active{background:rgba(199,0,37,.06);border-color:var(--pri-color);color:var(--pri-color);font-weight:600}
.gpill.active-solid{background:var(--road-accent);border-color:var(--road-accent);color:#fff;font-weight:600}
.gpill:disabled{opacity:.45;cursor:default}

/* Outreach Open only: a filter pill like the others, not a green button */
.road-open-filter-btn{padding:0 var(--pill-pad);font-weight:500}
.road-open-filter-btn.active{background:rgba(199,0,37,.06);border-color:var(--pri-color);color:var(--pri-color);font-weight:600}

/* Small action buttons and tags share the shape */
.iabtn,.ot-btn,.rf-act-btn,.rf-kw-pill,.tag-pill{border-radius:var(--pill-r)}
.ot-btn{padding:0 14px;height:28px;display:inline-flex;align-items:center}
.rf-act-btn{padding:0 11px;height:24px;display:inline-flex;align-items:center}
.rf-kw-pill{padding:2px 10px}
.iabtn{height:var(--pill-h)}

/* Sidebar navigation (Resources, Help, Settings): pill rows */
.rf-nav,.help-nav{border-radius:var(--pill-r);padding:0 14px;min-height:var(--pill-h);height:auto;display:flex;align-items:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ── CONSISTENCY PASS: the same shape for badges, form selects, the full-screen note view, header controls ── */
.type-pill,.flow-badge,.fordave-badge,.idlg-ct,.status-toggle,.tov-mode-btn{border-radius:var(--pill-r)}
.type-pill{padding:2px 9px}
.flow-badge,.fordave-badge{padding-left:10px;padding-right:10px}
.inp-sel,input[type=text].inp-sel,input[type=date].inp-sel,select.inp-sel{border-radius:var(--pill-r);height:var(--pill-h);padding-left:var(--pill-pad)}
.status-toggle{height:var(--pill-h)}
.icb{border-radius:50%}
textarea,.inp-ta{border-radius:10px}
/* Full-screen note: action buttons, selects and the tag box are pills (the markup carries inline radii, hence !important) */
#thread-overlay button,#thread-overlay select,#thread-overlay input[type=text],#thread-overlay input[type=date]{border-radius:var(--pill-r) !important}
#thread-overlay button{min-height:30px;display:inline-flex;align-items:center;justify-content:center}
#thread-overlay textarea{border-radius:12px !important}
.hd-search-input{border-radius:var(--pill-r) !important;padding-left:18px !important}
.hd-reload{border-radius:50% !important}
#thread-overlay input:not([type=checkbox]):not([type=radio]){border-radius:var(--pill-r) !important}
#thread-overlay select,#thread-overlay input:not([type=checkbox]):not([type=radio]){min-height:28px}
#thread-overlay .tov-note-edit{min-height:0;padding:1px 10px}
button[onclick*="input-type-new"]{border-radius:50%}

/* ── OUTREACH TOOLBAR: same two nine-column rows as Notes and Roadmap, then Batch + Add Contact on one line ── */
.ot-toolbar{padding:2px 0 10px;margin-bottom:10px;border-bottom:1px solid var(--separator)}
.ot-toolbar .ot-filter-bar{padding:0;margin:0 0 6px;border:none}
.ot-toolbar .ot-filter-bar:last-child{margin-bottom:0}
.pill-grid > .fchip{justify-content:center}
.pill-grid > .road-open-filter-btn{width:100%;min-width:0}
.ot-top-row{margin-bottom:10px}
#ot-form-body.ot-add{background:var(--card-bg);border:1px solid var(--separator);border-radius:12px}
/* Add Contact form: same field shape as the New Note form, blue button */
.ot-form input,.ot-form select{height:var(--pill-h);border-radius:var(--pill-r);padding:0 var(--pill-pad);font-family:var(--font-mono);font-size:var(--pill-fs)}
.ot-form input:focus,.ot-form select:focus,.ot-form textarea:focus{border-color:var(--ios-blue)}
.ot-form textarea{border-radius:12px}
.ot-add-btn{font-family:var(--font-ui);font-size:15px;font-weight:600;letter-spacing:0;text-transform:none;background:var(--ios-blue);color:#fff;border:none;border-radius:999px;padding:0 22px;height:36px;margin-top:10px;cursor:pointer;transition:filter .15s}
.ot-add-btn:hover{background:var(--ios-blue);filter:brightness(.92)}

/* ── DARK TOOLBAR BAND ON EVERY TAB ──
   Notes and Roadmap already sit their pills on the dark blue band; Outreach and Resources now do too.
   .bar-band repeats the band's pill overrides for any bar that carries the class. */
.bar-band{background:var(--bar-bg);border-bottom:1px solid var(--bar-line)}
.bar-band .gpill,.bar-band .road-open-filter-btn{background:var(--bar-chip);color:var(--bar-chip-ink);border-color:transparent;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.bar-band .gpill:hover,.bar-band .road-open-filter-btn:hover{background:#fff;border-color:rgba(255,255,255,.7)}
.bar-band .gpill.active,.bar-band .road-open-filter-btn.active{background:var(--bar-chip-act);color:var(--pri-color);border-color:var(--pri-color);font-weight:600}
.bar-band select,.bar-band .rf-filter-sel{background:var(--bar-chip) !important;color:var(--bar-chip-ink) !important;border:1px solid transparent !important;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.bar-band .select-mode-btn{background:var(--bar-chip);color:var(--ios-blue-ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}
.bar-band .select-mode-btn.active{background:var(--ios-blue);color:#fff}
.bar-band .xdue-wrap{color:var(--bar-ink-soft)}
.bar-band .xdue-wrap input{background:var(--bar-chip);color:var(--bar-chip-ink);border-color:transparent}
.bar-sep{width:1px;height:20px;background:var(--bar-line);flex-shrink:0}
.bar-note{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--bar-ink-soft)}
/* Outreach: band bleeds to the panel edges, stays pinned while the contacts scroll */
.ot-toolbar.bar-band{position:sticky;top:-16px;z-index:5;margin:-16px -32px 14px;padding:8px 32px;border-bottom:1px solid var(--bar-line)}
/* Resources: band across the content pane */
.rf-toolbar{position:sticky;top:-24px;z-index:5;display:flex;align-items:center;gap:8px;margin:-24px -28px 14px;padding:8px 28px}
.rf-toolbar .rf-filter-sel{max-width:200px}
/* The all-resources panel must not be its own scroller, or the band cannot pin to the content pane */
#rf-all.rf-spanel{overflow:visible}

/* ── OUTREACH CONTACT TILES: same shape as a Notes tile ── */
.ot-tile{border-radius:6px;margin:3px 0;box-shadow:0 1px 4px rgba(0,0,0,.08)}
.ot-tile-head{display:flex;align-items:flex-start;gap:10px;padding:6px 12px;cursor:pointer}
.ot-tile-main{display:flex;align-items:flex-start;gap:8px;flex:1;min-width:0;cursor:pointer}
.ot-tile-main .ot-card-chevron{margin-top:3px}
.ot-tile-text{flex:1;min-width:0}
.ot-tile-l1{display:flex;align-items:baseline;gap:8px}
.ot-tile-l1 .ot-card-name{font-family:var(--font-display);font-size:var(--fs-xl2);font-weight:600;color:var(--label-primary)}
.ot-tile-l2{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-secondary);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ot-tile-l3{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin-top:4px}
.ot-tile-head .iright{margin-left:auto}
/* Contact log: each entry has a header with date, direction, subject and keyword */
.ot-compose-row{display:grid;grid-template-columns:150px 1fr 1fr;gap:6px;margin-bottom:6px}
.ot-compose-row select,.ot-compose-row input{height:var(--pill-h);border-radius:var(--pill-r);border:1px solid var(--separator);background:var(--card-bg);padding:0 var(--pill-pad);font-family:var(--font-mono);font-size:var(--fs-md);min-width:0}
.ot-note-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ot-log-subj{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--label-primary)}
.ot-dir{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:1px 8px;border-radius:999px}
.ot-dir-out{background:rgba(0,122,255,.12);color:var(--ios-blue-ink)}
.ot-dir-in{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
.ot-log-link{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.05em;text-transform:uppercase;color:var(--ios-blue-ink);text-decoration:none}
.ot-log-link:hover{text-decoration:underline}
.ot-log-mail .ot-note-text{white-space:pre-wrap}
.ot-log-mail.is-long .ot-note-text{max-height:5.2em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 60%,transparent);mask-image:linear-gradient(#000 60%,transparent)}
.ot-log-mail.is-long.open .ot-note-text{max-height:none;-webkit-mask-image:none;mask-image:none}
.ot-log-more{background:none;border:none;color:var(--ios-blue);font-family:var(--font-ui);font-size:13px;cursor:pointer;padding:2px 0}
.ot-log-more .less{display:none}
.ot-log-mail.open .ot-log-more .more{display:none}
.ot-log-mail.open .ot-log-more .less{display:inline}
@media(max-width:700px){.ot-compose-row{grid-template-columns:1fr}}
.ot-status-badge,.ot-req-badge{border-radius:var(--pill-r);padding:2px 9px}
.ot-card.ot-tile{border-radius:6px}
.ot-btn.primary{background:var(--ios-blue);border-color:var(--ios-blue);color:#fff}
.ot-btn.primary:hover{background:var(--ios-blue);border-color:var(--ios-blue);filter:brightness(.92)}

/* ── OUTREACH: threaded correspondence, unread icon ── */
.ot-unread{display:inline-flex;align-items:center;position:relative;color:var(--ios-blue);margin-left:2px}
.ot-unread::after{content:"";position:absolute;top:-2px;right:-3px;width:8px;height:8px;border-radius:50%;background:var(--ios-red);border:1.5px solid var(--card-bg)}
.ot-thread{background:var(--card-bg);border:1px solid var(--separator);border-left:3px solid var(--separator);border-radius:10px;margin:0 0 10px;overflow:hidden}
.ot-thread.has-unread{border-left-color:var(--ios-blue)}
.ot-thread-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:rgba(118,118,128,.07);border-bottom:1px solid var(--separator)}
.ot-thread-title{font-family:var(--font-ui);font-size:14px;font-weight:600;color:var(--label-primary)}
.ot-thread-state{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:1px 9px;border-radius:999px;background:rgba(118,118,128,.16);color:var(--label-ios2)}
.ot-thread-state.is-sent{background:rgba(0,122,255,.12);color:var(--ios-blue-ink)}
.ot-thread-state.is-replied{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
.ot-thread-state.is-notsent{background:rgba(255,149,0,.16);color:var(--ios-orange-ink)}
.ot-thread-meta{margin-left:auto;font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.ot-thread-body{padding:2px 12px 8px}
.ot-thread .ot-note-entry{background:transparent;border:none;border-bottom:1px solid var(--dlg-hairline);border-radius:0;margin:0;padding:8px 0}
.ot-thread .ot-note-entry:last-child{border-bottom:none}
.ot-thread-notes{margin-top:2px}
.ot-thread-notes>summary{cursor:pointer;list-style:none;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ios-blue);padding:8px 0}
.ot-thread-notes>summary::-webkit-details-marker{display:none}
.ot-thread-notes>summary::before{content:"\25B8";display:inline-block;margin-right:6px;transition:transform .15s}
.ot-thread-notes[open]>summary::before{transform:rotate(90deg)}
.ot-log-move .ot-note-text{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-ios2)}
.ot-note-entry.is-fresh{background:rgba(0,122,255,.06) !important;border-radius:8px;padding-left:8px !important}
.ot-fresh-chip{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:700;padding:1px 8px;border-radius:999px;background:var(--ios-blue);color:#fff}
.ot-compose-row{grid-template-columns:1fr 1fr 150px}
.ot-compose-row + .ot-compose-row{grid-template-columns:1fr 1fr}
@media(max-width:700px){.ot-compose-row,.ot-compose-row + .ot-compose-row{grid-template-columns:1fr}}
.ot-details{margin-top:10px;border-top:1px solid var(--separator)}
.ot-details>summary{cursor:pointer;list-style:none;font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ios-blue);padding:10px 0}
.ot-details>summary::-webkit-details-marker{display:none}
.ot-details>summary::before{content:"\25B8";display:inline-block;margin-right:6px;transition:transform .15s}
.ot-details[open]>summary::before{transform:rotate(90deg)}

/* ── OUTREACH: two status levels ── */
.ot-cst-active{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
.ot-cst-inactive{background:rgba(118,118,128,.16);color:var(--label-ios2)}
.ot-cst-archived{background:transparent;color:var(--label-secondary);border:1px dashed var(--separator)}
.ot-comm{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;text-transform:uppercase;font-weight:600;padding:2px 9px;border-radius:999px;white-space:nowrap}
.ot-comm-waiting{background:rgba(255,149,0,.16);color:var(--ios-orange-ink)}
.ot-comm-closed{background:rgba(118,118,128,.16);color:var(--label-ios2)}
.ot-comm-notsent{background:rgba(0,122,255,.10);color:var(--ios-blue-ink)}
.ot-thread-state.is-waiting{background:rgba(255,149,0,.16);color:var(--ios-orange-ink)}
.ot-thread-state.is-closed{background:rgba(118,118,128,.16);color:var(--label-ios2)}
.ot-thread-state.is-notsent{background:rgba(0,122,255,.10);color:var(--ios-blue-ink)}
.ot-thread-edit{padding:8px 12px;background:rgba(0,122,255,.05);border-bottom:1px solid var(--separator)}
.ot-thread-edit .ot-compose-row input,.ot-thread-edit .ot-compose-row select{height:var(--pill-h)}
.ot-tile[data-archived="1"]{opacity:.75}

/* ── REFERENCE, HELP AND SETTINGS: the same pill and tile shapes as the other tabs ── */
.badge,.dist-badge,.aiterm,.ch-part,.pass-tier-tag,.pass-cmd{border-radius:var(--pill-r)}
.badge{padding:3px 10px}
.dist-badge{padding:2px 10px}
.aiterm{padding:2px 10px}
.ch-part{padding:2px 9px}
.pass-tier-tag{padding:2px 10px}
.pass-cmd{padding:3px 12px}
.dist-warn{border-radius:12px;padding:8px 12px}
.dm-quick button{border-radius:var(--pill-r);padding:0 14px;height:28px;font-family:var(--font-mono);font-size:var(--fs-md);cursor:pointer}
/* Passes: each tier is a tile (it was a ruled row) */
.pass-tier{background:var(--card-bg);border:1px solid var(--separator);border-radius:12px;padding:12px 16px;margin-bottom:12px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.pass-tier-head{border-bottom:none;margin-bottom:0;padding-bottom:0}
.pass-tier:not(.collapsed) .pass-tier-head{border-bottom:1px solid var(--dlg-hairline);padding-bottom:10px;margin-bottom:10px}

/* ── SELECT PILLS: the same default label (the category word, no dashes), centered, with the same room for the arrow on every tab ── */
.pill-grid select,.rf-toolbar select{text-align:center;text-align-last:center;padding-left:18px !important;padding-right:22px !important;text-overflow:ellipsis}
.pill-grid select option,.rf-toolbar select option{text-align:left}

/* ── PILL COLUMNS ──
   Same function, same column on Notes, Roadmap, Outreach and Resources (nine columns, desktop and tablet widths).
   Row 1 (status and view): All is column 1 and Open column 2 where they exist; Due Now is column 7.
   Row 2 (filters left, arranging right): Due 1, Tags 2, the type-like filter 3 (Types, Type, Contact), tab-specific filters 4 and 5,
   then Group 7, Sort 8, Reset 9. Narrow screens wrap in order instead. */
@media (min-width:901px){
  /* Notes, row 2 */
  #filter-row2 select,#filter-row2 .fchip{grid-row:1}
  #due-filter{grid-column:1}#tag-filter{grid-column:2}#type-filter{grid-column:3}#created-filter{grid-column:4}
  #fchip-archive{grid-column:6}#notes-group-sel{grid-column:7}#notes-sort-sel{grid-column:8}#fchip-reset{grid-column:9}
  #filter-row2>span[id$="-wrap"]{grid-row:2}
  /* Roadmap, row 1 */
  #gantt-ctrl-bar>*{grid-row:1}
  #gantt-add-wrap{grid-column:1}#road-open-btn{grid-column:2}#rcl-1{grid-column:3}#rcl-2{grid-column:4}
  #gantt-search{grid-column:5/span 2}#road-duenow-btn{grid-column:7}#gantt-today-btn{grid-column:8}
  /* Roadmap, row 2 */
  #gantt-scale-bar>*{grid-row:1}
  #gscale-btn{grid-column:1}#road-due-filter{grid-column:2}#road-kw-filter{grid-column:3}#road-type-filter{grid-column:4}#road-phase-filter{grid-column:5}
  #gantt-pass-filter{grid-column:6}#road-group-filter{grid-column:7}#road-sort-filter{grid-column:8}#road-reset-btn{grid-column:9}
  #gantt-scale-bar>.xdue-wrap{grid-column:1/-1;grid-row:2}
  #gantt-scale-bar>#gantt-summary-lbl{grid-column:1/-1;grid-row:3}
  /* Outreach */
  #ot-filter-row1>*{grid-row:1}
  #ot-chip-all{grid-column:1}#ot-chip-active{grid-column:2}#ot-chip-inactive{grid-column:3}#ot-chip-archived{grid-column:4}
  #ot-filter-row2>*{grid-row:1}
  #ot-due-filter{grid-column:1}#ot-tag-filter{grid-column:2}#ot-role-filter{grid-column:3}#ot-req-filter{grid-column:4}#ot-comm-filter{grid-column:5}
  #ot-group-sel{grid-column:7}#ot-sort-sel{grid-column:8}#ot-reset-btn{grid-column:9}
  #ot-filter-row2>.xdue-wrap{grid-column:1/-1;grid-row:2}
  /* Resources: Batch is column 1 and Tags column 2, as on the other tabs */
  .rf-toolbar{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:6px;align-items:center}
  .rf-toolbar #rf-batch-btn{grid-column:1}.rf-toolbar #rf-filter-kw{grid-column:2;max-width:none;width:100%}
  .rf-toolbar #rf-count{grid-column:3/span 4}.rf-toolbar>*{grid-row:1}
}

/* Outreach per-thread due dates */
.ot-thread-due{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary);white-space:nowrap}
.ot-thread-due.overdue{color:var(--pri-color);font-weight:600}
.ot-due-tap{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.ot-due-pop{position:absolute;right:0;top:100%;z-index:60;margin-top:6px;background:var(--dlg-bg,var(--card-bg));border:1px solid var(--separator);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:10px;min-width:230px;display:flex;flex-direction:column;gap:8px;text-align:left}
.ot-due-pop .otdp-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.ot-due-pop select,.ot-due-pop input[type=date]{font-size:var(--fs-sm);padding:4px 6px;border:1px solid var(--separator);border-radius:6px;background:var(--card-bg);color:var(--label-primary)}
.ot-due-pop .otdp-btns{display:flex;gap:6px;justify-content:flex-end}
.ot-field-ro{font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--label-primary)}

/* Docked "Needs attention" panel (replaces the blocking modal) */
.due-panel{display:none;position:fixed;left:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:360px;max-width:calc(100vw - 32px);max-height:min(60vh,520px);z-index:8000;background:var(--dlg-bg);border:1px solid var(--separator);border-radius:14px;box-shadow:0 10px 36px rgba(0,0,0,.22);font-family:var(--font-ui);flex-direction:column;overflow:hidden}
.due-panel.open{display:flex}
.due-panel-hd{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--dlg-hairline);cursor:pointer;user-select:none;background:rgba(118,118,128,.06)}
.due-panel-title{font-weight:600;font-size:14px;color:var(--label-primary)}
.due-panel-count{font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;color:#fff;background:var(--pri-color);padding:1px 7px;border-radius:999px}
.due-panel-caret{margin-left:auto;color:var(--label-secondary);font-size:14px;transition:transform .15s}
.due-panel.collapsed .due-panel-caret{transform:rotate(180deg)}
.due-panel-dismiss{font-family:var(--font-ui);font-size:13px;font-weight:600;color:var(--ios-blue);background:none;border:1px solid var(--separator);border-radius:8px;padding:3px 10px;cursor:pointer}
.due-panel-body{overflow-y:auto;padding:8px 12px 12px}
.due-panel.collapsed .due-panel-body{display:none}
.due-panel.collapsed{width:auto;max-width:none;border-radius:999px}
.due-panel.collapsed .due-panel-hd{border-bottom:none;padding:8px 14px}
.due-panel.collapsed .due-panel-dismiss{display:none}
.due-row{display:flex;gap:8px;align-items:baseline;padding:7px 2px;border-bottom:1px solid var(--dlg-hairline);font-size:14px;color:var(--label-primary);cursor:pointer;border-radius:6px}
.due-row:hover{background:rgba(118,118,128,.08)}
.due-row:last-child{border-bottom:none}
.due-when{font-family:var(--font-mono);font-size:12px;font-weight:600;color:var(--ios-blue-ink);flex-shrink:0;min-width:58px}
.due-when.late{color:var(--pri-color)}
.due-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;flex:1}
.due-sub{font-family:var(--font-mono);font-size:11px;color:var(--label-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40%}
.due-phase{font-family:var(--font-mono);font-size:11px;color:var(--label-secondary);text-transform:uppercase;letter-spacing:.05em;padding:8px 2px 2px}
.due-hl{animation:dueHl 1.6s ease-out 1}
@keyframes dueHl{0%{box-shadow:0 0 0 3px var(--pri-color)}100%{box-shadow:0 0 0 0 rgba(0,0,0,0)}}
@media(max-width:640px){.due-panel{left:8px;right:8px;width:auto;max-width:none;bottom:calc(8px + env(safe-area-inset-bottom,0px));max-height:55vh}.due-panel.collapsed{right:auto}}

/* Roadmap view pills live in the Gantt header label cell (above the first phase) */
.gantt-view-pills{display:flex;align-items:center;gap:4px;min-width:0;overflow:hidden;flex:1}
.gantt-view-pills .gpill.hdr{padding:2px 8px;font-size:var(--fs-xs);letter-spacing:.05em;background:var(--bar-chip);color:var(--bar-chip-ink);border-color:transparent;box-shadow:0 1px 3px rgba(0,0,0,.12)}
.gantt-view-pills .gpill.hdr.active{background:var(--bar-chip-act);color:var(--pri-color);border-color:var(--pri-color);font-weight:600}

/* Roadmap control rows: eight equal columns, both rows, so pills match in width */
.pill-grid.road-grid8{grid-template-columns:repeat(8,minmax(0,1fr))}
.pill-grid.road-grid8 > .gpill,.pill-grid.road-grid8 > select,.pill-grid.road-grid8 > input,.pill-grid.road-grid8 > .gantt-add-wrap .gpill{height:28px;line-height:1;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill-grid.road-grid8 > input.gantt-filter-search{margin:0;text-align:left}
@media(max-width:900px){.pill-grid.road-grid8{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}}

.due-panel-hd{cursor:grab;touch-action:none}
.due-panel.dragging{transition:none;opacity:.96}
.due-panel.dragging .due-panel-hd{cursor:grabbing}
.due-panel.placed{right:auto;bottom:auto}

/* Panel batch bar */
.due-cb{width:14px;height:14px;margin:0;flex-shrink:0;align-self:center;accent-color:var(--pri-color)}
.due-cb-gap{width:14px;flex-shrink:0}
.rsf-h .due-cb-all{margin-right:6px;vertical-align:-2px}
.due-batch-bar{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:8px 12px;border-top:1px solid var(--dlg-hairline);background:rgba(118,118,128,.06);font-family:var(--font-ui);font-size:12px;color:var(--label-secondary)}
.due-batch-bar .due-batch-n b{color:var(--pri-color)}
.due-batch-grp{display:inline-flex;gap:4px;align-items:center}
.due-batch-bar input[type=date],.due-batch-bar input[type=number]{font-size:12px;padding:3px 5px;border:1px solid var(--separator);border-radius:6px;background:var(--card-bg);color:var(--label-primary);height:26px}
.due-batch-bar input[type=number]{width:52px}
.due-batch-bar .ot-btn{font-size:12px;padding:3px 8px}
.due-panel.collapsed .due-batch-bar{display:none !important}

/* ── PROGRESS TAB ── */
#panel-progress{padding:0 12px 24px}
.pg-meta{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--bar-ink-soft);margin:0 2px 8px}
.pg-strip{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px;margin:0 0 8px} /* one equal column per section card, spanning the same width as the pills beneath */
@media (max-width:900px){.pg-strip{grid-auto-flow:row;grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}
@media (max-width:600px){.pg-strip{grid-template-columns:repeat(3,minmax(0,1fr))}}
.pg-card{background:var(--card-bg);border-radius:12px;padding:8px 10px;min-width:0;cursor:pointer;border:1px solid transparent;box-shadow:0 1px 3px rgba(0,0,0,.06);transition:border-color .15s,transform .15s}
.pg-card:hover{transform:translateY(-1px)}
.pg-card.act{border-color:var(--ios-blue)}
.pg-card-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:6px}
.pg-card-lbl{font-family:var(--font-ui);font-size:var(--fs-lg);font-weight:600;color:var(--label-primary)}
.pg-flag{font-family:var(--font-mono);font-size:var(--fs-xs);color:#fff;background:var(--pri-color);padding:1px 6px;border-radius:3px}
.pg-bar{display:flex;height:8px;border-radius:4px;overflow:hidden;background:var(--separator);gap:1px}
.pg-card-ct{font-family:var(--font-ui);font-size:var(--fs-md);color:var(--label-secondary);margin-top:6px}
.pg-chips{margin:0;padding:0;border-radius:0;background:transparent;border:0;grid-template-columns:repeat(5,minmax(0,1fr)) !important}
@media (max-width:600px){.pg-chips{grid-template-columns:repeat(2,minmax(0,1fr)) !important}.pg-chips .fchip-lbl{font-size:var(--fs-sm);padding:0 4px;overflow:hidden;text-overflow:ellipsis}.pg-chips .fchip-ct{min-width:26px;padding:0 6px}}
.pg-chips .fchip{width:100%;min-width:0;justify-content:center}
.pg-chips .fchip-lbl{padding:0 6px;font-size:var(--fs-base);overflow:hidden;text-overflow:ellipsis}
.pg-chip{font-family:var(--font-ui);font-size:var(--fs-base);font-weight:500;border:1px solid var(--separator);background:var(--card-bg);color:var(--label-primary);border-radius:14px;padding:4px 12px;cursor:pointer}
.pg-chip.act{background:var(--ios-blue);border-color:var(--ios-blue);color:#fff}
.pg-grid-wrap{overflow:auto;max-width:100%;max-height:min(72vh,calc(100vh - 220px));background:var(--card-bg);border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.pg-grid{min-width:max(1070px,100%)}
/* Frozen Unit column and frozen header row. .pg-grid-wrap is the one scroll container: the header row sticks to its top edge and the Unit cell of every row (and the section label of every group header) sticks to its left edge, so only the pass columns move. Row padding lives inside the sticky cells, not on the row, so nothing scrolls visibly beneath them. */
.pg-row>.pg-unit,.pg-group>.pg-group-lbl{position:-webkit-sticky;position:sticky;left:0;z-index:2;align-self:stretch;background:var(--card-bg);padding-left:10px;padding-right:6px;box-shadow:1px 0 0 var(--dlg-hairline)}
.pg-head>.pg-unit{z-index:4}
.pg-unit-row.open>.pg-unit{background:linear-gradient(rgba(0,122,255,.06),rgba(0,122,255,.06)),var(--card-bg)}
/* Section group header: one per snapshot section, click anywhere to open or close */
.pg-group{display:flex;align-items:center;justify-content:flex-start;gap:10px;padding:0 10px 0 0;border-bottom:1px solid var(--dlg-hairline);background:rgba(118,118,128,.08);cursor:pointer;font-family:var(--font-ui);font-size:var(--fs-lg);font-weight:600;color:var(--label-primary);user-select:none}
.pg-group>.pg-group-lbl{display:flex;align-items:center;gap:7px;white-space:nowrap;padding-top:8px;padding-bottom:8px;background:linear-gradient(rgba(118,118,128,.08),rgba(118,118,128,.08)),var(--card-bg)} /* composited over the card so the frozen label hides the counts scrolling beneath it */
.pg-group-ct{font-weight:400;font-size:var(--fs-md);color:var(--label-secondary);white-space:nowrap;margin-left:8px}
.pg-grp-arrow{color:var(--ios-blue)}
.pg-card-cat{cursor:default}
.pg-card-cat:hover{transform:none}
.pg-card-pct{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.pg-row{display:grid;grid-template-columns:190px 36px 72px repeat(12,1fr);align-items:center;padding:0 10px 0 0;border-bottom:1px solid var(--dlg-hairline);gap:4px}
.pg-row>*{padding-top:7px;padding-bottom:7px} /* the row's vertical padding sits on the cells so the frozen Unit cell covers the full row height */
.pg-head{position:sticky;top:0;background:var(--card-bg);font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;text-transform:uppercase;color:var(--label-secondary);z-index:3}
.pg-unit-row{font-family:var(--font-ui);font-size:var(--fs-lg)}
.pg-unit-row.open{background:rgba(0,122,255,.06)}
.pg-unit{display:flex;align-items:center;gap:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pg-unit-tog{cursor:pointer}
.pg-chev{width:10px;flex-shrink:0;text-align:center;color:var(--ios-blue);font-size:var(--fs-md);line-height:1} /* the row's disclosure mark, the same as the section headers */
.pg-chev-none{color:transparent}
.pg-title{font-weight:400;color:var(--label-secondary);font-size:var(--fs-md);margin-left:2px;overflow:hidden;text-overflow:ellipsis}
.pg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.pg-col{text-align:center;font-family:var(--font-mono);font-size:var(--fs-xs)}
.pg-span{text-align:left;color:var(--label-secondary);font-family:var(--font-ui);font-size:var(--fs-base)}
.pg-pill{display:inline-block;padding:2px 7px;border-radius:9px;font-family:var(--font-mono);font-size:var(--fs-xs);white-space:nowrap;border:1px solid transparent}
.pg-full{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
.pg-partial{background:rgba(255,149,0,.16);color:var(--ios-orange-ink)}
.pg-none{background:rgba(118,118,128,.12);color:var(--label-secondary)}
.pg-unknown{border-color:var(--separator);color:var(--label-secondary);background:transparent}
.pg-na{color:var(--separator)}
.pg-flag.pg-pill,.pg-pill.pg-flag,.pg-fail{background:var(--pri-color);color:#fff}
.pg-value{background:rgba(0,122,255,.12);color:var(--ios-blue-ink)}
.pg-detail{padding:8px 14px 12px 34px;background:rgba(0,122,255,.04);border-bottom:1px solid var(--dlg-hairline);font-family:var(--font-ui);font-size:var(--fs-base)}
.pg-detail-hd{font-size:var(--fs-md);font-weight:600;color:var(--label-secondary);margin:4px 0}
.pg-wait{margin:3px 0;line-height:1.4}
.pg-kind{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.06em;background:rgba(118,118,128,.14);padding:1px 5px;border-radius:3px}
.pg-key{margin-top:10px;font-family:var(--font-ui);font-size:var(--fs-md);color:var(--label-secondary)}
.pg-key a{color:var(--ios-blue)}
.pg-key b{color:var(--label-primary);font-weight:600}
.pg-pend{display:flex;align-items:center;gap:6px;min-width:0;font-family:var(--font-ui);font-size:var(--fs-md);color:var(--label-primary)}
.pg-col-hd{white-space:normal;line-height:1.2;letter-spacing:.03em;font-size:var(--fs-xs);padding:7px 2px;align-self:end}
.pg-head .pg-pend{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.pg-pend-txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-pend-none{color:var(--label-secondary)}
.pg-plus{flex-shrink:0;width:20px;height:20px;border-radius:50%;border:1px solid var(--separator);background:var(--card-bg);color:var(--ios-blue);font-family:var(--font-mono);font-size:var(--fs-lg);line-height:1;cursor:pointer;padding:0}
.pg-plus:hover{background:rgba(0,122,255,.1)}
.pg-st-check{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
.pg-st-x{background:rgba(255,59,48,.14);color:var(--pri-color)}
.pg-st-na{color:var(--separator);background:transparent}
.pg-st-blank{background:transparent;border-color:var(--separator);min-width:18px;min-height:16px}
.pg-group{min-width:100%;box-sizing:border-box}
.pg-status{font-weight:600}
.pg-detail-grid{display:grid;grid-template-columns:max-content 1fr;gap:3px 12px;margin:4px 0 8px;align-items:center}
.pg-det-name{white-space:nowrap}
.pg-det-val{color:var(--label-secondary)}
@media (max-width:600px){.pg-detail-grid{grid-template-columns:1fr}.pg-det-val{padding-left:8px}}

@media (max-width:600px){.pg-unit{gap:5px}.pg-row{grid-template-columns:130px 32px 64px repeat(12,1fr);padding-right:8px}.pg-row>*{padding-top:6px;padding-bottom:6px}.pg-row>.pg-unit,.pg-group>.pg-group-lbl{padding-left:8px}.pg-grid{min-width:max(920px,100%)}.pg-grid-wrap{max-height:calc(100vh - 170px);border-radius:8px}.pg-group{padding:0 8px 0 0}.pg-group>.pg-group-lbl{padding-top:7px;padding-bottom:7px}}
.pg-pend-hd{gap:4px}
.pg-pend-arrow{font-size:var(--fs-md);color:var(--label-secondary)}

/* Progress: Waiting on you. A red count box beside the unit; blank when nothing is owed. Tiles, one per item, under the row. */
.pg-wait-col{display:flex;align-items:center;justify-content:center;min-width:0}
.pg-wait-hd{justify-content:center}
.pg-wait-box{width:26px;height:22px;border-radius:5px;border:1px solid var(--pri-color);background:var(--pri-color);color:#fff;font-family:var(--font-mono);font-size:var(--fs-xs);font-weight:700;line-height:1;cursor:pointer;padding:0;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.pg-wait-box:hover{filter:brightness(1.1)}
.pg-wait-box.open{background:#fff;color:var(--pri-color)}
.pg-wait-detail{background:rgba(199,0,37,.035)}
.pg-wtile{background:var(--card-bg);border:1px solid var(--dlg-hairline);border-left:3px solid var(--pri-color);border-radius:8px;padding:8px 12px;margin:6px 0;max-width:820px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.pg-wtile-hd{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:3px}
.pg-wtile-id{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--label-secondary)}
.pg-wtile-lbl{font-weight:600;color:var(--label-primary)}
.pg-wtile-where{font-style:italic;color:var(--label-secondary);font-size:var(--fs-md);margin:2px 0}
.pg-wtile-txt{line-height:1.45;margin:3px 0}
.pg-wtile-mw{font-size:var(--fs-md);color:var(--label-secondary);margin-top:3px}
.pg-wtile-ft{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:6px;font-size:var(--fs-md)}
.pg-wtile-link{color:var(--ios-blue);text-decoration:none}
.pg-wtile-link:hover{text-decoration:underline}
.pg-wtile-note{font-weight:600}
.pg-kind-research{background:rgba(0,122,255,.14);color:var(--ios-blue-ink)}
.pg-kind-decision{background:rgba(255,149,0,.18);color:var(--ios-orange-ink)}
.pg-kind-hold-ok{background:rgba(52,199,89,.16);color:var(--ios-green-ink)}
/* Roadmap: one pill row, and two small pills in the white box above the phases */
.pill-grid.road-grid1{grid-template-columns:repeat(12,minmax(0,1fr))}
.pill-grid.road-grid1 > .gpill,.pill-grid.road-grid1 > select,.pill-grid.road-grid1 > .gantt-add-wrap .gpill{height:28px;line-height:1;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;padding-left:6px;padding-right:6px}
.pill-grid.road-grid1 > select{padding-right:14px}
@media(max-width:1100px){.pill-grid.road-grid1{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:600px){.pill-grid.road-grid1{grid-template-columns:repeat(3,minmax(0,1fr))}}
.gantt-header-label{gap:4px;padding:0 14px 0 6px}
.gpill-mini{height:22px;padding:0 7px;font-size:var(--fs-xs);letter-spacing:.04em;min-width:0;flex:1 1 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gpill-arrow{font-size:1.1em;line-height:1;margin-left:1px}
.gantt-header-label .gpill-mini{background:var(--card-bg);color:var(--label-ios2);border:1px solid var(--separator);box-shadow:0 1px 2px rgba(0,0,0,.08)}
.gantt-header-label .gpill-mini.active{background:rgba(199,0,37,.06);border-color:var(--pri-color);color:var(--pri-color);font-weight:600}

.pg-card-lbl,.pg-card-ct{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pg-plus-wait{background:var(--pri-color);border-color:var(--pri-color);color:#fff;font-weight:700;font-size:var(--fs-xs)}
.pg-plus-wait:hover{background:var(--pri-color);filter:brightness(1.1)}
.pg-plus-wait.open{background:#fff;color:var(--pri-color)}
.pg-wait-hd-lbl{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.07em;color:var(--label-secondary)}

.help-details{margin:0 0 14px;border:1px solid var(--separator);border-radius:10px;background:var(--card-bg);overflow:hidden}
.help-details-sum{cursor:pointer;padding:10px 14px;font-family:var(--font-ui);font-size:var(--fs-xl);font-weight:600;color:var(--ios-blue);list-style:none}
.help-details-sum::-webkit-details-marker{display:none}
.help-details-sum::before{content:'\25B8';display:inline-block;width:16px;color:var(--label-secondary)}
.help-details[open] .help-details-sum::before{content:'\25BE'}
.help-details-body{padding:0 14px 6px}

/* Progress: one blue band from just below the tabs to just below the pills, the same color as the toolbar band on every other tab; the meta line, section cards and pills sit on it */
.pg-band{margin:0 -12px 12px;padding:8px 32px 8px;background:var(--bar-bg);border-bottom:1px solid var(--bar-line)}
@media(max-width:900px){.pg-band{padding-left:12px;padding-right:12px}}
.pg-band .pg-card{border-color:transparent;box-shadow:0 1px 3px rgba(0,0,0,.18)}
.pg-band .pg-card.act{border-color:#fff}
.pg-wait-hd{gap:2px}
.pg-wait-arrow{width:18px;height:18px;font-size:var(--fs-sm);color:var(--label-secondary)}
.pg-unit-row .pg-plus:not(.pg-plus-wait){background:transparent;border-color:var(--separator)} /* an empty outline, like a never-run cell, until items wait */
.pg-unit-row .pg-plus:not(.pg-plus-wait).open{background:rgba(0,122,255,.12);border-color:var(--ios-blue)}
