:root{--color-bg-app: #07111f;--color-bg-primary: #0b1c2d;--color-bg-secondary: #102338;--color-bg-tertiary: #0d1c2e;--color-bg-elevated: #14304b;--color-surface: #102338;--color-surface-hover: #163252;--color-surface-strong: #1a3a5c;--color-text-primary: #ffffff;--color-text-secondary: #cfd8e3;--color-text-muted: #8fa3b8;--color-text-disabled: #5b6e83;--color-accent: #2b8eff;--color-accent-hover: #4ea2ff;--color-accent-soft: rgba(43, 142, 255, .16);--color-positive: #2ecc71;--color-negative: #e74c3c;--color-warning: #f1c40f;--color-info: #3498db;--color-accent-info: var(--color-info);--color-accent-positive: var(--color-positive);--color-accent-negative: var(--color-negative);--color-accent-warning: var(--color-warning);--color-border: rgba(255, 255, 255, .08);--color-border-strong: rgba(255, 255, 255, .16);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .25);--shadow-md: 0 4px 12px rgba(0, 0, 0, .32);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .4);--font-primary: "Inter", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono: "JetBrains Mono", "Consolas", monospace;--font-size-xs: 11px;--font-size-sm: 12px;--font-size-md: 13px;--font-size-lg: 15px;--font-size-xl: 18px;--font-size-2xl: 22px;--font-size-3xl: 28px;--line-height-tight: 1.15;--line-height-normal: 1.45;--spacing-xxs: 2px;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 12px;--spacing-lg: 16px;--spacing-xl: 24px;--spacing-2xl: 32px;--spacing-3xl: 48px;--radius-xs: 3px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--topbar-height: 56px;--footer-height: 48px;--sidebar-width: 240px}*,*:before,*:after{box-sizing:border-box}html,body,app-root{margin:0;padding:0;height:100%}app-root{display:block}body{font-family:var(--font-primary);font-size:var(--font-size-md);line-height:var(--line-height-normal);background-color:var(--color-bg-app);color:var(--color-text-primary);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}.app-shell{display:grid;grid-template-rows:var(--topbar-height) 1fr var(--footer-height);height:100vh;overflow:hidden}.app-shell__topbar,.app-shell__footer{min-width:0}.app-shell__main{display:grid;grid-template-columns:var(--sidebar-width) 1fr;min-height:0;transition:grid-template-columns .18s ease}.app-shell__sidebar{min-height:0;overflow:hidden;width:var(--sidebar-width);transition:width .18s ease,border-color .18s ease,opacity .18s ease}.app-shell__content{min-width:0;min-height:0;overflow:auto;padding:var(--spacing-xl);background:var(--color-bg-app)}.app-shell--sidebar-collapsed .app-shell__main{grid-template-columns:0 1fr}.app-shell--sidebar-collapsed .app-shell__sidebar{width:0;border-right-color:transparent;opacity:0;pointer-events:none}@media(max-width:1360px){.app-shell:not(.app-shell--sidebar-collapsed) .app-shell__main{grid-template-columns:88px 1fr}.app-shell__content{padding:18px}}@media(max-width:1100px){.app-shell:not(.app-shell--sidebar-collapsed) .app-shell__main{grid-template-columns:76px 1fr}.app-shell__content{padding:14px}}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);margin-bottom:var(--spacing-md);flex-wrap:wrap}.page-header__titles{display:grid;gap:2px;flex:1 1 320px;min-width:0}.page-header__eyebrow{font-size:var(--font-size-xs);letter-spacing:.8px;line-height:1.05;text-transform:uppercase;color:var(--color-text-muted)}.page-header__title{margin:0;font-size:1.85rem;font-weight:700;line-height:1.05;color:#8bb7ff}.page-header__subtitle{color:var(--color-text-secondary);font-size:.82rem;line-height:1.05}.page-header__actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.empty-state{display:grid;place-items:center;gap:var(--spacing-sm);padding:var(--spacing-3xl) var(--spacing-xl);background:var(--color-surface);border:1px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);text-align:center}.empty-state__title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-text-primary)}.empty-state__hint{color:var(--color-text-muted);font-size:var(--font-size-sm)}.skeleton{background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a);background-size:200% 100%;border-radius:var(--radius-sm);animation:skeleton-shimmer 1.4s ease-in-out infinite}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.data-table,.table-forecast{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--font-size-md);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.data-table thead th,.table-forecast thead th{position:sticky;top:0;z-index:1;text-align:left;font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-secondary);background:var(--color-bg-tertiary);padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border-strong)}.data-table tbody td,.table-forecast tbody td{padding:var(--spacing-sm) var(--spacing-md);border-bottom:1px solid var(--color-border);white-space:nowrap}.data-table tbody tr:nth-child(2n) td{background:#ffffff04}.data-table tbody tr:hover td,.table-forecast tbody tr:hover td{background:var(--color-surface-hover)}.data-table tbody tr.is-selected td{background:var(--color-accent-soft)}.data-table tfoot td,.data-table tr.is-total td,.table-forecast .total-row td,.table-forecast .total-row{font-weight:700;background:#ffffff0a}.data-table .num{text-align:right;font-variant-numeric:tabular-nums}.data-table .pos{color:var(--color-positive)}.data-table .neg{color:var(--color-negative)}.kpi-grid,.kpi-container{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--spacing-lg);margin-bottom:var(--spacing-xl)}.kpi-card{display:grid;gap:var(--spacing-sm);padding:var(--spacing-lg);background-color:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.kpi-card__label,.kpi-title{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.6px;color:var(--color-text-muted)}.kpi-card__value,.kpi-value{font-size:var(--font-size-2xl);font-weight:700;line-height:var(--line-height-tight)}.kpi-card__delta{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);font-weight:600}.kpi-card__delta--up,.kpi-positive{color:var(--color-positive)}.kpi-card__delta--down,.kpi-negative{color:var(--color-negative)}.kpi-card__delta--neutral{color:var(--color-text-muted)}.kpi-card__hint{font-size:var(--font-size-xs);color:var(--color-text-muted)}.form-field{display:grid;gap:var(--spacing-xs)}.form-field__label{font-size:var(--font-size-xs);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.6px}.input,.select,.textarea{width:100%;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-bg-tertiary);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);font:inherit;transition:border-color .12s ease,box-shadow .12s ease}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-soft)}.input::placeholder,.textarea::placeholder{color:var(--color-text-disabled)}.btn,.button{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);font:inherit;font-weight:600;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn:focus-visible,.button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--color-accent-soft)}.btn--primary,.button{background:var(--color-accent);color:#fff}.btn--primary:hover,.button:hover{background:var(--color-accent-hover)}.btn--secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-border-strong)}.btn--secondary:hover{background:var(--color-surface-hover)}.btn--ghost{background:transparent;color:var(--color-text-secondary)}.btn--ghost:hover{background:var(--color-surface-hover);color:var(--color-text-primary)}.btn--excel{border:1px solid rgba(74,179,120,.35);background:#4ab37814;color:#4ab378d9}.btn--excel:hover:not(:disabled){background:#4ab37829;border-color:#4ab3788c;color:#4ab378}.btn[disabled],.button[disabled]{opacity:.5;cursor:not-allowed}
