app-fiscal-year-select{display:block;min-width:0}.fy-select{position:relative}.fy-select__trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;height:44px;padding:10px 14px;border:1px solid rgba(122,157,212,.22);border-radius:14px;background:#0a182cf2;color:var(--color-text-primary, #e8efff);font:inherit;text-align:left;cursor:pointer;box-sizing:border-box}.fy-select__trigger:focus-visible{outline:1px solid rgba(128,159,255,.55);border-color:#809fff66}.fy-select__value{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fy-select__chevron{color:#c8d7f0cc;font-size:12px;transition:transform .15s ease}.fy-select--open .fy-select__chevron{transform:rotate(180deg)}.fy-select__panel{position:absolute;z-index:60;top:calc(100% + 6px);left:0;min-width:100%;width:max-content;max-width:320px;padding:8px;border:1px solid rgba(122,157,212,.3);border-radius:12px;background:#0d1d38;box-shadow:0 14px 32px #00000073;box-sizing:border-box}.fy-select__option{display:grid;grid-template-columns:auto auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;color:#e3ecff;font-size:13px;cursor:pointer}.fy-select__option:hover{background:#2962ff2e}.fy-select__option input{width:16px;height:16px;margin:0;accent-color:#3d7bff;cursor:inherit}.fy-select__option--locked{cursor:not-allowed}.fy-select__option-label{font-weight:700}.fy-select__option-range{font-size:11px;color:#bed2f5b3}.fy-select__option-badge{padding:1px 7px;border-radius:999px;background:#ffc44d2e;color:#ffd479;font-size:10px;font-weight:700}.fy-select__hint{margin:6px 10px 2px;font-size:10px;color:#bed2f58c}table tbody tr.fy-group-row{cursor:pointer}table tbody tr.fy-group-row>td{background:linear-gradient(180deg,#1c3a6cfa,#162e58fa)!important;border-top:1px solid rgba(110,160,255,.35);color:#cfe0ff;font-weight:700}table tbody tr.fy-group-row>td.fy-group-row__subtotal{font-size:11px;color:#a9c4f2}.fy-group-row__toggle{display:flex;align-items:center;gap:10px;width:100%;height:100%;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}.fy-group-row__toggle:focus-visible{outline:2px solid rgba(128,159,255,.9);outline-offset:-2px}.fy-group-row__chevron{width:12px;color:#7fa8ff}.fy-group-row__label{font-size:13px;letter-spacing:.04em;color:#fff}.fy-group-row__range{font-size:11px;font-weight:500;color:#bed2f5b3}.fy-group-row__count{margin-left:auto;padding:2px 8px;border-radius:999px;background:#ffffff1a;font-size:10px;font-weight:700;color:#d9e6ff}table th.fy-boundary,table td.fy-boundary{border-left:2px solid rgba(255,196,77,.75)!important}.forecast-matrix__month-fy,.fy-month-tag{position:absolute;top:6px;right:8px;font-size:9px;font-weight:700;letter-spacing:.06em;color:#ffd678d9;white-space:nowrap}.budget-filter-group--fy{flex:0 0 auto;min-width:150px}.budget-filters .fy-select__trigger{height:34px;padding:4px 10px;border-radius:10px;font-size:12px}: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}
