/* ============================================================================
   legacy-ds.css — Legacy design system (2026 re-skin, "stage colour" language)
   ----------------------------------------------------------------------------
   The new CRM / portal visual language: Barlow Condensed + Barlow, square
   corners, hairline depth, six stage colours that travel with a deal.

   SCOPED on purpose. Every token and component lives under `.ds` so screens
   can be converted one at a time without restyling the un-migrated views.
   Wrap a re-skinned screen in `<div class="ds"> … </div>`.
   Fonts are declared globally (harmless) and self-hosted under /fonts/.
   ========================================================================== */

/* ---- Barlow (body) ---- */
@font-face{font-family:'Barlow';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/barlow-400-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:'Barlow';font-style:normal;font-weight:400;font-display:swap;
  src:url('/fonts/barlow-400-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:500;font-display:swap;
  src:url('/fonts/barlow-500-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:'Barlow';font-style:normal;font-weight:500;font-display:swap;
  src:url('/fonts/barlow-500-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}
@font-face{font-family:'Barlow';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/barlow-600-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:'Barlow';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/barlow-600-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}
/* ---- Barlow Condensed (headings, figures, labels, nav) ---- */
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/barlowcondensed-600-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:'Barlow Condensed';font-style:normal;font-weight:600;font-display:swap;
  src:url('/fonts/barlowcondensed-600-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}
@font-face{font-family:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('/fonts/barlowcondensed-700-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:'Barlow Condensed';font-style:normal;font-weight:700;font-display:swap;
  src:url('/fonts/barlowcondensed-700-latin-ext.woff2') format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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;}

/* ============================ TOKENS ===================================== */
.ds{
  --page:#e4e4e8; --panel:#f2f2f3; --band:#ebebee;
  --ink:#1d1f20; --ink-dark:#1d2d3d; --muted:#5d5d60; --faint:#7a7a7d;
  --border:#b7b7ba; --rule:#d4d4d7; --hair:#e0e0e3; --track:#e7e7ea;
  --inv-label:#94bce3; --inv-sub:#c9d8e6; --avatar:#2c455d;
  --amber:#b26a1f; --amber-bg:#f6ecdd; --amber-bd:#d3bc8f; --amber-ink:#6d3f0e;
  --good:#2c4a33; --alert:#a33f2f;
  --cond:'Barlow Condensed','Arial Narrow',system-ui,sans-serif;
  --body:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  font-family:var(--body); color:var(--ink);
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
}
.ds *{box-sizing:border-box;}

/* stage colours travel with a deal via data-stg="…" */
.ds [data-stg]{--stg:#8a8f95;}
.ds [data-stg="new"],.ds [data-stg="sphere"]{--stg:#8a8f95;}
.ds [data-stg="nurture"]{--stg:#6b5a86;}
.ds [data-stg="consult"],.ds [data-stg="signed"],.ds [data-stg="preparing"]{--stg:#3f7d7a;}
.ds [data-stg="active"],.ds [data-stg="on_market"],.ds [data-stg="showing_homes"]{--stg:#597ea3;}
.ds [data-stg="reviewing_offers"],.ds [data-stg="writing_offers"],.ds [data-stg="offer"]{--stg:#2c455d;}
.ds [data-stg="under_contract"],.ds [data-stg="in_escrow"]{--stg:#b26a1f;}
.ds [data-stg="closed"]{--stg:#4a7a55;}

/* ============================ PRIMITIVES ================================= */

/* screen wrapper — the single bordered rectangle on the page ground */
.ds-screen{background:var(--panel);border:1px solid var(--border);position:relative;}
.ds-corners{position:absolute;inset:0;pointer-events:none;z-index:4;}
.ds-corners i{position:absolute;width:9px;height:9px;}
.ds-corners i::before{content:"";position:absolute;left:0;top:4px;width:9px;height:1px;background:var(--faint);}
.ds-corners i::after{content:"";position:absolute;top:0;left:4px;width:1px;height:9px;background:var(--faint);}
.ds-corners i:nth-child(1){left:-5px;top:-5px;}.ds-corners i:nth-child(2){right:-5px;top:-5px;}
.ds-corners i:nth-child(3){left:-5px;bottom:-5px;}.ds-corners i:nth-child(4){right:-5px;bottom:-5px;}

/* top chrome — wordmark + product label + nav pills + right group */
.ds-topbar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;
  padding:15px 28px;border-bottom:1px solid var(--rule);background:var(--panel);}
.ds-wordmark{font-family:var(--cond);font-weight:700;font-size:21px;letter-spacing:.14em;color:var(--ink);text-decoration:none;}
.ds-vr{width:1px;height:22px;background:var(--rule);}
.ds-prod{font-size:15px;color:var(--muted);}
.ds-nav{display:flex;gap:8px;margin-left:22px;flex-wrap:wrap;}
.ds-navpill{font-family:var(--body);font-size:13px;letter-spacing:.06em;text-transform:uppercase;
  padding:5px 13px;color:var(--muted);background:none;border:none;cursor:pointer;text-decoration:none;}
.ds-navpill:hover{background:var(--band);}
.ds-navpill.on{background:var(--ink-dark);color:var(--panel);}
.ds-right{margin-left:auto;display:flex;align-items:center;gap:14px;}
.ds-user{display:inline-flex;align-items:center;gap:9px;font-size:15px;color:var(--ink);}
.ds-avatar{width:30px;height:30px;background:var(--avatar);color:var(--panel);
  font-family:var(--cond);font-weight:600;font-size:12px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;}
.ds-avatar img{width:100%;height:100%;object-fit:cover;}

/* buttons — square, hairline secondary, ink-dark primary, one amber variant */
.ds-btn{font-family:var(--body);font-size:15px;padding:8px 16px;border:1px solid var(--border);
  background:transparent;color:var(--ink);cursor:pointer;line-height:1.1;}
.ds-btn:hover{background:var(--band);}
.ds-btn--primary{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds-btn--primary:hover{background:#16222f;}
.ds-btn--amber{background:var(--amber);color:var(--amber-bg);border-color:var(--amber);}
.ds-btn--amber:hover{background:#96581a;}

/* title block */
.ds-title{display:flex;align-items:flex-end;gap:26px;flex-wrap:wrap;
  padding:22px 28px 18px;border-bottom:1px solid var(--rule);}
.ds-kicker{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:8px;}
.ds-headline{font-family:var(--cond);font-weight:600;font-size:42px;line-height:1;margin:0;color:var(--ink);}
.ds-alert{margin-left:auto;display:inline-flex;align-items:center;gap:12px;
  padding:10px 16px;border:1px solid var(--amber-bd);background:var(--amber-bg);color:var(--amber-ink);}
.ds-alert .sq{width:13px;height:13px;background:var(--amber);flex:none;}
.ds-alert b{font-size:16px;font-weight:600;}

/* hint / band row */
.ds-hint{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;
  padding:12px 28px;background:var(--band);border-bottom:1px solid var(--rule);
  font-size:14px;color:var(--faint);}

/* filter row */
.ds-filter{display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  padding:12px 28px;background:var(--band);border-bottom:1px solid var(--rule);}
.ds-fpill{font-size:14px;padding:4px 11px;border:1px solid var(--border);background:var(--panel);
  color:var(--muted);cursor:pointer;line-height:1.2;}
.ds-fpill.on{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds-filter .note{margin-left:auto;color:var(--faint);font-size:14px;}

/* stat strip — hairline-gutter grid, first cell inverted */
.ds-strip{display:grid;gap:1px;background:var(--rule);border-bottom:1px solid var(--rule);}
.ds-strip.c4{grid-template-columns:repeat(4,1fr);}
.ds-strip.c5{grid-template-columns:repeat(5,1fr);}
.ds-cell{background:var(--panel);padding:18px 22px;}
/* crm.css defines its own legacy .ds-cell (old stat grid) with display:flex;
   scope our stat-strip cells so that flex/gap can't leak onto them on crm.html.
   Kept as .ds-strip .ds-cell (higher specificity) so the old grids are untouched. */
.ds-strip .ds-cell{display:block;}
.ds-cell.inv{background:var(--ink-dark);}
.ds-cell .lab{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);margin-bottom:9px;}
.ds-cell.inv .lab{color:var(--inv-label);}
.ds-cell .fig{font-family:var(--cond);font-weight:600;font-size:38px;line-height:1.05;color:var(--ink);}
.ds-cell.inv .fig{color:var(--panel);}
.ds-cell .sub{font-size:13px;color:var(--muted);margin-top:5px;}
.ds-cell.inv .sub{color:var(--inv-sub);}

/* status pill (small) */
.ds-pill{display:inline-flex;align-items:center;gap:5px;font-family:var(--cond);font-weight:600;
  font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:1px 7px;border:1px solid var(--rule);
  color:var(--muted);background:var(--band);white-space:nowrap;}

/* ============================ PIPELINE BOARD ============================ */
.ds-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(190px,1fr);gap:1px;
  background:var(--rule);border-bottom:1px solid var(--rule);}
.ds-col{background:var(--panel);display:flex;flex-direction:column;min-width:0;}
.ds-col-h{padding:14px 18px;border-bottom:1px solid var(--rule);}
.ds-col-h .row{display:flex;align-items:center;gap:9px;}
.ds-col-h .sq{width:13px;height:13px;background:var(--stg);flex:none;}
.ds-col-h .nm{font-family:var(--cond);font-weight:600;font-size:20px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);}
.ds-col-h .sub{font-size:14px;color:var(--faint);margin-top:4px;}
.ds-col-body{padding:14px 18px;display:flex;flex-direction:column;gap:12px;flex:1;}
.ds-col-empty{font-size:13px;color:var(--faint);font-style:italic;padding:2px;}

/* deal card (pipeline board) — hairline box, stage stripe, corner marks.
   NOTE: named .ds-dcard (not .ds-card) — .ds-card is the portal/dashboard block
   card; the two must not share a class or the board's display:flex leaks onto
   every portal card and lays their contents out in a squished row. */
.ds-dcard{position:relative;display:flex;background:var(--panel);border:1px solid var(--border);
  padding:0;cursor:pointer;}
.ds-dcard:hover{background:#eeeef0;}
.ds-dcard .stripe{width:5px;align-self:stretch;background:var(--stg);flex:none;}
.ds-dcard .body{padding:12px 13px;min-width:0;flex:1;}
.ds-dcard .nm{font-size:16px;font-weight:600;color:var(--ink);line-height:1.2;}
.ds-dcard .ctx{font-size:13px;color:var(--faint);margin-top:2px;}
.ds-dcard .val{margin-top:7px;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.ds-dcard .val .num{font-family:var(--cond);font-weight:600;font-size:21px;color:var(--ink);}
.ds-dcard .val .st{font-size:13px;color:var(--muted);}
.ds-dcard .val .st.bad{color:var(--amber-ink);}
.ds-dcard .val .st.good{color:var(--good);}
.ds-dcard .next{font-size:14px;color:var(--muted);margin-top:6px;}
.ds-dcard .marks i{position:absolute;width:7px;height:7px;}
.ds-dcard .marks i::before{content:"";position:absolute;left:0;top:3px;width:7px;height:1px;background:var(--rule);}
.ds-dcard .marks i::after{content:"";position:absolute;top:0;left:3px;width:1px;height:7px;background:var(--rule);}
.ds-dcard .marks i:nth-child(1){left:2px;top:2px;}.ds-dcard .marks i:nth-child(2){right:2px;top:2px;}
.ds-dcard .marks i:nth-child(3){left:2px;bottom:2px;}.ds-dcard .marks i:nth-child(4){right:2px;bottom:2px;}
/* urgency: amber stripe = stale; full amber = a dated deadline */
.ds-dcard.stale .stripe{background:var(--amber);}
.ds-dcard.due{border-color:var(--amber-bd);background:var(--amber-bg);}
.ds-dcard.due .stripe{background:var(--amber);}
.ds-dcard.due:hover{background:#f2e6d3;}
.ds-dcard.dragging{opacity:.5;}
.ds-col.drop-target{outline:2px solid var(--stg);outline-offset:-2px;}

.ds-more-count{font-size:14px;color:var(--faint);padding:4px 2px;}
.ds-notebox{border:1px solid #a9c2d8;background:#eef2f6;color:#2c455d;font-size:13px;padding:10px 12px;line-height:1.4;margin-top:2px;}

/* board scroller on narrow screens */
.ds-board-wrap{overflow-x:auto;}
@media(max-width:1000px){
  .ds-board{grid-auto-columns:minmax(210px,240px);}
}
@media(max-width:760px){
  .ds-topbar{padding:12px 16px;}
  .ds-nav{margin-left:0;order:3;width:100%;}
  .ds-title{padding:16px 16px 14px;}
  .ds-headline{font-size:32px;}
  .ds-alert{margin-left:0;}
  .ds-strip.c4,.ds-strip.c5{grid-template-columns:1fr 1fr;}
  .ds-hint,.ds-filter{padding:10px 16px;}
}

/* ============================ APP SHELL ================================= */
/* Top-nav replaces the sidebar. Gated on body.ds-appshell so it's explicit and
   reversible. The sidebar markup stays in the DOM (boot code reads some of its
   nodes) but is hidden; the persistent .ds-appbar carries navigation. */
body.ds-appshell{background:var(--page);}
body.ds-appshell .app-side,
body.ds-appshell .app-topbar,
body.ds-appshell .crm-tabs,
body.ds-appshell .nav-scrim{display:none !important;}
body.ds-appshell .app{display:block;}
body.ds-appshell .app-main{margin:0;width:100%;max-width:none;}
body.ds-appshell .crm-main{padding:0;}
.ds-appbar-wrap{position:sticky;top:0;z-index:20;}
.ds-appbar-wrap .ds-topbar{background:var(--panel);border-bottom:1px solid var(--rule);}
/* the persistent app header carries an active-state on its own pills */
.ds-navpill[data-view]{cursor:pointer;}
/* the migrated screens get page-ground breathing room under the appbar */
body.ds-appshell .crm-view[data-view="pipe"]{padding:22px;}
body.ds-appshell .crm-view[data-view="today"]{padding:22px;}
body.ds-appshell .crm-view[data-view="people"]{padding:22px;}
body.ds-appshell .crm-view[data-view="roster"]{padding:22px;}
body.ds-appshell .crm-view[data-view="cal"]{padding:22px;}
body.ds-appshell .crm-view[data-view="dealsall"]{padding:22px;}
body.ds-appshell .crm-view[data-view="cowork"]{padding:22px;}
body.ds-appshell .crm-view[data-view="curate"]{padding:22px;}
body.ds-appshell .crm-view[data-view="broker"]{padding:22px;}
body.ds-appshell .crm-view[data-view="seq"]{padding:22px;}
body.ds-appshell .crm-view[data-view="rep"]{padding:22px;}
body.ds-appshell .crm-view[data-view="broadcast"]{padding:22px;}
body.ds-appshell .crm-view[data-view="settings"]{padding:22px;}
body.ds-appshell .crm-view[data-view="listings"]{padding:22px;}
/* the bespoke Today body is superseded by the .ds-dash block above it */
body.ds-appshell .crm-view[data-view="today"] > .today{display:none;}

/* "More" overflow menu (native details/summary — no JS) */
.ds-more{position:relative;}
.ds-more>summary{list-style:none;cursor:pointer;font-family:var(--body);font-size:13px;
  letter-spacing:.06em;text-transform:uppercase;padding:5px 13px;color:var(--muted);}
.ds-more>summary::-webkit-details-marker{display:none;}
.ds-more>summary::after{content:" ▾";}
.ds-more[open]>summary{background:var(--ink-dark);color:var(--panel);}
.ds-more-menu{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;z-index:30;
  background:var(--panel);border:1px solid var(--border);display:flex;flex-direction:column;}
.ds-more-menu a{padding:9px 14px;font-size:14px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--hair);cursor:pointer;}
.ds-more-menu a:last-child{border-bottom:none;}
.ds-more-menu a:hover{background:var(--band);}
.ds-more-menu .sep{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.12em;
  text-transform:uppercase;color:var(--faint);padding:8px 14px 4px;border-bottom:1px solid var(--hair);}

/* appbar search */
.ds-search{display:flex;align-items:center;gap:8px;border:1px solid var(--border);
  background:var(--panel);padding:5px 10px;min-width:200px;}
.ds-search input{border:none;background:none;outline:none;font-family:var(--body);font-size:14px;color:var(--ink);width:100%;}
.ds-search .k{font-family:var(--cond);font-size:11px;color:var(--faint);}

/* ============================ DASHBOARD 1A ============================== */
.ds-legend{display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;
  padding:12px 28px;background:var(--band);border-bottom:1px solid var(--rule);}
.ds-legend-lab{font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
.ds-sw{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:var(--muted);}
.ds-sw i{width:12px;height:12px;background:var(--stg);display:inline-block;flex:none;}

.ds-dash-body{display:grid;grid-template-columns:1fr 1.45fr;gap:1px;background:var(--rule);border-bottom:1px solid var(--rule);}
.ds-dash-left,.ds-dash-right{background:var(--panel);padding:20px 24px;min-width:0;}
.ds-panel-h{display:flex;align-items:baseline;gap:10px;margin:0 0 14px;}
.ds-panel-h h3{font-family:var(--cond);font-weight:600;font-size:24px;margin:0;color:var(--ink);}
.ds-panel-h.sm h4{font-family:var(--cond);font-weight:600;font-size:17px;margin:0;color:var(--ink);letter-spacing:.02em;}
.ds-panel-sub{font-size:13px;color:var(--faint);margin-left:auto;}

/* Today list */
.ds-today-list{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-today-row{background:var(--panel);display:flex;align-items:flex-start;gap:11px;padding:12px 13px;position:relative;}
.ds-today-row .stripe{width:5px;align-self:stretch;background:var(--stg);flex:none;}
.ds-today-row .tr-b{flex:1;min-width:0;}
.ds-today-row .tt{font-size:15px;font-weight:600;color:var(--ink);}
.ds-today-row .cx{font-size:13px;color:var(--faint);margin-top:2px;}
.ds-today-row .due{font-size:14px;color:var(--muted);white-space:nowrap;font-variant-numeric:tabular-nums;}
.ds-today-row .due.bad{color:var(--amber-ink);}
/* hero — the one urgent item as a full amber card with actions */
.ds-hero{background:var(--amber-bg);border:1px solid var(--amber-bd);padding:16px 16px;margin-bottom:12px;}
.ds-hero .lab{font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--amber-ink);}
.ds-hero .tt{font-family:var(--cond);font-weight:600;font-size:22px;color:var(--ink);margin:5px 0 3px;line-height:1.05;}
.ds-hero .cx{font-size:14px;color:#5a4a30;margin-bottom:12px;}
.ds-hero .acts{display:flex;gap:9px;flex-wrap:wrap;}
.ds-quiet-list{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-quiet-row{background:var(--panel);display:flex;justify-content:space-between;gap:10px;padding:10px 13px;font-size:14px;}
.ds-quiet-row .nm{color:var(--ink);font-weight:500;}
.ds-quiet-row .dy{color:var(--alert);white-space:nowrap;font-variant-numeric:tabular-nums;}
.ds-empty-line{padding:12px 4px;color:var(--faint);font-size:13.5px;font-style:italic;}

/* pipeline segmented bar */
.ds-segbar{display:flex;height:26px;border:1px solid var(--border);overflow:hidden;}
.ds-seg{background:var(--stg);border-right:1px solid var(--panel);min-width:2px;}
.ds-seg:last-child{border-right:none;}
.ds-seglabels{display:flex;margin:8px 0 20px;gap:0;}
.ds-seglabel{min-width:0;padding-right:8px;}
.ds-seglabel .nm{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ds-seglabel .ct{font-family:var(--cond);font-weight:600;font-size:19px;color:var(--ink);}
.ds-seglabel .dot{display:inline-block;width:9px;height:9px;background:var(--stg);margin-right:5px;}

/* deal table */
.ds-dealtable{border:1px solid var(--rule);margin-bottom:20px;}
.ds-dt-h,.ds-dt-r{display:grid;grid-template-columns:1.3fr 1.4fr 1fr .9fr;gap:12px;padding:9px 13px;align-items:center;}
.ds-dt-h{background:var(--band);font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);}
.ds-dt-r{border-top:1px solid var(--hair);font-size:14px;}
.ds-dt-r .prop{color:var(--ink);font-weight:600;}
.ds-dt-r .who{color:var(--faint);font-size:13px;}
.ds-dt-r .val{font-family:var(--cond);font-weight:600;font-size:19px;text-align:right;}
.ds-stagepill{display:inline-flex;align-items:center;gap:6px;font-size:12px;padding:2px 8px;
  border:1px solid var(--stg);color:var(--stg);white-space:nowrap;}
.ds-stagepill i{width:8px;height:8px;background:var(--stg);flex:none;}

/* funnel + activity footer */
.ds-dash-foot{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.ds-funnel{display:flex;flex-direction:column;gap:9px;}
.ds-funnel-row{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:center;font-size:13px;}
.ds-funnel-row .fl{color:var(--muted);}
.ds-funnel-row .track{height:8px;background:var(--track);}
.ds-funnel-row .fill{height:8px;background:var(--stg);}
.ds-funnel-row .fv{font-family:var(--cond);font-weight:600;font-size:15px;color:var(--ink);}
.ds-activity{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-activity-row{background:var(--panel);display:flex;gap:10px;padding:9px 12px;}
.ds-activity-row .stripe{width:4px;align-self:stretch;background:var(--stg);flex:none;}
.ds-activity-row .tt{font-size:13.5px;color:var(--ink);}
.ds-activity-row .tm{font-size:12px;color:var(--faint);margin-top:1px;}

@media(max-width:900px){
  .ds-dash-body{grid-template-columns:1fr;}
  .ds-dash-foot{grid-template-columns:1fr;}
  .ds-dt-h,.ds-dt-r{grid-template-columns:1.3fr 1fr .9fr;}
  .ds-dt-h .who-col,.ds-dt-r .who{display:none;}
}

/* ============================ CONTACTS 2A =============================== */
.ds-filter .ds-fpill b{font-weight:600;color:inherit;opacity:.7;margin-left:4px;}
.ds-cbody{display:grid;grid-template-columns:1.5fr 1fr;gap:1px;background:var(--rule);border-bottom:1px solid var(--rule);}
.ds-ctbl{background:var(--panel);min-width:0;}
.ds-ctbl-h,.ds-ctbl-r{display:grid;grid-template-columns:2fr 1.4fr 1.1fr 1fr;gap:12px;align-items:center;}
.ds-ctbl-h{background:var(--band);padding:11px 24px;font-family:var(--cond);font-weight:600;font-size:13px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--rule);}
.ds-ctbl-scroll{max-height:640px;overflow:auto;}
.ds-ctbl-r{position:relative;padding:12px 24px 12px 34px;border-bottom:1px solid var(--hair);cursor:pointer;}
.ds-ctbl-r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:6px;background:var(--stg);}
.ds-ctbl-r:last-child{border-bottom:none;}
.ds-ctbl-r:hover{background:#eeeef0;}
.ds-ctbl-r.on{background:#eef2f6;}
.ds-ctbl-r .nm{font-size:16px;font-weight:600;color:var(--ink);}
.ds-ctbl-r .cx{font-size:13px;color:var(--faint);margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-ctbl-r .lt{font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums;}
.ds-ctbl-r .lt.bad{color:var(--alert);}
.ds-ctbl-r .ow{font-size:13.5px;color:var(--muted);text-transform:capitalize;}
.ds-ctbl-empty{padding:28px 24px;color:var(--faint);font-size:14px;font-style:italic;}

.ds-cdetail{background:var(--panel);padding:22px;min-width:0;}
.ds-cdetail .cd-empty{color:var(--faint);font-style:italic;font-size:14px;}
.cd-h{display:flex;gap:12px;align-items:center;}
.cd-h .ds-avatar{width:44px;height:44px;font-size:16px;}
.cd-name{font-family:var(--cond);font-weight:600;font-size:24px;color:var(--ink);line-height:1.05;}
.cd-sub{font-size:13px;color:var(--faint);margin-top:2px;}
.cd-rows{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);margin:16px 0;}
.cd-row{background:var(--panel);display:flex;justify-content:space-between;gap:12px;padding:10px 13px;font-size:14px;}
.cd-row .k{color:var(--faint);}
.cd-row .v{color:var(--ink);text-align:right;overflow:hidden;text-overflow:ellipsis;}
.cd-row a{color:#416180;text-decoration:none;}
.cd-side{margin:0 0 14px;}
.cd-side label{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);display:block;margin-bottom:5px;}
.cd-side select{font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--border);background:var(--panel);width:100%;color:var(--ink);}
@media(max-width:900px){ .ds-cbody{grid-template-columns:1fr;} .ds-ctbl-h,.ds-ctbl-r{grid-template-columns:2fr 1.2fr 1fr;} .ds-ctbl-h .ow-col,.ds-ctbl-r .ow{display:none;} }

/* ===================== SELLER / BUYER PORTAL (1A spine) ================= */
.ds-portal{max-width:1120px;margin:0 auto;padding:22px;}
.ds-portal-top{max-width:1120px;margin:0 auto;}
.ds-portal-top .ds-right{gap:16px;}
.ds-portal-addr{font-size:14px;color:var(--muted);}
.ds-portal-hero{align-items:flex-end;}
.ds-portal-sub{font-size:15px;color:var(--faint);margin-top:4px;}
.ds-portal-price{margin-left:auto;text-align:right;}
.ds-portal-price .lab{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}
.ds-portal-price .fig{font-family:var(--cond);font-weight:600;font-size:34px;color:var(--ink);line-height:1.05;}
.ds-portal-price .sub{font-size:13px;color:var(--muted);}
.ds-portal-tour{display:flex;gap:8px;flex-wrap:wrap;padding:0 0 0 0;}
.ds-portal-tour a{display:inline-block;padding:8px 14px;border:1px solid var(--border);font-size:14px;color:var(--ink);text-decoration:none;margin:12px 0 0;}
.ds-portal-tour a:hover{background:var(--band);}
/* Playable media (video + 3D tour) sitting side by side, kept compact. */
.ds-tour-grid{display:flex;gap:12px;flex-wrap:wrap;margin:14px 0 4px;}
.ds-tour-cell{flex:1 1 260px;min-width:0;margin:0;}
.ds-tour-cell iframe{display:block;width:100%;aspect-ratio:16/9;border:1px solid var(--rule);background:#000;}
.ds-tour-cell figcaption{font-family:var(--cond);font-size:12.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
.ds-tour-cell--link{display:flex;align-items:center;justify-content:center;aspect-ratio:16/9;border:1px solid var(--border);}
.ds-tour-cell--link a{border:0;margin:0;}
.ds-strip--kpis{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);}
.ds-strip--kpis .ds-cell:first-child{background:var(--ink-dark);}
.ds-strip--kpis .ds-cell:first-child .lab{color:var(--inv-label);}
.ds-strip--kpis .ds-cell:first-child .fig{color:var(--panel);}
.ds-strip--kpis .ds-cell:first-child .sub{color:var(--inv-sub);}
.ds-wire{background:var(--amber-bg);border:1px solid var(--amber-bd);color:var(--amber-ink);
  padding:12px 16px;font-size:14px;line-height:1.45;border-bottom:1px solid var(--amber-bd);}
.ds-wire:empty{display:none;}

.ds-portal-body{display:grid;grid-template-columns:1.35fr 1fr;gap:1px;background:var(--rule);border-top:1px solid var(--rule);}
.ds-portal-left,.ds-portal-right{background:var(--panel);padding:22px 24px;min-width:0;display:flex;flex-direction:column;gap:20px;}

.ds-note{display:flex;gap:13px;align-items:flex-start;border:1px solid var(--rule);background:var(--band);padding:15px 16px;}
.ds-note-av{width:44px;height:44px;background:var(--avatar);flex:none;overflow:hidden;}
.ds-note-av img{width:100%;height:100%;object-fit:cover;}
.ds-note-h{font-family:var(--cond);font-weight:600;font-size:17px;color:var(--ink);}
.ds-note-b{font-size:14.5px;color:var(--muted);line-height:1.55;margin:5px 0;}
.ds-note-s{font-size:13px;color:var(--faint);}

.ds-card{border:1px solid var(--rule);background:var(--panel);}
.ds-card:empty{display:none;}
.ds-card-h{display:flex;align-items:baseline;gap:10px;padding:14px 16px;border-bottom:1px solid var(--hair);}
.ds-card-h h3{font-family:var(--cond);font-weight:600;font-size:22px;margin:0;color:var(--ink);}
.ds-card-meta{margin-left:auto;font-size:13px;color:var(--faint);}
.ds-card-p{font-size:14px;color:var(--muted);padding:12px 16px 0;line-height:1.5;margin:0;}

/* road spine */
.ds-road{padding:6px 16px 14px;}
.ds-road-item{display:grid;grid-template-columns:22px 1fr;gap:14px;padding:12px 0;position:relative;}
.ds-road-rail{display:flex;justify-content:center;position:relative;}
.ds-road-rail::before{content:"";position:absolute;left:50%;transform:translateX(-50%);top:18px;bottom:-24px;width:1px;background:var(--rule);}
.ds-road-item:last-child .ds-road-rail::before{display:none;}
/* Road dots carry TWO signals: category (hue, via --cat) + status (fill/ring).
   Upcoming steps are hollow rings in their category colour; done steps fill;
   the current/next + closing steps fill and take an amber focus ring. */
.ds-road-dot{--cat:#8a8f95;width:14px;height:14px;border:2px solid var(--cat);background:var(--panel);margin-top:3px;position:relative;z-index:1;flex:none;}
.ds-road-dot.cat-marketing{--cat:#597ea3;}
.ds-road-dot.cat-paperwork{--cat:#3f7d7a;}
.ds-road-dot.cat-inspection{--cat:#6b5a86;}
.ds-road-dot.cat-money{--cat:#b26a1f;}
.ds-road-dot.cat-closing{--cat:#4a7a55;}
.ds-road-dot.done{background:var(--cat);border-color:var(--cat);}
.ds-road-dot.next{background:var(--cat);border-color:var(--cat);box-shadow:0 0 0 4px var(--amber-bg);}
.ds-road-dot.key{background:var(--cat);border-color:var(--cat);box-shadow:0 0 0 4px var(--amber-bg);}
.ds-road-date{font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);}
.ds-road-labelrow{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;margin-top:2px;}
.ds-road-label{font-family:var(--cond);font-weight:600;font-size:19px;color:var(--ink);line-height:1.15;}
.ds-road-badge{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;padding:1px 7px;border:1px solid var(--rule);color:var(--muted);background:var(--band);}
.ds-road-badge.done{background:#e4efe7;color:#2c4a33;border-color:#b3ccb9;}
.ds-road-badge.next,.ds-road-badge.key{background:var(--amber-bg);color:var(--amber-ink);border-color:var(--amber-bd);}
.ds-road-desc{font-size:14px;color:var(--muted);line-height:1.55;margin-top:5px;}

/* action blocks (what I need from you) — amber = waiting on you */
.ds-actionwrap .ds-action:first-of-type{margin-top:12px;}
.ds-action{display:flex;align-items:flex-start;gap:11px;margin:10px 16px 0;padding:13px 14px;
  border:1px solid var(--amber-bd);background:var(--amber-bg);}
.ds-action:last-child{margin-bottom:16px;}
.ds-action-box{width:19px;height:19px;border:1px solid var(--amber);background:var(--panel);flex:none;cursor:default;margin-top:1px;}
body.agent-preview .ds-action-box{cursor:pointer;}
.ds-action-label{flex:1;font-size:15px;color:var(--ink);}
.ds-action-when{font-size:13px;color:var(--amber-ink);white-space:nowrap;}
.task-row.done .ds-action,.ds-action.done{background:var(--panel);border-color:var(--rule);opacity:.62;}
.task-row.done .ds-action-box{background:var(--s-closed);border-color:var(--s-closed);}
.ds-tasks-done .ds-card-h h3{color:var(--faint);}
.ds-note-ta{width:calc(100% - 32px);margin:12px 16px 0;min-height:80px;font:inherit;font-size:14px;padding:10px;border:1px solid var(--border);background:var(--panel);resize:vertical;}
.ds-note-foot{display:flex;align-items:center;gap:12px;padding:10px 16px 16px;}
.ds-note-foot span{font-size:13px;color:var(--faint);flex:1;}

/* documents */
.ds-doc{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--hair);}
.ds-doc:last-child{border-bottom:none;}
.ds-doc-ic{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.06em;color:var(--muted);background:var(--band);border:1px solid var(--rule);padding:3px 6px;flex:none;}
/* Colour the little type badge by document category (contract / title / money /
   disclosure / inspection / listing); anything else stays neutral. */
.ds-doc-ic[data-cat="contract"]{color:#14508F;background:#E4EDF9;border-color:#BFD5EF;}
.ds-doc-ic[data-cat="title"]{color:#056E78;background:#DCEFF1;border-color:#A9D9DD;}
.ds-doc-ic[data-cat="money"]{color:#8F5316;background:#F6EAD8;border-color:#E3C79A;}
.ds-doc-ic[data-cat="disclosure"]{color:#574A70;background:#ECE7F2;border-color:#C9BEDD;}
.ds-doc-ic[data-cat="inspection"]{color:#3A6344;background:#E1EFE4;border-color:#B4D2BB;}
.ds-doc-ic[data-cat="listing"]{color:#454F66;background:#E5E8EE;border-color:#BEC6D3;}
.ds-doc-nm{flex:1;min-width:0;}
.ds-doc-nm>span:first-child{display:block;font-size:14.5px;color:var(--ink);font-weight:500;}
.ds-doc-sub{font-size:12.5px;color:var(--faint);}
.ds-doc-st{font-size:12px;color:var(--muted);white-space:nowrap;}
.ds-doc-acts{display:flex;gap:8px;}
.ds-doc-link{font-size:13px;color:#416180;text-decoration:none;white-space:nowrap;}
.ds-doc-empty{padding:14px 16px;font-size:13.5px;color:var(--faint);font-style:italic;}

/* team */
/* Your team — one distinct-colored box per member. Accent (--tc) is bound
   per row from the payload; it tints the left bar, avatar, role + contact links. */
.ds-teams{display:flex;flex-direction:column;gap:10px;padding:12px 16px;}
.ds-team{display:block;}
.ds-team-inner{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;
  border:1px solid var(--hair);border-left:4px solid var(--tc,var(--avatar));background:var(--panel);}
.ds-team-av{width:40px;height:40px;background:var(--tc,var(--avatar));flex:none;
  display:flex;align-items:center;justify-content:center;color:#fff;
  font-family:var(--cond);font-weight:600;font-size:17px;line-height:1;}
.ds-team-b{flex:1;min-width:0;}
.ds-team-id{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;}
.ds-team-nm{font-family:var(--cond);font-weight:600;font-size:18px;color:var(--ink);}
.ds-team-role{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--tc,var(--faint));font-weight:600;}
.ds-team-contact{display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.ds-team-line{font-size:13.5px;color:var(--ink);text-decoration:none;}
a.ds-team-line{color:var(--tc,var(--ink));font-weight:600;word-break:break-word;}
a.ds-team-line:hover{text-decoration:underline;}
.ds-team-file{font-size:12px;color:var(--faint);font-weight:400;letter-spacing:.02em;}

.ds-gtk{padding:11px 16px;border-bottom:1px solid var(--hair);}
.ds-gtk:last-child{border-bottom:none;}
.ds-gtk-t{font-weight:600;font-size:14.5px;color:var(--ink);}
.ds-gtk-b{font-size:13.5px;color:var(--muted);margin-top:3px;line-height:1.5;}
.ds-esc{padding:12px 16px;border-bottom:1px solid var(--hair);}
.ds-esc:last-child{border-bottom:none;}
.ds-esc-h{display:flex;align-items:baseline;gap:9px;flex-wrap:wrap;font-size:14px;}
.ds-esc-st{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--alert);}
.ds-esc-when{color:var(--faint);font-size:12.5px;}
.ds-esc-doc{display:flex;justify-content:space-between;gap:10px;font-size:13px;padding:5px 0 0;}
.ds-esc-doc a{color:#416180;text-decoration:none;}

@media(max-width:860px){ .ds-portal-body{grid-template-columns:1fr;} .ds-strip--kpis{grid-auto-flow:row;grid-template-columns:1fr 1fr;} .ds-portal-price{margin-left:0;text-align:left;} }

/* ============================ LISTINGS 2B =============================== */
.ds-lgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
@media(max-width:980px){.ds-lgrid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.ds-lgrid{grid-template-columns:1fr;}}
.ds-lcard{background:var(--panel);display:flex;flex-direction:column;cursor:pointer;}
.ds-lcard:hover{background:#eeeef0;}
.ds-lframe{position:relative;aspect-ratio:3/2;border-bottom:1px solid var(--rule);overflow:hidden;
  background-image:repeating-linear-gradient(135deg,#e2e5e8 0 14px,#dde1e5 14px 28px);}
.ds-lframe img{width:100%;height:100%;object-fit:cover;display:block;}
.ds-lflag{position:absolute;left:0;top:0;padding:5px 11px;font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#f2f2f3;background:var(--stg);}
.ds-lagent{position:absolute;right:0;top:0;padding:5px 10px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:var(--panel);border-left:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.ds-lup{position:absolute;right:8px;bottom:8px;font-size:12px;padding:4px 9px;border:1px solid var(--border);background:var(--panel);cursor:pointer;color:var(--ink);}
.ds-lbody{padding:14px 16px;display:flex;flex-direction:column;gap:8px;flex:1;}
.ds-laddr{font-family:var(--cond);font-weight:600;font-size:24px;color:var(--ink);line-height:1.05;}
.ds-lfacts{font-size:13px;color:var(--faint);}
.ds-lprice{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;}
.ds-lprice .num{font-family:var(--cond);font-weight:600;font-size:26px;color:var(--ink);}
.ds-lprice .st{font-size:13px;color:var(--muted);}
.ds-lmetrics{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-lmetric{background:var(--panel);display:flex;justify-content:space-between;gap:10px;padding:6px 11px;font-size:13px;}
.ds-lmetric .k{color:var(--faint);}
.ds-lmetric .v{color:var(--ink);font-variant-numeric:tabular-nums;}
.ds-lnote{font-size:13px;color:#2c455d;background:#eef2f6;border:1px solid #a9c2d8;padding:8px 11px;line-height:1.4;}
.ds-lcard .rost-links{display:flex;gap:12px;font-size:13px;margin-top:auto;padding-top:2px;}
.ds-lcard .rost-links a{color:#416180;text-decoration:none;}
.ds-lopen{margin-top:2px;}

.ds-ltbl-title{font-family:var(--cond);font-weight:600;font-size:22px;margin:26px 0 10px;color:var(--ink);}
.ds-ltbl{border:1px solid var(--rule);}
.ds-ltbl-h,.ds-ltbl-r{display:grid;grid-template-columns:2fr 1.2fr 1fr .8fr 1.3fr;gap:12px;align-items:center;}
.ds-ltbl-h{background:var(--band);padding:10px 16px;font-family:var(--cond);font-weight:600;font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);}
.ds-ltbl-r{position:relative;padding:10px 16px 10px 22px;border-top:1px solid var(--hair);font-size:14px;cursor:pointer;}
.ds-ltbl-r::before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:var(--stg);}
.ds-ltbl-r:hover{background:#eeeef0;}
.ds-ltbl-r .prop{font-weight:600;color:var(--ink);}
.ds-ltbl-r .val{font-family:var(--cond);font-weight:600;font-size:17px;font-variant-numeric:tabular-nums;}
.ds-ltbl-r.closed{color:var(--muted);}
@media(max-width:760px){ .ds-ltbl-h,.ds-ltbl-r{grid-template-columns:2fr 1fr 1fr;} .ds-ltbl-h .dom-col,.ds-ltbl-h .next-col,.ds-ltbl-r .dom,.ds-ltbl-r .next{display:none;} }

/* ============================ CALENDAR 5A =============================== */
.ds-calnav{display:flex;align-items:center;gap:6px;}
.ds-calnav button{border:1px solid var(--border);background:var(--panel);width:30px;height:30px;cursor:pointer;font-size:15px;color:var(--ink);line-height:1;}
.ds-calnav button:hover{background:var(--band);}
.ds-caltoggle{display:flex;border:1px solid var(--border);}
.ds-caltoggle button{border:none;border-right:1px solid var(--border);background:var(--panel);padding:6px 12px;font-size:13px;cursor:pointer;color:var(--muted);font-family:var(--body);}
.ds-caltoggle button:last-child{border-right:none;}
.ds-caltoggle button.on{background:var(--ink-dark);color:var(--panel);}
.ds-callegend{display:flex;flex-wrap:wrap;align-items:center;gap:9px 16px;padding:12px 28px;background:var(--band);border-bottom:1px solid var(--rule);font-size:13px;color:var(--muted);}
.ds-callegend .lg{display:inline-flex;align-items:center;gap:7px;cursor:pointer;}
.ds-callegend .lg .sw{width:12px;height:12px;display:inline-block;flex:none;}
.ds-callegend .lg.on{color:var(--ink);font-weight:600;}
.ds-callegend .amber-note{margin-left:auto;color:var(--amber-ink);}
.ds-callegend .amber-note i{width:12px;height:12px;background:var(--amber);display:inline-block;vertical-align:-2px;margin-right:5px;}
.ds-calweek-wrap{overflow-x:auto;}
.ds-calweek{display:grid;grid-template-columns:repeat(7,1fr);gap:1px;background:var(--rule);border-bottom:1px solid var(--rule);}
.ds-calday{background:var(--panel);min-width:0;display:flex;flex-direction:column;}
.ds-calday-h{padding:12px;border-bottom:1px solid var(--rule);}
.ds-calday-h .dow{font-family:var(--cond);font-weight:600;font-size:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);}
.ds-calday-h .num{font-size:13px;color:var(--faint);margin-left:6px;}
.ds-calday.today{box-shadow:inset 0 3px 0 0 #2C6B9A;}
.ds-calday.today .ds-calday-h{background:#DCEBF6;}
.ds-calday.today .ds-calday-h .dow{color:#1C4A70;}
.ds-calday.today .ds-calday-h .num{color:#1C4A70;font-weight:700;}
.ds-calday.weekend .ds-calday-h{background:var(--band);}
.ds-calday-body{padding:11px 10px;display:flex;flex-direction:column;gap:10px;flex:1;min-height:64px;}
.ds-calev{display:flex;flex-direction:column;gap:1px;padding-left:9px;position:relative;cursor:pointer;}
.ds-calev::before{content:"";position:absolute;left:0;top:1px;bottom:1px;width:5px;background:var(--_c,#8a8f95);}
.ds-calev:hover{background:#eeeef0;}
.ds-calev .tm{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;}
.ds-calev .ti{font-size:14px;font-weight:600;color:var(--ink);line-height:1.2;}
.ds-calev .cx{font-size:12px;color:var(--muted);}
.ds-caldl{border:1px solid var(--amber-bd);background:var(--amber-bg);padding:8px 10px;cursor:pointer;}
.ds-caldl .tm{font-size:12px;color:var(--amber-ink);font-weight:600;}
.ds-caldl .ti{font-size:14px;font-weight:600;color:var(--ink);line-height:1.2;}
.ds-calempty{font-size:12px;color:var(--faint);font-style:italic;padding:2px;}
@media(max-width:900px){.ds-calweek{grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(155px,1fr);}}

/* ===================== BUYER PORTAL 1A (still looking) ================= */
.ds-buyer-matches{display:flex;flex-direction:column;gap:1px;background:var(--rule);border-top:1px solid var(--rule);}
.ds-bmatch{background:var(--panel);display:grid;grid-template-columns:130px 1fr;gap:14px;padding:14px 16px;}
.ds-bmatch-frame{position:relative;aspect-ratio:3/2;border:1px solid var(--rule);overflow:hidden;background-image:repeating-linear-gradient(135deg,#e2e5e8 0 14px,#dde1e5 14px 28px);}
.ds-bmatch-frame img{width:100%;height:100%;object-fit:cover;}
.ds-bmatch-frame img[src=""],.ds-bmatch-frame img:not([src]){display:none;}
.ds-bmatch-score{position:absolute;left:0;top:0;background:var(--s-closed);color:#f2f2f3;font-family:var(--cond);font-weight:600;font-size:12px;padding:2px 8px;}
.ds-bmatch-b{min-width:0;}
.ds-bmatch-price{font-family:var(--cond);font-weight:600;font-size:20px;color:var(--ink);line-height:1.1;}
.ds-bmatch-addr{font-size:14px;color:var(--ink);margin-top:2px;}
.ds-bmatch-status{font-size:12px;color:var(--s-closed);font-weight:600;margin-top:4px;}
.ds-bmatch-note{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.45;font-style:italic;}
.ds-bsaved{display:flex;flex-direction:column;gap:1px;background:var(--rule);border-top:1px solid var(--rule);}
.ds-bsaved-row{background:var(--panel);display:flex;align-items:baseline;gap:12px;padding:10px 16px;text-decoration:none;}
.ds-bsaved-row:hover{background:#eeeef0;}
.ds-bsaved-price{font-family:var(--cond);font-weight:600;font-size:17px;color:var(--ink);white-space:nowrap;}
.ds-bsaved-addr{font-size:14px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-btours{display:flex;flex-direction:column;gap:1px;background:var(--rule);border-top:1px solid var(--rule);}
.ds-btour{background:var(--panel);display:flex;gap:13px;padding:12px 16px;align-items:center;}
.ds-btour-date{width:54px;flex:none;text-align:center;border:1px solid var(--rule);padding:6px 0;}
.ds-btour-date .dow{display:block;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);}
.ds-btour-date .num{display:block;font-family:var(--cond);font-weight:600;font-size:22px;color:var(--ink);line-height:1;}
.ds-btour-date .mo{display:block;font-size:11px;color:var(--faint);text-transform:uppercase;}
.ds-btour-b{min-width:0;}
.ds-btour-prop{font-weight:600;font-size:15px;color:var(--ink);}
.ds-btour-time{font-size:13px;color:var(--muted);}
.ds-btour-with{font-size:13px;color:var(--faint);}
body.viewing-browse .ds-buyer-home{display:none;}
#browse.ds .ds-headline{color:var(--ink);}

/* ===================== SELLER CAMPAIGN 2A (collapsible) ================= */
.ds-campaign{border:1px solid var(--rule);background:var(--panel);}
.ds-campaign>summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:10px;padding:14px 16px;}
.ds-campaign>summary::-webkit-details-marker{display:none;}
.ds-campaign>summary h3{font-family:var(--cond);font-weight:600;font-size:22px;margin:0;color:var(--ink);}
.ds-campaign>summary .meta{margin-left:auto;font-size:13px;color:var(--faint);}
.ds-campaign>summary::after{content:"▾";color:var(--faint);margin-left:6px;font-size:12px;}
.ds-campaign[open]>summary{border-bottom:1px solid var(--hair);}
.ds-campaign:not([open])>summary::after{content:"▸";}
.ds-campaign-in{padding:16px;}
.ds-camp-cols{display:none;grid-template-columns:1fr 1fr;gap:24px;margin-top:22px;}
.ds-camp-cols:has([data-painted]){display:grid;}
@media(max-width:760px){.ds-camp-cols{grid-template-columns:1fr;}}
.ds-camp-h4{font-family:var(--cond);font-weight:600;font-size:17px;margin:0 0 12px;color:var(--ink);}
.ds-chan{display:flex;flex-direction:column;gap:10px;}
.ds-chan-row{display:grid;grid-template-columns:130px 1fr auto;gap:10px;align-items:center;font-size:13px;}
.ds-chan-row .l{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.ds-chan-row .track{height:8px;background:var(--track);}
.ds-chan-row .fill{height:8px;background:var(--_c,#597ea3);}
.ds-chan-row .v{font-family:var(--cond);font-weight:600;font-size:15px;color:var(--ink);white-space:nowrap;}

/* Weekly ListTrac marketing digest (seller portal "Marketing activity" panel). */
.ds-mkt-period{font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--faint);margin:0 0 12px;}
.ds-mkt-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-mkt-tile{background:var(--panel);padding:14px 16px;text-align:center;}
.ds-mkt-tile .fig{font-family:var(--cond);font-weight:600;font-size:30px;line-height:1;color:var(--ink);}
.ds-mkt-tile .lab{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-top:6px;}
.ds-mkt-callouts{display:flex;flex-direction:column;gap:6px;margin-top:14px;}
.ds-mkt-callout{font-size:13.5px;color:var(--ink);background:var(--band);border-left:3px solid var(--_c,#4a7a55);padding:8px 12px;}
.ds-mkt-inq{color:var(--faint);font-weight:400;font-size:12px;}
.ds-mkt-cities{display:flex;flex-direction:column;gap:1px;background:var(--rule);border:1px solid var(--rule);}
.ds-mkt-city{background:var(--panel);display:flex;justify-content:space-between;gap:10px;padding:7px 12px;font-size:13px;color:var(--muted);}
.ds-mkt-city .v{font-family:var(--cond);font-weight:600;color:var(--ink);}
.ds-mkt-foot{font-size:11.5px;color:var(--faint);margin-top:14px;font-style:italic;}

/* focus visibility */
.ds :focus-visible{outline:2px solid #597ea3;outline-offset:2px;}

/* ============================================================================
   SECONDARY SCREENS — legacy component classes restyled to the 2026 look when
   wrapped in `.ds`. These screens (Cowork, Curated, Broker, Sequences,
   Reports, Bulk email, Settings, Deals & offers) keep their working JS
   renderers and class names; only their appearance is re-pointed to the
   design-system tokens (Barlow, square corners, hairline rules, stage/amber
   palette). `.ds .foo` outranks the global `.foo`, so nothing else changes.
   ========================================================================== */

/* ---- Cowork ---- */
.ds .upd{max-width:860px;padding:20px 28px 40px;}
.ds .upd-compose{border:1px solid var(--rule);background:var(--band);padding:14px;}
.ds .upd-compose textarea{font-family:var(--body);font-size:14px;color:var(--ink);}
.ds .upd-item{border-bottom:1px solid var(--hair);padding:14px 2px;}
.ds .upd-badge{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.08em;
  text-transform:uppercase;border-radius:0;background:var(--avatar);color:var(--panel);padding:2px 8px;}
.ds .upd-badge.james{background:#3a5a7c;}
.ds .upd-badge.both{background:#6b5a86;}
.ds .upd-deal,.ds .upd-tag{font-family:var(--cond);font-weight:600;font-size:11px;letter-spacing:.04em;
  color:var(--muted);border:1px solid var(--rule);}
.ds .upd-tag.contact{color:#2c4a33;border-color:#b3ccb9;}
.ds .upd-content{font-family:var(--body);font-size:14.5px;color:var(--ink);}
.ds .upd-seen{font-family:var(--cond);font-weight:600;color:var(--good);}

/* ---- Shared legacy buttons + chips inside a converted screen ---- */
.ds .btn{font-family:var(--body);border-radius:0;}
.ds .btn-ink{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds .chip{font-family:var(--body);border-radius:0;border:1px solid var(--border);background:var(--panel);color:var(--muted);}
.ds .chip.on{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds .chip .ct{color:var(--faint);}
.ds .chip.on .ct{color:var(--inv-sub);}

/* ---- Inbox: Threads conversation shell + All inbound feed ---- */
.ds .inb-tab{font-family:var(--body);}
.ds .inb-tab.on{border-bottom-color:var(--amber);color:var(--ink);}
.ds .avatar,.ds .avatar-sm{border-radius:0;font-family:var(--cond);font-weight:600;}
.ds .lead-list,.ds .lead-detail,.ds .lead-profile{background:var(--panel);}
.ds .lead-row:hover{background:var(--band);}
.ds .lead-row.on{background:var(--band);}
.ds .lead-row .avatar{background:var(--band);color:var(--ink);}
.ds .lead-row .avatar.hot{background:var(--alert);color:var(--panel);}
.ds .lead-row .avatar.warm{background:var(--amber);color:var(--panel);}
.ds .lead-name{font-family:var(--body);font-weight:600;color:var(--ink);}
.ds .lead-preview{color:var(--muted);}
.ds .ld-head h2{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .ld-head-meta{font-family:var(--cond);font-weight:600;letter-spacing:.12em;color:var(--faint);}
.ds .msg-bubble.them .avatar-sm{background:var(--ink-dark);color:var(--panel);}
.ds .msg-bubble.us .avatar-sm{background:var(--amber);color:var(--panel);}
.ds .composer-tab.on{background:var(--band);color:var(--ink);}
.ds .composer textarea{font-family:var(--body);color:var(--ink);}
.ds .msgs{padding:20px 28px 40px;}
.ds .msgs-sub{font-family:var(--body);color:var(--muted);}
.ds .msg-item:hover{background:var(--band);}
.ds .msg-item.unread{background:var(--amber-bg);}
.ds .msg-chan{font-family:var(--cond);font-weight:600;letter-spacing:.06em;border-radius:0;}
.ds .msg-name{font-family:var(--body);font-weight:600;color:var(--ink);}
.ds .msg-preview{color:var(--muted);}
.ds .msg-triage{font-family:var(--cond);font-weight:600;letter-spacing:.08em;border-radius:0;color:var(--alert);border-color:var(--amber-bd);background:var(--amber-bg);}
.ds .msg-agent{font-family:var(--cond);font-weight:600;border-radius:0;background:var(--band);color:var(--muted);border-color:var(--rule);}
.ds .lp-section h3{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .lp-score .v{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--amber);}
.ds .lp-meter .fill{background:var(--amber);}
.ds .lp-facts dt{font-family:var(--cond);font-weight:600;letter-spacing:.12em;color:var(--faint);}
.ds .lp-facts dd{color:var(--ink);}
.ds .lp-tag{font-family:var(--cond);font-weight:600;letter-spacing:.1em;border-radius:0;background:var(--band);color:var(--muted);border-color:var(--rule);}
.ds .lp-home-p{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}

/* ---- Deals & offers (listings card grid) ---- */
.ds .lst{padding:20px 28px 40px;}
.ds .lst-card{background:var(--panel);border:1px solid var(--rule);border-radius:0;transition:none;}
.ds .lst-card:hover{border-color:var(--ink);box-shadow:none;transform:none;}
.ds .lst-card .pr{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .lst-card .ad{color:var(--muted);}
.ds .lst-card .ph-empty{background:var(--band);color:var(--faint);font-family:var(--cond);font-weight:600;}
.ds .lst-badge{font-family:var(--cond);font-weight:600;letter-spacing:.08em;border-radius:0;border:1px solid var(--rule);color:var(--muted);background:var(--band);}
.ds .lst-badge.offers{background:#e7ecf1;color:#2c455d;border-color:#c3d0dc;}
.ds .lst-badge.active{background:#e6eef4;color:#35617f;border-color:#c3d9e6;}
.ds .lst-badge.pending{background:var(--amber-bg);color:var(--amber-ink);border-color:var(--amber-bd);}
.ds .lst-badge.preparing{background:#e4efee;color:#2f5f5b;border-color:#bcd6d3;}
.ds .lst-badge.closed{background:#e4efe7;color:#2c4a33;border-color:#b3ccb9;}
.ds .lst-badge.selling,.ds .lst-badge.buying{background:var(--band);color:var(--muted);border-color:var(--rule);}
.ds .lst-badge.intake-ok{background:#e4efe7;color:#2c4a33;border-color:#b3ccb9;}
.ds .lst-badge.intake-need{background:var(--amber-bg);color:var(--amber-ink);border-color:var(--amber-bd);}
.ds .lst-card .lk{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--amber-ink);}
.ds .lst-accept,.ds .lst-restore{font-family:var(--cond);font-weight:600;letter-spacing:.1em;border-radius:0;}
.ds .lst-accept{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds .lst-restore{background:transparent;color:var(--amber-ink);border-color:var(--amber-bd);}
.ds .lst-restore:hover{background:var(--amber);color:var(--panel);}
.ds .lst-drop-btn{border-radius:0;color:var(--muted);border-color:var(--border);}
.ds .lst-drop-menu{background:var(--panel);border:1px solid var(--border);border-radius:0;box-shadow:none;}
.ds .lst-drop-item{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--ink);}
.ds .lst-drop-item.danger{color:var(--alert);}
.ds .lst-filter .c{color:var(--faint);}

/* ---- Settings ---- */
.ds .set{max-width:800px;padding:20px 28px 50px;}
.ds .set-card{background:var(--panel);border:1px solid var(--rule);padding:20px 22px;margin-bottom:16px;}
.ds .set-card h2{font-family:var(--cond);font-weight:600;font-style:normal;font-size:24px;color:var(--ink);margin:0 0 4px;}
.ds .set-card .sub{font-family:var(--body);font-size:13px;color:var(--muted);}
.ds .set-row{border-bottom:1px solid var(--hair);}
.ds .set-row .k{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .set-row .v{font-family:var(--body);color:var(--ink);}
.ds .set-tools button{border:1px solid var(--border);color:var(--ink);font-family:var(--body);}
.ds .set-tools button:hover{border-color:var(--ink);background:var(--band);}
.ds .set-tools button .arw{color:var(--faint);}
.ds .set-signout{border:1px solid var(--alert);color:var(--alert);font-family:var(--body);}
.ds .set-signout:hover{background:var(--alert);color:var(--panel);}

/* ---- Broker oversight ---- */
.ds .brk{padding:20px 28px 50px;}
.ds .brk-ag{background:var(--panel);border:1px solid var(--rule);padding:20px 22px;}
.ds .brk-ag h3{font-family:var(--cond);font-weight:600;font-style:normal;font-size:22px;color:var(--ink);}
.ds .brk-ag .st .n{font-family:var(--cond);font-weight:600;font-style:normal;font-size:30px;color:var(--ink);}
.ds .brk-ag .st .n.brass{color:var(--amber);}
.ds .brk-ag .st .l{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .brk-ag .stages{font-family:var(--cond);font-weight:600;color:var(--muted);}
.ds .brk-ag .la{color:var(--faint);}
.ds .brk-table th{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);border-bottom:1px solid var(--rule);}
.ds .brk-table td{border-bottom:1px solid var(--hair);color:var(--ink);}
.ds .brk-hot{color:var(--alert);font-family:var(--cond);font-weight:600;}
.ds .brk-prov{background:var(--panel);border:1px solid var(--rule);}
.ds .brk-prov input,.ds .brk-prov select{border:1px solid var(--border);background:var(--panel);color:var(--ink);}
.ds .brk-prov label{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}

/* ---- Sequences ---- */
.ds .seq{padding:20px 28px 40px;}
.ds .seq-list-card,.ds .seq-editor-card{background:var(--panel);border:1px solid var(--rule);}
.ds .seq-row:hover{background:var(--band);}
.ds .seq-row.on{border-left:3px solid var(--amber);background:var(--band);}
.ds .seq-row .name{font-family:var(--cond);font-weight:600;font-style:normal;font-size:19px;color:var(--ink);}
.ds .seq-row .meta{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .seq-row .stat{font-family:var(--cond);font-weight:600;color:var(--faint);}
.ds .seq-row .stat strong{font-family:var(--cond);font-weight:600;font-style:normal;font-size:22px;color:var(--ink);}
.ds .seq-row .toggle.on{background:var(--good);}
.ds .seq-editor-card h3{font-family:var(--cond);font-weight:600;font-style:normal;font-size:24px;color:var(--ink);}
.ds .seq-editor-card .sub{color:var(--muted);}
.ds .seq-step-num{background:var(--ink-dark);color:var(--panel);border-radius:0;font-family:var(--cond);font-weight:600;}
.ds .seq-step-when{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--amber-ink);}
.ds .seq-step-snip{font-family:var(--body);font-style:normal;color:var(--muted);}
.ds .seq-step-ch{font-family:var(--cond);font-weight:600;letter-spacing:.1em;background:var(--band);color:var(--muted);border:1px solid var(--rule);border-radius:0;}
.ds .eyebrow{font-family:var(--cond);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--faint);}

/* ---- Reports ---- */
.ds .rep{padding:20px 28px 40px;}
.ds .rep-card,.ds .kpi-card{background:var(--panel);border:1px solid var(--rule);}
.ds .kpi-card .l{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .kpi-card .v{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .kpi-card .ch{color:var(--muted);}
.ds .kpi-card .ch.up{color:var(--good);}
.ds .rep-card h3{font-family:var(--cond);font-weight:600;font-style:normal;font-size:22px;color:var(--ink);}
.ds .rep-card .sub{color:var(--muted);}
.ds .chart-bar{background:var(--track);border-radius:0;}
.ds .chart-bar.brass{background:var(--amber);}
.ds .funnel-step .l{color:var(--muted);}
.ds .funnel-step .b{background:#597ea3;}
.ds .funnel-step .v{font-family:var(--cond);font-weight:600;color:var(--ink);}
.ds .income-row .name{font-family:var(--body);color:var(--ink);}
.ds .income-row .home{color:var(--muted);}
.ds .income-row .v{font-family:var(--body);color:var(--ink);}
.ds .income-row .v.brass{font-family:var(--cond);font-weight:600;color:var(--amber-ink);}
.ds .income-row .label-cap{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .field-input{font-family:var(--body);border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:0;}

/* ---- Bulk email ---- */
.ds .bc{max-width:720px;padding:20px 28px 40px;}
.ds .bc-sub{font-family:var(--body);color:var(--muted);}
.ds .bc-field label{font-family:var(--cond);font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--faint);}
.ds .bc-field input,.ds .bc-field select,.ds .bc-field textarea{font-family:var(--body);border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:0;}
.ds .bc-count{color:var(--muted);}
.ds .bc-note{font-family:var(--body);color:var(--faint);}
.ds .bc-bar{background:var(--track);}
.ds .bc-bar span{background:var(--amber);}

/* ---- Curated (Collections) ---- */
.ds .cur{padding:20px 28px 40px;}
.ds .cur-side-h{font-family:var(--cond);font-weight:600;letter-spacing:.14em;color:var(--faint);}
.ds .cur-coll{background:var(--panel);border:1px solid var(--rule);}
.ds .cur-coll:hover{border-color:var(--ink);}
.ds .cur-coll.on{border-color:var(--amber);box-shadow:inset 0 0 0 1px var(--amber);}
.ds .cur-coll .t{font-family:var(--cond);font-weight:600;font-style:normal;font-size:17px;color:var(--ink);}
.ds .cur-coll .m{font-family:var(--cond);font-weight:600;letter-spacing:.08em;color:var(--faint);}
.ds .cur-empty,.ds .cur-placeholder{font-family:var(--body);font-style:italic;color:var(--faint);}
.ds .cur-saved button{border:1px solid var(--rule);color:var(--muted);font-family:var(--body);}
.ds .cur-saved button:hover{border-color:var(--ink);color:var(--ink);}
.ds .cur-saved button .c{font-family:var(--cond);font-weight:600;color:var(--amber-ink);}
.ds .cur-ed-h{border-bottom:1px solid var(--rule);}
.ds .cur-ed-meta input,.ds .cur-ed-meta textarea{border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:0;font-family:var(--body);}
.ds .cur-ed-meta .title-in{font-family:var(--cond);font-weight:600;font-style:normal;font-size:24px;}
.ds .cur-status{font-family:var(--cond);font-weight:600;letter-spacing:.1em;border-radius:0;}
.ds .cur-status.draft{background:var(--band);color:var(--muted);}
.ds .cur-status.active{background:var(--good);color:var(--panel);}
.ds .cur-subtab{font-family:var(--cond);font-weight:600;letter-spacing:.1em;border:1px solid var(--border);color:var(--muted);border-radius:0;}
.ds .cur-subtab.on{background:var(--ink-dark);color:var(--panel);border-color:var(--ink-dark);}
.ds .cur-filters{background:var(--panel);border:1px solid var(--rule);}
.ds .cur-filters label{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.ds .cur-filters input,.ds .cur-filters select{border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:0;font-family:var(--body);}
.ds .cur-chip{font-family:var(--cond);font-weight:600;letter-spacing:.08em;border:1px solid var(--border);color:var(--muted);border-radius:0;}
.ds .cur-chip.on{background:var(--amber);color:var(--panel);border-color:var(--amber);}
.ds .cur-card,.ds .cur-row{background:var(--panel);border:1px solid var(--rule);}
.ds .cur-card .pr,.ds .cur-row .pr{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .cur-card .ad,.ds .cur-row .ad{color:var(--muted);}
.ds .cur-card .sp,.ds .cur-row .sp{font-family:var(--cond);font-weight:600;letter-spacing:.08em;color:var(--faint);}
.ds .cur-client{background:var(--panel);border:1px solid var(--rule);}
.ds .cur-client .cc-av{background:var(--avatar);color:var(--panel);border-radius:0;font-family:var(--cond);font-weight:600;}
.ds .cur-client .cc-name{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.ds .cur-suggest{border:1px dashed var(--amber-bd);background:var(--amber-bg);}
.ds .cur-suggest-h{font-family:var(--cond);font-weight:600;letter-spacing:.12em;color:var(--amber-ink);}
.ds .cur-eng{font-family:var(--cond);font-weight:600;color:var(--amber-ink);}
/* the collection / message-preview modal is appended to <body> with a `ds`
   class of its own (not inside the screen's .ds), so target it directly. */
.cur-modal.ds .box{background:var(--panel);border-radius:0;}
.cur-modal.ds h3{font-family:var(--cond);font-weight:600;font-style:normal;color:var(--ink);}
.cur-modal.ds .sub{color:var(--muted);}
.cur-modal.ds label{font-family:var(--cond);font-weight:600;letter-spacing:.1em;color:var(--faint);}
.cur-modal.ds input,.cur-modal.ds textarea,.cur-modal.ds select{border:1px solid var(--border);background:var(--panel);color:var(--ink);border-radius:0;font-family:var(--body);}
.cur-modal.ds .cur-msg-pv{background:var(--ink-dark);}
