/* Adapted from wave2234/liquid-glass-recipes (MIT); see licenses/. */
/* Remove the zero-blur backdrop boundary so cards can sample the wallpaper. */
.full-page{-webkit-backdrop-filter:none;backdrop-filter:none}
body[data-material] .bubble{background-image:var(--chat-glass-shine);-webkit-backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));box-shadow:var(--chat-glass-shadow)}
#fullPage[data-material] :is(.solar-card,.study-card,.favorite-card,.favorite-content,.data-card,.solar-toc,.solar-related,.solar-text-bubble,.solar-local-drafts,.theme-section){background-image:var(--surface-shine);-webkit-backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));box-shadow:var(--surface-shadow)}
/* Paint the sidebar wallpaper once, then blur the backdrop once on the veil. */
.drawer{-webkit-backdrop-filter:none;backdrop-filter:none}.drawer:before{filter:none}
.drawer[data-material]:after{background-image:var(--sidebar-shine);-webkit-backdrop-filter:blur(var(--sidebar-blur)) saturate(var(--sidebar-saturation));backdrop-filter:blur(var(--sidebar-blur)) saturate(var(--sidebar-saturation));box-shadow:var(--sidebar-shadow)}
#sheet[data-popup-material]:not(.action-panel){background-image:var(--popup-shine);-webkit-backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));box-shadow:var(--popup-shadow)}
#sheet.action-panel[data-menu-material]{background-image:var(--menu-shine);-webkit-backdrop-filter:blur(var(--menu-blur)) saturate(var(--menu-saturation));backdrop-filter:blur(var(--menu-blur)) saturate(var(--menu-saturation));box-shadow:var(--menu-shadow)}
#toast[data-material]{background-image:var(--toast-shine);-webkit-backdrop-filter:blur(var(--toast-blur)) saturate(var(--toast-saturation));backdrop-filter:blur(var(--toast-blur)) saturate(var(--toast-saturation));box-shadow:var(--toast-shadow)}
:is(.floating-controls,.page-header) .glass.circle,.footer .composer-input-surface,.footer .composer>.glass{background-image:var(--chat-glass-shine);-webkit-backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));box-shadow:var(--chat-glass-shadow)}
/* Tiny touch response uses brightness rather than transform, preserving button centering. */
:is(.floating-controls,.page-header) .glass.circle,.footer .composer>.glass{transition:box-shadow .22s ease,background-color .22s ease}
:is(.floating-controls,.page-header) .glass.circle:active,.footer .composer>.glass:active{box-shadow:inset 0 1px 4px #00000018,inset 0 1px 0 #ffffff55}
/* Only small control surfaces opt into SVG refraction. No lists, text panels or photos. */
@supports ((backdrop-filter:url("#havenGlassLens")) or (-webkit-backdrop-filter:url("#havenGlassLens"))){
 body[data-glass-refraction=on][data-material=liquid] .floating-controls .glass.circle,
 body[data-glass-refraction=on] #fullPage[data-material=liquid] .page-header .glass.circle,
 body[data-glass-refraction=on][data-material=liquid] .footer .composer-input-surface,
 body[data-glass-refraction=on][data-material=liquid] .footer .composer>.glass,
 .theme-preview[data-refraction=on] .theme-preview-lens[data-material=liquid]{-webkit-backdrop-filter:url("#havenGlassLens") blur(2px) saturate(1.5)!important;backdrop-filter:url("#havenGlassLens") blur(2px) saturate(1.5)!important}
}
.theme-preview-controls{padding:10px 0;background:repeating-linear-gradient(115deg,#acbfb533 0 3px,transparent 3px 18px);display:flex;justify-content:center}.theme-preview-lens{display:block;border:1px solid #ffffff66;border-radius:18px;padding:9px 12px;font-size:11px;max-width:95%}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.footer .composer-input-surface,.floating-controls .glass.circle,.page-header .glass.circle{background-color:rgba(var(--other,245,246,239),.92)}#fullPage[data-material] :is(.solar-card,.solar-text-bubble,.theme-section){background-color:rgba(var(--surface-rgb),.94)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){body.night .footer .composer-input-surface,body.night .floating-controls .glass.circle,body.night .page-header .glass.circle{background-color:#202821eb}}
@media(prefers-reduced-motion:reduce){:is(.floating-controls,.page-header) .glass.circle,.footer .composer>.glass{transition:none}}

/* All full-page glass containers share the area's material, including form wrappers. */
#fullPage[data-material] .glass:not(.circle),#fullPage[data-material] :is(.solar-text-bubble,.solar-local-drafts,.solar-toc,.solar-related,.favorite-content){background-color:rgba(var(--surface-rgb),var(--surface-alpha));background-image:var(--surface-shine);border-color:rgba(var(--surface-rgb),.55);color:var(--surface-ink);-webkit-backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));box-shadow:var(--surface-shadow)}
#fullPage .theme-savebar{padding:16px;border:1px solid rgba(var(--surface-rgb),.55);border-radius:20px;margin:12px 0}
#fullPage .field :is(input:not([type=color]):not([type=range]):not([type=checkbox]):not([type=file]),textarea,select){background-color:rgba(var(--surface-rgb),calc(var(--surface-alpha)*.24));border-color:rgba(var(--surface-rgb),.5);border-color:color-mix(in srgb,var(--surface-ink) 25%,transparent);color:inherit}
#fullPage .field :is(input,textarea)::placeholder{color:inherit;opacity:.55}
#sheet .card,#sheet .glass{background-color:rgba(var(--popup-rgb),calc(var(--popup-alpha)*.3));color:inherit;border-color:color-mix(in srgb,var(--popup-ink) 18%,transparent)}
.pet-room-menu{background-color:rgba(var(--popup-rgb),var(--popup-alpha));background-image:var(--popup-shine);color:var(--popup-ink);-webkit-backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));box-shadow:var(--popup-shadow);border-color:rgba(var(--popup-rgb),.55)}
.music-float{-webkit-backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));backdrop-filter:blur(var(--popup-blur)) saturate(var(--popup-saturation));box-shadow:var(--popup-shadow)}
.footer .composer-panel{background-color:rgba(var(--other),var(--alpha));background-image:var(--chat-glass-shine);-webkit-backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));backdrop-filter:blur(var(--chat-glass-blur)) saturate(var(--chat-glass-saturation));box-shadow:var(--chat-glass-shadow)}

#fullPage[data-material] .page-header .glass.circle{background-color:rgba(var(--surface-rgb),var(--surface-alpha));background-image:var(--surface-shine);color:var(--surface-ink);-webkit-backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));backdrop-filter:blur(var(--surface-blur)) saturate(var(--surface-saturation));box-shadow:var(--surface-shadow)}

/* A little translucency remains, while wallpaper detail stays behind the text. */
body .footer .composer-input-surface{background-color:rgba(var(--other,245,246,239),.90);-webkit-backdrop-filter:blur(20px) saturate(1.12);backdrop-filter:blur(20px) saturate(1.12)}
body.night .footer .composer-input-surface{background-color:rgba(27,33,29,.90);background-color:color-mix(in srgb,rgba(var(--other,245,246,239),.90) 14%,rgba(23,27,25,.90))}
