:root{--bg:#fff;--ink:#061222;--ink-2:#123249;--muted:#5a6b78;--muted-2:#93a3ae;--line:#e4eaee;--line-2:#d2dce2;--surface:#f5f8fa;--surface-2:#edf2f5;--accent:#2d5b75;--accent-bright:#447794;--accent-ink:#2d5b75;--accent-deep:#123249;--accent-soft:#e7eef2;--accent-soft-2:#d2e1e9;--accent-ring:#2d5b7538;--grad-brand:linear-gradient(135deg, #123249 0%, #2d5b75 55%, #447794 120%);--success:#16a34a;--success-soft:#e7f6ec;--warn:#d97706;--warn-soft:#fbf0dd;--danger:#dc2626;--danger-soft:#fceaea;--r-xs:7px;--r-sm:10px;--r-md:14px;--r-lg:18px;--r-xl:26px;--r-pill:999px;--sh-sm:0 2px 4px #0612220f;--sh-md:0 10px 24px -14px #0612222e, 0 4px 10px -6px #06122214;--sh-lg:0 28px 56px -28px #06122257, 0 12px 28px -16px #06122224;--sh-accent:0 14px 30px -10px #2d5b7573, 0 4px 10px -4px #2d5b7552;--font:"Hanken Grotesk", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);background:var(--surface-2);-webkit-font-smoothing:antialiased}button{cursor:pointer;font-family:inherit}input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}::selection{background:var(--accent-soft-2)}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-thumb{background:#d8d8e0 padding-box content-box;border:2px solid #0000;border-radius:99px}.btn{border-radius:var(--r-pill);white-space:nowrap;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;height:44px;padding:0 18px;font-size:14px;font-weight:600;transition:transform 80ms,background .16s,box-shadow .16s;display:inline-flex}.btn:active{transform:translateY(1px)}.btn-sm{height:36px;padding:0 14px;font-size:13px}.btn-lg{height:52px;padding:0 26px;font-size:15px}.btn-accent{color:#fff;box-shadow:var(--sh-accent);background:linear-gradient(135deg,#2d5b75,#123249)}.btn-accent:hover{transform:translateY(-1px);box-shadow:0 18px 36px -12px #2d5b758c}.btn-outline{color:var(--ink);border-color:var(--line-2);background:#fff}.btn-outline:hover{border-color:var(--ink)}.btn-ghost{color:var(--ink);background:0 0;border:none}.btn-ghost:hover{background:var(--surface-2)}.btn-danger{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.btn[disabled]{opacity:.4;pointer-events:none}.card{border:1px solid var(--line);border-radius:var(--r-lg);background:#fff}.card-pad{padding:24px}.hover-lift{transition:transform .18s cubic-bezier(.4,0,.2,1),box-shadow .18s,border-color .18s}.hover-lift:hover{box-shadow:var(--sh-md);border-color:var(--line-2);transform:translateY(-3px)}.field{flex-direction:column;gap:7px;display:flex}.field__label{color:var(--ink-2);font-size:13px;font-weight:600}.field__hint{color:var(--muted);font-size:12px}.input,.select,.textarea{border:1px solid var(--line-2);border-radius:var(--r-sm);width:100%;height:48px;color:var(--ink);background:#fff;padding:0 14px;font-size:14px;transition:border-color .14s,box-shadow .14s}.textarea{resize:vertical;height:auto;padding:13px 14px;line-height:1.5}.input::placeholder,.textarea::placeholder{color:var(--muted-2)}.input:focus,.select:focus,.textarea:focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-ring);outline:none}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6B78' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");background-position:right 14px center;background-repeat:no-repeat;padding-right:40px}.badge{border-radius:var(--r-pill);background:var(--surface-2);color:var(--ink-2);align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge-accent{background:var(--accent-soft);color:var(--accent-ink)}.badge-success{background:var(--success-soft);color:var(--success)}.badge-warn{background:var(--warn-soft);color:var(--warn)}.badge-danger{background:var(--danger-soft);color:var(--danger)}.sidebar{border-right:1px solid var(--line);background:#fff;flex-direction:column;flex-shrink:0;width:220px;height:100vh;padding:20px 12px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar__logo{color:var(--ink);letter-spacing:-.02em;padding:4px 12px 20px;font-size:15px;font-weight:800}.sidebar__section{text-transform:uppercase;letter-spacing:.1em;color:var(--muted-2);padding:14px 12px 4px;font-size:11px;font-weight:700}.sidebar__link{border-radius:var(--r-md);color:var(--muted);align-items:center;gap:10px;padding:9px 12px;font-size:14px;font-weight:600;transition:all .14s;display:flex}.sidebar__link:hover{color:var(--ink);background:var(--surface-2)}.sidebar__link.active{color:var(--accent);background:var(--accent-soft)}.table{border-collapse:collapse;width:100%}.table th{text-align:left;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;border-bottom:1px solid var(--line);padding:10px 16px;font-size:11px;font-weight:700}.table td{border-bottom:1px solid var(--line);color:var(--ink);vertical-align:middle;padding:14px 16px;font-size:14px}.table tr:last-child td{border-bottom:none}.table tbody tr:hover td{background:var(--surface)}.avatar-circle{background:var(--grad-brand);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-weight:800;display:inline-flex}.kpi{flex-direction:column;gap:4px;display:flex}.kpi__val{letter-spacing:-.02em;color:var(--ink);font-size:30px;font-weight:800;line-height:1}.kpi__label{color:var(--muted);font-size:13px;font-weight:500}.alert{border-radius:var(--r-sm);padding:12px 16px;font-size:14px;font-weight:500}.alert-error{background:var(--danger-soft);color:var(--danger)}.alert-success{background:var(--success-soft);color:var(--success)}.admin-shell{min-height:100vh;display:flex}.admin-main{background:var(--surface-2);flex:1;min-width:0}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;padding:28px 32px 0;display:flex}.page-title{letter-spacing:-.02em;color:var(--ink);margin:0;font-size:22px;font-weight:800}.page-body{padding:0 32px 60px}.appbar{border-bottom:1px solid var(--line);z-index:30;background:#fff;align-items:center;gap:18px;height:64px;padding:0 28px;display:flex;position:sticky;top:0}.appbar__nav{align-items:center;gap:2px;display:flex}.appbar__link{border-radius:var(--r-pill);color:var(--muted);padding:8px 14px;font-size:14px;font-weight:600;transition:all .14s}.appbar__link:hover{color:var(--ink);background:var(--surface-2)}.appbar__link.active{color:var(--ink)}.empty-state{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:48px 32px;display:flex}.empty-state__icon{font-size:36px;line-height:1}.empty-state__title{color:var(--ink-2);margin:0;font-size:16px;font-weight:700}.empty-state__desc{color:var(--muted);max-width:320px;margin:0;font-size:14px;line-height:1.6}.toast-wrap{z-index:9999;pointer-events:none;flex-direction:column;gap:10px;display:flex;position:fixed;bottom:28px;right:28px}.toast{border-radius:var(--r-md);box-shadow:var(--sh-lg);pointer-events:all;align-items:center;gap:10px;min-width:220px;max-width:360px;padding:13px 18px;font-size:14px;font-weight:600;animation:.22s cubic-bezier(.2,.7,.3,1) both toastIn;display:flex}.toast-success{background:var(--success);color:#fff}.toast-error{background:var(--danger);color:#fff}.toast-info{background:var(--ink);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(12px)scale(.96)}to{opacity:1;transform:none}}.divider{background:var(--line);height:1px;margin:8px 0}.grid-4{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.grid-3{grid-template-columns:repeat(3,1fr);gap:12px;display:grid}.grid-2{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}@media (max-width:900px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}}@media (max-width:560px){.grid-4{grid-template-columns:1fr 1fr;gap:10px}.grid-3,.grid-2{grid-template-columns:1fr}}.hover-row:hover{background:var(--surface)}.hover-row:last-child{border-bottom:none!important}.table-wrap{-webkit-overflow-scrolling:touch;overflow-x:auto}@media (max-width:768px){.admin-shell{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--line);flex-flow:wrap;gap:4px;width:100%;height:auto;padding:12px;position:static}.sidebar__logo{padding:4px 8px;font-size:14px}.sidebar__section{display:none}.sidebar__link{padding:7px 10px;font-size:13px}.page-header{padding:16px 16px 0}.page-body{padding:0 16px 40px}.admin-main{min-height:0}}@media (max-width:640px){.appbar{gap:10px;padding:0 16px}.appbar__nav{gap:0}.appbar__link{padding:6px 10px;font-size:13px}.kpi__val{font-size:22px}.card-pad{padding:16px}.table th,.table td{padding:10px 12px}}@media (prefers-reduced-motion:no-preference){.fade-in{animation:.3s cubic-bezier(.2,.7,.3,1) both fadeIn}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.dark-theme{--bg:#06080f;--ink:#f0f4ff;--ink-2:#bcc8e0;--muted:#6b7a9a;--muted-2:#3e4a5e;--line:#ffffff12;--line-2:#ffffff21;--surface:#0d0f1e;--surface-2:#06080f;--accent:#4a8fad;--accent-bright:#6eb4d4;--accent-soft:#2d5b752e;--accent-soft-2:#2d5b7559;--accent-ink:#93c5e0;--accent-deep:#2d5b75;--accent-ring:#4a8fad59;--grad-brand:linear-gradient(135deg, #2d5b75 0%, #4a8fad 55%, #6eb4d4 120%);--success:#22c55e;--success-soft:#22c55e26;--warn:#f59e0b;--warn-soft:#f59e0b26;--danger:#ef4444;--danger-soft:#ef444426;--sh-sm:0 2px 10px #00000080;--sh-md:0 8px 32px #0009, 0 0 0 1px #ffffff0d;--sh-lg:0 24px 64px #000c, 0 0 0 1px #ffffff0d;--sh-accent:0 8px 40px #2d5b758c, 0 0 0 1px #4a8fad4d}.dark-theme .card{background:#ffffff0a;border-color:#ffffff14;box-shadow:0 1px 3px #0006,0 0 0 1px #ffffff0d}.dark-theme .card:hover{border-color:#ffffff24;box-shadow:0 4px 20px #00000080,0 0 0 1px #ffffff1a}.dark-theme .input,.dark-theme .select,.dark-theme .textarea{color:var(--ink);background:#ffffff0f;border-color:#ffffff1a}.dark-theme .input::placeholder,.dark-theme .textarea::placeholder{color:var(--muted-2)}.dark-theme .input:focus,.dark-theme .select:focus,.dark-theme .textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring);background:#ffffff17}.dark-theme .select option{color:#f0f4ff;background:#1a1d2e}.dark-theme .btn-outline{color:var(--ink);background:#ffffff12;border-color:#ffffff21}.dark-theme .btn-outline:hover{background:#ffffff1f;border-color:#ffffff38}.dark-theme .btn-ghost{color:var(--ink-2)}.dark-theme .btn-ghost:hover{background:#ffffff14}.dark-theme .appbar{background:#06080feb;border-bottom:1px solid #ffffff12}.dark-theme .badge{color:var(--ink-2);background:#ffffff17;border:1px solid #ffffff14}.dark-theme .badge-accent{background:var(--accent-soft);color:var(--accent-ink)}.dark-theme .badge-success{background:var(--success-soft);color:#4ade80}.dark-theme .badge-warn{background:var(--warn-soft);color:#fcd34d}.dark-theme .badge-danger{background:var(--danger-soft);color:#f87171}.dark-theme .alert-error{background:var(--danger-soft);color:#f87171;border:1px solid #ef444440}.dark-theme .alert-success{background:var(--success-soft);color:#4ade80;border:1px solid #22c55e40}.dark-theme .table th{color:var(--muted);border-bottom-color:var(--line);background:#ffffff08}.dark-theme .table td{color:var(--ink);border-bottom-color:var(--line)}.dark-theme .table tbody tr:hover td{background:#ffffff08}.dark-theme .hover-row:hover{background:#ffffff0a!important}.portal-bg{background-color:var(--surface-2);background-image:radial-gradient(70% 35% at 50% -5%,#2d5b7547,#0000),radial-gradient(#4a8fad0f 1px,#0000 1px);background-size:100% 100%,28px 28px;min-height:100vh}.gradient-text{background:linear-gradient(90deg,#fff 30%,#93c5e0 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glow-card{background:#2d5b751f!important;border-color:#4a8fad4d!important;box-shadow:0 0 0 1px #4a8fad33,0 8px 32px #2d5b7533!important}.grad-border{border-radius:var(--r-lg);background:#ffffff0a;border:1px solid #ffffff14;position:relative}.grad-border:before{content:"";border-radius:inherit;-webkit-mask-composite:xor;pointer-events:none;background:linear-gradient(135deg,#4a8fad80,#2d5b751a);padding:1px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#fff 0 0),linear-gradient(#fff 0 0);-webkit-mask-position:0 0,0 0;-webkit-mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.dark-theme .divider{background:#ffffff12}.dark-theme .hover-lift:hover{border-color:#ffffff24;box-shadow:0 12px 40px #0009,0 0 0 1px #ffffff1f}.dark-theme a{color:inherit}@media (max-width:640px){.portal-bg{background-image:radial-gradient(120% 30% at 50% -5%,#2d5b7538,#0000),radial-gradient(#4a8fad0d 1px,#0000 1px);background-size:100% 100%,20px 20px}}
