/* UI2 Snapshot (U4). Every rule is scoped html.ui2. No inline styles anywhere (CSP). */
html.ui2 .vitals-key{font-size:13px;color:var(--muted)}
html.ui2 .vitals-swipe-hint{display:none}

/* ---- Vitals: symbol grid ---- */
html.ui2 .ui2-vgrid{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:auto}
html.ui2 .ui2-vgrid table{width:100%;border-collapse:collapse;table-layout:fixed}
html.ui2 .ui2-vgrid th,html.ui2 .ui2-vgrid td{padding:10px 8px;text-align:center;border-bottom:1px solid var(--line);vertical-align:middle}
html.ui2 .ui2-vgrid thead th{font-size:12px;font-weight:650;color:var(--muted);letter-spacing:.02em;background:#f2f2f0}
html.ui2 .ui2-vgrid th:first-child{text-align:left;width:34%;font-weight:650}
html.ui2 .ui2-vgrid tbody tr:last-child>*{border-bottom:0}
html.ui2 .ui2-vall th,html.ui2 .ui2-vall td{background:#f2f2f0;border-bottom:2px solid var(--line-2)}
html.ui2 .ui2-vall-label{font-weight:700}
html.ui2 .ui2-vcell{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:48px;min-height:44px;padding:6px 8px;border:0;border-radius:var(--r-sm);background:none;cursor:pointer;font:inherit}
html.ui2 .ui2-vcell:hover{background:#e8e8e5}
html.ui2 .ui2-vcell:focus-visible{outline:2px solid var(--info);outline-offset:2px}
html.ui2 .ui2-vcell .vital-icon{width:24px;height:24px}
html.ui2 .ui2-vcell .vital-bang{font-size:22px}
html.ui2 .ui2-vdot{width:12px;height:12px;border-radius:50%;background:#b9bcb6;display:block}
html.ui2 .ui2-vna{color:var(--muted-2);font-size:18px;line-height:1}
html.ui2 .snapshot-metric-loading{display:inline-flex;align-items:center;justify-content:center;gap:7px;color:var(--muted);font-size:12px;white-space:nowrap}
html.ui2 .snapshot-metric-spinner{display:inline-block;width:13px;height:13px;border:2px solid var(--line-2);border-top-color:var(--muted);border-radius:50%;animation:m-spin .8s linear infinite}
@media(prefers-reduced-motion:reduce){html.ui2 .snapshot-metric-spinner{animation:none;border-top-color:var(--muted)}}
html.ui2 .ui2-vgrid .vital-good{color:var(--ok);background:none}
html.ui2 .ui2-vgrid .vital-issue{color:var(--bad);background:none}
html.ui2 .ui2-vgrid .vital-review{background:none}
@media(max-width:700px){html.ui2 .ui2-vgrid th:first-child{width:30%}html.ui2 .ui2-vgrid thead th{font-size:11px;padding:8px 2px}html.ui2 .ui2-vcell{min-width:40px;padding:6px 2px}}

/* Single-store GM: one card */
html.ui2 .ui2-vcard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:16px;box-shadow:var(--shadow)}
html.ui2 .ui2-vcard h3{margin:0 0 12px;font-size:1.0625rem}
html.ui2 .ui2-vcard-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
html.ui2 .ui2-vcard .ui2-vcell{border:1px solid var(--line);min-height:84px;padding:12px 4px;width:100%}
html.ui2 .ui2-vlabel{font-size:12px;color:var(--muted);text-align:center;line-height:1.2}
@media(max-width:480px){html.ui2 .ui2-vcard-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* The numbers pop-up (live behaviour, restyled as a sheet on phones) */
html.ui2 .vital-dialog{border:0;border-radius:var(--r-lg);padding:20px;max-width:min(560px,94vw);box-shadow:0 24px 60px -20px rgba(17,17,17,.4)}
html.ui2 .vital-dialog::backdrop{background:rgba(17,17,17,.4)}
@media(max-width:700px){html.ui2 .vital-dialog{margin:auto 0 0;width:100%;max-width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0;max-height:80vh;overflow:auto}}

/* ---- Team / Guest / Financials ---- */
html.ui2 .ui2-mcards{display:none}
@media(max-width:700px){
 html.ui2 .ui2-mcards{display:flex;flex-direction:column;gap:12px}
 html.ui2 #snapshot-section-panel>.snapshot-table:not(.ui2-vgrid){display:none}
 html.ui2 .ui2-mcard{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:12px;transition:opacity var(--m-fast) var(--ease-out)}
 html.ui2 .ui2-mcards[data-ui2-dim]>.ui2-mcard:not([data-open]){opacity:.45}
 html.ui2 .ui2-mcard-head{display:flex;align-items:center;justify-content:space-between;width:100%;margin:0 0 10px;padding:0;border:0;background:none;font:inherit;font-size:1rem;font-weight:700;text-align:left;cursor:pointer;color:var(--ink)}
 html.ui2 .ui2-mcard-name{cursor:default}
 html.ui2 .ui2-chev{width:10px;height:10px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform var(--m-fast) var(--ease-out);margin-right:4px}
 html.ui2 .ui2-mcard[data-open]>.ui2-mcard-head .ui2-chev{transform:rotate(-135deg)}
 html.ui2 .ui2-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
 html.ui2 .ui2-tile{display:flex;flex-direction:column;align-items:flex-start;gap:2px;min-height:64px;padding:10px;border:1px solid var(--line);border-radius:var(--r-sm);background:#f2f2f0;font:inherit;text-align:left;cursor:pointer;color:var(--ink)}
 html.ui2 .ui2-tile-label{font-size:12px;color:var(--muted);line-height:1.2}
 html.ui2 .ui2-tile-value{font-size:1.125rem;font-weight:700;line-height:1.2}
 html.ui2 .ui2-tile-sub{font-size:12px;color:var(--muted)}
 html.ui2 .ui2-tile.ui2-neg .ui2-tile-value{color:var(--bad)}
 html.ui2 .ui2-tile.ui2-rwg-green{background:var(--ok-bg)}
 html.ui2 .ui2-tile.ui2-rwg-yellow{background:var(--warn-bg)}
 html.ui2 .ui2-tile.ui2-rwg-red{background:var(--bad-bg)}
 html.ui2 .ui2-tile-hold .ui2-tile-value{font-size:.9rem;font-weight:600;color:var(--muted)}
 html.ui2 .ui2-tile-loading{cursor:default;color:var(--muted)}
 html.ui2 .ui2-tile-loading-value{display:inline-flex;align-items:center;gap:8px;min-height:1.5rem;font-size:1rem;font-weight:600}
 html.ui2 .ui2-mlist{display:flex;flex-direction:column;gap:10px;padding-top:12px}
 html.ui2 .ui2-mcard-sub{background:#f2f2f0;padding:10px}
 html.ui2 .ui2-mcard-sub .ui2-tile{background:var(--surface)}
 html.ui2 .snapshot-partial{display:block}
}
/* Desktop: the restyled table, regions collapsed by default */
@media(min-width:701px){
 html.ui2 #snapshot-section-panel>.snapshot-table:not(.ui2-vgrid){border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:auto}
 html.ui2 #snapshot-section-panel>.snapshot-table:not(.ui2-vgrid) thead th{background:#f2f2f0;color:var(--muted);font-size:12px;letter-spacing:.02em}
 html.ui2 #snapshot-section-panel>.snapshot-table:not(.ui2-vgrid) tbody tr.snapshot-top-group>th{font-weight:700}
}

/* Bottom sheet for tile drills */
html.ui2 dialog.ui2-sheet{border:0;border-radius:var(--r-lg);padding:0;width:min(560px,94vw);max-height:80vh;box-shadow:0 24px 60px -20px rgba(17,17,17,.4);overflow:auto}
html.ui2 dialog.ui2-sheet::backdrop{background:rgba(17,17,17,.4)}
html.ui2 .ui2-sheet-grab{display:none;width:40px;height:4px;border-radius:2px;background:var(--line-2);margin:8px auto 0}
html.ui2 .ui2-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 16px 8px}
html.ui2 .ui2-sheet-head h3{margin:0;font-size:1.0625rem}
html.ui2 .ui2-sheet-close,html.ui2 .ui2-sheet-report{min-height:44px;padding:0 16px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font:inherit;font-weight:650;cursor:pointer}
html.ui2 .ui2-sheet-body{padding:0 16px 16px}
html.ui2 .ui2-sheet-report{margin:0 16px 16px;background:var(--ink);color:#fff}
@media(max-width:700px){
 html.ui2 dialog.ui2-sheet{margin:auto 0 0;width:100%;max-width:100%;border-radius:var(--r-lg) var(--r-lg) 0 0}
 html.ui2 .ui2-sheet-grab{display:block}
}

/* ---- Trends: gray cards, outlier-only cell colors ---- */
html.ui2 .ui2-trend-card{border:1px solid var(--line);border-radius:var(--r-lg);background:#f2f2f0;padding:14px 14px 8px;margin:8px 0 12px}
html.ui2 .ui2-trend-card h3{margin:0;font-size:1rem}
html.ui2 .ui2-trend-note{margin:2px 0 6px;color:var(--muted);font-size:13px}
html.ui2 .ui2-trend-svg{display:block;width:100%;height:auto;max-height:320px}
html.ui2 .ui2-grid{stroke:var(--line-2);stroke-width:1}
html.ui2 .ui2-axis{fill:var(--muted);font-size:11px}
html.ui2 .ui2-line{stroke:#555;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}
html.ui2 .ui2-pt{fill:#555;stroke:#f2f2f0;stroke-width:2}
html.ui2 .ui2-plabel{fill:var(--ink-2);font-size:11px;font-weight:600}
html.ui2 .ui2-psub{fill:var(--muted);font-size:10px}
html.ui2 .ui2-pval{fill:var(--ink);font-size:11px}
html.ui2 .ui2-pmiss{fill:var(--muted-2)}
html.ui2 .ui2-table-toggle{min-height:44px;margin:0 0 10px;padding:0 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font:inherit;font-weight:650;cursor:pointer}
html.ui2 .ui2-trend-table[hidden]{display:none}
html.ui2 .ui2-trend-table td{background:#f2f2f0;color:var(--ink-2)}
html.ui2 .ui2-trend-table td.negative,html.ui2 .ui2-trend-table td.positive{color:var(--ink-2)}
html.ui2 .ui2-trend-table td.ui2-out-good{background:var(--ok-bg);color:var(--ok)}
html.ui2 .ui2-trend-table td.ui2-out-bad{background:var(--bad-bg);color:var(--bad)}
@media(min-width:701px){html.ui2 .ui2-table-toggle{display:inline-flex;align-items:center}}
html.ui2 .ui2-trend-table td .cell-action,html.ui2 .ui2-trend-table td.negative .cell-action{color:inherit}
html.ui2 .ui2-trend-table td.ui2-out-good .cell-action{color:var(--ok)}
html.ui2 .ui2-trend-table td.ui2-out-bad .cell-action{color:var(--bad)}
html.ui2 .ui2-trend-table tbody tr>th,html.ui2 .ui2-trend-table tfoot th{background:#fff}
html.ui2 .ui2-trend-table td:not(.ui2-out-bad):not(.ui2-out-good),html.ui2 .ui2-trend-table td:not(.ui2-out-bad):not(.ui2-out-good) *{color:var(--ink-2)!important}
/* FB5-11 drill sheet: store rows are tappable, zero stores sit behind a toggle, notes ride on an (i). */
html.ui2 .snapshot-detail-row [data-leader-stores-table] th[scope=row],html.ui2 dialog.ui2-sheet [data-leader-stores-table] th[scope=row]{font-weight:600}
html.ui2 [data-leader-stores-table] .cell-action{min-height:44px;text-align:left}
html.ui2 .drill-info{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;color:var(--ink-3,#6b6b6b);font-size:.8125rem;cursor:help}
html.ui2 .drill-show-all{margin:12px 0 0}
html.ui2 .drill-toggle{min-height:44px;padding:0 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);font:inherit;font-size:.875rem;font-weight:650;cursor:pointer}
html.ui2 .leader-store-detail>td{background:var(--surface-2,transparent);padding:8px 12px}

/* ---- FB5-PREM: compact phone drill sheet (sticky header, one-line store rows with a share bar, one accordion open at a time) ---- */
html.ui2.ui2-sheet-open{overflow:hidden}
html.ui2 dialog.ui2-sheet{overscroll-behavior:contain}
html.ui2 .ui2-sheet-head{position:sticky;top:0;z-index:2;background:var(--surface,#fff);border-bottom:1px solid var(--line)}
html.ui2 .ui2-sheet-titles{min-width:0;flex:1}
html.ui2 .ui2-sheet-titles h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.ui2 .ui2-sheet-sub{margin:0;font-size:1.125rem;font-weight:700;line-height:1.2}
html.ui2 .ui2-sheet-x{min-width:44px;padding:0;font-size:1.5rem;line-height:1;font-weight:400}
html.ui2 .drill-summary{margin:10px 0 6px;font-size:.875rem;color:var(--ink-2,#444)}
html.ui2 .drill-list,html.ui2 .prem-people{list-style:none;margin:0;padding:0}
html.ui2 .drill-row{border-bottom:1px solid var(--line)}
html.ui2 .drill-row-btn{position:relative;display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:44px;padding:0 0 4px;border:0;background:none;font:inherit;font-size:.875rem;text-align:left;color:var(--ink);cursor:pointer}
html.ui2 .drill-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600}
html.ui2 .drill-amt{flex:none;font-weight:700;font-variant-numeric:tabular-nums}
html.ui2 .drill-row-btn::after{content:"";flex:none;width:7px;height:7px;margin-left:2px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s}
html.ui2 .drill-row-btn[aria-expanded=true]::after{transform:rotate(-135deg)}
html.ui2 .drill-bar{position:absolute;left:0;right:0;bottom:3px;height:3px;border-radius:2px;background:transparent}
html.ui2 .drill-bar::before{content:"";display:block;height:100%;width:var(--p,0%);border-radius:2px;background:var(--ink-3,#8a8a8a);opacity:.55}
html.ui2 .drill-detail{padding:4px 0 10px}
html.ui2 .drill-detail dl{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;margin:0 0 6px;font-size:.75rem}
html.ui2 .drill-detail dt{color:var(--muted)}html.ui2 .drill-detail dd{margin:0}
html.ui2 .drill-detail .detail-table{font-size:.75rem}
html.ui2 .drill-more{margin:6px 0 0}
html.ui2 .drill-link{min-height:40px;padding:0 4px;border:0;background:none;font:inherit;font-size:.875rem;font-weight:650;color:var(--ink);text-decoration:underline;cursor:pointer}
html.ui2 .drill-link-quiet{font-weight:500;font-size:.75rem;color:var(--muted)}
html.ui2 .prem-person{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;column-gap:8px;padding:6px 0;border-bottom:1px solid var(--line);font-size:.875rem}
html.ui2 .prem-person:last-child{border-bottom:0}
html.ui2 .prem-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.ui2 .prem-chip{padding:1px 8px;border-radius:999px;background:#f2f2f0;border:1px solid var(--line-2);font-size:.75rem;font-weight:650;white-space:nowrap}
html.ui2 .prem-amt{font-weight:700;font-variant-numeric:tabular-nums;text-align:right}
html.ui2 .prem-types{grid-column:1/-1;font-size:.75rem;color:var(--muted);line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
html.ui2 .drill-note,html.ui2 .drill-empty{margin:4px 0;font-size:.75rem;color:var(--muted)}
html.ui2 .drill-report{margin:8px 0 0}
html.ui2 .drill-report .studio-open{min-height:40px}
@media(max-width:700px){
 html.ui2 dialog.ui2-sheet{max-height:85vh;max-height:85dvh}
 html.ui2 .ui2-sheet-head{padding:12px 12px 10px}
 html.ui2 .ui2-sheet-body{padding:0 12px 12px}
 html.ui2 .ui2-sheet-report{margin:0 12px 12px;min-height:44px}
}
@media(min-width:701px){html.ui2 dialog.ui2-sheet{max-height:85vh;max-height:85dvh}}

/* =====================================================================================================================
   POL-SNAP (2026-10-21): fixed header, one sheet, Vitals cards, plain empty states, tap targets. Rules appended last on purpose.
   ===================================================================================================================== */
/* ---- header: toggle + period, date line (Refresh / clock in ONE slot), tabs. Same height on every section (SNAP-5/10/19/20/21/29) ---- */
html.ui2 #scorecard-view .section-heading{padding-top:16px}
html.ui2 .snap-head .snapshot-controls{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:8px;margin:0}
html.ui2 .snap-head .snap-seg{display:inline-flex;flex:none;flex-wrap:nowrap;width:auto;max-width:none;gap:2px;padding:3px;border:1px solid var(--line-2);border-radius:999px;background:var(--surface);order:0;justify-content:flex-start}
html.ui2 .snap-head .snap-seg button{min-height:40px;padding:0 12px;border-radius:999px;font-size:14px;white-space:nowrap}
html.ui2 .snap-head .snap-seg[hidden]{display:none}
html.ui2 .snap-dateline{display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:44px;margin:4px 0 0}
html.ui2 .snap-dateline .snapshot-date{flex:1;min-width:0;margin:0;font-size:15px;font-weight:650;line-height:1.3;min-height:1.3em}
html.ui2 .snap-dateline-tools{display:inline-flex;align-items:center;gap:4px;flex:none}
html.ui2 .snap-refresh,html.ui2 .snap-clock{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:40px;min-height:40px;padding:0 10px;border:1px solid var(--line-2);border-radius:10px;background:var(--surface);color:var(--ink);font:inherit;font-size:13px;font-weight:600;cursor:pointer}
html.ui2 .snap-refresh[hidden]{display:none}
html.ui2 .snap-refresh:hover,html.ui2 .snap-clock:hover{background:#f2f2f0}
html.ui2 .snap-refresh-word{display:none}
html.ui2 .snap-clock{border-color:transparent;background:none;padding:0}
html.ui2 .snap-clock[data-state=yellow]{color:var(--warn)}html.ui2 .snap-clock[data-state=red]{color:var(--bad)}
html.ui2 .snap-head .snapshot-date-note{min-height:20px;margin:0 0 8px;font-size:12px;line-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
html.ui2 .snap-head .snapshot-sections{flex-wrap:nowrap;gap:6px;margin:0 0 12px;overflow-x:auto}
html.ui2 .snap-head .snapshot-sections button{min-height:40px;padding:0 14px;border-radius:999px;font-size:14px;white-space:nowrap}
html.ui2 [data-snapshot-content]{min-height:max(360px,72vh)}
html.ui2 .snapshot-trend-controls{margin:0 0 12px}
@media(min-width:701px){html.ui2 .snap-refresh-word{display:inline}html.ui2 #scorecard-view{padding-bottom:104px}}
/* first-load skeleton (SNAP-33) */
.snap-skeleton{display:grid;gap:10px;padding:4px 0}
.snap-skeleton span{display:block;height:56px;border-radius:12px;background:linear-gradient(90deg,#f0f0ee,#e6e6e3,#f0f0ee);background-size:200% 100%;animation:snapShimmer 1.2s linear infinite}
@keyframes snapShimmer{from{background-position:200% 0}to{background-position:-200% 0}}
@media(prefers-reduced-motion:reduce){.snap-skeleton span{animation:none}}

/* ---- missing numbers: one word, a reason behind an (i) (SNAP-3/24, LIVE-6) ---- */
html.ui2 .snapshot-why,html.ui2 .tx-why,html.ui2 .ui2-tile-why{display:inline-flex;align-items:center;justify-content:center;min-width:20px;min-height:20px;color:var(--muted);font-size:.8125rem;font-weight:400;text-decoration:none;cursor:help}
html.ui2 .ui2-tile-why{position:absolute;right:8px;bottom:8px}
html.ui2 .snapshot-outlier,html.ui2 .ui2-tile-flag{display:inline-flex;align-items:center;min-height:20px;padding:0 8px;border-radius:999px;background:var(--warn-bg);color:#5a4300;font-size:11px;font-weight:650;white-space:nowrap}
html.ui2 .ui2-tile-flag{margin-top:2px}
html.ui2 .drill-reason{margin:12px 0;padding:10px 12px;border-radius:var(--r-sm);background:#f2f2f0;font-size:.875rem;color:var(--ink-2,#444)}

/* ---- one sheet (SNAP-1/11/12/14/30) ---- */
html.ui2 .ui2-sheet-head{align-items:flex-start}
html.ui2 .ui2-sheet-titles h3{overflow:visible;text-overflow:clip;white-space:normal;line-height:1.25}
html.ui2 .ui2-sheet-sub{display:flex;align-items:baseline;flex-wrap:wrap;gap:4px 10px;margin:2px 0 0}
html.ui2 .ui2-sheet-sub strong{font-size:1.5rem;font-weight:750;line-height:1.15;font-variant-numeric:tabular-nums}
html.ui2 .ui2-sheet-status{font-size:.8125rem;font-weight:650;color:var(--muted)}
html.ui2 .ui2-sheet-x{min-width:44px;min-height:44px;flex:none;padding:0;border:0;background:none;font-size:1.75rem;line-height:1;font-weight:400;color:var(--ink)}
html.ui2 .ui2-sheet-x:hover{background:#f2f2f0}
html.ui2 .drill-bar{display:none}
html.ui2 .drill-row{border-bottom:1px solid var(--line)}
html.ui2 .drill-row-btn{min-height:44px;padding:0}
html.ui2 .drill-row-btn::after{width:9px;height:9px;margin:0 4px 0 2px;border-width:2.5px}
html.ui2 .drill-name{white-space:normal;overflow:visible;text-overflow:clip}
html.ui2 .prem-person{padding:8px 0}
html.ui2 .prem-chip{min-height:22px;display:inline-flex;align-items:center;white-space:nowrap;overflow:visible;text-overflow:clip}
html.ui2 .prem-types{white-space:normal;overflow:visible;text-overflow:clip}
html.ui2 .drill-when{margin:8px 0 2px;font-weight:650;color:var(--ink-2,#444)}
html.ui2 .drill-detail .drill-note{margin:4px 0}
/* hours list (SNAP-13) */
html.ui2 .hours-list{list-style:none;margin:0;padding:0}
html.ui2 .hours-row{padding:10px 0;border-bottom:1px solid var(--line)}
html.ui2 .hours-top{display:flex;align-items:center;flex-wrap:wrap;gap:4px 10px}
html.ui2 .hours-store{flex:1;min-width:0;font-weight:650;font-size:.9375rem}
html.ui2 .hours-day{font-size:.75rem;color:var(--muted)}
html.ui2 .hours-diff{font-weight:700;font-variant-numeric:tabular-nums}
html.ui2 .hours-diff.negative{color:var(--bad)}
html.ui2 .hours-nums{display:flex;flex-wrap:wrap;gap:2px 16px;margin-top:2px;font-size:.8125rem;color:var(--muted)}
html.ui2 .hours-nums b{color:var(--ink);font-weight:650;font-variant-numeric:tabular-nums}
/* desktop drill = the same sheet, centered */
@media(min-width:701px){html.ui2 dialog.ui2-sheet{width:min(560px,94vw);margin:auto}}

/* ---- tile tap affordance (SNAP-16) + 40px targets (SNAP-29) ---- */
@media(max-width:700px){
 html.ui2 .ui2-tile{position:relative;padding-right:28px}
 html.ui2 .ui2-tile-go{position:absolute;top:13px;right:11px;width:7px;height:7px;border-right:2px solid var(--muted-2,#8a8a8a);border-top:2px solid var(--muted-2,#8a8a8a);transform:rotate(45deg)}
 html.ui2 .ui2-mcard-head{min-height:40px}
}
@media(min-width:701px){html.ui2 .ui2-tile-go{display:none}}

/* ---- Vitals: legend chips, cards on phones, counts at region level (SNAP-6/7, LIVE-7) ---- */
html.ui2 .vitals-legend{display:flex;flex-wrap:wrap;gap:6px 14px;list-style:none;margin:0 0 10px;padding:0;font-size:12px;color:var(--ink-2,#444)}
html.ui2 .vitals-legend li{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
html.ui2 .vl-ico{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px}
html.ui2 .vl-ico .vital-icon{width:16px;height:16px}html.ui2 .vl-ico .vital-bang{font-size:15px;line-height:1}
html.ui2 .vl-good{color:var(--ok)}html.ui2 .vl-bad{color:var(--bad)}html.ui2 .vl-warn{color:var(--warn)}
html.ui2 .ui2-vcount{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:28px;padding:0 8px;border-radius:14px;background:var(--bad-bg);color:var(--bad);font-size:15px;font-weight:700;font-variant-numeric:tabular-nums}
html.ui2 .ui2-vcards{display:flex;flex-direction:column;gap:12px}
html.ui2 .ui2-vc{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);padding:12px}
html.ui2 .ui2-vc-all{background:#f2f2f0}
html.ui2 .ui2-vc-subcard{background:#f7f7f5;padding:10px}
html.ui2 .ui2-vc-head{display:flex;align-items:center;gap:8px;width:100%;min-height:40px;margin:0 0 8px;padding:0;border:0;background:none;font:inherit;font-size:1rem;font-weight:700;text-align:left;color:var(--ink)}
html.ui2 button.ui2-vc-head{cursor:pointer}
html.ui2 .ui2-vc-name{flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.25}
html.ui2 .ui2-vc-sub{flex:none;font-size:12px;font-weight:500;color:var(--muted)}
html.ui2 .ui2-vc .ui2-chev{flex:none;width:9px;height:9px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .15s;margin:0 4px}
html.ui2 .ui2-vc[data-open]>.ui2-vc-head .ui2-chev{transform:rotate(-135deg)}
html.ui2 .ui2-vc-cells{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}
html.ui2 .ui2-vc .ui2-vcell{width:100%;min-width:0;min-height:72px;padding:8px 2px;border:1px solid var(--line);background:var(--surface)}
html.ui2 .ui2-vc .ui2-vlabel{font-size:11px;line-height:1.15;overflow-wrap:anywhere}
html.ui2 .ui2-vc-children{display:flex;flex-direction:column;gap:10px;margin-top:12px}
html.ui2 .ui2-vgrid th:first-child{overflow-wrap:anywhere}
html.ui2 .ui2-vgrid [data-snapshot-group],html.ui2 .ui2-vgrid [data-snapshot-store]{white-space:normal;text-align:left;overflow:visible;text-overflow:clip}
html.ui2 .ui2-vall th,html.ui2 .ui2-vall td{border-bottom:1px solid var(--line-2)}
html.ui2 .ui2-vgrid tr[data-snapshot-node]{opacity:1}
/* vitals pop-up (SNAP-8) */
html.ui2 .vital-updated{display:flex;align-items:center;gap:6px;color:var(--muted)}
html.ui2 .vital-dialog form[method=dialog] button{min-height:44px}

/* ---- Today table fits 3 columns, Avg never clipped (SNAP-4) ---- */
html.ui2 .snapshot-table.today-table table{table-layout:fixed;width:100%}
html.ui2 .snapshot-table.today-table th,html.ui2 .snapshot-table.today-table td,html.ui2 .snapshot-table.today-table td.numeric,html.ui2 .snapshot-table.today-table thead th:not(:first-child){min-width:0;padding:8px 6px;white-space:normal;overflow-wrap:anywhere}
html.ui2 .snapshot-table.today-table th:first-child{width:34%;max-width:none;min-width:0}

/* ---- table headers: no mid-word hyphenation (SNAP-23) ---- */
html.ui2 .snapshot-table thead th,html.ui2 #snapshot-section-panel th{hyphens:manual;-webkit-hyphens:manual;overflow-wrap:normal;word-break:normal}

/* ---- transposed phone table: scroll cue, one header style, divider on the sticky column, 44px cells (SNAP-15/18/32) ---- */
html.ui2 .snapshot-tx{position:relative}
html.ui2 .snapshot-tx::after{content:"";position:absolute;top:1px;right:1px;bottom:1px;width:32px;border-radius:0 8px 8px 0;background:linear-gradient(90deg,rgba(255,255,255,0),#fff 85%);pointer-events:none;opacity:1;transition:opacity .15s}
html.ui2 .snapshot-tx[data-scroll-end]::after{opacity:0}
html.ui2 .snapshot-tx .tx-table thead th{background:#f2f2f0;color:var(--muted);font-weight:650}
html.ui2 .snapshot-tx .tx-table thead th.is-open,html.ui2 .snapshot-tx .tx-table .tx-parent{background:#f2f2f0}
html.ui2 .snapshot-tx .tx-table .tx-date{box-shadow:inset -1px 0 0 var(--line),4px 0 6px -4px rgba(17,17,17,.18)}
html.ui2 .snapshot-tx .tx-table td{padding:0}
html.ui2 .snapshot-tx .tx-table td .tx-open{display:flex;align-items:center;justify-content:flex-end;width:100%;min-width:56px;min-height:44px;padding:0 10px;text-decoration:underline dotted;text-underline-offset:3px}
html.ui2 .snapshot-tx .tx-sub{padding:0 10px 6px;text-align:right}
html.ui2 .snapshot-tx td.snapshot-rwg-yellow .tx-sub{color:#5a4300;opacity:1;font-weight:600}
html.ui2 .snapshot-tx td.snapshot-rwg-green .tx-sub{color:#205744;opacity:1;font-weight:600}
html.ui2 .snapshot-tx td.snapshot-rwg-red .tx-sub{color:#763239;opacity:1;font-weight:600}
html.ui2 .snapshot-tx .tx-toggle{min-height:40px}
html.ui2 .snapshot-tx .tx-why{margin-left:2px;text-decoration:none}

/* ---- Trends (SNAP-25/26) ---- */
html.ui2 .ui2-trend-svg{max-height:none}
html.ui2 .ui2-trend-card h3{font-size:1rem}
html.ui2 .ui2-table-toggle{min-height:40px}

/* FB6-SNAP: Financials leads with Hours vs schedule as a full-width tile; a Coming soon tile reads quiet. */
html.ui2 .ui2-tile-lead{grid-column:1/-1;min-height:84px}
html.ui2 .ui2-tile-lead .ui2-tile-value{font-size:1.9rem}
html.ui2 .ui2-tile-soon .ui2-tile-value{font-size:.9rem;font-weight:600;color:var(--muted)}

/* FB6-SCHED: the Vitals pop-up's Close sat flush on the card's bottom edge. The footer is now a sticky bar with its own spacing (and the phone safe area). */
html.ui2 .vital-dialog{padding-bottom:0;overscroll-behavior:contain}
html.ui2 .vital-dialog form[method=dialog]{position:sticky;bottom:0;z-index:2;margin:12px -20px 0;padding:12px 20px calc(18px + env(safe-area-inset-bottom,0px));background:var(--surface,#fff);border-top:1px solid var(--line)}
html.ui2 .vital-dialog form[method=dialog] button{margin:0}
/* FB7-1/3: premium days (a store opens to its days, a day to its lines) and edit cards that open to their detail. */
html.ui2 .prem-days{list-style:none;margin:0;padding:0}
html.ui2 .prem-day{border-bottom:1px solid var(--line)}
html.ui2 .prem-day:last-child{border-bottom:0}
html.ui2 .prem-day-btn{display:grid;grid-template-columns:minmax(0,1fr) auto auto;column-gap:10px;align-items:center;width:100%;min-height:44px;padding:6px 0;background:none;border:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
html.ui2 .prem-day-btn[aria-expanded=true] .prem-day-name{font-weight:700}
html.ui2 .prem-day-n{color:var(--muted);font-size:.8rem}
html.ui2 .prem-day-lines{padding:0 0 6px 12px}
html.ui2 .ed-open{display:block;width:100%;background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer;min-height:44px}
html.ui2 .ed-open span{display:block}
html.ui2 .ed-line,html.ui2 .ed-meta,html.ui2 .ed-flags{color:var(--muted);font-size:.875rem}
html.ui2 .ed-detail,html.ui2 .tc-edit-detail{margin:6px 0 4px;padding:8px 10px;border-radius:8px;background:#f7f7f5;border:1px solid var(--line)}
html.ui2 .tc-detail-fields{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 12px;margin:0;font-size:.875rem}
html.ui2 .tc-detail-fields dt{color:var(--muted)}
html.ui2 .tc-detail-fields dd{margin:0;overflow-wrap:anywhere}
html.ui2 .leader-store-detail .cell-action strong{font-weight:700}

/* GM "master the basics" LOCKS (gm-locks.js, tour v3 2026-10-22): Trends, Team, Guest and Financials carry a small lock for a pure GM. */
html.ui2 .snap-head [data-gm-locked]{color:#5F646B;display:inline-flex;align-items:center;gap:6px}
html.ui2 .snap-head [data-gm-locked] .gm-lock-ic{display:inline-flex;width:12px;height:12px}
html.ui2 .snap-head [data-gm-locked] .gm-lock-ic svg{width:12px;height:12px;display:block}
