/* NAMI · 未来感深色界面。只有深色:色板固定,不跟随系统。 */
:root{
  color-scheme:dark;
  --bg0:#04050c; --bg1:#080b1a; --glass:rgba(16,20,44,.58); --glass2:rgba(24,30,64,.62); --line:rgba(130,150,255,.16); --line2:rgba(130,150,255,.3);
  --ink:#e9edff; --muted:#8f98c4; --faint:#5d6694;
  --cyan:#22d3ee; --violet:#8b5cf6; --pink:#f472b6; --green:#34d399; --red:#fb7185; --amber:#fbbf24;
  --grad:linear-gradient(120deg,#22d3ee 0%,#7c8cff 52%,#c084fc 100%);
  --glow:0 0 0 1px rgba(124,140,255,.35),0 8px 30px -6px rgba(124,92,255,.55),0 0 24px -4px rgba(34,211,238,.35);
  --radius:14px;
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,monospace;
  --sans:"Space Grotesk","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;color:var(--ink);font:15px/1.65 var(--sans);-webkit-font-smoothing:antialiased;background:var(--bg0);overflow:hidden}
/* 背景:极光 + 网格 */
body::before{content:"";position:fixed;inset:-20%;z-index:-2;pointer-events:none;
  background:radial-gradient(40% 35% at 15% 20%,rgba(124,92,255,.28),transparent 70%),radial-gradient(38% 34% at 85% 12%,rgba(34,211,238,.2),transparent 70%),radial-gradient(45% 40% at 70% 95%,rgba(244,114,182,.16),transparent 70%),var(--bg0);
  animation:aurora 26s ease-in-out infinite alternate}
body::after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(130,150,255,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(130,150,255,.07) 1px,transparent 1px);
  background-size:46px 46px;mask-image:radial-gradient(ellipse at 50% 30%,#000 10%,transparent 75%);-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 10%,transparent 75%)}
@keyframes aurora{to{transform:translate3d(3%,2%,0) scale(1.08)}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

.hidden{display:none!important}
.muted{color:var(--muted)} .small{font-size:12.5px} .err{color:var(--red);min-height:20px;font-size:13px}
button{font:inherit;color:inherit;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
::selection{background:rgba(124,92,255,.45)}
*{scrollbar-width:thin;scrollbar-color:rgba(130,150,255,.3) transparent}
::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-thumb{background:rgba(130,150,255,.25);border-radius:8px}

/* 按钮 */
.btn{border:1px solid var(--line);background:rgba(255,255,255,.04);padding:8px 15px;border-radius:10px;transition:.18s;backdrop-filter:blur(6px)}
.btn:hover{border-color:var(--line2);background:rgba(130,150,255,.12)}
.btn.primary{border:0;color:#050816;font-weight:700;background:var(--grad);box-shadow:var(--glow);letter-spacing:.01em}
.btn.primary:hover{filter:brightness(1.1) saturate(1.1);transform:translateY(-1px)}
.btn.primary:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none;filter:none}
.btn.small{padding:4px 11px;font-size:13px;border-radius:8px}
.btn.ghost{background:transparent}
.btn.wide{width:100%;padding:11px}
.btn.danger{color:var(--red)}
a.btn{text-decoration:none;display:inline-block;color:inherit}
.link{background:none;border:0;color:var(--cyan);padding:0;text-decoration:underline;text-underline-offset:3px}
.icon-btn{background:none;border:0;padding:6px 8px;border-radius:8px;color:var(--muted)}
.icon-btn:hover{background:rgba(130,150,255,.12);color:var(--ink)}
.pill{font-family:var(--mono);font-size:10.5px;padding:1px 8px;border-radius:99px;border:1px solid var(--line);color:var(--muted);letter-spacing:.06em}
.pill.admin{color:var(--cyan);border-color:rgba(34,211,238,.4)}

/* 发光球体(Nami) */
.orb{--s:40px;width:var(--s);height:var(--s);border-radius:50%;position:relative;flex:none;display:block;
  background:radial-gradient(circle at 32% 28%,#fff 0,rgba(255,255,255,.85) 6%,transparent 32%),conic-gradient(from 210deg,#22d3ee,#7c5cff,#f472b6,#22d3ee);
  box-shadow:0 0 calc(var(--s)*.6) rgba(124,92,255,.65),0 0 calc(var(--s)*1.4) rgba(34,211,238,.28),inset 0 0 calc(var(--s)*.3) rgba(0,0,0,.35);animation:breathe 4.5s ease-in-out infinite}
.orb::after{content:"";position:absolute;inset:-18%;border-radius:50%;border:1px solid rgba(124,140,255,.35);animation:ring 4.5s ease-out infinite}
.orb.xs{--s:20px}.orb.xs::after{display:none}.orb.sm{--s:28px}.orb.lg{--s:84px}.orb.xl{--s:120px}
.orb.think{animation:breathe 1.2s ease-in-out infinite}
@keyframes breathe{50%{transform:scale(1.07);filter:saturate(1.3)}}
@keyframes ring{0%{opacity:.7;transform:scale(.9)}100%{opacity:0;transform:scale(1.5)}}
.word{font-weight:700;letter-spacing:.34em;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* 登录 */
.login{height:100%;display:grid;place-items:center;padding:24px;overflow:auto}
.login-card{width:min(390px,100%);background:var(--glass);border:1px solid var(--line);border-radius:22px;padding:30px 28px 26px;backdrop-filter:blur(22px) saturate(1.3);
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.03) inset,0 0 60px -20px rgba(124,92,255,.5);display:flex;flex-direction:column;gap:12px;align-items:stretch;position:relative}
.login-card::before{content:"";position:absolute;inset:0;border-radius:22px;padding:1px;background:linear-gradient(140deg,rgba(34,211,238,.6),transparent 35%,transparent 65%,rgba(192,132,252,.6));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}
.login-card .orb{margin:2px auto 8px}
.login-card h1{margin:0;text-align:center;font-size:30px;padding-left:.34em}
.login-card .tag{text-align:center;margin:-4px 0 6px;color:var(--muted);font-size:13.5px}
.login-card label{display:flex;flex-direction:column;gap:5px;font-family:var(--mono);font-size:11px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase}
.login-card input{padding:11px 13px;border:1px solid var(--line);border-radius:11px;background:rgba(4,6,18,.6);font-size:16px;font-family:var(--sans);text-transform:none;letter-spacing:0;transition:.18s}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--cyan);box-shadow:0 0 0 3px rgba(34,211,238,.18)}
.seg{display:grid;grid-template-columns:1fr 1fr;background:rgba(4,6,18,.6);border:1px solid var(--line);border-radius:11px;padding:3px;margin-bottom:2px}
.seg button{border:0;background:none;padding:7px;border-radius:8px;color:var(--muted);font-weight:600}
.seg button.on{background:rgba(130,150,255,.18);color:var(--ink);box-shadow:0 0 0 1px var(--line2) inset}
.foot-note{text-align:center;font-size:12px;color:var(--faint);margin-top:2px}

/* 布局 */
.app{height:100vh;height:100dvh;display:grid;grid-template-columns:272px minmax(0,1fr) 430px;gap:0}
.app.nopanel{grid-template-columns:272px minmax(0,1fr)}
.side{background:rgba(7,9,24,.72);border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0;backdrop-filter:blur(18px)}
.side-top{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px}
.brand{display:flex;align-items:center;gap:11px}
.brand .word{font-size:17px}
.brand small{display:block;font-size:11px;color:var(--muted);letter-spacing:.04em;margin-top:-2px;font-weight:400}
.side-sec{padding:16px 18px 7px;font-family:var(--mono);font-size:10.5px;color:var(--faint);letter-spacing:.16em;text-transform:uppercase}
.side-sec.row{display:flex;align-items:center;justify-content:space-between}
.tools{padding:0 10px}
.tool{display:flex;gap:10px;align-items:flex-start;padding:9px 11px;border-radius:11px;width:100%;text-align:left;background:none;border:1px solid transparent}
.tool.active{background:linear-gradient(120deg,rgba(34,211,238,.12),rgba(124,92,255,.16));border-color:rgba(124,140,255,.3)}
.tool .ti{font-size:18px;line-height:1.4}
.tool .tn{font-weight:600;font-size:14px}
.tool.soon{opacity:.5;cursor:default}
.soon-tag{font-family:var(--mono);font-size:9.5px;margin-left:7px;color:var(--cyan);letter-spacing:.08em;border:1px solid rgba(34,211,238,.35);padding:0 6px;border-radius:99px;font-weight:400}
.projs{flex:1;overflow:auto;padding:0 10px 8px;min-height:0}
.proj{display:block;width:100%;text-align:left;background:none;border:1px solid transparent;padding:8px 11px;border-radius:10px;line-height:1.35;transition:.15s}
.proj:hover{background:rgba(130,150,255,.09)}
.proj.active{background:rgba(130,150,255,.14);border-color:var(--line2)}
.proj .pt{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;gap:6px;align-items:center}
.proj .ps{font-size:11.5px;color:var(--faint);font-family:var(--mono)}
.proj .ok{color:var(--green);text-shadow:0 0 8px var(--green)}
.side-foot{border-top:1px solid var(--line);padding:12px 14px;display:flex;flex-direction:column;gap:9px}
.who{display:flex;gap:8px;align-items:center;font-weight:600}
.meter{font-family:var(--mono);font-size:10.5px;color:var(--muted);letter-spacing:.04em}
.meter .bar{height:4px;background:rgba(130,150,255,.14);border-radius:4px;margin-top:5px;overflow:hidden}
.meter .bar i{display:block;height:100%;background:var(--grad);border-radius:4px;box-shadow:0 0 10px rgba(124,140,255,.7);transition:width .4s}
.meter.hot .bar i{background:linear-gradient(90deg,var(--amber),var(--red))}
.foot-btns{display:flex;gap:7px;flex-wrap:wrap}

.main{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}
.topbar{display:flex;align-items:center;gap:12px;padding:11px 20px;border-bottom:1px solid var(--line);background:rgba(7,9,24,.55);backdrop-filter:blur(16px);min-height:60px}
.title-wrap{flex:1;min-width:0}
.proj-title{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:text}
.empty{flex:1;display:grid;place-items:center;padding:24px;overflow:auto}
.empty-card{max-width:470px;text-align:center;display:flex;flex-direction:column;gap:12px;align-items:center}
.empty-card .orb{margin-bottom:12px}
.empty-card h2{margin:0;font-size:26px}
.empty-card .word{letter-spacing:.2em}
.empty-card p{margin:0 0 10px;color:var(--muted)}
.chat-wrap{flex:1;display:flex;flex-direction:column;min-height:0}
.chat{flex:1;overflow:auto;padding:24px 0 12px;scroll-behavior:smooth}
.chat>*{max-width:780px;margin-left:auto;margin-right:auto;padding-left:22px;padding-right:22px}

.msg{margin:0 auto 22px}
.msg.user{display:flex}
.msg.user .bubble{position:relative;margin-left:auto;width:fit-content;max-width:86%;padding:10px 16px;border-radius:16px 16px 4px 16px;white-space:pre-wrap;word-break:break-word;
  background:linear-gradient(135deg,rgba(34,211,238,.14),rgba(124,92,255,.2));border:1px solid rgba(124,140,255,.35);box-shadow:0 6px 24px -10px rgba(124,92,255,.6)}
.who-ai{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.22em;color:var(--muted);margin-bottom:6px}
.md p{margin:0 0 .7em} .md p:last-child{margin-bottom:0}
.md h1,.md h2,.md h3{margin:.9em 0 .4em;line-height:1.35} .md h1{font-size:1.28em}.md h2{font-size:1.14em}.md h3{font-size:1.04em;color:var(--cyan)}
.md ul,.md ol{margin:.2em 0 .75em;padding-left:1.4em}.md li::marker{color:var(--cyan)}
.md b{color:#fff}
.md code{font-family:var(--mono);background:rgba(130,150,255,.14);padding:1px 6px;border-radius:6px;font-size:.88em;color:#c4ccff}
.md pre{background:rgba(2,4,14,.7);border:1px solid var(--line);padding:11px 13px;border-radius:11px;overflow:auto}
.md pre code{background:none;padding:0}
.md hr{border:0;border-top:1px solid var(--line);margin:1em 0}
.md table{border-collapse:separate;border-spacing:0;display:block;overflow:auto;max-width:100%;margin:.5em 0 .9em;font-size:13.5px;border:1px solid var(--line);border-radius:10px}
.md th,.md td{border-bottom:1px solid var(--line);border-right:1px solid var(--line);padding:5px 10px;vertical-align:top;white-space:pre-wrap}
.md th{background:rgba(130,150,255,.12);font-family:var(--mono);font-size:11.5px;letter-spacing:.04em;color:var(--cyan)}
.md tr>*:last-child{border-right:0}.md tr:last-child>td{border-bottom:0}
.md blockquote{margin:.5em 0;padding:3px 14px;border-left:2px solid var(--violet);color:var(--muted)}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 9px}
.chip{font-family:var(--mono);font-size:11px;color:var(--muted);border:1px solid var(--line);background:rgba(130,150,255,.07);padding:2px 10px;border-radius:99px;display:inline-flex;gap:6px;align-items:center}
.chip.run{color:var(--cyan);border-color:rgba(34,211,238,.4);background:linear-gradient(90deg,rgba(34,211,238,.08),rgba(34,211,238,.2),rgba(34,211,238,.08));background-size:200% 100%;animation:shimmer 1.4s linear infinite}
.chip.run::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--cyan);box-shadow:0 0 8px var(--cyan);animation:pulse 1s ease-in-out infinite}
@keyframes shimmer{to{background-position:-200% 0}}
@keyframes pulse{50%{opacity:.3}}
.errmsg{color:var(--red);font-size:13.5px;margin:6px 0;padding:8px 12px;border:1px solid rgba(251,113,133,.35);border-radius:10px;background:rgba(251,113,133,.08)}

.card{position:relative;border:1px solid var(--line);background:var(--glass2);border-radius:var(--radius);padding:16px 18px;margin:10px 0 16px;backdrop-filter:blur(14px);box-shadow:0 14px 40px -18px rgba(0,0,0,.8)}
.card::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--grad);box-shadow:0 0 12px rgba(124,140,255,.8)}
.card h4{margin:0 0 8px;font-size:14px}
.q{margin-bottom:16px}
.q .qh{font-family:var(--mono);font-size:10.5px;color:var(--cyan);letter-spacing:.16em;text-transform:uppercase}
.q .qt{font-weight:600;margin:2px 0 9px}
.opts{display:flex;flex-direction:column;gap:7px}
.opt{display:flex;gap:11px;align-items:flex-start;text-align:left;border:1px solid var(--line);background:rgba(4,6,18,.45);border-radius:11px;padding:9px 12px;transition:.15s}
.opt:hover{border-color:var(--cyan);box-shadow:0 0 18px -6px rgba(34,211,238,.6)}
.opt.sel{border-color:var(--cyan);background:linear-gradient(120deg,rgba(34,211,238,.14),rgba(124,92,255,.16));box-shadow:0 0 22px -6px rgba(34,211,238,.7)}
.opt .mark{flex:none;width:16px;height:16px;border-radius:50%;border:1.5px solid var(--faint);margin-top:4px;transition:.15s}
.opt.multi .mark{border-radius:4px}
.opt.sel .mark{background:var(--cyan);border-color:var(--cyan);box-shadow:0 0 10px var(--cyan)}
.opt .ol{font-weight:600} .opt .od{font-size:12.5px;color:var(--muted)}
.other{margin-top:7px;width:100%;padding:9px 12px;border:1px dashed var(--line2);border-radius:11px;background:transparent}
.frames{display:flex;gap:9px;overflow:auto;padding-bottom:9px;margin-bottom:12px}
.frame{flex:none;text-align:center;font-family:var(--mono);font-size:10.5px;color:var(--muted)}
.frame img{height:160px;border-radius:10px;display:block;background:rgba(130,150,255,.1);border:1px solid var(--line)}
.card .actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}
.card.done{opacity:.78;box-shadow:none}.card.done::before{background:var(--faint);box-shadow:none}
.answered{font-size:13.5px;color:var(--muted);white-space:pre-wrap}
.signoff-sum{white-space:pre-wrap;margin-bottom:12px}
.signoff textarea{width:100%;min-height:74px;padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:rgba(4,6,18,.5);margin-bottom:9px}

.status{max-width:780px;margin:0 auto;width:100%;padding:0 22px 8px;font-family:var(--mono);font-size:11.5px;color:var(--cyan);letter-spacing:.08em;display:flex;gap:9px;align-items:center}
.eq{display:inline-flex;gap:2px;align-items:flex-end;height:12px}
.eq i{width:2px;background:var(--cyan);box-shadow:0 0 6px var(--cyan);animation:eq 1s ease-in-out infinite}
.eq i:nth-child(2){animation-delay:.15s}.eq i:nth-child(3){animation-delay:.3s}.eq i:nth-child(4){animation-delay:.45s}
@keyframes eq{0%,100%{height:3px}50%{height:12px}}
.composer{max-width:780px;margin:0 auto;width:100%;padding:8px 22px calc(18px + env(safe-area-inset-bottom));display:flex;gap:9px;align-items:flex-end}
.composer textarea{flex:1;resize:none;max-height:180px;padding:12px 15px;border:1px solid var(--line2);border-radius:14px;background:rgba(10,13,32,.75);backdrop-filter:blur(14px);line-height:1.5;box-shadow:0 0 30px -14px rgba(124,92,255,.8)}
.composer .btn{padding:12px 20px;border-radius:14px}

/* 右侧面板 */
.panel{border-left:1px solid var(--line);background:rgba(7,9,24,.72);backdrop-filter:blur(18px);display:flex;flex-direction:column;min-height:0;min-width:0}
.panel-tabs{display:flex;gap:4px;padding:12px 14px 0;border-bottom:1px solid var(--line)}
.tab{background:none;border:0;padding:9px 13px;border-bottom:2px solid transparent;color:var(--muted);font-weight:600;position:relative}
.tab.active{color:#fff}.tab.active::after{content:"";position:absolute;left:8px;right:8px;bottom:-2px;height:2px;background:var(--grad);box-shadow:0 0 14px var(--cyan);border-radius:2px}
.count{font-family:var(--mono);font-size:10.5px;border:1px solid var(--line);padding:0 6px;border-radius:99px;margin-left:4px;color:var(--cyan)}
.count:empty{display:none}
.tab-body{flex:1;overflow:auto;padding:16px;min-height:0}
.drop{border:1.5px dashed var(--line2);border-radius:14px;padding:18px;text-align:center;transition:.18s;background:rgba(130,150,255,.04)}
.drop.over{border-color:var(--cyan);background:rgba(34,211,238,.1);box-shadow:0 0 30px -8px rgba(34,211,238,.6) inset}
.uploads{margin-top:10px;display:flex;flex-direction:column;gap:6px}
.up{font-size:12.5px;background:rgba(130,150,255,.08);border:1px solid var(--line);border-radius:10px;padding:7px 11px}
.up .bar{height:3px;background:rgba(130,150,255,.2);border-radius:3px;margin-top:5px;overflow:hidden}
.up .bar i{display:block;height:100%;background:var(--grad);width:0;box-shadow:0 0 8px var(--cyan)}
.up.fail{color:var(--red);border-color:rgba(251,113,133,.4)}
.clips{margin-top:12px;display:flex;flex-direction:column;gap:7px}
.clip{display:flex;gap:11px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:7px;background:rgba(4,6,18,.45)}
.clip img,.clip .ph{width:44px;height:58px;object-fit:cover;border-radius:8px;background:rgba(130,150,255,.1);flex:none}
.clip .cn{font-family:var(--mono);font-size:12.5px;font-weight:500;word-break:break-all;line-height:1.35}
.clip .cs{font-size:12px;color:var(--muted)}
.st-ready{color:var(--green)} .st-error{color:var(--red)} .st-processing,.st-queued{color:var(--amber)}
.clip .grow{flex:1;min-width:0}
.clips-sum{font-family:var(--mono);font-size:11.5px;color:var(--muted);margin-top:14px;letter-spacing:.04em}

.doc-nav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.doc-btn{border:1px solid var(--line);background:rgba(130,150,255,.06);border-radius:99px;padding:4px 13px;font-size:13px;transition:.15s}
.doc-btn:hover:not(:disabled){border-color:var(--line2)}
.doc-btn.active{background:var(--grad);color:#050816;border-color:transparent;font-weight:700;box-shadow:var(--glow)}
.doc-btn.flash{animation:flash 1.2s 2}
@keyframes flash{50%{box-shadow:0 0 0 3px rgba(34,211,238,.5)}}
.doc-bar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:12px;font-size:12.5px}
.doc-bar .grow{flex:1}
.doc-bar select{border:1px solid var(--line);background:rgba(4,6,18,.6);border-radius:8px;padding:3px 7px;color:inherit;font-family:var(--mono)}
.badge{font-family:var(--mono);font-size:11px;padding:2px 10px;border-radius:99px;border:1px solid var(--line);color:var(--muted)}
.badge.ok{color:var(--green);border-color:rgba(52,211,153,.5);background:rgba(52,211,153,.1);text-shadow:0 0 8px rgba(52,211,153,.5)}
.doc-view{font-size:14px}
.doc-edit{width:100%;min-height:60vh;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(2,4,14,.7);font:13px/1.6 var(--mono);resize:vertical}
.doc-empty{color:var(--muted);text-align:center;padding:44px 10px}

/* 弹窗 */
.modal{position:fixed;inset:0;background:rgba(2,3,10,.7);backdrop-filter:blur(8px);display:grid;place-items:center;padding:16px;z-index:50}
.modal-card{width:min(900px,100%);max-height:88vh;background:rgba(12,15,36,.92);border:1px solid var(--line2);border-radius:20px;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 40px 100px -20px #000,0 0 60px -20px rgba(124,92,255,.6)}
.modal-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--line)}
.pad{padding:10px 18px 0}
.prof-body{display:flex;gap:14px;padding:14px 18px 18px;min-height:0;flex:1}
.prof-list{width:150px;flex:none;display:flex;flex-direction:column;gap:4px;overflow:auto}
.prof-list button{text-align:left;padding:7px 11px;border-radius:9px;border:1px solid transparent;background:none}
.prof-list button.active{background:rgba(130,150,255,.14);border-color:var(--line2)}
.prof-edit{flex:1;display:flex;flex-direction:column;gap:9px;min-width:0}
.prof-edit textarea{flex:1;min-height:340px;padding:12px;border:1px solid var(--line);border-radius:12px;background:rgba(2,4,14,.7);font:13px/1.6 var(--mono)}
.row-end{display:flex;gap:10px;justify-content:flex-end;align-items:center}
.admin-body{padding:14px 18px 18px;overflow:auto}
.admin-sum{display:flex;gap:18px;flex-wrap:wrap;font-family:var(--mono);font-size:12px;color:var(--muted);margin-bottom:12px}
.admin-sum b{color:var(--cyan)}
table.adm{width:100%;border-collapse:collapse;font-size:13px}
table.adm th{font-family:var(--mono);font-size:10.5px;letter-spacing:.1em;color:var(--faint);text-align:left;padding:6px 8px;text-transform:uppercase;border-bottom:1px solid var(--line)}
table.adm td{padding:8px;border-bottom:1px solid rgba(130,150,255,.08);vertical-align:middle}
table.adm tr.off td{opacity:.45}
table.adm input{width:66px;padding:3px 7px;border:1px solid var(--line);border-radius:7px;background:rgba(4,6,18,.6)}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:rgba(20,26,60,.95);border:1px solid var(--line2);color:var(--ink);padding:9px 18px;border-radius:99px;font-size:13.5px;z-index:99;max-width:90vw;box-shadow:var(--glow)}

.only-mobile{display:none}
#closeSide{display:none}
@media (max-width:1100px){
  .app,.app.nopanel{grid-template-columns:250px minmax(0,1fr)}
  .panel{display:none;position:fixed;inset:0 0 0 auto;width:min(450px,100%);z-index:30;box-shadow:-10px 0 40px rgba(0,0,0,.6);background:rgba(7,9,24,.96)}
  .panel.show{display:flex}
  .only-mobile{display:inline-block}
}
@media (max-width:760px){
  body{overflow:auto}
  .app,.app.nopanel{grid-template-columns:minmax(0,1fr)}
  #closeSide{display:inline-block}
  .side{position:fixed;inset:0 auto 0 0;width:min(300px,86%);z-index:40;transform:translateX(-102%);transition:transform .22s;box-shadow:10px 0 40px rgba(0,0,0,.6);background:rgba(7,9,24,.97)}
  .side.open{transform:none}
  .chat>*{padding-left:14px;padding-right:14px}
  .composer{padding-left:12px;padding-right:12px}
  .prof-body{flex-direction:column}.prof-list{width:auto;flex-direction:row;flex-wrap:wrap}
  table.adm{font-size:12px}
}
