/* Shared UI foundation. Values are owned by theme.js; public hero layout stays in taste-home.css. */
@font-face{font-family:LOKESPHERE Sans SC;src:url('https://lokiweb-1303081218.cos.ap-guangzhou.myqcloud.com/lokesphere/static/media/29b75efed3595453/assets/fonts/noto-sans-sc.woff2') format('woff2');font-weight:100 900;font-style:normal;font-display:swap;unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FF00-FFEF}
@font-face{font-family:LOKESPHERE Serif SC;src:url('https://lokiweb-1303081218.cos.ap-guangzhou.myqcloud.com/lokesphere/static/media/29b75efed3595453/assets/fonts/noto-serif-sc.woff2') format('woff2');font-weight:200 900;font-style:normal;font-display:swap;unicode-range:U+2E80-9FFF,U+F900-FAFF,U+FF00-FFEF}
@font-face{font-family:Taste Manrope;src:url('https://lokiweb-1303081218.cos.ap-guangzhou.myqcloud.com/lokesphere/static/media/29b75efed3595453/assets/taste-home/manrope-latin.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:Taste Playfair;src:url('https://lokiweb-1303081218.cos.ap-guangzhou.myqcloud.com/lokesphere/static/media/29b75efed3595453/assets/taste-home/playfair-latin.woff2') format('woff2');font-weight:400 900;font-style:normal;font-display:swap}
html{font-family:var(--font-sans);color-scheme:light;scroll-padding-top:80px}
body{margin:0;background:var(--color-page);color:var(--color-text-primary);font-family:var(--font-sans);line-height:1.6;-webkit-font-smoothing:antialiased}
*,*::before,*::after{box-sizing:border-box}
button,input,textarea,select{font-family:inherit}
button,a,input,textarea,select{touch-action:manipulation}
button{cursor:pointer}
:where(a,button,input,textarea,select,summary,[tabindex]):focus-visible{outline:2px solid var(--color-focus);outline-offset:3px}
::selection{background:var(--color-selection-bg);color:var(--color-selection-text)}
[hidden]{display:none!important}
.workspace-page{font-size:var(--text-ui)}
.workspace-page .lsp-sidebar{background:var(--color-surface);border-right:1px solid var(--color-border);box-shadow:none}
.workspace-page .lsp-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);box-shadow:none}
.workspace-page [data-workspace-brand-en],.workspace-page .lsp-mobile-brand-title{color:var(--color-text-primary);letter-spacing:-.03em}
.workspace-page [data-workspace-brand-zh]{color:var(--color-text-secondary);letter-spacing:normal}
.workspace-page .lsp-sidebar .w-10{border-radius:var(--radius-control);background:var(--color-action-primary);color:var(--color-action-primary-text)}
.workspace-page .nav-item,.workspace-page .nav-group-toggle,.workspace-page .nav-subitem{margin:2px 12px;border-radius:var(--radius-control);border-left:2px solid transparent;font-family:var(--font-sans);letter-spacing:normal;text-transform:none;color:var(--color-text-secondary);font-size:14px;line-height:1.45;font-weight:500;min-height:44px}
.workspace-page .nav-subitem{padding:10px 12px 10px 32px;min-height:40px}
.workspace-page .nav-item:hover,.workspace-page .nav-group-toggle:hover,.workspace-page .nav-subitem:hover{background:var(--color-surface-subtle);color:var(--color-text-primary)}
.workspace-page .nav-item.is-active,.workspace-page .nav-subitem.is-active{background:var(--color-accent-subtle);color:var(--color-accent);border-left-color:var(--color-accent);font-weight:600}
.workspace-page .nav-group-toggle.is-open{background:var(--color-surface-subtle);color:var(--color-text-primary)}
.workspace-page .lsp-toggle-group,.workspace-page #ls-nav-user-btn,.workspace-page #ls-nav-guest,.workspace-page #ls-nav-dropdown{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-control);color:var(--color-text-primary)}
.workspace-page .lsp-toggle-group button{min-width:40px;min-height:36px;border-radius:var(--radius-sm);font-family:var(--font-sans)}
.workspace-page .lsp-toggle-group button.is-active,.workspace-page .lsp-toggle-group button[aria-pressed=true]{background:var(--color-action-primary);color:var(--color-action-primary-text)}
.workspace-page #ls-nav-dropdown{box-shadow:var(--shadow-floating)}
.workspace-page #page-content{color:var(--color-text-primary)}
.workspace-page #page-content :where(h1,h2,h3,h4){font-family:var(--font-sans);letter-spacing:-.02em;line-height:1.35}
.workspace-page #page-content :where(h1){font-size:28px;font-weight:600}
.workspace-page #page-content :where(h2){font-size:24px;font-weight:600}
.workspace-page #page-content :where(h3){font-size:18px;font-weight:600}
.workspace-page :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select,textarea){background:var(--color-surface);color:var(--color-text-primary);border:1px solid var(--color-border-control);border-radius:var(--radius-control);font-size:16px;line-height:1.5;min-width:0}
.workspace-page :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=file]),select){min-height:var(--control-height)}
/* Unify select fills across page and legacy inline overrides; preserve native/custom arrow images. */
html[data-theme] select,html[data-theme] .workspace-page #page-content select{background-color:var(--color-bg-select)!important}
/* Upload surfaces share a neutral fill; borders and previews retain their interaction states. */
html[data-theme] .workspace-page #page-content :is([data-igb-drop-zone],[data-ls-drag-zone],[data-ige-gen-drop-zone],.vgb-upload-zone,.vgb-asset-cell:not(.vgb-filled),.vrpa-upload-zone,.vtw-upload,.image-tools-dropzone,.igo-batch-add,.igo-repl-supp-add){background-color:var(--color-bg-upload)!important}
/* Video prompt, seed, asset and search fields use the same filled-control treatment. */
html[data-theme] .workspace-page #page-content :is(.vgb-form-input,.vgb-tpl-search-input,.vtw-input,.vtw-textarea,.vrpa-input){background-color:var(--color-bg-input-filled)!important}
.workspace-page textarea{min-height:108px}
.workspace-page input::placeholder,.workspace-page textarea::placeholder{color:var(--color-text-secondary);opacity:1}
.workspace-page :where(input,textarea,select):focus{border-color:var(--color-focus);box-shadow:var(--shadow-focus)}
.workspace-page :where(input[type=checkbox],input[type=radio],input[type=range]){accent-color:var(--color-accent)}
.workspace-page :where(button,input,textarea,select):disabled{cursor:not-allowed;box-shadow:none;opacity:.65}
.workspace-page .lsp-card,.workspace-page .lsp-soft-card,.workspace-page .tq-card,.workspace-page .vtq-card,.workspace-page .image-tools-settings,.workspace-page .image-tools-stage-card,.workspace-page .image-tools-column{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-card);box-shadow:var(--shadow-surface)}
.workspace-page .igb-route-btn,.workspace-page .igp-route-btn,.workspace-page .ige-route-btn,.workspace-page .igo-route-btn,.workspace-page .hist-filter-btn{border-radius:var(--radius-control);min-height:40px;background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-secondary);font-size:var(--text-ui)}
.workspace-page .igb-route-btn.igb-route-active,.workspace-page .igp-route-btn.igp-route-active,.workspace-page .ige-route-btn.ige-route-active,.workspace-page .igo-route-btn.igo-route-active,.workspace-page .hist-filter-btn.is-active{background:var(--color-accent-subtle);border-color:var(--color-accent);color:var(--color-accent)}
.workspace-page #igb-wrapper>div:first-child,.workspace-page #igp-wrapper>div:first-child,.workspace-page #ige-wrapper>div:first-child,.workspace-page #igo-wrapper>div:first-child{width:500px;min-width:440px;max-width:520px;background:var(--color-surface)}
.workspace-page .ui-model-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.workspace-page .ui-model-route{min-width:0;min-height:40px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text-secondary);font-size:var(--text-ui);font-weight:600}
.workspace-page .ui-model-route:not([aria-pressed=true]):not(:disabled):hover{background:var(--color-surface-subtle)}
.workspace-page .ui-model-route[aria-pressed=true]{background:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-action-primary-text)}
.workspace-page .ui-quality-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.workspace-page .ui-tool-modes{display:grid;gap:12px;grid-template-columns:repeat(2,minmax(0,1fr))}
.workspace-page :is(#igb-wrapper,#igp-wrapper,#ige-wrapper,#igo-wrapper) .ui-tool-modes{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.workspace-page .ui-tool-mode{border:1px solid var(--color-tool-tile-border);padding:12px;min-height:72px;gap:6px;text-align:left;align-items:flex-start;justify-content:center;border-radius:var(--radius-control)}
.workspace-page .ui-tool-mode>span{width:100%;text-align:left;line-height:1.45}
.workspace-page .ui-tool-mode>span:first-child{font-size:14px;font-weight:600}
.workspace-page .ui-tool-mode>span:last-child{font-size:12px}
.workspace-page :is(.tq-empty,.vtq-empty,[id^=tq-empty-],[id^=vtq-empty-]){color:var(--color-text-secondary)}
.workspace-page :is(.tq-empty,.vtq-empty,[id^=tq-empty-],[id^=vtq-empty-]) p{max-width:420px;line-height:1.65}
/* Queue renderers and tool-provided detail fragments share workspace typography; keep icon fonts intact. */
.workspace-page :is([id^="tq-panel-"],#tq-modal) :where(p,span,button,label,a,strong,small,time):not([class*="material-symbols"]):not(.material-icons){font-family:var(--font-sans)!important;letter-spacing:normal!important;text-transform:none!important}
.workspace-page :is(.tq-card,#tq-modal) :where(p,span,button,label,a,strong,small,time):not([class*="material-symbols"]):not(.material-icons){font-size:var(--text-caption)!important}
.workspace-page #tq-modal .tq-action-primary,.workspace-page #tq-modal .tq-action-primary span{color:var(--color-action-primary-text)!important}
.workspace-page [role=dialog],.workspace-page dialog{color:var(--color-text-primary)}
.public-page .public-container{width:min(100%,1280px);padding-inline:32px}
.public-page .public-button{border-radius:var(--radius-control);background:var(--color-action-primary);border-color:var(--color-action-primary);color:var(--color-action-primary-text)!important;font-weight:600;box-shadow:var(--shadow-action)}
.public-page .public-button:hover{background:var(--color-action-primary-hover);transform:translateY(-1px);box-shadow:var(--shadow-floating)}
.public-page .public-button.secondary{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-primary)!important;box-shadow:none}
.public-page .public-button.secondary:hover{background:var(--color-surface-subtle)}
.public-page .public-brand .brand-mark{background:var(--color-action-primary);color:var(--color-action-primary-text);box-shadow:none}
.public-page .public-controls button{min-height:44px}
.public-page .skip-link{background:var(--color-action-primary);color:var(--color-action-primary-text)}
.taste-header .taste-language,.taste-header .taste-menu-toggle,.taste-hero .taste-pause{min-width:40px;min-height:40px}
@media(max-width:1100px){.workspace-page #igb-wrapper>div:first-child,.workspace-page #igp-wrapper>div:first-child,.workspace-page #ige-wrapper>div:first-child,.workspace-page #igo-wrapper>div:first-child{width:440px;min-width:440px}}
@media(max-width:960px){.workspace-page .lsp-sidebar{box-shadow:var(--shadow-floating)}.workspace-page :is(#igb-wrapper,#igp-wrapper,#ige-wrapper,#igo-wrapper)>div:first-child{width:100%;min-width:0;max-width:none}.workspace-page .ui-tool-modes{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:639px){.public-page .public-container{padding-inline:16px}.workspace-page #page-content h1{font-size:24px}.workspace-page #page-content h2{font-size:22px}.workspace-page .ui-tool-modes,.workspace-page :is(#igb-wrapper,#igp-wrapper,#ige-wrapper,#igo-wrapper) .ui-tool-modes{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body *,body *::before,body *::after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
@media(prefers-reduced-transparency:reduce){.public-page .header-inner,.taste-header .taste-brand,.taste-header .taste-nav-pill{background:var(--color-surface);backdrop-filter:none;-webkit-backdrop-filter:none}}

/* Public information pages share the workspace foundation, with a compact mobile header. */
.info-page .lsp-sidebar .text-xl{color:var(--color-text-primary)!important}
.info-page .lsp-sidebar .w-10{border-radius:var(--radius-control)}
.info-page :is(.lsp-ann-lang-wrap,.lsp-ui-lang-wrap){border-radius:var(--radius-control);padding:4px}
.info-page :is(.lsp-ann-lang-btn,.lsp-ui-lang-btn){min-height:36px;min-width:40px;border-radius:var(--radius-sm)}
.info-page :is(.lsp-ann-back-btn,.lsp-ui-back-btn){min-height:44px;border-radius:var(--radius-control)}
.info-page #page-content{background:var(--color-page);min-height:100vh}
.info-page #page-content h1{font-size:32px;line-height:1.35;letter-spacing:-.02em}
@media(max-width:960px){.info-page>.lsp-sidebar{display:none}.info-page>.lsp-topbar{left:0;padding:12px 16px;height:auto;min-height:64px;gap:12px;flex-wrap:wrap}.info-page>#page-content{margin-left:0;padding:104px 16px 32px}.info-page .lsp-topbar>.flex{gap:12px}.info-page #page-content h1{font-size:28px}}
@media(max-width:420px){.info-page .lsp-topbar{align-content:center;justify-content:center}.info-page .lsp-topbar>.flex{justify-content:center}.info-page>#page-content{padding-top:136px}}
/* Restored switch uses the current control sizing and typography in both themes. */
.workspace-page #theme-toggle-btn{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;gap:6px;min-width:40px;min-height:40px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-control);background:var(--color-surface);color:var(--color-text-secondary);font-family:var(--font-sans);font-size:var(--text-caption);font-weight:600;white-space:nowrap}
.workspace-page #theme-toggle-btn:hover{background:var(--color-surface-subtle);color:var(--color-accent)}
#theme-toggle-btn svg{flex-shrink:0}
#theme-toggle-btn .theme-sun,html[data-theme="dark"] #theme-toggle-btn .theme-moon{display:none}
html[data-theme="dark"] #theme-toggle-btn .theme-sun{display:block}
@media(max-width:960px){.workspace-page #theme-toggle-btn{width:40px;padding:8px}.workspace-page #theme-toggle-btn .theme-label{display:none}}

/* Dark-only compatibility. The existing light rules and page geometry stay intact. */
html[data-theme="dark"] .remember-control input{color-scheme:dark}
html[data-theme="dark"] .workspace-page :is(.bg-primary-container,.bg-\[\#d4ff00\],.ui-model-route[aria-pressed="true"],.ui-tool-mode[aria-pressed="true"]){color:var(--color-action-primary-text)!important}
html[data-theme="dark"] .workspace-page :is(.igb-route-active,.ige-route-active,.igp-route-active,.igo-route-active,.vgb-route-active) span{color:inherit!important}
html[data-theme="dark"] .workspace-page :is(button,a)[style*="background:var(--color-action-primary)"],
html[data-theme="dark"] .workspace-page :is(button,a)[style*="background: var(--color-action-primary)"],
html[data-theme="dark"] .workspace-page :is(button,a)[style*="background-color:var(--color-action-primary)"],
html[data-theme="dark"] .workspace-page :is(button,a)[style*="background-color: var(--color-action-primary)"]{color:var(--color-action-primary-text)!important}
html[data-theme="dark"] .workspace-page :is(.bg-primary-container,.bg-\[\#d4ff00\],.ui-model-route[aria-pressed="true"],.ui-tool-mode[aria-pressed="true"],button[style*="background:var(--color-action-primary)"],button[style*="background: var(--color-action-primary)"]) span{color:inherit!important}
html[data-theme="dark"] .workspace-page #page-content .ml-featured>.material-symbols-outlined:first-child{color:var(--color-accent)!important}
html[data-theme="dark"] #lsp-avatar-letter{color:var(--color-action-primary-text)!important}
@media(max-width:720px){
 .info-page :is(.ui-timeline,.ann-timeline)::before{left:6px}
 .info-page :is(.ui-tl-item,.ann-tl-item){display:grid;grid-template-columns:16px minmax(0,1fr);gap:12px;margin-bottom:32px}
 .info-page :is(.ui-tl-meta,.ann-tl-meta){grid-column:2;grid-row:1;width:auto;padding:0;text-align:left}
 .info-page :is(.ui-tl-node,.ann-tl-node){grid-column:1;grid-row:1 / 3;width:14px}
 .info-page :is(.ui-tl-dot,.ann-tl-dot){left:0}
 .info-page :is(.ui-tl-content,.ann-tl-content){grid-column:2;grid-row:2;margin-left:0;min-width:0}
 .info-page :is(.ui-tl-content,.ann-tl-content) .flex-1{min-width:0}
 .info-page :is(.ui-tl-content,.ann-tl-content) .justify-between{flex-wrap:wrap}
 .info-page :is(.ui-tl-content,.ann-tl-content) .px-6{padding-left:16px;padding-right:16px}
 .info-page :is(.ui-tl-content,.ann-tl-content) .gap-5{gap:12px}
 .info-page :is(.ui-tl-content,.ann-tl-content) h2{font-size:20px}
}
