@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&display=swap";:root{--accent: 124 96 196;--accent-2: 91 182 214;--accent-3: 127 200 192;--radius: 16px;--radius-sm: 10px;--sidebar-w: 256px;--sidebar-w-collapsed: 76px;--topbar-h: 64px;--shadow: 0 10px 30px -12px rgba(20, 20, 50, .25);--shadow-sm: 0 4px 14px -8px rgba(20, 20, 50, .3);--trans: .22s cubic-bezier(.4, 0, .2, 1);--shadow-md: 0 8px 24px -10px rgba(20, 20, 50, .2);--grad-brand: linear-gradient(135deg, rgb(var(--accent)), rgb(var(--accent-2)));font-synthesis:none}:root,[data-theme=light]{--bg: 244 245 250;--bg-2: 255 255 255;--surface: 255 255 255;--surface-2: 248 249 253;--text: 28 30 44;--text-muted: 110 116 140;--border: 228 230 240;--positive: 22 163 110;--negative: 220 70 80;--warning: 230 160 30;--sidebar-bg: 255 255 255}[data-theme=dark]{--bg: 15 17 28;--bg-2: 21 24 38;--surface: 25 28 44;--surface-2: 31 35 54;--text: 232 235 245;--text-muted: 150 156 180;--border: 44 49 72;--positive: 52 200 140;--negative: 240 110 120;--warning: 240 190 80;--sidebar-bg: 19 22 36;--shadow: 0 10px 30px -12px rgba(0, 0, 0, .6)}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:IBM Plex Sans,Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;background:rgb(var(--bg));color:rgb(var(--text));-webkit-font-smoothing:antialiased;transition:background var(--trans),color var(--trans)}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}button{font-family:inherit;cursor:pointer}input,select,textarea{font-family:inherit}a{color:inherit}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:rgb(var(--border));border-radius:20px}::-webkit-scrollbar-track{background:transparent}.auth-wrap{min-height:100%;display:grid;place-items:center;padding:24px;background:radial-gradient(900px 480px at 0% 0%,rgba(var(--accent) / .1),transparent 55%),radial-gradient(820px 460px at 100% 100%,rgba(var(--accent-3) / .1),transparent 55%),rgb(var(--bg))}.auth-shell{width:100%;max-width:920px;display:grid;grid-template-columns:1.05fr 1fr;background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:22px;box-shadow:var(--shadow);overflow:hidden;animation:rise .45s var(--trans) both}.auth-brand{position:relative;padding:44px 40px;color:#fff;display:flex;flex-direction:column;justify-content:space-between;gap:30px;background:radial-gradient(560px 280px at 88% -12%,rgba(255,255,255,.18),transparent 60%),linear-gradient(152deg,#4b3b7a,#5a4a90 46%,#3f7e86 128%);overflow:hidden}.auth-brand:after{content:"";position:absolute;right:-80px;bottom:-80px;width:250px;height:250px;border-radius:50%;border:30px solid rgba(255,255,255,.06)}.auth-brand .ab-top{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand .ab-top .mark{width:44px;height:44px;border-radius:12px;background:#fff;padding:3px}.auth-brand .ab-name{font-weight:800;font-size:1.05rem;line-height:1.15}.auth-brand .ab-name small{display:block;font-weight:500;opacity:.82;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;margin-top:2px}.auth-brand h2{font-size:1.72rem;line-height:1.22;letter-spacing:-.02em;position:relative;z-index:1}.auth-brand .ab-sub{opacity:.86;font-size:.95rem;line-height:1.55;margin-top:10px}.auth-bullets{display:flex;flex-direction:column;gap:13px;position:relative;z-index:1;margin:0;padding:0}.auth-bullets li{list-style:none;display:flex;align-items:center;gap:11px;font-size:.92rem;opacity:.96}.auth-bullets .bi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:#ffffff29;flex:none}.auth-form{padding:46px 42px;display:flex;flex-direction:column;justify-content:center}.auth-mini{display:none;align-items:center;gap:11px;margin-bottom:20px}.auth-mini .mark{width:38px;height:38px;border-radius:11px}.auth-mini strong{font-size:.95rem;line-height:1.15}.auth-title{font-size:1.5rem;letter-spacing:-.01em}.auth-sub{color:rgb(var(--text-muted));font-size:.92rem;margin:7px 0 22px}.auth-tabs{display:flex;gap:6px;background:rgb(var(--surface-2));padding:5px;border-radius:12px;margin-bottom:20px}.auth-tabs button{flex:1;border:0;background:transparent;padding:10px;border-radius:9px;color:rgb(var(--text-muted));font-weight:600;transition:var(--trans)}.auth-tabs button.active{background:rgb(var(--surface));color:rgb(var(--accent));box-shadow:var(--shadow-sm)}.input-wrap{position:relative}.input-wrap .input{padding-right:44px}.input-wrap .eye{position:absolute;right:7px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:rgb(var(--text-muted));width:34px;height:34px;display:grid;place-items:center;border-radius:8px;cursor:pointer;transition:var(--trans)}.input-wrap .eye:hover{background:rgb(var(--surface-2));color:rgb(var(--text))}.auth-foot{color:rgb(var(--text-muted));font-size:.78rem;margin-top:20px;text-align:center}.auth-divider{display:flex;align-items:center;gap:12px;color:rgb(var(--text-muted));font-size:.8rem;margin:2px 0}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:rgb(var(--border))}.splash{min-height:100%;display:grid;place-items:center;background:rgb(var(--bg))}.splash .box{display:flex;flex-direction:column;align-items:center;gap:16px;color:rgb(var(--text-muted))}@media (max-width: 760px){.auth-shell{grid-template-columns:1fr;max-width:430px}.auth-brand{display:none}.auth-form{padding:34px 26px}.auth-mini{display:flex}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.app-shell{display:flex;min-height:100%}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w-collapsed);background:linear-gradient(185deg,#4b3b7a,#43356d 55%,#382c5e);border-right:0;box-shadow:6px 0 30px -16px #1412328c;color:#fff;display:flex;flex-direction:column;z-index:50;transition:width var(--trans);overflow:hidden}[data-theme=dark] .sidebar{background:linear-gradient(185deg,#2b2350,#221c41 60%,#1b1636)}.sidebar.open{width:var(--sidebar-w)}.sidebar-head{height:var(--topbar-h);display:flex;align-items:center;gap:12px;padding:0 18px;border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap}.sidebar-head .icon-btn{background:#ffffff24;border-color:#ffffff38;color:#fff}.sidebar-head .icon-btn:hover{background:#ffffff3d}.sidebar-head .mark{min-width:40px;width:40px;height:40px;border-radius:11px}.sidebar-head .brand{font-weight:800;font-size:.98rem;line-height:1.05;color:#fff;opacity:0;transition:opacity var(--trans)}.sidebar.open .brand{opacity:1}.sidebar-head .brand small{display:block;font-weight:600;font-size:.66rem;color:#ffffffb8;letter-spacing:.08em;text-transform:uppercase}.nav{display:flex;flex-direction:column;gap:3px;padding:12px;flex:1;overflow-y:auto;scrollbar-width:none}.nav::-webkit-scrollbar{width:0;height:0;display:none}.nav-section{font-size:.64rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:#ffffff80;padding:10px 12px 4px;white-space:nowrap;opacity:0;transition:var(--trans)}.sidebar.open .nav-section{opacity:1}.nav-item{display:flex;align-items:center;gap:14px;padding:10px 13px;border-radius:12px;border:0;background:transparent;width:100%;color:#ffffffbd;font-weight:600;font-size:.92rem;white-space:nowrap;transition:var(--trans);position:relative}.nav-item svg{min-width:22px}.nav-item span{opacity:0;transition:var(--trans)}.sidebar.open .nav-item span{opacity:1}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#ffffff29;color:#fff}.nav-item.active:before{content:"";position:absolute;left:0;top:18%;bottom:18%;width:3px;border-radius:4px;background:#fff}.sidebar:not(.open) .sidebar-head{padding:0;justify-content:center}.sidebar:not(.open) .nav{padding:12px 0;align-items:center}.sidebar:not(.open) .nav-item{width:52px;justify-content:center;padding:11px 0;gap:0}.sidebar:not(.open) .nav-item span{display:none}.sidebar:not(.open) .nav-section{display:none}.sidebar:not(.open) .nav-item.active:before{display:none}.sidebar:not(.open) .sidebar-head .brand{display:none}.main{flex:1;margin-left:var(--sidebar-w-collapsed);min-width:0;display:flex;flex-direction:column;transition:margin var(--trans)}.main.open{margin-left:var(--sidebar-w)}.topbar{position:sticky;top:0;z-index:30;height:var(--topbar-h);display:flex;align-items:center;gap:14px;padding:0 20px;background:rgb(var(--bg));border-bottom:1px solid rgb(var(--border))}.topbar .page-title{font-size:1.15rem;font-weight:700;letter-spacing:-.01em}.topbar .spacer{flex:1}.icon-btn{display:inline-grid;place-items:center;width:40px;height:40px;border-radius:11px;border:1px solid rgb(var(--border));background:rgb(var(--surface));color:rgb(var(--text));transition:var(--trans)}.icon-btn:hover{background:rgb(var(--surface-2));transform:translateY(-1px)}.content{padding:24px 28px;max-width:1680px;width:100%;margin:0 auto}body,.card,.topbar,.table-wrap,table.tbl,table.tbl th,table.tbl td,.chip,.badge,.tab,.modal,.profile-menu,.profile-btn,.section-title,.field label,.m-label,.m-foot{transition:background-color var(--trans),border-color var(--trans),color var(--trans),box-shadow var(--trans)}.profile{position:relative}.profile-btn{display:flex;align-items:center;gap:6px;border:1px solid rgb(var(--border));background:rgb(var(--surface));border-radius:999px;padding:4px 9px 4px 4px;color:rgb(var(--text-muted));cursor:pointer}.profile-btn:hover{background:rgb(var(--surface-2))}.avatar{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--grad-brand);color:#fff;font-weight:800;font-size:.9rem;flex:none}.avatar.lg{width:42px;height:42px;font-size:1.05rem}.profile-menu{position:absolute;right:0;top:calc(100% + 8px);width:252px;background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:14px;box-shadow:var(--shadow);padding:8px;z-index:60;animation:pop .18s var(--trans)}.pm-head{display:flex;align-items:center;gap:11px;padding:8px 10px 12px;border-bottom:1px solid rgb(var(--border));margin-bottom:6px}.pm-item{display:flex;align-items:center;gap:11px;width:100%;border:0;background:transparent;padding:10px;border-radius:9px;color:rgb(var(--text));font-weight:600;font-size:.9rem;cursor:pointer;transition:var(--trans);text-align:left}.pm-item:hover{background:rgb(var(--surface-2))}.pm-item.danger{color:rgb(var(--negative))}.pm-item.danger:hover{background:rgb(var(--negative) / .1)}.pm-sep{height:1px;background:rgb(var(--border));margin:6px 4px}.card{background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:var(--radius);box-shadow:var(--shadow-sm)}.card-pad{padding:18px 20px}.section-title{display:flex;align-items:center;gap:10px;margin:26px 0 14px;font-size:1.05rem;font-weight:700}.section-title .bar{width:4px;height:18px;border-radius:4px;background:var(--grad-brand)}.grid{display:grid;gap:16px}.metrics-grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}.cards-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.metric{position:relative;overflow:hidden;background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-sm);transition:var(--trans);animation:rise .4s var(--trans) both}.metric:after{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:var(--grad-brand);opacity:0;transition:var(--trans)}.metric:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:rgb(var(--accent) / .35)}.metric:hover:after{opacity:.9}.metric .m-top{display:flex;align-items:center;justify-content:space-between}.metric .m-label{color:rgb(var(--text-muted));font-size:.82rem;font-weight:600}.metric .m-ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;color:#fff;box-shadow:0 7px 16px -7px #00000080}.metric .m-value{font-size:1.62rem;font-weight:800;margin-top:12px;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.metric .m-foot{font-size:.76rem;color:rgb(var(--text-muted));margin-top:4px}.metric .m-value.pos{color:rgb(var(--positive))}.metric .m-value.neg{color:rgb(var(--negative))}.metrics-grid .metric:nth-child(1){animation-delay:.02s}.metrics-grid .metric:nth-child(2){animation-delay:.06s}.metrics-grid .metric:nth-child(3){animation-delay:.1s}.metrics-grid .metric:nth-child(4){animation-delay:.14s}.metrics-grid .metric:nth-child(5){animation-delay:.18s}.metrics-grid .metric:nth-child(6){animation-delay:.22s}.metrics-grid .metric:nth-child(7){animation-delay:.26s}.metrics-grid .metric:nth-child(8){animation-delay:.3s}.metrics-grid .metric:nth-child(9){animation-delay:.34s}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:.8rem;font-weight:600;color:rgb(var(--text-muted))}.input,.select{width:100%;padding:11px 13px;background:rgb(var(--surface-2));border:1px solid rgb(var(--border));border-radius:var(--radius-sm);color:rgb(var(--text));font-size:.92rem;transition:var(--trans)}.input:focus,.select:focus{outline:none;border-color:rgb(var(--accent));box-shadow:0 0 0 3px rgb(var(--accent) / .15)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 16px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:700;font-size:.9rem;transition:var(--trans)}.btn:hover{transform:translateY(-1px)}.btn:active{transform:translateY(0)}.btn-primary{background:rgb(var(--accent));color:#fff}.btn-primary:hover{background:rgb(var(--accent) / .9);box-shadow:var(--shadow-sm)}.btn-ghost{background:rgb(var(--surface));border-color:rgb(var(--border));color:rgb(var(--text))}.btn-ghost:hover{background:rgb(var(--surface-2))}.btn-danger{background:rgb(var(--negative));color:#fff}.btn-sm{padding:7px 11px;font-size:.82rem;border-radius:9px}.btn-primary:hover{box-shadow:var(--shadow-md)}.btn:focus-visible,.icon-btn:focus-visible,.nav-item:focus-visible,.tab:focus-visible,.auth-tabs button:focus-visible{outline:2px solid rgb(var(--accent));outline-offset:2px}.tabs{display:flex;gap:6px;flex-wrap:wrap;border-bottom:1px solid rgb(var(--border));margin-bottom:18px}.tab{border:0;background:transparent;padding:11px 16px;font-weight:600;color:rgb(var(--text-muted));border-bottom:2px solid transparent;transition:var(--trans)}.tab:hover{color:rgb(var(--text))}.tab.active{color:rgb(var(--accent));border-bottom-color:rgb(var(--accent))}.table-wrap{overflow-x:auto;border-radius:var(--radius);border:1px solid rgb(var(--border));box-shadow:var(--shadow-sm)}table.tbl{width:100%;border-collapse:collapse;font-size:.88rem;background:rgb(var(--surface))}table.tbl th{position:sticky;top:0;z-index:1;text-align:left;padding:13px 14px;background:rgb(var(--surface-2));color:rgb(var(--text-muted));font-size:.74rem;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap}table.tbl td{padding:12px 14px;border-top:1px solid rgb(var(--border));white-space:nowrap;font-variant-numeric:tabular-nums}table.tbl tbody tr{transition:var(--trans)}table.tbl tbody tr:nth-child(2n) td{background:rgb(var(--surface-2) / .35)}table.tbl tbody tr:hover td{background:rgb(var(--accent) / .07)}.badge{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:.74rem;font-weight:700}.badge.green{background:rgb(var(--positive) / .15);color:rgb(var(--positive))}.badge.red{background:rgb(var(--negative) / .15);color:rgb(var(--negative))}.badge.amber{background:rgb(var(--warning) / .18);color:rgb(var(--warning))}.badge.blue{background:rgb(var(--accent-2) / .18);color:rgb(var(--accent-2))}.badge.violet{background:rgb(var(--accent) / .16);color:rgb(var(--accent))}.chip{padding:3px 9px;border-radius:8px;font-size:.72rem;font-weight:700;background:rgb(var(--surface-2));color:rgb(var(--text-muted))}.empty{text-align:center;padding:40px 20px;color:rgb(var(--text-muted))}.empty .ic{width:56px;height:56px;border-radius:16px;display:grid;place-items:center;margin:0 auto 14px;background:rgb(var(--surface-2))}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#080a1699;display:grid;place-items:center;padding:20px;animation:fade .15s ease}.modal{width:100%;max-width:520px;background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:var(--radius);box-shadow:var(--shadow);max-height:90vh;display:flex;flex-direction:column;animation:pop .25s var(--trans)}.modal.lg{max-width:680px}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:18px 20px;border-bottom:1px solid rgb(var(--border))}.modal-body{padding:20px;overflow-y:auto}.modal-foot{padding:16px 20px;border-top:1px solid rgb(var(--border));display:flex;gap:10px;justify-content:flex-end}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1 / -1}.switch{display:flex;align-items:center;gap:10px;cursor:pointer;-webkit-user-select:none;user-select:none}.switch input{display:none}.switch .track{width:42px;height:24px;border-radius:999px;background:rgb(var(--border));position:relative;transition:var(--trans)}.switch .track:after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:var(--trans);box-shadow:0 1px 3px #0000004d}.switch input:checked+.track{background:rgb(var(--accent))}.switch input:checked+.track:after{transform:translate(18px)}.toast-wrap{position:fixed;bottom:22px;right:22px;z-index:200;display:flex;flex-direction:column;gap:10px}.toast{display:flex;align-items:center;gap:10px;background:rgb(var(--surface));border:1px solid rgb(var(--border));border-left:4px solid rgb(var(--accent));padding:13px 16px;border-radius:12px;box-shadow:var(--shadow);animation:slideIn .3s var(--trans);max-width:340px}.toast.ok{border-left-color:rgb(var(--positive))}.toast.warn{border-left-color:rgb(var(--warning))}.toast.err{border-left-color:rgb(var(--negative))}.tut-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;pointer-events:none}.tut-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#06081299;pointer-events:auto}.tut-pop{position:fixed;z-index:310;pointer-events:auto;width:320px;max-width:calc(100vw - 32px);background:rgb(var(--surface));border:1px solid rgb(var(--border));border-radius:14px;box-shadow:var(--shadow);padding:18px;animation:pop .25s var(--trans)}.tut-step{font-size:.72rem;color:rgb(var(--accent));font-weight:800;text-transform:uppercase;letter-spacing:.06em}.tut-title{font-size:1.05rem;margin:6px 0 8px}.tut-text{font-size:.88rem;color:rgb(var(--text-muted));line-height:1.5}.tut-foot{display:flex;align-items:center;justify-content:space-between;margin-top:16px;gap:10px}.tut-dots{display:flex;gap:5px}.tut-dots i{width:7px;height:7px;border-radius:50%;background:rgb(var(--border));display:block}.tut-dots i.on{background:rgb(var(--accent))}.tut-highlight{position:fixed;z-index:305;border:2px solid rgb(var(--accent));border-radius:12px;box-shadow:0 0 0 9999px #06081299;pointer-events:none;transition:all var(--trans)}.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.muted{color:rgb(var(--text-muted))}.mt{margin-top:18px}.right{text-align:right}.nowrap{white-space:nowrap}.small{font-size:.8rem}.crit-row td{background:rgb(var(--negative) / .06)!important}@keyframes pop{0%{opacity:0;transform:scale(.96) translateY(6px)}to{opacity:1;transform:none}}@keyframes fade{0%{opacity:0}to{opacity:1}}@keyframes rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes slideIn{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:none}}@keyframes spin{to{transform:rotate(360deg)}}.spin{animation:spin 1s linear infinite}.backdrop-mobile,.mobile-only{display:none}@media (max-width: 860px){.sidebar{transform:translate(-100%);width:var(--sidebar-w);transition:transform var(--trans)}.sidebar.open{transform:translate(0)}.main,.main.open{margin-left:0}.backdrop-mobile.show{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;z-index:40}.mobile-only{display:inline-grid}.form-grid{grid-template-columns:1fr}.content{padding:16px}}@media print{.app-shell{display:block!important}.sidebar,.main,.no-print,.toast-wrap,.overlay,.tut-overlay{display:none!important}body{background:#fff!important;color:#000!important}.print-report{display:block!important}@page{margin:14mm}}.print-report{display:none}
