:root{--ink:#14202b;--paper:#eef1f4;--surface:#fff;--signal:#3d4ee8;--muted:#75838f;--rule:#d4dbe2;--warn:#b4341f;--good:#1c7c4a;--mono:ui-monospace, "Cascadia Mono", Consolas, monospace;--sans:ui-sans-serif, system-ui, "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);font:400 16px/1.6 var(--sans);margin:0}.mono{font-family:var(--mono);font-size:.8125rem}.muted{color:var(--muted)}.right{text-align:right}.center{place-items:center;min-height:60vh;display:grid}.bar{background:var(--surface);border-bottom:1px solid var(--rule);align-items:center;gap:14px;padding:13px 20px;display:flex}.bar h1{margin:0;font-size:.9375rem;font-weight:600}.bar .right{align-items:center;gap:8px;margin-left:auto;display:flex}.dot{background:var(--rule);border-radius:50%;flex:none;block-size:7px;inline-size:7px}.dot.on{background:var(--signal)}.shell{grid-template-rows:auto 1fr auto;min-height:100dvh;display:grid}.shell .bar button{margin-left:auto}.log{overscroll-behavior:contain;flex-direction:column;gap:14px;min-block-size:0;inline-size:min(720px,100%);margin-inline:auto;padding:26px 20px 8px;display:flex;overflow-y:auto}.empty{color:var(--muted);text-align:center;margin:auto 0}.turn{max-inline-size:84%}.bubble{white-space:pre-wrap;overflow-wrap:anywhere}.turn.me{align-self:flex-end}.turn.me .bubble{background:var(--signal);color:#fff;border-radius:14px 14px 3px;padding:9px 15px}.turn.bot{align-self:flex-start}.turn.bot .bubble{background:var(--surface);border-radius:14px 14px 14px 3px;padding:10px 16px}.turn.error{align-self:center}.turn.error .bubble{color:var(--warn);text-align:center;font-size:.875rem}.caret{background:var(--signal);vertical-align:text-bottom;block-size:1em;inline-size:7px;margin-inline-start:2px;animation:1s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.composer{inline-size:min(720px,100%);padding:10px 20px max(22px, env(safe-area-inset-bottom));align-items:flex-end;gap:8px;margin-inline:auto;display:flex}.composer textarea{resize:none;max-block-size:40vh;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--rule);border-radius:20px;flex:1;padding:11px 15px}.pad{inline-size:min(820px,100%);margin-inline:auto;padding:22px 20px 60px}.tabs{gap:4px;display:flex}.tab{color:var(--muted);font:500 .8125rem var(--sans);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;padding:5px 12px}.tab:hover{color:var(--ink)}.tab.on{color:var(--signal);background:#3d4ee817}.card{background:var(--surface);border:1px solid var(--rule);border-radius:5px;margin-block-end:18px;padding:20px}.card h2{font:500 .6875rem/1 var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--muted);margin:0 0 16px}.login{inline-size:min(380px,100%);margin:12vh auto 0}.field{margin-block-end:15px;display:block}.field>span{color:var(--muted);margin-block-end:3px;font-weight:500;display:block}.field>em{color:var(--muted);margin-block-start:4px;font-size:.8125rem;font-style:normal;display:block}input,select,textarea{inline-size:100%;font:inherit;color:inherit;background:var(--surface);border:1px solid var(--rule);border-radius:4px;padding:8px 11px}input.mono,select.mono{font:.875rem var(--mono)}textarea{resize:vertical}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--signal);outline-offset:-1px;border-color:#0000}.row{flex-wrap:wrap;gap:12px;margin-block-start:18px;display:flex}.row>*{flex:1;min-inline-size:150px}.actions{align-items:center;gap:8px;display:flex}button,a.ghost{font:500 .875rem var(--sans);background:var(--signal);color:#fff;cursor:pointer;border:1px solid #0000;border-radius:4px;padding:8px 17px;text-decoration:none;display:inline-block}button:disabled{opacity:.45;cursor:default}.ghost,a.ghost{color:var(--muted);border-color:var(--rule);background:0 0}.ghost:hover:not(:disabled),a.ghost:hover{color:var(--ink);border-color:var(--muted)}.sm{padding:5px 12px;font-size:.8125rem}.danger{color:var(--warn);border-color:var(--rule);background:0 0;padding:4px 11px;font-size:.8125rem}table{border-collapse:collapse;inline-size:100%;font-size:.9375rem}th{text-align:start;font:500 .6875rem var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);padding:0 8px 8px 0}td{border-block-start:1px solid var(--rule);padding:7px 8px 7px 0}.badge{font:500 .6875rem var(--mono);color:var(--signal);background:#3d4ee81a;border-radius:3px;padding:2px 8px}.badge.user{color:var(--muted);background:#75838f24}.note{font:.8125rem/1.5 var(--mono);white-space:pre-wrap;border-radius:4px;margin-block-start:14px;padding:10px 13px}.note.ok{color:var(--good);border-inline-start:2px solid var(--good);background:#eef7f1}.note.bad{color:var(--warn);border-inline-start:2px solid var(--warn);background:#fdf0ed}@media (prefers-reduced-motion:reduce){*{animation:none!important}}.turn.human .tag{font:500 .625rem var(--mono);text-transform:uppercase;letter-spacing:.1em;color:var(--good);margin-block-end:3px}.turn.human .bubble{border-inline-start:2px solid var(--good);background:#eef7f1;border-radius:14px 14px 14px 3px;padding:10px 16px}.inbox{grid-template-columns:270px 1fr;align-items:start;gap:16px;display:grid}@media (width<=720px){.inbox{grid-template-columns:1fr}}.convs{max-block-size:70vh;overflow-y:auto}.conv{text-align:start;border:1px solid #0000;border-block-end-color:var(--rule);inline-size:100%;color:inherit;cursor:pointer;font:inherit;background:0 0;border-radius:0;padding:9px 10px;display:block}.conv:hover{background:#3d4ee80a}.conv.on{background:#3d4ee817}.conv b{font:500 .75rem var(--mono);display:block}.conv span{color:var(--muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8125rem;display:block;overflow:hidden}.thread{flex-direction:column;gap:10px;max-block-size:70vh;display:flex;overflow-y:auto}.msg{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:10px;flex:none;max-inline-size:82%;padding:8px 13px}.msg.user{background:var(--paper);align-self:flex-start}.msg.assistant{background:#3d4ee817;align-self:flex-end}.msg.admin{border-inline-end:2px solid var(--good);background:#eef7f1;align-self:flex-end}.msg time{font:.625rem var(--mono);color:var(--muted);margin-block-start:3px;display:block}.turn.notice{align-self:center;max-inline-size:100%}.turn.notice .bubble{font:.75rem var(--mono);color:var(--good);text-align:center;background:#eef7f1;border-radius:20px;padding:5px 12px}.thead{align-items:center;gap:12px;margin-block-end:14px;display:flex}.thead h2{margin:0}.modes{align-items:center;gap:8px;margin-inline-start:auto;display:flex}.pill{font:500 .625rem var(--mono);text-transform:uppercase;letter-spacing:.09em;color:var(--signal);background:#3d4ee81a;border-radius:20px;padding:3px 9px}.pill.human{color:var(--good);background:#eef7f1}.replybox{border-block-start:1px solid var(--rule);align-items:flex-end;gap:8px;margin-block-start:14px;padding-block-start:14px;display:flex}.replybox textarea{resize:vertical}.adminpage{min-height:100vh}.count{background:var(--signal);color:#fff;min-inline-size:17px;font:500 .625rem/1.5 var(--mono);text-align:center;vertical-align:text-top;border-radius:9px;margin-inline-start:6px;padding:1px 5px;display:inline-block}.conv.unread{background:#3d4ee80f}.conv.unread b{color:var(--signal)}.conv.unread span:first-of-type{color:var(--ink);font-weight:500}.live{background:var(--rule);vertical-align:middle;border-radius:50%;block-size:6px;inline-size:6px;margin-inline-end:6px;display:inline-block}.live.on{background:var(--good)}.pill.live-on{color:var(--good);background:#eef7f1}.pill.live-off{color:var(--muted);background:#75838f24}.hint-off{font:.75rem/1.5 var(--mono);color:var(--muted);margin:8px 0 0}.turn.notice-warn{align-self:center;max-inline-size:100%}.turn.notice-warn .bubble{font:.75rem/1.5 var(--mono);color:var(--warn);text-align:center;background:#fdf0ed;border-radius:20px;padding:6px 14px}@media (width<=640px){body{font-size:15px}.log{gap:12px;padding:16px 14px 4px}.turn{max-inline-size:92%}.composer{padding:8px 14px max(14px, env(safe-area-inset-bottom))}.composer textarea{max-block-size:30vh;font-size:16px}.bar{gap:10px;padding:10px 14px}.bar h1{font-size:.875rem}}
