/* This attribute scopes every override; removing it restores existing themes. */
:root[data-glass] { --glass-tint: #112333; --glass-edge: #dcecff35; }
:root[data-glass][data-theme="paper"] { --glass-tint: #fcfaf5; --glass-edge: #ffffffb5; }
:root[data-glass] body {
  background: radial-gradient(ellipse at 15% 20%, #366f8180, transparent 48%), radial-gradient(ellipse at 80% 65%, #9c75575c, transparent 50%), radial-gradient(ellipse at 55% 100%, #384b9366, transparent 50%), var(--bg);
  background-attachment: fixed;
}
:root[data-glass] :is(.topbar, .global-rail, .preview-footer, .workbench-top, .chapters-panel, .manager-panel, .outline-card, .chapter-plan-card, .planning-outline, .resource-card, .library-action-dock, .creation-dock, .sc-library, .sc-top, .sc-status, .sc-footer, .sc-node, .sc-floating-tools, .preview-dialog, .sc-editor, .ai-panel, .ai-card) {
  background: linear-gradient(125deg, #ffffff0b, transparent 55%), color-mix(in srgb, var(--glass-tint) var(--glass-opacity), transparent);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(135%);
  backdrop-filter: blur(var(--glass-blur)) saturate(135%);
  border-color: var(--glass-edge);
  box-shadow: inset 0 1px 0 #ffffff12, 0 8px 28px #0000000a;
}
:root[data-glass] .preview-shell:not(.environment-active) .manuscript-panel {
  background: color-mix(in srgb, var(--glass-tint) var(--glass-opacity), transparent);
  backdrop-filter: blur(var(--glass-blur));
}
:root[data-glass] :is(.library-mode-button, .sc-editor-column, .manager-context, .chat-compose) { background: #ffffff05; border-color: var(--glass-edge); }
:root[data-glass] .sc-stage { background-color: transparent; }
/* Library cards and their action bars use the same live glass controls. */
:root[data-glass] :is(.grid-mode .book-display, .book-actions) {
  background: color-mix(in srgb, var(--glass-tint) var(--glass-opacity), transparent);
  -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(135%);
  backdrop-filter: blur(var(--glass-blur)) saturate(135%);
  border-color: var(--glass-edge);
}
.glass-controls { position: fixed; z-index: 100; top: 82px; right: 24px; width: min(310px, calc(100vw - 28px)); max-height: calc(100dvh - 100px); overflow-y: auto; padding: 18px; border: 1px solid var(--line); border-radius: 14px; background: var(--surface); color: var(--text); box-shadow: var(--shadow); }
.glass-controls header { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: 18px; }
.glass-controls header strong { font-size: 17px; font-weight: 500; }
.glass-controls small { font-size: 11px; color: var(--muted); }
.glass-controls header small { display: block; margin-top: 4px; }
.glass-controls button { color: var(--muted); background: transparent; border: 1px solid var(--line); border-radius: 7px; padding: 6px 10px; }
.glass-controls header button { border: 0; font-size: 24px; padding: 0 6px; line-height: 1; }
.glass-enable { display: flex; align-items: center; justify-content: space-between; font-size: 13px; }
.glass-enable input { width: 32px; height: 20px; accent-color: var(--accent); }
.glass-presets { display: flex; gap: 6px; margin: 18px 0 22px; }
.glass-presets button { flex: 1; font-size: 12px; padding-inline: 6px; }
.glass-presets [aria-pressed="true"] { border-color: var(--accent); color: var(--accent); background: var(--accent-wash); }
.glass-range { display: block; margin: 20px 0; font-size: 13px; }
.glass-range output { float: right; color: var(--accent); }
.glass-range input { display: block; padding: 0; height: 24px; margin: 10px 0 3px; accent-color: var(--accent); cursor: pointer; }
.glass-range small { display: flex; justify-content: space-between; }
.glass-controls footer { border-top: 1px solid var(--line); padding-top: 14px; display: flex; flex-direction: column; align-items: flex-start; gap: 9px; }
.glass-controls footer button { font-size: 12px; }
.glass-entry { white-space: nowrap; }
.glass-group { border: 1px solid var(--line); border-radius: 9px; margin: 0 0 10px; overflow: clip; }
.glass-group summary { position: relative; cursor: pointer; padding: 12px 28px 12px 12px; list-style: none; }
.glass-group summary::-webkit-details-marker { display: none; }
.glass-group summary::after { content: '＋'; position: absolute; top: 16px; right: 10px; color: var(--muted); }
.glass-group[open] summary::after { content: '−'; }
.glass-group summary strong { display: block; font-size: 13px; font-weight: 500; }
.glass-group summary small { display: block; margin-top: 3px; }
.glass-group[open] summary { background: var(--accent-wash); border-bottom: 1px solid var(--line); }
.glass-group summary:focus-visible { outline: 2px solid var(--accent); outline-offset: -3px; }
.glass-group-body { padding: 14px 12px; }
.glass-group-body > button { font-size: 11px; }
.glass-group-body .glass-range { margin: 16px 0; }
.glass-controls header { position: sticky; top: -18px; z-index: 1; background: var(--surface); padding: 12px 0; margin-top: -12px; }
.glass-cover-hint { margin: 10px 0 16px; color: var(--muted); font-size: 11px; line-height: 1.7; }
.glass-solid-books { font-size: 12px; }
.page-library .book-display { opacity: var(--shelf-book-opacity, 1); }
:root[data-cover-amount] .atmosphere-main { opacity: var(--cover-clarity); }
:root[data-cover-blur] .atmosphere-main { filter: blur(var(--cover-clarity-blur)) saturate(.85); }
:root[data-cover-amount] .library-atmosphere-shade { opacity: var(--cover-clarity-shade); }
:root[data-glass] .glass-entry { color: var(--accent); border-color: var(--accent); }
@media(max-width:700px) { .glass-controls { top: 65px; right: 14px; } .top-actions .glass-entry { padding-inline: 6px; font-size: 11px; } }

.glass-readable { margin-top:12px; }
.appearance-save-actions { display:flex; flex-wrap:wrap; gap:7px; }
.glass-controls [data-appearance-save] { color:var(--accent); border-color:var(--accent); }
.appearance-save-status { margin:0; color:var(--accent); font-size:11px; line-height:1.7; }
:root[data-readable] { --muted:#c0c8cf; --faint:#aebac4; }
:root[data-readable][data-theme="paper"] { --muted:#48565f; --faint:#5b6972; }
:root[data-readable] :is(.topbar,.global-rail,.workbench-top,.manager-panel,.chapters-panel,.outline-card,.chapter-plan-card,.sc-node,.sc-editor,.sc-editor-column,.preview-dialog,.library-action-dock) { background:color-mix(in srgb,var(--surface) 94%,transparent); }
:root[data-readable] .preview-shell:not(.environment-active) .manuscript-panel { background:color-mix(in srgb,var(--paper) 94%,transparent); }
:root[data-readable] .manuscript-paper::before { opacity:max(var(--manuscript-opacity,.75),.94); }
/* The blend is inline for live styling; this optional display override leaves it intact. */
:root[data-readable] .manuscript-warp-frame { mix-blend-mode:normal !important; }
:root[data-readable] .environment-active .manuscript-paper .manuscript,
:root[data-readable] .environment-active .manuscript-paper .manuscript :is(p,h1,.manuscript-meta,.chapter-end) { color:#f1f4f6; -webkit-text-fill-color:currentColor; background-image:none; text-shadow:none; filter:none; }
