:root{--bg: #0a0f0a;--panel: #0f1610;--fg: #c8f7d4;--dim: #5f7f68;--accent: #39ff88;--warn: #ffd166;--bad: #ff5c7a;--line: #1e2b21;color-scheme:dark}*{box-sizing:border-box}html,body,#root{margin:0;height:100%;overflow:hidden;background:var(--bg);color:var(--fg)}body{font:15px/1.45 ui-monospace,SF Mono,Menlo,Consolas,monospace;-webkit-tap-highlight-color:transparent;overscroll-behavior:none}button{font:inherit;color:var(--bg);background:var(--accent);border:0;border-radius:6px;padding:10px 14px;cursor:pointer;min-height:44px}button:disabled{opacity:.5}input,textarea{font:inherit;font-size:16px;color:var(--fg);background:transparent;border:0;outline:none;width:100%}textarea{display:block;resize:none;overflow-y:auto;max-height:min(40vh,160px);line-height:1.4}.dim{color:var(--dim)}.small{font-size:12px}.error{color:var(--bad);white-space:pre-wrap}.screen{height:var(--app-h, 100dvh);display:flex;flex-direction:column;overflow:hidden;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}[data-kb] .screen{padding-bottom:0}.screen>main{min-height:0;overscroll-behavior:contain}.center{align-items:center;justify-content:center}.login{width:min(360px,calc(100% - 32px));display:grid;gap:12px;padding:24px;border:1px solid var(--line);border-radius:10px;background:var(--panel)}.login h1{margin:0;font-size:18px;letter-spacing:.2em;color:var(--accent)}.login p{margin:0}.login label{display:grid;gap:4px;color:var(--dim);font-size:12px;text-transform:uppercase}.login input{border-bottom:1px solid var(--line);padding:8px 0}.terminal header{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:baseline;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.terminal header strong{letter-spacing:.2em;color:var(--accent);font-size:13px}.status{font-size:12px}.status.ok{color:var(--accent)}.status.warn{color:var(--warn)}.status.bad{color:var(--bad)}.stream{flex:1;overflow-y:auto;padding:12px 16px;-webkit-overflow-scrolling:touch}.line{white-space:pre-wrap;word-break:break-word;margin:2px 0}.line.input{color:var(--dim)}.line.success{color:var(--accent)}.line.error{color:var(--bad)}.line .who{color:var(--dim)}.line.mine .who{color:var(--accent)}.st.pending{color:var(--warn)}.st.failed{color:var(--bad)}.link{background:none;color:var(--accent);padding:0;min-height:0;text-decoration:underline}.suggest{display:flex;gap:6px;flex-wrap:wrap;padding:6px 16px;border-top:1px solid var(--line)}.suggest button{background:var(--panel);color:var(--accent);border:1px solid var(--line);padding:6px 10px;min-height:36px}.terminal footer{display:flex;align-items:flex-end;gap:8px;padding:10px 16px;border-top:1px solid var(--line);background:var(--panel)}.prompt{color:var(--accent);line-height:40px}.terminal footer textarea,.terminal footer input{padding:9px 0}.send{padding:6px 12px;min-height:40px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;background:#000000f0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(env(safe-area-inset-bottom) + 16px)}.overlay img,.overlay video{max-width:100%;max-height:70dvh;object-fit:contain;border-radius:8px;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.admin header{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:10px 16px;border-bottom:1px solid var(--line);background:var(--panel)}.admin header strong{letter-spacing:.2em;color:var(--accent);font-size:13px;margin-right:auto}.admin a{color:var(--accent)}.admin main{flex:1;overflow-y:auto;padding:16px;display:grid;gap:24px;align-content:start;max-width:900px;width:100%;margin:0 auto}.admin h2{font-size:14px;letter-spacing:.15em;color:var(--accent);margin:0 0 10px}.admin h3{font-size:14px;margin:0 0 8px}.admin .ok{color:var(--accent)}.form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:10px}.form input:not([type=checkbox]),.form select{font:inherit;font-size:16px;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:6px;padding:8px 10px;min-height:40px;flex:1 1 140px;width:auto}.form input[type=number]{flex:0 0 90px}.form label{display:flex;gap:6px;align-items:center;color:var(--dim)}.check input{width:auto}.table{display:grid;gap:4px}.row{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}.actions-inline{display:flex;gap:6px;flex-wrap:wrap}.card{border:1px solid var(--line);border-radius:10px;padding:12px;margin-bottom:12px}.tag{font-style:normal;font-size:11px;padding:1px 6px;margin:0 6px;border:1px solid var(--accent);color:var(--accent);border-radius:4px}.tag.bad{border-color:var(--bad);color:var(--bad)}.issued{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 10px;margin-bottom:10px;border:1px dashed var(--accent);border-radius:6px}.issued code{color:var(--accent);font-size:15px;word-break:break-all}button.ghost{background:transparent;color:var(--accent);border:1px solid var(--line);padding:6px 10px;min-height:36px}.overlay audio{width:min(420px,100%)}.rec{color:var(--bad);font-variant-numeric:tabular-nums}.assistant{--a-bg: #f5f8fa;--a-fg: #1d2b36;--a-dim: #6b7c89;--a-brand: #0f8a8a;--a-card: #ffffff;--a-line: #dde5ea;background:var(--a-bg);color:var(--a-fg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:16px}@media(prefers-color-scheme:dark){.assistant{--a-bg: #0f1a20;--a-fg: #e4edf2;--a-dim: #8aa0ad;--a-card: #17252d;--a-line: #253740}}.assistant header{display:flex;gap:10px;align-items:center;padding:12px 16px;background:var(--a-card);border-bottom:1px solid var(--a-line)}.assistant .logo{width:34px;height:34px;border-radius:10px;background:var(--a-brand);color:#fff;display:grid;place-items:center;font-size:18px}.assistant header strong{display:block;font-size:16px}.assistant .sub{display:block;font-size:12px;color:var(--a-dim)}.assistant main{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px}.assistant .welcome{margin:auto 0;text-align:center;padding:8px}.assistant .welcome h1{font-size:22px;margin:0 0 6px}.assistant .welcome p{color:var(--a-dim);margin:0 0 16px}.assistant .chips{display:grid;gap:8px}.assistant .chips button{background:var(--a-card);color:var(--a-fg);border:1px solid var(--a-line);text-align:left;border-radius:12px}.assistant .bubble{max-width:85%;padding:10px 14px;border-radius:16px;white-space:pre-wrap;word-break:break-word;line-height:1.45}.assistant .bubble.user{align-self:flex-end;background:var(--a-brand);color:#fff;border-bottom-right-radius:4px}.assistant .bubble.assistant{align-self:flex-start;background:var(--a-card);border:1px solid var(--a-line);border-bottom-left-radius:4px}.assistant .typing{display:inline-flex;gap:4px}.assistant .typing i{width:6px;height:6px;border-radius:50%;background:var(--a-dim);animation:blink 1.2s infinite}.assistant .typing i:nth-child(2){animation-delay:.2s}.assistant .typing i:nth-child(3){animation-delay:.4s}@keyframes blink{0%,80%,to{opacity:.2}40%{opacity:1}}.assistant .composer{display:flex;align-items:flex-end;gap:8px;padding:10px 16px 6px;background:var(--a-card);border-top:1px solid var(--a-line)}.assistant .composer textarea{flex:1;color:var(--a-fg);background:var(--a-bg);border:1px solid var(--a-line);border-radius:22px;padding:10px 16px}.assistant .composer button{border-radius:50%;width:44px;flex:0 0 44px;padding:0;background:var(--a-brand);color:#fff}.assistant .disclaimer{margin:0;padding:4px 16px 10px;font-size:11px;color:var(--a-dim);text-align:center;background:var(--a-card)}
