:root{--bg: #0d0f12;--card: #161a20;--border: #2a3140;--text: #e6eaf2;--muted: #8b95a8;--accent: #5b8def;--danger: #e85d5d;--ok: #5bd38a}*{box-sizing:border-box}body{margin:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh}.app{max-width:52rem;margin:0 auto;padding:1.5rem 1.25rem 2.5rem}.app h1{margin:0;font-size:1.35rem;font-weight:600}.sub{margin:.35rem 0 0;color:var(--muted);font-size:.9rem}.card{margin-top:1rem;padding:1.25rem;background:var(--card);border:1px solid var(--border);border-radius:12px}.card h2,.card h3{margin-top:0}label{display:block;margin:.75rem 0 .25rem;font-size:.85rem;color:var(--muted)}input[type=password],input[type=text],textarea{width:100%;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:#0a0c10;color:var(--text);font-size:.95rem}textarea{font-family:ui-monospace,monospace;font-size:.82rem}.btn{margin-top:1rem;padding:.55rem 1.1rem;border-radius:8px;border:none;background:var(--accent);color:#fff;font-weight:600;cursor:pointer}.btn:hover{filter:brightness(1.08)}.btn-ghost{background:transparent;color:var(--accent);margin-top:0;padding:.25rem .5rem}.hint{font-size:.85rem;color:var(--muted);margin:.5rem 0}.err{color:var(--danger);font-size:.88rem;min-height:1.25rem}.ok{color:var(--ok);font-size:.88rem;min-height:1.25rem}.row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.badge{font-size:.8rem;padding:.25rem .6rem;border-radius:999px;background:#222831;border:1px solid var(--border)}.badge.warn{border-color:#a67c00;color:#f0c14c}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem}.grid .btn{margin:0;background:#222831;color:var(--text);border:1px solid var(--border);font-weight:500;font-size:.85rem}.grid .btn:hover{border-color:var(--accent)}code{font-size:.85em;background:#0a0c10;padding:.1em .35em;border-radius:4px}.notice{background:#1a1520;border:1px solid #3d3550;border-radius:8px;padding:.75rem 1rem;font-size:.88rem;color:var(--muted)}.toolbar{margin-bottom:0}.tabs{display:flex;gap:.5rem;margin-top:.75rem}.tab{padding:.4rem .9rem;border-radius:8px;border:1px solid var(--border);background:#0a0c10;color:var(--muted);cursor:pointer;font-size:.88rem}.tab.active{border-color:var(--accent);color:var(--text);background:#1a2330}.chat-card{margin-top:.75rem}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.chat-head h2{margin:0;font-size:1.1rem}.chat-log{max-height:min(52vh,520px);overflow-y:auto;padding:.75rem;background:#0a0c10;border:1px solid var(--border);border-radius:10px;margin:.75rem 0}.bubble-row{display:flex;margin-bottom:.65rem}.bubble-row.user{justify-content:flex-end}.bubble-row.bot{justify-content:flex-start}.bubble{max-width:92%;padding:.55rem .75rem;border-radius:12px;font-size:.9rem;line-height:1.35;white-space:pre-wrap;word-break:break-word}.bubble.user{background:#2a4a8a;color:#fff}.bubble.assistant{background:#222831;border:1px solid var(--border)}.bubble.error{background:#3a2020;border:1px solid #8a3a3a;color:#ffb4b4}.bubble.image-wrap{background:#222831;border:1px solid var(--border);max-width:100%}.img-caption{margin:0 0 .35rem;font-size:.82rem;color:var(--muted)}.chat-img{display:block;max-width:100%;max-height:360px;border-radius:8px}.chat-form{display:flex;gap:.5rem;align-items:center;flex-wrap:wrap}.chat-field{flex:1;min-width:200px;padding:.55rem .65rem;border-radius:8px;border:1px solid var(--border);background:#0a0c10;color:var(--text);font-size:.95rem}
