@charset "UTF-8";@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-Regular-QLYNB5VI.ttf") format("truetype");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-Italic-XZHKSK6H.ttf") format("truetype");font-weight:400;font-style:italic;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-Medium-ZMYJGU7Y.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-MediumItalic-SLEQPMOL.ttf") format("truetype");font-weight:500;font-style:italic;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-SemiBold-C4OQBRX5.ttf") format("truetype");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-SemiBoldItalic-C3ZPPEUO.ttf") format("truetype");font-weight:600;font-style:italic;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-Bold-T4OZVS3T.ttf") format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Familjen Grotesk;src:url("./media/FamiljenGrotesk-BoldItalic-A4UIYR6Z.ttf") format("truetype");font-weight:700;font-style:italic;font-display:swap}:root{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--border-color: #334155;--text-primary: #e2e8f0;--text-secondary: #94a3b8;--text-muted: #64748b;--text-dim: #475569;--accent-blue: #3b82f6;--accent-blue-hover: #2563eb;--accent-blue-light: #93c5fd;--accent-green: #22c55e;--accent-red: #ef4444;--accent-amber: #f59e0b;--accent-purple: #8b5cf6;--sidebar-width: 260px;--topbar-height: 56px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 2px 6px rgba(0, 0, 0, .2);--shadow-md: 0 4px 12px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-glow-blue: 0 0 0 3px rgba(59, 130, 246, .25);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--bp-mobile: 768px;--bp-tablet: 1024px;--bp-desktop: 1280px}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;font-family:Familjen Grotesk,Segoe UI,system-ui,-apple-system,sans-serif;background:var(--bg-primary);color:var(--text-primary);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:var(--accent-blue);text-decoration:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-primary)}::-webkit-scrollbar-thumb{background:var(--bg-tertiary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-dim)}html{--mat-sys-background: #131316;--mat-sys-error: #ffb4ab;--mat-sys-error-container: #93000a;--mat-sys-inverse-on-surface: #303034;--mat-sys-inverse-primary: #343dff;--mat-sys-inverse-surface: #e5e1e6;--mat-sys-on-background: #e5e1e6;--mat-sys-on-error: #690005;--mat-sys-on-error-container: #ffdad6;--mat-sys-on-primary: #0001ac;--mat-sys-on-primary-container: #e0e0ff;--mat-sys-on-primary-fixed: #00006e;--mat-sys-on-primary-fixed-variant: #0000ef;--mat-sys-on-secondary: #2e2f42;--mat-sys-on-secondary-container: #e1e0f9;--mat-sys-on-secondary-fixed: #191a2c;--mat-sys-on-secondary-fixed-variant: #444559;--mat-sys-on-surface: #e5e1e6;--mat-sys-on-surface-variant: #e4e1ec;--mat-sys-on-tertiary: #42008a;--mat-sys-on-tertiary-container: #ecdcff;--mat-sys-on-tertiary-fixed: #270057;--mat-sys-on-tertiary-fixed-variant: #5f00c0;--mat-sys-outline: #91909a;--mat-sys-outline-variant: #46464f;--mat-sys-primary: #bec2ff;--mat-sys-primary-container: #0000ef;--mat-sys-primary-fixed: #e0e0ff;--mat-sys-primary-fixed-dim: #bec2ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #c5c4dd;--mat-sys-secondary-container: #444559;--mat-sys-secondary-fixed: #e1e0f9;--mat-sys-secondary-fixed-dim: #c5c4dd;--mat-sys-shadow: #000000;--mat-sys-surface: #131316;--mat-sys-surface-bright: #3a393c;--mat-sys-surface-container: #201f22;--mat-sys-surface-container-high: #2a292d;--mat-sys-surface-container-highest: #353438;--mat-sys-surface-container-low: #1b1b1f;--mat-sys-surface-container-lowest: #0e0e11;--mat-sys-surface-dim: #131316;--mat-sys-surface-tint: #bec2ff;--mat-sys-surface-variant: #46464f;--mat-sys-tertiary: #d5baff;--mat-sys-tertiary-container: #5f00c0;--mat-sys-tertiary-fixed: #ecdcff;--mat-sys-tertiary-fixed-dim: #d5baff;--mat-sys-neutral-variant20: #303038;--mat-sys-neutral10: #1b1b1f}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-body-large: 400 1rem / 1.5rem Familjen Grotesk;--mat-sys-body-large-font: Familjen Grotesk;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Familjen Grotesk;--mat-sys-body-medium-font: Familjen Grotesk;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Familjen Grotesk;--mat-sys-body-small-font: Familjen Grotesk;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Familjen Grotesk;--mat-sys-display-large-font: Familjen Grotesk;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Familjen Grotesk;--mat-sys-display-medium-font: Familjen Grotesk;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Familjen Grotesk;--mat-sys-display-small-font: Familjen Grotesk;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Familjen Grotesk;--mat-sys-headline-large-font: Familjen Grotesk;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Familjen Grotesk;--mat-sys-headline-medium-font: Familjen Grotesk;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Familjen Grotesk;--mat-sys-headline-small-font: Familjen Grotesk;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Familjen Grotesk;--mat-sys-label-large-font: Familjen Grotesk;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Familjen Grotesk;--mat-sys-label-medium-font: Familjen Grotesk;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Familjen Grotesk;--mat-sys-label-small-font: Familjen Grotesk;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Familjen Grotesk;--mat-sys-title-large-font: Familjen Grotesk;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Familjen Grotesk;--mat-sys-title-medium-font: Familjen Grotesk;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Familjen Grotesk;--mat-sys-title-small-font: Familjen Grotesk;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}.text-green{color:var(--accent-green)!important}.text-red{color:var(--accent-red)!important}.text-amber{color:var(--accent-amber)!important}.text-blue{color:var(--accent-blue)!important}.text-muted{color:var(--text-muted)!important}.text-right{text-align:right!important}.badge-sm{font-size:11px;padding:2px 8px;border-radius:4px;font-weight:500;letter-spacing:.2px}.badge-green{background:#22c55e26;color:var(--accent-green)}.badge-amber{background:#f59e0b26;color:var(--accent-amber)}.badge-blue{background:#3b82f626;color:var(--accent-blue)}.badge-red{background:#ef444426;color:var(--accent-red)}.card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),border-color var(--transition-base)}.card-title{font-size:16px;font-weight:600;margin-bottom:16px;color:var(--text-primary)}.btn{padding:8px 16px;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;border:1px solid var(--text-dim);background:var(--bg-tertiary);color:var(--text-primary);display:inline-flex;align-items:center;gap:6px;transition:background var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast)}.btn:hover{background:var(--text-dim);box-shadow:var(--shadow-xs)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--accent-blue);border-color:var(--accent-blue);color:#fff;box-shadow:0 2px 8px #3b82f640}.btn-primary:hover{background:var(--accent-blue-hover);border-color:var(--accent-blue-hover);box-shadow:0 4px 12px #3b82f659}.btn-danger{border-color:#ef444466}.btn-danger:hover{background:#ef444426;color:var(--accent-red);border-color:#ef444480}.btn-sm{padding:5px 12px;font-size:12px}.btn-xs{padding:4px 8px;font-size:12px}.btn-group{position:relative;display:inline-flex}.btn-group .btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0;border-right:none}.btn-group .btn-split{padding:8px 6px;border-top-left-radius:0;border-bottom-left-radius:0;border-left:1px solid rgba(255,255,255,.15);font-size:10px}.btn-group .btn-dropdown{display:none;position:absolute;top:100%;right:0;z-index:50;margin-top:4px;min-width:170px;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:6px;box-shadow:var(--shadow-md);padding:4px 0}.btn-group .btn-dropdown button{display:flex;align-items:center;gap:6px;width:100%;padding:8px 12px;border:none;background:none;color:var(--text-primary);font-size:13px;cursor:pointer;white-space:nowrap}.btn-group .btn-dropdown button:hover{background:#3b82f61f}.btn-group.open .btn-dropdown{display:block}.btn-group.open:before{content:"";position:fixed;inset:0;z-index:49}.kpi-card{background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:12px;padding:24px;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition-base),border-color var(--transition-base),transform var(--transition-base)}.kpi-card:hover{box-shadow:var(--shadow-md);border-color:var(--text-dim)}.kpi-card .kpi-label{font-size:13px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px}.kpi-card .kpi-value{font-size:28px;font-weight:700}.kpi-card .kpi-change{font-size:13px;margin-top:8px}.kpi-card .kpi-change.positive{color:var(--accent-green)}.kpi-card .kpi-change.negative{color:var(--accent-red)}.kpi-card .kpi-sub{font-size:12px;color:var(--text-muted);margin-top:4px}.kpi-card.highlight{border-color:var(--accent-blue);background:linear-gradient(135deg,rgba(59,130,246,.08),var(--bg-secondary))}.mini-table{width:100%;border-collapse:collapse}.mini-table th{text-align:left;padding:8px 12px;font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-color)}.mini-table td{padding:10px 12px;font-size:14px;border-bottom:1px solid rgba(51,65,85,.5)}.mini-table tr{transition:background var(--transition-fast)}.mini-table tr:last-child td{border-bottom:none}.snackbar-success .mdc-snackbar__surface,.snackbar-error .mdc-snackbar__surface,.snackbar-info .mdc-snackbar__surface,.snackbar-warn .mdc-snackbar__surface{border-radius:10px!important;box-shadow:0 6px 20px #00000040!important}.snackbar-success .mdc-snackbar__label,.snackbar-error .mdc-snackbar__label,.snackbar-info .mdc-snackbar__label,.snackbar-warn .mdc-snackbar__label{color:#fff!important;font-weight:500!important}.snackbar-success .mdc-snackbar__surface{background:#16a34a!important}.snackbar-success .mat-mdc-snack-bar-action{color:#dcfce7!important}.snackbar-error .mdc-snackbar__surface{background:#dc2626!important}.snackbar-error .mat-mdc-snack-bar-action{color:#fecaca!important}.snackbar-info .mdc-snackbar__surface{background:#2563eb!important}.snackbar-info .mat-mdc-snack-bar-action{color:#bfdbfe!important}.snackbar-warn .mdc-snackbar__surface{background:#d97706!important}.snackbar-warn .mat-mdc-snack-bar-action{color:#fef3c7!important}.mat-mdc-dialog-container .mdc-dialog__surface{background:var(--bg-secondary)!important;color:var(--text-primary)!important;border:1px solid var(--border-color);border-radius:12px!important;box-shadow:var(--shadow-lg)!important}.mat-mdc-dialog-title{color:var(--text-primary)!important}.mat-mdc-form-field{width:100%}.mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled){background-color:#0f172a99!important}.mat-mdc-form-field .mdc-text-field--filled:not(.mdc-text-field--disabled):hover{background-color:#0f172acc!important}.mat-mdc-form-field .mdc-line-ripple:before{border-bottom-color:#94a3b840!important}.mat-mdc-form-field .mdc-line-ripple:after{border-bottom-color:var(--accent-blue)!important}.mat-mdc-form-field .mat-mdc-floating-label{color:var(--text-secondary)!important}.mat-mdc-form-field.mat-focused .mat-mdc-floating-label{color:var(--accent-blue-light)!important}.mat-mdc-form-field .mat-mdc-input-element{color:var(--text-primary)!important;caret-color:var(--accent-blue)!important}.mat-mdc-select-panel{background:var(--bg-secondary)!important;border:1px solid var(--border-color);border-radius:8px!important}.mat-mdc-option{color:var(--text-primary)!important}.mat-mdc-option:hover:not(.mdc-list-item--disabled),.mat-mdc-option:focus:not(.mdc-list-item--disabled),.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled){background:#3b82f61f!important}.mat-mdc-option.mdc-list-item--selected:not(.mdc-list-item--disabled) .mdc-list-item__primary-text{color:var(--accent-blue-light)!important}.mat-mdc-checkbox .mdc-checkbox__background{border-color:var(--text-secondary)!important}.mat-mdc-checkbox.mat-mdc-checkbox-checked .mdc-checkbox__background{background-color:var(--accent-blue)!important;border-color:var(--accent-blue)!important}.mat-mdc-checkbox .mdc-label{color:var(--text-primary)}@media (max-width: 767px){.hide-mobile{display:none!important}}@media (max-width: 1023px){.hide-tablet{display:none!important}}@media (min-width: 768px){.show-mobile-only{display:none!important}}@media (max-width: 767px){.show-tablet-only{display:none!important}}@media (min-width: 1024px){.show-tablet-only{display:none!important}}@media (max-width: 767px){.full-width-mobile{width:100%!important}}.full-screen-dialog .mat-mdc-dialog-container .mdc-dialog__surface{border-radius:0!important;max-height:100vh!important;max-width:100vw!important}@media (max-width: 767px){.mat-mdc-dialog-container .mdc-dialog__surface{border-radius:8px!important}.kpi-card{padding:16px}.kpi-card .kpi-value{font-size:22px}.kpi-card .kpi-label{font-size:11px}.card{padding:16px;border-radius:10px}}.touch-target{min-width:44px;min-height:44px}@media (max-width: 767px){button,.btn,[role=button],a.nav-item{min-height:44px}a,button,input,select,textarea{touch-action:manipulation;-webkit-tap-highlight-color:transparent}}@keyframes skeleton-pulse{0%,to{opacity:.4}50%{opacity:.8}}@keyframes page-fade-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}router-outlet+*{animation:page-fade-in .25s ease-out both}.skeleton,.skeleton-cell,.skeleton-card,.skeleton-line{background:var(--bg-tertiary);border-radius:6px;animation:skeleton-pulse 1.5s ease-in-out infinite}.skeleton-line{height:14px;margin-bottom:10px}.skeleton-line.w-25{width:25%}.skeleton-line.w-50{width:50%}.skeleton-line.w-75{width:75%}.skeleton-line.w-100{width:100%}.skeleton-card{height:80px}.skeleton-row{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid rgba(51,65,85,.3)}.skeleton-cell{height:14px;flex:1}.loading-state,.error-state,.empty-state{padding:2rem;text-align:center;color:var(--text-muted);font-size:.9rem}.error-state{color:var(--accent-red)}
