/* Generated by scripts/sync-design.py from style.template.css. */
/* Application layout source. Components and values come from design-system 0.1.0. */
*{box-sizing:border-box}html,body,#root,.app-root{height:100%;height:100dvh}body{overflow:hidden}button,input,textarea{font-family:var(--font-sans)}.app-root{background:var(--surface);color:var(--text-primary)}.dl-shell{height:100%;height:100dvh}.dl-shell__content{display:flex;flex-direction:column;min-height:0}.app-scroll{flex:1;min-height:0;overflow:auto;scroll-behavior:auto}.app-prose-text{white-space:pre-wrap}.app-auth{height:100%;overflow:auto;display:flex;justify-content:center;padding:var(--space-16) var(--space-6) var(--space-8);position:relative}.app-auth .dl-signin__panel{flex:none;align-self:center;max-width:var(--dialog-width)}.app-auth-tools{position:absolute;right:var(--space-4);top:var(--space-4)}.app-form{display:flex;flex-direction:column;gap:var(--space-5);width:100%}.app-wordmark{border:0;padding:0;display:flex;align-items:center;min-height:var(--control-lg);background:transparent;color:var(--text-primary);cursor:pointer}.app-wordmark>span{display:flex;align-items:center;gap:var(--space-1-5)}.app-composer{position:relative;width:100%}.app-composer .dl-iconbtn[aria-label="语音输入"],.app-composer .dl-iconbtn[aria-label="语音对话"]{display:none}.app-composer-empty .dl-composer__right{min-width:var(--control-md)}.app-empty-send{position:absolute;right:var(--space-2);bottom:var(--space-2)}.app-settings{display:flex;flex-direction:column;gap:var(--space-6)}.app-settings section{display:flex;flex-direction:column;gap:var(--space-3)}.app-settings h3{margin:0}.app-setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) 0;border-bottom:1px solid var(--border);font:var(--text-ui)}.app-setting-row>span:first-child{color:var(--text-secondary)}.app-setting-row code{font:var(--text-code);word-break:break-all}.app-about{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);color:var(--text-tertiary);padding-top:var(--space-4)}.app-key{font:var(--text-code);background:var(--surface-code);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:var(--radius-xl);padding:var(--space-3)}.app-danger{color:var(--text-danger)}.app-error{padding:var(--space-2) var(--thread-gutter)}.app-excerpt{white-space:pre-wrap}.app-uploading{color:var(--text-secondary);margin:var(--space-2) 0}.app-wordmark:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:var(--radius-full)}.dl-home{min-width:0}.dl-home__center>.dl-dock{width:100%}
@media(max-width:767px){.app-empty-send{bottom:var(--space-1)}.app-settings-full{position:fixed!important;inset:0!important;width:100%!important;max-width:none!important;height:100dvh!important;max-height:100dvh!important;border-radius:0!important}.app-auth{padding-top:var(--space-20)}.app-auth .display{font:var(--text-heading-1)}.dl-shell__footer{padding-bottom:env(safe-area-inset-bottom)}.app-form{gap:var(--space-4)}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(forced-colors:active){.dl-composer,.dl-sidebar,.dl-iconbtn{border:1px solid CanvasText}}

.app-composer-empty .dl-composer__right .dl-iconbtn[aria-label="发送"]{visibility:hidden}

/* Expanded text uses a separate bottom toolbar with an 8px visual inset. */
.app-composer .dl-composer.is-stacked{padding-bottom:var(--space-2)}
.app-composer .dl-composer.is-stacked .dl-composer__bar{padding-top:var(--space-2)}
.app-composer .app-empty-send{top:auto;bottom:var(--space-2);transform:none}
[data-density="touch"] .app-composer .dl-composer.is-stacked{padding-bottom:var(--space-2)}
[data-density="touch"] .app-composer .app-empty-send{bottom:var(--space-1)}
[data-density="touch"] .app-composer:has(.dl-composer.is-stacked) .app-empty-send{bottom:var(--space-2)}

/* Settings: shared grouped layout, with a category rail on desktop. */
.app-settings-shell{display:grid;grid-template-columns:calc(var(--space-16) * 2) minmax(0,1fr);gap:var(--space-6);align-items:start}
.app-settings-nav{position:sticky;top:0;display:flex;flex-direction:column;gap:var(--space-1)}
.app-settings-nav .dl-btn{justify-content:flex-start}
.app-settings{min-width:0;gap:var(--space-6)}
.app-settings section{gap:var(--space-2);scroll-margin-top:var(--space-4)}
.app-settings h3{font:var(--text-label);color:var(--text-tertiary);padding:0 var(--space-4)}
.app-settings-card{background:var(--surface-raised);border-radius:var(--radius-2xl);overflow:hidden}
.app-profile{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4)}
.app-profile>div{min-width:0;display:flex;flex-direction:column;gap:var(--space-1)}
.app-profile strong{font:var(--text-title)}.app-profile span{font:var(--text-ui);color:var(--text-secondary);overflow-wrap:anywhere}
.app-appearance{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-4)}
.app-settings-label,.app-mode-row{display:flex;align-items:center;gap:var(--space-3);font:var(--text-body)}
.app-settings-label>svg,.app-mode-row>svg,.app-service summary>svg{color:var(--text-secondary);flex-shrink:0}
.app-mode-row{padding:var(--space-4);align-items:flex-start}
.app-mode-row>div{display:flex;flex-direction:column;gap:var(--space-1)}
.app-mode-row>div>span+span{font:var(--text-ui);color:var(--text-secondary)}
.app-service{border-top:1px solid var(--border);margin-left:var(--space-4)}
.app-service summary{list-style:none;cursor:pointer;min-height:var(--control-xl);padding:var(--space-3) var(--space-4) var(--space-3) 0;display:flex;align-items:center;gap:var(--space-3);font:var(--text-body)}
.app-service summary::-webkit-details-marker{display:none}.app-service summary>span{flex:1}.app-service[open] .app-service-chevron{transform:rotate(180deg)}
.app-service summary:focus-visible{outline:2px solid var(--ring);outline-offset:-2px;border-radius:var(--radius-lg)}
.app-service-content{padding:0 var(--space-4) var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-4)}
.app-service-content .app-setting-row{align-items:flex-start;border:0;padding:var(--space-2) 0;flex-wrap:wrap}
.app-service-content code{overflow-wrap:anywhere;max-width:100%}
.app-settings-extra{padding:var(--space-4);background:var(--surface-raised);border-radius:var(--radius-2xl)}
.app-settings-extra h3{padding:0}.app-settings .app-settings-logout{justify-content:flex-start;border-radius:var(--radius-2xl);background:var(--surface-raised);padding:var(--space-4);min-height:var(--control-xl);color:var(--text-danger)}
.app-settings .app-settings-logout:hover{background:var(--fill-hover)}
.app-settings .app-about{justify-content:center;padding:var(--space-4) 0}
@media(max-width:767px){.app-settings-shell{display:block}.app-settings-nav{display:none}.app-settings{max-width:var(--dialog-width);margin:0 auto}}

.app-member{border-top:1px solid var(--border);padding-top:var(--space-3);display:flex;flex-direction:column;gap:var(--space-3)}.app-member .app-setting-row{border:0;align-items:flex-start}.app-member-identity{display:flex;flex-direction:column;min-width:0;gap:var(--space-1)}.app-member-identity>span:first-child{color:var(--text-primary)}.app-member-identity>span+span{font:var(--text-caption);color:var(--text-secondary);overflow-wrap:anywhere}.app-member-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--space-2)}.app-member-feedback{font:var(--text-ui);color:var(--text-secondary);margin:0;overflow-wrap:anywhere}

.app-md-emphasis{font-weight:500}.dl-prose h5,.dl-prose h6{font:var(--text-heading-4);margin:var(--space-4) 0 var(--space-2)}.dl-prose input[type="checkbox"]{accent-color:var(--fill-primary);margin-right:var(--space-2)}
