/* Bloomly design system v2 ("Morning Tape"). Spec: docs/DESIGN_SYSTEM_V2.md.
   One token source for owner, operator and public pages. Owner pages still load
   workspace.css for not-yet-migrated page content; this file maps its variables onto v2
   tokens and owns the shell. Fonts: Instrument Sans, SIL OFL 1.1 (static/fonts/OFL.txt). */

@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;
  src:url("fonts/instrument-sans-latin.woff2") format("woff2");
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Instrument Sans";font-style:normal;font-weight:400 700;font-stretch:75% 100%;font-display:swap;
  src:url("fonts/instrument-sans-latin-ext.woff2") format("woff2");
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}

/* ---------- 1. Tokens ---------- */
:root{
  --v2-font:"Instrument Sans",ui-sans-serif,-apple-system,"Segoe UI",Roboto,sans-serif;
  --v2-canvas:#F5F6F3;--v2-surface:#FFFFFF;--v2-raised:#FFFFFF;--v2-sunken:#EEF0EC;
  --v2-line:#E3E6E1;--v2-line-strong:#CDD3CC;--v2-muted:#5D6660;--v2-faint:#8C958F;--v2-ink:#1B201D;
  --v2-scrim:rgba(18,21,20,.36);
  --v2-success:#1F7A4D;--v2-success-soft:#E4F3EA;--v2-warning:#B4531A;--v2-warning-soft:#FBEADF;
  --v2-danger:#B42335;--v2-danger-soft:#FBE5E7;--v2-info:#1F5FAD;--v2-info-soft:#E3EDF9;
  --accent:#F2B33D;--accent-hover:#E2A12A;--accent-soft:#FBF0D6;--on-accent:#1B201D;
  --v2-accent-text:#7A5300;
  --v2-text-xs:12px;--v2-text-sm:13px;--v2-text-md:14px;--v2-text-lg:16px;--v2-text-xl:18px;
  --v2-text-2xl:22px;--v2-text-3xl:28px;--v2-text-4xl:40px;
  --v2-space-2:4px;--v2-space-3:8px;--v2-space-4:12px;--v2-space-5:16px;--v2-space-6:20px;--v2-space-7:24px;
  --v2-space-8:32px;--v2-space-9:40px;--v2-space-10:56px;--v2-space-11:72px;--v2-space-12:96px;
  --v2-control-sm:28px;--v2-control-md:36px;--v2-control-lg:44px;
  --v2-radius-xs:4px;--v2-radius-sm:6px;--v2-radius-md:10px;--v2-radius-lg:16px;--v2-radius-full:999px;
  --v2-shadow-1:0 1px 2px rgba(27,32,29,.06);
  --v2-shadow-2:0 1px 2px rgba(27,32,29,.05),0 8px 24px -8px rgba(27,32,29,.14);
  --v2-shadow-3:0 2px 4px rgba(27,32,29,.06),0 24px 56px -16px rgba(27,32,29,.28);
  --v2-focus:0 0 0 2px var(--v2-surface),0 0 0 4px var(--v2-accent-text);
  --v2-dur-micro:120ms;--v2-dur-fast:180ms;--v2-dur-base:240ms;--v2-dur-panel:320ms;--v2-dur-page:420ms;
  --v2-ease-out:cubic-bezier(.2,.8,.2,1);--v2-ease-in:cubic-bezier(.4,0,1,1);
  --v2-ease-inout:cubic-bezier(.65,0,.35,1);--v2-ease-spring:cubic-bezier(.16,1,.3,1);
  --v2-rail-w:232px;
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --v2-canvas:#121514;--v2-surface:#191D1B;--v2-raised:#212623;--v2-sunken:#0F1211;
  --v2-line:#2A302D;--v2-line-strong:#3B433F;--v2-muted:#9BA49E;--v2-faint:#6E7772;--v2-ink:#ECEFEB;
  --v2-scrim:rgba(0,0,0,.56);
  --v2-success:#6FD39B;--v2-success-soft:#1C3327;--v2-warning:#F3A35C;--v2-warning-soft:#3A2A1D;
  --v2-danger:#FF8F8F;--v2-danger-soft:#3D2125;--v2-info:#7FB2F0;--v2-info-soft:#1C2B3D;
  --accent:#F5C55A;--accent-hover:#F9D683;--accent-soft:#3A3220;--on-accent:#1B201D;--v2-accent-text:#F5C55A;
  --v2-shadow-1:0 0 0 1px #2A302D;
  --v2-shadow-2:inset 0 1px 0 rgba(255,255,255,.04),0 12px 32px -8px rgba(0,0,0,.6);
  --v2-shadow-3:inset 0 1px 0 rgba(255,255,255,.05),0 28px 64px -16px rgba(0,0,0,.7);
}
/* The accent bridge is declared on body, where client palettes set --accent; declaring it on
   :root would resolve the variables there, before the client's color applies. */
body{--v2-accent:var(--accent);--v2-accent-hover:var(--accent-hover);--v2-accent-soft:var(--accent-soft);--v2-on-accent:var(--on-accent)}
/* Client brand accents (presets live in workspace.css; custom ones come from brand_theme.py). */
body[data-workspace-palette]{--v2-accent-text:var(--accent)}
body[data-workspace-palette]{--on-accent:#FFFFFF}
:root[data-theme="dark"] body[data-workspace-palette]{--on-accent:#171C2C}

/* Map the legacy workspace.css variables onto v2 so unmigrated pages share one palette. */
:root,:root[data-theme="dark"]{
  --canvas:var(--v2-canvas);--surface:var(--v2-surface);--ink:var(--v2-ink);--muted:var(--v2-muted);
  --line:var(--v2-line);--field-line:var(--v2-line-strong);--subtle:var(--v2-sunken);--navy:var(--v2-ink);
  --success:var(--v2-success);--warning:var(--v2-warning);--danger:var(--v2-danger);--radius:var(--v2-radius-md);
  font-family:var(--v2-font);
}
body{font-family:var(--v2-font);background:var(--v2-canvas);color:var(--v2-ink);font-size:var(--v2-text-md);
  -webkit-font-smoothing:antialiased;font-feature-settings:"ss01" 0}
.v2-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.v2-muted{color:var(--v2-muted)}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:none;box-shadow:var(--v2-focus)}

/* ---------- 2. Owner shell (existing markup, v2 skin) ---------- */
.ws-owner-shell{display:grid;grid-template-columns:var(--v2-rail-w) minmax(0,1fr);min-height:100vh;background:var(--v2-canvas)}
.ws-owner-rail{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--v2-surface);border-right:1px solid var(--v2-line);
  padding:14px 12px;display:flex;flex-direction:column;gap:6px;width:auto;box-shadow:none}
.ws-owner-rail .ws-brand{display:flex;align-items:center;gap:10px;padding:6px 6px 14px;margin:0;text-decoration:none;color:var(--v2-ink);min-height:52px}
.ws-owner-rail .ws-brand>span:last-child{display:flex;flex-direction:column;font-size:14px;font-weight:600;line-height:1.2;min-width:0}
.ws-owner-rail .ws-brand small{font-size:12px;font-weight:400;color:var(--v2-muted);margin-top:2px}
.ws-owner-rail .ws-avatar{width:32px;height:32px;flex:none;border-radius:var(--v2-radius-sm);background:var(--v2-accent-soft);color:var(--v2-accent-text);
  display:grid;place-items:center;font-size:12px;font-weight:650;overflow:hidden}
.ws-owner-rail .ws-wide-logo{height:36px;max-width:168px}
.ws-rail-toggle{order:99;margin-top:auto;align-self:flex-start;width:36px;height:36px;border-radius:var(--v2-radius-sm);border:0;background:transparent;color:var(--v2-muted);display:grid;place-items:center;cursor:pointer}
.ws-rail-toggle:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.ws-owner-rail .ws-nav{display:flex;flex-direction:column;gap:2px;margin:0;padding:0}
.ws-owner-rail .ws-nav-link{display:flex;align-items:center;gap:12px;height:36px;padding:0 10px;border-radius:var(--v2-radius-sm);color:var(--v2-muted);
  font-size:13px;font-weight:500;text-decoration:none;background:transparent;transition:background-color var(--v2-dur-micro),color var(--v2-dur-micro);position:relative}
.ws-owner-rail .ws-nav-link .ws-icon{width:18px;height:18px;flex:none}
.ws-owner-rail .ws-nav-link:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.ws-owner-rail .ws-nav-link.active,:root[data-theme="dark"] .ws-owner-rail .ws-nav-link.active{background:var(--v2-accent-soft);color:var(--v2-ink)}
.ws-owner-rail .ws-nav-link.active .ws-icon{color:var(--v2-accent-text)}
/* Work (first five) and Business groups */
.ws-owner-rail .ws-nav-link:nth-child(6){margin-top:17px}
.ws-owner-rail .ws-nav-link:nth-child(6)::before{content:"";position:absolute;left:10px;right:10px;top:-9px;border-top:1px solid var(--v2-line)}
.ws-business-tools{margin-top:12px;border-top:1px solid var(--v2-line);font-size:13px}
.ws-business-tools summary{padding:10px;color:var(--v2-faint);font-size:12px;font-weight:500;min-height:0}
.ws-business-tools a{min-height:32px;padding:7px 10px;border-radius:var(--v2-radius-sm);color:var(--v2-muted);font-weight:500}
.ws-business-tools a:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.ws-business-tools b{color:var(--v2-accent-text);font-variant-numeric:tabular-nums}
.ws-owner-footer{padding:12px 6px 0;font-size:12px;color:var(--v2-faint)}
.ws-powered{display:flex;align-items:center;gap:8px;color:var(--v2-faint)}

/* Collapsed rail (64px), toggled by workspace.js via body.ws-rail-compact */
body.ws-rail-compact{--v2-rail-w:64px}
body.ws-rail-compact .ws-owner-rail{padding:14px 10px;align-items:center}
body.ws-rail-compact .ws-owner-rail .ws-brand>span:last-child,body.ws-rail-compact .ws-nav-link span,
body.ws-rail-compact .ws-business-tools,body.ws-rail-compact .ws-owner-footer{display:none}
body.ws-rail-compact .ws-owner-rail .ws-nav-link{width:40px;justify-content:center;padding:0}
body.ws-rail-compact .ws-owner-rail .ws-nav-link:nth-child(6)::before{left:4px;right:4px}
body.ws-rail-compact .ws-owner-rail .ws-wide-logo{max-width:40px}

/* Main column, context bar, content width */
.ws-owner-rail{grid-column:1;grid-row:1;inset:auto}
.ws-owner-main{grid-column:2;grid-row:1;min-width:0;background:var(--v2-canvas)}
.ws-context{display:flex;align-items:center;gap:12px;min-height:56px;padding:0 32px;background:transparent;border-bottom:1px solid var(--v2-line);position:static}
.ws-context-leading{margin-right:auto;order:-1;display:flex;align-items:center;gap:10px}
.ws-context-leading strong{font-size:13px;font-weight:500;color:var(--v2-muted)}
.ws-content{max-width:1240px;margin:0 auto;padding:24px 32px 64px}
.ws-sample-chip{background:var(--v2-info-soft);color:var(--v2-info);font-weight:500}
.ws-preview-banner--owner{background:var(--v2-warning-soft);color:var(--v2-warning);border-bottom:1px solid var(--v2-line)}
.ws-flash{border-radius:var(--v2-radius-md);border:1px solid var(--v2-line);background:var(--v2-surface);color:var(--v2-ink);box-shadow:var(--v2-shadow-1);font-size:14px}
.ws-flash.success{border-left:3px solid var(--v2-success)}
.ws-flash.error{border-left:3px solid var(--v2-danger);color:var(--v2-ink);background:var(--v2-surface)}
@media (prefers-reduced-motion:no-preference){
  .ws-owner-shell{transition:grid-template-columns var(--v2-dur-base) var(--v2-ease-inout)}
  .ws-content{animation:v2-enter var(--v2-dur-page) var(--v2-ease-out) both}
}
@keyframes v2-enter{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (max-width:1199px) and (min-width:761px){.ws-content{padding:20px 24px 56px}.ws-context{padding:0 24px}}
@media (max-width:760px){
  .ws-owner-shell{display:block}
  .ws-owner-main{grid-column:auto;grid-row:auto}
  .ws-owner-rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--v2-line);padding:8px 16px}
  .ws-owner-rail .ws-nav,.ws-rail-toggle,.ws-owner-footer{display:none}
  .ws-owner-rail .ws-brand{padding:4px 0;min-height:44px}
  .ws-business-tools{margin:0 0 0 auto;border:0}
  .ws-context{padding:0 16px;min-height:52px}
  .ws-content{padding:16px 16px 96px}
  .ws-preferences-menu{right:0;left:auto;max-width:calc(100vw - 32px)}
}

/* ---------- 3. Components ---------- */
.v2-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--v2-control-md);padding:0 14px;border-radius:var(--v2-radius-sm);
  border:1px solid var(--v2-line-strong);background:var(--v2-surface);color:var(--v2-ink);font:500 14px/1 var(--v2-font);text-decoration:none;cursor:pointer;white-space:nowrap;
  transition:background-color var(--v2-dur-micro),border-color var(--v2-dur-micro),transform var(--v2-dur-micro)}
.v2-btn:hover{background:var(--v2-sunken)}
.v2-btn:active{transform:translateY(1px)}
.v2-btn .ws-icon,.v2-btn svg{width:18px;height:18px}
.v2-btn-primary{background:var(--v2-accent);border-color:var(--v2-accent);color:var(--v2-on-accent)}
.v2-btn-primary:hover{background:var(--v2-accent-hover);border-color:var(--v2-accent-hover)}
.v2-btn-ghost{background:transparent;border-color:transparent;color:var(--v2-muted)}
.v2-btn-ghost:hover{color:var(--v2-ink)}
.v2-btn-sm{height:var(--v2-control-sm);padding:0 10px;font-size:13px}
.v2-btn-lg{height:var(--v2-control-lg);padding:0 18px;font-size:15px}
.v2-btn[disabled],.v2-btn[aria-disabled="true"]{opacity:.5;pointer-events:none}
@media (pointer:coarse){.v2-btn{height:var(--v2-control-lg)}}

.v2-input{width:100%;min-height:var(--v2-control-md);padding:7px 12px;border:1px solid var(--v2-line-strong);border-radius:var(--v2-radius-sm);
  background:var(--v2-surface);color:var(--v2-ink);font:400 14px/1.4 var(--v2-font)}
:root[data-theme="dark"] .v2-input{background:var(--v2-sunken)}
.v2-input:hover{border-color:var(--v2-faint)}
.v2-input:focus{outline:none;border-color:var(--v2-accent-text);box-shadow:var(--v2-focus)}
textarea.v2-input{min-height:72px;resize:vertical}
select.v2-input{appearance:none;padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,var(--v2-muted) 50%),linear-gradient(135deg,var(--v2-muted) 50%,transparent 50%);
  background-position:calc(100% - 17px) 50%,calc(100% - 12px) 50%;background-size:5px 5px;background-repeat:no-repeat}
@media (pointer:coarse){.v2-input{min-height:var(--v2-control-lg);font-size:16px}}

.v2-kbd,kbd{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--v2-line);border-bottom-width:2px;
  border-radius:var(--v2-radius-xs);background:var(--v2-sunken);color:var(--v2-muted);font:500 12px/1 var(--v2-font)}
@media (pointer:coarse){kbd{display:none}}

.v2-status{display:inline-flex;align-items:center;gap:6px;height:22px;padding:0 8px;border-radius:var(--v2-radius-full);font-size:12px;font-weight:500;white-space:nowrap;
  background:var(--v2-sunken);color:var(--v2-muted)}
.v2-status::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.v2-status-new{background:var(--v2-info-soft);color:var(--v2-info)}
.v2-status-contacted::before{background:var(--v2-ink)}
.v2-status-estimate-scheduled{background:var(--v2-warning-soft);color:var(--v2-warning)}
.v2-status-won{background:var(--v2-success-soft);color:var(--v2-success)}
.v2-status-lost::before{background:var(--v2-danger)}
.v2-chip{display:inline-flex;align-items:center;height:22px;padding:0 8px;border-radius:var(--v2-radius-full);border:1px solid var(--v2-line);font-size:12px;color:var(--v2-muted);white-space:nowrap}

.v2-empty{padding:32px 16px;max-width:44ch}
.v2-empty h2{font-size:16px;font-weight:600;margin:0 0 6px}
.v2-empty p{color:var(--v2-muted);margin:0 0 14px;line-height:1.5}

.v2-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px}
.v2-page-head h1{margin:0;font-size:var(--v2-text-3xl);font-weight:620;letter-spacing:-.015em;font-stretch:84%;line-height:1.2}

/* ---------- 4. Inquiries: list + side panel ---------- */
.ws-content:has(.v2-inquiries){max-width:none;padding:0}
.ws-content:has(.v2-inquiries)>.ws-product-footer{display:none}
.v2-inquiries{display:grid;grid-template-columns:minmax(0,1fr) clamp(380px,36vw,520px);min-height:calc(100vh - 57px);align-items:start}
.v2-inq-list{padding:24px 32px 48px;min-width:0}
.v2-views{display:flex;gap:4px 20px;border-bottom:1px solid var(--v2-line);margin:0 0 12px;overflow-x:auto;scrollbar-width:none}
.v2-views::-webkit-scrollbar{display:none}
.v2-view{display:inline-flex;align-items:center;gap:6px;padding:10px 0;margin-bottom:-1px;border-bottom:2px solid transparent;color:var(--v2-muted);
  font-size:13px;font-weight:500;text-decoration:none;white-space:nowrap}
.v2-view span{font-variant-numeric:tabular-nums;color:var(--v2-faint);font-size:12px}
.v2-view:hover{color:var(--v2-ink)}
.v2-view.is-active{color:var(--v2-ink);border-bottom-color:var(--v2-ink)}
.v2-view.is-active span{color:var(--v2-muted)}
.v2-search{position:relative;margin:0 0 8px;max-width:420px}
.v2-search .v2-input{padding-right:36px}
.v2-search kbd{position:absolute;right:8px;top:50%;transform:translateY(-50%)}
.v2-rows{list-style:none;margin:0;padding:0;border-top:1px solid var(--v2-line)}
.v2-rows li{border-bottom:1px solid var(--v2-line)}
.v2-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:12px;align-items:center;min-height:60px;padding:10px 12px;color:var(--v2-ink);
  text-decoration:none;position:relative;border-radius:var(--v2-radius-sm);transition:background-color var(--v2-dur-micro)}
.v2-row:hover{background:var(--v2-sunken)}
.v2-row.is-selected{background:var(--v2-accent-soft)}
.v2-row.is-selected::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:2px;background:var(--v2-accent)}
.v2-row:focus-visible,.v2-row.is-cursor{box-shadow:inset 0 0 0 2px var(--v2-accent-text)}
.v2-avatar{width:32px;height:32px;border-radius:var(--v2-radius-full);display:grid;place-items:center;background:var(--v2-sunken);color:var(--v2-muted);font-size:13px;font-weight:600}
.v2-row-main{display:flex;flex-direction:column;min-width:0}
.v2-row-main strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-row-main span{font-size:13px;color:var(--v2-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-row-meta{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--v2-muted)}
.v2-row-meta time{font-variant-numeric:tabular-nums;min-width:88px;text-align:right}
.v2-inq-panel{position:sticky;top:0;height:100vh;overflow-y:auto;background:var(--v2-raised);border-left:1px solid var(--v2-line)}
.v2-panel{padding:20px 24px 40px}
.v2-panel-empty{display:grid;place-items:center;height:60vh;color:var(--v2-muted);text-align:center}
.v2-panel-head{position:relative;padding-bottom:16px;border-bottom:1px solid var(--v2-line)}
.v2-panel-head h2{margin:10px 0 4px;font-size:var(--v2-text-2xl);font-weight:600;letter-spacing:-.01em;font-stretch:92%;line-height:1.25;padding-right:40px}
.v2-panel-head p{margin:0;font-size:13px}
.v2-panel-close{position:absolute;right:-6px;top:-4px;width:36px;height:36px;border-radius:var(--v2-radius-sm);display:grid;place-items:center;color:var(--v2-muted)}
.v2-panel-close:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.v2-panel-close .ws-icon{width:18px;height:18px}
.v2-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.v2-panel-section{padding:18px 0;border-bottom:1px solid var(--v2-line)}
.v2-panel-section:last-child{border-bottom:0}
.v2-panel-section h3{margin:0 0 10px;font-size:13px;font-weight:600;color:var(--v2-muted)}
.v2-request{margin:0 0 14px;font-size:15px;line-height:1.55;max-width:60ch;white-space:pre-line}
.v2-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:0}
.v2-facts div{min-width:0}
.v2-facts dt{font-size:12px;color:var(--v2-muted);margin-bottom:2px}
.v2-facts dd{margin:0;font-size:14px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.v2-inline-form{display:flex;gap:8px;align-items:center}
.v2-inline-form .v2-input{flex:1;min-width:0}
.v2-stack-form{display:grid;gap:8px;margin-top:14px}
.v2-stack-form>label{font-size:13px;font-weight:500}
.v2-stack-form>.v2-btn{justify-self:start}
.v2-timeline{list-style:none;margin:16px 0 0;padding:0 0 0 14px;border-left:1px solid var(--v2-line)}
.v2-timeline li{position:relative;padding:0 0 14px 4px}
.v2-timeline li::before{content:"";position:absolute;left:-19px;top:6px;width:9px;height:9px;border-radius:50%;background:var(--v2-surface);border:2px solid var(--v2-line-strong)}
.v2-timeline li.is-note::before{border-color:var(--v2-accent-text)}
.v2-timeline p{margin:0;font-size:14px;line-height:1.45}
.v2-timeline time{font-size:12px;color:var(--v2-muted)}
@media (prefers-reduced-motion:no-preference){
  .v2-panel.is-entering{animation:v2-panel-in var(--v2-dur-panel) var(--v2-ease-spring) both}
}
@keyframes v2-panel-in{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@media (max-width:1199px){
  .v2-inquiries{grid-template-columns:minmax(0,1fr)}
  .v2-inq-panel{position:fixed;z-index:60;top:0;right:0;bottom:0;width:min(520px,100%);height:auto;box-shadow:var(--v2-shadow-3);
    transform:translateX(105%);transition:transform var(--v2-dur-panel) var(--v2-ease-spring)}
  .v2-inquiries.has-selection .v2-inq-panel{transform:none}
  .v2-inquiries.has-selection::after{content:"";position:fixed;inset:0;z-index:55;background:var(--v2-scrim)}
}
@media (max-width:760px){
  .v2-inq-list{padding:16px 16px 96px}
  .v2-inq-panel{top:auto;width:100%;height:92vh;border-left:0;border-radius:var(--v2-radius-lg) var(--v2-radius-lg) 0 0;transform:translateY(105%)}
  .v2-inq-panel::before{content:"";display:block;width:36px;height:4px;border-radius:2px;background:var(--v2-line-strong);margin:10px auto 0}
  .v2-row{grid-template-columns:32px minmax(0,1fr);min-height:68px}
  .v2-row-meta{grid-column:2;gap:8px}
  .v2-row-meta time{min-width:0;text-align:left;margin-left:auto}
  .v2-panel{padding:12px 16px 40px}
  .v2-facts{grid-template-columns:1fr}
}

/* ---------- 5. Today: morning briefing ---------- */
.v2-today-head,.v2-today-head.field-morning{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:8px 0 18px;flex-wrap:wrap;padding:0;background:none;border:0;box-shadow:none}
.v2-today-head>div{min-width:0;flex:0 1 auto;margin:0}
.v2-today-meta{display:flex;align-items:baseline;gap:12px;font-size:13px;font-weight:500;color:var(--v2-ink)}
.v2-today-actions{display:flex;gap:8px;flex-wrap:wrap}
.v2-briefing{margin:0 0 36px;max-width:30em;font-size:var(--v2-text-3xl);line-height:1.32;font-weight:560;letter-spacing:-.015em;font-stretch:84%;color:var(--v2-ink);text-wrap:pretty}
.v2-briefing-greet{color:var(--v2-muted)}
.v2-mark{color:inherit;text-decoration:none;font-variant-numeric:tabular-nums;padding:0 .12em;margin:0 -.04em;border-radius:3px;
  background:linear-gradient(var(--v2-accent-soft),var(--v2-accent-soft)) no-repeat 0 82%/100% 46%;
  box-shadow:inset 0 -2px 0 color-mix(in srgb,var(--v2-accent-text) 55%,transparent);transition:background-size var(--v2-dur-base) var(--v2-ease-out)}
.v2-mark:hover{background-size:100% 100%}
@media (prefers-reduced-motion:no-preference){
  .v2-briefing.is-swiping .v2-mark{animation:v2-swipe 600ms var(--v2-ease-out) both}
  .v2-briefing.is-swiping .v2-mark:nth-of-type(2){animation-delay:120ms}
  .v2-briefing.is-swiping .v2-mark:nth-of-type(3){animation-delay:240ms}
  .v2-briefing.is-swiping .v2-mark:nth-of-type(4){animation-delay:360ms}
}
@keyframes v2-swipe{from{background-size:0% 46%}to{background-size:100% 46%}}
.v2-today-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:40px;align-items:start}
.v2-today-col{min-width:0}
.v2-col-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 10px;border-bottom:1px solid var(--v2-line);margin:0 0 4px}
.v2-col-head h2{margin:0;font-size:15px;font-weight:600}
.v2-count{display:inline-grid;place-items:center;min-width:20px;height:20px;padding:0 6px;border-radius:var(--v2-radius-full);background:var(--v2-sunken);font-size:12px;font-variant-numeric:tabular-nums;color:var(--v2-muted);vertical-align:2px}
.v2-link{font-size:13px;font-weight:500;color:var(--v2-accent-text);text-decoration:none}
.v2-link:hover{text-decoration:underline;text-underline-offset:3px}
.v2-list{list-style:none;margin:0 0 28px;padding:0}
.v2-list>li{border-bottom:1px solid var(--v2-line)}
.v2-need{display:flex;align-items:center;gap:8px}
.v2-need-main{flex:1;min-width:0;display:grid;grid-template-columns:10px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px 8px;color:var(--v2-ink);text-decoration:none;border-radius:var(--v2-radius-sm)}
.v2-need-main:hover{background:var(--v2-sunken)}
.v2-need-text{display:flex;flex-direction:column;min-width:0}
.v2-need-text strong{font-size:14px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-need-text small{font-size:13px;color:var(--v2-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-need-main time{font-size:12px;color:var(--v2-muted);font-variant-numeric:tabular-nums}
.v2-need-actions{display:flex;gap:4px;flex:none}
.v2-dot{width:8px;height:8px;border-radius:50%;border:2px solid var(--v2-info)}
.v2-dot.is-new{background:var(--v2-info)}
.v2-dot.is-due{border-color:var(--v2-warning);background:var(--v2-warning)}
.v2-quiet{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:14px 4px}
.v2-quiet strong{font-size:14px;font-weight:600}
.v2-quiet p{margin:2px 0 0;font-size:13px;color:var(--v2-muted);line-height:1.45;max-width:52ch}
.v2-route{list-style:none;margin:0 0 28px;padding:6px 0 0}
.v2-route li{display:grid;grid-template-columns:56px minmax(0,1fr);gap:12px;position:relative;padding:0 0 18px}
.v2-route li::before{content:"";position:absolute;left:68px;top:22px;bottom:0;border-left:2px dotted var(--v2-line-strong)}
.v2-route li:last-child::before{display:none}
.v2-route time{font-size:14px;font-weight:600;font-variant-numeric:tabular-nums;padding-top:2px}
.v2-route li>div{display:flex;flex-direction:column;gap:2px;padding-left:22px;position:relative}
.v2-route li>div::before{content:"";position:absolute;left:-1px;top:7px;width:10px;height:10px;border-radius:50%;background:var(--v2-surface);border:2px solid var(--v2-accent-text)}
.v2-route li.is-done{opacity:.55}
.v2-route li.is-done>div::before{background:var(--v2-line-strong);border-color:var(--v2-line-strong)}
.v2-route a{color:var(--v2-ink);text-decoration:none}
.v2-route a:hover strong{text-decoration:underline;text-underline-offset:3px}
.v2-route span{font-size:13px}
.v2-warn{color:var(--v2-warning);font-weight:500}
.v2-route-actions{display:flex;gap:6px;margin-top:6px}
.v2-today-more{margin-top:12px;padding-top:24px;border-top:1px solid var(--v2-line)}
.v2-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--v2-line);border-radius:var(--v2-radius-md);background:var(--v2-surface);margin:0 0 32px;overflow:hidden}
.v2-stages a{display:flex;flex-direction:column;gap:2px;padding:14px 16px;text-decoration:none;color:var(--v2-muted);font-size:12px;font-weight:500;border-left:1px solid var(--v2-line)}
.v2-stages a:first-child{border-left:0}
.v2-stages a:hover{background:var(--v2-sunken)}
.v2-stages strong{font-size:24px;font-weight:620;font-stretch:84%;color:var(--v2-ink);font-variant-numeric:tabular-nums;line-height:1.1}
.v2-list-compact>li>a{display:flex;justify-content:space-between;gap:12px;padding:10px 4px;color:var(--v2-ink);text-decoration:none;font-size:14px}
.v2-list-compact>li>a:hover{background:var(--v2-sunken)}
.v2-list-compact small{color:var(--v2-muted);font-size:12px;white-space:nowrap}
.v2-li-empty{padding:12px 4px;font-size:13px}
.v2-setup{margin-top:24px}
@media (max-width:1023px){.v2-today-grid{grid-template-columns:minmax(0,1fr);gap:8px}}
@media (max-width:760px){
  .v2-briefing{font-size:var(--v2-text-2xl);font-stretch:92%;margin-bottom:24px}
  .v2-stages{grid-template-columns:repeat(3,minmax(0,1fr))}
  .v2-stages a:nth-child(4){border-left:0}
  .v2-stages a:nth-child(n+4){border-top:1px solid var(--v2-line)}
  .v2-need{flex-wrap:wrap}
  .v2-need-main{grid-template-columns:10px minmax(0,1fr);row-gap:2px}
  .v2-need-main time{grid-column:2}
  .v2-need-actions{padding:0 0 10px 30px}
  .v2-quiet{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ---------- 6. Operator home ---------- */
.v2-skip{position:absolute;left:-9999px}.v2-skip:focus{left:16px;top:12px;z-index:90;background:var(--v2-raised);padding:8px 12px;border-radius:var(--v2-radius-sm)}
.v2-op{margin:0;background:var(--v2-canvas)}
.v2-op-shell{display:grid;grid-template-columns:208px minmax(0,1fr);min-height:100vh}
.v2-op-rail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:16px 12px;background:var(--v2-surface);border-right:1px solid var(--v2-line)}
.v2-op-brand{display:flex;align-items:center;gap:10px;padding:4px 8px;font-weight:650;color:var(--v2-ink);text-decoration:none}
.v2-op-nav{display:flex;flex-direction:column;gap:2px}
.v2-op-nav a{display:flex;align-items:center;height:36px;padding:0 10px;border-radius:var(--v2-radius-sm);color:var(--v2-muted);font-size:13px;font-weight:500;text-decoration:none}
.v2-op-nav a:hover{background:var(--v2-sunken);color:var(--v2-ink)}
.v2-op-nav a.is-active{background:var(--v2-accent-soft);color:var(--v2-ink)}
.v2-op-rail-foot{margin-top:auto;display:flex;flex-direction:column;align-items:flex-start;gap:6px;font-size:12px}
.v2-op-rail-foot a{color:var(--v2-muted);padding:0 10px}
.v2-op-main{padding:24px 40px 64px;max-width:1320px;min-width:0}
.v2-op-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:start}
.v2-op-group{margin:16px 0 8px}
.v2-op-group h3{margin:0 0 4px;font-size:13px;font-weight:600;color:var(--v2-muted);display:flex;align-items:center;gap:8px}
.v2-op-group .v2-list{margin-bottom:12px}
.v2-op-group .v2-list-compact>li>a{align-items:center}
.v2-op-group .v2-list-compact span:first-child{display:flex;flex-direction:column;min-width:0}
.v2-op-group small{font-size:12px;color:var(--v2-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v2-health{width:100%;border-collapse:collapse;font-size:13px;margin-top:8px}
.v2-health th,.v2-health td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--v2-line);vertical-align:middle}
.v2-health thead th{font-size:12px;font-weight:500;color:var(--v2-muted)}
.v2-health tbody th{font-weight:600}
.v2-health tbody th a{color:var(--v2-ink);text-decoration:none}
.v2-health tbody th a:hover{text-decoration:underline}
.v2-health tbody th small{display:block;font-weight:500;font-size:12px;color:var(--v2-muted)}
.v2-health tr.needs-look th{box-shadow:inset 3px 0 0 var(--v2-warning)}
.v2-health tr.is-sample{opacity:.7}
.v2-num{font-variant-numeric:tabular-nums;text-align:right}
.v2-beat{display:inline-flex;align-items:flex-end;gap:2px;height:24px;vertical-align:middle}
.v2-beat i{display:block;width:5px;height:max(2px,var(--h));border-radius:1px;background:var(--v2-accent-text);opacity:.85}
.v2-beat-total{margin-left:8px;font-variant-numeric:tabular-nums;color:var(--v2-muted)}
.v2-health-note{font-size:12px;margin-top:10px}
@media (prefers-reduced-motion:no-preference){.v2-beat i{animation:v2-beat 600ms var(--v2-ease-out) both}}
@keyframes v2-beat{from{transform:scaleY(0);transform-origin:bottom}to{transform:scaleY(1);transform-origin:bottom}}
@media (max-width:1023px){.v2-op-grid{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){
  .v2-op-shell{grid-template-columns:minmax(0,1fr)}
  .v2-op-rail{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px;border-right:0;border-bottom:1px solid var(--v2-line)}
  .v2-op-nav{flex-direction:row;flex-wrap:wrap}
  .v2-op-rail-foot{margin:0 0 0 auto;flex-direction:row;align-items:center}
  .v2-op-main{padding:16px 16px 48px}
  .v2-health thead th:nth-child(2),.v2-health td:nth-child(2){display:none}
}
