:root{--bg:#0b1120;--surface:#131c31;--surface-2:#1b2740;--text:#e6edf7;--muted:#8b98b3;--brand:#10b981;--warn:#f59e0b;--danger:#ef4444;--radius:10px}*{box-sizing:border-box}html,body{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font:15px/1.6 -apple-system,PingFang SC,Noto Sans SC,Microsoft YaHei,sans-serif}#app{flex-direction:column;max-width:820px;height:100dvh;margin:0 auto;display:flex}#topbar{border-bottom:1px solid var(--surface-2);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.brand{font-size:17px;font-weight:700}#status-badges{flex-wrap:wrap;gap:6px;display:flex}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 8px;font-size:12px}.badge.ok{color:var(--brand);background:#10b98126}.badge.warn{color:var(--warn);background:#f59e0b26}#tabs{gap:4px;padding:8px 16px 0;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 14px;font-size:14px}.tab.active{color:var(--brand);border-bottom-color:var(--brand)}main{flex:1;min-height:0;display:flex}.panel{flex-direction:column;flex:1;min-height:0;padding:12px 16px;display:none;overflow:auto}.panel.active{display:flex}#chat-notice{margin-bottom:8px}#chat-notice:not(:empty){color:var(--warn);border-radius:var(--radius);background:#f59e0b1f;padding:8px 12px;font-size:13px}#chat-messages{flex-direction:column;flex:1;gap:10px;padding-bottom:12px;display:flex;overflow-y:auto}.msg{border-radius:var(--radius);white-space:pre-wrap;word-break:break-word;max-width:85%;padding:10px 14px}.msg.user{background:var(--brand);color:#04110c;align-self:flex-end}.msg.assistant{background:var(--surface);align-self:flex-start}.msg.error{color:var(--danger);background:#ef444426;align-self:flex-start}#chat-input-bar{border-top:1px solid var(--surface-2);gap:8px;padding-top:10px;display:flex}#chat-input{resize:none;background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:var(--radius);font:inherit;flex:1;padding:10px 12px}button{background:var(--surface-2);color:var(--text);border:1px solid var(--surface-2);border-radius:var(--radius);font:inherit;cursor:pointer;padding:8px 16px}button:hover:not(:disabled){border-color:var(--brand)}button:disabled{opacity:.5;cursor:not-allowed}#btn-send,#btn-load,#btn-download{background:var(--brand);color:#04110c;border:none;font-weight:600}#btn-stop{background:var(--danger);color:#fff;border:none}.hidden{display:none!important}.model-actions{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.file-btn{background:var(--surface-2);border-radius:var(--radius);cursor:pointer;padding:8px 16px;font-size:14px}.file-btn:hover{border-color:var(--brand)}.progress-track{background:var(--surface-2);border-radius:999px;height:10px;margin:10px 0 6px;overflow:hidden}#progress-bar{background:var(--brand);width:0;height:100%;transition:width .2s}#progress-text{color:var(--muted);font-size:13px}#download-progress{margin-top:12px}#model-card p,#imported-card p{margin:6px 0}#imported-card{background:var(--surface);border-radius:var(--radius);margin-top:16px;padding:12px}#imported-card button{margin-top:6px;margin-right:8px}.ok{color:var(--brand)}.warn{color:var(--warn)}.muted{color:var(--muted)}#perf-info h3{margin:16px 0 8px;font-size:15px}#perf-info table{border-collapse:collapse;width:100%;font-size:14px}#perf-info td{border-bottom:1px solid var(--surface-2);padding:6px 10px}#perf-info td:first-child{color:var(--muted);width:40%}#perf-info label{color:var(--muted);margin:10px 0;font-size:14px;display:block}#perf-info input[type=number]{background:var(--surface);color:var(--text);border:1px solid var(--surface-2);border-radius:6px;width:110px;margin-left:8px;padding:4px 8px}
