@font-face{font-family:Sora;src:url(/fonts/sora_regular.ttf) format("truetype");font-weight:400}@font-face{font-family:Sora;src:url(/fonts/sora_semibold.ttf) format("truetype");font-weight:600}@font-face{font-family:Sora;src:url(/fonts/sora_bold.ttf) format("truetype");font-weight:700}:root{--obsidian: #090B12;--graphite: #141824;--raised: #1B2133;--violet: #8665FF;--cyan: #52DFFF;--white: #F4F6FC;--grey: #9299AA;--danger: #E5534B;--warning: #D9A13B;--hairline: linear-gradient(90deg, rgba(134,101,255,.55), rgba(82,223,255,.55));--grad: linear-gradient(90deg, #8665FF, #52DFFF)}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:radial-gradient(700px 420px at 100% -80px,rgba(82,223,255,.07),transparent 60%),radial-gradient(800px 500px at -120px 108%,rgba(134,101,255,.09),transparent 60%),var(--obsidian);background-attachment:fixed;color:var(--white);font-family:Sora,system-ui,sans-serif;font-size:14px}a{color:var(--cyan);text-decoration:none}a:hover{text-decoration:underline}h1{font-size:24px;margin:0 0 4px}h2{font-size:20px;margin:0 0 8px}h3{font-size:16px;margin:0 0 6px}.muted{color:var(--grey)}.small{font-size:12px}.danger-text{color:var(--danger)}.warn-text{color:var(--warning)}.cyan-text{color:var(--cyan)}.layout{display:flex;min-height:100vh}.sidenav{width:248px;flex:0 0 248px;background:var(--graphite);border-right:1px solid var(--raised);padding:20px 14px;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column;z-index:40}.sidenav .brand{display:flex;align-items:center;gap:10px;padding:0 8px 6px}.sidenav .brand img{width:34px;height:34px}.sidenav .brand .name{font-weight:700;letter-spacing:2px;font-size:16px}.sidenav .brand .sub{color:var(--cyan);font-size:10px;letter-spacing:1px;font-weight:600}.sidenav .tagline{padding:0 8px 16px;color:var(--grey);font-size:11px;line-height:1.45}.sidenav nav{display:flex;flex-direction:column;gap:2px}.sidenav nav a{display:flex;align-items:center;gap:10px;color:var(--grey);padding:9px 12px;border-radius:10px;font-weight:600;font-size:13.5px}.sidenav nav a svg{flex:0 0 auto}.sidenav nav a:hover{color:var(--white);text-decoration:none;background:var(--raised)}.sidenav nav a.active{color:var(--white);background:linear-gradient(90deg,#8665ffe6,#52dfff8c);box-shadow:0 4px 14px #8665ff40}.sidenav .foot{margin-top:auto;padding:14px 8px 2px;border-top:1px solid var(--raised)}.mini-profile{display:flex;align-items:center;gap:10px}.avatar{width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:13px;flex:0 0 auto}.main-col{flex:1;min-width:0;display:flex;flex-direction:column}.topbar{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:12px 28px;background:#090b12e0;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--raised)}.topbar .crumb{color:var(--grey);font-size:12px}.topbar .search{margin-left:auto;position:relative}.topbar .search input{background:var(--graphite);border:1px solid var(--raised);border-radius:999px;color:var(--white);padding:9px 14px 9px 36px;font-family:inherit;width:240px}.topbar .search input:focus{outline:none;border-color:var(--cyan)}.topbar .search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--grey)}.search-results{position:absolute;right:0;top:calc(100% + 8px);width:320px;max-height:340px;overflow-y:auto;background:var(--graphite);border:1px solid var(--raised);border-radius:14px;padding:8px;box-shadow:0 18px 40px #00000080}.search-results a{display:block;padding:8px 10px;border-radius:8px;color:var(--white)}.search-results a:hover{background:var(--raised);text-decoration:none}.icon-btn{position:relative;background:var(--graphite);border:1px solid var(--raised);color:var(--grey);width:38px;height:38px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-btn:hover{color:var(--white)}.icon-btn .dot{position:absolute;top:8px;right:9px;width:8px;height:8px;border-radius:50%;background:var(--violet)}.main{flex:1;padding:26px 28px 40px;max-width:1320px;width:100%;margin:0 auto}.pagehead{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:18px;gap:12px;flex-wrap:wrap}.menu-btn,.scrim{display:none}.card{position:relative;background:var(--graphite);border:1px solid var(--raised);border-radius:18px;padding:18px}.card:before{content:"";position:absolute;inset:0 0 auto 0;height:1px;border-radius:18px 18px 0 0;background:var(--hairline);opacity:.7}.grid{display:grid;gap:14px}.grid.cols-4{grid-template-columns:repeat(4,1fr)}.grid.cols-3{grid-template-columns:repeat(3,1fr)}.grid.cols-2{grid-template-columns:repeat(2,1fr)}.grid.detail{grid-template-columns:1fr 320px;align-items:start}.stat .value{font-size:30px;font-weight:700}.stat .label{color:var(--grey);font-size:12px;margin-top:2px}.stat .icon{color:var(--cyan);margin-bottom:8px}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse}th{text-align:left;color:var(--grey);font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.6px;padding:10px 12px;border-bottom:1px solid var(--raised);white-space:nowrap}td{padding:11px 12px;border-bottom:1px solid var(--raised);vertical-align:middle}tr:last-child td{border-bottom:none}tbody tr:hover{background:#1b213373}tr.clickable{cursor:pointer}.pagination{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:14px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--grad);color:var(--white);border:none;border-radius:999px;padding:10px 20px;font-family:inherit;font-size:14px;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.ghost{background:transparent;border:1px solid #3A4157;color:var(--grey);border-radius:999px;padding:9px 16px}.btn.ghost:hover{color:var(--white)}.btn.danger{background:var(--danger);border-radius:999px;padding:9px 16px}.btn.small{padding:6px 12px;font-size:12px}.pill{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap}.pill.cyan{background:#52dfff26;color:var(--cyan)}.pill.grey{background:var(--raised);color:var(--grey)}.pill.danger{background:#e5534b26;color:var(--danger)}.pill.warning{background:#d9a13b26;color:var(--warning)}.pill.violet{background:#8665ff38;color:#b7a6ff}.pill.demo{background:var(--grad);color:#fff;letter-spacing:.8px}.switch{position:relative;width:42px;height:24px;border-radius:999px;background:var(--raised);border:1px solid #3A4157;cursor:pointer;flex:0 0 auto;transition:background .15s}.switch:after{content:"";position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:var(--grey);transition:all .15s}.switch.on{background:#8665ff8c;border-color:var(--violet)}.switch.on:after{left:20px;background:#fff}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field label{font-size:12px;color:var(--grey);font-weight:600}.field input,.field select,.field textarea{background:var(--obsidian);border:1px solid var(--raised);border-radius:12px;color:var(--white);padding:11px 12px;font-family:inherit;font-size:14px;width:100%}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px #52dfff26}.field .err{color:var(--danger);font-size:12px}.field.invalid input,.field.invalid select{border-color:var(--danger)}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.check{display:flex;align-items:center;gap:8px;color:var(--grey);font-size:13px;cursor:pointer}.check input{accent-color:var(--violet);width:16px;height:16px}.input-icon{position:relative}.input-icon input{padding-right:44px}.input-icon button{position:absolute;right:6px;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--grey);cursor:pointer;display:inline-flex;padding:6px}.errorbox{background:#e5534b1a;border:1px solid var(--danger);border-radius:14px;padding:14px 16px}.noticebox{background:#52dfff14;border:1px solid rgba(82,223,255,.5);border-radius:14px;padding:14px 16px}.demo-note{background:#8665ff1a;border:1px solid rgba(134,101,255,.45);border-radius:14px;padding:12px 14px;font-size:13px}.empty{text-align:center;padding:40px 16px;color:var(--grey)}.empty .icon{color:var(--violet);margin-bottom:10px}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--raised);border-top-color:var(--violet);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(100deg,var(--graphite) 40%,var(--raised) 50%,var(--graphite) 60%);background-size:200% 100%;animation:shimmer 1.3s infinite;border-radius:16px;height:74px}@keyframes shimmer{to{background-position-x:-200%}}.loadbar{height:6px;background:var(--raised);border-radius:3px;overflow:hidden;min-width:70px}.loadbar>div{height:100%;background:var(--cyan)}.loadbar.hot>div{background:var(--danger)}.loadbar.warm>div{background:var(--warning)}.loadbar.violet>div{background:var(--violet)}.modal-back{position:fixed;top:0;right:0;bottom:0;left:0;background:#040509b8;display:flex;align-items:center;justify-content:center;z-index:80;padding:16px}.modal{background:var(--graphite);border:1px solid var(--raised);border-radius:18px;padding:24px;width:min(560px,94vw);max-height:88vh;overflow-y:auto}.toasts{position:fixed;bottom:20px;right:20px;z-index:100;display:flex;flex-direction:column;gap:10px;max-width:min(380px,92vw)}.toast{background:var(--raised);border:1px solid rgba(134,101,255,.5);border-left:4px solid var(--violet);border-radius:12px;padding:12px 14px;box-shadow:0 12px 30px #00000073;font-size:13px}.toolbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.toolbar input[type=search],.toolbar select{background:var(--graphite);border:1px solid var(--raised);border-radius:12px;color:var(--white);padding:10px 12px;font-family:inherit}.toolbar input[type=search]:focus,.toolbar select:focus{outline:none;border-color:var(--cyan)}.toolbar .spacer{flex:1}.seg{display:inline-flex;background:var(--graphite);border:1px solid var(--raised);border-radius:999px;padding:3px;gap:2px}.seg button{border:none;background:transparent;color:var(--grey);font-family:inherit;font-weight:600;font-size:12.5px;padding:6px 14px;border-radius:999px;cursor:pointer}.seg button.on{background:var(--grad);color:#fff}.kv{display:grid;grid-template-columns:150px 1fr;gap:8px 14px}.kv dt{color:var(--grey);font-size:12.5px}.kv dd{margin:0}.mono{font-family:ui-monospace,monospace;font-size:12.5px}.login-wrap{min-height:100vh;display:flex;align-items:stretch;justify-content:center;padding:28px}.login-split{display:grid;grid-template-columns:1.05fr 1fr;gap:0;width:min(1020px,96vw);margin:auto;border-radius:22px;overflow:hidden;border:1px solid var(--raised)}.login-hero{background:linear-gradient(160deg,#8665ff47,#52dfff1f 55%,#14182466),var(--graphite);padding:40px;display:flex;flex-direction:column}.login-form-side{background:var(--graphite);padding:40px}.msg{border:1px solid var(--raised);border-radius:14px;padding:12px 14px;margin-bottom:10px;background:var(--obsidian)}.msg.admin{border-color:#52dfff66}@media(max-width:1100px){.grid.cols-4,.grid.cols-3{grid-template-columns:repeat(2,1fr)}.sidenav{width:76px;flex-basis:76px;padding:20px 10px}.sidenav .brand .name,.sidenav .brand .sub,.sidenav .tagline,.sidenav nav a span,.sidenav .foot .who{display:none}.sidenav nav a{justify-content:center;padding:11px 0}.login-split{grid-template-columns:1fr}.login-hero{display:none}}@media(max-width:720px){.grid.cols-4,.grid.cols-3,.grid.cols-2,.grid.detail,.form-grid{grid-template-columns:1fr}.sidenav{position:fixed;left:0;top:0;width:264px;flex-basis:264px;transform:translate(-105%);transition:transform .2s;padding:20px 14px}.sidenav.open{transform:none;box-shadow:0 0 60px #0009}.sidenav .brand .name,.sidenav .brand .sub,.sidenav .tagline,.sidenav nav a span,.sidenav .foot .who{display:block}.sidenav nav a{justify-content:flex-start;padding:9px 12px}.scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#04050999;z-index:35}.menu-btn{display:inline-flex}.main{padding:18px 14px 32px}.topbar{padding:10px 14px}.topbar .search{display:none}.kv{grid-template-columns:1fr;gap:2px 0}.login-wrap{padding:12px}.login-form-side,.login-hero{padding:26px}}
