:root{--brand-50: #eff4ff;--brand-100: #d9e5ff;--brand-200: #b8d0ff;--brand-500: #2563eb;--brand-600: #175cd3;--brand-700: #1247a6;--brand-900: #0b2d6b;--bg: #f5f7fb;--bg-elevated: #ffffff;--bg-subtle: #f9fafb;--bg-inset: #f2f4f7;--surface-hover: #f7f9fc;--text: #0f172a;--text-secondary: #475467;--text-muted: #667085;--text-inverse: #ffffff;--border: #e4e7ec;--border-strong: #d0d5dd;--success: #067647;--success-bg: #e7f6ec;--warning: #b54708;--warning-bg: #fef6e7;--danger: #b42318;--danger-bg: #fdecea;--info: #175cd3;--info-bg: #eff4ff;--radius-sm: 6px;--radius: 10px;--radius-lg: 14px;--radius-xl: 20px;--shadow-xs: 0 1px 2px rgba(16, 24, 40, .05);--shadow-sm: 0 1px 3px rgba(16, 24, 40, .08), 0 1px 2px rgba(16, 24, 40, .04);--shadow: 0 4px 12px rgba(16, 24, 40, .08), 0 2px 4px rgba(16, 24, 40, .04);--shadow-lg: 0 12px 32px rgba(16, 24, 40, .12), 0 4px 8px rgba(16, 24, 40, .06);--shadow-focus: 0 0 0 3px var(--brand-100);--font: "Segoe UI", system-ui, -apple-system, "Helvetica Neue", sans-serif;--fs-xs: 12px;--fs-sm: 13.5px;--fs-base: 15px;--fs-md: 16px;--fs-lg: 19px;--fs-xl: 24px;--fs-2xl: 30px;--ease: cubic-bezier(.22, 1, .36, 1);--dur-fast: .12s;--dur: .18s;--dur-slow: .26s;--sidebar-bg: #0f172a;--sidebar-text: #cbd5e1;--sidebar-active-bg: #1e293b;color-scheme:light}:root[data-theme=dark]{--brand-50: #172554;--brand-100: #1e3a8a;--brand-200: #1d4ed8;--brand-500: #3b82f6;--brand-600: #60a5fa;--brand-700: #93c5fd;--bg: #0b1120;--bg-elevated: #151d2e;--bg-subtle: #1a2334;--bg-inset: #1f293c;--surface-hover: #1d2739;--text: #e8eefb;--text-secondary: #a9b6cc;--text-muted: #8595ad;--text-inverse: #0b1120;--border: #243046;--border-strong: #33415c;--success: #4ade80;--success-bg: #10291c;--warning: #fbbf24;--warning-bg: #2c2008;--danger: #f87171;--danger-bg: #2d1414;--info: #60a5fa;--info-bg: #16223c;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .5);--shadow: 0 4px 14px rgba(0, 0, 0, .5);--shadow-lg: 0 16px 40px rgba(0, 0, 0, .6);--shadow-focus: 0 0 0 3px rgba(59, 130, 246, .35);--sidebar-bg: #080d18;--sidebar-text: #94a3b8;--sidebar-active-bg: #1a2334;color-scheme:dark}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:var(--fs-base);line-height:1.5;-webkit-font-smoothing:antialiased;transition:background-color var(--dur-slow) var(--ease),color var(--dur-slow) var(--ease)}h1,h2,h3{letter-spacing:-.011em}a{color:var(--brand-600);text-decoration:none;transition:color var(--dur-fast) var(--ease)}a:hover{color:var(--brand-700);text-decoration:underline;text-underline-offset:2px}button{font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text);border-radius:var(--radius-sm);padding:8px 14px;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}button:hover:not(:disabled){background:var(--surface-hover);border-color:var(--brand-200)}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible{outline:none;box-shadow:var(--shadow-focus)}button.primary{background:var(--brand-600);border-color:var(--brand-600);color:#fff;box-shadow:var(--shadow-xs)}button.primary:hover:not(:disabled){background:var(--brand-700);border-color:var(--brand-700)}button.danger{background:var(--danger);border-color:var(--danger);color:#fff}button.ghost{background:transparent;border-color:transparent}button.ghost:hover:not(:disabled){background:var(--bg-inset)}button:disabled{opacity:.5;cursor:not-allowed}input[type=text],input[type=password],input[type=date],input[type=number],input[type=email],select,textarea{font:inherit;font-size:var(--fs-sm);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:8px 11px;width:100%;background:var(--bg-elevated);color:var(--text);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--brand-500);box-shadow:var(--shadow-focus)}input::placeholder{color:var(--text-muted)}input[type=checkbox],input[type=radio]{accent-color:var(--brand-600);width:15px;height:15px;cursor:pointer}label{font-size:var(--fs-sm);font-weight:600;color:var(--text-secondary)}.layout{display:flex;min-height:100vh}.sidebar{width:232px;flex-shrink:0;background:var(--sidebar-bg);color:var(--sidebar-text);padding:20px 14px;display:flex;flex-direction:column;gap:3px;position:sticky;top:0;height:100vh}.sidebar a{color:var(--sidebar-text);padding:9px 12px;border-radius:var(--radius-sm);display:flex;align-items:center;gap:10px;font-size:var(--fs-sm);font-weight:500;position:relative;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),padding-left var(--dur) var(--ease)}.sidebar a:hover{background:var(--sidebar-active-bg);color:#fff;text-decoration:none;padding-left:16px}.sidebar a.active{background:var(--sidebar-active-bg);color:#fff}.sidebar a.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;border-radius:0 3px 3px 0;background:var(--brand-500);animation:fd-grow var(--dur) var(--ease)}.sidebar .brand{font-size:var(--fs-lg);font-weight:700;color:#fff;margin-bottom:18px;padding:0 12px;display:flex;align-items:center;gap:9px}.sidebar .brand-mark{width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,var(--brand-500),var(--brand-700));display:grid;place-items:center;font-size:13px;font-weight:800;color:#fff;box-shadow:0 2px 10px #2563eb73}.sidebar .nav-group{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b;padding:14px 12px 5px}.content{flex:1;padding:26px 32px 60px;max-width:1240px;min-width:0;animation:fd-fade-up var(--dur-slow) var(--ease)}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px;box-shadow:var(--shadow-xs);transition:box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease),background-color var(--dur-slow) var(--ease)}.card:hover{box-shadow:var(--shadow-sm)}.card h2{margin:0 0 14px;font-size:var(--fs-md);font-weight:650}.stat-card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px;box-shadow:var(--shadow-xs);position:relative;overflow:hidden;transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}.stat-card:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--brand-500),transparent);opacity:.85}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.stat-label{color:var(--text-muted);font-size:var(--fs-xs);font-weight:600;letter-spacing:.02em;text-transform:uppercase}.stat-value{font-size:var(--fs-xl);font-weight:700;line-height:1.25;letter-spacing:-.02em;margin-top:2px}.stat-sub{font-size:var(--fs-xs);color:var(--text-muted)}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--border);font-size:var(--fs-sm)}th{color:var(--text-secondary);font-weight:650;background:var(--bg-subtle);font-size:var(--fs-xs);letter-spacing:.02em;text-transform:uppercase}th:first-child{border-top-left-radius:var(--radius-sm)}th:last-child{border-top-right-radius:var(--radius-sm)}tbody tr{transition:background-color var(--dur-fast) var(--ease)}tbody tr:hover{background:var(--surface-hover)}tbody tr:last-child td{border-bottom:none}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:5px;min-width:180px}.muted{color:var(--text-muted);font-size:var(--fs-xs)}.error{color:var(--danger);font-size:var(--fs-sm)}.success{color:var(--success);font-size:var(--fs-sm)}.badge{display:inline-block;border-radius:999px;padding:3px 10px;font-size:11.5px;font-weight:600;line-height:1.5;white-space:nowrap}.badge.green{background:var(--success-bg);color:var(--success)}.badge.red{background:var(--danger-bg);color:var(--danger)}.badge.amber{background:var(--warning-bg);color:var(--warning)}.badge.grey{background:var(--bg-inset);color:var(--text-secondary)}.badge.blue{background:var(--info-bg);color:var(--info)}.chip{border-radius:999px;padding:6px 14px;font-size:var(--fs-sm);font-weight:500;border:1px solid var(--border-strong);background:var(--bg-elevated);color:var(--text-secondary)}.chip:hover:not(:disabled){border-color:var(--brand-200);background:var(--brand-50);color:var(--brand-700)}.chip.active{background:var(--brand-600);border-color:var(--brand-600);color:#fff}.chip.active:hover{background:var(--brand-700);color:#fff}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#080d188c;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;z-index:50;animation:fd-fade var(--dur) var(--ease)}.modal{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);padding:24px;width:520px;max-width:94vw;max-height:90vh;overflow:auto;box-shadow:var(--shadow-lg);animation:fd-pop var(--dur-slow) var(--ease)}.modal h3{margin:0 0 14px;font-size:var(--fs-lg)}.kv{display:grid;grid-template-columns:190px 1fr;gap:9px 14px;font-size:var(--fs-sm);margin:12px 0}.kv dt{color:var(--text-muted)}.kv dd{margin:0;font-weight:600}.warn-box{background:var(--warning-bg);border:1px solid var(--warning);color:var(--warning);border-radius:var(--radius-sm);padding:11px 14px;font-size:var(--fs-sm);margin:10px 0}.spinner{width:15px;height:15px;border:2px solid var(--border-strong);border-top-color:var(--brand-600);border-radius:50%;display:inline-block;animation:fd-spin .7s linear infinite}.skeleton{background:linear-gradient(90deg,var(--bg-inset) 25%,var(--bg-subtle) 37%,var(--bg-inset) 63%);background-size:400% 100%;border-radius:var(--radius-sm);animation:fd-shimmer 1.4s ease-in-out infinite}@keyframes fd-fade{0%{opacity:0}}@keyframes fd-fade-up{0%{opacity:0;transform:translateY(8px)}}@keyframes fd-pop{0%{opacity:0;transform:translateY(10px) scale(.985)}}@keyframes fd-grow{0%{transform:scaleY(0)}}@keyframes fd-spin{to{transform:rotate(360deg)}}@keyframes fd-shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.stagger>*{animation:fd-fade-up var(--dur-slow) var(--ease) backwards}.stagger>*:nth-child(1){animation-delay:0ms}.stagger>*:nth-child(2){animation-delay:45ms}.stagger>*:nth-child(3){animation-delay:90ms}.stagger>*:nth-child(4){animation-delay:135ms}.stagger>*:nth-child(5){animation-delay:.18s}.stagger>*:nth-child(6){animation-delay:225ms}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.auth-shell{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr;background:var(--bg)}@media(max-width:900px){.auth-shell{grid-template-columns:1fr}.auth-aside{display:none!important}}.auth-aside{position:relative;overflow:hidden;background:linear-gradient(150deg,#0b1a3a,#102a5c 45%,#0d1f47);color:#e8eefb;padding:56px 52px;display:flex;flex-direction:column;justify-content:center;gap:26px}.auth-aside:before,.auth-aside:after{content:"";position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none}.auth-aside:before{width:460px;height:460px;background:radial-gradient(circle,#2563eb,transparent 68%);top:-130px;right:-120px;animation:fd-drift 17s ease-in-out infinite alternate}.auth-aside:after{width:400px;height:400px;background:radial-gradient(circle,#0ea5e9,transparent 68%);bottom:-140px;left:-100px;animation:fd-drift 21s ease-in-out infinite alternate-reverse}@keyframes fd-drift{to{transform:translate3d(34px,-26px,0) scale(1.12)}}.auth-grid-overlay{position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,255,255,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px);background-size:46px 46px;-webkit-mask-image:radial-gradient(ellipse at 30% 40%,#000 20%,transparent 78%);mask-image:radial-gradient(ellipse at 30% 40%,#000 20%,transparent 78%);pointer-events:none}.auth-aside>*{position:relative;z-index:1}.auth-brand{display:flex;align-items:center;gap:13px;font-size:25px;font-weight:700;letter-spacing:-.02em}.auth-brand .mark{width:46px;height:46px;border-radius:13px;background:linear-gradient(135deg,#3b82f6,#1d4ed8);display:grid;place-items:center;font-size:19px;font-weight:800;box-shadow:0 8px 26px #2563eb80}.auth-headline{font-size:34px;line-height:1.22;font-weight:700;letter-spacing:-.025em;margin:0;max-width:15ch}.auth-sub{font-size:var(--fs-md);color:#b6c6e4;margin:0;max-width:46ch;line-height:1.62}.auth-points{list-style:none;padding:0;margin:6px 0 0;display:grid;gap:13px}.auth-points li{display:flex;gap:13px;align-items:flex-start;font-size:var(--fs-sm);color:#cddcf5;line-height:1.55}.auth-points .tick{flex-shrink:0;width:21px;height:21px;border-radius:7px;background:#3b82f638;border:1px solid rgba(96,165,250,.45);color:#93c5fd;display:grid;place-items:center;font-size:11px;font-weight:700;margin-top:1px}.auth-main{display:flex;align-items:center;justify-content:center;padding:40px 28px}.auth-card{width:100%;max-width:400px;animation:fd-fade-up .42s var(--ease)}.auth-title{font-size:var(--fs-xl);font-weight:700;margin:0 0 4px;letter-spacing:-.02em}.auth-hint{color:var(--text-muted);font-size:var(--fs-sm);margin:0 0 24px}.auth-field{display:flex;flex-direction:column;gap:6px;margin-bottom:15px}.auth-consent{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);font-weight:400;color:var(--text-secondary);line-height:1.5;margin:4px 0 18px;cursor:pointer}.auth-consent input{margin-top:2px;flex-shrink:0}.auth-foot{margin-top:22px;font-size:var(--fs-xs);color:var(--text-muted);text-align:center}.policy h4{margin:18px 0 6px;font-size:var(--fs-sm);color:var(--text)}.policy p,.policy li{font-size:var(--fs-sm);color:var(--text-secondary);line-height:1.62;margin:0 0 9px}.policy ul{padding-left:20px;margin:0 0 9px}.theme-toggle{display:flex;gap:4px;background:#ffffff0f;border-radius:999px;padding:3px;margin:10px 12px 4px}.theme-toggle button{flex:1;border:none;background:transparent;color:var(--sidebar-text);border-radius:999px;padding:5px 8px;font-size:var(--fs-xs);font-weight:600}.theme-toggle button:hover:not(:disabled){background:#ffffff14;color:#fff}.theme-toggle button.active{background:var(--brand-600);color:#fff}.page-head{margin-bottom:22px}.page-head h2{margin:0;font-size:var(--fs-2xl);font-weight:700;letter-spacing:-.025em}.page-head .greeting-sub{color:var(--text-muted);font-size:var(--fs-sm);margin-top:3px}
