/* ==== metric-info.css ==== */
.metric-info-source{display:none!important}
.metric-info-button{display:inline-flex;align-items:center;justify-content:center;flex:none;width:22px;height:22px;min-height:22px;padding:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit;font:italic 600 14px Georgia,serif;cursor:pointer;opacity:.7;vertical-align:middle;margin:4px 5px}
.metric-info-button[hidden]{display:none}.metric-info-button:hover{opacity:1}.metric-info-button:focus-visible{outline:3px solid #377499;outline-offset:3px}
.metric-info-wrap{position:relative;min-width:0}.metric-info-wrap>.studio-metric{height:100%;padding-right:32px}.metric-info-wrap>.metric-info-button{position:absolute;right:4px;top:9px}
#home-summary>.metric-info-wrap+.metric-info-wrap{border-left:1px solid #e0e2da}
.metric-info-dialog{width:min(480px,calc(100vw - 32px));max-height:80vh;padding:22px;border:1px solid #d9ddd2;border-radius:16px;background:#fff;color:#19241e;box-shadow:0 20px 80px #17201a33;overflow:auto}
.metric-info-dialog::backdrop{background:#17201a40}.metric-info-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.metric-info-heading h2{font-size:19px;line-height:1.4;margin:0 0 14px}.metric-info-heading button{background:none;border:0;min-width:32px;min-height:32px;font-size:26px;cursor:pointer;color:inherit}.metric-info-content{white-space:pre-wrap;overflow-wrap:anywhere;font-size:15px;line-height:1.65;display:block;-webkit-line-clamp:unset}
.source-info-toggle{list-style:none!important;width:22px!important;height:22px!important;min-height:22px!important;border-radius:50%!important;padding:0!important;display:inline-flex!important;align-items:center;justify-content:center;font:italic 600 14px Georgia,serif!important}.source-info-toggle::-webkit-details-marker{display:none}
[data-info-group] h2{display:flex;align-items:center;gap:8px}[data-info-group] .metric-info-group-button{margin:0}.snapshot-column-label .metric-info-button{font-size:14px}
@media(max-width:480px){#home-summary>.metric-info-wrap+.metric-info-wrap{border-left:0;border-top:1px solid #e0e2da}.metric-info-wrap>.studio-metric{padding:16px 36px 16px 18px}}
[data-about-source],.source-coverage{display:none!important}
.grove-footer .about-data-link{min-height:44px;margin-left:auto}.page-view .about-data-row,.view-panel>.about-data-row{margin:0 0 8px}
.about-data-link{align-self:flex-start;min-height:44px;margin:0;padding:6px 0;background:none;border:0;border-radius:0;color:inherit;font-size:12px;line-height:1.5;font-weight:600;text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.about-data-row{margin:2px 0 6px}
.about-data-dialog,.learning-dialog{width:min(520px,calc(100vw - 32px));max-height:80vh;padding:22px;border:1px solid #d9ddd2;border-radius:16px;background:#fff;color:#19241e;box-shadow:0 20px 80px #17201a33;overflow:auto}
.about-data-dialog::backdrop,.learning-dialog::backdrop{background:#17201a40}
.about-data-heading{display:flex;align-items:start;justify-content:space-between;gap:20px}.about-data-heading h2{font-size:19px;line-height:1.4;margin:0 0 10px}.about-data-heading button{background:none;border:0;min-width:44px;min-height:44px;font-size:26px;cursor:pointer;color:inherit}
.about-data-content h3{font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin:16px 0 4px}.about-data-content p{font-size:14px;line-height:1.6;margin:0 0 8px;overflow-wrap:anywhere}
.about-data-row{margin:2px 0 8px}
.about-data-note{margin:0 0 12px}.about-data-note ul{margin:0 0 8px;padding-left:20px}.about-data-note li{font-size:14px;line-height:1.6;margin:0 0 4px;overflow-wrap:anywhere}
/* ==== snapshot.css ==== */
.snapshot-controls,.snapshot-trend-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}.snapshot-tabs{display:flex;gap:4px;border-bottom:1px solid #d9ddd2}.snapshot-tabs button{border:0;background:none;padding:12px 16px;font-weight:650;color:#586052;cursor:pointer}.snapshot-tabs button[aria-pressed=true]{color:#19241e;border-bottom:3px solid #596d37}.snapshot-date{font-size:14px;margin:14px 0 22px}.snapshot-headlines{display:grid;grid-template-columns:repeat(auto-fit,minmax(155px,1fr));gap:12px;margin-bottom:28px}.snapshot-card{position:relative;border:1px solid #dedfd7;border-radius:12px;padding:18px 32px 18px 18px;display:flex;align-items:start;flex-direction:column;gap:10px;background:#fff;min-width:0}.snapshot-card>.metric-info-button{position:absolute;right:5px;top:10px}.snapshot-card .metric-value{font-size:28px;line-height:1.15;letter-spacing:-.04em}.snapshot-card .metric-label{font-size:12px;font-weight:700}.snapshot-current{display:block;font-size:10px;letter-spacing:.05em;text-transform:uppercase;color:#687063;margin-top:5px}.snapshot-secondary{display:block;font-size:12px;font-weight:400;color:#687063;white-space:normal;margin-top:5px}.snapshot-unavailable{display:block;font-size:11px;font-weight:400;color:#687063;margin-top:3px}.snapshot-table{max-width:100%;overflow:auto;border:1px solid #dedfd7;border-radius:12px}.snapshot-table table{width:100%;border-collapse:collapse;font-size:14px}.snapshot-table th,.snapshot-table td{padding:14px 12px;white-space:nowrap;border-bottom:1px solid #e6e8e0}.snapshot-table th{text-align:left}.snapshot-table thead{background:#edf1e5}.snapshot-table th:first-child{position:sticky;left:0;background:#f8f9f5;z-index:1;min-width:215px;max-width:280px;white-space:normal}.snapshot-table .snapshot-leader{background:#edf1e5;font-weight:700}.snapshot-leader th:first-child{background:#edf1e5}.snapshot-leader button{border:0;background:none;text-align:left;font:inherit;cursor:pointer;color:inherit}.snapshot-table .snapshot-store{padding-left:32px}.snapshot-table tfoot{font-weight:700}.snapshot-partial{font-size:12px;color:#687063}.snapshot-trend-controls{justify-content:start;margin-bottom:24px}.snapshot-trend-controls label{display:flex;flex-direction:column;gap:7px;font-size:13px}.snapshot-trend-controls select{min-width:210px}.snapshot-trend-bars{display:grid;gap:14px;margin:24px 0}.snapshot-trend-point{display:grid;grid-template-columns:110px minmax(60px,1fr) 120px;align-items:center;gap:16px;font-size:13px}.snapshot-trend-point strong{text-align:right}.snapshot-bar-track{width:100%;background:#edf1e5;height:14px;border-radius:4px;overflow:hidden}.snapshot-bar{fill:#596d37}.snapshot-bar.negative{fill:#a1261c}
@media(max-width:600px){.snapshot-headlines{grid-template-columns:repeat(2,minmax(0,1fr))}.snapshot-card .metric-value{font-size:24px}.snapshot-tabs button{padding:12px 10px}.snapshot-trend-point{grid-template-columns:85px minmax(30px,1fr) 90px;gap:8px}.snapshot-table th:first-child{min-width:160px;max-width:180px}}
.snapshot-sections{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 16px}.snapshot-sections button{border:1px solid #d9ddd2;border-radius:8px;background:#fff;padding:9px 14px;font:inherit;font-size:13px;cursor:pointer}.snapshot-sections button[aria-pressed=true]{background:#19241e;color:#fff;border-color:#19241e}.snapshot-table table{font-variant-numeric:tabular-nums}.snapshot-table thead th{font-size:12px;vertical-align:top;white-space:normal;min-width:112px}.snapshot-column-label{display:flex;align-items:center;justify-content:center;gap:4px}.snapshot-column-label p{margin:0}.snapshot-column-label .metric-info-button{margin:0}.snapshot-table td.numeric{text-align:center;font-size:16px}.snapshot-table td.numeric strong{font-weight:650}.snapshot-table td.negative{color:#a1261c}.snapshot-table td.positive{color:#25603c}.snapshot-table tbody tr:hover{background:#f1f3ec}.snapshot-table .snapshot-leader{background:#fff}.snapshot-leader th:first-child{background:#fff}.snapshot-table tbody tr:nth-of-type(even):not([hidden]){background:#f8f9f5}.snapshot-source-date{display:block;font-size:10px;font-weight:400;color:#687063;line-height:1.5;margin-top:5px;text-align:center}.snapshot-table thead th:not(:first-child){text-align:center}.snapshot-date-note{font-size:12px;color:#586052;line-height:1.5}.snapshot-table .snapshot-leader th:first-child button{font-size:15px}.snapshot-table .cell-action{font-variant-numeric:tabular-nums}.snapshot-table td .snapshot-secondary{font-size:11px}.snapshot-table thead th:first-child{z-index:2}.snapshot-table tfoot th:first-child{background:#edf1e5}.snapshot-table tfoot{background:#edf1e5}
@media(max-width:600px){.snapshot-table th:first-child{min-width:135px;max-width:150px}.snapshot-table th,.snapshot-table td{padding:12px 10px}.snapshot-table thead th{min-width:105px}.snapshot-table td.numeric{font-size:14px}.snapshot-sections button{padding:8px 10px}.snapshot-table .snapshot-leader th:first-child button{font-size:14px}}
.snapshot-table tbody .snapshot-top-group>*{border-top:1px solid #111}.snapshot-table tfoot tr>*{border-top:1px solid #111}.snapshot-table [data-snapshot-depth="1"] th:first-child{padding-left:28px}.snapshot-table [data-snapshot-depth="2"] th:first-child{padding-left:44px}.snapshot-table [data-snapshot-depth="0"] .snapshot-store{padding-left:12px}
.snapshot-table tbody th,.snapshot-table tbody td{border-bottom:0;border-top:1px solid #e6e8e0}.snapshot-table thead th{border-bottom:1px solid #111}
.snapshot-table{max-height:70vh;max-height:70dvh;scroll-padding-top:90px}
.snapshot-table thead th{position:sticky;top:0;z-index:3;background:#edf1e5;box-shadow:inset 0 -1px #111}
.snapshot-table thead th:first-child{z-index:4;background:#edf1e5}

.snapshot-coverage{display:block;font-size:14px;line-height:1.5;color:#424b43;white-space:normal;margin-top:8px}.snapshot-additional{margin:24px 0}.snapshot-additional summary{font-size:14px;font-weight:650;cursor:pointer}.snapshot-additional .snapshot-headlines{margin-top:12px}.vital-state{display:inline-block;font-size:14px;font-weight:650;padding:5px 8px;border-radius:6px;background:#eef0f1;color:#41484c}.vital-ok{background:#e4f2e9;color:#205a36}.vital-attention{background:#fbe8e4;color:#85291e}.vital-stale{background:#fff2da;color:#704900}.snapshot-controls form{display:flex;gap:8px;align-items:end}.snapshot-controls form label{display:flex;flex-direction:column;gap:5px;font-size:14px}.snapshot-sections button{font-size:14px}.snapshot-table [hidden]{display:none}.snapshot-table .snapshot-secondary,.snapshot-unavailable{font-size:12px}.edit-summary .snapshot-card{font:inherit;text-align:left;cursor:pointer}.edit-summary .metric-label{font-size:14px}.snapshot-table thead th{font-size:14px}.snapshot-source-date{font-size:12px}.snapshot-date-note{font-size:14px}
.snapshot-table td.numeric,.snapshot-table thead th:not(:first-child){min-width:160px}.snapshot-table .snapshot-coverage{font-size:12px;min-width:136px;overflow-wrap:anywhere}.snapshot-table .snapshot-group-label button{white-space:normal}
.snapshot-table table{min-width:0}.snapshot-table .snapshot-coverage{width:160px}

/* Snapshot is a compact table; definitions and source diagnostics live in i. */
.vitals-table .vital-good{background:#e4f2e9;color:#205a36}.vitals-table .vital-issue{background:#fbe8e4;color:#85291e}.vitals-table .vital-review{background:#fff2da;color:#704900}.vitals-table .vital-unknown,.vitals-table .vital-na{background:#eef0f1;color:#41484c}
.vitals-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:4px 0 10px}.vitals-heading p{font-size:14px;margin:0}.vitals-heading button{font:inherit;font-size:13px;padding:6px 10px}.vitals-table .vital-state{font:inherit;font-size:13px;white-space:nowrap;border:1px solid transparent;cursor:pointer;min-height:32px;padding:5px 8px}.vital-good{background:#e4f2e9;color:#205a36}.vital-issue{background:#fbe8e4;color:#85291e}.vital-review{background:#fff2da;color:#704900}.vital-unknown,.vital-na{background:#eef0f1;color:#41484c}.vital-state:focus-visible{outline:2px solid #111;outline-offset:2px}.vital-dialog{background:#fff;color:#111;border:1px solid #dedfd7;border-radius:12px;max-width:640px;width:calc(100% - 32px);max-height:80dvh;overflow:auto;padding:20px;box-sizing:border-box}.vital-dialog::backdrop{background:#0005}.vital-dialog h3{font-size:18px;margin:0 0 16px}.vital-dialog h4{font-size:14px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:14px 0 6px}.vital-dialog p{font-size:14px;line-height:1.5;overflow-wrap:anywhere}.vital-dialog section+section{border-top:1px solid #dedfd7}.vital-dialog dl{display:grid;grid-template-columns:140px minmax(0,1fr);gap:6px 12px;font-size:13px;line-height:1.4}.vital-dialog dt{color:#586052}.vital-dialog dd{margin:0;overflow-wrap:anywhere}.vital-dialog form{position:sticky;bottom:-20px;background:#fff;padding:12px 0 0}.vital-dialog form button{font:inherit;padding:8px 12px;border:1px solid #111;border-radius:6px;background:#111;color:#fff;cursor:pointer}@media(max-width:600px){.vital-dialog{padding:16px}.vital-dialog dl{grid-template-columns:110px minmax(0,1fr)}.vitals-heading button{min-height:36px}}
.snapshot-view-tabs{display:flex;gap:4px}.snapshot-view-tabs button{border:0;background:none;font:inherit;font-weight:650;padding:8px 10px;cursor:pointer}.snapshot-view-tabs button[aria-pressed=true]{background:#19241e;color:#fff;border-radius:6px}.snapshot-controls{gap:10px}.snapshot-tabs[hidden]{display:none}.snapshot-tabs button{padding:8px 10px;font-size:14px}.snapshot-date{margin:10px 0 12px}.snapshot-sections{margin-bottom:10px;gap:4px}.snapshot-sections button{padding:6px 10px}.snapshot-table th,.snapshot-table td{padding:5px 12px;line-height:1.4}.snapshot-table thead th{padding-top:8px;padding-bottom:8px;vertical-align:middle}.snapshot-table td.numeric,.snapshot-table thead th:not(:first-child){min-width:112px}.snapshot-table td.numeric{font-size:14px}.snapshot-table th:first-child{min-width:190px;max-width:240px}.snapshot-table .cell-action,.snapshot-table .snapshot-group-label button{padding:3px 0;min-height:0;line-height:1.4;font-size:14px}.snapshot-table .snapshot-leader th:first-child button{font-size:14px}.snapshot-inline-percent{font-size:12px;color:#586052;white-space:nowrap}.snapshot-table .snapshot-column-label{justify-content:center;text-align:center}.snapshot-source-date{margin-top:2px;line-height:1.3}.snapshot-partial{margin:8px 0;font-size:12px}.snapshot-trend-controls{margin-bottom:12px}
@media(max-width:600px){.snapshot-controls{align-items:start;justify-content:start}.snapshot-view-tabs{width:100%}.snapshot-tabs{max-width:100%;flex-wrap:wrap}.snapshot-table th,.snapshot-table td{padding:5px 8px}.snapshot-table th:first-child{min-width:145px;max-width:180px}.snapshot-table td.numeric,.snapshot-table thead th:not(:first-child){min-width:105px}.snapshot-table .snapshot-group-label button{padding:6px 0}.snapshot-table [data-snapshot-depth="1"] th:first-child{padding-left:20px}.snapshot-table [data-snapshot-depth="2"] th:first-child{padding-left:30px}}

.vitals-swipe-hint{display:none}@media(max-width:600px){.vitals-swipe-hint{display:block;font-size:13px;color:#424b43;margin:4px 0 10px}}

/* Snapshot alignment (2026-10-06): first column left, every other header and cell centered. */
.snapshot-table thead th:not(:first-child),.snapshot-table td,.snapshot-table tfoot td{text-align:center}
.snapshot-table thead th:first-child,.snapshot-table tbody th,.snapshot-table tfoot th{text-align:left}
/* Vitals status glyphs: green check = fine, red !! = review or issue, yellow triangle = caution. */
.vitals-table .vital-state{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:44px;min-height:36px;background:none;font-weight:800}
.vitals-table .vital-good,.vital-dialog .vital-good,.vitals-legend .vital-good{background:none;color:#1f7a3d}.vitals-table .vital-issue,.vital-dialog .vital-issue,.vitals-legend .vital-issue{background:none;color:#c0281c}.vitals-table .vital-review,.vital-dialog .vital-review{background:none;color:var(--vital-warn,#D19A00)}.vitals-table .vital-unknown,.vital-dialog .vital-unknown,.vitals-legend .vital-unknown{background:none;color:#b87800}.vitals-table .vital-na,.vital-dialog .vital-na{background:none;color:#6a7167}
.vital-mix{font-size:13px;font-weight:650;line-height:1.25;white-space:nowrap}.vital-icon{display:block;flex:none}.vital-bang{font-size:20px;line-height:1;letter-spacing:-.04em}.vital-count{font-size:14px}.vital-na-text{font-size:13px;font-weight:600}
.vital-dialog .vital-state{display:inline-flex;align-items:center;gap:6px;padding:0;background:none;font-weight:700}
.vital-dialog .vital-summary{font-size:15px;font-weight:600;margin:6px 0}.vital-dialog .vital-items{list-style:none;margin:8px 0;padding:0;display:grid;gap:8px}.vital-dialog .vital-items li{display:flex;flex-direction:column;gap:2px;padding:8px 10px;border:1px solid #e6e8e0;border-radius:8px;font-size:14px;overflow-wrap:anywhere}.vital-dialog .vital-items li span{color:#424b43}.vital-dialog .vital-note{font-size:13px;color:#586052;margin:4px 0}.vital-dialog .vital-reason{margin:6px 0;color:#424b43}
.vital-dialog .vital-part{font-weight:400;white-space:nowrap}
/* Time-frame toggle keeps one fixed spot: the day picker lives on its own row. */
.snapshot-controls{justify-content:flex-start;align-items:center}.snapshot-controls [data-snapshot-retry]{margin-left:auto}.snapshot-controls .snapshot-day-row{flex:1 0 100%;order:5}.snapshot-controls .snapshot-view-tabs{flex:none;order:1}.snapshot-controls [data-snapshot-retry]{order:2}.snapshot-controls .snapshot-tabs{flex:1 0 100%;order:3;justify-content:center}
/* Snapshot toolbar: keep title/disclosure aligned and group view, period, refresh/date, then section tabs. */
html.ui2 #scorecard-view:not([hidden]){display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:12px;align-items:start}
html.ui2 #scorecard-view>.section-heading{grid-column:1;grid-row:1;margin:0 0 4px}
html.ui2 #scorecard-view>.about-data-row{grid-column:2;grid-row:1;align-self:end;margin:0 0 4px}
html.ui2 #scorecard-view>#scorecard-metric,html.ui2 #scorecard-view>#scorecard-history,html.ui2 #scorecard-view>#scorecard-table{grid-column:1/-1;min-width:0}
html.ui2 .snap-head{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:14px;row-gap:6px;align-items:center}
html.ui2 .snap-head>.snapshot-controls{grid-column:1;grid-row:1;display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}
html.ui2 .snap-head .snapshot-view-tabs{order:1;width:auto;flex:none}
html.ui2 .snap-head .snapshot-tabs{order:2;flex:0 0 auto;justify-content:flex-start;max-width:100%}
html.ui2 .snap-head .snapshot-day-row{order:3;flex:0 0 auto}
html.ui2 .snap-head>.snap-dateline{grid-column:2;grid-row:1;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0;min-height:44px}
html.ui2 .snap-head .snapshot-date{margin:0}
html.ui2 .snap-head .snap-refresh{margin-left:0}
html.ui2 .snap-head>.snapshot-date-note{grid-column:1/-1;grid-row:2;margin:0}
html.ui2 .snap-head>.snapshot-date-note:empty{display:none}
html.ui2 .snap-head>.snapshot-trend-controls{grid-column:1/-1;grid-row:2;margin:2px 0 8px}
html.ui2 .snap-head>.snapshot-sections{grid-column:1/-1;grid-row:3;margin:2px 0 8px}
@media(max-width:600px){
 html.ui2 #scorecard-view{grid-template-columns:minmax(0,1fr);row-gap:0}
 html.ui2 #scorecard-view>.section-heading,html.ui2 #scorecard-view>.about-data-row,html.ui2 #scorecard-view>#scorecard-metric,html.ui2 #scorecard-view>#scorecard-history,html.ui2 #scorecard-view>#scorecard-table{grid-column:1}
 html.ui2 #scorecard-view>.section-heading{margin-bottom:0}
 html.ui2 #scorecard-view>.about-data-row{grid-row:2;justify-self:start;margin:0 0 2px}
 html.ui2 .snap-head{grid-template-columns:minmax(0,1fr);row-gap:4px}
 html.ui2 .snap-head>.snapshot-controls{grid-column:1;grid-row:1;flex-wrap:wrap;gap:6px}
 html.ui2 .snap-head .snapshot-view-tabs{width:auto}
 html.ui2 .snap-head .snapshot-controls .snapshot-tabs{flex:0 0 auto;justify-content:flex-start}
 html.ui2 .snap-head .snapshot-controls .snapshot-day-row{flex:1 0 100%}
 html.ui2 .snap-head>.snap-dateline{grid-column:1;grid-row:2;justify-content:space-between;min-height:44px}
 html.ui2 .snap-head>.snapshot-date-note{grid-column:1;grid-row:3}
 html.ui2 .snap-head>.snapshot-date-note:empty{display:none}
 html.ui2 .snap-head>.snapshot-trend-controls{grid-column:1;grid-row:3;margin:2px 0 8px}
 html.ui2 .snap-head>.snapshot-sections{grid-column:1;grid-row:4;margin:2px 0 8px}
}
/* Row grey-out: everything outside the opened branch is greyed, first column included. */
.snapshot-table tbody tr.row-dim>th,.snapshot-table tbody tr.row-dim>td,.snapshot-table tbody tr.row-dim>th:first-child,.snapshot-table tbody tr.row-dim .cell-action,.snapshot-table tbody tr.row-dim button{background:#e9ebe5!important;color:#8b9187!important;box-shadow:none}
.report-grid>tbody>tr.row-dim>th,.report-grid>tbody>tr.row-dim>td{background:#e9ebe5!important;color:#8b9187!important}
.snapshot-table td.snapshot-hold{color:#704900;font-size:13px}
.vital-dialog .vital-more{margin:6px 0 4px}.vital-dialog .vital-more summary{font-size:13px;color:#586052;cursor:pointer}.vital-dialog [data-vital-plain]{font-size:15px}

.vitals-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px;padding:0;font-size:13px}.vitals-legend li{display:inline-flex;align-items:center;gap:6px}.vitals-legend .vital-state{display:inline-flex;align-items:center;justify-content:center;pointer-events:none}
.vitals-legend .vital-na{background:none;color:#41484c}
/* One-line Vitals key under the tabs (W1-C). A class, not a style attribute: the page CSP drops inline styles. */
.vitals-key{font-size:14px;line-height:1.4;color:#424b43;margin:4px 0 10px}
/* P18: red / yellow / green on the config-driven columns. The word is for screen readers and the shape is for anyone who can't tell the colors apart. */
.snapshot-table td.snapshot-rwg-green{background:#e7f3ed;color:#205744}.snapshot-table td.snapshot-rwg-yellow{background:#fbf0cf;color:#6a4800}.snapshot-table td.snapshot-rwg-red{background:#f9e6e8;color:#763239}
.snapshot-table td.snapshot-rwg::before{font-size:9px;margin-right:5px;vertical-align:middle}.snapshot-rwg-green::before{content:"\25CF"}.snapshot-rwg-yellow::before{content:"\25B2"}.snapshot-rwg-red::before{content:"\25A0"}
.snapshot-rwg-word{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.snapshot-table td.snapshot-rwg{position:relative}
.vitals-table .vital-state:has(.vital-due-time){flex-direction:column;align-items:center;gap:0;line-height:1.15}.vital-due-time{font-size:11px;font-weight:500}.recruiting-scorecards{margin:8px 0}.recruiting-scorecards [data-scorecard-host]{margin-top:8px}
.snapshot-coverage-badge{display:inline-block;margin-left:6px;padding:1px 6px;border:1px solid #c9ceb9;border-radius:10px;font-size:11px;font-weight:600;line-height:1.4;color:#586052;background:#f8f9f5;white-space:nowrap;cursor:help}.snapshot-coverage-badge:focus-visible{outline:2px solid #596d37;outline-offset:1px}
.today-asof{color:#5b6157;font-size:13px;margin:0 0 8px}.today-unavailable{margin:12px 0;color:#5b6157}.today-tile{display:block;text-align:left}
.today-host:not(:empty){margin:16px 0}.today-host .today-tile{display:block;width:100%;background:#fff;border:1px solid #dedfd7;border-radius:20px;padding:18px 22px}
.today-label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.today-value{display:block;font-size:32px;letter-spacing:-.03em}.today-line{margin:2px 0 0;font-size:14px}.today-tile .today-asof{margin:4px 0 0}
/* ==== grove-comms.css ==== */
/* All rules are scoped; the integration owner supplies fonts and shell spacing. */
.grove-comms{--gc-sand:#F1EBDF;--gc-paper:#FAF8F3;--gc-ink:#1C3A2D;--gc-moss:#1E6E5C;--gc-line:#D8CFBC;color:var(--gc-ink);font:400 16px/1.5 'Hanken Grotesk',system-ui,sans-serif;min-width:0}
.grove-comms *{box-sizing:border-box}
.grove-comms [hidden]{display:none!important}
.grove-comms :is(h2,h3,p,ol,ul){margin:0}
.grove-comms button,.grove-comms select{font:inherit;color:inherit;letter-spacing:normal;text-transform:none;box-shadow:none;cursor:pointer}
.grove-comms button{width:auto;margin:0}
.grove-comms :is(button,select):focus-visible{outline:3px solid var(--gc-moss);outline-offset:3px}
.grove-comms h2:focus{outline:2px solid var(--gc-moss);outline-offset:6px;border-radius:4px}
.grove-comms button:disabled{cursor:not-allowed;opacity:1;background:#ECE8DE;color:#59675E;border:1px solid var(--gc-line)}
.grove-comms .gc-preview{font:500 11px/1.5 'JetBrains Mono',monospace;color:#76500E;background:#F6EAD0;border:1px solid #D8CFBC;border-radius:12px;padding:9px 14px;margin-bottom:12px}
.grove-comms .gc-stamp{font:500 10px/1.6 'JetBrains Mono',monospace;letter-spacing:.045em;color:#5D6F65}
.grove-comms .gc-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.grove-comms .gc-meta,.grove-comms .gc-actions{display:flex;align-items:center;gap:10px 14px;flex-wrap:wrap}
.grove-comms .gc-button,.grove-comms .gc-acknowledged{display:inline-flex;justify-content:center;align-items:center;gap:8px;min-height:44px;padding:10px 18px;border-radius:999px;border:1px solid var(--gc-line);background:#fff;color:var(--gc-ink);font-size:14px;font-weight:700;line-height:1.3;text-decoration:none}
.grove-comms .gc-button:not(:disabled):hover{background:#E4EFEB}
.grove-comms .gc-ack{background:var(--gc-ink);color:var(--gc-paper);border-color:transparent}
.grove-comms .gc-ack:not(:disabled):hover{background:var(--gc-moss)}
.grove-comms .gc-acknowledged{background:#E4EFEB;color:var(--gc-moss);border:0}
.grove-comms .gc-chip{display:inline-flex;align-items:center;white-space:nowrap;border-radius:999px;padding:3px 9px;font-size:10px;line-height:1.3;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.grove-comms .gc-chip-announcement{background:var(--gc-ink);color:#DBED9B}
.grove-comms .gc-chip-urgent{background:#D7261E;color:#fff}
.grove-comms .gc-chip-action,.grove-comms .gc-day{background:#F6EAD0;color:#76500E}
.grove-comms .gc-chip-fyi{background:#E4EFEB;color:var(--gc-moss)}
.grove-comms .gc-day{font-size:11px;font-weight:700;line-height:1.3;padding:6px 11px;border-radius:999px;font-variant-numeric:tabular-nums lining-nums}
.grove-comms .gc-urgent{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#D7261E;color:#fff;border-radius:18px;padding:16px 24px;margin-bottom:16px}
.grove-comms .gc-urgent>div:first-child{display:flex;flex-direction:column;gap:3px}
.grove-comms .gc-urgent strong{font-size:18px;line-height:1.3}
.grove-comms .gc-urgent>div:first-child>span:last-child{font-size:13px}
.grove-comms .gc-urgent .gc-button{color:#fff;background:transparent;border:1px solid #fff}
.grove-comms .gc-urgent .gc-button:not(:disabled):hover{background:#fff;color:#A91E18}
.grove-comms .gc-urgent .gc-acknowledged{background:#fff;color:#A91E18}
.grove-comms .gc-urgent-state{background:#FBE9E7;color:#AD251D}
.grove-comms .gc-announcement{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:24px;overflow:hidden;background:var(--gc-ink);color:var(--gc-paper);border-radius:28px;box-shadow:0 24px 48px -32px #1c3a2d73}
.grove-comms .gc-announcement-copy{padding:24px 28px;display:flex;flex-direction:column;justify-content:center;gap:12px}
.grove-comms .gc-announcement .gc-chip-announcement{background:#D9962B;color:#12261D}
.grove-comms .gc-announcement .gc-stamp{color:#C9D5CC}
.grove-comms .gc-announcement h2{font:400 34px/1.1 'Fraunces',Georgia,serif;letter-spacing:-.025em;max-width:28ch;color:inherit}
.grove-comms .gc-announcement h2 em{color:#DBED9B}
.grove-comms .gc-announcement p{font-size:16px;max-width:62ch}
.grove-comms .gc-announcement-image{width:100%;height:100%;max-height:300px;min-height:240px;object-fit:cover;border-radius:999px 999px 0 0;align-self:end}
.grove-comms .gc-lime{background:#DBED9B;border-color:#DBED9B;color:#12261D}
.grove-comms .gc-dismiss{background:transparent;border-color:#A2B7A9;color:var(--gc-paper)}
.grove-comms .gc-dismiss:hover{color:#12261D}
.grove-comms .gc-split{display:grid;grid-template-columns:minmax(300px,380px) minmax(0,1fr);border:1px solid var(--gc-line);border-radius:28px;overflow:hidden;background:var(--gc-paper);box-shadow:0 1px 0 #1c3a2d0f,0 24px 48px -32px #1c3a2d73}
.grove-comms .gc-list{background:#F6F1E6;padding:20px 16px 24px 20px;min-width:0}
.grove-comms .gc-list-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 6px;margin-bottom:14px}
.grove-comms .gc-list-heading h2{font:700 11px/1.5 'Hanken Grotesk',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gc-moss)}
.grove-comms .gc-list-count{font-size:13px;color:#5D6F65}
.grove-comms .gc-filter select{min-height:44px;width:84px;border:1px solid var(--gc-line);border-radius:999px;background:var(--gc-paper);padding:6px 9px;font-size:16px}
.grove-comms .gc-rows{list-style:none;padding:0;display:flex;flex-direction:column;gap:6px}
.grove-comms .gc-row{display:grid;grid-template-columns:12px minmax(0,1fr);width:100%;gap:10px;text-align:left;align-items:start;border:1px solid transparent;border-radius:18px;background:transparent;min-height:88px;padding:12px 10px;color:var(--gc-ink)}
.grove-comms .gc-row:hover{background:#fff;border-color:var(--gc-line)}
.grove-comms .gc-row.gc-selected{background:#fff;border-color:var(--gc-ink);box-shadow:0 3px 10px #1c3a2d12}
.grove-comms .gc-row.gc-row-urgent{background:#FBE9E7;border-color:#EFBCB6}
.grove-comms .gc-row-urgent.gc-selected{border:2px solid #D7261E;padding:11px 9px}
.grove-comms .gc-row-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
.grove-comms .gc-row-meta{display:flex;gap:8px;align-items:center;min-width:0}
.grove-comms .gc-row-meta .gc-stamp{margin-left:auto;white-space:nowrap}
.grove-comms .gc-pin{font:500 9px/1.5 'JetBrains Mono',monospace;letter-spacing:.08em;text-transform:uppercase;color:#76500E}
.grove-comms .gc-row strong{font-size:14px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grove-comms .gc-row-sub{font-size:12px;color:#4E6255}
.grove-comms .gc-dot{width:9px;height:9px;background:var(--gc-moss);border:1px solid var(--gc-moss);border-radius:50%;margin-top:6px}
.grove-comms .gc-dot-read{background:transparent;border-color:#B8AF9D}
.grove-comms .gc-row-urgent .gc-dot{background:#D7261E;border-color:#D7261E}
.grove-comms .gc-row-urgent .gc-dot-read{background:transparent}
.grove-comms .gc-list-foot{padding:22px 6px 0;text-transform:uppercase}
.grove-comms .gc-reader{padding:26px 32px 24px;border-left:1px solid #E5DCC9;min-width:0}
.grove-comms .gc-reader article{display:flex;flex-direction:column;gap:18px}
.grove-comms .gc-sender{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap}
.grove-comms .gc-sender-info{display:flex;align-items:center;gap:14px;min-width:0}
.grove-comms .gc-sender-info>div{display:flex;flex-direction:column;gap:3px}
.grove-comms .gc-sender-info strong{font-size:15px}
.grove-comms .gc-avatar{width:48px;height:48px;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px dashed #D9962B;border-radius:50%;background:#F6EAD0;color:#76500E;font-size:12px;font-weight:700}
.grove-comms .gc-reader h2{font:400 38px/1.08 'Fraunces',Georgia,serif;letter-spacing:-.025em;max-width:25ch;color:var(--gc-ink);overflow-wrap:anywhere}
.grove-comms .gc-reader h2 em{color:var(--gc-moss)}
.grove-comms .gc-reader-urgent h2{color:#B5251D}
.grove-comms .gc-fixture{font:500 10px/1.5 'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:#76500E}
.grove-comms .gc-reader-image{display:block;border:1px solid var(--gc-line);border-radius:20px;height:240px;width:100%;object-fit:cover;object-position:50% 42%}
.grove-comms .gc-body{display:flex;flex-direction:column;gap:14px;max-width:68ch;font-size:16px;line-height:1.6}
.grove-comms .gc-store-actions{background:#E4EFEB;border-radius:20px;padding:18px 22px 20px}
.grove-comms .gc-store-actions h3{font:700 11px/1.5 'Hanken Grotesk',system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--gc-moss);margin-bottom:12px}
.grove-comms .gc-store-actions ol{padding-left:28px;display:flex;flex-direction:column;gap:10px;font-size:14px}
.grove-comms .gc-store-actions li{padding-left:6px}
.grove-comms .gc-store-actions li::marker{color:var(--gc-moss);font-weight:700}
.grove-comms .gc-reader-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;border-top:1px solid #E5DCC9;padding-top:16px}
.grove-comms .gc-read-count,.grove-comms .gc-read-state,.grove-comms .gc-backend-note{font-size:13px;color:#4E6255}
.grove-comms .gc-read-count strong{font-variant-numeric:tabular-nums lining-nums;font-family:'Hanken Grotesk',system-ui,sans-serif}
.grove-comms .gc-back{display:none}
.grove-comms .gc-empty{padding:20px 6px;color:#5D6F65}
.grove-comms .gc-unavailable{padding:28px;border:1px solid var(--gc-line);border-radius:28px;background:var(--gc-paper)}
.grove-comms .gc-unavailable h2{font:400 32px/1.2 'Fraunces',Georgia,serif;margin-bottom:12px}
.grove-comms .gc-sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes gc-notice-pulse{0%,100%{box-shadow:0 0 0 0 #d7261e00}50%{box-shadow:0 0 0 4px #d7261e33}}
.grove-comms .gc-pulse{animation:gc-notice-pulse 2.4s ease-in-out infinite}
.grove-comms[data-gc-motion="false"] .gc-pulse{animation:none}
@media(max-width:1100px){.grove-comms .gc-split{grid-template-columns:320px minmax(0,1fr)}.grove-comms .gc-reader{padding:24px}.grove-comms .gc-announcement{grid-template-columns:minmax(0,1fr) 240px}.grove-comms .gc-reader h2{font-size:32px}}
@media(max-width:760px){.grove-comms .gc-split{grid-template-columns:minmax(0,1fr)}.grove-comms .gc-reader{display:none;border-left:0}.grove-comms.gc-reader-open .gc-list{display:none}.grove-comms.gc-reader-open .gc-reader{display:block}.grove-comms .gc-back{display:inline-flex;margin-bottom:20px}.grove-comms .gc-urgent{align-items:start;flex-direction:column;padding:18px}.grove-comms .gc-announcement{grid-template-columns:minmax(0,1fr)}.grove-comms .gc-announcement-copy{padding:24px}.grove-comms .gc-announcement-image{height:200px;min-height:200px;width:calc(100% - 48px);max-width:360px;justify-self:center}.grove-comms .gc-announcement h2{font-size:30px}.grove-comms .gc-reader{padding:22px}.grove-comms .gc-reader h2{font-size:30px}.grove-comms .gc-reader-image{height:200px}.grove-comms .gc-sender-info .gc-stamp{font-size:10px}.grove-comms .gc-sender-info{gap:10px}.grove-comms .gc-store-actions{padding:18px}.grove-comms .gc-row-meta{gap:6px}}
@media(prefers-reduced-motion:reduce){.grove-comms *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
/* ==== grove.css ==== */
/* Approved Grove R3HomeV5. Figures deliberately use Hanken, never Fraunces. */
@font-face{font-family:'Hanken Grotesk';src:url('./assets/fonts/hanken-latin.woff2') format('woff2');font-weight:400 700;font-display:swap}
@font-face{font-family:Fraunces;src:url('./assets/fonts/fraunces-latin.woff2') format('woff2');font-weight:300 500;font-display:swap}
@font-face{font-family:'JetBrains Mono';src:url('./assets/fonts/jetbrains-latin.woff2') format('woff2');font-weight:400 500;font-display:swap}
:root{--bg:#F1EBDF;--surface:#FAF8F3;--surface-2:#E4EFEB;--ink:#1C3A2D;--ink-2:#1C3A2D;--muted:#53665B;--line:#D8CFBC;--line-2:#C6BBA6;--ok:#1E6E5C;--ok-bg:#E4EFEB;--warn:#835209;--warn-bg:#F6EAD0;--bad:#D7261E;--bad-bg:#F5E2D8;--font:'Hanken Grotesk',Arial,sans-serif;--mono:'Hanken Grotesk',Arial,sans-serif;--display:Fraunces,Georgia,serif;--stamp:'JetBrains Mono',monospace;--studio-green:#1C3A2D;--studio-berry:#1C3A2D;--studio-lime:#F6EAD0}
body{background:var(--bg);color:var(--ink);font-family:var(--font)}
h1,h2,h3{font-family:var(--display);font-weight:450;letter-spacing:-.025em}button,input,select{font-family:var(--font)}
.metric-value,.hero-stat-value,.numeric,.row-metric b,.detail-summary strong,.page-card-value{font-family:var(--font);font-variant-numeric:tabular-nums lining-nums;font-weight:700}
button,a,summary,input,select{touch-action:manipulation}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #1E6E5C;outline-offset:3px}
.top{max-width:1440px;margin:auto;height:auto;min-height:72px;background:transparent;border:0;padding:16px 32px;position:relative;flex-wrap:wrap;gap:16px}.wordmark{gap:10px}.wordmark img{width:114px;height:auto}.wordmark span{font:10px var(--stamp);letter-spacing:.16em;border-left:1px solid var(--line);padding-left:12px;color:var(--muted)}
main{max-width:1440px;margin:auto;padding:0 32px 32px}.header-actions{gap:8px;flex-wrap:wrap}.quiet,.admin-menu>summary{border-radius:999px;background:var(--surface);border-color:var(--line);color:var(--ink);min-height:44px}.primary,.segmented button[aria-pressed=true]{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.app-nav{position:static;border:1px solid var(--line);background:var(--surface);border-radius:999px;display:flex;gap:3px;padding:3px;margin:0;overflow:visible;flex-wrap:wrap}.nav-tab{border:0;border-radius:999px;min-height:40px;padding:8px 16px;font-size:14px;font-weight:600;color:var(--ink);background:transparent}.nav-tab.active{background:var(--ink);color:var(--surface)}.transfer-nav span{background:var(--warn-bg);color:var(--warn);font-size:10px}.grove-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 10px}.grove-toolbar .app-nav{margin-left:auto}
.page-heading{padding:12px 0 22px;align-items:center;gap:16px}.page-heading h1{font-size:clamp(25px,2.6vw,34px);line-height:1.2;margin:0 0 6px}.page-heading .eyebrow{display:none}#period-label{font:11px/1.6 var(--stamp);text-transform:uppercase;letter-spacing:.06em;margin:0}.studio-heading-crop{display:none}#refresh{font-size:12px;margin-left:auto}.filter-disclosure>summary{border-radius:999px;background:var(--surface);min-height:44px}.filter-content{background:var(--surface);border-color:var(--line)}#home-filters{margin:0}.grove-controls{display:flex;align-items:start;gap:10px;flex-wrap:wrap;margin:0 0 8px}.grove-controls #home-filters{flex:1}.grove-controls .filter-content{max-width:900px}.grove-intro-gap{color:var(--ok);font-family:var(--font);font-weight:700}.grove-intro-gap.negative{color:#A52920}
.studio-intro,.studio-description,.studio-featured{display:none}.priority-rules{margin:12px 0;color:var(--muted);font-size:12px}.priority-rules>summary{min-height:44px;padding:10px 0}#operating-areas{display:flex;flex-direction:column}.priority-rules{order:2}.studio-grid{order:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 12px;align-items:stretch}
.studio-card{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:28px;min-width:0;padding:0;background:var(--surface);color:var(--ink);overflow:hidden;box-shadow:0 1px 0 #1c3a2d0f,0 24px 48px -32px #1c3a2d55;transition:transform .2s ease;align-self:stretch}.studio-card-body{padding:22px;display:flex;flex-direction:column;min-width:0}.studio-card h2{font-size:25px;line-height:1.13;margin:0 0 18px;max-width:calc(100% - 116px);min-height:56px;font-weight:450}.studio-kicker{font-size:11px;font-weight:700;letter-spacing:.15em;margin:0 0 6px;padding-right:106px;line-height:1.5}.studio-card-photo{position:absolute;right:22px;top:22px;width:118px;height:156px;border-radius:18px;object-fit:cover;object-position:50% 50%;border:1px solid #1c3a2d20}.studio-sales .studio-card-photo{object-position:50% 45%}.studio-sales{background:#1C3A2D;border-color:#1C3A2D;color:#FAF8F3}.studio-sales .studio-kicker{color:#DBED9B}.studio-labor{background:#F5E2D8;color:#1C3A2D;border-color:#E8C4B3}.studio-labor .studio-kicker{color:#9A4626}.studio-schedule{background:#E4EFEB;color:#1C3A2D;border-color:#D3DFD7}.studio-loyalty{background:#F6EAD0;border-color:#E8D6B0}.studio-loyalty .studio-kicker{color:#835209}.studio-people{background:#fff;color:#1C3A2D}.studio-food .studio-kicker,.studio-people .studio-kicker,.studio-schedule .studio-kicker{color:#1E6E5C}
.grove-hero{padding-right:120px;min-height:80px;margin:0 0 10px}.grove-hero .metric-value{font-size:clamp(30px,3vw,42px);line-height:1.08;letter-spacing:-.04em}.grove-hero-label{font-size:12px;font-weight:600;margin-top:4px;display:block}.studio-metric{padding:0;background:none!important;border:0;border-radius:0;gap:5px;color:inherit;text-align:left}.studio-metric .metric-label{font-size:10px;letter-spacing:.08em;line-height:1.3;margin:0;font-weight:700}.studio-metric .metric-value{font:700 17px/1.2 var(--font);letter-spacing:-.03em;overflow-wrap:anywhere}.studio-metric p{font-size:11px;line-height:1.45;opacity:1;color:inherit}.studio-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;border-top:1px solid #1c3a2d26;padding-top:12px;margin:6px 0 0}.studio-metrics .studio-metric{padding:0;border:0}.studio-sales .studio-metrics{border-color:#faf8f333}.studio-sales .negative{color:#FFD2C9}.grove-growth{margin-top:10px}.grove-growth .studio-metrics{grid-template-columns:1fr 1fr;padding-top:10px}.grove-growth .snapshot-coverage{font-size:11px;line-height:1.45;margin-top:8px;color:inherit}.grove-growth .metric-value{font-size:17px}
.grove-door{position:absolute;right:17px;top:143px;display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;border-radius:50%;background:#1C3A2D;color:#FAF8F3;border:3px solid var(--surface);font-size:21px;text-decoration:none;z-index:1}.studio-sales .grove-door{background:#DBED9B;color:#1C3A2D;border-color:#1C3A2D}.grove-door:hover{transform:rotate(8deg)}.grove-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;margin-top:auto;padding-top:14px;font-size:11px}.grove-state{display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 10px;background:#fff;color:#1C3A2D;font-weight:700}.studio-sales .grove-state{background:#DBED9B}.grove-state[data-state=act]{background:#D7261E;color:white}.grove-state[data-state=watch]{background:#fff;color:#835209}.grove-state[data-state=unavailable]{background:#fff;color:#53665B}
/* P29-05/P29-20: Partial is a grey chip, Needs a look is an amber chip like the other tiles. */
.grove-state[data-state=partial]{background:#E4E7E3;color:#44564C}
.grove-state[data-state=watch]{background:#F6E3B4;color:#7A4B00}
.grove-source{font:10px/1.6 var(--stamp);margin:10px 0 0;letter-spacing:0;color:inherit;opacity:.85}.grove-source-detail{font-size:12px;margin-top:8px}.grove-source-detail>summary{min-height:44px;padding:10px 0;cursor:pointer}.grove-source-detail .history-note,.grove-source-detail .studio-note{display:block!important;-webkit-line-clamp:unset;overflow:visible;font-size:12px;line-height:1.6;margin:6px 0}.grove-source-detail button{font-size:12px}.studio-open,.studio-inline{border-radius:0;min-height:44px;padding:7px 0;background:none;border:0;color:inherit;margin:0;font-size:12px;line-height:1.5;font-weight:600;text-decoration:underline;text-underline-offset:3px}.studio-inline strong{font:700 17px var(--font)}
.studio-labor .labor-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0}.studio-labor .metric-cell{min-height:0;background:none;border:0;border-radius:0;padding:0;color:inherit;box-shadow:none}.studio-labor .metric-cell:first-child{grid-column:1/-1;background:none;color:inherit;padding:0 120px 12px 0;min-height:80px;margin-bottom:4px;border-bottom:1px solid #1c3a2d26}.studio-labor .metric-cell:first-child .metric-value{font:700 42px/1.1 var(--font)}.studio-labor .metric-cell .metric-value{font:700 17px/1.2 var(--font)}.studio-labor .metric-cell .muted{font-size:10px;color:inherit}.studio-labor .metric-cell .metric-label{font-size:10px;margin:0 0 5px;letter-spacing:.06em}.studio-labor .history-note{margin:6px 0}.grove-labor-splh{font-size:12px;margin:8px 0}.grove-labor-splh p{margin:0;line-height:1.5}
.studio-schedule .edit-summary{font-size:12px}.studio-schedule .notice{font-size:12px;padding:8px}
.recruiting-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0}.recruiting-counts .studio-metric:first-child{grid-column:1/-1;padding:0 120px 12px 0;min-height:80px;border-bottom:1px solid #1c3a2d26}.recruiting-counts .studio-metric:first-child .metric-value{font-size:42px}.recruiting-freshness{font:10px/1.6 var(--stamp);color:inherit}
.priority-critical{border:3px solid #8E1B14}.priority-critical .studio-card-body{padding:20px}.priority-reason{font-size:10px;line-height:1.5;border-radius:999px;padding:5px 10px;background:#8E1B14;color:#fff;margin:0 0 8px;max-width:calc(100% - 118px)}.priority-critical .grove-priority-label{display:block}.grove-priority-label{display:none;font-size:10px;font-weight:700;letter-spacing:.06em;margin:0 0 8px;color:#8E1B14}.priority-approaching .grove-priority-label{display:block;color:#B4443B}.priority-critical .metric-value.negative{color:#8E1B14}.grove-alert{display:flex;align-items:center;gap:14px;flex-wrap:wrap;background:#8E1B14;border-radius:24px;color:white;padding:14px 18px;margin:10px 0;box-shadow:0 12px 30px -18px #8E1B14}.grove-alert p{flex:1;min-width:180px;margin:0;font-size:14px;font-weight:600}.grove-alert strong{font:700 10px var(--font);letter-spacing:.12em;border-radius:999px;padding:5px 10px;background:#fff;color:#8E1B14}.grove-alert button{background:#fff;border:0;color:#A52920;border-radius:999px;min-height:44px;font-weight:700}.grove-alert small{flex-basis:100%;font-size:11px}
.grove-quick-totals{margin:12px 0 22px;border-top:1px solid var(--line)}.grove-quick-totals>summary{font-size:13px;min-height:44px;padding:12px 0;cursor:pointer}#home-summary{margin:0;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--surface);border-color:var(--line)}#home-summary>.studio-metric{padding:16px}#home-summary .metric-value{font-size:24px}#home-summary p{display:block!important}#home-view>.section-heading{margin-top:20px}.priority-list{border:1px solid var(--line);border-radius:24px;background:var(--surface);padding:0 18px}.priority-row{gap:16px}.row-open{min-height:44px}.source-coverage{margin-top:18px}.portal-links{margin-top:24px}footer{font:10px var(--stamp);border-color:var(--line)}#dashboard-message:empty{display:none}#dashboard-message{font-size:14px;background:var(--surface);border-radius:16px;padding:12px 16px}.login{background:var(--surface);border-color:var(--line)}.login h1{font-family:var(--display);font-weight:450}.metric-info-group-button{background:transparent;color:inherit}.snapshot-secondary{color:inherit}.grove-fixture-label{font:11px var(--stamp);background:#DBED9B;color:#1C3A2D;border-radius:999px;padding:8px 12px;display:inline-block}

@media(min-width:1101px){.studio-card:hover{transform:translateY(-2px)}}
@media(max-width:1100px){.studio-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.grove-toolbar .app-nav{margin-left:0}.grove-toolbar{justify-content:space-between}.studio-card h2{font-size:25px}}
@media(max-width:640px){.top{padding:16px 18px;gap:10px;min-height:64px}.wordmark img{width:100px}.wordmark span{font-size:9px}.header-actions{margin-left:auto}.admin-menu>summary{max-width:120px;font-size:12px}main{padding:0 18px 24px}.grove-toolbar{gap:8px}.app-nav{width:100%;border-radius:22px;gap:0}.nav-tab{padding:8px 12px;font-size:12px;min-height:44px}.page-heading{display:flex;flex-wrap:wrap;padding:12px 0 18px}.page-heading h1{font-size:27px}#refresh{margin:0;font-size:12px}#period-label{font-size:10px}.studio-grid{grid-template-columns:1fr;gap:16px}.studio-card-body{padding:22px}.studio-card h2{font-size:27px;max-width:calc(100% - 125px);min-height:62px;margin-bottom:12px}.studio-card-photo{width:122px;height:160px;right:22px;top:22px}.studio-kicker{font-size:10px;padding-right:118px}.grove-hero{padding-right:125px}.studio-labor .labor-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.studio-labor .metric-cell:not(:first-child){display:block}.studio-labor .metric-cell:first-child{grid-column:1/-1}.studio-labor .metric-cell:first-child .metric-value,.grove-hero .metric-value,.recruiting-counts .studio-metric:first-child .metric-value{font-size:38px}.studio-card .studio-metric .metric-label{font-size:10px}.grove-growth .metric-value{font-size:16px}.studio-people .studio-open{width:auto;margin:0}.grove-door{top:147px}.priority-list{padding:0 14px}.priority-row{grid-template-columns:minmax(0,1fr) auto}.row-name{overflow-wrap:anywhere}#home-summary{grid-template-columns:1fr}#home-summary>.studio-metric{display:flex}.grove-alert{gap:10px;padding:16px}.grove-alert p{font-size:14px}.grove-alert small{line-height:1.5}.grove-source{font-size:10px}.portal-links{gap:12px}.studio-metrics{gap:10px}.studio-metric .metric-value{font-size:16px}}

/* Hero sizing is scoped more tightly than the existing metric rule. */
.studio-card .grove-hero .metric-value{font-size:42px;font-weight:700}.grove-goal-line{font-size:12px;line-height:1.5;margin:8px 0}.studio-card .snapshot-coverage{display:block;line-height:1.5;color:inherit;font-size:11px}.studio-card .grove-source{display:block;-webkit-line-clamp:unset;overflow:visible}.studio-card .metric-value{font-variant-numeric:tabular-nums lining-nums}.studio-sales .metric-info-group-button{color:#FAF8F3;border-color:#FAF8F3}.grove-local-ack:disabled{opacity:1;background:#A52920;color:#fff}.grove-alert button:disabled{opacity:1;color:#A52920}.priority-critical .grove-priority-label{color:inherit}.studio-card .priority-reason{font-size:10px}
@media(max-width:640px){.studio-card .grove-hero .metric-value{font-size:38px}}

.studio-card .studio-metric p.metric-info-source{display:none!important}.studio-card .snapshot-coverage.metric-info-source{display:none!important}.grove-alert small{opacity:.9}.studio-card .grove-source-detail{margin-top:4px}.studio-card .studio-note{font-size:11px;line-height:1.5}.studio-card .history-note{font-size:11px;line-height:1.5}.studio-card h2{margin-bottom:14px}.studio-card .grove-footer{padding-top:12px}.studio-card .priority-reason{margin:0 0 8px}.studio-sales .grove-growth .snapshot-coverage{font-size:10px}

.grove-toolbar{justify-content:flex-end;margin-bottom:0}.nav-tab,.text-link,.quiet.compact{min-height:44px}.grove-comms-strip{display:grid;grid-template-columns:250px 1fr auto;align-items:center;gap:28px;border:1px solid var(--line);background:var(--surface);border-radius:28px;padding:22px 26px;margin:4px 0 16px}.grove-comms-strip .studio-kicker{padding:0;font-size:10px}.grove-comms-strip h2{font-size:25px;margin:4px 0}.grove-comms-strip p{margin:0;font-size:13px;color:var(--muted)}.grove-comms-strip button:disabled{font-size:12px;border-radius:999px;background:#EEE8DC;color:#53665B;opacity:1}.grove-regions-attention{display:grid;grid-template-columns:1fr 1.2fr;background:var(--surface);border:1px solid var(--line);border-radius:28px;margin:0 0 20px;padding:24px;gap:24px}.grove-regions-attention h2{font-size:24px;margin:0}.grove-needs-look{border-left:1px solid var(--line);padding-left:24px;min-width:0}.grove-needs-look .priority-list{padding:0;border:0;border-radius:0;background:none}.grove-needs-look .priority-row{grid-template-columns:minmax(0,1fr) auto;gap:10px;min-height:64px}.grove-needs-look .row-metric:nth-of-type(n+3){display:none}.grove-needs-look .row-metric:nth-of-type(2){grid-column:2;grid-row:1}.grove-needs-look .row-open{grid-column:2;grid-row:2;font-size:11px;min-height:44px}.grove-needs-look .row-name{font-size:13px}.grove-needs-look .row-name small{font-size:11px}.grove-needs-look .section-heading{align-items:center;gap:8px}.grove-needs-look .text-link{font-size:11px;white-space:nowrap}.grove-rings{width:110px;flex:none}.grove-rings svg{width:100%;display:block}.grove-rings circle{fill:none;stroke:var(--line);stroke-width:6}.grove-rings circle:nth-child(1){stroke:#1C3A2D}.grove-rings circle:nth-child(2){stroke:#1E6E5C}.grove-rings circle:nth-child(3){stroke:#C05B33}.grove-rings circle:nth-child(4){stroke:#D9962B}#grove-regions{display:flex;align-items:center;gap:22px;min-width:0}#grove-regions-values{display:flex;gap:16px;flex-wrap:wrap;margin-top:12px}#grove-regions-values>div,#grove-regions-values>button{padding:0;border:0;min-height:44px;text-align:left;background:none;font-size:13px}#grove-regions-values .metric-label{font-size:9px;margin:0 0 4px}#grove-regions-values .metric-value{font-size:22px}#grove-regions-values .grove-source{display:block;font-size:9px}.grove-region-note{flex-basis:100%;font-size:11px;line-height:1.5;color:var(--muted);margin:0}.grove-goal-line strong{font-weight:700;color:#835209}.grove-alert button:disabled{cursor:not-allowed}.studio-card .metric-info-group-button{min-width:44px;min-height:44px;border-radius:50%;font-size:12px}
@media(max-width:850px){.grove-comms-strip{grid-template-columns:1fr 1fr}.grove-comms-strip>button{grid-column:1/-1;justify-self:start}.grove-regions-attention{grid-template-columns:1fr}.grove-needs-look{border-left:0;border-top:1px solid var(--line);padding:20px 0 0}.grove-rings{width:100px}}
@media(max-width:640px){.grove-comms-strip{grid-template-columns:1fr;gap:12px;padding:22px}.grove-regions-attention{padding:22px}.grove-rings{width:80px}#grove-regions{gap:16px}.grove-needs-look .priority-row{display:grid;grid-template-columns:minmax(0,1fr) auto}.grove-needs-look .row-metric:nth-of-type(2){display:block;grid-column:2;grid-row:1}.grove-needs-look .row-metric span{font-size:10px}.grove-needs-look .row-open{grid-row:2}.top .app-nav{border-radius:22px}.grove-comms-strip h2{font-size:24px}}

/* The approved Home is a compact six-theme overview; full definitions open via i. */
.studio-grid{row-gap:16px}.studio-card h2{min-height:46px;margin-bottom:10px}.studio-card-body{padding:20px}.studio-card-photo{right:20px;top:20px;width:116px;height:146px}.grove-door{top:130px}.studio-kicker{margin-bottom:4px}.grove-hero{min-height:64px;margin-bottom:8px}.studio-card .grove-hero .metric-value{font-size:40px}.studio-labor .metric-cell:first-child,.recruiting-counts .studio-metric:first-child{min-height:64px;padding-bottom:10px}.studio-card .grove-source-detail>summary{min-height:44px;padding:8px 0;font-size:11px}.studio-card .grove-source{margin-top:8px;font-size:9px}.studio-card .grove-footer{padding-top:8px}.studio-card .priority-reason{display:none}.studio-card .grove-priority-label{font-size:10px;margin-bottom:6px}.priority-critical .studio-card-body{padding:18px}.studio-sales .grove-growth{margin-top:8px}.studio-sales .grove-growth .snapshot-coverage.metric-info-source{display:none!important}.studio-card .grove-goal-line{font-size:11px;margin:6px 0}.priority-critical.studio-sales .grove-hero>.metric-value{color:#FFAEA7}.priority-critical .grove-local-ack{font-size:10px}.grove-regions-attention{padding:22px}.grove-rings{width:100px}.grove-needs-look .priority-row{min-height:58px;padding:10px 0}.grove-needs-look .row-open{grid-row:1 / span 2}.grove-needs-look .row-metric:nth-of-type(2){grid-column:1;grid-row:2}.grove-toolbar{height:44px}.grove-fixture-label{margin:0 0 8px}.page-heading{padding-bottom:14px}.studio-card .metric-info-group-button{position:absolute;right:139px;top:62px}.studio-card h2{padding-right:20px;max-width:calc(100% - 115px)}
@media(max-width:640px){.studio-card h2{min-height:58px;font-size:27px}.studio-card-body{padding:22px}.studio-card-photo{right:22px;top:22px;width:122px;height:160px}.grove-door{top:147px}.studio-card .grove-hero .metric-value{font-size:38px}.studio-card .grove-source{font-size:10px}.grove-needs-look .row-metric:nth-of-type(2){grid-column:1;grid-row:2}.studio-card .metric-info-group-button{right:145px;top:60px}.grove-regions-attention{padding:22px}.studio-card .grove-source-detail>summary{font-size:12px}}

/* Wide Home follows the compact two-row board; source warnings stay visible. */
@media(min-width:1101px){
 .studio-card-body{padding:18px}.priority-critical .studio-card-body{padding:16px}
 .studio-card h2{min-height:29px;margin-bottom:10px;font-size:24px}.studio-kicker{font-size:10px}
 .studio-card-photo{top:18px;right:18px;width:110px;height:138px}.grove-door{top:116px;right:14px}.studio-card .metric-info-group-button{top:43px;right:132px}
 .studio-metrics{gap:8px;padding-top:8px;margin-top:4px}.grove-growth{margin-top:4px}.grove-growth .studio-metrics{padding-top:8px}
 .studio-card .grove-hero{min-height:60px;margin-bottom:4px}.studio-card .grove-hero .metric-value{font-size:38px}
 .studio-labor .metric-cell:first-child,.recruiting-counts .studio-metric:first-child{padding-bottom:8px;min-height:60px}
 .studio-labor .metric-cell:first-child .metric-value,.recruiting-counts .studio-metric:first-child .metric-value{font-size:38px}
 .studio-labor .metric-cell .muted{font-size:9px;line-height:1.3;margin:0}
 .studio-card .grove-source{margin-top:4px}.studio-card .grove-footer{padding-top:4px}.studio-card .grove-source-detail{margin-top:0}
 .grove-goal-line{font-size:10px!important;line-height:1.4;margin:4px 0!important}.grove-labor-splh{margin:4px 0}
 
 .priority-rules{margin:0}.grove-comms-strip{padding:16px 24px}.grove-regions-attention{padding:18px}.portal-links{margin-top:12px}.source-coverage{margin-top:8px}
}

/* October 5 demo wave one: retain source notes behind information controls. */
.login{background:transparent;border:0;box-shadow:none}body:has(#dashboard[hidden])>footer{display:none}
.dashboard-loader{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;font-size:16px}.dashboard-loader[hidden]{display:none}
.loading-circle{width:36px;height:36px;border:3px solid var(--line);border-top-color:var(--ink);border-radius:50%;animation:m-spin .8s linear infinite}
.home-loading>.page-heading,.home-loading>.grove-controls,.home-loading>.view-panel,.home-loading>#grove-alert-host,.home-loading>#communications-notices,.home-loading>.portal-links,.home-loading>#report-navigation{display:none!important}
.home-loading #dashboard-message{display:none}.page-heading h1 .sales-headline-number{font-size:calc(1em + 4px)}
.studio-card .metric-info-group-button{min-width:22px;min-height:22px;width:22px;height:22px;font-size:11px;margin:2px;top:48px}.metric-info-button{width:18px;height:18px;min-height:18px;font-size:12px}
.studio-card .grove-source,.studio-card .grove-goal-line,.studio-card .grove-footer>span:not([data-grove-state]),.studio-card .grove-source-detail,.studio-card .history-note,.studio-card .studio-note,.studio-card .recruiting-freshness,.studio-card .snapshot-coverage,.studio-card .studio-metric p,.studio-card .metric-cell>.muted{display:none!important}
.studio-card .grove-hero{border:0;background:none;padding-left:0;text-align:left;cursor:pointer;width:100%}.studio-sales .grove-hero{color:inherit}.studio-sales .grove-hero .negative{color:#FFAEA7}
.growth-row-heading{font-size:12px;font-weight:600;margin:6px 0}.studio-sales .grove-growth .studio-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}.studio-sales .grove-growth .metric-value{font-size:20px}.studio-sales .grove-growth .metric-label{font-size:12px}.studio-sales .grove-growth .metric-info-button{display:inline-flex;color:inherit}
.studio-labor .labor-summary{grid-template-columns:1fr}.studio-labor .metric-cell:first-child{grid-column:1/-1}.studio-labor .metric-cell:not(:first-child){display:block}.grove-labor-splh .splh-tile,.grove-labor-splh .hours-tile{display:flex;flex-direction:column;align-items:flex-start;width:100%;border:1px solid currentColor;border-radius:12px;padding:12px;margin-top:10px}.grove-labor-splh .metric-value{font-size:28px}
.recruiting-counts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.recruiting-counts>#recruiting-aged-action{grid-column:1/-1}.recruiting-counts>.studio-metric:not(:first-child){grid-column:auto;min-height:0;padding:8px 0}.recruiting-counts>.studio-metric:not(:first-child) .metric-value{font-size:22px!important}

@media(max-width:640px){.studio-card .metric-info-group-button{top:62px}.studio-sales .grove-growth .metric-value{font-size:18px}.studio-sales .grove-growth .metric-label{font-size:12px}}
@media(prefers-reduced-motion:reduce){.loading-circle{width:auto;height:auto;border:0;border-radius:0}.loading-circle::after{content:"Loading…";color:var(--muted);font-size:14px}}
.studio-card .metric-info-group-button,.metric-info-button{min-width:24px;min-height:24px;width:24px;height:24px;border:0;position:relative}.studio-card .metric-info-group-button{position:absolute}
.metric-info-button::before{content:'';position:absolute;inset:2px;border:1px solid currentColor;border-radius:50%;pointer-events:none}
@media(pointer:coarse){.studio-card .metric-info-group-button,.metric-info-button{min-width:44px;min-height:44px;width:44px;height:44px}.metric-info-button::before{inset:12px}}
.source-info-toggle{width:24px!important;height:24px!important;min-height:24px!important;font-size:12px!important}@media(pointer:coarse){.source-info-toggle{width:44px!important;height:44px!important;min-height:44px!important}}


/* Keep comparison coverage readable and each Schedule date beside its group. */
#sales-growth-context [data-growth-comparison-context]{display:block;-webkit-line-clamp:unset;overflow:visible}


/* Schedule tile (2026-10-06): one big number (worked vs scheduled hours) + three small edit counts, shorter row.
   Fine print is never shown by default; it is authored as hidden [data-about-source] notes and opened from "About this data". */
#schedule-summary{display:flex;flex-direction:column}
.studio-schedule .schedule-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;border-top:0;padding-top:0;margin:0}
.studio-schedule .schedule-metrics>.grove-hero{grid-column:1/-1;width:100%;min-height:0;margin:0;padding:0 120px 8px 0;border-bottom:1px solid #1c3a2d26}
.studio-schedule .schedule-metrics>.studio-metric:not(.grove-hero){padding-top:2px;min-width:0}
.studio-schedule .schedule-metrics>.studio-metric:not(.grove-hero) .metric-value{font-size:22px}
.studio-schedule .schedule-hero-hours{display:block;font-size:11px;line-height:1.4;margin-top:2px}
.studio-schedule .grove-state[data-state=good]{background:#CFE8D5;color:#155C33}
[data-about-source]{display:none!important}
#schedule-summary>[data-schedule-planning-window]{order:0}#schedule-summary>[data-schedule-activity-window]{order:2}#schedule-summary>.schedule-edit-row{order:3}

/* Threshold tones (Eitan 2026-10-06). Rules live in thresholds.js; with none configured nothing below ever applies.
   Approaching = light red with a gentle flash; critical = solid dark red, no motion. */
.priority-approaching{border:3px solid #F0A8A2;box-shadow:0 0 0 5px #F0A8A266;animation:grove-approach 2.2s ease-in-out infinite}
.priority-approaching .priority-reason{background:#F8CFCB;color:#7A1710}
@keyframes grove-approach{0%,100%{border-color:#F0A8A2;box-shadow:0 0 0 5px #F0A8A266}50%{border-color:#F8D6D2;box-shadow:0 0 0 5px #F0A8A200}}
@media(prefers-reduced-motion:reduce){.priority-approaching{animation:none}}
.priority-critical{box-shadow:0 0 0 5px #8E1B14}
/* Act Now: banner until acted on, inline drop-down details, then a small red circle with a minus. */
.grove-alert-open{display:block;border-radius:24px;padding:16px 20px}
.grove-alert-head{display:flex;align-items:center;gap:14px}.grove-alert-head p{flex:1;margin:0}
.grove-alert-minus,.grove-alert-circle{width:44px;min-width:44px;height:44px;padding:0;border-radius:50%;font-size:24px;line-height:1;font-weight:700;display:grid;place-items:center;cursor:pointer}
.grove-alert-circle{background:#8E1B14;color:#fff;border:2px solid #fff;box-shadow:0 0 0 2px #8E1B14;margin:10px 0}
.grove-alert-list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:10px}
.grove-alert-list li{background:#ffffff1f;border-radius:16px;padding:12px 14px}.grove-alert-list h3{margin:0 0 4px;font-size:15px}.grove-alert-list p{margin:0 0 8px;font-size:14px;font-weight:600}
.grove-alert-open .grove-alert-report,.grove-alert-open [data-act-ack]{padding:0 16px}
.grove-alert-foot{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:12px}
.grove-alert>strong{white-space:nowrap}
/* Tables size to their content and sit at the left (Eitan 2026-10-06). A table wider than the page still fills the width and scrolls inside its frame. */
.detail-table,.snapshot-table,.report-grid-wrap{width:fit-content;max-width:100%;margin-right:auto}
.detail-table table,.snapshot-table table,.report-grid-wrap table{width:auto;min-width:0}
.studio-card[hidden]{display:none!important}
.neg-red{color:#a1261c}svg .neg-red,svg text.neg-red{fill:#a1261c}.studio-sales .neg-red{color:#FFAEA7}
.dup-title{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
/* A page that carries its own Filters button hides the dashboard-level one so each page shows exactly one. */
body:has(.page-view:not([hidden]) :is(.filter-disclosure,.filter-icon,.schedule-filters-toggle,.filter-button)) .grove-controls{display:none}

/* D15 status words: Good / Needs a look / Not available yet / On hold, plus a neutral fact chip (e.g. "Below budget" when no rule is on). */
.grove-state[data-state=good]{background:#CFE8D5;color:#155C33}.grove-state[data-state=hold]{background:#F6E3B4;color:#7A4B00}.grove-state[data-state=info]{background:#fff;color:#53665B}
.studio-sales .grove-state[data-state=info]{background:#DBED9B}
.grove-toolbar[hidden]{display:none}
.grove-controls #refresh{flex:0 0 auto;margin:0;min-height:44px}
#refresh[hidden]{display:none}
/* Phone: permitted Warehouse DEMO navigation wraps with the other tabs; Reload and Filters share a row. */
@media(max-width:640px){.grove-controls{flex-wrap:nowrap;align-items:flex-start}.grove-controls #home-filters{flex:1 1 auto;min-width:0}.page-heading{padding:8px 0 10px}}

/* P30 shared tooltip (grove-tip.js) and the Home comparison chips (.comp-tip): the Grove card instead of a black square.
   Dark variant follows the feedback.css pattern: no global dark theme, tokens swap only under prefers-color-scheme. */
:root{--tip-bg:var(--surface);--tip-ink:var(--ink);--tip-muted:var(--muted);--tip-line:var(--line-2);--tip-shadow:0 8px 24px #1c3a2d2e}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){--tip-bg:#23302a;--tip-ink:#f1ebdf;--tip-muted:#b4c2b8;--tip-line:#42554a;--tip-shadow:0 8px 24px #00000066}}
.grove-tip,.comp-tip{box-sizing:border-box;width:max-content;max-width:min(280px,calc(100vw - 16px));padding:10px 12px;border:1px solid var(--tip-line);border-radius:10px;background:var(--tip-bg);color:var(--tip-ink);box-shadow:var(--tip-shadow);font:500 13px/1.45 var(--font);text-align:left;white-space:normal;overflow-wrap:anywhere}
.grove-tip{position:fixed;left:0;top:0;z-index:60;pointer-events:none}
.grove-tip[hidden]{display:none}
.grove-tip-title{display:block;margin:0 0 3px;font-size:11.5px;font-weight:700;letter-spacing:.05em;line-height:1.3;text-transform:uppercase;color:var(--tip-muted)}
.grove-tip-title:empty{display:none}
.comp-tip{display:none!important}
.grove-tip-body{display:block}
/* ==== home-tiles.css ==== */
/* Home tiles, final layout (Eitan 2026-10-06). Loaded after grove.css so these values are the ones that apply.
   One set of sizes per width keeps every divider line clear of the tile photo and its round arrow button.
   Rule: the first divider sits below the photo + arrow (photo bottom + 20px). --hero-h is that distance minus the title. */
.studio-grid{--pad:18px;--ph-top:18px;--ph-w:110px;--ph-h:118px;--h2:30px;--hero-h:108px}
@media(max-width:1100px){.studio-grid{--pad:20px;--ph-top:20px;--ph-w:116px;--ph-h:130px;--h2:30px;--hero-h:112px}}
@media(max-width:640px){.studio-grid{--pad:22px;--ph-top:22px;--ph-w:122px;--ph-h:140px;--h2:58px;--hero-h:92px}}

.studio-grid .studio-card .studio-card-body{padding:var(--pad)}
.studio-grid .studio-card .studio-card-photo{top:var(--ph-top);right:var(--pad);width:var(--ph-w);height:var(--ph-h)}
.studio-grid .studio-card .grove-door{top:calc(var(--ph-top) + var(--ph-h) - 34px);right:calc(var(--pad) - 6px)}
.studio-grid .studio-card h2{min-height:var(--h2);margin:0 0 10px;max-width:calc(100% - var(--ph-w) - 16px)}
.studio-food .studio-card-photo{object-position:50% 55%}
.studio-food{background:#fff;color:#1C3A2D}

/* First row of every tile: the big number. It stops short of the photo and its divider clears the arrow button. */
.studio-grid .studio-sales .grove-hero,
.studio-grid .studio-labor #labor-premium-hero,
.studio-grid .studio-schedule .schedule-metrics>.grove-hero,
.studio-grid .studio-food .grove-hero,
.studio-grid .studio-people .people-heroes>.grove-hero,
.studio-grid .studio-loyalty .loyalty-metrics>.grove-hero,
.studio-grid .studio-people .recruiting-counts>.grove-hero{min-height:var(--hero-h);margin:0;padding:0 calc(var(--ph-w) + 12px) 12px 0;justify-content:flex-start;align-items:flex-start;gap:4px}
.studio-grid .studio-labor #labor-premium-hero,
.studio-grid .studio-schedule .schedule-metrics>.grove-hero,
.studio-grid .studio-loyalty .loyalty-metrics>.grove-hero,
.studio-grid .studio-people .recruiting-counts>.grove-hero{border-bottom:1px solid #1c3a2d26}
.studio-grid .studio-food .grove-hero{border-bottom:1px solid #1c3a2d26}
.studio-grid .studio-sales .grove-hero{border-bottom:1px solid #faf8f333}
.studio-grid .studio-sales .grove-growth{margin-top:0;padding-top:12px}
.studio-grid .studio-sales .grove-growth .studio-metrics{border-top:0;margin-top:0}

/* Labels are a little larger than before and read the same on every tile. */
.studio-grid .studio-metric .metric-label,
.studio-grid .metric-cell .metric-label{font-size:11.5px;letter-spacing:.05em;line-height:1.3;font-weight:700}
.studio-grid .studio-sales .grove-growth .metric-label{font-size:12px}

/* Labor (D12, UX P0 item 3): Premiums is the hero, then three equal small numbers like Loyalty. */
.studio-grid .labor-smalls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin:0;padding-top:12px;border-top:0}
.studio-grid .labor-smalls #operating-labor-summary{display:contents}
.studio-grid .labor-smalls>.studio-metric,.studio-grid .labor-smalls .grove-labor-splh>.studio-metric{grid-column:auto;min-height:0;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:5px;width:auto;border:0;border-radius:0;padding:2px 0 0;margin:0;background:none;box-shadow:none;color:inherit;text-align:left}
.studio-grid .labor-smalls .metric-value{font:700 17px/1.2 var(--font)}
.studio-grid .labor-smalls p{margin:0;font-size:12px;line-height:1.3}
.studio-grid .labor-smalls [hidden]{display:none}

/* Loyalty: week-to-date registrations, then three small numbers. */
.studio-grid .loyalty-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;border-top:0;padding-top:0;margin:0}
.studio-grid .loyalty-metrics>.grove-hero{grid-column:1/-1}
.studio-grid .loyalty-metrics>.studio-metric:not(.grove-hero){padding:2px 0 0}
.metric-soon{font-size:13px!important;font-weight:600!important;opacity:.7;letter-spacing:0}

/* Footer: status pill, the little clock, About this data on the right. */
.studio-grid .grove-footer{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;margin-top:auto;padding-top:12px}
.studio-grid .grove-footer .about-data-link{margin-left:auto}
.grove-clock{display:flex;align-items:center;min-width:0;flex:1 1 auto}
.grove-clock:empty{display:none}
.clock-stamp{display:inline-flex;align-items:center;gap:2px;min-width:0}
.clock-button{display:grid;place-items:center;width:44px;height:44px;min-height:44px;padding:0;margin:0;border:0;border-radius:50%;background:none;color:inherit;opacity:.75;cursor:pointer}
.clock-button:hover,.clock-button[aria-expanded=true]{opacity:1}
.clock-button:focus-visible{outline:2px solid currentColor;outline-offset:-4px}
.clock-time{font-size:12px;font-weight:600;line-height:1.3;overflow-wrap:anywhere}
.clock-time[hidden]{display:none}

/* Small numbers line up along the bottom even when one label wraps to two lines. */
.studio-grid .studio-metrics>.studio-metric:not(.grove-hero),
.studio-grid .schedule-metrics>.studio-metric:not(.grove-hero){justify-content:space-between}
.page-clock{margin:0 0 4px}.page-clock .clock-button{width:36px;height:36px;min-height:36px;margin-left:-8px}
.feed .clock-stamp{vertical-align:middle}
.vital-note .clock-stamp{margin-left:-10px}
.clock-button:hover,.clock-button:active,.clock-button:focus{background:none!important}

/* People: the tile body fills the card like the other five (short labels no longer stretch it). */
.studio-grid .studio-people .studio-card-body{width:100%;box-sizing:border-box}

/* People & HR (Eitan 2026-10-07): two big numbers side by side, then three small numbers like Loyalty. */
.studio-grid .studio-people .people-heroes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 12px;width:calc(100% - var(--ph-w) - 12px);min-height:calc(var(--hero-h) + 1px);border-bottom:1px solid #1c3a2d26;margin:0;padding:0}
.studio-grid .studio-people .people-heroes>.grove-hero{min-height:0;border-bottom:0;padding:0 0 12px;margin:0}
.studio-grid .studio-people .people-heroes>.grove-hero{gap:2px}
.studio-grid .studio-people .people-heroes .grove-hero .metric-value{font-size:30px;line-height:1.05}
.studio-grid .studio-people .people-smalls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px 12px;margin:0;padding-top:12px;border-top:0}
.studio-grid .studio-people .people-smalls>.studio-metric{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:5px;width:auto;min-height:0;border:0;border-radius:0;padding:2px 0 0;margin:0;background:none;box-shadow:none;color:inherit;text-align:left}
.studio-grid .studio-people .recruiting-freshness{margin:8px 0 0;font-size:12px}
.studio-grid .studio-food .food-soon{margin:12px 0 0;font-size:14px;font-weight:600;opacity:.8}

/* One size for every small number in every tile (Eitan 2026-10-07). "Not available yet" words keep their smaller size. */
.studio-grid .studio-card .studio-metric:not(.grove-hero) .metric-value:not(.metric-soon),
.studio-grid .studio-card .grove-growth .metric-value:not(.metric-soon){font:700 17px/1.2 var(--font)!important;letter-spacing:-.03em!important}
@media(min-width:1101px){.studio-grid .studio-labor h2{font-size:21px}.studio-grid .studio-food h2{font-size:19px}}
@media(max-width:640px){.studio-grid .studio-people .people-heroes .metric-label{font-size:10px;letter-spacing:0;white-space:nowrap}}
@media(max-width:640px){.studio-grid .studio-labor #labor-premium-hero .metric-value{font-size:clamp(26px,7.2vw,30px);white-space:nowrap}.studio-grid .studio-people .people-heroes{grid-template-columns:minmax(0,1fr);gap:0;width:100%;min-height:0;border-bottom:0}.studio-grid .studio-people .people-heroes>.grove-hero{grid-column:1;min-height:76px;padding:0 calc(var(--ph-w) + 12px) 10px 0!important}.studio-grid .studio-people .people-heroes>.grove-hero:first-child{border-bottom:1px solid #1c3a2d26}.studio-grid .studio-people .people-heroes .grove-hero .metric-value{font-size:28px;white-space:nowrap}}
/* P5: Sales & growth tile. No "Vs last year" heading; SST / SSS / SSC sit right under the divider, each with a tiny circled "i". */
.studio-grid .studio-sales .grove-growth{margin-top:4px}
.studio-grid .studio-sales .growth-label-row{display:inline-flex;align-items:center;gap:5px}
.metric-info-i{all:unset;box-sizing:border-box;display:inline-grid;place-items:center;width:15px;height:15px;border:1.5px solid currentColor;border-radius:50%;font:700 9px/1 var(--font,inherit);letter-spacing:0;text-transform:none;cursor:pointer;opacity:.85;flex:none;position:relative}
.metric-info-i::after{content:'';position:absolute;inset:-8px}
.metric-info-i:hover{opacity:1}
.metric-info-i:focus-visible{outline:2px solid currentColor;outline-offset:2px;opacity:1}
/* P7: SST / SSS / SSC numbers are buttons that open the same-store report. Same look as before; one shared top line with
   the neighbouring tiles' small numbers (the growth row used to sit about 10px lower). */
.studio-grid .studio-sales .growth-info-metric{cursor:pointer}
.growth-open{appearance:none;display:block;margin:0;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer;min-height:0}
.growth-open:focus-visible{outline:2px solid currentColor;outline-offset:3px;border-radius:4px}
.studio-grid .studio-sales .grove-growth{margin-top:0;padding-top:0}
.studio-grid .studio-sales .grove-growth .studio-metrics{padding-top:12px}
.studio-grid .studio-sales .grove-growth .studio-metric{padding-top:2px}

/* P27: the small numbers in a tile row share one baseline (Labor & Premiums, Loyalty & Guests). Each label gets a fixed block
   tall enough for its longest wrap (2 lines, 3 on a phone), so the numbers start at the same height whatever the label length, and
   a "Not available yet" word sits in the same-height box as a normal number. */
.studio-grid{--label-lines:2}
@media(max-width:640px){.studio-grid{--label-lines:3}}
.studio-grid .studio-card .labor-smalls .studio-metric,
.studio-grid .studio-card .loyalty-metrics>.studio-metric:not(.grove-hero){justify-content:flex-start}
.studio-grid .studio-card .labor-smalls .studio-metric .metric-label,
.studio-grid .studio-card .loyalty-metrics>.studio-metric:not(.grove-hero) .metric-label{display:block;min-height:calc(var(--label-lines)*1.3em)}
.studio-grid .studio-card .labor-smalls .studio-metric .metric-value,
.studio-grid .studio-card .loyalty-metrics>.studio-metric:not(.grove-hero) .metric-value{display:flex;align-items:flex-end;min-height:22px}

/* P28 Loyalty card: 2nd-visit small number (replaces the LTO line), signups-per-100 row, member-health entry. They sit outside the
   three-number baseline: the 2nd-visit value uses the same fixed label block and same-height value box as its neighbours; its words
   ("Too few new members yet") and delta go in a sub-line under that box, so a long sentence never moves the baseline. */
.studio-grid .loyalty-sub{display:block;margin-top:2px;font-size:12px;font-weight:600;line-height:1.3;opacity:.85;overflow-wrap:anywhere}
.studio-grid .loyalty-sub[hidden]{display:none}
/* Loyalty report views (P33): two report cards (report-card.js) and a closed By store section under each. */
.loyalty-views{margin:0 0 28px;display:grid;gap:24px}
.loyalty-view-slot{min-width:0}
.loyalty-head{margin:0 0 10px}
.loyalty-extra-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px}
.loyalty-rate-value{font:700 28px/1.2 var(--font);letter-spacing:-.03em}
.loyalty-rate-value.metric-soon{font-size:15px;font-weight:600;letter-spacing:0}
.loyalty-delta{font-size:13px;font-weight:600}
.loyalty-extra-defs{margin:10px 0 0;font-size:12px;line-height:1.5;color:var(--muted);overflow-wrap:anywhere}
.loyalty-extra-defs[hidden],.loyalty-delta[hidden]{display:none}
.loyalty-chart{max-width:560px}
.loyalty-chart-svg{display:block;width:100%;height:auto}
.loyalty-bar{fill:currentColor;opacity:.75}
.loyalty-bar-label,.loyalty-bar-value{font:12px var(--font);fill:currentColor}
.loyalty-store-open{appearance:none;border:0;background:none;padding:0;color:inherit;font:inherit;text-decoration:underline;text-underline-offset:3px;cursor:pointer;min-height:24px}
.loyalty-health-link{appearance:none;display:block;margin:8px 0 0;padding:0;min-height:44px;border:0;background:none;color:inherit;font:600 13px/1.5 var(--font);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.loyalty-health-link[hidden]{display:none}
.loyalty-health-link:focus-visible{outline:2px solid currentColor;outline-offset:2px}

/* Member health drawer (restricted view). */
.loyalty-health{display:block;color:inherit}
.loyalty-health-title{margin:0 0 6px;font-size:20px;line-height:1.3}
.loyalty-health-sub{margin:16px 0 6px;font-size:13px;letter-spacing:.06em;text-transform:uppercase}
.loyalty-health-meta{margin:0 0 8px;font-size:13px}
.loyalty-stale{display:inline-block;padding:1px 8px;border-radius:999px;border:1px solid currentColor;font-size:12px;font-weight:700}
.loyalty-health-scroll{max-width:100%;overflow-x:auto}
.loyalty-health-table{width:100%;border-collapse:collapse;font-size:13px}
.loyalty-health-table th,.loyalty-health-table td{padding:6px 8px;border-bottom:1px solid #1c3a2d26;text-align:right;vertical-align:top;overflow-wrap:anywhere}
.loyalty-health-table th:first-child,.loyalty-health-table td:first-child{text-align:left}
.loyalty-health-table thead th{font-size:11.5px;font-weight:700}
.loyalty-health-defs{margin:0;font-size:13px;line-height:1.5}
.loyalty-health-defs dt{font-weight:700;margin-top:8px}
.loyalty-health-defs dd{margin:0}
.loyalty-health-note{margin:12px 0 0;font-size:12px;opacity:.85}
/* ==== loyalty-history.css ==== */
/* P39 Loyalty history series: the to-date note, the lighter to-date bar and the zero-transaction caution icon. */
.loyalty-note{font-size:13px;font-weight:600;opacity:.8}
.loyalty-note[hidden],.loyalty-caution-slot[hidden]{display:none}
.loyalty-bar.loyalty-bar-partial{opacity:.4}
.loyalty-caution{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;margin-left:4px;vertical-align:middle;line-height:0;cursor:help;color:inherit;border-radius:6px}
.loyalty-caution:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.loyalty-caution-slot{display:inline-flex;align-items:center}
/* ==== feedback.css ==== */
/* Feedback tab. Plain CSS only (CSP: no inline styles). */
.feedback-view .sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.fb-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:20px;align-items:start}
.fb-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:26px 28px;min-width:0}
.fb-card h2{margin:0 0 14px;font-size:22px}
.fb-form label{font-size:13px;letter-spacing:.02em;text-transform:none;font-weight:650;margin-bottom:8px}
.fb-form textarea{display:block;width:100%;min-height:180px;font:inherit;font-size:17px;line-height:1.5;padding:14px 16px;border:1px solid var(--line-2);border-radius:var(--radius);background:var(--surface-2);color:var(--ink);resize:vertical}
.fb-form textarea:focus-visible{outline:2px solid var(--ink);outline-offset:2px;background:var(--surface)}
.fb-count{margin:6px 0 18px;color:var(--muted);font-size:13px;text-align:right}
.fb-types{border:0;margin:0 0 16px;padding:0}
.fb-types legend{padding:0;margin-bottom:8px;font-size:13px;font-weight:650;color:var(--ink-2)}
.fb-types legend span{font-weight:400;color:var(--muted)}
.fb-chips{display:flex;flex-wrap:wrap;gap:8px}
.fb-chip{border-radius:999px;min-height:44px;padding:8px 18px;background:var(--surface);border:1px solid var(--line-2);font-weight:600}
.fb-chip[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.fb-context{margin:0 0 18px;color:var(--muted);font-size:13px;overflow-wrap:anywhere}
.fb-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.fb-actions .fb-message{margin:0;font-size:14px;color:var(--ink-2)}
.fb-message.fb-bad{color:var(--bad)}
.fb-primary{background:var(--ink);color:#fff;border-color:var(--ink);border-radius:999px;min-height:46px;padding:10px 26px}
.fb-primary:hover{background:var(--ink-2);border-color:var(--ink-2)}
.fb-thanks{text-align:left}
.fb-thanks-mark{display:inline-grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--ok-bg);color:var(--ok);font-size:22px;font-weight:700;margin-bottom:12px}
.fb-thanks h2:focus{outline:none}
.fb-steps{margin:-6px 0 14px}
.fb-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.fb-item{border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;background:var(--surface-2);min-width:0}
.fb-item-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:8px;font-size:13px;color:var(--muted)}
.fb-item-head time{margin-left:auto}
.fb-text{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.fb-type{border:1px solid var(--line-2);border-radius:999px;padding:1px 10px;font-size:12px;color:var(--ink-2)}
.fb-status{border-radius:999px;padding:2px 11px;font-size:12px;font-weight:700}
.fb-empty{color:var(--muted);margin:0}
.fb-admin{margin-top:20px}
.fb-admin-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.fb-admin-head h2{margin:0 auto 0 0}
.fb-admin-head label{margin:0;font-size:13px;text-transform:none;letter-spacing:0}
.fb-admin-head select{width:auto}
.fb-row-msg{display:block;margin-top:4px;font-size:12px;color:var(--muted)}
@media(max-width:900px){.fb-grid{grid-template-columns:1fr}}
@media(max-width:560px){.fb-card{padding:20px 16px}.fb-form textarea{font-size:16px}.fb-actions .fb-primary{width:100%}}
@media(prefers-reduced-motion:no-preference){.fb-chip,.fb-primary{transition:background-color .15s,color .15s}}
@media(prefers-reduced-motion:reduce){.fb-card *{animation:none!important;transition:none!important}}
.fb-flag{color:var(--bad,#b3261e)}
/* Feedback V2: titled rows, status chips, owner controls. Colours are tokens with a dark pair; the label text always shows. */
:root{--fb-status-received-bg:#ECECE8;--fb-status-received-fg:#2D2D2D;--fb-status-reviewed-bg:#E1EEFB;--fb-status-reviewed-fg:#134A7C;--fb-status-in_progress-bg:#FFEFD0;--fb-status-in_progress-fg:#7A4206;--fb-status-implemented-bg:#E1F3E7;--fb-status-implemented-fg:#14592F;--fb-status-wont_do-bg:transparent;--fb-status-wont_do-fg:#5F5F5F;--fb-suggest-bg:#E8F2FC;--fb-suggest-fg:#134A7C}
@media(prefers-color-scheme:dark){:root{--fb-status-received-bg:#3A3A36;--fb-status-received-fg:#ECECE8;--fb-status-reviewed-bg:#1B3550;--fb-status-reviewed-fg:#BBD9F5;--fb-status-in_progress-bg:#4A3510;--fb-status-in_progress-fg:#FFD99A;--fb-status-implemented-bg:#16402A;--fb-status-implemented-fg:#B7E8C8;--fb-status-wont_do-bg:transparent;--fb-status-wont_do-fg:#B5B5B0;--fb-suggest-bg:#1B3550;--fb-suggest-fg:#BBD9F5}}
.fb-status-received{background:var(--fb-status-received-bg);color:var(--fb-status-received-fg)}
.fb-status-reviewed{background:var(--fb-status-reviewed-bg);color:var(--fb-status-reviewed-fg)}
.fb-status-in_progress{background:var(--fb-status-in_progress-bg);color:var(--fb-status-in_progress-fg)}
.fb-status-implemented{background:var(--fb-status-implemented-bg);color:var(--fb-status-implemented-fg)}
.fb-status-wont_do{background:var(--fb-status-wont_do-bg);color:var(--fb-status-wont_do-fg);padding-left:0}
.fb-item{padding:0}
.fb-row-head{display:grid;gap:6px;width:100%;min-height:44px;text-align:left;border:0;border-radius:var(--radius);background:transparent;padding:12px 16px;font-weight:400}
.fb-row-head:hover{background:var(--surface-3)}
.fb-row-title{font-weight:700;font-size:16px;overflow-wrap:anywhere}
.fb-row-head .fb-item-head{margin:0}
.fb-detail{padding:0 16px 16px}
.fb-detail[hidden]{display:none}
.fb-status-line{margin:8px 0 0;color:var(--ink-2);font-size:14px}
.fb-cat{border-radius:999px;padding:1px 10px;font-size:12px;background:var(--surface-3);color:var(--ink-2)}
.fb-unsorted{border:1px dashed var(--line-2);border-radius:999px;padding:1px 10px;font-size:12px;color:var(--ink-2)}
.fb-from{overflow-wrap:anywhere}
.fb-where,.fb-err-note{margin:0 0 8px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.fb-summary{margin:10px 0;overflow-wrap:anywhere}
.fb-suggest{margin:12px 0;padding:12px 14px;border-radius:var(--r-sm);background:var(--fb-suggest-bg);color:var(--fb-suggest-fg);border-left:3px solid var(--fb-suggest-fg)}
.fb-suggest p{margin:0 0 6px;overflow-wrap:anywhere}
.fb-suggest-title{font-weight:700}
.fb-suggest-actions,.fb-pop-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.fb-draft{margin:12px 0;padding:12px 14px;border:1px dashed var(--line-2);border-radius:var(--r-sm)}
.fb-draft h4,.fb-history h4{margin:0 0 6px;font-size:13px}
.fb-draft-text{white-space:pre-wrap;overflow-wrap:anywhere;margin-bottom:8px;color:var(--ink-2)}
.fb-status-set{margin:12px 0;max-width:360px}
.fb-status-set select{width:100%}
.fb-pop{margin-top:8px;padding:12px 14px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);box-shadow:var(--shadow)}
.fb-pop label,.fb-reply-box label,.fb-status-set label{text-transform:none;letter-spacing:0;font-size:13px}
.fb-pop textarea,.fb-reply-box textarea{display:block;width:100%;font:inherit;font-size:14px;padding:8px 10px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface-2);color:var(--ink);margin-bottom:8px}
.fb-reply-box{margin:12px 0}
.fb-history ol{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.fb-history li{font-size:13px;overflow-wrap:anywhere}
.fb-history q{display:block;color:var(--muted)}
@media(max-width:560px){.fb-row-head{padding:12px}.fb-detail{padding:0 12px 14px}.fb-suggest-actions button,.fb-pop-actions button{flex:1}}

/* P24: the person's note and our reply are two different blocks. Tokens have dark pairs; labels always show. */
:root{--fb-note-bar:#9A9A94;--fb-reply-bg:#EAF4EE;--fb-reply-fg:#14592F;--fb-reply-bar:#2E7D4F}
@media(prefers-color-scheme:dark){:root{--fb-note-bar:#6F6F6A;--fb-reply-bg:#16402A;--fb-reply-fg:#B7E8C8;--fb-reply-bar:#5DBB85}}
.fb-note{margin:0;padding:2px 0 2px 14px;border-left:3px solid var(--fb-note-bar)}
.fb-note-label,.fb-reply-label{display:block;margin-bottom:4px;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}
.fb-note-label{color:var(--muted)}
.fb-note .fb-text{color:var(--ink)}
.fb-reply{margin:16px 0 4px;padding:14px 16px;border-left:4px solid var(--fb-reply-bar);background:var(--fb-reply-bg);color:var(--fb-reply-fg);border-radius:0 var(--r-sm) var(--r-sm) 0}
.fb-reply p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}
.fb-reply small{display:block;margin-top:6px;opacity:.85}
.fb-reopen{margin-top:14px}
.fb-reopen-open{min-height:44px;border-radius:999px;padding:8px 18px}
.fb-reopen-form label{display:block;font-size:13px;text-transform:none;letter-spacing:0;font-weight:650;margin-bottom:6px}
.fb-reopen-form textarea{display:block;width:100%;font:inherit;font-size:15px;padding:10px 12px;border:1px solid var(--line-2);border-radius:var(--r-sm);background:var(--surface);color:var(--ink);margin-bottom:10px}
.fb-reopen-actions{display:flex;gap:8px;flex-wrap:wrap}
.fb-reopen-msg{margin:8px 0 0;font-size:14px;color:var(--ink-2)}
.fb-reopen-msg:empty{display:none}
@media(max-width:560px){.fb-reopen-actions button,.fb-reopen-open{flex:1;width:100%}.fb-reply{padding:12px 14px}}
/* ==== warehouse-orders/warehouse.css ==== */
#warehouse-view{--ink:#19241e;--muted:#586052;--ground:#f7f7f4;--lime:#dbed9b;--line:#dedfd7}
#warehouse-view h2{font-size:25px;letter-spacing:-.035em;margin:0 0 14px}
#warehouse-view h3{font-size:17px;margin:0 0 8px}
#warehouse-view .intro{color:var(--muted);font-size:19px}
#warehouse-view .notice{padding:16px 20px;border:1px solid #d7dcb9;border-radius:14px;background:#eef3dd;font-size:13px}
#warehouse-view .layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(290px,1fr);gap:22px}
#warehouse-view .panel,#warehouse-view .order{background:white;border:1px solid var(--line);border-radius:20px;padding:24px;min-width:0}
#warehouse-view .panel+.panel{margin-top:22px}
#warehouse-view .controls{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:18px}
#warehouse-view label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600}
#warehouse-view input,#warehouse-view select,#warehouse-view button{font:inherit;border:1px solid #bec5b9;border-radius:9px;padding:10px;color:inherit;max-width:100%}
#warehouse-view input,#warehouse-view select{background:white}
#warehouse-view button{cursor:pointer;background:white;font-size:14px;font-weight:650;transition:background .15s,transform .15s}
#warehouse-view button:hover:enabled{background:#eff3e8}
#warehouse-view button:active:enabled{transform:translateY(1px)}
#warehouse-view button.primary{background:var(--ink);color:white;border-color:var(--ink)}
#warehouse-view button.primary:hover:enabled{background:#354431}
#warehouse-view button:disabled{opacity:.5;cursor:default}
#warehouse-view button:focus-visible,#warehouse-view input:focus-visible,#warehouse-view select:focus-visible{outline:3px solid #377499;outline-offset:3px}
#warehouse-view .search{flex:1;min-width:180px}
#warehouse-view .products{display:grid;gap:10px}
#warehouse-view .product,#warehouse-view .cart-row{border-bottom:1px solid var(--line);padding:14px 0;display:flex;gap:12px;align-items:center}
#warehouse-view .product>div,#warehouse-view .cart-row>div{flex:1;min-width:0}
#warehouse-view .product p,#warehouse-view .cart-row p{margin:3px 0;font-size:13px;color:var(--muted)}
#warehouse-view .badge{display:inline-block;background:#eef1e8;border-radius:5px;padding:2px 7px;font-size:11px}
#warehouse-view .cart-row input{width:85px}
#warehouse-view .subtle{font-size:13px;color:var(--muted)}
#warehouse-view .status{min-height:25px;font-size:14px}
#warehouse-view #demo-message:empty{min-height:0;margin:0;padding:0;border:0;background:transparent;font-size:0}
#warehouse-view #demo-message:empty::before{content:none}
#warehouse-view .orders{display:grid;gap:16px;margin-top:18px}
#warehouse-view .order-head{display:flex;justify-content:space-between;gap:14px;align-items:start}
#warehouse-view .steps{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
#warehouse-view .step{font-size:12px;padding:5px 10px;border-radius:20px;background:#edf0e8}
#warehouse-view .step.done{background:var(--lime)}
#warehouse-view .order ul{padding-left:20px}
#warehouse-view .order small{word-break:break-all}
#warehouse-view details{margin-top:15px;font-size:13px}
#warehouse-view summary{cursor:pointer}
#warehouse-view pre{white-space:pre-wrap;overflow-wrap:anywhere}
#warehouse-view .empty{color:var(--muted);padding:18px 0}
#warehouse-view .counter{font-size:13px;color:var(--muted)}
@media(max-width:760px){#warehouse-view .layout{grid-template-columns:1fr}
#warehouse-view .panel,#warehouse-view .order{padding:18px}
#warehouse-view .product{align-items:start}}
#warehouse-view .layout{align-items:start}
#warehouse-view .products{max-height:620px;overflow:auto;padding-right:6px}
#warehouse-view .layout>.panel:last-child{position:sticky;top:20px}
@media(max-width:760px){#warehouse-view .layout>.panel:last-child{position:static}
#warehouse-view .products{max-height:440px}}
@media(max-width:760px){#warehouse-view .order-head{flex-wrap:wrap}
#warehouse-view .order-head>h2{flex-basis:100%;margin-bottom:0}
#warehouse-view .order-head>label{flex:1;min-width:0}
#warehouse-view .order-head>label select{width:100%}
#warehouse-view .order-head>button{max-width:100%}}
#warehouse-view .receipt{margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}
#warehouse-view .receipt h4{margin:0 0 8px}
#warehouse-view .receipt-row{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:14px;margin:12px 0}
#warehouse-view .receipt-row>span:first-child{flex:1;min-width:0}
#warehouse-view .receipt-row small{display:block;font-weight:400;color:var(--muted)}
#warehouse-view .receipt-row input{display:block;width:110px}
#warehouse-view textarea{font:inherit;min-height:70px;border:1px solid var(--line);border-radius:8px;resize:vertical;width:100%;padding:10px}
#warehouse-view .flags{border-left:3px solid #b07a35;background:#fff8eb;padding:12px;font-size:13px}
@media(max-width:760px){#warehouse-view .receipt-row{flex-wrap:wrap}
#warehouse-view .receipt-row>span:first-child{flex-basis:100%}}
#warehouse-view .complete-label{flex-direction:row;align-items:center;gap:8px;margin:16px 0}
#warehouse-view .complete-label input{width:auto}
#warehouse-view .modebar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:22px;padding:14px;border:1px solid var(--line);border-radius:12px;background:#eef3dd}
#warehouse-view .modebar small{flex-basis:100%}
#warehouse-view{--ink:#192820;--ground:#F1EBDF;--muted:#66715F;--line:#DDD4C2;--lime:#DEE7BA}
#warehouse-view .orders-panel{margin-top:22px}
#warehouse-view .notice{background:#F9F6ED;border-color:#DDD4C2}
#warehouse-view{overflow-wrap:anywhere}
#warehouse-view .persistent-demo{position:sticky;top:0;z-index:15;display:flex;flex-direction:column;gap:5px;margin:22px 0;background:#fbf5df;box-shadow:0 3px 12px #1928200a}
#warehouse-view .persistent-demo strong{font-size:12px;letter-spacing:.08em}
#warehouse-view .persistent-demo span{font-size:13px}
#warehouse-view .demo-tag{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:9px;color:#6b571d;font-size:10px;font-weight:800;letter-spacing:.075em}
#warehouse-view .demo-nav{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap}
#warehouse-view .demo-nav>div,#warehouse-view .demo-tabs,#warehouse-view .order-actions,#warehouse-view .order-pages,#warehouse-view .invoice-controls{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
#warehouse-view .demo-nav p{font-size:12px;color:var(--muted);margin:0}
#warehouse-view .demo-nav button[aria-current],#warehouse-view .demo-tabs button[aria-current]{background:var(--ink);color:white;opacity:1;border-color:var(--ink)}
#warehouse-view .demo-tabs{margin:20px 0 8px}
#warehouse-view .demo-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(310px,1fr);gap:22px;align-items:start}
#warehouse-view .demo-layout>.panel+.panel{margin-top:0}
#warehouse-view .demo-cart{position:sticky;top:125px}
#warehouse-view .demo-product{background:#F9F6ED;border:1px solid var(--line);border-radius:12px;padding:15px}
#warehouse-view .demo-product>div>strong{display:block;font-size:17px}
#warehouse-view .category{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
#warehouse-view .stock{font-size:12px}
#warehouse-view .empty-stock{color:#885628}
#warehouse-view .demo-totals{margin:20px 0}
#warehouse-view .demo-totals>div{display:flex;justify-content:space-between;gap:14px;padding:8px 0;font-size:13px}
#warehouse-view .demo-totals dd,#warehouse-view .order-costs dd{margin:0;font-variant-numeric:tabular-nums}
#warehouse-view .demo-totals .grand{font-size:18px;font-weight:750;border-top:1px solid var(--line);padding-top:14px}
#warehouse-view .demo-cart #cart-actions button{margin:4px 6px 4px 0}
#warehouse-view .pending-action{padding:20px;border:1px solid #b59a54;border-radius:14px;background:#fbf5df;margin:15px 0}
#warehouse-view .pending-action strong{display:block}
#warehouse-view .pending-action p{font-size:13px}
#warehouse-view .quantity-table,#warehouse-view .invoice-table{overflow-x:auto}
#warehouse-view .quantity-table table,#warehouse-view .invoice-table table{width:100%;border-collapse:collapse;font-size:12px}
#warehouse-view .quantity-table th,#warehouse-view .quantity-table td,#warehouse-view .invoice-table th,#warehouse-view .invoice-table td{padding:11px 8px;text-align:left;border-bottom:1px solid var(--line)}
#warehouse-view .quantity-table th:not(:first-child){white-space:nowrap}
#warehouse-view .quantity-table tbody th{font-weight:650;min-width:150px}
#warehouse-view .quantity-table tbody small{display:block;font-weight:400;color:var(--muted)}
#warehouse-view .order-costs{display:flex;gap:22px;flex-wrap:wrap;margin:18px 0 4px}
#warehouse-view .order-costs dt{font-size:11px;color:var(--muted)}
#warehouse-view .order-costs dd{font-size:17px;font-weight:700}
#warehouse-view .order-badges{display:flex;gap:7px;flex-wrap:wrap}
#warehouse-view .overdue{background:#f3dfbd;color:#775417}
#warehouse-view .order-actions{margin:18px 0 8px}
#warehouse-view .action-form{padding:18px;margin-top:18px;background:#F9F6ED;border:1px solid var(--line);border-radius:12px}
#warehouse-view .action-form h4{margin:0 0 12px}
#warehouse-view .action-form>label{margin-top:14px}
#warehouse-view .action-form>button{margin:8px 8px 0 0}
#warehouse-view .audit-list{padding-left:20px}
#warehouse-view .audit-list li{margin:8px 0}
#warehouse-view .catalog-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
#warehouse-view .catalog-editor{margin:20px 0;padding:22px;border:1px solid var(--line);border-radius:14px;background:#F9F6ED}
#warehouse-view .catalog-editor>button{margin-right:8px}
#warehouse-view .catalog-editor>p{font-size:13px}
#warehouse-view .order-pages{justify-content:space-between;margin:14px 0}
#warehouse-view .order-pages span{font-size:12px;color:var(--muted)}
#warehouse-view .demo-invoice{margin-top:25px}
#warehouse-view .invoice-controls{justify-content:flex-end;margin-bottom:20px}
#warehouse-view .mobile-cart-shortcut{display:none}
#warehouse-view .tracking{font-size:13px}
#warehouse-view button{min-height:44px}
#warehouse-view input:disabled{opacity:.75}
#warehouse-view button[hidden],#warehouse-view [hidden]{display:none!important}
@media(max-width:760px){#warehouse-view .persistent-demo{padding:12px 14px}
#warehouse-view .persistent-demo span{font-size:11px;line-height:1.4}
#warehouse-view .demo-layout{grid-template-columns:1fr}
#warehouse-view .demo-cart{position:static}
#warehouse-view .demo-tabs{gap:6px}
#warehouse-view .demo-tabs button,#warehouse-view .demo-nav button{font-size:13px;padding:9px}
#warehouse-view .demo-nav>div{width:100%}
#warehouse-view .demo-nav>div button{flex:1}
#warehouse-view .demo-product{align-items:center}
#warehouse-view .demo-product>button{max-width:110px;font-size:12px}
#warehouse-view .cart-row{flex-wrap:wrap}
#warehouse-view .cart-row>div{flex-basis:100%}
#warehouse-view .cart-row label{flex:1}
#warehouse-view .cart-row input{width:100%;font-size:16px}
#warehouse-view .catalog-fields{grid-template-columns:1fr}
#warehouse-view .quantity-table table,#warehouse-view .quantity-table tbody{display:block}
#warehouse-view .quantity-table thead{display:none}
#warehouse-view .quantity-table tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:10px;margin:10px 0;overflow:hidden}
#warehouse-view .quantity-table tbody th{grid-column:1/-1;min-width:0;background:#F9F6ED}
#warehouse-view .quantity-table td{display:flex;flex-direction:column;font-size:17px;font-weight:700;padding:9px;border-right:1px solid var(--line)}
#warehouse-view .quantity-table td:before{content:attr(data-label);font-size:10px;font-weight:500;color:var(--muted)}
#warehouse-view .order-costs{gap:12px}
#warehouse-view .order-costs>div{flex:1;min-width:90px}
#warehouse-view .order-costs dd{font-size:15px}
#warehouse-view .order-actions button{flex:1;min-width:135px;font-size:12px}
#warehouse-view .action-form{padding:14px}
#warehouse-view .receipt-row input{font-size:16px;width:100%}
#warehouse-view .receipt-row>span:last-child{width:100%}
#warehouse-view .mobile-cart-shortcut{display:block;position:fixed;bottom:16px;left:16px;right:16px;z-index:20;background:var(--ink);color:white;box-shadow:0 5px 20px #19282040}
#warehouse-view .demo-layout{padding-bottom:60px}
#warehouse-view .invoice-controls button{flex:1}
#warehouse-view .invoice-table table{font-size:11px}
#warehouse-view .demo-invoice h2{font-size:22px}
#warehouse-view .order-pages button{font-size:12px}
#warehouse-view .order-pages span{width:100%;text-align:center;order:3}}
#warehouse-view .demo-totals dd,#warehouse-view .order-costs dd{white-space:nowrap;flex-shrink:0}
#warehouse-view .demo-totals dt{min-width:0}
#warehouse-view .demo-totals .grand dt{font-size:16px}
#warehouse-view .demo-invoice .demo-totals>div{align-items:start}
#warehouse-view button,#warehouse-view input,#warehouse-view textarea,#warehouse-view select,#warehouse-view .demo-cart,#warehouse-view .action-form{scroll-margin-top:150px}
/* Print: only the demo invoice prints (main.js adds wh-printing around the print dialog). */
@media print{html.wh-printing body>:not(main),html.wh-printing #dashboard>:not(#warehouse-view),html.wh-printing #warehouse-view>:not(#warehouse-orders-root),html.wh-printing #warehouse-view .demo-nav,html.wh-printing #warehouse-view .demo-tabs,html.wh-printing #warehouse-view .status,html.wh-printing #warehouse-view #pending-action,html.wh-printing #warehouse-view #demo-content,html.wh-printing #warehouse-view .invoice-controls{display:none!important}html.wh-printing #warehouse-view .demo-invoice{display:block!important;border:none;margin:0;padding:0}html.wh-printing #warehouse-view .demo-invoice h2{font-size:24px}html.wh-printing #warehouse-view .demo-invoice table{font-size:11px}html.wh-printing #warehouse-view .demo-invoice p{font-size:12px}html.wh-printing #warehouse-view .invoice-table{overflow:visible}}
/* P34: one DEMO badge (colours are tokens with a dark pair; text always shows; contrast >= 4.5:1 in both schemes). */
#warehouse-view{--demo-badge-bg:#fbe7a1;--demo-badge-fg:#4a3700;--mark-bg:#f6df7a;--mark-fg:#1a1f12;--chip-line:#bec5b9;--chip-on-bg:#192820;--chip-on-fg:#ffffff;--rare:#6a5a2a}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]) #warehouse-view{--demo-badge-bg:#5a4410;--demo-badge-fg:#ffe9a8;--rare:#6a5a2a}}
@media all{:root[data-theme="dark"] #warehouse-view{--demo-badge-bg:#5a4410;--demo-badge-fg:#ffe9a8}}
#warehouse-view .demo-badge{display:inline-block;flex:none;white-space:nowrap;overflow:visible;background:var(--demo-badge-bg);color:var(--demo-badge-fg);border:1px solid var(--demo-badge-fg);border-radius:6px;padding:1px 7px;font-size:11px;font-weight:800;letter-spacing:.08em;line-height:1.5;vertical-align:middle;text-transform:none}
#warehouse-view h2 .demo-badge{font-size:12px;margin-left:6px}
#warehouse-view .status .demo-badge{margin-right:4px}
#warehouse-view .category{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
#warehouse-view .catalog-count{font-size:13px;color:var(--muted);margin:10px 0}
#warehouse-view .catalog-count #catalog-count{font-weight:700;color:var(--ink)}
#warehouse-view .search-row{align-items:end}
#warehouse-view .search-box{position:relative;display:block}
#warehouse-view .search-box input{width:100%;padding-right:44px;box-sizing:border-box}
#warehouse-view .clear-search{position:absolute;right:2px;top:50%;transform:translateY(-50%);min-height:40px;min-width:40px;padding:0;border:none;background:transparent;font-size:22px;line-height:1;color:var(--muted)}
#warehouse-view .clear-search:hover:enabled{background:#eff3e8}
#warehouse-view .clear-search:active:enabled{transform:translateY(-50%)}
#warehouse-view .sort-label select{min-width:170px}
#warehouse-view .chips{display:flex;flex-wrap:wrap;gap:8px;margin:2px 0 6px}
#warehouse-view .chip{min-height:40px;border-radius:999px;padding:6px 14px;font-size:13px;white-space:nowrap;border-color:var(--chip-line)}
#warehouse-view .chip[aria-pressed="true"]{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}
#warehouse-view .chip[aria-pressed="true"]:hover:enabled{background:#354431}
#warehouse-view .chip.zero:not([aria-pressed="true"]){color:var(--muted)}
#warehouse-view .chip-select{display:none;margin:2px 0 6px}
#warehouse-view mark{background:var(--mark-bg);color:var(--mark-fg);border-radius:3px;padding:0 1px}
#warehouse-view .item-title{display:block;font-size:17px}
#warehouse-view .item-info{display:block;margin:7px 0 3px}
#warehouse-view .item-info summary{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;box-sizing:border-box;border:1px solid #8d9888;border-radius:50%;color:var(--ink);font-weight:750;list-style:none;cursor:pointer}
#warehouse-view .item-info summary::-webkit-details-marker{display:none}
#warehouse-view .item-info summary:focus-visible{outline:3px solid #377499;outline-offset:3px}
#warehouse-view .item-info[open] summary{background:var(--ink);color:white}
#warehouse-view .item-info .item-meta{margin:6px 0 0;font-size:12px;color:var(--muted)}
#warehouse-view .item-history{font-size:12px}
#warehouse-view .recommendations{padding:14px;border:1px solid var(--line);border-radius:12px;background:white}
#warehouse-view .recommendations h3{margin:0;font-size:16px}
#warehouse-view .recommendation-note{margin:4px 0 10px;font-size:11px;color:var(--muted)}
#warehouse-view .recommendation-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}
#warehouse-view .recommendation{min-width:0;padding:10px;border-radius:9px;background:#F9F6ED}
#warehouse-view .recommendation strong{display:block;font-size:12px;line-height:1.35}
#warehouse-view .recommendation p{min-height:48px;margin:6px 0;font-size:11px;line-height:1.4;color:var(--muted)}
#warehouse-view .recommendation button{width:100%;min-height:38px;padding:7px;font-size:12px}
#warehouse-view .rare{color:var(--muted);font-style:italic}
#warehouse-view .save-note{margin:12px 0;font-size:13px}
@media(max-width:760px){#warehouse-view .chips{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
#warehouse-view .recommendation-list{grid-template-columns:1fr}
#warehouse-view .recommendation p{min-height:0}
#warehouse-view .sort-label,#warehouse-view .sort-label select{width:100%}
#warehouse-view .search-row{flex-direction:column;align-items:stretch}
#warehouse-view .recommendation-note{font-size:12px;line-height:1.45}
#warehouse-view .recommendation strong{font-size:14px}
#warehouse-view .recommendation p{font-size:13px;line-height:1.45}
#warehouse-view .item-info summary{width:44px;height:44px}
#warehouse-view .mobile-cart-shortcut{padding:10px 16px;line-height:1.3;white-space:normal}}
@media(max-width:389px){#warehouse-view .chips{display:none}
#warehouse-view .chip-select{display:flex}}

/* Cart review is a true modal so the catalogue cannot compete with the final demo-order action. */
#warehouse-view .demo-cart-review{width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:0;border:0;border-radius:0;background:var(--ground);color:var(--ink)}
#warehouse-view .demo-cart-review::backdrop{background:#14202bcc}
#warehouse-view .demo-cart-review[open]{display:flex;flex-direction:column}
#warehouse-view .demo-cart-review-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line);background:var(--surface)}
#warehouse-view .demo-cart-review-head h2{margin:0;font-size:24px}
#warehouse-view .demo-cart-review-host{flex:1;overflow:auto;padding:24px}
#warehouse-view .demo-cart-review-host>.demo-cart{position:static;width:min(100%,820px);margin:0 auto;box-sizing:border-box}
#warehouse-view .demo-cart-review .item-info summary{width:44px;height:44px}
#warehouse-view .demo-cart-review #place-demo-order{font-size:16px;padding:12px 18px}
#warehouse-view .steps{display:flex;align-items:stretch;gap:0;flex-wrap:wrap;margin:16px 0}
#warehouse-view .step{position:relative;display:inline-flex;align-items:center;min-height:34px;margin:0 26px 8px 0;padding:6px 10px;border:1px solid var(--line);border-radius:8px;background:#f5f1e8;color:var(--muted);font-size:12px;line-height:1.25}
#warehouse-view .step-arrow{position:absolute;right:-22px;top:50%;width:16px;border-top:2px dashed #a9b19f;color:#77836f;text-align:right;line-height:0;transform:translateY(-50%)}
#warehouse-view .step.done{background:#e6eed0;color:var(--ink);border-color:#9bab79}
#warehouse-view .step.current{background:var(--surface);color:var(--ink);border:2px solid var(--ink);padding:5px 9px;animation:warehouse-step-pulse 1.8s ease-in-out infinite}
#warehouse-view .step.terminal{background:var(--surface);color:var(--ink);border:2px solid var(--ink);padding:5px 9px;animation:none}
#warehouse-view .step.current .step-arrow{animation:warehouse-step-arrow 1.2s linear infinite;color:var(--ink);border-color:var(--ink)}
@keyframes warehouse-step-arrow{0%,100%{opacity:.45;transform:translate(0,-50%)}50%{opacity:1;transform:translate(5px,-50%)}}
@keyframes warehouse-step-pulse{0%,100%{box-shadow:0 0 0 0 rgba(20,32,43,0)}50%{box-shadow:0 0 0 3px rgba(20,32,43,.14)}}
@media(prefers-reduced-motion:reduce){#warehouse-view .step.current,#warehouse-view .step.current .step-arrow{animation:none}}
@keyframes warehouse-step-arrow-down{0%,100%{opacity:.45;transform:translate(-50%,0)}50%{opacity:1;transform:translate(-50%,5px)}}
@media(max-width:760px){#warehouse-view .demo-cart-review-head{padding:14px 16px}#warehouse-view .demo-cart-review-head h2{font-size:20px}#warehouse-view .demo-cart-review-host{padding:16px}#warehouse-view .steps{display:grid;grid-template-columns:1fr;justify-items:start;gap:0}#warehouse-view .step{width:max-content;max-width:100%;margin:0 0 28px}#warehouse-view .step:last-child{margin-bottom:0}#warehouse-view .step-arrow{right:auto;left:50%;top:auto;bottom:-22px;width:0;height:16px;border-top:0;border-left:2px dashed #a9b19f;transform:translateX(-50%);font-size:0}#warehouse-view .step-arrow::after{content:'\2193';position:absolute;left:-6px;bottom:-6px;color:#77836f;font-size:14px;line-height:1}#warehouse-view .step.current .step-arrow{animation:warehouse-step-arrow-down 1.2s linear infinite;border-color:var(--ink)}#warehouse-view .step.current .step-arrow::after{color:var(--ink)}}
@media(prefers-reduced-motion:reduce){#warehouse-view .step.current .step-arrow{animation:none}}
/* ==== atlas-logo.css ==== */
/* Atlas identity: wavy seal + globe + Atlas wordmark. The globe remains visible;
   do not combine or morph the independent Earthbar and Beaming identities.
   Border and meridians animate; reduced motion is static, hidden tabs pause. */
.atlas-lockup{display:flex;align-items:center;flex-shrink:0;min-width:0;--atlas-mark:var(--ink,#1C3A2D)}
.atlas-home{display:flex;align-items:center;gap:12px;color:var(--atlas-mark);text-decoration:none;padding:4px 6px 4px 2px;border-radius:8px}
.atlas-home:hover{text-decoration:none}
.atlas-seal{display:block;width:44px;height:44px;flex:none;overflow:visible}
.atlas-wm{display:block;height:27px;width:auto;flex:none}
.atlas-wave{fill:currentColor;transform-box:view-box;transform-origin:100px 100px;animation:atlas-turn 48s linear infinite}
.atlas-mer{transform-box:fill-box;transform-origin:center;animation:atlas-mer 3.6s infinite}
.atlas-mer2{animation-delay:-1.2s}.atlas-mer3{animation-delay:-2.4s}
.atlas-mer-static{display:none}
@keyframes atlas-turn{to{transform:rotate(360deg)}}
@keyframes atlas-mer{0%{transform:scaleX(.02);animation-timing-function:cubic-bezier(.61,1,.88,1)}50%{transform:scaleX(1);animation-timing-function:cubic-bezier(.12,0,.39,0)}100%{transform:scaleX(.02)}}
/* Tab hidden: freeze the loop (atlas-logo.js sets html[data-atlas-hidden]). */
:root[data-atlas-hidden] .atlas-lockup *{animation-play-state:paused!important}
/* Static mark: reduced motion. */
@media(prefers-reduced-motion:reduce){.atlas-lockup *{animation:none!important}.atlas-mer{display:none}.atlas-mer-static{display:inline}}
@media(max-width:600px){.atlas-home{gap:9px}.atlas-seal{width:34px;height:34px}.atlas-wm{height:21px}}
/* ==== ask-atlas.css ==== */
.ask-atlas-view{max-width:820px;margin:0 auto;padding:34px 0 48px}.ask-atlas-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:28px;text-align:left}.ask-clear{flex:none;min-height:44px;font-size:13px}.ask-atlas-heading h1{margin:0 0 4px;font-size:clamp(30px,5vw,44px)}.ask-atlas-heading p{margin:0;color:var(--muted)}.ask-examples{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 24px}.ask-example,.ask-link{min-height:44px;border-color:var(--line);background:var(--surface);text-align:left}.ask-example{border-radius:999px;font-size:13px}.ask-messages{display:grid;gap:14px;margin:0 0 22px}.ask-message{max-width:88%;padding:16px 18px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.ask-message-user{justify-self:end;background:#19241e;color:#fff;border-color:#19241e}.ask-message-label{margin:0 0 5px;font-size:11px;font-weight:750;letter-spacing:.09em;text-transform:uppercase;opacity:.7}.ask-message-body{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.ask-message-error{border-color:rgba(163,41,37,.28);background:var(--bad-bg);color:var(--bad)}.ask-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.ask-link{font-size:13px}.ask-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}.ask-form label{grid-column:1/-1;margin:0}.ask-input::placeholder{text-overflow:ellipsis;white-space:nowrap}.ask-input:focus-visible{outline:0}.ask-form:focus-within{border-color:var(--ink)}.ask-form{transition:border-color var(--m-fast) var(--ease-out)}.ask-input{resize:vertical;width:100%;min-height:76px;max-height:220px;border:1px solid var(--line-2);border-radius:10px;padding:11px 12px;background:var(--bg);font:inherit;color:inherit}.ask-submit{min-height:46px;background:#111;color:#fff}.ask-status{display:flex;align-items:center;justify-self:start;gap:12px;min-height:44px;max-width:88%;padding:16px 18px;margin:0;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--muted);font-size:13px}.ask-status[hidden]{display:none}.ask-atlas-spinner{width:36px;height:36px;border-radius:50%;padding:3px;background:#fff;color-scheme:light;animation:ask-atlas-spin 1.8s linear infinite}@keyframes ask-atlas-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.ask-atlas-spinner{animation:none}}:root[data-atlas-hidden] .ask-atlas-spinner{animation-play-state:paused}.ask-privacy{margin:9px 2px 0}
@media(max-width:600px){.ask-atlas-view{padding-top:22px}.ask-message{max-width:96%}.ask-form{grid-template-columns:1fr}.ask-form label{grid-column:auto}.ask-submit{width:100%}}
.app-nav #ask-atlas-nav{display:inline-flex;align-items:center;justify-content:center;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;border:0;border-radius:50%;overflow:hidden;background:transparent}.app-nav #ask-atlas-nav[hidden]{display:none}.app-nav #ask-atlas-nav img{display:block;width:35.2px;height:35.2px;border-radius:50%}.app-nav #ask-atlas-nav:hover img{box-shadow:0 0 0 2px var(--ink)}.app-nav #ask-atlas-nav.active img{box-shadow:0 0 0 2px var(--ink);border-radius:50%}.app-nav #ask-atlas-nav:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
/* F2/G1 (QC 2026-10-20): Snapshot tables never scroll sideways on desktop. Fixed layout: the label column takes a share, value columns split the rest, so long real labels/values can never widen the table. Headers wrap, labels ellipsize, numbers stay on one line in tabular figures at a smaller size. */
.snapshot-table{width:100%;max-width:100%;overflow-x:hidden}
.snapshot-table table{table-layout:fixed;width:100%;max-width:100%;min-width:0;font-variant-numeric:tabular-nums}
.snapshot-table thead th:first-child,.snapshot-table tbody th:first-child,.snapshot-table tfoot th:first-child{width:20%;min-width:0;max-width:none;overflow:hidden}
.snapshot-table td.numeric,.snapshot-table thead th:not(:first-child),.snapshot-table td{min-width:0}
.snapshot-table thead th{white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:auto;font-size:12px;line-height:1.25;padding-left:5px;padding-right:5px;vertical-align:bottom}
.snapshot-table td,.snapshot-table tbody th,.snapshot-table tfoot th{padding-left:5px;padding-right:5px;overflow:hidden}
.snapshot-table td.numeric,.snapshot-table tfoot td{white-space:nowrap;overflow-wrap:normal;font-size:13px;text-overflow:ellipsis}
.snapshot-table td.numeric strong{font-weight:650}
.snapshot-table td .snapshot-secondary,.snapshot-table td .snapshot-inline-percent{white-space:nowrap;font-size:11px}
.snapshot-table tbody th:first-child button,.snapshot-table .snapshot-group-label button{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left}
.snapshot-table .snapshot-coverage{width:auto;min-width:0;max-width:100%;overflow-wrap:anywhere;white-space:normal}
.snapshot-table .snapshot-column-label{flex-wrap:wrap}
@media(max-width:600px){.snapshot-table{overflow-x:auto}.snapshot-table table{table-layout:auto;width:max-content;min-width:100%}.snapshot-table td.numeric,.snapshot-table thead th:not(:first-child){min-width:96px}.snapshot-table thead th:first-child,.snapshot-table tbody th:first-child{width:auto;min-width:120px;max-width:190px}}
/* Final verify (2026-10-20): real cells like "$44 * 20 of 21 stores" or a long vs-budget value were clipped with an ellipsis. Keep the table fixed-width, but let a cell wrap onto a second line: the main number stays whole, and the secondary text drops below it. */
.snapshot-table td.numeric,.snapshot-table tfoot td{white-space:normal;text-overflow:clip;overflow-wrap:break-word}
.snapshot-table td.numeric strong,.snapshot-table td .cell-action{white-space:nowrap}
.snapshot-table td .snapshot-secondary,.snapshot-table td .snapshot-inline-percent{display:block;white-space:normal}
@media(max-width:600px){.snapshot-table td.numeric,.snapshot-table tfoot td{white-space:nowrap}}
.snapshot-table td .snapshot-coverage-badge{display:block;white-space:normal;font-size:11px}

/* FB5-6: the warning triangle (tone "check", on hold) is yellow everywhere; only the !! issue glyph stays red. */
:root{--vital-warn:#D19A00}
.vitals-table .vital-tone-check,.vital-dialog .vital-tone-check,.vitals-legend .vital-tone-check,html.ui2 .ui2-vgrid .vital-tone-check,.vitals-legend .vital-unknown{color:var(--vital-warn)}
/* FB5-2: Ask Atlas waiting motion (desktop page). CSS only; static under reduced motion. */
/* POL-MOTION: only a NEW message / status animates in (renders no longer replay the whole thread); waiting + error styles are the shared .m-wait-* / .m-err in tokens.css. */
.ask-status,.ask-message.is-new{animation:m-rise var(--m-base) var(--ease-out)}
.ask-message-quota{border-color:#d9c58f;background:var(--warn-bg);color:var(--warn)}
.ask-retry{margin-top:10px;min-height:44px;border-radius:999px;font-size:13px;background:var(--surface)}
.ask-message-body{transition:none}
.ask-message-body.ask-clamped{max-height:9.6em;overflow:hidden;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.ask-more{margin-top:6px;min-height:40px;padding:3px 12px;font-size:12.5px;border-radius:999px;background:var(--surface);border:1px solid var(--line-2)}
