:root{--bg: #0b0c0f;--surface-1: #141519;--surface-2: #1b1d22;--surface-3: #23262c;--chrome: rgba(20, 21, 25, .72);--hairline: rgba(255, 255, 255, .08);--hairline-strong: rgba(255, 255, 255, .14);--text: #f4f5f7;--text-2: #a7adb8;--text-3: #6c727d;--blue: #0a84ff;--blue-hover: #339dff;--blue-soft: rgba(10, 132, 255, .16);--green: #30d158;--green-soft: rgba(48, 209, 88, .16);--red: #ff453a;--red-soft: rgba(255, 69, 58, .16);--orange: #ff9f0a;--orange-soft: rgba(255, 159, 10, .16);--purple: #bf5af2;--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 6px 20px rgba(0, 0, 0, .28);--shadow-3: 0 18px 50px rgba(0, 0, 0, .45);--ring: 0 0 0 3.5px var(--blue-soft);--r-sm: 8px;--r-md: 12px;--r-lg: 16px;--r-xl: 22px;--sidebar-w: 244px;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 20px;--s6: 24px;--s7: 32px;--s8: 44px;--ease: cubic-bezier(.32, .72, 0, 1);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur-1: .12s;--dur-2: .2s;--dur-3: .32s;--font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "SF Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:dark}:root[data-theme=light]{--bg: #f2f2f4;--surface-1: #ffffff;--surface-2: #f6f6f8;--surface-3: #ececef;--chrome: rgba(255, 255, 255, .78);--hairline: rgba(0, 0, 0, .08);--hairline-strong: rgba(0, 0, 0, .14);--text: #0a0a0c;--text-2: #52555e;--text-3: #8b909a;--blue: #007aff;--blue-hover: #0a6fe0;--shadow-1: 0 1px 2px rgba(20, 24, 40, .06);--shadow-2: 0 6px 20px rgba(20, 24, 40, .09);--shadow-3: 0 18px 50px rgba(20, 24, 40, .16);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font);background:var(--bg);color:var(--text);font-size:14px;line-height:1.5;letter-spacing:-.006em;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}html{scroll-behavior:auto}}::selection{background:var(--blue-soft)}*{scrollbar-width:thin;scrollbar-color:var(--surface-3) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:999px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--hairline-strong);background-clip:padding-box}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.02em}a{color:var(--blue);text-decoration:none}button,input,select,textarea{font-family:inherit}.app{display:grid;grid-template-columns:var(--sidebar-w) 1fr;min-height:100dvh}.sidebar{position:sticky;top:0;height:100dvh;display:flex;flex-direction:column;gap:2px;padding:var(--s5) var(--s3);background:var(--chrome);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-right:1px solid var(--hairline);z-index:30}.side-head{padding:var(--s2) var(--s3) var(--s5);font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--text-3);display:flex;align-items:center;gap:9px}.side-head .who{width:26px;height:26px;border-radius:8px;display:grid;place-items:center;font-weight:600;font-size:12px;color:#fff;background:linear-gradient(160deg,var(--blue),var(--purple))}.nav-item{display:flex;align-items:center;gap:var(--s3);padding:9px var(--s3);border-radius:var(--r-sm);color:var(--text-2);font-weight:500;font-size:14px;transition:background var(--dur-1) var(--ease),color var(--dur-1) var(--ease);cursor:pointer;-webkit-user-select:none;user-select:none}.nav-item:hover{background:var(--surface-3);color:var(--text)}.nav-item.active{background:var(--blue-soft);color:var(--blue)}.nav-item .ic{width:18px;height:18px;flex-shrink:0;opacity:.9}.nav-item.active .ic{opacity:1}.side-spacer{flex:1}.content{min-width:0;display:flex;flex-direction:column}.content-inner{width:100%;max-width:1360px;margin:0 auto;padding:var(--s7) var(--s7) 96px;flex:1}.page{animation:pageIn var(--dur-3) var(--ease-out)}@keyframes pageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-bottom:var(--s6);min-height:40px}.topbar h1{font-size:26px;font-weight:640}.topbar .actions{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.mobile-bar,.drawer-backdrop{display:none}@media (max-width: 860px){.app{grid-template-columns:1fr}.sidebar{position:fixed;left:0;top:0;bottom:0;width:280px;transform:translate(-100%);transition:transform var(--dur-3) var(--ease);box-shadow:var(--shadow-3)}.app.drawer-open .sidebar{transform:none}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:25;background:#00000073;opacity:0;pointer-events:none;transition:opacity var(--dur-2) var(--ease);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app.drawer-open .drawer-backdrop{opacity:1;pointer-events:auto}.mobile-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:var(--s3) var(--s4);position:sticky;top:0;z-index:20;background:var(--chrome);backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border-bottom:1px solid var(--hairline)}.mobile-bar .menu-btn{width:40px;height:40px;border-radius:var(--r-sm);display:grid;place-items:center;border:none;cursor:pointer;background:transparent;color:var(--text)}.mobile-bar .menu-btn:active{background:var(--surface-3)}.mobile-bar .title{font-size:17px;font-weight:640}.content-inner{padding:var(--s4) var(--s4) 88px}.topbar{flex-wrap:wrap}.topbar h1{display:none}}.card{background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:var(--s6)}.card.tight{padding:var(--s4)}.card-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin-bottom:var(--s4)}.grid{display:grid;gap:var(--s4)}.auto{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.auto-lg{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}.two{grid-template-columns:1fr 1fr}@media (max-width: 720px){.two{grid-template-columns:1fr}}.stack{display:flex;flex-direction:column;gap:var(--s4)}.row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}.between{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.grow{flex:1;min-width:0}.mono{font-family:var(--mono);font-size:12.5px}.dim{color:var(--text-2)}.faint{color:var(--text-3)}.num{font-variant-numeric:tabular-nums}.stat{display:flex;flex-direction:column;gap:6px}.stat .k{font-size:12.5px;color:var(--text-2);font-weight:500}.stat .v{font-size:28px;font-weight:640;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.1}.stat .v.sm{font-size:19px}.stat .u{font-size:14px;color:var(--text-3);font-weight:500;margin-left:2px}.stat .note{font-size:12.5px;color:var(--text-3)}.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.01em;background:var(--surface-3);color:var(--text-2)}.badge.blue{background:var(--blue-soft);color:var(--blue)}.badge.green{background:var(--green-soft);color:var(--green)}.badge.red{background:var(--red-soft);color:var(--red)}.badge.orange{background:var(--orange-soft);color:var(--orange)}.dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot.green{background:var(--green);box-shadow:0 0 10px var(--green-soft)}.dot.orange{background:var(--orange)}.dot.red{background:var(--red)}.dot.idle{background:var(--text-3)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;height:38px;padding:0 16px;border-radius:var(--r-sm);font-size:14px;font-weight:550;white-space:nowrap;border:1px solid var(--hairline-strong);background:var(--surface-2);color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;transition:background var(--dur-1) var(--ease),transform var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),opacity var(--dur-1) var(--ease)}.btn:hover{background:var(--surface-3)}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn.primary{background:var(--blue);border-color:transparent;color:#fff}.btn.primary:hover{background:var(--blue-hover)}.btn.danger{background:var(--red-soft);border-color:transparent;color:var(--red)}.btn.danger:hover{background:#ff453a42}.btn.ghost{background:transparent;border-color:transparent;color:var(--text-2)}.btn.ghost:hover{background:var(--surface-3);color:var(--text)}.btn.sm{height:32px;padding:0 12px;font-size:13px}.btn.icon{width:38px;padding:0}.btn.block{width:100%}.field{display:flex;flex-direction:column;gap:7px}.field>.lbl{font-size:13px;font-weight:550;color:var(--text-2)}.field .hint{font-size:12px;color:var(--text-3)}.field .err{font-size:12px;color:var(--red)}.input{height:40px;padding:0 13px;width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-sm);font-size:14px;transition:border-color var(--dur-1) var(--ease),background var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}textarea.input{height:auto;padding:10px 13px;resize:vertical;min-height:84px}.input::placeholder{color:var(--text-3)}.input:focus{outline:none;border-color:var(--blue);box-shadow:var(--ring)}.input:disabled{opacity:.55}.input.invalid{border-color:var(--red)}.select{position:relative}.select-btn{height:40px;padding:0 13px;width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:var(--surface-2);color:var(--text);border:1px solid var(--hairline);border-radius:var(--r-sm);font-size:14px;cursor:pointer;text-align:left;transition:border-color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease)}.select-btn:hover{border-color:var(--hairline-strong)}.select-btn:focus-visible{outline:none;border-color:var(--blue);box-shadow:var(--ring)}.select-btn .chev{color:var(--text-3);transition:transform var(--dur-2) var(--ease)}.select.open .select-btn .chev{transform:rotate(180deg)}.select-menu{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:50;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-md);box-shadow:var(--shadow-3);padding:5px;max-height:280px;overflow-y:auto;animation:menuIn var(--dur-2) var(--ease-out)}@keyframes menuIn{0%{opacity:0;transform:translateY(-6px) scale(.98)}to{opacity:1;transform:none}}.opt{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 11px;border-radius:var(--r-sm);font-size:14px;cursor:pointer;color:var(--text)}.opt:hover,.opt.active{background:var(--surface-3)}.opt .check{color:var(--blue)}.switch{--w: 50px;--h: 30px;--pad: 3px;position:relative;width:var(--w);height:var(--h);border-radius:999px;border:none;cursor:pointer;flex-shrink:0;padding:0;background:var(--surface-3);box-shadow:inset 0 0 0 1px var(--hairline),inset 0 1px 2px #00000040;transition:background var(--dur-2) var(--ease-out),box-shadow var(--dur-2) var(--ease-out)}.switch .knob{position:absolute;top:var(--pad);left:var(--pad);width:calc(var(--h) - 2 * var(--pad));height:calc(var(--h) - 2 * var(--pad));border-radius:50%;background:#fff;box-shadow:0 2px 5px #00000059,0 0 0 .5px #0000000f;transition:transform var(--dur-2) var(--ease)}.switch.on{background:var(--blue);box-shadow:inset 0 0 0 1px transparent,0 2px 10px var(--blue-soft)}.switch.on .knob{transform:translate(calc(var(--w) - var(--h)))}.switch:active .knob{width:calc(var(--h) - 2 * var(--pad) + 3px)}.switch:focus-visible{outline:none;box-shadow:var(--ring)}.check-box{width:22px;height:22px;border-radius:7px;flex-shrink:0;border:1.5px solid var(--hairline-strong);background:var(--surface-2);display:grid;place-items:center;cursor:pointer;transition:background var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease);color:#fff}.check-box.on{background:var(--blue);border-color:var(--blue)}.segmented{display:inline-flex;padding:3px;gap:2px;background:var(--surface-2);border:1px solid var(--hairline);border-radius:10px}.segmented button{display:inline-flex;align-items:center;gap:6px;border:none;background:transparent;color:var(--text-2);padding:6px 14px;border-radius:7px;font-size:13px;font-weight:550;cursor:pointer;transition:color var(--dur-1) var(--ease),background var(--dur-2) var(--ease)}.segmented button.on{background:var(--surface-1);color:var(--text);box-shadow:var(--shadow-1)}.table-scroll{overflow-x:auto;margin:0 calc(-1 * var(--s2))}table{width:100%;border-collapse:collapse}th{text-align:left;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);padding:10px var(--s3);white-space:nowrap;border-bottom:1px solid var(--hairline);position:sticky;top:0}td{padding:13px var(--s3);font-size:13.5px;white-space:nowrap;border-bottom:1px solid var(--hairline);font-variant-numeric:tabular-nums}tbody tr{transition:background var(--dur-1) var(--ease)}tbody tr:hover{background:var(--surface-2)}tbody tr:last-child td{border-bottom:none}@media (max-width: 720px){table.responsive,table.responsive thead,table.responsive tbody,table.responsive tr,table.responsive td{display:block;width:100%}table.responsive thead{display:none}table.responsive tr{background:var(--surface-2);border:1px solid var(--hairline);border-radius:var(--r-md);padding:var(--s2) var(--s4);margin-bottom:var(--s3)}table.responsive td{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);border-bottom:1px solid var(--hairline);padding:10px 0;white-space:normal}table.responsive td:last-child{border-bottom:none}table.responsive td:before{content:attr(data-label);font-size:12px;color:var(--text-3);font-weight:550;text-transform:none;letter-spacing:0}table.responsive td:empty{display:none}}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:var(--s5);animation:fade var(--dur-2) var(--ease)}@keyframes fade{0%{opacity:0}to{opacity:1}}.sheet{width:100%;max-width:560px;max-height:88dvh;overflow-y:auto;background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-3);padding:var(--s6);animation:sheetIn var(--dur-3) var(--ease-out)}@keyframes sheetIn{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:none}}.sheet-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--s5)}.sheet-head h2{font-size:20px}@media (max-width: 620px){.overlay{align-items:flex-end;padding:0}.sheet{max-width:none;border-radius:var(--r-xl) var(--r-xl) 0 0;max-height:92dvh;padding:var(--s5) var(--s4) calc(var(--s5) + env(safe-area-inset-bottom));animation:sheetUp var(--dur-3) var(--ease-out)}@keyframes sheetUp{0%{transform:translateY(100%)}to{transform:none}}}.banner{padding:11px 14px;border-radius:var(--r-sm);font-size:13px;border:1px solid transparent}.banner.err{background:var(--red-soft);color:var(--red)}.banner.ok{background:var(--green-soft);color:var(--green)}.banner.warn{background:var(--orange-soft);color:var(--orange)}.banner.info{background:var(--surface-2);color:var(--text-2);border-color:var(--hairline)}.toast-host{position:fixed;z-index:90;bottom:var(--s5);right:var(--s5);display:flex;flex-direction:column;gap:var(--s2)}@media (max-width: 620px){.toast-host{left:var(--s4);right:var(--s4);bottom:calc(var(--s4) + env(safe-area-inset-bottom))}}.toast{padding:12px 15px;border-radius:var(--r-md);font-size:13.5px;font-weight:500;background:var(--surface-1);border:1px solid var(--hairline);box-shadow:var(--shadow-3);display:flex;align-items:center;gap:9px;animation:toastIn var(--dur-3) var(--ease-out)}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.toast .dot{width:7px;height:7px}.toast.ok .dot{background:var(--green)}.toast.err .dot{background:var(--red)}.empty{text-align:center;padding:var(--s8) var(--s4);color:var(--text-3)}.empty .big{font-size:15px;color:var(--text-2);font-weight:550;margin-bottom:6px}.spinner{width:18px;height:18px;border-radius:50%;border:2px solid var(--hairline-strong);border-top-color:var(--blue);animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.section-label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-3);margin:var(--s2) 0 var(--s3)}.login-screen{min-height:100dvh;display:grid;place-items:center;padding:var(--s5);background:radial-gradient(900px 600px at 50% -10%,var(--blue-soft),transparent 70%),var(--bg)}.login-card{width:100%;max-width:380px;padding:var(--s7) var(--s6);background:var(--surface-1);border:1px solid var(--hairline);border-radius:var(--r-xl);box-shadow:var(--shadow-3);animation:pageIn var(--dur-3) var(--ease-out)}
