@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/ibm-plex-mono-latin-500-normal-DSY6xOcd.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-500-normal-CB9ihrfo.woff)format("woff")}@font-face{font-family:IBM Plex Mono;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/ibm-plex-mono-latin-600-normal-BgSNZQsw.woff2)format("woff2"),url(/assets/ibm-plex-mono-latin-600-normal-DWFSQ4vo.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/space-grotesk-latin-500-normal-lFbtlQH6.woff2)format("woff2"),url(/assets/space-grotesk-latin-500-normal-CNSSEhBt.woff)format("woff")}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/assets/space-grotesk-latin-700-normal-RjhwGPKo.woff2)format("woff2"),url(/assets/space-grotesk-latin-700-normal-CwsQ-cCU.woff)format("woff")}:root{--magenta:#dd3a93;--magenta-soft:#f6cfe3;--violet:#7052a0;--violet-soft:#d9cfea;--ink:#14101f;--ink-soft:#4a4458;--ink-mute:#8a8398;--paper:#fff;--pink:#fbe3ee;--pink-deep:#f7cfe0;--line:#e6e1ec;--ok:#1f9d6a;--warn:#d98a1e;--err:#c9354a;--mono:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--sans:"Space Grotesk", system-ui, -apple-system, "Segoe UI", sans-serif;--shadow:4px 4px 0 var(--ink);--shadow-sm:2px 2px 0 var(--ink);--radius:2px}*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:var(--mono);color:var(--ink);background-color:var(--pink);background-image:radial-gradient(var(--pink-deep) 1px, transparent 1.1px);-webkit-font-smoothing:antialiased;background-size:9px 9px;font-size:12.5px;line-height:1.45}#root{min-height:100%}h1,h2,h3{font-family:var(--sans);letter-spacing:-.01em;margin:0;font-weight:700}button,input,select,textarea{font:inherit;color:inherit}a{color:var(--violet)}::selection{background:var(--magenta);color:#fff}.app{max-width:1600px;margin:0 auto;padding:18px 22px 80px}.topbar{border:1px solid var(--ink);background:var(--paper);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;padding:10px 14px;display:flex}.topbar .brand{align-items:center;gap:14px;display:flex}.topbar .brand img{height:30px;display:block}.topbar .brand .name{font-family:var(--mono);letter-spacing:.02em;font-size:13px;font-weight:600}.topbar .brand .name small{color:var(--ink-mute);font-size:11px;font-weight:400;display:block}.topbar .meta{color:var(--ink-soft);gap:18px;font-size:11px;display:flex}.topbar .meta b{color:var(--ink);font-weight:600}.grid{grid-template-columns:430px minmax(0,1fr);align-items:start;gap:18px;display:grid}.col{flex-direction:column;gap:18px;min-width:0;display:flex}@media (width<=1100px){.grid{grid-template-columns:1fr}}.win{background:var(--paper);border:1px solid var(--ink);box-shadow:var(--shadow);min-width:0}.win-title{background:var(--ink);color:#fff;letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.win-title .dots{gap:4px;margin-right:8px;display:inline-flex}.win-title .dots i{border:1px solid #fff;width:8px;height:8px;display:inline-block}.win-title .dots i:first-child{background:var(--magenta);border-color:var(--magenta)}.win-title .dots i:nth-child(2){background:var(--violet);border-color:var(--violet)}.win-title .right{letter-spacing:0;text-transform:none;opacity:.85;align-items:center;gap:8px;font-weight:400;display:flex}.win-body{padding:14px}.win.accent .win-title{background:var(--magenta)}.btn{appearance:none;border:1px solid var(--ink);background:var(--paper);color:var(--ink);font-family:var(--mono);cursor:pointer;box-shadow:var(--shadow-sm);white-space:nowrap;align-items:center;gap:8px;padding:7px 12px;font-size:12px;font-weight:500;transition:transform 50ms,box-shadow 50ms,background .1s;display:inline-flex}.btn:hover{background:var(--pink)}.btn:active{box-shadow:none;transform:translate(2px,2px)}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:var(--shadow-sm);transform:none}.btn.primary{background:var(--magenta);color:#fff;border-color:var(--ink)}.btn.primary:hover{background:#c92f82}.btn.violet{background:var(--violet);color:#fff}.btn.violet:hover{background:#5f4489}.btn.ghost{box-shadow:none;border-color:#0000;padding:4px 8px}.btn.ghost:hover{border-color:var(--ink)}.btn.sm{padding:4px 8px;font-size:11px}.btn.danger{color:var(--err)}.btn.block{justify-content:center;width:100%}.btn .spin{border:2px solid;border-right-color:#0000;border-radius:50%;width:10px;height:10px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.input,select.input{border:1px solid var(--ink);width:100%;font-family:var(--mono);border-radius:var(--radius);background:#fff;outline:none;padding:7px 9px;font-size:12px}.input:focus{box-shadow:0 0 0 2px var(--magenta-soft);border-color:var(--magenta)}input[type=date].input{padding:6px 9px}.field{flex-direction:column;gap:5px;display:flex}.field label,.label{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);font-size:10.5px;font-weight:600}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.stack{flex-direction:column;gap:10px;display:flex}.muted{color:var(--ink-mute)}.small{font-size:11px}.tiny{font-size:10.5px}.mono{font-family:var(--mono)}.nowrap{white-space:nowrap}.right{text-align:right}.hr{background:var(--line);height:1px;margin:12px 0}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--ink);cursor:pointer;-webkit-user-select:none;user-select:none;background:#fff;align-items:center;gap:6px;padding:3px 8px;font-size:11px;display:inline-flex}.chip:hover{background:var(--pink)}.chip.on{background:var(--ink);color:#fff}.chip.violet.on{background:var(--violet);border-color:var(--violet)}.chip.magenta.on{background:var(--magenta);border-color:var(--magenta)}.seg{border:1px solid var(--ink);display:inline-flex}.seg button{appearance:none;cursor:pointer;font-family:var(--mono);color:var(--ink-soft);background:#fff;border:0;padding:6px 12px;font-size:11.5px;font-weight:500}.seg button+button{border-left:1px solid var(--ink)}.seg button.on{background:var(--ink);color:#fff}.check{cursor:pointer;border:1px solid #0000;align-items:flex-start;gap:9px;padding:6px 8px;display:flex}.check:hover{background:var(--pink)}.check input{accent-color:var(--magenta);flex:none;width:13px;height:13px;margin:3px 0 0}.check .t{font-weight:500}.check .d{color:var(--ink-mute);font-size:11px;line-height:1.35}.check.on{border-color:var(--line);background:#fdf6f9}.toggle{cursor:pointer;align-items:center;gap:8px;font-size:12px;display:inline-flex}.toggle input{display:none}.toggle .sw{border:1px solid var(--ink);background:#fff;flex:none;width:30px;height:16px;position:relative}.toggle .sw:after{content:"";background:var(--ink);width:10px;height:10px;transition:left .12s;position:absolute;top:2px;left:2px}.toggle input:checked+.sw{background:var(--magenta-soft)}.toggle input:checked+.sw:after{background:var(--magenta);left:16px}.offers{border:1px solid var(--ink);background:#fff;max-height:420px;overflow:auto}.offers .company{z-index:1;background:var(--pink);border-bottom:1px solid var(--line);letter-spacing:.04em;text-transform:uppercase;justify-content:space-between;align-items:center;padding:5px 9px;font-size:11px;font-weight:600;display:flex;position:sticky;top:0}.offers .company .n{color:var(--ink-mute);text-transform:none;letter-spacing:0;font-weight:400}.offers .company button{padding:1px 6px;font-size:10px}.offers .offer{border-bottom:1px solid var(--line);cursor:pointer;grid-template-columns:16px 1fr auto;align-items:center;gap:8px;padding:5px 9px;display:grid}.offers .offer:hover{background:#fdf6f9}.offers .offer.on{background:#fbeaf2}.offers .offer input{accent-color:var(--magenta);margin:0}.offers .offer .k{color:var(--ink-mute);font-size:10.5px}.offers .offer .n{color:var(--ink-soft);font-variant-numeric:tabular-nums;font-size:11px}.offers .offer .tag{border:1px solid var(--violet);color:var(--violet);text-transform:uppercase;letter-spacing:.05em;margin-left:6px;padding:0 5px;font-size:9.5px;display:inline-block}.offers .offer .tag.ret{border-color:var(--warn);color:var(--warn)}.offers .offer .tag.home{border-color:var(--ink-mute);color:var(--ink-mute)}.offers .offer .ingrp{color:var(--magenta);font-size:10px}.group{border:1px solid var(--ink);background:#fff;grid-template-columns:16px 1fr auto;align-items:start;gap:10px;padding:8px 10px;display:grid}.group.on{box-shadow:var(--shadow-sm)}.group input[type=checkbox]{accent-color:var(--magenta);margin:3px 0 0}.group .name{align-items:center;gap:8px;font-weight:600;display:flex}.group .swatch{border:1px solid var(--ink);width:10px;height:10px;display:inline-block}.group .offs{color:var(--ink-mute);margin-top:2px;font-size:11px}.group .acts{gap:4px;display:flex}.editor{border:1px dashed var(--ink);background:#fffafc;padding:12px}.kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;display:grid}.kpi{border:1px solid var(--ink);background:#fff;min-width:0;padding:10px 12px}.kpi .v{font-family:var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;font-size:20px;font-weight:600;line-height:1.1}.kpi .v small{color:var(--ink-soft);margin-left:3px;font-size:12px;font-weight:500}.kpi .l{color:var(--ink-soft);letter-spacing:.04em;text-transform:uppercase;margin-top:4px;font-size:10.5px;line-height:1.3}.kpi.magenta{border-color:var(--magenta)}.kpi.magenta .v{color:var(--magenta)}.kpi.violet .v{color:var(--violet)}.charts{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:14px;display:grid}.chart{border:1px solid var(--line);background:#fff;min-width:0;padding:10px 10px 4px;overflow:hidden}.chart .table-wrap{margin:0 -10px;padding:0 10px 6px;overflow-x:auto}.chart h3{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:6px;font-size:11px}.recharts-text{font-family:var(--mono);fill:var(--ink-soft);font-size:10px}.recharts-tooltip-wrapper .tip{background:var(--ink);color:#fff;border:1px solid var(--ink);box-shadow:var(--shadow-sm);padding:6px 9px;font-size:11px}.recharts-tooltip-wrapper .tip b{color:var(--magenta-soft)}table.data{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:11.5px}table.data th{text-align:left;vertical-align:bottom;background:var(--ink);color:#fff;letter-spacing:.04em;text-transform:uppercase;padding:5px 8px;font-size:10px;font-weight:600;line-height:1.25}table.data td{border-bottom:1px solid var(--line);padding:4px 8px}table.data td.num,table.data th.num{text-align:right}table.data td.num{white-space:nowrap}table.data tr.total td{background:#fdf6f9;font-weight:600}.exports{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=900px){.exports{grid-template-columns:1fr}}.export{border:1px solid var(--ink);background:#fff;flex-direction:column;gap:8px;min-width:0;padding:12px;display:flex}.export .ext{font-family:var(--mono);font-size:18px;font-weight:600}.export .ext span{color:var(--magenta)}.export p{color:var(--ink-soft);flex:1;margin:0;font-size:11px;line-height:1.4}.alert{border:1px solid var(--err);color:var(--err);background:#fff3f4;padding:8px 10px;font-size:11.5px}.alert.info{border-color:var(--violet);color:var(--violet);background:#f5f1fb}.alert.warn{border-color:var(--warn);color:#8a5a10;background:#fff8ec}.statusbar{z-index:10;background:var(--ink);color:#d9d3e3;letter-spacing:.03em;justify-content:space-between;align-items:center;gap:20px;padding:5px 22px;font-size:10.5px;display:flex;position:fixed;bottom:0;left:0;right:0}.statusbar b{color:#fff;font-weight:600}.statusbar .seg-s{gap:20px;display:flex}.statusbar .dot{background:var(--ok);vertical-align:middle;width:7px;height:7px;margin-right:6px;display:inline-block}.statusbar .dot.off{background:var(--err)}.skeleton{background:linear-gradient(90deg,#f3eef6 25%,#faf5f8 50%,#f3eef6 75%) 0 0/200% 100%;height:14px;animation:1.2s infinite sk}@keyframes sk{to{background-position:-200% 0}}.empty{text-align:center;color:var(--ink-mute);border:1px dashed var(--line);padding:34px 16px}.empty b{color:var(--ink)}.search{position:relative}.search .input{padding-left:26px}.search:before{content:"⌕";color:var(--ink-mute);font-size:14px;position:absolute;top:6px;left:9px}kbd{font-family:var(--mono);border:1px solid var(--ink);background:#fff;padding:1px 5px;font-size:10px}
