:root{--bd-royal: #4169e1;--bd-royal-deep: #1b3cb0;--bd-teal: var(--bd-royal);--bd-navy: #0b1433;--bd-ink: #161925;--bd-ink-soft: #505364;--bd-primary: var(--mat-sys-primary, #4169e1);--bd-glass: rgb(255 255 255 / 70%);--bd-glass-strong: rgb(255 255 255 / 86%);--bd-glass-dark: rgb(11 20 51 / 64%);--bd-stroke: rgb(255 255 255 / 58%);--bd-stroke-dark: rgb(255 255 255 / 16%);--bd-blur: 18px;--bd-radius: 1.15rem;--bd-shadow: 0 12px 32px rgb(17 28 72 / 10%);--bd-shadow-lg: 0 22px 50px rgb(17 28 72 / 16%);--bd-focus: 0 0 0 3px rgb(65 105 225 / 32%)}html{color-scheme:light;--mat-sys-background: #fcf8fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f3eff4;--mat-sys-inverse-primary: #bdd0fb;--mat-sys-inverse-surface: #303034;--mat-sys-on-background: #1b1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #1b3cb0;--mat-sys-on-primary-fixed: #00124a;--mat-sys-on-primary-fixed-variant: #1b3cb0;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #444559;--mat-sys-on-secondary-fixed: #191a2c;--mat-sys-on-secondary-fixed-variant: #444559;--mat-sys-on-surface: #1b1b1f;--mat-sys-on-surface-variant: #46464f;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #00458f;--mat-sys-on-tertiary-fixed: #001b3f;--mat-sys-on-tertiary-fixed-variant: #00458f;--mat-sys-outline: #777680;--mat-sys-outline-variant: #c7c5d0;--mat-sys-primary: #4169e1;--mat-sys-primary-container: #dee7fd;--mat-sys-primary-fixed: #dee7fd;--mat-sys-primary-fixed-dim: #bdd0fb;--mat-sys-scrim: #000000;--mat-sys-secondary: #5c5d72;--mat-sys-secondary-container: #e1e0f9;--mat-sys-secondary-fixed: #e1e0f9;--mat-sys-secondary-fixed-dim: #c5c4dd;--mat-sys-shadow: #000000;--mat-sys-surface: #fcf8fd;--mat-sys-surface-bright: #fcf8fd;--mat-sys-surface-container: #f0edf1;--mat-sys-surface-container-high: #ebe7eb;--mat-sys-surface-container-highest: #e5e1e6;--mat-sys-surface-container-low: #f6f2f7;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dcd9dd;--mat-sys-surface-tint: #4169e1;--mat-sys-surface-variant: #e4e1ec;--mat-sys-tertiary: #005cbb;--mat-sys-tertiary-container: #d7e3ff;--mat-sys-tertiary-fixed: #d7e3ff;--mat-sys-tertiary-fixed-dim: #abc7ff;--mat-sys-neutral-variant20: #303038;--mat-sys-neutral10: #1b1b1f;--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);--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);--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);--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);--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);--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);--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--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 Roboto;--mat-sys-body-medium-font: Roboto;--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 Roboto;--mat-sys-body-small-font: Roboto;--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 Roboto;--mat-sys-display-large-font: Roboto;--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 Roboto;--mat-sys-display-medium-font: Roboto;--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 Roboto;--mat-sys-display-small-font: Roboto;--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 Roboto;--mat-sys-headline-large-font: Roboto;--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 Roboto;--mat-sys-headline-medium-font: Roboto;--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 Roboto;--mat-sys-headline-small-font: Roboto;--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 Roboto;--mat-sys-label-large-font: Roboto;--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 Roboto;--mat-sys-label-medium-font: Roboto;--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 Roboto;--mat-sys-label-small-font: Roboto;--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 Roboto;--mat-sys-title-large-font: Roboto;--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 Roboto;--mat-sys-title-medium-font: Roboto;--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 Roboto;--mat-sys-title-small-font: Roboto;--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;--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;--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;--mat-button-filled-container-shape: 14px;--mat-button-filled-container-color: var(--bd-royal);--mat-button-filled-label-text-color: #ffffff;--mat-button-protected-container-shape: 14px;--mat-button-protected-container-color: var(--bd-royal);--mat-button-protected-label-text-color: #ffffff;--mat-button-outlined-container-shape: 14px;--mat-button-outlined-outline-color: rgba(65, 105, 225, .28);--mat-button-outlined-label-text-color: var(--bd-royal-deep);--mat-button-text-container-shape: 14px;--mat-button-tonal-container-shape: 14px;--mat-card-elevated-container-color: rgba(255, 255, 255, .62);--mat-card-elevated-container-shape: 20px;--mat-card-elevated-container-elevation: 0 12px 32px rgba(17, 28, 72, .1);--mat-card-outlined-container-color: rgba(255, 255, 255, .52);--mat-card-outlined-container-shape: 20px;--mat-card-outlined-outline-color: rgba(255, 255, 255, .55);--mat-card-filled-container-color: rgba(255, 255, 255, .46);--mat-card-filled-container-shape: 20px;--mat-toolbar-container-background-color: rgba(255, 255, 255, .56);--mat-toolbar-container-text-color: var(--bd-ink);--mat-sidenav-container-width: 272px;--mat-sidenav-container-shape: 0;--mat-sidenav-container-background-color: transparent;--mat-sidenav-container-text-color: #f4f7ff;--mat-sidenav-container-divider-color: transparent;--mat-sidenav-container-elevation-shadow: none;--mat-sidenav-content-background-color: transparent;--mat-form-field-outlined-container-shape: 14px;--mat-form-field-outlined-outline-color: rgba(65, 105, 225, .22);--mat-form-field-outlined-focus-outline-color: var(--bd-royal);--mat-dialog-container-shape: 20px;--mat-dialog-container-color: rgba(255, 255, 255, .86)}body{margin:0;color:var(--bd-ink);font:var(--mat-sys-body-large);background-color:#dce4f7;background-image:radial-gradient(42rem 28rem at 8% -8%,rgba(125,160,245,.48),transparent 58%),radial-gradient(36rem 24rem at 96% 6%,rgba(65,105,225,.24),transparent 55%),radial-gradient(28rem 22rem at 72% 108%,rgba(27,60,176,.16),transparent 60%),linear-gradient(165deg,#eef2ff,#dce6f8 48%,#d4def4);background-attachment:fixed;min-height:100%}*{box-sizing:border-box}a{color:inherit}:focus-visible{outline:none;box-shadow:var(--bd-focus);border-radius:.6rem}.w-full{width:100%}.page{padding:1.25rem;max-width:1280px;margin:0 auto}.glass,.card,.auth-card,.mat-mdc-card{background:var(--bd-glass);border:1px solid var(--bd-stroke);border-radius:var(--bd-radius);box-shadow:var(--bd-shadow);backdrop-filter:blur(var(--bd-blur)) saturate(1.35);-webkit-backdrop-filter:blur(var(--bd-blur)) saturate(1.35)}.card{padding:1.25rem;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.card:hover{background:var(--bd-glass-strong);box-shadow:var(--bd-shadow-lg)}.grid-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;align-items:stretch}@media(max-width:1100px){.grid-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:640px){.grid-stats{grid-template-columns:minmax(0,1fr)}}.stack{display:flex;flex-direction:column;gap:1rem}.row{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.data-table{width:100%;border-collapse:collapse}.data-table th,.data-table td{text-align:left;padding:.8rem .65rem;border-bottom:1px solid rgba(65,105,225,.1);font-size:.92rem}.data-table th{color:var(--bd-ink-soft);font-weight:650;font-size:.75rem;text-transform:uppercase;letter-spacing:.04em}.data-table tbody tr{transition:background .14s ease}.data-table tbody tr:hover{background:#ffffff6b}.badge{display:inline-flex;align-items:center;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:650;border:1px solid rgba(255,255,255,.45);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.badge-ok{background:#baf5dcb3;color:#0a5c3b}.badge-warn{background:#ffe8b0bd;color:#7a4e00}.badge-off{background:#eceff7b8;color:#3d4f56}.badge-danger{background:#ffd6d2c2;color:#8c1818}.auth-shell{min-height:100%;display:grid;place-items:center;padding:1.5rem;background-color:#0b1433;background-image:radial-gradient(28rem 20rem at 12% 10%,rgba(125,160,245,.36),transparent 58%),radial-gradient(24rem 18rem at 90% 18%,rgba(65,105,225,.32),transparent 55%),linear-gradient(160deg,#081028,#142056 48%,#1b3cb0)}.auth-card{width:min(440px,100%);padding:2rem 1.6rem 1.6rem;box-shadow:var(--bd-shadow-lg)}.auth-card h1{margin:.2rem 0 .35rem;font-size:1.6rem;color:var(--bd-ink)}.auth-card p.lead{margin:0 0 1.4rem;color:var(--bd-ink-soft)}.auth-card .mat-mdc-unelevated-button,.auth-card .mat-mdc-raised-button{width:100%;height:44px}.brand-mark{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(160deg,#7a9cf5,#4169e1);color:#fff;font-weight:800;box-shadow:0 8px 20px #4169e152}.clickable{cursor:pointer}.clickable:hover{background:#fff6}input.w-full:not([matinput]){min-height:44px;border-radius:12px;border:1px solid rgba(65,105,225,.18);background:#ffffffb3;padding:.65rem .85rem;font:inherit;color:var(--bd-ink)}.mat-toolbar,.mat-mdc-toolbar{backdrop-filter:blur(16px) saturate(1.3);-webkit-backdrop-filter:blur(16px) saturate(1.3);border-bottom:1px solid var(--bd-stroke);box-shadow:none}.mat-sidenav,.mat-drawer{background:var(--bd-glass-dark);border-right:1px solid var(--bd-stroke-dark);backdrop-filter:blur(20px) saturate(1.4);-webkit-backdrop-filter:blur(20px) saturate(1.4);color:#f4f7ff}.mat-drawer-container{background:transparent}.mat-mdc-raised-button,.mat-mdc-unelevated-button{min-height:44px;box-shadow:0 10px 22px #4169e138}.mat-mdc-dialog-container .mdc-dialog__surface,.glass-dialog .mdc-dialog__surface{background:var(--bd-glass-strong)!important;backdrop-filter:blur(20px) saturate(1.3);-webkit-backdrop-filter:blur(20px) saturate(1.3);border:1px solid var(--bd-stroke);box-shadow:var(--bd-shadow-lg)!important}.mat-mdc-snack-bar-container{--mdc-snackbar-container-color: rgb(11 20 51 / 90%)}@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){.glass,.card,.auth-card,.mat-mdc-card,.mat-mdc-dialog-container .mdc-dialog__surface{background:#f5f7ff}.mat-sidenav,.mat-drawer{background:#142056}}@media(max-width:720px){:root{--bd-glass: rgb(255 255 255 / 84%);--bd-blur: 12px}.page{padding:1rem}.card:hover{transform:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.card,.glass,.auth-card,.mat-mdc-card,.mat-toolbar,.mat-sidenav,.mat-drawer{backdrop-filter:none;-webkit-backdrop-filter:none}.card,.glass,.auth-card{background:#f4f6ff}}:root{--bd-royal: #6366f1;--bd-royal-deep: #4f46e5;--bd-navy: #1e1b4b;--bd-ink: #1e1b4b;--bd-ink-soft: rgb(99 102 241 / 60%);--bd-label: rgb(99 102 241 / 60%);--bd-primary: #6366f1;--bd-success: #0f8662;--bd-mint: #6ee7b7;--bd-danger: #ff8a80;--bd-gold: #fcd34d;--bd-surface: #eef2ff;--bd-stroke: rgb(255 255 255 / 70%);--bd-stroke-field: rgb(255 255 255 / 70%);--bd-glass: #ffffff;--bd-glass-strong: #ffffff;--bd-glass-dark: #6366f1;--bd-stroke-dark: rgb(30 27 75 / 13%);--bd-blur: 0px;--bd-radius: 24px;--bd-radius-xl: 20px;--bd-shadow: 0 8px 10px rgb(15 23 42 / 8%);--bd-shadow-lg: 0 8px 10px rgb(15 23 42 / 8%);--bd-focus: 0 0 0 3px rgb(99 102 241 / 28%);--bd-btn-shadow: 0 8px 10px rgb(15 23 42 / 8%)}html{color-scheme:light;font-family:Manrope,Roboto,sans-serif;--mat-sys-background: #fef8fc;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f5eff4;--mat-sys-inverse-primary: #e0e7ff;--mat-sys-inverse-surface: #323033;--mat-sys-on-background: #1d1b1e;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #4338ca;--mat-sys-on-primary-fixed: #1e1b4b;--mat-sys-on-primary-fixed-variant: #4338ca;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #4b4357;--mat-sys-on-secondary-fixed: #1f182a;--mat-sys-on-secondary-fixed-variant: #4b4357;--mat-sys-on-surface: #1d1b1e;--mat-sys-on-surface-variant: #49454e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #494900;--mat-sys-on-tertiary-fixed: #1d1d00;--mat-sys-on-tertiary-fixed-variant: #494900;--mat-sys-outline: #7b757f;--mat-sys-outline-variant: #cbc4cf;--mat-sys-primary: #6366f1;--mat-sys-primary-container: #eef2ff;--mat-sys-primary-fixed: #eef2ff;--mat-sys-primary-fixed-dim: #e0e7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #645b70;--mat-sys-secondary-container: #eadef7;--mat-sys-secondary-fixed: #eadef7;--mat-sys-secondary-fixed-dim: #cec2db;--mat-sys-shadow: #000000;--mat-sys-surface: #fef8fc;--mat-sys-surface-bright: #fef8fc;--mat-sys-surface-container: #f2ecf1;--mat-sys-surface-container-high: #ede6eb;--mat-sys-surface-container-highest: #e6e1e6;--mat-sys-surface-container-low: #f8f2f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #ded8dd;--mat-sys-surface-tint: #6366f1;--mat-sys-surface-variant: #e8e0eb;--mat-sys-tertiary: #626200;--mat-sys-tertiary-container: #eaea00;--mat-sys-tertiary-fixed: #eaea00;--mat-sys-tertiary-fixed-dim: #cdcd00;--mat-sys-neutral-variant20: #332f37;--mat-sys-neutral10: #1d1b1e;--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);--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);--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);--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);--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);--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);--mat-sys-body-large: 400 1rem / 1.5rem Manrope;--mat-sys-body-large-font: Manrope;--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 Manrope;--mat-sys-body-medium-font: Manrope;--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 Manrope;--mat-sys-body-small-font: Manrope;--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 Manrope;--mat-sys-display-large-font: Manrope;--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 Manrope;--mat-sys-display-medium-font: Manrope;--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 Manrope;--mat-sys-display-small-font: Manrope;--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 Manrope;--mat-sys-headline-large-font: Manrope;--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 Manrope;--mat-sys-headline-medium-font: Manrope;--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 Manrope;--mat-sys-headline-small-font: Manrope;--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 Manrope;--mat-sys-label-large-font: Manrope;--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 Manrope;--mat-sys-label-medium-font: Manrope;--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 Manrope;--mat-sys-label-small-font: Manrope;--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 Manrope;--mat-sys-title-large-font: Manrope;--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 Manrope;--mat-sys-title-medium-font: Manrope;--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 Manrope;--mat-sys-title-small-font: Manrope;--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;--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;--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;--mat-button-filled-container-shape: 999px;--mat-button-filled-container-color: #6366f1;--mat-button-filled-label-text-color: #ffffff;--mat-button-protected-container-shape: 999px;--mat-button-protected-container-color: #6366f1;--mat-button-protected-label-text-color: #ffffff;--mat-button-outlined-container-shape: 16px;--mat-button-outlined-outline-color: rgba(99, 102, 241, .22);--mat-button-outlined-label-text-color: #1e1b4b;--mat-button-text-container-shape: 16px;--mat-button-tonal-container-shape: 16px;--mat-card-elevated-container-color: #ffffff;--mat-card-elevated-container-shape: 24px;--mat-card-elevated-container-elevation: 0 8px 10px rgba(15, 23, 42, .08);--mat-card-outlined-container-color: #ffffff;--mat-card-outlined-container-shape: 24px;--mat-card-outlined-outline-color: rgba(255, 255, 255, .7);--mat-card-filled-container-color: #ffffff;--mat-card-filled-container-shape: 24px;--mat-toolbar-container-background-color: transparent;--mat-toolbar-container-text-color: #1e1b4b;--mat-form-field-outlined-container-shape: 16px;--mat-form-field-outlined-outline-color: rgba(199, 210, 254, .9);--mat-form-field-outlined-hover-outline-color: #6366f1;--mat-form-field-outlined-focus-outline-color: #6366f1;--mat-form-field-outlined-input-text-color: #1e1b4b;--mat-form-field-outlined-label-text-color: rgba(99, 102, 241, .7);--mat-form-field-outlined-focus-label-text-color: #6366f1}html,body{height:100%}body{margin:0;color:var(--bd-ink);font-family:Manrope,Roboto,sans-serif;background:#eef2ff;background-image:none;min-height:100%}.page{padding:20px;max-width:480px;margin:0 auto}.card,.glass,.auth-card,.mat-mdc-card{background:#fff!important;border:2px solid rgba(255,255,255,.7)!important;border-radius:24px!important;box-shadow:0 8px 10px #0f172a14;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--bd-ink)}.card{padding:24px}.card:hover{background:#fff!important;box-shadow:0 8px 10px #0f172a14;transform:none}.stack{display:flex;flex-direction:column;gap:20px}.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.muted{color:var(--bd-ink-soft)}.badge{display:inline-flex;align-items:center;padding:8px 16px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;border:2px solid rgba(255,255,255,.7);-webkit-backdrop-filter:none;backdrop-filter:none}.badge-ok{background:#6ee7b7;color:#1e1b4b}.badge-off,.badge-danger{background:#ff8a801f;color:#ff8a80}.mat-mdc-unelevated-button,.mat-mdc-raised-button{min-height:52px;box-shadow:var(--bd-btn-shadow)!important}.w-btn-primary.mat-mdc-unelevated-button,.w-btn-primary{width:100%;min-height:52px!important;border-radius:999px!important;background:#6366f1!important;border:2.5px solid rgba(255,255,255,.7)!important;box-shadow:var(--bd-btn-shadow)!important;font-size:16px;font-weight:800}.w-btn-ghost{width:100%;min-height:50px!important;border-radius:16px!important;background:#fff!important;border:2px solid rgba(255,255,255,.7)!important;color:#1e1b4b!important;box-shadow:0 8px 10px #0f172a14!important;font-size:15px;font-weight:700;text-decoration:none;cursor:pointer;box-sizing:border-box}.auth-shell{min-height:100dvh;display:flex;flex-direction:column;gap:20px;background:#eef2ff;padding:20px}.auth-card{width:min(440px,100%);margin:0 auto;padding:24px;display:flex;flex-direction:column;gap:24px}.w-brand{display:flex;flex-direction:column;align-items:center;gap:16px;padding-top:20px}.w-brand-logo{width:120px;height:90px;object-fit:contain}.w-pill{display:inline-flex;align-items:center;padding:8px 16px;border-radius:999px;background:#fff;border:2px solid rgba(255,255,255,.7);color:#6366f1;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.w-title{margin:0;font-size:24px;font-weight:800;line-height:1.2;color:#1e1b4b;text-align:center}.w-sub{margin:8px 0 0;font-size:14px;font-weight:500;line-height:20px;color:#6366f199;text-align:center}.w-title-left,.w-page-title{margin:0;font-size:24px;font-weight:800;line-height:1.2;color:#1e1b4b;text-align:left}.w-sub-left{margin:8px 0 0;font-size:14px;font-weight:500;line-height:20px;color:#6366f199;text-align:left}.w-kicker{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6366f199}.w-link{display:block;text-align:center;font-size:14px;font-weight:600;color:#6366f1;text-decoration:none}.w-help{margin:0;text-align:center;font-size:14px;font-weight:500;line-height:20px;color:#6366f199}.w-field .mat-mdc-form-field{width:100%}.w-field .mat-mdc-text-field-wrapper,.w-field .mdc-text-field--outlined{background:#fff;border-radius:16px;box-shadow:inset 0 4px 8px #00000008}.w-field .mat-mdc-form-field-infix{min-height:50px;padding-top:12px;padding-bottom:12px}.w-field .mat-mdc-form-field-subscript-wrapper:not(:has(mat-error)):not(:has(mat-hint)){display:none}.pwa-shell{min-height:100dvh;padding-bottom:6.5rem;background:#eef2ff}.pwa-shell-flow{padding-bottom:0}.w-page-nav{display:grid;grid-template-columns:40px 1fr 40px;align-items:center;gap:8px}.w-page-nav .w-page-title{margin:0;text-align:center}.w-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:#fff;border:2px solid rgba(255,255,255,.7);box-shadow:0 8px 10px #0f172a14;flex-shrink:0}.w-icon-btn img{width:20px;height:20px;display:block}.w-icon-btn-spacer{visibility:hidden;pointer-events:none;box-shadow:none;border-color:transparent;background:transparent}.w-app-header{display:flex;align-items:center;gap:12px;padding:12px 20px}.w-app-titles{min-width:0}.w-app-title{margin:0;font-size:18px;font-weight:800;color:#1e1b4b}.w-app-sub{margin:2px 0 0;font-size:12px;font-weight:600;color:#6366f199;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-btn-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.w-btn-row .w-btn-ghost,.w-btn-row app-button button{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%}.w-btn-row .w-btn-ghost img,.w-btn-row app-button img{width:18px;height:18px}.w-btn-danger{color:#ff8a80!important}.w-detail-card{display:flex;flex-direction:column;gap:16px;padding:24px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 8px 10px #0f172a14}.w-detail-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.w-divider{width:100%;margin:0;border:0;border-top:1px solid rgba(99,102,241,.16)}.w-detail-label{margin:0;font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6366f199}.w-detail-value{margin:4px 0 0;font-size:16px;font-weight:700;color:#1e1b4b;word-break:break-word}.w-detail-note{font-weight:600;line-height:1.4}.w-detail-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.w-detail-row span{font-size:13px;color:#6366f199}.w-detail-row strong{font-size:14px;font-weight:700;color:#1e1b4b}.w-detail-row strong.amount{font-size:18px;font-weight:800}.w-detail-row strong.ok{color:#0f8662}.bottom-nav{position:fixed;left:16px;right:16px;bottom:calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:repeat(4,minmax(0,1fr));align-items:center;gap:4px;height:72px;padding:6px 8px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:32px;box-shadow:0 8px 10px #0f172a14;backdrop-filter:none;-webkit-backdrop-filter:none}.bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;min-height:52px;padding:6px 4px;border-radius:16px;text-decoration:none;font-size:11px;font-weight:800;color:#6366f1}.bottom-nav a span{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.1}.bottom-nav a.active{background:#6366f1;border:2px solid rgba(255,255,255,.7);color:#fff}.bottom-nav img{width:20px;height:20px;display:block;flex-shrink:0}.bottom-nav a.active img{filter:brightness(0) invert(1)}.w-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.w-greeting p{margin:0;font-size:14px;font-weight:500;color:#6366f199}.w-greeting h1{margin:2px 0 0;font-size:24px;font-weight:800;color:#1e1b4b}.w-avatar{width:48px;height:48px;border-radius:999px;display:grid;place-items:center;background:#6ee7b7;border:2.5px solid rgba(255,255,255,.7);box-shadow:0 8px 10px #0f172a14;color:#1e1b4b;font-size:18px;font-weight:800;flex-shrink:0}.w-avatar-lg{width:96px;height:96px;font-size:32px;background:#fcd34d}.w-event{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;border-radius:999px;background:#fff;border:2px solid rgba(255,255,255,.7)}.w-event img{width:20px;height:20px;flex-shrink:0}.w-event span,.w-event strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:16px;font-weight:700;color:#1e1b4b}.w-qr-card{display:flex;flex-direction:column;gap:16px;padding:24px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 8px 10px #0f172a14;text-align:center}.w-qr-card .w-kicker{text-align:center}.qr-wrap,.w-qr-holder{display:grid;place-items:center;padding:20px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:20px}.qr-wrap img,.w-qr-holder img{width:min(180px,62vw);height:auto;background:#fff}.w-qr-card p{margin:0;font-size:16px;font-weight:700;color:#1e1b4b}.w-balance{display:flex;flex-direction:column;gap:12px;padding:20px;border-radius:24px;background:linear-gradient(90deg,#6366f1,#818cf8);border:2px solid rgba(255,255,255,.7);box-shadow:0 8px 10px #0f172a14;color:#fff;text-decoration:none}.w-balance-head{display:flex;align-items:center;justify-content:space-between}.w-balance-head span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#fff9}.w-balance-head img{width:20px;height:20px;filter:brightness(0) invert(1)}.w-balance strong{font-size:36px;font-weight:800;line-height:1.1}.w-balance p{margin:0;font-size:14px;color:#fff9}.w-progress{width:100%;height:10px;border-radius:999px;overflow:hidden;background:#1e1b4b40}.w-progress>span{display:block;height:100%;background:#6ee7b7;border-radius:inherit}.w-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;padding:20px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 8px 10px #0f172a14}.w-summary div{display:flex;flex-direction:column;gap:4px;min-width:0}.w-summary span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6366f199}.w-summary strong{font-size:16px;font-weight:700;color:#1e1b4b}.w-summary strong.consumed{color:#ff8a80}.w-summary strong.ok{color:#0f8662}.w-tx{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 8px 10px #0f172a14;text-decoration:none;color:inherit;cursor:pointer}.w-tx.muted{opacity:.62}.w-tx-left{display:flex;align-items:center;gap:12px;min-width:0}.w-tx-icon{width:40px;height:40px;border-radius:12px;background:#818cf8;border:1.5px solid rgba(255,255,255,.7);display:grid;place-items:center;flex-shrink:0}.w-tx-icon img{width:20px;height:20px;filter:brightness(0) invert(1)}.w-tx-info{display:flex;flex-direction:column;gap:2px;min-width:0}.w-tx-info strong{font-size:16px;font-weight:700;color:#1e1b4b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-tx-info span{font-size:12px;font-weight:500;color:#6366f199}.w-tx-note{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.w-tx-right{display:flex;align-items:center;gap:4px;flex-shrink:0}.w-tx-right img{width:16px;height:16px;opacity:.45}.w-tx-amount{font-size:16px;font-weight:700;color:#1e1b4b;white-space:nowrap}.w-profile{display:flex;flex-direction:column;align-items:center;gap:12px;padding-top:4px;text-align:center}.w-profile h1{margin:0;font-size:22px;font-weight:800;color:#1e1b4b}.w-profile p{margin:4px 0 0;font-size:16px;font-weight:700;color:#6366f199}.w-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:24px;box-shadow:0 8px 10px #0f172a14}.w-meta div{display:flex;flex-direction:column;gap:2px}.w-meta span{font-size:12px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#6366f199}.w-meta strong{font-size:16px;font-weight:700;color:#1e1b4b}.w-meta strong.ok{color:#0f8662}.w-menu{display:flex;flex-direction:column;gap:10px}.w-menu-card{padding:16px;background:#fff;border:2px solid rgba(255,255,255,.7);border-radius:20px;box-shadow:0 8px 10px #0f172a14}.w-menu-head{display:flex;align-items:center;gap:12px;margin-bottom:16px}.w-menu-icon{width:36px;height:36px;border-radius:10px;background:#6366f11a;display:grid;place-items:center;flex-shrink:0}.w-menu-icon img{width:20px;height:20px}.w-menu-head p,.w-menu-head strong{margin:0;font-size:16px;font-weight:700;color:#1e1b4b}.w-logout{display:flex;align-items:center;gap:12px;width:100%;padding:16px;border:2px solid rgba(255,255,255,.7);border-radius:20px;background:#fff;box-shadow:0 8px 10px #0f172a14;color:#ff8a80;font-size:16px;font-weight:700;cursor:pointer;text-align:left}.w-logout>img:last-child{margin-left:auto}.w-logout .w-menu-icon{background:#ff8a801a}.w-notice{display:flex;gap:8px;align-items:flex-start;padding:16px;border-radius:20px;background:#fff;border:2px solid rgba(255,255,255,.7)}.w-notice img{width:20px;height:20px;flex-shrink:0;margin-top:9px}.w-notice p{margin:0;font-size:13px;line-height:19px;color:#6366f1b3}.w-back{display:inline-flex;align-items:center;gap:8px;color:#1e1b4b;font-size:16px;font-weight:700;text-decoration:none}.w-back img{width:24px;height:24px}@media(prefers-reduced-motion:reduce){.bottom-nav,.qr-wrap,.card,.auth-card{-webkit-backdrop-filter:none;backdrop-filter:none;background:#fff}}
