:root{--bg:#101114;--panel:#191b20;--panel-strong:#22252b;--line:#343842;--text:#f4efe9;--muted:#a9adb8;--soft:#d7b9ab;--hot:#c84d65;--hot-2:#f17c79;--cool:#57d4c4;--warning:#ffd166;--danger:#ff6b6b;--shadow:0 22px 70px #0000006b;--radius:8px;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{background:linear-gradient(130deg, #c84d652e, transparent 28%), linear-gradient(315deg, #57d4c41f, transparent 32%), var(--bg);min-width:320px;height:100dvh;min-height:100svh;margin:0;overflow:hidden}button,input{font:inherit}button{color:inherit}#root{height:100%;min-height:100svh}.boot-screen,.login-screen,.kiosk-shell{min-height:100svh}.boot-screen{color:var(--muted);place-items:center;display:grid}.login-screen{place-items:center;padding:24px;display:grid}.login-panel{border-radius:var(--radius);width:min(420px,100%);box-shadow:var(--shadow);background:#191b20eb;border:1px solid #f4efe91a;padding:30px}.login-mark{border-radius:var(--radius);width:56px;height:56px;color:var(--hot-2);background:#c84d6529;border:1px solid #f17c7966;place-items:center;margin-bottom:18px;display:grid}.login-panel h1{letter-spacing:0;margin:0 0 24px;font-size:38px;font-weight:700;line-height:1}.field{gap:8px;margin-bottom:16px;display:grid}.field label,.message span,.panel-heading,.status-strip,.avatar-vitals{color:var(--muted);letter-spacing:0;font-size:13px}.input-shell{border:1px solid var(--line);border-radius:var(--radius);background:#111317;align-items:center;gap:10px;min-height:48px;padding:0 13px;display:flex}.input-shell input,.composer input{width:100%;min-width:0;color:var(--text);background:0 0;border:0;outline:0}.segmented{border:1px solid var(--line);border-radius:var(--radius);background:#111317;grid-template-columns:1fr 1fr;gap:4px;padding:4px;display:grid}.segmented button{cursor:pointer;background:0 0;border:0;border-radius:6px;min-height:38px}.segmented button.active{color:#111317;background:var(--soft)}.segmented.compact{width:118px;min-width:118px}.segmented.compact button{min-height:36px}.check-line{color:var(--muted);align-items:center;gap:10px;margin:16px 0 18px;display:flex}.check-line input{width:18px;height:18px;accent-color:var(--hot)}.form-error,.avatar-error,.warning-line{color:var(--danger)}.form-error{margin:0 0 14px;font-size:14px}.primary-action,.send-button,.mic-button,.icon-button,.avatar-toolbar button,.status-strip button{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel-strong);cursor:pointer;transition:border-color .18s,background .18s,transform .18s}.primary-action:hover,.send-button:hover,.mic-button:hover,.icon-button:hover,.avatar-toolbar button:hover,.status-strip button:hover{border-color:#f17c79b8}.primary-action:disabled,.send-button:disabled,.mic-button:disabled,.avatar-toolbar button:disabled{cursor:not-allowed;opacity:.52}.primary-action{color:#111317;background:linear-gradient(135deg, var(--soft), var(--hot-2));border-color:#0000;width:100%;min-height:48px;font-weight:700}.kiosk-shell{grid-template-rows:auto minmax(0,1fr) auto;gap:14px;height:100dvh;max-height:100dvh;padding:14px;display:grid;overflow:hidden}.topbar,.status-strip{border-radius:var(--radius);background:#191b20d1;border:1px solid #f4efe917;justify-content:space-between;align-items:center;gap:12px;min-height:62px;padding:10px 12px;display:flex;box-shadow:0 12px 38px #00000038}.brand-block{align-items:center;gap:12px;min-width:0;display:flex}.brand-block strong{font-size:20px;line-height:1.1;display:block}.brand-block span:not(.brand-orb){color:var(--muted);font-size:12px;line-height:1.2;display:block}.brand-orb{background:radial-gradient(circle at 35% 25%, #fff1dc, transparent 28%), linear-gradient(135deg, var(--hot), var(--cool));border-radius:50%;flex:none;width:34px;height:34px;box-shadow:0 0 34px #f17c7957}.top-actions{align-items:center;gap:8px;display:flex}.icon-button{place-items:center;width:40px;height:40px;display:grid}.stage-grid{grid-template-columns:minmax(360px,1.24fr) minmax(340px,.76fr);gap:14px;min-height:0;display:grid;overflow:hidden}.avatar-stage,.conversation-panel{border-radius:var(--radius);min-height:0;box-shadow:var(--shadow);background:#191b20cc;border:1px solid #f4efe917;overflow:hidden}.avatar-stage{grid-template-rows:minmax(0,1fr) auto auto;gap:12px;padding:12px;display:grid}.avatar-frame{border-radius:var(--radius);background:radial-gradient(circle at 50% 25%,#f17c7947,#0000 36%),linear-gradient(#262831 0%,#101114 100%);border:1px solid #f4efe914;min-height:0;position:relative;overflow:hidden}.avatar-video{z-index:2;object-fit:cover;background:0 0;width:100%;height:100%;position:absolute;inset:0}.avatar-frame.has-video .avatar-video{background:#08090c}.avatar-frame.has-video .avatar-fallback{opacity:0}.avatar-fallback{place-items:center;transition:opacity .22s;display:grid;position:absolute;inset:0}.portrait-glow{aspect-ratio:1;filter:blur(4px);background:radial-gradient(circle at 50% 45%,#f4efe933,#0000 28%),radial-gradient(circle,#c84d6552,#0000 62%);border-radius:50%;width:min(46vw,520px);position:absolute}.portrait-face{aspect-ratio:.62;background:radial-gradient(circle at 50% 21%,#f17c7938,#0000 28%),linear-gradient(145deg,#3b222d 0%,#181016 48%,#0f0c10 100%);border-radius:46% 46% 20% 20%;width:min(31vw,290px);min-width:220px;position:relative;box-shadow:inset 0 -42px 90px #f17c7929,0 30px 90px #00000061}.portrait-face:before{content:"";background:radial-gradient(circle at 38% 34%,#fff8edcc,#0000 17%),linear-gradient(135deg,#f0c7b4,#b6786c);border-radius:48% 48% 44% 44%;width:55%;height:38%;position:absolute;top:18%;left:50%;transform:translate(-50%);box-shadow:0 0 0 12px #160d1259,0 16px 42px #00000052}.portrait-face:after{content:"";background:radial-gradient(circle at 50% 0,#f4efe929,#0000 28%),linear-gradient(135deg,#c84d65cc,#362230f5);border-radius:52% 52% 8% 8%;width:134%;height:32%;position:absolute;bottom:-6%;left:50%;transform:translate(-50%);box-shadow:0 18px 45px #0000006b}.portrait-face span{filter:blur(.2px);background:radial-gradient(circle at 44% 40%,#0000 0 29%,#ffdfcf29 30%,#0000 38%),linear-gradient(95deg,#ffffff0f,#0000 58%);border-radius:50%;width:62%;height:54%;position:absolute;top:15%;left:19%}.avatar-vitals{z-index:3;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1011149e;border:1px solid #f4efe91f;border-radius:999px;align-items:center;gap:8px;padding:8px 10px;display:inline-flex;position:absolute;top:14px;left:14px}.live-dot{background:var(--warning);border-radius:50%;width:8px;height:8px;box-shadow:0 0 16px #ffd166bf}.avatar-frame.ready .live-dot,.avatar-frame.speaking .live-dot{background:var(--cool);box-shadow:0 0 16px #57d4c4bf}.avatar-frame.rendering .live-dot,.avatar-frame.connecting .live-dot{background:var(--warning);box-shadow:0 0 16px #ffd166bf}.avatar-frame.error .live-dot{background:var(--danger);box-shadow:0 0 16px #ff6b6bbf}.avatar-toolbar{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.avatar-toolbar button{justify-content:center;align-items:center;gap:8px;min-height:44px;display:inline-flex}.avatar-error{min-height:20px;margin:0;font-size:13px}.conversation-panel{grid-template-rows:auto minmax(0,1fr) auto auto auto;gap:10px;padding:12px;display:grid}.panel-heading{min-height:34px;color:var(--text);align-items:center;gap:8px;font-size:15px;display:flex}.messages{overscroll-behavior:contain;scroll-behavior:smooth;scrollbar-gutter:stable;flex-direction:column;gap:10px;min-height:0;padding-right:4px;display:flex;overflow:hidden auto}.messages>.message:first-child{margin-top:auto}.message{border-radius:var(--radius);background:#111317;border:1px solid #f4efe914;width:min(92%,620px);padding:11px 12px}.message.assistant{background:linear-gradient(135deg,#c84d652e,#0000),#14161a;align-self:flex-start}.message.user{background:linear-gradient(135deg,#57d4c429,#0000),#15181c;align-self:flex-end}.message p{white-space:pre-wrap;overflow-wrap:anywhere;margin:5px 0 0;line-height:1.45}.interim-line,.warning-line{min-height:23px;padding:0 2px;font-size:13px}.interim-line{color:var(--warning)}.composer{grid-template-columns:46px 1fr 46px;gap:8px;min-height:50px;display:grid}.composer input{border:1px solid var(--line);border-radius:var(--radius);background:#111317;min-height:50px;padding:0 14px}.mic-button,.send-button{place-items:center;display:grid}.mic-button.active{color:#111317;background:var(--warning);border-color:#0000}.send-button{color:#111317;background:var(--cool);border-color:#0000}.status-strip{min-height:50px;box-shadow:none;flex-wrap:wrap;justify-content:flex-start}.status-strip span{align-items:center;gap:8px;display:inline-flex}.status-strip span.ok{color:var(--cool)}.status-strip span.bad{color:var(--danger)}.status-strip button{min-height:28px;color:var(--muted);padding:0 9px}@media (width<=980px){.kiosk-shell{gap:10px;padding:10px}.topbar,.status-strip{min-height:54px;padding:8px 10px}.stage-grid{grid-template-rows:minmax(250px,38svh) minmax(0,1fr);grid-template-columns:1fr;gap:10px}.avatar-frame{min-height:0}.avatar-toolbar button{min-height:40px}.message{width:min(94%,620px)}}@media (width<=620px){.kiosk-shell{gap:8px;padding:8px}.topbar{flex-direction:column;align-items:stretch;gap:8px;min-height:0}.top-actions{justify-content:space-between}.brand-block strong{font-size:18px}.stage-grid{grid-template-rows:minmax(210px,32svh) minmax(0,1fr);gap:8px}.avatar-stage,.conversation-panel{padding:8px}.avatar-stage{gap:8px}.avatar-toolbar{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.avatar-toolbar button{gap:5px;min-height:38px;font-size:13px}.message{width:100%;padding:10px}.panel-heading{min-height:28px}.messages{gap:8px;padding-right:0}.composer{grid-template-columns:42px minmax(0,1fr) 42px;gap:6px;min-height:44px}.composer input{min-height:44px;padding:0 12px}.status-strip{scrollbar-width:none;flex-wrap:nowrap;min-height:40px;padding:7px 8px;overflow-x:auto}.status-strip::-webkit-scrollbar{display:none}.status-strip span,.status-strip button{white-space:nowrap}.portrait-glow{width:min(68vw,260px)}.portrait-face{width:min(42vw,180px);min-width:145px}}
