:root{color-scheme:light;--app-height:100dvh;--bg:#f6f6f3;--surface:rgba(255,255,255,.78);--surface-solid:#fff;--sidebar:rgba(247,247,244,.88);--text:#171714;--muted:#76766f;--faint:#a5a59d;--line:rgba(24,24,20,.09);--line-strong:rgba(24,24,20,.16);--accent:#171714;--accent-text:#fff;--soft:#efefe9;--success:#23875d;--danger:#c74a42;--shadow:0 24px 70px rgba(32,31,24,.12);--shadow-soft:0 8px 30px rgba(32,31,24,.07);--radius:18px;--sidebar-width:286px}
:root[data-theme=dark]{color-scheme:dark;--bg:#111210;--surface:rgba(28,29,26,.82);--surface-solid:#1b1c19;--sidebar:rgba(20,21,19,.92);--text:#f2f2ec;--muted:#a4a49c;--faint:#72736d;--line:rgba(255,255,245,.09);--line-strong:rgba(255,255,245,.17);--accent:#f2f2ec;--accent-text:#151613;--soft:#252620;--success:#64c99a;--danger:#ff7b72;--shadow:0 28px 80px rgba(0,0,0,.42);--shadow-soft:0 8px 34px rgba(0,0,0,.25)}
*{box-sizing:border-box}html,body{height:100%}body{margin:0;overflow:hidden;background:var(--bg);color:var(--text);font-family:"Avenir Next",Avenir,"Segoe UI Variable",-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{color:inherit}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid color-mix(in srgb,var(--text) 55%,transparent);outline-offset:2px}.hidden{display:none!important}.skip-link{position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-150%);padding:10px 14px;border-radius:10px;background:var(--accent);color:var(--accent-text);text-decoration:none}.skip-link:focus{transform:none}.connection-banner{position:relative;z-index:8;display:flex;align-items:center;justify-content:center;gap:12px;min-height:38px;padding:8px 16px;border-block:1px solid color-mix(in srgb,var(--danger) 22%,var(--line));background:color-mix(in srgb,var(--danger) 8%,var(--surface-solid));color:var(--text);font-size:11px}.connection-action{border:1px solid var(--line-strong);border-radius:8px;padding:5px 10px;background:var(--surface-solid);color:var(--text);cursor:pointer;font-weight:700}.is-offline .status-dot{background:var(--danger);box-shadow:0 0 0 4px color-mix(in srgb,var(--danger) 12%,transparent);animation:none}button:disabled{cursor:not-allowed;opacity:.45}.auth-screen{position:fixed;inset:0;z-index:90;display:grid;place-items:center;overflow:auto;padding:24px;background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px)}.auth-card{width:min(100%,460px);padding:34px;border:1px solid var(--line);border-radius:26px;background:var(--surface-solid);box-shadow:var(--shadow)}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:40px}.auth-brand>span:last-child{display:flex;flex-direction:column}.auth-brand strong{font-size:15px}.auth-brand small{font-size:10px;color:var(--muted)}.auth-card h1{margin:8px 0 10px;font-size:30px;letter-spacing:-.04em}.auth-copy{margin:0 0 26px;color:var(--muted);font-size:13px;line-height:1.6}.google-login{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:48px;border:1px solid var(--line-strong);border-radius:13px;background:var(--surface-solid);color:var(--text);font-size:13px;font-weight:700;text-decoration:none}.google-login:hover{background:var(--soft)}.google-mark{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#fff;color:#4285f4;box-shadow:0 1px 5px rgba(0,0,0,.14);font-family:Arial,sans-serif;font-weight:800}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0;color:var(--faint);font-size:10px;text-transform:uppercase}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.auth-form{display:grid;gap:9px}.auth-form label{font-size:11px;font-weight:700}.auth-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.auth-input-row input{min-width:0;height:46px;border:1px solid var(--line-strong);border-radius:12px;padding:0 13px;background:var(--surface);color:var(--text)}.auth-input-row .primary-button{min-width:112px}.auth-link{justify-self:start;border:0;padding:3px 0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.auth-status{min-height:18px;margin:16px 0 0;color:var(--danger);font-size:11px}.auth-status.success{color:var(--success)}.auth-note{margin:24px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--faint);font-size:10px;text-align:center}
.ambient{position:fixed;border-radius:999px;filter:blur(90px);opacity:.18;pointer-events:none;animation:ambient-drift 16s ease-in-out infinite alternate}.ambient-one{width:430px;height:430px;right:3%;top:-220px;background:#b8d9c7}.ambient-two{width:360px;height:360px;left:26%;bottom:-240px;background:#d7c9ad;animation-delay:-8s}:root[data-theme=dark] .ambient{opacity:.08}
.app-shell{display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr);height:100vh;height:var(--app-height,100dvh);position:relative;z-index:1}.sidebar{min-width:0;display:flex;flex-direction:column;background:var(--sidebar);border-right:1px solid var(--line);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);padding:14px}.sidebar-header{height:52px;display:flex;align-items:center;justify-content:space-between}.brand,.admin-brand{display:flex;align-items:center;gap:11px;color:inherit;text-decoration:none}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border-radius:12px;background:var(--accent);color:var(--accent-text);font-family:Georgia,serif;font-size:18px;box-shadow:0 6px 18px rgba(0,0,0,.13)}.brand-copy,.admin-brand>span:last-child,.profile-copy,.sidebar-action>span:last-child{display:flex;min-width:0;flex-direction:column}.brand-copy strong,.admin-brand strong{font-size:14px;letter-spacing:-.02em}.brand-copy small,.admin-brand small,.profile-copy small,.sidebar-action small{font-size:10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.new-chat{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;width:100%;margin:16px 0 20px;padding:8px 10px;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:var(--shadow-soft);cursor:pointer;text-align:left;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.new-chat:hover{transform:translateY(-1px);border-color:var(--line-strong);box-shadow:var(--shadow)}.new-chat-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--accent);color:var(--accent-text);font-size:17px}.new-chat>span:nth-child(2){font-size:13px;font-weight:650}.new-chat kbd{border:1px solid var(--line);border-radius:6px;padding:3px 6px;background:var(--soft);color:var(--muted);font-size:9px}.sidebar-section-label{padding:0 10px 8px;color:var(--faint);font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.conversation-list{flex:1;overflow:auto;scrollbar-width:thin}.conversation-item{position:relative;width:100%;margin:2px 0;padding:10px 12px;border:0;border-radius:11px;background:transparent;color:var(--muted);cursor:pointer;text-align:left;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;transition:background .16s ease,color .16s ease,transform .16s ease}.conversation-item:hover{background:var(--surface);color:var(--text);transform:translateX(2px)}.conversation-item.active{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-soft);font-weight:650}.conversation-item.active:before{content:"";position:absolute;left:4px;top:10px;bottom:10px;width:2px;border-radius:2px;background:var(--accent)}
.sidebar-footer{position:relative;display:grid;gap:8px;padding-top:12px;border-top:1px solid var(--line)}.sidebar-action,.profile-card{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:13px;background:transparent;padding:9px;min-width:0}.sidebar-action{cursor:pointer;text-align:left;transition:background .16s ease}.sidebar-action:hover{background:var(--surface)}.sidebar-action-icon,.profile-avatar{display:grid;place-items:center;width:31px;height:31px;flex:0 0 31px;border-radius:10px;background:var(--soft);font-weight:700}.profile-card{border:1px solid var(--line);background:var(--surface);color:var(--text);cursor:pointer;text-align:left}.profile-card:hover{background:var(--surface-solid)}.account-chevron{transition:transform .18s ease}.profile-card[aria-expanded=true] .account-chevron{transform:rotate(180deg)}.profile-copy{flex:1}.profile-copy strong{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-menu{position:absolute;right:0;bottom:calc(100% + 8px);left:0;z-index:20;display:grid;gap:4px;padding:6px;border:1px solid var(--line);border-radius:14px;background:var(--surface-solid);box-shadow:var(--shadow)}.account-menu-item{display:grid;grid-template-columns:34px minmax(0,1fr);align-items:center;gap:9px;min-height:48px;padding:7px 9px;border:0;border-radius:10px;background:transparent;color:var(--text);cursor:pointer;text-align:left}.account-menu-item:hover{background:var(--soft)}.account-menu-item>span:first-child{display:grid;place-items:center}.account-menu-item>span:last-child{display:flex;min-width:0;flex-direction:column}.account-menu-item strong{font-size:11px}.account-menu-item small{color:var(--muted);font-size:9px}.danger-menu-item{color:var(--danger)}.icon-button,.soft-button,.primary-button,.composer-tool,.send-button,.stop-button{border:0;cursor:pointer;transition:transform .16s ease,background .16s ease,opacity .16s ease}.icon-button{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:transparent}.icon-button:hover{background:var(--soft)}
.conversation-pane{position:relative;display:flex;min-width:0;height:100vh;height:var(--app-height,100dvh);overflow:hidden;flex-direction:column}.topbar{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 22px;border-bottom:1px solid transparent}.model-pill,.private-badge{display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);backdrop-filter:blur(16px);box-shadow:var(--shadow-soft)}.model-pill{padding:7px 11px;font-size:11px}.model-pill>span:last-child,.private-badge{color:var(--muted)}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px color-mix(in srgb,var(--success) 12%,transparent);animation:pulse 2.4s ease-in-out infinite}.topbar-actions{display:flex;align-items:center;gap:8px}.private-badge{padding:7px 11px;font-size:10px}.soft-button,.primary-button{border-radius:10px;padding:9px 13px;font-size:11px;font-weight:650}.soft-button{border:1px solid var(--line);background:var(--surface)}.soft-button:hover{background:var(--soft)}.primary-button{background:var(--accent);color:var(--accent-text)}.primary-button:hover,.send-button:hover{transform:translateY(-1px)}
.messages{min-height:0;flex:1;overflow:auto;padding:28px max(22px,calc((100% - 820px)/2)) 190px;scroll-behavior:smooth}.welcome-state{max-width:760px;margin:9vh auto 0;text-align:center;animation:welcome-in .72s cubic-bezier(.2,.8,.2,1) both}.hero-orbit{position:relative;display:grid;place-items:center;width:76px;height:76px;margin:0 auto 22px;border:1px solid var(--line);border-radius:28px;background:var(--surface);box-shadow:var(--shadow)}.hero-orbit:before{content:"";position:absolute;inset:-9px;border:1px solid var(--line);border-radius:34px;animation:orbit-breathe 4s ease-in-out infinite}.hero-mark{display:grid;place-items:center;width:48px;height:48px;border-radius:17px;background:var(--accent);color:var(--accent-text);font:26px Georgia,serif}.eyebrow{margin:0 0 11px;color:var(--faint);font-size:9px;font-weight:750;letter-spacing:.2em}.welcome-state h1{margin:0;font-family:Iowan Old Style,Palatino Linotype,Georgia,serif;font-size:clamp(38px,5vw,62px);font-weight:500;line-height:1.02;letter-spacing:-.045em}.welcome-copy{max-width:600px;margin:22px auto;color:var(--muted);font-size:14px;line-height:1.7}.prompt-suggestions{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:34px}.prompt-suggestions button{display:grid;grid-template-columns:32px 1fr;gap:2px 10px;min-height:92px;padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface);color:var(--text);cursor:pointer;text-align:left;box-shadow:var(--shadow-soft);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.prompt-suggestions button:hover{transform:translateY(-3px);border-color:var(--line-strong);box-shadow:var(--shadow)}.prompt-suggestions button span{grid-row:1/3;display:grid;place-items:center;width:31px;height:31px;border-radius:10px;background:var(--soft)}.prompt-suggestions strong{font-size:12px}.prompt-suggestions small{color:var(--muted);font-size:10px;line-height:1.4}
.message{display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;margin:0 0 28px;line-height:1.72;animation:message-in .32s ease both}.message .avatar{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:var(--accent);color:var(--accent-text);font:15px Georgia,serif}.message-content{min-width:0;padding-top:4px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px}.message.user{display:block;width:max-content;max-width:min(78%,680px);margin-left:auto;padding:11px 15px;border:1px solid var(--line);border-radius:18px 18px 5px 18px;background:var(--surface-solid);box-shadow:var(--shadow-soft)}.message.user .message-content{padding:0}.message.failed{color:var(--danger)}
.composer-wrap{position:fixed;right:0;bottom:0;left:var(--sidebar-width);z-index:5;padding:42px max(20px,calc((100% - 820px)/2)) 12px;background:linear-gradient(transparent,var(--bg) 35%)}.composer{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:end;gap:9px;padding:9px;border:1px solid var(--line-strong);border-radius:22px;background:var(--surface);backdrop-filter:blur(28px);box-shadow:var(--shadow);transition:border-color .18s ease,transform .18s ease}.composer:focus-within{border-color:color-mix(in srgb,var(--text) 28%,transparent);transform:translateY(-1px)}.composer textarea{width:100%;min-width:0;min-height:36px;max-height:180px;padding:8px 4px;border:0;outline:0;overflow-x:hidden;resize:none;background:transparent;color:var(--text);line-height:1.45}.composer textarea::placeholder{overflow:hidden;color:var(--faint);text-overflow:ellipsis;white-space:nowrap}.composer-tool,.send-button,.stop-button{display:grid;place-items:center;width:36px;height:36px;border-radius:12px}.composer-tool{background:transparent;color:var(--muted);font-size:18px}.composer-actions{display:flex;align-items:center;gap:6px}.composer-status{color:var(--faint);font-size:9px}.send-button{background:var(--accent);color:var(--accent-text);font-size:18px}.stop-button{background:var(--soft);color:var(--text)}.composer-note{margin:8px 0 0;text-align:center;color:var(--faint);font-size:9px}@media(hover:hover){.composer-tool:hover{background:var(--soft)}}
.admin-panel{position:fixed;inset:0;z-index:30;background:var(--bg);animation:panel-in .3s ease both}.admin-shell{display:grid;grid-template-columns:230px minmax(0,1fr);height:100vh;height:var(--app-height,100dvh)}.admin-nav{display:flex;flex-direction:column;gap:5px;padding:20px 14px;border-right:1px solid var(--line);background:var(--sidebar)}.admin-brand{margin:2px 7px 26px}.admin-tab,.admin-exit,.quick-action{border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer;text-align:left}.admin-tab{padding:10px 12px;font-size:11px}.admin-tab:hover,.admin-tab.active{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow-soft)}.admin-tab.active{font-weight:700}.admin-exit{margin-top:auto;padding:11px}.admin-exit:hover{background:var(--surface)}.admin-content{overflow:auto;padding:38px clamp(24px,5vw,70px)}.admin-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.admin-header h2{margin:0;font:500 clamp(30px,4vw,46px)/1 Iowan Old Style,Georgia,serif;letter-spacing:-.04em}.admin-header>div>p:last-child{margin:10px 0 0;color:var(--muted);font-size:12px}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric-card,.surface{border:1px solid var(--line);background:var(--surface);box-shadow:var(--shadow-soft)}.metric-card{display:flex;min-height:132px;flex-direction:column;padding:17px;border-radius:16px}.metric-card>span,.metric-card>small{color:var(--muted);font-size:10px}.metric-card>strong{margin:auto 0 2px;font:500 34px Iowan Old Style,Georgia,serif}.metric-card .healthy{color:var(--success);font-size:24px}.admin-layout,.transfer-grid{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:14px}.surface{border-radius:18px;padding:20px}.surface>header,.form-heading{display:flex;align-items:center;justify-content:space-between}.surface h3,.form-heading h3,.transfer-card h3{margin:0;font-size:14px}.surface header span,.surface p,.form-heading p,.transfer-card p{color:var(--muted);font-size:10px;line-height:1.55}.capacity-chart{display:grid;gap:13px;margin-top:24px}.capacity-row{display:grid;grid-template-columns:120px 1fr 44px;align-items:center;gap:10px;font-size:10px}.capacity-track{height:7px;overflow:hidden;border-radius:999px;background:var(--soft)}.capacity-fill{height:100%;border-radius:inherit;background:var(--accent);transition:width .45s ease}.quick-action{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line)}.quick-action:hover{background:var(--soft);color:var(--text)}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:14px}.form-heading{grid-column:1/-1;margin-bottom:4px}.form-grid label{display:grid;gap:6px;color:var(--muted);font-size:10px}.form-grid .wide{grid-column:1/-1}.form-grid input,.inline-form input,.inline-form select,.admin-table input,.admin-table select,#import-file{width:100%;padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--text);outline:0}.inline-form{display:grid;grid-template-columns:minmax(210px,1fr) minmax(180px,1fr) minmax(180px,1fr) auto;align-items:end;gap:12px;margin-bottom:14px}.inline-form h3,.inline-form p{margin:0}.admin-table{overflow:auto;border:1px solid var(--line);border-radius:18px;background:var(--surface)}.admin-row{display:grid;grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) minmax(120px,.8fr) auto;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line);font-size:10px}.admin-row:last-child{border-bottom:0}.admin-row strong{font-size:11px}.admin-row small{display:block;color:var(--muted);margin-top:3px}.admin-row .row-actions{display:flex;gap:6px}.table-head{background:var(--soft);color:var(--muted);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.status-badge{display:inline-flex;width:max-content;padding:4px 7px;border-radius:999px;background:var(--soft);color:var(--muted)}.transfer-card{display:flex;min-height:270px;flex-direction:column;align-items:flex-start}.transfer-card p{font-size:11px}.transfer-card button{margin-top:auto}.transfer-icon{display:grid;place-items:center;width:42px;height:42px;margin-bottom:22px;border-radius:13px;background:var(--soft);font-size:20px}.toast{position:fixed;right:22px;bottom:22px;z-index:60;max-width:360px;padding:12px 16px;border:1px solid rgba(255,255,255,.15);border-radius:12px;background:#181914;color:#fff;box-shadow:var(--shadow);font-size:11px;animation:toast-in .25s ease both}.mobile-only{display:none}.mobile-backdrop{position:fixed;inset:0;z-index:9;background:transparent;touch-action:none}.topbar-icon-button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);cursor:pointer;font-size:19px}.topbar-icon-button:hover,.topbar-icon-button.active{background:var(--soft)}
@keyframes ambient-drift{to{transform:translate3d(40px,25px,0) scale(1.08)}}@keyframes welcome-in{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes message-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes panel-in{from{opacity:0;transform:scale(.99)}to{opacity:1;transform:none}}@keyframes toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@keyframes pulse{50%{opacity:.55}}@keyframes orbit-breathe{50%{transform:scale(1.04);opacity:.45}}
@media(max-width:980px){.metric-grid{grid-template-columns:repeat(2,1fr)}.admin-layout,.transfer-grid{grid-template-columns:1fr}.inline-form{grid-template-columns:1fr 1fr}.inline-form>div{grid-column:1/-1}.prompt-suggestions{grid-template-columns:1fr}.welcome-state{margin-top:4vh}.private-badge{display:none}}
@media(max-width:760px){:root{--sidebar-width:0px}.app-shell{grid-template-columns:1fr}.sidebar{position:fixed;inset:0 auto 0 0;z-index:10;width:min(84vw,304px);height:var(--app-height,100dvh);padding:max(14px,env(safe-area-inset-top)) 14px max(14px,env(safe-area-inset-bottom));transform:translate3d(-105%,0,0);visibility:hidden;box-shadow:var(--shadow);transition:transform .25s ease,visibility 0s linear .25s}.sidebar.open{transform:translate3d(0,0,0);visibility:visible;transition-delay:0s}.sidebar-footer{padding-bottom:env(safe-area-inset-bottom)}body.sidebar-open{overscroll-behavior:none}.mobile-only{display:grid}.topbar{height:calc(58px + env(safe-area-inset-top));padding:env(safe-area-inset-top) max(12px,env(safe-area-inset-right)) 0 max(12px,env(safe-area-inset-left))}.model-pill{min-width:0;margin-right:auto;margin-left:6px}.model-pill span:last-child{display:none}.topbar-actions{gap:5px}.topbar-actions .soft-button{padding:8px 9px}.messages{padding:16px max(13px,env(safe-area-inset-right)) calc(150px + env(safe-area-inset-bottom)) max(13px,env(safe-area-inset-left))}.welcome-state{margin-top:2vh}.welcome-state h1{font-size:clamp(31px,10vw,39px)}.welcome-copy{font-size:12px}.prompt-suggestions{margin-top:20px}.composer-wrap{right:0;bottom:0;left:0;padding:34px max(10px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom)) max(10px,env(safe-area-inset-left))}.composer{grid-template-columns:minmax(0,1fr) auto}.composer-tool,.composer-status{display:none}.admin-shell{grid-template-columns:1fr}.admin-nav{position:sticky;top:0;z-index:2;height:auto;flex-direction:row;overflow-x:auto;padding:max(8px,env(safe-area-inset-top)) 8px 8px;border-right:0;border-bottom:1px solid var(--line);scrollbar-width:none}.admin-brand{display:none}.admin-tab,.admin-exit{flex:0 0 auto;white-space:nowrap}.admin-exit{margin:0 0 0 auto}.admin-content{overflow-x:hidden;padding:22px max(12px,env(safe-area-inset-right)) calc(50px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}.admin-header{gap:10px}.admin-header h2{font-size:31px}.metric-grid{grid-template-columns:1fr 1fr}.form-grid,.inline-form{grid-template-columns:minmax(0,1fr)}.form-heading{align-items:flex-start;gap:12px}.form-grid .wide,.inline-form>div{grid-column:auto}.admin-table{overflow:visible;border:0;background:transparent}.admin-row{grid-template-columns:minmax(0,1fr);min-width:0;margin-bottom:10px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.admin-row.table-head{display:none}.admin-row .row-actions{display:grid;grid-template-columns:1fr 1fr}.admin-row .row-actions button,.admin-row>button{width:100%}.capacity-row{grid-template-columns:minmax(80px,1fr) 1.5fr auto}.message.user{max-width:88%}.toast{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));left:12px;max-width:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* v4 mobile conversation and destructive action fixes */
.conversation-item{display:grid!important;grid-template-columns:minmax(0,1fr) 40px!important;align-items:center;padding:0!important;white-space:normal!important;overflow:visible!important}
.conversation-title,.conversation-delete{border:0;background:transparent;color:inherit;cursor:pointer}
.conversation-title{min-width:0;min-height:44px;padding:10px 4px 10px 12px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}
.conversation-delete{position:relative;z-index:2;display:grid;place-items:center;width:40px;height:40px;touch-action:manipulation;border-radius:9px;color:var(--faint);font-size:18px}
.conversation-delete:hover{background:var(--soft);color:var(--danger)}
.danger-button{border:1px solid color-mix(in srgb,var(--danger) 30%,transparent);border-radius:10px;padding:9px 11px;background:transparent;color:var(--danger);cursor:pointer;font-size:11px;font-weight:650}
.danger-button:hover{background:color-mix(in srgb,var(--danger) 10%,transparent)}

/* v8 mobile keyboard viewport handling */
@media(max-width:760px){.keyboard-open .composer-note{display:none}.keyboard-open .messages{padding-bottom:86px}}

/* v16 Safari mobile sidebar hit-testing */
.mobile-backdrop.hidden{display:none!important;pointer-events:none!important}
@media(max-width:760px){.sidebar{z-index:11}.mobile-backdrop{z-index:9}}
.admin-row.editing-account{grid-template-columns:minmax(120px,1fr) minmax(150px,1.2fr) minmax(100px,.7fr) minmax(110px,.7fr) auto}
.account-import-status{grid-column:1/-1;display:flex;min-height:18px;align-items:center;gap:8px;margin:0;color:var(--muted);font-size:10px;line-height:1.5}
.account-import-status:empty{display:none}.account-import-status.loading:before{content:"";width:12px;height:12px;flex:0 0 12px;border:2px solid var(--line-strong);border-top-color:var(--text);border-radius:50%;animation:account-import-spin .8s linear infinite}.account-import-status.success{color:var(--success)}.account-import-status.error{color:var(--danger)}
@keyframes account-import-spin{to{transform:rotate(360deg)}}

/* v27 image generation and mobile composer behavior */
.composer-tool,.send-button,.stop-button{width:44px;height:44px;border-radius:14px}
.composer-tool.active{background:var(--accent);color:var(--accent-text);box-shadow:var(--shadow-soft)}
.palette-icon{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.image-generation-card{width:min(100%,620px);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow-soft)}
.image-generation-header{display:flex;align-items:center;gap:12px;padding:14px 15px}
.image-generation-header>span:last-child{display:grid;gap:2px}
.image-generation-header strong{font-size:12px}
.image-generation-header small{color:var(--muted);font-size:10px}
.image-generation-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:11px;background:var(--soft);animation:pulse 1.4s ease-in-out infinite}
.image-generation-shimmer{aspect-ratio:1/1;width:100%;background:linear-gradient(110deg,var(--soft) 10%,var(--surface-solid) 30%,var(--soft) 50%);background-size:220% 100%;animation:image-generation-shimmer 1.5s linear infinite}
.generated-image{display:block;width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--soft)}
@keyframes image-generation-shimmer{to{background-position:-220% 0}}
@media(max-width:760px){.composer{grid-template-columns:auto minmax(0,1fr) auto}.composer-tool{display:grid;background:transparent}.composer-tool.active{background:var(--accent)}.composer-status{display:none}.image-generation-card{width:100%}}

/* v30 in-app dialogs, gallery, typing progress and visual viewport layout */
body.modal-open{overscroll-behavior:none}
.messages{scroll-behavior:auto}
.typing-indicator{display:inline-flex;align-items:center;gap:5px;min-height:24px;padding:0 2px}
.typing-indicator i{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:typing-dot 1.2s ease-in-out infinite}
.typing-indicator i:nth-child(2){animation-delay:.16s}.typing-indicator i:nth-child(3){animation-delay:.32s}
@keyframes typing-dot{0%,60%,100%{opacity:.28;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}
.generated-image-button{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
.generated-image-button:focus-visible{outline-offset:-4px}
.app-dialog,.image-viewer{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:18px}
.app-dialog-backdrop,.image-viewer-backdrop{position:absolute;inset:0;width:100%;height:100%;border:0;background:rgba(10,10,8,.46);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);cursor:default}
.app-dialog-card{position:relative;width:min(100%,420px);padding:24px;border:1px solid var(--line);border-radius:22px;background:var(--surface-solid);box-shadow:var(--shadow);animation:dialog-in .2s ease both}
.app-dialog-icon{display:grid;place-items:center;width:40px;height:40px;margin-bottom:18px;border-radius:13px;background:color-mix(in srgb,var(--danger) 12%,var(--soft));color:var(--danger);font-weight:800}
.app-dialog-card h2{margin:0;font-size:20px;letter-spacing:-.03em}.app-dialog-card p{margin:10px 0 24px;color:var(--muted);font-size:12px;line-height:1.6}
.app-dialog-actions{display:grid;grid-template-columns:1fr 1fr;gap:9px}.app-dialog-actions button{min-height:44px}
.image-viewer{z-index:82;padding:max(12px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left))}
.image-viewer-backdrop{background:rgba(5,5,4,.9)}
.image-viewer-shell{position:relative;display:flex;width:min(100%,1100px);height:min(100%,900px);min-height:0;flex-direction:column;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:22px;background:#0d0e0c;box-shadow:0 30px 100px rgba(0,0,0,.55)}
.image-viewer-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:9px 10px 9px 16px;color:#f5f5ef}.image-viewer-toolbar>div{display:flex;align-items:center;gap:7px}
.image-viewer-toolbar .soft-button,.image-viewer-toolbar .icon-button{display:grid;min-height:40px;place-items:center;border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.08);color:#f5f5ef;text-decoration:none}.image-viewer-toolbar .soft-button{padding:0 14px}
.image-viewer-stage{display:grid;min-height:0;flex:1;place-items:center;padding:10px;background:#080907}.image-viewer-stage img{display:block;max-width:100%;max-height:100%;object-fit:contain}
@keyframes dialog-in{from{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}
@media(max-width:760px){.app-dialog{align-items:end;padding:12px}.app-dialog-card{width:100%;padding:20px;border-radius:22px}.image-viewer{padding:0}.image-viewer-shell{width:100%;height:100%;border:0;border-radius:0}.image-viewer-toolbar{padding-top:max(9px,env(safe-area-inset-top));padding-right:max(10px,env(safe-area-inset-right));padding-left:max(14px,env(safe-area-inset-left))}.image-viewer-toolbar strong{display:none}.image-viewer-toolbar>div{width:100%}.image-viewer-toolbar .soft-button{flex:1}.image-viewer-stage{padding:0 8px max(8px,env(safe-area-inset-bottom))}}

/* v33 per-user usage reporting */
.admin-row.user-usage-row{grid-template-columns:minmax(160px,1.4fr) 74px minmax(105px,.9fr) minmax(86px,.65fr) minmax(86px,.65fr) minmax(220px,auto);min-width:900px}
.admin-row.user-usage-row.editing-user{grid-template-columns:minmax(180px,1.5fr) minmax(130px,1fr) minmax(160px,1fr) auto;min-width:720px}
.usage-value{display:grid;gap:2px}.usage-value strong{font-size:11px}.usage-value small{margin:0}
.usage-controls{display:grid;grid-template-columns:minmax(260px,1fr) minmax(180px,240px) minmax(150px,190px) auto;align-items:end;gap:14px}
.usage-controls>div h3,.usage-controls>div p{margin:0}.usage-controls>div p{margin-top:6px}
.usage-controls label{display:grid;gap:6px;color:var(--muted);font-size:10px}
.usage-controls select,.usage-controls input{width:100%;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-solid);color:var(--text);outline:0}
.usage-summary-grid{margin-top:14px}.usage-analysis{margin-top:14px}
.usage-analysis>header{gap:16px}.usage-analysis>header>div{min-width:0}.usage-analysis>header h3,.usage-analysis>header p{margin:0}.usage-analysis>header p{margin-top:5px}
.usage-note{margin:16px 0 0!important}.usage-days{display:grid;gap:8px;margin-top:16px;overflow:auto}
.usage-day-row{display:grid;grid-template-columns:minmax(120px,1.15fr) repeat(6,minmax(88px,1fr)) minmax(110px,1fr);align-items:center;gap:10px;min-width:900px;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-solid)}
.usage-day-row.zero{opacity:.52}.usage-stat{display:grid;gap:3px;min-width:0}.usage-stat small{color:var(--muted);font-size:9px}.usage-stat strong{overflow:hidden;font-size:10px;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:980px){.usage-controls{grid-template-columns:1fr 1fr}.usage-controls>div{grid-column:1/-1}.usage-controls .primary-button{min-height:38px}}
@media(max-width:760px){.admin-row.user-usage-row,.admin-row.user-usage-row.editing-user{grid-template-columns:minmax(0,1fr);min-width:0}.admin-row.user-usage-row .row-actions{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-row.user-usage-row .row-actions button{padding-right:6px;padding-left:6px;font-size:10px}.usage-controls{grid-template-columns:minmax(0,1fr)}.usage-controls>div{grid-column:auto}.usage-summary-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.usage-summary-grid .metric-card{min-height:118px}.usage-summary-grid .metric-card>strong{font-size:27px}.usage-analysis>header{align-items:flex-start}.usage-day-row{grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.usage-stat{padding:3px 0}.usage-stat strong{white-space:normal}}

/* v36 visual viewport shell and centered single-line composer */
.composer textarea{min-height:44px;padding:10px 4px;line-height:24px}
.composer textarea:placeholder-shown{padding-top:0;padding-bottom:0;line-height:44px}
@media(max-width:760px){html,body{height:100%;overscroll-behavior:none}.app-shell{position:fixed;top:var(--app-top,0px);right:0;bottom:auto;left:0;height:var(--app-height,100dvh)}.conversation-pane{height:100%;min-height:0}.composer-wrap{position:relative;right:auto;bottom:auto;left:auto;flex:0 0 auto;padding:18px max(12px,env(safe-area-inset-right)) max(10px,calc(env(safe-area-inset-bottom) + 2px)) max(12px,env(safe-area-inset-left))}.keyboard-open .composer-wrap{padding:4px max(8px,env(safe-area-inset-right)) 4px max(8px,env(safe-area-inset-left));background:var(--bg)}}

/* v37 rich messages, timestamps and copy actions */
.message-body{min-width:0}.message-content{white-space:normal;font-family:inherit,"Apple Color Emoji","Segoe UI Emoji","Noto Color Emoji"}.message-content p,.message-content h3,.message-content ul,.message-content ol,.message-content blockquote,.message-content pre{margin:0 0 12px}.message-content>:last-child{margin-bottom:0}.message-content h3{font-size:15px;line-height:1.45}.message-content ul,.message-content ol{padding-left:22px}.message-content li+li{margin-top:4px}.message-content strong{font-weight:750}.message-content a{color:color-mix(in srgb,var(--text) 76%,#2868c7);font-weight:650;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}.message-content code{border:1px solid var(--line);border-radius:6px;padding:1px 5px;background:var(--soft);font:12px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace}.message-content pre{overflow:auto;border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--soft)}.message-content pre code{border:0;padding:0;background:transparent}.message-content blockquote{padding-left:12px;border-left:3px solid var(--line-strong);color:var(--muted)}.message-meta{display:flex;min-height:44px;align-items:center;gap:2px;margin-top:2px;color:var(--faint)}.message.user .message-meta{justify-content:flex-end}.message-time{font-size:9px;font-variant-numeric:tabular-nums}.message-copy{display:grid;width:44px;height:44px;place-items:center;border:0;border-radius:12px;background:transparent;color:var(--faint);cursor:pointer;transition:background .16s ease,color .16s ease,transform .16s ease}.message-copy:hover,.message-copy:focus-visible,.message-copy.copied{background:var(--soft);color:var(--text)}.message-copy:active{transform:scale(.94)}.message-copy svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
