:root{--bg:#070b12;--bg-2:#0b1220;--panel:#101927eb;--panel-2:#121c2c;--line:#1e2c42;--text:#e7eef7;--muted:#8b9cb3;--accent:#4cc9f0;--accent-ink:#04121a;--accent-soft:#4cc9f024;--good:#3ddc97;--warn:#f5b84b;--bad:#ff5d6c;--radius:14px;--series-1:#3987e5;--series-2:#d95926;--series-3:#199e70;--gutter:16px;--font:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--mono:ui-monospace, "Cascadia Code", "SF Mono", Consolas, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:radial-gradient(1200px 600px at 50% -10%, #4cc9f014, transparent 70%), var(--bg);color:var(--text);font:15px/1.5 var(--font);-webkit-font-smoothing:antialiased;overflow:hidden}button,input,textarea{font:inherit;color:inherit}a{color:var(--accent)}code{font-family:var(--mono);background:var(--accent-soft);border-radius:6px;padding:.1em .35em;font-size:.9em}code.block{white-space:nowrap;margin:8px 0;padding:8px 10px;display:block;overflow-x:auto}.muted{color:var(--muted)}.small{font-size:13px}.btn{border:1px solid var(--line);background:var(--panel-2);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:6px;min-height:40px;padding:0 16px;transition:background .15s,border-color .15s,opacity .15s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent)}.btn:disabled{opacity:.45;cursor:default}.btn:focus-visible,.icon-btn:focus-visible,.link-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink);font-weight:600}.btn-primary:hover:not(:disabled){background:#6fd6f5}.btn-danger{color:var(--bad);background:#ff5d6c14;border-color:#ff5d6c80}.btn-danger:hover:not(:disabled){border-color:var(--bad)}.btn-danger-outline{color:var(--bad);background:0 0;border-color:#ff5d6c59}.btn-small{min-height:34px;padding:0 12px;font-size:14px}.btn-wide{width:100%}.icon-btn{cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;place-items:center;width:40px;height:40px;display:grid}.icon-btn:hover{border-color:var(--line)}.link-btn{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:8px;text-decoration:underline}.field{color:var(--muted);gap:6px;font-size:13px;display:grid}.field input{border:1px solid var(--line);background:var(--bg-2);min-height:44px;color:var(--text);letter-spacing:.04em;border-radius:10px;padding:0 12px;font-size:16px}.field input:focus{border-color:var(--accent);outline:none}.error{color:var(--bad);text-align:center;max-width:420px}.orb{flex:none;place-items:center;display:grid;position:relative}.orb-large{width:96px;height:96px}.orb-small{width:28px;height:28px}.orb-ring{border:3px solid var(--accent);border-radius:50%;position:absolute;inset:12%;box-shadow:0 0 18px #4cc9f08c,inset 0 0 14px #4cc9f059}.orb-small .orb-ring{border-width:2px}.orb-core{background:var(--accent);width:22%;height:22%;box-shadow:0 0 16px var(--accent);border-radius:50%}.orb-idle .orb-ring{animation:4s ease-in-out infinite breathe}.orb-thinking .orb-ring{border-top-color:#0000;animation:1s linear infinite spin}.orb-thinking .orb-core{animation:1s ease-in-out infinite pulse}@keyframes breathe{50%{transform:scale(1.06);box-shadow:0 0 26px #4cc9f0bf,inset 0 0 18px #4cc9f073}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.7;transform:scale(1.3)}}@media (prefers-reduced-motion:reduce){.orb-ring,.orb-core,.typing span{animation:none!important}}.center-screen{min-height:100%;padding:max(24px, env(safe-area-inset-top)) var(--gutter) max(24px, env(safe-area-inset-bottom));text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.title{letter-spacing:.08em;margin:0;font-size:28px;font-weight:600}.card{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);text-align:left;gap:14px;padding:20px;display:grid}.narrow{width:min(380px,100%)}.app{flex-direction:column;max-width:860px;height:100%;margin:0 auto;display:flex}.topbar{padding:max(10px, env(safe-area-inset-top)) var(--gutter) 10px;border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex}.brand{letter-spacing:.06em;align-items:center;gap:10px;font-weight:600;display:flex}.topbar-actions{align-items:center;gap:8px;display:flex}.spend{color:var(--muted);font-variant-numeric:tabular-nums;align-items:center;gap:8px;font-size:13px;display:flex}.spend-bar{background:var(--line);border-radius:3px;width:56px;height:6px;overflow:hidden}.spend-bar>div{background:var(--good);height:100%}.spend-warning .spend-bar>div{background:var(--warn)}.spend-capped .spend-bar>div{background:var(--bad)}.spend-capped{color:var(--bad)}.banner{width:100%;padding:10px var(--gutter);text-align:left;border:0;margin:0;font-size:14px;display:block}.banner-bad{color:#ffc2c8;background:#ff5d6c24}.banner-warn{color:#ffe0a8;background:#f5b84b24}.banner-info{background:var(--accent-soft);color:var(--text);cursor:pointer}.conversation{padding:16px var(--gutter);overscroll-behavior:contain;flex-direction:column;flex:1;gap:12px;display:flex;overflow-y:auto}.empty{color:var(--muted);text-align:center;justify-items:center;gap:12px;margin:auto;display:grid}.divider{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;align-self:center;padding:4px 0;font-size:12px}.msg{flex-direction:column;max-width:min(680px,88%);display:flex}.msg-you{align-self:flex-end;align-items:flex-end}.msg-alfred,.msg-error{align-self:flex-start}.bubble{border-radius:var(--radius);overflow-wrap:anywhere;padding:10px 14px}.msg-you .bubble{background:var(--accent);color:var(--accent-ink);white-space:pre-wrap;border-bottom-right-radius:4px}.msg-alfred .bubble{background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:4px}.msg-error .bubble{color:#ffc2c8;background:#ff5d6c1a;border:1px solid #ff5d6c59}.bubble p,.bubble ul,.bubble ol{margin:0 0 8px}.bubble>:last-child{margin-bottom:0}.bubble ul,.bubble ol{padding-left:20px}.rich-heading{font-weight:600}.msg-meta{color:var(--muted);margin-top:4px;font-size:12px}.typing{gap:5px;padding:14px 16px;display:flex}.typing span{background:var(--accent);border-radius:50%;width:7px;height:7px;animation:1.2s ease-in-out infinite pulse}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}.approvals{margin:0 var(--gutter);border-radius:var(--radius);background:var(--panel);border:1px solid #4cc9f066;gap:10px;max-height:40vh;padding:12px;display:grid;overflow-y:auto;box-shadow:0 0 24px #4cc9f01f}.approvals h2{color:var(--accent);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:13px;font-weight:600}.approval{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;gap:8px;padding:10px 12px;display:grid}.approval-tool{color:var(--muted);font-size:12px}.approval-summary{margin:0}.approval-posts{gap:6px;display:grid}.approval blockquote{border-left:3px solid var(--accent);background:var(--panel-2);white-space:pre-wrap;border-radius:6px;margin:0;padding:8px 10px}.approval details summary{cursor:pointer;color:var(--muted);font-size:13px}.approval pre{max-height:160px;font-family:var(--mono);white-space:pre-wrap;margin:6px 0 0;font-size:12px;overflow:auto}.approval-actions{gap:8px;display:flex}.composer{padding:12px var(--gutter) max(12px, env(safe-area-inset-bottom));align-items:flex-end;gap:8px;display:flex}.composer textarea{border:1px solid var(--line);background:var(--bg-2);resize:none;field-sizing:content;border-radius:12px;flex:1;min-height:44px;max-height:180px;padding:11px 14px;font-size:16px}.composer textarea:focus{border-color:var(--accent);outline:none}.composer .btn{min-height:44px}.sheet-backdrop{z-index:10;background:#02050a99;justify-content:flex-end;display:flex;position:fixed;inset:0}.sheet{width:min(380px,100%);height:100%;padding:max(16px, env(safe-area-inset-top)) var(--gutter) max(16px, env(safe-area-inset-bottom));background:var(--bg-2);border-left:1px solid var(--line);flex-direction:column;gap:16px;display:flex;overflow-y:auto}.sheet-header{justify-content:space-between;align-items:center;display:flex}.sheet h2{margin:0;font-size:18px}.sheet h3{color:var(--muted);margin:0 0 6px;font-size:14px;font-weight:600}.sheet section p{margin:0 0 8px}.list{gap:8px;margin:0 0 10px;padding:0;list-style:none;display:grid}.list li{border:1px solid var(--line);border-radius:10px;justify-content:space-between;align-items:center;gap:8px;padding:10px 12px;display:flex}.sheet .btn-danger-outline{margin-top:auto}@media (width<=480px){.spend-bar{width:36px}.msg{max-width:92%}}.feedback{margin-top:4px;font-size:13px}.feedback-row{opacity:.55;align-items:center;gap:2px;transition:opacity .15s;display:flex}.msg:hover .feedback-row,.feedback-row:focus-within{opacity:1}.feedback-row:has(.fb-active){opacity:1}@media (hover:none){.feedback-row{opacity:.8}}.fb-btn{cursor:pointer;filter:grayscale();background:0 0;border:1px solid #0000;border-radius:8px;width:32px;height:32px;font-size:15px}.fb-btn:hover{border-color:var(--line)}.fb-btn.fb-active{filter:none;background:var(--accent-soft);border-color:#4cc9f066}.fb-btn.fb-down.fb-active{background:#ff5d6c1a;border-color:#ff5d6c66}.fb-btn:focus-visible,.fb-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.fb-link{color:var(--muted);cursor:pointer;text-underline-offset:2px;background:0 0;border:0;margin-left:4px;padding:6px;text-decoration:underline}.fb-saved{color:var(--muted);margin:2px 0 0;font-style:italic}.fb-edit{gap:6px;width:min(520px,100%);margin-top:6px;display:grid}.fb-edit textarea{border:1px solid var(--line);background:var(--bg-2);resize:vertical;border-radius:10px;padding:8px 10px;font-size:15px}.fb-edit textarea:focus{border-color:var(--accent);outline:none}.fb-actions{gap:6px;display:flex}.tabs{padding:8px var(--gutter);border-bottom:1px solid var(--line);gap:4px;display:flex}.tab{min-height:36px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:999px;align-items:center;gap:6px;padding:0 14px;font-weight:500;display:inline-flex}.tab:hover{color:var(--text)}.tab-on{color:var(--text);background:var(--accent-soft);border-color:#4cc9f059}.tab:focus-visible,.chip-btn:focus-visible,.act-main:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.badge{background:var(--accent);min-width:18px;height:18px;color:var(--accent-ink);text-align:center;border-radius:9px;padding:0 5px;font-size:11px;font-weight:700;line-height:18px}.view{padding:16px var(--gutter) max(24px, env(safe-area-inset-bottom));flex-direction:column;flex:1;gap:16px;display:flex;overflow-y:auto}.panel{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);min-width:0;padding:14px 16px}.panel-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.panel-title{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:13px;font-weight:600}.filters{flex-wrap:wrap;gap:6px;display:flex}.chip-btn{border:1px solid var(--line);min-height:32px;color:var(--muted);cursor:pointer;background:0 0;border-radius:999px;padding:0 12px;font-size:13px}.chip-btn-on{color:var(--text);border-color:var(--accent);background:var(--accent-soft)}.task-list{gap:10px;margin:10px 0 0;padding:0;list-style:none;display:grid}.task{align-items:flex-start;gap:10px;display:flex}.task-body{min-width:0}.task-request{margin:0}.task-body p{margin:2px 0 0}.clamp{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.chip{border:1px solid var(--line);border-radius:999px;flex:none;padding:2px 8px;font-size:12px;font-weight:600}.chip-queued,.chip-running{color:var(--accent);border-color:#4cc9f066}.chip-done{color:var(--good);border-color:#3ddc9766}.chip-failed{color:var(--bad);border-color:#ff5d6c66}.activity{margin:0;padding:0;list-style:none}.day{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin:14px 0 6px;font-size:12px;font-weight:600}.act{border-bottom:1px solid var(--line)}.act-main{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:baseline;gap:12px;padding:10px 2px;display:flex}.act-time{width:64px;color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.act-text{flex:1;min-width:0;display:grid}.act-title{font-weight:500}.act-detail{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.act-cost{color:var(--muted);font-variant-numeric:tabular-nums;flex:none;font-size:13px}.act-more{padding:0 2px 12px 76px}.act-more pre{background:var(--bg-2);max-height:220px;font-family:var(--mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;margin:6px 0 0;padding:8px 10px;font-size:12px;overflow:auto}.tiles{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.tile{border:1px solid var(--line);border-radius:var(--radius);background:var(--panel);gap:2px;padding:14px 16px;display:grid}.tile-label{color:var(--muted);font-size:12px}.tile-value{font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.tile-sub{color:var(--muted);font-size:12px}.legend{color:var(--muted);gap:16px;margin:12px 0 4px;padding:0;font-size:13px;list-style:none;display:flex}.legend li{align-items:center;gap:6px;display:flex}.swatch{border-radius:3px;flex:none;width:10px;height:10px}.chart{margin-top:6px;position:relative}.chart svg{width:100%;height:auto;display:block;overflow:visible}.chart .grid{stroke:var(--line);stroke-width:1px}.chart .axis{fill:var(--muted);font-variant-numeric:tabular-nums;font-size:11px}.chart rect:focus{outline:none}.chart rect:focus-visible{outline:2px solid var(--accent)}.tooltip{border:1px solid var(--line);background:var(--bg-2);pointer-events:none;z-index:2;border-radius:10px;gap:4px;min-width:150px;padding:8px 10px;font-size:13px;display:grid;position:absolute;top:0;transform:translate(-50%);box-shadow:0 8px 24px #0006}.tt-row{color:var(--muted);align-items:center;gap:6px;display:flex}.tt-val{color:var(--text);font-variant-numeric:tabular-nums;margin-left:auto}.tt-total{border-top:1px solid var(--line);color:var(--text);padding-top:4px}.table-wrap{margin-top:8px;overflow-x:auto}.table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13px}.table th,.table td{border-bottom:1px solid var(--line);text-align:right;padding:6px 8px}.table th:first-child,.table td:first-child{text-align:left}.table th{color:var(--muted);font-weight:600}.split{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.breakdown{gap:8px;margin:10px 0 0;padding:0;list-style:none;display:grid}.breakdown li{grid-template-columns:minmax(0,9em) 1fr auto;align-items:center;gap:10px;font-size:13px;display:grid}.bd-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.bd-bar{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.bd-bar span{background:var(--series-1);border-radius:3px;height:100%;display:block}.bd-val{color:var(--muted);font-variant-numeric:tabular-nums}@media (width<=640px){.tiles{grid-template-columns:1fr 1fr}.tiles .tile:first-child{grid-column:1/-1}.split{grid-template-columns:1fr}.act-more{padding-left:2px}.act-time{width:56px}}.row-gap{flex-wrap:wrap;gap:8px;display:flex}.mic{border:1px solid var(--line);background:var(--panel-2);width:44px;height:44px;color:var(--text);cursor:pointer;border-radius:50%;flex:none;place-items:center;transition:background .15s,border-color .15s;display:grid;position:relative}.mic:hover{border-color:var(--accent)}.mic:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.mic:after{content:"";border:2px solid var(--accent);opacity:0;transform:scale(calc(1 + var(--level,0) * .35));pointer-events:none;border-radius:50%;transition:transform 80ms linear;position:absolute;inset:-3px}.mic-listening{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.mic-listening:after{opacity:.8}.mic-transcribing,.mic-thinking{color:var(--accent);border-color:var(--accent)}.mic-transcribing:after,.mic-thinking:after{opacity:.6;border-top-color:#0000;animation:1s linear infinite spin}.mic-speaking{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.mic-speaking:after{opacity:.6;animation:1.2s ease-in-out infinite pulse}@media (prefers-reduced-motion:reduce){.mic:after{transition:none;animation:none!important}}.hud{flex:none}.hud canvas{display:block}.hud-medium{width:210px;height:210px}.hud-large{width:min(88vw,52vh,480px);height:min(88vw,52vh,480px)}.voice-mode{z-index:40;padding:max(24px, env(safe-area-inset-top)) var(--gutter) max(24px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:radial-gradient(circle at 50% 40%,#0b1220eb,#070b12fa);flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.25s ease-out fade-in;display:flex;position:fixed;inset:0}.voice-mode-orb{cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;min-width:96px;min-height:96px;padding:0;display:grid}.voice-mode-orb:focus-visible{outline:2px solid var(--accent);outline-offset:4px}.voice-mode-state{color:var(--accent);letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:13px}.captions{text-align:center;gap:10px;width:min(100%,560px);min-height:6em;max-height:30vh;display:grid;overflow-y:auto}.captions p{margin:0;line-height:1.45}.caption-you{color:var(--muted);font-size:14px}.caption-you:before{content:"“"}.caption-you:after{content:"”"}.caption-alfred{color:var(--text);font-size:17px}.voice-mode-end{margin-top:8px}@keyframes fade-in{0%{opacity:0}}@media (prefers-reduced-motion:reduce){.voice-mode{animation:none}}.remembered{color:var(--accent);opacity:.85;margin-top:4px;font-size:12px}.remembered:before{content:"◆ ";vertical-align:1px;font-size:9px}.post-edit{gap:2px;display:grid}.post-edit textarea{resize:vertical;border:1px solid var(--accent);background:var(--panel-2);width:100%;color:var(--text);font:inherit;border-radius:6px;padding:8px 10px;line-height:1.4}.count{color:var(--muted);justify-self:end;font-size:11px}.count-over{color:var(--bad)}.reject-reason{border:1px solid var(--line);background:var(--panel-2);width:100%;color:var(--text);font:inherit;border-radius:6px;padding:8px 10px}.setup-steps{gap:10px;margin:8px 0 0;padding-left:20px;display:grid}.setup-values{grid-template-columns:auto 1fr;gap:4px 10px;margin:8px 0 0;display:grid}.setup-values dt{color:var(--muted)}.setup-values dd{align-items:baseline;gap:8px;min-width:0;margin:0;display:flex}.setup-values code{font-family:var(--mono);overflow-wrap:anywhere;font-size:12px}
