:root{color-scheme:dark;--bg:#091421;--panel:#102131;--text:#f3f8fc;--muted:#98afbf;--a:#7ae7d0;font-family:Inter,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;line-height:1.5}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}[hidden]{display:none!important}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}button:focus-visible,textarea:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--a)}#app{display:flex;min-height:100dvh;flex-direction:column;background:radial-gradient(ellipse at 60% 15%,#163e50,#091421 53%)}header{display:flex;justify-content:space-between;align-items:center;padding:calc(14px + env(safe-area-inset-top)) 22px 12px;border-bottom:1px solid #2843538e;background:#0a1a28c2;backdrop-filter:blur(14px)}.brand{display:flex;align-items:center;gap:10px}.brand img{border-radius:12px}.brand b{display:block;letter-spacing:.22em;font-size:15px}.brand small{display:block;color:#8fbcb9;letter-spacing:.24em;font-size:8px}.header-actions{display:flex;align-items:center;gap:17px}#status{font-size:11px;color:#8ee5cc}.icon{border:0;background:transparent;color:#dcebea;font-size:21px;padding:5px 9px;border-radius:10px}.icon:hover{background:#254358}main{width:100%;max-width:1000px;margin:auto;min-height:0;flex:1;display:flex;flex-direction:column;position:relative}.welcome{flex:1;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:18px}.orb{width:178px;height:178px;border-radius:50%;border:1px solid #73fff065;padding:17px;background:radial-gradient(circle at 35% 30%,#5affd666,#19477d66 56%,#0b1b30);box-shadow:0 0 80px #1ecdc32d}.orb-inner{border:1px solid #8bdded4d;width:100%;height:100%;border-radius:50%;display:grid;place-items:center;font-size:65px;color:#c6fff0;text-shadow:0 0 35px #83efd2;background:radial-gradient(circle,#155c64,#091929 73%)}.badge{font-size:10px;letter-spacing:.2em;color:var(--a);margin-top:28px;padding:7px 14px;border:1px solid #2a665d;border-radius:25px}h1{font-size:clamp(36px,6vw,56px);line-height:1.1;letter-spacing:-.045em;font-weight:650;margin:18px 0 12px}h1 em{font-style:normal;background:linear-gradient(110deg,#6ef8dc,#88c9ff);color:transparent;background-clip:text;-webkit-background-clip:text}.welcome p{color:#a9bed0;margin:0;font-size:14px}.suggestions{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:31px}.suggestions button{border:1px solid #345367;background:#12293bc9;border-radius:13px;padding:13px 17px;color:#c3d8e8;font-size:12px}.suggestions button:hover{border-color:var(--a)}.composer-wrap{padding:13px 23px calc(18px + env(safe-area-inset-bottom));margin-top:auto}.composer{display:flex;align-items:end;gap:7px;border:1px solid #3a596a;border-radius:19px;background:#152b3dcc;padding:10px}.composer textarea{flex:1;background:transparent;color:white;border:0;outline:none!important;min-height:36px;max-height:150px;resize:none;padding:7px;overflow:auto;font-size:15px}.composer textarea::placeholder{color:#819baa}#micButton{background:none;border:0;color:#bedbd6;font-size:20px;width:38px;height:38px;border-radius:9px}#micButton.recording{background:#9e3142;color:white;animation:pulse 1.3s infinite}@keyframes pulse{50%{box-shadow:0 0 18px #f77a8ca9}}#sendButton{border:0;background:#84f1d5;border-radius:12px;color:#09262a;font-size:28px;width:42px;height:40px}.composer-meta{display:flex;justify-content:space-between;color:#7692a4;font-size:10px;margin:9px 5px 0;gap:10px}.composer-meta span:last-child{text-align:right}#chat{flex:1;overflow-y:auto;min-height:0;display:flex;flex-direction:column;gap:18px;padding:27px max(24px,calc((100% - 800px)/2)) 15px;scroll-behavior:smooth}.bubble{max-width:87%;white-space:pre-wrap;word-break:break-word;font-size:15px;line-height:1.65}.bubble.user{align-self:end;background:#1f3b4c;border:1px solid #34616d;border-radius:19px 19px 5px 19px;padding:13px 17px}.bubble.assistant{align-self:start;padding:6px 5px 24px;position:relative}.bubble.assistant::before{content:'✦ TIMMY';display:block;letter-spacing:.23em;color:var(--a);font-size:10px;font-weight:bold;margin-bottom:9px}.bubble .speak{position:absolute;bottom:0;left:5px;color:#8edacb;background:none;border:0;font-size:11px;padding:0}.loading-bubble{color:#a7e0d1;font-style:italic}#errorToast{margin:8px 24px;border:1px solid #a44e62;background:#462633;border-radius:11px;padding:12px;color:#ffe9e9;font-size:13px}
#drawer{position:fixed;z-index:10;top:0;left:0;bottom:0;display:flex;flex-direction:column;width:min(335px,88vw);padding:calc(22px + env(safe-area-inset-top)) 21px calc(16px + env(safe-area-inset-bottom));gap:17px;background:#102131;border-right:1px solid #2b4a5b;box-shadow:20px 0 55px #0009;transform:translateX(-110%);transition:transform .2s}#drawer.open{transform:translateX(0)}#backdrop{position:fixed;inset:0;background:#000b;z-index:9}.flex{display:flex;align-items:center;justify-content:space-between}.eyebrow{display:block;color:var(--a);letter-spacing:.23em;font-size:10px;font-weight:800}.subdued{color:#7896a6;margin-top:6px}#workspace{width:100%;background:#183245;border:1px solid #3c5c6a;border-radius:12px;padding:13px;color:white;font-size:14px}.outline{background:#17443f77;border:1px solid #5abdad;border-radius:12px;color:#d8fff3;padding:12px;font-weight:600}.conversations{flex:1;min-height:40px;overflow:auto}.conversation-item{width:100%;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:left;background:transparent;color:#c3d9e1;border:1px solid transparent;border-radius:10px;padding:12px;font-size:13px}.conversation-item:hover,.conversation-item.active{background:#1c3a4a;border-color:#315969}nav{display:flex;flex-direction:column;border-top:1px solid #315267;padding-top:11px}nav button{background:transparent;border:0;color:#b9d1db;text-align:left;padding:12px;border-radius:10px;font-size:13px}nav button:hover{background:#1c3a4a}
.login-screen{min-height:100dvh;display:grid;place-items:center;padding:22px;background:radial-gradient(ellipse at 50% 15%,#145065,#081421 57%)}.login-card{width:min(440px,100%);text-align:center;background:#112738ec;border:1px solid #365568;padding:45px 30px;border-radius:25px;box-shadow:0 20px 70px #0009}.login-card img{border-radius:22px;box-shadow:0 0 50px #48ffe449;margin-bottom:23px}.login-card p{color:#b1c4d2;font-size:14px}.login-card form{text-align:left;margin-top:27px}.login-card label{font-size:12px;color:#9fb6c4;display:block;margin-bottom:8px}.login-card input{width:100%;background:#0a1b2a;border:1px solid #426070;border-radius:11px;color:white;padding:14px}.primary{width:100%;background:#85ecd4;color:#08252c;border:0;border-radius:11px;padding:13px;font-weight:750;margin-top:14px}.footer{display:block;color:#7191a3;font-size:10px;letter-spacing:.22em;margin-top:38px}dialog{width:min(460px,calc(100% - 30px));background:#132838;border:1px solid #375a6d;border-radius:22px;color:white;padding:24px;box-shadow:0 25px 75px #000a;max-height:80dvh;overflow:auto}dialog::backdrop{background:#04121acc}dialog h2{margin:0;font-size:23px}dialog p{font-size:13px;color:#afc5d0}dialog textarea{display:block;width:100%;min-height:100px;background:#0c1b28;border:1px solid #38586c;color:white;border-radius:11px;padding:12px;resize:vertical}.memory-item{background:#1e3a4b;border:1px solid #315569;padding:12px;border-radius:11px;margin-top:12px;white-space:pre-wrap;font-size:13px}.memory-item button{border:0;background:none;color:#ffb0ad;font-size:11px;margin-top:8px;padding:0;display:block}.fineprint{font-size:11px!important;margin-top:21px}
@media(max-width:640px){header{padding:calc(10px + env(safe-area-inset-top)) 15px 10px}.brand b{font-size:14px}.header-actions{gap:10px}.welcome{padding:12px 17px}.orb{width:140px;height:140px;padding:14px}.orb-inner{font-size:45px}.badge{margin-top:17px}.welcome h1{font-size:38px}.welcome p{font-size:13px}.suggestions{width:100%;max-width:340px;margin-top:18px;gap:8px}.suggestions button{width:100%;text-align:left;padding:11px}.composer-wrap{padding:8px 13px calc(11px + env(safe-area-inset-bottom))}.composer-meta{font-size:9px}.composer-meta span:last-child{max-width:55%}#chat{padding:16px 16px 10px;gap:13px}.bubble{max-width:92%;font-size:14px}.login-card{padding:33px 23px}}
@media(max-height:710px){.orb{width:112px;height:112px}.welcome h1{font-size:34px}.suggestions{margin-top:12px}}@media(prefers-reduced-motion:reduce){#drawer{transition:none}#chat{scroll-behavior:auto}#micButton.recording{animation:none}}


/* Always-available mobile voice controls: explicit mic state and foreground wake toggle. */
.voice-controls{display:flex;flex-direction:column;align-items:stretch;gap:9px;padding:12px 12px 13px;margin-bottom:12px;border:1px solid #2c786a;border-radius:18px;background:linear-gradient(100deg,#0b3439,#102b40);box-shadow:0 8px 26px #081421aa}
.voice-buttons{display:flex;gap:9px;align-items:center}
.voice-buttons button{font:inherit;font-weight:650;cursor:pointer;touch-action:manipulation;min-height:48px;border-radius:14px;transition:background-color .18s,transform .18s}
.talk-button{flex:1;padding:12px;border:1px solid #6cfbe0;background:#82f0d5;color:#062a2c;font-size:15px}
.talk-button.active{background:#fb777c;color:#29111c;border-color:#fba6aa}
.talk-button:disabled{opacity:.65;cursor:wait}
.wake-toggle{min-width:140px;padding:10px 14px;border:1px solid #4d6b7c;background:#112c3d;color:#c0e6e3;font-size:12px}
.wake-toggle.enabled{background:#1e5147;color:#a6ffe5;border-color:#53caa6}
#liveVoiceStatus{color:#b1d4d7;font-size:11px;line-height:1.5;min-height:16px}
@media(max-width:420px){.voice-controls{padding:9px}.voice-buttons{gap:6px}.voice-buttons button{font-size:12px;padding:9px 10px;min-height:45px}.wake-toggle{min-width:126px}#liveVoiceStatus{font-size:10px}}
