*{box-sizing:border-box}:root{color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,sans-serif}html,body,#root{height:100%;margin:0}body{background:#0f1115;color:#e6e8eb}.app{display:flex;flex-direction:column;height:100vh;max-width:960px;margin:0 auto;padding:16px;gap:12px}.header{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.header h1{margin:0 auto 0 0;font-size:18px;font-weight:600}.field{display:flex;flex-direction:column;gap:4px;font-size:12px;color:#9aa3ad}.field select,.field input{background:#1a1d23;color:#e6e8eb;border:1px solid #2a2f38;border-radius:6px;padding:6px 8px;font-size:13px;min-width:200px}button{background:#3b82f6;color:#fff;border:none;border-radius:6px;padding:8px 14px;font-size:13px;cursor:pointer;font-weight:500}button:hover:not(:disabled){background:#2563eb}button:disabled{background:#2a2f38;color:#6b7280;cursor:not-allowed}button.secondary{background:#2a2f38;color:#e6e8eb}button.secondary:hover:not(:disabled){background:#3a414c}.controls{display:flex;gap:16px;flex-wrap:wrap;align-items:center;padding:10px 12px;background:#1a1d23;border:1px solid #2a2f38;border-radius:6px}.field-inline{display:flex;gap:8px;align-items:center;font-size:12px}.field-label{color:#9aa3ad}.note{font-size:11px;color:#f59e0b;margin-left:auto}.switch{display:inline-flex;background:#0f1115;border:1px solid #2a2f38;border-radius:6px;padding:2px;position:relative}.switch button{background:transparent;color:#9aa3ad;padding:4px 12px;font-size:12px;border-radius:4px;font-weight:500;transition:background .15s ease,color .15s ease}.switch button:hover:not(:disabled){color:#e6e8eb}.switch button.active{background:#3b82f6;color:#fff}.switch button:disabled{background:transparent;color:#4b5563;cursor:not-allowed}.switch.locked button:not(.active):disabled{text-decoration:line-through}.toggle{display:inline-flex;align-items:center;gap:6px;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:32px;height:18px;background:#2a2f38;border-radius:9px;position:relative;transition:background .15s ease}.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;background:#e6e8eb;border-radius:50%;transition:transform .15s ease}.toggle.on .toggle-track{background:#3b82f6}.toggle.on .toggle-thumb{transform:translate(14px)}.toggle-state{font-size:11px;color:#9aa3ad;font-variant-numeric:tabular-nums;min-width:24px}.loaded{display:flex;gap:10px;align-items:center;padding:8px 12px;background:#0f2a1a;border:1px solid #1f5a3a;border-radius:6px;font-size:12px;color:#d1d5db;flex-wrap:wrap}.loaded .badge{background:#10b981;color:#04140d;font-weight:700;font-size:10px;letter-spacing:.06em;padding:2px 8px;border-radius:4px}.loaded-label{color:#e6e8eb;font-weight:600}.loaded-meta{color:#9aa3ad}.loaded-id{color:#6b7280;font-family:ui-monospace,SF Mono,monospace;font-size:11px}.status{padding:8px 12px;background:#1a1d23;border:1px solid #2a2f38;border-radius:6px;font-size:12px;color:#9aa3ad;display:flex;gap:16px;flex-wrap:wrap;align-items:center}.status.ok{background:#0f2a1a;border-color:#1f5a3a;color:#d1d5db}.status .check{color:#10b981;margin-right:6px;font-weight:700}.status .progress{flex:1;min-width:100px;height:6px;background:#0f1115;border-radius:3px;overflow:hidden}.status .progress>div{height:100%;background:#3b82f6;transition:width .2s ease}.metrics,.stats-panel{font-size:12px;color:#9aa3ad;padding:10px 12px;background:#1a1d23;border:1px solid #2a2f38;border-radius:6px}.stats-title{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.06em;margin-bottom:6px}.stats-row{display:flex;gap:16px;flex-wrap:wrap}.metric{display:flex;gap:6px}.metric span:first-child{color:#6b7280}.metric span:last-child{color:#e6e8eb;font-variant-numeric:tabular-nums}.metric.muted span:last-child{color:#6b7280;font-style:italic}.live-mem{font-size:11px;color:#6b7280;display:flex;gap:12px;align-items:center}.live-mem strong{color:#e6e8eb;font-weight:600}.live-mem .hint{color:#6b7280;font-style:italic}.chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:12px 0}.message{display:flex;flex-direction:column;gap:4px}.message .role{font-size:11px;color:#6b7280;text-transform:uppercase;letter-spacing:.05em}.message .body{background:#1a1d23;border:1px solid #2a2f38;border-radius:8px;padding:10px 14px;white-space:pre-wrap;word-wrap:break-word;font-size:14px;line-height:1.6}.message.user .body{background:#1e3a5f;border-color:#2a4d7a}.msg-image{display:block;max-width:320px;max-height:320px;border-radius:6px;margin-bottom:6px}.task-tag{background:#1f2937;color:#a5b4fc;font-size:10px;font-weight:600;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.06em}.composer{display:flex;gap:8px;align-items:stretch}.composer.asr,.composer.vision{align-items:stretch;flex-wrap:wrap;padding:10px 12px;background:#1a1d23;border:1px solid #2a2f38;border-radius:6px}.composer.asr{align-items:center}.composer textarea{flex:1;background:#1a1d23;color:#e6e8eb;border:1px solid #2a2f38;border-radius:6px;padding:10px 12px;font-size:14px;font-family:inherit;resize:none;min-height:60px}.composer textarea:focus{outline:none;border-color:#3b82f6}.composer-side{display:flex;flex-direction:column;gap:6px;align-items:stretch;min-width:140px}.file-pick{position:relative;display:inline-block;background:#2a2f38;color:#e6e8eb;padding:8px 12px;border-radius:6px;font-size:12px;cursor:pointer;text-align:center}.file-pick.small{font-size:11px;padding:6px 10px}.file-pick input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.file-pick:hover{background:#3a414c}.thumb{position:relative;width:100%;border-radius:6px;overflow:hidden}.thumb img{display:block;width:100%;max-height:100px;object-fit:cover}.thumb .x,.attached .x{position:absolute;top:2px;right:2px;background:#0009;color:#fff;border:none;border-radius:50%;width:18px;height:18px;font-size:12px;cursor:pointer;padding:0;line-height:1;font-weight:600}.attached{display:inline-flex;align-items:center;gap:6px;background:#2a2f38;color:#e6e8eb;padding:6px 28px 6px 10px;border-radius:6px;font-size:12px;position:relative}.attached .x{position:static;background:#4b5563}button.recording{background:#dc2626;color:#fff}button.recording:hover{background:#b91c1c}.error{padding:10px 12px;background:#3a1818;border:1px solid #5a2424;color:#fca5a5;border-radius:6px;font-size:13px}
