:root,:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d12;--bg-glow:radial-gradient(1200px 600px at 10% -10%, #8b7cff1f, transparent 60%), radial-gradient(900px 500px at 110% 10%, #4fd1c514, transparent 60%);--sidebar:#11141cd1;--surface:#12151d;--surface-2:#181c26;--surface-3:#1f2430;--border:#252b38;--border-strong:#323a4b;--text:#e8eaf0;--text-muted:#9aa3b5;--text-faint:#687083;--accent:#8b7cff;--accent-strong:#a194ff;--accent-soft:#8b7cff24;--accent-2:#4fd1c5;--success:#3ddc97;--success-soft:#3ddc9721;--warning:#f5b84b;--warning-soft:#f5b84b21;--danger:#ff6b81;--danger-soft:#ff6b8121;--shadow:0 10px 30px #00000059;--focus:0 0 0 3px #8b7cff59}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f9;--bg-glow:radial-gradient(1200px 600px at 10% -10%, #8b7cff1f, transparent 60%), radial-gradient(900px 500px at 110% 10%, #4fd1c51a, transparent 60%);--sidebar:#ffffffd9;--surface:#fff;--surface-2:#f6f7fb;--surface-3:#eceef5;--border:#e2e5ee;--border-strong:#cfd3df;--text:#171a22;--text-muted:#5b6375;--text-faint:#8a92a3;--accent:#6c5ce7;--accent-strong:#5a49d6;--accent-soft:#6c5ce71a;--accent-2:#14a89b;--success:#12a86b;--success-soft:#12a86b1a;--warning:#c98a12;--warning-soft:#c98a121f;--danger:#e0435e;--danger-soft:#e0435e1a;--shadow:0 10px 30px #14182814;--focus:0 0 0 3px #6c5ce740}:root{--radius:14px;--radius-sm:9px;--sidebar-w:252px;--font:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "SF Mono", "JetBrains Mono", Menlo, Consolas, monospace}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font);color:var(--text);background:var(--bg);background-image:var(--bg-glow);-webkit-font-smoothing:antialiased;background-attachment:fixed;margin:0;font-size:14.5px;line-height:1.5}a{color:var(--accent-strong);text-decoration:none}a:hover{text-decoration:underline}h1,h2,h3,h4{letter-spacing:-.01em;margin:0;font-weight:650;line-height:1.25}code,.mono{font-family:var(--mono);font-size:.92em}code{background:var(--surface-3);word-break:break-all;border-radius:6px;padding:.1em .4em}::selection{background:var(--accent-soft)}img,video{max-width:100%}.shell{grid-template-columns:var(--sidebar-w) 1fr;min-height:100%;display:grid}.sidebar{background:var(--sidebar);border-right:1px solid var(--border);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;flex-direction:column;gap:4px;height:100vh;padding:18px 14px;display:flex;position:sticky;top:0;overflow-y:auto}.brand{letter-spacing:-.02em;color:var(--text);align-items:center;gap:10px;padding:4px 8px 18px;font-size:17px;font-weight:700;display:flex}.brand:hover{text-decoration:none}.brand-logo{border-radius:10px;flex-shrink:0;width:32px;height:32px}.brand small{color:var(--text-faint);letter-spacing:0;font-size:11px;font-weight:500;display:block}.nav-section{text-transform:uppercase;letter-spacing:.08em;color:var(--text-faint);padding:14px 10px 6px;font-size:11px;font-weight:600}.nav-link{border-radius:var(--radius-sm);color:var(--text-muted);align-items:center;gap:11px;padding:8px 10px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-link:hover{background:var(--surface-2);color:var(--text);text-decoration:none}.nav-link.active{background:var(--accent-soft);color:var(--text)}.nav-link.active svg{color:var(--accent-strong)}.nav-link .count{background:var(--accent);color:#fff;text-align:center;border-radius:99px;min-width:20px;margin-left:auto;padding:0 6px;font-size:11px;font-weight:600}.sidebar-footer{border-top:1px solid var(--border);flex-direction:column;gap:10px;margin-top:auto;padding-top:14px;display:flex}.user-chip{align-items:center;gap:10px;padding:6px;display:flex}.user-chip .who{flex:1;min-width:0}.user-chip .who b{text-overflow:ellipsis;white-space:nowrap;font-weight:600;display:block;overflow:hidden}.user-chip .who span{color:var(--text-faint);font-size:12px}.avatar{object-fit:cover;background:var(--surface-3);width:34px;height:34px;color:var(--text-muted);border-radius:50%;flex-shrink:0;place-items:center;font-weight:600;display:grid}.avatar.sm{width:26px;height:26px;font-size:11px}.avatar.lg{border-radius:16px;width:56px;height:56px}.main{min-width:0;padding:28px 36px 60px}.page{flex-direction:column;gap:22px;max-width:1200px;margin:0 auto;display:flex}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-head h1{font-size:26px}.page-head p{color:var(--text-muted);margin:4px 0 0}.topbar{display:none}@media (width<=900px){.shell{grid-template-columns:1fr}.sidebar{width:min(290px,86vw);box-shadow:var(--shadow);transition:transform .2s;position:fixed;inset:0 auto 0 0;transform:translate(-102%)}.sidebar.open{transform:none}.scrim{z-index:15;background:#00000073;position:fixed;inset:0}.topbar{z-index:10;background:var(--sidebar);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.main{padding:20px 16px 48px}.page-head h1{font-size:22px}}.grid{gap:16px;display:grid}.grid.cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid.auto{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}.split{grid-template-columns:minmax(0,1.25fr) minmax(320px,1fr);align-items:start;gap:18px;display:grid}@media (width<=1100px){.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.split{grid-template-columns:1fr}}@media (width<=700px){.grid.cols-2,.grid.cols-3,.grid.cols-4{grid-template-columns:1fr}}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.between{justify-content:space-between}.row.nowrap{flex-wrap:nowrap}.stack{flex-direction:column;gap:14px;display:flex}.stack.sm{gap:8px}.grow{flex:1;min-width:0}.muted{color:var(--text-muted)}.faint{color:var(--text-faint)}.small{font-size:12.5px}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.center{text-align:center}@media (width<=700px){.hidden-mobile{display:none!important}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:20px}.card.flat{background:var(--surface-2)}.card.pad-0{padding:0;overflow:hidden}.card-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.card-head h2,.card-head h3{align-items:center;gap:9px;font-size:15.5px;display:flex}.card-head h2 svg,.card-head h3 svg{color:var(--accent-strong)}.card-head p{color:var(--text-muted);margin:2px 0 0;font-size:13px}.stat{align-items:center;gap:14px;display:flex}.stat-icon{background:var(--accent-soft);width:42px;height:42px;color:var(--accent-strong);border-radius:12px;flex-shrink:0;place-items:center;display:grid}.stat-icon.teal{color:var(--accent-2);background:#4fd1c521}.stat-icon.green{background:var(--success-soft);color:var(--success)}.stat-icon.amber{background:var(--warning-soft);color:var(--warning)}.stat-label{color:var(--text-muted);font-size:12.5px}.stat-value{letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:20px;font-weight:650}.stat-sub{color:var(--text-faint);font-size:12px}.module-tile{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);flex-direction:column;gap:12px;padding:18px;transition:border-color .15s,transform .15s,background .15s;display:flex}.module-tile:hover{border-color:var(--accent);background:linear-gradient(180deg, var(--accent-soft), transparent 70%), var(--surface);text-decoration:none;transform:translateY(-1px)}.module-tile .icon{background:linear-gradient(135deg, var(--accent), var(--accent-2));color:#fff;border-radius:12px;place-items:center;width:44px;height:44px;display:grid}.module-tile h3{font-size:15.5px}.module-tile p{color:var(--text-muted);margin:0;font-size:13px}.module-tile.placeholder{color:var(--text-faint);text-align:center;background:0 0;border-style:dashed;justify-content:center;align-items:center;min-height:150px}.module-tile.placeholder:hover{border-color:var(--border-strong);background:0 0;transform:none}.btn{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);height:38px;color:var(--text);font:inherit;white-space:nowrap;cursor:pointer;justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:550;transition:background .15s,border-color .15s,opacity .15s,box-shadow .15s;display:inline-flex}.btn:hover:not(:disabled){background:var(--surface-3);text-decoration:none}.btn:focus-visible{box-shadow:var(--focus);outline:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover:not(:disabled){background:var(--accent-strong)}.btn.discord{color:#fff;background:#5865f2;border-color:#5865f2}.btn.discord:hover:not(:disabled){background:#4752c4}.btn.danger{color:var(--danger);border-color:var(--border-strong)}.btn.danger:hover:not(:disabled){background:var(--danger-soft);border-color:var(--danger)}.btn.ghost{color:var(--text-muted);background:0 0;border-color:#0000}.btn.ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn.sm{gap:6px;height:30px;padding:0 10px;font-size:13px}.btn.icon{width:38px;padding:0}.btn.sm.icon{width:30px}.btn.block{width:100%}.btn.lg{height:46px;font-size:15px}.field{flex-direction:column;gap:6px;min-width:0;display:flex}.field>label,.label{color:var(--text-muted);font-size:13px;font-weight:550}.field .hint{color:var(--text-faint);font-size:12px}.input,.select,textarea.input{border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface-2);width:100%;height:38px;color:var(--text);font:inherit;padding:0 12px;transition:border-color .15s,box-shadow .15s}textarea.input{resize:vertical;height:auto;min-height:90px;padding:10px 12px}.input:focus,.select:focus{border-color:var(--accent);box-shadow:var(--focus);outline:none}.input.mono{font-family:var(--mono)}.input.code{font-family:var(--mono);letter-spacing:.2em;text-align:center;text-transform:uppercase;height:54px;font-size:22px}.select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23889' stroke-width='2.5' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:34px}input[type=range]{width:100%;accent-color:var(--accent)}.range-row{align-items:center;gap:12px;display:flex}.range-row output{text-align:right;font-variant-numeric:tabular-nums;min-width:64px;font-weight:600}.segmented{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:3px;display:inline-flex}.segmented button{height:30px;color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 12px;font-size:13px;font-weight:550}.segmented button:hover{color:var(--text)}.segmented button.on{background:var(--surface);color:var(--text);box-shadow:0 1px 3px #0003}:root[data-theme=dark] .segmented button.on{background:var(--surface-3)}.toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:10px;display:inline-flex}.toggle input{display:none}.toggle .track{background:var(--surface-3);border:1px solid var(--border-strong);border-radius:99px;flex-shrink:0;width:38px;height:22px;transition:background .15s;position:relative}.toggle .track:after{content:"";background:var(--text-muted);border-radius:50%;width:16px;height:16px;transition:transform .15s,background .15s;position:absolute;top:2px;left:2px}.toggle input:checked+.track{background:var(--accent);border-color:var(--accent)}.toggle input:checked+.track:after{background:#fff;transform:translate(16px)}.badge{background:var(--surface-3);height:22px;color:var(--text-muted);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;padding:0 9px;font-size:12px;font-weight:600;display:inline-flex}.badge.green{background:var(--success-soft);color:var(--success)}.badge.amber{background:var(--warning-soft);color:var(--warning)}.badge.red{background:var(--danger-soft);color:var(--danger)}.badge.accent{background:var(--accent-soft);color:var(--accent-strong)}.dot{background:currentColor;border-radius:50%;flex-shrink:0;width:8px;height:8px}.dot.pulse{animation:2s infinite pulse;box-shadow:0 0}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, currentColor 50%, transparent)}70%{box-shadow:0 0 0 7px #0000}to{box-shadow:0 0 #0000}}.progress{background:var(--surface-3);border-radius:99px;height:8px;overflow:hidden}.progress>div{background:linear-gradient(90deg, var(--accent), var(--accent-2));border-radius:99px;height:100%;transition:width .4s}.progress.indeterminate>div{animation:1.2s ease-in-out infinite indet;width:35%!important}@keyframes indet{0%{transform:translate(-100%)}to{transform:translate(300%)}}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;flex-shrink:0;width:18px;height:18px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-2);align-items:flex-start;gap:12px;padding:12px 14px;font-size:13.5px;display:flex}.alert svg{flex-shrink:0;margin-top:1px}.alert.info{border-color:color-mix(in srgb, var(--accent) 40%, transparent);background:var(--accent-soft)}.alert.info svg{color:var(--accent-strong)}.alert.warn{border-color:color-mix(in srgb, var(--warning) 40%, transparent);background:var(--warning-soft)}.alert.warn svg{color:var(--warning)}.alert.error{border-color:color-mix(in srgb, var(--danger) 40%, transparent);background:var(--danger-soft)}.alert.error svg{color:var(--danger)}.alert.success{border-color:color-mix(in srgb, var(--success) 40%, transparent);background:var(--success-soft)}.alert.success svg{color:var(--success)}.empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:8px;padding:36px 16px;display:flex}.empty svg{color:var(--text-faint)}.empty b{color:var(--text)}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex;overflow-x:auto}.tabs button{color:var(--text-muted);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-bottom:2px solid #0000;align-items:center;gap:8px;margin-bottom:-1px;padding:10px 14px;font-weight:550;display:inline-flex}.tabs button:hover{color:var(--text)}.tabs button.on{color:var(--text);border-bottom-color:var(--accent)}.list{flex-direction:column;display:flex}.list-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;min-width:0;padding:12px 20px;display:flex}.list-item:last-child{border-bottom:0}.list-item.clickable{cursor:pointer}.list-item.clickable:hover{background:var(--surface-2)}.list-item.selected{background:var(--accent-soft)}.kv{grid-template-columns:auto 1fr;gap:8px 18px;font-size:13.5px;display:grid}.kv dt{color:var(--text-muted)}.kv dd{overflow-wrap:anywhere;min-width:0;margin:0}.thumb{object-fit:cover;background:var(--surface-3);width:64px;height:44px;color:var(--text-faint);border-radius:8px;flex-shrink:0;place-items:center;display:grid;overflow:hidden}.thumb img{object-fit:cover;width:100%;height:100%}.file-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:14px;display:grid}.file-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;flex-direction:column;min-width:0;transition:border-color .15s;display:flex;overflow:hidden}.file-card:hover{border-color:var(--border-strong)}.file-card.selected{border-color:var(--accent);box-shadow:var(--focus)}.file-card .preview{aspect-ratio:16/10;background:var(--surface-3);color:var(--text-faint);place-items:center;display:grid;position:relative;overflow:hidden}.file-card .preview img{object-fit:cover;width:100%;height:100%}.file-card .preview .tag{color:#fff;background:#000000a6;border-radius:6px;padding:1px 7px;font-size:11px;font-weight:600;position:absolute;bottom:6px;right:6px}.file-card .body{padding:10px 12px}.file-card .body b{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:550;display:block;overflow:hidden}.dropzone{border:1.5px dashed var(--border-strong);border-radius:var(--radius);text-align:center;color:var(--text-muted);cursor:pointer;background:var(--surface-2);padding:28px 18px;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.over{border-color:var(--accent);background:var(--accent-soft)}.dropzone svg{color:var(--accent-strong)}.media-frame{border-radius:var(--radius-sm);background:#000;place-items:center;max-height:460px;display:grid;overflow:hidden}.media-frame video,.media-frame img{object-fit:contain;width:100%;max-height:460px;display:block}.checker{background-color:var(--surface-3);background-image:linear-gradient(45deg, var(--surface-2) 25%, transparent 25%), linear-gradient(-45deg, var(--surface-2) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, var(--surface-2) 75%), linear-gradient(-45deg, transparent 75%, var(--surface-2) 75%);background-position:0 0,0 9px,9px -9px,-9px 0;background-size:18px 18px}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;background:#05060a99;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(560px,100%);max-height:calc(100vh - 32px);box-shadow:var(--shadow);padding:22px;overflow:auto}.modal.wide{width:min(900px,100%)}.toasts{z-index:60;flex-direction:column;gap:10px;max-width:min(380px,100vw - 36px);display:flex;position:fixed;bottom:18px;right:18px}.toast{border-radius:var(--radius-sm);background:var(--surface-2);border:1px solid var(--border-strong);box-shadow:var(--shadow);align-items:flex-start;gap:10px;padding:12px 14px;font-size:13.5px;animation:.2s toast-in;display:flex}.toast.success svg{color:var(--success)}.toast.error svg{color:var(--danger)}.toast.info svg{color:var(--accent-strong)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.auth-wrap{place-items:center;min-height:100%;padding:32px 16px;display:grid}.auth-card{flex-direction:column;gap:18px;width:min(480px,100%);display:flex}.auth-card.wide{width:min(620px,100%)}.auth-hero{text-align:center;flex-direction:column;align-items:center;gap:10px;margin-bottom:6px;display:flex}.auth-hero img{border-radius:18px;width:58px;height:58px;box-shadow:0 12px 40px #8b7cff59}.auth-hero h1{font-size:26px}.auth-hero p{color:var(--text-muted);margin:0}.divider{color:var(--text-faint);align-items:center;gap:12px;font-size:12px;display:flex}.divider:before,.divider:after{content:"";background:var(--border);flex:1;height:1px}.steps{counter-reset:step;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.steps li{counter-increment:step;color:var(--text-muted);gap:10px;font-size:13.5px;display:flex}.steps li:before{content:counter(step);background:var(--accent-soft);width:22px;height:22px;color:var(--accent-strong);border-radius:50%;flex-shrink:0;place-items:center;font-size:12px;font-weight:700;display:grid}details summary{cursor:pointer;color:var(--text-muted);font-weight:550}details[open] summary{margin-bottom:12px}.chat{flex-direction:column-reverse;gap:2px;max-height:520px;padding:8px 4px;display:flex;overflow-y:auto}.chat-msg{border-radius:var(--radius-sm);gap:10px;padding:8px 10px;display:flex}.chat-msg:hover{background:var(--surface-2)}.chat-msg .content{white-space:pre-wrap;overflow-wrap:anywhere;min-width:0;font-size:14px}.role-dot{background:var(--text-faint);border-radius:50%;flex-shrink:0;width:10px;height:10px}.channel-row{color:var(--text-muted);cursor:pointer;border-radius:8px;align-items:center;gap:8px;padding:6px 10px;font-size:13.5px;display:flex}.channel-row:hover{background:var(--surface-2);color:var(--text)}.channel-row.on{background:var(--accent-soft);color:var(--text)}.channel-row.disabled{opacity:.45;cursor:default}.channel-cat{letter-spacing:.06em;text-transform:uppercase;color:var(--text-faint);padding:12px 10px 4px;font-size:11px;font-weight:700}.emoji-grid{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:8px;display:grid}.emoji-grid img{object-fit:contain;width:36px;height:36px}.scroll-y{max-height:560px;overflow-y:auto}
