:root { --ink:#132e27; --forest:#12513f; --forest-2:#1d674f; --forest-deep:#0b342a; --gold:#c99a36; --mint:#e6f0eb; --cream:#fff3cd; --wet:#e6f1f5; --wet-strong:#cfe5dc; --dry:#fbf0df; --dry-strong:#efd7ad; --line:#cfddd5; --page:#f5f7f5; --muted:#62746d; --white:#fff; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
body { margin:0; background:var(--page); color:var(--ink); font-family:"Segoe UI", Arial, sans-serif; font-size:15px; }
button, input, select { font:inherit; }
button { cursor:pointer; }
.app-shell { max-width:1660px; margin:0 auto; padding:0 28px 48px; }
.topbar { display:flex; justify-content:space-between; align-items:center; gap:24px; min-height:106px; margin:0 -28px; padding:0 28px; border-bottom:3px solid var(--gold); background:linear-gradient(118deg, #0b342a, #12513f 70%, #1d674f); color:#fff; box-shadow:0 3px 10px rgba(9,48,38,.13); }.brand-lockup { display:flex; align-items:center; gap:12px; }.brand-mark { display:grid; place-items:center; width:45px; height:45px; border:1px solid rgba(255,255,255,.58); border-radius:50%; color:var(--gold); font-family:Georgia, 'Times New Roman', serif; font-size:27px; font-weight:700; line-height:1; }.topbar .eyebrow { color:#f2d588; }.topbar h1 { color:#fff; }
.eyebrow { margin:0 0 4px; color:var(--forest-2); font-size:11px; font-weight:800; letter-spacing:.13em; }
h1, h2, p { margin-top:0; } h1 { margin-bottom:0; font-family:Georgia, 'Times New Roman', serif; font-size:28px; letter-spacing:-.02em; } h2 { margin-bottom:6px; font-size:21px; letter-spacing:-.01em; }
.muted { color:var(--muted); margin-bottom:0; line-height:1.35; }
.saved-input-status { margin:.35rem 0; color:var(--forest); font-weight:800; }
.button { border:0; border-radius:7px; padding:11px 16px; font-weight:700; transition:background .15s, border-color .15s; }
.button-secondary { background:var(--white); color:var(--forest); border:1px solid #98b8aa; } .button-secondary:hover { background:var(--mint); }.topbar .button-secondary { border-color:rgba(255,255,255,.55); background:rgba(255,255,255,.07); color:#fff; }.topbar .button-secondary:hover { background:rgba(255,255,255,.16); }
.import-hero { max-width:1000px; margin:86px auto; text-align:center; }.import-hero h2 { font-size:34px; margin-bottom:12px; }.import-hero-copy>p:last-child { color:var(--muted); font-size:17px; max-width:700px; margin:0 auto 30px; line-height:1.5; }
.drop-zone { display:grid; justify-items:center; gap:8px; padding:40px 24px; border:2px dashed #77a08f; background:#fbfdfc; border-radius:12px; color:var(--forest); cursor:pointer; transition:.15s; }.drop-zone strong { font-size:20px; }.drop-zone span { color:var(--muted); }.drop-zone.is-dragging { background:var(--mint); border-color:var(--forest); transform:scale(1.01); }.import-note { color:var(--muted); font-size:13px; margin:18px 0 0; }
.workspace { padding-top:26px; }.panel, .segment-panel { background:var(--white); border:1px solid var(--line); border-radius:10px; box-shadow:0 1px 1px rgba(12,45,35,.025); }.report-toolbar { display:flex; justify-content:space-between; align-items:center; gap:28px; padding:20px 22px; }.report-toolbar h2 { margin:0; }.toolbar-controls, .item-filters { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }.field-label, .item-filters label, .rank-control { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:700; }.select-control, .text-control, .vat-field input { min-height:38px; background:#fff6d9; border:1px solid #d6ae50; border-radius:5px; padding:7px 30px 7px 10px; color:var(--ink); font-weight:700; }.select-control { min-width:160px; }.text-control { width:190px; padding-right:10px; background:#fff; border-color:#a9c2b6; }.collapsible-panel { margin-top:18px; padding:20px 22px; }.section-heading { display:flex; justify-content:space-between; align-items:start; gap:22px; margin-bottom:15px; }.section-heading h2 { margin-bottom:5px; }.button-group { display:flex; gap:8px; flex-wrap:wrap; }.status-message { background:#fff5d8; border-left:3px solid #b77c0d; color:#6d4c0b; padding:10px 12px; margin:0 0 14px; border-radius:3px; font-size:13px; }.sheet-list { border-top:1px solid var(--line); }.sheet-row { display:grid; grid-template-columns:20px minmax(200px,1fr) minmax(130px,.7fr) 92px 105px; align-items:center; gap:10px; padding:10px 7px; border-bottom:1px solid #e7eeea; cursor:pointer; }.sheet-row:hover, .sheet-row.is-selected { background:#f0f7f3; }.sheet-row.is-disabled { opacity:.5; cursor:not-allowed; }.sheet-name { font-weight:700; }.sheet-origin { color:var(--muted); font-size:13px; }.sheet-tag { display:inline-grid; justify-self:start; padding:3px 7px; border-radius:999px; background:#e2eee8; color:var(--forest); font-weight:700; font-size:11px; }.sheet-row strong { text-align:right; font-size:13px; }
.vat-field { display:grid; grid-template-columns:auto 100px; align-items:center; gap:8px; color:var(--forest); font-size:13px; font-weight:800; }.vat-field input { min-height:36px; padding:5px 8px; text-align:right; }.mapping-table-wrap { max-height:390px; }.table-wrap { overflow:auto; border:1px solid var(--line); border-radius:6px; }.data-table { width:100%; min-width:720px; border-collapse:collapse; }.data-table th { background:var(--forest-2); color:#fff; padding:10px 9px; font-size:12px; text-align:left; white-space:nowrap; }.data-table td { padding:9px; border-bottom:1px solid #dce7e1; vertical-align:middle; }.data-table tbody tr:hover { background:#f6faf8; }.data-table tfoot { font-weight:800; background:#e8f1ec; }.data-table tfoot th, .data-table tfoot td { padding:10px 9px; border-top:2px solid #9db9ab; }.number { text-align:right !important; white-space:nowrap; }.mapping-table td:first-child { font-weight:700; }.table-select, .multiplier-input { width:150px; min-height:32px; padding:5px 8px; border-radius:4px; border:1px solid #c7a449; background:#fff5d4; }.multiplier-input { width:105px; text-align:right; }
.mapping-table tbody tr.is-in-current-period { background:#edf7f1; }.mapping-table tbody tr.is-outside-current-period { color:#65736d; background:#fbfcfb; }.mapping-period-status { display:inline-flex; align-items:center; min-width:132px; padding:4px 8px; border-radius:999px; color:#53635d; background:#edf1ef; font-size:11px; font-weight:800; white-space:nowrap; }.mapping-period-status.is-included { color:#15583f; background:#cfe9db; }.mapping-table tbody tr.is-outside-current-period .table-select, .mapping-table tbody tr.is-outside-current-period .multiplier-input { background:#fff8e6; }
.overview-section { padding-top:32px; }.standalone-heading { margin-bottom:14px; }.sales-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }.rate-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; margin-top:14px; }.metric-card { position:relative; width:100%; min-height:142px; overflow:hidden; border:1px solid #92ae9f; border-radius:8px; background:#fff; padding:0; color:var(--ink); text-align:inherit; transition:transform .15s, box-shadow .15s, border-color .15s; }.metric-card:hover { transform:translateY(-2px); border-color:#276c56; box-shadow:0 5px 14px rgba(18,81,63,.13); }.metric-card.is-performance-focus { border:3px solid #c99727; box-shadow:0 0 0 2px #fff4cf; }.metric-card p { margin:0; padding:9px 12px; color:#fff; background:var(--forest); font-size:13px; font-weight:800; text-align:center; }.metric-card>strong { display:block; padding:17px 14px 10px; color:#104f3c; font-size:27px; text-align:center; white-space:nowrap; }.metric-card.sales-inc>strong { color:#0d4635; font-size:32px; }.metric-card.sales-inc { background:#e2eee8; }.metric-card.sales-ex { background:#fff0c9; }.metric-card.covers { background:#eef5f1; }.metric-card.sph-overall { background:#fff0ca; }.metric-card.sph-wet { background:#e2efe9; }.metric-card.sph-dry { background:#f9ead9; }.metric-card.drinks { background:#e3f0f6; }.card-details { display:flex; justify-content:center; gap:18px; padding:0 14px 14px; color:#375d51; font-size:13px; }.card-details span { display:grid; gap:2px; text-align:center; }.card-details b { color:var(--ink); }.metric-card:not(.sales-inc):not(.sales-ex) .card-details { display:block; text-align:center; color:var(--muted); font-style:italic; }.metric-card-hint { display:block; padding:0 10px 9px; color:#276c56; font-size:11px; font-weight:800; letter-spacing:.03em; text-align:center; text-transform:uppercase; }
.ranking-section { padding-top:32px; }.rank-control { min-width:180px; color:var(--forest); }.segment-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.segment-panel { overflow:hidden; }.segment-title { display:flex; justify-content:space-between; align-items:center; padding:13px 16px; background:var(--forest); color:#fff; font-weight:800; }.segment-title strong { font-size:17px; }.wet-panel .rank-table tbody tr.top-five { background:var(--wet-strong); }.dry-panel .rank-table tbody tr.top-five { background:var(--dry-strong); }.rank-number { display:inline-grid; place-items:center; width:26px; height:26px; border-radius:50%; background:#dbe9e1; color:var(--forest); font-weight:800; }.top-five .rank-number { background:var(--forest); color:#fff; }.empty-table { margin:0; padding:25px; color:var(--muted); text-align:center; }.item-panel { margin-top:28px; padding:20px 22px; }.item-segment-filter { margin:0; padding:0; border:0; }.item-segment-filter legend { padding:0; color:var(--forest); font-size:12px; font-weight:800; }.filter-segment-buttons { display:flex; overflow:hidden; border:1px solid #b99742; border-radius:5px; background:#fff; }.filter-segment-buttons button { min-height:38px; padding:7px 11px; border:0; border-right:1px solid #d9bd73; background:#fff8e1; color:#56400b; font-size:13px; font-weight:800; }.filter-segment-buttons button:last-child { border-right:0; }.filter-segment-buttons button:hover { background:#f5e8bf; }.filter-segment-buttons button.is-active { background:var(--forest); color:#fff; }.segment-pill { display:inline-block; padding:4px 7px; border-radius:999px; font-size:11px; font-weight:800; }.segment-pill.wet { background:#dceee7; color:#195843; }.segment-pill.dry { background:#f4e1c0; color:#77510b; }.segment-pill.unclassified { background:#e7e9e8; color:#53615a; }.item-rank-table tbody tr.top-five { background:#ecf4ef; }
@media (max-width:1000px) { .app-shell { padding:0 16px 35px; }.topbar { min-height:84px; }.report-toolbar, .section-heading { align-items:stretch; flex-direction:column; }.toolbar-controls { align-items:stretch; }.sales-cards { grid-template-columns:1fr; }.rate-cards { grid-template-columns:repeat(2,1fr); }.segment-grid { grid-template-columns:1fr; }.sheet-row { grid-template-columns:20px minmax(160px,1fr) 86px; }.sheet-origin, .sheet-row strong { display:none; }.item-filters { display:grid; grid-template-columns:1fr 1fr; }.item-filters label:last-child { grid-column:1/-1; }.text-control { width:100%; } }
@media (max-width:620px) { .topbar { align-items:flex-start; padding:15px 0; }.topbar .button { padding:9px 11px; }.topbar h1 { font-size:22px; }.import-hero { margin:50px auto; }.import-hero h2 { font-size:28px; }.rate-cards { grid-template-columns:1fr; }.item-filters { grid-template-columns:1fr; }.item-filters label:last-child { grid-column:auto; }.sheet-row { grid-template-columns:20px minmax(130px,1fr) 78px; }.sheet-tag { font-size:9px; } }

.period-panel { margin-top:18px; padding:20px 22px; }
.library-actions { display:flex; align-items:end; gap:10px; flex-wrap:wrap; }
.date-control { min-height:38px; padding:7px 10px; border:1px solid #a9c2b6; border-radius:5px; background:#fff; color:var(--ink); font-weight:700; }
.period-controls { display:flex; align-items:end; gap:14px; flex-wrap:wrap; padding-top:14px; border-top:1px solid var(--line); }
.period-controls label { display:grid; gap:5px; color:var(--muted); font-size:12px; font-weight:800; }
.quick-period-buttons { display:flex; gap:7px; flex-wrap:wrap; }
.quick-period-buttons button { min-height:38px; padding:7px 11px; border:1px solid #b6cabf; border-radius:5px; background:#edf5f0; color:var(--forest); font-size:13px; font-weight:800; }
.quick-period-buttons button:hover { background:#dcece3; }
.period-summary { padding:9px 12px; border-left:3px solid var(--forest); color:var(--forest); background:#edf5f0; font-size:13px; }
.active-period-display { display:grid; gap:3px; justify-items:center; margin:18px 0 4px; padding:14px 18px; border:2px solid #1b624c; border-radius:8px; background:#e5f1eb; color:#0d4b38; text-align:center; }.active-period-display span { font-size:11px; font-weight:900; letter-spacing:.12em; }.active-period-display strong { font-size:22px; line-height:1.2; }.active-period-display:has(strong:empty) { display:none; }
.active-period-display .period-summary { width:auto; margin:2px 0 0; padding:0; border:0; background:transparent; color:#356653; font-size:12px; font-weight:800; }
.year-month-strip { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:stretch; gap:0; margin:0 0 16px; overflow:hidden; border:1px solid #7eaa96; border-radius:0 0 8px 8px; background:#f5faf7; }.year-month-strip-label { display:grid; place-items:center; align-content:center; gap:5px; min-width:146px; padding:11px 13px; border:0; border-right:2px solid #d9ad42; border-radius:0 0 0 7px; background:#1b624c; box-shadow:inset 0 0 0 2px rgba(255,255,255,.16), 2px 0 5px rgba(11,52,42,.16); color:#fff; font-family:"Segoe UI",Arial,sans-serif; text-align:center; transition:background .15s, box-shadow .15s, transform .15s; }.year-month-strip-label small { color:#fff1bd; font-size:12px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.year-month-strip-label strong { font-size:16px; line-height:1.15; }.year-month-strip-label:hover { background:#0f4937; box-shadow:inset 0 0 0 2px rgba(255,255,255,.25), 2px 2px 7px rgba(11,52,42,.25); transform:translateY(-1px); }.year-month-strip-label:focus-visible, .year-month-day-button:focus-visible { outline:3px solid #f1c859; outline-offset:-3px; }.year-month-strip>div { display:grid; grid-template-columns:repeat(12,minmax(72px,1fr)); min-width:0; }.year-month-item { display:grid; grid-template-rows:minmax(70px,1fr) 38px; min-width:0; border-left:1px solid #c5d9ce; background:#fbfdfc; }.year-month-button { display:grid; place-items:center; gap:3px; width:100%; min-height:70px; padding:8px 4px; border:0; background:transparent; color:#476b5c; font-family:"Segoe UI",Arial,sans-serif; text-align:center; }.year-month-button:hover { background:#e3f0e8; color:#154e3a; }.year-month-button b { font-size:17px; line-height:1; }.year-month-button small { font-size:11px; font-weight:800; }.year-month-item.has-sales .year-month-button b::after { display:inline-block; width:6px; height:6px; margin:0 0 2px 5px; border-radius:50%; background:#b58118; content:""; }.year-month-item.is-active .year-month-button { background:#1d674f; color:#fff; box-shadow:inset 0 -4px 0 #c89a2b; }.year-month-item.is-active .year-month-button b::after { background:#ffe19c; }.year-month-day-button { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; min-height:38px; padding:5px 3px; border:0; border-top:1px solid #b0cbbc; background:#1d674f; color:#fff; font-family:Arial,"Segoe UI",sans-serif; font-size:13px; font-weight:700; letter-spacing:.01em; line-height:1; text-align:center; }.calendar-button-icon { position:relative; display:inline-block; width:12px; height:11px; border:1.5px solid currentColor; border-radius:1px; }.calendar-button-icon::before { position:absolute; top:2px; left:-1.5px; width:12px; border-top:1.5px solid currentColor; content:""; }.calendar-button-icon::after { position:absolute; top:-3px; left:2px; width:5px; height:3px; border-right:1.5px solid currentColor; border-left:1.5px solid currentColor; content:""; }.year-month-day-button:hover { background:#0e4937; color:#fff; }.year-month-item.is-active .year-month-day-button { border-top-color:#e5c76b; background:#164f3c; color:#fff; }
.year-month-strip.is-range .range-month-list { grid-template-columns:repeat(var(--range-month-count), minmax(90px,1fr)); min-width:0; overflow-x:auto; scrollbar-color:#7da996 #edf5f0; }.year-month-strip.is-range .range-month-list::-webkit-scrollbar { height:10px; }.year-month-strip.is-range .range-month-list::-webkit-scrollbar-thumb { border:2px solid #edf5f0; border-radius:999px; background:#7da996; }
.week-day-strip { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:stretch; gap:0; margin:0 0 16px; overflow:hidden; border:1px solid #7eaa96; border-radius:0 0 8px 8px; background:#f5faf7; }.week-day-strip-total { display:grid; place-items:center; align-content:center; gap:5px; min-width:146px; padding:11px 13px; border:0; border-right:2px solid #d9ad42; border-radius:0 0 0 7px; background:#1b624c; box-shadow:inset 0 0 0 2px rgba(255,255,255,.16), 2px 0 5px rgba(11,52,42,.16); color:#fff; font-family:"Segoe UI",Arial,sans-serif; text-align:center; }.week-day-strip-total small { color:#fff1bd; font-size:12px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.week-day-strip-total strong { font-size:16px; line-height:1.15; }.week-day-strip-total:hover { background:#0f4937; box-shadow:inset 0 0 0 2px rgba(255,255,255,.25), 2px 2px 7px rgba(11,52,42,.25); transform:translateY(-1px); }.week-day-strip-total.is-active { background:#0e4937; }.week-day-strip>div { display:grid; grid-template-columns:repeat(7,minmax(76px,1fr)); min-width:0; }.week-day-strip-day { display:grid; place-items:center; align-content:center; gap:3px; min-height:94px; padding:9px 4px; border:0; border-left:1px solid #c5d9ce; background:#fbfdfc; color:#174f3d; font-family:"Segoe UI",Arial,sans-serif; text-align:center; }.week-day-strip-day:hover { background:#e3f0e8; color:#0e4937; }.week-day-strip-day b { color:#537468; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.week-day-strip-day strong { font-size:22px; line-height:1; }.week-day-strip-day small { min-height:12px; color:#587166; font-size:10px; font-weight:800; }.week-day-strip-day.has-sales strong::after { display:block; width:6px; height:6px; margin:4px auto 0; border-radius:50%; background:#b68119; content:""; }.week-day-strip-day.is-active { background:#1d674f; color:#fff; box-shadow:inset 0 -4px 0 #c89a2b; }.week-day-strip-day.is-active b, .week-day-strip-day.is-active small { color:#dcefe4; }.week-day-strip-day.is-active.has-sales strong::after { background:#ffe19c; }.week-day-strip-total:focus-visible, .week-day-strip-day:focus-visible { outline:3px solid #f1c859; outline-offset:-3px; }
.month-calendar-dialog { width:min(760px, calc(100vw - 36px)); max-height:min(790px, calc(100vh - 36px)); padding:0; overflow:auto; border:1px solid #7ca895; border-radius:12px; background:#f7fbf8; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.3); }.month-calendar-dialog::backdrop { background:rgba(10,35,27,.5); }.month-calendar-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:22px 24px 17px; border-bottom:1px solid #cbded3; background:linear-gradient(120deg,#e1f0e8,#fbfdfc); }.month-calendar-heading .eyebrow { margin-bottom:5px; }.month-calendar-heading h3 { margin:0 0 5px; color:#174f3d; font-size:24px; }.month-calendar-heading p:last-child { max-width:550px; margin:0; color:#587166; font-size:13px; font-weight:700; line-height:1.45; }.month-calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:7px; padding:19px 22px 23px; }.month-calendar-weekday { padding:4px 2px 7px; color:#537468; font-size:11px; font-weight:900; letter-spacing:.05em; text-align:center; text-transform:uppercase; }.month-calendar-empty { min-height:75px; border:1px solid transparent; }.month-calendar-day { display:grid; place-items:center; gap:2px; min-height:75px; padding:7px 3px; border:1px solid #c7dbd0; border-radius:7px; background:#fff; color:#174f3d; font-family:"Segoe UI",Arial,sans-serif; text-align:center; }.month-calendar-day:hover { border-color:#357a5f; background:#e4f1e9; transform:translateY(-1px); }.month-calendar-day span { color:#6e897c; font-size:9px; font-weight:900; text-transform:uppercase; }.month-calendar-day strong { font-size:20px; line-height:1; }.month-calendar-day small { min-height:12px; color:#6e8378; font-size:9px; font-weight:800; }.month-calendar-day.has-sales strong::after { display:block; width:6px; height:6px; margin:4px auto 0; border-radius:50%; background:#b68119; content:""; }.month-calendar-day.is-active { border-color:#1d674f; background:#1d674f; color:#fff; box-shadow:0 0 0 2px rgba(28,107,80,.16); }.month-calendar-day.is-active span, .month-calendar-day.is-active small { color:#dcefe4; }.month-calendar-day.is-active.has-sales strong::after { background:#ffe19c; }
.week-calendar-dialog { width:min(1080px, calc(100vw - 36px)); max-height:min(840px, calc(100vh - 36px)); padding:0; overflow:auto; border:1px solid #7ca895; border-radius:12px; background:#f7fbf8; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.3); }.week-calendar-dialog::backdrop { background:rgba(10,35,27,.5); }.week-calendar-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:22px 24px 17px; border-bottom:1px solid #cbded3; background:linear-gradient(120deg,#e1f0e8,#fbfdfc); }.week-calendar-heading .eyebrow { margin-bottom:5px; }.week-calendar-heading h3 { margin:0 0 5px; color:#174f3d; font-size:24px; }.week-calendar-heading p:last-child { max-width:650px; margin:0; color:#587166; font-size:13px; font-weight:700; line-height:1.45; }.week-calendar-year-field { display:flex; align-items:center; justify-content:center; gap:10px; margin:18px 22px 0; color:#174f3d; font-size:13px; font-weight:900; }.week-calendar-year-field .select-control { min-width:145px; }.week-calendar-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; padding:18px 22px 24px; }.week-calendar-month { overflow:hidden; border:1px solid #c8ddd1; border-radius:8px; background:#fff; }.week-calendar-month h4 { margin:0; padding:8px 10px; background:#e8f3ed; color:#1a5a45; font-size:14px; text-align:center; }.week-calendar-month>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:6px; padding:8px; }.week-calendar-week { display:grid; place-items:center; gap:2px; min-height:48px; padding:5px 3px; border:1px solid #c7dbd0; border-radius:5px; background:#fbfdfc; color:#1b5a45; font-family:"Segoe UI",Arial,sans-serif; text-align:center; }.week-calendar-week:hover { border-color:#317557; background:#e3f0e8; transform:translateY(-1px); }.week-calendar-week strong { font-size:13px; line-height:1; }.week-calendar-week small { min-height:11px; color:#6d867b; font-size:9px; font-weight:800; }.week-calendar-week.has-sales strong::after { display:block; width:6px; height:6px; margin:3px auto 0; border-radius:50%; background:#b68119; content:""; }.week-calendar-week.is-active { border-color:#1d674f; background:#1d674f; color:#fff; box-shadow:0 0 0 2px rgba(28,107,80,.16); }.week-calendar-week.is-active small { color:#dcefe4; }.week-calendar-week.is-active.has-sales strong::after { background:#ffe19c; }.week-calendar-empty-state { grid-column:1 / -1; margin:20px; color:#587166; font-weight:700; text-align:center; }
.period-feature-actions { display:grid; justify-items:center; gap:9px; margin-top:16px; padding:14px; border:1px solid #c8d9d0; border-radius:8px; background:#fbfdfc; }.period-feature-actions .eyebrow { margin:0; }.period-feature-button-row { display:flex; justify-content:center; gap:10px; flex-wrap:wrap; }.period-feature-button { display:grid; grid-template-columns:31px minmax(0,1fr); align-items:center; gap:9px; min-width:205px; padding:10px 13px; border:1px solid #9dbbab; border-left:4px solid var(--forest-2); border-radius:7px; background:#eef6f1; color:#104d39; font:inherit; text-align:left; text-decoration:none; transition:transform .15s, box-shadow .15s, background .15s; }.period-feature-button:hover { background:#dceee5; box-shadow:0 4px 12px rgba(18,81,63,.13); transform:translateY(-1px); }.period-feature-button>b { display:grid; place-items:center; width:30px; height:30px; border-radius:50%; background:var(--forest); color:#fff; font-size:17px; line-height:1; }.period-feature-button>span { display:grid; gap:2px; }.period-feature-button strong { font-size:14px; }.period-feature-button small { color:#567066; font-size:11px; font-weight:700; line-height:1.2; }.period-feature-button[data-action-tone="pnl"] { border-left-color:#315884; background:#edf3fa; }.period-feature-button[data-action-tone="pnl"]>b { background:#315884; }.period-feature-button[data-action-tone="budget"] { border-left-color:#9a6d1d; background:#fff4d6; }.period-feature-button[data-action-tone="targets"] { border-left-color:#8c5531; background:#f9ecdf; }.period-feature-button[data-action-tone="targets"]>b { background:#8c5531; }
.sheet-date { color:var(--forest); font-size:12px; font-weight:800; }
.touch-office-refresh-dialog { width:min(720px,calc(100vw - 36px)); max-height:calc(100vh - 36px); padding:0; overflow:hidden; border:1px solid #92ad9d; border-top:4px solid #b98120; border-radius:12px; background:#fbfdfc; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.32); }.touch-office-refresh-dialog::backdrop { background:rgba(10,35,27,.56); }.touch-office-refresh-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:21px 24px 17px; border-bottom:1px solid #d4e2da; background:linear-gradient(120deg,#fff5d7,#fbfdfc 58%,#e3f1e9); }.touch-office-refresh-heading .eyebrow { margin-bottom:5px; color:#866018; }.touch-office-refresh-heading h3 { margin:0 0 5px; color:#174f3d; font-size:24px; line-height:1.15; }.touch-office-refresh-heading .muted { max-width:580px; margin:0; }.touch-office-refresh-content { max-height:calc(100vh - 210px); overflow:auto; padding:21px 24px; }.touch-office-refresh-card { display:grid; gap:15px; }.touch-office-refresh-range { display:grid; gap:4px; padding:14px 16px; border:1px solid #d8bf80; border-left:4px solid #bb8621; border-radius:7px; background:#fff8e6; }.touch-office-refresh-range span, .touch-office-refresh-review>span { color:#7d5b19; font-size:11px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.touch-office-refresh-range strong { color:#174f3d; font-size:22px; line-height:1.15; }.touch-office-refresh-card ol { display:grid; gap:10px; margin:0; padding-left:23px; color:#365b4d; font-size:14px; font-weight:650; line-height:1.45; }.touch-office-refresh-note, .touch-office-refresh-warning, .touch-office-refresh-success, .touch-office-refresh-error { margin:0; padding:11px 12px; border-left:4px solid #9a7221; border-radius:4px; background:#fff6dc; color:#74531a; font-size:13px; font-weight:700; line-height:1.42; }.touch-office-refresh-warning { border-left-color:#b77b20; background:#fff8e9; }.touch-office-refresh-success { border-left-color:#2b765a; background:#ebf6ef; color:#236148; }.touch-office-refresh-error { border-left-color:#b13e3e; background:#fdf0ef; color:#922f33; }.touch-office-refresh-review { display:grid; gap:3px; padding:15px 16px; border:1px solid #bdd7c8; border-radius:8px; background:#f1f8f4; }.touch-office-refresh-review strong { color:#174f3d; font-size:32px; line-height:1; }.touch-office-refresh-review small { color:#587368; font-size:12px; font-weight:750; line-height:1.35; }.touch-office-refresh-summary { display:flex; flex-wrap:wrap; gap:8px; }.touch-office-refresh-summary span { padding:8px 10px; border:1px solid #d3e0d8; border-radius:5px; background:#fff; color:#557166; font-size:12px; font-weight:700; }.touch-office-refresh-summary b { color:#174f3d; }.touch-office-refresh-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:9px; padding:14px 24px 20px; border-top:1px solid #d4e2da; background:#f8fbf9; }.touch-office-refresh-actions a { text-decoration:none; }.touch-office-refresh-actions a:first-child { margin-right:auto; }
@media (max-width:640px) { .touch-office-refresh-dialog { width:calc(100vw - 20px); max-height:calc(100vh - 20px); }.touch-office-refresh-heading, .touch-office-refresh-content, .touch-office-refresh-actions { padding-right:16px; padding-left:16px; }.touch-office-refresh-content { max-height:calc(100vh - 196px); }.touch-office-refresh-actions { justify-content:stretch; }.touch-office-refresh-actions .button { flex:1 1 auto; text-align:center; }.touch-office-refresh-actions a:first-child { width:100%; margin-right:0; } }
@media (max-width:1000px) { .library-actions { align-items:stretch; }.period-controls { align-items:stretch; }.period-controls label { min-width:170px; }.period-summary { width:100%; } }
@media (max-width:1050px) { .year-month-strip { grid-template-columns:1fr; overflow-x:auto; }.year-month-strip-label { min-height:38px; }.year-month-strip>div { min-width:900px; }.week-day-strip { grid-template-columns:1fr; overflow-x:auto; }.week-day-strip-total { min-height:44px; }.week-day-strip>div { min-width:620px; } }
@media (max-width:820px) { .week-calendar-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.week-calendar-heading { padding:18px; } }
@media (max-width:620px) { .month-calendar-heading { padding:18px; }.month-calendar-heading h3 { font-size:21px; }.month-calendar-grid { gap:4px; padding:14px 11px 16px; }.month-calendar-day { min-height:62px; }.month-calendar-day strong { font-size:18px; }.month-calendar-day small { font-size:8px; }.month-calendar-empty { min-height:62px; } }

.period-panel { border:2px solid #a9c9ba; box-shadow:0 4px 16px rgba(18,81,63,.06); }
.period-panel .section-heading h2 { font-size:26px; }
.period-panel .muted { font-size:15px; }
#date-search-mode, .period-controls .date-control, .period-controls .select-control { min-height:46px; border:2px solid #7ca895; border-radius:7px; font-size:16px; }
.period-controls label { color:var(--forest); font-size:13px; }
.period-summary { font-size:14px; }
.settings-dialog { width:min(1220px, calc(100vw - 40px)); max-width:none; max-height:86vh; padding:0; border:1px solid #8cad9e; border-radius:12px; background:var(--page); color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.28); }
.settings-dialog::backdrop { background:rgba(10,35,27,.48); }
.settings-shell { padding:24px; }
.settings-dialog .mapping-table-wrap { max-height:58vh; background:#fff; }
.settings-actions { display:flex; align-items:end; gap:12px; }
@media (max-width:700px) { .settings-shell { padding:18px; }.settings-actions { align-items:stretch; flex-direction:column; }.period-panel .section-heading h2 { font-size:23px; } }

.period-panel .section-heading { align-items:center; flex-direction:column; text-align:center; margin-bottom:20px; }
.period-panel .library-actions { justify-content:center; align-items:end; }
.period-panel .field-label { color:var(--forest); font-size:14px; text-align:left; }
.period-panel #date-search-mode { min-width:215px; min-height:54px; font-size:18px; }
.period-panel .period-controls { justify-content:center; gap:18px; padding-top:18px; }
.period-panel .period-controls label { gap:7px; color:var(--forest); font-size:14px; text-align:left; }
.period-panel .period-controls .date-control, .period-panel .period-controls .select-control { min-height:50px; min-width:185px; font-size:17px; }
.sales-detail-action { display:flex; justify-content:center; padding:24px 0 2px; }
#sales-detail-button { min-width:180px; min-height:46px; border-width:2px; font-size:16px; }
.sales-overview-title-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }.sales-overview-title-row h2 { margin:0; }.overview-actions { display:flex; align-items:center; justify-content:flex-end; gap:12px; flex-wrap:wrap; }.sales-vat-switch { display:inline-flex; overflow:hidden; border:1px solid #6b9c8a; border-radius:7px; background:#fff; box-shadow:0 2px 5px rgba(13,70,52,.10); }.sales-vat-switch button { min-height:46px; padding:9px 16px; border:0; border-right:1px solid #b5cec2; background:#fff; color:#164f3c; font:900 14px/1.1 system-ui,sans-serif; cursor:pointer; }.sales-vat-switch button:last-child { border-right:0; }.sales-vat-switch button:hover { background:#edf6f1; }.sales-vat-switch button.is-selected { background:#1d674f; color:#fff; }.sales-vat-switch button:focus-visible { position:relative; z-index:1; outline:3px solid rgba(198,153,36,.45); outline-offset:-2px; }
@media (max-width:700px) { .period-panel .period-controls { justify-content:stretch; }.period-panel .period-controls label { min-width:100%; }.period-panel .period-controls .date-control, .period-panel .period-controls .select-control { width:100%; } }
@media (max-width:700px) { .active-period-display strong { font-size:18px; } }

.sales-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }
.metric-card.total-sales>strong { font-size:36px; }
.sales-inc .card-details b, .sales-ex .card-details b { font-size:16px; }
.sales-inc .card-details i, .sales-ex .card-details i { color:var(--forest); font-size:12px; font-style:normal; font-weight:800; }
.sales-mix { background:#eef4f1; }
.mix-values { display:grid; grid-template-columns:1fr 1fr; min-height:100px; }
.mix-values>span { display:grid; align-content:center; gap:3px; padding:12px; text-align:center; }
.mix-values>span + span { border-left:1px solid #a9c4b7; }
.mix-values span { color:#49675b; font-size:12px; font-weight:800; }
.mix-values strong { color:#10513d; font-size:26px; line-height:1.05; }
.mix-values b { color:var(--ink); font-size:13px; }
@media (max-width:1250px) { .sales-cards { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .sales-cards { grid-template-columns:1fr; } }

.period-panel .library-actions { align-items:center; }
.period-panel .search-by-label { align-self:center; color:var(--forest); font-size:18px; font-weight:800; }
.vat-input-wrap { position:relative; display:block; }
.vat-input-wrap input { width:100%; padding-right:28px !important; }
.vat-input-wrap b { position:absolute; top:50%; right:10px; transform:translateY(-50%); color:var(--forest); pointer-events:none; }

.performance-section { margin-top:22px; padding:22px; }.performance-section .section-heading { align-items:center; }.performance-focus { min-width:190px; display:grid; gap:3px; padding:10px 14px; border-left:4px solid #c99727; background:#fff3cd; text-align:right; }.performance-focus span { color:#5d6d66; font-size:12px; font-weight:800; }.performance-focus strong { color:#10513d; font-size:27px; }.performance-grid { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.85fr); gap:16px; }.performance-panel { min-height:300px; padding:16px; border:1px solid var(--line); border-radius:8px; background:#fbfdfc; }.performance-panel h3 { margin:0; color:#12513f; font-size:16px; }.performance-panel-heading, .performance-trend-heading { display:flex; justify-content:space-between; align-items:start; gap:12px; margin-bottom:14px; }.performance-trend-heading .button { min-height:34px; padding:6px 10px; white-space:nowrap; }.performance-chart-help { margin:4px 0 0; color:#63766e; font-size:11px; font-weight:700; }.performance-segment-filter { margin:0; padding:0; border:0; }.performance-segment-filter legend { padding:0; color:#5b7469; font-size:11px; font-weight:800; }.performance-segment-filter .filter-segment-buttons button { min-height:29px; padding:4px 8px; font-size:11px; }.performance-chart-scroll { overflow-x:auto; padding-bottom:5px; }.performance-chart { display:block; max-width:none; height:auto; }.performance-gridline { stroke:#d9e5df; stroke-width:1; }.performance-axis-label { fill:#63766e; font-family:Calibri, Aptos, Arial, sans-serif; font-size:11px; }.performance-axis-day { fill:#2e5b4c; font-weight:700; }.performance-line { fill:none; stroke:#1e765a; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }.performance-point-hit { fill:transparent; pointer-events:all; }.performance-point-control { cursor:pointer; }.performance-point { fill:#1e765a; stroke:#fff; stroke-width:2; transition:fill .15s, stroke .15s; }.performance-point-control.is-partial .performance-point { fill:#c78320; stroke:#fff4d0; }.performance-point-control:hover .performance-point, .performance-point-control:focus .performance-point { fill:#c99727; stroke:#79570e; stroke-width:3; }.performance-point-control.is-selected .performance-point { fill:#c99727; stroke:#79570e; stroke-width:3; }.performance-point-control:focus { outline:none; }.performance-point-detail { display:grid; grid-template-columns:minmax(120px,.75fr) auto minmax(150px,1fr); align-items:center; gap:10px; margin:8px 6px 0; padding:10px 12px; border:1px solid #c8ddd1; border-left:4px solid #c99727; border-radius:6px; background:#fff9e9; color:#3a5b4f; }.performance-point-detail span { font-size:12px; font-weight:900; }.performance-point-detail strong { color:#0f513c; font-size:18px; text-align:center; }.performance-point-detail small { color:#596f65; font-size:11px; font-weight:800; text-align:right; }.is-positive { color:#176343 !important; }.is-negative { color:#a83f35 !important; }.performance-driver-list { display:grid; gap:15px; padding-top:4px; }.performance-driver-row { display:grid; gap:6px; }.performance-driver-row>div:first-child { display:flex; justify-content:space-between; gap:12px; color:var(--ink); font-size:13px; }.performance-driver-row strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.performance-driver-row span { color:#1d674f; font-weight:800; white-space:nowrap; }.performance-bar-track { height:12px; overflow:hidden; border-radius:999px; background:#e3ece7; }.performance-bar-track span { display:block; height:100%; border-radius:inherit; background:#4b9275; }.performance-analysis-dialog { width:min(1340px,calc(100vw - 36px)); height:min(900px,calc(100vh - 36px)); max-height:none; padding:0; overflow:hidden; border:1px solid #7ca895; border-radius:12px; background:#f8fbf9; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.32); }.performance-analysis-dialog::backdrop { background:rgba(10,35,27,.56); }.performance-analysis-heading { display:flex; align-items:start; justify-content:space-between; gap:16px; padding:22px 26px 18px; border-bottom:1px solid #cbded3; background:linear-gradient(120deg,#e1f0e8,#fbfdfc); }.performance-analysis-heading .eyebrow { margin-bottom:5px; }.performance-analysis-heading h3 { margin:0 0 5px; color:#174f3d; font-size:25px; }.performance-analysis-heading .muted { max-width:760px; margin:0; }.performance-analysis-content { height:calc(100% - 111px); overflow:auto; padding:22px 26px 28px; }.performance-analysis-comparison-note { margin:0 0 14px; padding:10px 12px; border-left:4px solid #c78320; border-radius:5px; background:#fff5da; color:#765311; font-size:12px; font-weight:800; line-height:1.35; }.performance-analysis-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.performance-analysis-summary article { display:grid; gap:5px; min-height:116px; padding:14px 15px; border:1px solid #bfd5c9; border-radius:8px; background:#fff; }.performance-analysis-summary span { color:#557468; font-size:11px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.performance-analysis-summary strong { color:#104f3c; font-size:23px; line-height:1.12; }.performance-analysis-summary small { color:#5f756b; font-size:12px; font-weight:700; line-height:1.3; }.performance-analysis-chart, .performance-analysis-table-section { margin-top:18px; padding:17px; border:1px solid #cadfd4; border-radius:8px; background:#fff; }.performance-analysis-section-heading { display:flex; align-items:start; justify-content:space-between; gap:14px; margin-bottom:10px; }.performance-analysis-section-heading h4 { margin:0 0 4px; color:#164f3c; font-size:17px; }.performance-analysis-section-heading p { margin:0; color:#60766b; font-size:12px; font-weight:700; }.performance-chart-scroll.is-expanded { max-height:420px; }.performance-analysis-table-wrap { max-height:340px; }.performance-analysis-table { min-width:620px; }.performance-analysis-table tbody tr.is-selected { background:#fff4cf; }.performance-analysis-table .is-positive { font-weight:900; }.performance-analysis-table .is-negative { font-weight:900; }.performance-analysis-partial { display:block; margin-top:3px; color:#9b6713; font-size:10px; font-weight:900; text-transform:uppercase; }
@media (max-width:900px) { .performance-section .section-heading { align-items:stretch; flex-direction:column; }.performance-focus { text-align:left; }.performance-grid { grid-template-columns:1fr; }.performance-panel { min-height:250px; } }
 .performance-trend-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }.performance-day-view-toggle { display:flex; overflow:hidden; border:1px solid #9fbdaf; border-radius:6px; background:#fff; }.performance-day-view-toggle button { min-height:34px; padding:6px 9px; border:0; border-right:1px solid #c8ddd1; background:#f4f9f6; color:#265f4a; font:inherit; font-size:11px; font-weight:800; white-space:nowrap; }.performance-day-view-toggle button:last-child { border-right:0; }.performance-day-view-toggle button:hover { background:#e1f0e8; }.performance-day-view-toggle button.is-active { background:#1d674f; color:#fff; }.performance-extreme-label { fill:#835b0d; font-family:"Segoe UI",Arial,sans-serif; font-size:10px; font-weight:900; }.performance-extreme-label.is-low { fill:#a24839; }.performance-weekday-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin:9px 6px 0; }.performance-weekday-summary>span { display:grid; gap:2px; padding:8px 10px; border:1px solid #cfdfd6; border-radius:6px; background:#f7fbf8; }.performance-weekday-summary small { color:#5a766a; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.performance-weekday-summary b { color:#16523e; font-size:15px; }.performance-weekday-summary em { overflow:hidden; color:#687e74; font-size:10px; font-style:normal; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
@media (max-width:900px) { .performance-analysis-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.performance-analysis-dialog { width:calc(100vw - 24px); height:calc(100vh - 24px); }.performance-analysis-heading, .performance-analysis-content { padding-right:18px; padding-left:18px; } }
@media (max-width:620px) { .performance-trend-heading { align-items:stretch; flex-direction:column; }.performance-trend-actions { justify-content:space-between; }.performance-trend-heading .button { align-self:start; }.performance-point-detail { grid-template-columns:1fr; gap:4px; }.performance-point-detail strong, .performance-point-detail small { text-align:left; }.performance-weekday-summary { grid-template-columns:1fr; }.performance-analysis-summary { grid-template-columns:1fr; }.performance-analysis-heading h3 { font-size:21px; }.performance-analysis-content { height:calc(100% - 101px); padding-top:16px; }.performance-analysis-chart, .performance-analysis-table-section { padding:13px; } }
.performance-driver-note { margin:0 0 12px; color:#5b7469; font-size:12px; line-height:1.35; }

.toolbar-controls .button.is-active { background:var(--forest); border-color:var(--forest); color:#fff; box-shadow:0 2px 7px rgba(18,81,63,.18); }
.toolbar-controls .button, .overview-actions .button { display:inline-flex; align-items:center; justify-content:center; gap:8px; }
#sales-analysis-button::before, #replace-file-button::before, #settings-button::before, #performance-button::before, #customer-profile-button::before, #sales-detail-button::before { display:inline-grid; place-items:center; min-width:1em; color:currentColor; font-family:"Segoe UI Symbol","Segoe UI",sans-serif; font-size:1.08em; font-weight:700; line-height:1; }
#sales-analysis-button::before { content:"▦"; }
#replace-file-button::before { content:"⇧"; }
#settings-button::before { content:"⚙︎"; }
#performance-button::before { content:"↗"; }
#customer-profile-button::before { content:"👤"; }
#sales-detail-button::before { content:"▤"; }
.customer-profile-section { margin-top:22px; padding:22px; border-top:4px solid #b98525; background:linear-gradient(135deg,#fffdf7 0,#f8fcfa 44%,#edf6f1 100%); }.customer-profile-heading { margin-bottom:15px; }.customer-profile-hero { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:15px; padding:17px 19px; border:1px solid #bdd4c8; border-radius:9px; background:#fff; box-shadow:0 2px 7px rgba(18,81,63,.05); }.customer-profile-person { display:grid; place-items:center; width:54px; height:54px; border:1px solid #88b19e; border-radius:50%; background:#e2f0e8; font-family:"Segoe UI Emoji","Segoe UI Symbol",sans-serif; font-size:28px; }.customer-profile-hero div { display:grid; gap:3px; }.customer-profile-hero span:not(.customer-profile-person) { color:#5a7468; font-size:11px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.customer-profile-hero strong { color:#124d3a; font-size:25px; line-height:1.1; }.customer-profile-hero p { margin:1px 0 0; color:#60776c; font-size:12px; font-weight:700; line-height:1.35; }.customer-profile-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:13px; margin-top:14px; }.customer-profile-card { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:start; gap:12px; min-height:150px; padding:17px; border:1px solid #b9d1c5; border-radius:9px; background:#fff; box-shadow:0 3px 8px rgba(18,81,63,.06); }.customer-profile-choice:nth-child(1) { background:#fff7df; border-color:#d7bd75; }.customer-profile-choice:nth-child(2) { background:#f9ece3; border-color:#d8b299; }.customer-profile-choice:nth-child(3) { background:#e7f0f6; border-color:#abc5d4; }.customer-profile-drink { background:#e7f2ec; border-color:#a6c9b8; }.customer-profile-card-icon { display:grid; place-items:center; width:40px; height:40px; border-radius:50%; background:#1d674f; color:#fff; font-family:"Segoe UI Emoji","Segoe UI Symbol",sans-serif; font-size:22px; font-weight:900; line-height:1; }.customer-profile-drink-icon { background:#8a5b36; font-size:23px; }.customer-profile-card div { display:grid; gap:3px; min-width:0; }.customer-profile-card p { margin:0; color:#365b4e; font-size:13px; font-weight:900; line-height:1.2; }.customer-profile-card strong { color:#124f3c; font-size:32px; line-height:1.04; }.customer-profile-card small { color:#315e4d; font-size:12px; font-weight:800; }.customer-profile-card em { margin-top:4px; color:#667b71; font-size:11px; font-style:normal; font-weight:700; line-height:1.3; }.customer-profile-choice-breakdown { display:grid; grid-template-columns:1fr 1fr; gap:5px; }.customer-profile-choice-breakdown span { display:grid; gap:2px; padding:5px 6px; border:1px solid rgba(73,104,91,.2); border-radius:4px; background:rgba(255,255,255,.64); }.customer-profile-choice-breakdown b { color:#315e4d; font-size:10px; line-height:1.15; }.customer-profile-choice-breakdown i { color:#5d746a; font-size:10px; font-style:normal; line-height:1.15; white-space:nowrap; }.customer-profile-rules { display:grid; grid-template-columns:minmax(210px,.7fr) minmax(0,1.7fr); gap:16px; align-items:start; margin-top:15px; padding:16px 18px; border:1px solid #c8d9d0; border-radius:8px; background:#f9fcfa; }.customer-profile-rules .eyebrow { margin-bottom:4px; }.customer-profile-rules h3 { margin:0; color:#174f3d; font-size:17px; }.customer-profile-rule-list { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }.customer-profile-rule-list article { display:grid; gap:3px; padding:9px 10px; border-left:3px solid #c89126; border-radius:4px; background:#fff; }.customer-profile-rule-list strong { color:#174f3d; font-size:12px; }.customer-profile-rule-list span, .customer-profile-rule-note, .customer-profile-cover-note { color:#5d746a; font-size:11px; font-weight:700; line-height:1.35; }.customer-profile-rule-note { grid-column:2; margin:0; padding:9px 10px; border-radius:5px; background:#fff4d8; color:#755415; }.customer-profile-cover-note { grid-column:1 / -1; margin:0; padding:10px 11px; border-left:3px solid #2b7257; border-radius:5px; background:#eaf4ee; color:#365e4e; }.customer-profile-cover-note b { color:#174f3d; }
@media (max-width:1300px) { .customer-profile-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }.customer-profile-rules { grid-template-columns:1fr; }.customer-profile-rule-note { grid-column:auto; } }
@media (max-width:760px) { .customer-profile-grid, .customer-profile-rule-list { grid-template-columns:repeat(2,minmax(0,1fr)); }.customer-profile-section { padding:18px; } }
@media (max-width:520px) { .customer-profile-grid, .customer-profile-rule-list { grid-template-columns:1fr; }.customer-profile-hero { align-items:start; padding:15px; } }
.operating-kpi-section { margin-top:28px; padding-top:24px; border-top:1px solid var(--line); }
.operating-kpi-section .standalone-heading { margin-bottom:14px; }
.overview-gp-selector { display:grid; min-width:190px; gap:5px; color:var(--forest); font-size:12px; font-weight:800; }

.growth-planner { margin-top:24px; padding:25px 26px 28px; border-top:4px solid #b78525; background:linear-gradient(135deg,#fffdf7 0,#fbfdfc 42%,#f3f9f5 100%); }.growth-planner-heading { display:flex; justify-content:space-between; align-items:start; gap:22px; padding-bottom:19px; border-bottom:1px solid #cbded3; }.growth-planner-heading h2 { margin-bottom:6px; color:#123f31; font-size:28px; }.growth-planner-heading p:last-child { max-width:735px; margin:0; }.growth-planner-intro { display:flex; justify-content:space-between; align-items:start; gap:18px; padding:18px 0 8px; color:#4f685e; line-height:1.5; }.growth-planner-intro p { max-width:800px; margin:0; }.growth-planner-intro b { color:#14533f; }.growth-planner-intro span { padding:5px 9px; border-radius:999px; background:#e5f0e9; color:#28634e; font-size:12px; font-weight:800; text-align:center; white-space:nowrap; }.growth-metric-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:13px 0 17px; }.growth-metric-grid article { display:grid; gap:5px; min-height:110px; padding:15px 16px; border:1px solid #c7dace; border-radius:8px; background:#fff; }.growth-metric-grid span { color:#526b60; font-size:12px; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }.growth-metric-grid strong { color:#154f3d; font-size:28px; line-height:1.08; }.growth-metric-grid small { color:#61776e; font-size:12px; font-weight:700; line-height:1.3; }.growth-metric-grid .is-target { border-color:#b97c12; background:#fff1cc; box-shadow:0 2px 8px rgba(140,92,12,.08); }.growth-metric-grid .is-target strong { color:#855707; }.growth-metric-grid .is-stretch { border-color:#97b4a6; background:#eaf4ee; }.growth-question-panel { margin:19px 0 23px; overflow:hidden; border:1px solid #bfd6ca; border-radius:8px; background:#fff; }.growth-question-buttons { display:flex; gap:0; overflow:auto; border-bottom:1px solid #d4e2da; background:#f0f7f3; }.growth-question-button { flex:1 0 max-content; min-height:42px; padding:9px 14px; border:0; border-right:1px solid #d4e2da; background:transparent; color:#275b49; font:inherit; font-size:13px; font-weight:800; text-align:center; }.growth-question-button:last-child { border-right:0; }.growth-question-button:hover { background:#e1efe7; }.growth-question-button.is-selected { background:#1d674f; color:#fff; }.growth-question-answer { margin:0; padding:15px 17px 16px; color:#4d665c; font-size:14px; line-height:1.5; }.growth-question-answer strong { color:#124d3a; }.growth-planner-section { margin-top:20px; padding:19px; border:1px solid #c8ddd1; border-radius:8px; background:#fff; }.growth-planner-section header { margin-bottom:13px; }.growth-planner-section h3 { margin:0 0 4px; color:#154f3d; font-size:20px; }.growth-planner-section header p:last-child { margin:0; color:#5c746a; font-size:13px; line-height:1.4; }.growth-planner-table { border-color:#c8ddd1; }.growth-planner-table .data-table th { font-size:12px; }.growth-planner-table .data-table tbody th { color:#154f3d; }.growth-planner-table .data-table tbody tr.is-growth-priority { background:#fff4dc; }.growth-status { display:inline-block; min-width:63px; padding:4px 7px; border-radius:999px; font-size:11px; font-weight:900; letter-spacing:.02em; text-align:center; }.growth-status-priority { background:#f6dca6; color:#815607; }.growth-status-build { background:#e7eef0; color:#31566b; }.growth-status-protect { background:#d9ecdf; color:#1e6847; }.growth-planner-impact { display:flex; justify-content:space-between; align-items:end; gap:26px; background:linear-gradient(105deg,#e8f4ed,#fffaf0); }.growth-planner-impact h3 { margin:0 0 5px; color:#855707; font-size:24px; }.growth-planner-impact p:last-child { margin:0; color:#526b60; line-height:1.45; }.growth-planner-formula { max-width:330px; padding:10px 12px; border:1px dashed #b79546; border-radius:6px; background:#fffdf8; color:#755312 !important; font-size:13px; font-weight:800; text-align:center; }.growth-planner-workings { margin-top:19px; padding:14px 16px 16px; border:1px solid #cfdfd5; border-radius:8px; background:#f9fcfa; }.growth-planner-workings summary { color:#18533f; font-weight:900; cursor:pointer; }.growth-planner-workings>p { max-width:900px; margin:11px 0 13px; color:#587067; font-size:13px; line-height:1.45; }.growth-planner-empty { margin:22px 0 4px; padding:19px; border:1px dashed #b5ccbf; border-radius:8px; background:#f9fcfa; color:#587067; font-weight:700; text-align:center; }
@media (max-width:1000px) { .growth-metric-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.growth-planner-intro, .growth-planner-impact { align-items:stretch; flex-direction:column; }.growth-planner-intro span { align-self:start; white-space:normal; }.growth-planner-formula { max-width:none; }.growth-planner-heading { align-items:stretch; flex-direction:column; }.growth-planner-heading .button { align-self:start; } }
@media (max-width:620px) { .growth-planner { padding:19px 16px 21px; }.growth-planner-heading h2 { font-size:24px; }.growth-metric-grid { grid-template-columns:1fr; }.growth-question-buttons { flex-direction:column; }.growth-question-button { border-right:0; border-bottom:1px solid #d4e2da; }.growth-question-button:last-child { border-bottom:0; }.growth-planner-section { padding:15px; } }
.operating-kpi-cards { grid-template-columns:repeat(3,minmax(0,1fr)); }.weekly-net-profit-card { border-color:#756296 !important; background:#f4f0fb !important; }.weekly-net-profit-card p { display:flex; align-items:center; justify-content:center; gap:6px; background:linear-gradient(90deg,#4d3d70,#665188) !important; }.weekly-net-profit-card strong.is-positive { color:#176343; }.weekly-net-profit-card strong.is-negative { color:#b12732; }.weekly-net-profit-info { display:grid; place-items:center; width:18px; height:18px; padding:0; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-family:Georgia,serif; font-size:12px; font-weight:900; font-style:italic; line-height:1; cursor:pointer; }.weekly-net-profit-info:hover { background:rgba(255,255,255,.29); }.weekly-net-profit-info:focus-visible { outline:3px solid rgba(255,222,129,.92); outline-offset:2px; }.weekly-net-profit-info-copy { display:grid; gap:8px; }.weekly-net-profit-info-copy h4 { margin:0; color:#174f3d; font-size:16px; }.weekly-net-profit-info-copy p { margin:0 0 5px; color:#385f50; font-size:14px; font-weight:650; line-height:1.48; }.weekly-net-profit-info-copy strong { color:#174f3d; }.weekly-net-profit-formula { padding:10px 11px; border-left:3px solid #6a5791; border-radius:4px; background:#f1eef8; color:#51436e !important; font-weight:800 !important; }.weekly-net-profit-note { padding:9px 11px; border-left:3px solid #be8a2c; border-radius:4px; background:#fff4dc; color:#70531c !important; font-size:12px !important; font-weight:750 !important; }
.wage-breakdown { margin-top:22px; padding-top:17px; border-top:1px solid #c9ddd3; }
.wage-breakdown-heading { display:flex; align-items:end; justify-content:space-between; gap:16px; margin-bottom:12px; }
.wage-breakdown-heading .eyebrow { margin-bottom:4px; }
.wage-breakdown-heading h3 { margin:0; color:var(--forest); font-size:18px; }
.wage-breakdown-heading>span { color:#587065; font-size:12px; font-weight:700; text-align:right; }
.wage-breakdown-cards { grid-template-columns:repeat(4,minmax(0,1fr)); }
.report-kpi.report-wage-department { min-height:106px; background:#edf5f0; }.report-kpi.report-wage-chefs { background:#e5f0f3; }.report-kpi.report-wage-kp { background:#f5eee6; }.report-kpi.report-wage-management { background:#f8f0d5; }.report-kpi.report-wage-department strong { font-size:23px; }
.additional-sales-indicator { display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:14px; width:100%; margin-top:14px; padding:15px 18px; border:2px solid #a36e0d; border-radius:8px; background:#fff5d8; color:#5b3b00; text-align:left; cursor:pointer; transition:.15s; }.additional-sales-indicator:hover { border-color:#704400; box-shadow:0 4px 12px rgba(123,78,0,.14); transform:translateY(-1px); }.additional-sales-indicator-label { font-size:13px; font-weight:900; text-transform:uppercase; letter-spacing:.05em; }.additional-sales-indicator strong { color:#704400; font-size:23px; white-space:nowrap; }.additional-sales-indicator-detail { color:#715719; font-size:13px; }.additional-sales-indicator-action { color:#195843; font-size:13px; font-weight:900; white-space:nowrap; }.additional-sales-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; margin:18px 0; }.additional-sales-summary .report-kpi { min-height:0; }.additional-sales-detail { max-height:50vh; }.extra-sales-detail-table { min-width:920px; }.additional-sales-dialog { width:min(1280px, calc(100vw - 40px)); }
.report-page { padding-top:30px; }
.report-page-heading { margin-bottom:18px; }
.report-switches { display:flex; align-items:end; gap:12px; flex-wrap:wrap; }
.report-switches label, .compact-heading label, .stream-manager label { display:grid; gap:5px; color:var(--forest); font-size:12px; font-weight:800; }
.report-switches .select-control { min-width:225px; }
.report-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.report-kpi-grid-secondary { grid-template-columns:repeat(5,minmax(0,1fr)); margin-top:14px; }
.report-kpi { min-height:122px; overflow:hidden; border:1px solid #9db9ab; border-radius:9px; background:#f9fcfa; box-shadow:0 1px 2px rgba(12,45,35,.04); }
.report-kpi p { margin:0; padding:9px 12px; background:var(--forest); color:#fff; font-size:12px; font-weight:800; text-align:center; }
.report-kpi strong { display:block; padding:16px 12px 4px; color:#104f3c; font-size:26px; line-height:1.1; text-align:center; white-space:nowrap; }
.report-kpi>span { display:block; padding:3px 11px 12px; color:#516a60; font-size:11px; line-height:1.25; text-align:center; }
.report-kpi.report-sales { background:#e2eee8; }.report-kpi.report-sales strong { font-size:31px; }
.report-kpi.report-sales-ex { background:#fff0c9; }.report-kpi.report-covers { background:#edf5f0; }
.report-kpi.report-additional { background:#e6f1f5; }.report-kpi.report-bookings { background:#f8ebd6; }
.report-kpi.report-wages { background:#f4ece3; }.report-kpi.report-wages-rate { background:#fbf1d3; }
.wage-figure-toggle { display:block; margin:1px auto 9px; padding:4px 8px; border:1px solid #8faea0; border-radius:4px; background:#fff; color:#18533f; font-size:11px; font-weight:800; }.wage-figure-toggle:hover { background:#e0eee7; }.wage-figure { display:block; padding:0 10px 11px; color:#104f3c; font-size:17px; font-weight:900; text-align:center; }
.report-kpi.report-gp-overall { background:#e1eee8; }.report-kpi.report-gp-food { background:#f7eadb; }
.report-kpi.report-gp-drink { background:#e1f0f3; }.report-kpi.report-costs { background:#f7f7ed; }
.budget-setup-panel { border-top:4px solid #9a6d1d; background:linear-gradient(135deg,#fffdf7,#fff7e0); }.budget-sales-rule, .budget-mix-rule { display:grid; align-items:center; gap:14px; padding:13px 15px; border:1px solid #d4bf7f; border-radius:8px; background:#fff8e6; }.budget-sales-rule { grid-template-columns:minmax(250px,1fr) auto; margin-bottom:16px; }.budget-mix-rule { grid-template-columns:minmax(230px,1fr) auto auto auto; margin:14px 0 16px; background:#f5faf7; border-color:#afcbbd; }.budget-sales-rule>div, .budget-mix-rule>div { display:grid; gap:3px; }.budget-sales-rule strong, .budget-mix-rule strong { color:#174f3d; font-size:14px; }.budget-sales-rule div span, .budget-mix-rule div span { color:#5b6d62; font-size:12px; }.budget-sales-rule label, .budget-mix-rule label { display:grid; grid-template-columns:auto 104px auto; align-items:center; gap:7px; color:#604d1a; font-size:13px; font-weight:900; white-space:nowrap; }.budget-sales-rule input, .budget-mix-rule input { width:104px; min-height:40px; padding:5px 8px; border:2px solid #8eaf9d; border-radius:6px; background:#fff; color:#104f3c; font-size:16px; font-weight:900; text-align:right; }.budget-sales-rule input:focus, .budget-mix-rule input:focus { outline:3px solid rgba(170,125,29,.2); border-color:#8a651f; }.budget-mix-rule p { display:grid; gap:3px; margin:0; color:#5b6d62; font-size:11px; }.budget-mix-rule p b { color:#174f3d; font-size:13px; white-space:nowrap; }.budget-dry-mix-output { min-width:96px; color:#174f3d; font-size:14px; font-weight:900; white-space:nowrap; }.budget-benchmark-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.budget-benchmark-card { min-height:112px; overflow:hidden; border:1px solid #c8b778; border-radius:8px; background:#fff; }.budget-benchmark-card p { margin:0; padding:9px 12px; background:#725718; color:#fff; font-size:12px; font-weight:800; text-align:center; }.budget-benchmark-card strong { display:block; padding:16px 11px 4px; color:#174f3d; font-size:24px; line-height:1.1; text-align:center; white-space:nowrap; }.budget-benchmark-card span { display:block; padding:3px 11px 12px; color:#5b6d62; font-size:11px; line-height:1.25; text-align:center; }.budget-benchmark-covers { background:#edf5f0; }.budget-benchmark-sph { background:#fff0c9; }.budget-benchmark-wet { background:#e1f0f3; }.budget-benchmark-dry { background:#f7eadb; }.budget-benchmark-profit { border-color:#82b69a; background:#e2f1e7; }.budget-benchmark-profit p { background:#21684e; }.budget-benchmark-net-profit { border-color:#81b4a5; background:#e0f0ed; }.budget-benchmark-net-profit p { background:#185b49; }.budget-benchmark-labour { border-color:#9eb7cf; background:#e8f1f8; }.budget-benchmark-labour p { background:#315d83; }.budget-setup-coverage { margin:15px 0 8px; color:#5b7469; font-size:12px; font-weight:700; }.budget-table-wrap { max-height:none; border:1px solid #d8c891; border-radius:8px; }.budget-setup-table { min-width:1180px; }.budget-setup-table th { white-space:nowrap; }.budget-setup-table td, .budget-setup-table th { vertical-align:middle; }.budget-setup-table tbody th { color:#174f3d; font-size:13px; }.budget-historic-cell { background:#fbf4df; color:#604d1a; font-weight:800; }.budget-derived-cell { min-width:104px; background:#edf5f0; color:#174f3d; font-weight:900; }.budget-target-cell { min-width:145px; background:#f1f7f3; }.budget-target-cell input { width:100%; min-height:35px; padding:5px 7px; border:1px solid #9bbdac; border-radius:5px; background:#fff; color:#104f3c; font-size:13px; font-weight:800; text-align:right; }.budget-target-cell input:focus { outline:3px solid rgba(170,125,29,.2); border-color:#9a6d1d; }
.pnl-variance-section { margin-top:24px; padding:20px; border:1px solid #a8c5b6; border-top:4px solid #315884; border-radius:9px; background:linear-gradient(135deg,#f8fbfe,#f0f6fa); }.pnl-variance-section .standalone-heading { margin-bottom:14px; }.pnl-variance-cards { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }.pnl-variance-card { min-height:126px; padding:12px; border:1px solid #b5c9d8; border-radius:7px; background:#fff; box-shadow:0 1px 2px rgba(19,54,79,.05); }.pnl-variance-card p { margin:0 0 10px; color:#315884; font-size:12px; font-weight:900; }.pnl-variance-card strong, .pnl-variance-card span, .pnl-variance-card b { display:block; }.pnl-variance-card strong { color:#183d65; font-size:16px; }.pnl-variance-card span { margin-top:5px; color:#5b6d7d; font-size:12px; font-weight:700; }.pnl-variance-card b { margin-top:8px; color:#155f46; font-size:12px; }.pnl-input-panel { border-top:4px solid #315884; background:linear-gradient(135deg,#fcfeff,#f3f8fb); }.pnl-input-panel #pnl-toggle-budget-comparison:disabled { cursor:not-allowed; opacity:.62; background:#edf1ef; color:#65736d; }.pnl-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }.pnl-summary .report-kpi { min-height:112px; }.pnl-summary .report-kpi.pnl-turnover { background:#e5eef8; }.pnl-summary .report-kpi.pnl-profit { background:#e2f0e8; }.pnl-summary .pnl-break-even-card { border-color:#aa9bc8; background:#f4f0fb; }.pnl-summary .pnl-break-even-card p { background:linear-gradient(90deg,#4d3d70,#665188); }.pnl-break-even-values { display:grid !important; grid-template-columns:1fr 1fr; gap:0; margin:0 !important; padding:8px 7px 4px !important; color:#473a63 !important; }.pnl-break-even-values>span { display:grid; gap:2px; min-width:0; padding:0 5px; color:#473a63 !important; text-align:center; }.pnl-break-even-values>span+span { border-left:1px solid #d5cae7; }.pnl-break-even-values b { color:#625279; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.pnl-break-even-values strong { padding:0 !important; color:#3e315c !important; font-size:24px !important; line-height:1.08; }.pnl-break-even-values small { color:#6c617e; font-size:10px; font-weight:800; }.pnl-summary .pnl-break-even-card>span:last-child { padding:5px 10px 10px; color:#5e556f; font-size:10px; font-weight:800; }.report-kpi strong.pnl-variance-favourable, .pnl-budget-comparison .pnl-variance-favourable { color:#176343 !important; }.report-kpi strong.pnl-variance-unfavourable, .pnl-budget-comparison .pnl-variance-unfavourable { color:#b12732 !important; }.pnl-budget-comparison .pnl-statement-final-profit .pnl-variance-favourable { color:#a8f0c2 !important; text-shadow:0 1px 1px rgba(0,0,0,.3); }.pnl-budget-comparison .pnl-statement-final-profit .pnl-variance-unfavourable { color:#ffb7b4 !important; text-shadow:0 1px 1px rgba(0,0,0,.3); }
.pnl-budget-comparison { margin:18px 0; overflow:hidden; border:1px solid #a8c5b6; border-top:4px solid #315884; border-radius:8px; background:#fff; }.pnl-budget-comparison-heading { padding:14px 16px; border-bottom:1px solid #d7e3ec; background:#edf4f9; }.pnl-budget-comparison-heading .eyebrow { margin-bottom:4px; }.pnl-budget-comparison-heading h4 { margin:0 0 4px; color:#244f76; font-size:17px; }.pnl-budget-comparison-heading p:last-child { margin:0; color:#5f7384; font-size:12px; font-weight:700; line-height:1.4; }.pnl-budget-comparison-wrap { overflow:auto; }.pnl-budget-comparison table { width:100%; min-width:750px; border-collapse:collapse; }.pnl-budget-comparison th, .pnl-budget-comparison td { padding:8px 10px; border-bottom:1px solid #e5edf2; color:#244f76; font-size:12px; text-align:right; }.pnl-budget-comparison thead th { background:#315884; color:#fff; font-size:11px; font-weight:900; }.pnl-budget-comparison th:first-child, .pnl-budget-comparison tbody th { text-align:left; }.pnl-budget-comparison tbody th { min-width:220px; font-weight:800; }.pnl-budget-comparison tbody th small { display:block; margin-top:2px; color:#6d7f8d; font-size:10px; font-weight:700; }.pnl-budget-comparison-section th { padding:8px 10px !important; background:#e7f0f7; color:#244f76 !important; font-size:11px !important; font-weight:900 !important; letter-spacing:.06em; text-transform:uppercase; }.pnl-budget-comparison tr.is-unbudgeted td:nth-child(3) { color:#8a651f; font-style:italic; }.pnl-budget-empty { margin:0; padding:18px; color:#5f7384; font-weight:700; }.pnl-financial-year-table { min-width:1540px !important; }.pnl-financial-year-table thead th:not(:first-child) { min-width:88px; text-align:center; }.pnl-financial-year-table thead th:last-child, .pnl-financial-year-table.is-showing-comparison thead th:nth-last-child(-n+4) { background:#244f76; }.pnl-financial-year-note { margin:0; padding:13px 15px; border:1px solid #b8cfdf; border-radius:7px; background:#edf4f9; color:#315884; font-size:13px; font-weight:700; line-height:1.45; }
.pnl-budget-comparison tbody .pnl-statement-row th, .pnl-budget-comparison tbody .pnl-statement-row td { padding-top:9px; padding-bottom:9px; }.pnl-budget-comparison tbody .pnl-statement-total th, .pnl-budget-comparison tbody .pnl-statement-total td { border-top:1px solid #93b8aa; border-bottom-color:#b6d0c4; background:#edf5f0; color:#174f3d; font-weight:900; }.pnl-budget-comparison tbody .pnl-statement-total th { box-shadow:inset 4px 0 0 #398065; }.pnl-budget-comparison tbody .pnl-statement-rate th, .pnl-budget-comparison tbody .pnl-statement-rate td { background:#f8f3e4; color:#70581e; font-weight:900; }.pnl-budget-comparison tbody .pnl-statement-profit th, .pnl-budget-comparison tbody .pnl-statement-profit td { border-top:2px solid #27755a; border-bottom-color:#a9cdbb; background:#dfeee6; color:#124d39; font-size:13px; font-weight:900; }.pnl-budget-comparison tbody .pnl-statement-profit th { box-shadow:inset 5px 0 0 #1f6d51; }.pnl-budget-comparison tbody .pnl-statement-final-profit th, .pnl-budget-comparison tbody .pnl-statement-final-profit td { border-top:2px solid #0d4636; border-bottom-color:#0d4636; background:#175b48; color:#fff; font-size:13px; font-weight:900; }.pnl-budget-comparison tbody .pnl-statement-final-profit th { box-shadow:inset 5px 0 0 #d3ad55; }.pnl-budget-comparison tbody .pnl-statement-final-profit th small { color:#e4f0e8; }.pnl-financial-year-table .pnl-fy-actual { background-color:#e8f1f8; color:#183d65; font-weight:900; }.pnl-financial-year-table .pnl-fy-budget { background-color:#f8ecd0; color:#6a5019; font-weight:900; }.pnl-financial-year-table .pnl-fy-variance { background-color:#f4f7f8; font-weight:900; }.pnl-financial-year-table .pnl-statement-final-profit .pnl-fy-actual, .pnl-financial-year-table .pnl-statement-final-profit .pnl-fy-budget, .pnl-financial-year-table .pnl-statement-final-profit .pnl-fy-variance { background:#175b48; color:#fff; }
.pnl-budget-comparison .pnl-not-budgeted { color:#8a651f; font-style:italic; }
.pnl-financial-year-table thead .pnl-fy-actual { background:#315884; color:#fff; font-weight:900; }
.pnl-financial-year-table .pnl-fy-total { background:#e8f1f8; color:#183d65; font-weight:900; }.pnl-financial-year-table tbody .pnl-fy-actual { background:#e0f0e7; color:#124d39; font-weight:900; }.pnl-financial-year-table thead .pnl-fy-total, .pnl-financial-year-table thead .pnl-fy-budget, .pnl-financial-year-table thead .pnl-fy-variance, .pnl-financial-year-table thead .pnl-fy-actual { background:#315884; color:#fff; font-weight:900; }.pnl-financial-year-table thead .pnl-fy-actual { background:#1c664e; }.pnl-financial-year-table .pnl-statement-final-profit .pnl-fy-total, .pnl-financial-year-table .pnl-statement-final-profit .pnl-fy-actual { background:#175b48; color:#fff; }
.pnl-financial-year-table { min-width:1710px !important; }
.pnl-input-panel .compact-heading .eyebrow, .pnl-budget-comparison-heading .eyebrow { color:#1b5c48; font-family:Arial,sans-serif; font-size:12px; font-weight:900; letter-spacing:.1em; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.pnl-input-panel .compact-heading h3, .pnl-budget-comparison-heading h4 { color:#173f63; font-family:Arial,sans-serif; font-weight:900; letter-spacing:-.01em; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.pnl-budget-comparison-heading h4 { font-size:19px; line-height:1.16; }.pnl-budget-comparison thead th { font-family:Arial,sans-serif; font-size:12px; font-weight:900; letter-spacing:.01em; line-height:1.2; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }
.pnl-input-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:15px; margin-top:18px; }.pnl-entry-section { overflow:hidden; border:1px solid #c8d8e4; border-radius:8px; background:#fff; }.pnl-entry-section>div:first-child { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:11px 13px; border-bottom:1px solid #d7e3ec; background:#edf4f9; }.pnl-entry-section h4 { margin:0; color:#244f76; font-size:15px; }.pnl-entry-section>div:first-child span { color:#5f7384; font-size:11px; font-weight:700; text-align:right; }.pnl-entry-list { display:grid; }.pnl-entry-row { display:grid; grid-template-columns:minmax(150px,1fr) minmax(112px,.65fr); align-items:center; gap:12px; padding:8px 12px; border-top:1px solid #edf1f4; color:#244f76; font-size:12px; font-weight:800; }.pnl-entry-row:first-child { border-top:0; }.pnl-entry-row input { width:100%; min-height:34px; padding:5px 8px; border:1px solid #a8bdcb; border-radius:5px; background:#fff; color:#153b5c; font-size:13px; font-weight:800; text-align:right; }.pnl-entry-row input:disabled { border-color:transparent; background:#f5f8fa; color:#415a6c; }.pnl-entry-specialPayments { grid-column:1 / -1; }.pnl-entry-specialPayments>div:first-child { background:#fff2df; }.pnl-entry-specialPayments h4 { color:#7b4b14; }
.report-input-grid { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:18px; margin-top:18px; }
.operating-action-panel { display:grid; grid-template-columns:minmax(260px,.9fr) minmax(0,1.4fr); align-items:center; gap:22px; padding:20px 22px; }.operating-action-panel h3 { margin:0 0 5px; color:var(--forest); font-size:20px; }.operating-action-panel .muted { margin:0; }.operating-actions { display:flex; justify-content:flex-end; gap:12px; flex-wrap:wrap; }.operating-action-button { display:grid; grid-template-columns:34px minmax(0,1fr); grid-template-rows:auto auto; min-width:235px; gap:4px 10px; padding:14px 16px; border:1px solid #93b8a7; border-left:4px solid var(--forest-2); border-radius:9px; background:linear-gradient(135deg, #f8fcf9, #edf6f1); color:#104d39; text-align:left; transition:transform .15s, box-shadow .15s, background .15s, border-color .15s; }.operating-action-button:hover { border-color:#277155; background:#e0f0e6; box-shadow:0 5px 14px rgba(18,81,63,.14); transform:translateY(-2px); }.operating-action-icon { display:grid; grid-row:1 / -1; place-items:center; width:32px; height:32px; border-radius:50%; background:var(--forest); color:#fff; font-size:18px; line-height:1; }.operating-action-button strong, .operating-action-button>span { grid-column:2; }.operating-action-button strong { align-self:end; font-size:15px; }.operating-action-button>span { align-self:start; color:#567066; font-size:12px; line-height:1.3; }.operating-action-button[data-action-tone="pnl"] { border-left-color:#315884; background:linear-gradient(135deg, #f3f7fb, #e7eff8); }.operating-action-button[data-action-tone="pnl"] .operating-action-icon { background:#315884; }.operating-action-button[data-action-tone="budget"] { border-left-color:#9a6d1d; background:linear-gradient(135deg, #fffbef, #fff2ca); }.operating-action-button[data-action-tone="budget"] .operating-action-icon { background:#9a6d1d; }.operating-action-button[data-action-tone="targets"] { border-left-color:#8c5531; background:linear-gradient(135deg, #fcf5ee, #f7e7d4); }.operating-action-button[data-action-tone="targets"] .operating-action-icon { background:#8c5531; }.operating-action-button[data-action-tone="sales"] { border-left-color:#7067a6; background:linear-gradient(135deg, #f8f7fc, #eeeafa); }.operating-action-button[data-action-tone="sales"] .operating-action-icon { background:#7067a6; }.planned-feature-panel { border-top:4px solid var(--gold); background:linear-gradient(135deg, #fffdf7, #fff7e0); }.report-input-stack { display:grid; gap:18px; }.report-input-stack .report-input-panel { width:100%; }.daily-covers-panel { margin-top:18px; padding:19px; }.daily-covers-entry { display:grid; grid-template-columns:minmax(180px,320px) minmax(230px,1fr); gap:14px; align-items:end; }.daily-covers-entry label { display:grid; gap:5px; color:var(--forest); font-size:12px; font-weight:800; }.daily-covers-entry input { min-height:40px; padding:7px 9px; border:1px solid #a9c2b6; border-radius:5px; background:#fff; color:var(--ink); font-size:16px; font-weight:800; }.daily-covers-entry>div { display:grid; gap:4px; padding:11px 13px; border-left:4px solid #78aa92; background:#f1f7f3; }.daily-covers-entry strong { color:#12543f; font-size:18px; }.daily-covers-entry span { color:#5b7469; font-size:12px; }
.report-input-panel, .reconciliation-panel { padding:19px; }
.compact-heading { align-items:start; margin-bottom:16px; }.compact-heading h3 { margin:0 0 5px; font-size:18px; }.compact-heading .muted { max-width:560px; font-size:13px; }
.weekly-cost-sections { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }.weekly-cost-section { padding:13px; border:1px solid #c9ddd3; border-radius:8px; background:#fbfdfc; }.weekly-cost-heading { display:flex; justify-content:space-between; gap:12px; align-items:baseline; margin-bottom:9px; }.weekly-cost-heading h4 { margin:0; color:var(--forest); font-size:16px; }.weekly-cost-heading span { color:var(--muted); font-size:11px; font-weight:700; }.weekly-category-header, .weekly-category-row { display:grid; grid-template-columns:minmax(130px,1fr) minmax(90px,.65fr) minmax(150px,1.05fr); gap:7px; align-items:center; }.weekly-category-header { padding:0 2px 5px; color:var(--muted); font-size:10px; font-weight:800; }.weekly-category-row { padding:6px 2px; border-top:1px solid #e1ebe5; }.weekly-category-row strong { color:#214f40; font-size:12px; }.weekly-category-row input, .weekly-category-row select { min-width:0; min-height:34px; padding:5px 7px; border:1px solid #a9c2b6; border-radius:5px; background:#fff; color:var(--ink); font-size:12px; font-weight:700; }.weekly-category-rows { display:grid; }.weekly-stock-fields { grid-template-columns:repeat(2,minmax(0,1fr)); margin-top:14px; }.excess-stock-note { margin:6px 0 0; font-size:12px; }.weekly-booking-field { grid-template-columns:minmax(160px,250px); margin-top:14px; }
.input-card-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.input-card-grid label { display:grid; gap:5px; min-width:0; color:var(--forest); font-size:12px; font-weight:800; }
.input-card-grid input, .input-card-grid select, .wage-grid-row input, .reconciliation-panel input { width:100%; min-height:38px; padding:7px 8px; border:1px solid #a9c2b6; border-radius:5px; background:#fff; color:var(--ink); font-weight:700; }
.wage-entry-heading { display:flex; align-items:baseline; justify-content:space-between; gap:14px; margin:20px 0 8px; }.wage-entry-heading h4 { margin:0; color:var(--forest); font-size:15px; }.wage-entry-heading span { color:var(--muted); font-size:12px; }
.wage-entry-grid { display:grid; gap:7px; }.wage-grid-header, .wage-grid-row { display:grid; grid-template-columns:minmax(120px,1.1fr) repeat(3,minmax(70px,.8fr)) minmax(80px,.85fr); gap:8px; align-items:center; }
.wage-grid-header { padding:0 2px; color:var(--muted); font-size:11px; font-weight:800; }.wage-grid-header span:not(:first-child) { text-align:right; }
.wage-grid-row { padding:7px 8px; border:1px solid #d5e2db; border-radius:6px; background:#fbfdfc; }.wage-grid-row strong { color:#214f40; font-size:13px; }.wage-grid-row input { min-height:34px; text-align:right; }.wage-grid-row output { color:var(--forest); font-size:13px; font-weight:800; text-align:right; }
.input-panel-actions { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:16px; color:#5b7469; font-size:12px; font-weight:700; }.input-panel-actions .button { background:var(--forest); color:#fff; }.input-panel-actions .button-secondary { background:var(--white); color:var(--forest); }.input-action-buttons { display:flex; align-items:center; justify-content:flex-end; flex-wrap:wrap; gap:8px; }
.section-subheading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:17px 0 8px; }.section-subheading h4 { margin:0; color:var(--forest); font-size:15px; }.section-subheading span { color:var(--muted); font-size:12px; }.section-subheading .button { min-height:36px; padding:7px 11px; }
.separate-purchase-header, .separate-purchase-row { display:grid; grid-template-columns:minmax(180px,1.35fr) minmax(120px,.55fr) minmax(190px,.95fr) auto; gap:9px; align-items:center; }.separate-purchase-header { padding:0 2px 5px; color:var(--muted); font-size:11px; font-weight:800; }.separate-purchase-row { padding:8px; border:1px solid #d5e2db; border-radius:6px; background:#fbfdfc; }.separate-purchase-row input, .separate-purchase-row select { min-height:36px; }.separate-purchase-row .table-action { white-space:nowrap; }.separate-purchase-rows { display:grid; gap:7px; }.meter-heading { margin-top:22px; }.meter-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
.stream-manager { display:grid; grid-template-columns:minmax(130px,1fr) minmax(150px,1.3fr) auto; gap:8px; align-items:end; }.stream-manager .text-control { width:100%; min-height:38px; }.stream-manager .button { min-height:38px; padding:8px 11px; }
.additional-sale-form { grid-template-columns:repeat(2,minmax(0,1fr)); }.additional-sale-deduction { display:flex; align-items:flex-start; gap:10px; margin-top:14px; padding:12px 14px; border:1px solid #a9c2b6; border-radius:7px; background:#f1f7f3; color:#174f3d; }.additional-sale-deduction input { width:19px; height:19px; margin-top:2px; accent-color:#1c6c51; }.additional-sale-deduction span { display:grid; gap:3px; font-size:13px; }.additional-sale-deduction small { color:#5b7469; font-weight:600; }.input-table-wrap { margin-top:17px; max-height:265px; }.extra-sales-table { min-width:1160px; }.extra-sales-detail-table { min-width:1250px; }.table-action { border:1px solid #a9c2b6; border-radius:4px; background:#fff; color:#14543f; padding:5px 8px; font-size:12px; font-weight:800; }.table-action-group { display:inline-flex; justify-content:flex-end; gap:6px; }
.reconciliation-panel { margin-top:18px; }.reconciliation-fields { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1250px) { .report-kpi-grid-secondary { grid-template-columns:repeat(3,minmax(0,1fr)); }.wage-breakdown-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }.pnl-variance-cards, .pnl-summary { grid-template-columns:repeat(3,minmax(0,1fr)); }.report-input-grid { grid-template-columns:1fr; }.reconciliation-fields { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:1250px) { .budget-benchmark-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { .report-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.pnl-variance-cards, .pnl-summary, .pnl-input-sections { grid-template-columns:repeat(2,minmax(0,1fr)); }.wage-breakdown-heading { align-items:flex-start; flex-direction:column; }.wage-breakdown-heading>span { text-align:left; }.report-page-heading { align-items:stretch; flex-direction:column; }.report-switches { align-items:stretch; }.report-switches label { flex:1; }.report-switches .select-control { width:100%; }.input-card-grid, .weekly-cost-sections { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:900px) { .budget-sales-rule, .budget-mix-rule { grid-template-columns:1fr; align-items:stretch; }.budget-sales-rule label, .budget-mix-rule label { justify-content:start; } }
@media (max-width:900px) { .additional-sales-indicator { grid-template-columns:1fr auto; }.additional-sales-indicator-detail { grid-column:1 / -1; }.additional-sales-indicator-action { grid-column:1 / -1; }.additional-sales-summary { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .additional-sales-summary { grid-template-columns:1fr; }.additional-sales-indicator { grid-template-columns:1fr; gap:6px; }.additional-sales-indicator-action { grid-column:auto; } }
@media (max-width:900px) { .operating-action-panel { grid-template-columns:1fr; }.operating-actions { justify-content:stretch; }.operating-action-button { flex:1; } }
@media (max-width:620px) { .report-kpi-grid, .report-kpi-grid-secondary, .pnl-variance-cards, .pnl-summary, .pnl-input-sections, .input-card-grid, .additional-sale-form, .reconciliation-fields, .daily-covers-entry, .meter-grid, .separate-purchase-row, .weekly-cost-sections { grid-template-columns:1fr; }.stream-manager { grid-template-columns:1fr; }.separate-purchase-header, .weekly-category-header { display:none; }.weekly-category-row { grid-template-columns:1fr; gap:4px; padding:9px 2px; }.pnl-entry-row { grid-template-columns:1fr; gap:5px; }.pnl-entry-section>div:first-child { align-items:flex-start; flex-direction:column; }.pnl-entry-section>div:first-child span { text-align:left; }.input-panel-actions, .section-subheading { align-items:flex-start; flex-direction:column; }.input-action-buttons { justify-content:flex-start; }.wage-grid-header { display:none; }.wage-grid-row { grid-template-columns:1fr 1fr; }.wage-grid-row strong { grid-column:1/-1; }.wage-grid-row output { grid-column:1/-1; padding-top:2px; text-align:left; }.wage-entry-heading { align-items:flex-start; flex-direction:column; gap:3px; } }
@media (max-width:620px) { .budget-benchmark-summary { grid-template-columns:1fr; } }

/* Keep the month labels legible against the fixed forest-green first column. */
.budget-setup-table tbody th { padding:14px 10px; border-bottom:1px solid rgba(255,255,255,.2); background:#1d674f; color:#fffdf3; font-size:14px; font-weight:900; letter-spacing:.01em; text-shadow:0 1px 1px rgba(0,0,0,.25); }

.budget-cost-of-sales { margin-top:20px; padding:18px; border:1px solid #a8c9bc; border-top:4px solid #277155; border-radius:8px; background:linear-gradient(135deg,#f8fcf9,#edf6f1); }.budget-cost-of-sales-heading { margin-bottom:13px; }.budget-cost-of-sales-heading h4 { margin:2px 0 5px; color:#174f3d; font-size:18px; }.budget-cost-of-sales-heading .muted { margin:0; font-size:13px; }.budget-cost-of-sales-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }.budget-cost-card { min-height:181px; padding:13px; border:1px solid #afcbbd; border-radius:7px; background:#fff; }.budget-cost-card>p { margin:0 0 11px; color:#174f3d; font-size:13px; font-weight:900; }.budget-cost-card-controls { display:grid; grid-template-columns:minmax(118px,1fr) auto; align-items:end; gap:12px; margin-bottom:13px; }.budget-cost-card-controls label { display:grid; grid-template-columns:auto 75px auto; align-items:center; gap:5px; color:#315c4d; font-size:11px; font-weight:900; white-space:nowrap; }.budget-cost-card-controls input { width:75px; min-height:34px; padding:4px 6px; border:1px solid #8eaf9d; border-radius:5px; background:#fffdf3; color:#104f3c; font-size:14px; font-weight:900; text-align:right; }.budget-cost-card-controls input:focus { outline:3px solid rgba(170,125,29,.2); border-color:#8a651f; }.budget-cost-card-controls>div, .budget-cost-total-reference { display:grid; gap:2px; padding-left:10px; border-left:2px solid #b8d2c5; color:#557267; font-size:11px; text-align:right; white-space:nowrap; }.budget-cost-card-controls small, .budget-cost-total-reference small { color:#62746d; font-size:10px; }.budget-cost-card-controls b, .budget-cost-total-reference b { color:#174f3d; font-size:13px; }.budget-cost-card-controls span, .budget-cost-total-reference span { color:#315c4d; font-size:11px; font-weight:800; }.budget-cost-card>strong { display:block; color:#174f3d; font-size:23px; line-height:1.1; }.budget-cost-card>strong+span { display:block; margin-top:3px; color:#315c4d; font-size:12px; font-weight:800; }.budget-cost-card>small { display:block; margin-top:7px; color:#5b7469; font-size:11px; line-height:1.25; }.budget-cost-food { background:#fbf0df; border-color:#d6b98f; }.budget-cost-drink { background:#e5f0f3; border-color:#a8c7d0; }.budget-cost-total { background:#e7f1eb; border-color:#9ec3ae; }.budget-cost-total-reference { width:max-content; margin:0 0 17px auto; }.budget-cost-total>strong { color:#12543f; }
@media (max-width:900px) { .budget-cost-of-sales-cards { grid-template-columns:1fr; }.budget-cost-card-controls { grid-template-columns:1fr auto; } }

/* Make the budget cost-of-sales references useful at a glance, not just decorative detail. */
.budget-cost-card { min-height:202px; }.budget-cost-card>p { font-size:15px; }.budget-cost-card-controls label { font-size:13px; }.budget-cost-card-controls input { min-height:40px; font-size:16px; }.budget-cost-card-controls>div, .budget-cost-total-reference { font-size:13px; }.budget-cost-card-controls small, .budget-cost-total-reference small { font-size:12px; }.budget-cost-card-controls b, .budget-cost-total-reference b { font-size:16px; }.budget-cost-card-controls span, .budget-cost-total-reference span { font-size:13px; }.budget-cost-card>strong { font-size:27px; }.budget-cost-card>strong+span { font-size:14px; }.budget-cost-card>small { font-size:13px; line-height:1.35; }

.budget-turnover-line { display:grid; grid-template-columns:auto auto minmax(220px,1fr); align-items:center; gap:15px; margin:14px 0 18px; padding:13px 17px; border:1px solid #b6cbbb; border-left:5px solid #1d674f; border-radius:7px; background:#e7f1eb; color:#174f3d; }.budget-turnover-line>span { font-size:15px; font-weight:900; white-space:nowrap; }.budget-turnover-line>span small { display:block; margin-top:2px; color:#557267; font-size:12px; font-weight:800; }.budget-turnover-line>strong { font-size:26px; line-height:1; white-space:nowrap; }.budget-turnover-line p { margin:0; color:#46685b; font-size:13px; text-align:right; }.budget-turnover-line p b { color:#174f3d; }
@media (max-width:780px) { .budget-turnover-line { grid-template-columns:1fr; gap:6px; }.budget-turnover-line p { text-align:left; } }

.budget-turnover-line>strong { font-size:34px; }

/* First set the two GP rates, then read their combined cost plan in one line. */
.budget-cost-of-sales-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
.budget-cost-card-controls { grid-template-columns:1fr auto 1fr; }
.budget-cost-card-controls label { grid-column:2; }
.budget-cost-card-controls > div { grid-column:3; justify-self:end; }
.budget-setup-table tfoot th, .budget-setup-table tfoot td { padding:13px 10px; vertical-align:middle; border-top:1px solid #a8c5b6; border-bottom:0; }.budget-target-totals-row>* { background:#e7f1eb; }.budget-turnover-band>* { background:#e7f1eb; }.budget-cost-band>* { background:#f4f8f5; }.budget-setup-table tfoot .budget-target-totals-heading { min-width:295px; color:#fffdf3; text-align:left; }.budget-turnover-band .budget-target-totals-heading { background:#1d674f; }.budget-cost-band .budget-target-totals-heading { background:#76571a; }.budget-band-title { display:block; font-size:14px; font-weight:900; }.budget-target-totals-heading small { display:block; margin-top:3px; color:#eef8f2; font-size:11px; }.budget-turnover-band .budget-target-total-spacer { background:#e7f1eb !important; }.budget-cost-band .budget-target-total-spacer { background:#f4f8f5 !important; }.budget-target-total-cell { min-width:145px; color:#174f3d; text-align:center; }.budget-target-total-content { display:grid; width:100%; place-items:center; text-align:center; }.budget-target-total-content>span { display:block; color:#174f3d; font-size:12px; font-weight:900; text-align:center; }.budget-target-total-content>span small { display:block; margin-top:2px; color:#557267; font-size:11px; font-weight:800; }.budget-target-total-content>strong { display:block; margin-top:4px; color:#104f3c; font-size:20px; line-height:1.1; text-align:center; white-space:nowrap; }.budget-turnover-band .budget-target-total-wet, .budget-cost-band .budget-target-total-wet { background:#e3f0f4 !important; }.budget-turnover-band .budget-target-total-dry, .budget-cost-band .budget-target-total-dry { background:#fbf0df !important; }.budget-turnover-band .budget-target-total-overall { background:#e5f0e9 !important; }.budget-cost-band .budget-target-total-overall { background:#edf4ef !important; }.budget-band-gap td { height:18px; min-height:18px; padding:0 !important; background:#fffdf7 !important; border:0 !important; }.budget-inline-gp { display:flex; align-items:end; justify-content:space-between; gap:12px; margin-top:11px; }.budget-inline-gp label { display:grid; gap:4px; color:#fffdf3; font-size:11px; font-weight:900; }.budget-inline-gp label>span { display:grid; grid-template-columns:76px auto; align-items:center; gap:5px; }.budget-inline-gp input { width:76px; min-height:33px; padding:4px 6px; border:1px solid #d7bd72; border-radius:5px; background:#fffdf3; color:#174f3d; font-size:14px; font-weight:900; text-align:center; }.budget-inline-gp b { color:#fff7d5; font-size:13px; }.budget-target-cell { text-align:center; }.budget-target-cell input { text-align:center; }
.currency-input-wrap { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:6px; width:100%; }.currency-prefix { color:#174f3d; font-size:16px; font-weight:900; line-height:1; }.currency-input-wrap .currency-input { width:100%; min-width:0; }
.budget-money-input { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:6px; width:100%; }.budget-money-input>b { color:#174f3d; font-size:16px; line-height:1; }
.budget-setup-table col.budget-sales-type-column { width:165px; }
.budget-setup-table thead th:nth-child(8), .budget-setup-table thead th:nth-child(9), .budget-setup-table tbody td:nth-child(8), .budget-setup-table tbody td:nth-child(9) { text-align:center !important; }
.budget-setup-table thead th:nth-child(2), .budget-setup-table thead th:nth-child(3) { text-align:center !important; }

/* Financial-year ledger: one consistent May-to-April column for sales, GP and costs. */
.budget-table-wrap { max-height:min(78vh, 920px); overflow:auto; border-color:#c9b26f; background:#fff; }
.budget-setup-table { width:max-content; min-width:2110px; table-layout:fixed; }
.budget-setup-table thead th { position:sticky; top:0; z-index:4; min-width:126px; padding:12px 10px; background:#15533f; color:#fff; font-size:13px; text-align:center; box-shadow:0 1px 0 rgba(255,255,255,.28); }
.budget-setup-table .budget-ledger-label-heading { position:sticky; left:0; z-index:6; width:280px; min-width:280px; background:#0f4433; text-align:left; }
.budget-setup-table .budget-ledger-total-heading { min-width:142px; background:#6c5118; }
.budget-setup-table tbody th { position:sticky; left:0; z-index:2; width:280px; min-width:280px; padding:9px 13px; border-bottom:1px solid #dbe7e1; background:#f7fbf8; color:#164d3a; font-size:13px; font-weight:800; text-align:left; white-space:normal; box-shadow:1px 0 0 #cfddd5; }
.budget-setup-table tbody th small { display:block; margin-top:2px; color:#668177; font-size:11px; font-weight:700; }
.budget-setup-table td { min-width:126px; padding:8px 10px; border-bottom:1px solid #dbe7e1; color:#174f3d; font-size:13px; }
.budget-setup-table .budget-ledger-total { min-width:142px; background:#edf5f0; color:#104f3c; font-weight:900; }
.budget-setup-table .budget-ledger-section-row th { position:static; width:auto; min-width:0; padding:11px 13px; border-top:2px solid #b18d36; border-bottom:1px solid #b18d36; background:#f0e2b6; color:#5b4311; box-shadow:none; }
.budget-ledger-section-row strong { display:block; font-size:14px; }
.budget-ledger-section-row span { display:block; margin-top:2px; color:#766338; font-size:11px; font-weight:700; }
.budget-ledger-section-sales th { border-color:#2b7157 !important; background:#dceee4 !important; color:#174f3d !important; }.budget-ledger-section-sales span { color:#466f5d; }
.budget-sales-mix-row-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; }.budget-sales-mix-row-heading>span { display:grid; gap:2px; min-width:0; text-align:left; }.budget-sales-mix-row-heading strong { color:#164d3a; font-size:13px; }.budget-setup-table tbody th .budget-sales-mix-row-heading small { margin:0; color:#557267; font-size:10px; font-weight:800; line-height:1.2; }.budget-sales-mix-row-heading label { display:grid; flex:0 0 auto; grid-template-columns:auto 61px auto; align-items:center; gap:5px; color:#174f3d; font-size:10px; font-weight:900; white-space:nowrap; }.budget-sales-mix-row-heading input { width:61px; min-height:29px; padding:4px 5px; border:1px solid #7faa96; border-radius:5px; background:#fff; color:#104f3c; font-family:"Segoe UI",Arial,sans-serif; font-size:12px; font-weight:900; text-align:center; }.budget-sales-mix-row-heading input:focus { outline:3px solid rgba(44,113,87,.18); border-color:#1d674f; }.budget-sales-mix-row-heading label b { color:#174f3d; font-size:12px; }.budget-dry-mix-readout { display:grid !important; flex:0 0 auto; grid-template-columns:auto auto; align-items:center; gap:6px; color:#174f3d !important; font-size:10px !important; font-weight:900 !important; white-space:nowrap; }.budget-dry-mix-readout output { min-width:50px; color:#174f3d; font-size:12px; font-weight:900; text-align:right; }
.budget-ledger-section-cost th { border-color:#b58525 !important; background:#f5e8bd !important; color:#674c11 !important; }.budget-ledger-section-cost span { color:#7e672f; }
.budget-ledger-section-profit th, .budget-ledger-section-profit-after-wages th, .budget-ledger-section-operating th { border-color:#2f7958 !important; background:#dbeee3 !important; color:#15503c !important; }.budget-ledger-section-profit span, .budget-ledger-section-profit-after-wages span, .budget-ledger-section-operating span { color:#466f5d; }
.budget-ledger-section-labour th { border-color:#487aa3 !important; background:#dceaf6 !important; color:#1d527d !important; }.budget-ledger-section-labour span { color:#50728e; }
.budget-ledger-section-labour-totals th { border-color:#2d628b !important; background:#cfe3f1 !important; color:#153f64 !important; }.budget-ledger-section-labour-totals span { color:#466e8a !important; }
.budget-ledger-section-administrative th { border-color:#78649c !important; background:#e9e2f4 !important; color:#4d3a70 !important; }.budget-ledger-section-administrative span { color:#705b91; }
.budget-ledger-section-income th { border-color:#8e6b31 !important; background:#f8eed7 !important; color:#6d4d16 !important; }.budget-ledger-section-income span { color:#806536; }
.budget-history-row th, .budget-history-row td { background:#fbf4df !important; }
.budget-history-row th { background:#f2e6bf !important; }
.budget-target-row th, .budget-target-row td { background:#eef6f1; }
.budget-derived-row td { background:#f2f8f4; }
.budget-wet-row td, .budget-wet-cell { background:#e3f0f4; }
.budget-dry-row td, .budget-dry-cell { background:#fbf0df; }
.budget-cost-cell { background:#f2f7f3; font-weight:800; }
.budget-cost-total-row th, .budget-cost-total-row td { border-top:2px solid #9bbba9; background:#e7f0e9; font-weight:900; }
.budget-profit-row th, .budget-profit-row td { background:#eaf5ef; color:#0e503a; font-weight:900; }
.budget-profit-after-wages-row th, .budget-profit-after-wages-row td { border-top:2px solid #68a58a; background:#e3f1e9; color:#145440; font-weight:900; }.budget-profit-after-wages-cell { background:#e3f1e9 !important; color:#145440 !important; font-weight:900; }
.budget-labour-line th, .budget-labour-line td { background:#f3f8fc; }.budget-labour-input-cell { background:#eaf3fa !important; }.budget-labour-total-row th, .budget-labour-total-row td { border-top:2px solid #94b6d0; background:#dceaf6; color:#1d527d; font-weight:900; }.budget-labour-total-cell { background:#dceaf6 !important; color:#1d527d !important; font-weight:900; }
.budget-admin-line th, .budget-admin-line td { background:#f8f6fc; }
.budget-admin-input-cell { background:#f3f0fa !important; }
.budget-admin-total-row th, .budget-admin-total-row td { border-top:2px solid #a99bc9; background:#e8e1f5; color:#3f3467; font-weight:900; }
.budget-admin-total-cell { background:#e8e1f5 !important; color:#3f3467 !important; font-weight:900; }
.budget-operating-profit-row th, .budget-operating-profit-row td { border-top:2px solid #4d9771; background:#d6ebdf; color:#0d513b; font-weight:900; }.budget-operating-profit-cell { background:#d6ebdf !important; color:#0d513b !important; font-weight:900; }
.budget-other-income-line th, .budget-other-income-line td { background:#fff9ec; }.budget-otherIncome-input-cell { background:#fff5df !important; }.budget-other-income-total-row th, .budget-other-income-total-row td { border-top:2px solid #d0ad5b; background:#f6eacb; color:#6d4d16; font-weight:900; }.budget-other-income-total-cell { background:#f6eacb !important; color:#6d4d16 !important; font-weight:900; }
.budget-profit-before-tax-row th, .budget-profit-before-tax-row td { border-top:2px solid #287457; background:#dcefe4; color:#0d513b; font-weight:900; }.budget-profit-before-tax-cell { background:#dcefe4 !important; color:#0d513b !important; font-weight:900; }
.budget-setup-table .budget-money-input { grid-template-columns:auto minmax(0,1fr); gap:5px; min-width:108px; }
.budget-setup-table .budget-money-input>b { color:#174f3d; font-size:14px; }
.budget-setup-table .budget-money-input input { width:100%; min-width:0; min-height:34px; padding:5px 6px; border:1px solid #9bbdac; border-radius:5px; background:#fff; color:#104f3c; font-size:13px; font-weight:800; text-align:right; }
.budget-setup-table .budget-money-input input:focus { outline:3px solid rgba(170,125,29,.18); border-color:#9a6d1d; }
.budget-setup-table output { display:block; color:inherit; font:inherit; font-weight:800; }
.budget-setup-table td small { display:block; margin-top:3px; color:#557267; font-size:10px; font-weight:700; line-height:1.15; white-space:normal; }
.budget-cost-row-heading { display:flex; align-items:center; justify-content:space-between; gap:14px; width:100%; }.budget-cost-row-copy { display:grid; gap:2px; text-align:left; }.budget-cost-row-copy strong { color:#164d3a; font-size:13px; }.budget-setup-table tbody th .budget-cost-row-copy small { margin:0; color:#668177; font-size:11px; font-weight:700; text-align:left; }.budget-ledger-gp-control { display:grid; flex:0 0 92px; gap:3px; margin:0; color:#17503b; font-size:10px; font-weight:900; text-align:center; }.budget-ledger-gp-input { display:grid; grid-template-columns:62px auto; align-items:center; justify-content:center; gap:4px; }.budget-ledger-gp-control input { width:62px; min-height:28px; padding:3px 4px; border:1px solid #b79546; border-radius:4px; background:#fffdf5; color:#174f3d; font-size:12px; font-weight:900; text-align:center; }.budget-ledger-gp-control b { color:#75540e; font-size:12px; }
.budget-ledger-gap-row td { height:12px; min-height:12px; padding:0 !important; border:0 !important; background:#fffdf7 !important; }
@media (max-width:900px) { .budget-table-wrap { max-height:70vh; }.budget-setup-table { min-width:1880px; }.budget-setup-table .budget-ledger-label-heading, .budget-setup-table tbody th { width:235px; min-width:235px; } }
@media (max-width:900px) { .budget-cost-of-sales-cards { grid-template-columns:1fr; }.budget-cost-card-controls { grid-template-columns:1fr; justify-items:center; }.budget-cost-card-controls label, .budget-cost-card-controls > div { grid-column:1; justify-self:center; }.budget-cost-card-controls > div { padding:9px 0 0; border-top:1px solid #b8d2c5; border-left:0; text-align:center; } }

/* A focused, high-contrast ledger treatment keeps long financial-year plans readable. */
.budget-setup-table { min-width:2200px; }
.budget-setup-table thead th { min-width:132px; padding:14px 9px; border-left:1px solid rgba(255,255,255,.28); color:#fff; font-family:"Segoe UI", Arial, sans-serif; font-size:14px; font-weight:800; letter-spacing:0; text-align:center; text-shadow:none; }
.budget-setup-table .budget-ledger-label-heading { width:270px; min-width:270px; padding-left:16px; border-left:0; text-align:left; }
.budget-setup-table .budget-ledger-total-heading { min-width:150px; }
.budget-setup-table tbody th { width:270px; min-width:270px; padding:11px 14px; border-bottom:1px solid #c8dbd1; color:#164d3a; font-family:"Segoe UI", Arial, sans-serif; font-size:14px; font-weight:800; line-height:1.25; text-align:left; text-shadow:none; }
.budget-setup-table tbody th small { margin-top:3px; color:#557267; font-size:12px; line-height:1.25; }
.budget-setup-table td { min-width:132px; padding:10px 8px; border-bottom:1px solid #c8dbd1; border-left:1px solid #d0dfd7; color:#174f3d; font-size:14px; text-align:center; }
.budget-setup-table .budget-ledger-total { min-width:150px; border-left:2px solid #8aad9d; }
.budget-setup-table output { font-size:14px; font-weight:800; line-height:1.25; text-align:center; }
.budget-setup-table td small { font-size:11px; line-height:1.25; text-align:center; }
.budget-ledger-section-row th { font-family:"Segoe UI", Arial, sans-serif; text-align:left; }
.budget-ledger-section-row strong { font-size:15px; letter-spacing:.01em; }
.budget-ledger-section-row span { margin-top:3px; font-size:12px; line-height:1.3; }
.budget-setup-table .budget-money-input { grid-template-columns:auto 98px; justify-content:center; gap:6px; min-width:0; }
.budget-setup-table .budget-money-input>b { font-size:17px; }
.budget-setup-table .budget-money-input input { width:98px; min-width:98px; min-height:37px; padding:5px 7px; font-size:14px; font-weight:800; text-align:center; }
.budget-percent-input { display:grid; grid-template-columns:82px auto; justify-content:center; align-items:center; gap:6px; width:100%; }
.budget-percent-input input { width:82px; min-height:37px; padding:5px 7px; border:1px solid #9bbdac; border-radius:5px; background:#fff; color:#104f3c; font-family:"Segoe UI", Arial, sans-serif; font-size:14px; font-weight:800; text-align:center; }
.budget-percent-input input:focus { outline:3px solid rgba(170,125,29,.18); border-color:#9a6d1d; }
.budget-percent-input>b { color:#174f3d; font-size:15px; }
.budget-ledger-section-labour-department th { border-top:2px solid #80abc9 !important; border-bottom-color:#a8c6d9 !important; background:#e8f3fa !important; color:#1b5379 !important; }
.budget-ledger-section-labour-department span { color:#52738a !important; }
.budget-labour-rate-row th, .budget-labour-rate-row td { background:#f4f9fc; color:#1d527d; }
.budget-labour-rate-cell { background:#eaf4fb !important; }
.budget-labour-department-total-row th, .budget-labour-department-total-row td { border-top:1px solid #a6c4d8; background:#dcebf5; color:#1d527d; font-weight:900; }
.budget-labour-department-total-row .budget-labour-total-cell { background:#dcebf5 !important; }
@media (max-width:900px) { .budget-setup-table { min-width:2020px; }.budget-setup-table .budget-ledger-label-heading, .budget-setup-table tbody th { width:250px; min-width:250px; } }

/* Every finance month uses the same visual centre line, including the header and FY total. */
.budget-setup-table th.number, .budget-setup-table td.number, .budget-setup-table td.number output, .budget-setup-table .budget-ledger-total { text-align:center !important; }
.budget-setup-table thead th.number { display:table-cell; vertical-align:middle; }
.budget-setup-table tbody td { vertical-align:middle; }
.budget-labour-annual-input-row th, .budget-labour-annual-input-row td { background:#eef7fc; color:#1d527d; }
.budget-labour-annual-input-row th { font-weight:900; }
.budget-labour-annual-controls-cell { padding:12px 18px !important; }
.budget-labour-annual-controls { display:flex; align-items:center; justify-content:center; gap:28px; }
.budget-labour-annual-control { display:grid; grid-template-columns:auto auto; align-items:center; gap:9px; color:#1d527d; text-align:left; }
.budget-labour-annual-control>span:first-child { display:grid; gap:2px; min-width:126px; }
.budget-labour-annual-control b { font-size:14px; }
.budget-labour-annual-control small { color:#55758d !important; font-size:11px !important; font-weight:700; white-space:nowrap; }
.budget-labour-annual-control .budget-percent-input { width:auto; grid-template-columns:78px auto; justify-content:start; }
.budget-labour-annual-control .budget-percent-input input { width:78px; min-height:36px; }
.budget-labour-annual-note { min-width:150px; background:#dcebf5 !important; color:#1d527d !important; font-size:13px; font-weight:800; text-align:center; }
.budget-labour-annual-note b, .budget-labour-annual-note small { display:block; }
.budget-labour-annual-note small { margin-top:3px; color:#55758d !important; font-size:11px !important; }
.budget-labour-method-actions { display:flex; gap:5px; margin-top:8px; }.budget-labour-method-action { min-height:27px; padding:3px 7px; border:1px solid #8ba99a; border-radius:4px; background:#fff; color:#17513d; font-family:"Segoe UI", Arial,sans-serif; font-size:10px; font-weight:900; white-space:nowrap; }.budget-labour-method-action:hover { border-color:#1d674f; background:#e1f0e8; }.budget-labour-method-action.is-active { border-color:#15533e; background:#1d674f; color:#fff; }.budget-labour-money-input { display:grid; grid-template-columns:auto 104px; align-items:center; gap:6px; }.budget-labour-money-input>b { color:#1d527d; font-size:16px; }.budget-labour-money-input input { width:104px; min-height:36px; padding:5px 7px; border:1px solid #9bbdac; border-radius:5px; background:#fff; color:#104f3c; font-family:"Segoe UI", Arial,sans-serif; font-size:14px; font-weight:800; text-align:center; }.budget-labour-money-input input:focus { outline:3px solid rgba(72,122,163,.18); border-color:#315f85; }

/* Each payroll department has its own colour band so the annual plan reads as four separate blocks. */
.budget-ledger-section-row.budget-labour-department-foh th { border-color:#4a8c6a !important; background:#dff0e6 !important; color:#14513b !important; }.budget-ledger-section-row.budget-labour-department-foh span { color:#39755a !important; }.budget-labour-annual-input-row.budget-labour-department-foh th, .budget-labour-annual-input-row.budget-labour-department-foh td { background:#eff8f2 !important; color:#14513b !important; }.budget-labour-department-total-row.budget-labour-department-foh th, .budget-labour-department-total-row.budget-labour-department-foh td, .budget-labour-department-total-row.budget-labour-department-foh .budget-labour-total-cell { background:#dff0e6 !important; color:#14513b !important; }
.budget-ledger-section-row.budget-labour-department-chefs th { border-color:#bd8428 !important; background:#f9e7c4 !important; color:#724c10 !important; }.budget-ledger-section-row.budget-labour-department-chefs span { color:#8b641f !important; }.budget-labour-annual-input-row.budget-labour-department-chefs th, .budget-labour-annual-input-row.budget-labour-department-chefs td { background:#fff7e8 !important; color:#724c10 !important; }.budget-labour-department-total-row.budget-labour-department-chefs th, .budget-labour-department-total-row.budget-labour-department-chefs td, .budget-labour-department-total-row.budget-labour-department-chefs .budget-labour-total-cell { background:#f9e7c4 !important; color:#724c10 !important; }
.budget-ledger-section-row.budget-labour-department-kp th { border-color:#4b8eab !important; background:#dceff6 !important; color:#1b5774 !important; }.budget-ledger-section-row.budget-labour-department-kp span { color:#39758f !important; }.budget-labour-annual-input-row.budget-labour-department-kp th, .budget-labour-annual-input-row.budget-labour-department-kp td { background:#eff8fb !important; color:#1b5774 !important; }.budget-labour-department-total-row.budget-labour-department-kp th, .budget-labour-department-total-row.budget-labour-department-kp td, .budget-labour-department-total-row.budget-labour-department-kp .budget-labour-total-cell { background:#dceff6 !important; color:#1b5774 !important; }
.budget-ledger-section-row.budget-labour-department-management th { border-color:#8264a0 !important; background:#eae1f3 !important; color:#523b71 !important; }.budget-ledger-section-row.budget-labour-department-management span { color:#725a8e !important; }.budget-labour-annual-input-row.budget-labour-department-management th, .budget-labour-annual-input-row.budget-labour-department-management td { background:#f8f4fc !important; color:#523b71 !important; }.budget-labour-department-total-row.budget-labour-department-management th, .budget-labour-department-total-row.budget-labour-department-management td, .budget-labour-department-total-row.budget-labour-department-management .budget-labour-total-cell { background:#eae1f3 !important; color:#523b71 !important; }
.budget-labour-section-heading { display:flex; align-items:center; justify-content:flex-start; gap:12px; }.budget-labour-section-heading>span { display:grid; gap:3px; text-align:left; }.budget-labour-section-heading>span>span { font-size:11px; font-weight:700; }.budget-labour-plan-open { min-height:31px; padding:5px 10px; border:1px solid currentColor; border-radius:5px; background:#fffdf8; color:inherit; font-family:"Segoe UI", Arial,sans-serif; font-size:11px; font-weight:900; white-space:nowrap; }.budget-labour-plan-open:hover { background:#fff; box-shadow:0 2px 6px rgba(15,67,50,.12); }

/* Administrative costs can be planned by a rule without hiding the monthly inputs. */
.budget-administrative-row-heading { display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; }.budget-administrative-row-heading>span { display:grid; gap:2px; min-width:0; text-align:left; }.budget-administrative-row-heading strong { color:#4d3a70; font-size:13px; }.budget-setup-table tbody th .budget-administrative-row-heading small { margin:0; color:#705b91; font-size:10px; font-weight:800; line-height:1.2; }.budget-administrative-plan-open { flex:0 0 auto; min-height:29px; padding:4px 8px; border:1px solid #9d8ab8; border-radius:5px; background:#fff; color:#4d3a70; font-family:"Segoe UI",Arial,sans-serif; font-size:10px; font-weight:900; white-space:nowrap; }.budget-administrative-plan-open:hover { border-color:#72588f; background:#eee7f7; }
.budget-administrative-plan-dialog { width:min(650px,calc(100vw - 36px)); }.budget-administrative-plan-dialog-body { display:grid; gap:14px; padding:20px 22px; }.budget-administrative-plan-methods { display:flex; flex-wrap:wrap; gap:9px; margin:0; padding:0; border:0; }.budget-administrative-plan-methods legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }.budget-administrative-plan-methods label { display:flex; align-items:center; gap:7px; min-height:39px; padding:7px 10px; border:1px solid #b9a8ce; border-radius:6px; background:#f8f5fc; color:#4d3a70; font-size:12px; font-weight:900; }.budget-administrative-plan-methods input { width:17px; height:17px; margin:0; accent-color:#72588f; }.budget-administrative-plan-field { display:grid; grid-template-columns:minmax(190px,1fr) auto; align-items:center; gap:5px 16px; padding:14px; border:1px solid #cbbddd; border-radius:7px; background:#faf8fd; color:#4d3a70; font-size:13px; font-weight:900; }.budget-administrative-plan-field>span:first-child { font-size:14px; }.budget-administrative-plan-field small { grid-column:1 / -1; color:#705b91; font-size:11px; font-weight:700; line-height:1.3; }.budget-administrative-plan-field .budget-percent-input { width:auto; }.budget-administrative-dialog-money { display:grid; grid-template-columns:auto 110px; align-items:center; gap:6px; }.budget-administrative-dialog-money>b { color:#4d3a70; font-size:16px; }.budget-administrative-dialog-money input { width:110px; min-height:37px; padding:5px 7px; border:1px solid #9d8ab8; border-radius:5px; background:#fff; color:#4d3a70; font-family:"Segoe UI",Arial,sans-serif; font-size:14px; font-weight:800; text-align:center; }.budget-administrative-dialog-money input:focus { outline:3px solid rgba(114,88,143,.18); border-color:#72588f; }
@media (max-width:620px) { .budget-administrative-plan-dialog-body { padding:16px; }.budget-administrative-plan-field { grid-template-columns:1fr; }.budget-administrative-plan-field .budget-percent-input { justify-content:start; }.budget-administrative-dialog-money { justify-content:start; } }

/* Labour planning is kept in a focused dialog so the monthly ledger stays readable. */
.budget-labour-plan-dialog { width:min(860px,calc(100vw - 36px)); }.budget-labour-plan-dialog-body { display:grid; gap:18px; padding:20px 22px; }.budget-labour-dialog-methods { display:flex; flex-wrap:wrap; gap:10px; margin:0; padding:0; border:0; }.budget-labour-dialog-methods legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }.budget-labour-dialog-methods label { display:flex; align-items:center; gap:7px; min-height:40px; padding:7px 11px; border:1px solid #a8c5b6; border-radius:6px; background:#f5faf7; color:#174f3d; font-size:13px; font-weight:900; }.budget-labour-dialog-methods label.is-selected { border-color:#1d674f; background:#e0efe6; box-shadow:inset 0 0 0 1px #1d674f; }.budget-labour-dialog-methods input { width:17px; height:17px; margin:0; accent-color:#1d674f; }.budget-labour-dialog-pay-method { padding:14px; border:1px solid #afcbbd; border-radius:7px; background:#f6fbf8; }.budget-labour-dialog-field { display:grid; grid-template-columns:minmax(175px,1fr) auto; align-items:center; gap:16px; color:#174f3d; }.budget-labour-dialog-field>span:first-child { display:grid; gap:3px; }.budget-labour-dialog-field b { font-size:14px; }.budget-labour-dialog-field small { color:#5b7469; font-size:11px; font-weight:700; }.budget-labour-dialog-field .budget-percent-input { width:auto; }.budget-labour-salaries-section { overflow:hidden; border:1px solid #b8cfc2; border-radius:8px; background:#f8fcf9; }.budget-labour-salaries-heading { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:12px 14px; border-bottom:1px solid #d7e5dc; background:#edf6f0; }.budget-labour-salaries-heading>span { display:grid; gap:3px; }.budget-labour-salaries-heading b { color:#174f3d; font-size:14px; }.budget-labour-salaries-heading small { color:#5b7469; font-size:11px; font-weight:700; }.budget-labour-salaries-heading .button { min-height:33px; padding:5px 10px; white-space:nowrap; }.budget-labour-employee-list { display:grid; }.budget-labour-empty-employees { margin:0; padding:16px; color:#5b7469; font-size:12px; font-weight:700; text-align:center; }.budget-labour-employee-row { display:grid; grid-template-columns:minmax(170px,1fr) minmax(164px,.8fr) auto; align-items:end; gap:11px; padding:11px 14px; border-top:1px solid #e1ebe5; }.budget-labour-employee-row:first-child { border-top:0; }.budget-labour-employee-row label { display:grid; gap:5px; color:#315c4d; font-size:11px; font-weight:900; }.budget-labour-employee-row input { min-height:35px; padding:5px 8px; border:1px solid #9bbdac; border-radius:5px; background:#fff; color:#104f3c; font-family:"Segoe UI", Arial,sans-serif; font-size:13px; font-weight:800; }.budget-labour-dialog-money { display:grid; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:6px; }.budget-labour-dialog-money>b { color:#174f3d; font-size:15px; }.budget-labour-dialog-money input { width:100%; text-align:center; }.budget-labour-remove-employee { min-height:35px; padding:5px 9px; color:#7b4928; border-color:#d4b79f; background:#fff8f1; font-size:11px; }.budget-labour-salary-total { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:3px 15px; padding:12px 14px; border-top:2px solid #9fc2ae; background:#e1f0e7; color:#174f3d; }.budget-labour-salary-total span { display:grid; gap:2px; font-size:12px; font-weight:900; }.budget-labour-salary-total small { color:#587468; font-size:10px; }.budget-labour-salary-total strong { font-size:18px; }.budget-labour-salary-total>b { grid-column:2; color:#45685a; font-size:11px; text-align:right; }.budget-labour-dialog-statutory { padding:14px; border:1px solid #b9cce0; border-radius:7px; background:#f2f7fc; }.budget-labour-dialog-statutory h5 { margin:0; color:#1d527d; font-size:14px; }.budget-labour-dialog-statutory>p { margin:4px 0 12px; color:#58758f; font-size:11px; font-weight:700; }.budget-labour-dialog-statutory>div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; }.budget-labour-dialog-statutory .budget-labour-dialog-field { grid-template-columns:minmax(115px,1fr) auto; }.budget-labour-dialog-statutory .budget-labour-dialog-field .budget-percent-input { grid-template-columns:72px auto; }.budget-labour-dialog-statutory .budget-labour-dialog-field .budget-percent-input input { width:72px; }
@media (max-width:650px) { .budget-labour-plan-dialog-body { padding:16px; }.budget-labour-dialog-field, .budget-labour-dialog-statutory>div, .budget-labour-employee-row { grid-template-columns:1fr; }.budget-labour-dialog-field .budget-percent-input { justify-content:start; }.budget-labour-employee-row { align-items:stretch; }.budget-labour-remove-employee { justify-self:start; }.budget-labour-salaries-heading { align-items:flex-start; flex-direction:column; } }

/* Whole-year planning choices open from their matching sales-plan row. */
.budget-sales-rule-actions { display:flex; align-items:center; justify-content:flex-end; gap:8px; flex-wrap:wrap; }
.budget-sales-rule-actions .button { min-height:38px; padding:7px 12px; white-space:nowrap; }
.budget-sales-plan-editor { display:grid; grid-template-columns:minmax(240px,1fr) auto auto; align-items:center; gap:14px; margin:-5px 0 16px; padding:15px; border:1px solid #aebfb5; border-left:4px solid #1d674f; border-radius:8px; background:#f5faf7; }
.budget-sales-plan-editor>div:first-child { display:grid; gap:3px; }.budget-sales-plan-editor strong { color:#174f3d; font-size:15px; }.budget-sales-plan-editor>div:first-child span { color:#5b7469; font-size:12px; line-height:1.3; }
.budget-sales-plan-methods { display:flex; align-items:center; gap:10px; margin:0; padding:0; border:0; }.budget-sales-plan-methods legend { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }.budget-sales-plan-methods label { display:flex; align-items:center; gap:6px; color:#174f3d; font-size:13px; font-weight:800; white-space:nowrap; }.budget-sales-plan-methods input { width:17px; height:17px; margin:0; accent-color:#1d674f; }
.budget-sales-plan-field { display:grid; grid-template-columns:auto 90px auto; align-items:center; gap:6px; color:#604d1a; font-size:13px; font-weight:900; white-space:nowrap; }.budget-sales-plan-field input { width:90px; min-height:38px; padding:5px 7px; border:2px solid #8eaf9d; border-radius:6px; background:#fff; color:#104f3c; font-size:15px; font-weight:900; text-align:center; }.budget-sales-plan-field small { grid-column:1 / -1; color:#5b7469; font-size:11px; font-weight:700; white-space:normal; }
.budget-sales-plan-editor-actions { display:flex; justify-content:flex-end; gap:8px; grid-column:1 / -1; }.budget-sales-plan-editor-actions .button { min-height:36px; padding:7px 11px; }
.budget-target-title-actions { display:flex; gap:4px; flex-wrap:nowrap; margin-top:5px; }.budget-row-action { min-height:26px; padding:3px 6px; border:1px solid #8eaf9d; border-radius:4px; background:#fff; color:#15513d; font-family:"Segoe UI", Arial, sans-serif; font-size:10px; font-weight:800; white-space:nowrap; }.budget-row-action:hover { border-color:#1d674f; background:#e0eee7; }.budget-row-action-primary { border-color:#9a6d1d; background:#fff4d7; color:#67480b; }.budget-row-action-primary:hover { background:#f4e3b5; }
.budget-plan-dialog { width:min(720px,calc(100vw - 36px)); padding:0; overflow:hidden; border:1px solid #aebfb5; border-top:4px solid #1d674f; border-radius:10px; background:#fbfdfc; color:#173e30; box-shadow:0 20px 60px rgba(10,54,40,.26); }.budget-plan-dialog::backdrop { background:rgba(12,49,38,.42); }.budget-plan-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:20px 22px 15px; border-bottom:1px solid #d8e5dd; background:#f1f8f4; }.budget-plan-dialog-heading .eyebrow { margin-bottom:4px; }.budget-plan-dialog-heading h4 { margin:0; color:#174f3d; font-size:21px; line-height:1.15; }.budget-plan-dialog-heading p:last-child { max-width:560px; margin:6px 0 0; color:#557267; font-size:13px; line-height:1.4; }.dialog-close { display:grid; flex:0 0 auto; place-items:center; width:32px; height:32px; padding:0; border:1px solid #9bbdac; border-radius:50%; background:#fff; color:#174f3d; font-family:"Segoe UI", Arial, sans-serif; font-size:24px; line-height:1; }.dialog-close:hover { border-color:#1d674f; background:#e0eee7; }.budget-plan-dialog .budget-sales-plan-methods { display:flex; flex-wrap:wrap; align-items:center; gap:10px 18px; margin:0; padding:18px 22px 10px; border:0; }.budget-plan-dialog .budget-sales-plan-field { margin:10px 22px 18px; }.budget-plan-dialog-actions { display:flex; justify-content:flex-end; gap:9px; padding:14px 22px 20px; border-top:1px solid #d8e5dd; background:#f8fbf9; }.budget-plan-dialog-actions .button { min-height:38px; padding:7px 13px; }.budget-sph-dialog .budget-sales-plan-field { margin-top:22px; }
@media (max-width:640px) { .budget-plan-dialog { width:calc(100vw - 24px); }.budget-plan-dialog-heading { padding:17px 16px 13px; }.budget-plan-dialog-heading h4 { font-size:18px; }.budget-plan-dialog .budget-sales-plan-methods { padding:16px 16px 8px; }.budget-plan-dialog .budget-sales-plan-field { margin-right:16px; margin-left:16px; white-space:normal; }.budget-plan-dialog-actions { padding:12px 16px 16px; } }
@media (max-width:1050px) { .budget-sales-plan-editor { grid-template-columns:1fr; align-items:start; }.budget-sales-plan-methods { flex-wrap:wrap; }.budget-sales-plan-editor-actions { grid-column:auto; justify-content:flex-start; } }

/* Targets make the budget pace visible at a glance without creating another editable plan. */
.targets-panel { border-top:4px solid #8c5531; background:linear-gradient(135deg,#fffdf9,#f8efe6); }.targets-heading { margin-bottom:18px; }.targets-empty { display:grid; gap:7px; min-height:118px; padding:28px; border:1px dashed #c7aa93; border-radius:8px; background:#fffaf6; color:#76513a; text-align:center; }.targets-empty strong { color:#6b3e22; font-size:17px; }.targets-empty span { color:#6d746f; font-size:13px; font-weight:700; }.targets-overview { display:grid; grid-template-columns:minmax(210px,300px) minmax(0,1fr); align-items:center; gap:22px; margin-bottom:18px; padding:17px 19px; border:1px solid #d8c1ad; border-left:5px solid #8c5531; border-radius:9px; background:#fffaf5; }.targets-overview-time { display:grid; grid-template-columns:auto auto; align-items:end; gap:2px 12px; color:#704529; }.targets-overview-time>span { color:#76513a; font-size:12px; font-weight:900; letter-spacing:.06em; text-transform:uppercase; }.targets-overview-time strong { justify-self:end; color:#6c3d21; font-size:28px; line-height:1; }.targets-overview-time small { grid-column:1 / -1; color:#6f756f; font-size:12px; font-weight:800; }.targets-overview-time .target-progress-track { grid-column:1 / -1; margin-top:6px; }.targets-overview>p { max-width:720px; margin:0; color:#596e63; font-size:14px; font-weight:700; line-height:1.45; }.target-progress-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:13px; }.target-progress-card { display:grid; grid-template-rows:auto auto auto auto minmax(34px,auto); overflow:hidden; min-width:0; border:1px solid #b2c8bc; border-radius:9px; background:#fff; box-shadow:0 2px 6px rgba(21,79,60,.05); }.target-progress-card header { display:grid; gap:2px; min-height:58px; padding:11px 12px; background:#1d674f; color:#fff; text-align:center; }.target-progress-card header span { font-size:14px; font-weight:900; }.target-progress-card header small { color:#dfeee7; font-size:10px; font-weight:800; line-height:1.2; }.target-progress-covers header { background:#226f58; }.target-progress-sph header { background:#8b681d; }.target-progress-wages header { background:#315d83; }.target-progress-grossProfit header { background:#8c5531; }.target-figures { display:grid; grid-template-columns:1fr 1fr; min-height:90px; }.target-figures>div { display:grid; align-content:center; gap:4px; padding:10px 7px; text-align:center; }.target-figures>div+div { border-left:1px solid #dbe7df; background:#f4f8f5; }.target-figures span { color:#60766b; font-size:10px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.target-figures strong { overflow:hidden; color:#124d3a; font-size:20px; line-height:1.12; text-overflow:ellipsis; white-space:nowrap; }.target-figures b { overflow:hidden; color:#365f50; font-size:16px; line-height:1.12; text-overflow:ellipsis; white-space:nowrap; }.target-progress-row { display:grid; gap:4px; padding:9px 12px 0; }.target-progress-row span { display:flex; justify-content:space-between; gap:9px; color:#597066; font-size:11px; font-weight:800; }.target-progress-row span b { color:#254f40; }.target-progress-track { height:9px; overflow:hidden; border-radius:999px; background:#e2ebe5; box-shadow:inset 0 1px 2px rgba(10,55,40,.08); }.target-progress-track i { display:block; height:100%; min-width:0; border-radius:inherit; transition:width .25s ease; }.target-time-track i { background:linear-gradient(90deg,#c6a04e,#e6c977); }.target-measure-track i { background:linear-gradient(90deg,#318064,#6bb394); }.target-progress-card.is-off-pace .target-measure-track i { background:linear-gradient(90deg,#b16440,#d28d68); }.target-progress-card footer { align-self:end; margin:10px 12px 12px; color:#536d61; font-size:11px; font-weight:800; line-height:1.3; text-align:center; }.target-progress-card.is-on-pace footer { color:#196047; }.target-progress-card.is-off-pace footer { color:#96512f; }
@media (max-width:1250px) { .target-progress-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media (max-width:820px) { .targets-overview { grid-template-columns:1fr; gap:13px; }.target-progress-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:520px) { .target-progress-grid { grid-template-columns:1fr; }.target-figures strong { font-size:23px; } }

/* Targets are deliberately laid out as horizontal score bars: label, figures, pace and result. */
.target-progress-grid { grid-template-columns:minmax(0,1fr); gap:10px; }
.target-progress-card { grid-template-columns:minmax(180px,220px) minmax(255px,330px) minmax(300px,1fr) minmax(205px,265px); grid-template-rows:minmax(120px,auto); align-items:stretch; }
.target-progress-card header { min-height:0; align-content:center; padding:14px 16px; text-align:left; }
.target-progress-card header span { font-size:16px; }.target-progress-card header small { font-size:11px; }
.target-figures { min-height:0; }.target-figures>div { padding:14px 10px; }.target-figures strong { font-size:22px; }.target-figures b { font-size:17px; }
.target-progress-bars { display:grid; align-content:center; gap:4px; padding:8px 17px 9px; background:#fbfdfc; }.target-progress-bars .target-progress-row { padding:4px 0; }
.target-progress-card footer { display:grid; align-self:stretch; place-items:center; align-content:center; margin:0; padding:12px 14px; border-left:1px solid #dbe7df; background:#f3f8f5; }
.target-progress-card.is-off-pace footer { background:#fff7f1; }
@media (max-width:1050px) { .target-progress-card { grid-template-columns:180px minmax(230px,.9fr) minmax(270px,1.3fr); }.target-progress-card footer { grid-column:2 / -1; border-top:1px solid #dbe7df; border-left:0; min-height:38px; }.target-progress-card.is-off-pace footer { border-top-color:#ead2bf; } }
@media (max-width:680px) { .target-progress-card { grid-template-columns:1fr; }.target-progress-card header { text-align:center; }.target-figures { min-height:90px; }.target-progress-bars { padding:9px 14px; }.target-progress-card footer { grid-column:auto; border-top:1px solid #dbe7df; }.target-progress-card.is-off-pace footer { border-top-color:#ead2bf; } }

/* Targets are a concise trading-performance view. The vertical marker is the
   target expected by the selected date; it replaces a separate time bar. */
.target-performance { max-width:1040px; margin:0 auto; overflow:hidden; border:1px solid #b9cfc3; border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(22,68,52,.07); }
.target-performance-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:24px 26px 18px; background:linear-gradient(135deg,#f8fcf9,#edf6f1); border-bottom:1px solid #d7e6dd; }
.target-performance-heading .eyebrow { margin:0 0 5px; color:#1b674e; }.target-performance-heading h4 { margin:0; color:#123e30; font-size:27px; line-height:1.12; letter-spacing:-.02em; }.target-performance-heading p:last-child { margin:7px 0 0; color:#61766c; font-size:13px; font-weight:700; line-height:1.35; }
.target-performance-status { flex:0 0 auto; padding:10px 15px; border-radius:999px; font-size:14px; font-weight:900; }.target-performance-status.is-on-track { background:#dff1e6; color:#176044; }.target-performance-status.is-behind { background:#fff0d6; color:#8a5a11; }
.target-performance-controls { display:flex; align-items:center; justify-content:space-between; gap:14px; padding:14px 26px; border-bottom:1px solid #e0ebe5; background:#fcfdfc; }
.target-performance-switch { display:inline-flex; overflow:hidden; border:1px solid #b7cec0; border-radius:7px; background:#fff; }.target-performance-switch button { min-height:35px; padding:7px 12px; border:0; border-left:1px solid #cbdcd2; background:#fff; color:#315d4d; font-family:"Segoe UI",Arial,sans-serif; font-size:12px; font-weight:900; }.target-performance-switch button:first-child { border-left:0; }.target-performance-switch button:hover { background:#eef6f1; }.target-performance-switch button.is-selected { background:#1d674f; color:#fff; box-shadow:inset 0 0 0 1px #1d674f; }
.target-performance-cards { display:grid; }.target-performance-card { display:grid; gap:14px; padding:25px 30px 22px; border-top:1px solid #dfe9e4; background:#fff; }.target-performance-card:first-child { border-top:0; }.target-performance-card.is-behind { background:#fffefd; }.target-performance-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:22px; }.target-performance-card-head>div { display:grid; gap:5px; }.target-performance-label { display:flex; align-items:center; gap:7px; }.target-performance-card-head p { margin:0; color:#355e4e; font-size:14px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; }.target-calculation-info { display:grid; place-items:center; width:19px; height:19px; padding:0; border:1px solid #779b8d; border-radius:50%; background:#f4faf6; color:#185b44; font-family:Georgia,serif; font-size:13px; font-weight:900; font-style:italic; line-height:1; }.target-calculation-info:hover { border-color:#1d674f; background:#dceee5; color:#0d4634; transform:translateY(-1px); }.target-calculation-info:focus-visible { outline:3px solid rgba(198,153,36,.35); outline-offset:2px; }.target-performance-card-head strong { color:#123e30; font-size:33px; line-height:1.04; letter-spacing:-.025em; }.target-performance-card-head strong small { color:#6b7d74; font-size:17px; font-weight:700; letter-spacing:0; }.target-performance-pace { justify-items:end; align-self:center; text-align:right; }.target-performance-pace small { color:#687a71; font-size:12px; font-weight:900; letter-spacing:.035em; text-transform:uppercase; }.target-performance-pace>b { color:#176044; font-size:17px; line-height:1.25; }.target-performance-card.is-behind .target-performance-pace>b { color:#9a6512; }
.target-sales-vat-switch { display:inline-flex; width:max-content; overflow:hidden; margin-top:4px; border:1px solid #8cb6a5; border-radius:6px; background:#fff; box-shadow:0 1px 1px rgba(13,70,52,.06); }.target-sales-vat-switch button { min-width:70px; padding:6px 10px; border:0; border-right:1px solid #8cb6a5; background:#fff; color:#215642; font:800 11px/1.1 system-ui,sans-serif; cursor:pointer; }.target-sales-vat-switch button:last-child { border-right:0; }.target-sales-vat-switch button:hover { background:#eef6f1; }.target-sales-vat-switch button.is-selected { background:#1d674f; color:#fff; }.target-sales-vat-switch button:focus-visible { position:relative; z-index:1; outline:3px solid rgba(198,153,36,.45); outline-offset:-2px; }
.target-month-navigator { display:grid; grid-template-columns:auto minmax(0,1fr); gap:8px; align-items:stretch; padding:12px 28px; border-top:1px solid #dfe9e4; border-bottom:1px solid #dfe9e4; background:#f7faf8; }.target-month-navigator button { min-height:43px; border:1px solid #a7c5b8; border-radius:6px; background:#fff; color:#205844; font:800 12px/1.1 system-ui,sans-serif; cursor:pointer; }.target-month-navigator button:hover { border-color:#2a7257; background:#edf6f0; }.target-month-navigator button.is-selected { border-color:#1a654d; background:#1d674f; color:#fff; box-shadow:0 1px 2px rgba(10,58,43,.18); }.target-month-navigator button:focus-visible { position:relative; z-index:1; outline:3px solid rgba(198,153,36,.45); outline-offset:2px; }.target-month-navigator-year { padding:8px 13px; white-space:nowrap; }.target-month-navigator-months { display:grid; grid-template-columns:repeat(12,minmax(44px,1fr)); gap:5px; min-width:0; }.target-month-navigator-month { display:grid; place-items:center; gap:2px; padding:4px; }.target-month-navigator-month span { font-size:12px; font-weight:900; }.target-month-navigator-month small { font-size:10px; font-weight:800; opacity:.78; }
.target-performance-card.has-negative-actual { border-left:6px solid #be2638; background:#fff5f5; }.target-performance-card.has-negative-actual .target-performance-label p, .target-performance-card.has-negative-actual .target-performance-card-head strong, .target-performance-card.has-negative-actual .target-performance-pace>b { color:#a61f31; }.target-performance-card.has-negative-actual .target-performance-track { background:#f2dadd; box-shadow:inset 0 1px 2px rgba(135,25,38,.14); }.target-performance-card.has-negative-actual .target-performance-track>i { background:linear-gradient(90deg,#b51f32,#df5664); }.target-performance-card.has-negative-actual .target-performance-track>b { background:#8e1c2a; }.target-performance-card.has-negative-actual .target-performance-detail { color:#7f2430; }.target-performance-card.has-negative-actual .target-performance-detail em { color:#8f2834; }
.target-performance-bar-block { display:grid; gap:12px; }.target-performance-bar-block>span { color:#314f42; font-size:13px; font-weight:900; text-align:center; }.target-performance-track { position:relative; height:18px; overflow:visible; border-radius:999px; background:#e8efeb; box-shadow:inset 0 1px 2px rgba(20,63,48,.08); }.target-performance-track>i { display:block; height:100%; max-width:100%; border-radius:inherit; background:linear-gradient(90deg,#1d9a65,#42b87d); }.target-performance-covers .target-performance-track>i { background:linear-gradient(90deg,#c47b0e,#e2a331); }.target-performance-after-wages .target-performance-track>i { background:linear-gradient(90deg,#2f6d92,#559cc4); }.target-performance-net .target-performance-track>i { background:linear-gradient(90deg,#704d98,#9b72bf); }.target-performance-card.is-behind .target-performance-track>i { background:linear-gradient(90deg,#c57925,#dfa648); }.target-performance-track>b { position:absolute; z-index:2; top:-8px; width:3px; height:34px; border-radius:3px; background:#173b2e; box-shadow:0 0 0 2px rgba(255,255,255,.76); transform:translateX(-50%); }
.target-performance-detail { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 20px; color:#63776d; font-size:15px; font-weight:700; line-height:1.4; }.target-performance-detail span { display:inline-flex; flex-wrap:wrap; align-items:baseline; gap:5px; }.target-performance-detail b { color:#153f31; font-size:18px; }.target-performance-detail em { color:#708078; font-style:normal; }.target-performance-detail i { margin-left:2px; font-style:normal; font-weight:900; }.target-performance-detail i.is-positive { color:#146245; }.target-performance-detail i.is-negative { color:#b14d44; }.target-performance-detail i.is-neutral { color:#61766c; }
.target-performance-card footer { padding:10px 12px; border:1px solid #e3c886; border-radius:6px; background:#fff8e9; color:#795710; font-size:12px; font-weight:800; line-height:1.4; }.target-performance-legend { display:flex; align-items:center; justify-content:center; gap:8px; margin:0; padding:15px 24px 17px; border-top:1px solid #dfe9e4; background:#f8fbf9; color:#60756b; font-size:12px; font-weight:800; }.target-performance-legend i { width:22px; height:8px; border-radius:999px; background:#32a46d; }.target-performance-legend b { display:inline-block; width:3px; height:17px; margin-left:8px; border-radius:2px; background:#173b2e; }
.target-calculation-page { max-width:1040px; margin:0 auto; overflow:hidden; border:1px solid #b9cfc3; border-radius:12px; background:#fff; box-shadow:0 8px 22px rgba(22,68,52,.07); }.target-calculation-page>header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; padding:23px 26px 18px; border-bottom:1px solid #d9e7df; background:linear-gradient(135deg,#f8fcf9,#edf6f1); }.target-calculation-page>header .eyebrow { margin:0 0 4px; }.target-calculation-page>header h4 { margin:0; color:#123e30; font-size:25px; }.target-calculation-page>header p:last-child { margin:6px 0 0; color:#61766c; font-size:13px; font-weight:700; }.target-calculation-section { padding:24px 26px 27px; }.target-calculation-section>.eyebrow { margin:0 0 5px; }.target-calculation-section h4 { margin:0; color:#174f3d; font-size:20px; }.target-calculation-intro { max-width:760px; margin:7px 0 18px; color:#5e746a; font-size:14px; font-weight:700; line-height:1.45; }.target-calculation-metrics { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:10px; margin-bottom:19px; }.target-calculation-metric { display:grid; gap:4px; min-height:86px; padding:12px 14px; border:1px solid #c9dcd1; border-radius:7px; background:#f8fbf9; }.target-calculation-metric>span { color:#507064; font-size:11px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.target-calculation-metric strong { color:#123e30; font-size:20px; line-height:1.1; }.target-calculation-metric small { color:#687b72; font-size:11px; font-weight:700; line-height:1.3; }.target-calculation-block { margin-top:14px; overflow:hidden; border:1px solid #d4e2da; border-radius:7px; background:#fff; }.target-calculation-block h5 { margin:0; padding:10px 13px; background:#edf6f0; color:#235b47; font-size:13px; }.target-calculation-list { display:grid; gap:0; margin:0; padding:0; list-style:none; }.target-calculation-list li { display:grid; grid-template-columns:minmax(170px,.7fr) minmax(0,1.8fr); gap:14px; padding:11px 13px; border-top:1px solid #e2ece6; color:#506a5f; font-size:13px; font-weight:700; line-height:1.4; }.target-calculation-list li strong { color:#174f3d; }.target-calculation-list li span { display:grid; gap:3px; }.target-calculation-list li b { color:#123e30; }.target-calculation-list li small { color:#6b7d74; font-size:11px; font-weight:700; }.target-calculation-empty { margin:0; padding:13px; color:#667b71; font-size:13px; font-weight:700; }.target-calculation-formula { margin:0; padding:13px; color:#174f3d; font-size:14px; font-weight:800; line-height:1.45; }.target-calculation-daily, .target-calculation-weighted { margin-top:8px; overflow:auto; border:1px solid #d8e5de; border-radius:5px; background:#fbfdfc; }.target-calculation-daily h6, .target-calculation-weighted h6 { margin:0; padding:7px 9px; background:#f1f7f3; color:#386451; font-size:11px; letter-spacing:.04em; text-transform:uppercase; }.target-calculation-daily table, .target-calculation-weighted table { width:100%; border-collapse:collapse; }.target-calculation-daily table { min-width:590px; }.target-calculation-weighted table { min-width:760px; }.target-calculation-daily th, .target-calculation-daily td, .target-calculation-weighted th, .target-calculation-weighted td { padding:7px 9px; border-top:1px solid #e1ebe5; color:#466459; font-size:11px; text-align:right; white-space:nowrap; }.target-calculation-daily thead th, .target-calculation-weighted thead th { background:#f8fbf9; color:#547267; font-size:10px; letter-spacing:.035em; text-transform:uppercase; }.target-calculation-daily th:first-child, .target-calculation-daily td:first-child, .target-calculation-weighted th:first-child, .target-calculation-weighted td:first-child { text-align:left; }.target-calculation-daily tbody td:last-child, .target-calculation-weighted tfoot td:last-child { color:#174f3d; font-weight:900; }.target-calculation-weighted tfoot th, .target-calculation-weighted tfoot td { border-top:2px solid #b9d6c7; background:#edf7f1; color:#174f3d; font-weight:900; }.target-calculation-weighted p { margin:0; padding:9px; border-top:1px solid #dce9e2; color:#315c4b; font-size:12px; font-weight:700; }.target-calculation-note, .target-calculation-warning { margin:16px 0 0; padding:10px 12px; border-radius:6px; font-size:12px; font-weight:800; line-height:1.4; }.target-calculation-note { border:1px solid #b9d5c6; background:#edf7f1; color:#27634c; }.target-calculation-warning { border:1px solid #e5c986; background:#fff8e9; color:#795710; }
.target-calculation-weighted>small { display:block; padding:0 9px 10px; color:#667b71; font-size:11px; font-weight:700; line-height:1.35; }
.target-calculation-detail-section { margin-top:24px; padding-top:18px; border-top:2px solid #d7e7de; }.target-calculation-detail-section>.eyebrow { margin:0 0 4px; }.target-calculation-detail-section>p:not(.eyebrow) { margin:0 0 13px; color:#60776c; font-size:13px; font-weight:700; line-height:1.4; }
@media (max-width:720px) { .target-performance-heading, .target-performance-controls, .target-calculation-page>header { align-items:flex-start; flex-direction:column; }.target-performance-heading { padding:20px 18px 16px; }.target-performance-heading h4 { font-size:23px; }.target-performance-controls { padding:12px 18px; }.target-performance-switch { max-width:100%; }.target-performance-switch button { padding-right:9px; padding-left:9px; font-size:11px; }.target-month-navigator { grid-template-columns:1fr; padding:12px 18px; }.target-month-navigator-year { justify-self:start; }.target-month-navigator-months { display:flex; overflow-x:auto; padding-bottom:2px; }.target-month-navigator-month { flex:0 0 52px; }.target-performance-card { gap:12px; padding:21px 18px 19px; }.target-performance-card-head { gap:12px; }.target-performance-card-head strong { font-size:29px; }.target-performance-pace>b { font-size:14px; }.target-performance-detail { display:grid; gap:7px; font-size:14px; }.target-performance-legend { justify-content:flex-start; }.target-calculation-page>header, .target-calculation-section { padding-right:18px; padding-left:18px; }.target-calculation-page>header h4 { font-size:22px; }.target-calculation-list li { grid-template-columns:1fr; gap:4px; } }

/* Growth planner: keep the day labels separate from the table header. */
.growth-planner-days-used { margin:4px 0 16px; padding:10px 12px; border-left:3px solid #b78525; border-radius:4px; background:#fff7e2; color:#5d512f; font-size:13px; font-weight:700; line-height:1.45; }
.growth-planner-days-used b { color:#614308; }
.growth-planner-table .data-table thead th { background:#174f3d; color:#fff; font-size:13px; font-weight:900; letter-spacing:.01em; }
.growth-planner-table .data-table tbody th { background:#fff; color:#174f3d; font-size:14px; font-weight:900; }
.growth-planner-table .data-table tbody tr.is-growth-priority th { background:#fff4dc; }

/* Profit-improvement plans are a separate what-if workspace inside P&L. */
.profit-improvement-plan { margin:18px 0; overflow:hidden; border:1px solid #cfae67; border-top:4px solid #b78321; border-radius:9px; background:#fffaf0; box-shadow:0 3px 10px rgba(94,65,13,.08); }
.profit-improvement-plan-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:16px 18px 14px; border-bottom:1px solid #ead9ae; background:linear-gradient(135deg,#fffdf8,#fff5df); }.profit-improvement-plan-heading .eyebrow { margin:0 0 3px; color:#8a6413; }.profit-improvement-plan-heading h4 { margin:0; color:#174f3d; font-size:20px; }.profit-improvement-plan-heading p:last-child { max-width:760px; margin:5px 0 0; color:#5e746a; font-size:13px; font-weight:700; line-height:1.42; }
.profit-improvement-plan-grid { display:grid; grid-template-columns:minmax(300px,.95fr) minmax(340px,1.15fr); gap:16px; padding:17px 18px; }.profit-improvement-controls, .profit-improvement-results { min-width:0; padding:14px; border:1px solid #d9e6de; border-radius:7px; background:#fff; }.profit-improvement-controls { border-color:#dec98f; background:#fffdf8; }.profit-improvement-name { display:grid; gap:5px; margin-bottom:12px; color:#315d4d; font-size:12px; font-weight:900; }.profit-improvement-name input { min-width:0; }
.profit-improvement-driver-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }.profit-improvement-driver { display:grid; gap:4px; min-width:0; padding:9px; border:1px solid #e1e9e4; border-radius:6px; background:#fff; }.profit-improvement-driver>span:first-child { color:#2e5b49; font-size:12px; font-weight:900; }.profit-improvement-driver>span:nth-child(2) { display:flex; align-items:center; min-width:0; }.profit-improvement-driver input { width:100%; min-width:0; padding:7px 8px; border:1px solid #b5cfc1; border-radius:4px; color:#143f30; font:800 14px/1.15 system-ui,sans-serif; }.profit-improvement-driver b { margin-left:6px; color:#49685b; font-size:13px; }.profit-improvement-driver small { color:#697c73; font-size:10px; font-weight:700; line-height:1.25; }.profit-improvement-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; margin-top:13px; }
.profit-improvement-results h5, .profit-improvement-saved h5 { margin:0; color:#174f3d; font-size:15px; }.profit-improvement-result-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; margin-top:10px; }.profit-improvement-result { display:grid; gap:3px; min-width:0; padding:10px; border:1px solid #c9ddd1; border-radius:6px; background:#f7fbf8; }.profit-improvement-result>span { color:#567166; font-size:10px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.profit-improvement-result strong { color:#123e30; font-size:19px; line-height:1.1; white-space:nowrap; }.profit-improvement-result small { color:#6b7e75; font-size:10px; font-weight:700; line-height:1.3; }.profit-improvement-result b { color:#5e746a; font-size:11px; line-height:1.25; }.profit-improvement-result b.is-positive { color:#167049; }.profit-improvement-result b.is-negative { color:#b12739; }.profit-improvement-baseline { margin:12px 0 0; padding:10px; border-left:3px solid #c6942c; background:#fff7e7; color:#5f5b45; font-size:11px; font-weight:700; line-height:1.45; }
.profit-improvement-empty { margin:10px 0 0; padding:11px; border:1px dashed #c3d5ca; border-radius:5px; background:#f8fbf9; color:#5d7469; font-size:12px; font-weight:700; line-height:1.4; }.profit-improvement-saved { padding:0 18px 17px; }.profit-improvement-saved>p { margin:4px 0 10px; color:#667a70; font-size:12px; font-weight:700; }.profit-improvement-saved-list { display:grid; gap:7px; }.profit-improvement-saved-list article { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 11px; border:1px solid #d8e6de; border-radius:6px; background:#fff; }.profit-improvement-saved-list article>div:first-child { display:grid; gap:2px; }.profit-improvement-saved-list strong { color:#174f3d; font-size:13px; }.profit-improvement-saved-list span { color:#6c7d74; font-size:11px; font-weight:700; }.profit-improvement-saved-list article>div:last-child { display:flex; flex-wrap:wrap; gap:6px; }.profit-improvement-saved-list .button { min-height:30px; padding:5px 9px; font-size:11px; }.profit-improvement-delete { border-color:#d8aaa8 !important; color:#9c2935 !important; }.saved-plan-empty { margin-top:0; }
.profit-improvement-driver>label { color:#2e5b49; font-size:12px; font-weight:900; }.profit-improvement-reset-driver { justify-self:start; min-height:25px !important; margin-top:2px; padding:3px 7px !important; border-color:#b8d0c2 !important; color:#34604f !important; font-size:10px !important; line-height:1 !important; }
.profit-improvement-covers-total { display:flex; flex-wrap:wrap; align-items:baseline; gap:5px 8px; margin:10px 0 0; padding:9px 10px; border:1px solid #d5e3da; border-radius:6px; background:#eef7f1; color:#567166; }.profit-improvement-covers-total span { font-size:11px; font-weight:900; letter-spacing:.035em; text-transform:uppercase; }.profit-improvement-covers-total b { color:#174f3d; font-size:21px; line-height:1; }.profit-improvement-covers-total small { color:#61776c; font-size:11px; font-weight:700; }
.profit-improvement-wage-deduction { border-color:#bea76d; background:#fffaf0; }.profit-improvement-wage-deduction-button { display:grid; gap:3px; width:100%; padding:8px 9px; border:1px solid #b7cfc0; border-radius:4px; background:#fff; color:#174f3d; text-align:left; cursor:pointer; }.profit-improvement-wage-deduction-button:hover { border-color:#9a7728; background:#fff8e7; }.profit-improvement-wage-deduction-button:focus-visible { outline:3px solid rgba(196,145,35,.35); outline-offset:2px; }.profit-improvement-wage-deduction-button strong { color:#174f3d; font-size:18px; line-height:1.1; }.profit-improvement-wage-deduction-button span { color:#60766c; font-size:10px; font-weight:800; line-height:1.25; }
.profit-improvement-driver.is-calculated { border-color:#c4b27d; background:#fff9e9; }.profit-improvement-driver input.is-calculated { border-color:#c6ae70; background:#f4f0e3; color:#506258; cursor:not-allowed; }.profit-improvement-labour-percent-locked-dialog { width:min(470px,calc(100vw - 36px)); padding:0; overflow:hidden; border:1px solid #c59d48; border-top:4px solid #a6781f; border-radius:10px; background:#fffaf0; color:var(--ink); box-shadow:0 24px 70px rgba(74,53,13,.28); }.profit-improvement-labour-percent-locked-dialog::backdrop { background:rgba(24,44,34,.55); }.profit-improvement-labour-percent-locked-dialog>header { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; padding:16px 18px 13px; border-bottom:1px solid #ead9ae; background:linear-gradient(135deg,#fffdf8,#fff3d7); }.profit-improvement-labour-percent-locked-dialog .eyebrow { margin:0 0 3px; color:#8a6413; }.profit-improvement-labour-percent-locked-dialog h3 { margin:0; color:#174f3d; font-size:19px; }.profit-improvement-labour-percent-locked-dialog>div { display:grid; gap:10px; padding:16px 18px; }.profit-improvement-labour-percent-locked-dialog p { margin:0; color:#506b5e; font-size:13px; font-weight:700; line-height:1.45; }.profit-improvement-labour-percent-locked-dialog p:last-child { padding:10px 11px; border-left:3px solid #c6942c; border-radius:4px; background:#fff5da; color:#72521a; }.profit-improvement-labour-percent-locked-dialog footer { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:8px; padding:11px 18px; border-top:1px solid #ead9ae; background:#fffdf8; }
.profit-improvement-wage-dialog { width:min(1080px,calc(100vw - 36px)); max-height:calc(100vh - 36px); padding:0; overflow:hidden; border:1px solid #c59d48; border-top:4px solid #a6781f; border-radius:11px; background:#fffaf0; color:var(--ink); box-shadow:0 24px 70px rgba(74,53,13,.28); }.profit-improvement-wage-dialog::backdrop { background:rgba(24,44,34,.55); }.profit-improvement-wage-dialog-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:19px 22px 15px; border-bottom:1px solid #ead9ae; background:linear-gradient(135deg,#fffdf8,#fff3d7); }.profit-improvement-wage-dialog-heading .eyebrow { margin-bottom:4px; color:#8a6413; }.profit-improvement-wage-dialog-heading h3 { margin:0 0 4px; color:#174f3d; font-size:22px; }.profit-improvement-wage-dialog-heading .muted { margin:0; }.profit-improvement-wage-dialog-content { max-height:calc(100vh - 207px); overflow:auto; padding:17px 22px; }.profit-improvement-wage-dialog-footer { display:flex; justify-content:flex-end; padding:12px 22px; border-top:1px solid #ead9ae; background:#fffdf8; }.profit-improvement-wage-dialog-note { max-width:780px; margin:0; color:#5c7468; font-size:13px; font-weight:700; line-height:1.45; }.profit-improvement-wage-dialog-total { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin:14px 0 10px; padding:10px 12px; border:1px solid #c8dccc; border-radius:6px; background:#eff7f1; }.profit-improvement-wage-dialog-total span { color:#4e7061; font-size:11px; font-weight:900; letter-spacing:.04em; text-transform:uppercase; }.profit-improvement-wage-dialog-total strong { color:#174f3d; font-size:24px; }.profit-improvement-wage-dialog-actions { display:flex; flex-wrap:wrap; gap:8px; margin:10px 0; }.profit-improvement-wage-rows { display:grid; gap:8px; }.profit-improvement-wage-row { display:grid; grid-template-columns:minmax(180px,1.45fr) minmax(105px,.7fr) minmax(105px,.7fr) minmax(125px,.85fr) minmax(110px,.75fr) auto; align-items:end; gap:8px; padding:10px; border:1px solid #d9e6de; border-radius:6px; background:#fff; }.profit-improvement-wage-row label { display:grid; gap:4px; min-width:0; color:#456759; font-size:10px; font-weight:900; }.profit-improvement-wage-row input { box-sizing:border-box; width:100%; min-width:0; min-height:34px; padding:6px 7px; border:1px solid #aac6b7; border-radius:4px; background:#fff; color:#173f31; font:800 13px/1.15 system-ui,sans-serif; }.profit-improvement-wage-row output { display:grid; gap:3px; align-content:end; min-height:34px; color:#61796d; font-size:9px; font-weight:800; text-align:right; }.profit-improvement-wage-row output b { color:#174f3d; font-size:15px; }.profit-improvement-wage-remove { min-height:34px !important; padding:5px 8px !important; border-color:#d6aaa4 !important; color:#a12e39 !important; font-size:11px !important; }
@media (max-width:760px) { .profit-improvement-plan-heading { flex-direction:column; }.profit-improvement-plan-grid { grid-template-columns:1fr; padding:14px; }.profit-improvement-saved { padding:0 14px 14px; }.profit-improvement-result-grid, .profit-improvement-driver-grid { grid-template-columns:1fr; }.profit-improvement-saved-list article { align-items:flex-start; flex-direction:column; } }
@media (max-width:760px) { .profit-improvement-wage-dialog { width:calc(100vw - 18px); max-height:calc(100vh - 18px); }.profit-improvement-wage-dialog-heading, .profit-improvement-wage-dialog-content, .profit-improvement-wage-dialog-footer { padding-right:14px; padding-left:14px; }.profit-improvement-wage-dialog-content { max-height:calc(100vh - 186px); }.profit-improvement-wage-row { grid-template-columns:1fr 1fr; }.profit-improvement-wage-row output, .profit-improvement-wage-remove { justify-self:start; text-align:left; } }

/* The break-even card is only added for a selected weekly view. */
.sales-cards.has-break-even { grid-template-columns:repeat(4,minmax(0,1fr)); align-items:start; }.weekly-trading-stack { display:grid; align-content:start; gap:10px; }.weekly-trading-stack .break-even-card { min-height:142px; }.weekly-trading-stack .weekly-net-profit-card { min-height:96px; }.weekly-trading-stack .weekly-net-profit-card strong { padding:11px 10px 1px; font-size:23px; }.weekly-trading-stack .weekly-net-profit-card>span { padding:1px 9px 9px; font-size:10px; }.break-even-card { background:#f4f0fb; border-color:#aa9bc8; }.break-even-card p { display:flex; align-items:center; justify-content:center; gap:6px; background:linear-gradient(90deg,#4d3d70,#665188); }.break-even-info { display:grid; place-items:center; width:18px; height:18px; padding:0; border:1px solid rgba(255,255,255,.72); border-radius:50%; background:rgba(255,255,255,.15); color:#fff; font-family:Georgia,serif; font-size:12px; font-weight:900; font-style:italic; line-height:1; cursor:pointer; }.break-even-info:hover { background:rgba(255,255,255,.29); }.break-even-info:focus-visible { outline:3px solid rgba(255,222,129,.92); outline-offset:2px; }.break-even-result { display:grid; grid-template-columns:auto 1fr auto; align-items:baseline; gap:5px; padding:11px 13px 3px; color:#493c66; }.break-even-result+ .break-even-result { padding-top:5px; }.break-even-result b { font-size:12px; font-weight:900; letter-spacing:.035em; text-transform:uppercase; }.break-even-result strong { color:#3e315c; font-size:28px; line-height:1.02; text-align:right; }.break-even-result small { color:#675b78; font-size:10px; font-weight:800; }.break-even-note { display:block; min-height:52px; margin:9px 12px 12px; padding:9px 10px; border-top:1px solid #d5cae7; background:rgba(255,255,255,.46); color:#765c26; font-size:10px; font-style:normal; font-weight:800; line-height:1.42; text-align:left; }.break-even-info-copy { display:grid; gap:8px; }.break-even-info-copy h4 { margin:0; color:#174f3d; font-size:16px; }.break-even-info-copy p { margin:0 0 5px; color:#385f50; font-size:14px; font-weight:650; line-height:1.48; }.break-even-info-copy strong { color:#174f3d; }.break-even-current-view { margin-top:4px !important; padding:10px 11px; border-left:3px solid #6a5791; border-radius:4px; background:#f1eef8; color:#51436e !important; }
@media (max-width:1250px) { .sales-cards.has-break-even { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .sales-cards.has-break-even { grid-template-columns:1fr; } }

/* Weekly cards keep their headline uncluttered, with the comparison below it
   and the underlying completed weeks available on click. */
.metric-card { box-shadow:0 2px 7px rgba(18,81,63,.07); }.metric-card p { background:linear-gradient(90deg,#164e3b,#236b54); letter-spacing:.015em; text-shadow:none; }.metric-card>strong { letter-spacing:-.015em; text-rendering:geometricPrecision; }.metric-card.has-weekly-reference, .report-kpi.has-weekly-reference { cursor:pointer; }
.metric-card.has-weekly-reference:hover, .report-kpi.has-weekly-reference:hover { border-color:#1f7157; box-shadow:0 5px 15px rgba(18,81,63,.15); }
.metric-card.has-weekly-reference:focus-visible, .report-kpi.has-weekly-reference:focus-visible { outline:3px solid rgba(195,145,27,.4); outline-offset:2px; }
.weekly-kpi-comparison { display:grid; gap:6px; padding:0 12px 10px; color:#536d61; font-size:12px; font-style:normal; font-weight:800; line-height:1.25; text-align:center; }
.weekly-kpi-ly { display:block; min-height:22px; padding:5px 8px; border-radius:4px; background:#edf4ef; color:#1b6549; font-size:12px; font-weight:900; }.weekly-kpi-ly.is-positive { background:#dbf0e2; color:#176547; }.weekly-kpi-ly.is-negative { background:#ffe2e4; color:#a22837; }
.weekly-kpi-trend { display:flex; align-items:center; justify-content:center; gap:5px; min-height:22px; padding:5px 8px; border-radius:4px; background:#eef2ef; color:#587066; font-size:12px; font-weight:900; }.weekly-kpi-trend b { font-size:11px; }.weekly-kpi-trend.is-positive { background:#dbf0e2; color:#176547; }.weekly-kpi-trend.is-negative { background:#ffe2e4; color:#a22837; }.weekly-kpi-trend.is-level { background:#eef2ef; color:#587066; }
.mix-values .weekly-kpi-trend { min-height:0; margin-top:3px; padding:3px 4px; font-size:9px; line-height:1.18; white-space:normal; }.mix-values .weekly-kpi-trend b { font-size:9px; }.mix-values .weekly-kpi-trend.is-positive { color:#176547; }.mix-values .weekly-kpi-trend.is-negative { color:#a22837; }.mix-values .weekly-kpi-trend.is-level { color:#587066; }
.mix-values .period-kpi-comparison { display:block; min-height:0; margin-top:3px; padding:0; font-size:9px; line-height:1.18; }.mix-values .period-kpi-ly { min-height:0; padding:3px 4px; font-size:9px; line-height:1.18; white-space:normal; }.mix-values .period-kpi-ly.is-positive { color:#176547; }.mix-values .period-kpi-ly.is-negative { color:#a22837; }
.weekly-kpi-averages { display:grid; grid-template-columns:1fr 1fr; border:1px solid #d6e2dc; border-radius:5px; background:rgba(255,255,255,.64); }.weekly-kpi-averages>span { display:grid; gap:2px; padding:5px 7px 4px; }.weekly-kpi-averages>span+span { border-left:1px solid #d6e2dc; }.weekly-kpi-averages small { color:#60766c; font-size:10px; font-weight:900; letter-spacing:.025em; text-transform:uppercase; }.weekly-kpi-averages b { color:#174f3d; font-size:14px; line-height:1.1; }
.daily-kpi-comparison { display:flex; flex-wrap:wrap; justify-content:center; gap:3px 6px; padding:1px 11px 8px; color:#536d61; font-size:10px; font-style:normal; font-weight:800; line-height:1.2; text-align:center; }.daily-kpi-comparison b { color:#174f3d; font-size:11px; }.daily-kpi-comparison b.is-negative { color:#ad3440; }.daily-kpi-comparison b.is-positive { color:#176547; }.daily-kpi-comparison i { color:#708177; font-style:normal; font-weight:700; }
.metric-card .weekly-kpi-comparison { min-height:65px; }.metric-card .daily-kpi-comparison { min-height:20px; }.metric-card.sales-mix .weekly-kpi-comparison, .metric-card.sales-mix .daily-kpi-comparison { margin-top:4px; }
.period-kpi-comparison { display:block; min-height:31px; padding:0 14px 11px; color:#536d61; font-size:13px; font-style:normal; font-weight:800; line-height:1.25; text-align:center; }.period-kpi-ly { display:block; padding:5px 8px; border-radius:4px; background:#edf4ef; color:#1b6549; font-size:13px; font-weight:900; }.period-kpi-ly.is-positive { background:#dbf0e2; color:#176547; }.period-kpi-ly.is-negative { background:#ffe2e4; color:#a22837; }.metric-card.sales-mix .period-kpi-comparison { margin-top:4px; }
.report-kpi.has-weekly-reference { position:relative; }.report-kpi.has-weekly-reference>span { padding-bottom:3px; }.report-kpi-reference-hint { display:block; padding:0 9px 8px; color:#22654e; font-size:10px; font-weight:900; letter-spacing:.035em; line-height:1.2; text-align:center; text-transform:uppercase; }.report-kpi.has-weekly-reference .wage-figure-toggle { position:relative; z-index:1; }

.weekly-kpi-reference-dialog { width:min(960px,calc(100vw - 36px)); max-height:calc(100vh - 36px); padding:0; overflow:hidden; border:1px solid #7fa995; border-top:4px solid #1d674f; border-radius:12px; background:#f8fbf9; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.32); }.weekly-kpi-reference-dialog::backdrop { background:rgba(10,35,27,.56); }
.weekly-kpi-reference-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:21px 25px 17px; border-bottom:1px solid #cbded3; background:linear-gradient(120deg,#e2f1e9,#fbfdfc); }.weekly-kpi-reference-heading .eyebrow { margin-bottom:5px; }.weekly-kpi-reference-heading h3 { margin:0 0 5px; color:#174f3d; font-size:24px; line-height:1.15; }.weekly-kpi-reference-heading .muted { max-width:720px; margin:0; }
.weekly-kpi-reference-content { max-height:calc(100vh - 157px); overflow:auto; padding:21px 25px 27px; }.weekly-kpi-reference-summary { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:11px; }.weekly-kpi-reference-summary article { display:grid; gap:5px; min-height:112px; padding:14px 15px; border:1px solid #bfd5c9; border-radius:8px; background:#fff; }.weekly-kpi-reference-summary article:first-child { border-color:#a87919; background:#fff6dc; }.weekly-kpi-reference-summary span { color:#58756a; font-size:11px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.weekly-kpi-reference-summary strong { color:#104f3c; font-size:23px; line-height:1.1; }.weekly-kpi-reference-summary small { color:#61786d; font-size:11px; font-weight:700; line-height:1.3; }
.weekly-kpi-reference-note { margin:17px 0; padding:11px 13px; border-left:4px solid #c78320; border-radius:5px; background:#fff5da; color:#70531c; font-size:12px; font-weight:700; line-height:1.45; }.weekly-kpi-reference-note b { color:#63440b; }
.weekly-kpi-reference-history { overflow:hidden; border:1px solid #cadfd4; border-radius:8px; background:#fff; }.weekly-kpi-reference-history>header { padding:15px 17px 12px; border-bottom:1px solid #dce9e2; background:#fbfdfc; }.weekly-kpi-reference-history .eyebrow { margin-bottom:4px; }.weekly-kpi-reference-history h4 { margin:0 0 4px; color:#164f3c; font-size:17px; }.weekly-kpi-reference-history header p:last-child { margin:0; color:#60766b; font-size:12px; font-weight:700; line-height:1.35; }.weekly-kpi-reference-list { display:grid; grid-template-columns:1fr; gap:0; margin:0; padding:0; list-style:none; }.weekly-kpi-reference-list li { display:grid; grid-template-columns:minmax(150px,1fr) auto minmax(205px,1.3fr); align-items:center; gap:12px; min-height:46px; padding:8px 17px; border-bottom:1px solid #dce9e2; color:#385e4f; font-size:12px; font-weight:800; }.weekly-kpi-reference-list li:last-child { border-bottom:0; }.weekly-kpi-reference-list li.is-recent { background:#fff4d9; box-shadow:inset 4px 0 0 #d6a42f; }.weekly-kpi-reference-list li>b { color:#174f3d; font-size:14px; text-align:right; }.weekly-kpi-reference-trend { display:flex; align-items:center; justify-content:flex-end; gap:5px; color:#5d7469; font-size:11px; font-weight:800; text-align:right; }.weekly-kpi-reference-trend strong { font-size:11px; }.weekly-kpi-reference-trend.is-positive { color:#176547; }.weekly-kpi-reference-trend.is-negative { color:#a22837; }.weekly-kpi-reference-trend.is-level { color:#5d7469; }.weekly-kpi-reference-empty { margin:0; padding:17px; color:#60766b; font-size:13px; font-weight:700; }
@media (max-width:780px) { .weekly-kpi-reference-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.weekly-kpi-reference-heading, .weekly-kpi-reference-content { padding-right:18px; padding-left:18px; }.weekly-kpi-reference-heading h3 { font-size:22px; } }
@media (max-width:440px) { .weekly-kpi-reference-summary { grid-template-columns:1fr; }.weekly-kpi-reference-dialog { width:calc(100vw - 18px); max-height:calc(100vh - 18px); }.weekly-kpi-reference-content { max-height:calc(100vh - 138px); } }

/* Customer Profile: centred choice split and dedicated settings sections. */
.customer-profile-choice { grid-template-columns:auto minmax(0,1fr); min-height:164px; }.customer-profile-choice>.customer-profile-card-icon { align-self:center; }.customer-profile-choice>div { justify-items:center; text-align:center; }.customer-profile-choice strong { font-size:35px; }.customer-profile-choice small { font-size:13px; }.customer-profile-choice-breakdown { width:100%; grid-template-columns:1fr 1fr; gap:0; margin-top:10px !important; border-top:1px solid rgba(64,97,83,.32); border-bottom:1px solid rgba(64,97,83,.22); border-radius:0; background:rgba(255,255,255,.26); }.customer-profile-choice-breakdown span { min-height:47px; align-content:center; padding:6px 8px; border:0; border-radius:0; background:transparent; }.customer-profile-choice-breakdown span+span { border-left:1px solid rgba(64,97,83,.32); }.customer-profile-choice-breakdown b { color:#285a48; font-size:11px; line-height:1.2; }.customer-profile-choice-breakdown i { color:#4e6c5f; font-size:13px; font-weight:800; line-height:1.2; }
.settings-tabs { display:flex; gap:0; margin:-2px 0 16px; border-bottom:1px solid #bcd1c6; }.settings-tabs button { min-height:40px; padding:8px 18px; border:0; border-bottom:3px solid transparent; background:transparent; color:#537468; font:inherit; font-size:13px; font-weight:900; cursor:pointer; }.settings-tabs button:hover { background:#eff7f2; color:#1b5b45; }.settings-tabs button.is-active { border-bottom-color:#1d674f; color:#124e3b; }.settings-section-heading { display:flex; justify-content:space-between; align-items:end; gap:18px; margin:0 0 12px; }.settings-section-heading h3 { margin:0; color:#174f3d; font-size:18px; }.settings-section-heading p { max-width:680px; margin:0; color:#5c756a; font-size:12px; font-weight:700; line-height:1.4; }.customer-profile-settings-key { margin:0 0 10px; padding:9px 11px; border-left:3px solid #c89126; border-radius:4px; background:#fff5db; color:#735114; font-size:12px; font-weight:700; line-height:1.4; }.customer-profile-settings-table-wrap { max-height:330px; }.customer-profile-settings-table { min-width:860px; }.customer-profile-settings-table th { text-align:center; white-space:normal; }.customer-profile-settings-table tbody th { color:#174f3d; text-align:left; }.customer-profile-setting-check { text-align:center; }.customer-profile-setting-check input { width:18px; height:18px; accent-color:#1d674f; cursor:pointer; }.sr-only { position:absolute; width:1px; height:1px; padding:0; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }.customer-profile-price-settings { display:grid; gap:12px; margin-top:18px; padding:16px; border:1px solid #c6dbcf; border-radius:7px; background:#f8fcfa; }.customer-profile-price-settings h4 { margin:0 0 4px; color:#174f3d; font-size:16px; }.customer-profile-price-settings p { max-width:800px; margin:0; color:#5d766a; font-size:12px; font-weight:700; line-height:1.4; }.customer-profile-price-settings-body { display:grid; gap:8px; }.customer-profile-price-row { display:grid; grid-template-columns:minmax(155px,1fr) minmax(125px,.75fr) minmax(125px,.75fr) auto; gap:10px; align-items:end; padding:10px; border:1px solid #d5e4dc; border-radius:5px; background:#fff; }.customer-profile-price-row label { display:grid; gap:4px; color:#46675a; font-size:11px; font-weight:900; }.customer-profile-price-row input { min-height:34px; box-sizing:border-box; border:1px solid #a8c3b5; border-radius:4px; background:#fff; color:#183f32; font:inherit; font-weight:800; }.customer-profile-price-row label>input { width:100%; padding:6px 8px; }.customer-profile-price-row small { min-height:12px; color:#75887f; font-size:10px; font-weight:700; }.customer-profile-price-input { position:relative; display:block; }.customer-profile-price-input b { position:absolute; top:50%; left:9px; transform:translateY(-50%); color:#496b5d; pointer-events:none; }.customer-profile-price-input input { width:100%; padding:6px 8px 6px 21px; }.customer-profile-remove-price { min-height:34px; padding:6px 10px; font-size:12px; }.customer-profile-price-settings>.button { justify-self:start; }
@media (max-width:760px) { .settings-section-heading { align-items:start; flex-direction:column; gap:5px; }.customer-profile-price-row { grid-template-columns:1fr 1fr; }.customer-profile-remove-price { justify-self:start; }.customer-profile-choice-breakdown i { font-size:12px; } }

/* The category name is a row label, not a green table header. */
.customer-profile-settings-table thead th { background:#1d674f; color:#fff; font-family:Arial,sans-serif; font-size:13px; font-weight:900; letter-spacing:.01em; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.customer-profile-settings-table tbody th { background:#eef6f1; color:#174f3d; font-family:Arial,sans-serif; font-size:13px; font-weight:900; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.customer-profile-settings-table tbody tr:hover th { background:#e0efe7; }

/* Shared-cloud setup lives in Settings so both desktop installs connect to one source of truth. */
.shared-data-sync-content { display:grid; gap:14px; }.shared-data-status { display:flex; align-items:flex-start; gap:10px; padding:12px 13px; border:1px solid #c6dcd0; border-radius:7px; background:#f6fbf8; color:#40675a; font-size:13px; font-weight:700; line-height:1.4; }.shared-data-status b { flex:0 0 auto; color:#174f3d; }.shared-data-status.is-connected { border-color:#9fcdb4; background:#eaf7ef; }.shared-data-status.is-warning { border-color:#dfc27d; background:#fff7df; color:#76561c; }.shared-data-status.is-error { border-color:#e2afa9; background:#fff3f3; color:#8d3038; }.shared-data-setup { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:11px; padding:14px; border:1px solid #d3e1d8; border-radius:7px; background:#fbfdfc; }.shared-data-setup label { display:grid; gap:5px; min-width:0; color:#345f4f; font-size:11px; font-weight:900; }.shared-data-setup label.is-wide { grid-column:1 / -1; }.shared-data-setup input { box-sizing:border-box; width:100%; min-width:0; min-height:36px; padding:7px 9px; border:1px solid #a9c6b8; border-radius:4px; background:#fff; color:#174333; font:700 13px/1.2 system-ui,sans-serif; }.shared-data-setup small { color:#698075; font-size:10px; font-weight:700; line-height:1.3; }.shared-data-actions { display:flex; flex-wrap:wrap; gap:8px; }.shared-data-actions .button { min-height:34px; padding:7px 10px; font-size:12px; }.shared-data-help { margin:0; padding:11px 13px; border-left:3px solid #c38a27; border-radius:4px; background:#fff7e4; color:#6e5421; font-size:12px; font-weight:700; line-height:1.45; }.shared-data-help b { color:#684710; }.shared-data-setup hr { grid-column:1 / -1; width:100%; height:1px; margin:2px 0; border:0; background:#dbe8e1; }.shared-data-signed-in { grid-column:1 / -1; margin:0; color:#286149; font-size:12px; font-weight:800; }
@media (max-width:620px) { .shared-data-setup { grid-template-columns:1fr; }.shared-data-setup label.is-wide { grid-column:auto; } }

/* Customer Profile cards are compact buttons; their full working opens on click. */
.customer-profile-card { font:inherit; text-align:left; cursor:pointer; transition:transform .15s, box-shadow .15s, border-color .15s; }.customer-profile-card>span:not(.customer-profile-card-icon) { display:grid; gap:3px; min-width:0; }.customer-profile-card:hover { transform:translateY(-2px); border-color:#276c56; box-shadow:0 6px 15px rgba(18,81,63,.14); }.customer-profile-card:focus-visible { outline:3px solid rgba(195,145,27,.48); outline-offset:2px; }.customer-profile-choice { min-height:140px; }.customer-profile-choice>span:not(.customer-profile-card-icon) { justify-items:center; text-align:center; }.customer-profile-choice strong { font-size:34px; }
.customer-profile-detail-dialog { width:min(940px,calc(100vw - 36px)); max-height:calc(100vh - 36px); padding:0; overflow:hidden; border:1px solid #7fa995; border-top:4px solid #b98525; border-radius:12px; background:#f8fbf9; color:var(--ink); box-shadow:0 24px 70px rgba(12,45,35,.32); }.customer-profile-detail-dialog::backdrop { background:rgba(10,35,27,.56); }.customer-profile-detail-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; padding:21px 25px 17px; border-bottom:1px solid #cbded3; background:linear-gradient(120deg,#fff7df,#fbfdfc 56%,#e7f2ec); }.customer-profile-detail-heading .eyebrow { margin-bottom:5px; }.customer-profile-detail-heading h3 { margin:0 0 5px; color:#174f3d; font-size:24px; line-height:1.15; }.customer-profile-detail-heading .muted { max-width:700px; margin:0; }.customer-profile-detail-content { max-height:calc(100vh - 157px); overflow:auto; padding:21px 25px 27px; }.customer-profile-detail-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:11px; }.customer-profile-detail-summary article { display:grid; gap:5px; min-height:104px; padding:14px 15px; border:1px solid #bfd5c9; border-radius:8px; background:#fff; }.customer-profile-detail-summary article:nth-child(2) { border-color:#c7952d; background:#fff7e3; }.customer-profile-detail-summary span { color:#58756a; font-size:11px; font-weight:900; letter-spacing:.05em; text-transform:uppercase; }.customer-profile-detail-summary strong { color:#104f3c; font-size:23px; line-height:1.1; }.customer-profile-detail-summary small { color:#61786d; font-size:11px; font-weight:700; line-height:1.3; }.customer-profile-detail-table { margin-top:18px; overflow:hidden; border:1px solid #cadfd4; border-radius:8px; background:#fff; }.customer-profile-detail-table h4 { margin:0; padding:15px 17px 12px; border-bottom:1px solid #dce9e2; color:#164f3c; font-size:17px; }.customer-profile-detail-table .data-table tbody td { color:#254f40; font-size:13px; font-weight:700; }.customer-profile-detail-table .empty-table { text-align:left; }
@media (max-width:720px) { .customer-profile-detail-heading, .customer-profile-detail-content { padding-right:17px; padding-left:17px; }.customer-profile-detail-summary { grid-template-columns:repeat(2,minmax(0,1fr)); }.customer-profile-detail-heading h3 { font-size:21px; } }
@media (max-width:440px) { .customer-profile-detail-summary { grid-template-columns:1fr; }.customer-profile-detail-dialog { width:calc(100vw - 18px); max-height:calc(100vh - 18px); }.customer-profile-detail-content { max-height:calc(100vh - 138px); } }

/* Weekly Summary keeps the whole selected week readable in a single panel. */
#sales-analysis-button::before, #replace-file-button::before, #settings-button::before, #performance-button::before, #weekly-summary-button::before, #customer-profile-button::before, #sales-detail-button::before { display:inline-grid; place-items:center; min-width:1em; color:currentColor; font-family:"Segoe UI Symbol","Segoe UI",sans-serif; font-size:1.08em; font-weight:700; line-height:1; }#weekly-summary-button::before { content:"▥"; }
.weekly-summary-section { margin-top:22px; padding:20px 22px 22px; border-top:4px solid #397a62; background:linear-gradient(135deg,#f7fcf9 0,#fffdf6 100%); }.weekly-summary-heading { align-items:center; margin-bottom:14px; }.weekly-summary-total { display:grid; min-width:162px; gap:2px; padding:10px 13px; border:1px solid #8bb29f; border-radius:7px; background:#fff; text-align:right; }.weekly-summary-total span { color:#5b786c; font-size:10px; font-weight:900; letter-spacing:.06em; }.weekly-summary-total strong { color:#154f3d; font-size:22px; line-height:1.1; }.weekly-summary-total small { color:#617b70; font-size:11px; font-weight:800; }.weekly-summary-chart, .weekly-summary-matrix { padding:15px 16px; border:1px solid #c8ddd1; border-radius:8px; background:#fff; }.weekly-summary-matrix { margin-top:14px; }.weekly-summary-chart header, .weekly-summary-matrix header { display:flex; justify-content:space-between; align-items:end; gap:14px; margin-bottom:11px; }.weekly-summary-chart h3, .weekly-summary-matrix h3 { margin:0; color:#174f3d; font-size:17px; }.weekly-summary-chart header p, .weekly-summary-matrix header p { margin:0; color:#61796e; font-size:11px; font-weight:700; }.weekly-summary-bars { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; align-items:end; min-height:212px; }.weekly-summary-bar { display:grid; grid-template-rows:28px 142px auto auto auto; justify-items:center; gap:3px; min-width:0; text-align:center; }.weekly-summary-bar>strong { overflow:hidden; max-width:100%; color:#174f3d; font-size:12px; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }.weekly-summary-bar-track { display:flex; align-items:end; width:min(100%,72px); height:142px; padding:0 7px; border:1px solid #d2e2d9; border-bottom:2px solid #8db7a4; border-radius:5px 5px 1px 1px; background:linear-gradient(to top,#edf5f0 0 25%,#fff 25% 50%,#edf5f0 50% 75%,#fff 75%); }.weekly-summary-bar-track span { display:block; width:100%; min-height:2px; border-radius:4px 4px 0 0; background:linear-gradient(to top,#1b624b,#57a17f); }.weekly-summary-bar>b { color:#174f3d; font-size:12px; }.weekly-summary-bar>small { color:#657d72; font-size:10px; font-weight:700; }.weekly-summary-bar>em { color:#80611b; font-size:10px; font-style:normal; font-weight:900; }.weekly-summary-table { min-width:1100px; table-layout:fixed; }.weekly-summary-table thead th { background:#1d674f; color:#fff; font-family:Arial,sans-serif; font-size:12px; font-weight:900; letter-spacing:.01em; text-align:center; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.weekly-summary-table thead th:first-child { width:156px; text-align:left; }.weekly-summary-table thead small { color:#d9ebe2; font-size:10px; font-weight:800; }.weekly-summary-table tbody th { background:#eef6f1; color:#174f3d; font-family:Arial,sans-serif; font-size:12px; font-weight:900; text-align:left; text-rendering:geometricPrecision; -webkit-font-smoothing:antialiased; }.weekly-summary-table tbody td { color:#234d3e; font-size:12px; font-weight:800; text-align:center; }.weekly-summary-table tbody tr:nth-child(2) td { color:#89600e; }.weekly-summary-seller { display:grid; gap:2px; min-width:0; }.weekly-summary-seller b { display:block; overflow:hidden; color:#174f3d; font-size:11px; line-height:1.16; text-overflow:ellipsis; white-space:nowrap; }.weekly-summary-seller small { color:#617b70; font-size:10px; font-weight:700; }.weekly-summary-empty { color:#8c9b94; }
@media (max-width:760px) { .weekly-summary-heading { align-items:stretch; flex-direction:column; }.weekly-summary-total { align-self:start; text-align:left; }.weekly-summary-chart header, .weekly-summary-matrix header { align-items:start; flex-direction:column; gap:4px; }.weekly-summary-bars { gap:5px; }.weekly-summary-bar-track { padding:0 4px; }.weekly-summary-bar>strong { font-size:10px; }.weekly-summary-bar>b { font-size:11px; } }

/* Larger type and a clear interactive affordance make the week view usable at a glance. */
.weekly-summary-total strong { font-size:26px; }.weekly-summary-total span { font-size:11px; }.weekly-summary-total small { font-size:12px; }.weekly-summary-chart h3, .weekly-summary-matrix h3 { font-size:19px; }.weekly-summary-chart header p, .weekly-summary-matrix header p { font-size:13px; }.weekly-summary-bar { grid-template-rows:32px 142px auto auto auto; gap:4px; }.weekly-summary-bar>strong { font-size:15px; }.weekly-summary-bar>b { font-size:14px; }.weekly-summary-bar>small { font-size:11px; }.weekly-summary-bar>em { font-size:13px; }.weekly-summary-table thead th { font-size:14px; }.weekly-summary-table thead small { font-size:12px; }.weekly-summary-table tbody th { font-size:14px; }.weekly-summary-table tbody td { font-size:14px; }.weekly-summary-seller { width:100%; padding:5px 4px; border:1px solid transparent; border-radius:5px; background:transparent; color:inherit; cursor:pointer; font:inherit; transition:background .15s,border-color .15s,transform .15s; }.weekly-summary-seller:hover { border-color:#87b6a0; background:#e4f1e9; transform:translateY(-1px); }.weekly-summary-seller:focus-visible { outline:3px solid rgba(195,145,27,.55); outline-offset:1px; }.weekly-summary-seller b { font-size:13px; }.weekly-summary-seller small { font-size:12px; }.weekly-summary-seller em { color:#8b6413; font-size:11px; font-style:normal; font-weight:900; letter-spacing:.03em; }.weekly-summary-empty { font-size:14px; }

/* Keep the enlarged headings inside their cells while preserving a readable desktop table. */
#average-week-button::before { content:"◷"; display:inline-grid; place-items:center; min-width:1em; color:currentColor; font-family:"Segoe UI Symbol","Segoe UI",sans-serif; font-size:1.08em; font-weight:700; line-height:1; }.average-week-section { border-top-color:#aa7d25; }.weekly-summary-chart header > *, .weekly-summary-matrix header > * { min-width:0; }.weekly-summary-chart h3, .weekly-summary-matrix h3 { font-size:clamp(16px,1.1vw,18px); overflow-wrap:anywhere; }.weekly-summary-table { min-width:1160px; }.weekly-summary-table thead th:not(:first-child) { min-width:143px; white-space:nowrap; }.average-week-table { min-width:1050px; }.average-week-table thead th:first-child { width:180px; }.average-week-table thead th:not(:first-child) { min-width:124px; }

/* Every displayed day gets exactly one chart column, and row labels never run into data cells. */
.weekly-summary-bars { grid-template-columns:repeat(var(--summary-day-count,7),minmax(0,1fr)); }.weekly-summary-bar { grid-template-rows:32px 142px auto auto auto auto; }.weekly-summary-bar>small { max-width:100%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }.weekly-summary-table tbody th { box-sizing:border-box; max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.weekly-summary-table tbody tr:nth-child(2) td, .weekly-summary-table tbody tr:nth-child(3) td { color:#234d3e; }.weekly-summary-table tbody tr:nth-child(4) td { color:#89600e; }

.weekly-summary-heading-actions { display:flex; align-items:center; justify-content:flex-end; gap:10px; }.weekly-summary-heading-actions .button { min-height:42px; white-space:nowrap; }.weekly-summary-covers { color:#174f3d !important; font-size:13px !important; font-weight:900 !important; }.weekly-summary-table tbody th small { color:#657d72; font-size:10px; font-weight:900; }.weekly-sph-rankings-table tbody th { background:#eef6f1; color:#174f3d; font-size:13px; font-weight:900; text-align:left; }.weekly-sph-rankings-table tbody th small { color:#657d72; font-size:10px; font-weight:800; }.weekly-sph-rankings-table tbody td { color:#254f40; font-size:13px; font-weight:700; }
.weekly-sph-rankings-controls { display:flex; align-items:center; gap:10px; margin:0 0 16px; color:#174f3d; font-size:12px; font-weight:900; }.weekly-sph-rankings-controls .filter-segment-buttons { border-color:#87ae9c; }.weekly-sph-rankings-controls .filter-segment-buttons button { min-width:100px; }.weekly-sph-rankings-table .is-ranked-sph { background:#fff2cc; color:#74510b; font-weight:900; }
.weekly-summary-total b { color:#174f3d; font-size:13px; font-weight:900; }

/* The week views use large bars and day-sized KPI cards instead of a second, cramped data table. */
.weekly-summary-chart { padding:18px 20px 20px; }.weekly-summary-bars { min-height:274px; gap:14px; }.weekly-summary-bar { grid-template-rows:32px 190px auto auto auto; gap:5px; }.weekly-summary-bar-track { width:min(100%,84px); height:190px; padding:0 8px; }.weekly-summary-bar>strong { font-size:17px; }.weekly-summary-bar>b { font-size:15px; }.weekly-summary-bar>small { font-size:12px; }.weekly-summary-bar>em { font-size:13px; }.weekly-summary-kpis { margin-top:16px; padding:18px 20px 20px; border:1px solid #c8ddd1; border-radius:8px; background:#fff; }.weekly-summary-kpis>header { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:13px; }.weekly-summary-kpis h3 { margin:0; color:#174f3d; font-size:19px; }.weekly-summary-kpis header p { margin:0; color:#61796e; font-size:13px; font-weight:700; }.weekly-summary-kpi-grid { display:grid; grid-template-columns:repeat(var(--summary-day-count,7),minmax(0,1fr)); gap:10px; }.weekly-summary-kpi-card { min-width:0; overflow:hidden; border:1px solid #b8d2c4; border-top:4px solid #267058; border-radius:8px; background:#fbfdfc; box-shadow:0 2px 5px rgba(18,81,63,.05); }.weekly-summary-kpi-card>header { display:grid; gap:2px; padding:10px 11px 9px; border-bottom:1px solid #d9e7df; background:#eef6f1; text-align:center; }.weekly-summary-kpi-card>header strong { color:#174f3d; font-size:15px; }.weekly-summary-kpi-card>header small { color:#5e786d; font-size:11px; font-weight:800; }.weekly-summary-kpi-card dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); margin:0; }.weekly-summary-kpi-card dl>div { display:grid; gap:3px; min-width:0; padding:9px 7px; text-align:center; }.weekly-summary-kpi-card dl>div:nth-child(odd) { border-right:1px solid #d9e7df; }.weekly-summary-kpi-card dl>div:nth-child(-n+2) { border-bottom:1px solid #d9e7df; }.weekly-summary-kpi-card dt { color:#5d776c; font-size:10px; font-weight:900; line-height:1.15; }.weekly-summary-kpi-card dt small { display:block; color:#7a9086; font-size:9px; }.weekly-summary-kpi-card dd { margin:0; overflow:hidden; color:#174f3d; font-size:14px; font-weight:900; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }.weekly-summary-kpi-sellers { display:grid; gap:0; }.weekly-summary-kpi-sellers>div { display:grid; gap:2px; min-width:0; padding:8px 8px 7px; }.weekly-summary-kpi-sellers>div+div { border-top:1px solid #d9e7df; }.weekly-summary-kpi-sellers>div>span { color:#80611b; font-size:10px; font-weight:900; text-align:center; text-transform:uppercase; }.weekly-summary-kpi-sellers .weekly-summary-seller { padding:1px 2px; text-align:center; }.weekly-summary-kpi-sellers .weekly-summary-seller b { font-size:12px; }.weekly-summary-kpi-sellers .weekly-summary-seller small { font-size:11px; }.weekly-summary-kpi-sellers .weekly-summary-seller em { font-size:10px; }.weekly-summary-kpi-sellers .weekly-summary-empty { display:block; min-height:27px; color:#8c9b94; font-weight:900; text-align:center; }
@media (max-width:1000px) { .weekly-summary-kpi-grid { grid-template-columns:repeat(4,minmax(0,1fr)); }.weekly-summary-bars { overflow-x:auto; grid-template-columns:repeat(var(--summary-day-count,7),minmax(92px,1fr)); }.weekly-summary-kpi-card { min-width:0; } }
@media (max-width:650px) { .weekly-summary-chart, .weekly-summary-kpis { padding:15px; }.weekly-summary-kpis>header { align-items:start; flex-direction:column; gap:4px; }.weekly-summary-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.weekly-summary-bar-track { height:170px; }.weekly-summary-bar { grid-template-rows:32px 170px auto auto auto; } }

/* Average-week totals sit above the weekday pattern, so the whole week can be read before its day-by-day detail. */
.week-overview { margin:0 0 16px; padding:17px 19px 19px; border:1px solid #c8ddd1; border-top:3px solid #397a62; border-radius:8px; background:linear-gradient(110deg,#f7fcf9,#fffdf7); }.average-week-overview { border-top-color:#b88927; background:linear-gradient(110deg,#fffdf7,#f4faf6); }.week-overview>header { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:13px; }.week-overview h3 { margin:0; color:#174f3d; font-size:19px; }.week-overview p { margin:0; color:#61796e; font-size:13px; font-weight:700; }.week-overview-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:9px; }.week-overview-card { display:grid; align-content:start; min-width:0; min-height:104px; padding:12px 10px 10px; border:1px solid #b8d2c4; border-radius:7px; background:#fff; color:#174f3d; font:inherit; text-align:center; }.week-overview-card>span:first-child { min-height:27px; color:#5b776b; font-size:11px; font-weight:900; line-height:1.17; }.week-overview-card>strong { overflow:hidden; margin-top:5px; color:#154f3d; font-size:21px; line-height:1.08; text-overflow:ellipsis; white-space:nowrap; }.week-overview-card>small { display:block; min-height:25px; margin-top:6px; color:#667e73; font-size:10px; font-weight:800; line-height:1.18; }.week-overview-card>em { margin-top:5px; color:#8b6413; font-size:10px; font-style:normal; font-weight:900; letter-spacing:.02em; text-transform:uppercase; }.week-overview-card.is-action { cursor:pointer; transition:transform .15s,box-shadow .15s,border-color .15s; }.week-overview-card.is-action:hover { border-color:#ae7a20; box-shadow:0 5px 12px rgba(65,92,75,.14); transform:translateY(-2px); }.week-overview-card.is-action:focus-visible { outline:3px solid rgba(195,145,27,.55); outline-offset:2px; }.week-overview-card.is-food { border-top:3px solid #5e9279; }.week-overview-card.is-drink { border-top:3px solid #497a98; }.week-overview-card.is-wages { border-top:3px solid #a77d52; }.week-overview-card.is-mix { border-top:3px solid #a88a35; }.week-overview-card.is-mix>strong { white-space:normal; }.week-overview-mix { display:grid; grid-template-columns:auto auto; justify-content:center; column-gap:7px; row-gap:2px; }.week-overview-mix i { color:#698278; font-size:10px; font-style:normal; font-weight:900; text-align:right; }.week-overview-mix b { color:#174f3d; font-size:15px; text-align:left; }
@media (max-width:1100px) { .week-overview-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
@media (max-width:650px) { .week-overview { padding:15px; }.week-overview>header { align-items:start; flex-direction:column; gap:4px; }.week-overview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.week-overview-card { min-height:96px; } }

/* The Average Week SPH cards now open rankings directly, leaving room for its primary sales total. */
#average-week-total { min-width:238px; padding:14px 18px; border-color:#b88927; background:linear-gradient(120deg,#fff8e7,#fff); }.weekly-summary-heading-actions:has(#average-week-total) { min-width:238px; }.weekly-summary-heading-actions #average-week-total strong { font-size:34px; }.weekly-summary-heading-actions #average-week-total b { font-size:14px; }
@media (max-width:720px) { #average-week-total, .weekly-summary-heading-actions:has(#average-week-total) { width:100%; min-width:0; } }

#weekly-summary-total { min-width:238px; padding:14px 18px; background:linear-gradient(120deg,#eef8f2,#fff); }.weekly-summary-heading-actions:has(#weekly-summary-total) { min-width:238px; }.weekly-summary-heading-actions #weekly-summary-total strong { font-size:34px; }
@media (max-width:720px) { #weekly-summary-total, .weekly-summary-heading-actions:has(#weekly-summary-total) { width:100%; min-width:0; } }

/* Monthly Summary repeats the week view at month level without squeezing a long period into a table. */
#monthly-summary-button::before { content:"▤"; display:inline-grid; place-items:center; min-width:1em; color:currentColor; font-family:"Segoe UI Symbol","Segoe UI",sans-serif; font-size:1.08em; font-weight:700; line-height:1; }.monthly-summary-section { border-top-color:#927025; background:linear-gradient(135deg,#fffdf6 0,#f7fcf9 100%); }.monthly-summary-section .weekly-summary-total { border-color:#b88927; }.monthly-summary-chart { overflow-x:auto; }.monthly-summary-bars { min-width:max-content; grid-template-columns:repeat(var(--summary-day-count,1),minmax(112px,1fr)); padding:0 3px; }.monthly-summary-card-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:13px; }.monthly-summary-cards { margin-top:16px; padding:18px 20px 20px; border:1px solid #c8ddd1; border-radius:8px; background:#fff; }.monthly-summary-cards>header { display:flex; align-items:end; justify-content:space-between; gap:14px; margin-bottom:13px; }.monthly-summary-cards h3 { margin:0; color:#174f3d; font-size:19px; }.monthly-summary-cards>header p { margin:0; color:#61796e; font-size:13px; font-weight:700; }.monthly-summary-card { min-width:0; overflow:hidden; border:1px solid #b8d2c4; border-top:4px solid #b88927; border-radius:8px; background:#fbfdfc; box-shadow:0 2px 5px rgba(18,81,63,.05); }.monthly-summary-card>header { padding:11px 12px 10px; border-bottom:1px solid #d9e7df; background:#eef6f1; text-align:center; }.monthly-summary-card>header strong { color:#174f3d; font-size:17px; }.monthly-summary-card dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); margin:0; }.monthly-summary-card dl>div { display:grid; gap:3px; min-width:0; padding:10px 6px 9px; border-bottom:1px solid #d9e7df; text-align:center; }.monthly-summary-card dl>div:not(:nth-child(3n)) { border-right:1px solid #d9e7df; }.monthly-summary-card dt { color:#5d776c; font-size:10px; font-weight:900; line-height:1.15; }.monthly-summary-card dt small { display:block; color:#7a9086; font-size:9px; }.monthly-summary-card dd { margin:0; overflow:hidden; color:#174f3d; font-size:14px; font-weight:900; line-height:1.15; text-overflow:ellipsis; white-space:nowrap; }.monthly-summary-mix { display:grid; grid-template-columns:1fr 1fr; gap:4px; padding:9px 10px; border-bottom:1px solid #d9e7df; background:#fff8e6; text-align:center; }.monthly-summary-mix>span { grid-column:1 / -1; color:#80611b; font-size:10px; font-weight:900; text-transform:uppercase; }.monthly-summary-mix>span small { color:#96742b; font-size:9px; }.monthly-summary-mix b { color:#174f3d; font-size:12px; }.monthly-summary-sellers { display:grid; grid-template-columns:1fr 1fr; }.monthly-summary-sellers>div { display:grid; gap:2px; min-width:0; padding:8px 7px; text-align:center; }.monthly-summary-sellers>div+div { border-left:1px solid #d9e7df; }.monthly-summary-sellers>div>span { color:#80611b; font-size:10px; font-weight:900; text-transform:uppercase; }.monthly-summary-sellers .weekly-summary-seller { padding:2px 1px; text-align:center; }.monthly-summary-sellers .weekly-summary-seller b { font-size:12px; }.monthly-summary-sellers .weekly-summary-seller small { font-size:11px; }.monthly-summary-sellers .weekly-summary-seller em { font-size:10px; }.monthly-summary-sellers .weekly-summary-empty { display:block; min-height:28px; color:#8c9b94; font-weight:900; text-align:center; }#monthly-summary-total { box-sizing:border-box; width:238px; min-width:0; max-width:100%; padding:14px 18px; overflow:hidden; }.weekly-summary-heading-actions:has(#monthly-summary-total) { width:238px; min-width:0; max-width:100%; }.weekly-summary-heading-actions #monthly-summary-total strong { display:block; overflow:hidden; font-size:clamp(22px,1.6vw,27px); letter-spacing:-.035em; text-overflow:clip; white-space:nowrap; }
@media (max-width:720px) { .monthly-summary-cards { padding:15px; }.monthly-summary-cards>header { align-items:start; flex-direction:column; gap:4px; }.monthly-summary-card-grid { grid-template-columns:1fr; }#monthly-summary-total, .weekly-summary-heading-actions:has(#monthly-summary-total) { width:100%; min-width:0; } }

/* Monthly GP and wage values are explicit completed-week averages, not calendar-month accounts. */
.monthly-summary-cards-heading { display:flex; align-items:center; gap:7px; }.monthly-summary-info { display:grid; place-items:center; width:20px; height:20px; padding:0; border:1px solid #8aa999; border-radius:50%; background:#f3faf5; color:#185b44; font-family:Georgia,serif; font-size:13px; font-weight:900; font-style:italic; line-height:1; cursor:pointer; }.monthly-summary-info:hover { border-color:#1d674f; background:#dceee5; color:#0d4634; transform:translateY(-1px); }.monthly-summary-info:focus-visible { outline:3px solid rgba(198,153,36,.4); outline-offset:2px; }.monthly-summary-input-detail { display:block; min-height:21px; color:#6a8176; font-size:9px; font-weight:800; line-height:1.15; text-align:center; }.monthly-summary-info-copy { display:grid; gap:8px; }.monthly-summary-info-copy h4 { margin:0; color:#174f3d; font-size:16px; }.monthly-summary-info-copy p { margin:0 0 8px; color:#385f50; font-size:14px; font-weight:650; line-height:1.45; }.monthly-summary-info-copy p:last-child { margin-bottom:0; }

/* Every summary chart gives each day or month enough room for sales, covers and SPH. */
.weekly-summary-bars { grid-template-columns:repeat(var(--summary-day-count,7),minmax(128px,1fr)); min-height:322px; }.weekly-summary-bar { grid-template-rows:28px 46px 190px auto auto; gap:5px; }.weekly-summary-bar>strong { font-size:17px; }.weekly-summary-bar>b { max-width:100%; overflow:hidden; font-size:15px; text-overflow:ellipsis; white-space:nowrap; }.summary-bar-kpis { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:min(100%,150px); min-width:0; min-height:46px; overflow:hidden; border:1px solid #d3e3da; border-radius:6px; background:#fbfdfc; }.summary-bar-kpis>span { display:grid; align-content:center; gap:2px; min-width:0; padding:4px 3px; }.summary-bar-kpis>span+span { border-left:1px solid #d3e3da; }.summary-bar-kpis small { display:grid; gap:1px; overflow:hidden; color:#5d776c; font-size:10px; font-weight:900; line-height:1.05; text-overflow:ellipsis; white-space:nowrap; }.summary-bar-kpis small i { color:#7a9086; font-size:9px; font-style:normal; }.summary-bar-kpis b { overflow:hidden; color:#174f3d; font-size:14px; font-weight:900; line-height:1.1; text-overflow:ellipsis; white-space:nowrap; }.weekly-summary-kpi-card.is-compact dl>div:nth-child(-n+2) { border-bottom:0; }.monthly-summary-card dl { grid-template-columns:repeat(2,minmax(0,1fr)); }.monthly-summary-card dl>div:not(:nth-child(2n)) { border-right:1px solid #d9e7df; }.monthly-summary-card dl>div:nth-child(-n+4) { border-bottom:1px solid #d9e7df; }.monthly-summary-card .monthly-summary-wages { grid-column:1 / -1; border-right:0 !important; }.monthly-summary-bars { grid-template-columns:repeat(var(--summary-day-count,1),minmax(138px,1fr)); }
@media (max-width:1150px) { .weekly-summary-chart { overflow-x:auto; }.weekly-summary-bars { min-width:980px; } }
@media (max-width:650px) { .weekly-summary-bars { min-height:300px; }.weekly-summary-bar { grid-template-rows:28px 46px 170px auto auto; }.summary-bar-kpis { min-height:46px; }.weekly-summary-bar-track { height:170px; } }

/* Variance cards use outcome colours rather than their normal KPI category colour. */
.pnl-summary .report-kpi.pnl-variance-favourable { border-color:#8ab99e; background:#e2f0e8; }.pnl-summary .report-kpi.pnl-variance-unfavourable { border-color:#d9a3a3; background:#f9e9e9; }

/* Covers remain beside the sales total, leaving the compact overview grid for KPIs. */
.summary-total-covers { display:flex; align-items:baseline; justify-content:flex-end; gap:8px; margin-top:5px; padding-top:6px; border-top:1px solid #d7e5dd; }.summary-total-covers span { font-size:13px !important; }.summary-total-covers b { color:#174f3d; font-size:20px; font-weight:900; line-height:1; }.monthly-summary-card .monthly-summary-overall-sph { grid-column:1 / -1; border-right:0 !important; }.monthly-summary-card dl>div:nth-child(-n+5) { border-bottom:1px solid #d9e7df; }.week-overview-card.is-overall-sph { border-top:3px solid #3f7c9b; }

/* Browser sign-in is deliberately separate from the dashboard: no figures
   are rendered until the signed-in user is allowed to load the workspace. */
.web-sign-in { display:grid; min-height:100vh; padding:32px 20px; place-items:center; background:linear-gradient(135deg,#0e4435 0,#195c46 57%,#b98724 210%); }.web-sign-in-card { width:min(100%,480px); padding:34px; border:1px solid rgba(255,255,255,.38); border-radius:15px; background:#f9fbf8; box-shadow:0 24px 60px rgba(0,0,0,.27); }.web-sign-in-card .brand-lockup { margin-bottom:32px; }.web-sign-in-card h2 { margin:6px 0 10px; color:#103f31; font-size:29px; }.web-sign-in-card>p:not(.eyebrow) { margin:0 0 24px; color:#4c665a; font-size:16px; line-height:1.5; }.web-sign-in-form { display:grid; gap:16px; }.web-sign-in-form label { display:grid; gap:6px; color:#174f3d; font-size:14px; font-weight:850; }.web-sign-in-form input { width:100%; min-height:46px; box-sizing:border-box; padding:10px 12px; border:1px solid #a9c8b8; border-radius:6px; background:#fff; color:#193e32; font:inherit; }.web-sign-in-form input:focus { border-color:#1b7356; outline:3px solid rgba(39,117,87,.16); }.web-sign-in-form .button { justify-content:center; min-height:48px; margin-top:4px; }.web-sign-in-form .status-message { margin:0; }
.web-dashboard-loading { display:none; }.app-shell.is-web-loading { max-width:none; min-height:100vh; padding:0; }.app-shell.is-web-loading > :not(.web-dashboard-loading) { display:none; }.app-shell.is-web-loading .web-dashboard-loading { display:grid; min-height:100vh; padding:32px 20px; place-items:center; background:linear-gradient(135deg,#0e4435 0,#195c46 57%,#b98724 210%); }.web-dashboard-loading-card { width:min(100%,480px); padding:34px; border:1px solid rgba(255,255,255,.38); border-radius:15px; background:#f9fbf8; box-shadow:0 24px 60px rgba(0,0,0,.27); }.web-dashboard-loading-card .brand-lockup { margin-bottom:32px; }.web-dashboard-loading-card h2 { margin:6px 0 10px; color:#103f31; font-size:29px; }.web-dashboard-loading-card>p:not(.eyebrow) { margin:0; color:#4c665a; font-size:16px; line-height:1.5; }
.shared-data-backup-help { max-width:640px; margin:12px 0 0; color:var(--muted); font-size:13px; line-height:1.45; }
.shared-data-backup-panel { display:flex; align-items:center; justify-content:space-between; gap:20px; margin-top:18px; padding:18px; border:1px solid #b6d5c5; border-radius:8px; background:#f4faf6; }.shared-data-backup-panel h4 { margin:0 0 5px; color:var(--forest); font-size:16px; }.shared-data-backup-panel p { max-width:650px; margin:0; color:var(--muted); font-size:13px; line-height:1.45; }.shared-data-backup-panel .shared-data-actions { margin:0; flex:none; }
@media (max-width:700px) { .shared-data-backup-panel { align-items:stretch; flex-direction:column; }.shared-data-backup-panel .shared-data-actions { flex-wrap:wrap; } }
@media (max-width:540px) { .web-sign-in { padding:18px; }.web-sign-in-card { padding:27px 22px; }.web-sign-in-card h2 { font-size:25px; } }
