@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--color-primary: #2563eb;--color-primary-dark: #1d4ed8;--color-primary-light: #eff6ff;--color-success: #16a34a;--color-success-light: #f0fdf4;--color-warning: #ea580c;--color-warning-light: #fff7ed;--color-danger: #dc2626;--color-danger-light: #fef2f2;--color-info: #0891b2;--color-info-light: #ecfeff;--color-success-dark: #15803d;--color-success-border: #bbf7d0;--color-warning-dark: #c2410c;--color-warning-border: #fdba74;--color-danger-dark: #b91c1c;--color-danger-border: #fecaca;--color-info-border: #bae6fd;--color-primary-border: #bfdbfe;--color-pending: #d97706;--color-pending-light: #fef3c7;--color-accent: #6d28d9;--color-accent-light: #ede9fe;--color-text: #0f172a;--color-text-secondary:#334155;--color-text-body: #475569;--color-text-muted: #64748b;--color-text-subtle: #94a3b8;--color-border: #e2e8f0;--color-border-strong: #cbd5e1;--color-border-focus: #93c5fd;--color-bg: #f1f5f9;--color-surface: #ffffff;--color-surface-alt: #f8fafc;--sidebar-width: 280px;--sidebar-bg: #1e293b;--sidebar-header-bg: #0f172a;--sidebar-accent: #3b82f6;--font-family: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 20px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0,0,0,.05);--shadow-sm: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-md: 0 4px 6px -1px rgba(0,0,0,.07), 0 2px 4px -1px rgba(0,0,0,.04);--shadow-lg: 0 10px 15px -3px rgba(0,0,0,.08), 0 4px 6px -2px rgba(0,0,0,.03);--shadow-xl: 0 20px 25px -5px rgba(0,0,0,.1), 0 10px 10px -5px rgba(0,0,0,.04);--focus-ring: 0 0 0 3px rgba(37,99,235,.15);--ease-out: cubic-bezier(.23, 1, .32, 1);--ease-in-out: cubic-bezier(.77, 0, .175, 1);--ease-drawer: cubic-bezier(.32, .72, 0, 1);--transition-fast: .15s ease;--transition-normal: .25s ease}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;font-family:var(--font-family);font-size:var(--font-size-base);color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5}#root{min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0;font-weight:700;line-height:1.25;color:var(--color-text)}p{margin:0}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}@media (hover: hover) and (pointer: fine){a:hover{color:var(--color-primary-dark)}}.icon-primary{color:var(--color-primary)}.icon-primary-dark{color:var(--color-primary-dark)}.icon-success{color:var(--color-success)}.icon-danger{color:var(--color-danger)}.icon-accent{color:var(--color-accent)}.icon-muted{color:var(--color-text-body)}button{font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;border:none;outline:none;transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease,opacity .15s ease,scale .16s var(--ease-out)}button:active:not(:disabled){scale:.97}button:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}button:disabled{opacity:.5;cursor:not-allowed}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:500;font-size:var(--font-size-sm);border:1px solid transparent;cursor:pointer}.btn-primary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}@media (hover: hover) and (pointer: fine){.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);border-color:var(--color-primary-dark);box-shadow:0 2px 8px #2563eb4d}}.btn-secondary{background:var(--color-surface);color:var(--color-text);border-color:var(--color-border)}@media (hover: hover) and (pointer: fine){.btn-secondary:hover:not(:disabled){background:var(--color-surface-alt);border-color:var(--color-text-muted)}}.btn-danger{background:var(--color-danger);color:#fff;border-color:var(--color-danger)}@media (hover: hover) and (pointer: fine){.btn-danger:hover:not(:disabled){background:var(--color-danger-dark);box-shadow:0 2px 8px #dc26264d}}input,select,textarea{font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);transition:border-color .15s ease,box-shadow .15s ease,background-color .15s ease;width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-border-focus);box-shadow:0 0 0 3px #93c5fd4d}input::placeholder,textarea::placeholder{color:var(--color-text-subtle)}input:disabled,select:disabled,textarea:disabled{background:var(--color-surface-alt);color:var(--color-text-muted);cursor:not-allowed}input:user-invalid,select:user-invalid,textarea:user-invalid{border-color:var(--color-danger)}input:user-invalid:focus,select:user-invalid:focus,textarea:user-invalid:focus{border-color:var(--color-danger);box-shadow:0 0 0 3px #dc262626}textarea{resize:vertical}input[type=checkbox],input[type=radio]{width:auto;padding:0;accent-color:var(--color-primary);cursor:pointer}input[type=number]{font-variant-numeric:tabular-nums}@media (pointer: coarse){input:not([type=checkbox]):not([type=radio]):not([type=range]),select,textarea{font-size:16px!important}}.card{background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-border);padding:var(--space-6)}.badge{display:inline-flex;align-items:center;padding:2px var(--space-2);border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;white-space:nowrap}.badge-success{background:var(--color-success-light);color:var(--color-success)}.badge-warning{background:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background:var(--color-danger-light);color:var(--color-danger)}.badge-info{background:var(--color-info-light);color:var(--color-info)}.badge-neutral{background:#f1f5f9;color:var(--color-text-muted)}.finance-table{width:100%;border-collapse:collapse;font-size:var(--font-size-sm)}.finance-table th{padding:var(--space-3) var(--space-4);text-align:left;font-weight:600;font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);background:var(--color-surface-alt);border-bottom:1px solid var(--color-border)}.finance-table td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border);vertical-align:middle}.finance-table tr:last-child td{border-bottom:none}@media (hover: hover) and (pointer: fine){.finance-table tr:hover td{background:var(--color-surface-alt)}}.page-content{padding:var(--space-8) var(--space-6);max-width:1400px}.page-title{font-size:var(--font-size-2xl);font-weight:800;color:var(--color-text);margin-bottom:var(--space-6);letter-spacing:-.5px}.text-muted{color:var(--color-text-muted)}.text-success{color:var(--color-success)}.text-danger{color:var(--color-danger)}.text-warning{color:var(--color-warning)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding:var(--space-5);background:#0f172a8c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;animation:overlayIn .18s var(--ease-out)}.modal-content{background:var(--color-surface);padding:var(--space-6);border-radius:var(--radius-xl);width:100%;max-width:550px;max-height:90vh;overflow-y:auto;position:relative}.modal-overlay>*{animation:modalPop .22s var(--ease-out)}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}@keyframes modalPop{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (prefers-reduced-motion: reduce){.modal-overlay>*{animation-name:overlayIn}}.fade-in{animation:fadeInUp .24s var(--ease-out) both}@media (prefers-reduced-motion: reduce){.fade-in{animation-name:fadeOnly}button:active:not(:disabled){scale:none}}@keyframes fadeOnly{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}@media (hover: hover) and (pointer: fine){::-webkit-scrollbar-thumb:hover{background:var(--color-text-subtle)}}.spinner{width:32px;height:32px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}:root{--pl-green: #047857;--pl-green-bg: #ecfdf5;--pl-green-line: #a7f3d0;--pl-amber: #b45309;--pl-amber-bg: #fffbeb;--pl-amber-line: #fde68a;--pl-violet: #6d28d9;--pl-violet-bg: #f5f3ff;--pl-violet-line: #ddd6fe;--pl-red: #b91c1c;--pl-red-bg: #fef2f2;--pl-red-line: #fecaca;--pl-blue: #1d4ed8;--pl-blue-bg: #eff6ff;--pl-blue-line: #bfdbfe;--pl-gray: #475569;--pl-gray-bg: #f1f5f9;--pl-gray-line: #cbd5e1;--pl-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;--pl-ring: 0 0 0 3px rgba(37, 99, 235, .18)}.table-responsive{overflow-x:auto}.wm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:10000;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:wm-fade .3s ease both}.wm-container{background:var(--color-surface);width:90%;max-width:420px;border-radius:var(--radius-lg);padding:var(--space-10) var(--space-8);border:1px solid var(--color-border);text-align:center;position:relative;overflow:hidden;box-shadow:var(--shadow-lg);animation:wm-rise .4s cubic-bezier(.16,1,.3,1) .05s both}.wm-container:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:var(--color-warning)}.wm-eyebrow{font-size:var(--font-size-xs);font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--color-text-subtle);margin:0 0 var(--space-3)}.wm-icon{font-size:2rem;display:block;margin-bottom:var(--space-4)}.wm-title{color:var(--color-text);font-size:var(--font-size-2xl);font-weight:700;letter-spacing:-.01em;margin:0 0 var(--space-4);line-height:1.2}.wm-ornament{display:flex;align-items:center;justify-content:center;gap:var(--space-3);margin-bottom:var(--space-4)}.wm-ornament-line{height:1px;width:28px;background:var(--color-border)}.wm-ornament-diamond{width:5px;height:5px;background:var(--color-warning);transform:rotate(45deg)}.wm-text{color:var(--color-text-muted);font-size:var(--font-size-sm);line-height:1.75;margin-bottom:var(--space-8)}.wm-countdown{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-8)}.wm-number{font-size:5rem;font-weight:800;color:var(--color-warning);line-height:1;letter-spacing:-.03em;animation:wm-pulse 2.5s ease-in-out infinite}.wm-unit{font-size:var(--font-size-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.12em;margin-top:var(--space-2)}.wm-btn-primary{background:var(--color-warning);color:#fff;border:none;padding:var(--space-3) var(--space-8);border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:600;letter-spacing:.04em;cursor:pointer;width:100%;transition:background var(--transition-fast),transform .1s}@media (hover: hover) and (pointer: fine){.wm-btn-primary:hover{background:#c2410c}}.wm-btn-primary:active{transform:scale(.99)}@keyframes wm-fade{0%{opacity:0}to{opacity:1}}@keyframes wm-rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes wm-pulse{0%,to{opacity:1}50%{opacity:.65}}.sidebar{--sidebar-blue-top: #1e3a8a;--sidebar-blue-bottom: #1d4ed8;--sidebar-text-main: #ffffff;--sidebar-text-muted: rgba(255, 255, 255, .74);--sidebar-border: rgba(255, 255, 255, .12);--sidebar-hover: rgba(255, 255, 255, .08);--sidebar-active: rgba(255, 255, 255, .16);--sidebar-panel: rgba(15, 23, 60, .28);--sidebar-danger: #fecaca;--online-status: #34d399;--ease-drawer: cubic-bezier(.32, .72, 0, 1);width:var(--sidebar-width);background:linear-gradient(180deg,var(--sidebar-blue-top) 0%,var(--sidebar-blue-bottom) 100%);color:var(--sidebar-text-main);height:100vh;height:100dvh;position:fixed;left:0;top:0;display:flex;flex-direction:column;z-index:1001;box-shadow:4px 0 15px #0f172a2e}.sidebar-header{padding:20px;background-color:var(--sidebar-panel);border-bottom:1px solid var(--sidebar-border)}.sidebar-logo{display:flex;align-items:center;gap:12px;margin-bottom:20px}.sidebar-logo__emblem{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#ffffff1f;border-radius:10px;overflow:hidden}.sidebar-logo__img{width:100%;height:100%;object-fit:contain}.sidebar-logo__fallback-icon{font-size:1.5rem;line-height:1}.sidebar-logo__text{display:flex;flex-direction:column}.sidebar-logo__name{font-weight:800;font-size:1.1rem;line-height:1.2}.sidebar-logo__sub{font-size:.7rem;color:var(--sidebar-text-muted);text-transform:uppercase;letter-spacing:.5px}.sidebar-profile{width:100%;display:flex;align-items:center;gap:12px;padding:10px;background:var(--sidebar-hover);border-radius:12px;border:none;cursor:pointer;color:inherit;font-family:inherit;transition:background-color .15s ease,transform .16s var(--ease-out)}.sidebar-profile:active{transform:scale(.98)}@media (hover: hover) and (pointer: fine){.sidebar-profile:hover{background:#ffffff24}}.sidebar-profile:focus-visible,.sidebar-nav__item:focus-visible,.sidebar-dropdown__item:focus-visible{outline:2px solid #fff;outline-offset:-2px}.sidebar-profile__avatar-wrap{position:relative}.sidebar-profile__avatar{width:36px;height:36px;border-radius:8px;background:var(--color-primary);display:flex;align-items:center;justify-content:center;overflow:hidden}.sidebar-profile__avatar img{width:100%;height:100%;object-fit:cover}.sidebar-avatar__fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-weight:600;font-size:1rem;text-transform:uppercase}.sidebar-avatar__spin{animation:spinSidebar 1s linear infinite;color:var(--sidebar-text-main)}@keyframes spinSidebar{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.sidebar-profile__status{position:absolute;bottom:0;right:0;width:10px;height:10px;background-color:var(--online-status);border:2px solid var(--sidebar-blue-top);border-radius:50%}.sidebar-profile__info{flex:1;text-align:left;min-width:0}.sidebar-profile__name{display:block;font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile__role{display:block;font-size:.7rem;color:var(--sidebar-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-profile__chevron{transition:transform .2s var(--ease-out);opacity:.8}.sidebar-profile--open .sidebar-profile__chevron{transform:rotate(180deg)}.sidebar-dropdown{max-height:0;overflow:hidden;transition:max-height .2s var(--ease-out);background:#0f173c52;border-radius:8px;margin-top:8px}.sidebar-dropdown--open{max-height:200px}.sidebar-dropdown__item{display:flex;align-items:center;gap:10px;padding:10px 25px;font-size:.8rem;font-family:inherit;color:var(--sidebar-text-muted);text-decoration:none;background:transparent;border:none;width:100%;cursor:pointer;transition:background-color .15s ease,color .15s ease}@media (hover: hover) and (pointer: fine){.sidebar-dropdown__item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-main)}.sidebar-dropdown__item--danger:hover{background:#fecaca24;color:var(--sidebar-danger)}}.sidebar-dropdown__item--danger{color:var(--sidebar-danger)}.sidebar-dropdown__divider{height:1px;background:var(--sidebar-border);margin:5px 0}.sidebar-nav{flex:1;overflow-y:auto;padding:15px 0;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.35) transparent}.sidebar-nav::-webkit-scrollbar{width:5px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:#ffffff59;border-radius:10px}.sidebar-nav__section{margin-bottom:20px}.sidebar-nav__section-label{display:block;padding:0 25px 10px;font-size:.7rem;font-weight:700;color:var(--sidebar-text-muted);text-transform:uppercase;letter-spacing:.5px}.sidebar-nav__item{position:relative;display:flex;align-items:center;gap:12px;padding:12px 25px;color:var(--sidebar-text-muted);text-decoration:none;font-size:.9rem;transition:background-color .12s ease,color .12s ease}.sidebar-nav__item:before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:#fff;transform:scaleY(0);transition:transform .2s var(--ease-out)}.sidebar-nav__item:active{background:var(--sidebar-active)}@media (hover: hover) and (pointer: fine){.sidebar-nav__item:hover{background:var(--sidebar-hover);color:var(--sidebar-text-main)}}.sidebar-nav__item--active,.sidebar-nav__item--active:hover{background:var(--sidebar-active);color:var(--sidebar-text-main);font-weight:600}.sidebar-nav__item--active:before{transform:scaleY(1)}.sidebar-footer{padding:15px 25px;font-size:.7rem;color:var(--sidebar-text-muted);border-top:1px solid var(--sidebar-border)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f172a80;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s var(--ease-out),visibility 0s linear .2s}.sidebar-overlay--show{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .28s var(--ease-out),visibility 0s}@media (max-width: 1024px){.sidebar{transform:translate(-100%);transition:transform .22s var(--ease-drawer),box-shadow .22s var(--ease-drawer)}.sidebar--open{transform:translate(0);box-shadow:10px 0 30px #0f172a73;transition-duration:.3s}.sidebar-overlay{display:block}.sidebar-nav__item{padding:16px 25px}.sidebar-profile{padding:12px}}@media (prefers-reduced-motion: reduce){.sidebar,.sidebar--open{transition-property:box-shadow}.sidebar-nav__item:before{transition:none}.sidebar-profile:active{transform:none}.sidebar-profile__chevron{transition:none}}.layout-container{display:flex;min-height:100vh;background-color:var(--color-bg);position:relative;width:100%;overflow-x:hidden}.layout-content{flex:1;padding:var(--space-8) var(--space-6);min-height:100vh;box-sizing:border-box;width:calc(100% - var(--sidebar-width));overflow-y:auto;margin-left:var(--sidebar-width)}.mobile-menu-btn{display:none;position:fixed;top:14px;left:14px;z-index:1100;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-2);cursor:pointer;color:var(--color-text);box-shadow:var(--shadow-md);align-items:center;justify-content:center;transition:background-color .15s ease,transform .16s var(--ease-out)}.mobile-menu-btn:active{transform:scale(.94)}@media (hover: hover) and (pointer: fine){.mobile-menu-btn:hover{background:var(--color-surface-alt)}}@media (max-width: 1024px){.layout-content{margin-left:0;width:100%;padding:var(--space-5);padding-top:64px}.mobile-menu-btn{display:flex}}@media (max-width: 640px){.layout-content{padding:var(--space-4);padding-top:64px}}@media print{.sidebar,.mobile-menu-btn,.sidebar-overlay{display:none!important}.layout-container{display:block;background:none}.layout-content{margin-left:0;width:100%;padding:0;min-height:0;overflow:visible}}.loading-spinner-container{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.loading-spinner-container.fullscreen{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:9999;padding:0;min-height:0}.loading-spinner-container.with-overlay{background-color:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.spinner-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.5rem;padding:2rem;background-color:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);animation:fadeInSpinner .3s ease-out}.loading-spinner-container.fullscreen .spinner-wrapper{box-shadow:var(--shadow-lg)}.loading-spinner-container.with-overlay .spinner-wrapper{background-color:var(--color-surface)}.spinner{position:relative;display:flex;align-items:center;justify-content:center;gap:.5rem}.spinner-small{width:40px;height:40px}.spinner-medium{width:60px;height:60px}.spinner-large{width:80px;height:80px}.spinner-circle{width:12px;height:12px;border-radius:50%;animation:bounce 1.4s infinite ease-in-out both}.spinner-small .spinner-circle{width:8px;height:8px}.spinner-large .spinner-circle{width:16px;height:16px}.spinner-circle:nth-child(1){animation-delay:-.32s}.spinner-circle:nth-child(2){animation-delay:-.16s}.spinner-primary .spinner-circle{background-color:var(--color-primary)}.spinner-secondary .spinner-circle{background-color:var(--color-text-muted)}.spinner-success .spinner-circle{background-color:var(--color-success)}.spinner-light .spinner-circle{background-color:var(--color-surface-alt);border:2px solid var(--color-border)}.spinner-dark .spinner-circle{background-color:var(--color-text)}@keyframes bounce{0%,80%,to{transform:scale(0);opacity:.5}40%{transform:scale(1);opacity:1}}.spinner-message{margin:0;color:var(--color-text-muted);font-size:1rem;font-weight:500;text-align:center;max-width:300px;line-height:1.5}.loading-spinner-container.with-overlay .spinner-message{color:var(--color-text)}.spinner.spinner-rotate{animation:rotate 1s linear infinite}.spinner.spinner-rotate .spinner-circle{animation:none;position:absolute}.spinner.spinner-rotate .spinner-circle:nth-child(1){top:0;left:50%;transform:translate(-50%)}.spinner.spinner-rotate .spinner-circle:nth-child(2){bottom:0;left:0}.spinner.spinner-rotate .spinner-circle:nth-child(3){bottom:0;right:0}@keyframes rotate{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spinner.spinner-pulse .spinner-circle{animation:pulseSpinner 1.5s infinite ease-in-out}@keyframes pulseSpinner{0%,to{transform:scale(.8);opacity:.5}50%{transform:scale(1.2);opacity:1}}.loading-inline{display:inline-flex;align-items:center;gap:.5rem}.loading-inline .spinner{width:20px;height:20px}.loading-inline .spinner-circle{width:6px;height:6px}.loading-inline .spinner-message{font-size:.875rem;font-weight:400}@keyframes fadeInSpinner{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.loading-spinner-container[role=status]{position:relative}.loading-spinner-container[role=status]:after{content:attr(aria-label);position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}@media (max-width: 768px){.spinner-wrapper{padding:1.5rem;max-width:90%}.spinner-message{font-size:.875rem}.spinner-large{width:60px;height:60px}.spinner-large .spinner-circle{width:12px;height:12px}}@media (prefers-reduced-motion: reduce){.spinner-circle{animation-duration:3s}.spinner.spinner-rotate{animation-duration:2s}}.turnstile-box{display:flex;justify-content:center;min-height:65px;margin-bottom:12px}.auth-container{min-height:100vh;min-height:100dvh;width:100%;background:linear-gradient(135deg,#1e3a8a,#1d4ed8,#2563eb);display:flex;flex-direction:column;justify-content:center;align-items:center;padding:var(--space-5);position:relative;overflow:hidden}.auth-container:before{content:"";position:fixed;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#10b981,#2563eb,#7c3aed);z-index:9999}.auth-container:after{content:"";position:absolute;width:600px;height:600px;background:#ffffff0a;border-radius:50%;top:-200px;right:-200px;pointer-events:none}.auth-card{background:var(--color-surface);width:100%;max-width:420px;padding:40px;border-radius:var(--radius-xl);box-shadow:0 20px 60px #00000040,0 8px 20px #0000001f;animation:slideUp .32s var(--ease-out) both;display:flex;flex-direction:column}.auth-logo-wrapper{display:flex;justify-content:center;margin-bottom:var(--space-5)}.auth-logo{width:80px;height:auto;border-radius:var(--radius-md)}.auth-header{text-align:center;margin-bottom:var(--space-6)}.auth-header h2{color:var(--color-primary);font-size:var(--font-size-xl);font-weight:800;margin-bottom:var(--space-1);letter-spacing:-.3px}.auth-header p{color:var(--color-text-muted);font-size:var(--font-size-sm)}.error-msg{background:var(--color-danger-light);border-left:3px solid var(--color-danger);color:#7f1d1d;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);animation:shake .3s var(--ease-out)}.success-msg{background:var(--color-success-light);border-left:3px solid var(--color-success);color:#14532d;padding:var(--space-3) var(--space-4);margin-bottom:var(--space-4);border-radius:var(--radius-md);font-size:var(--font-size-sm);animation:fadeInAuth .24s var(--ease-out)}.error-message-inline{color:var(--color-danger);font-size:var(--font-size-xs);display:block;margin-top:var(--space-1);font-weight:500}.auth-form{display:flex;flex-direction:column;gap:var(--space-5)}.form-group{display:flex;flex-direction:column;gap:var(--space-2)}.form-group label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text)}.form-group input{padding:11px var(--space-3);border:1.5px solid var(--color-border);border-radius:var(--radius-md);font-size:var(--font-size-sm);transition:border-color .15s ease,box-shadow .15s ease}.form-group input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1f;outline:none}.form-group input:disabled{background:var(--color-surface-alt);cursor:not-allowed;opacity:.7}.password-input-wrapper{position:relative;display:flex;align-items:center}.password-input-wrapper input{padding-right:44px}.toggle-password,.btn-toggle-password{position:absolute;right:10px;background:none;border:none;cursor:pointer;padding:var(--space-1);font-size:1.1rem;opacity:.5;transition:opacity .15s ease,transform .16s var(--ease-out);display:flex;align-items:center;z-index:2}.toggle-password:active,.btn-toggle-password:active{transform:scale(.9)}.toggle-password:focus-visible,.btn-toggle-password:focus-visible{opacity:1;outline:2px solid var(--color-primary);border-radius:var(--radius-md)}@media (hover: hover) and (pointer: fine){.toggle-password:hover,.btn-toggle-password:hover{opacity:.9}}.strength-text{font-size:var(--font-size-xs);font-weight:600;margin-top:var(--space-1)}.strength-text.weak{color:var(--color-danger)}.strength-text.medium{color:var(--color-warning)}.strength-text.strong{color:var(--color-success)}.btn-auth{width:100%;padding:13px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:var(--font-size-base);font-weight:700;font-family:var(--font-family);cursor:pointer;transition:transform .16s var(--ease-out),background-color .15s ease,box-shadow .15s ease,opacity .15s ease;letter-spacing:.2px}@media (hover: hover) and (pointer: fine){.btn-auth:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 6px 16px #2563eb59}}.btn-auth:active:not(:disabled){transform:scale(.97)}.btn-auth:focus-visible{outline:2px solid var(--color-primary-dark);outline-offset:2px}.btn-auth:disabled{opacity:.5;cursor:not-allowed}.btn-link{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:600;font-family:var(--font-family);cursor:pointer;text-align:center;transition:color .15s ease,text-decoration-color .15s ease;text-decoration:underline;text-decoration-color:transparent}@media (hover: hover) and (pointer: fine){.btn-link:hover{color:var(--color-primary-dark);text-decoration-color:currentColor}}.btn-link:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}.auth-footer{margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--color-border);text-align:center;color:var(--color-text-muted);font-size:var(--font-size-xs)}.welcome-info{background:var(--color-primary-light);border:1px solid var(--color-border-focus);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-4);font-size:var(--font-size-sm);color:var(--color-primary-dark)}.welcome-info p{font-weight:500;margin-bottom:var(--space-1)}.welcome-info small{color:var(--color-text-muted)}.auth-loader{color:#ffffffe6;font-size:var(--font-size-lg);font-weight:500;text-align:center}.reset-info{font-size:var(--font-size-sm);color:var(--color-text-muted);margin-bottom:var(--space-4);line-height:1.6}@keyframes slideUp{0%{transform:translateY(12px) scale(.98);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes fadeInAuth{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.auth-card{animation-name:fadeOnly}.error-msg{animation:none}.btn-auth:active:not(:disabled),.toggle-password:active,.btn-toggle-password:active{transform:none}}@media (pointer: coarse){.form-group input{font-size:16px}}@media (max-width: 480px){.auth-card{padding:30px 20px;border-radius:var(--radius-lg)}}.mfa-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:var(--color-bg)}.mfa-card{width:100%;max-width:460px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:var(--space-8) var(--space-6);text-align:center}.mfa-card__icon{display:inline-flex;padding:var(--space-3);border-radius:var(--radius-full);background:var(--color-primary-light);color:var(--color-primary);margin-bottom:var(--space-3)}.mfa-card__title{margin:0;font-size:var(--font-size-2xl)}.mfa-card__subtitle{margin:var(--space-1) 0 var(--space-4);color:var(--color-text-muted);font-size:var(--font-size-sm)}.mfa-intro{margin:0 0 var(--space-4);color:var(--color-text-body);font-size:var(--font-size-sm);text-align:left}.mfa-panel{text-align:left}.mfa-steps{margin:0 0 var(--space-4);padding-left:var(--space-5);color:var(--color-text-body);font-size:var(--font-size-sm);display:flex;flex-direction:column;gap:var(--space-1)}.mfa-qr{display:flex;align-items:center;justify-content:center;min-height:200px;margin-bottom:var(--space-3)}.mfa-qr img{width:200px;height:200px;padding:var(--space-2);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md)}.mfa-secret{text-align:center;margin-bottom:var(--space-4)}.mfa-secret__value{display:block;margin-top:var(--space-2);padding:var(--space-2);background:var(--color-bg);border-radius:var(--radius-sm);font-size:var(--font-size-sm);letter-spacing:.08em;word-break:break-all;-webkit-user-select:all;user-select:all}.mfa-field{display:flex;flex-direction:column;gap:var(--space-1);margin-bottom:var(--space-3);font-size:var(--font-size-sm);color:var(--color-text-muted)}.mfa-code-input{height:52px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);text-align:center;font-size:1.6rem;letter-spacing:.4em;font-variant-numeric:tabular-nums;color:var(--color-text)}.mfa-select{height:40px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:0 var(--space-3);font-family:inherit}.mfa-code-input:focus,.mfa-select:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--focus-ring)}.mfa-error{color:var(--color-danger);font-size:var(--font-size-sm);margin-bottom:var(--space-3)}.mfa-hint{color:var(--color-text-muted);font-size:var(--font-size-xs);margin-top:var(--space-3)}.mfa-actions{display:flex;justify-content:flex-end;gap:var(--space-2)}.mfa-btn{height:42px;padding:0 var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--color-border-strong);background:var(--color-surface);color:var(--color-text-secondary);font-weight:600}.mfa-btn--primary{background:var(--color-primary);border-color:var(--color-primary);color:var(--color-surface);flex:1}@media (hover: hover) and (pointer: fine){.mfa-btn--primary:hover:not(:disabled){background:var(--color-primary-dark)}}.mfa-link{background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);text-decoration:underline;padding:0}.mfa-logout{display:inline-flex;align-items:center;gap:var(--space-1);margin-top:var(--space-6);color:var(--color-text-muted)}.auth-loading-screen{display:flex;justify-content:center;align-items:center;height:100vh;color:var(--color-text-muted)}.toaster{position:fixed;top:var(--space-4);right:var(--space-4);z-index:3000;display:flex;flex-direction:column;gap:var(--space-2);width:min(420px,calc(100vw - 2 * var(--space-4)));pointer-events:none}.toast{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-left-width:4px;border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--color-text);pointer-events:auto;animation:toast-in var(--transition-normal)}.toast__icon{flex-shrink:0;margin-top:1px}.toast__message{flex:1;margin:0;font-size:var(--font-size-sm);line-height:1.45;overflow-wrap:anywhere}.toast__close{flex-shrink:0;display:inline-flex;padding:var(--space-1);background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer}@media (hover: hover) and (pointer: fine){.toast__close:hover{color:var(--color-text);background:var(--color-surface-alt)}}.toast__close:focus-visible{outline:none;box-shadow:var(--focus-ring)}.toast--success{border-left-color:var(--color-success)}.toast--success .toast__icon{color:var(--color-success)}.toast--error{border-left-color:var(--color-danger)}.toast--error .toast__icon{color:var(--color-danger)}.toast--warning{border-left-color:var(--color-warning)}.toast--warning .toast__icon{color:var(--color-warning)}.toast--info{border-left-color:var(--color-info)}.toast--info .toast__icon{color:var(--color-info)}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.toast{animation:none}}@media (max-width: 480px){.toaster{top:var(--space-2);right:var(--space-2);left:var(--space-2);width:auto}}.dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#0f172a8c;animation:dialog-fade var(--transition-normal)}.dialog{width:min(460px,100%);max-height:calc(100vh - 2 * var(--space-4));overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);color:var(--color-text);animation:dialog-rise var(--transition-normal)}.dialog__header{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-6) var(--space-3);color:var(--color-primary-dark)}.dialog__header--danger{color:var(--color-danger-dark)}.dialog__title{margin:0;font-size:var(--font-size-lg);font-weight:700;color:var(--color-text)}.dialog__body{padding:0 var(--space-6) var(--space-4)}.dialog__message{margin:0 0 var(--space-3);font-size:var(--font-size-sm);line-height:1.55;color:var(--color-text-body);white-space:pre-line;overflow-wrap:anywhere}.dialog__field{display:flex;flex-direction:column;gap:var(--space-2)}.dialog__label{font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-muted)}.dialog__input{width:100%;padding:var(--space-3);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--color-text);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);resize:vertical}.dialog__input:focus{outline:none;border-color:var(--color-border-focus);box-shadow:var(--focus-ring)}.dialog__input--invalid{border-color:var(--color-danger)}.dialog__error{font-size:var(--font-size-xs);color:var(--color-danger)}.dialog__footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-3) var(--space-6) var(--space-5)}.dialog__btn{padding:var(--space-2) var(--space-5);font-family:var(--font-family);font-size:var(--font-size-sm);font-weight:600;color:var(--color-text-body);background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);cursor:pointer;transition:background var(--transition-fast)}.dialog__btn:focus-visible{outline:none;box-shadow:var(--focus-ring)}.dialog__btn--primary{color:#fff;background:var(--color-primary);border-color:var(--color-primary)}.dialog__btn--danger{background:var(--color-danger);border-color:var(--color-danger)}@media (hover: hover) and (pointer: fine){.dialog__btn:hover{background:var(--color-surface-alt)}.dialog__btn--primary:hover{background:var(--color-primary-dark)}.dialog__btn--danger:hover{background:var(--color-danger-dark)}}@keyframes dialog-fade{0%{opacity:0}to{opacity:1}}@keyframes dialog-rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion: reduce){.dialog-overlay,.dialog{animation:none}}.error-boundary-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);padding:2rem}.error-boundary-container.critical{background:linear-gradient(135deg,var(--color-warning) 0%,var(--color-danger) 100%)}.error-content{background:var(--color-surface);border-radius:var(--radius-md);padding:3rem;max-width:600px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.error-icon{font-size:4rem;margin-bottom:1rem}.error-content h1{color:var(--color-text);margin-bottom:1rem;font-size:2rem}.error-message{color:var(--color-text-muted);margin-bottom:2rem;font-size:1.1rem;line-height:1.6}.error-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:1.5rem}.btn-primary,.btn-secondary{padding:.75rem 2rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal),opacity var(--transition-normal),transform var(--transition-normal)}@media (hover: hover) and (pointer: fine){.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:var(--shadow-md)}}.error-details{margin-top:2rem;text-align:left;background:var(--color-surface-alt);border-radius:var(--radius-sm);padding:1rem}.error-details summary{cursor:pointer;font-weight:600;color:var(--color-text-muted);padding:.5rem}@media (hover: hover) and (pointer: fine){.error-details summary:hover{color:var(--color-text)}}.error-stack{margin-top:1rem;padding:1rem;background:var(--color-text);color:var(--color-surface-alt);border-radius:var(--radius-sm);overflow-x:auto;font-size:.875rem;line-height:1.5}@media (max-width: 640px){.error-content{padding:2rem 1.5rem}.error-content h1{font-size:1.5rem}.error-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}}.not-found-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-dark) 100%);padding:2rem}.not-found-content{background:var(--color-surface);border-radius:var(--radius-lg);padding:3rem;max-width:700px;width:100%;box-shadow:0 20px 60px #0000004d;text-align:center}.not-found-illustration{position:relative;margin-bottom:2rem}.error-code{font-size:8rem;font-weight:900;background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;line-height:1;margin-bottom:1rem}.error-emoji{font-size:3rem;animation:bounce404 2s infinite}@keyframes bounce404{0%,to{transform:translateY(0)}50%{transform:translateY(-20px)}}.not-found-content h1{color:var(--color-text);margin-bottom:1rem;font-size:2rem}.not-found-description{color:var(--color-text-muted);font-size:1.125rem;line-height:1.6;margin-bottom:2rem}.not-found-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.btn-primary,.btn-secondary{padding:.875rem 2rem;border:none;border-radius:var(--radius-md);font-size:1rem;font-weight:600;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal),opacity var(--transition-normal),transform var(--transition-normal)}.btn-primary{background:var(--color-primary);color:#fff}@media (hover: hover) and (pointer: fine){.btn-primary:hover{background:var(--color-primary-dark);transform:translateY(-2px);box-shadow:0 6px 20px #2563eb66}}.btn-secondary{background:var(--color-border);color:var(--color-text)}@media (hover: hover) and (pointer: fine){.btn-secondary:hover{background:var(--color-text-subtle);color:#fff;transform:translateY(-2px)}}.quick-links{background:var(--color-surface-alt);border-radius:var(--radius-md);padding:1.5rem;margin-bottom:1.5rem}.quick-links-title{color:var(--color-text-muted);font-weight:600;margin-bottom:1rem;font-size:.875rem;text-transform:uppercase;letter-spacing:.5px}.links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem}.quick-link{display:block;padding:.75rem;background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);text-decoration:none;font-weight:500;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),box-shadow var(--transition-normal),opacity var(--transition-normal),transform var(--transition-normal)}@media (hover: hover) and (pointer: fine){.quick-link:hover{border-color:var(--color-primary);background:var(--color-primary-light);transform:translateY(-2px);box-shadow:var(--shadow-sm)}}.not-found-footer{border-top:1px solid var(--color-border);padding-top:1.5rem;margin-top:1.5rem}.not-found-footer p{color:var(--color-text-muted);font-size:.875rem}@media (max-width: 640px){.not-found-content{padding:2rem 1.5rem}.error-code{font-size:5rem}.not-found-content h1{font-size:1.5rem}.not-found-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.links-grid{grid-template-columns:1fr}}.app-container{display:flex;height:100vh;width:100vw;overflow:hidden}.main-content-wrapper{flex-grow:1;display:flex;flex-direction:column;overflow:hidden}
