:root{color-scheme:light;--bg:#f7f7f5;--panel:#ececea;--card:#fff;--text:#20201f;--muted:#727270;--line:#dededb;--hover:#e3e3e0;--accent:#20201f;--accent-text:#fff;--shadow:0 18px 55px rgba(0,0,0,.12)}
:root[data-theme=dark]{color-scheme:dark;--bg:#212120;--panel:#181817;--card:#2c2c2a;--text:#f2f2ef;--muted:#a5a5a1;--line:#3c3c39;--hover:#343431;--accent:#f2f2ef;--accent-text:#1e1e1d;--shadow:0 18px 55px rgba(0,0,0,.42)}
*{box-sizing:border-box}html,body{height:100%;margin:0}body{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer}.shell{display:flex;height:100dvh;overflow:hidden}.sidebar{width:286px;flex:none;background:var(--panel);display:flex;flex-direction:column;padding:12px;transition:width .2s,transform .2s;border-right:1px solid color-mix(in srgb,var(--line) 55%,transparent)}.brand{display:flex;align-items:center;gap:10px;height:44px;padding:0 5px}.brand strong{font-size:16px}.orb,.hero-orb{display:grid;place-items:center;border-radius:50%;background:var(--accent);color:var(--accent-text);font-family:Georgia,serif}.orb{width:28px;height:28px}.hero-orb{width:44px;height:44px;font-size:22px;margin:auto}.icon{border:0;background:transparent;border-radius:8px;width:34px;height:34px;font-size:20px}.icon:hover{background:var(--hover)}#collapse{margin-left:auto}.new-chat{border:1px solid var(--line);background:var(--card);border-radius:11px;padding:11px 13px;text-align:left;margin:10px 0 12px;box-shadow:0 1px 1px rgba(0,0,0,.03)}.new-chat span{margin-right:8px}.search{height:38px;border:1px solid transparent;border-radius:10px;display:flex;align-items:center;gap:7px;padding:0 10px;background:color-mix(in srgb,var(--card) 58%,transparent)}.search:focus-within{border-color:var(--line);background:var(--card)}.search input{border:0;outline:0;background:transparent;min-width:0;width:100%}.tabs{display:flex;gap:4px;margin:14px 0 8px}.tab{flex:1;border:0;background:transparent;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em;padding:9px 4px;border-radius:8px}.tab.active,.tab:hover{background:var(--hover);color:var(--text)}.sidebar-content{overflow:auto;flex:1}.chat-item{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;text-align:left;border-radius:9px;padding:10px;margin:2px 0}.chat-item:hover,.chat-item.active{background:var(--hover)}.chat-copy{min-width:0;flex:1}.chat-copy strong,.chat-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-copy strong{font-weight:500;font-size:14px}.chat-copy small{font-size:11px;color:var(--muted);margin-top:3px}.sidebar-footer{border-top:1px solid var(--line);padding:10px 4px 2px}.sidebar-footer label{display:flex;align-items:center;justify-content:space-between;font-size:13px;color:var(--muted)}select{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:6px}.main{min-width:0;flex:1;display:flex;flex-direction:column;background:var(--bg)}.topbar{height:65px;flex:none;display:flex;align-items:center;padding:0 20px;border-bottom:1px solid var(--line);gap:10px}.topbar h1{font-size:15px;margin:0;font-weight:600}.status{font-size:11px;color:var(--muted);display:flex;gap:6px;align-items:center;margin:4px 0 0}.status i{width:7px;height:7px;border-radius:50%;background:#9b9b96}.status.connected i{background:#36a168}.status.connecting i{background:#d59b28}.top-actions{display:flex;margin-left:auto}.view{display:none;min-height:0;flex:1}.view.active{display:flex}.messages{flex:1;overflow:auto;padding:36px max(24px,calc((100% - 780px)/2)) 190px}.welcome{text-align:center;margin:14vh auto 0;color:var(--muted)}.welcome h2{color:var(--text);font-size:26px;margin:18px 0 6px}.welcome p{margin:0}.message{max-width:780px;margin:0 auto 30px;display:grid;grid-template-columns:32px 1fr;gap:12px}.avatar{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--accent-text);font-size:12px}.message.user{grid-template-columns:1fr}.message.user .avatar{display:none}.bubble{line-height:1.55;white-space:pre-wrap;overflow-wrap:anywhere}.message.user .bubble{justify-self:end;max-width:78%;background:var(--card);border:1px solid var(--line);padding:10px 14px;border-radius:18px}.message time{display:block;color:var(--muted);font-size:10px;margin-top:5px}.composer-wrap{position:absolute;left:286px;right:0;bottom:0;padding:28px max(18px,calc((100% - 800px)/2)) 10px;background:linear-gradient(transparent,var(--bg) 25%)}.composer{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:9px;box-shadow:0 8px 30px rgba(0,0,0,.08)}.input-row{display:flex;align-items:flex-end}.input-row textarea{flex:1;resize:none;max-height:150px;border:0;outline:0;background:transparent;padding:8px 9px;line-height:1.4}.send{border:0;border-radius:50%;width:34px;height:34px;background:var(--accent);color:var(--accent-text);font-size:20px}.controls{display:flex;align-items:center;gap:5px;margin-top:5px}.controls button,.file-actions button{border:1px solid var(--line);background:transparent;border-radius:999px;padding:7px 10px;font-size:12px}.controls button:hover,.file-actions button:hover{background:var(--hover)}.controls button.active{background:var(--text);color:var(--bg)}.controls small{margin-left:auto;color:var(--muted)}.fineprint{text-align:center;color:var(--muted);font-size:10px;margin:7px}.visual-status{position:absolute;right:max(18px,calc((100% - 800px)/2));bottom:165px;background:var(--card);border:1px solid var(--line);border-radius:999px;padding:7px 11px;font-size:12px}.preview{position:absolute;right:max(18px,calc((100% - 800px)/2));bottom:195px;width:180px;aspect-ratio:16/10;border-radius:13px;overflow:hidden;background:#000;box-shadow:var(--shadow)}.preview video{width:100%;height:100%;object-fit:cover}.preview button{position:absolute;right:5px;top:5px;border:0;border-radius:50%;background:#0009;color:#fff;width:25px;height:25px}.library{overflow:auto;padding:42px max(28px,calc((100% - 1000px)/2));flex-direction:column}.library-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:26px}.library h2{font-size:28px;margin:0 0 6px}.library p{margin:0;color:var(--muted)}.search.wide{width:280px;background:var(--card);border-color:var(--line)}.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:13px}.card{border:1px solid var(--line);border-radius:14px;background:var(--card);padding:16px;text-align:left;min-height:130px}.card:hover{transform:translateY(-1px);box-shadow:0 8px 22px rgba(0,0,0,.06)}.card .type{font-size:10px;text-transform:uppercase;color:var(--muted);letter-spacing:.08em}.card h3{font-size:15px;margin:20px 0 8px}.card time{font-size:11px;color:var(--muted)}.file-actions{display:flex;gap:8px}.file-actions .primary{background:var(--accent);color:var(--accent-text)}.file-grid{margin-top:20px;border-top:1px solid var(--line)}.file-row{display:grid;grid-template-columns:34px 1fr auto;align-items:center;padding:12px 7px;border-bottom:1px solid var(--line);cursor:pointer}.file-row:hover{background:var(--hover)}.file-icon{font-size:20px}.file-row strong{font-size:14px;font-weight:500}.file-row small{color:var(--muted)}.toast{position:fixed;left:50%;bottom:20px;transform:translate(-50%,20px);padding:10px 14px;border-radius:10px;background:var(--text);color:var(--bg);font-size:13px;opacity:0;pointer-events:none;transition:.2s}.toast.show{opacity:1;transform:translate(-50%,0)}dialog{width:min(1000px,92vw);height:min(760px,88vh);border:1px solid var(--line);padding:0;border-radius:16px;background:var(--card);color:var(--text);box-shadow:var(--shadow)}dialog::backdrop{background:#0008}dialog header{height:50px;padding:0 12px 0 18px;display:flex;align-items:center;border-bottom:1px solid var(--line)}dialog header button{margin-left:auto}dialog iframe{width:100%;height:calc(100% - 50px);border:0;background:white}.hidden{display:none!important}.skeleton{height:36px;border-radius:8px;margin:5px;background:var(--hover)}.skeleton.short{width:70%}.mobile{display:none}
body.sidebar-collapsed .sidebar{width:72px}body.sidebar-collapsed .brand strong,body.sidebar-collapsed .new-chat:not(:focus)~*,body.sidebar-collapsed .new-chat,body.sidebar-collapsed .search,body.sidebar-collapsed .tabs,body.sidebar-collapsed .sidebar-content,body.sidebar-collapsed .sidebar-footer{overflow:hidden}body.sidebar-collapsed .brand strong,body.sidebar-collapsed .sidebar>:not(.brand){display:none}body.sidebar-collapsed #collapse{transform:rotate(180deg)}body.sidebar-collapsed .composer-wrap{left:72px}
@media(max-width:760px){.mobile{display:grid}.sidebar{position:fixed;z-index:20;inset:0 auto 0 0;transform:translateX(-101%);width:min(88vw,320px);box-shadow:var(--shadow)}body.drawer-open .sidebar{transform:none}.scrim{position:fixed;z-index:19;inset:0;background:#0008;display:none}body.drawer-open .scrim{display:block}#collapse{display:none}.topbar{padding:0 12px}.messages{padding:26px 16px 190px}.composer-wrap,.sidebar-collapsed .composer-wrap{left:0;padding-left:10px;padding-right:10px}.controls button span{display:none}.controls small{font-size:10px}.library{padding:25px 16px}.library-head{align-items:flex-start;flex-direction:column}.search.wide{width:100%}.cards{grid-template-columns:1fr}.preview{right:12px}.visual-status{right:12px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
.settings-link{width:100%;margin-top:8px;padding:7px;border:0;border-radius:8px;background:transparent;text-align:left;color:var(--muted)}.settings-link:hover{background:var(--hover);color:var(--text)}
.message.partial .bubble{opacity:.72}.message.partial .content::after{content:'\2026';display:inline-block;margin-left:3px;animation:pulse 1s infinite}@keyframes pulse{50%{opacity:.25}}
.file-row{grid-template-columns:34px 1fr auto auto;gap:10px}.file-tools{display:flex;gap:4px}.file-tools button,.settings-body button{border:1px solid var(--line);background:transparent;border-radius:8px;padding:5px 7px;font-size:11px}.upload-progress{margin-top:14px;color:var(--muted);font-size:13px}.settings-dialog{width:min(440px,92vw);height:auto}.settings-body{padding:22px;display:grid;gap:12px}.settings-body label{font-weight:600}.settings-body select{width:100%;padding:10px}.settings-body p{font-size:13px;color:var(--muted);margin:0}.settings-body button{justify-self:start}.settings-body button:disabled{opacity:.55;cursor:not-allowed}
.chat-item{position:relative;padding:0;display:grid;grid-template-columns:1fr 34px}.chat-open{display:flex;align-items:center;gap:8px;min-width:0;border:0;background:transparent;text-align:left;padding:10px}.chat-menu-button{border:0;background:transparent;border-radius:8px}.chat-menu-button:hover{background:color-mix(in srgb,var(--text) 8%,transparent)}.chat-menu{position:absolute;z-index:12;right:4px;top:38px;width:120px;padding:5px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.chat-menu button{display:block;width:100%;border:0;background:transparent;border-radius:7px;text-align:left;padding:7px 9px;font-size:12px}.chat-menu button:hover{background:var(--hover)}.danger-text{color:#c74444!important}
.activity-status{position:absolute;left:max(18px,calc((100% - 800px)/2));bottom:165px;display:flex;align-items:center;gap:9px;padding:8px 12px;border:1px solid var(--line);border-radius:999px;background:var(--card);font-size:12px;box-shadow:0 5px 20px rgba(0,0,0,.08)}.spinner{width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--text);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dictation-status{color:#b23636}.audio-meter{height:18px;display:flex;align-items:center;gap:2px}.audio-meter i{display:block;width:3px;height:16px;border-radius:3px;background:#d64a4a;transform:scaleY(.12);transition:transform 70ms linear;transform-origin:center}
.chat-item{position:relative}.chat-open{display:flex;align-items:center;gap:8px;min-width:0;flex:1;border:0;background:transparent;text-align:left;color:inherit;padding:0}.chat-menu-button{border:0;background:transparent;border-radius:7px;padding:4px 7px}.chat-menu-button:hover{background:var(--card)}.chat-menu{position:absolute;z-index:6;right:8px;top:38px;display:grid;min-width:120px;padding:5px;background:var(--card);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}.chat-menu button{border:0;background:transparent;text-align:left;padding:8px;border-radius:7px}.chat-menu button:hover{background:var(--hover)}.danger-text,.danger{color:#b23636}.confirm-dialog{width:min(380px,92vw);height:auto}.confirm-body{padding:24px}.confirm-body h3{margin-top:0}.confirm-body>div{display:flex;justify-content:flex-end;gap:8px}.confirm-body button,.settings-actions button{border:1px solid var(--line);background:transparent;border-radius:8px;padding:8px 12px}.settings-link{margin-top:10px;width:100%;border:1px solid var(--line);background:transparent;border-radius:8px;padding:8px}.settings-actions{display:flex;gap:8px}
.attachment-tray{padding:3px 5px 8px;display:grid;gap:6px}.attachment-card{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:9px;max-width:420px;padding:9px 10px;border:1px solid var(--line);border-radius:13px;background:var(--bg)}.attachment-icon{font-size:20px}.attachment-copy{min-width:0}.attachment-copy strong,.attachment-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-copy strong{font-size:13px}.attachment-copy small{font-size:11px;color:var(--muted);margin-top:2px}.attachment-card.failed .attachment-copy small{color:#b23636}.attachment-actions{display:flex;gap:4px}.attachment-actions button{border:0;background:transparent;border-radius:7px;padding:5px 7px}.attachment-actions button:hover{background:var(--hover)}.attachment-actions .retry{font-size:11px;border:1px solid var(--line)}.message-attachments{display:grid;gap:6px;margin-top:8px}.sent-attachment{display:grid;grid-template-columns:auto minmax(0,1fr);gap:2px 7px;align-items:center;width:min(360px,100%);padding:9px 11px;text-align:left;border:1px solid var(--line);border-radius:11px;background:var(--bg);color:inherit}.sent-attachment:hover{background:var(--hover)}.sent-attachment strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.sent-attachment small{grid-column:2;color:var(--muted);font-size:10px}.message.user .sent-attachment{background:var(--card)}
.dictation-language{display:flex;align-items:center;gap:5px;font-size:11px;color:var(--muted)}.dictation-language select{padding:5px 7px;font-size:11px}.voice-activity{position:absolute;left:max(18px,calc((100% - 800px)/2));bottom:165px;display:flex;align-items:center;gap:8px;padding:6px 10px 6px 7px;border:1px solid var(--line);border-radius:999px;background:var(--card);box-shadow:0 5px 20px rgba(0,0,0,.08)}.voice-orb{width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;gap:2px;background:color-mix(in srgb,var(--accent) 82%,transparent)}.voice-orb i{width:2px;height:12px;border-radius:3px;background:var(--accent-text);transform:scaleY(.2);transform-origin:center;transition:transform 70ms linear}.voice-activity small{font-size:11px;color:var(--muted)}.voice-activity.layla-speaking .voice-orb{background:#7567d8}.voice-activity.muted .voice-orb{opacity:.45}.voice-activity.muted .voice-orb i{transform:scaleY(.15)!important}
.settings-actions{display:flex;justify-content:space-between;gap:8px}.settings-actions .primary{margin-left:auto;background:var(--accent);color:var(--accent-text)}.confirm-dialog{width:min(410px,92vw);height:auto}.confirm-body{padding:24px}.confirm-body h3{margin:0 0 8px}.confirm-body p{margin:0 0 22px;color:var(--muted)}.confirm-body>div{display:flex;justify-content:flex-end;gap:8px}.confirm-body button{border:1px solid var(--line);background:transparent;padding:8px 13px;border-radius:9px}.confirm-body .danger{background:#b93636;color:#fff;border-color:#b93636}
button:disabled{opacity:.5;cursor:not-allowed}
.connection-toggle{align-self:center;border:1px solid var(--line);background:var(--card);border-radius:999px;padding:7px 12px;font-size:12px}.connection-toggle.disconnect{color:#b23636}.connection-warning{position:absolute;z-index:8;top:76px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid #d59b28;border-radius:10px;background:var(--card);box-shadow:var(--shadow);font-size:12px}.connection-warning button{border:1px solid var(--line);border-radius:8px;background:transparent;padding:5px 8px}
