:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color-scheme:light;--bg:#f5f7fb;--panel:#fff;--panel-2:#f7f9fc;--panel-3:#edf2f7;--ink:#1f2937;--muted:#748094;--faint:#97a2b2;--line:#e4e9f0;--accent:#6d8fe8;--accent-2:#5277d8;--accent-soft:#edf1ff;--good:#3d9b79;--bad:#c65e65;--shadow:0 18px 54px rgba(30,45,70,.08);background:var(--bg);color:var(--ink);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html,body{margin:0;min-width:320px;min-height:100%;height:100%;scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);transition:background .2s,color .2s}body[data-theme=dark]{color-scheme:dark;--bg:#11151d;--panel:#1a202b;--panel-2:#202735;--panel-3:#283244;--ink:#e9edf5;--muted:#a3aec0;--faint:#7f8ba0;--line:#303a4b;--accent:#8aa6ff;--accent-2:#9ab2ff;--accent-soft:#283452;--good:#75c7a7;--bad:#e58d93;--shadow:0 18px 54px rgba(0,0,0,.22)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.48}button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 34%,transparent);outline-offset:2px}[hidden]{display:none!important}.app-shell{min-height:100%;display:flex;flex-direction:column}.topbar{height:66px;flex:none;padding:0 clamp(16px,4vw,48px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--panel)}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.brand-mark{width:35px;height:35px;border-radius:12px;background:linear-gradient(145deg,#dbe5ff,#8aa7f4);color:#3e5fb5;display:grid;place-items:center;font-size:21px;box-shadow:0 5px 16px #637fcf2e}.brand-copy{display:flex;flex-direction:column;line-height:1.1}.brand-copy strong{font-family:Georgia,serif;font-size:20px;font-weight:600}.brand-copy small{font-size:9px;color:var(--faint);letter-spacing:1.15px;text-transform:uppercase;margin-top:4px}.top-actions{display:flex;align-items:center;gap:12px}.connection-badge,.status-chip{height:30px;padding:0 10px;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line);border-radius:20px;color:var(--muted);font-size:10px;white-space:nowrap;background:var(--panel-2)}.connection-badge i,.status-chip i{width:7px;height:7px;border-radius:50%;background:var(--faint)}.connection-badge[data-online=true] i{background:var(--good)}.connection-badge[data-online=false] i{background:#c99a57}.status-chip[data-state=ready] i{background:var(--good);box-shadow:0 0 0 4px color-mix(in srgb,var(--good) 15%,transparent)}.status-chip[data-state=loading] i,.status-chip[data-state=recovering] i{background:#d7a85e;animation:pulse 1.3s infinite}.status-chip[data-state=error] i{background:var(--bad)}.icon-button{width:35px;height:35px;border:1px solid var(--line);background:var(--panel-2);border-radius:11px;color:var(--muted);font-size:17px;display:grid;place-items:center}.icon-button:hover{background:var(--panel-3)}.voice-toggle{display:flex;align-items:center;gap:7px;color:var(--muted);font-size:11px;cursor:pointer}.voice-toggle input{position:absolute;opacity:0;pointer-events:none}.toggle-track{width:30px;height:17px;border-radius:20px;background:var(--line);position:relative;transition:.2s}.toggle-track:after{content:"";position:absolute;width:11px;height:11px;background:#fff;border-radius:50%;top:3px;left:3px;box-shadow:0 1px 3px #667;transition:.2s}.voice-toggle input:checked+.toggle-track{background:var(--accent)}.voice-toggle input:checked+.toggle-track:after{left:16px}.theme-button{font-size:16px}.setup-screen{flex:1;min-height:calc(100vh - 66px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px 15px;background:radial-gradient(ellipse at 50% 0%,color-mix(in srgb,var(--accent-soft) 72%,transparent),transparent 55%)}.setup-card{width:min(560px,100%);background:var(--panel);border:1px solid var(--line);border-radius:25px;padding:clamp(22px,4vw,38px);box-shadow:var(--shadow)}.setup-brand-mark{width:54px;height:54px;border-radius:18px;background:linear-gradient(145deg,#e7edff,#9db4ff);color:#4c68b8;display:grid;place-items:center;font-size:28px;margin:0 auto 21px}.eyebrow{font-size:9px;letter-spacing:2px;text-transform:uppercase;color:var(--faint);font-weight:700;margin:0 0 9px;text-align:center}.setup-card h1{font-family:Georgia,serif;font-size:clamp(30px,5vw,41px);font-weight:500;letter-spacing:-.6px;text-align:center;margin:0 0 10px}.setup-copy{color:var(--muted);font-size:13px;line-height:1.75;text-align:center;max-width:440px;margin:0 auto 22px}.setup-privacy{display:flex;align-items:center;gap:12px;padding:13px 14px;background:var(--panel-2);border:1px solid var(--line);border-radius:13px;margin:0 0 20px}.setup-privacy>span{font-size:21px;color:var(--accent)}.setup-privacy div{display:flex;flex-direction:column;gap:3px}.setup-privacy strong{font-size:11px}.setup-privacy small{font-size:10px;color:var(--muted);line-height:1.5}.setup-model-row{display:flex;align-items:center;justify-content:space-between;gap:12px}.setup-model-row label{font-size:10px;color:var(--muted);font-weight:600}.select-control{max-width:70%;min-width:0;padding:9px 11px;color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:10px;font-size:11px}.model-help{font-size:10px;line-height:1.5;color:var(--faint);margin:7px 0 13px}.device-summary{font-size:11px;line-height:1.55;color:var(--muted);background:var(--panel-2);border:1px solid var(--line);border-radius:11px;padding:10px 12px;margin:12px 0;min-height:40px}.progress-section{margin-top:13px;border:1px solid var(--line);background:var(--panel-2);border-radius:13px;padding:13px}.progress-meta{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted);margin-bottom:8px}.progress-meta strong{color:var(--accent-2)}.progress-track{height:7px;overflow:hidden;background:var(--panel-3);border-radius:20px}.progress-bar{height:100%;width:0;background:linear-gradient(90deg,#8ca9fa,#6487e8);border-radius:20px;transition:width .25s}.progress-track.indeterminate .progress-bar{width:34%!important;animation:progress-slide 1.4s ease-in-out infinite}.progress-detail{font-size:10px;line-height:1.5;color:var(--muted);margin:8px 0 2px}.progress-actions{display:flex;justify-content:flex-end;gap:10px}.quiet-button{border:0;background:transparent;color:var(--accent-2);font-size:10px;padding:7px 9px}.quiet-button:hover{text-decoration:underline}.setup-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:13px}.primary-button,.secondary-button,.danger-button{border-radius:11px;padding:11px 15px;font-size:11px;font-weight:650;transition:filter .15s,transform .15s}.primary-button{border:1px solid var(--accent);background:var(--accent);color:#fff;box-shadow:0 6px 16px color-mix(in srgb,var(--accent) 20%,transparent)}.primary-button:hover{filter:brightness(1.05);transform:translateY(-1px)}.secondary-button{background:var(--panel-2);color:var(--muted);border:1px solid var(--line)}.secondary-button:hover{background:var(--panel-3)}.danger-button{background:color-mix(in srgb,var(--bad) 12%,var(--panel));color:var(--bad);border:1px solid color-mix(in srgb,var(--bad) 25%,var(--line))}.enter-chat-button{width:100%;margin-top:10px}.enter-chat-button span{margin-left:8px}.setup-footnote{font-size:9px;line-height:1.55;color:var(--faint);text-align:center;margin:15px 4px 0}.screen-footer{width:min(1200px,100%);margin:0 auto;min-height:35px;padding:5px 20px;display:flex;justify-content:space-between;align-items:center;gap:10px;color:var(--faint);font-size:9px}.footer-link{border:0;background:transparent;color:var(--muted);font-size:10px;padding:7px 8px}.footer-link:hover{text-decoration:underline}.chat-screen{flex:1;min-height:calc(100vh - 66px);display:flex;flex-direction:column;padding:16px clamp(10px,3vw,36px) 0}.chat-frame{width:min(1340px,100%);height:calc(100vh - 118px);min-height:520px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);display:grid;grid-template-columns:225px minmax(0,1fr);overflow:hidden}.chat-sidebar{background:var(--panel-2);border-right:1px solid var(--line);padding:18px 13px;display:flex;flex-direction:column;min-width:0}.new-chat-button{display:flex;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);font-size:11px;font-weight:600;text-align:left}.new-chat-button span{font-size:18px;color:var(--accent)}.sidebar-section-label{font-size:9px;color:var(--faint);letter-spacing:1.4px;font-weight:700;margin:26px 9px 10px}.sidebar-info{display:flex;gap:9px;padding:11px 9px;background:var(--accent-soft);border-radius:10px}.sidebar-info-icon{color:var(--accent-2);font-size:16px}.sidebar-info div{display:flex;flex-direction:column;gap:4px}.sidebar-info strong{font-size:10px}.sidebar-info small{font-size:9px;line-height:1.4;color:var(--muted)}.sidebar-spacer{flex:1}.sidebar-action{border:0;background:transparent;color:var(--muted);text-align:left;padding:10px 9px;border-radius:8px;font-size:12px}.sidebar-action span{font-size:10px;margin-left:6px}.sidebar-action:hover{background:var(--panel-3);color:var(--ink)}.sidebar-footnote{font-size:8px;line-height:1.5;color:var(--faint);margin:12px 8px 2px}.chat-main{display:flex;flex-direction:column;min-width:0;min-height:0;background:var(--panel)}.conversation-header{min-height:67px;padding:12px 22px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px}.conversation-title{display:flex;align-items:center;gap:11px}.mira-avatar{width:34px;height:34px;border-radius:12px;background:var(--accent-soft);color:var(--accent-2);display:grid;place-items:center;font-family:Georgia,serif;font-size:17px}.conversation-title h1{font-size:14px;margin:0 0 4px;font-weight:650}.conversation-title p{font-size:10px;color:var(--muted);margin:0}.conversation-header-actions{display:flex;align-items:center;gap:8px}.mode-label{font-size:9px;color:var(--muted);border:1px solid var(--line);background:var(--panel-2);padding:6px 9px;border-radius:20px}.chat-model-banner{display:flex;align-items:center;gap:9px;padding:8px 22px;background:var(--panel-2);border-bottom:1px solid var(--line);color:var(--muted);font-size:9px}.chat-model-banner[data-state=ready]{color:var(--good)}.chat-model-banner[data-state=error]{color:var(--bad)}.banner-pulse{width:6px;height:6px;flex:none;border-radius:50%;background:var(--accent);animation:pulse 1.3s infinite}.chat-model-banner[data-state=ready] .banner-pulse{background:var(--good);animation:none}.chat-model-banner[data-state=error] .banner-pulse{background:var(--bad);animation:none}.messages{flex:1;min-height:0;overflow-y:auto;padding:24px clamp(15px,4vw,54px);display:flex;flex-direction:column;gap:18px;scrollbar-width:thin;scrollbar-color:var(--line) transparent}.message{display:flex;align-items:flex-start;gap:10px;max-width:min(820px,94%);animation:fadeIn .18s ease}.message-user{align-self:flex-end;flex-direction:row-reverse}.message-avatar{width:27px;height:27px;border-radius:10px;background:var(--accent-soft);color:var(--accent-2);display:grid;place-items:center;font-family:Georgia,serif;font-size:14px;flex:none}.message-user .message-avatar{background:var(--panel-3);color:var(--muted);font-family:system-ui,sans-serif;font-size:8px;font-weight:700}.message-wrap{min-width:0}.message-meta{font-size:9px;color:var(--faint);margin:0 0 5px 3px}.message-user .message-meta{text-align:right;margin-right:3px}.message-content{font-size:13px;line-height:1.75;color:var(--ink);background:var(--panel-2);border:1px solid var(--line);border-radius:4px 14px 14px;padding:12px 15px;white-space:pre-wrap;overflow-wrap:anywhere}.message-user .message-content{background:var(--accent-soft);border-color:transparent;border-radius:14px 4px 14px 14px}.message-sources{font-size:10px;color:var(--muted);margin:7px 0 0}.message-sources a{color:var(--accent-2);text-decoration:none}.message-sources a:hover{text-decoration:underline}.replay-button{border:0;background:transparent;color:var(--accent-2);font-size:9px;padding:6px 2px}.empty-state{flex:1;min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px}.empty-orb{width:48px;height:48px;border-radius:17px;background:linear-gradient(145deg,#dce6ff,#9bb2fa);color:#4e6dc1;display:grid;place-items:center;font-size:25px;box-shadow:0 10px 24px #5d7cd72e}.empty-state h2{font-size:19px;font-family:Georgia,serif;font-weight:500;margin:17px 0 7px}.empty-state p{max-width:390px;color:var(--muted);font-size:11px;line-height:1.65;margin:0}.starter-prompts{display:flex;gap:7px;flex-wrap:wrap;justify-content:center;margin-top:18px}.prompt-chip{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:20px;padding:8px 11px;font-size:9px}.prompt-chip:hover{background:var(--accent-soft);color:var(--accent-2)}.typing-row{display:flex;align-items:center;gap:9px;padding:0 24px 10px;color:var(--muted);font-size:10px}.typing-dots{display:flex;gap:3px}.typing-dots i{width:5px;height:5px;background:var(--accent);border-radius:50%;animation:pulse 1s infinite}.typing-dots i:nth-child(2){animation-delay:.12s}.typing-dots i:nth-child(3){animation-delay:.24s}.composer{width:min(920px,calc(100% - 42px));margin:0 auto 17px;padding:11px 13px 9px;border:1px solid var(--line);border-radius:15px;background:var(--panel);box-shadow:0 7px 25px #192d4b0f}.composer textarea{width:100%;display:block;max-height:150px;min-height:38px;resize:none;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px;line-height:1.5;padding:5px 3px}.composer textarea::placeholder{color:var(--faint)}.composer textarea:disabled{opacity:.65}.composer-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.composer-tools{display:flex;align-items:center;gap:7px}.tool-button{width:29px;height:29px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);color:var(--muted);font-size:13px}.composer-hint{font-size:9px;color:var(--faint);margin-left:4px}.send-button{border:0;border-radius:9px;padding:8px 13px;background:var(--accent);color:#fff;font-size:10px;font-weight:650}.send-button span{font-size:14px;margin-left:4px}.send-button:disabled{opacity:.45}.disclaimer{font-size:8px;color:var(--faint);text-align:center;margin:0 0 12px}.chat-screen-footer{flex:none}.screen-footer span{font-size:9px}.modal{width:min(620px,calc(100vw - 24px));max-height:min(88vh,820px);border:1px solid var(--line);border-radius:18px;padding:0;background:var(--panel);color:var(--ink);box-shadow:0 25px 80px #0000003d}.modal::backdrop{background:#0f182675;backdrop-filter:blur(4px)}.modal-head{padding:17px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.modal-head h2{font-family:Georgia,serif;font-size:20px;font-weight:500;margin:0}.modal-body{padding:19px 20px;overflow:auto;max-height:calc(88vh - 75px)}.modal-body p{font-size:11px;line-height:1.65;color:var(--muted)}.wide-modal{width:min(760px,calc(100vw - 24px))}.setting-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:13px 0;border-bottom:1px solid var(--line)}.setting-row div{display:flex;flex-direction:column;gap:4px}.setting-row strong{font-size:11px}.setting-row small,.fine-print,.privacy-note{font-size:9px;color:var(--faint);line-height:1.55}.voice-controls{display:flex;gap:7px;align-items:center}.voice-controls .select-control{max-width:220px}.switch input{accent-color:var(--accent)}.section-copy{color:var(--muted)}.data-buttons,.modal-actions,.diagnostic-actions{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.memory-count{font-size:10px;color:var(--muted)}.storage-panel,.personal-note-box,.knowledge-preview{background:var(--panel-2);border:1px solid var(--line);padding:13px;border-radius:12px;margin:12px 0}.personal-note-box{display:flex;flex-direction:column;gap:8px}.personal-note-box label,.small-label{font-size:10px;color:var(--muted)}.personal-note-box textarea,.note-textarea,.backup-password-input{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:10px;font-size:11px}.note-textarea{resize:vertical;line-height:1.55}.file-button{display:inline-flex;align-items:center;cursor:pointer}.diagnostics-rows{display:grid;grid-template-columns:1fr 1fr;gap:8px}.diagnostic-row{padding:9px;border:1px solid var(--line);border-radius:9px;background:var(--panel-2);display:flex;justify-content:space-between;gap:10px;font-size:9px}.diagnostic-row span{color:var(--muted)}.diagnostic-row strong{text-align:right}.warning-message{grid-column:1/-1;padding:9px;background:color-mix(in srgb,#d6a45a 10%,var(--panel));border-radius:8px}.backup-password-input{margin:7px 0 13px}.toast-region{position:fixed;right:15px;bottom:15px;z-index:50;display:flex;flex-direction:column;gap:8px}.toast{max-width:min(390px,calc(100vw - 30px));background:var(--ink);color:var(--panel);border-radius:10px;padding:11px 14px;font-size:11px;box-shadow:var(--shadow)}@keyframes pulse{0%,to{opacity:.4;transform:scale(.9)}50%{opacity:1;transform:scale(1)}}@keyframes progress-slide{0%{transform:translate(-110%)}to{transform:translate(310%)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}@media(max-width:850px){.topbar{padding:0 14px}.connection-badge{display:none}.chat-screen{padding:8px 8px 0}.chat-frame{grid-template-columns:1fr;height:calc(100vh - 98px);min-height:500px}.chat-sidebar{display:none}.chat-main{border-radius:17px}.chat-screen-footer{padding:4px 6px}.messages{padding:18px 13px}.conversation-header{padding:11px 14px}.composer{width:calc(100% - 20px)}.chat-model-banner{padding:8px 14px}}@media(max-width:520px){.topbar{height:58px}.brand-copy small{display:none}.top-actions{gap:7px}.voice-toggle>span:last-child{display:none}.status-chip{font-size:0;width:28px;padding:0;justify-content:center}.status-chip span{display:none}.setup-screen,.chat-screen{min-height:calc(100vh - 58px)}.setup-card{border-radius:18px;padding:21px 16px}.setup-model-row{align-items:flex-start;flex-direction:column}.setup-model-row .select-control{max-width:100%;width:100%}.setup-actions{grid-template-columns:1fr}.chat-screen{padding:6px}.chat-frame{height:calc(100vh - 91px);min-height:460px;border-radius:13px}.conversation-title h1{font-size:13px}.mode-label{display:none}.message{max-width:100%}.message-content{font-size:12px}.empty-state{padding:12px}.starter-prompts{gap:5px}.prompt-chip{font-size:8px;padding:7px 9px}.composer{margin-bottom:9px}.composer-hint{max-width:150px;line-height:1.35}.screen-footer{padding:5px 9px}.screen-footer span{display:none}.diagnostics-rows{grid-template-columns:1fr}}
