:root{color-scheme:light;--ink:#17313b;--muted:#60747a;--line:#dce7e6;--paper:#fff;--accent:#176c70}
body{background:#edf3f2;color:var(--ink)}main{max-width:1500px;margin:24px auto;padding:28px 32px;box-shadow:0 16px 48px rgba(21,61,60,.08)}
.workbench-tabs{display:flex;gap:8px;border-bottom:1px solid var(--line);margin:24px 0 20px}.workbench-tabs button{background:transparent;color:var(--muted);padding:12px 22px;border-radius:8px 8px 0 0}.workbench-tabs button[aria-selected=true]{color:var(--accent);background:#e5f2ef;font-weight:700;border-bottom:3px solid var(--accent)}
.workbench-panel[hidden]{display:none}.chat-layout,.image-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.8fr);gap:28px;align-items:start}.image-layout{grid-template-columns:minmax(320px,.8fr) minmax(0,1.2fr)}
.chat-main,.chat-compose,.image-controls,.image-preview{min-width:0;background:#f8fbfa;border:1px solid var(--line);border-radius:14px;padding:20px}.chat-main{min-height:420px}.chat-compose form,.image-controls form{margin-top:0}.chat-compose textarea,.image-controls textarea{min-height:140px;resize:vertical}.chat-main #chat-turns{overflow-wrap:anywhere}.chat-response{padding:8px 14px 16px;border-bottom:1px solid var(--line)}
button{cursor:pointer}button:disabled{opacity:.5;cursor:not-allowed}input[type=checkbox]{display:inline;width:auto;margin:0 6px 0 0}select{max-width:100%;padding:9px}.image-preview img{max-width:100%;height:auto;border-radius:10px}
@media(max-width:760px){main{margin:0;padding:20px 16px;border-radius:0}.chat-layout,.image-layout{grid-template-columns:1fr;gap:16px}.chat-main{min-height:160px}.workbench-tabs button{flex:1}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.chat-layout{display:flex;flex-direction:column;gap:12px}.chat-main,.chat-compose{width:100%;box-sizing:border-box}.chat-main{min-height:0;background:#fff;border:0;padding:0}.chat-compose{background:#fff;border:0;padding:0}.chat-main>h2{font-size:1rem;color:var(--muted)}.history-section{width:100%}.chat-scroll{height:clamp(160px,calc(100dvh - 520px),680px);min-height:160px;overflow-y:auto;overscroll-behavior:contain;padding:12px 18px;scrollbar-gutter:stable}.chat-turn{display:flex;flex-direction:column;gap:14px;margin:0 auto 26px;max-width:960px}.user-message{align-self:flex-end;background:#e8efee;border-radius:20px 20px 5px 20px;padding:12px 16px;max-width:80%;white-space:pre-wrap;overflow-wrap:anywhere}.assistant-message{align-self:stretch;line-height:1.65}.chat-response{padding:0;border:0;overflow-wrap:anywhere}.history-more{display:block;margin:0 auto 16px;background:#edf3f2;color:var(--ink);font-size:.9rem}.composer-box{border:1px solid #c9d7d4;border-radius:22px;background:#fff;box-shadow:0 4px 18px rgba(24,52,50,.07);padding:10px 12px}.chat-compose form{margin:0}.chat-compose textarea{min-height:76px;max-height:220px;border:0;outline:none;resize:vertical;margin:0;padding:10px;background:transparent;font:inherit}.composer-actions,.composer-left,.composer-right{display:flex;align-items:center;gap:8px}.composer-actions{justify-content:space-between}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:38px;height:38px;padding:8px;border-radius:50%;background:transparent;color:var(--ink)}.icon-button:hover:not(:disabled){background:#eaf1ef}.icon-button svg{display:block;width:21px;height:21px}.primary-icon{background:#173b39;color:#fff}.primary-icon:hover:not(:disabled){background:#245a56}.icon-button[hidden]{display:none}.file-summary{font-size:.85rem;color:var(--muted);overflow-wrap:anywhere}.attachment-hint{font-size:.8rem;color:var(--muted);margin:8px 5px}.chat-compose select{width:auto}.chat-compose label:has(select){display:flex;align-items:center;gap:8px}.chat-compose label:has(select) select{margin:0}
@media(max-width:760px){.chat-scroll{height:clamp(140px,calc(100dvh - 500px),520px);min-height:140px;padding:8px}.user-message{max-width:90%}.chat-compose{padding:0}.composer-box{border-radius:18px}}

.history-more[hidden]{display:none}

.model-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}.chat-compose .model-controls label{margin:0}.model-controls select{max-width:100%}@media(max-width:500px){.model-controls{gap:8px}.model-controls label{font-size:.9rem}}

/* Theme and account controls */
:root{--page:#edf3f2;--panel:#fff;--field:#fff;--soft:#f8fbfa;--bubble:#e8efee;--tab:#e5f2ef;--hover:#eaf1ef;--link:#176c70}
@media(prefers-color-scheme:dark){:root:not([data-theme="light"]){color-scheme:dark;--ink:#e7eeee;--muted:#a6bbba;--line:#394b4b;--paper:#182222;--accent:#8edbd0;--page:#101818;--panel:#182222;--field:#202e2e;--soft:#1c2929;--bubble:#314441;--tab:#294441;--hover:#304643;--link:#8edbd0}}
:root[data-theme="dark"]{color-scheme:dark;--ink:#e7eeee;--muted:#a6bbba;--line:#394b4b;--paper:#182222;--accent:#8edbd0;--page:#101818;--panel:#182222;--field:#202e2e;--soft:#1c2929;--bubble:#314441;--tab:#294441;--hover:#304643;--link:#8edbd0}
body{background:var(--page);color:var(--ink)}main{background:var(--panel)}a{color:var(--link)}input,textarea,select{background:var(--field);color:var(--ink);border:1px solid var(--line);border-radius:6px}.chat-main,.chat-compose{background:var(--panel)}.image-controls,.image-preview{background:var(--soft)}.composer-box{background:var(--field);border-color:var(--line)}.chat-compose textarea{background:transparent}.user-message{background:var(--bubble)}.history-more{background:var(--soft);color:var(--ink)}.workbench-tabs button[aria-selected=true]{background:var(--tab)}.icon-button:hover:not(:disabled){background:var(--hover)}.primary-icon,.primary-icon:hover:not(:disabled){color:#fff;background:#176c70}
.site-header{display:flex;align-items:center;justify-content:space-between;gap:16px}.site-header h1{margin:0}.header-actions{display:flex;align-items:center;gap:12px}.theme-setting{display:flex;align-items:center;gap:6px;font-size:.9rem;color:var(--muted);white-space:nowrap}.theme-setting select{width:auto;margin:0;padding:7px}.logout-form{margin:0}.logout-button{background:transparent;color:var(--muted);border:1px solid var(--line);padding:8px 12px}.logout-button:hover{color:var(--ink);background:var(--hover)}@media(max-width:520px){.site-header{align-items:flex-start}.site-header h1{font-size:1.35rem}.header-actions{gap:6px;flex-wrap:wrap;justify-content:flex-end}.logout-button{padding:7px 9px}}

@media (min-width:1024px){main{box-sizing:border-box;width:min(66.6667%,1042.67px)}}

/* Mobile conversation */
.mobile-menu{display:none}
@media(max-width:760px){
 body.mobile-enhanced.has-workbench{height:var(--mobile-visible-height,100dvh);overflow:hidden}
 body.mobile-enhanced.has-workbench main{height:100%;box-sizing:border-box;display:flex;flex-direction:column;overflow:hidden;padding:max(8px,env(safe-area-inset-top)) 12px max(8px,env(safe-area-inset-bottom));gap:0}
 .mobile-enhanced .site-header{position:relative;align-items:center;min-height:42px;flex:none}
 .mobile-enhanced .site-header h1{font-size:1.15rem}
 .mobile-enhanced .mobile-menu{display:block;position:relative;margin-left:auto}
 .mobile-menu summary{display:flex;align-items:center;justify-content:center;list-style:none;width:42px;height:42px;border-radius:10px;cursor:pointer;color:var(--ink)}
 .mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu summary:hover{background:var(--hover)}.mobile-menu summary svg{width:22px;height:22px}
 .mobile-menu-panel{position:absolute;z-index:20;top:46px;right:0;width:min(290px,calc(100vw - 32px));max-height:calc(100dvh - 70px);overflow:auto;box-sizing:border-box;padding:16px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
 .mobile-menu-panel .header-actions,.mobile-menu-panel .model-controls{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:0}
 .mobile-menu-panel .account-info,.mobile-menu-panel .account-usage,.mobile-menu-panel .admin-links,.mobile-menu-panel .account-switch{margin:0 0 14px;overflow-wrap:anywhere}
 .mobile-menu-panel .theme-setting,.mobile-menu-panel .model-controls label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0}.mobile-menu-panel select{width:auto;max-width:65%;margin:0;font-size:16px}
 .mobile-menu-panel .logout-form{margin:0 0 12px}.mobile-menu-panel .logout-button{width:100%;text-align:left}.mobile-menu-panel .account-switch button{margin-top:8px}.mobile-menu-panel .admin-links a{display:inline-block;padding:5px 0}
 .mobile-enhanced.has-workbench [data-workbench]{display:flex;flex:1;min-height:0;flex-direction:column;overflow:hidden}
 .mobile-enhanced.has-workbench .workbench-tabs{flex:none;margin:0 0 4px;gap:4px}.mobile-enhanced.has-workbench .workbench-tabs button{padding:8px 12px}
 .mobile-enhanced.has-workbench .workbench-panel:not([hidden]){flex:1;min-height:0}.mobile-enhanced.has-workbench #panel-text:not([hidden]){display:flex;flex-direction:column}
 .mobile-enhanced.has-workbench .chat-layout{flex:1;min-height:0;gap:4px}.mobile-enhanced.has-workbench .chat-main{flex:1;min-height:0;display:flex;flex-direction:column}
 .mobile-enhanced.has-workbench .chat-main>h2,.mobile-enhanced.has-workbench .attachment-hint{display:none}
 .mobile-enhanced.has-workbench .history-section{flex:1;min-height:0}.mobile-enhanced.has-workbench .chat-scroll{height:100%;min-height:0;padding:8px 4px;box-sizing:border-box}
 .mobile-enhanced.has-workbench .chat-compose{flex:none}.mobile-enhanced.has-workbench .composer-box{padding:5px 8px}.mobile-enhanced.has-workbench .chat-compose textarea{min-height:42px;max-height:100px;padding:7px 8px;font-size:16px}
 .mobile-enhanced.has-workbench #panel-image:not([hidden]){overflow-y:auto;overscroll-behavior:contain}.mobile-enhanced.has-workbench .image-layout{display:grid;gap:12px}.mobile-enhanced.has-workbench .image-controls,.mobile-enhanced.has-workbench .image-preview{padding:12px}
}

.mobile-menu-panel .pwa-install{width:100%;margin-top:12px;text-align:left;background:var(--tab);color:var(--ink);border:1px solid var(--line)}

@media(max-width:760px){
 body.mobile-enhanced.has-workbench.mobile-viewport-managed{position:fixed;top:var(--mobile-visible-top,0px);left:0;right:0;width:100%}
 body.mobile-enhanced.has-workbench.mobile-zoomed{position:static;height:auto;overflow:auto}
 body.mobile-enhanced.has-workbench.mobile-zoomed main{height:auto;overflow:visible;min-height:100dvh}
}

.logout-button svg{display:block;width:20px;height:20px}.logout-button{display:inline-flex;align-items:center;justify-content:center}
@media(min-width:761px){.budget-usage{display:none}}
@media(max-width:760px){.mobile-menu-panel .budget-usage{margin:0 0 12px;font-size:.9rem;color:var(--muted)}.mobile-menu-panel .workbench-tabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:1px solid var(--line)}.mobile-menu-panel .workbench-tabs button{flex:1;padding:8px 4px}.mobile-menu-panel .model-controls:not([hidden]),.mobile-menu-panel .image-settings:not([hidden]){display:flex;flex-direction:column;gap:10px;margin:0 0 14px}.mobile-menu-panel .model-controls[hidden],.mobile-menu-panel .image-settings[hidden]{display:none}.mobile-menu-panel .model-controls label,.mobile-menu-panel .image-settings label{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0}.mobile-menu-panel .model-controls select,.mobile-menu-panel .image-settings select{margin:0;max-width:65%;width:auto;font-size:16px}.mobile-menu-panel .header-actions{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.mobile-menu-panel .logout-form{margin:0}.mobile-menu-panel .logout-button{width:40px;height:40px;padding:9px}}

@media(max-width:760px){.mobile-menu-panel .logout-form{width:100%;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}.mobile-menu-panel .logout-button{width:100%;height:auto;padding:9px 12px;justify-content:flex-start;text-align:left}}

.image-thumbnails{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.image-thumbnails button{padding:0;border:1px solid var(--line);background:var(--soft);border-radius:8px;overflow:hidden;aspect-ratio:1}.image-thumbnails img{width:100%;height:100%;display:block;object-fit:cover}.image-preview #image-result{width:100%;max-height:70vh;object-fit:contain}.image-preview p:empty{display:none}@media(max-width:760px){.image-controls textarea,.image-controls input,.image-controls select{font-size:16px}.image-thumbnails{grid-template-columns:repeat(3,minmax(0,1fr))}.image-preview #image-result{max-height:none}}

@media(max-width:760px){.mobile-menu-panel .header-actions{display:block;width:100%}.mobile-menu-panel .theme-setting{display:flex;align-items:center;justify-content:space-between;width:100%;gap:8px;font-size:inherit;color:var(--ink)}.mobile-menu-panel .theme-setting select{margin:0;max-width:65%;width:auto;font-size:16px}.mobile-menu-panel .logout-button{font:inherit}}

/* Shared desktop and mobile menu */
.menu-enhanced .mobile-menu{display:block;position:relative;margin-left:auto}.menu-enhanced .site-header{position:relative;align-items:center}
.menu-enhanced .mobile-menu summary{display:flex;align-items:center;justify-content:center;list-style:none;width:42px;height:42px;border-radius:10px;cursor:pointer;color:var(--ink)}.menu-enhanced .mobile-menu summary::-webkit-details-marker{display:none}.menu-enhanced .mobile-menu summary:hover{background:var(--hover)}.menu-enhanced .mobile-menu summary svg{width:22px;height:22px}
.menu-enhanced .mobile-menu-panel{position:absolute;z-index:20;top:46px;right:0;width:min(310px,calc(100vw - 32px));max-height:calc(100dvh - 90px);overflow:auto;box-sizing:border-box;padding:16px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.2)}
.menu-enhanced .mobile-menu-panel .budget-usage{display:block;margin:0 0 12px;font-size:.9rem;color:var(--muted)}.menu-enhanced .mobile-menu-panel .workbench-tabs{display:flex;gap:4px;margin:0 0 12px;border-bottom:1px solid var(--line)}.menu-enhanced .mobile-menu-panel .workbench-tabs button{flex:1;padding:8px 4px;font:inherit;font-size:16px}
.menu-enhanced .mobile-menu-panel .model-controls:not([hidden]),.menu-enhanced .mobile-menu-panel .image-settings:not([hidden]){display:flex;flex-direction:column;gap:10px;margin:0 0 14px}.menu-enhanced .mobile-menu-panel .model-controls[hidden],.menu-enhanced .mobile-menu-panel .image-settings[hidden]{display:none}
.menu-enhanced .mobile-menu-panel .model-controls label,.menu-enhanced .mobile-menu-panel .image-settings label,.menu-enhanced .mobile-menu-panel .theme-setting{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:0;width:100%;font-size:16px;color:var(--ink)}
.menu-enhanced .mobile-menu-panel .model-controls select,.menu-enhanced .mobile-menu-panel .image-settings select,.menu-enhanced .mobile-menu-panel .theme-setting select{margin:0;max-width:65%;width:auto;font-size:16px}.menu-enhanced .mobile-menu-panel .header-actions{display:block;width:100%}
.menu-enhanced .mobile-menu-panel .account-switch,.menu-enhanced .mobile-menu-panel .account-usage,.menu-enhanced .mobile-menu-panel .admin-links{margin:14px 0;overflow-wrap:anywhere}.menu-enhanced .mobile-menu-panel .logout-form{width:100%;margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}.menu-enhanced .mobile-menu-panel .logout-button{width:100%;height:auto;padding:9px 12px;justify-content:flex-start;text-align:left;font:inherit}
@media(min-width:761px){.menu-enhanced .chat-scroll{height:clamp(260px,calc(100dvh - 360px),720px)}}
