/* The theme attribute survives Turbo body changes and is set before first paint. */
.fr-navigation-focus:focus{outline:0!important;box-shadow:none!important}
html[data-theme="light"]:root{color-scheme:light;--bg:#f6f3fb;--surface:#fff;--surface-2:#eee7f7;--glass:rgba(76,38,110,.045);--glass-2:rgba(76,38,110,.09);--text:#281b38;--muted:#655a76;--lavender:#6941a5;--lavender-soft:rgba(105,65,165,.1);--cover:#e6d9f4;--border:rgba(59,32,87,.15);--border-strong:rgba(59,32,87,.28);--link:#65359b;--button:#63349a;--button-hover:#4c227c;--button-text:#fff;--focus:#7042a5;--danger:#b42346;--gold:#846000;--panel:#fff;--primary:#7042a5;--soft:#44364f}
.theme-toggle{flex:none;white-space:nowrap;font:600 .78rem/1.4 system-ui,sans-serif!important;padding:8px 12px!important;border:1px solid var(--border)!important;background:var(--glass,rgba(181,140,255,.08))!important;color:var(--text)!important;border-radius:999px!important;min-height:36px}
.theme-toggle[hidden]{display:none!important}
html[data-theme="light"] :is(a.button,a.button:hover){color:var(--button-text)}
html[data-theme="light"] body{color:var(--text);background:var(--bg)}
html[data-theme="light"] a{color:var(--link)}
html[data-theme="light"] a:hover{color:#47206f}
html[data-theme="light"] :is(.site-header,.section-head,.site-footer){background:var(--surface);color:var(--text)}
html[data-theme="light"] :is(.site-header .brand,.main-nav a,.main-nav a.on,.main-nav a:hover,.nav-icon,.nav-icon:hover,.side-nav a,.side-nav a:hover,.section-tabs a,.section-tabs a:hover){color:var(--text)}
html[data-theme="light"] :is(input,select,textarea){color:var(--text)!important;background:var(--surface)!important;border-color:var(--border-strong)!important}
html[data-theme="light"] select option{color:var(--text);background:var(--surface)}
html[data-theme="light"] :is(.section-tabs a.on,.side-nav a.on,.nav-icon.on){background:var(--button);color:var(--button-text)}
html[data-theme="light"] :is(.nav-menu,.me-menu,.nav-popover,.dropdown-menu){background:var(--surface);color:var(--text);border-color:var(--border);box-shadow:0 12px 40px rgba(45,20,70,.12)}
html[data-theme="light"] :is(.me-menu,.nav-popover,.dropdown-menu) a{color:var(--text)}
html[data-theme="light"] :is(.admin-sidebar,.admin-topbar){background:rgba(255,255,255,.92)}
html[data-theme="light"] .admin-workspace{background:var(--bg)}
html[data-theme="light"] :is(.admin-card,.admin-section,.admin-form-panel,.admin-table-wrap,.admin-permission-group,.admin-stat){background:var(--surface)}
html[data-theme="light"] :is(.admin-nav-link.active,.admin-workspace-tabs a.active){color:#4b2378;background:rgba(105,65,165,.09)}
html[data-theme="light"] :is(.admin-brand,.admin-account,.admin-nav-link){color:var(--text)}
html[data-theme="light"] :is(.admin-account-avatar,.admin-badge,.admin-pill,.admin-permission-group code){color:#60378e}
html[data-theme="light"] :is(button,.admin-button){color:var(--button-text);background:var(--button);border-color:var(--button)}
html[data-theme="light"] :is(button:hover,.admin-button:hover){color:var(--button-text);background:var(--button-hover)}
html[data-theme="light"] .admin-tab-close{color:var(--muted);background:transparent;border:0}
html[data-theme="light"] .admin-info{color:#285675;background:#eaf3fa;border-color:#b7d1e5}
html[data-theme="light"] :is(.admin-notice,.admin-pill.success){color:#21633b;background:#e9f7ee;border-color:#b5dcc3}
html[data-theme="light"] .admin-page-footer{color:var(--muted)}
html[data-theme="light"] :is(.side-nav a,.edit-story,.rank-genres a,.nm-foot a,.me-menu a){color:var(--text)}
html[data-theme="light"] :is(.pf-tabs a.on,.bk-tabs a.on,.edit-tab.on,.note-filter.on,.write-step.on,.write-add.on,.rank-genres strong){background:var(--button)!important;color:var(--button-text)!important;border-color:var(--button)!important}
html[data-theme="light"] :is(#topsearch .ts-warn-grid label,#topsearch details.ts-more>summary){color:var(--text)}
@media(max-width:760px){.theme-toggle{padding:7px 9px!important;font-size:.72rem!important}}

/* Shared notifications stay above both the public site and admin workspace. */
.fr-toast-region{position:fixed;z-index:10000;left:50%;bottom:max(20px,env(safe-area-inset-bottom));display:grid;gap:10px;width:min(560px,calc(100vw - 28px));transform:translateX(-50%);pointer-events:none}
.fr-toast{--toast-accent:#7dffbc;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:14px;padding:14px 14px 14px 17px;border:1px solid color-mix(in srgb,var(--toast-accent) 28%,transparent);border-left:3px solid var(--toast-accent);border-radius:12px;background:color-mix(in srgb,var(--panel,#15101d) 94%,transparent);color:var(--text,#fff);box-shadow:0 16px 45px rgba(0,0,0,.32);font:500 .88rem/1.45 Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;opacity:0;transform:translateY(14px) scale(.98);transition:opacity .18s ease,transform .18s ease;pointer-events:auto;overflow-wrap:anywhere;backdrop-filter:blur(14px)}
.fr-toast--visible{opacity:1;transform:none}.fr-toast--leaving{opacity:0;transform:translateY(8px) scale(.98)}
.fr-toast--info{--toast-accent:#75c7ff}.fr-toast--warning{--toast-accent:#f7c85e}.fr-toast--error{--toast-accent:#ff7794}
.fr-toast__content{display:grid;min-width:0}.fr-toast__message{display:block}
body .fr-toast__close{display:grid;place-items:center;width:28px;min-width:28px;height:28px;min-height:28px;margin:-5px -5px 0 0;padding:0!important;border:0!important;border-radius:7px!important;background:transparent!important;color:var(--muted,#aaa)!important;box-shadow:none!important;font:400 1.25rem/1 system-ui!important}
body .fr-toast__close:hover{background:rgba(255,255,255,.08)!important;color:var(--text,#fff)!important}
html[data-theme="light"] .fr-toast{background:rgba(255,255,255,.96);box-shadow:0 16px 45px rgba(45,20,70,.18)}
html[data-theme="light"] body .fr-toast__close:hover{background:rgba(59,32,87,.08)!important}

/* Public notifications follow the compact card layout used across Fiction Realm. */
.fr-toast-region:has(.fr-toast--public){width:min(440px,calc(100vw - 28px));gap:16px}
.fr-toast--public{grid-template-columns:20px minmax(0,1fr) 28px;align-items:start;gap:12px;min-height:72px;padding:16px 15px 14px 18px;border:1px solid color-mix(in srgb,var(--primary,#b58cff) 18%,transparent);border-left-width:1px;border-radius:14px;background:color-mix(in srgb,var(--panel,#15101d) 92%,var(--primary,#b58cff) 8%);box-shadow:0 18px 48px rgba(0,0,0,.36);backdrop-filter:blur(18px)}
.fr-toast--public .fr-toast__icon{display:grid;place-items:center;width:16px;height:16px;margin-top:1px;border:1.5px solid var(--toast-accent);border-radius:50%;color:var(--toast-accent);font:700 11px/1 system-ui,sans-serif}
.fr-toast--public.fr-toast--success .fr-toast__icon{font-size:10px}.fr-toast--public.fr-toast--error .fr-toast__icon{font-size:13px;font-weight:500}
.fr-toast--public .fr-toast__message{color:var(--text,#fff);font-size:.9rem;font-weight:700;line-height:1.35}
.fr-toast--public .fr-toast__time{display:block;margin-top:5px;color:var(--muted,#aaa);font-size:.67rem;font-weight:500;line-height:1.35}
.fr-toast--public .fr-toast__close{margin:-5px -4px 0 0!important;color:color-mix(in srgb,var(--text,#fff) 58%,transparent)!important}
html[data-theme="light"] .fr-toast--public{background:color-mix(in srgb,var(--surface,#fff) 94%,var(--primary,#7042a5) 6%);border-color:color-mix(in srgb,var(--primary,#7042a5) 18%,transparent)}
@media(max-width:600px){.fr-toast-region{bottom:max(12px,env(safe-area-inset-bottom));width:calc(100vw - 20px)}.fr-toast-region:has(.fr-toast--public){width:calc(100vw - 20px);gap:10px}.fr-toast{padding:13px 12px 13px 14px}.fr-toast--public{min-height:68px;padding:15px 13px 13px 15px}}
@media(prefers-reduced-motion:reduce){.fr-toast{transition:none}}

/* Reusable public-side modal. */
.fr-modal{width:min(640px,calc(100vw - 32px));max-height:min(780px,calc(100dvh - 32px));padding:0;border:1px solid color-mix(in srgb,var(--lavender,#d6c4ff) 28%,transparent);border-radius:var(--radius,22px);background:radial-gradient(circle at 92% 0,color-mix(in srgb,var(--lavender,#d6c4ff) 13%,transparent),transparent 38%),color-mix(in srgb,var(--surface,#28103f) 96%,#000 4%);color:var(--text,#fff);box-shadow:0 32px 110px rgba(8,0,15,.62),0 0 0 1px rgba(255,255,255,.025) inset;overflow:hidden}
.fr-modal[open]{animation:fr-modal-in .18s ease-out}
.fr-modal::backdrop{background:rgba(14,1,25,.78);backdrop-filter:blur(7px) saturate(.85)}
.fr-modal__panel{display:grid;grid-template-rows:auto minmax(0,1fr);max-height:min(780px,calc(100dvh - 32px))}
.fr-modal__header{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 24px;border-bottom:1px solid var(--border,rgba(255,255,255,.12));background:linear-gradient(135deg,color-mix(in srgb,var(--glass,rgba(255,255,255,.06)) 90%,transparent),transparent)}
.fr-modal__header:before{content:"";position:absolute;top:0;left:24px;right:24px;height:1px;background:linear-gradient(90deg,transparent,var(--lavender,#d6c4ff),transparent);opacity:.45}
.fr-modal__header h2{margin:0;font-size:1.25rem;line-height:1.25;letter-spacing:-.015em}
body .fr-modal__close{display:grid;place-items:center;flex:none;width:38px;min-width:38px;height:38px;min-height:38px;margin:0;padding:0!important;border:1px solid var(--border,rgba(255,255,255,.12))!important;border-radius:12px!important;background:var(--glass,rgba(255,255,255,.05))!important;color:var(--muted,#aaa)!important;box-shadow:none!important;font:400 1.55rem/1 system-ui!important}
body .fr-modal__close:hover{border-color:var(--border-strong,rgba(255,255,255,.22))!important;background:var(--glass-2,rgba(255,255,255,.1))!important;color:var(--text,#fff)!important}
.fr-modal__body{padding:24px 26px 26px;overflow:auto;scrollbar-color:var(--border-strong) transparent}.fr-modal__form{display:grid;gap:16px;margin:0}.fr-modal__form>label{display:grid;gap:7px;font-weight:700}.fr-modal__reasons legend{font-weight:700}
.fr-modal__form :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%}.fr-modal__form textarea{box-sizing:border-box;resize:vertical}.fr-modal__hint{margin:0;padding:13px 15px;border:1px solid var(--border,rgba(255,255,255,.12));border-radius:var(--radius-small,14px);background:var(--glass,rgba(255,255,255,.045));color:var(--muted,#aaa);font-size:.92rem}
.user-picker{background:#10141f;position:absolute;z-index:80;top:calc(100% + 23px);left:0;width:min(420px,100%);max-height:300px;overflow:auto;padding:6px;border:1px solid var(--line,#7f6985);border-radius:12px;background:#10141f;box-shadow:0 16px 38px rgba(25,8,31,.2)}.user-picker__option{display:flex!important;align-items:center;gap:10px;width:100%;min-height:52px!important;padding:7px 9px!important;border:0!important;border-radius:8px!important;background:#10141f!important;color:inherit!important;text-align:left}.user-picker__option:hover,.user-picker__option.active{background:#1c1529!important}.user-picker__avatar{display:grid;place-items:center;flex:none;width:36px;height:36px;overflow:hidden;border-radius:50%;background:var(--accent-soft,#eadcf0);font-size:.72rem;font-weight:800}.user-picker__avatar img{width:100%;height:100%;object-fit:cover}.user-picker__option>span:last-child{display:grid}.user-picker__option small{color:var(--muted,#777)}
.book-picker-form{display:flex;align-items:end;gap:10px;max-width:680px}.book-picker-form>label{flex:1}.book-picker-form input[data-book-picker]{width:100%}.book-picker{position:absolute;z-index:80;top:calc(100% + 8px);left:0;width:min(520px,calc(100vw - 32px));max-height:340px;overflow:auto;padding:7px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:14px;background:var(--panel,#1b0b29);box-shadow:0 18px 44px rgba(8,0,15,.4)}.book-picker__option{display:flex!important;align-items:center;gap:11px;width:100%;min-height:62px!important;padding:8px 9px!important;border:0!important;border-radius:10px!important;background:transparent!important;color:var(--text,#fff)!important;text-align:left}.book-picker__option:hover{background:var(--glass-2,rgba(255,255,255,.09))!important}.book-picker__cover{display:grid;place-items:center;flex:none;width:34px;height:48px;overflow:hidden;border-radius:3px;background:var(--cover,var(--surface-2,#321650));color:var(--lavender,#d6c4ff);font-weight:800}.book-picker__cover img{width:100%;height:100%;object-fit:cover}.book-picker__option>span:last-child{display:grid;min-width:0}.book-picker__option strong,.book-picker__option small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.book-picker__option small,.book-picker>p{color:var(--muted,#aaa);font-size:.72rem}.book-picker>p{padding:8px}
.fr-modal__reasons{display:grid;gap:4px;margin:0;padding:0;border:0;background:transparent!important}.fr-modal__reasons legend{margin-bottom:9px}.fr-modal__reasons label{display:flex;align-items:flex-start;gap:9px;margin:0;padding:7px 3px;border-radius:10px;font-weight:400}.fr-modal__reasons label:hover{background:var(--glass,rgba(255,255,255,.04))}.fr-modal__reasons input{margin-top:.2em}
.fr-modal__actions{display:flex;justify-content:flex-end;gap:10px;margin-top:4px;padding-top:16px;border-top:1px solid var(--border,rgba(255,255,255,.1))}.fr-modal__actions button{min-width:120px}
html[data-theme="light"] .fr-modal{background:radial-gradient(circle at 92% 0,rgba(105,65,165,.1),transparent 38%),var(--surface,#fff);box-shadow:0 32px 100px rgba(45,20,70,.3)}
html[data-theme="light"] body .fr-modal__close:hover{background:rgba(59,32,87,.08)!important}
@keyframes fr-modal-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
@media(max-width:600px){.fr-modal{width:calc(100vw - 14px);max-height:calc(100dvh - 14px);border-radius:18px}.fr-modal__panel{max-height:calc(100dvh - 14px)}.fr-modal__header{padding:17px 18px}.fr-modal__header:before{left:18px;right:18px}.fr-modal__header h2{font-size:1.12rem}.fr-modal__body{padding:18px}.fr-modal__form{gap:14px}.fr-modal__actions{flex-direction:column-reverse}.fr-modal__actions button{width:100%}}
@media(prefers-reduced-motion:reduce){.fr-modal[open]{animation:none}.fr-modal::backdrop{backdrop-filter:none}}

/* Flattened Ocean Desk layout using public Fiction Realm colors. */
.create-book-workspace{display:grid;grid-template-columns:300px minmax(0,1fr);gap:32px;align-items:start;width:min(1180px,100%);margin:0 auto;color:var(--text,#fff)}
.create-book-library-shell{min-width:0;padding:10px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:var(--radius,22px);background:color-mix(in srgb,var(--bg,#1a0129) 82%,transparent);box-shadow:0 18px 48px rgba(8,0,15,.22),inset 0 1px 0 rgba(255,255,255,.035);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.create-book-editor{min-width:0;background:transparent}.create-book-title{margin:0 0 18px;color:var(--text,#fff);font-size:1.65rem}.create-book-editor>form{padding:0}
.create-book-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin:0 0 12px;padding:0 0 12px;border-bottom:1px solid var(--border,rgba(255,255,255,.14));background:transparent}.create-book-steps button{display:flex;gap:7px;min-width:0;min-height:42px;padding:8px!important;border:1px solid transparent!important;border-radius:var(--radius-small,14px)!important;background:transparent!important;color:var(--muted,#aaa)!important;font-size:.72rem!important}.create-book-steps button span{display:grid;place-items:center;flex:none;width:21px;height:21px;border:1px solid currentColor;border-radius:50%;font-size:.65rem}.create-book-steps button.on{border-color:var(--border-strong,var(--border))!important;background:var(--glass-2,rgba(255,255,255,.1))!important;color:var(--text,#fff)!important}.create-book-steps button.done:not(.on){color:var(--lavender,#d6c4ff)!important}.create-book-steps button:disabled{opacity:.42}
.create-book-save-state{display:inline-block;margin:0 12px 20px 0;color:var(--muted,#aaa);font-size:.75rem}.create-book-error{margin:0 0 16px;color:var(--danger,#ff8ca0)}.create-book-workspace form>fieldset.edit-part{max-width:none;margin:0;padding:0;border:0;background:transparent;box-shadow:none}.create-book-workspace form>fieldset.edit-part[hidden]{display:none!important}.create-book-workspace form>fieldset.edit-part>legend{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.create-book-discard{min-height:30px!important;padding:4px 10px!important;font-size:.7rem!important}
.create-book-actions{position:sticky;z-index:2;bottom:0;display:flex;align-items:center;gap:10px;margin:24px 0 0;padding:17px 0;border-top:1px solid var(--border,rgba(255,255,255,.14));background:color-mix(in srgb,var(--bg,#1a0129) 94%,transparent);backdrop-filter:blur(16px)}.create-book-actions span{flex:1}.create-book-actions button[hidden]{display:none!important}
.create-book-library{min-width:0;background:transparent}.create-book-library>header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 0 16px}.create-book-library h2{margin:0;color:var(--text,#fff);font-size:1.25rem}.create-book-library header p{margin:3px 0 0;color:var(--muted,#aaa);font-size:.72rem}.create-book-library header>span{display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:var(--lavender-soft,rgba(214,196,255,.14));color:var(--lavender,#d6c4ff);font-size:.72rem}.create-book-library-list{max-height:660px;overflow:auto;}.create-book-library-list>a{display:flex;align-items:center;gap:12px;min-height:68px;padding:9px 9px;color:var(--text,#fff);text-decoration:none;border-radius: 13px;}.create-book-library-list>a:hover{background:var(--glass,rgba(255,255,255,.06))}.create-book-library-cover{display:grid;place-items:center;flex:none;width:34px;height:48px;overflow:hidden;border-radius:2px 5px 5px 2px;background:var(--cover,var(--surface-2,#321650));color:var(--lavender,#d6c4ff);font-weight:700}.create-book-library-cover img{width:100%;height:100%;object-fit:cover}.create-book-library-list a>span:nth-child(2){min-width:0;flex:1}.create-book-library-list strong,.create-book-library-list small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.create-book-library-list strong{font-size:.76rem}.create-book-library-list small{margin-top:3px;color:var(--muted,#aaa);font-size:.65rem}.create-book-library-list i{width:6px;height:6px;border-radius:50%;background:var(--lavender,#d6c4ff)}.create-book-library-empty{padding:20px 4px;color:var(--muted,#aaa)!important;font-size:.78rem}.create-book-library footer{display:flex;justify-content:space-between;padding:12px 4px;color:var(--muted,#aaa);font-size:.65rem}
.create-book-library-state{flex:none;padding:4px 7px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:999px;font-size:.56rem;font-style:normal;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.create-book-library-state.published{background:var(--lavender-soft,rgba(214,196,255,.14));color:var(--lavender,#d6c4ff)}.create-book-library-state.draft{background:color-mix(in srgb,var(--warning,#ffc66d) 14%,transparent);color:var(--warning,#ffc66d)}
.tag-picker-control{display:grid;gap:8px;margin-top:7px}.tag-picker-selected,.tag-picker-menu{display:flex;flex-wrap:wrap;gap:6px}.create-book-workspace .tag-chip,.create-book-workspace .tag-picker-menu button{min-height:28px;padding:4px 9px!important;border-radius:8px!important;font-size:.68rem!important}.create-book-workspace .tag-chip{background:var(--lavender-soft,rgba(214,196,255,.14))!important;color:var(--lavender,#d6c4ff)!important}.create-book-workspace .tag-picker-menu button{background:var(--glass,rgba(255,255,255,.06))!important;color:var(--text,#fff)!important;border-color:var(--border,rgba(255,255,255,.14))!important}
.quick-search{position:relative}.quick-results{position:absolute;z-index:1000;top:calc(100% + 10px);left:0;right:0;min-width:min(367px, calc(100vw - 47px));max-height:520px;overflow:auto;padding:8px;border:1px solid var(--border,rgba(255,255,255,.14));border-radius:14px;background:var(--panel,#1b0b29);box-shadow:0 20px 50px rgba(0,0,0,.38)}.quick-results a{display:flex;align-items:center;gap:11px;padding:9px;border-radius:9px;color:var(--text,#fff)}.quick-results a:hover,.quick-results a[aria-selected=true]{background:var(--glass-2,rgba(255,255,255,.09))}.quick-results a>span:nth-child(2){min-width:0;flex:1}.quick-results strong,.quick-results small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.quick-results small{color:var(--muted,#aaa);font-size:.7rem}.quick-results em{color:var(--muted,#aaa);font-size:.62rem;font-style:normal;text-transform:uppercase}.quick-results p{margin:8px;color:var(--muted,#aaa);font-size:.76rem}.qr-avatar,.qr-cover{display:grid;place-items:center;flex:none;overflow:hidden;background:var(--glass-2,rgba(255,255,255,.09));font-weight:700}.qr-avatar{width:38px;height:38px;border-radius:50%}.qr-cover{width:30px;height:42px;border-radius:3px}.qr-avatar img,.qr-cover img{width:100%;height:100%;object-fit:cover}
@media(max-width:900px){.create-book-workspace{grid-template-columns:1fr;gap:32px}.create-book-editor{order:1}.create-book-library-shell{order:2}.create-book-library-list{max-height:340px}}
@media(max-width:700px){.create-book-steps{display:flex;overflow-x:auto;padding-bottom:10px}.create-book-steps button{flex:0 0 auto}.create-book-actions{margin-top:18px;padding:12px 0}}
