:root{--bf-magenta: #A71257;--bf-magenta-light: #D5176F;--bf-burgundy: #7B0C3E;--bf-dusty-rose: #BB8091;--bf-peach: #EAD3C1;--bf-pale: #FFF3F9;--bf-white: #FFFFFF;--bf-plum: #2B1A26;--bf-taupe: #887177;--bf-mauve: #BEA5AB;--bf-olive: #A0860B;--bf-olive-deep: #685500;--bf-olive-light: #C9B02E;--bf-line: #EFE6E9;--bf-line-strong: var(--bf-mauve);--bf-bg: var(--bf-white);--bf-surface: var(--bf-pale);--bf-surface-alt: var(--bf-peach);--bf-ink: var(--bf-plum);--bf-ink-muted: var(--bf-taupe);--bf-accent: var(--bf-magenta);--bf-accent-hover: var(--bf-burgundy);--bf-accent-2: var(--bf-olive);--bf-accent-2-text: var(--bf-olive-deep);--bf-tone: var(--bf-dusty-rose);--bf-on-accent: #FFFFFF;--bf-good: #2F7F4F;--bf-warn: #B0741A;--bf-bad: #B3261E;--bf-good-bg: rgba(47,127,79,.12);--bf-warn-bg: rgba(176,116,26,.14);--bf-bad-bg: rgba(179,38,30,.12);--bf-chart-1: #A71257;--bf-chart-2: #A0860B;--bf-chart-3: #0E9BB5;--bf-chart-4: #D1704F;--bf-chart-5: #7A4FD1;--bf-chart-6: #4F9A5C;--bf-chart-grid: var(--bf-line);--bf-chart-label: var(--bf-taupe);--bf-shadow-rest: 0 1px 2px rgba(43,26,38,.06);--bf-shadow-hover: 0 12px 32px rgba(123,12,62,.14);--bf-shadow-modal: 0 24px 64px rgba(43,26,38,.22);--bf-lift-hover: translateY(-2px);--bf-font-display: "Raleway", "Segoe UI", system-ui, sans-serif;--bf-font-body: "Open Sans", "Segoe UI", system-ui, sans-serif;--bf-text-xs: 11px;--bf-text-sm: 13px;--bf-text-md: 15px;--bf-text-lg: 18px;--bf-text-xl: 24px;--bf-text-2xl: 32px;--bf-text-3xl: 44px;--bf-text-4xl: 56px;--bf-leading-tight: 1.1;--bf-leading-body: 1.55;--bf-tracking-caps: .12em;--bf-space-1: 4px;--bf-space-2: 8px;--bf-space-3: 12px;--bf-space-4: 16px;--bf-space-6: 24px;--bf-space-8: 32px;--bf-space-12: 48px;--bf-space-16: 64px;--bf-radius-sm: 6px;--bf-radius-md: 10px;--bf-radius-lg: 14px;--bf-radius-pill: 999px;--bf-ease: .18s ease}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bf-bg: #1B1418;--bf-surface: #251C22;--bf-surface-alt: #2E2229;--bf-ink: #F3ECEF;--bf-ink-muted: #A8979F;--bf-line: #362A32;--bf-line-strong: #4A3B43;--bf-accent: #D9367A;--bf-accent-hover: #E85A93;--bf-accent-2: var(--bf-olive-light);--bf-accent-2-text: var(--bf-olive-light);--bf-tone: #C98FA0;--bf-good: #5FB57C;--bf-warn: #D9A441;--bf-bad: #E06A62;--bf-chart-1: #D9367A;--bf-chart-2: #A88F1E;--bf-chart-3: #22A3BE;--bf-chart-4: #D26A48;--bf-chart-5: #9B7BE0;--bf-chart-6: #4E9C5A;--bf-shadow-rest: 0 1px 2px rgba(0,0,0,.3);--bf-shadow-hover: 0 12px 32px rgba(0,0,0,.45)}}:root[data-theme=dark]{--bf-bg: #1B1418;--bf-surface: #251C22;--bf-surface-alt: #2E2229;--bf-ink: #F3ECEF;--bf-ink-muted: #A8979F;--bf-line: #362A32;--bf-line-strong: #4A3B43;--bf-accent: #D9367A;--bf-accent-hover: #E85A93;--bf-accent-2: var(--bf-olive-light);--bf-accent-2-text: var(--bf-olive-light);--bf-tone: #C98FA0;--bf-good: #5FB57C;--bf-warn: #D9A441;--bf-bad: #E06A62;--bf-chart-1: #D9367A;--bf-chart-2: #A88F1E;--bf-chart-3: #22A3BE;--bf-chart-4: #D26A48;--bf-chart-5: #9B7BE0;--bf-chart-6: #4E9C5A;--bf-shadow-rest: 0 1px 2px rgba(0,0,0,.3);--bf-shadow-hover: 0 12px 32px rgba(0,0,0,.45)}.bf-root,body.bf{background:var(--bf-bg);color:var(--bf-ink);font-family:var(--bf-font-body);font-size:var(--bf-text-md);line-height:var(--bf-leading-body);-webkit-font-smoothing:antialiased}.bf h1,.bf h2,.bf h3,.bf-display{font-family:var(--bf-font-display);font-weight:500;line-height:var(--bf-leading-tight);letter-spacing:-.005em;text-wrap:balance;margin:0;color:var(--bf-ink)}.bf h1{font-size:var(--bf-text-3xl);font-weight:300}.bf h2{font-size:var(--bf-text-2xl);font-weight:400}.bf h3{font-size:var(--bf-text-lg);font-weight:600}.bf-eyebrow{font-family:var(--bf-font-display);font-size:var(--bf-text-xs);letter-spacing:var(--bf-tracking-caps);text-transform:uppercase;font-weight:700;color:var(--bf-accent-2-text)}.bf-muted{color:var(--bf-ink-muted)}.bf-num{font-variant-numeric:tabular-nums}.bf a.bf-link-secondary{color:var(--bf-tone);text-decoration-color:var(--bf-mauve)}.bf-btn{font-family:var(--bf-font-body);font-weight:600;font-size:var(--bf-text-sm);padding:10px 18px;border-radius:var(--bf-radius-pill);border:1px solid transparent;cursor:pointer;transition:background var(--bf-ease),color var(--bf-ease),box-shadow var(--bf-ease),transform var(--bf-ease)}.bf-btn-primary{background:var(--bf-accent);color:var(--bf-on-accent)}.bf-btn-primary:hover{background:var(--bf-accent-hover);box-shadow:var(--bf-shadow-hover);transform:var(--bf-lift-hover)}.bf-btn-secondary{background:transparent;color:var(--bf-burgundy);border-color:var(--bf-burgundy)}.bf-btn-secondary:hover{background:var(--bf-pale)}.bf-btn:disabled{background:var(--bf-mauve);color:#fff;cursor:not-allowed;box-shadow:none;transform:none}.bf-btn:focus-visible{outline:2px solid var(--bf-accent);outline-offset:2px}.bf-card{background:var(--bf-bg);border:1px solid var(--bf-line);border-radius:var(--bf-radius-lg);padding:var(--bf-space-4);box-shadow:var(--bf-shadow-rest);transition:transform var(--bf-ease),box-shadow var(--bf-ease),border-color var(--bf-ease)}.bf-card:hover{transform:var(--bf-lift-hover);box-shadow:var(--bf-shadow-hover);border-color:var(--bf-tone)}.bf-card-surface{background:var(--bf-surface);border-color:var(--bf-line)}.bf-media{background:var(--bf-peach);border-radius:var(--bf-radius-md)}.bf-badge{display:inline-block;font-family:var(--bf-font-display);font-size:var(--bf-text-xs);font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 9px;border-radius:var(--bf-radius-pill)}.bf-badge-new{background:var(--bf-olive);color:#fff}.bf-badge-sale{background:var(--bf-accent);color:#fff}.bf-chip{display:inline-block;font-size:var(--bf-text-xs);font-weight:600;padding:4px 10px;border-radius:var(--bf-radius-pill);border:1px solid var(--bf-mauve);color:var(--bf-ink-muted);background:var(--bf-bg)}.bf-chip.is-on{background:var(--bf-tone);border-color:var(--bf-tone);color:#fff}.bf-pill-good{background:var(--bf-good-bg);color:var(--bf-good)}.bf-pill-warn{background:var(--bf-warn-bg);color:var(--bf-warn)}.bf-pill-bad{background:var(--bf-bad-bg);color:var(--bf-bad)}.bf-price-sale{color:var(--bf-accent);font-weight:700}.bf-price-old{color:var(--bf-ink-muted);text-decoration:line-through;font-weight:400}.bf-section-dark{background:var(--bf-burgundy);color:#f1dce4}.bf-section-dark .bf-eyebrow,.bf-section-dark a{color:var(--bf-olive-light)}.bf-section-alt{background:var(--bf-surface-alt)}.bf-divider{border:0;border-top:1px solid var(--bf-mauve);opacity:.6}@media(prefers-reduced-motion:reduce){.bf-btn,.bf-card{transition:none}.bf-card:hover,.bf-btn-primary:hover{transform:none}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0}.app{max-width:1320px;margin:0 auto;padding:20px 24px 64px}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:12px 0 18px;border-bottom:1px solid var(--bf-line);margin-bottom:20px}.brand{font-family:var(--bf-font-display);font-weight:600;letter-spacing:.14em;font-size:15px;display:flex;align-items:center;gap:9px}.brand i{width:10px;height:10px;border-radius:50%;background:var(--bf-accent);display:inline-block}.brand small{font-family:var(--bf-font-body);font-weight:400;letter-spacing:0;color:var(--bf-ink-muted);font-size:12px;margin-left:6px}.filters{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.filters label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bf-ink-muted);font-weight:600;margin-right:2px}.filters select{font:600 13px var(--bf-font-body);color:var(--bf-ink);background:var(--bf-bg);border:1px solid var(--bf-mauve);border-radius:var(--bf-radius-pill);padding:6px 12px}.chipbar{display:flex;gap:6px;flex-wrap:wrap}.section{margin-top:32px}.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}.section-head h2{font-size:24px;font-weight:400}.section-head p{margin:0;color:var(--bf-ink-muted);font-size:13px;max-width:70ch}.grid{display:grid;gap:14px}.grid-kpi{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}.grid-2{grid-template-columns:1fr 1fr}.grid-3{grid-template-columns:1fr 1fr 1fr}@media(max-width:960px){.grid-2,.grid-3{grid-template-columns:1fr}}.card{background:var(--bf-bg);border:1px solid var(--bf-line);border-radius:var(--bf-radius-lg);padding:16px;box-shadow:var(--bf-shadow-rest);transition:transform var(--bf-ease),box-shadow var(--bf-ease),border-color var(--bf-ease)}.card:hover{transform:var(--bf-lift-hover);box-shadow:var(--bf-shadow-hover);border-color:var(--bf-tone)}.card h3{font-family:var(--bf-font-body);font-size:13px;font-weight:700;margin:0 0 4px}.card .sub{font-size:12px;color:var(--bf-ink-muted);margin:0 0 10px}.kpi .label{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--bf-ink-muted);font-weight:600}.kpi .value{font-family:var(--bf-font-display);font-size:30px;font-weight:500;margin-top:6px;font-variant-numeric:tabular-nums;line-height:1.05}.kpi .delta{font-size:12px;margin-top:6px;font-variant-numeric:tabular-nums;color:var(--bf-ink-muted)}.kpi .delta.up{color:var(--bf-good)}.kpi .delta.down{color:var(--bf-bad)}table.tbl{width:100%;border-collapse:collapse;font-size:13px}table.tbl th{text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--bf-ink-muted);font-weight:600;padding:6px 8px;border-bottom:1px solid var(--bf-mauve);cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap}table.tbl th.num,table.tbl td.num{text-align:right;font-variant-numeric:tabular-nums}table.tbl td{padding:7px 8px;border-bottom:1px solid var(--bf-line);vertical-align:top}table.tbl tr:hover td{background:var(--bf-surface)}table.tbl td.title{max-width:380px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tblwrap{overflow-x:auto}.pill{display:inline-block;font-size:11px;font-weight:600;padding:3px 8px;border-radius:999px}.heat{display:grid;grid-template-columns:110px 60px repeat(5,1fr);gap:3px;font-size:12px;font-variant-numeric:tabular-nums}.heat .h{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--bf-ink-muted);font-weight:600;padding:4px 6px}.heat .c{padding:5px 6px;border-radius:4px;text-align:right}.heat .m{padding:5px 6px;color:var(--bf-ink-muted)}.login{max-width:380px;margin:12vh auto 0}.login h1{font-size:34px;font-weight:300;margin-bottom:6px}.login p{color:var(--bf-ink-muted);margin:0 0 16px}.login input{width:100%;font:400 15px var(--bf-font-body);padding:11px 14px;border-radius:var(--bf-radius-md);border:1px solid var(--bf-mauve);background:var(--bf-bg);color:var(--bf-ink);margin-bottom:10px}.login input:focus{outline:2px solid var(--bf-accent);outline-offset:1px;border-color:transparent}.msg{font-size:13px;padding:10px 12px;border-radius:var(--bf-radius-md);margin-top:10px}.msg.ok{background:var(--bf-good-bg);color:var(--bf-good)}.msg.err{background:var(--bf-bad-bg);color:var(--bf-bad)}.loading{padding:60px;text-align:center;color:var(--bf-ink-muted)}.legend{display:flex;gap:12px;font-size:12px;color:var(--bf-ink-muted);flex-wrap:wrap}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:-1px}.insight{border-left:3px solid var(--bf-accent-2);padding:6px 12px;margin:6px 0;font-size:13px}.insight b{font-weight:700}.list{list-style:none;margin:0;padding:0}.list li{display:flex;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--bf-line);font-size:13px}.list li span:last-child{color:var(--bf-ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.muted{color:var(--bf-ink-muted)}.recharts-cartesian-grid line{stroke:var(--bf-chart-grid)}.recharts-text{fill:var(--bf-chart-label);font-size:11px;font-family:var(--bf-font-body)}.tooltip{background:var(--bf-bg);border:1px solid var(--bf-line-strong);border-radius:var(--bf-radius-md);padding:8px 10px;font-size:12px;box-shadow:var(--bf-shadow-hover)}.tooltip b{display:block;margin-bottom:4px}.tooltip div{display:flex;justify-content:space-between;gap:16px;font-variant-numeric:tabular-nums}.chip{font:600 12px var(--bf-font-body);padding:5px 12px;border-radius:999px;border:1px solid var(--bf-mauve);background:var(--bf-bg);color:var(--bf-ink-muted);cursor:pointer;transition:background var(--bf-ease),color var(--bf-ease),border-color var(--bf-ease),box-shadow var(--bf-ease),transform var(--bf-ease)}.chip:hover{border-color:var(--bf-accent);color:var(--bf-accent);box-shadow:var(--bf-shadow-hover);transform:var(--bf-lift-hover)}.chip.is-on{background:var(--bf-accent);border-color:var(--bf-accent);color:#fff}.chip.is-on:hover{background:var(--bf-accent-hover);border-color:var(--bf-accent-hover);color:#fff}.chip:focus-visible{outline:2px solid var(--bf-accent);outline-offset:2px}.filters select:hover{border-color:var(--bf-accent)}.kpi-input{display:block;width:100%;margin-top:6px;padding:0 0 2px;border:0;border-bottom:1px dashed var(--bf-mauve);background:transparent;color:var(--bf-ink);font-family:var(--bf-font-display);font-size:30px;font-weight:500;line-height:1.05;font-variant-numeric:tabular-nums;outline:none}.kpi-input::placeholder{color:var(--bf-mauve)}.kpi-input:hover{border-bottom-color:var(--bf-accent)}.kpi-input:focus{border-bottom:1px solid var(--bf-accent)}.dist{display:grid;gap:10px;margin-top:6px}.dist-row{display:grid;grid-template-columns:150px 1fr 120px;gap:12px;align-items:center}.dist-label{display:flex;flex-direction:column;font-size:13px;line-height:1.25}.dist-label .muted{font-size:11px}.dist-bar{position:relative;height:26px;background:var(--bf-surface);border-radius:6px;overflow:hidden}.dist-bar i{position:absolute;inset:0 auto 0 0;border-radius:6px}.dist-bar span{position:absolute;left:10px;top:0;line-height:26px;font-weight:700;font-size:13px;color:#fff;font-variant-numeric:tabular-nums;text-shadow:0 1px 2px rgba(43,26,38,.55)}.dist-bar small{font-weight:600}.dist-cmp{display:flex;flex-direction:column;font-size:12px;text-align:right;line-height:1.3}@media(max-width:640px){.dist-row{grid-template-columns:1fr;gap:4px}.dist-cmp{flex-direction:row;gap:8px}}table.tbl th .sort-ind{color:var(--bf-mauve);font-size:10px}table.tbl th.sorted,table.tbl th.sorted .sort-ind{color:var(--bf-accent)}table.tbl th:hover{color:var(--bf-ink)}table.tbl td.title{max-width:300px}.scroll10{max-height:392px;overflow-y:auto}.scroll10 thead th{position:sticky;top:0;background:var(--bf-bg);z-index:1}.scroll12{max-height:420px;overflow-y:auto}.scroll12 .h{position:sticky;top:0;background:var(--bf-bg);z-index:1}.section .grid-kpi+.card{margin-top:14px}
