/* Hotel BI: warm stone, ink, copper navigation. Financial colors keep their meaning. */
:root{--bg:#f3f1ec;--surface:#fff;--ink:#1f1e1b;--ink-2:#4a463f;--muted:#6b665d;--line:#dcd7cd;--control-line:#8f897e;--subtle:#ece9e2;--accent:#9a5a2c;--positive:#2e6a4c;--positive-bg:#e4efe8;--negative:#a1352b;--negative-bg:#f5e6e2;--on-ink-muted:#bdb7ab;--radius:6px;--sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--serif:var(--sans)}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:13px;line-height:1.45;font-variant-numeric:lining-nums tabular-nums}
button,input,select{font-family:var(--sans);border-color:var(--control-line);border-radius:6px;color:var(--ink)}
button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}
button.primary,.primary{background:var(--ink);border-color:var(--ink);color:white}
button:not(.primary):not(.selected):not(.row-link):not(.row-expand):hover{background:var(--subtle)}
a.download,.auth-text-button{color:var(--accent)}
.nav{background:#faf9f6;border-right:1px solid var(--line)}
.logo{font:600 20px/1.2 var(--sans);letter-spacing:-.035em;color:var(--ink)}
.logo small{font:500 10px/1.5 var(--sans);letter-spacing:.08em;color:var(--muted);margin-top:6px}
.nav nav{margin-top:28px}.nav button,.nav button:first-of-type{font-size:12px;border-radius:6px;color:var(--ink-2);min-height:40px}
.nav button.selected{background:var(--subtle);color:var(--ink);font-weight:600;box-shadow:inset 2px 0 var(--accent)}
.navfoot strong{color:var(--ink)}.navfoot small{color:var(--muted);font-size:11px}.avatar{background:var(--ink)}
main{max-width:1440px;padding-top:24px}
h1{font:600 24px/1.25 var(--sans);letter-spacing:-.025em;margin-bottom:6px}
#subtitle{font-size:12px;color:var(--muted)}
.breadcrumb,.eyebrow,.step-label,.scope-field span,.section-header small,.drivers .eyebrow{font-size:11px;line-height:1.35;letter-spacing:.04em;color:var(--muted)}
.scope,.statusbar{border-color:var(--line)}
.scope-field{background:var(--surface);border-color:var(--control-line);border-radius:6px;min-width:168px;padding:6px 10px}
.scope-field select{font-size:12px}.scope-field select:focus-visible{outline-offset:4px}
.segmented{background:var(--subtle);border-radius:6px}.segmented button{font-size:12px}.segmented button.selected{background:var(--ink);color:white;box-shadow:none}
.unit,.statusbar small,.context-quiet span,.legend,.compact-note,.detail-meta,.row-source,.source-mapping,.source-excluded,.config-context,.bridge-note,.metric-formula,.source-scroll-note{color:var(--muted);font-size:11px}
.statusbar,.status-left strong,.statusbar a,.statusbar button{font-size:11px}
.badge{background:var(--positive-bg);color:var(--positive);font-size:11px}.badge.neutral{background:var(--subtle);color:var(--muted)}
.kpis{gap:12px}.kpi{background:var(--surface);border-color:var(--line);border-radius:8px;min-height:120px;padding:16px 20px}
.kpi.dark{background:var(--ink);border-color:var(--ink)}
.kpi-value{font:600 28px/1.15 var(--sans);letter-spacing:-.035em;margin-bottom:12px}.dark .kpi-value{font-size:32px}.kpi-value span{font-size:16px;color:var(--muted);letter-spacing:0}
.kpi small{color:var(--muted);font-size:11px}.dark .eyebrow,.dark .kpi-value span,.dark small{color:var(--on-ink-muted)}
.variance{font-size:11px;background:var(--subtle);color:var(--ink-2)}.variance.bad{background:var(--negative-bg);color:var(--negative)}.variance.good{background:var(--positive-bg);color:var(--positive)}
.dark .variance{background:#3d2a24;color:#efae9f}.dark .variance.good{background:#263c2d;color:#a9d6bb}
.track{background:var(--subtle)}.track i{background:var(--ink)}.dark .track{background:#4a463f}.dark .track i{background:var(--on-ink-muted)}
.story,.report-panel,.profile-bridge,.import-main,.import-info,.empty{background:var(--surface);border-color:var(--line);border-radius:8px}
.story h2{font:600 18px/1.35 var(--sans);letter-spacing:-.015em}.story p{font-size:13px;line-height:1.6;color:var(--ink-2)}
.driver{font-size:12px;grid-template-columns:180px minmax(60px,1fr) 96px}.driver strong{font-size:12px}.driver .bar{background:var(--subtle);height:6px}.driver .bar i{height:6px;background:var(--negative)}.driver .bar i.good{background:var(--positive)}
.good-text{color:var(--positive)}.bad-text,.issues{color:var(--negative)}
.section-header{border-color:var(--line)}.section-header h2,.profile-bridge .section-header h2,.metric-grid .section-header h2,.import-main h2,.import-info h2,.validation h3,.empty h2{font:600 16px/1.3 var(--sans);letter-spacing:-.015em}
.report-table{font-size:13px}.report-table th{font-size:11px;letter-spacing:.04em;color:var(--muted)}.report-table td,.report-table th{border-color:#e9e5dc}
.report-table .summary td,.bridge-table .summary td{background:var(--subtle)}.report-table .total td{background:var(--ink);color:white;height:36px}.report-table tbody tr.total:hover td{background:#302e28}
.report-table .minor td{background:#faf9f6;color:var(--ink-2)}.report-table tbody tr:hover td{background:#f7f5f1}.report-table td.share{color:var(--muted);font-size:11px}
.report-table .row-link{color:inherit}.metric-value{font-size:14px}.metric-formula{line-height:1.45}
.file-options,.import-info h3,.source-profile,.history-item,.validation,.structure-list li{border-color:var(--line)}
.file-row small,.file-row .file-count,.file-upload,.file-upload input,.history-item,.history-item button,.check-list li,.impact-grid small,.mapping-caption{font-size:11px;color:var(--muted)}
.file-upload{border-color:var(--control-line);background:#faf9f6;border-radius:6px}.impact-grid{background:var(--bg)}.impact-grid strong{font:600 20px/1.2 var(--sans);color:var(--ink)}
dialog{border-color:var(--line);border-radius:8px;box-shadow:0 8px 24px rgb(31 30 27/.12)}.dialog-head{border-color:var(--line)}.dialog-head h2{font:600 20px/1.3 var(--sans)}.detail-summary strong{font:600 28px/1.2 var(--sans)}.detail-summary span{color:var(--muted);font-size:11px}
#flash{border-color:var(--positive)}#flash.error{border-color:var(--negative)}footer{color:var(--muted);font-size:11px;border-color:var(--line)}
.auth-page{background:var(--bg)}.auth-wordmark{font:600 22px/1.2 var(--sans);letter-spacing:-.03em}.auth-wordmark span{font-size:10px;letter-spacing:.08em;margin-top:6px}.auth-brand-caption{font-size:12px}
.auth-card{border-color:var(--line);border-radius:8px}.auth-card h1{font:600 24px/1.25 var(--sans)}.auth-progress .current{border-color:var(--accent);color:var(--ink)}.auth-error{color:var(--negative);border-color:var(--negative);background:var(--negative-bg)}.auth-field input{border-color:var(--control-line)}
.auth-choice,.auth-backup,.auth-manual{border-color:var(--line)}.auth-code,.auth-manual code,.auth-backup code{font-family:ui-monospace,"SF Mono",Menlo,Consolas,monospace}.auth-check input{accent-color:var(--accent)}
@media(min-width:1600px){main{max-width:1440px}.kpi-value{font-size:28px}.dark .kpi-value{font-size:32px}}
@media(max-width:1100px){.driver{grid-template-columns:140px minmax(40px,1fr) 90px;gap:8px}.scope-fields{flex-wrap:wrap}.profile-field{min-width:210px}}
@media(max-width:800px){main{padding:18px 16px}.nav{border-bottom:1px solid var(--line)}.logo{font-size:18px;letter-spacing:-.03em}.logo small{font-size:9px}.nav button,.nav button:first-of-type{font-size:11px;padding:6px;min-height:44px}.scope-field,.profile-field{min-width:0}.scope-field select{min-height:30px}.kpi{min-height:0;padding:16px 18px}.kpi-value{font-size:28px}.dark .kpi-value{font-size:32px}.story h2{font-size:18px}.story p{font-size:12px}.driver{grid-template-columns:130px minmax(35px,1fr) 84px;font-size:11px}.driver strong{font-size:11px}.report-table .row-link{font-size:12px}.pnl-table.is-comparison .row-link{font-size:11px}.pnl-table .num{font-size:11px}.pnl-table.is-comparison .num{font-size:10px}.section-header h2,.profile-bridge .section-header h2,.metric-grid .section-header h2{font-size:16px}.navfoot{display:none}.header-actions{gap:8px;flex-wrap:wrap}.scope-fields{display:grid;grid-template-columns:1fr}.dialog-head h2{font-size:18px}}
@media(max-width:360px){.driver{grid-template-columns:110px minmax(25px,1fr) 78px;gap:6px}.logo small{font-size:8px}.nav{gap:8px}.nav button,.nav button:first-of-type{font-size:10px;padding:4px}}

/* Independent R2: total contrast and usable narrow tables. */
.report-table .total td.share{color:var(--on-ink-muted)}
.pnl-table.is-comparison>thead>tr>th:last-child{white-space:normal}
@media(max-width:800px){.nav{flex-wrap:wrap;gap:8px}.nav nav{width:100%;margin-top:4px}.nav nav button{flex:1;white-space:normal}.logo small{font-size:11px}.pnl-table.is-comparison .num,.unit-list table .num,.bridge-table.is-comparison .num,.mobile-budget,.mobile-budget summary{font-size:11px}.mobile-budget summary{min-height:44px;display:list-item;padding-block:12px}.report-table .row-expand{min-height:44px;min-width:44px}.report-panel{overflow-x:auto}.pnl-table.is-comparison{min-width:0}.pnl-table.is-comparison .num{padding-inline:6px}}
@media(max-width:360px){.logo small,.nav button,.nav button:first-of-type{font-size:11px}}

/* R3: retain both comparison numbers at 320px without shrinking type. */
@media(max-width:359px){.pnl-table.is-comparison>thead>tr>th:first-child,.unit-table.is-comparison>thead>tr>th:first-child{width:36%}.pnl-table.is-comparison>thead>tr>th:nth-child(3),.pnl-table.is-comparison>thead>tr>th:nth-child(4),.unit-table.is-comparison>thead>tr>th:nth-child(3),.unit-table.is-comparison>thead>tr>th:nth-child(4){width:32%}}
