:root{font-variant-numeric:tabular-nums;--bg:#fff;--card:#fff;--line:#e2e8ee;--fg:#000;--muted:#5a6b7b;--accent:#0f766e;--accent-soft:#e6f4f2;--over:#ea4335;--over-soft:#fdecea;--under:#fa7b17;--under-soft:#fef0e3;--neutral:#64748b;--forecast:#4285f4;--actual:#34a853;--danger:#b91c1c;--side-bg:#fff;--side-fg:#000;--side-muted:#5a6b7b;--side-hover:#eef2f5;--side-active:var(--accent);--tip-bg:#0e1a20;--fs-xs:12px;--fs-sm:13px;--fs-md:14px;--fs-lg:17px;--fs-kpi:26px;--fs-big:38px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--radius:8px;--side-w:236px;--side-w-collapsed:56px;--topbar-h:52px;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-border-style:solid;--tw-font-weight:initial;--tw-ordinal:initial;--tw-slashed-zero:initial;--tw-numeric-figure:initial;--tw-numeric-spacing:initial;--tw-numeric-fraction:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-medium:500;--radius-lg:.5rem}}@layer base,components;@layer utilities{.visible{visibility:visible}.sr-only{clip-path:inset(50%);white-space:nowrap;border-width:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.absolute{position:absolute}.static{position:static}.sticky{position:sticky}.inset-0{inset:0}.ml-auto{margin-left:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.table{display:table}.h-0\.5{height:calc(var(--spacing) * .5)}.h-2{height:calc(var(--spacing) * 2)}.h-2\.5{height:calc(var(--spacing) * 2.5)}.w-2{width:calc(var(--spacing) * 2)}.w-2\.5{width:calc(var(--spacing) * 2.5)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.min-w-36{min-width:calc(var(--spacing) * 36)}.shrink-0{flex-shrink:0}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.items-center{align-items:center}.items-start{align-items:flex-start}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-3{gap:calc(var(--spacing) * 3)}.rounded-\[2px\]{border-radius:2px}.rounded-lg{border-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-border{border-color:var(--line)}.bg-\[var\(--actual\)\]{background-color:var(--actual)}.bg-\[var\(--forecast\)\]{background-color:var(--forecast)}.bg-\[var\(--over\)\]{background-color:var(--over)}.bg-\[var\(--under\)\]{background-color:var(--under)}.bg-background{background-color:var(--card)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.text-muted-foreground{color:var(--muted)}.tabular-nums{--tw-numeric-spacing:tabular-nums;font-variant-numeric:var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,)}.shadow-xl{--tw-shadow:0 20px 25px -5px var(--tw-shadow-color,#0000001a), 0 8px 10px -6px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.\[\&_\.recharts-cartesian-axis-tick_text\]\:fill-muted-foreground .recharts-cartesian-axis-tick text{fill:var(--muted)}.\[\&_\.recharts-cartesian-grid_line\[stroke\=\'\#ccc\'\]\]\:stroke-border .recharts-cartesian-grid line[stroke=\#ccc],.\[\&_\.recharts-curve\.recharts-tooltip-cursor\]\:stroke-border .recharts-curve.recharts-tooltip-cursor{stroke:var(--line)}.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted-foreground\/10 .recharts-rectangle.recharts-tooltip-cursor{fill:var(--muted)}@supports (color:color-mix(in lab, red, red)){.\[\&_\.recharts-rectangle\.recharts-tooltip-cursor\]\:fill-muted-foreground\/10 .recharts-rectangle.recharts-tooltip-cursor{fill:color-mix(in oklab, var(--muted) 10%, transparent)}}.\[\&_\.recharts-reference-line_\[stroke\=\'\#ccc\'\]\]\:stroke-muted-foreground .recharts-reference-line [stroke=\#ccc]{stroke:var(--muted)}.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{--tw-outline-style:none;outline-style:none}@media (forced-colors:active){.\[\&_\.recharts-surface\]\:outline-hidden .recharts-surface{outline-offset:2px;outline:2px solid #0000}}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-ordinal{syntax:"*";inherits:false}@property --tw-slashed-zero{syntax:"*";inherits:false}@property --tw-numeric-figure{syntax:"*";inherits:false}@property --tw-numeric-spacing{syntax:"*";inherits:false}@property --tw-numeric-fraction{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--fg);font-size:var(--fs-md);margin:0;line-height:1.4}h1,h2,p{margin:0}h2{font-size:var(--fs-md);align-items:center;gap:var(--sp-1);font-weight:600;display:inline-flex}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{grid-template-columns:var(--side-w) minmax(0, 1fr);height:100dvh;display:grid;overflow:hidden}.app.is-collapsed{grid-template-columns:var(--side-w-collapsed) minmax(0, 1fr)}.main{flex-direction:column;min-width:0;min-height:0;display:flex}.sidebar{gap:var(--sp-4);background:var(--side-bg);color:var(--side-fg);border-right:1px solid var(--line);flex-direction:column;padding:20px 14px 16px;display:flex;overflow:hidden}.brand{padding:var(--sp-1) 6px;align-items:center;gap:10px;min-height:32px;display:flex}.brand-mark{background:var(--accent);color:#fff;border-radius:7px;flex:none;place-items:center;width:30px;height:30px;font-weight:700;display:grid}.brand-name{color:var(--fg);white-space:nowrap;font-size:17px;font-weight:600}.brand-sub{font-size:var(--fs-sm);color:var(--side-muted);white-space:nowrap}nav{flex-direction:column;gap:2px;display:flex}.nav-item{width:100%;color:var(--side-fg);text-align:left;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:6px;align-items:center;gap:12px;padding:10px 12px;font-size:16px;font-weight:600;display:flex}.nav-item svg{flex:none}.nav-item:hover{background:var(--side-hover)}.nav-on,.nav-on:hover{background:var(--side-active);color:#fff}.sidebar-foot{gap:var(--sp-2);flex-direction:column;margin-top:auto;display:flex}.foot-text{font-size:var(--fs-sm);color:var(--side-muted);white-space:nowrap;padding:0 12px;line-height:1.5}.is-collapsed .brand-text,.is-collapsed .nav-label,.is-collapsed .foot-text{display:none}.is-collapsed .nav-item,.is-collapsed .brand{justify-content:center;padding-inline:0}.topbar{align-items:center;gap:var(--sp-3);height:var(--topbar-h);background:var(--card);border-bottom:1px solid var(--line);flex:none;padding:0 28px;display:none}.icon-btn{cursor:pointer;background:0 0;border:0;border-radius:6px;place-items:center;width:32px;height:32px;display:none}.icon-btn:hover{background:var(--side-hover)}.scrim{display:none}.page{flex-direction:column;flex:1;min-height:0;display:flex;overflow-y:auto}.filters{z-index:5;align-items:flex-end;gap:var(--sp-3);background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;flex:none;padding:12px 28px;display:flex;position:sticky;top:0}.page-body{gap:var(--sp-4);flex-direction:column;flex:1 0 auto;padding:16px 28px 24px;display:flex}.field{font-size:var(--fs-xs);color:var(--muted);flex-direction:column;gap:2px;display:flex}.field input,.field select{font:inherit;font-size:var(--fs-md);border:1px solid var(--line);height:34px;color:var(--fg);background:var(--card);border-radius:6px;min-width:118px;padding:0 8px}.field input[type=number]{width:70px;min-width:70px}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:var(--sp-3) 14px}.card-fill{flex-direction:column;flex:340px;min-height:300px;display:flex}.card-accent{border-left:3px solid var(--accent)}.card-h{justify-content:space-between;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-2);display:flex}.card-h>:first-child{flex:none}.grid-2{gap:var(--sp-3);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.big{font-size:var(--fs-big);margin:2px 0 var(--sp-1);font-weight:650;line-height:1.15}.buffer-sentence{font-size:var(--fs-lg);font-weight:600;line-height:1.35}.muted,.hint{color:var(--muted);font-size:var(--fs-sm)}.badge{border:1px solid var(--line);background:var(--bg);color:var(--muted);font-size:var(--fs-xs);white-space:nowrap;border-radius:999px;padding:2px 8px;font-weight:600}.sign-high{color:var(--over)}.sign-low{color:var(--under)}.sign small{font-size:var(--fs-xs);color:var(--muted);font-weight:400}.kpi-row{gap:var(--sp-3);grid-template-columns:repeat(3,minmax(0,1fr)) minmax(0,1.5fr);display:grid}.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);min-width:0;padding:10px 14px}.kpi-row>.q-wrap{display:contents}.kpi-label{font-size:var(--fs-sm);color:var(--muted);align-items:center;gap:2px;display:flex}.kpi-value{font-size:var(--fs-kpi);font-weight:650;line-height:1.25}.kpi-hint{font-size:var(--fs-xs);color:var(--muted)}.cutoff-row{white-space:nowrap;flex-wrap:nowrap;align-items:baseline;gap:6px;font-size:22px;line-height:1.25;display:flex}.cutoff-row strong{font-weight:650}.cutoff-row small,.cutoff-vs{font-size:var(--fs-sm);color:var(--muted)}.kpi-span{grid-column:span 3}.q-wrap.q-fill{gap:var(--sp-3);flex-direction:column;flex:1;min-height:0;display:flex}.chart-box{flex:1;min-height:220px;position:relative}.state{justify-content:center;align-items:center;gap:var(--sp-3);min-height:80px;padding:var(--sp-4);text-align:center;color:var(--muted);background:var(--card);border:1px dashed var(--line);border-radius:var(--radius);flex:1;display:flex}.state-error{color:var(--danger);background:#fef6f6;border-color:#f3b4b4}.state-page{flex:none}.btn{background:var(--card);color:var(--fg);cursor:pointer;border:1px solid;border-radius:6px;padding:4px 12px}.btn:hover{background:var(--side-hover)}.is-fetching>*{opacity:.55;transition:opacity .15s}.skeleton{background:linear-gradient(90deg, var(--line) 25%, #eef2f5 50%, var(--line) 75%);background-size:200% 100%;border-radius:6px;animation:1.4s linear infinite shimmer}.sk-line{width:40%;height:12px;margin:4px 0 8px}.sk-big{width:55%;height:34px;margin:4px 0 8px}.sk-kpi{width:60%;height:26px;margin:2px 0 6px}.sk-chart{flex:1;min-height:220px}@keyframes shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (prefers-reduced-motion:reduce){.skeleton{animation:none}}.info{display:inline-flex;position:relative}.info-btn{width:20px;height:20px;color:var(--muted);cursor:help;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.info-btn:hover,.info-btn:focus-visible{color:var(--accent)}.info-pop{z-index:20;background:var(--tip-bg);color:#fff;width:260px;font-size:var(--fs-sm);text-align:left;visibility:hidden;opacity:0;border-radius:6px;margin-top:4px;padding:8px 10px;font-weight:400;line-height:1.45;transition:opacity .12s;position:absolute;top:100%;left:-8px}.info-pop:before{content:"";height:6px;position:absolute;top:-6px;left:0;right:0}.info:hover .info-pop,.info:focus-within .info-pop{visibility:visible;opacity:1}table{border-collapse:collapse;width:100%;font-size:var(--fs-md);margin-top:var(--sp-2)}th,td{text-align:left;border-bottom:1px solid var(--line);padding:5px 8px}th{color:var(--muted);font-weight:600;font-size:var(--fs-sm)}@media (width<=900px){.app,.app.is-collapsed{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:40;width:232px;transition:transform .18s;position:fixed;inset:0 auto 0 0;transform:translate(-100%)}.is-drawer-open .sidebar{transform:none}.is-collapsed .brand-text,.is-collapsed .nav-label,.is-collapsed .foot-text{display:revert}.is-collapsed .nav-item{justify-content:flex-start;padding-inline:10px}.collapse-btn{display:none}.scrim{z-index:30;background:#0006;position:fixed;inset:0}.is-drawer-open .scrim{display:block}.icon-btn{margin-left:-8px;display:grid}.topbar{padding:0 20px;display:flex}.filters{padding:10px 20px}.page-body{padding:20px}.kpi-row{grid-template-columns:repeat(3,minmax(0,1fr))}.kpi-row>.kpi-wide{grid-column:1/-1}}@media (width<=600px){.grid-2,.kpi-row{grid-template-columns:minmax(0,1fr)}}@media (prefers-reduced-motion:reduce){.sidebar{transition:none}}.field,.field input,.field select{cursor:pointer}.field input[type=number]{cursor:text}input[type=date]::-webkit-calendar-picker-indicator{cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{cursor:pointer}
