/* Existing Danchu glass + typography are intentional brand constraints.
   The book uses a readable index/definition spread, not a heavy page-flip scene. */
#page-profile .profile-extras{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:flex-end;margin-top:28px;padding-top:20px;border-top:1px solid #ba9cd726}
#page-profile .profile-extras .profile-crew-block{flex:0 1 auto;margin:0;padding:0;border:0;min-width:0}
#page-profile .profile-extras #profileCrews{flex-wrap:nowrap}
#page-profile .profile-extras .crew-trigger{flex:none}
/* The crew controls are 44px high. A 40px book control sits on their centre line. */
.meme-book-open{display:inline-flex;flex:none;align-items:center;justify-content:center;gap:8px;width:max-content;min-width:136px;min-height:40px;box-sizing:border-box;margin:0 0 2px;padding:9px 12px;border:1px solid #c5b0d640;border-radius:12px;background:linear-gradient(155deg,#e7d8f61a,#bca6d006 52%,#bca6d00e);box-shadow:inset 0 1px #fff2,inset 0 -1px #0002,0 2px 4px #00000012;color:#e8e1ef;text-align:center;font:500 13px/20px var(--font-ui);transition:background-color 160ms,border-color 160ms;cursor:pointer}
.meme-book-open>svg{width:18px;height:18px;fill:none;stroke:#c8acdf;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;flex:none}.meme-book-open span{white-space:nowrap}
@media(hover:hover) and (pointer:fine){.meme-book-open:hover{border-color:#cfafe378;background-color:#ac83cc12}}
html[data-theme=light] #page-profile .profile-extras{border-color:#8b709f40}
@media(min-width:1051px) and (max-height:780px){#page-profile .profile-extras{margin-top:24px;padding-top:18px}}
@media(pointer:coarse){.meme-book-open{min-height:44px;margin-bottom:0}}
.meme-book,.meme-admin-body{--book-ink:#eee9f5;--book-muted:#b3a8c2;--book-line:#c2a5db30;--book-paper:#25232c;--book-well:#1d1c24;--book-accent:#d5b6ee;--book-field:#ffffff05;--book-selected:#baa0d122;color:var(--book-ink);font:400 14px/1.6 var(--font-ui)}
.meme-book{width:min(1000px,calc(100vw - 48px));height:min(690px,calc(100dvh - 64px));max-width:none;max-height:none;padding:0;border:1px solid #c4aad35c;border-radius:22px;background:linear-gradient(135deg,#b6a0d111,transparent 46%),var(--book-paper);box-shadow:inset 0 1px #f9edff38,0 24px 100px #0006;overflow:hidden;margin:auto}
.meme-book[open]{display:grid;grid-template-rows:auto minmax(0,1fr) auto}.meme-book::backdrop{background:#08090d9c;backdrop-filter:blur(8px)}
.meme-book button,.meme-admin-body button{font:500 13px/1.4 var(--font-ui);color:var(--book-ink);cursor:pointer}.meme-book button:disabled,.meme-admin-body button:disabled{opacity:.4;cursor:default}
.meme-book svg,.meme-admin-body svg{fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.meme-book .meme-icon-button{display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--book-line);border-radius:50%;background:transparent;flex:none}.meme-icon-button svg{width:20px;height:20px}
.meme-book-tools{display:flex;gap:16px;align-items:center;padding:22px 28px}.meme-book-tools>[data-count]{white-space:nowrap;font-size:12px;color:var(--book-muted);font-variant-numeric:tabular-nums}
.meme-search{display:flex;align-items:center;gap:10px;min-width:0;background:var(--book-field);border:1px solid var(--book-line);border-radius:10px;height:44px;padding:0 13px;flex:1}.meme-search svg{width:18px;height:18px;flex:none;color:var(--book-muted)}.meme-book .meme-search input,#memeBookAdmin .meme-search input{width:100%;min-width:0;margin:0;border:0!important;padding:0!important;outline:none;background:none!important;color:var(--book-ink);font:400 13px/1.5 var(--font-ui);height:42px;min-height:0;border-radius:0}.meme-search:focus-within{outline:2px solid var(--book-accent);outline-offset:2px}.meme-search input::placeholder{color:var(--book-muted);opacity:.9}
/* 1000px spread: 300px index + one flexible reading page; a single shared divider. */
.meme-book-pages{display:grid;grid-template-columns:300px minmax(0,1fr);min-height:0;border-block:1px solid var(--book-line)}
.meme-index{display:grid;grid-template-rows:minmax(0,1fr) auto;min-height:0;background:var(--book-well);padding:14px 12px 8px;border-right:1px solid var(--book-line)}
.meme-list{overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#ae91c65c transparent;overscroll-behavior:contain}.meme-book .meme-word,.meme-admin-body .meme-word{display:flex;align-items:center;width:100%;min-height:47px;gap:12px;padding:10px 12px;text-align:left;border:0;border-radius:7px;background:transparent;color:var(--book-muted);font-weight:400}.meme-word>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.meme-word-number{font-size:11px;min-width:22px;font-variant-numeric:tabular-nums;opacity:.7}.meme-word svg{width:13px;height:13px;flex:none;margin-left:auto;opacity:0}.meme-book .meme-word[aria-pressed=true],.meme-admin-body .meme-word[aria-pressed=true]{color:var(--book-ink);background:var(--book-selected)}.meme-word[aria-pressed=true] svg{opacity:1}.meme-word:hover{color:var(--book-ink);background-color:var(--book-field)}
.meme-reading-page{display:flex;min-width:0;min-height:0;flex-direction:column;background:linear-gradient(90deg,#00000016,transparent 18px)}.meme-detail{padding:34px 38px;overflow:auto;min-height:0;scrollbar-width:thin;scrollbar-color:#ae91c65c transparent;overscroll-behavior:contain}.meme-book .meme-detail h3{font:400 34px/1.5 var(--font-display);letter-spacing:-.035em;overflow-wrap:anywhere;color:var(--book-ink);margin:0 0 24px;outline:none}.meme-definition-label{display:block;font-size:12px;font-weight:500;color:var(--book-accent);margin-bottom:10px}.meme-definition{font-size:15px;line-height:1.95;margin:0;white-space:pre-wrap;overflow-wrap:anywhere;word-break:normal}.meme-detail-empty{font-size:14px;color:var(--book-muted);margin:0;line-height:1.8}
.meme-empty{padding:24px 14px;color:var(--book-muted)}.meme-empty strong{display:block;font-size:14px;font-weight:500;color:var(--book-ink)}.meme-empty p{font-size:12px;line-height:1.8;margin:7px 0 0}
.meme-pager{display:flex;align-items:center;justify-content:center;gap:16px;padding-top:8px;color:var(--book-muted);font-size:12px;font-variant-numeric:tabular-nums}.meme-pager button{display:grid;place-items:center;border:0;border-radius:8px;background:transparent;width:40px;height:40px}.meme-pager svg{width:15px;height:15px}.meme-pager [data-prev] svg{rotate:180deg}.meme-pager button:hover{background:var(--book-field)}
.meme-book-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:8px 30px;color:var(--book-muted);font-size:12px}.meme-book-foot p{margin:0}.meme-book .meme-retry{border:0;background:none;padding:7px 0;font-size:12px;color:var(--book-muted);white-space:nowrap}.meme-book .meme-back{display:none}
.meme-book button:focus-visible,.meme-book-open:focus-visible,.meme-admin-body button:focus-visible{outline:2px solid var(--book-accent,#d5b6ee);outline-offset:2px}.meme-book .meme-word:focus-visible,.meme-admin-body .meme-word:focus-visible{outline-offset:-2px}
#memeBookAdmin{margin-top:28px}.meme-admin-body{padding-top:12px}.meme-admin-intro{font-size:13px!important;line-height:1.8;color:var(--book-muted)}.meme-admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:20px 0 16px}.meme-admin-toolbar .meme-search{flex-basis:260px}.meme-admin-toolbar>[data-count]{font-size:12px;color:var(--book-muted);margin-right:auto}
.meme-admin-body button:not(.meme-word){min-height:40px;padding:8px 14px;border:1px solid var(--book-line);border-radius:8px;background:var(--book-field)}.meme-admin-layout{display:grid;grid-template-columns:minmax(180px,1fr) minmax(240px,1.7fr);gap:28px}.meme-admin-index{min-height:230px;display:grid;grid-template-rows:minmax(0,1fr) auto;max-height:480px;min-width:0;border:1px solid var(--book-line);border-radius:10px;padding:8px;background:var(--book-well)}.meme-admin-form{min-width:0}.meme-admin-form h3{font-size:16px;margin:0 0 16px;font-weight:500;color:var(--book-ink)}
#memeBookAdmin .meme-admin-form label{display:block;font:500 13px/1.6 var(--font-ui)!important;color:var(--book-ink)!important;margin:14px 0 7px}#memeBookAdmin .meme-admin-form input,#memeBookAdmin .meme-admin-form textarea{display:block;width:100%;border:1px solid var(--book-line);border-radius:8px;background:var(--book-field);color:var(--book-ink);font:400 14px/1.7 var(--font-ui);padding:10px 12px;box-sizing:border-box;resize:vertical}#memeBookAdmin .meme-admin-form input:focus,#memeBookAdmin .meme-admin-form textarea:focus{outline:2px solid var(--book-accent);outline-offset:2px}
.meme-field-help{font-size:11px!important;color:var(--book-muted);margin:8px 0 16px}.meme-admin-actions{display:flex;gap:8px}.meme-admin-body .meme-save{color:var(--book-ink);background:var(--book-selected);border-color:var(--book-accent)}.meme-admin-status{font-size:13px!important;color:var(--book-muted);min-height:22px;margin:14px 0 0}.meme-confirm{margin-top:14px;padding:14px;border:1px solid var(--book-line);border-radius:10px;background:var(--book-well)}.meme-confirm p{font-size:13px!important;color:var(--book-ink);margin:0 0 10px}.meme-confirm button{margin-right:8px}
html[data-theme=light] .meme-book,html[data-theme=light] .meme-admin-body{--book-ink:#342b41;--book-muted:#70637e;--book-line:#69517f30;--book-paper:#fcfaff;--book-well:#f0ebf6;--book-accent:#75518c;--book-field:#ffffffa6;--book-selected:#ad8ac126}
html[data-theme=light] .meme-book{border-color:#a892bb70;box-shadow:inset 0 1px #fff,0 24px 90px #34203e30;background:linear-gradient(135deg,#c1a7dc13,transparent 46%),var(--book-paper)}html[data-theme=light] .meme-book::backdrop{background:#3028395c}html[data-theme=light] .meme-reading-page{background:linear-gradient(90deg,#69517f09,transparent 18px)}html[data-theme=light] .meme-book-open{color:#493752;border-color:#aa94b83d;background:linear-gradient(155deg,#ffffffa3,#ffffff24 52%,#d5c6e329);box-shadow:inset 0 1px #fffe,inset 0 -1px #9076a112,0 2px 4px #4e3c6010}html[data-theme=light] .meme-book-open>svg{stroke:#806093}
@media(hover:hover) and (pointer:fine){html[data-theme=light] .meme-book-open:hover{border-color:#a98abb78;background-color:#fff6}}
@media(max-width:900px){.meme-book-pages{grid-template-columns:250px minmax(0,1fr)}.meme-detail{padding:28px}.meme-admin-layout{gap:18px;grid-template-columns:minmax(160px,1fr) minmax(220px,1.5fr)}}
@media(max-width:640px){.meme-book{width:calc(100vw - 24px);height:calc(100dvh - 28px);border-radius:17px}.meme-book-tools{padding:16px;gap:10px;flex-wrap:wrap}.meme-book-tools .meme-search{flex-basis:calc(100% - 54px);order:0}.meme-book-tools .meme-icon-button{order:1}.meme-book-tools>[data-count]{order:2;flex-basis:100%}.meme-book-tools>[data-count]{font-size:11px}.meme-book .meme-search input,#memeBookAdmin .meme-search input{font-size:16px}.meme-book-pages{display:block;position:relative}.meme-index{height:100%;border-right:0;padding:10px 12px}.meme-reading-page{display:none;height:100%;background:none}.meme-reading .meme-index{display:none}.meme-reading .meme-reading-page{display:flex}.meme-book .meme-back{display:flex;align-items:center;gap:5px;border:0;background:none;padding:14px 20px;min-height:44px;flex:none;color:var(--book-muted)}.meme-back svg{width:15px;height:15px;rotate:180deg}.meme-detail{padding:8px 24px 24px}.meme-book .meme-detail h3{font-size:30px;margin-bottom:22px}.meme-definition{font-size:15px}.meme-book-foot{padding-inline:20px}.meme-book .meme-word{min-height:50px;font-size:14px}.meme-pager button{width:44px;height:44px}.meme-admin-layout{grid-template-columns:1fr}.meme-admin-index{max-height:260px;min-height:180px}.meme-admin-form{border-top:1px solid var(--book-line);padding-top:20px}.meme-admin-body button:not(.meme-word){min-height:44px}.meme-admin-toolbar .meme-search{flex-basis:100%}}
@media(prefers-reduced-motion:reduce){.meme-book-open{transition:none}}
/* The surrounding search field owns the focus ring; avoid the legacy input glow. */
.meme-book .meme-search input,#memeBookAdmin .meme-search input{box-shadow:none!important}
.meme-book .meme-definition{font-weight:400}
