/* Dashboard v2 legacy visual parity CSS.
   Source: ../rma/scripts/build_dashboard.py lines 1360-2227.
   Translated out of the legacy embedded CSS block; v2 keeps this as static CSS. */
:root{
  color-scheme:dark;
  --bg:#0e1013; --panel:#16191d; --panel-2:#14171c; --panel-3:#0f1217; --panel-inset:#0e1013;
  --panel2:var(--panel-3);--surface:var(--panel);--surfaceHi:var(--panel-2);
  --line:rgba(255,255,255,.06); --line-hi:rgba(255,255,255,.11); --line-soft:rgba(255,255,255,.035); --lineHi:var(--line-hi);
  --text:#e8eaed; --ink:#e8eaed; --dim:rgba(232,234,237,.72); --muted:rgba(232,234,237,.58); --faint:rgba(232,234,237,.40); --fainter:rgba(232,234,237,.24);
  --green:#4ade80; --green-soft:rgba(74,222,128,.12); --green-line:rgba(74,222,128,.30);
  --amber:#fbbf24; --amber-soft:rgba(251,191,36,.12); --amber-line:rgba(251,191,36,.30);
  --red:#f87171; --red-soft:rgba(248,113,113,.12); --red-line:rgba(248,113,113,.30);
  --down:var(--red);--downSoft:var(--red-soft);--amberSoft:var(--amber-soft);--blue:#6ea8ff;--blueSoft:var(--brand-soft);
  --brand:#6ea8ff; --brand-soft:rgba(110,168,255,.12); --brand-line:rgba(110,168,255,.24);
  --mav:#a98bff; --mav-bright:#c0acff; --mav-soft:rgba(169,139,255,.13); --mav-softer:rgba(169,139,255,.07);
  --mav-line:rgba(169,139,255,.34); --mav-edge:rgba(169,139,255,.95);
  --radius:12px; --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace; --ui:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{max-width:100%;overflow-x:visible}
body{margin:0;background:#0e1013;color:var(--text);font-family:"Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",system-ui,sans-serif;font-size:14px;line-height:1.45;font-feature-settings:"ss01","cv11","tnum","calt" 1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-variant-numeric:tabular-nums}
.app{max-width:none;margin:0 auto;padding:24px}
.deploy-build-stamp{position:fixed;right:10px;bottom:8px;z-index:1200;max-width:min(72vw,360px);padding:4px 8px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(14,16,19,.82);color:rgba(232,234,237,.55);font:600 10px/1.2 var(--mono);letter-spacing:.01em;backdrop-filter:blur(8px);pointer-events:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media (max-width:767px){.deploy-build-stamp{top:86px;right:10px;bottom:auto;max-width:min(72vw,300px)}}
.topbar{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;gap:16px;margin-bottom:16px;padding:12px 16px;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px}
.topbar-title{font-size:22px;font-weight:600;letter-spacing:-0.018em;color:#e8eaed}
.topbar-summary{justify-self:center;text-align:center;color:rgba(232,234,237,.58);font-weight:500}
.topbar-status{justify-self:end;display:flex;align-items:center;gap:12px;min-width:0}
.topbar-file{color:#e8eaed;font-weight:700;white-space:nowrap}
.debug-details{color:rgba(232,234,237,.58);font-size:12px}
.debug-details summary{cursor:pointer;list-style:none}
.debug-details summary::-webkit-details-marker{display:none}
.debug-details[open] summary{margin-bottom:8px}
.debug-panel{margin-top:8px;padding:12px;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;min-width:280px}
.debug-grid{display:grid;gap:8px}
.debug-row{display:grid;grid-template-columns:90px minmax(0,1fr);gap:8px;align-items:start}
.debug-label{text-transform:uppercase;letter-spacing:.05em;color:rgba(232,234,237,.32);font-size:10px}
.debug-value{color:#e8eaed;font-weight:600;word-break:break-word}
.pill,.status-chip,.inline-chip,.back-btn{background:#1c2026;border:1px solid rgba(255,255,255,.11);border-radius:8px}
.status-row{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.status-chip,.inline-chip,.back-btn{padding:8px 12px;color:#e8eaed} .status-chip.good{color:#4ade80}.status-chip.warn{color:#fbbf24}.status-chip.bad{color:#f87171}
#calendarListingMeta{max-width:280px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav-tabs{display:flex;gap:4px;align-items:stretch;border-bottom:1px solid var(--line);padding:0;margin:8px 0 0}.nav-tab{padding:12px 16px;background:none;border:none;border-bottom:2px solid transparent;color:var(--faint);font:500 13px "Inter",sans-serif;cursor:pointer;letter-spacing:-.005em;transition:color .12s ease, border-color .12s ease;margin-bottom:-1px}.nav-tab:hover{color:var(--dim)}.nav-tab.active{color:var(--ink);border-bottom-color:var(--amber)}
.rm-filter-bar,.filter-bar{display:flex;gap:8px;align-items:center;margin-bottom:12px;flex-wrap:wrap}
.rm-chip,.filter-chip.multi{padding:4px 12px;border:1px solid rgba(255,255,255,.06);background:#16191d;color:rgba(232,234,237,.58);border-radius:8px;cursor:pointer;font-size:12px}
.filter-label,.status-chip,.inline-chip{cursor:default;user-select:none}
.rm-chip.active,.filter-chip.multi.active{background:#1c2026;color:#e8eaed;border-color:rgba(255,255,255,.11)}
.filter-row{display:flex;align-items:center;gap:8px;margin:0;min-width:0}
.filter-label{color:var(--muted);font-size:11px;min-width:auto;padding-top:0;text-transform:uppercase;letter-spacing:.06em}
.status-stale{color:#fbbf24;font-weight:600}
.status-done{color:#4ade80}
.status-mark{color:rgba(232,234,237,.58);display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 10px;border-radius:8px}
.simple-dropdown{position:relative}
.simple-dropdown-button{background:#16191d;border:1px solid rgba(255,255,255,.11);color:#e8eaed;padding:4px 12px;border-radius:8px;cursor:pointer;font-size:12px;min-width:160px;text-align:left}
.simple-dropdown-menu{position:absolute;top:100%;left:0;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:8px;margin-top:2px;z-index:100;min-width:160px}
.simple-dropdown-option{padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:8px;font-size:12px}
.simple-dropdown-option:hover{background:#1c2026}
.opt-check{width:12px;color:#4ade80}
.search-tag-input{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:1;max-width:480px}
.selected-tags{display:flex;flex-wrap:wrap;gap:4px}
.filter-tag{background:var(--brand);color:#0e1013;padding:2px 8px;border-radius:4px;font-size:11px;display:inline-flex;align-items:center;gap:4px}
.filter-empty-note{font-size:11px;color:var(--faint);font-style:italic}
.filter-tag-remove{display:inline-flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;padding:6px;cursor:pointer;opacity:.7;font-weight:700;margin:-6px -4px -6px 0;border-radius:999px}
.filter-tag-remove:hover{opacity:1;background:rgba(14,16,19,.12)}
.search-wrap{position:relative;flex:1;min-width:200px}
.filter-search-input{width:100%;padding:4px 8px;background:#16191d;border:1px solid rgba(255,255,255,.11);color:#e8eaed;border-radius:8px;font-size:12px}
.autocomplete-menu{position:absolute;top:100%;left:0;right:0;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:8px;max-height:240px;overflow-y:auto;z-index:100;margin-top:2px}
.autocomplete-item{padding:8px 12px;cursor:pointer;font-size:12px}
.autocomplete-item:hover{background:#1c2026}
.clear-filters-btn{margin-left:auto;padding:4px 12px;border:1px solid rgba(255,255,255,.06);background:#16191d;color:rgba(232,234,237,.58);border-radius:8px;cursor:pointer;font-size:12px}
.view{display:none}.view.active{display:block}

.tab-panel:not(.is-active),
.tab-panel[hidden]{
  display:none;
}
.portfolio-panel{background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden}
.registry-degraded-banner{margin:0 0 16px;padding:14px 16px;border:1px solid rgba(248,113,113,.42);background:rgba(127,29,29,.32);color:#fecaca;border-radius:12px;line-height:1.5}.registry-degraded-banner strong{display:block;color:#fff;margin-bottom:4px}.registry-degraded-banner code{color:#fee2e2;background:rgba(0,0,0,.22);padding:1px 5px;border-radius:5px}
.portfolio-panel h2,.panel h2{margin:0;padding:16px 24px;border-bottom:1px solid rgba(255,255,255,.06);font-family:"Fraunces",Georgia,serif;font-size:20px;font-weight:500;letter-spacing:-.01em;color:#e8eaed}
.panel-body{padding:16px 24px}
.portfolio-filter-host{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06)}
#filtersContainer{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
#filtersContainer .simple-dropdown-button{min-width:118px;padding:6px 10px}
#filtersContainer .search-tag-input{max-width:320px}
#filtersContainer .filter-search-input{padding:6px 8px}
#filtersContainer .clear-filters-btn{margin-left:0}
.portfolio-specific-filters{align-items:end;flex-wrap:wrap;width:100%}
.portfolio-specific-filters label{display:grid;gap:4px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.06em}
.portfolio-specific-filters select{min-width:118px;padding:6px 8px;background:#16191d;border:1px solid rgba(255,255,255,.11);color:#e8eaed;border-radius:8px;font-size:12px;text-transform:none;letter-spacing:0}
.portfolio-specific-filters input{min-width:220px}
.portfolio-table th[data-sort-dir='asc']::after{content:' ▲';color:var(--amber)}
.portfolio-table th[data-sort-dir='desc']::after{content:' ▼';color:var(--amber)}
.portfolio-table tbody tr[data-href]{cursor:pointer}
.portfolio-table-wrap{overflow:auto}
.portfolio-table{width:100%;border-collapse:collapse;font-size:13px}
.portfolio-table th,.portfolio-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,.06);white-space:nowrap;text-align:left}
.portfolio-table th{position:sticky;top:0;background:#16191d;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(232,234,237,.32);cursor:pointer}
.portfolio-table tr{border-left:2px solid transparent;transition:border-color .1s ease}
.portfolio-table tr:hover{border-left-color:var(--blue)}
.portfolio-table tr:hover td{background:rgba(110,168,255,.04)}
.occ-band{display:inline-flex;align-items:center;justify-content:center;min-width:46px;padding:2px 8px;border-radius:999px;border:1px solid rgba(255,255,255,.10);font-weight:750;line-height:1.25;white-space:nowrap}
.occ-band-neutral{color:var(--faint);background:rgba(255,255,255,.035);border-color:rgba(255,255,255,.08)}
.occ-band-red{color:#fecaca;background:rgba(248,113,113,.15);border-color:rgba(248,113,113,.35)}
.occ-band-yellow{color:#fde68a;background:rgba(251,191,36,.14);border-color:rgba(251,191,36,.34)}
.occ-band-green{color:#bbf7d0;background:rgba(74,222,128,.13);border-color:rgba(74,222,128,.32)}
.occ-band-blue{color:#bfdbfe;background:rgba(96,165,250,.14);border-color:rgba(96,165,250,.34)}
.listing-link{color:var(--brand);font-weight:700;cursor:pointer;text-decoration:none}
.portfolio-pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:12px 16px;border-top:1px solid rgba(255,255,255,.06);background:#16191d}.pager-btn{display:inline-flex;align-items:center;justify-content:center;min-width:86px;height:34px;padding:0 14px;border-radius:8px;border:1px solid rgba(255,255,255,.11);background:#1c2026;color:#e8eaed;font-size:12px;font-weight:700;text-decoration:none;cursor:pointer}.pager-btn:hover{border-color:var(--brand-line);background:rgba(110,168,255,.12)}.pager-btn.disabled{cursor:not-allowed;opacity:.45;background:transparent;color:var(--faint)}.pager-status{color:var(--muted);font-size:12px;font-weight:600;min-width:86px;text-align:center}
.calendar-view-container{display:grid;grid-template-rows:auto 1fr;gap:16px}
.calendar-fixed-header{grid-column:1 / -1;grid-row:1}
.calendar-view-layout{grid-row:2;display:grid;grid-template-columns:minmax(220px,280px) minmax(0,1fr) minmax(320px,400px);gap:12px;height:calc(100vh - 220px);overflow:hidden;min-height:0;align-items:stretch;position:relative}
/* Layout ownership lives in syncTabLayout(). It flips only these classes:
   - rail-collapsed  => hide left sidebar
   - detail-collapsed => hide detail panel
   - context-mode    => Calendar-only market-context overlay */
.calendar-view-layout.rail-collapsed{grid-template-columns:0px minmax(0,1fr) minmax(320px,400px)}
.calendar-view-layout.rail-collapsed > .calendar-left-rail{display:none}
.calendar-view-layout.detail-collapsed{grid-template-columns:minmax(220px,280px) minmax(0,1fr) 0px}
.calendar-view-layout.detail-collapsed > .detail-panel{display:none}
.calendar-view-layout.rail-collapsed.detail-collapsed{grid-template-columns:0 minmax(0,1fr) 0}
.calendar-view-layout.content-fullwidth,
.calendar-view-layout.content-fullwidth.rail-collapsed,
.calendar-view-layout.content-fullwidth.detail-collapsed,
.calendar-view-layout.content-fullwidth.rail-collapsed.detail-collapsed{grid-template-columns:minmax(0,1fr);height:auto;overflow:visible}
.calendar-view-layout.content-fullwidth > .calendar-left-rail,.calendar-view-layout.content-fullwidth > .detail-panel{display:none}
.calendar-view-layout.content-fullwidth > .calendar-main{grid-column:1 / -1;grid-row:1;padding-left:0;padding-right:0;min-width:0;width:100%;display:block;overflow:visible}
.calendar-view-layout.content-fullwidth .calendar-center{height:auto;min-height:0;overflow:visible;overscroll-behavior:auto}
.calendar-view-layout.rail-collapsed > .calendar-main{padding-left:12px}
.calendar-view-layout.detail-collapsed > .calendar-main{padding-right:12px}
.calendar-view-layout.rail-collapsed.detail-collapsed > .calendar-main{padding-left:12px;padding-right:12px}
.calendar-view-layout.content-fullwidth.rail-collapsed.detail-collapsed > .calendar-main{padding-left:0;padding-right:0}
.calendar-view-layout.context-mode{grid-template-columns:minmax(0,40%) minmax(0,60%)}
.calendar-view-layout.context-mode > .calendar-left-rail{display:none}
.calendar-view-layout.context-mode > .calendar-main{grid-column:1;grid-row:1;display:flex;min-width:0;overflow:hidden;padding-left:0;padding-right:0}
.calendar-view-layout.context-mode > .detail-panel{grid-column:2;grid-row:1;display:flex;min-width:0;overflow:hidden}
/* P0 #5: stats row at the top of the detail panel stays pinned while the rest
   of the recommendation content scrolls. */
.detail-right-panel > .stats{position:sticky;top:0;z-index:12;background:#16191d;padding:4px 0 12px;margin-top:-4px;border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 10px 18px -18px rgba(0,0,0,.9)}
/* On Market Data tab we want detail collapsed by default. JS handles add/remove. */
.calendar-left-rail{display:flex;flex-direction:column;min-height:0}
.listing-context-panel,.calendar-center,.detail-right-panel{flex:1;min-height:0;height:100%;padding:16px}
.listing-context-panel{overflow-y:auto;overscroll-behavior:contain;padding-bottom:40px}
.mobile-listing-context-summary{display:none}
.mobile-sheet-drag-handle{display:none}
.calendar-center{overflow-y:auto;position:relative;overscroll-behavior:contain}
.calendar-panel{--raise-1:rgba(74,222,128,.105);--raise-2:rgba(74,222,128,.15);--raise-3:rgba(74,222,128,.22);--raise-edge-1:rgba(74,222,128,.18);--raise-edge-2:rgba(74,222,128,.32);--raise-edge-3:rgba(74,222,128,.52);--lower-1:rgba(248,113,113,.105);--lower-2:rgba(248,113,113,.15);--lower-3:rgba(248,113,113,.22);--lower-edge-1:rgba(248,113,113,.20);--lower-edge-2:rgba(248,113,113,.34);--lower-edge-3:rgba(248,113,113,.55);--floor-1:rgba(250,204,21,.105);--floor-2:rgba(250,204,21,.15);--floor-edge:rgba(250,204,21,.58)}
.detail-right-panel{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;max-width:100%;min-width:0}
.detail-right-panel .card,.detail-right-panel .rec-grid,.detail-right-panel .rec-col,.detail-right-panel .warning,.detail-right-panel .explanation-text{max-width:100%;min-width:0;overflow-wrap:anywhere;word-break:normal}
.detail-right-panel .value{white-space:normal;overflow-wrap:anywhere}
.calendar-main{min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}
.calendar-detail-grid{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(340px,380px);gap:16px;align-items:start;transition:grid-template-columns .18s ease}
.calendar-detail-grid.context-mode,.calendar-detail-grid.context-mode.detail-hidden{grid-template-columns:minmax(0,40fr) minmax(0,60fr)}
.calendar-detail-grid.context-mode > .listing-context-rail{display:none}
.calendar-detail-grid.context-mode > .calendar-main{grid-column:1;display:flex;min-width:0;overflow:visible}
.calendar-detail-grid.context-mode > .detail-right-panel,.calendar-detail-grid.context-mode.detail-hidden > .detail-right-panel{grid-column:2;display:flex;min-width:0;overflow:auto;position:sticky;top:184px;max-height:calc(100vh - 200px)}
.calendar-detail-grid.detail-hidden{grid-template-columns:minmax(240px,280px) minmax(0,1fr)}
.calendar-detail-grid.detail-hidden > .detail-right-panel{display:none}
.calendar-detail-grid > .listing-context-rail,.calendar-detail-grid > .lazy-panel,.calendar-detail-grid > .calendar-panel{min-width:0}
.calendar-detail-grid > .listing-context-rail{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;background:transparent;border:none;border-radius:0;padding:16px 16px 40px}
.calendar-detail-grid > .listing-context-rail .listing-context-grid{grid-template-columns:1fr}
.calendar-detail-grid > .detail-right-panel{position:sticky;top:16px;max-height:calc(100vh - 32px);overflow-y:auto;background:#101318;border:1px solid rgba(255,255,255,.06);border-radius:12px}
.calendar-detail-grid .detail-right-panel h2{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--ink)}
.calendar-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.back-btn{cursor:pointer;font-weight:700}
.listing-header-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap;margin-bottom:12px}.listing-header-copy{min-width:0;flex:1}.listing-header-copy h3{margin:0 0 4px;color:#e8eaed}.listing-context-grid{display:grid;gap:12px}.context-block{background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px}.context-pair{display:grid;grid-template-columns:minmax(86px,1fr) minmax(0,1.7fr);gap:8px;align-items:start}.context-pair + .context-pair{margin-top:8px}.context-label{font-size:10px;text-transform:uppercase;letter-spacing:.08em;color:rgba(232,234,237,.38);white-space:normal;overflow-wrap:normal;word-break:normal;line-height:1.25}.context-value{font-size:14px;font-weight:500;color:rgba(232,234,237,.85);text-align:left;overflow:visible;text-overflow:clip;white-space:normal;overflow-wrap:anywhere;word-break:normal;line-height:1.3;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}.context-value.health-band{white-space:nowrap;overflow:visible}.context-value.tight{font-size:12px;line-height:1.3}.context-rail-note{font-size:12px;color:rgba(232,234,237,.58)}.health-band{display:inline-flex;align-items:center;gap:8px}.health-band .band-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:4px;border:1px solid rgba(255,255,255,.06);font-size:11px;font-weight:600;letter-spacing:.02em}.band-chip.strong{background:rgba(74,222,128,.12);border-color:rgba(255,255,255,.06);color:#4ade80}.band-chip.healthy{background:rgba(110,168,255,.10);border-color:rgba(255,255,255,.06);color:#6ea8ff}.band-chip.watch{background:rgba(251,191,36,.12);border-color:rgba(255,255,255,.06);color:#fbbf24}.band-chip.risk{background:rgba(248,113,113,.12);border-color:rgba(255,255,255,.06);color:#f87171}
.multi-select-bar{position:sticky;top:232px;z-index:86;display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:10px 0 14px;padding:10px 12px;border:1px solid rgba(110,168,255,.22);border-radius:12px;background:rgba(16,19,24,.96);box-shadow:0 10px 24px rgba(0,0,0,.24)}
.multi-select-bar[hidden]{display:none}
.multi-select-bar strong{color:#e8eaed}
.action-btn{padding:8px 16px;border-radius:8px;border:1px solid rgba(255,255,255,.11);background:transparent;color:#e8eaed;font-weight:600;cursor:pointer;opacity:1;transition:all 0.15s;font-size:12px;letter-spacing:-0.005em;height:32px;display:inline-flex;align-items:center;justify-content:center}
.action-btn:hover{background:#1c2026}
.action-btn:disabled{cursor:not-allowed;opacity:.55}
.action-btn.green{border:none;background:#4ade80;color:#0e1013}
.action-btn.amber{border:1px solid rgba(255,255,255,.11);background:transparent;color:#fbbf24}
.action-btn.red{border:none;background:#f87171;color:#0e1013}
.action-btn.slate{border:1px solid rgba(255,255,255,.11);background:transparent;color:#e8eaed}
.action-btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:16px}
.action-btn-row .action-btn{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}
.action-btn.loading{position:relative;pointer-events:none}
.action-btn.loading::before{content:"";width:12px;height:12px;border-radius:999px;border:2px solid currentColor;border-right-color:transparent;display:inline-block;margin-right:8px;animation:spin .8s linear infinite}
.action-btn.success-flash{box-shadow:0 0 0 2px rgba(74,222,128,.25) inset;background:rgba(74,222,128,.12)}
.inline-feedback{margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid rgba(255,255,255,.08);font-size:12px;line-height:1.45}
.inline-feedback.success{background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.22);color:#4ade80}
.inline-feedback.error{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.22);color:#fca5a5}
.inline-feedback.warn{background:rgba(251,191,36,.12);border-color:rgba(251,191,36,.22);color:#fcd34d}
.toast-stack{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:1200;max-width:min(360px,calc(100vw - 32px))}
.toast{padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.08);background:#16191d;color:#e8eaed;box-shadow:0 20px 60px rgba(0,0,0,.45);font-size:12px;line-height:1.45;animation:toastIn .16s ease-out}
.toast.success{border-color:rgba(74,222,128,.25);background:rgba(16,24,19,.96)}
.toast.error{border-color:rgba(248,113,113,.25);background:rgba(32,15,18,.96)}
.toast.warn{border-color:rgba(251,191,36,.25);background:rgba(38,27,8,.96)}
.modal-backdrop{position:fixed;inset:0;background:rgba(8,10,14,.72);backdrop-filter:blur(3px);z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px;animation:fadeInBackdrop .14s ease-out}
.modal-shell,.modal-card{background:#16191d;border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:20px 22px;max-width:460px;width:100%;color:var(--text);box-shadow:0 20px 60px rgba(0,0,0,.55);animation:popIn .18s cubic-bezier(.16,1,.3,1)}
.modal-card.bookings-modal{max-width:min(1100px,96vw);max-height:86vh;display:flex;flex-direction:column;padding:0;overflow:hidden}
.modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 22px;border-bottom:1px solid var(--line)}
.modal-header h3{margin:0 0 4px;font-size:18px;color:var(--ink)}
.modal-close{width:34px;height:34px;border-radius:8px;border:1px solid var(--lineHi);background:transparent;color:var(--ink);font-size:22px;line-height:1;cursor:pointer}
.modal-close:hover{background:var(--panel2)}
.modal-scroll{overflow:auto;padding:0 22px 22px}
.modal-title{font-size:16px;font-weight:700;margin-bottom:8px;color:var(--text)}
.modal-body{font-size:13px;color:var(--muted);line-height:1.5;margin-bottom:18px}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.notes-modal{max-width:min(680px,94vw)}
.notes-modal textarea{width:100%;min-height:320px;padding:12px;border-radius:8px;border:1px solid var(--line);background:rgba(11,16,32,.5);color:var(--text);font-family:"JetBrains Mono",monospace;font-size:12px;resize:vertical}
.notes-source-toggle{display:flex;gap:14px;align-items:center;padding:12px 22px;border-bottom:1px solid var(--line);color:var(--muted);font-size:12px}.notes-source-toggle label{display:inline-flex;align-items:center;gap:6px;min-height:32px;cursor:pointer}.notes-provenance{margin-top:12px;color:var(--muted);font-size:12px}.notes-provenance summary{cursor:pointer;color:var(--ink);font-weight:700}.notes-provenance-list{padding-left:18px;line-height:1.6}.notes-copy-actions{align-items:center}.notes-copy-status{font-size:12px;color:var(--muted);min-height:18px;display:inline-flex;align-items:center}.notes-copy-status[data-copy-state="success"]{color:var(--good)}.notes-copy-status[data-copy-state="error"]{color:var(--bad)}
.context-split-pane{height:100%;overflow:auto;padding-bottom:24px;width:100%}
.context-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;gap:12px}
.context-mini-grid{display:grid;gap:14px}
.context-mini-title{font-size:13px;font-weight:800;color:var(--slate);margin-bottom:8px}
.context-chart-box{width:100%;height:320px;background:#16191d;border-radius:12px;border:1px solid rgba(255,255,255,0.06);min-width:0}
.context-chart-box.small{height:240px}
.context-history-block{background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:12px}
.context-history-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:10px}
.context-history-cards div{background:rgba(255,255,255,.04);border-radius:8px;padding:8px}
.context-history-cards span{display:block;font-size:10px;text-transform:uppercase;color:var(--faint);letter-spacing:.08em}
.context-history-cards b{display:block;margin-top:4px;color:var(--ink);font-family:"JetBrains Mono",monospace}
.context-history-table{width:100%;border-collapse:collapse;font-size:11px;color:var(--muted)}
.context-history-table th,.context-history-table td{padding:6px;border-bottom:1px solid rgba(255,255,255,.05);text-align:left}
.ms-section{margin-bottom:24px}
.ms-empty{margin:24px 0;padding:28px;text-align:center}
.ms-season-toggle{width:100%;display:flex;justify-content:space-between;align-items:center;gap:12px;cursor:pointer;background:transparent;border:none;color:var(--ink);padding:0;text-align:left}
.ms-season-chevron{color:var(--muted);font-size:12px}
.override-form{margin-top:12px;padding:16px;background:var(--panel2);border:1px solid rgba(255,191,71,.3);border-radius:12px;display:grid;gap:12px}
.override-form-section{display:grid;gap:6px}
.override-form-label{font-size:12px;color:var(--muted);font-weight:600}
.override-form-note{font-size:11px;color:var(--muted)}
.override-inline-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.override-form-input,.override-form-select,.override-form-textarea{width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--lineHi);background:rgba(11,16,32,.5);color:var(--text);font-size:13px}
.override-form-input.compact{width:84px;text-align:center;font-size:16px;font-weight:700}
.override-form-input.minstay{width:72px;text-align:center}
.override-form-textarea{resize:vertical;min-height:72px}
.override-form-checkbox{display:inline-flex;align-items:center;gap:8px;color:var(--muted);font-size:12px;cursor:pointer;min-height:32px}
.override-form-actions{display:grid;gap:8px}
.override-form [hidden]{display:none}
.tooltip-wrap{display:inline-flex}
.calendar-sticky-chrome{position:sticky;top:0;z-index:85;isolation:isolate;padding:4px 0 6px;margin-bottom:8px;background:var(--bg);border-bottom:1px solid rgba(255,255,255,.06);border-radius:10px;box-shadow:0 12px 24px -22px rgba(0,0,0,.95)}
#calendar-view .calendar-sticky-chrome::before{content:"";position:absolute;left:0;right:0;top:-8px;height:8px;background:var(--bg);border-radius:10px 10px 0 0;pointer-events:none}
.month-jump-wrap{position:relative;z-index:1;display:flex;flex-wrap:nowrap;align-items:center;gap:4px;padding:0 0 6px;margin-bottom:0;background:var(--bg);border-radius:10px 10px 6px 6px;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none}
.month-jump-wrap::-webkit-scrollbar{display:none}
.month-jump{display:flex;gap:4px;flex-wrap:nowrap}
.month-jump-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:6px 12px;border-radius:999px;border:1px solid rgba(255,255,255,.06);background:#16191d;color:rgba(232,234,237,.58);font-weight:600;font-size:10px;cursor:pointer;white-space:nowrap;flex-shrink:0}.month-jump-btn.active{background:#1c2026;color:#e8eaed;border-color:rgba(255,255,255,.11)}.month-jump-btn .dot{width:5px;height:5px;border-radius:999px;background:#fbbf24;display:inline-block}
.window-wrap{display:inline-flex;align-items:center;margin-left:auto;flex-shrink:0;font-size:11px;color:var(--muted);padding:0 4px}
.window-action-count{margin-left:8px;color:var(--amber);font-weight:700}
.calendar-sticky-context-row{display:grid;grid-template-columns:minmax(170px,230px) minmax(0,1fr);align-items:center;gap:8px;min-width:0;background:#101318;border:1px solid rgba(255,255,255,.06);border-radius:10px}
.calendar-active-month{display:flex;flex-direction:column;justify-content:center;gap:2px;min-width:0;padding:8px 10px;border-right:1px solid rgba(255,255,255,.06)}
.calendar-active-month strong{font-size:14px;line-height:1.2;font-weight:650;color:#e8eaed;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.calendar-active-month span{font-size:10px;line-height:1.3;color:rgba(232,234,237,.58);white-space:normal;overflow:visible;text-overflow:clip}
.legend-bar{display:flex;flex-wrap:wrap;gap:8px 12px;padding:8px 10px;margin:0;background:transparent;border:none;font-size:11px;color:rgba(232,234,237,.58);min-width:0}
.calendar-sticky-chrome .multi-select-bar{position:relative;top:auto;z-index:1;margin:8px 0 0}
.legend-ref{display:none;flex-wrap:wrap;gap:8px 12px;padding:8px 12px;font-size:11px;color:rgba(232,234,237,.58)}
.legend-ref.open{display:flex}
.legend-help{display:inline-flex;align-items:center;justify-content:center;min-height:32px;padding:6px 12px;cursor:pointer;color:var(--faint);font-size:11px;border-radius:8px;background:var(--panel2);border:1px solid var(--line)}
.legend-item{display:flex;align-items:center;gap:4px}
.legend-swatch{width:14px;height:14px;border-radius:4px;border:1px solid rgba(255,255,255,.06)}
.legend-swatch.raise{background:var(--raise-2)}.legend-swatch.lower{background:var(--lower-2)}.legend-swatch.hold{background:rgba(255,255,255,.08)}.legend-swatch.floor{background:linear-gradient(135deg,var(--floor-1),var(--floor-2));box-shadow:inset 3px 0 0 var(--floor-edge)}.legend-swatch.mav{background:var(--mav-soft);box-shadow:inset 3px 0 0 var(--mav-edge)}.legend-swatch.no-recommendation{background:rgba(232,234,237,.05);box-shadow:inset 0 0 0 1px rgba(232,234,237,.14)}.legend-swatch.booked{background:rgba(110,168,255,.16)}.legend-swatch.blocked{background:repeating-linear-gradient(-45deg,rgba(255,255,255,.12) 0 4px,transparent 4px 8px),#0f1216}.legend-swatch.monitoring{background:#14171c;box-shadow:inset 0 0 0 2px rgba(232,234,237,.20)}
.month-stack{display:grid;gap:16px;max-height:none;overflow:visible;padding-right:2px}.month-block{border:1px solid rgba(255,255,255,.06);border-radius:12px;background:#16191d;padding:12px;contain:layout paint;content-visibility:auto;contain-intrinsic-size:520px}.month-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px;padding:0 2px;flex-wrap:wrap;row-gap:2px;column-gap:12px}.month-title > div:first-child{min-width:0;flex:1 1 auto}.month-title h3{margin:0;font-size:15px;font-weight:600;letter-spacing:-0.01em;color:#e8eaed}
/* =====================================================================
   TILE SYSTEM — Pass 1 rebuild
   Token-driven; class names preserved for JS/test compatibility.
   Surface rhythm: quiet (unscored) → base (scored/hold) → tinted (raise/lower).
   ===================================================================== */
.calendar{display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:minmax(var(--tile-min-h, 96px), 1fr);gap:6px;padding:0;border:none;border-radius:0;overflow:visible;background:transparent}
/* Pass 7 regression fix: DOW header row was inheriting grid-auto-rows:1fr
   and stretching to tile height, pushing the first date tile way down.
   Force the first grid row (the 7 .dow cells) to auto-size by content. */
.calendar > .dow:nth-child(-n+7){grid-row:1}
.calendar{grid-template-rows:auto}
.dow{padding:2px 0 3px;text-align:center;color:rgba(232,234,237,.42);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.14em;background:transparent;border:none;border-radius:0}

/* --- Tile tokens --- */
.calendar{
  --tile-radius:10px;
  --tile-pad-x:12px;
  --tile-pad-y:10px;
  --tile-min-h:112px;
  --tile-surface:#14171c;
  --tile-surface-quiet:#101216;
  --tile-surface-hover:#1a1e24;
  --tile-line:rgba(255,255,255,.055);
  --tile-line-hi:rgba(255,255,255,.10);
  --tile-spine-w:3px;
}

/* --- Base tile --- */
.day{
  min-height:var(--tile-min-h);
  padding:var(--tile-pad-y) var(--tile-pad-x) calc(var(--tile-pad-y) + 1px) calc(var(--tile-pad-x) + 2px);
  position:relative;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  -webkit-user-select:none;user-select:none;
  border-radius:var(--tile-radius);
  border:1px solid var(--tile-line);
  background:var(--tile-surface);
  isolation:isolate;
  transition:transform .12s cubic-bezier(.2,.7,.3,1), background-color .14s ease, border-color .14s ease, box-shadow .14s ease;
}
.day.empty{background:transparent;border-color:transparent;pointer-events:none}
.day.interactive{cursor:pointer}
.day.interactive:hover{background:var(--tile-surface-hover);border-color:var(--tile-line-hi);transform:translateY(-1px);box-shadow:0 10px 28px -14px rgba(0,0,0,.7);z-index:2}
.day.interactive.scored:hover{filter:brightness(1.07);transform:translateY(-1px);z-index:2}
.day.raise-light.interactive:hover{background:var(--raise-1);border-color:rgba(74,222,128,.52)}
.day.raise-medium.interactive:hover{background:var(--raise-2);border-color:rgba(74,222,128,.30)}
.day.raise-strong.interactive:hover{background:var(--raise-3);border-color:rgba(74,222,128,.40)}
.day.lower-light.interactive:hover{background:var(--lower-1);border-color:rgba(248,113,113,.54)}
.day.lower-medium.interactive:hover{background:var(--lower-2);border-color:rgba(248,113,113,.32)}
.day.lower-strong.interactive:hover{background:var(--lower-3);border-color:rgba(248,113,113,.42)}
.day.floor.interactive:hover{background:var(--floor-2);border-color:rgba(250,204,21,.42)}
.day.interactive:active{transform:translateY(0) scale(.985);transition:transform .06s ease}

/* --- Unscored / outside-passive: true whole-tile quiet state --- */
.day:not(.scored):not(.empty):not(.booked):not(.blocked):not(.today){
  background:var(--tile-surface-quiet);
  border-color:rgba(255,255,255,.035);
}
.day:not(.scored):not(.empty):not(.booked):not(.blocked):not(.today) .daynum,
.day:not(.scored):not(.empty):not(.booked):not(.blocked):not(.today) .price,
.day:not(.scored):not(.empty):not(.booked):not(.blocked):not(.today) .minstay-badge,
.day:not(.scored):not(.empty):not(.booked):not(.blocked):not(.today) .tile-rm-line{
  opacity:.55;
}
.day.outside-passive{background:transparent;border-color:transparent}
.day.outside-passive .daynum{opacity:.35}
.day.outside-passive .price,.day.outside-passive .minstay-badge,.day.outside-passive .tile-rm-line{opacity:.35}
.day.unscored-quiet .price,.day.unscored-quiet .minstay-badge,.day.unscored-quiet .daynum,.day.unscored-quiet .tile-rm-line{opacity:.55}
.day .tile-bar.no-recommendation{background:rgba(148,163,184,.14);color:rgba(232,234,237,.62);font-size:9px;letter-spacing:.02em;text-transform:none}

/* --- Hold & monitoring: base surface, no tint --- */
.day.hold{background:var(--tile-surface);border-color:var(--tile-line)}
.day.scored-neutral{background:var(--tile-surface-hover);border-color:var(--tile-line-hi);box-shadow:inset 4px 0 0 rgba(232,234,237,.32), inset 0 0 0 1px rgba(255,255,255,.075)}
.day.monitoring{background:var(--tile-surface);border-color:var(--tile-line)}
.day.monitoring .daynum::after{content:"";display:inline-block;width:4px;height:4px;border-radius:999px;background:rgba(232,234,237,.32);margin-left:8px;vertical-align:middle;transform:translateY(-1px)}

/* --- Tint ramps: background fill + matching spine intensity --- */
.day.price-action-mismatch{outline:1px solid var(--amber);outline-offset:-2px}
.badge-m{background:rgba(251,191,36,.88);color:#1f1600;font-weight:800}
.day.raise-light  {background:var(--raise-1);border-color:rgba(74,222,128,.42);box-shadow:inset 4px 0 0 rgba(74,222,128,.75), inset 0 0 0 1px rgba(74,222,128,.16)}
.day.raise-medium {background:var(--raise-2);border-color:rgba(74,222,128,.20)}
.day.raise-strong {background:var(--raise-3);border-color:rgba(74,222,128,.30)}
.day.lower-light  {background:var(--lower-1);border-color:rgba(248,113,113,.44);box-shadow:inset 4px 0 0 rgba(248,113,113,.78), inset 0 0 0 1px rgba(248,113,113,.18)}
.day.lower-medium {background:var(--lower-2);border-color:rgba(248,113,113,.22)}
.day.lower-strong {background:var(--lower-3);border-color:rgba(248,113,113,.32)}
.day.floor{background:var(--floor-1);border-color:rgba(250,204,21,.32);box-shadow:inset 4px 0 0 var(--floor-edge), inset 0 0 0 1px rgba(250,204,21,.16)}

/* --- Today: soft inner glow + brand-navy daynum dot, no hard ring --- */
.day.today{
  border-color:rgba(110,168,255,.38);
  box-shadow:inset 0 0 0 1px rgba(110,168,255,.22), 0 0 0 1px rgba(110,168,255,.10);
  z-index:3;
}
.day.today .daynum{color:var(--brand);font-weight:600}
.day.today .daynum::before{
  content:"";display:inline-block;width:5px;height:5px;border-radius:999px;
  background:var(--brand);margin-right:4px;vertical-align:middle;transform:translateY(-1px);
  box-shadow:0 0 0 2px rgba(110,168,255,.18);
}

/* --- Selected: layered on top of any action/tint styling --- */
.day.selected,.day.multi-selected{
  border-color:rgba(232,234,237,.95);
  z-index:5;
}
.day.multi-selected{box-shadow:inset 0 0 0 1px rgba(110,168,255,.5),0 0 14px rgba(110,168,255,.16)}
.day.selected::before,.day.multi-selected::before{
  content:"";
  position:absolute;
  inset:2px;
  border:2px solid rgba(232,234,237,.96);
  border-radius:calc(var(--tile-radius) - 2px);
  pointer-events:none;
  z-index:8;
  box-shadow:0 0 0 1px rgba(0,0,0,.65), 0 0 16px rgba(110,168,255,.24);
}
.day.selected::after,.day.multi-selected::after{
  content:"✓";
  position:absolute;
  top:4px;
  right:4px;
  width:15px;
  height:15px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  background:rgba(232,234,237,.96);
  color:#0b0f17;
  font-size:10px;
  font-weight:800;
  line-height:1;
  pointer-events:none;
  z-index:9;
  box-shadow:0 0 0 1px rgba(0,0,0,.7);
}

/* --- Needs-action: warm amber left-edge accent --- */
.day.needs-action{
  border-color:rgba(251,191,36,.38);
  box-shadow:inset 2px 0 0 0 rgba(251,191,36,.75);
}
.day.today.needs-action{border-color:rgba(251,191,36,.48)}

/* --- Booked: flat indigo surface, dedicated layout --- */
.day.booked{
  background:linear-gradient(180deg, rgba(110,168,255,.11), rgba(110,168,255,.07));
  border-color:rgba(110,168,255,.22);
}
.day.booked .daynum{color:rgba(184,209,255,.82)}
.day.booked::after{display:none}

/* --- Blocked: true diagonal pattern, readable but muted --- */
.day.blocked{
  background:
    repeating-linear-gradient(-45deg,
      rgba(255,255,255,.03) 0 6px,
      transparent 6px 12px),
    #0f1216;
  border-color:rgba(255,255,255,.05);
}
.day.blocked .daynum{color:rgba(232,234,237,.28)}

/* --- Past: collapsed, minimal info --- */
.day.past{background:transparent;border-color:rgba(255,255,255,.03)}
.day.past .daynum{color:rgba(232,234,237,.22);font-size:11px}
.day.past .price.past-price{color:rgba(232,234,237,.28);font-size:11px;font-weight:400}

.tile-tooltip{display:none}
.tile-tooltip-portal{display:none;position:fixed;background:#16191d;border:1px solid rgba(255,255,255,.11);border-radius:10px;padding:10px 12px;font-size:11px;color:#e8eaed;z-index:9999;pointer-events:none;min-width:180px;max-width:320px;width:max-content;white-space:normal;box-shadow:0 16px 36px -16px rgba(0,0,0,.78)}
.tile-tooltip-title{font-size:12px;font-weight:700;color:#f3f4f6;margin-bottom:8px}
.tile-tooltip-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:start}
.tile-tooltip-label{font-weight:700;color:rgba(232,234,237,.78)}
.tile-tooltip-value{font-weight:500;color:#e8eaed;text-align:right}
.tile-tooltip-row-full{grid-column:1 / -1;padding-top:2px;border-top:1px solid rgba(255,255,255,.06);margin-top:2px}
.decision-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 8px;border-radius:4px;font-size:10px;font-weight:600;line-height:18px}
.decision-badge.approved{background:rgba(74,222,128,.14);color:#4ade80}.decision-badge.approved-maverick{background:rgba(110,168,255,.16);color:#9cc4ff}.decision-badge.approved-hold{background:rgba(255,255,255,.08);color:rgba(232,234,237,.72)}.decision-badge.overridden{background:rgba(251,191,36,.14);color:#fbbf24}.decision-badge.rejected{background:rgba(248,113,113,.14);color:#f87171}.decision-badge.skipped{background:rgba(255,255,255,.06);color:rgba(232,234,237,.58)}
.mav-delta-chip{display:none}

/* --- Tile internal layout: day-top / tile-main / tile-bar / corner-row --- */
.day-top{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:0;min-height:14px;position:relative;z-index:2;
}
.daynum{
  font-size:10px;font-weight:500;line-height:1;
  color:rgba(232,234,237,.62);
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.01em;
  display:inline-flex;align-items:center;
}
.minstay{display:inline-flex;align-items:center;gap:4px}
.minstay-badge{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:18px;height:16px;padding:0 4px;
  border-radius:4px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.05);
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-size:10px;font-weight:500;line-height:1;
  color:rgba(232,234,237,.62);
}
.minstay-badge[data-override="1"]{
  background:rgba(251,191,36,.10);
  border-color:rgba(251,191,36,.22);
  color:#fbbf24;
}

.tile-main{
  flex:1;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  text-align:left;gap:4px;min-height:0;padding:2px 0;
  position:relative;z-index:2;
}
.tile-main.booked-main{align-items:center;text-align:center;justify-content:center}
.booked-copy{display:flex;flex-direction:column;align-items:center;gap:4px}
.price{
  font-size:20px;font-weight:500;line-height:1.05;margin:0;
  letter-spacing:-.02em;color:#eef0f3;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  font-variant-numeric:tabular-nums;
}
.price.dimmed{opacity:.42}
.price.past-price{font-size:12px;opacity:.55;font-weight:400}
.day.raise-strong .price,.day.lower-strong .price{color:#f5f6f8}
.tile-rm-line{
  font-size:10px;font-weight:500;line-height:1.1;
  color:rgba(232,234,237,.48);
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  letter-spacing:.01em;
}
.listed-line{
  font-size:10px;font-weight:400;line-height:1.15;
  color:rgba(232,234,237,.45);
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
.booked-label{
  font-size:9px;font-weight:600;color:var(--brand);
  text-transform:uppercase;letter-spacing:.12em;
  display:inline-flex;align-items:center;gap:4px;
}
.booked-key{font-size:9px;line-height:1}

/* --- Tile bar (bottom ribbon) --- */
.tile-bar{
  height:15px;
  display:flex;align-items:center;
  padding:0 8px;
  font-size:9px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  position:relative;z-index:2;
  margin:8px -4px -2px;
  border-radius:4px;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
.tile-bar.raise{background:rgba(74,222,128,.16);color:#7ee8a8}
.tile-bar.lower{background:rgba(248,113,113,.16);color:#ff9b9b}
.tile-bar.hold {background:rgba(255,255,255,.05);color:rgba(232,234,237,.42)}
.tile-bar.floor{background:rgba(250,204,21,.16);color:#fde68a}
.tile-bar.spacer{background:transparent}
.tile-bar.band-start{border-top-left-radius:4px;border-bottom-left-radius:4px;border-top-right-radius:0;border-bottom-right-radius:0}
.tile-bar.band-end  {border-top-right-radius:4px;border-bottom-right-radius:4px;border-top-left-radius:0;border-bottom-left-radius:0}
.tile-bar.band-middle{border-radius:0;margin-left:-4px;margin-right:-4px}
.tile-bar.band-start.band-end{border-radius:4px}
.tile-bar.band-label-muted{opacity:.96}

/* --- Corner row (holiday / scored dot / capped) --- */
.corner-row{
  margin-top:8px;display:flex;justify-content:space-between;align-items:center;
  gap:8px;min-height:14px;padding:0;position:relative;z-index:2;
}
.badge-sm{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:16px;height:14px;padding:0 4px;
  border-radius:4px;
  font-size:9px;font-weight:700;line-height:1;letter-spacing:.02em;
  font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}
.badge-h{background:var(--brand-soft);color:var(--brand)}
.badge-c{background:rgba(251,191,36,.14);color:#fbbf24}
.badge-b{background:rgba(255,255,255,.06);color:rgba(232,234,237,.5)}
.badge-s{
  display:inline-block;width:5px;height:5px;border-radius:999px;
  background:rgba(232,234,237,.32);
  box-shadow:0 0 0 2px rgba(232,234,237,.06);
}
/* D7/MAV-476: prior-run acted marker (decoration only; controls unaffected) */
.badge-hist{display:inline-block;font-size:8px;line-height:1;color:rgba(148,163,184,.85);margin-right:2px}
.day.raise-medium .badge-s,.day.raise-strong .badge-s{background:rgba(126,232,168,.7)}
.day.lower-medium .badge-s,.day.lower-strong .badge-s{background:rgba(255,155,155,.7)}
.stack{display:grid;gap:12px}.stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;align-content:start}.stat{background:#16191d;border:1px solid rgba(255,255,255,.06);padding:16px;border-radius:12px;min-height:60px;display:flex;flex-direction:column;justify-content:center;overflow:hidden}.stat .label{color:rgba(232,234,237,.32);font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.1em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat .value{font-size:24px;font-weight:600;margin-top:8px;line-height:1;overflow:hidden;text-overflow:ellipsis;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-0.02em;color:#e8eaed}
.card{background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:14px}.card h3{margin:0 0 10px;font-size:15px;font-weight:600;color:#e8eaed}.rec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.rec-col{background:#0e1013;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px}.rec-col .label{font-size:10px;color:rgba(232,234,237,.32);text-transform:uppercase;letter-spacing:.1em;font-weight:600} .rec-col .value{font-size:20px;font-weight:600;margin-top:6px;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-0.02em;color:#e8eaed;line-height:1.15}.detail-panel .card + .card{margin-top:10px}.detail-panel .muted + .rec-grid,.detail-panel .rec-grid + .rec-grid{margin-top:10px}
.action-line{margin-top:12px;font-size:15px;font-weight:600;overflow-wrap:break-word;color:#e8eaed}.warning{margin-top:16px;padding:12px 16px;border-radius:8px;font-size:13px;line-height:1.5;display:flex;gap:12px;align-items:flex-start;font-weight:600}.warning::before{content:"";width:3px;align-self:stretch;border-radius:2px;flex-shrink:0}.warning.red{background:var(--downSoft);color:#ffb5b5}.warning.red::before{background:var(--down)}.warning.amber{background:var(--amberSoft);color:#fbbf24}.warning.amber::before{background:var(--amber)}.warning.info{background:var(--blueSoft);color:#b8d1ff}.warning.info::before{background:var(--blue)}.inline-note{margin-top:12px;font-size:13px;line-height:1.5}.inline-note.amber{color:#fbbf24}.explanation-text{margin-top:16px;padding:16px;background:rgba(110,168,255,.04);border:1px solid rgba(110,168,255,.14);border-radius:8px;font-size:13px;line-height:1.65;color:var(--dim);font-style:normal;overflow-wrap:break-word;word-break:break-word}.explanation-text::before{content:"Why";display:block;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--blue);font-weight:600;margin-bottom:8px}
.muted{color:rgba(232,234,237,.58)} .empty-state{padding:16px;border:1px dashed rgba(255,255,255,.06);border-radius:12px;color:rgba(232,234,237,.58);background:#16191d}
.detail-panel{display:flex;flex-direction:column;overflow:hidden;min-height:0;height:100%;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px 24px;position:relative;z-index:20}.detail-panel .price,.detail-panel .value{font-size:28px;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;font-weight:600}.detail-panel .label,.detail-panel .muted,.detail-panel .tile-rm-line{font-size:11px}
/* =====================================================================
   RESPONSIVE SYSTEM — Pass 3
   Breakpoints: 1440+ full, 1024-1440 laptop, 768-1024 tablet, <768 phone.
   Goals: tile price never overflows; context/detail panels stop cramping;
   toolbar reflows predictably; mobile gets touch tiles + bottom-sheet.
   ===================================================================== */

/* Tile price uses clamp so it scales with viewport — never overflows tile. */
.price{font-size:clamp(13px, 1.15vw + 6px, 20px)}
.day{container-type:inline-size}
/* When a tile gets narrow (e.g. 7-col at <900px), shrink internals harder. */
@container (max-width: 78px){
  .price{font-size:12px;letter-spacing:-.03em}
  .tile-rm-line,.listed-line{font-size:9px}
  .tile-bar{font-size:8px;padding:0 4px}
  .daynum{font-size:10px}
}

/* ---------- ≤ 1440 : laptop. Context & rec panels cramp, text truncates. ---------- */
@media (max-width: 1440px){
  .app{padding:16px}
  .calendar-view-layout{grid-template-columns:minmax(200px,230px) minmax(0,1fr) minmax(300px,360px);gap:12px}
  .context-value{font-size:12px;white-space:normal;word-break:break-word}
  .context-pair{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:8px}
  .tb-listing{max-width:220px}
  .rec-hero{padding:16px}
  .rec-to-val{font-size:26px}
  .rec-from-val{font-size:18px}
  .mh-value{font-size:26px}
  .detail-panel{padding:16px}
  .detail-panel .price,.detail-panel .value{font-size:22px}
  .stat .value{font-size:20px}
}

/* ---------- ≤ 1024 : tablet / narrow laptop. Rail stacks on top. ---------- */
@media (max-width: 1024px){
  .app{padding:12px}
  .topbar{grid-template-columns:1fr auto;gap:8px}
  .topbar-summary{display:none}
  .calendar-view-layout{
    grid-template-columns:minmax(0,1fr) minmax(300px,340px);
    grid-template-rows:auto 1fr;
    gap:12px;height:auto;overflow:visible;
  }
  .calendar-left-rail{grid-column:1 / -1;grid-row:1}
  .listing-context-panel{max-height:240px;overflow-y:auto}
  .listing-context-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .calendar-main{grid-column:1;grid-row:2;min-width:0}
  .calendar-view-layout > .detail-panel{grid-column:2;grid-row:2}
  .calendar-view-layout.detail-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .calendar-view-layout.detail-collapsed > .calendar-main{grid-column:1;grid-row:2}
  .calendar-view-layout.content-fullwidth,
  .calendar-view-layout.content-fullwidth.rail-collapsed,
  .calendar-view-layout.content-fullwidth.detail-collapsed,
  .calendar-view-layout.content-fullwidth.rail-collapsed.detail-collapsed{grid-template-columns:minmax(0,1fr);grid-template-rows:auto}
  .calendar-view-layout.content-fullwidth > .calendar-main{grid-column:1 / -1;grid-row:1;display:block;overflow:visible}
  .calendar-view-layout.content-fullwidth .calendar-center{height:auto;overflow:visible;overscroll-behavior:auto}
  .calendar-toolbar{gap:12px}
  .tb-listing{max-width:none;flex:1;min-width:0}
  .tb-utility{padding-left:12px}
  .tb-utility .tb-ghost{padding:8px;font-size:11px}
  .market-layout{grid-template-columns:1fr}
  .metric-card-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .calendar{gap:4px;--tile-min-h:96px;--tile-pad-x:10px;--tile-pad-y:8px}
  .rec-hero{grid-template-columns:1fr;gap:8px;text-align:left}
  .rec-arrow{display:none}
}

/* ---------- < 768 : phone. Card stack + bottom-sheet detail. ---------- */
@media (max-width: 767px){
  .app{padding:12px 8px 80px;max-width:100vw;overflow-x:hidden}
  .topbar{grid-template-columns:minmax(0,1fr);padding:12px;gap:4px;margin-bottom:12px;max-width:100%;min-width:0}
  .topbar-title{font-size:17px}
  .topbar-summary{display:none}
  .topbar-status{justify-self:start;max-width:100%;min-width:0;flex-wrap:wrap}
  .topbar-file{white-space:normal;overflow-wrap:anywhere}

  /* Portfolio: keep table + horizontal scroll, stick the first column. */
  .portfolio-panel h2,.panel h2{padding:12px 16px;font-size:17px}
  .portfolio-table{font-size:12px}
  .portfolio-table th,.portfolio-table td{padding:8px 12px}
  .portfolio-table th:first-child,.portfolio-table td:first-child{
    position:sticky;left:0;background:#16191d;
    box-shadow:2px 0 6px -4px rgba(0,0,0,.6);z-index:3;
  }
  .portfolio-table th:first-child{z-index:4}

  /* Calendar: single column stack. */
  .calendar-view-layout{display:block;height:auto;overflow:visible;grid-template-columns:minmax(0,1fr);max-width:100%;min-width:0}
  .calendar-left-rail{display:none}
  .calendar-left-rail .listing-context-panel{max-height:none;overflow:visible}
  .mobile-listing-context-summary{display:block;margin:0 0 10px;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:rgba(22,25,29,.96);overflow:hidden}
  .mobile-listing-context-summary summary{display:grid;grid-template-columns:1fr auto;grid-template-areas:"eyebrow eyebrow" "title chevron" "meta meta";gap:2px 8px;padding:10px 12px;list-style:none;cursor:pointer;min-width:0}
  .mobile-listing-context-summary summary::-webkit-details-marker{display:none}
  .mobile-listing-context-summary summary::after{content:"⌄";grid-area:chevron;align-self:center;color:var(--faint);transition:transform .18s ease}
  .mobile-listing-context-summary[open] summary::after{transform:rotate(180deg)}
  .mobile-context-eyebrow{grid-area:eyebrow;color:var(--brand);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em}
  .mobile-listing-context-summary summary strong{grid-area:title;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--ink);font-size:14px}
  .mobile-listing-context-summary summary small{grid-area:meta;min-width:0;color:var(--muted);font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .mobile-listing-context-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 12px 12px}
  .mobile-listing-context-grid div{min-width:0;padding:8px;border-radius:10px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.055)}
  .mobile-listing-context-grid span{display:block;margin-bottom:3px;color:var(--faint);font-size:10px;text-transform:uppercase;letter-spacing:.05em}
  .mobile-listing-context-grid strong{display:block;min-width:0;color:var(--ink);font-size:12px;line-height:1.25;overflow-wrap:anywhere}
  .mobile-listing-context-grid strong small{display:block;margin-top:2px;color:var(--muted);font-size:10px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .listing-context-grid{grid-template-columns:1fr}
  .calendar-main{margin-bottom:76px;min-width:0;max-width:100%;overflow-x:hidden}
  .calendar-view-layout.content-fullwidth .calendar-main{margin-bottom:0}
  .calendar-sticky-title{position:sticky;top:0;z-index:14;margin:0 0 8px;padding:10px 2px;background:var(--panel);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;overflow-wrap:anywhere;max-width:100%}

  /* Detail panel → bottom sheet, hidden until a date opens it. */
  .calendar-view-layout > .detail-panel,
  .calendar-view-layout > .detail-right-panel,
  .calendar-detail-grid > .detail-right-panel{
    position:fixed;inset:auto 0 0 0;left:0;right:0;bottom:0;top:auto;
    display:block !important;max-height:72vh;height:auto;width:100vw;max-width:100vw;margin:0;box-sizing:border-box;
    border-radius:12px 12px 0 0;
    border:1px solid var(--lineHi);border-bottom:none;
    box-shadow:0 -16px 48px -12px rgba(0,0,0,.7);
    transform:translate3d(0,100%,0);
    transition:transform .22s cubic-bezier(.2,.7,.3,1);
    z-index:50;padding:0 16px 16px;overflow:hidden;background:var(--panel);
  }
  .calendar-view-layout > .detail-panel::before,
  .calendar-view-layout > .detail-right-panel::before,
  .calendar-detail-grid > .detail-right-panel::before{content:"";display:none}
  .calendar-view-layout > .detail-panel .mobile-sheet-drag-handle,
  .calendar-view-layout > .detail-right-panel .mobile-sheet-drag-handle,
  .calendar-detail-grid > .detail-right-panel .mobile-sheet-drag-handle{display:flex;align-items:flex-start;justify-content:center;flex:0 0 auto;width:72px;height:34px;margin:0 auto 2px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
  .calendar-view-layout > .detail-panel .mobile-sheet-drag-handle::before,
  .calendar-view-layout > .detail-right-panel .mobile-sheet-drag-handle::before,
  .calendar-detail-grid > .detail-right-panel .mobile-sheet-drag-handle::before,
  .calendar-view-layout > .detail-panel .mobile-sheet-grip,
  .calendar-view-layout > .detail-right-panel .mobile-sheet-grip,
  .calendar-detail-grid > .detail-right-panel .mobile-sheet-grip{content:"";display:block;width:44px;height:4px;margin:13px auto 0;border-radius:999px;background:rgba(232,234,237,.3)}
  .calendar-view-layout > .detail-panel.sheet-dragging .mobile-sheet-drag-handle,
  .calendar-view-layout > .detail-right-panel.sheet-dragging .mobile-sheet-drag-handle,
  .calendar-detail-grid > .detail-right-panel.sheet-dragging .mobile-sheet-drag-handle{cursor:grabbing}
  .calendar-view-layout > .detail-panel h2,
  .calendar-view-layout > .detail-right-panel h2,
  .calendar-detail-grid > .detail-right-panel h2{
    padding:8px 4px 12px;font-size:14px;
    border-bottom:1px solid var(--line);cursor:pointer;user-select:none;
    display:flex;align-items:center;justify-content:space-between;
  }
  .calendar-view-layout > .detail-panel h2::after,
  .calendar-view-layout > .detail-right-panel h2::after,
  .calendar-detail-grid > .detail-right-panel h2::after{
    content:"⌃";font-size:14px;color:var(--faint);transition:transform .22s ease;
  }
  body.sheet-open .calendar-view-layout > .detail-panel,
  body.sheet-open .calendar-view-layout > .detail-right-panel,
  body.sheet-open .calendar-detail-grid > .detail-right-panel{transform:translate3d(0,0,0)}
  body.sheet-open .calendar-view-layout > .detail-panel h2::after,
  body.sheet-open .calendar-view-layout > .detail-right-panel h2::after,
  body.sheet-open .calendar-detail-grid > .detail-right-panel h2::after{transform:rotate(180deg)}
  .calendar-view-layout > .detail-panel .stack,
  .calendar-view-layout > .detail-right-panel #recommendationDetailContent,
  .calendar-detail-grid > .detail-right-panel #recommendationDetailContent{
    overflow-y:auto;max-height:calc(72vh - 60px);padding-bottom:16px;
  }
  /* WS-G/BH-16: lock page scroll while the rec-detail bottom sheet is open, the
     same way market-context-open and touch-bulk-confirm-open already do. Without
     this the page scrolls / iOS pull-to-refresh competes with the sheet gesture.
     The sheet's own #recommendationDetailContent keeps its inner overflow:auto. */
  body.sheet-open{overflow:hidden;overscroll-behavior:none}
  body.sheet-open::after{
    content:"";position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:49;
    animation:sheet-fade .2s ease;pointer-events:none;
  }
  @keyframes sheet-fade{from{opacity:0}to{opacity:1}}

  /* Tiles: touch-sized. 7-col stays; tiles grow taller, pad smaller. */
  .calendar{gap:4px;--tile-min-h:84px;--tile-pad-x:7px;--tile-pad-y:6px;--tile-radius:8px;min-width:0;width:100%}
  .dow{font-size:9px;padding:8px 0;letter-spacing:.1em}
  .day{min-height:var(--tile-min-h)}
  .day-top{min-height:12px}
  .daynum{font-size:10px}
  .minstay-badge{min-width:16px;height:14px;padding:0 4px;font-size:9px}
  .price{font-size:13px;line-height:1.05;letter-spacing:-.03em}
  .tile-rm-line,.listed-line{font-size:9px}
  /* Maverick delta chip: on phones tiles show day + current price + compact colored Mav delta. */
  .day .tile-rm-line{display:none}
  .mav-delta-chip{display:inline-flex;align-items:center;justify-content:center;min-height:16px;max-width:100%;padding:1px 5px;border-radius:999px;font-family:"JetBrains Mono",monospace;font-size:9px;font-weight:800;letter-spacing:-.02em;line-height:1;white-space:nowrap}
  .mav-delta-chip.up{background:rgba(74,222,128,.16);color:#7ee8a8}.mav-delta-chip.down{background:rgba(248,113,113,.16);color:#ff9b9b}.mav-delta-chip.flat{background:rgba(255,255,255,.06);color:rgba(232,234,237,.62)}
  .tile-bar{height:13px;font-size:8px;padding:0 4px;margin:4px -4px -1px}
  .tile-bar[data-mobile-label]{font-size:0}
  .tile-bar[data-mobile-label]::after{content:attr(data-mobile-label);font-size:8px;line-height:13px}
  .corner-row{margin-top:4px;min-height:12px}
  .badge-sm{min-width:14px;height:12px;font-size:8px}

  /* Toolbar: stack; primary action full width. */
  .calendar-toolbar{flex-direction:column;align-items:stretch;gap:8px}
  .tb-nav{order:1;gap:8px;min-width:0;max-width:100%}
  .tb-back{padding:4px 0;font-size:12px}
  .tb-listing{padding-left:12px;max-width:100%;font-size:11px;min-width:0}
  .tb-primary{order:2;margin-left:0;width:100%;gap:8px;flex-wrap:wrap}
  .tb-primary .primary-action{flex:1 1 auto;justify-content:center;height:44px;min-width:0}
  .tb-primary .tb-secondary{height:44px;flex:0 0 auto;padding:0 12px}
  .tb-utility{order:3;padding-left:0;border-left:none;border-top:1px solid var(--line);
    padding-top:8px;width:100%;justify-content:space-between;min-width:0;flex-wrap:wrap}
  .tb-utility .tb-ghost{flex:1;text-align:center;padding:8px;font-size:11px}

  /* Nav tabs scroll horizontally. */
  .nav-tabs{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .nav-tabs::-webkit-scrollbar{display:none}
  .nav-tab{padding:12px 16px;font-size:12px;flex-shrink:0}

  /* Stats / rec */
  .stats,.rec-grid{grid-template-columns:1fr}
  .metric-card-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .market-layout{grid-template-columns:minmax(0,1fr);max-width:100%;overflow-x:hidden}
  .market-toolbar{align-items:flex-start}
  .range-selector{max-width:100%;overflow-x:auto;flex-wrap:nowrap;padding-bottom:2px}
  .chart-panel{max-width:100%;overflow:visible;margin-bottom:32px}
  .market-chart{max-width:100%;min-width:0}
  .market-chart.price{height:460px}
  .market-chart.occ{height:300px}
  .market-chart.history{height:280px}
  #perfTrendsTable,#recentBookingsTable,.portfolio-table-wrap{max-width:100%;overflow-x:auto}
  .booking-kpi-grid{grid-template-columns:minmax(0,1fr)}
  .booking-insights-mobile-cards{max-width:100%;min-width:0;overflow-x:hidden}
  .metric-card{height:auto;padding:12px}
  .metric-card-value{font-size:18px}
  .rec-hero{grid-template-columns:1fr;padding:16px;gap:12px}
  .rec-arrow{display:none}
  .rec-to-val{font-size:26px}
  .rec-from-val{font-size:18px}
  .decide-primary{height:48px;font-size:14px}
  .market-hero{grid-template-columns:1fr;gap:12px}
  .mh-value{font-size:24px}
  .calendar-sticky-context-row{grid-template-columns:minmax(0,1fr);gap:0}
  .calendar-active-month{border-right:0;border-bottom:1px solid rgba(255,255,255,.06);padding:7px 10px}
  .calendar-active-month span{white-space:normal;overflow:visible;text-overflow:clip}
  .legend-bar{overflow-x:auto;flex-wrap:nowrap;gap:12px;scrollbar-width:none}
  .legend-bar::-webkit-scrollbar{display:none}
  .legend-item{flex-shrink:0}
  .booking-insights-mobile-cards .table-scroll{overflow:visible;max-width:100%;min-width:0}
  .booking-insights-mobile-cards .perf-table,.booking-insights-mobile-cards .bookings-table{display:block;border-collapse:separate;border-spacing:0;width:100%;max-width:100%;min-width:0;table-layout:fixed}
  .booking-insights-mobile-cards thead{display:none}
  .booking-insights-mobile-cards tbody{display:grid;gap:10px;max-width:100%;min-width:0}
  .booking-insights-mobile-cards tr{display:grid;gap:7px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#16191d;max-width:100%;min-width:0}
  .booking-insights-mobile-cards td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0;border:0;white-space:normal;text-align:right;overflow-wrap:anywhere;min-width:0;max-width:100%}
  .booking-insights-mobile-cards td > *{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  .booking-insights-mobile-cards td::before{content:attr(data-label);flex:0 1 42%;min-width:0;color:var(--faint);font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.08em;text-align:left;overflow-wrap:anywhere}
}

/* Very small phones: 7-col at 360px = ~48px tiles — tighten further. */
@media (max-width: 360px){
  .calendar{gap:2px;--tile-min-h:76px;--tile-pad-x:5px;--tile-pad-y:5px}
  .price{font-size:12px}
  .daynum{font-size:9px}
  .tile-bar{display:none}
}

/* Touch: bump hit targets everywhere. */
@media (pointer:coarse){
  .action-btn,.tb-secondary,.decide-secondary{min-height:40px}
  .nav-tab{min-height:40px}
}
.market-toolbar{position:static;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 0 16px;margin-bottom:16px;background:transparent}
.range-selector{display:flex;gap:8px;flex-wrap:wrap}
.market-range-controls{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0 12px}
.range-pill{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--dim);border-radius:999px;padding:5px 12px;font-size:11px;font-weight:700;letter-spacing:.04em;cursor:pointer}
.range-pill:hover,.range-pill.active{border-color:rgba(251,191,36,.65);color:#fbbf24;background:rgba(251,191,36,.12)}
.chart-panel{background:transparent;border:none;padding:0;margin-bottom:48px}
.chart-panel + .chart-panel{margin-top:0}
.chart-title{font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.005em;margin:0 0 4px}
.chart-asof{font-size:11px;font-weight:400;color:var(--faint);margin-left:8px}
.chart-subtitle{font-size:12px;color:var(--faint);margin:0 0 16px}
.market-chart{width:100%;max-width:100%;min-width:0;background:#16191d}
.market-chart.price{height:clamp(420px,55vh,560px)}
.market-chart.occ{height:360px}
.market-chart.history{height:320px}
.chart-empty{display:flex;align-items:center;justify-content:center;height:220px;border:1px dashed rgba(255,255,255,.06);border-radius:12px;color:rgba(232,234,237,.58);background:#16191d}
.chart-loading{display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;padding:48px}
.ptip{position:fixed;z-index:999;background:rgba(15,18,24,.98);border:1px solid rgba(110,168,255,.22);border-radius:12px;padding:12px 14px;font-size:12px;color:#e8eaed;pointer-events:none;white-space:normal;display:none;min-width:240px;box-shadow:0 18px 48px rgba(0,0,0,.42)}
.ptip-title{font-weight:700;margin-bottom:8px;color:#fff}
.ptip-row{display:flex;justify-content:space-between;gap:18px;padding:5px 0;border-top:1px solid rgba(255,255,255,.06)}
.ptip-row:first-of-type{border-top:0}
.ptip-label{color:rgba(232,234,237,.58)}
.ptip-value{font-family:"JetBrains Mono",monospace;font-weight:700;color:#e8eaed;text-align:right}
.metric-card-row,.metric-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.metric-card{min-height:82px;height:auto;border-radius:12px;background:#16191d;border:1px solid rgba(255,255,255,.06);padding:16px 16px 18px;color:#e8eaed;text-align:left;cursor:pointer;transition:border-color .15s ease, background .15s ease;display:flex;flex-direction:column;justify-content:space-between;gap:10px}
.metric-card.active{border-color:rgba(255,255,255,.11);background:#1c2026}
.metric-card-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:rgba(232,234,237,.32);font-weight:600}
.metric-card-value{font-size:24px;font-weight:600;margin-top:0;padding-bottom:2px;line-height:1.15;color:#e8eaed;font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:-0.02em}
.market-summary-grid{display:grid;gap:12px}
.legend-inline-note{font-size:12px;color:var(--muted)}
@media (max-width: 1100px){.metric-card-row,.metric-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
.booking-insights{padding-bottom:80px}
.booking-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.booking-section-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.table-scroll{overflow-x:auto;max-width:100%}
.inline-select{margin-left:6px;background:#101318;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:6px 8px;font:500 12px "Inter",sans-serif}
@media (max-width: 1100px){.booking-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.perf-table,.bookings-table{width:100%;border-collapse:collapse;font-size:13px}
.perf-table th,.perf-table td{padding:12px;border-bottom:1px solid rgba(255,255,255,0.06);text-align:left;white-space:nowrap}
.bookings-table th,.bookings-table td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,0.06);text-align:left;white-space:nowrap}
.perf-table th,.bookings-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:rgba(232,234,237,.32);position:sticky;top:0;background:#16191d}
.perf-table tr:hover td,.bookings-table tr:hover td{background:#1c2026}
.perf-table .current{background:#1c2026}.current-pill{display:inline-flex;align-items:center;margin-left:8px;padding:2px 7px;border-radius:999px;background:rgba(77,163,255,.14);border:1px solid rgba(77,163,255,.28);color:#93c5fd;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.perf-delta{min-width:84px;color:var(--muted)}.perf-cell.empty{color:var(--faint)}
.booking-kpi-card .mh-value{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}.booking-kpi-card .mh-label{line-height:1.25;overflow-wrap:anywhere}.booking-kpi-card .perf-yoy{display:block;margin:6px 0 0;font-size:12px}.info-dot{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:999px;border:1px solid rgba(232,234,237,.22);color:var(--faint);font-size:9px;margin-left:4px}.perf-yoy{font-size:12px;font-weight:600;margin-left:8px}
.perf-yoy.up{color:#4ade80}
.perf-yoy.down{color:#f87171}
.perf-yoy.flat{color:var(--faint)}
.perf-cell{position:relative}
.perf-tip{display:none;position:fixed;z-index:9999;left:50%;transform:translateX(-50%);background:#16191d;border:1px solid rgba(255,255,255,.11);border-radius:8px;padding:12px 16px;font-size:12px;color:#e8eaed;white-space:nowrap;pointer-events:none;line-height:1.6}.booking-tip-cell{cursor:help}.booking-tooltip{position:fixed;z-index:9999;display:none;transform:translateX(-50%);max-width:360px;padding:12px 14px;border-radius:10px;background:#11151b;border:1px solid rgba(77,163,255,.28);box-shadow:0 18px 46px rgba(0,0,0,.42);color:var(--text);font-size:12px;line-height:1.45;pointer-events:none;white-space:normal}.booking-tooltip.visible{display:block}.booking-tooltip .tip-summary{font-weight:700;color:#e8eaed;margin-bottom:8px}.booking-tooltip .tip-title{font-weight:700;color:#93c5fd;margin:6px 0 4px}.booking-tooltip .tip-row{color:var(--slate);font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}
.context-tooltip{position:relative;display:inline-flex;align-items:center;justify-content:flex-end}
.context-tooltip-pop{position:absolute;right:0;top:calc(100% + 8px);display:none;min-width:220px;max-width:min(320px,calc(100vw - 32px));padding:10px 12px;border-radius:10px;background:#16191d;border:1px solid rgba(255,255,255,.11);box-shadow:0 16px 36px -16px rgba(0,0,0,.78);z-index:80;text-align:left;white-space:normal;overflow-wrap:anywhere}
.context-tooltip-pop.align-left{right:auto;left:0}
.context-tooltip-pop.align-center{right:auto;left:50%;transform:translateX(-50%)}
.context-tooltip:hover .context-tooltip-pop,.context-tooltip:focus-within .context-tooltip-pop{display:block}
.context-tooltip-pop .tt-title{font-size:12px;font-weight:700;color:#f3f4f6;margin-bottom:8px}
.context-tooltip-pop .tt-grid{display:grid;grid-template-columns:auto 1fr;gap:4px 10px}
.context-tooltip-pop .tt-label{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(232,234,237,.48)}
.context-tooltip-pop .tt-value{font-size:11px;font-weight:600;color:#e8eaed;text-align:right}
.context-tooltip-pop .tt-note{margin-top:8px;padding-top:8px;border-top:1px solid rgba(255,255,255,.06);font-size:11px;color:rgba(232,234,237,.64);line-height:1.4}
.perf-tip-title{font-weight:600;margin-bottom:8px;font-size:13px;color:#e8eaed}
.perf-tip-label{color:rgba(232,234,237,.32);font-size:11px;text-transform:uppercase;letter-spacing:0.03em;margin-top:8px}
.perf-tip-row{display:flex;justify-content:space-between;gap:16px}
.perf-tip-row span:last-child{font-weight:700}
/* --- Edge bar: spine whose intensity matches tint ramp --- */
.edge-bar{position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 2px 2px 0;z-index:1}
.edge-bar.up{background:var(--raise-edge-2)}
.edge-bar.down{background:var(--lower-edge-2)}
.edge-bar.hold{background:rgba(232,234,237,.18)}
.edge-bar.monitor{background:rgba(232,234,237,.12)}
.day.raise-light  .edge-bar.up{background:var(--raise-edge-1)}
.day.raise-medium .edge-bar.up{background:var(--raise-edge-2)}
.day.raise-strong .edge-bar.up{background:var(--raise-edge-3)}
.day.lower-light  .edge-bar.down{background:var(--lower-edge-1)}
.day.lower-medium .edge-bar.down{background:var(--lower-edge-2)}
.day.lower-strong .edge-bar.down{background:var(--lower-edge-3)}
.day.outside-passive .edge-bar{display:none}
/* --- Calendar toolbar --- */
.calendar-toolbar{display:flex;align-items:center;gap:24px;flex-wrap:nowrap;min-width:0}
.shell.listing-detail{overflow:visible}
/* Sticky stack: only toolbar + tabs pin. The heading is static so the title
   scrolls away UNDER the opaque toolbar instead of pinning and getting sliced
   by it (the "text bleeds behind the buttons" defect). Tabs pin 1px inside the
   toolbar's bottom edge so no see-through slit can open between the layers. */
.shell.listing-detail .detail-heading{position:static;background:var(--bg);padding-top:8px;padding-bottom:8px;margin-bottom:0}
.shell.listing-detail .detail-toolbar{position:sticky;top:0;z-index:120;background:var(--bg);padding:8px 0;margin-bottom:0}
.shell.listing-detail .detail-tabs{position:sticky;top:53px;z-index:110;background:var(--bg);margin-top:0}
#calendar-view,#market-view,#booking-view,#minstay-view{overflow:visible;min-height:0;height:auto}
#calendar-view.detail-panel,#market-view.detail-panel,#booking-view.detail-panel,#minstay-view.detail-panel{overflow:visible;height:auto}
#calendar-view .calendar-detail-grid > .listing-context-rail,#calendar-view .calendar-detail-grid > .detail-right-panel{top:116px;max-height:calc(100vh - 132px)}
#calendar-view .calendar-main{overflow:hidden}
#calendar-view .legend-bar{position:sticky;top:0;z-index:87;background:var(--panel);padding-top:8px;padding-bottom:8px}
.detail-toolbar{margin-bottom:10px}
.tb-nav{display:flex;align-items:center;gap:12px;min-width:0;flex:0 1 auto}
.tb-back{background:none;border:none;color:var(--dim);font:500 13px "Inter",sans-serif;cursor:pointer;padding:8px 0;letter-spacing:-.005em;text-decoration:none;white-space:nowrap}
.tb-back:hover{color:var(--ink)}
.tb-listing{color:var(--faint);font-size:12px;padding-left:16px;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:280px}
.tb-primary{display:flex;align-items:center;gap:12px;margin-left:auto;margin-bottom:0}
.tb-form{display:inline-flex;align-items:center;margin:0}
.tb-secondary{height:32px;padding:0 16px;background:transparent;border:1px solid var(--lineHi);border-radius:8px;color:var(--ink);font:500 12.5px "Inter",sans-serif;cursor:pointer;display:inline-flex;align-items:center;gap:8px;text-decoration:none;white-space:nowrap}
.tb-secondary:hover{background:var(--panel2)}
.tb-secondary.disabled{opacity:.45;cursor:default}
.tb-secondary kbd{font-family:"JetBrains Mono",monospace;font-size:10px;color:var(--faint)}
.tb-utility{display:flex;align-items:center;gap:4px;padding-left:16px;border-left:1px solid var(--line);flex:0 0 auto;min-width:0}
.tb-ghost{background:transparent;border:1px solid transparent;color:var(--faint);font:500 12px "Inter",sans-serif;cursor:pointer;padding:8px 12px;border-radius:8px;white-space:nowrap}
.mobile-toolbar-overflow{display:none}
.tb-ghost:hover{color:var(--ink);background:var(--panel2);border-color:var(--line)}
.tb-ghost.is-active{background:#fbbf24;color:#0e1013;border-color:rgba(251,191,36,.55);box-shadow:0 0 0 1px rgba(251,191,36,.22)}
.tb-ghost.is-active:hover{background:#fbbf24;color:#0e1013;border-color:rgba(251,191,36,.72)}
.tb-ghost.tb-danger:hover{color:var(--down);background:rgba(248,113,113,.08);border-color:rgba(248,113,113,.24)}
.review-action-status{font-size:12px;color:var(--muted);white-space:nowrap}
.tb-progress,.tb-complete{font-size:12px;padding:4px 8px;border-radius:4px;background:rgba(74,222,128,.12);color:#4ade80;border:1px solid rgba(255,255,255,.06)}
/* --- Primary action button --- */
.primary-action{display:inline-flex;align-items:center;gap:12px;height:38px;padding:0 16px;background:#fbbf24;color:#0e1013;border:none;border-radius:8px;font:600 13px/1 "Inter",system-ui,sans-serif;letter-spacing:-.005em;cursor:pointer;box-shadow:0 0 0 1px rgba(251,191,36,.3), 0 8px 24px -12px rgba(251,191,36,.45);transition:transform .08s ease, box-shadow .15s ease}
.primary-action:hover{transform:translateY(-1px);box-shadow:0 0 0 1px rgba(251,191,36,.5), 0 12px 32px -12px rgba(251,191,36,.6)}
.primary-action:active{transform:translateY(0)}
.primary-action:disabled{background:#2a2d33;color:rgba(232,234,237,.38);box-shadow:none;cursor:default;transform:none}
.primary-action .pa-count{font-family:"JetBrains Mono",monospace;font-size:11px;font-weight:500;background:rgba(14,16,19,.18);padding:2px 8px;border-radius:4px;letter-spacing:-.01em}
.primary-action .pa-kbd{font-family:"JetBrains Mono",monospace;font-size:10px;font-weight:500;background:rgba(14,16,19,.22);color:rgba(14,16,19,.7);padding:2px 8px;border-radius:4px;letter-spacing:.02em;border:1px solid rgba(14,16,19,.14)}
.primary-action.secondary-action{background:#2a2d33;color:var(--ink);box-shadow:0 0 0 1px rgba(255,255,255,.08)}
.primary-action.secondary-action:hover{box-shadow:0 0 0 1px rgba(255,255,255,.16),0 10px 24px -16px rgba(0,0,0,.65)}
.primary-action.secondary-action .pa-count,.primary-action.secondary-action .pa-kbd{background:rgba(255,255,255,.08);color:var(--dim);border-color:rgba(255,255,255,.08)}
/* --- Rec hero block --- */
.rec-hero{display:grid;grid-template-columns:1fr auto 1.3fr;gap:16px;align-items:center;padding:16px 24px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;margin:16px 0}
.rec-from-label,.rec-to-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600;margin-bottom:8px;white-space:nowrap;overflow-wrap:normal;word-break:normal}
.rec-from-val{font-family:"JetBrains Mono",monospace;font-size:22px;font-weight:500;color:var(--dim);letter-spacing:-.02em}
.rec-to-val{font-family:"JetBrains Mono",monospace;font-size:32px;font-weight:500;color:var(--ink);letter-spacing:-.025em;line-height:1}
.rec-delta-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;min-width:0;max-width:100%}.rec-to-delta{display:inline-flex;align-items:center;font-family:"JetBrains Mono",monospace;font-size:12px;margin-top:4px;color:var(--dim);border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:999px;padding:3px 8px;max-width:100%;white-space:normal;overflow-wrap:anywhere;line-height:1.2;min-width:0}
.rec-to.rec-up .rec-to-val,.rec-to.rec-up .rec-to-delta{color:var(--up)}
.rec-to.rec-down .rec-to-val,.rec-to.rec-down .rec-to-delta{color:var(--down)}
.rec-arrow{color:var(--fainter);font-size:20px;font-weight:400}
/* --- Decision buttons --- */
.decision-row{margin-top:16px}
.decide-primary{width:100%;height:44px;background:var(--up);color:#0a1f12;border:none;border-radius:8px;font:600 14px/1 "Inter",sans-serif;letter-spacing:-.005em;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:12px;box-shadow:0 0 0 1px rgba(74,222,128,.3), 0 8px 24px -12px rgba(74,222,128,.5)}
.decide-primary.lower-action{background:var(--down);color:#1f0a0a;box-shadow:0 0 0 1px rgba(248,113,113,.3), 0 8px 24px -12px rgba(248,113,113,.5)}
.decide-primary kbd{font-family:"JetBrains Mono",monospace;font-size:10px;background:rgba(10,31,18,.25);padding:2px 8px;border-radius:4px}
.decision-row-sub{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.decide-secondary{height:36px;background:transparent;border:1px solid var(--lineHi);border-radius:8px;color:var(--ink);font:500 13px "Inter",sans-serif;cursor:pointer}
.decide-secondary:hover{background:var(--panel2)}
/* --- Rec group headers --- */
.rec-group{margin-top:16px}
.rec-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600;margin-bottom:8px;padding:0 2px 8px;border-bottom:1px solid var(--line)}
.rec-group .rec-grid{margin:0}
/* --- Market hero cards --- */
.market-hero{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:24px}
.mh-card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px 24px 20px;position:relative;min-height:92px;display:flex;flex-direction:column;justify-content:space-between;gap:12px}
.mh-label{font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--faint);font-weight:600;margin-bottom:0}
.mh-value{font-family:"JetBrains Mono",monospace;font-size:32px;font-weight:500;letter-spacing:-.025em;line-height:1.08;color:var(--ink);display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;padding-bottom:2px}
.mh-delta{font-size:12px;font-weight:500;color:var(--dim);letter-spacing:-.01em}
.mh-delta.up{color:var(--up)}
.mh-delta.down{color:var(--down)}
.mh-spark{height:32px;margin-top:16px}
.mh-hint{font-size:11px;color:var(--faint);margin-top:8px}
/* market-hero responsive handled by main responsive system above */
/* --- Market layout sidebar --- */
.market-layout{display:grid;grid-template-columns:1fr;gap:24px}
.market-sidebar{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:8px}
.market-sidebar .panel{padding:16px;border-radius:12px;background:var(--panel);border:1px solid var(--line)}
.market-sidebar .panel h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600}
.market-intel-header{display:flex;align-items:center;justify-content:space-between;margin:24px 0 8px;padding:12px 0 0;border-top:1px solid var(--line)}
.market-intel-header h3{margin:0;font-size:13px;font-weight:600;color:var(--ink);letter-spacing:-.005em}
.market-intel-header .muted{font-size:11px}
.market-intel-toggle{background:transparent;border:1px solid var(--line);color:var(--dim);border-radius:8px;padding:4px 12px;font-size:11px;font-weight:600;cursor:pointer;letter-spacing:.04em;text-transform:uppercase}
.market-intel-toggle:hover{color:var(--ink);border-color:var(--lineHi)}
.market-sidebar.collapsed{display:none}
@media (max-width: 1024px){
  .market-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width: 767px){
  .market-sidebar{grid-template-columns:1fr}
}
/* market-layout responsive handled by main responsive system above */
/* --- Status cells for portfolio --- */
.status-cell{display:inline-flex;align-items:center;gap:8px;font-size:11px;padding:4px 8px;border-radius:4px;font-weight:600;letter-spacing:.02em}
.status-cell.stale{background:rgba(251,191,36,.12);color:var(--amber)}
.status-cell.stale::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--amber)}
.status-cell.done{background:rgba(74,222,128,.10);color:var(--up)}
.status-cell.done::before{content:"\2713";font-size:10px;font-weight:700}
.status-cell.pending{background:var(--panel2);color:var(--dim)}
.status-cell.pending::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--dim)}
.ok-tick{color:var(--up);font-size:12px}
.ok-tick::before{content:"\2713 ";font-weight:700}
.action-count{color:var(--amber);font-family:"JetBrains Mono",monospace;font-weight:500}
/* --- Listing cell subtitle --- */
.listing-cell .ln-name{color:var(--blue);font-weight:500}
.listing-cell .ln-meta{color:var(--faint);font-size:11px;margin-top:2px;font-weight:400}
/* --- Context pairs --- */
.context-pair{display:grid;grid-template-columns:minmax(80px,1fr) auto;gap:12px;align-items:baseline;padding:8px 0;border-bottom:1px dotted var(--line)}
.context-pair:last-child{border-bottom:none}
.context-label{font-size:11px;color:var(--faint);text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.context-value{font-family:"JetBrains Mono",monospace;font-size:13px;color:rgba(232,234,237,.85);text-align:right;font-weight:500}
.market-occ-stack{display:grid;gap:3px;font-family:"Inter",sans-serif;text-align:right}
.market-occ-stack span{display:flex;justify-content:flex-end;gap:8px;align-items:baseline;font-size:12px;color:var(--ink)}
.market-occ-stack b{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:700}
/* --- Decision history fold --- */
.decision-history-fold{margin-top:12px}
.decision-history-summary{cursor:pointer;color:var(--faint);font-size:12px;padding:8px 0;border-top:1px solid var(--line)}
.decision-history-summary:hover{color:var(--dim)}
.decision-history-items{display:none}
.decision-history-fold.open .decision-history-items{display:block}
/* --- Scrollbar — themed for dark UI, works on Firefox + WebKit --- */
*{scrollbar-color:var(--surfaceHi) transparent;scrollbar-width:thin}
::-webkit-scrollbar{width:8px;height:8px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--surfaceHi);border-radius:8px;border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-thumb:hover{background:rgba(232,234,237,.22);border:2px solid transparent;background-clip:padding-box}
::-webkit-scrollbar-corner{background:transparent}
/* --- Interaction polish --- */
.day.interactive:active{transform:scale(.97);transition:transform .06s ease}
.decide-primary:active,.decide-secondary:active{transform:scale(.97);opacity:.85;transition:transform .06s ease, opacity .06s ease}
.view{transition:opacity .15s ease}.view.active{opacity:1}.view:not(.active){opacity:0;pointer-events:none;position:absolute}
@keyframes shimmer{0%{background-position:-200px 0}100%{background-position:calc(200px + 100%) 0}}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes toastIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes fadeInBackdrop{from{opacity:0}to{opacity:1}}
@keyframes popIn{from{opacity:0;transform:translateY(6px) scale(.98)}to{opacity:1;transform:none}}
.skeleton{background:linear-gradient(90deg, var(--panel) 25%, var(--panel2) 50%, var(--panel) 75%);background-size:200px 100%;animation:shimmer 1.5s infinite;border-radius:8px}

.bs-alert-badge{display:inline-flex;align-items:center;gap:5px;padding:3px 7px;border-radius:999px;background:rgba(251,191,36,.14);color:#fbbf24;border:1px solid rgba(251,191,36,.28);font-size:11px;font-weight:700;margin-top:4px}
.bs-alert-panel{border:1px solid rgba(251,191,36,.28);background:rgba(251,191,36,.08);border-radius:12px;padding:12px;margin-bottom:12px}
.bs-alert-panel h3{margin:0 0 8px;color:#fbbf24}.bs-alert-list{display:grid;gap:8px}.bs-alert-item{border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.bs-alert-item:first-child{border-top:none;padding-top:0}.bs-alert-title{font-weight:700;color:#e8eaed}.bs-alert-meta{font-size:12px;color:var(--muted);margin-top:3px}.bs-alert-action{font-size:12px;color:#fbbf24;margin-top:4px}
.suppressed-signal-panel{border:1px solid rgba(96,165,250,.28);background:rgba(96,165,250,.08);border-radius:12px;padding:12px;margin-bottom:12px}.suppressed-signal-panel h3{margin:0 0 8px;color:#93c5fd}.suppressed-signal-item{border-top:1px solid rgba(255,255,255,.08);padding-top:8px}.suppressed-signal-item:first-child{border-top:none;padding-top:0}.suppressed-signal-copy{font-size:13px;color:#e8eaed;line-height:1.45}.suppressed-signal-meta{font-size:12px;color:var(--muted);margin-top:3px}
/* --- Focus states — visible keyboard affordance on every interactive surface --- */
button:focus-visible,[role="button"]:focus-visible,a:focus-visible,.day.interactive:focus-visible,[data-sort]:focus-visible,.listing-link:focus-visible,.nav-tab:focus-visible,.action-btn:focus-visible,.rm-chip:focus-visible,.filter-chip:focus-visible,.rail-toggle:focus-visible,.month-jump-btn:focus-visible,.simple-dropdown-button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px}
button:focus:not(:focus-visible),a:focus:not(:focus-visible){outline:none}
@media (max-width: 1024px){.calendar-detail-grid{grid-template-columns:1fr}.calendar-detail-grid > .listing-context-rail,.calendar-detail-grid > .detail-right-panel{position:static;max-height:none}.calendar-detail-grid > .listing-context-rail{padding:0;background:transparent;border:none}.calendar-detail-grid > .listing-context-rail .listing-context-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width: 767px){.calendar-detail-grid > .listing-context-rail .listing-context-grid{grid-template-columns:1fr}}

/* Full-surface parity closeout: avoid invisible lazy-tab placeholders and improve
   calendar/detail vertical fit on the live side-by-side surface. */
.calendar-detail-grid{align-items:stretch}
.calendar-detail-grid > .detail-right-panel{align-self:start;min-height:520px}
.month-stack{gap:12px}
.month-block{content-visibility:visible;contain-intrinsic-size:auto}
#booking-view .lazy-panel,#minstay-view .lazy-panel{min-height:360px;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;padding:16px}
.booking-insights.legacy-card,.min-stay-view.legacy-card{display:block;min-height:360px}

/* Sweep 1 B5 — legacy recommendation detail parity refinements */
#detailCard{padding:18px 20px;background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.025)),#15181d;border:1px solid rgba(255,255,255,.09);border-radius:14px;box-shadow:0 18px 42px -32px rgba(0,0,0,.85)}
#detailCard h3{font-size:16px;margin-bottom:12px;letter-spacing:-.01em}
#detailCard .rec-hero{margin:14px 0 14px;padding:18px 20px;background:#0f1217;border-color:rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
#detailCard .rec-from-val{font-size:24px;color:rgba(232,234,237,.68)}
#detailCard .rec-to-val{font-size:36px;font-weight:650;letter-spacing:-.035em}
#detailCard .rec-to-delta{font-size:12px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}
#detailCard .explanation-text{background:rgba(110,168,255,.055);border-color:rgba(110,168,255,.18);color:rgba(232,234,237,.78)}
#detailCard .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px}
#detailCard .rec-col{background:#0f1217;border-color:rgba(255,255,255,.075);padding:12px;min-width:0}
#detailCard .rec-col .value{font-size:clamp(18px,1.25vw,21px);white-space:normal;overflow-wrap:anywhere;line-height:1.18}
#detailCard .rec-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:rgba(232,234,237,.38);font-weight:700}
#recommendationDetailContent{min-width:0}
#recommendationDetailContent .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
#recommendationDetailContent .stat{min-width:0;padding:12px}
#recommendationDetailContent .stat .value{font-size:clamp(17px,1.3vw,22px);line-height:1.15;white-space:normal;overflow-wrap:anywhere}
.review-actions[data-review-actions='date']{margin:16px 0 14px;padding:12px;background:#0f1217;border:1px solid rgba(255,255,255,.075);border-radius:12px}
.review-action-buttons{display:grid;grid-template-columns:1fr;gap:8px}
.review-action-buttons form{margin:0}.review-action-buttons .tb-primary,.review-action-buttons .tb-ghost,.inline-override-flow summary{width:100%;min-height:38px;border-radius:9px;font-size:13px;font-weight:650;display:flex;align-items:center;justify-content:center;text-align:center;cursor:pointer}.review-action-buttons .tb-primary{background:var(--up);color:#081a10;border:0;box-shadow:0 0 0 1px rgba(74,222,128,.28),0 10px 22px -18px rgba(74,222,128,.8)}.review-action-buttons .tb-primary-alt{background:var(--mav-edge);color:#071018;box-shadow:0 0 0 1px rgba(110,168,255,.28),0 10px 22px -18px rgba(110,168,255,.8)}.review-action-buttons .tb-ghost,.inline-override-flow summary{background:transparent;color:#e8eaed;border:1px solid rgba(255,255,255,.11)}.review-action-buttons .tb-ghost:hover,.inline-override-flow summary:hover{background:#1c2026}.inline-override-flow{grid-column:1 / -1}.inline-override-flow form{display:grid;grid-template-columns:1fr;gap:8px;margin-top:8px}.inline-override-flow input,.inline-override-flow select{width:100%;padding:9px 10px;background:#16191d;border:1px solid rgba(255,255,255,.11);border-radius:8px;color:#e8eaed}
.review-action-stack{grid-template-columns:1fr}.review-action-stack > form{grid-column:1/-1}.review-secondary-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;grid-column:1/-1}.review-secondary-row > form,.review-secondary-row > .inline-override-flow{min-width:0;width:100%;margin:0}.review-secondary-row .inline-override-flow{grid-column:auto}.min-stay-override-control{display:grid;gap:6px;padding:10px;border:1px solid rgba(110,168,255,.16);border-radius:10px;background:rgba(110,168,255,.045)}.min-stay-toggle{display:flex;align-items:center;gap:8px;color:var(--dim);font-size:12px;font-weight:700}.min-stay-toggle input{width:auto}.min-stay-override-input{max-width:180px}.min-stay-hint{font-size:11px;line-height:1.35;color:var(--faint)}
.review-action-buttons form:has([data-review-action='approve-hold']),.review-action-buttons form:has([data-review-action='approve-maverick']){grid-column:1 / -1}.held-differs-alt-tile{border-color:rgba(110,168,255,.28);background:linear-gradient(180deg,rgba(110,168,255,.10),rgba(110,168,255,.035)),#101318}.held-differs-alt-tile .label{color:rgba(174,203,250,.82)}.held-differs-alt-tile .value{color:#d8e6ff}
@media (min-width: 760px){.review-action-buttons{grid-template-columns:1fr 1fr 1fr}.review-action-buttons form:has([data-review-action='approve-hold']),.review-action-buttons form:has([data-review-action='approve-maverick']),.inline-override-flow form{grid-column:1 / -1}}
.review-action-status{display:block;margin-top:8px;font-size:12px;color:var(--dim)}
.review-action-buttons.review-action-stack{grid-template-columns:1fr}.review-action-buttons.review-action-stack > form{grid-column:1/-1}.review-action-buttons.review-action-stack .review-secondary-row{grid-column:1/-1}

/* Sweep 12 Stage 2 pixel parity: legacy detail layout with v2 HTMX flow. */
#calendar-view .calendar-view-layout{display:grid;grid-template-columns:minmax(240px,280px) minmax(0,1fr) minmax(340px,380px);gap:16px;align-items:stretch;height:calc(100vh - 220px);min-height:0;overflow:hidden}
#calendar-view .calendar-view-layout.context-mode{grid-template-columns:minmax(0,40fr) minmax(0,60fr)}
#calendar-view .calendar-view-layout.context-mode > .calendar-left-rail{display:none}
#calendar-view .calendar-view-layout.context-mode > .calendar-main{grid-column:1;min-width:0}
#calendar-view .calendar-view-layout.context-mode > .detail-right-panel{grid-column:2;display:flex;min-width:0}
#calendar-view .calendar-view-layout.context-mode #contextChartsWrap{width:100%}
#calendar-view .calendar-left-rail.panel,#calendar-view .calendar-main.panel,#calendar-view .detail-right-panel{min-width:0;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;overflow:hidden;min-height:0}
#calendar-view .calendar-left-rail.panel{display:flex;flex-direction:column;min-height:0}
#calendar-view .calendar-main.panel{display:flex;flex-direction:column;min-height:0}
#calendar-view .detail-right-panel{display:flex;flex-direction:column;min-height:0;height:auto;position:static;max-height:none}
#calendar-view .listing-context-panel,#calendar-view .calendar-center-scroll,#calendar-view .detail-right-panel{padding:16px;overflow:auto;overscroll-behavior:contain;min-height:0}
#calendar-view .listing-context-panel{padding-bottom:40px;flex:1}
#calendar-view .calendar-center-scroll{flex:1;height:100%;padding-top:8px}
#calendar-view .calendar-center{overflow:visible;padding:0;min-height:0}
#calendar-view .detail-right-panel{flex:1}
#calendar-view .calendar-main.panel .month-jump-wrap{top:0}
#market-view,#booking-view,#minstay-view{display:block;width:100%;max-width:none;padding:24px;overflow:visible;height:auto;min-height:0}
#market-view[hidden],#booking-view[hidden],#minstay-view[hidden]{display:none}
#market-view .market-charts,#booking-view > .lazy-panel,#minstay-view > .lazy-panel{width:100%;max-width:none}
.source-label{display:none}
.incomplete-badge,.data-incomplete-badge{display:inline-flex;align-items:center;padding:6px 10px;border-radius:8px;border:1px solid rgba(251,191,36,.22);background:rgba(251,191,36,.10);color:#fbbf24;font-size:11px;font-weight:600;letter-spacing:.01em}
@media (max-width:1024px){#calendar-view .calendar-view-layout{grid-template-columns:1fr;height:auto;overflow:visible}#calendar-view .calendar-left-rail.panel,#calendar-view .detail-right-panel{position:static;max-height:none}}

/* MAV-293 Phase 1: recommendation detail card parity + sticky bleed fix.
   Keep legacy card primitives; only harden the sticky stat header so scrolled
   recommendation content cannot show through gaps behind LISTING/DATE cards. */
#calendar-view #recommendationDetailContent{position:relative;isolation:isolate}
#calendar-view #recommendationDetailContent > .stats{position:sticky;top:0;z-index:40;background:#16191d;padding:0 0 12px;margin:0 0 12px;border-bottom:1px solid rgba(255,255,255,.06);box-shadow:0 14px 24px -20px rgba(0,0,0,.95)}
#calendar-view #recommendationDetailContent > .stats::before{content:"";position:absolute;inset:-18px -18px 0;background:#16191d;z-index:-1;border-radius:12px 12px 0 0;box-shadow:0 10px 22px -18px rgba(0,0,0,.95)}
#calendar-view #recommendationDetailContent > .stats .stat{background:#16191d;position:relative;z-index:1}
#calendar-view #detailCard{padding:14px;background:#16191d;border:1px solid rgba(255,255,255,.06);border-radius:12px;box-shadow:none}
#calendar-view #detailCard h3{margin:0 0 10px;font-size:15px;font-weight:600;letter-spacing:0;color:#e8eaed}
#calendar-view #detailCard .rec-hero{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1.3fr);gap:16px;align-items:center;padding:16px 24px;background:var(--panel2);border:1px solid var(--line);border-radius:12px;margin:16px 0;box-shadow:none}
/* D1/MAV-491 outside-window fix: overflow guards on the SHARED rec-hero so every variant
   (outside-window, booked, monitoring, multi-date, server first-paint card with no variant
   attr) is protected, not only [data-detail-variant^="single-date"]. Columns above use
   minmax(0,..) so tracks may shrink below content; guards below stop label/value overflow. */
#calendar-view #detailCard .rec-hero .rec-from,#calendar-view #detailCard .rec-hero .rec-to{min-width:0;max-width:100%}
#calendar-view #detailCard .rec-from-label,#calendar-view #detailCard .rec-from-val,#calendar-view #detailCard .rec-to-label,#calendar-view #detailCard .rec-to-val{min-width:0;max-width:100%;white-space:nowrap;overflow-wrap:normal;word-break:normal}
#calendar-view #detailCard .rec-from-val{font-size:22px;color:#e8eaed}
#calendar-view #detailCard .rec-to-val{font-size:28px;font-weight:700;letter-spacing:-.02em}
#calendar-view #detailCard .rec-to-delta{font-size:12px;text-transform:none;letter-spacing:0;font-weight:600}
#calendar-view #detailCard .explanation-text{margin-top:16px;padding:16px;background:rgba(110,168,255,.04);border:1px solid rgba(110,168,255,.14);border-radius:8px;font-size:13px;line-height:1.65;color:var(--dim);font-style:normal}
#calendar-view #detailCard .rec-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:12px}
#calendar-view #detailCard .rec-col{background:#0e1013;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px}
#calendar-view #detailCard .rec-col .value{font-size:20px;font-weight:600;margin-top:6px;line-height:1.15;color:#e8eaed}
#calendar-view #detailCard[data-detail-variant="single-date"]{padding:15px;background:linear-gradient(180deg,rgba(255,255,255,.046),rgba(255,255,255,.014)),#16191d;border-color:rgba(255,255,255,.095);border-radius:18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035),0 18px 44px -34px rgba(0,0,0,.94);overflow:hidden}
#calendar-view #detailCard[data-detail-variant="single-date"] h3{margin:0 0 12px;font-size:16px;font-weight:780;letter-spacing:-.018em;color:#e8eaed}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero{position:relative;overflow:hidden;display:block;padding:18px 16px 16px;background:#101318;border:1px solid rgba(255,255,255,.085);border-radius:16px;margin:16px 0 10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.03)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero::after{content:"";position:absolute;left:16px;right:16px;top:0;height:2px;border-radius:999px}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero.ribbon-lower::after{background:linear-gradient(90deg,rgba(248,113,113,.95),rgba(248,113,113,.42),transparent)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero.ribbon-raise::after{background:linear-gradient(90deg,rgba(74,222,128,.95),rgba(74,222,128,.42),transparent)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero.ribbon-hold::after{background:linear-gradient(90deg,rgba(148,163,184,.60),rgba(148,163,184,.24),transparent)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-arrow{display:none}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;align-items:center}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-label{grid-column:1/-1;color:rgba(232,234,237,.62)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-val{font-size:clamp(36px,3vw,43px);font-weight:820;letter-spacing:-.062em;line-height:.92}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-delta{font-size:12px;text-transform:none;letter-spacing:0;font-weight:880;line-height:1}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-note{grid-column:1/-1;margin-top:0;font-size:12.5px;line-height:1.35}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-from{margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:baseline}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-from-val{font-size:22px;color:rgba(232,234,237,.70);line-height:1}
#calendar-view #detailCard[data-detail-variant="single-date"] .explanation-text{margin-top:10px;padding:12px 13px;background:rgba(110,168,255,.045);border-color:rgba(110,168,255,.16);border-radius:12px;font-size:13px;line-height:1.55}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:11px}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-col{background:#101318;border:1px solid rgba(255,255,255,.07);border-radius:12px;padding:10px}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-col .value{font-size:18px;line-height:1.12;margin-top:7px;letter-spacing:-.02em}


/* MAV-293 Phase 1 real card restructure: match legacy detail card hierarchy rendered by app.js. */
#calendar-view #detailCard .rec-to-note{font-size:12px;color:var(--muted);margin-top:4px;font-weight:500;text-transform:none;letter-spacing:0}
#calendar-view #detailCard .rec-group{margin-top:14px}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-group{margin-top:12px}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-group-title{padding-bottom:7px;margin-bottom:8px;border-bottom:1px solid rgba(255,255,255,.07);letter-spacing:.13em;font-weight:850;color:var(--faint)}
#calendar-view #detailCard .action-line{margin-top:12px;font-size:15px;font-weight:600;color:#e8eaed;overflow-wrap:break-word}
#calendar-view #detailCard[data-detail-variant="single-date"] .action-line{margin-top:11px;font-size:12.5px;font-weight:650;color:rgba(232,234,237,.66);line-height:1.45}
#calendar-view #detailCard .review-actions{margin:14px 0 12px}
#calendar-view #detailCard .review-action-buttons{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:8px;align-items:start}
#calendar-view #detailCard .review-action-buttons .tb-primary,#calendar-view #detailCard .review-action-buttons .tb-secondary,#calendar-view #detailCard .review-action-buttons .tb-ghost,#calendar-view #detailCard .inline-override-flow summary{min-height:34px;border-radius:8px;font-size:12px;font-weight:700}
#calendar-view #detailCard .review-action-buttons .tb-primary{background:#4ade80;color:#0e1013}
#calendar-view #detailCard .review-action-buttons .tb-primary.acted-on{background:rgba(74,222,128,.16);color:rgba(232,234,237,.66);box-shadow:none;border:1px solid rgba(74,222,128,.20)}
#calendar-view #detailCard .review-action-buttons .tb-secondary{background:rgba(77,163,255,.14);color:#d9e9ff;border:1px solid rgba(77,163,255,.32);width:100%}
#calendar-view #detailCard .review-action-buttons .tb-ghost,#calendar-view #detailCard .inline-override-flow summary{background:transparent;color:#e8eaed;border:1px solid rgba(255,255,255,.11)}
#calendar-view #detailCard .review-actions{margin:16px 0 0;display:grid;gap:8px}
#calendar-view #detailCard .review-action-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
#calendar-view #detailCard .review-action-buttons > form,#calendar-view #detailCard .review-action-buttons > .inline-override-flow{grid-column:auto;min-width:0;width:100%;margin:0}
#calendar-view #detailCard .review-action-buttons > :only-child{grid-column:1/-1;justify-self:stretch}
#calendar-view #detailCard .review-action-buttons .tb-review-pill{width:100%;min-height:40px;padding:1px 6px;border:1px solid transparent;line-height:normal;box-sizing:border-box}
#calendar-view #detailCard .review-action-buttons:has([data-review-action="approve-hold"]):has([data-review-action="approve-maverick"]) > form:has([data-review-action="approve-hold"]),#calendar-view #detailCard .review-action-buttons:has([data-review-action="approve-hold"]):has([data-review-action="approve-maverick"]) > form:has([data-review-action="approve-maverick"]){grid-column:1/-1}
#calendar-view #detailCard .review-action-buttons .tb-primary-alt{background:var(--mav-edge);color:#0e1013;border-color:var(--mav-edge);box-shadow:0 0 0 1px var(--mav-edge),0 10px 22px -18px var(--mav-edge)}
#calendar-view #detailCard .review-action-buttons .inline-override-flow summary{width:100%}
@media (max-width:767px){#calendar-view #detailCard .review-action-buttons{grid-template-columns:1fr}}
#calendar-view #detailCard .review-action-buttons.review-action-stack{grid-template-columns:1fr}
#calendar-view #detailCard .review-action-buttons.review-action-stack > form{grid-column:1/-1}
#calendar-view #detailCard .review-action-buttons.review-action-stack > .review-secondary-row{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#calendar-view #detailCard .review-action-buttons.review-action-stack .review-secondary-row > form,#calendar-view #detailCard .review-action-buttons.review-action-stack .review-secondary-row > .inline-override-flow{grid-column:auto;min-width:0;width:100%;margin:0}
#calendar-view #detailCard .review-action-buttons.review-action-stack:has([data-review-action="approve-date"]):has([data-review-action="override-date"]):has([data-review-action="reject-date"]) > .review-secondary-row{grid-template-columns:1fr}
#calendar-view #detailCard .review-action-buttons.review-action-stack:has([data-review-action="approve-date"]):has([data-review-action="override-date"]):has([data-review-action="reject-date"]) > .review-secondary-row > .inline-override-flow:has([data-review-action="override-date"]),#calendar-view #detailCard .review-action-buttons.review-action-stack:has([data-review-action="approve-date"]):has([data-review-action="override-date"]):has([data-review-action="reject-date"]) > .review-secondary-row > form:has([data-review-action="reject-date"]){grid-column:1/-1}
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-delta-chips{gap:4px;margin-top:4px;align-items:center}
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-delta-chips .rec-to-delta{margin-top:0;padding:2px 6px;min-height:auto;line-height:1.1;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:manual}
/* MAV-491/MAV-494 rec-card column sizing fix */
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-hero{display:grid;grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);gap:12px;align-items:start}
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-from{margin-top:0;padding-top:0;border-top:0;display:grid;gap:6px;align-content:start;min-width:0}
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-from-label,#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-from-val,#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-to-label,#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-to-val{min-width:0;max-width:100%;white-space:nowrap;overflow-wrap:normal;word-break:normal}
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-to{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 10px;align-items:center;min-width:0;max-width:100%}
#calendar-view #detailCard .rec-tag{display:inline-flex;align-items:center;justify-content:center;margin-top:8px;width:max-content;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.12em;color:#7fb4ff;background:rgba(77,163,255,.12);border:1px solid rgba(77,163,255,.28)}
#calendar-view #detailCard .rec-tag.raise{color:#4ade80;background:rgba(74,222,128,.12);border-color:rgba(74,222,128,.28)}
#calendar-view #detailCard .rec-tag.lower{color:#7fb4ff;background:rgba(77,163,255,.12);border-color:rgba(77,163,255,.28)}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-tag.lower{color:#fecaca;background:rgba(248,113,113,.145);border-color:rgba(248,113,113,.36)}
#calendar-view #detailCard .rec-tag.floor{color:#fde68a;background:rgba(250,204,21,.14);border-color:rgba(250,204,21,.34)}
#calendar-view #detailCard .rec-tag.hold{color:#cbd5e1;background:rgba(148,163,184,.14);border-color:rgba(148,163,184,.26)}
#calendar-view #detailCard .hold-reason{margin:12px 0 14px;padding:14px 16px;border-radius:12px;background:rgba(77,163,255,.10);border:1px solid rgba(77,163,255,.22);color:#e8eaed}
#calendar-view #detailCard .hold-reason-title{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#9cc8ff;margin-bottom:6px}
#calendar-view #detailCard .hold-reason-primary{font-size:16px;font-weight:750;line-height:1.35;color:#f8fafc}
#calendar-view #detailCard .hold-reason-secondary{margin-top:4px;font-size:13px;line-height:1.45;color:rgba(232,234,237,.78)}
#calendar-view #detailCard .hold-signal{margin-top:10px;padding-top:10px;border-top:1px solid rgba(255,255,255,.10);font-size:13px;line-height:1.45;color:#cbd5e1}
#calendar-view #detailCard .pricing-explanation{margin:12px 0 14px;padding:14px 16px;border-radius:12px;background:rgba(250,204,21,.08);border:1px solid rgba(250,204,21,.22);color:#e8eaed}
#calendar-view #detailCard[data-detail-variant="single-date"] .pricing-explanation,#calendar-view #detailCard[data-detail-variant="single-date"] .pricing-reconciliation{margin:10px 0 12px;padding:12px 13px;border-radius:12px;font-size:12.5px;line-height:1.45}
#calendar-view #detailCard .pricing-explanation-title{font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#fde68a;margin-bottom:6px}
#calendar-view #detailCard .pricing-explanation-line{font-size:13px;line-height:1.45;color:rgba(232,234,237,.86)}
#calendar-view #detailCard[data-detail-variant="single-date"] .pricing-explanation-line,#calendar-view #detailCard[data-detail-variant="single-date"] .pricing-reconciliation-line,#calendar-view #detailCard[data-detail-variant="single-date"] .pricing-reconciliation-note{font-size:12.5px;line-height:1.45}
#calendar-view #detailCard .current-ref-alternate{margin:10px 0 12px;padding:12px 13px;border-radius:12px;background:rgba(248,113,113,.055);border:1px solid rgba(248,113,113,.18)}
#calendar-view #detailCard .current-ref-title{font-size:10px;text-transform:uppercase;letter-spacing:.13em;font-weight:850;color:#fecaca;margin-bottom:8px}
#calendar-view #detailCard .current-ref-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
#calendar-view #detailCard .current-ref-values span{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:8px 9px;border-radius:9px;background:#101318;border:1px solid rgba(255,255,255,.07);font-family:"JetBrains Mono",monospace;font-size:12px;color:#f8fafc}
#calendar-view #detailCard .current-ref-values b{font-family:inherit;font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:rgba(232,234,237,.48);font-weight:850}
#calendar-view #detailCard .rec-to.rec-down .rec-to-val,#calendar-view #detailCard .rec-to.rec-down .rec-to-delta{color:#f87171}
#calendar-view #detailCard .rec-to.rec-up .rec-to-val,#calendar-view #detailCard .rec-to.rec-up .rec-to-delta{color:#4ade80}
#calendar-view #detailCard .rec-to-note.rec-down{color:#f87171}
#calendar-view #detailCard .rec-to-note.rec-up{color:#4ade80}
#calendar-view #detailCard .rec-hero-hold .rec-to{border-color:transparent;background:transparent}
#calendar-view #detailCard .rec-hero-hold .rec-to-val{color:#e2e8f0;font-size:22px;font-weight:700}
#calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero-hold .rec-to-val{color:#e2e8f0;font-size:clamp(34px,2.8vw,39px);font-weight:780}
#calendar-view #detailCard .rec-hero-hold .rec-to-delta{color:#cbd5e1;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
#calendar-view #detailCard .rec-hero-hold .rec-to-note{color:rgba(232,234,237,.62);font-size:12px}
#calendar-view #detailCard .rec-hero-hold .rec-tag.hold{order:-1;margin:0 0 8px 0;padding:6px 12px;font-size:13px;color:#f8fafc;background:rgba(148,163,184,.20);border-color:rgba(203,213,225,.36)}

@media (max-width:1440px){#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-val{font-size:clamp(35px,3vw,41px)}}
@media (max-width:1024px){#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-val{font-size:39px}#calendar-view #detailCard[data-detail-variant="single-date"] .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:520px){#calendar-view #detailCard[data-detail-variant="single-date"] .rec-to-val{font-size:39px}#calendar-view #detailCard[data-detail-variant="single-date"] .rec-grid{grid-template-columns:1fr}#calendar-view #detailCard[data-detail-variant="single-date"] .rec-from{align-items:flex-start;gap:8px;flex-direction:column}}


/* MAV-387 v4 visual reconnect: listing rail + price scale + Maverick dissent tiles */
.mono{font-family:var(--mono);font-variant-numeric:tabular-nums}
.chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;border:1px solid var(--line-hi);background:var(--panel-3);font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--muted)}
.tag{display:inline-flex;align-items:center;gap:5px;padding:2px 7px;border-radius:5px;background:rgba(255,255,255,.045);border:1px solid var(--line);font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.01em;color:var(--faint);white-space:nowrap}.tag .dot{width:5px;height:5px;border-radius:999px;background:currentColor;opacity:.7;flex:none}
.delta-up{color:var(--green)}.delta-down{color:var(--red)}.delta-flat{color:var(--muted)}
.listing-context-grid.rail{display:flex;flex-direction:column;gap:14px;width:100%;max-width:100%;background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px}.rail-head{display:flex;flex-direction:column;gap:9px;padding-bottom:14px;border-bottom:1px solid var(--line)}.rail-eyebrow{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--fainter)}.rail-title{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0}.rail-title h3{font-size:17px;line-height:1.2;letter-spacing:-.02em;margin:0;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rail-title .br{font-family:var(--mono);font-size:12px;color:var(--muted);font-weight:500}.rail-sub{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}.rail-market{font-size:12px;color:var(--muted);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.band-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:6px;border:1px solid var(--line);font-size:11px;font-weight:700;letter-spacing:.02em}.band-chip.action{background:var(--red-soft);border-color:var(--red-line);color:#ffb3b3}.band-chip.watch{background:var(--amber-soft);border-color:var(--amber-line);color:#fbd071}.band-chip.healthy{background:var(--brand-soft);border-color:var(--brand-line);color:#a9caff}.band-chip.strong{background:var(--green-soft);border-color:var(--green-line);color:#8fe9b3}.band-chip .pip{width:6px;height:6px;border-radius:999px;background:currentColor}
.price-scale{display:flex;flex-direction:column;gap:8px}.price-scale-track{position:relative;height:6px;border-radius:999px;background:linear-gradient(90deg,rgba(255,255,255,.05),rgba(255,255,255,.09));overflow:hidden}.price-scale-fill{position:absolute;inset:0 35% 0 0;background:linear-gradient(90deg,var(--brand-soft),rgba(110,168,255,.45));border-radius:999px}.price-scale-base{position:absolute;top:-3px;width:2px;height:12px;border-radius:2px;background:var(--text);box-shadow:0 0 0 3px var(--panel)}.price-scale.unavailable .price-scale-track.flat{height:2px;background:rgba(255,255,255,.07);overflow:visible}.price-scale-track.flat .pmark{position:absolute;top:-3px;width:2px;height:8px;border-radius:2px;background:var(--faint)}.price-scale-track.flat .pmark.base{left:50%;transform:translateX(-50%);height:10px;top:-4px;background:var(--muted)}.price-scale-note{display:flex;align-items:center;gap:6px;font-size:10px;line-height:1.4;color:var(--amber);opacity:.85}.price-scale-note::before{content:"△";font-size:8px}.price-scale-row{display:flex;justify-content:space-between}.price-scale-row .ps{display:flex;flex-direction:column;gap:2px}.price-scale-row .ps.mid{align-items:center}.price-scale-row .ps.hi{align-items:flex-end}.price-scale-row .ps .k{font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--fainter)}.price-scale-row .ps .v{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--muted)}.price-scale-row .ps.mid .v{color:var(--text);font-size:15px}.price-scale-row .ps .v.unset{color:var(--faint);font-size:11px;font-weight:500;letter-spacing:0;text-transform:none}
.rail-section{display:flex;flex-direction:column;gap:10px}.rail-section-h{display:flex;align-items:center;gap:8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--fainter)}.rail-section-h::after{content:"";flex:1;height:1px;background:var(--line)}.kpi-row{display:grid;grid-template-columns:1fr;gap:8px;width:100%}.kpi{background:var(--panel-3);border:1px solid var(--line);border-radius:9px;padding:10px 11px;display:grid;grid-template-columns:minmax(96px,1fr) auto;gap:4px 12px;align-items:baseline;min-width:0;max-width:100%;overflow:visible}.kpi .k{font-size:8.5px;font-weight:700;letter-spacing:.045em;text-transform:uppercase;color:var(--fainter);white-space:nowrap;overflow:visible;text-overflow:clip;line-height:1.2}.kpi .v{font-family:var(--mono);font-size:clamp(13px,2vw,18px);font-weight:600;line-height:1.08;letter-spacing:-.02em;color:var(--text);white-space:nowrap;overflow:visible;text-overflow:clip;overflow-wrap:normal}.kpi .v.sm{font-size:clamp(12px,1.8vw,15px)}.kpi .s{font-size:10.5px;color:var(--muted);white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}.metric-list{display:flex;flex-direction:column;width:100%}.metric{display:grid;grid-template-columns:1fr;gap:4px;align-items:start;padding:10px 0;border-top:1px solid var(--line-soft);width:100%;min-width:0;overflow:visible}.metric:first-child{border-top:none}.metric-k{font-size:11px;font-weight:600;letter-spacing:.01em;color:var(--muted);min-width:0}.metric-k .sub{display:block;font-size:10px;font-weight:500;color:var(--fainter);letter-spacing:0;margin-top:3px}.metric-v{font-family:var(--mono);font-size:12px;font-weight:600;color:var(--text);text-align:left;white-space:normal;overflow:visible;text-overflow:clip;min-width:0;max-width:100%;line-height:1.35}.metric-v .pair-dim{color:var(--faint)}.metric-v small{font-size:10px;color:var(--faint);font-weight:500}.metric-hint{font-size:10px;line-height:1.45;color:var(--fainter);margin-top:2px}.disc{margin-top:2px}.disc>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:10.5px;font-weight:600;color:var(--faint);user-select:none}.disc>summary::-webkit-details-marker{display:none}.disc>summary .caret{transition:transform .15s ease;font-size:9px;opacity:.7}.disc[open]>summary .caret{transform:rotate(90deg)}.disc-body{margin-top:8px;padding:9px 11px;background:var(--panel-inset);border:1px solid var(--line);border-radius:8px;display:flex;flex-direction:column;gap:6px}.disc-row{display:flex;justify-content:space-between;gap:12px;font-size:11px}.disc-row .dk{color:var(--faint)}.disc-row .dv{font-family:var(--mono);color:var(--muted);font-weight:500}.prop-source-row{align-items:center}.prop-source-row .dv{display:flex;justify-content:flex-end;min-width:0}.prop-source-tag{max-width:100%;overflow:hidden;text-overflow:ellipsis}.rail-incomplete{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;padding:6px 11px;border-radius:7px;background:var(--amber-soft);border:1px solid var(--amber-line);color:#fbd071;font-size:11.5px;font-weight:600;line-height:1.35}.rail-incomplete .mbadge{flex:none;width:16px;height:16px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;background:var(--mav);color:#140a2e}
.kpi.date-kpi{grid-template-columns:1fr;align-items:start;gap:3px;padding-right:14px}.kpi.date-kpi .v.sm{font-size:12px;line-height:1.15;letter-spacing:-.035em;justify-self:start;max-width:100%;white-space:nowrap;padding-right:4px}.day.dissent,.day.mavdiff{box-shadow:inset 0 0 0 1px var(--mav-softer)}.day.dissent:hover,.day.mavdiff:hover{border-color:var(--mav-line)}.mav-line{display:flex;align-items:center;gap:4px;align-self:stretch;width:100%;margin-top:5px;padding-top:6px;border-top:1px dashed var(--mav-line)}.mav-line .mav-tag{font-size:9px;color:var(--mav);white-space:nowrap}.mav-line .mav-v{font-family:var(--mono);font-size:10px;font-weight:600;color:var(--mav-bright);letter-spacing:-.03em;white-space:nowrap;overflow:visible;flex:none;margin-left:auto}.mav-line .mav-v .pct{color:var(--mav);font-size:8px;margin-left:3px}.legend-swatch.mav,.sw.mav{background:var(--mav-soft);box-shadow:inset 3px 0 0 var(--mav-edge)}.tile-bar.hold{background:rgba(255,255,255,.05);color:var(--faint)}.tile-bar.floor{background:var(--amber-soft);color:#fde68a}.tile-bar.raise{background:var(--green-soft);color:#8fe9b3}.tile-bar.lower{background:var(--red-soft);color:#ff9b9b}
.day.dissent::before,.day.mavdiff::before{content:"";position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--mav-edge);border-radius:var(--tile-radius) 0 0 var(--tile-radius);pointer-events:none;z-index:7}.day.mavdiff.selected::before,.day.dissent.selected::before,.day.mavdiff.multi-selected::before,.day.dissent.multi-selected::before{top:0;bottom:0;left:0;width:4px;border:0;border-radius:var(--tile-radius) 0 0 var(--tile-radius);box-shadow:none;background:var(--mav-edge)}.day.mavdiff .tile-bar,.day.dissent .tile-bar{font-size:8.5px;letter-spacing:.01em;padding:0 5px;justify-content:center}.day.mavdiff .mav-line,.day.dissent .mav-line{gap:2px;min-width:0;overflow:hidden}.day.mavdiff .mav-line .mav-tag,.day.dissent .mav-line .mav-tag{font-size:8px;min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:clip}.day.mavdiff .mav-line .mav-v,.day.dissent .mav-line .mav-v{font-size:9px;min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:clip}.day.mavdiff .mav-line .mav-v .pct,.day.dissent .mav-line .mav-v .pct{font-size:7.5px;margin-left:2px}

/* MAV-388 v4 recommendation card surgical overlay */
.rec{padding:0;overflow:hidden;border-color:rgba(169,139,255,.18);box-shadow:0 18px 60px rgba(0,0,0,.24)}
.rec>h3{padding:14px 16px;margin:0;border-bottom:1px solid var(--line);font-weight:800;letter-spacing:-.02em}
.rec-scroll{padding:14px;display:grid;gap:12px;max-height:min(78vh,920px);overflow:auto}
.rec-hero{display:grid;grid-template-columns:minmax(0,1fr)28px minmax(0,1.25fr);gap:12px;align-items:stretch;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:16px;padding:12px}
.rec-from,.rec-to{background:var(--panel-3);border:1px solid var(--line);border-radius:13px;padding:12px;min-width:0}.rec-arrow{align-self:center;text-align:center;color:var(--faint);font-weight:800}.rec-from-label,.rec-to-label{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:var(--faint);font-weight:800}.rec-from-val,.rec-to-val{font:700 30px/1 var(--mono);letter-spacing:-.04em;color:var(--ink);margin-top:6px}.rec-tag{display:inline-flex;align-items:center;padding:3px 8px;border-radius:999px;font-size:10px;font-weight:800;letter-spacing:.08em;background:rgba(255,255,255,.06);margin-bottom:6px}.rec-tag.raise{color:var(--green);background:var(--green-soft)}.rec-tag.lower{color:var(--red);background:var(--red-soft)}.rec-tag.floor{color:var(--amber);background:var(--amber-soft)}.rec-tag.hold{color:var(--mav-bright);background:var(--mav-soft)}.rec-to-delta{font:700 18px/1.1 var(--mono);margin-top:8px}.rec-to-note{font-size:12px;color:var(--muted);margin-top:4px}.rec-up .rec-to-delta,.rec-up.rec-to{color:var(--green)}.rec-down .rec-to-delta,.rec-down.rec-to{color:var(--red)}
.rec-why{display:grid;gap:8px}.current-ref-alternate{border:1px solid var(--mav-line);background:var(--mav-softer);border-radius:12px;padding:10px}.current-ref-title{color:var(--mav-bright);font-weight:800;font-size:12px}.current-ref-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:8px}.current-ref-values span{display:grid;gap:2px;font-family:var(--mono);font-weight:600}.current-ref-values b{font:800 10px/1 var(--ui);color:var(--faint);text-transform:uppercase;letter-spacing:.08em}
.rec-group{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.018);overflow:hidden}.rec-group summary{cursor:pointer;list-style:none;padding:12px 14px;font-weight:800;color:var(--ink);display:flex;justify-content:space-between;align-items:center}.rec-group summary::-webkit-details-marker{display:none}.rec-group[open] .gcaret{transform:rotate(90deg)}.gcaret{display:inline-block;color:var(--faint);transition:transform .12s ease}.rec-group>.rec-grid{padding:0 12px 12px}.rec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.rec-col,.rec-cell{background:#0e1013;border:1px solid var(--line);border-radius:10px;padding:10px}.rec-cell.wide{grid-column:1/-1}.rec-col .label,.rec-cell .k{font-size:10px;color:var(--faint);text-transform:uppercase;letter-spacing:.1em;font-weight:800}.rec-col .value,.rec-cell .v{font:700 19px/1.15 var(--mono);color:var(--ink);margin-top:5px}.rec-cell .v.sm{font:600 12px/1.35 var(--ui);color:var(--muted)}.rec-actions{position:sticky;bottom:0;margin:0 -14px -14px;padding:12px 14px;background:linear-gradient(180deg,rgba(22,25,29,.78),#16191d);border-top:1px solid var(--line);backdrop-filter:blur(10px)}
.rail-section-h{font-weight:800}.kpi .v,.metric-v,.price,.day .price{font-family:var(--mono);font-weight:700}.mav-line{border-color:var(--mav-line);background:var(--mav-softer);color:var(--mav-bright)}
@media(max-width:720px){.rec-hero{grid-template-columns:1fr}.rec-arrow{display:none}.rec-grid,.current-ref-values{grid-template-columns:1fr}.rec-scroll{max-height:none}}

/* MAV-443 Min Stay relayout */
.ms-decision-grid{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(390px,.98fr);gap:18px;align-items:start;margin-top:14px}
.ms-ladder-column,.ms-opportunity-column{display:grid;gap:14px;min-width:0}
.ms-opportunity-column{position:sticky;top:16px;background:linear-gradient(180deg,rgba(18,34,59,.92),rgba(8,18,33,.86));border:1px solid rgba(88,200,255,.18);border-radius:18px;padding:16px;box-shadow:0 18px 46px rgba(0,0,0,.26)}
.ms-opportunity-column h4{margin:0;color:var(--ink);font-size:16px;letter-spacing:-.01em}
.ms-band{border:1px solid rgba(88,200,255,.12);background:linear-gradient(180deg,rgba(18,34,59,.62),rgba(5,13,25,.48));border-radius:18px;padding:13px;box-shadow:0 14px 34px rgba(0,0,0,.18)}
.ms-band-far_out_protection{background:linear-gradient(180deg,rgba(88,200,255,.12),rgba(5,13,25,.50));border-color:rgba(88,200,255,.24)}
.ms-band-season_baseline{background:linear-gradient(180deg,rgba(55,211,153,.10),rgba(5,13,25,.50));border-color:rgba(55,211,153,.24)}
.ms-band-close_in_descent{background:linear-gradient(180deg,rgba(248,180,76,.11),rgba(5,13,25,.50));border-color:rgba(248,180,76,.24)}
.ms-band-gap_fill{background:linear-gradient(180deg,rgba(167,139,250,.11),rgba(5,13,25,.50));border-color:rgba(167,139,250,.24)}
.ms-band-title{margin:0 0 10px;color:#c9d9ed;font-size:11px;text-transform:uppercase;letter-spacing:.10em;font-weight:850}
.ms-rung-list{display:grid;gap:10px}.ms-rung-card{border:1px solid rgba(148,163,184,.16);background:linear-gradient(180deg,rgba(12,25,44,.88),rgba(5,13,25,.62));border-radius:16px;padding:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.ms-rung-topline{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.ms-rung-topline h4{margin:0;color:#edf6ff;font-size:15px;line-height:1.25;font-weight:850;letter-spacing:-.015em}.ms-trigger-chip{flex:0 0 auto;border:1px solid rgba(88,200,255,.26);background:linear-gradient(180deg,rgba(29,51,86,.95),rgba(20,39,69,.9));color:#c7eeff;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:850;box-shadow:inset 0 1px 0 rgba(255,255,255,.05)}
.ms-rung-values{display:flex;gap:10px;margin-top:11px}.ms-rung-values span{min-width:96px;border:1px solid rgba(88,200,255,.14);border-radius:12px;background:rgba(5,13,25,.68);padding:9px 10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.ms-rung-values b{display:block;color:#d5f3ff;font-size:20px;line-height:1;font-weight:900;font-family:var(--mono)}.ms-rung-values small{display:block;color:#93a4bd;text-transform:uppercase;letter-spacing:.075em;font-size:10px;margin-top:4px;font-weight:800}
.ms-trace{margin-top:10px;color:var(--muted);font-size:12px}.ms-trace summary{cursor:pointer}.ms-trace-grid{display:grid;gap:4px;margin-top:8px}.ms-trace-grid div{display:flex;gap:8px;align-items:baseline}.ms-trace-grid span{color:var(--faint);min-width:86px}.ms-trace-grid code{white-space:normal;word-break:break-word;color:var(--dim)}
.ms-opp-list{display:grid;gap:10px;margin-top:10px}.ms-opp-card{border:1px solid rgba(148,163,184,.16);border-radius:16px;background:rgba(5,13,25,.62);padding:12px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.ms-opp-card.active{border-color:rgba(248,180,76,.78);background:linear-gradient(180deg,rgba(91,61,21,.34),rgba(5,13,25,.62));box-shadow:0 0 0 1px rgba(248,180,76,.18) inset,0 14px 34px rgba(248,180,76,.08)}.ms-opp-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.ms-opp-head strong{color:#fff;font-size:23px;font-weight:900;letter-spacing:-.04em}.ms-opp-head span{border:1px solid rgba(248,180,76,.35);background:rgba(248,180,76,.14);color:#ffd28a;border-radius:999px;padding:4px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:900}
.ms-demand-bars{display:flex;flex-direction:row;height:46px;overflow:hidden;border:1px solid rgba(37,54,80,.95);border-radius:999px;background:#111e32;margin-top:10px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}.ms-demand-bars span{display:flex;align-items:center;justify-content:center;gap:5px;min-width:54px;padding:0 10px;white-space:nowrap;overflow:hidden}.ms-demand-bars b{font:900 15px/1 var(--mono);color:#fff}.ms-demand-bars small{font-size:9px;text-transform:uppercase;letter-spacing:.07em;font-weight:850;color:rgba(255,255,255,.72)}.ms-demand-keep{background:linear-gradient(90deg,#159a6d,#37d399);box-shadow:inset -1px 0 0 rgba(0,0,0,.18)}.ms-demand-filter{background:linear-gradient(90deg,#7f1d1d,#fb7185)}
.ms-demand-legend{display:none;margin-top:6px;font-size:11px;line-height:1.35;color:#b7c6dd}.ms-demand-legend b{color:#37d399}.ms-demand-legend .ms-legend-filtered{color:#fb7185}
.ms-opp-head span.ms-head-chips{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end;border:0;background:transparent;padding:0}
.ms-opp-head span.ms-grade{border-radius:999px;padding:4px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;white-space:nowrap}
.ms-opp-head span.ms-grade-sufficient{border:1px solid rgba(55,211,153,.4);background:rgba(21,154,109,.16);color:#7fe7c0}
.ms-opp-head span.ms-grade-thin{border:1px solid rgba(248,180,76,.42);background:rgba(248,180,76,.13);color:#ffd28a}
.ms-opp-head span.ms-grade-none{border:1px solid rgba(251,113,133,.4);background:rgba(127,29,29,.22);color:#fda4af}
.ms-support-section .chart-title .ms-grade{display:inline-block;vertical-align:middle;margin-left:8px;border-radius:999px;padding:3px 8px;font-size:10px;text-transform:uppercase;letter-spacing:.07em;font-weight:900;white-space:nowrap}
.ms-support-section .ms-grade-sufficient{border:1px solid rgba(55,211,153,.4);background:rgba(21,154,109,.16);color:#7fe7c0}
.ms-support-section .ms-grade-thin{border:1px solid rgba(248,180,76,.42);background:rgba(248,180,76,.13);color:#ffd28a}
.ms-support-section .ms-grade-none{border:1px solid rgba(251,113,133,.4);background:rgba(127,29,29,.22);color:#fda4af}
.ms-support-section .ms-grade-fallback{border:1px solid rgba(148,163,184,.4);background:rgba(71,85,105,.25);color:#cbd5e1}
.ms-support-note{margin:2px 0 10px}
.ms-midterm-copy{font-size:13px;line-height:1.4}
.ms-metrics-primary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:10px}
.ms-metrics-primary>*{border:1px solid rgba(56,132,255,.34);border-radius:12px;background:rgba(23,48,89,.5);padding:10px 9px;text-align:center}
.ms-metrics-primary span{display:block;color:#9db8e0;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}
.ms-metrics-primary b{display:block;color:#f2f8ff;font-size:20px;font-weight:900;margin-top:3px}
.ms-metrics-secondary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:8px}
.ms-metrics-secondary>*{border:1px solid rgba(34,53,83,.55);border-radius:10px;background:rgba(14,27,47,.5);padding:7px 8px;text-align:center}
.ms-metrics-secondary span{display:block;color:#7c8aa3;font-size:9px;text-transform:uppercase;letter-spacing:.05em;font-weight:750}
.ms-metrics-secondary b{display:block;color:#aebdd3;font-size:13px;font-weight:700;margin-top:2px}
.ms-mechanical-note{margin:6px 0 0;font-size:10.5px;line-height:1.4;color:#8fa0ba}
.ms-explainer{border:1px solid rgba(88,200,255,.2);background:rgba(88,200,255,.06);border-radius:14px;padding:12px 14px;margin:10px 0 14px}
.ms-explainer h4{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#9adcff}
.ms-explainer ul{margin:0;padding-left:16px;display:grid;gap:5px}
.ms-explainer li{font-size:12px;line-height:1.45;color:#c9daf2}
.ms-opp-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:10px}.ms-opp-metrics>*{border:1px solid rgba(34,53,83,.9);border-radius:12px;background:rgba(14,27,47,.82);padding:9px;text-align:center}.ms-opp-metrics span{display:block;color:#93a4bd;font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:800}.ms-opp-metrics b{display:block;color:#edf6ff;font-size:16px;margin-top:3px}.ms-unavailable{color:#f8b44c;font-weight:850}.ms-implication{font-size:12px;line-height:1.4;color:#d6e7ff;background:rgba(88,200,255,.08);border:1px solid rgba(88,200,255,.16);padding:9px 10px;border-radius:12px;margin:10px 0 8px}.cell-note{display:block;color:var(--muted);font-size:11px;line-height:1.35}.ms-freshness{font-size:11px}.ms-empty{margin:24px 0;padding:28px;text-align:center}
@media (max-width: 860px){.ms-decision-grid{grid-template-columns:1fr}.ms-opportunity-column{position:static}.ms-opp-metrics{grid-template-columns:1fr}.ms-rung-topline{display:grid}.ms-trigger-chip{width:max-content}}
.ms-decision-grid,.ms-ladder-column,.ms-opportunity-column,.ms-band,.ms-rung-card,.ms-opp-card,.ms-opp-metrics>*{box-sizing:border-box;min-width:0}.ms-opp-card,.ms-rung-card,.ms-trigger-chip,.ms-implication,.cell-note{overflow-wrap:anywhere}.ms-opp-card{max-width:100%}
.ms-season-toggle-card{border:1px solid rgba(88,200,255,.14);background:linear-gradient(180deg,rgba(18,34,59,.54),rgba(5,13,25,.36));border-radius:16px;padding:12px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.035)}
.ms-support-section{background:linear-gradient(180deg,rgba(18,34,59,.58),rgba(5,13,25,.42));border-color:rgba(88,200,255,.16);box-shadow:0 16px 42px rgba(0,0,0,.20)}
.ms-support-grid{gap:12px}.ms-support-card{background:linear-gradient(180deg,rgba(12,25,44,.86),rgba(5,13,25,.60));border-color:rgba(88,200,255,.14);border-radius:16px;box-shadow:inset 0 1px 0 rgba(255,255,255,.04)}
.ms-support-chip{display:inline-flex;width:max-content;border:1px solid rgba(88,200,255,.22);background:rgba(88,200,255,.08);color:#c7eeff;border-radius:999px;padding:4px 8px;margin-bottom:6px}.ms-empty-copy{color:#c7d2e5;font-size:13px;font-weight:700;line-height:1.35}.ms-muted-dash{color:rgba(232,234,237,.42);font-weight:700}
.ms-opp-range-summary{margin:0 0 10px;color:#a9bad2}.ms-opp-scroll{max-height:520px;overflow:auto;padding-right:4px;scroll-padding-top:8px}.ms-demand-empty{background:rgba(148,163,184,.10);border:1px dashed rgba(148,163,184,.30);color:#cbd5e1}.ms-demand-empty span{flex:1 1 auto;text-align:center;background:transparent}.ms-demand-empty b{color:#cbd5e1}.ms-demand-empty small{color:#94a3b8}
@media (max-width: 520px){.min-stay-view .chart-panel,.min-stay-view.legacy-card{padding-left:14px;padding-right:14px}.ms-decision-grid{gap:14px}.ms-opportunity-column{padding:12px}.ms-rung-values{flex-wrap:wrap}.ms-rung-values span{min-width:88px}.ms-trigger-chip{white-space:normal}.ms-demand-bars{height:30px;border-radius:999px}.ms-demand-bars span{min-width:40px;padding:0 6px}.ms-demand-bars b{font-size:12px}.ms-demand-bars small{display:none}.ms-demand-legend{display:block}}


.context-action-strip{margin:12px 0 14px;padding:12px;border:1px solid rgba(77,163,255,.26);background:linear-gradient(180deg,rgba(77,163,255,.10),rgba(77,163,255,.035));border-radius:12px;display:grid;gap:10px}
.context-action-title{display:flex;justify-content:space-between;gap:10px;align-items:center;color:var(--text);font-size:12px}.context-action-title span{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:800}
.context-action-strip .review-actions{margin:0;padding:0;background:transparent;border:0}.context-action-strip .review-action-buttons{grid-template-columns:1fr 1fr}.context-action-strip .review-action-status{font-size:12px;color:var(--muted)}

/* Mobile UX Fix Sprint — Phase 1 shell containment.
   Desktop remains untouched: every rule is inside <=1024px / <=767px gates. */
@media (max-width:1024px){
  /* overflow-x:CLIP, not hidden: hidden forces overflow-y to compute `auto`,
     which turns the shell into a scroll container and silently unbinds every
     sticky descendant from the window (the toolbar stopped pinning on tabs
     whose content grows the shell — the mobile text-bleed defect). clip
     contains horizontal wiggle without creating a scroll container. */
  .shell.listing-detail{overflow-x:clip}
  .shell.listing-detail .detail-toolbar{position:sticky;top:0;z-index:210;background:var(--bg);padding:8px 0;margin-bottom:0}
  .shell.listing-detail .detail-heading{position:static;background:var(--bg);padding:8px 0;margin-bottom:0}
  .shell.listing-detail .detail-tabs{position:sticky;top:55px;z-index:200;background:var(--bg);margin-top:0}
  #calendar-view{min-height:calc(100dvh - 184px);overflow:hidden}
  #calendar-view .calendar-view-layout,
  #calendar-view .calendar-view-layout.rail-collapsed,
  #calendar-view .calendar-view-layout.detail-collapsed,
  #calendar-view .calendar-view-layout.rail-collapsed.detail-collapsed{
    display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,148px) minmax(0,1fr);
    height:calc(100dvh - 190px);min-height:520px;gap:12px;overflow:hidden;align-items:stretch;position:relative;
  }
  #calendar-view .calendar-left-rail.panel{display:flex;grid-column:1;grid-row:1;position:relative;max-height:none;min-height:0;overflow:hidden}
  #calendar-view .listing-context-panel{max-height:none;min-height:0;overflow:auto;padding:12px;-webkit-overflow-scrolling:touch}
  #calendar-view .listing-context-grid.rail{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:12px}
  #calendar-view .rail-section{min-width:0}
  #calendar-view .calendar-main.panel{grid-column:1;grid-row:2;display:flex;flex-direction:column;min-height:0;height:100%;overflow:hidden}
  #calendar-view .calendar-center-scroll{height:100%;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:8px 16px 16px}
  #calendar-view .calendar-center{overflow:visible;padding:0;min-height:0}
  #calendar-view .month-stack{padding-bottom:36px}
  #calendar-view .calendar-view-layout > .detail-right-panel{
    display:flex;flex-direction:column;position:fixed;top:0;right:0;bottom:0;left:auto;width:min(430px,86vw);max-width:86vw;height:auto;max-height:none;
    z-index:260;margin:0;border-radius:16px 0 0 16px;border:1px solid var(--lineHi);border-right:0;background:var(--panel);box-shadow:-28px 0 60px -24px rgba(0,0,0,.78);
    padding:16px;overflow:hidden;transform:translateX(105%);transition:transform .22s cubic-bezier(.2,.7,.3,1),visibility .22s ease;visibility:hidden;pointer-events:none;
  }
  #calendar-view .calendar-view-layout:not(.detail-hidden) > .detail-right-panel{transform:translateX(0);visibility:visible;pointer-events:auto}
  #calendar-view .detail-right-panel #recommendationDetailContent{height:100%;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:20px}
}
@media (max-width:1024px) and (pointer:coarse){
  #calendar-view .day.interactive{touch-action:pan-y}
  .touch-multi-select-mode #calendar-view .day.interactive{touch-action:manipulation}
  .touch-multi-select-mode #multiSelectBar{border-color:rgba(110,168,255,.46);box-shadow:0 12px 30px rgba(0,0,0,.32),0 0 0 1px rgba(110,168,255,.16)}
}
@media (max-width:767px){
  .shell.listing-detail .detail-tabs{top:55px}
  #calendar-view{min-height:calc(100dvh - 154px)}
  #calendar-view .calendar-view-layout,
  #calendar-view .calendar-view-layout.rail-collapsed,
  #calendar-view .calendar-view-layout.detail-collapsed,
  #calendar-view .calendar-view-layout.rail-collapsed.detail-collapsed{grid-template-rows:minmax(0,1fr);height:calc(100dvh - 170px);min-height:460px;gap:0}
  #calendar-view .calendar-left-rail.panel{display:none}
  #calendar-view .calendar-main.panel{grid-row:1;border-radius:12px}
  #calendar-view .calendar-center-scroll{padding:8px 12px 12px}
  #calendar-view .calendar-view-layout > .detail-right-panel{
    top:auto;left:0;right:0;bottom:0;width:100%;max-width:100%;height:auto;max-height:min(76dvh,640px);border-radius:18px 18px 0 0;border-right:1px solid var(--lineHi);border-bottom:0;
    display:flex;flex-direction:column;padding:0 14px 14px;transform:translateY(105%);visibility:hidden;pointer-events:none;box-shadow:0 -22px 58px -18px rgba(0,0,0,.82);overflow:hidden;
  }
  #calendar-view .calendar-view-layout:not(.detail-hidden) > .detail-right-panel{transform:translateY(105%);visibility:hidden;pointer-events:none}
  body.sheet-open #calendar-view .calendar-view-layout:not(.detail-hidden) > .detail-right-panel{transform:translateY(0);visibility:visible;pointer-events:auto}
  #calendar-view .detail-right-panel::before{display:none}
  #calendar-view .detail-right-panel .mobile-sheet-drag-handle{display:flex;align-items:flex-start;justify-content:center;flex:0 0 auto;width:72px;height:34px;margin:0 auto 2px;padding:0;border:0;background:transparent;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}
  #calendar-view .detail-right-panel .mobile-sheet-drag-handle::before,#calendar-view .detail-right-panel .mobile-sheet-grip{content:"";display:block;width:44px;height:4px;margin:13px auto 0;border-radius:999px;background:rgba(232,234,237,.3)}
  #calendar-view .detail-right-panel.sheet-dragging .mobile-sheet-drag-handle{cursor:grabbing}
  #calendar-view .detail-right-panel #recommendationDetailContent{height:auto;max-height:calc(min(76dvh,640px) - 36px);min-height:0;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;padding-bottom:14px}
  #calendar-view #detailCard[data-detail-variant="single-date"]{padding:13px;border-radius:16px}
  #calendar-view #detailCard[data-detail-variant="single-date"] h3{margin-bottom:10px}
  #calendar-view #detailCard[data-detail-variant="single-date"] .rec-scroll{max-height:none;overflow:visible;padding:12px;gap:10px}
  #calendar-view #detailCard[data-detail-variant="single-date"] .rec-hero{margin:12px 0 8px;padding:15px 14px 14px}
  #calendar-view #detailCard[data-detail-variant="single-date"] .explanation-text{margin-top:8px;padding:10px 12px;line-height:1.5}
  #calendar-view #detailCard[data-detail-variant="single-date"] .rec-group{margin-top:10px}
  #calendar-view #detailCard[data-detail-variant="single-date"] .rec-grid{gap:7px;margin-top:9px}
  #calendar-view #detailCard .review-actions{margin-top:12px}
}

/* Mobile UX Fix Sprint — Phase 3 chrome + tabs. Desktop remains untouched. */
@media (max-width:1024px){
  /* Sticky occlusion: the tab container must be a rectangular, fully opaque
     bar. A rounded/translucent capsule lets scrolling text peek through its
     corners and alpha when pinned. The pill look lives on the tabs, not here. */
  .shell.listing-detail .detail-tabs{
    display:flex;align-items:center;gap:6px;overflow-x:auto;overflow-y:hidden;flex-wrap:nowrap;scrollbar-width:none;-webkit-overflow-scrolling:touch;
    padding:6px 0;border:0;border-bottom:1px solid rgba(255,255,255,.07);border-radius:0;background:var(--bg);
  }
  .shell.listing-detail .detail-tabs::-webkit-scrollbar{display:none}
  .shell.listing-detail .detail-tabs .nav-tab{
    flex:0 0 auto;min-height:36px;padding:0 14px;border:1px solid transparent;border-radius:999px;margin:0;color:var(--faint);background:transparent;white-space:nowrap;
  }
  .shell.listing-detail .detail-tabs .nav-tab.active,.shell.listing-detail .detail-tabs .nav-tab.is-active{
    color:#0e1013;background:var(--amber);border-color:rgba(251,191,36,.65);box-shadow:0 8px 20px -16px rgba(251,191,36,.9);
  }
}
@media (max-width:767px){
  .shell.listing-detail .detail-toolbar{
    display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;padding:8px 0 6px;
  }
  .shell.listing-detail .detail-heading{padding:6px 0}
  .shell.listing-detail .detail-heading h1{font-size:18px;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .shell.listing-detail .detail-heading .muted{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .shell.listing-detail .detail-tabs{padding:5px;margin-top:0}
  .shell.listing-detail .detail-tabs .nav-tab{min-height:34px;padding:0 12px;font-size:11px}
  body .shell.listing-detail .detail-toolbar .tb-nav,body .shell.listing-detail .detail-toolbar .tb-utility{display:none}
  .shell.listing-detail .detail-toolbar > .tb-primary{order:1;margin-left:0;width:100%}
  .shell.listing-detail .tb-bulk-actions{order:1;display:block;min-width:0;width:100%}
  body .shell.listing-detail .tb-bulk-actions .tb-primary{display:none}
  .shell.listing-detail .tb-bulk-actions .tb-form{display:flex;width:100%}
  .shell.listing-detail .tb-bulk-actions [data-action="approve-rest"],
  .shell.listing-detail > .detail-toolbar > .tb-primary .primary-action{
    width:100%;min-height:42px;justify-content:center;border-radius:12px;background:var(--amber);border-color:rgba(251,191,36,.65);color:#0e1013;font-weight:800;
  }
  .shell.listing-detail .mobile-toolbar-overflow{order:2;display:block;position:relative;justify-self:end}
  .mobile-toolbar-overflow-toggle{min-height:42px;padding:0 13px;border-radius:12px;border:1px solid var(--lineHi);background:var(--panel2);color:var(--ink);font:800 12px "Inter",sans-serif;cursor:pointer}
  .mobile-toolbar-overflow.is-open .mobile-toolbar-overflow-toggle{border-color:rgba(251,191,36,.55);color:var(--amber)}
  .mobile-overflow-menu{position:absolute;top:calc(100% + 8px);right:0;z-index:320;width:min(260px,82vw);padding:8px;border:1px solid var(--lineHi);border-radius:14px;background:#101318;box-shadow:0 24px 70px -24px rgba(0,0,0,.92);display:grid;gap:4px}
  .mobile-overflow-menu[hidden]{display:none}
  .mobile-overflow-item{display:flex;align-items:center;min-height:40px;width:100%;padding:0 11px;border:0;border-radius:10px;background:transparent;color:var(--ink);text-decoration:none;font:700 12px "Inter",sans-serif;text-align:left;cursor:pointer}
  .mobile-overflow-item:hover,.mobile-overflow-item:focus{background:rgba(255,255,255,.06)}
  .mobile-overflow-item.disabled{opacity:.42;cursor:default}
  .mobile-overflow-item.danger{color:#ffb3b3}
}

/* Mobile UX Fix Sprint — Phase 4 phone tile compression/readability. */
@media (max-width:767px){
  .month-block{padding:8px;border-radius:14px}
  .calendar{gap:3px;--tile-min-h:72px;--tile-pad-x:5px;--tile-pad-y:5px;--tile-radius:8px}
  .day{min-height:var(--tile-min-h);padding:5px;justify-content:space-between;border-radius:var(--tile-radius)}
  .day *{min-width:0;max-width:100%;box-sizing:border-box}
  .day-top{min-height:10px;gap:0;align-items:flex-start;justify-content:flex-start}
  .daynum{font-size:10px;line-height:1.05;font-weight:700;color:rgba(232,234,237,.76)}
  .day.today .daynum::before{width:4px;height:4px;margin-right:3px}
  #calendar-view .minstay,#calendar-view .tile-rm-line,#calendar-view .listed-line,#calendar-view .mav-line{display:none}
  .tile-main{flex:1;justify-content:center;align-items:center;text-align:center;gap:0;padding:1px 0 0;line-height:1;overflow:hidden}
  .tile-main.booked-main{justify-content:center}
  .booked-copy{gap:2px;align-items:center;min-width:0;max-width:100%}
  .price{font-size:clamp(11px,3.15vw,13px);line-height:1;font-weight:800;letter-spacing:-.05em;max-width:100%;overflow:hidden;text-overflow:clip;white-space:nowrap}
  .day.blocked .price,.price.dimmed{font-size:11px;opacity:.58}
  #calendar-view .booked-label{max-width:100%;font-size:0;letter-spacing:0;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:clip}
  .day.booked .booked-label::after{content:"BKD";font-size:8px;font-weight:900;letter-spacing:.08em;color:var(--brand)}
  .day.blocked .booked-label::after{content:"BLK";font-size:8px;font-weight:900;letter-spacing:.08em;color:rgba(232,234,237,.58)}
  .tile-bar{height:5px;width:calc(100% - 8px);align-self:center;margin:2px 0 0;padding:0;border-radius:999px;font-size:0;letter-spacing:0;color:transparent;overflow:hidden}
  .tile-bar.spacer{height:5px;background:transparent}
  .tile-bar.raise{background:#4ade80}.tile-bar.lower{background:#f87171}.tile-bar.hold{background:rgba(232,234,237,.26)}.tile-bar.floor{background:#fbbf24}.tile-bar.no-recommendation{background:rgba(148,163,184,.20)}
  .corner-row{position:absolute;right:5px;bottom:5px;margin:0;min-height:0;gap:0;padding:0;z-index:4}
  .corner-row > div:first-child{display:none}
  .corner-row > div:last-child{display:flex;align-items:center;gap:3px}
  .decision-badge{min-width:7px;width:7px;height:7px;padding:0;border-radius:999px;font-size:0;line-height:1;background:rgba(232,234,237,.34);color:transparent}
  .decision-badge.approved{background:#4ade80}.decision-badge.overridden{background:#fbbf24}.decision-badge.rejected{background:#f87171}.decision-badge.skipped{background:rgba(232,234,237,.34)}
  .badge-s{width:6px;height:6px;box-shadow:0 0 0 2px rgba(232,234,237,.08)}
  .badge-sm{min-width:12px;width:12px;height:12px;padding:0;border-radius:999px;font-size:0}
  .badge-sm::after{content:"";display:block;width:6px;height:6px;border-radius:999px;background:rgba(232,234,237,.5)}
  #calendar-view .day.selected,#calendar-view .day.multi-selected{border-color:rgba(251,191,36,.95);box-shadow:inset 0 0 0 1px rgba(251,191,36,.92),0 0 0 2px rgba(251,191,36,.18),0 10px 24px -18px rgba(251,191,36,.9);z-index:7}
  .day.selected .price,.day.multi-selected .price,.day.selected .daynum,.day.multi-selected .daynum{opacity:1;color:#fff}
  .day.selected::before,.day.multi-selected::before{inset:1px;border:1px solid rgba(255,255,255,.55);border-radius:calc(var(--tile-radius) - 1px);box-shadow:none}
  .day.selected::after,.day.multi-selected::after{content:"";top:auto;right:5px;bottom:5px;width:9px;height:9px;border-radius:999px;background:var(--amber);box-shadow:0 0 0 2px rgba(14,16,19,.9),0 0 0 4px rgba(251,191,36,.25)}
}

/* Mobile UX Fix Sprint — Phase 5 Market Context sheet + responsive chart containment. */
@media (min-width:768px) and (max-width:1024px){
  #calendar-view .calendar-view-layout.context-mode > .detail-right-panel{
    width:min(560px,88vw);max-width:88vw;padding:14px;overflow:hidden;transform:translateX(0);visibility:visible;pointer-events:auto;
  }
  #calendar-view .calendar-view-layout.context-mode #contextChartsWrap{
    width:100%;height:100%;min-width:0;overflow:auto;-webkit-overflow-scrolling:touch;padding-bottom:20px;
  }
  #calendar-view .calendar-view-layout.context-mode .context-header{
    position:sticky;top:0;z-index:3;background:#16191d;padding-bottom:10px;border-bottom:1px solid rgba(255,255,255,.06);
  }
  #calendar-view .calendar-view-layout.context-mode .context-mini-grid{gap:12px;min-width:0}
  #calendar-view .calendar-view-layout.context-mode .context-chart-box{height:300px;max-width:100%;min-width:0;overflow:hidden}
  #calendar-view .calendar-view-layout.context-mode .context-chart-box.small{height:230px}
  #calendar-view .calendar-view-layout.context-mode .context-history-block{max-width:100%;overflow-x:auto}
  #calendar-view .calendar-view-layout.context-mode .context-history-cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:767px){
  body.market-context-open{overflow:hidden;overscroll-behavior:none}
  body.market-context-open #calendar-view .calendar-view-layout.context-mode > .detail-right-panel{
    display:flex;position:fixed;inset:0;width:100vw;max-width:100vw;height:100dvh;max-height:100dvh;z-index:520;
    border:0;border-radius:0;margin:0;padding:0;background:#0e1013;box-shadow:none;transform:none;visibility:visible;pointer-events:auto;
  }
  body.market-context-open #calendar-view .calendar-view-layout.context-mode > .detail-right-panel::before{display:none}
  body.market-context-open #calendar-view .calendar-view-layout.context-mode > .detail-right-panel #recommendationDetailContent{display:none}
  body.market-context-open #contextChartsWrap{
    display:block;width:100%;height:100dvh;min-height:100dvh;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;
    padding:12px 12px calc(24px + env(safe-area-inset-bottom));box-sizing:border-box;background:#0e1013;
  }
  body.market-context-open #contextChartsWrap .context-header{
    position:sticky;top:0;z-index:4;margin:-12px -12px 12px;padding:12px 12px 10px;background:rgba(14,16,19,.98);backdrop-filter:blur(10px);border-bottom:1px solid rgba(255,255,255,.08);
  }
  body.market-context-open #closeContextChartsBtn{min-height:40px;border-radius:12px}
  body.market-context-open .context-action-strip{margin:10px 0 12px;padding:10px}
  body.market-context-open #calendar-view .context-action-strip .review-action-buttons{grid-template-columns:1fr 1fr;gap:8px}
  body.market-context-open .context-mini-grid{gap:12px;min-width:0}
  body.market-context-open .context-chart-box{width:100%;max-width:100%;min-width:0;height:min(42dvh,330px);min-height:250px;overflow:hidden}
  body.market-context-open .context-chart-box.small{height:230px;min-height:220px}
  body.market-context-open .context-history-block{max-width:100%;overflow-x:auto}
  body.market-context-open .context-history-table{min-width:320px}
  .touch-bulk-confirm-card{width:min(360px,calc(100vw - 28px));padding:16px;border-radius:18px}
  .touch-bulk-confirm-actions{grid-template-columns:1fr 1fr}
}

/* Mobile UX Fix Sprint — Phase 6 touch bulk-approval confirmation. */
@media (max-width:1024px), (pointer:coarse){
  body.touch-bulk-confirm-open{overflow:hidden;overscroll-behavior:none}
  .touch-bulk-confirm-overlay{position:fixed;inset:0;z-index:700;display:grid;place-items:center;padding:18px;background:rgba(0,0,0,.62);backdrop-filter:blur(8px)}
  .touch-bulk-confirm-overlay[hidden]{display:none}
  .touch-bulk-confirm-card{width:min(420px,calc(100vw - 36px));padding:18px;border:1px solid var(--lineHi);border-radius:20px;background:#11151b;box-shadow:0 30px 90px -28px rgba(0,0,0,.96);display:grid;gap:10px;color:var(--ink)}
  .touch-bulk-confirm-eyebrow{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.12em;color:var(--amber)}
  .touch-bulk-confirm-card h2{margin:0;font-size:20px;line-height:1.12;color:var(--text)}
  .touch-bulk-confirm-copy{margin:0;color:var(--muted);font-size:14px;line-height:1.42}
  .touch-bulk-confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:6px}
  .touch-bulk-confirm-actions button{min-height:44px;justify-content:center;border-radius:12px}
}

/* MAV-491 D3 measured phone containment: final cascade override after global booking/table rules. */
@media (max-width:767px){
  #booking-view .booking-kpi-grid{grid-template-columns:minmax(0,1fr)}
  #booking-view .booking-insights-mobile-cards,#booking-view .booking-insights-mobile-cards *{box-sizing:border-box}
  #booking-view .booking-insights-mobile-cards{max-width:100%;min-width:0;overflow-x:hidden}
  #booking-view .booking-insights-mobile-cards .mh-card,#booking-view .booking-insights-mobile-cards .mh-value{min-width:0;max-width:100%;overflow-wrap:anywhere}
  #booking-view .booking-insights-mobile-cards .mh-value{font-size:20px;gap:8px}
  #booking-view .booking-insights-mobile-cards #perfTrendsTable,#booking-view .booking-insights-mobile-cards #recentBookingsTable{overflow-x:visible;max-width:100%;min-width:0}
  #booking-view .booking-insights-mobile-cards .perf-table,#booking-view .booking-insights-mobile-cards .bookings-table{display:block;width:100%;max-width:100%;min-width:0;table-layout:fixed;border-collapse:separate;border-spacing:0}
  #booking-view .booking-insights-mobile-cards .perf-table thead,#booking-view .booking-insights-mobile-cards .bookings-table thead{display:none}
  #booking-view .booking-insights-mobile-cards .perf-table tbody,#booking-view .booking-insights-mobile-cards .bookings-table tbody{display:grid;gap:10px;width:100%;max-width:100%;min-width:0}
  #booking-view .booking-insights-mobile-cards .perf-table tr,#booking-view .booking-insights-mobile-cards .bookings-table tr{display:grid;gap:7px;width:100%;max-width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:12px;background:#16191d}
  #booking-view .booking-insights-mobile-cards .perf-table td,#booking-view .booking-insights-mobile-cards .bookings-table td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;width:100%;max-width:100%;min-width:0;padding:0;border:0;white-space:normal;text-align:right;overflow-wrap:anywhere;word-break:break-word}
  #booking-view .booking-insights-mobile-cards .perf-table td > *,#booking-view .booking-insights-mobile-cards .bookings-table td > *{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  #booking-view .booking-insights-mobile-cards .perf-table td::before,#booking-view .booking-insights-mobile-cards .bookings-table td::before{content:attr(data-label);flex:0 1 42%;min-width:0;color:var(--faint);font-size:10px;font-weight:800;text-align:left;text-transform:uppercase;letter-spacing:.08em;overflow-wrap:anywhere}
}
/* D1 fix-forward (Will-approved, Step 5): detail-sheet rec-card scope.
   The sheet hero sits INSIDE #calendar-view #detailCard > #recommendationDetailContent,
   so the 2-id calendar rule (minmax(0,..) tracks) was winning and collapsing the
   FROM/TO columns to 0 in the narrow sheet. These 3-id selectors outrank it and
   mirror the proven single-date sizing: FROM column floored at 88px (fits
   CURRENT 57px / $1,173 74px), arrow hidden, overflow guards, wrapping chips,
   one-column stack on mobile. */
#calendar-view #detailCard #recommendationDetailContent .rec-hero,#detailCard #recommendationDetailContent .rec-hero,#recommendationDetailContent #detailCard .rec-hero{display:grid;grid-template-columns:minmax(88px,.72fr) minmax(0,1.28fr);gap:12px;align-items:start}
#calendar-view #detailCard #recommendationDetailContent .rec-arrow,#detailCard #recommendationDetailContent .rec-arrow,#recommendationDetailContent #detailCard .rec-arrow{display:none}
#calendar-view #detailCard #recommendationDetailContent .rec-hero .rec-from,#detailCard #recommendationDetailContent .rec-hero .rec-from{margin-top:0;padding-top:0;border-top:0;display:grid;gap:6px;align-content:start;min-width:0;max-width:100%}
#calendar-view #detailCard #recommendationDetailContent .rec-hero .rec-to,#detailCard #recommendationDetailContent .rec-hero .rec-to{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 10px;align-items:center;min-width:0;max-width:100%}
#calendar-view #detailCard #recommendationDetailContent .rec-from-label,#calendar-view #detailCard #recommendationDetailContent .rec-from-val,#calendar-view #detailCard #recommendationDetailContent .rec-to-label,#calendar-view #detailCard #recommendationDetailContent .rec-to-val{min-width:0;max-width:100%;white-space:nowrap;overflow-wrap:normal;word-break:normal}
#calendar-view #detailCard #recommendationDetailContent .rec-delta-chips,#detailCard #recommendationDetailContent .rec-delta-chips{display:flex;flex-wrap:wrap;gap:4px;min-width:0;max-width:100%}
#calendar-view #detailCard #recommendationDetailContent .rec-delta-chips .rec-to-delta,#detailCard #recommendationDetailContent .rec-delta-chips .rec-to-delta{margin-top:0;padding:2px 6px;min-height:auto;line-height:1.1;white-space:normal;overflow-wrap:normal;word-break:normal}
#calendar-view #detailCard #recommendationDetailContent .rec-grid,#detailCard #recommendationDetailContent .rec-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
/* D1 fix-forward v3: remaining probe residues.
   (1) $1,173 clipped 62<74: .rec-from/.rec-to side padding (12px) ate the 88px
   track; narrow to 6px in sheet scope. (2) .rec-to overflowed because the
   nowrap guard also hit the long "Maverick recommends" label; labels may wrap.
   (3) detail_content 346/364 was the top .stats grid (4-col min-width sum,
   pre-existing); force 2-col minmax(0,1fr) in sheet scope so it can never
   exceed its container. */
#calendar-view #detailCard #recommendationDetailContent .rec-hero .rec-from,#calendar-view #detailCard #recommendationDetailContent .rec-hero .rec-to,#detailCard #recommendationDetailContent .rec-hero .rec-from,#detailCard #recommendationDetailContent .rec-hero .rec-to{padding-left:6px;padding-right:6px}
#calendar-view #detailCard #recommendationDetailContent .rec-to-label,#detailCard #recommendationDetailContent .rec-to-label{white-space:normal;line-height:1.2}
#calendar-view #detailCard #recommendationDetailContent .stats,#detailCard #recommendationDetailContent .stats,#recommendationDetailContent .stats{grid-template-columns:repeat(2,minmax(0,1fr));max-width:100%;min-width:0}
#calendar-view #detailCard #recommendationDetailContent .stats .stat,#detailCard #recommendationDetailContent .stats .stat{min-width:0;max-width:100%}
#calendar-view #detailCard #recommendationDetailContent .stats .stat .value,#detailCard #recommendationDetailContent .stats .stat .value{white-space:normal;overflow-wrap:anywhere}

@media(max-width:720px){
  #calendar-view #detailCard #recommendationDetailContent .rec-hero,#detailCard #recommendationDetailContent .rec-hero,#recommendationDetailContent #detailCard .rec-hero{grid-template-columns:1fr}
  #calendar-view #detailCard #recommendationDetailContent .rec-from-val{font-size:18px}
}

/* D1 fix-forward v4: correct ancestor order. The live DOM nests
   #recommendationDetailContent > #detailCard > .rec-hero (the client injects
   the card INSIDE the content div), so content-then-card selectors are the
   ones that match. Also floor the FROM column at min-content so no price
   width can ever clip. */
#calendar-view #recommendationDetailContent #detailCard .rec-hero,#recommendationDetailContent #detailCard .rec-hero{grid-template-columns:minmax(min-content,.72fr) minmax(0,1.28fr)}
#calendar-view #recommendationDetailContent #detailCard .rec-hero .rec-from,#recommendationDetailContent #detailCard .rec-hero .rec-from,#calendar-view #recommendationDetailContent #detailCard .rec-hero .rec-to,#recommendationDetailContent #detailCard .rec-hero .rec-to{padding-left:6px;padding-right:6px;min-width:0;max-width:100%}
#calendar-view #recommendationDetailContent #detailCard .rec-to-label,#recommendationDetailContent #detailCard .rec-to-label{white-space:normal;line-height:1.2}
@media(max-width:720px){
  #calendar-view #recommendationDetailContent #detailCard .rec-hero,#recommendationDetailContent #detailCard .rec-hero{grid-template-columns:1fr}
}
/* D12/MAV-470 Treatment A "understated" (Will's pick 2026-07-11): desktop chrome
   polish for the listing-detail header, tab row, and Portfolio/Previous/Next
   controls. Pill tabs on a soft strip, softened title weight, accent on the
   active tab, rounded secondary buttons. Chrome only; knowingly supersedes the
   mobile sprint's 1440px byte-identical desktop baseline (recaptured with this
   commit's evidence). */
.shell.listing-detail .detail-heading h1{font-size:24px;font-weight:640;letter-spacing:-.02em}
.shell.listing-detail .nav-tabs.detail-tabs{background:var(--bg);border-radius:0;padding:3px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.shell.listing-detail .detail-tabs .nav-tab{border-radius:8px;padding:9px 16px;border-bottom:none}
.shell.listing-detail .detail-tabs .nav-tab.active{background:rgba(110,168,255,.14);color:#cfe3ff}
.shell.listing-detail .tb-back{color:#9fb6d4}
.shell.listing-detail .tb-secondary{border-radius:999px;padding:0 18px}
/* D11/MAV-474: sensor chips (Track-1 contract; flag-gated, absent = not flagged) */
.sensor-chip-row{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.sensor-chip{display:inline-flex;align-items:center;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:.04em;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.05);color:#cbd5e1;cursor:default}
.sensor-chip.cap{color:#fbbf24;background:rgba(251,191,36,.10);border-color:rgba(251,191,36,.30)}
.sensor-chip.density{color:#7fb4ff;background:rgba(110,168,255,.10);border-color:rgba(110,168,255,.30)}
.sensor-chip.holiday{color:#4ade80;background:rgba(74,222,128,.10);border-color:rgba(74,222,128,.30)}
/* D12 polish: flatten the nested WHY box into a compact reason row (the outer
   "Why Maverick held" card already frames it) and tighten mobile rhythm.
   D1 hero columns and desktop layout untouched. */
#calendar-view #detailCard .rec-why .explanation-text,
#calendar-view #detailCard[data-detail-variant^="single-date"] .rec-why .explanation-text,
#detailCard .rec-why .explanation-text{margin-top:4px;padding:0;background:transparent;border:none;border-radius:0;font-size:13px;line-height:1.55;color:rgba(232,234,237,.82)}
#calendar-view #detailCard .rec-why .explanation-text::before,
#detailCard .rec-why .explanation-text::before{content:none}
#calendar-view #detailCard .rec-why .narrative-secondary,
#detailCard .rec-why .narrative-secondary{margin-top:7px;font-size:12.5px;line-height:1.5;color:rgba(232,234,237,.58)}
@media(max-width:720px){
  #calendar-view #detailCard .rec-scroll{gap:8px;padding:10px 12px}
  #calendar-view #detailCard .rec-hero{margin:8px 0 4px;padding:12px 12px 11px}
  #calendar-view #detailCard .pricing-explanation{margin:6px 0 8px;padding:11px 13px}
  #calendar-view #detailCard .pricing-explanation-title{margin-bottom:4px}
  #calendar-view #detailCard .explanation-text{margin-top:4px;padding:0}
  #calendar-view #detailCard .rec-why{gap:6px}
  #calendar-view #detailCard .sensor-chip-row{margin-top:6px}
  #calendar-view #detailCard .rec-group{margin-top:8px}
  #calendar-view #detailCard .rec-grid{gap:6px;margin-top:7px}
}
/* Post-closeout D1/D12 corrective (Will-approved fix-forward 2026-07-11).
   The D1 sheet block is unscoped by width, so the DESKTOP right rail also got
   the sheet's internal 2-track .rec-to grid - on LOWER/RAISE cards the label
   and both delta chips land in crushed tracks (measured: rec-to 223px content
   in 143px; chips clientWidth 0-12px; MAVERICK RECOMMENDS clientWidth 0).
   Desktop (>=768px) keeps the outer 2-col hero but stacks the recommendation
   cell in one column so label/value/chips/note wrap cleanly at rail width.
   The sheet (<768px) keeps the accepted D1 v4 layout untouched. */
@media (min-width:768px){
  #calendar-view #detailCard #recommendationDetailContent .rec-hero .rec-to,
  #detailCard #recommendationDetailContent .rec-hero .rec-to,
  #recommendationDetailContent #detailCard .rec-hero .rec-to{display:grid;grid-template-columns:1fr;gap:4px;align-items:start;justify-items:start}
  #calendar-view #detailCard #recommendationDetailContent .rec-to-label,
  #detailCard #recommendationDetailContent .rec-to-label,
  #recommendationDetailContent #detailCard .rec-to-label{white-space:normal;overflow:visible;text-overflow:clip;line-height:1.25}
  #calendar-view #detailCard #recommendationDetailContent .rec-delta-chips,
  #detailCard #recommendationDetailContent .rec-delta-chips,
  #recommendationDetailContent #detailCard .rec-delta-chips{display:flex;flex-wrap:wrap;gap:5px;min-width:0;max-width:100%;justify-self:stretch}
  #calendar-view #detailCard #recommendationDetailContent .rec-delta-chips .rec-to-delta,
  #detailCard #recommendationDetailContent .rec-delta-chips .rec-to-delta,
  #recommendationDetailContent #detailCard .rec-delta-chips .rec-to-delta{white-space:nowrap;overflow:visible;max-width:none}
}
/* P0/P2: Booking Insights KPI source caption — reads as a quiet caption under the
   cards; never hidden (source honesty must stay visible). */
.booking-kpi-source{font-size:11px;line-height:1.45;color:rgba(232,234,237,.48);margin:6px 2px 0;max-width:640px}
/* ── Final acceptance polish (desktop + mobile) ─────────────────────────────
   1) Mobile calendar tiles: 4-digit prices ($1,398) clipped mid-digit at 390px —
      the 78px container tier still rendered 12px mono in a ~34px inner tile and
      .day{overflow:hidden} cut it to "$1,39". Add a tighter tier for phone-width
      tiles: smaller tabular mono + slimmer tile side padding so the FULL price
      fits. Also stop clip-truncating the Maverick value line on dissent tiles.
   2) Mobile tab bar: was overflowing its client width with the scrollbar hidden
      (accidental edge cutoff). Tighten paddings and make the overflow
      INTENTIONAL: edge fade + snap so a partially visible tab reads as designed.
   3) Desktop tabs: segmented-control refinement — legible inactive tabs, calmer
      active treatment, hairline strip border; no added height. */

/* 1) phone-width tiles: full 4-digit prices */
@container (max-width: 62px){
  .day{padding-left:4px;padding-right:3px}
  .price{font-size:10px;letter-spacing:-.045em;white-space:nowrap}
  .price.past-price{font-size:9px}
  .daynum{font-size:9px}
  .mav-line{gap:2px}
  .mav-line .mav-tag{display:none}
  .mav-line .mav-v{font-size:8.5px;margin-left:0;overflow:visible;text-overflow:initial}
}
@container (max-width: 48px){
  .price{font-size:8.5px;letter-spacing:-.05em}
  .mav-line .mav-v{font-size:7.5px}
}
@media (max-width:767px){
  .day.mavdiff .mav-line .mav-v,.day.dissent .mav-line .mav-v{overflow:visible;text-overflow:initial;flex:none}
  .day.mavdiff .mav-line .mav-tag,.day.dissent .mav-line .mav-tag{display:none}
}

/* 2) mobile tab bar: intentional, polished scroll. NOTE: no mask-image here —
   an edge-fade mask also fades the container's opaque background, opening a
   see-through slot at the bar's edges while it is pinned. */
@media (max-width:1024px){
  .shell.listing-detail .detail-tabs{gap:4px;padding:5px 0;scroll-snap-type:x proximity}
  .shell.listing-detail .detail-tabs .nav-tab{scroll-snap-align:start;padding:0 11px;letter-spacing:-.01em}
}
@media (max-width:767px){
  .shell.listing-detail .detail-tabs .nav-tab{min-height:34px;padding:0 10px;font-size:11px}
}

/* 3) desktop segmented tabs (>1024px): balanced, not one heavy pill.
   The container is a full-width rectangular OPAQUE bar (sticky occlusion —
   an inline-flex translucent capsule lets scrolling text show beside and
   through it when pinned); the segmented look lives on the tabs. */
@media (min-width:1025px){
  .shell.listing-detail .nav-tabs.detail-tabs{
    display:flex;gap:2px;padding:4px 0 6px;margin:10px 0 2px;
    background:var(--bg);border:0;
    border-radius:0;border-bottom:1px solid rgba(255,255,255,.07);
  }
  .shell.listing-detail .detail-tabs .nav-tab{
    border-radius:8px;padding:8px 16px;color:rgba(232,234,237,.64);
    border:1px solid transparent;transition:color .12s ease, background-color .12s ease;
  }
  .shell.listing-detail .detail-tabs .nav-tab:hover{color:rgba(232,234,237,.86);background:rgba(255,255,255,.045)}
  .shell.listing-detail .detail-tabs .nav-tab.active{
    color:#dbe9ff;background:rgba(110,168,255,.12);border-color:rgba(110,168,255,.22);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
  }
  /* toolbar breathing room without extra height */
  .shell.listing-detail .detail-toolbar .tb-nav{gap:8px}
  /* At-rest overlap fix: the desktop toolbar's sticky top:84 displaced it DOWN
     over the (now-taller) listing title at scrollY=0. Pinning at top:0 keeps it
     as a clean top bar above the title at rest and when scrolled (matches the
     proven mobile stacking). */
  .shell.listing-detail .detail-toolbar{column-gap:14px;top:0}
  .shell.listing-detail .detail-heading{padding-top:2px}
}
