*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#0e1116;--panel:#171a21;--panel2:#12151b;--border:#2a2f3a;--text:#e5e7eb;--muted:#9ca3af;--accent:#6ee7b7;--danger:#f87171}body,html{height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,Segoe UI,PingFang TC,Microsoft JhengHei,Roboto,sans-serif;font-size:15px}button{cursor:pointer;background:var(--accent);color:#06281d;border:0;border-radius:8px;padding:9px 16px;font-weight:700;font-size:14px}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{width:100%;background:#0d0f13;color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 11px;font-size:14px;margin:4px 0;font-family:inherit}textarea{resize:vertical}.muted{color:var(--muted);font-size:13px}.linkBtn{color:var(--text);border:1px solid var(--border)}.dangerBtn,.linkBtn{background:transparent}.dangerBtn{color:var(--danger);border:1px solid #48292c}.authWrap{min-height:100vh;display:grid;place-items:center;padding:20px}.authCard{width:min(400px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:28px}.authCard h1{font-size:22px;margin-bottom:6px}.authTabs{display:flex;gap:8px;margin:16px 0}.authTabs button{flex:1 1}.authTabs .inactive{background:transparent;color:var(--muted);border:1px solid var(--border)}.err{color:var(--danger);font-size:13px;margin-top:8px}.chat{display:grid;grid-template-columns:280px 1fr;height:100vh}.sidebar{background:var(--panel2);border-right:1px solid var(--border);padding:16px;display:flex;flex-direction:column;overflow:hidden}.sidebar h2{font-size:16px}.windowList{flex:1 1;overflow:auto;margin-top:10px}.windowRow{display:flex;align-items:center;gap:4px;margin-bottom:4px}.windowRow .window{flex:1 1;text-align:left;background:transparent;color:var(--text);border:1px solid transparent;padding:9px 10px;border-radius:8px;font-weight:600}.windowRow.active .window{background:#242936}.windowDelete{background:transparent;color:#6b7280;border:0;padding:6px 8px}.windowDelete:hover{color:var(--danger)}.sidebarBottom{margin-top:auto;padding-top:14px;border-top:1px solid var(--border);display:flex;gap:8px;flex-wrap:wrap}.usageBox{margin-top:16px;background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px}.usageBox h3{font-size:14px;margin-bottom:4px}.usageBar{margin-top:8px}.usageBarLabel{display:flex;justify-content:space-between;font-size:12px;margin-bottom:4px}.usageBarTrack{height:6px;background:#232733;border-radius:4px;overflow:hidden}.usageBarFill{height:100%;background:var(--accent)}.main{display:flex;flex-direction:column;height:100vh;overflow:hidden}.header{padding:16px 22px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.messages{flex:1 1;overflow:auto;padding:22px;display:flex;flex-direction:column;gap:12px}.msg{max-width:78%;padding:12px 15px;border-radius:14px;white-space:pre-wrap;line-height:1.5}.msg.user{align-self:flex-end;background:#1f6feb33;border:1px solid #1f6feb55}.msg.assistant{align-self:flex-start;background:var(--panel);border:1px solid var(--border)}.msgImg{max-width:320px;border-radius:10px;margin-top:8px;display:block;border:1px solid var(--border)}.msgFile{display:inline-block;margin-top:8px;color:var(--accent);text-decoration:underline}.composer{border-top:1px solid var(--border);padding:14px 18px;display:flex;gap:8px;align-items:flex-end}.composer textarea{flex:1 1;min-height:46px;max-height:160px;margin:0}.uploadBtn{background:#1c2029;color:#fff;border:1px solid var(--border)}.pending{padding:0 18px 10px;font-size:13px;color:var(--muted);display:flex;gap:8px;flex-wrap:wrap}.pendingChip{background:var(--panel);border:1px solid var(--border);border-radius:20px;padding:4px 10px}.licensePanel{max-width:440px;margin:60px auto;text-align:center}.licensePanel .row{display:flex;gap:8px;margin-top:14px}.licensePanel input{margin:0}.modalOverlay{position:fixed;inset:0;background:rgba(0,0,0,.55);display:grid;place-items:center;padding:20px;z-index:30}.modal{width:min(480px,100%);background:var(--panel);border:1px solid var(--border);border-radius:16px;padding:24px;max-height:90vh;overflow:auto}.modal h3{margin-bottom:14px}.modal label{display:block;font-size:13px;color:var(--muted);margin-top:10px}.checkboxRow{display:flex;align-items:center;gap:8px;margin:12px 0}.checkboxRow input{width:auto;margin:0}.modalActions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.modalActions .linkBtn{color:var(--text)}.admin{max-width:1100px;margin:0 auto;padding:26px 20px 70px}.adminHeader{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.adminTabs{display:flex;gap:8px;margin-bottom:20px;flex-wrap:wrap}.adminTab{background:var(--panel);color:var(--text);border:1px solid var(--border);border-radius:999px;padding:8px 16px;font-weight:600}.adminTab.active{background:#fff;color:#111}.panel{background:var(--panel);border:1px solid var(--border);border-radius:14px;padding:18px;margin-bottom:20px}.panel h3{font-size:15px;margin-bottom:12px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));grid-gap:8px;gap:8px}.formRow{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.formRow input,.formRow select{width:auto;min-width:140px;margin:0}table{width:100%;border-collapse:collapse;font-size:13px}td,th{text-align:left;padding:8px 10px;border-bottom:1px solid #232733;vertical-align:middle}th{color:var(--muted);font-weight:600}.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px}.smallBtn{padding:5px 10px;font-size:12px}.codeBox{margin-top:12px;background:#0d0f13;border:1px solid var(--border);border-radius:10px;padding:12px;font-family:ui-monospace,monospace;font-size:13px;max-height:220px;overflow:auto;white-space:pre-wrap}.badge{display:inline-block;padding:2px 8px;border-radius:999px;font-size:11px;border:1px solid var(--border)}.badge.on{color:var(--accent);border-color:#2a4a3a}.badge.off{color:var(--danger);border-color:#48292c}@media (max-width:720px){.chat{grid-template-columns:1fr}.sidebar{display:none}}