.rs-bookshelf-v2{max-width:1440px;margin:0 auto;padding:28px 20px 64px}.bookshelf-kicker,.bookshelf-eyebrow{margin:0 0 6px;letter-spacing:.14em;font-size:.69rem;font-weight:750;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-profile{display:flex;justify-content:space-between;gap:28px;align-items:center;padding:22px;border:1px solid var(--rs-border,#26313b);border-radius:18px;background:linear-gradient(135deg,var(--rs-surface,#11171c),var(--rs-surface-raised,#182129))}.bookshelf-profile-main{display:flex;gap:18px;align-items:center;min-width:0}.bookshelf-avatar-placeholder{display:grid;place-items:center;flex:0 0 82px;width:82px;height:82px;border-radius:50%;font-size:2rem;font-weight:750;border:1px solid var(--rs-border,#26313b);background:var(--rs-surface-raised,#182129)}.bookshelf-profile-copy{min-width:0}.bookshelf-profile h1{margin:0;font-size:clamp(1.65rem,3vw,2.35rem)}.bookshelf-profile-tagline{margin:4px 0;color:var(--rs-text-secondary,#c3d2e3);font-size:1rem}.bookshelf-about-placeholder{margin:7px 0 0;color:var(--rs-text-muted,#9fb1c2);font-size:.84rem}.bookshelf-profile-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.bookshelf-share,.bookshelf-apply{min-height:40px;padding:0 14px;border:1px solid var(--rs-border,#344554);border-radius:9px;background:var(--rs-surface-raised,#182129);color:inherit;font:inherit;cursor:pointer}.bookshelf-share:hover,.bookshelf-apply:hover{border-color:#6e8aa3}.bookshelf-owner-chip{padding:6px 9px;border-radius:999px;background:var(--rs-surface,#11171c);font-size:.76rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-nav{display:flex;gap:5px;overflow-x:auto;margin:14px 0 0;padding:5px;border-bottom:1px solid var(--rs-border,#26313b)}.bookshelf-nav a,.bookshelf-nav-future{white-space:nowrap;padding:9px 11px;border-radius:8px;text-decoration:none;color:inherit;font-size:.86rem}.bookshelf-nav a:hover,.bookshelf-nav a:focus-visible,.bookshelf-nav a.is-active{background:var(--rs-surface-raised,#182129)}.bookshelf-nav-future{opacity:.42;cursor:default}
.bookshelf-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:22px 0 8px}.bookshelf-metrics a{display:flex;flex-direction:column;gap:3px;padding:16px;border:1px solid var(--rs-border,#26313b);border-radius:12px;text-decoration:none;color:inherit;background:var(--rs-surface,#11171c);transition:transform .12s ease,border-color .12s ease}.bookshelf-metrics a:hover{transform:translateY(-1px);border-color:#4c6174}.bookshelf-metrics strong{font-size:1.45rem}.bookshelf-metrics span{font-size:.78rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-section{margin-top:34px}.bookshelf-section-head,.bookshelf-browser-heading{display:flex;justify-content:space-between;align-items:end;gap:16px;margin-bottom:13px}.bookshelf-section-head h2,.bookshelf-browser-heading h2{margin:0}.bookshelf-section-head>a{font-size:.82rem;text-decoration:none}.bookshelf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bookshelf-grid-featured .bookshelf-book-card{background:linear-gradient(135deg,var(--rs-surface,#11171c),var(--rs-surface-raised,#182129))}.bookshelf-book-card{display:grid;grid-template-columns:74px minmax(0,1fr);gap:13px;min-height:128px;padding:11px;border:1px solid var(--rs-border,#26313b);border-radius:12px;background:var(--rs-surface,#11171c);transition:border-color .12s ease,transform .12s ease}.bookshelf-book-card:hover{border-color:#43586b;transform:translateY(-1px)}.bookshelf-cover{width:74px;height:106px;display:block}.bookshelf-cover img{width:100%;height:100%;object-fit:cover;border-radius:6px}.bookshelf-book-copy{min-width:0}.bookshelf-book-copy h3{font-size:.95rem;margin:3px 0 5px;line-height:1.3}.bookshelf-book-copy h3 a{text-decoration:none;color:inherit}.bookshelf-author,.bookshelf-meta{font-size:.78rem;margin:3px 0;color:var(--rs-text-muted,#9fb1c2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookshelf-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.bookshelf-tags>span{font-size:.72rem;padding:3px 6px;border-radius:999px;background:var(--rs-surface-raised,#182129)}.bookshelf-tags .rs-rating{padding:3px 6px;border-radius:999px;background:var(--rs-surface-raised,#182129)}
.bookshelf-insight-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.bookshelf-insight-grid article{min-height:128px;padding:18px;border:1px solid var(--rs-border,#26313b);border-radius:14px;background:var(--rs-surface,#11171c)}.bookshelf-insight-grid strong{display:block;font-size:1.8rem}.bookshelf-insight-grid span{font-size:.82rem;color:var(--rs-text-secondary,#c3d2e3)}.bookshelf-insight-grid p{margin:12px 0 0;font-size:.78rem;line-height:1.45;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-insight-placeholder{border-style:dashed!important}.bookshelf-insight-mark{display:block!important;font-size:1.45rem!important;margin-bottom:7px;color:#8fb7e8!important}
.bookshelf-result-count{margin:.25rem 0 0;color:var(--rs-text-muted,#9fb1c2);font-size:.82rem}.bookshelf-browser-controls{display:grid;grid-template-columns:minmax(220px,1fr) 170px 170px auto auto;align-items:end;gap:10px;margin:0 0 18px;padding:12px;border:1px solid var(--rs-border,#26313b);border-radius:12px;background:var(--rs-surface,#11171c)}.bookshelf-view-switch{display:flex;align-items:center;margin:0;padding:0;border:0}.bookshelf-view-switch legend{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.bookshelf-view-option{display:inline-flex;align-items:center;min-height:40px;padding:0 11px;border:1px solid var(--rs-border,#26313b);cursor:pointer;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-view-option input{position:absolute;opacity:0}.bookshelf-view-option:first-of-type{border-radius:8px 0 0 8px}.bookshelf-view-option:last-of-type{margin-left:-1px;border-radius:0 8px 8px 0}.bookshelf-view-option.is-active{background:var(--rs-surface-raised,#182129);color:inherit;border-color:#526474}.bookshelf-empty{padding:44px 20px;text-align:center;border:1px dashed var(--rs-border,#26313b);border-radius:14px}.bookshelf-empty h3{margin-top:0}.bookshelf-empty p{color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-list{display:grid;border-top:1px solid var(--rs-border,#26313b)}.bookshelf-list-row{display:grid;grid-template-columns:42px minmax(220px,2fr) minmax(140px,1fr) 70px 150px;gap:14px;align-items:center;min-height:66px;padding:8px 10px;border-bottom:1px solid var(--rs-border,#26313b)}.bookshelf-list-row:hover{background:var(--rs-surface,#11171c)}.bookshelf-list-cover{width:36px;height:50px;display:block}.bookshelf-list-cover img{display:block;width:100%;height:100%;object-fit:cover;border-radius:4px}.bookshelf-list-main{min-width:0}.bookshelf-list-main h3{margin:0;font-size:.9rem}.bookshelf-list-main h3 a{text-decoration:none;color:inherit}.bookshelf-list-main p,.bookshelf-list-author,.bookshelf-list-year{margin:3px 0 0;color:var(--rs-text-muted,#9fb1c2);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookshelf-list-rating{justify-self:start}
.bookshelf-guest .bookshelf-hero p:not(.bookshelf-kicker){max-width:720px}.bookshelf-guest-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.25rem}.bookshelf-guest-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1.25rem}.bookshelf-guest-features>section{padding:1rem;border:1px solid var(--rs-border,#26313b);border-radius:12px}.bookshelf-guest-features h2{margin-top:0;font-size:1rem}
@media(max-width:1050px){.bookshelf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-browser-controls{grid-template-columns:1fr 1fr 1fr}.bookshelf-search-field{grid-column:1/-1}.bookshelf-insight-grid{grid-template-columns:1fr 1fr}.bookshelf-insight-placeholder{grid-column:1/-1}}
@media(max-width:720px){.rs-bookshelf-v2{padding-inline:12px}.bookshelf-profile{align-items:flex-start;flex-direction:column}.bookshelf-profile-actions{width:100%}.bookshelf-metrics{grid-template-columns:repeat(2,1fr)}.bookshelf-grid{grid-template-columns:1fr}.bookshelf-browser-controls{grid-template-columns:1fr 1fr}.bookshelf-search-field{grid-column:1/-1}.bookshelf-view-switch{grid-column:1}.bookshelf-insight-grid{grid-template-columns:1fr}.bookshelf-insight-placeholder{grid-column:auto}.bookshelf-list-row{grid-template-columns:42px minmax(0,1fr) auto;gap:10px}.bookshelf-list-author{grid-column:2}.bookshelf-list-year{grid-column:3;grid-row:1}.bookshelf-list-rating{grid-column:3;grid-row:2}.bookshelf-list-main{grid-column:2;grid-row:1}.bookshelf-list-cover{grid-row:1/3}.bookshelf-guest-features{grid-template-columns:1fr}}
@media(max-width:480px){.bookshelf-avatar-placeholder{width:64px;height:64px;flex-basis:64px}.bookshelf-browser-controls{grid-template-columns:1fr}.bookshelf-search-field,.bookshelf-view-switch{grid-column:auto}.bookshelf-list-author{display:none}}

/* 0.6 product-stage composition */
.bookshelf-section-head>div>p:not(.bookshelf-eyebrow){margin:.3rem 0 0;max-width:680px;color:var(--rs-text-muted,#9fb1c2);font-size:.82rem;line-height:1.45}.bookshelf-nav-future small{margin-left:4px;font-size:.62rem;opacity:.75}.bookshelf-zero-state{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:24px;padding:32px;border:1px solid var(--rs-border,#26313b);border-radius:16px;background:linear-gradient(135deg,var(--rs-surface,#11171c),var(--rs-surface-raised,#182129))}.bookshelf-zero-state h2{margin:.1rem 0 .5rem}.bookshelf-zero-state p:last-child{max-width:650px;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-primary-action{display:inline-flex;align-items:center;min-height:42px;padding:0 16px;border-radius:9px;background:var(--rs-text-primary,#eef4f8);color:var(--rs-surface,#11171c);text-decoration:none;font-weight:700;white-space:nowrap}
.bookshelf-identity-layout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:12px}.bookshelf-signature-placeholder{display:flex;gap:18px;align-items:flex-start;min-height:190px;padding:24px;border:1px dashed #40566a;border-radius:16px;background:linear-gradient(135deg,var(--rs-surface,#11171c),rgba(40,57,72,.32))}.bookshelf-signature-mark{display:grid;place-items:center;flex:0 0 52px;width:52px;height:52px;border-radius:50%;background:var(--rs-surface-raised,#182129);font-size:1.5rem;color:#9bc3ef}.bookshelf-signature-placeholder span{font-size:.72rem;letter-spacing:.11em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-signature-placeholder h3{margin:.25rem 0 .5rem;font-size:1.45rem}.bookshelf-signature-placeholder p{max-width:610px;margin:0;color:var(--rs-text-muted,#9fb1c2);line-height:1.55;font-size:.84rem}.bookshelf-collection-map{padding:18px;border:1px solid var(--rs-border,#26313b);border-radius:16px;background:var(--rs-surface,#11171c)}.bookshelf-collection-map h3{margin:0 0 12px;font-size:.9rem}.bookshelf-collection-map a{display:grid;grid-template-columns:92px minmax(70px,1fr) 40px;gap:10px;align-items:center;padding:7px 0;color:inherit;text-decoration:none;font-size:.75rem}.bookshelf-collection-map a>span{color:var(--rs-text-secondary,#c3d2e3)}.bookshelf-collection-map i{height:5px;border-radius:99px;overflow:hidden;background:var(--rs-surface-raised,#182129)}.bookshelf-collection-map i b{display:block;height:100%;min-width:2px;border-radius:inherit;background:currentColor;opacity:.65}.bookshelf-collection-map strong{text-align:right;font-variant-numeric:tabular-nums}
.bookshelf-explore-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bookshelf-explore-grid>a,.bookshelf-explore-future{display:grid;grid-template-columns:1fr auto;gap:5px 12px;min-height:112px;padding:17px;border:1px solid var(--rs-border,#26313b);border-radius:13px;background:var(--rs-surface,#11171c);color:inherit;text-decoration:none}.bookshelf-explore-grid>a:hover{border-color:#526a80;transform:translateY(-1px)}.bookshelf-explore-grid span{font-size:.82rem;color:var(--rs-text-secondary,#c3d2e3)}.bookshelf-explore-grid strong{font-size:1.35rem}.bookshelf-explore-grid small{grid-column:1/-1;align-self:end;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-explore-future{opacity:.52;border-style:dashed}
.bookshelf-browser-heading{align-items:flex-start}.bookshelf-back-overview{margin-top:20px;color:var(--rs-text-muted,#9fb1c2);text-decoration:none;font-size:.8rem}.bookshelf-browser-controls{grid-template-columns:minmax(220px,1.4fr) 155px 145px 145px 145px auto auto}.bookshelf-active-filters{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin:-7px 0 16px;font-size:.74rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-active-filters b{padding:4px 8px;border-radius:999px;background:var(--rs-surface-raised,#182129);color:var(--rs-text-secondary,#c3d2e3);font-weight:600}.bookshelf-active-filters a{margin-left:auto}.bookshelf-showcase .bookshelf-book-card{background:linear-gradient(145deg,var(--rs-surface,#11171c),rgba(40,57,72,.28))}
@media(max-width:1280px){.bookshelf-browser-controls{grid-template-columns:repeat(4,minmax(0,1fr))}.bookshelf-search-field{grid-column:1/-1}}
@media(max-width:900px){.bookshelf-identity-layout{grid-template-columns:1fr}.bookshelf-explore-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bookshelf-zero-state{align-items:flex-start;flex-direction:column}.bookshelf-explore-grid{grid-template-columns:1fr 1fr}.bookshelf-browser-controls{grid-template-columns:1fr 1fr}.bookshelf-search-field{grid-column:1/-1}}
@media(max-width:480px){.bookshelf-signature-placeholder{flex-direction:column}.bookshelf-explore-grid{grid-template-columns:1fr}.bookshelf-browser-controls{grid-template-columns:1fr}.bookshelf-search-field{grid-column:auto}.bookshelf-active-filters a{margin-left:0}}

/* 0.7 complete-library discovery */
.bookshelf-library-entry{display:grid;grid-template-columns:minmax(250px,.9fr) minmax(320px,1.35fr) 150px;gap:22px;align-items:end;margin-top:24px;padding:22px;border:1px solid var(--rs-border,#26313b);border-radius:16px;background:linear-gradient(135deg,var(--rs-surface,#11171c),rgba(40,57,72,.22))}.bookshelf-library-entry h2{margin:.1rem 0 .35rem;font-size:1.2rem}.bookshelf-library-entry p:not(.bookshelf-eyebrow){margin:0;color:var(--rs-text-muted,#9fb1c2);font-size:.8rem;line-height:1.45}.bookshelf-global-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.bookshelf-global-search label{min-width:0}.bookshelf-global-search .rs-input{width:100%;min-height:42px}.bookshelf-all-books-link{display:grid;grid-template-columns:auto 1fr;gap:0 7px;align-items:baseline;padding:10px 12px;border-left:1px solid var(--rs-border,#26313b);color:inherit;text-decoration:none}.bookshelf-all-books-link strong{font-size:1.35rem;font-variant-numeric:tabular-nums}.bookshelf-all-books-link span{font-size:.74rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-all-books-link small{grid-column:1/-1;margin-top:4px;color:var(--rs-text-secondary,#c3d2e3)}.bookshelf-explore-all{background:linear-gradient(145deg,var(--rs-surface,#11171c),rgba(55,78,99,.32))!important;border-color:#40566a!important}.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
@media(max-width:900px){.bookshelf-library-entry{grid-template-columns:1fr}.bookshelf-all-books-link{border-left:0;border-top:1px solid var(--rs-border,#26313b);padding-left:0;padding-top:14px}}
@media(max-width:480px){.bookshelf-global-search{grid-template-columns:1fr}.bookshelf-global-search .bookshelf-apply{width:100%}}

/* 0.8 personal reading identity */
.bookshelf-reading-flow{margin-top:28px}.bookshelf-flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.bookshelf-flow-card{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) auto;grid-template-rows:auto 1fr;gap:6px 12px;min-height:102px;padding:14px;border:1px solid var(--rs-border,#26313b);border-radius:14px;background:var(--rs-surface,#11171c);color:inherit;text-decoration:none}.bookshelf-flow-card:hover{border-color:#526a80;transform:translateY(-1px)}.bookshelf-flow-card.is-current{background:linear-gradient(145deg,var(--rs-surface,#11171c),rgba(55,78,99,.34));border-color:#40566a}.bookshelf-flow-label{grid-column:1/-1;font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-flow-cover{width:52px;height:72px}.bookshelf-flow-cover img{width:100%;height:100%;object-fit:cover;border-radius:5px}.bookshelf-flow-copy{align-self:center;min-width:0}.bookshelf-flow-copy strong,.bookshelf-flow-copy small{display:block}.bookshelf-flow-copy strong{font-size:.88rem;line-height:1.3}.bookshelf-flow-copy small{margin-top:4px;color:var(--rs-text-muted,#9fb1c2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bookshelf-flow-arrow{align-self:center;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-flow-empty{grid-column:1/3;align-self:center;color:var(--rs-text-muted,#9fb1c2);font-size:.8rem}
.bookshelf-about-page{max-width:1120px;margin-inline:auto}.bookshelf-about-lead{display:grid;grid-template-columns:110px minmax(0,1fr);gap:24px;align-items:center;padding:28px;border:1px solid var(--rs-border,#26313b);border-radius:18px;background:linear-gradient(135deg,var(--rs-surface,#11171c),var(--rs-surface-raised,#182129))}.bookshelf-about-avatar{display:grid;place-items:center;width:110px;height:110px;border-radius:50%;border:1px solid var(--rs-border,#26313b);background:var(--rs-surface-raised,#182129);font-size:2.5rem;font-weight:750}.bookshelf-about-lead h2{margin:.1rem 0 .5rem;font-size:1.8rem}.bookshelf-about-intro{max-width:720px;margin:0;color:var(--rs-text-secondary,#c3d2e3);line-height:1.6}.bookshelf-about-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.bookshelf-about-card{min-height:190px;padding:20px;border:1px solid var(--rs-border,#26313b);border-radius:15px;background:var(--rs-surface,#11171c)}.bookshelf-about-card-wide{grid-column:1/-1;min-height:0}.bookshelf-about-label{font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-about-card h3{margin:.35rem 0 .5rem;font-size:1.05rem}.bookshelf-about-card p{margin:.25rem 0 1rem;color:var(--rs-text-muted,#9fb1c2);font-size:.82rem;line-height:1.55}.bookshelf-about-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:14px}.bookshelf-about-stats a{display:flex;flex-direction:column;padding:13px;border-radius:10px;background:var(--rs-surface-raised,#182129);color:inherit;text-decoration:none}.bookshelf-about-stats strong{font-size:1.25rem}.bookshelf-about-stats span{margin-top:2px;font-size:.72rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-profile-placeholder{display:flex;align-items:center;min-height:54px;padding:12px;border:1px dashed #40566a;border-radius:10px;color:var(--rs-text-muted,#9fb1c2);font-size:.76rem}
@media(max-width:800px){.bookshelf-flow-grid{grid-template-columns:1fr}.bookshelf-about-grid{grid-template-columns:1fr}.bookshelf-about-card-wide{grid-column:auto}.bookshelf-about-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.bookshelf-about-lead{grid-template-columns:1fr}.bookshelf-about-avatar{width:82px;height:82px}.bookshelf-about-stats{grid-template-columns:1fr 1fr}}

/* 0.9 explicit reader profile and favorites */
.bookshelf-avatar{flex:0 0 82px;width:82px;height:82px;border-radius:50%;overflow:hidden;border:1px solid var(--rs-border,#26313b);background:var(--rs-surface-raised,#182129)}.bookshelf-avatar img,.bookshelf-about-avatar img{display:block;width:100%;height:100%;object-fit:cover}.bookshelf-profile-about{max-width:680px;margin:.45rem 0 0;color:var(--rs-text-secondary,#c3d2e3);font-size:.84rem;line-height:1.5}.bookshelf-favorites{padding:20px;border:1px solid #33495c;border-radius:17px;background:linear-gradient(145deg,rgba(32,45,57,.5),var(--rs-surface,#11171c) 48%)}.bookshelf-favorites .bookshelf-section-head p:not(.bookshelf-eyebrow){max-width:650px;margin:.35rem 0 0;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem}.bookshelf-favorite-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}.bookshelf-favorite-people>div{padding:13px 15px;border-radius:11px;background:var(--rs-surface-raised,#182129)}.bookshelf-favorite-people span{font-size:.66rem;letter-spacing:.09em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-favorite-people p{margin:.35rem 0 0;color:var(--rs-text-secondary,#c3d2e3);font-size:.8rem;line-height:1.45}.bookshelf-about-avatar{overflow:hidden;padding:0}.bookshelf-about-copy{white-space:normal}.bookshelf-about-favorite-books{margin-top:14px}.bookshelf-favorite-cloud{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.bookshelf-favorite-cloud span{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid var(--rs-border,#26313b);border-radius:999px;background:var(--rs-surface-raised,#182129);color:var(--rs-text-secondary,#c3d2e3);font-size:.76rem}
@media(max-width:700px){.bookshelf-favorite-people{grid-template-columns:1fr}.bookshelf-avatar{width:68px;height:68px;flex-basis:68px}}

/* 1.0 owner profile and settings layer */
.bookshelf-activity-identity{display:flex;gap:.45rem;align-items:center;margin:.35rem 0 .55rem;color:var(--rs-text-muted,#aab8c5);font-size:.94rem}.bookshelf-activity-identity strong{color:var(--rs-text,#e7edf3);font-weight:650}.bookshelf-settings-link{margin-left:auto}.bookshelf-inline-edit{display:inline-flex;margin-top:.8rem;font-size:.9rem;font-weight:650}.bookshelf-settings-page{max-width:980px}.bookshelf-settings-form{display:grid;gap:1rem}.bookshelf-settings-card{display:grid;grid-template-columns:minmax(210px,.7fr) minmax(0,1.3fr);gap:2rem;padding:1.35rem;border:1px solid var(--rs-border,#273845);border-radius:14px;background:var(--rs-surface,#10181e)}.bookshelf-settings-card h3{margin:.1rem 0 .4rem}.bookshelf-settings-card p{margin:.25rem 0;color:var(--rs-text-muted,#9fb0bd)}.bookshelf-about-editor{width:100%;min-height:11rem;resize:vertical;line-height:1.55}.bookshelf-choice-grid,.bookshelf-toggle-list{display:grid;gap:.65rem}.bookshelf-choice,.bookshelf-toggle-list label{display:flex;gap:.8rem;align-items:flex-start;padding:.85rem 1rem;border:1px solid var(--rs-border,#273845);border-radius:10px;background:rgba(255,255,255,.018);cursor:pointer}.bookshelf-choice input,.bookshelf-toggle-list input{margin-top:.25rem}.bookshelf-choice span,.bookshelf-toggle-list span{display:grid;gap:.15rem}.bookshelf-choice small,.bookshelf-toggle-list small{color:var(--rs-text-muted,#9fb0bd);line-height:1.4}.bookshelf-settings-actions{display:flex;align-items:center;gap:1rem;padding-top:.25rem}.bookshelf-settings-notice{padding:.85rem 1rem;margin-bottom:1rem;border:1px solid var(--rs-border,#2d4b3d);border-radius:10px;background:rgba(65,160,100,.08)}
@media(max-width:720px){.bookshelf-settings-card{grid-template-columns:1fr;gap:1rem}.bookshelf-settings-link{margin-left:0}}

/* 1.2.0 owner actions, responsive navigation and personal shelf workspace */
.bookshelf-owner-settings{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border:1px solid var(--rs-border,#344554);border-radius:9px;background:transparent;color:var(--rs-text-secondary,#c3d2e3);text-decoration:none;font-size:.84rem}.bookshelf-owner-settings:hover,.bookshelf-owner-settings:focus-visible{border-color:#6e8aa3;color:var(--rs-text-primary,#eef4f8)}
.bookshelf-nav{flex-wrap:wrap;overflow-x:visible;row-gap:4px}.bookshelf-nav a,.bookshelf-nav-future{flex:0 0 auto}
.bookshelf-custom-shelves-layout{display:grid;grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);gap:18px;margin-top:18px}.bookshelf-create-shelf-form{display:flex;align-items:end;gap:10px;margin-top:18px}.bookshelf-create-shelf-form .rs-field{flex:1}.bookshelf-custom-shelf-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-content:start}.bookshelf-custom-shelf-card{min-height:116px;padding:18px;border:1px solid var(--rs-border,#26313b);border-radius:13px;background:var(--rs-surface,#11171c)}.bookshelf-custom-shelf-card span{font-size:.67rem;letter-spacing:.08em;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-custom-shelf-card h3{margin:.35rem 0 1rem}.bookshelf-custom-shelf-card small{color:var(--rs-text-muted,#9fb1c2)}.bookshelf-notice-error{border-color:rgba(220,120,120,.45)}
@media(max-width:720px){.bookshelf-nav{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.bookshelf-nav::-webkit-scrollbar{display:none}.bookshelf-custom-shelves-layout{grid-template-columns:1fr}.bookshelf-custom-shelf-list{grid-template-columns:1fr}.bookshelf-create-shelf-form{align-items:stretch;flex-direction:column}}


/* Shared staff identity presentation. Role semantics come from Platform user capability. */
.bookshelf-identity-meta{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;margin:.35rem 0 .55rem}.bookshelf-identity-meta .bookshelf-activity-identity{margin:0}.bookshelf-staff-role{display:inline-flex;align-items:center;min-height:24px;padding:2px 9px;border:1px solid currentColor;border-radius:999px;font-size:.76rem;font-weight:700;line-height:1.2}.bookshelf-staff-role--administrator{color:#e06b6b;background:rgba(224,107,107,.08)}.bookshelf-staff-role--moderator{color:#72a7e8;background:rgba(114,167,232,.08)}.bookshelf-staff-role--librarian{color:#69bd86;background:rgba(105,189,134,.08)}

/* 1.4 Collections foundation: canonical membership counts and drill-down. */
a.bookshelf-custom-shelf-card{position:relative;display:block;color:inherit;text-decoration:none;transition:border-color .15s ease,transform .15s ease,background .15s ease}a.bookshelf-custom-shelf-card:hover,a.bookshelf-custom-shelf-card:focus-visible{border-color:#607d96;background:var(--rs-surface-raised,#182129);transform:translateY(-1px)}.bookshelf-custom-shelf-card>b{position:absolute;right:18px;bottom:15px;color:var(--rs-text-muted,#9fb1c2);font-weight:500}.bookshelf-custom-shelf-card small{display:block;padding-right:28px}

/* 1.5 UX architecture: content-first navigation and on-demand library tools. */
.bookshelf-primary-nav{gap:4px}.bookshelf-primary-nav a{font-weight:650}.bookshelf-library-nav{display:flex;gap:6px;align-items:center;margin:0 0 16px;padding:5px;border:1px solid var(--rs-border,#26313b);border-radius:11px;background:rgba(255,255,255,.018);overflow-x:auto;scrollbar-width:none}.bookshelf-library-nav::-webkit-scrollbar{display:none}.bookshelf-library-nav a{flex:0 0 auto;padding:7px 11px;border-radius:7px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem;text-decoration:none;white-space:nowrap}.bookshelf-library-nav a:hover,.bookshelf-library-nav a:focus-visible{color:var(--rs-text-primary,#eef4f8);background:rgba(255,255,255,.035)}.bookshelf-library-nav a.is-active{color:var(--rs-text-primary,#eef4f8);background:var(--rs-surface-raised,#182129);box-shadow:inset 0 0 0 1px #40566a}
.bookshelf-tools{margin:12px 0 18px;border:1px solid var(--rs-border,#26313b);border-radius:12px;background:rgba(255,255,255,.012)}.bookshelf-tools>summary{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:48px;padding:10px 14px;cursor:pointer;list-style:none}.bookshelf-tools>summary::-webkit-details-marker{display:none}.bookshelf-tools>summary:after{content:'+';flex:0 0 auto;color:var(--rs-text-muted,#9fb1c2);font-size:1.1rem}.bookshelf-tools[open]>summary:after{content:'−'}.bookshelf-tools>summary span{font-weight:700}.bookshelf-tools>summary small{margin-left:auto;color:var(--rs-text-muted,#9fb1c2);font-size:.74rem}.bookshelf-tools .bookshelf-browser-controls{margin:0;padding:14px;border:0;border-top:1px solid var(--rs-border,#26313b);border-radius:0;background:transparent}
#library-content{scroll-margin-top:18px}
@media(max-width:720px){.rs-bookshelf-v2{padding-inline:12px}.bookshelf-profile{align-items:flex-start;padding:16px;gap:14px}.bookshelf-profile-main{gap:12px}.bookshelf-profile-actions{gap:7px}.bookshelf-primary-nav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));overflow:visible}.bookshelf-primary-nav a{display:flex;justify-content:center;padding-inline:6px;font-size:.75rem;text-align:center}.bookshelf-library-nav{margin-inline:-2px;padding:4px}.bookshelf-library-nav a{padding:7px 10px}.bookshelf-browser-heading{gap:10px}.bookshelf-back-overview{display:none}.bookshelf-tools>summary{min-height:44px;padding:9px 11px}.bookshelf-tools>summary small{max-width:52%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bookshelf-tools .bookshelf-browser-controls{padding:12px}.bookshelf-section{margin-top:18px}}
@media(max-width:520px){.bookshelf-profile{display:block}.bookshelf-profile-actions{margin-top:14px}.bookshelf-profile-about{display:none}.bookshelf-primary-nav a{font-size:.7rem}.bookshelf-tools>summary small{font-size:.68rem}.bookshelf-browser-heading h2{font-size:1.35rem}.bookshelf-browser-heading{align-items:end}.bookshelf-result-count{margin-bottom:0}.bookshelf-grid{gap:10px}.bookshelf-section-head{gap:10px}.bookshelf-section-head p:not(.bookshelf-eyebrow){display:none}.bookshelf-favorites{padding:15px}}

/* 1.6 Collections UX: reveal management on demand and let book covers carry the visual weight. */
.bookshelf-create-collection{margin:16px 0 20px}.bookshelf-create-collection>summary,.bookshelf-collection-management>summary{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:0 13px;border:1px solid var(--rs-border,#344554);border-radius:9px;color:var(--rs-text-secondary,#c3d2e3);font-weight:700;cursor:pointer;list-style:none}.bookshelf-create-collection>summary::-webkit-details-marker,.bookshelf-collection-management>summary::-webkit-details-marker{display:none}.bookshelf-create-collection>summary:hover,.bookshelf-create-collection>summary:focus-visible,.bookshelf-collection-management>summary:hover,.bookshelf-collection-management>summary:focus-visible{border-color:#6e8aa3;color:var(--rs-text-primary,#eef4f8)}.bookshelf-create-collection-panel{max-width:620px;margin-top:10px;padding:14px;border:1px solid var(--rs-border,#26313b);border-radius:12px;background:var(--rs-surface,#11171c)}.bookshelf-create-collection-panel>p{margin:0 0 12px;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-create-collection-form,.bookshelf-rename-collection{display:flex;align-items:end;gap:10px}.bookshelf-create-collection-form .rs-field,.bookshelf-rename-collection .rs-field{flex:1}
.bookshelf-collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.bookshelf-collection-card{min-height:0!important;padding:0!important;overflow:hidden}.bookshelf-collection-preview{display:grid;grid-template-columns:repeat(4,1fr);height:116px;background:var(--rs-surface-raised,#182129);overflow:hidden}.bookshelf-collection-preview img,.bookshelf-collection-preview i{display:block;width:100%;height:100%;object-fit:cover;background:linear-gradient(145deg,#1b2730,#11181e)}.bookshelf-collection-copy{display:block;padding:14px 16px 16px}.bookshelf-collection-copy small{font-style:normal;font-size:.64rem;letter-spacing:.09em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-collection-copy h3{margin:.35rem 0 .55rem}.bookshelf-collection-copy em{font-style:normal;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem}.bookshelf-collection-card>b{bottom:15px}
.bookshelf-collection-management{margin:0 0 14px}.bookshelf-collection-management-panel{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-top:10px;padding:14px;border:1px solid var(--rs-border,#26313b);border-radius:12px;background:rgba(255,255,255,.012)}.bookshelf-rename-collection{flex:1;max-width:560px}.bookshelf-danger-action{min-height:40px;padding:0 13px;border:1px solid rgba(224,107,107,.55);border-radius:9px;background:transparent;color:#e58a8a;font-weight:700;cursor:pointer}.bookshelf-danger-action:hover,.bookshelf-danger-action:focus-visible{background:rgba(224,107,107,.08)}
.bookshelf-book-card,.bookshelf-list-row{position:relative}.bookshelf-remove-from-collection{position:absolute;right:7px;top:7px;z-index:2;margin:0}.bookshelf-remove-from-collection button{display:grid;place-items:center;width:28px;height:28px;padding:0;border:1px solid var(--rs-border,#40505e);border-radius:50%;background:rgba(10,15,19,.9);color:var(--rs-text-muted,#aebbc6);font-size:1rem;line-height:1;cursor:pointer}.bookshelf-remove-from-collection button:hover,.bookshelf-remove-from-collection button:focus-visible{border-color:#e58a8a;color:#f0a0a0}
@media(max-width:900px){.bookshelf-collection-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.bookshelf-collection-grid{grid-template-columns:1fr}.bookshelf-collection-preview{height:105px}.bookshelf-create-collection-form,.bookshelf-rename-collection,.bookshelf-collection-management-panel{align-items:stretch;flex-direction:column}.bookshelf-create-collection-form .bookshelf-primary-action,.bookshelf-rename-collection .bookshelf-primary-action,.bookshelf-danger-action{width:100%}.bookshelf-collection-management-panel{gap:12px}}

/* 1.7 discovery + reusable Collection membership action. */
.bookshelf-favorite-people a,.bookshelf-favorite-cloud a{color:inherit;text-decoration:none}.bookshelf-favorite-people a:hover,.bookshelf-favorite-people a:focus-visible,.bookshelf-favorite-cloud a:hover,.bookshelf-favorite-cloud a:focus-visible{color:var(--rs-link,#9ec7ef);text-decoration:underline;text-underline-offset:3px}.bookshelf-favorite-cloud a{display:inline-flex;align-items:center;min-height:38px;padding:7px 14px;border:1px solid var(--rs-border,#26313b);border-radius:999px;background:var(--rs-surface-raised,#182129)}
.bookshelf-add-to-collection{position:absolute;right:7px;top:7px;z-index:3}.bookshelf-add-to-collection>summary{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--rs-border,#40505e);border-radius:50%;background:rgba(10,15,19,.92);color:var(--rs-text-secondary,#c3d2e3);font-weight:800;cursor:pointer;list-style:none}.bookshelf-add-to-collection>summary::-webkit-details-marker{display:none}.bookshelf-add-to-collection>summary:hover,.bookshelf-add-to-collection>summary:focus-visible{border-color:#78a5c8;color:#fff}.bookshelf-add-to-collection form{position:absolute;right:0;top:34px;display:flex;align-items:end;gap:7px;width:min(330px,calc(100vw - 40px));padding:10px;border:1px solid var(--rs-border,#344554);border-radius:10px;background:var(--rs-surface-raised,#182129);box-shadow:0 12px 30px rgba(0,0,0,.3)}.bookshelf-add-to-collection label{display:grid;gap:4px;min-width:0;flex:1}.bookshelf-add-to-collection label span{font-size:.68rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-add-to-collection select{width:100%;min-height:36px;border:1px solid var(--rs-border,#40505e);border-radius:7px;background:var(--rs-surface,#11171c);color:inherit;padding:0 8px}.bookshelf-add-to-collection button{min-height:36px;padding:0 11px;border:1px solid #55738d;border-radius:7px;background:transparent;color:inherit;font-weight:700;cursor:pointer}
@media(max-width:620px){.bookshelf-add-to-collection form{position:fixed;left:12px;right:12px;top:auto;bottom:14px;width:auto;z-index:20;padding:12px}.bookshelf-favorite-cloud a{min-height:36px;padding:6px 11px}}

/* 1.8 UX coherence: persistent context, content-first About and compact discovery. */
.bookshelf-content-anchor{display:block;position:relative;scroll-margin-top:18px}
.bookshelf-about-introduction{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:4px 0 20px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-about-introduction h2{margin:.15rem 0 .6rem;font-size:1.55rem}
.bookshelf-about-introduction .bookshelf-about-intro{max-width:780px;margin:0;color:var(--rs-text-secondary,#c3d2e3);font-size:.88rem;line-height:1.65}
.bookshelf-about-introduction .bookshelf-inline-edit{flex:0 0 auto;margin-top:22px}
.bookshelf-favorite-cloud{gap:6px;margin-top:11px}
.bookshelf-favorite-cloud a{min-height:30px;padding:4px 9px;font-size:.74rem;font-weight:500;background:rgba(255,255,255,.018)}
.bookshelf-favorite-cloud a:hover,.bookshelf-favorite-cloud a:focus-visible{background:var(--rs-surface-raised,#182129);text-decoration:none}
.bookshelf-library-switcher{display:none}
@media(max-width:720px){
  .bookshelf-content-anchor{scroll-margin-top:10px}
  .bookshelf-about-introduction{display:block;padding-bottom:15px}
  .bookshelf-about-introduction .bookshelf-inline-edit{display:inline-block;margin-top:12px}
  .bookshelf-library-nav{display:none}
  .bookshelf-library-switcher{display:block;margin:0 0 14px;border:1px solid var(--rs-border,#26313b);border-radius:10px;background:rgba(255,255,255,.018)}
  .bookshelf-library-switcher>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 12px;cursor:pointer;list-style:none}
  .bookshelf-library-switcher>summary::-webkit-details-marker{display:none}
  .bookshelf-library-switcher>summary span{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}
  .bookshelf-library-switcher>summary strong{font-size:.82rem}
  .bookshelf-library-switcher>summary:after{content:'⌄';color:var(--rs-text-muted,#9fb1c2)}
  .bookshelf-library-switcher[open]>summary:after{content:'⌃'}
  .bookshelf-library-switcher nav{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;border-top:1px solid var(--rs-border,#26313b)}
  .bookshelf-library-switcher nav a{padding:9px 10px;border-radius:7px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem;text-decoration:none}
  .bookshelf-library-switcher nav a.is-active{color:var(--rs-text-primary,#eef4f8);background:var(--rs-surface-raised,#182129)}
  .bookshelf-favorite-cloud a{min-height:32px;padding:5px 9px;font-size:.72rem}
}

/* 1.8 UX coherence: persistent context, content-first About and compact discovery. */
.bookshelf-content-anchor{display:block;position:relative;scroll-margin-top:18px}
.bookshelf-about-introduction{display:flex;align-items:flex-start;justify-content:space-between;gap:28px;padding:4px 0 20px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-about-introduction h2{margin:.15rem 0 .6rem;font-size:1.55rem}
.bookshelf-about-introduction .bookshelf-about-intro{max-width:780px;margin:0;color:var(--rs-text-secondary,#c3d2e3);font-size:.88rem;line-height:1.65}
.bookshelf-about-introduction .bookshelf-inline-edit{flex:0 0 auto;margin-top:22px}
.bookshelf-favorite-cloud{gap:6px;margin-top:11px}
.bookshelf-favorite-cloud a{min-height:30px;padding:4px 9px;font-size:.74rem;font-weight:500;background:rgba(255,255,255,.018)}
.bookshelf-favorite-cloud a:hover,.bookshelf-favorite-cloud a:focus-visible{background:var(--rs-surface-raised,#182129);text-decoration:none}
.bookshelf-library-switcher{display:none}
@media(max-width:720px){
  .bookshelf-content-anchor{scroll-margin-top:10px}
  .bookshelf-about-introduction{display:block;padding-bottom:15px}
  .bookshelf-about-introduction .bookshelf-inline-edit{display:inline-block;margin-top:12px}
  .bookshelf-library-nav{display:none}
  .bookshelf-library-switcher{display:block;margin:0 0 14px;border:1px solid var(--rs-border,#26313b);border-radius:10px;background:rgba(255,255,255,.018)}
  .bookshelf-library-switcher>summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:9px 12px;cursor:pointer;list-style:none}
  .bookshelf-library-switcher>summary::-webkit-details-marker{display:none}
  .bookshelf-library-switcher>summary span{font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--rs-text-muted,#9fb1c2)}
  .bookshelf-library-switcher>summary strong{font-size:.82rem}
  .bookshelf-library-switcher>summary:after{content:'⌄';color:var(--rs-text-muted,#9fb1c2)}
  .bookshelf-library-switcher[open]>summary:after{content:'⌃'}
  .bookshelf-library-switcher nav{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:8px;border-top:1px solid var(--rs-border,#26313b)}
  .bookshelf-library-switcher nav a{padding:9px 10px;border-radius:7px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem;text-decoration:none}
  .bookshelf-library-switcher nav a.is-active{color:var(--rs-text-primary,#eef4f8);background:var(--rs-surface-raised,#182129)}
  .bookshelf-favorite-cloud a{min-height:32px;padding:5px 9px;font-size:.72rem}
}

/* 1.9: the primary navigation is the orientation frame for section changes. */
#bookshelf-nav{scroll-margin-top:10px}
@media(max-width:720px){#bookshelf-nav{scroll-margin-top:6px}}

/* 2.2 owner library management: private controls layered over the public reading experience. */
.bookshelf-owner-states{display:flex;align-items:center;gap:5px;margin-top:10px;flex-wrap:wrap}.bookshelf-owner-states form{margin:0}.bookshelf-owner-states button{display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:30px;padding:4px 8px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:12px;cursor:pointer}.bookshelf-owner-states button:hover,.bookshelf-owner-states button:focus-visible{border-color:var(--rs-border-strong);color:var(--rs-text-primary);background:var(--rs-surface-2)}.bookshelf-owner-states button.is-active{border-color:var(--rs-border-strong);background:var(--rs-surface-2);color:var(--rs-text-primary)}.bookshelf-owner-states button:focus-visible{outline:2px solid var(--rs-border-focus);outline-offset:2px}.bookshelf-owner-state-label{white-space:nowrap}
@media(max-width:720px){.bookshelf-owner-states{gap:4px}.bookshelf-owner-states button{min-width:34px;padding:4px 7px}.bookshelf-owner-state-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}}


/* 2.3 instant owner management: compact state row with progressive AJAX enhancement. */
.bookshelf-owner-states{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:9px}
.bookshelf-owner-states form{display:inline-flex;margin:0;min-width:0}
.bookshelf-owner-states button{min-height:28px;padding:3px 7px;border-radius:7px;font-size:11.5px;transition:background .12s ease,border-color .12s ease,color .12s ease,opacity .12s ease}
.bookshelf-owner-states button>span[aria-hidden="true"]{display:inline-grid;place-items:center;width:13px;font-size:12px;line-height:1}
.bookshelf-owner-states button.is-pending{opacity:.55;cursor:wait}
.bookshelf-owner-states.has-error button{border-color:#9b5b5b}
.bookshelf-book-card.is-removing,.bookshelf-list-row.is-removing{opacity:0;transform:scale(.985);transition:opacity .16s ease,transform .16s ease}
@media(max-width:720px){
  .bookshelf-owner-states{gap:4px}
  .bookshelf-owner-states button{min-width:0;min-height:30px;padding:4px 7px}
  .bookshelf-owner-state-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap;border:0}
}
@media(max-width:420px){
  .bookshelf-owner-states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
  .bookshelf-owner-states form{min-width:0}
  .bookshelf-owner-states button{width:100%;padding-inline:4px;gap:3px}
  .bookshelf-owner-state-label{overflow:hidden;text-overflow:ellipsis}
}


/* 2.4 reading-library polish: owner actions use the card width; publication state is semantic. */
.bookshelf-book-card>.bookshelf-owner-states{grid-column:1/-1;margin-top:2px;flex-wrap:nowrap}
.bookshelf-book-card>.bookshelf-owner-states form{flex:0 1 auto}
.bookshelf-publication.is-upcoming{border:1px solid color-mix(in srgb,var(--rs-border-strong,#526474) 78%,transparent);background:color-mix(in srgb,var(--rs-surface-raised,#182129) 78%,#6f8da8 22%);color:var(--rs-text-primary,#eef4f8);font-weight:650}
.bookshelf-list-year .bookshelf-publication{display:inline-flex;align-items:center;min-height:25px;padding:3px 7px;border-radius:999px;font-size:.72rem;white-space:nowrap}
@media(max-width:720px){.bookshelf-book-card>.bookshelf-owner-states{flex-wrap:wrap}}
@media(max-width:420px){.bookshelf-book-card>.bookshelf-owner-states{display:grid}}

/* 2.5 active reading: user-defined progress stays format-neutral and lightweight. */
.bookshelf-reading-progress{grid-column:1/-1;min-width:0;margin-top:7px}.bookshelf-progress-summary{display:grid;gap:5px}.bookshelf-progress-copy{display:flex;justify-content:space-between;gap:10px;color:var(--rs-text-muted,#9fb1c2);font-size:.7rem}.bookshelf-progress-copy strong{color:var(--rs-text-secondary,#c3d2e3);font-weight:650;white-space:nowrap}.bookshelf-progress-track{height:4px;overflow:hidden;border-radius:999px;background:var(--rs-surface-raised,#182129)}.bookshelf-progress-track>span{display:block;height:100%;border-radius:inherit;background:var(--rs-text-muted,#9fb1c2)}.bookshelf-progress-editor{margin-top:5px}.bookshelf-progress-editor>summary{width:max-content;list-style:none;cursor:pointer;color:var(--rs-text-muted,#9fb1c2);font-size:.7rem}.bookshelf-progress-editor>summary::-webkit-details-marker{display:none}.bookshelf-progress-editor>summary:hover,.bookshelf-progress-editor>summary:focus-visible{color:var(--rs-text-primary,#eef4f8)}.bookshelf-progress-editor form{display:flex;align-items:end;gap:6px;flex-wrap:wrap;margin-top:7px}.bookshelf-progress-editor label{display:grid;gap:3px}.bookshelf-progress-editor label span{font-size:.62rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-progress-editor input{width:72px;min-height:30px;padding:3px 6px;border:1px solid var(--rs-border,#344554);border-radius:6px;background:var(--rs-surface,#11171c);color:inherit;font:inherit;font-size:.75rem}.bookshelf-progress-separator{padding-bottom:6px;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-progress-editor button{min-height:30px;padding:3px 9px;border:1px solid var(--rs-border-strong,#526474);border-radius:6px;background:transparent;color:inherit;font:inherit;font-size:.72rem;cursor:pointer}.bookshelf-progress-editor button:disabled{opacity:.55;cursor:wait}.bookshelf-progress-error{flex-basis:100%;font-size:.68rem;color:#e9a2a2}.bookshelf-list-main .bookshelf-reading-progress{margin-top:6px}.bookshelf-list-main .bookshelf-progress-editor form{position:relative;z-index:3;width:max-content;max-width:100%}
@media(max-width:420px){.bookshelf-progress-editor input{width:64px}.bookshelf-progress-copy{font-size:.68rem}}

/* Bookshelf 2.6: reader-authored book reviews */
.bookshelf-review-count{align-self:flex-start;padding:.45rem .7rem;border:1px solid var(--rs-border,#2b3944);border-radius:999px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem}.bookshelf-review-list{display:grid;gap:14px}.bookshelf-review-card{display:grid;grid-template-columns:82px minmax(0,1fr);gap:18px;padding:18px;border:1px solid var(--rs-border,#2b3944);border-radius:18px;background:var(--rs-surface,#10181e)}.bookshelf-review-cover{display:block}.bookshelf-review-cover img{display:block;width:82px;aspect-ratio:2/3;object-fit:cover;border-radius:8px}.bookshelf-review-content{min-width:0}.bookshelf-review-book{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding-bottom:12px;border-bottom:1px solid var(--rs-border,#2b3944)}.bookshelf-review-book h3{margin:.18rem 0 .25rem;font-size:1.05rem}.bookshelf-review-book p{margin:0;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-review-text{padding-top:14px;line-height:1.7;white-space:normal}.bookshelf-review-spoiler{margin-top:12px;border:1px solid var(--rs-border,#2b3944);border-radius:10px;padding:0 12px}.bookshelf-review-spoiler summary{cursor:pointer;padding:12px 0;font-weight:650}.bookshelf-review-spoiler .bookshelf-review-text{padding:0 0 14px}.bookshelf-about-link-card{text-decoration:none;color:inherit}.bookshelf-about-big-number{display:block;margin:.55rem 0;font-size:2rem;line-height:1;color:var(--rs-text,#eef4f8)}
@media(max-width:620px){.bookshelf-review-card{grid-template-columns:58px minmax(0,1fr);gap:12px;padding:14px}.bookshelf-review-cover img{width:58px}.bookshelf-review-book{display:block}.bookshelf-review-book .rs-rating{margin-top:8px}.bookshelf-review-count{display:none}}

/* Bookshelf 2.7: review context and owner editing */
.bookshelf-review-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:9px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem}.bookshelf-review-meta .rs-rating{margin:0}.bookshelf-review-edit-trigger{flex:0 0 auto;padding:.42rem .7rem;border:1px solid var(--rs-border,#2b3944);border-radius:9px;background:transparent;color:var(--rs-text-muted,#9fb1c2);font:inherit;font-size:.78rem;cursor:pointer}.bookshelf-review-edit-trigger:hover{color:var(--rs-text,#eef4f8);border-color:var(--rs-border-strong,#425463)}.bookshelf-review-editor{display:grid;gap:12px;padding-top:14px}.bookshelf-review-editor[hidden]{display:none}.bookshelf-review-editor label>span:first-child{display:block;margin-bottom:6px;color:var(--rs-text-muted,#9fb1c2);font-size:.78rem}.bookshelf-review-editor textarea{width:100%;min-height:150px;resize:vertical}.bookshelf-review-spoiler-option{display:flex!important;align-items:center;gap:8px}.bookshelf-review-spoiler-option span{margin:0!important}.bookshelf-review-editor-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.bookshelf-inline-error{color:var(--rs-danger,#e9a3a3);font-size:.78rem}
@media(max-width:620px){.bookshelf-review-book{position:relative}.bookshelf-review-edit-trigger{margin-top:10px}.bookshelf-review-meta{gap:7px 10px}.bookshelf-review-editor-actions .bookshelf-primary-action,.bookshelf-review-editor-actions .bookshelf-secondary-action{width:auto}}

/* Bookshelf 2.8: review browsing and resilient owner editing */
.bookshelf-review-sort{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:0 0 16px}.bookshelf-review-sort label{display:grid;gap:5px}.bookshelf-review-sort label>span{font-size:.72rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-review-sort select{min-width:150px}.bookshelf-review-sort .bookshelf-secondary-action{min-height:40px}.bookshelf-review-edit-trigger[hidden],.bookshelf-review-editor[hidden],[data-review-display][hidden]{display:none!important}
@media(max-width:620px){.bookshelf-review-sort{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.bookshelf-review-sort label,.bookshelf-review-sort select{min-width:0;width:100%}.bookshelf-review-sort .bookshelf-secondary-action{grid-column:1/-1;width:100%}}

/* Bookshelf 2.9: reviews use the same progressive list-tools pattern as Library. */
.bookshelf-review-tools{margin-bottom:18px}.bookshelf-review-controls{grid-template-columns:minmax(180px,1fr) minmax(180px,1fr) auto}.bookshelf-review-controls .bookshelf-apply{align-self:end}
@media(max-width:720px){.bookshelf-review-controls{grid-template-columns:1fr 1fr}.bookshelf-review-controls .bookshelf-apply{grid-column:1/-1;width:100%}}
@media(max-width:480px){.bookshelf-review-controls{grid-template-columns:1fr}}
.bookshelf-review-edit-trigger{display:inline-flex;align-items:center;justify-content:center;text-decoration:none}


.bookshelf-classifications{display:flex;flex-wrap:wrap;gap:.32rem;margin:.34rem 0 0;line-height:1}
.bookshelf-list-main .bookshelf-classifications{margin-top:.28rem}


/* 3.2.0: compact classification + publication metadata hierarchy. */
.bookshelf-card-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:7px}
.bookshelf-card-metadata .bookshelf-classifications{display:contents}
.bookshelf-card-metadata .rs-genre,.bookshelf-card-metadata .bookshelf-publication{display:inline-flex;align-items:center;min-height:1.25rem;padding:3px 6px;border-radius:7px;font-size:.68rem;line-height:1;white-space:nowrap}
.bookshelf-card-metadata .rs-genre{font-weight:600;letter-spacing:0}
.bookshelf-card-metadata .bookshelf-publication.is-published{background:var(--rs-surface-raised,#182129)}
.bookshelf-card-metadata .bookshelf-publication.is-upcoming{font-weight:650}
.bookshelf-rating-row{margin-top:6px}

/* 3.3.0: review explorer and unified compact metadata geometry. */
.bookshelf-review-controls{grid-template-columns:minmax(16rem,2fr) repeat(3,minmax(10rem,1fr));align-items:end}
.bookshelf-review-search{grid-column:auto}
@media (max-width:900px){.bookshelf-review-controls{grid-template-columns:1fr 1fr}.bookshelf-review-search{grid-column:1/-1}}
@media (max-width:620px){.bookshelf-review-controls{grid-template-columns:1fr}.bookshelf-review-search{grid-column:auto}}

/* 3.4.0: one semantic book-metadata presentation across standard and compact cards. */
.bookshelf-card-metadata{display:flex;align-items:center;flex-wrap:wrap;gap:.34rem;margin-top:.42rem}
.bookshelf-card-metadata.is-compact{gap:.28rem;margin-top:.42rem}
.bookshelf-card-metadata.is-compact .rs-genre,
.bookshelf-card-metadata.is-compact .bookshelf-publication{min-height:1.12rem;padding:2px 5px;border-radius:6px;font-size:.61rem}
.bookshelf-flow-copy .bookshelf-card-metadata{white-space:normal;overflow:visible}


/* 3.6.0: owner review creation from rated books. */
.bookshelf-book-review-action{grid-column:1/-1;margin-top:2px}.bookshelf-book-review-compose{max-width:34rem}.bookshelf-book-review-compose>summary,.bookshelf-book-review-status{display:inline-flex;align-items:center;min-height:30px;padding:4px 8px;border:1px solid var(--rs-border,#2b3944);border-radius:7px;color:var(--rs-text-muted,#9fb1c2);font-size:.75rem;text-decoration:none;cursor:pointer}.bookshelf-book-review-compose>summary:hover,.bookshelf-book-review-status:hover{color:var(--rs-text,#eef4f8);border-color:var(--rs-border-strong,#425463)}.bookshelf-book-review-compose form{display:grid;gap:10px;margin-top:9px;padding:12px;border:1px solid var(--rs-border,#2b3944);border-radius:10px;background:var(--rs-surface-raised,#182129)}.bookshelf-book-review-compose label>span:first-child{display:block;margin-bottom:5px;font-size:.75rem;color:var(--rs-text-muted,#9fb1c2)}.bookshelf-book-review-compose textarea{width:100%;min-height:110px;resize:vertical}.bookshelf-list-row .bookshelf-book-review-action{grid-column:2/-1}.bookshelf-book-review-status{border-color:transparent;padding-left:0;padding-right:0}
@media(max-width:620px){.bookshelf-book-review-compose{max-width:none}.bookshelf-list-row .bookshelf-book-review-action{grid-column:1/-1}}


/* 3.7.0: review actions, mobile review reading, and strict progress context. */
.bookshelf-book-review-action{margin-top:2px}
.bookshelf-book-review-compose>summary,.bookshelf-book-review-status{min-height:28px;padding:3px 7px;border-radius:7px;font-size:11.5px;line-height:1.2}
.bookshelf-book-review-status{padding-left:7px;padding-right:7px;border-color:var(--rs-border-default)}
.bookshelf-review-more{display:none}
@media(max-width:620px){
  .bookshelf-review-text-wrap.is-collapsed .bookshelf-review-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:6;overflow:hidden}
  .bookshelf-review-text-wrap.is-expanded .bookshelf-review-text{display:block;overflow:visible}
  .bookshelf-review-more{margin-top:8px;padding:0;border:0;background:transparent;color:var(--rs-link,var(--rs-text-secondary,#c3d2e3));font:inherit;font-size:.78rem;font-weight:650;cursor:pointer}
  .bookshelf-review-text-wrap.is-collapsed .bookshelf-review-more,.bookshelf-review-text-wrap.is-expanded .bookshelf-review-more{display:inline-flex}
}

/* 3.8 Complete Book Management */
.bookshelf-book-rating-action{grid-column:1/-1;margin-top:2px;position:relative}
.bookshelf-book-rating-action>summary,.bookshelf-book-review-compose>summary,.bookshelf-book-review-status{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:3px 7px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:11.5px;line-height:1.2;text-decoration:none;cursor:pointer}
.bookshelf-book-rating-action>summary:hover,.bookshelf-book-rating-action>summary:focus-visible,.bookshelf-book-review-compose>summary:hover,.bookshelf-book-review-compose>summary:focus-visible,.bookshelf-book-review-status:hover,.bookshelf-book-review-status:focus-visible{color:var(--rs-text-primary);border-color:var(--rs-border-strong);background:var(--rs-surface-2);text-decoration:none}
.bookshelf-book-rating-action>summary:focus-visible,.bookshelf-book-review-compose>summary:focus-visible,.bookshelf-book-review-status:focus-visible{outline:2px solid var(--rs-border-focus);outline-offset:2px}
.bookshelf-book-rating-action form{display:flex;align-items:end;gap:7px;flex-wrap:wrap;margin-top:7px}.bookshelf-book-rating-action label{display:grid;gap:4px;font-size:11.5px;color:var(--rs-text-muted)}.bookshelf-book-rating-action select,.bookshelf-book-rating-action button{min-height:30px;border:1px solid var(--rs-border-default);border-radius:7px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;padding:3px 8px}.bookshelf-book-rating-action button{cursor:pointer}

/* Bookshelf 3.9: unified owner book-management surface. */
.bookshelf-book-management-actions{grid-column:1/-1;display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap;margin-top:2px}
.bookshelf-book-management-actions>.bookshelf-owner-states{display:flex;flex:0 1 auto;gap:5px;flex-wrap:wrap;margin:0}
.bookshelf-book-management-actions>.bookshelf-book-rating-action,.bookshelf-book-management-actions>.bookshelf-book-review-action{grid-column:auto;margin:0;flex:0 0 auto}
.bookshelf-book-management-actions .bookshelf-book-rating-action>summary,.bookshelf-book-management-actions .bookshelf-book-review-compose>summary,.bookshelf-book-management-actions .bookshelf-book-review-status{min-height:28px;padding:3px 7px;font-size:11.5px;border-radius:7px}
.bookshelf-danger-action{border-color:rgba(220,105,105,.55)!important;color:var(--rs-text-muted)}
.bookshelf-danger-action:hover,.bookshelf-danger-action:focus-visible{border-color:#d86d6d!important;color:#f0a0a0!important}
@media(max-width:420px){.bookshelf-book-management-actions{gap:6px}.bookshelf-book-management-actions>.bookshelf-owner-states{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.bookshelf-book-management-actions>.bookshelf-owner-states form{min-width:0}.bookshelf-book-management-actions>.bookshelf-owner-states button{width:100%}}



.bookshelf-list-management-actions{grid-column:2/-1;display:flex;align-items:flex-start;gap:6px;flex-wrap:wrap}.bookshelf-list-management-actions>.bookshelf-book-rating-action,.bookshelf-list-management-actions>.bookshelf-book-review-action{grid-column:auto;margin:0}@media(max-width:620px){.bookshelf-list-management-actions{grid-column:1/-1}}


/* 3.10: compact, in-place book management editors. */
.bookshelf-book-rating-action form{align-items:end}
.bookshelf-book-rating-action select,.bookshelf-book-rating-action button{box-sizing:border-box;min-height:28px;height:28px;padding:2px 7px;border-radius:7px;font-size:11.5px;line-height:1.2}
.bookshelf-book-rating-action label{gap:3px}
.bookshelf-book-rating-action .bookshelf-danger-action{min-height:28px;height:28px;width:auto;padding:2px 7px;font-size:11.5px;font-weight:600}
.bookshelf-review-editor textarea,.bookshelf-book-review-compose textarea{box-sizing:border-box;width:100%;border:1px solid var(--rs-border-default);border-radius:8px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;font-size:.86rem;line-height:1.55;padding:10px 11px;outline:none}
.bookshelf-review-editor textarea:focus,.bookshelf-book-review-compose textarea:focus{border-color:var(--rs-border-focus);box-shadow:0 0 0 2px rgba(120,170,220,.12)}
.bookshelf-review-editor-actions{gap:7px}
.bookshelf-review-editor-actions .bookshelf-primary-action,.bookshelf-review-editor-actions .bookshelf-secondary-action,.bookshelf-review-editor-actions .bookshelf-danger-action{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:30px;height:30px;width:auto;padding:3px 9px;border-radius:7px;font:inherit;font-size:11.5px;line-height:1.2;text-decoration:none;white-space:nowrap}
.bookshelf-review-editor-actions .bookshelf-primary-action{border:1px solid var(--rs-border-strong);background:var(--rs-surface-2);color:var(--rs-text-primary);font-weight:650}
.bookshelf-review-editor-actions .bookshelf-secondary-action{border:1px solid var(--rs-border-default);background:transparent;color:var(--rs-text-muted)}
.bookshelf-review-editor-actions .bookshelf-secondary-action:hover,.bookshelf-review-editor-actions .bookshelf-secondary-action:focus-visible{text-decoration:none;color:var(--rs-text-primary);border-color:var(--rs-border-strong);background:var(--rs-surface-2)}
@media(max-width:620px){.bookshelf-review-editor-actions .bookshelf-primary-action,.bookshelf-review-editor-actions .bookshelf-secondary-action,.bookshelf-review-editor-actions .bookshelf-danger-action{width:auto}}


/* 3.11.0: reader identity, compact list and complete Reading history controls */
.bookshelf-review-edit-trigger,.bookshelf-review-edit-trigger:hover,.bookshelf-review-edit-trigger:focus-visible{text-decoration:none!important}
.bookshelf-owner-states button.is-favorite{color:var(--rs-text-primary);border-color:var(--rs-border-strong)}
.bookshelf-read-date{flex-basis:100%;display:flex;align-items:center;gap:7px;flex-wrap:wrap;color:var(--rs-text-muted);font-size:11.5px}.bookshelf-read-date>button,.bookshelf-read-date-editor button{min-height:28px;height:28px;padding:2px 7px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:11.5px;cursor:pointer}.bookshelf-read-date-editor{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.bookshelf-read-date-editor[hidden]{display:none}.bookshelf-read-date-editor input,.bookshelf-review-date-field input{box-sizing:border-box;min-height:30px;border:1px solid var(--rs-border-default);border-radius:7px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;padding:3px 7px;color-scheme:dark}
.bookshelf-review-date-field{max-width:220px}
.bookshelf-list{display:grid;border-top:1px solid var(--rs-border,#26313b)}.bookshelf-list-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:start;min-height:0;padding:12px 4px;border-bottom:1px solid var(--rs-border,#26313b);background:transparent}.bookshelf-list-row:hover{background:transparent}.bookshelf-list-main{min-width:0}.bookshelf-list-main h3{margin:0;font-size:.92rem;line-height:1.3}.bookshelf-list-main h3 a{text-decoration:none;color:inherit}.bookshelf-list-byline{display:flex;gap:5px 12px;flex-wrap:wrap;margin:4px 0 0;color:var(--rs-text-muted);font-size:.76rem}.bookshelf-list-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:7px}.bookshelf-list-meta .bookshelf-tags{margin:0}.bookshelf-list-manage{position:relative}.bookshelf-list-manage>summary{display:grid;place-items:center;width:28px;height:28px;border:1px solid var(--rs-border-default);border-radius:50%;color:var(--rs-text-muted);cursor:pointer;list-style:none}.bookshelf-list-manage>summary::-webkit-details-marker{display:none}.bookshelf-list-manage-panel{position:absolute;right:0;z-index:8;width:min(360px,calc(100vw - 40px));padding:10px;margin-top:6px;border:1px solid var(--rs-border-default);border-radius:10px;background:var(--rs-surface-raised);box-shadow:0 10px 30px rgba(0,0,0,.28)}.bookshelf-list-manage-panel .bookshelf-owner-states{margin:0}.bookshelf-list-manage-panel .bookshelf-book-rating-action,.bookshelf-list-manage-panel .bookshelf-book-review-action{margin-top:7px}
.bookshelf-profile{position:relative;overflow:hidden}.bookshelf-profile:before{content:"";position:absolute;inset:-40% auto auto -8%;width:260px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(86,150,190,.11),transparent 68%);pointer-events:none}.bookshelf-profile-main,.bookshelf-profile-actions{position:relative;z-index:1}.bookshelf-share{min-height:32px;padding:0 10px;font-size:.78rem}
@media(max-width:720px){.bookshelf-profile{padding:15px 16px}.bookshelf-profile-main{display:grid;grid-template-columns:92px minmax(0,1fr);gap:14px;align-items:center}.bookshelf-avatar{width:92px;height:92px;flex-basis:92px}.bookshelf-profile-copy .bookshelf-kicker{margin-bottom:4px}.bookshelf-profile h1{font-size:1.8rem}.bookshelf-profile-tagline{font-size:.92rem}.bookshelf-profile-actions{margin-top:10px;width:auto}.bookshelf-list-row{padding:11px 2px}.bookshelf-list-manage-panel{position:fixed;left:12px;right:12px;bottom:14px;width:auto;max-height:70vh;overflow:auto}.bookshelf-owner-states{grid-template-columns:repeat(4,minmax(0,1fr))}.bookshelf-owner-state-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}}
@media(max-width:520px){.bookshelf-profile{display:block}.bookshelf-profile-main{display:grid}.bookshelf-profile-about{display:none}}


/* 3.11.1: List is a plain, structured data table. */
.bookshelf-list-wrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-top:1px solid var(--rs-border,#26313b)}
.bookshelf-list{width:100%;min-width:760px;border:0;border-collapse:collapse;display:table;background:transparent}
.bookshelf-list thead{display:table-header-group}
.bookshelf-list tbody{display:table-row-group}
.bookshelf-list tr,.bookshelf-list-row{display:table-row;background:transparent}
.bookshelf-list th,.bookshelf-list td{display:table-cell;padding:9px 10px;border-bottom:1px solid var(--rs-border,#26313b);text-align:left;vertical-align:middle;font-size:.78rem;line-height:1.35;white-space:nowrap}
.bookshelf-list th{color:var(--rs-text-muted,#9fb1c2);font-size:.68rem;font-weight:650;text-transform:uppercase;letter-spacing:.05em}
.bookshelf-list td{color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-list-title{width:27%;white-space:normal!important}.bookshelf-list-title a{color:var(--rs-text-primary,#eef4f8);font-weight:650;text-decoration:none}.bookshelf-list-title a:hover,.bookshelf-list-title a:focus-visible{text-decoration:underline}
.bookshelf-list-author{width:19%;max-width:190px;overflow:hidden;text-overflow:ellipsis}.bookshelf-list-series{width:18%;max-width:190px;overflow:hidden;text-overflow:ellipsis}.bookshelf-list-classification{width:11%}.bookshelf-list-publication{width:10%}.bookshelf-list-rating{width:11%}.bookshelf-list-actions{width:34px;text-align:right!important}.bookshelf-list-actions-heading{width:34px}
.bookshelf-list-classification .bookshelf-classifications,.bookshelf-list-classification .bookshelf-tags{display:flex;gap:4px;flex-wrap:nowrap;margin:0}.bookshelf-list-classification .rs-genre{font-size:.68rem;min-height:0;padding:2px 5px;border-radius:5px}
.bookshelf-list-publication .bookshelf-publication{font-size:.72rem;min-height:0;padding:0;border:0;border-radius:0;background:transparent}
.bookshelf-list-publication .bookshelf-publication.is-upcoming{font-weight:650}
.bookshelf-list-manage{position:relative;display:inline-block}.bookshelf-list-manage>summary{width:26px;height:26px;border-radius:6px}
.bookshelf-list-row:hover{background:transparent}
@media(max-width:720px){.bookshelf-list-wrap{margin-inline:0}.bookshelf-list{min-width:680px}.bookshelf-list th,.bookshelf-list td{padding:8px 8px;font-size:.74rem}.bookshelf-list th{font-size:.64rem}.bookshelf-list-title{min-width:170px}.bookshelf-list-author{max-width:145px}.bookshelf-list-series{max-width:145px}}


/* 3.11.2: Mobile list remains a table, without horizontal scrolling. */
.bookshelf-list-mobile-detail{display:none}
@media(max-width:720px){
  .bookshelf-list-wrap{overflow-x:visible;border-top:1px solid var(--rs-border,#26313b)}
  .bookshelf-list{width:100%;min-width:0;table-layout:fixed}
  .bookshelf-list th,.bookshelf-list td{padding:9px 5px;white-space:normal}
  .bookshelf-list-author,.bookshelf-list-series{display:none!important}
  .bookshelf-list-title{width:auto;min-width:0!important}
  .bookshelf-list-title a{display:block;font-size:.78rem;line-height:1.25}
  .bookshelf-list-mobile-detail{display:block;margin-top:3px;color:var(--rs-text-muted,#9fb1c2);font-size:.66rem;line-height:1.25;font-weight:400}
  .bookshelf-list-classification{width:72px}
  .bookshelf-list-publication{width:54px}
  .bookshelf-list-rating{width:48px;text-align:right!important}
  .bookshelf-list-actions,.bookshelf-list-actions-heading{width:30px}
  .bookshelf-list-classification .bookshelf-classifications,.bookshelf-list-classification .bookshelf-tags{gap:2px;flex-wrap:wrap}
  .bookshelf-list-classification .rs-genre{font-size:.61rem;padding:1px 4px}
  .bookshelf-list-rating .rs-rating__stars{display:none}
  .bookshelf-list-rating .rs-rating{justify-content:flex-end;background:transparent;padding:0}
  .bookshelf-list-rating .rs-rating__value{font-size:.68rem;white-space:nowrap}
  .bookshelf-list-publication .bookshelf-publication{font-size:.67rem;white-space:normal}
}
@media(max-width:430px){
  .bookshelf-list th{font-size:.58rem;letter-spacing:.02em}
  .bookshelf-list th,.bookshelf-list td{padding-left:4px;padding-right:4px}
  .bookshelf-list-classification{width:62px}
  .bookshelf-list-publication{width:48px}
  .bookshelf-list-rating{width:42px}
}

/* 3.11.3: Compact list breakpoint follows the actual narrow content viewport,
   not only phone CSS widths. This prevents the desktop table from overflowing
   on mobile layouts whose effective viewport is wider than 720px. */
@media(max-width:900px){
  .bookshelf-list-wrap{overflow-x:hidden;border-top:1px solid var(--rs-border,#26313b);max-width:100%}
  .bookshelf-list{width:100%;max-width:100%;min-width:0;table-layout:fixed}
  .bookshelf-list th,.bookshelf-list td{padding:9px 5px;white-space:normal;overflow-wrap:anywhere}
  .bookshelf-list-author,.bookshelf-list-series{display:none!important}
  .bookshelf-list-title{width:auto;min-width:0!important}
  .bookshelf-list-title a{display:block;font-size:.78rem;line-height:1.25}
  .bookshelf-list-mobile-detail{display:block;margin-top:3px;color:var(--rs-text-muted,#9fb1c2);font-size:.66rem;line-height:1.25;font-weight:400}
  .bookshelf-list-classification{width:72px}
  .bookshelf-list-publication{width:54px}
  .bookshelf-list-rating{width:48px;text-align:right!important}
  .bookshelf-list-actions,.bookshelf-list-actions-heading{width:30px}
  .bookshelf-list-classification .bookshelf-classifications,.bookshelf-list-classification .bookshelf-tags{gap:2px;flex-wrap:wrap}
  .bookshelf-list-classification .rs-genre{font-size:.61rem;padding:1px 4px}
  .bookshelf-list-rating .rs-rating__stars{display:none}
  .bookshelf-list-rating .rs-rating{justify-content:flex-end;background:transparent;padding:0}
  .bookshelf-list-rating .rs-rating__value{font-size:.68rem;white-space:nowrap}
  .bookshelf-list-publication .bookshelf-publication{font-size:.67rem;white-space:normal}
}


/* 3.11.4: On narrow layouts the list becomes a deliberately minimal table.
   Secondary metadata stays inside the Book cell; only rating and owner action
   retain their own columns. No horizontal scrolling is required. */
.bookshelf-list-mobile-meta{display:none}
@media(max-width:900px){
  .bookshelf-list-wrap{overflow:visible!important;width:100%;max-width:100%}
  .bookshelf-list{width:100%!important;max-width:100%!important;min-width:0!important;table-layout:fixed!important}
  .bookshelf-list-author,.bookshelf-list-series,.bookshelf-list-classification,.bookshelf-list-publication{display:none!important}
  .bookshelf-list thead th:nth-child(2),.bookshelf-list thead th:nth-child(3),.bookshelf-list thead th:nth-child(4),.bookshelf-list thead th:nth-child(5){display:none!important}
  .bookshelf-list-title{width:auto!important;min-width:0!important;padding:10px 8px!important;overflow:hidden}
  .bookshelf-list-title a{font-size:.82rem;line-height:1.25;overflow-wrap:normal;word-break:normal;hyphens:none}
  .bookshelf-list-mobile-detail{font-size:.68rem;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
  .bookshelf-list-mobile-meta{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:5px}
  .bookshelf-list-mobile-meta .bookshelf-classifications,.bookshelf-list-mobile-meta .bookshelf-tags{display:flex;gap:4px;flex-wrap:wrap;margin:0}
  .bookshelf-list-mobile-meta .rs-genre{font-size:.61rem;line-height:1.2;padding:1px 4px;border-radius:4px}
  .bookshelf-list-mobile-year{color:var(--rs-text-muted,#9fb1c2);font-size:.66rem;white-space:nowrap}
  .bookshelf-list-rating{width:48px!important;padding:10px 4px!important;text-align:right!important;white-space:nowrap!important}
  .bookshelf-list-actions,.bookshelf-list-actions-heading{width:34px!important;padding:10px 2px!important}
  .bookshelf-list th:first-child{width:auto!important}
  .bookshelf-list th:nth-last-child(2){width:48px!important;text-align:right!important}
  .bookshelf-list th{overflow-wrap:normal!important;word-break:normal!important;hyphens:none!important}
}
@media(max-width:430px){
  .bookshelf-list-title{padding-left:4px!important}
  .bookshelf-list-rating{width:44px!important}
  .bookshelf-list-actions,.bookshelf-list-actions-heading{width:32px!important}
}


/* 3.11.6: mobile book cards keep management available without permanently occupying the card. */
.bookshelf-card-manage{grid-column:1/-1;margin:0}
.bookshelf-card-manage>summary{display:none}
.bookshelf-card-manage>.bookshelf-book-management-actions{margin-top:2px}
@media(max-width:620px){
  .bookshelf-card-manage{width:100%;margin-top:4px}
  .bookshelf-card-manage>summary{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:32px;padding:4px 9px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:11.5px;line-height:1.2;cursor:pointer;list-style:none}
  .bookshelf-card-manage>summary::-webkit-details-marker{display:none}
  .bookshelf-card-manage>summary:hover,.bookshelf-card-manage>summary:focus-visible{color:var(--rs-text-primary);border-color:var(--rs-border-strong);text-decoration:none}
  .bookshelf-card-manage>summary span{transition:transform .16s ease}
  .bookshelf-card-manage[open]>summary span{transform:rotate(180deg)}
  .bookshelf-card-manage>.bookshelf-book-management-actions{box-sizing:border-box;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid var(--rs-border-default)}
}


/* 3.11.7: mobile management favors explicit text labels over symbolic controls. */
@media(max-width:620px){
  .bookshelf-card-manage .bookshelf-owner-states{display:flex;flex-wrap:wrap;width:100%;gap:6px}
  .bookshelf-card-manage .bookshelf-owner-states form{display:inline-flex;width:auto;min-width:0}
  .bookshelf-card-manage .bookshelf-owner-states button{width:auto;min-width:0;min-height:30px;padding:4px 8px;gap:0}
  .bookshelf-card-manage .bookshelf-owner-states button>span[aria-hidden="true"]{display:none}
  .bookshelf-card-manage .bookshelf-owner-state-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap;border:0}
}


/* 3.12: reader identity and explicit book relationship context. */
.bookshelf-profile-about{max-width:58ch;margin-top:7px;color:var(--rs-text-muted);line-height:1.45}
.bookshelf-book-relationships{display:flex;align-items:center;gap:5px;flex-wrap:wrap;margin-top:7px}
.bookshelf-book-relationship{display:inline-flex;align-items:center;min-height:22px;padding:2px 6px;border:1px solid var(--rs-border-default);border-radius:5px;background:transparent;color:var(--rs-text-muted);font-size:.68rem;line-height:1.2;text-decoration:none;white-space:nowrap}
a.bookshelf-book-relationship:hover,a.bookshelf-book-relationship:focus-visible{border-color:var(--rs-border-strong);color:var(--rs-text-primary);text-decoration:none}
.bookshelf-book-relationship--read,.bookshelf-book-relationship--reading{color:var(--rs-text-primary)}
.bookshelf-book-relationship--favorite{color:#d9ad4a}
.bookshelf-list-title .bookshelf-book-relationships{margin-top:5px}
.bookshelf-list-title .bookshelf-book-relationship{font-size:.62rem;min-height:19px;padding:1px 5px}

/* Rating management must never widen a mobile card. Destructive action gets
   its own natural wrap when the first control row has used the available width. */
@media(max-width:620px){
  .bookshelf-book-rating-action form{display:flex!important;flex-wrap:wrap!important;align-items:end!important;gap:6px!important;max-width:100%;min-width:0}
  .bookshelf-book-rating-action form>*{max-width:100%}
  .bookshelf-book-rating-action .bookshelf-danger-action{flex:0 0 auto}
}


/* 3.13: scannable owner states and deterministic overview highlight. */
@media(min-width:621px){
  .bookshelf-book-relationship--state.is-owner-state{display:none}
}
.bookshelf-owner-states button.is-active[data-state="to-read"]{border-color:#2f6fa9;background:rgba(47,111,169,.16);color:#9ed0ff}
.bookshelf-owner-states button.is-active[data-state="owned"]{border-color:#2e8060;background:rgba(46,128,96,.16);color:#9be0bd}
.bookshelf-owner-states button.is-active[data-state="wishlist"]{border-color:#8a5a9d;background:rgba(138,90,157,.16);color:#d7ace8}
.bookshelf-owner-states button.is-active.is-favorite{border-color:#9b7626;background:rgba(155,118,38,.16);color:#e8c66d}
.bookshelf-perfect-read-grid{grid-template-columns:minmax(0,520px)}
@media(max-width:620px){
  .bookshelf-book-rating-action form{width:100%}
  .bookshelf-book-rating-action .bookshelf-danger-action{flex-basis:auto}
  .bookshelf-perfect-read-grid{grid-template-columns:1fr}
}

/* Bookshelf 3.15.0: compact mobile filter summary and full-width writing surface. */
.bookshelf-book-review-compose{max-width:none;width:100%}
.bookshelf-book-review-compose form{box-sizing:border-box;width:100%}
.bookshelf-book-review-compose textarea{min-height:220px}
@media(max-width:720px){.bookshelf-tools>summary{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:3px 10px}.bookshelf-tools>summary span{grid-column:1;grid-row:1}.bookshelf-tools>summary small{grid-column:1;grid-row:2;margin:0;max-width:none;overflow:visible;text-overflow:clip;white-space:normal}.bookshelf-tools>summary:after{grid-column:2;grid-row:1/3;align-self:center}.bookshelf-book-review-compose textarea{min-height:200px}}


/* Bookshelf 3.16.0: browse first, manage on demand on every viewport.
   Reader-book relationships are the persistent state summary; editing controls
   are deliberately disclosed only when the owner asks to manage the book. */
.bookshelf-card-manage{width:100%;margin-top:7px}
.bookshelf-card-manage>summary{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-height:30px;padding:4px 9px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:11.5px;line-height:1.2;cursor:pointer;list-style:none}
.bookshelf-card-manage>summary::-webkit-details-marker{display:none}
.bookshelf-card-manage>summary:hover,.bookshelf-card-manage>summary:focus-visible{color:var(--rs-text-primary);border-color:var(--rs-border-strong);text-decoration:none}
.bookshelf-card-manage>summary span{transition:transform .16s ease}
.bookshelf-card-manage[open]>summary span{transform:rotate(180deg)}
.bookshelf-card-manage>.bookshelf-book-management-actions{box-sizing:border-box;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid var(--rs-border-default)}
/* Owner relationship state is useful on desktop too now that controls are collapsed. */
.bookshelf-book-relationship--state.is-owner-state{display:inline-flex}


/* Bookshelf 3.16.2: quiet corner actions for browse-first cards. */
.bookshelf-card-manage{grid-column:1/-1;width:100%;margin-top:5px}
.bookshelf-card-manage>summary{display:grid;place-items:center;box-sizing:border-box;width:32px;height:32px;min-height:32px;padding:0;border:1px solid var(--rs-border-default);border-radius:50%;background:rgba(10,15,19,.28);color:var(--rs-text-muted);font:inherit;line-height:1;cursor:pointer;list-style:none;transition:border-color .12s ease,color .12s ease,background .12s ease}
.bookshelf-card-manage>summary::-webkit-details-marker{display:none}
.bookshelf-card-manage>summary>span[aria-hidden="true"]{display:block;transform:none!important;font-size:13px;font-weight:700;letter-spacing:1px;line-height:1;margin-top:-4px}
.bookshelf-card-manage>summary:hover,.bookshelf-card-manage>summary:focus-visible{border-color:#6f8ca5;background:var(--rs-surface-raised);color:var(--rs-text-primary);text-decoration:none}
.bookshelf-card-manage[open]>summary{border-color:#6f8ca5;background:var(--rs-surface-raised);color:var(--rs-text-primary)}
.bookshelf-card-manage>.bookshelf-book-management-actions{box-sizing:border-box;width:100%;margin-top:8px;padding-top:8px;border-top:1px solid var(--rs-border-default)}

.bookshelf-add-to-collection{right:9px;top:9px}
.bookshelf-add-to-collection>summary{box-sizing:border-box;width:32px;height:32px;border-color:var(--rs-border-default);background:rgba(10,15,19,.42);font-size:15px;font-weight:650;transition:border-color .12s ease,color .12s ease,background .12s ease}
.bookshelf-add-to-collection>summary:hover,.bookshelf-add-to-collection>summary:focus-visible,.bookshelf-add-to-collection[open]>summary{border-color:#6f8ca5;background:var(--rs-surface-raised);color:var(--rs-text-primary)}

/* Collection creation must reserve space for both the field and action. */
.bookshelf-create-collection-panel{max-width:none}
.bookshelf-create-collection-form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:100%}
.bookshelf-create-collection-form .rs-field{min-width:0;width:100%}
.bookshelf-create-collection-form .rs-input{box-sizing:border-box;width:100%}
.bookshelf-create-collection-form .bookshelf-primary-action{position:static;align-self:end}
@media(max-width:620px){
  .bookshelf-create-collection-form{grid-template-columns:1fr}
  .bookshelf-create-collection-form .bookshelf-primary-action{width:100%}
}


/* Bookshelf 3.16.3: compact, quiet corner actions and desktop review excerpts. */
.bookshelf-book-card:has(.bookshelf-add-to-collection) .bookshelf-book-copy{padding-right:34px}
.bookshelf-card-manage{align-self:end;margin-top:6px}
.bookshelf-card-manage>summary,
.bookshelf-add-to-collection>summary{
  box-sizing:border-box;width:30px;height:30px;min-height:30px;padding:0;
  border:1px solid color-mix(in srgb,var(--rs-border-default) 82%,transparent);
  border-radius:9px;background:rgba(10,15,19,.18);color:var(--rs-text-muted);
  box-shadow:none;
}
.bookshelf-card-manage>summary{display:grid;place-items:center}
.bookshelf-card-manage>summary>span[aria-hidden="true"]{
  display:grid;place-items:center;width:100%;height:100%;margin:0!important;
  font-size:0;line-height:1;letter-spacing:0;transform:none!important;
}
.bookshelf-card-manage>summary>span[aria-hidden="true"]::before{
  content:"…";display:block;font-size:16px;font-weight:700;line-height:1;
  transform:translateY(-2px);
}
.bookshelf-add-to-collection{right:8px;top:8px}
.bookshelf-add-to-collection>summary{display:grid;place-items:center;font-size:0;font-weight:650;line-height:1}
.bookshelf-add-to-collection>summary::before{content:"+";display:block;font-size:16px;line-height:1;transform:translateY(-1px)}
.bookshelf-card-manage>summary:hover,.bookshelf-card-manage>summary:focus-visible,.bookshelf-card-manage[open]>summary,
.bookshelf-add-to-collection>summary:hover,.bookshelf-add-to-collection>summary:focus-visible,.bookshelf-add-to-collection[open]>summary{
  border-color:var(--rs-border-strong);background:rgba(255,255,255,.025);color:var(--rs-text-primary)
}
.bookshelf-review-text-wrap.is-collapsed .bookshelf-review-text{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:10;overflow:hidden
}
.bookshelf-review-text-wrap.is-expanded .bookshelf-review-text{display:block;overflow:visible}
.bookshelf-review-more{margin-top:8px;padding:0;border:0;background:transparent;color:var(--rs-link,var(--rs-text-secondary));font:inherit;font-size:.78rem;font-weight:650;cursor:pointer}
.bookshelf-review-text-wrap.is-collapsed .bookshelf-review-more,
.bookshelf-review-text-wrap.is-expanded .bookshelf-review-more{display:inline-flex}
@media(max-width:620px){
  .bookshelf-book-card:has(.bookshelf-add-to-collection) .bookshelf-book-copy{padding-right:30px}
  .bookshelf-review-text-wrap.is-collapsed .bookshelf-review-text{-webkit-line-clamp:6}
}

/* Bookshelf 3.17.0: calm overview and exact compact card actions. */
.bookshelf-book-copy{box-sizing:border-box;width:100%}
.bookshelf-book-card:has(.bookshelf-add-to-collection) .bookshelf-book-copy{padding-right:38px}
.bookshelf-card-manage>summary,
.bookshelf-add-to-collection>summary{position:relative;width:30px;height:30px;min-width:30px;min-height:30px;padding:0;overflow:hidden}
/* Draw the controls geometrically instead of relying on font baselines. */
.bookshelf-card-manage>summary>span[aria-hidden="true"]::before{content:"";position:absolute;left:50%;top:50%;width:4px;height:4px;border-radius:50%;background:currentColor;transform:translate(-50%,-50%);box-shadow:-7px 0 0 currentColor,7px 0 0 currentColor}
.bookshelf-add-to-collection>summary::before,
.bookshelf-add-to-collection>summary::after{content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px;transform:translate(-50%,-50%)}
.bookshelf-add-to-collection>summary::before{width:12px;height:2px}
.bookshelf-add-to-collection>summary::after{width:2px;height:12px}
.bookshelf-metadata-favorite{color:#e2b84f;border:1px solid rgba(226,184,79,.48);background:rgba(226,184,79,.07)!important}
.bookshelf-latest-review-card{max-width:900px;padding:18px 20px;border:1px solid var(--rs-border-default);border-radius:12px;background:var(--rs-surface,#11171c)}
.bookshelf-latest-review-heading{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.bookshelf-latest-review-heading strong{font-size:1rem}.bookshelf-latest-review-heading a{text-decoration:none;color:inherit}
.bookshelf-latest-review-card>p{max-width:78ch;margin:0;color:var(--rs-text-secondary);line-height:1.6}
.bookshelf-overview-collection-list{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bookshelf-overview-collection-list a{display:flex;flex-direction:column;gap:4px;padding:14px 15px;border:1px solid var(--rs-border-default);border-radius:10px;text-decoration:none;color:inherit;background:var(--rs-surface,#11171c)}
.bookshelf-overview-collection-list span{font-size:.76rem;color:var(--rs-text-muted)}
@media(min-width:721px){.bookshelf-metrics{grid-template-columns:repeat(6,minmax(0,1fr))}}
@media(max-width:720px){.bookshelf-book-card:has(.bookshelf-add-to-collection) .bookshelf-book-copy{padding-right:36px}.bookshelf-overview-collection-list{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-latest-review-card{padding:15px}}

/* Bookshelf 3.18.0: quieter controls, clearer state, compact management. */
/* Profile actions are page utilities, not part of the reader identity hierarchy. */
.bookshelf-profile{position:relative;padding-right:88px}
.bookshelf-profile-actions{position:absolute;right:16px;top:16px;display:flex;gap:7px;margin:0}
.bookshelf-profile-action{box-sizing:border-box;display:grid;place-items:center;width:34px;height:34px;min-width:34px;min-height:34px;padding:0;border:1px solid var(--rs-border-default,var(--rs-border));border-radius:9px;background:rgba(10,15,19,.28);color:var(--rs-text-muted);text-decoration:none;cursor:pointer;transition:background .12s ease,border-color .12s ease,color .12s ease}
.bookshelf-profile-action svg{display:block;width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.bookshelf-profile-action:hover,.bookshelf-profile-action:focus-visible{background:var(--rs-surface-2,var(--rs-surface-raised));border-color:var(--rs-border-strong);color:var(--rs-text-primary);text-decoration:none}
.bookshelf-share{font-size:0}
/* Favorite is metadata here. Match the other chips and use gold only as a quiet semantic accent. */
.bookshelf-tags .bookshelf-metadata-favorite{box-sizing:border-box;display:inline-flex;align-items:center;min-height:0;padding:3px 7px;border:1px solid rgba(226,184,79,.28);border-radius:999px;background:rgba(226,184,79,.055)!important;color:#d9b657;font-size:.72rem;line-height:1.35;font-weight:600}
/* Browser controls: selects remain the form; view/apply are compact utilities. */
.bookshelf-tools .bookshelf-browser-controls{grid-template-columns:repeat(4,minmax(150px,1fr));align-items:end}
.bookshelf-tools .bookshelf-search-field{grid-column:1/-1}
.bookshelf-tools .bookshelf-view-switch{justify-self:start;align-self:end}
.bookshelf-tools .bookshelf-view-option{min-height:34px;height:34px;padding:0 10px;font-size:.78rem}
.bookshelf-tools .bookshelf-apply{justify-self:start;align-self:end;width:auto;min-width:82px;min-height:34px;height:34px;padding:0 13px;font-size:.8rem}
/* Collection management: normal save and destructive delete are intentionally separated. */
.bookshelf-collection-management-panel{display:block;padding:16px}
.bookshelf-collection-management-main{max-width:720px}
.bookshelf-rename-collection{display:grid;grid-template-columns:minmax(260px,520px) auto;align-items:end;gap:10px}
.bookshelf-rename-collection .rs-field{min-width:0}
.bookshelf-collection-save{box-sizing:border-box;min-height:38px;height:38px;padding:0 13px;border:1px solid var(--rs-border-strong);border-radius:8px;background:var(--rs-surface-2,var(--rs-surface-raised));color:var(--rs-text-primary);font:inherit;font-size:.8rem;font-weight:650;cursor:pointer}
.bookshelf-collection-save:disabled{opacity:.42;cursor:default}
.bookshelf-collection-danger{margin-top:16px;padding-top:14px;border-top:1px solid var(--rs-border-default,var(--rs-border))}
.bookshelf-collection-danger .bookshelf-danger-action{min-height:36px;font-size:.78rem}
@media(max-width:720px){
  .bookshelf-profile{padding-right:58px}
  .bookshelf-profile-actions{right:12px;top:12px;flex-direction:column;width:auto;margin:0}
  .bookshelf-profile-action{width:32px;height:32px;min-width:32px;min-height:32px}
  .bookshelf-tools .bookshelf-browser-controls{grid-template-columns:1fr 1fr}
  .bookshelf-tools .bookshelf-search-field{grid-column:1/-1}
  .bookshelf-tools .bookshelf-view-switch{grid-column:auto}
  .bookshelf-tools .bookshelf-apply{grid-column:auto;width:auto}
}
@media(max-width:520px){
  .bookshelf-tools .bookshelf-browser-controls{grid-template-columns:1fr}
  .bookshelf-tools .bookshelf-search-field{grid-column:auto}
  .bookshelf-tools .bookshelf-view-switch,.bookshelf-tools .bookshelf-apply{grid-column:auto}
  .bookshelf-rename-collection{grid-template-columns:1fr}
  .bookshelf-collection-save{width:100%}
}

/* Bookshelf 3.19.0: hierarchy and management correction pass. */
/* Reader hero utilities: icon-only, contained, and stable at every breakpoint. */
.bookshelf-profile{padding-right:112px}
.bookshelf-profile-actions{right:18px;top:18px;display:flex;flex-direction:row;align-items:center;gap:6px;width:auto!important}
.bookshelf-profile-action,.bookshelf-owner-settings.bookshelf-profile-action,.bookshelf-share.bookshelf-profile-action{
  box-sizing:border-box;display:grid;place-items:center;width:34px;height:34px;min-width:34px;min-height:34px;
  padding:0!important;margin:0;border:1px solid var(--rs-border-default,var(--rs-border));border-radius:9px;
  background:rgba(10,15,19,.22);color:var(--rs-text-muted);font-size:0;line-height:1;text-decoration:none;overflow:hidden
}
.bookshelf-profile-action svg{width:17px;height:17px;margin:0}
/* Favorite is a status chip, never an action button in book metadata. */
.bookshelf-card-metadata .bookshelf-metadata-favorite{
  box-sizing:border-box;display:inline-flex;align-items:center;min-height:1.25rem;padding:3px 6px;
  border:1px solid rgba(217,182,87,.30);border-radius:7px;background:rgba(217,182,87,.07)!important;
  color:#d9b657;font-size:.68rem;line-height:1;font-weight:600;white-space:nowrap
}
/* About edit belongs to the heading it edits. */
.bookshelf-about-title-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.bookshelf-about-title-row h2{margin:0}
.bookshelf-about-title-row .bookshelf-inline-edit{margin:0;color:var(--rs-text-muted);font-size:.74rem;font-weight:600;text-decoration:none}
.bookshelf-about-title-row .bookshelf-inline-edit:hover,.bookshelf-about-title-row .bookshelf-inline-edit:focus-visible{color:var(--rs-text-primary);text-decoration:none}
/* Collection management is a compact settings surface, not a full-width form. */
.bookshelf-collection-management-panel{box-sizing:border-box;max-width:760px;padding:16px 18px}
.bookshelf-collection-management-main{max-width:620px}
.bookshelf-rename-collection{display:grid;grid-template-columns:minmax(220px,1fr) auto;align-items:end;gap:10px;max-width:620px}
.bookshelf-collection-save{align-self:end;min-width:92px;background:var(--rs-surface-raised,#182129);border-color:var(--rs-border-strong);color:var(--rs-text-primary)}
.bookshelf-collection-save.is-clean{opacity:.62}
.bookshelf-collection-save:hover,.bookshelf-collection-save:focus-visible{background:var(--rs-surface-3,var(--rs-surface-raised));border-color:var(--rs-border-focus,var(--rs-border-strong))}
.bookshelf-collection-danger{max-width:620px;margin-top:14px;padding-top:14px}
/* Filter utilities stay subordinate to the form fields. */
.bookshelf-tools .bookshelf-view-switch{width:max-content}
.bookshelf-tools .bookshelf-apply{min-width:76px;padding-inline:12px}
@media(max-width:720px){
  .bookshelf-profile{padding-right:96px}
  .bookshelf-profile-actions{right:12px;top:12px;flex-direction:row!important;gap:5px}
  .bookshelf-profile-action,.bookshelf-owner-settings.bookshelf-profile-action,.bookshelf-share.bookshelf-profile-action{width:32px;height:32px;min-width:32px;min-height:32px}
}
@media(max-width:520px){
  .bookshelf-collection-management-panel{max-width:none;padding:14px}
  .bookshelf-rename-collection{grid-template-columns:1fr}
  .bookshelf-collection-save{width:100%}
}

/* Bookshelf 3.21.0: calm card information hierarchy.
   Identity -> rating/publication -> classification/reader relationship. */
.bookshelf-book-facts{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:7px}
.bookshelf-book-facts .bookshelf-rating-row{display:inline-flex;align-items:center;margin:0}
.bookshelf-book-facts .bookshelf-publication{display:inline-flex;align-items:center;min-height:1.25rem;padding:3px 6px;border-radius:7px;background:var(--rs-surface-raised,#182129);font-size:.68rem;line-height:1;white-space:nowrap}
.bookshelf-book-status-row{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:7px}
.bookshelf-book-status-row .bookshelf-card-metadata,.bookshelf-book-status-row .bookshelf-book-relationships{display:contents;margin:0}
.bookshelf-book-relationship{box-sizing:border-box;min-height:1.25rem;padding:3px 6px;border-radius:7px;font-size:.68rem;line-height:1;font-weight:600}
.bookshelf-book-relationship--reading{border-color:#397a91;background:rgba(57,122,145,.16);color:#9bd7e7}
.bookshelf-book-relationship--to-read{border-color:#2f6fa9;background:rgba(47,111,169,.16);color:#9ed0ff}
.bookshelf-book-relationship--owned{border-color:#2e8060;background:rgba(46,128,96,.16);color:#9be0bd}
.bookshelf-book-relationship--wishlist{border-color:#8a5a9d;background:rgba(138,90,157,.16);color:#d7ace8}
.bookshelf-book-relationship--favorite{border-color:#9b7626;background:rgba(155,118,38,.16);color:#e8c66d}
.bookshelf-book-relationship--read{border-color:var(--rs-border-default);background:var(--rs-surface-raised,#182129);color:var(--rs-text-muted)}
/* Positive rating already communicates Read. A legacy zero rating can still expose Read. */
.bookshelf-book-status-row .bookshelf-metadata-favorite{display:none}

/* Latest review is a book-and-review feature, not a floating text excerpt. */
.bookshelf-latest-review-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:18px;max-width:960px;padding:18px 20px}
.bookshelf-latest-review-cover{display:block;align-self:start;text-decoration:none}
.bookshelf-latest-review-cover img{display:block;width:96px;aspect-ratio:2/3;object-fit:cover;border-radius:7px}
.bookshelf-latest-review-content{min-width:0}
.bookshelf-latest-review-heading{margin:0 0 4px}
.bookshelf-latest-review-author{margin:0 0 7px;color:var(--rs-text-muted);font-size:.8rem}
.bookshelf-latest-review-meta{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-bottom:10px}
.bookshelf-latest-review-meta .bookshelf-card-metadata{display:contents}
.bookshelf-latest-review-meta .bookshelf-publication{display:inline-flex;align-items:center;min-height:1.25rem;padding:3px 6px;border-radius:7px;background:var(--rs-surface-raised,#182129);font-size:.68rem;line-height:1}
.bookshelf-latest-review-excerpt{max-width:78ch!important;margin:0!important;color:var(--rs-text-secondary);line-height:1.6}
.bookshelf-latest-review-read{display:inline-flex;margin-top:9px;font-size:.76rem;font-weight:650;text-decoration:none}
.bookshelf-latest-review-read:hover,.bookshelf-latest-review-read:focus-visible{text-decoration:none}
@media(max-width:620px){
  .bookshelf-latest-review-card{grid-template-columns:68px minmax(0,1fr);gap:12px;padding:14px}
  .bookshelf-latest-review-cover img{width:68px;border-radius:6px}
  .bookshelf-latest-review-excerpt{grid-column:1/-1}
  .bookshelf-book-status-row{gap:4px}
}

/* Bookshelf 3.21.0: compact metadata and interaction consistency pass. */
/* Bibliographic fact first, reader assessment second. */
.bookshelf-book-facts{gap:7px}
.bookshelf-book-facts .bookshelf-publication{order:1}
.bookshelf-book-facts .bookshelf-rating-row{order:2}

/* Classification and reader-state chips share one geometry. Semantic color is the only distinction. */
.bookshelf-book-status-row .rs-genre,
.bookshelf-book-status-row .bookshelf-book-relationship{
  box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  min-height:1.5rem;padding:4px 8px;border-width:1px;border-style:solid;border-radius:7px;
  font-size:.72rem;line-height:1;font-weight:600;white-space:nowrap
}
.bookshelf-book-status-row .bookshelf-book-relationships{display:contents}

/* Hero utilities use equally weighted, optically centered line icons. */
.bookshelf-profile-action svg{width:18px;height:18px;stroke-width:1.8;overflow:visible}
.bookshelf-owner-settings svg{width:18px;height:18px}

/* Collection management: field first, actions together below it. */
.bookshelf-collection-management-main{max-width:620px}
.bookshelf-rename-collection{display:block;max-width:620px}
.bookshelf-collection-actions{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin-top:14px;padding-top:14px;border-top:1px solid var(--rs-border-default)}
.bookshelf-collection-actions form{display:inline-flex;margin:0}
.bookshelf-collection-save{width:auto;min-width:0;align-self:auto}
.bookshelf-collection-danger{display:none}

@media(max-width:520px){
  .bookshelf-collection-save{width:auto}
  .bookshelf-collection-actions{gap:8px}
}


/* Bookshelf 3.22.0: reader relationship symbols.
   Classification remains textual book metadata. Reader relationships are a
   compact, neutral symbol language; the management surface teaches the labels. */
.bookshelf-book-status-row{column-gap:8px;row-gap:5px}
.bookshelf-book-status-row .bookshelf-card-metadata{display:contents}
.bookshelf-book-status-row .bookshelf-book-relationships{
  display:inline-flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0
}
.bookshelf-book-status-row .bookshelf-book-relationship{
  box-sizing:content-box;display:inline-flex;align-items:center;justify-content:center;
  width:auto;min-width:0;min-height:0;padding:0;border:0;border-radius:0;
  background:transparent!important;color:var(--rs-text-muted,#9fb1c2)!important;
  font-size:.9rem;line-height:1;font-weight:600;text-decoration:none
}
.bookshelf-book-status-row .bookshelf-book-relationship:hover,
.bookshelf-book-status-row .bookshelf-book-relationship:focus-visible{
  color:var(--rs-text-primary,#eef4f8)!important;text-decoration:none
}
.bookshelf-book-status-row .bookshelf-book-relationship:focus-visible{
  outline:2px solid var(--rs-border-focus,#79aee3);outline-offset:4px;border-radius:2px
}
.bookshelf-book-status-row .bookshelf-book-relationship--favorite{color:var(--rs-text-muted,#9fb1c2)!important}
.bookshelf-book-status-row .bookshelf-book-relationship--review{font-size:.88rem}

/* Bookshelf 3.24: stable book cards with shared corner popovers.
   Book actions float above the card instead of changing its dimensions. */
.bookshelf-book-card{isolation:isolate}
.bookshelf-card-manage{position:absolute;left:12px;bottom:12px;z-index:6;width:auto!important;margin:0!important;align-self:auto!important;grid-column:auto!important}
.bookshelf-card-manage>summary{width:30px!important;height:30px!important;min-width:30px!important;min-height:30px!important;margin:0!important;padding:0!important;border-radius:9px!important;background:rgba(10,15,19,.68)!important}
.bookshelf-card-manage[open]{z-index:12}
.bookshelf-card-manage>.bookshelf-book-management-actions{
  position:absolute;left:0;bottom:38px;display:flex;align-items:flex-start;align-content:flex-start;gap:8px;flex-wrap:wrap;
  box-sizing:border-box;width:min(430px,calc(100vw - 40px));max-height:min(520px,calc(100vh - 80px));overflow:auto;
  margin:0!important;padding:14px!important;border:1px solid var(--rs-border-default)!important;border-radius:12px;
  background:var(--rs-surface-raised);box-shadow:0 16px 42px rgba(0,0,0,.42)
}
.bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-owner-states{display:flex;width:100%;gap:7px;flex-wrap:wrap;margin:0}
.bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-book-rating-action,
.bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-book-review-action{margin:0}
.bookshelf-card-manage .bookshelf-book-rating-action[open],
.bookshelf-card-manage .bookshelf-book-review-compose[open]{flex-basis:100%;width:100%}
.bookshelf-card-manage .bookshelf-book-rating-action>form,
.bookshelf-card-manage .bookshelf-book-review-compose>form{box-sizing:border-box;max-width:none;width:100%}
.bookshelf-card-manage .bookshelf-book-review-compose textarea{box-sizing:border-box;width:100%;min-height:150px;resize:vertical}

/* Collection and management triggers are a matched pair. */
.bookshelf-add-to-collection{z-index:7}
.bookshelf-add-to-collection>summary,
.bookshelf-card-manage>summary{border-color:var(--rs-border-default)!important;color:var(--rs-text-muted)!important;box-shadow:none}
.bookshelf-add-to-collection>summary:hover,.bookshelf-add-to-collection>summary:focus-visible,.bookshelf-add-to-collection[open]>summary,
.bookshelf-card-manage>summary:hover,.bookshelf-card-manage>summary:focus-visible,.bookshelf-card-manage[open]>summary{border-color:#6f8ca5!important;background:var(--rs-surface-raised)!important;color:var(--rs-text-primary)!important}

@media(max-width:620px){
  .bookshelf-card-manage{left:12px;bottom:12px}
  .bookshelf-card-manage>.bookshelf-book-management-actions{
    position:fixed;left:12px;right:12px;bottom:14px;top:auto;width:auto;max-height:min(72vh,560px);z-index:40;
    padding:14px!important;border-radius:14px
  }
  .bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-owner-states{display:flex;grid-template-columns:none;width:100%;gap:7px}
  .bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-owner-states form{width:auto}
  .bookshelf-card-manage>.bookshelf-book-management-actions>.bookshelf-owner-states button{width:auto}
}

/* Bookshelf 3.24: one stable owner control per cover card.
   The card becomes the management surface instead of opening nested popovers. */
.bookshelf-book-card{position:relative;overflow:hidden}
.bookshelf-card-control{position:absolute;inset:0;z-index:20;pointer-events:none}
.bookshelf-card-control>summary{
  pointer-events:auto;position:absolute;right:12px;top:12px;z-index:3;
  box-sizing:border-box;width:30px;height:30px;min-width:30px;min-height:30px;padding:0;
  list-style:none;border:1px solid var(--rs-border-default);border-radius:9px;
  background:var(--rs-surface,#11171c);color:var(--rs-text-muted);cursor:pointer
}
.bookshelf-card-control>summary::-webkit-details-marker{display:none}
.bookshelf-card-control>summary::before,.bookshelf-card-control>summary::after{
  content:"";position:absolute;left:50%;top:50%;background:currentColor;border-radius:1px;transform:translate(-50%,-50%)
}
.bookshelf-card-control>summary::before{width:12px;height:2px}.bookshelf-card-control>summary::after{width:2px;height:12px}
.bookshelf-card-control[open]>summary::before{transform:translate(-50%,-50%) rotate(45deg)}
.bookshelf-card-control[open]>summary::after{transform:translate(-50%,-50%) rotate(45deg)}
.bookshelf-card-control>summary:hover,.bookshelf-card-control>summary:focus-visible,.bookshelf-card-control[open]>summary{
  border-color:var(--rs-border-strong,#6f8ca5);color:var(--rs-text-primary);background:var(--rs-surface-raised,#182129)
}
.bookshelf-card-control-panel{
  pointer-events:auto;position:absolute;inset:0;box-sizing:border-box;display:none;overflow:auto;
  padding:14px 48px 14px 14px;background:var(--rs-surface,#11171c);color:var(--rs-text-primary)
}
.bookshelf-card-control[open] .bookshelf-card-control-panel{display:block}
.bookshelf-card-control-head{display:flex;flex-direction:column;gap:2px;margin:0 0 13px;padding-bottom:10px;border-bottom:1px solid var(--rs-border-default)}
.bookshelf-card-control-head strong{font-size:.88rem;line-height:1.25}.bookshelf-card-control-head span{font-size:.68rem;color:var(--rs-text-muted)}
.bookshelf-card-control-body{display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:8px}
.bookshelf-card-control-body>.bookshelf-owner-states{display:flex;width:100%;flex-wrap:wrap;gap:7px;margin:0}
.bookshelf-card-control-body>.bookshelf-book-rating-action,.bookshelf-card-control-body>.bookshelf-book-review-action{margin:0}
.bookshelf-card-control-body .bookshelf-book-rating-action[open],.bookshelf-card-control-body .bookshelf-book-review-compose[open]{flex-basis:100%;width:100%}
.bookshelf-card-control-body .bookshelf-book-rating-action>form,.bookshelf-card-control-body .bookshelf-book-review-compose>form{box-sizing:border-box;width:100%;max-width:none}
.bookshelf-card-control-body .bookshelf-book-review-compose textarea{box-sizing:border-box;width:100%;min-height:120px;resize:vertical}
.bookshelf-card-collection-control{flex-basis:100%;width:100%;margin-top:4px;padding-top:10px;border-top:1px solid var(--rs-border-default)}
.bookshelf-card-collection-control form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin:0}
.bookshelf-card-collection-control label{display:grid;gap:5px;min-width:0;font-size:.68rem;color:var(--rs-text-muted)}
.bookshelf-card-collection-control select{width:100%;min-width:0}
.bookshelf-card-collection-control button{white-space:nowrap}
/* Old split corner controls are superseded by the unified card control. */
.bookshelf-book-card>.bookshelf-card-manage,.bookshelf-book-card>.bookshelf-add-to-collection{display:none!important}
@media(max-width:620px){
  .bookshelf-card-control>summary{right:10px;top:10px}
  .bookshelf-card-control-panel{padding:13px 46px 13px 13px}
  .bookshelf-card-collection-control form{grid-template-columns:1fr}
  .bookshelf-card-collection-control button{justify-self:start}
}


/* Bookshelf 3.25: expanded card management workspace.
   Management is part of the card flow, never an internally scrolling overlay. */
.bookshelf-grid{align-items:start}
.bookshelf-book-card{overflow:visible}
.bookshelf-card-control{
  position:static;inset:auto;z-index:auto;grid-column:1/-1;width:100%;height:0;min-width:0;pointer-events:none
}
.bookshelf-card-control[open]{height:auto;margin-top:4px;pointer-events:auto}
.bookshelf-card-control>summary{
  position:absolute;right:12px;top:12px;z-index:4;pointer-events:auto
}
.bookshelf-card-control-panel{
  position:static;inset:auto;display:none;overflow:visible;width:100%;max-height:none;
  margin:0;box-sizing:border-box;padding:0;background:transparent;color:var(--rs-text-primary)
}
.bookshelf-card-control[open] .bookshelf-card-control-panel{display:block}
.bookshelf-book-card.is-managing{display:block;min-height:0;padding:14px 16px 16px;transform:none}
.bookshelf-book-card.is-managing:hover{transform:none}
.bookshelf-book-card.is-managing>.bookshelf-cover,
.bookshelf-book-card.is-managing>.bookshelf-book-copy,
.bookshelf-book-card.is-managing>[data-reading-progress]{display:none!important}
.bookshelf-book-card.is-managing>.bookshelf-card-control{display:block;height:auto;margin:0}
.bookshelf-card-control-head{padding:0 44px 12px 0;margin:0 0 14px}
.bookshelf-card-control-head strong{font-size:.95rem}
.bookshelf-card-control-head span{font-size:.74rem}
.bookshelf-card-control-body{gap:10px}
.bookshelf-card-control-body>.bookshelf-owner-states{gap:8px}
.bookshelf-card-collection-control{
  margin-top:4px;padding:14px;border:1px solid var(--rs-border-default);border-radius:11px;
  background:var(--rs-surface-raised,#182129)
}
.bookshelf-card-collection-control form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px}
.bookshelf-card-collection-control label{gap:7px;font-size:.76rem;color:var(--rs-text-secondary,#c3d2e3)}
.bookshelf-card-collection-control select{
  box-sizing:border-box;min-height:40px;padding:7px 34px 7px 10px;
  border:1px solid var(--rs-border-default);border-radius:8px;
  background:var(--rs-surface,#11171c);color:var(--rs-text-primary);font:inherit
}
.bookshelf-card-collection-control select:focus{outline:2px solid var(--rs-border-focus,#79aee3);outline-offset:1px}
.bookshelf-card-collection-control button{min-height:40px;padding-inline:16px}
@media(max-width:620px){
  .bookshelf-book-card.is-managing{padding:13px}
  .bookshelf-card-control>summary{right:10px;top:10px}
  .bookshelf-card-control-panel{padding:0}
  .bookshelf-card-control-head{padding-right:42px}
  .bookshelf-card-collection-control{padding:12px}
  .bookshelf-card-collection-control form{grid-template-columns:1fr}
  .bookshelf-card-collection-control button{justify-self:stretch;width:100%}
}

/* Bookshelf 3.26: one coherent management flow.
   Quick actions wrap as one group; collection membership is a lightweight final action. */
.bookshelf-card-control-body{display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:8px}
.bookshelf-card-control-body>.bookshelf-owner-states{display:contents}
.bookshelf-card-control-body>.bookshelf-owner-states form{flex:0 0 auto;margin:0}
.bookshelf-card-control-body>.bookshelf-book-rating-action,
.bookshelf-card-control-body>.bookshelf-book-review-action{flex:0 0 auto;margin:0}
.bookshelf-card-control-body>.bookshelf-book-rating-action[open],
.bookshelf-card-control-body>.bookshelf-book-review-action:has(.bookshelf-book-review-compose[open]){flex:1 0 100%;width:100%}
.bookshelf-card-collection-control{
  flex:1 0 100%;width:100%;margin-top:4px;padding:10px 0 0;border:0;border-top:1px solid var(--rs-border-default);
  border-radius:0;background:transparent
}
.bookshelf-card-collection-control form{display:flex;align-items:flex-end;gap:7px;flex-wrap:wrap}
.bookshelf-card-collection-control label{display:grid;gap:4px;flex:1 1 190px;min-width:150px;font-size:.7rem;color:var(--rs-text-muted)}
.bookshelf-card-collection-control select{min-height:34px;padding:5px 30px 5px 9px;border-radius:7px;font-size:.78rem}
.bookshelf-card-collection-control button{min-height:34px;padding:5px 12px;border-radius:7px;font-size:.78rem;white-space:nowrap}
@media(max-width:620px){
  .bookshelf-card-collection-control{padding-top:9px}
  .bookshelf-card-collection-control form{display:flex;align-items:flex-end;gap:7px}
  .bookshelf-card-collection-control label{flex:1 1 180px}
  .bookshelf-card-collection-control button{width:auto;justify-self:auto}
}


/* Bookshelf 3.28: stable card rhythm and explicit rating editor. */
.bookshelf-grid{align-items:stretch}
.bookshelf-book-card{align-self:stretch;height:100%;box-sizing:border-box}
.bookshelf-grid:has(.bookshelf-book-card.is-managing) .bookshelf-book-card:not(.is-managing){align-self:start;height:auto}
.bookshelf-book-card.is-managing{align-self:start;height:auto}
.bookshelf-book-card:has(> .bookshelf-card-control) > .bookshelf-book-copy{padding-right:42px}

/* The rating trigger stays in the quick-action flow. Only its editor gets a new row. */
.bookshelf-card-control-body>.bookshelf-book-rating-action{display:contents}
.bookshelf-rating-toggle{flex:0 0 auto}
.bookshelf-rating-toggle.is-active{border-color:var(--rs-border-strong,#6f8ca5);color:var(--rs-text-primary)}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor]{
  flex:1 0 100%;width:100%;box-sizing:border-box;margin:2px 0 0;padding-top:10px;
  border-top:1px solid var(--rs-border-default)
}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor][hidden]{display:none!important}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor]{align-items:flex-end;gap:7px;flex-wrap:wrap}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor]:not([hidden]){display:flex}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor]>label{flex:0 1 auto}
.bookshelf-card-control-body>.bookshelf-book-rating-action>[data-rating-editor]>label>span{font-size:.7rem}
.bookshelf-card-control-body>.bookshelf-book-rating-action select,
.bookshelf-card-control-body>.bookshelf-book-rating-action button{min-height:32px;height:32px}
.bookshelf-card-control-body>.bookshelf-book-rating-action .bookshelf-danger-action{margin-left:4px;background:transparent}
.bookshelf-card-control-body .bookshelf-read-date{
  flex:1 0 100%;display:flex;align-items:center;gap:7px;flex-wrap:wrap;
  margin-top:2px;padding-top:9px;border-top:1px solid var(--rs-border-default);
  color:var(--rs-text-muted);font-size:.72rem
}
.bookshelf-card-control-body .bookshelf-read-date>button{height:auto;min-height:28px;background:transparent}
.bookshelf-card-control-body .bookshelf-read-date-editor{display:flex;align-items:center;gap:7px;flex-wrap:wrap;width:100%}
.bookshelf-card-control-body .bookshelf-read-date-editor[hidden]{display:none}
.bookshelf-card-control-body .bookshelf-read-date-editor input{
  box-sizing:border-box;min-height:32px;border:1px solid var(--rs-border-default);border-radius:7px;
  background:var(--rs-surface,#11171c);color:var(--rs-text-primary);font:inherit;padding:4px 8px
}

/* Collection membership is deliberately secondary and uses the same dark control language. */
.bookshelf-card-collection-control{margin-top:2px;padding-top:9px}
.bookshelf-card-collection-control form{align-items:center;gap:7px}
.bookshelf-card-collection-control label{gap:4px}
.bookshelf-card-collection-control select{min-height:32px;height:32px}
.bookshelf-card-collection-control button{
  appearance:none!important;-webkit-appearance:none!important;box-sizing:border-box!important;
  min-height:32px!important;height:32px!important;padding:3px 10px!important;
  border:1px solid var(--rs-border-default)!important;border-radius:7px!important;
  background:var(--rs-surface-raised,#182129)!important;color:var(--rs-text-secondary,#c3d2e3)!important;
  font:inherit!important;font-size:.76rem!important;font-weight:650!important;cursor:pointer;box-shadow:none!important
}
.bookshelf-card-collection-control button:hover,.bookshelf-card-collection-control button:focus-visible{
  border-color:var(--rs-border-strong,#6f8ca5)!important;background:var(--rs-surface-raised,#182129)!important;color:var(--rs-text-primary)!important
}
@media(max-width:620px){
  .bookshelf-book-card:has(> .bookshelf-card-control) > .bookshelf-book-copy{padding-right:38px}
  .bookshelf-card-control-body>.bookshelf-book-rating-action .bookshelf-danger-action{margin-left:0}
  .bookshelf-card-collection-control form{align-items:flex-end}
  .bookshelf-card-collection-control button{width:auto!important}
}


/* Bookshelf 3.29: compact, consistent inline management editors. */
.bookshelf-card-control-head{margin-bottom:12px;padding:0 44px 9px 0}
.bookshelf-card-control-head strong{display:none}
.bookshelf-card-control-head span{font-size:.72rem}

/* All quick-action triggers share the same control dimensions and appearance. */
.bookshelf-card-control-body .bookshelf-rating-toggle,
.bookshelf-card-control-body .bookshelf-review-toggle{
  appearance:none;-webkit-appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  flex:0 0 auto;width:auto;min-height:28px;height:28px;margin:0;padding:3px 7px;
  border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-muted);
  font:inherit;font-size:11.5px;font-weight:400;line-height:1.2;white-space:nowrap;cursor:pointer;box-shadow:none
}
.bookshelf-card-control-body .bookshelf-rating-toggle:hover,
.bookshelf-card-control-body .bookshelf-rating-toggle:focus-visible,
.bookshelf-card-control-body .bookshelf-review-toggle:hover,
.bookshelf-card-control-body .bookshelf-review-toggle:focus-visible,
.bookshelf-card-control-body .bookshelf-rating-toggle.is-active,
.bookshelf-card-control-body .bookshelf-review-toggle.is-active{
  border-color:var(--rs-border-strong);background:var(--rs-surface-2);color:var(--rs-text-primary)
}

/* Rating and review editors occupy a dedicated row below the unchanged trigger row. */
.bookshelf-card-control-body>.bookshelf-book-review-action{display:contents}
.bookshelf-card-control-body [data-rating-editor],
.bookshelf-card-control-body [data-review-editor]{
  flex:1 0 100%;width:100%;box-sizing:border-box;margin:2px 0 0;padding:10px 0 0;border:0;border-top:1px solid var(--rs-border-default);border-radius:0;background:transparent
}
.bookshelf-card-control-body [data-rating-editor][hidden],
.bookshelf-card-control-body [data-review-editor][hidden]{display:none!important}
.bookshelf-card-control-body [data-review-editor]:not([hidden]){display:grid;gap:10px}
.bookshelf-card-control-body [data-review-editor] textarea{min-height:150px;background:var(--rs-surface-2)}
.bookshelf-card-control-body [data-review-editor] label>span:first-child{display:block;margin-bottom:5px;font-size:.72rem;color:var(--rs-text-muted)}

/* Collection is one light control row; select and submit share an exact height/baseline. */
.bookshelf-card-collection-control form{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:7px}
.bookshelf-card-collection-control label{margin:0;align-self:end}
.bookshelf-card-collection-control select,
.bookshelf-card-collection-control button{box-sizing:border-box!important;height:32px!important;min-height:32px!important;margin:0!important}
.bookshelf-card-collection-control button{align-self:end!important;display:inline-flex!important;align-items:center!important;justify-content:center!important}
@media(max-width:620px){
  .bookshelf-card-control-head{padding-right:40px}
  .bookshelf-card-collection-control form{grid-template-columns:minmax(0,1fr) auto;align-items:end}
  .bookshelf-card-collection-control button{width:auto!important}
}


/* Bookshelf 3.30: stable quick-action controls. */
.bookshelf-card-control-body .bookshelf-rating-toggle,
.bookshelf-card-control-body .bookshelf-review-toggle{
  box-sizing:border-box!important;width:auto!important;min-width:0!important;min-height:28px!important;height:28px!important;
  margin:0!important;padding:3px 7px!important;border-width:1px!important;border-radius:7px!important;
  background:transparent!important;color:var(--rs-text-muted)!important;font-size:11.5px!important;font-weight:400!important;line-height:1.2!important
}
.bookshelf-card-control-body .bookshelf-rating-toggle:hover,
.bookshelf-card-control-body .bookshelf-rating-toggle:focus-visible,
.bookshelf-card-control-body .bookshelf-review-toggle:hover,
.bookshelf-card-control-body .bookshelf-review-toggle:focus-visible,
.bookshelf-card-control-body .bookshelf-rating-toggle.is-active,
.bookshelf-card-control-body .bookshelf-review-toggle.is-active{
  background:var(--rs-surface-2)!important;color:var(--rs-text-primary)!important
}

/* Bookshelf 3.31: native inline editors. Opening is functional without JS. */
.bookshelf-card-control-body details.bookshelf-book-rating-action,
.bookshelf-card-control-body details.bookshelf-book-review-compose{display:contents}
.bookshelf-card-control-body details.bookshelf-book-rating-action>summary,
.bookshelf-card-control-body details.bookshelf-book-review-compose>summary{list-style:none;cursor:pointer}
.bookshelf-card-control-body details.bookshelf-book-rating-action>summary::-webkit-details-marker,
.bookshelf-card-control-body details.bookshelf-book-review-compose>summary::-webkit-details-marker{display:none}
.bookshelf-card-control-body details.bookshelf-book-rating-action[open],
.bookshelf-card-control-body details.bookshelf-book-review-compose[open]{display:contents}
.bookshelf-card-control-body details.bookshelf-book-rating-action>form,
.bookshelf-card-control-body details.bookshelf-book-review-compose>form{display:none}
.bookshelf-card-control-body details.bookshelf-book-rating-action[open]>form,
.bookshelf-card-control-body details.bookshelf-book-review-compose[open]>form{display:flex;flex:1 0 100%;width:100%;box-sizing:border-box;margin-top:8px;padding-top:10px;border-top:1px solid var(--rs-border-default)}
.bookshelf-card-control-body details.bookshelf-book-review-compose[open]>form{display:grid;gap:10px}
.bookshelf-card-control-body details.bookshelf-book-rating-action>summary,
.bookshelf-card-control-body details.bookshelf-book-review-compose>summary{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;min-height:28px;height:28px;width:auto;padding:3px 9px;border:1px solid var(--rs-border-default);border-radius:7px;background:transparent;color:var(--rs-text-secondary);font:inherit;font-size:11.5px;line-height:1.2;font-weight:400;white-space:nowrap}
.bookshelf-card-control-body details.bookshelf-book-rating-action[open]>summary,
.bookshelf-card-control-body details.bookshelf-book-review-compose[open]>summary{border-color:var(--rs-border-strong);color:var(--rs-text-primary);background:var(--rs-surface-2)}


/* Bookshelf 3.32.0: stable management action row and isolated editors. */
.bookshelf-card-control-body>.bookshelf-owner-states,
.bookshelf-card-control-body>details.bookshelf-book-rating-action,
.bookshelf-card-control-body>.bookshelf-book-review-action{order:1}
.bookshelf-card-control-body details.bookshelf-book-rating-action>summary,
.bookshelf-card-control-body details.bookshelf-book-review-compose>summary{order:1}
.bookshelf-card-control-body details.bookshelf-book-rating-action>form,
.bookshelf-card-control-body details.bookshelf-book-review-compose>form{order:10}
.bookshelf-card-control-body>.bookshelf-card-collection-control{order:20;flex:1 0 100%;width:100%}
.bookshelf-card-control-body .bookshelf-read-date{flex:1 0 100%}
.bookshelf-card-control-body .bookshelf-read-date-editor{margin-top:7px;padding-top:8px;border-top:1px solid var(--rs-border-default)}
.bookshelf-card-collection-control form.is-saved button{border-color:var(--rs-border-strong);background:var(--rs-surface-2)}

/* Bookshelf 3.33: consolidated Book Card Management. Visual contract stays compact. */
.bookshelf-card-control-body{display:flex;align-items:flex-start;align-content:flex-start;flex-wrap:wrap;gap:7px}
.bookshelf-card-control-body>.bookshelf-owner-states{display:contents}
.bookshelf-card-control-body>.bookshelf-book-rating-action,.bookshelf-card-control-body>.bookshelf-book-review-action{display:contents;margin:0}
.bookshelf-card-control-body [data-card-editor]{order:10;flex:1 0 100%;width:100%;box-sizing:border-box;margin:8px 0 0;padding:10px 0 0;border-top:1px solid var(--rs-border-default)}
.bookshelf-card-control-body [data-card-editor][hidden]{display:none!important}
.bookshelf-card-control-body [data-card-editor="rating"]{align-items:flex-end;gap:7px;flex-wrap:wrap}
.bookshelf-card-control-body [data-card-editor="rating"]:not([hidden]){display:flex}
.bookshelf-card-control-body [data-card-editor="review"]:not([hidden]){display:grid;gap:10px}
.bookshelf-card-control-body [data-card-editor="review"] textarea{min-height:150px;background:var(--rs-surface-2)}
.bookshelf-card-control-body [data-card-editor-trigger]{box-sizing:border-box!important;display:inline-flex;align-items:center;justify-content:center;width:auto!important;min-width:0!important;min-height:28px!important;height:28px!important;margin:0!important;padding:3px 7px!important;border:1px solid var(--rs-border-default)!important;border-radius:7px!important;background:transparent!important;color:var(--rs-text-secondary)!important;font:inherit!important;font-size:11.5px!important;font-weight:400!important;line-height:1.2!important;white-space:nowrap;box-shadow:none!important;cursor:pointer}
.bookshelf-card-control-body [data-card-editor-trigger].is-active{border-color:var(--rs-border-strong)!important;background:var(--rs-surface-2)!important;color:var(--rs-text-primary)!important}
.bookshelf-card-control-body [data-card-editor-trigger]:disabled{opacity:.5;cursor:not-allowed}
.bookshelf-card-control-body>.bookshelf-card-collection-control{order:20;flex:1 0 100%;width:100%}
.bookshelf-card-collection-memberships{display:flex;flex-wrap:wrap;gap:5px;margin:0 0 7px;padding:0;list-style:none}
.bookshelf-card-collection-memberships li{font-size:.7rem;color:var(--rs-text-muted)}
.bookshelf-card-collection-memberships li::before{content:'✓ ';color:var(--rs-text-secondary)}

/* 3.40 Card Collection membership manager. */
.bookshelf-card-collection-memberships li{display:inline-flex;align-items:center;gap:3px}
.bookshelf-card-collection-memberships li form{display:inline-flex;margin:0}
.bookshelf-card-collection-memberships li button{display:inline-grid;place-items:center;width:18px;height:18px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:.82rem;line-height:1;cursor:pointer}
.bookshelf-card-collection-memberships li button:hover,.bookshelf-card-collection-memberships li button:focus-visible{background:rgba(224,107,107,.08);color:#f0a0a0;outline:none}


/* Bookshelf 3.41: compact Collection membership chips and strict empty-target hiding. */
.bookshelf-card-collection-control [data-card-collection-form][hidden]{display:none!important}
.bookshelf-card-collection-memberships{gap:6px;margin:0;padding:0;list-style:none}
.bookshelf-card-collection-memberships:not([hidden]){display:flex}
.bookshelf-card-collection-memberships[hidden]{display:none!important}
.bookshelf-card-collection-memberships li{box-sizing:border-box;display:inline-flex;align-items:center;gap:5px;min-height:26px;padding:3px 4px 3px 8px;border:1px solid var(--rs-border-default);border-radius:7px;background:var(--rs-surface-2,var(--rs-surface-raised));color:var(--rs-text-secondary);font-size:.72rem;line-height:1.2}
.bookshelf-card-collection-memberships li::before{content:'✓';color:var(--rs-text-secondary)}
.bookshelf-card-collection-memberships li form{display:inline-flex;margin:0}
.bookshelf-card-collection-memberships li button{display:inline-grid;place-items:center;box-sizing:border-box;width:20px;height:20px;padding:0;border:0;border-radius:5px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:.82rem;line-height:1;cursor:pointer}
.bookshelf-card-collection-memberships li button:hover,.bookshelf-card-collection-memberships li button:focus-visible{background:rgba(224,107,107,.09);color:#f0a0a0;outline:1px solid rgba(224,107,107,.24);outline-offset:0}


/* Bookshelf 3.42: Collection management information hierarchy and modern membership chips. */
.bookshelf-card-collection-memberships-block[hidden]{display:none!important}
.bookshelf-card-collection-memberships-block{display:grid;gap:6px;margin:0}
.bookshelf-card-collection-label{display:block;color:var(--rs-text-muted);font-size:.68rem;font-weight:500;line-height:1.2}
.bookshelf-card-collection-memberships{gap:6px;margin:0}
.bookshelf-card-collection-memberships li{gap:0;min-height:27px;padding:0;border:1px solid var(--rs-border-default);border-radius:999px;background:var(--rs-surface-2,var(--rs-surface-raised));overflow:hidden;color:var(--rs-text-secondary);font-size:.72rem;line-height:1}
.bookshelf-card-collection-memberships li::before{display:inline-grid;place-items:center;align-self:stretch;box-sizing:border-box;min-width:25px;padding:0 3px 0 7px;content:'✓';color:var(--rs-text-secondary);font-size:.72rem}
.bookshelf-card-collection-memberships li>span{display:inline-flex;align-items:center;min-height:25px;padding:0 7px 0 1px;white-space:nowrap}
.bookshelf-card-collection-memberships li form{align-self:stretch;display:inline-flex;margin:0;border-left:1px solid var(--rs-border-default)}
.bookshelf-card-collection-memberships li button{align-self:stretch;width:25px;height:auto;min-height:25px;border-radius:0;background:transparent;color:var(--rs-text-muted);font-size:.78rem;transition:background-color .12s ease,color .12s ease}
.bookshelf-card-collection-memberships li button:hover,.bookshelf-card-collection-memberships li button:focus-visible{background:rgba(224,107,107,.10);color:#f0a0a0;outline:0}
.bookshelf-card-collection-control>[data-card-collection-form]:not([hidden]){margin-top:9px}


/* Bookshelf 3.43: final Collection chip rhythm.
   Override the generic 32px Collection form button contract for the inline remove action. */
.bookshelf-card-collection-memberships li{min-height:28px;border-radius:7px}
.bookshelf-card-collection-memberships li::before{min-width:23px;padding-left:6px;font-size:11.5px}
.bookshelf-card-collection-memberships li>span{min-height:26px;padding:0 6px 0 1px;font-size:11.5px}
.bookshelf-card-collection-control .bookshelf-card-collection-memberships li form{gap:0}
.bookshelf-card-collection-control .bookshelf-card-collection-memberships li button{
  box-sizing:border-box!important;width:24px!important;min-width:24px!important;height:26px!important;min-height:26px!important;
  padding:0!important;border:0!important;border-left:1px solid var(--rs-border-default)!important;
  border-radius:0!important;background:transparent!important;color:var(--rs-text-muted)!important;
  font-size:.78rem!important;font-weight:400!important;line-height:1!important;box-shadow:none!important
}
.bookshelf-card-collection-control .bookshelf-card-collection-memberships li button:hover,
.bookshelf-card-collection-control .bookshelf-card-collection-memberships li button:focus-visible{
  border-color:var(--rs-border-default)!important;background:rgba(224,107,107,.10)!important;color:#f0a0a0!important;outline:0
}

/* 3.44.0 Reading Card review workspace */
.bookshelf-review-dialog{width:min(720px,calc(100vw - 28px));max-width:720px;max-height:min(86vh,860px);padding:0;border:1px solid var(--rs-border-strong);border-radius:14px;background:var(--rs-surface-raised);color:var(--rs-text-primary);box-shadow:0 24px 70px rgba(0,0,0,.5);overflow:hidden}.bookshelf-review-dialog::backdrop{background:rgba(4,8,12,.72);backdrop-filter:blur(2px)}.bookshelf-review-dialog-shell{display:flex;flex-direction:column;max-height:min(86vh,860px)}.bookshelf-review-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:18px 20px 15px;border-bottom:1px solid var(--rs-border-default)}.bookshelf-review-dialog-head h2{margin:2px 0 0;font-size:1.08rem;line-height:1.3}.bookshelf-review-dialog-head p{margin:4px 0 0;color:var(--rs-text-muted);font-size:.8rem}.bookshelf-review-dialog-eyebrow{display:block;color:var(--rs-text-muted);font-size:.7rem;font-weight:650;letter-spacing:.04em;text-transform:uppercase}.bookshelf-review-dialog-close{flex:0 0 auto;display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--rs-border-default);border-radius:9px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:1.15rem;cursor:pointer}.bookshelf-review-dialog-close:hover,.bookshelf-review-dialog-close:focus-visible{color:var(--rs-text-primary);border-color:var(--rs-border-strong);background:var(--rs-surface-2)}.bookshelf-review-dialog-form{display:flex;flex-direction:column;gap:15px;min-height:0;padding:18px 20px 20px;overflow:auto}.bookshelf-review-dialog-text>span,.bookshelf-review-date-field>span{display:block;margin-bottom:6px;color:var(--rs-text-muted);font-size:.76rem}.bookshelf-review-dialog-text textarea{box-sizing:border-box;width:100%;min-height:300px;resize:vertical;padding:11px 12px;border:1px solid var(--rs-border-default);border-radius:9px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;font-size:.88rem;line-height:1.6;outline:none}.bookshelf-review-dialog-text textarea:focus{border-color:var(--rs-border-focus);box-shadow:0 0 0 2px rgba(120,170,220,.12)}.bookshelf-review-dialog-options{display:flex;align-items:end;justify-content:space-between;gap:16px;flex-wrap:wrap}.bookshelf-review-dialog-options .bookshelf-review-spoiler-option{min-height:34px}.bookshelf-review-date-field input{box-sizing:border-box;height:34px;padding:4px 8px;border:1px solid var(--rs-border-default);border-radius:7px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;font-size:.78rem}.bookshelf-review-dialog-actions{display:flex;align-items:center;gap:8px;padding-top:3px}.bookshelf-review-dialog-action-spacer{flex:1}.bookshelf-review-dialog-actions button{min-height:32px}.bookshelf-review-dialog[open]{animation:bookshelf-review-dialog-in .14s ease-out}@keyframes bookshelf-review-dialog-in{from{opacity:0;transform:translateY(5px) scale(.99)}to{opacity:1;transform:none}}body.bookshelf-review-dialog-open{overflow:hidden}@media(max-width:620px){.bookshelf-review-dialog{width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:12px}.bookshelf-review-dialog-shell{max-height:calc(100vh - 16px)}.bookshelf-review-dialog-head{padding:15px}.bookshelf-review-dialog-form{padding:15px}.bookshelf-review-dialog-text textarea{min-height:42vh}.bookshelf-review-dialog-options{align-items:flex-start;flex-direction:column}.bookshelf-review-dialog-actions{flex-wrap:wrap}.bookshelf-review-dialog-action-spacer{display:none}.bookshelf-review-dialog-actions .bookshelf-danger-action{margin-right:auto}}


/* Bookshelf 3.47: review modal is a focused, self-contained writing workspace. */
.bookshelf-review-dialog{box-sizing:border-box;width:min(760px,calc(100vw - 32px));max-width:760px;margin:auto;padding:0!important;border:1px solid var(--rs-border-strong);border-radius:14px;background:var(--rs-surface-raised);overflow:hidden}
.bookshelf-review-dialog-shell{box-sizing:border-box;width:100%;max-width:none;max-height:min(88vh,900px);background:var(--rs-surface-raised)}
.bookshelf-review-dialog-head{box-sizing:border-box;width:100%;margin:0;padding:18px 20px 16px;background:transparent;border-bottom:1px solid var(--rs-border-default)}
.bookshelf-review-dialog-head>div{min-width:0;flex:1}
.bookshelf-review-dialog-head h2{max-width:100%;margin:3px 0 0;font-size:1.05rem;line-height:1.35}
.bookshelf-review-dialog-head p{margin:4px 0 0;font-size:.78rem}
.bookshelf-review-dialog-form{box-sizing:border-box;width:100%;gap:16px;margin:0;padding:18px 20px 20px;background:transparent;overflow:auto}
.bookshelf-review-dialog-text{display:block;width:100%;margin:0}
.bookshelf-review-dialog-text textarea{display:block;width:100%;min-height:320px;max-height:55vh;margin:0;padding:12px 13px;border-radius:9px;line-height:1.55}
.bookshelf-review-dialog-options{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:18px;padding:0}
.bookshelf-review-spoiler-option{display:inline-flex;align-items:center;gap:7px;margin:0;color:var(--rs-text-secondary);font-size:.8rem}
.bookshelf-review-spoiler-option input{margin:0}
.bookshelf-review-date-field{display:block;margin:0}
.bookshelf-review-date-field input{min-width:132px}
.bookshelf-review-dialog-actions{box-sizing:border-box;display:flex;width:100%;align-items:center;gap:8px;margin:0;padding:14px 0 0;border-top:1px solid var(--rs-border-default)}
.bookshelf-review-dialog-actions button{box-sizing:border-box;min-height:32px;margin:0}
.bookshelf-review-dialog-close{border-radius:8px}
@media(max-width:620px){.bookshelf-review-dialog{width:calc(100vw - 16px);max-width:none}.bookshelf-review-dialog-head{padding:15px}.bookshelf-review-dialog-form{padding:15px}.bookshelf-review-dialog-text textarea{min-height:46vh;max-height:none}.bookshelf-review-dialog-options{grid-template-columns:1fr;align-items:start;gap:12px}.bookshelf-review-date-field input{width:100%}.bookshelf-review-dialog-actions{flex-wrap:wrap}.bookshelf-review-dialog-actions .bookshelf-primary-action,.bookshelf-review-dialog-actions .bookshelf-secondary-action{flex:1 1 auto}}


/* Bookshelf 3.48: polished review writing workspace. */
.bookshelf-review-dialog{
  width:min(700px,calc(100vw - 32px));
  max-width:700px;
  border-color:var(--rs-border-default);
  border-radius:16px;
  background:var(--rs-surface-raised);
  box-shadow:0 24px 80px rgba(0,0,0,.56);
}
.bookshelf-review-dialog-shell{max-height:min(88vh,820px)}
.bookshelf-review-dialog-head{
  align-items:center;
  padding:17px 20px 16px;
  background:var(--rs-surface-raised);
}
.bookshelf-review-dialog-eyebrow{font-size:.67rem;letter-spacing:.055em}
.bookshelf-review-dialog-head h2{font-size:1.04rem;line-height:1.3}
.bookshelf-review-dialog-head p{font-size:.76rem}
.bookshelf-review-dialog-close{width:30px;height:30px;border-radius:8px;font-size:1rem}
.bookshelf-review-dialog-form{gap:14px;padding:18px 20px 20px}
.bookshelf-review-dialog-text>span{margin-bottom:7px;font-size:.74rem}
.bookshelf-review-dialog-text textarea{
  min-height:240px;
  max-height:52vh;
  padding:12px 13px;
  border-radius:10px;
  font-size:.86rem;
  line-height:1.6;
}
.bookshelf-review-dialog-options{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:18px;
  padding:2px 0 0;
}
.bookshelf-review-dialog-options .bookshelf-review-spoiler-option{
  min-height:32px;
  color:var(--rs-text-secondary);
  font-size:.78rem;
}
.bookshelf-review-dialog-options .bookshelf-review-spoiler-option input{
  width:15px;
  height:15px;
  accent-color:var(--rs-accent,#6fa8dc);
}
.bookshelf-review-date-field>span{margin-bottom:5px;font-size:.7rem}
.bookshelf-review-date-field input{
  min-width:138px;
  height:32px;
  padding:3px 8px;
  border-radius:8px;
  font-size:.76rem;
}
.bookshelf-review-dialog-actions{
  justify-content:flex-end;
  gap:7px;
  padding-top:14px;
  border-top:1px solid var(--rs-border-default);
}
.bookshelf-review-dialog-action-spacer{display:none}
.bookshelf-review-dialog-actions .bookshelf-primary-action,
.bookshelf-review-dialog-actions .bookshelf-secondary-action,
.bookshelf-review-dialog-actions .bookshelf-danger-action{
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:auto;
  min-height:32px;
  height:32px;
  padding:3px 11px;
  border-radius:8px;
  font:inherit;
  font-size:11.5px;
  line-height:1.2;
  white-space:nowrap;
}
.bookshelf-review-dialog-actions .bookshelf-secondary-action{
  border:1px solid var(--rs-border-default);
  background:transparent;
  color:var(--rs-text-secondary);
}
.bookshelf-review-dialog-actions .bookshelf-primary-action{
  border:1px solid var(--rs-border-strong);
  background:var(--rs-surface-2);
  color:var(--rs-text-primary);
  font-weight:650;
}
.bookshelf-review-dialog-actions .bookshelf-danger-action{margin-right:auto}
@media(max-width:620px){
  .bookshelf-review-dialog{width:calc(100vw - 16px);max-width:none;border-radius:12px}
  .bookshelf-review-dialog-head{padding:15px}
  .bookshelf-review-dialog-form{padding:15px;gap:13px}
  .bookshelf-review-dialog-text textarea{min-height:42vh;max-height:none}
  .bookshelf-review-dialog-options{grid-template-columns:1fr;align-items:start;gap:11px}
  .bookshelf-review-date-field{width:100%}
  .bookshelf-review-date-field input{width:100%}
  .bookshelf-review-dialog-actions{justify-content:flex-end;flex-wrap:wrap}
  .bookshelf-review-dialog-actions .bookshelf-danger-action{width:100%;margin-right:0;order:3}
}


/* Bookshelf 3.49: review modal surface and localized date polish. */
.bookshelf-review-dialog,
.bookshelf-review-dialog-shell,
.bookshelf-review-dialog-head,
.bookshelf-review-dialog-form{background:var(--rs-surface-raised)!important}
.bookshelf-review-dialog-form{isolation:isolate}
.bookshelf-review-date-field input[type="date"]{box-sizing:border-box;min-width:138px;height:32px;padding:3px 9px;border:1px solid var(--rs-border-default);border-radius:8px;background:var(--rs-surface-2);color:var(--rs-text-primary);font:inherit;font-size:.76rem;letter-spacing:.01em}
.bookshelf-review-date-field input[type="date"]:focus{outline:none;border-color:var(--rs-border-focus);box-shadow:0 0 0 2px rgba(120,170,220,.12)}

/* Bookshelf 3.50: keep the backdrop translucent, but the review workspace itself fully opaque. */
.bookshelf-review-dialog,
.bookshelf-review-dialog-shell,
.bookshelf-review-dialog-head,
.bookshelf-review-dialog-form{
  background-color:var(--rs-surface,#11171c)!important;
  background-image:none!important;
}


/* Bookshelf 3.51: review deletion confirmation stays inside the focused workspace. */
.bookshelf-review-delete-confirm{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:11px 12px;border:1px solid var(--rs-border-default);border-radius:9px;background:var(--rs-surface-2)}
.bookshelf-review-delete-confirm[hidden]{display:none!important}
.bookshelf-review-delete-confirm>div:first-child{display:grid;gap:2px;min-width:0}
.bookshelf-review-delete-confirm strong{font-size:.8rem;color:var(--rs-text-primary)}
.bookshelf-review-delete-confirm span{font-size:.74rem;color:var(--rs-text-muted)}
.bookshelf-review-delete-confirm-actions{display:flex;gap:8px;flex:0 0 auto}
@media(max-width:620px){.bookshelf-review-delete-confirm{align-items:stretch;flex-direction:column}.bookshelf-review-delete-confirm-actions{justify-content:flex-end}}


/* Bookshelf 3.55: deletion confirmation replaces the normal modal footer instead of stacking another action panel above it. */
.bookshelf-review-dialog-actions[hidden]{display:none!important}
.bookshelf-review-delete-confirm{
  padding:12px 0 0;
  border:0;
  border-top:1px solid var(--rs-border-default);
  border-radius:0;
  background:transparent;
}
.bookshelf-review-delete-confirm-actions{align-items:center}
@media(max-width:620px){
  .bookshelf-review-delete-confirm{padding-top:12px}
}


/* Bookshelf 3.56: keep read-date editing independent from the open rating editor and align review confirmation actions with the modal controls. */
.bookshelf-review-delete-confirm-actions .bookshelf-secondary-action,
.bookshelf-review-delete-confirm-actions .bookshelf-danger-action{
  appearance:none;-webkit-appearance:none;box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;
  width:auto;min-height:32px;height:32px;margin:0;padding:3px 11px;border-radius:8px;
  font:inherit;font-size:11.5px;line-height:1.2;white-space:nowrap;cursor:pointer;box-shadow:none
}
.bookshelf-review-delete-confirm-actions .bookshelf-secondary-action{
  border:1px solid var(--rs-border-default);background:transparent;color:var(--rs-text-secondary)
}
.bookshelf-review-delete-confirm-actions .bookshelf-secondary-action:hover,
.bookshelf-review-delete-confirm-actions .bookshelf-secondary-action:focus-visible{
  border-color:var(--rs-border-strong);background:var(--rs-surface-2);color:var(--rs-text-primary)
}
.bookshelf-review-delete-confirm-actions .bookshelf-danger-action{
  border:1px solid rgba(220,105,105,.55);background:transparent;color:var(--rs-text-muted);font-weight:600
}
.bookshelf-review-delete-confirm-actions .bookshelf-danger-action:hover,
.bookshelf-review-delete-confirm-actions .bookshelf-danger-action:focus-visible{
  border-color:#d86d6d;color:#f0a0a0;background:rgba(224,107,107,.08)
}

/* 3.57.4: Reading Card uses the same action flow on desktop and mobile.
   Mobile keeps full labels but no longer turns owner states into a separate flex row. */
@media(max-width:720px){
  .bookshelf-card-control .bookshelf-owner-states{display:contents}
  .bookshelf-card-control .bookshelf-owner-states form{display:inline-flex;width:auto;min-width:0}
  .bookshelf-card-control .bookshelf-owner-states button{width:auto;min-width:0;min-height:28px;padding:3px 7px;gap:5px}
  .bookshelf-card-control .bookshelf-owner-states button>span[aria-hidden="true"]{display:inline-grid;place-items:center;width:13px}
  .bookshelf-card-control .bookshelf-owner-state-label{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:nowrap;border:0;text-overflow:clip}
}

/* Bookshelf 3.57.5: review creation is offered only after the reader has rated the book. */
.bookshelf-card-control-body>[data-book-review-action][hidden]{display:none!important}

/* 3.58.4 Achievements: established SVG design with balanced center-value sizing. */
.bookshelf-achievements{padding-block:4px 10px}
.bookshelf-achievements .bookshelf-section-head{margin-bottom:10px}
.bookshelf-achievement-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;align-items:start}
.bookshelf-achievement{display:flex;min-width:0;flex-direction:column;align-items:center;text-align:center}
.bookshelf-achievement-toggle{appearance:none;-webkit-appearance:none;display:block;margin:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;cursor:pointer;border-radius:50%}
.bookshelf-achievement-toggle:focus-visible{outline:2px solid var(--rs-focus,#8fc7ff);outline-offset:4px}
.bookshelf-achievement-ring{position:relative;display:block;width:118px;height:118px}
.bookshelf-achievement-ring svg{display:block;width:100%;height:100%;overflow:visible}
.bookshelf-achievement-bg{fill:none;stroke:#444;stroke-width:10}
.bookshelf-achievement-progress{fill:none;stroke-width:10;stroke-dasharray:251.2;stroke-linecap:butt;transform:rotate(-90deg);transform-origin:50% 50%}
.bookshelf-achievement-gaps{fill:none;stroke:#000;stroke-width:10;stroke-linecap:butt;stroke-dasharray:2.5 29;stroke-dashoffset:2}
.bookshelf-achievement-outline{fill:none;stroke:#333;stroke-width:2;stroke-linecap:butt}
.bookshelf-achievement-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1}
.bookshelf-achievement-center strong{font-size:2.25em;font-weight:bold}
.bookshelf-achievement-percent strong{font-size:2.05em}
.bookshelf-achievement-center span{margin-top:6px;font-size:.8em;font-weight:400;text-transform:none}
.bookshelf-achievement.is-max .bookshelf-achievement-center strong,.bookshelf-achievement.is-max .bookshelf-achievement-center span{color:gold}
.bookshelf-achievement-percent{visibility:hidden}
.bookshelf-achievement-toggle:hover .bookshelf-achievement-rank,.bookshelf-achievement-toggle:focus-visible .bookshelf-achievement-rank,.bookshelf-achievement-toggle:active .bookshelf-achievement-rank{visibility:hidden}
.bookshelf-achievement-toggle:hover .bookshelf-achievement-percent,.bookshelf-achievement-toggle:focus-visible .bookshelf-achievement-percent,.bookshelf-achievement-toggle:active .bookshelf-achievement-percent{visibility:visible}
.bookshelf-achievement h3{margin:8px 0 0;font-size:1rem;font-weight:400}
@media(max-width:900px){.bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:20px}}
@media(max-width:520px){.bookshelf-achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 10px}.bookshelf-achievement-ring{width:112px;height:112px}}

/* Bookshelf 3.59.0: Overview v2 composition.
   Overview is a curated public-reader summary, not a duplicate of each full section. */
.bookshelf-overview-primary-grid,.bookshelf-overview-highlight-grid,.bookshelf-overview-secondary-grid{display:grid;gap:18px;align-items:start}
.bookshelf-overview-primary-grid{grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr)}
.bookshelf-overview-highlight-grid{grid-template-columns:minmax(0,1.45fr) minmax(300px,.55fr)}
.bookshelf-overview-secondary-grid{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr)}
.bookshelf-overview-panel{min-width:0}
.bookshelf-overview-primary-grid>.bookshelf-section,.bookshelf-overview-highlight-grid>.bookshelf-section,.bookshelf-overview-secondary-grid>.bookshelf-section{margin-top:30px}
.bookshelf-overview-primary-grid .bookshelf-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr))}
.bookshelf-overview-primary-grid .bookshelf-latest-review-card{height:100%;box-sizing:border-box}
.bookshelf-overview-highlight-grid .bookshelf-favorites{padding:18px}
.bookshelf-overview-highlight-grid .bookshelf-favorite-books{grid-template-columns:repeat(3,minmax(0,1fr))}
.bookshelf-overview-highlight-grid .bookshelf-perfect-read-grid{grid-template-columns:1fr}
.bookshelf-overview-secondary-grid .bookshelf-overview-collection-list{grid-template-columns:repeat(2,minmax(0,1fr))}
.bookshelf-overview-secondary-grid .bookshelf-achievements{padding:0}
.bookshelf-overview-secondary-grid .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px}
.bookshelf-overview-secondary-grid .bookshelf-achievement-ring{width:92px;height:92px}
.bookshelf-overview-secondary-grid .bookshelf-achievement-center strong{font-size:1.8em}
.bookshelf-overview-secondary-grid .bookshelf-achievement-percent strong{font-size:1.6em}
.bookshelf-overview-secondary-grid .bookshelf-achievement-center span{margin-top:4px;font-size:.7em}
.bookshelf-overview-secondary-grid .bookshelf-achievement h3{margin-top:5px;font-size:.82rem}
@media(max-width:1100px){.bookshelf-overview-primary-grid,.bookshelf-overview-highlight-grid,.bookshelf-overview-secondary-grid{grid-template-columns:1fr}.bookshelf-overview-secondary-grid .bookshelf-achievement-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.bookshelf-overview-secondary-grid .bookshelf-achievement-ring{width:105px;height:105px}}
@media(max-width:720px){.bookshelf-overview-primary-grid .bookshelf-grid-featured,.bookshelf-overview-highlight-grid .bookshelf-favorite-books{grid-template-columns:1fr}.bookshelf-overview-secondary-grid .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:520px){.bookshelf-overview-secondary-grid .bookshelf-achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-overview-secondary-grid .bookshelf-achievement-ring{width:112px;height:112px}}


/* Bookshelf 3.59.1: lower-priority Overview content adapts to available capabilities.
   Achievements remain a compact supporting signal when Collections are absent. */
.bookshelf-overview-secondary-grid.is-achievements-only{display:block}
.bookshelf-overview-secondary-grid.is-achievements-only>.bookshelf-achievements{width:min(100%,660px);margin-top:30px}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-ring{width:82px;height:82px}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-center strong{font-size:1.65em}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-percent strong{font-size:1.48em}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-center span{margin-top:3px;font-size:.66em}
.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement h3{margin-top:5px;font-size:.78rem}
.bookshelf-overview-secondary-grid.is-collections-only{display:block}
.bookshelf-overview-secondary-grid.is-collections-only>.bookshelf-overview-collections{width:min(100%,720px);margin-top:30px}
@media(max-width:720px){
  .bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}
  .bookshelf-overview-secondary-grid.is-achievements-only>.bookshelf-achievements{width:100%}
  .bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-ring{width:96px;height:96px}
}
@media(max-width:520px){
  .bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 10px}
  .bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-ring{width:112px;height:112px}
}

/* Bookshelf 3.60.0: Overview v3 starts with the reader, not a search interface. */
.bookshelf-library-snapshot{display:flex;align-items:center;gap:22px;margin-top:22px;padding:15px 18px;border:1px solid var(--rs-border,#26313b);border-radius:14px;background:linear-gradient(135deg,var(--rs-surface,#11171c),rgba(40,57,72,.18))}
.bookshelf-library-snapshot-main{display:flex;flex-direction:column;align-items:flex-start;min-width:190px;color:inherit;text-decoration:none}
.bookshelf-library-snapshot-main .bookshelf-eyebrow{margin-bottom:3px}
.bookshelf-library-snapshot-total{display:inline-flex;align-items:baseline;gap:7px;white-space:nowrap}
.bookshelf-library-snapshot-total strong{font-size:1.55rem;font-variant-numeric:tabular-nums}
.bookshelf-library-snapshot-total>span{font-size:.78rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-library-snapshot-main small{margin-top:3px;color:var(--rs-text-secondary,#c3d2e3)}
.bookshelf-library-snapshot-stats{display:flex;flex:1;justify-content:flex-end;gap:8px;min-width:0}
.bookshelf-library-snapshot-stats a{display:flex;align-items:baseline;gap:5px;padding:8px 10px;border-radius:9px;color:inherit;text-decoration:none;background:var(--rs-surface-raised,#182129)}
.bookshelf-library-snapshot-stats strong{font-size:.98rem;font-variant-numeric:tabular-nums}.bookshelf-library-snapshot-stats span{font-size:.7rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-overview-book-highlights{display:grid;gap:12px}
.bookshelf-favorite-books.bookshelf-overview-book-highlights{grid-template-columns:repeat(3,minmax(0,1fr))}
.bookshelf-overview-book-highlight{display:grid;grid-template-columns:62px minmax(0,1fr);gap:11px;align-items:start;padding:11px;border:1px solid var(--rs-border,#26313b);border-radius:11px;background:var(--rs-surface,#11171c)}
.bookshelf-overview-book-cover{display:block}.bookshelf-overview-book-cover img{display:block;width:62px;aspect-ratio:2/3;object-fit:cover;border-radius:5px}
.bookshelf-overview-book-copy{min-width:0}.bookshelf-overview-book-copy h3{margin:1px 0 4px;font-size:.88rem;line-height:1.25}.bookshelf-overview-book-copy h3 a{color:inherit;text-decoration:none}.bookshelf-overview-book-copy .bookshelf-author,.bookshelf-overview-book-copy .bookshelf-meta{margin:0 0 4px;font-size:.72rem;line-height:1.35;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-overview-book-copy .bookshelf-rating-row{display:inline-flex;margin-top:2px}
@media(max-width:900px){.bookshelf-library-snapshot{align-items:flex-start;flex-direction:column;gap:12px}.bookshelf-library-snapshot-stats{width:100%;justify-content:flex-start;flex-wrap:wrap}}
@media(max-width:720px){.bookshelf-library-snapshot{margin-top:16px;padding:13px 14px}.bookshelf-library-snapshot-main{min-width:0}.bookshelf-library-snapshot-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.bookshelf-library-snapshot-stats a{padding:7px 9px}.bookshelf-favorite-books.bookshelf-overview-book-highlights{grid-template-columns:1fr}.bookshelf-overview-book-highlight{grid-template-columns:58px minmax(0,1fr);padding:9px}.bookshelf-overview-book-cover img{width:58px}.bookshelf-latest-review-excerpt{line-height:1.5!important}.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-ring{width:86px;height:86px}}
@media(max-width:520px){.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-ring{width:92px;height:92px}.bookshelf-overview-secondary-grid.is-achievements-only .bookshelf-achievement-grid{gap:14px 8px}}


/* Bookshelf 3.60.1: Collections on Overview are visual discovery highlights, not folder counters. */
.bookshelf-overview-collection-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bookshelf-overview-collection-card{display:block;min-width:0;overflow:hidden;border:1px solid var(--rs-border-default,var(--rs-border,#26313b));border-radius:11px;background:var(--rs-surface,#11171c);color:inherit;text-decoration:none}
.bookshelf-overview-collection-card .bookshelf-collection-preview{height:82px}
.bookshelf-overview-collection-copy{display:block;padding:10px 12px 12px}
.bookshelf-overview-collection-copy strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.86rem}
.bookshelf-overview-collection-copy span{display:block;margin-top:4px;font-size:.72rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-overview-collection-card:hover,.bookshelf-overview-collection-card:focus-visible{border-color:var(--rs-border-strong,#4a6175);text-decoration:none}
.bookshelf-overview-secondary-grid.is-collections-only>.bookshelf-overview-collections{width:min(100%,820px)}
@media(max-width:720px){
  .bookshelf-overview-collection-list{grid-template-columns:1fr}
  .bookshelf-overview-collection-card .bookshelf-collection-preview{height:92px}
}

/* Bookshelf 3.61.0: Overview v3 editorial composition.
   Desktop uses width for richer content; mobile curates each preview to its strongest item. */
.bookshelf-overview-story,.bookshelf-overview-taste,.bookshelf-overview-collections,.bookshelf-overview-achievements{margin-top:34px}
.bookshelf-overview-story{padding-bottom:30px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-story-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(330px,.75fr);gap:28px;align-items:start}
.bookshelf-overview-story-block{min-width:0}
.bookshelf-overview-story .bookshelf-grid-featured{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.bookshelf-overview-story .bookshelf-latest-review-card{height:auto}
.bookshelf-overview-taste{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:28px;align-items:start;padding:22px;border:1px solid var(--rs-border,#26313b);border-radius:14px;background:linear-gradient(135deg,var(--rs-surface,#11171c),rgba(40,57,72,.10))}
.bookshelf-overview-taste-main,.bookshelf-overview-perfect-spotlight{min-width:0}
.bookshelf-overview-taste .bookshelf-favorite-books{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.bookshelf-overview-taste .bookshelf-overview-book-highlight{grid-template-columns:54px minmax(0,1fr);padding:9px;gap:9px}
.bookshelf-overview-taste .bookshelf-overview-book-cover img{width:54px}
.bookshelf-overview-perfect-spotlight{padding-left:24px;border-left:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-perfect-spotlight .bookshelf-overview-book-highlight{grid-template-columns:64px minmax(0,1fr)}
.bookshelf-overview-perfect-spotlight .bookshelf-overview-book-cover img{width:64px}
.bookshelf-overview-collections{padding-bottom:30px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-collections .bookshelf-overview-collection-list{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.bookshelf-overview-collections .bookshelf-overview-collection-card .bookshelf-collection-preview{height:92px}
.bookshelf-overview-achievements{padding:0}
.bookshelf-overview-achievements .bookshelf-achievement-grid{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.bookshelf-overview-achievements .bookshelf-achievement-ring{width:88px;height:88px}
.bookshelf-overview-achievements .bookshelf-achievement-center strong{font-size:1.72em}
.bookshelf-overview-achievements .bookshelf-achievement-percent strong{font-size:1.52em}
.bookshelf-overview-achievements .bookshelf-achievement-center span{margin-top:3px;font-size:.68em}
.bookshelf-overview-achievements .bookshelf-achievement h3{margin-top:5px;font-size:.8rem}
@media(max-width:1100px){
  .bookshelf-overview-story-grid{grid-template-columns:1fr;gap:26px}
  .bookshelf-overview-taste{grid-template-columns:1fr}
  .bookshelf-overview-perfect-spotlight{padding-left:0;padding-top:22px;border-left:0;border-top:1px solid var(--rs-border,#26313b)}
  .bookshelf-overview-taste .bookshelf-favorite-books{grid-template-columns:repeat(3,minmax(0,1fr))}
  .bookshelf-overview-collections .bookshelf-overview-collection-list{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:720px){
  .bookshelf-overview-story,.bookshelf-overview-taste,.bookshelf-overview-collections,.bookshelf-overview-achievements{margin-top:28px}
  .bookshelf-overview-story{padding-bottom:24px}
  .bookshelf-overview-story .bookshelf-grid-featured{grid-template-columns:1fr}
  .bookshelf-overview-taste{display:block;padding:16px}
  .bookshelf-overview-perfect-spotlight{margin-top:20px;padding-top:20px}
  .bookshelf-overview-taste .bookshelf-favorite-books{grid-template-columns:1fr}
  .bookshelf-overview-collections .bookshelf-overview-collection-list{grid-template-columns:1fr}
  .bookshelf-overview-responsive-items>*:nth-child(n+2){display:none}
  .bookshelf-overview-collections .bookshelf-overview-collection-card .bookshelf-collection-preview{height:104px}
  .bookshelf-overview-achievements .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 8px}
  .bookshelf-overview-achievements .bookshelf-achievement-ring{width:82px;height:82px}
}
@media(max-width:520px){
  .bookshelf-overview-achievements .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 6px}
  .bookshelf-overview-achievements .bookshelf-achievement-ring{width:76px;height:76px}
  .bookshelf-overview-achievements .bookshelf-achievement-center strong{font-size:1.55em}
  .bookshelf-overview-achievements .bookshelf-achievement-percent strong{font-size:1.38em}
}

/* Bookshelf 3.62.0: About is the canonical Risingshadow user profile.
   Overview owns the reading portrait; About owns person/community identity. */
.bookshelf-profile-facts{margin-top:30px}
.bookshelf-profile-fact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.bookshelf-profile-fact{display:flex;min-width:0;flex-direction:column;gap:4px;padding:14px 16px;border:1px solid var(--rs-border,#2b3944);border-radius:12px;background:var(--rs-surface,#10181e)}
.bookshelf-profile-fact span{color:var(--rs-text-muted,#9fb1c2);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}
.bookshelf-profile-fact strong{font-size:1.15rem;color:var(--rs-text,#eef4f8)}
.bookshelf-profile-fact small{color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-about-achievements{margin-top:34px;padding:0}
.bookshelf-about-achievements .bookshelf-section-head p:last-child{max-width:680px;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-about-identity-grid{margin-top:38px}
@media(max-width:760px){.bookshelf-profile-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-about-achievements .bookshelf-achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bookshelf-about-achievements .bookshelf-achievement-ring{width:92px;height:92px}}
@media(max-width:520px){.bookshelf-profile-fact-grid{grid-template-columns:1fr 1fr}.bookshelf-about-achievements .bookshelf-achievement-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-about-achievements .bookshelf-achievement-ring{width:108px;height:108px}}

/* Bookshelf 3.63.0: Overview reading-life pass.
   Recent, current and possible next reads form one coherent Reading Flow.
   Reader-authored review is a separate compact voice signal, not a competing dashboard column. */
.bookshelf-overview-flow{margin-top:34px;padding-bottom:30px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-flow-head{margin-bottom:18px}
.bookshelf-overview-flow-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.bookshelf-overview-flow-group{min-width:0}
.bookshelf-overview-flow-group-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:10px}
.bookshelf-overview-flow-group-head h3{margin:0;font-size:1rem}
.bookshelf-overview-flow-group-head a{font-size:.72rem;white-space:nowrap}
.bookshelf-overview-flow-items{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.bookshelf-overview-flow .bookshelf-overview-book-highlight{grid-template-columns:50px minmax(0,1fr);gap:8px;padding:8px}
.bookshelf-overview-flow .bookshelf-overview-book-cover img{width:50px}
.bookshelf-overview-flow .bookshelf-overview-book-copy h3{font-size:.8rem}
.bookshelf-overview-flow .bookshelf-overview-book-copy .bookshelf-author,.bookshelf-overview-flow .bookshelf-overview-book-copy .bookshelf-meta{font-size:.68rem}
.bookshelf-overview-voice{margin-top:30px}
.bookshelf-overview-voice-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:start;max-width:760px;padding:15px 17px;border-left:3px solid var(--rs-border-strong,#4a6175);background:linear-gradient(90deg,rgba(40,57,72,.18),transparent);border-radius:0 11px 11px 0}
.bookshelf-overview-voice-cover img{display:block;width:72px;aspect-ratio:2/3;object-fit:cover;border-radius:5px}
.bookshelf-overview-voice-copy{min-width:0}.bookshelf-overview-voice-title{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.bookshelf-overview-voice-title a{color:inherit;text-decoration:none}
.bookshelf-overview-voice-copy .bookshelf-author{margin:3px 0 7px;font-size:.74rem;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-overview-voice-excerpt{margin:0 0 8px;font-size:.86rem;line-height:1.5;color:var(--rs-text-secondary,#c3d2e3)}
.bookshelf-overview-voice-action{font-size:.75rem;font-weight:700}
@media(max-width:1100px){.bookshelf-overview-flow-grid{grid-template-columns:1fr;gap:22px}.bookshelf-overview-flow-items{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:720px){.bookshelf-overview-flow{margin-top:28px;padding-bottom:24px}.bookshelf-overview-flow-grid{gap:20px}.bookshelf-overview-flow-items{grid-template-columns:1fr}.bookshelf-overview-voice{margin-top:26px}.bookshelf-overview-voice-card{grid-template-columns:58px minmax(0,1fr);gap:11px;padding:12px}.bookshelf-overview-voice-cover img{width:58px}.bookshelf-overview-voice-excerpt{font-size:.82rem}}


/* Bookshelf 3.64.0: Recently Read is a first-class Overview discovery surface.
   Reading Flow remains the quick narrative; this deeper strip lets visitors inspect
   recent finished books and ratings without opening the full Library. */
.bookshelf-overview-recent{margin-top:32px;padding-bottom:30px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-recent .bookshelf-section-head>div>p:last-child{max-width:760px;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-overview-recent-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px}
.bookshelf-overview-recent .bookshelf-overview-book-highlight{grid-template-columns:58px minmax(0,1fr);gap:9px;padding:9px;min-width:0}
.bookshelf-overview-recent .bookshelf-overview-book-cover img{width:58px}
.bookshelf-overview-recent .bookshelf-overview-book-copy h3{font-size:.82rem}
.bookshelf-overview-recent .bookshelf-overview-book-copy .bookshelf-author,.bookshelf-overview-recent .bookshelf-overview-book-copy .bookshelf-meta{font-size:.69rem}
@media(max-width:1100px){.bookshelf-overview-recent-list{grid-template-columns:repeat(3,minmax(0,1fr))}.bookshelf-overview-recent-list>*:nth-child(n+4){display:none}}
@media(max-width:720px){.bookshelf-overview-recent{margin-top:27px;padding-bottom:24px}.bookshelf-overview-recent-list{grid-template-columns:repeat(2,minmax(0,1fr))}.bookshelf-overview-recent-list>*:nth-child(n+3){display:none}.bookshelf-overview-recent .bookshelf-overview-book-highlight{grid-template-columns:52px minmax(0,1fr);padding:8px}.bookshelf-overview-recent .bookshelf-overview-book-cover img{width:52px}}

/* Bookshelf 3.65.0: Overview editorial hierarchy pass.
   The flow is orientation, Recently Read is a primary browsing surface, Reader's Voice
   is a compact authored signal, and book rows rely more on covers/content than UI chrome. */
.bookshelf-overview-flow{margin-top:36px;padding-bottom:25px}
.bookshelf-overview-flow-head{margin-bottom:14px}
.bookshelf-overview-flow-head>div>p:last-child{max-width:780px}
.bookshelf-overview-flow-grid{gap:30px}
.bookshelf-overview-flow-group-head{margin-bottom:8px}
.bookshelf-overview-flow-items{gap:12px}
.bookshelf-overview-flow .bookshelf-overview-book-highlight{grid-template-columns:46px minmax(0,1fr);gap:9px;padding:0;border:0;border-radius:0;background:transparent}
.bookshelf-overview-flow .bookshelf-overview-book-cover img{width:46px;border-radius:5px}
.bookshelf-overview-flow .bookshelf-overview-book-copy h3{font-size:.82rem}
.bookshelf-overview-flow .bookshelf-rating-row{margin-top:4px}

.bookshelf-overview-recent{margin-top:34px;padding-bottom:34px}
.bookshelf-overview-recent .bookshelf-section-head{margin-bottom:16px}
.bookshelf-overview-recent-list{gap:18px}
.bookshelf-overview-recent .bookshelf-overview-book-highlight{display:block;padding:0;border:0;border-radius:0;background:transparent}
.bookshelf-overview-recent .bookshelf-overview-book-cover{display:block;margin-bottom:9px}
.bookshelf-overview-recent .bookshelf-overview-book-cover img{display:block;width:100%;aspect-ratio:2/3;object-fit:cover;border-radius:7px}
.bookshelf-overview-recent .bookshelf-overview-book-copy h3{font-size:.88rem;line-height:1.3;margin-bottom:3px}
.bookshelf-overview-recent .bookshelf-overview-book-copy .bookshelf-author,.bookshelf-overview-recent .bookshelf-overview-book-copy .bookshelf-meta{font-size:.72rem}
.bookshelf-overview-recent .bookshelf-rating-row{display:block;margin-top:6px}

.bookshelf-overview-voice{margin-top:31px;padding-bottom:30px;border-bottom:1px solid var(--rs-border,#26313b)}
.bookshelf-overview-voice .bookshelf-section-head{margin-bottom:10px}
.bookshelf-overview-voice-card{grid-template-columns:54px minmax(0,1fr);gap:13px;max-width:900px;padding:5px 0 5px 14px;border-left-width:2px;background:transparent;border-radius:0}
.bookshelf-overview-voice-cover img{width:54px}
.bookshelf-overview-voice-excerpt{max-width:760px;margin-bottom:6px;font-size:.82rem;line-height:1.45}
.bookshelf-overview-voice-copy .bookshelf-author{margin-bottom:4px}

.bookshelf-overview-taste{margin-top:36px}
.bookshelf-overview-collections{margin-top:38px}

@media(max-width:1100px){
  .bookshelf-overview-flow-grid{gap:22px}
  .bookshelf-overview-recent-list{gap:14px}
}
@media(max-width:720px){
  .bookshelf-overview-flow{margin-top:29px;padding-bottom:22px}
  .bookshelf-overview-flow .bookshelf-overview-book-highlight{grid-template-columns:50px minmax(0,1fr)}
  .bookshelf-overview-flow .bookshelf-overview-book-cover img{width:50px}
  .bookshelf-overview-recent{margin-top:28px;padding-bottom:26px}
  .bookshelf-overview-recent-list{gap:14px}
  .bookshelf-overview-recent .bookshelf-overview-book-cover{margin-bottom:7px}
  .bookshelf-overview-recent .bookshelf-overview-book-copy h3{font-size:.84rem}
  .bookshelf-overview-voice{margin-top:27px;padding-bottom:24px}
  .bookshelf-overview-voice-card{grid-template-columns:50px minmax(0,1fr);padding-left:11px}
  .bookshelf-overview-voice-cover img{width:50px}
}

/* Bookshelf profile taste shelf (3.101.0).
   Canonical header implementation. Previous Reader World/signature experiments
   and accumulated responsive overrides were removed. */
.bookshelf-profile{isolation:isolate}
.bookshelf-profile-main{position:relative;z-index:2}
.bookshelf-profile-actions{position:absolute;right:18px;top:18px;z-index:4;display:flex;flex-direction:row;align-items:center;gap:6px;width:auto;margin:0}
.bookshelf-favorite-atmosphere{position:absolute;z-index:1;top:0;right:0;bottom:0;left:auto;width:50%;max-width:50%;overflow:hidden;pointer-events:none;border-radius:inherit;mask-image:linear-gradient(90deg,transparent 0,#000 24%,#000 100%)}
.bookshelf-favorite-atmosphere:before{content:"";position:absolute;inset:0;z-index:2;background:linear-gradient(90deg,rgba(18,27,34,.98) 0,rgba(18,27,34,.78) 20%,rgba(18,27,34,.30) 44%,rgba(18,27,34,.18) 74%,rgba(18,27,34,.34) 100%)}
.bookshelf-favorite-atmosphere-covers{position:absolute;z-index:1;right:-2%;top:8%;bottom:8%;display:flex;align-items:flex-end;justify-content:flex-end;gap:5px;width:max-content;perspective:900px;transform-style:preserve-3d;filter:blur(1.45px) saturate(.82) brightness(.78);opacity:.72;transform:rotateY(-9deg) translateX(1%);transform-origin:100% 50%}
.bookshelf-favorite-atmosphere-cover{position:relative;display:block;flex:0 0 auto;width:auto;max-width:none;height:75%;max-height:75%;object-fit:contain;border-radius:3px;box-shadow:-6px 2px 14px rgba(0,0,0,.30),0 7px 14px rgba(0,0,0,.16),inset 1px 0 rgba(255,255,255,.045);transform-origin:50% 100%}
.bookshelf-favorite-atmosphere-cover--1{height:86%;transform:translateZ(-24px) scale(.95)}
.bookshelf-favorite-atmosphere-cover--2{height:90%;transform:translateZ(-17px) scale(.965)}
.bookshelf-favorite-atmosphere-cover--3{height:94%;transform:translateZ(-10px) scale(.98)}
.bookshelf-favorite-atmosphere-cover--4{height:97%;transform:translateZ(-4px) scale(.99)}
.bookshelf-favorite-atmosphere-cover--5{height:100%;transform:translateZ(5px)}
.bookshelf-favorite-atmosphere-cover--6{height:103%;transform:translateZ(9px) scale(1.005)}



@media (max-width:520px) and (orientation:portrait){
  .bookshelf-profile{min-height:205px;padding:16px 14px 22px}
  .bookshelf-profile-main{z-index:4;display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:start;width:100%;max-width:none}
  .bookshelf-avatar{width:88px;height:88px;flex-basis:88px;margin-top:22px}
  .bookshelf-profile-copy{min-width:0;padding-right:54px}
  .bookshelf-profile-copy .bookshelf-kicker{margin:0 0 6px;max-width:180px;font-size:.62rem;line-height:1.35}
  .bookshelf-profile h1{font-size:1.72rem;line-height:1.04}
  .bookshelf-identity-meta{display:flex;align-items:center;gap:.42rem;margin:.42rem 0 0;flex-wrap:wrap}
  .bookshelf-identity-meta .bookshelf-activity-identity{display:inline-flex;align-items:center;gap:.34rem;margin:0;white-space:nowrap;font-size:.78rem}
  .bookshelf-identity-meta .bookshelf-activity-identity strong,.bookshelf-identity-meta .bookshelf-activity-identity span{white-space:nowrap}
  .bookshelf-staff-role{flex:0 0 auto;font-size:.66rem;padding-inline:8px}
  .bookshelf-profile-about{display:none}
  .bookshelf-profile-actions{right:12px;top:12px}
  .bookshelf-favorite-atmosphere{left:0;right:0;width:auto;max-width:none;mask-image:linear-gradient(90deg,transparent 0,#000 48%,#000 100%)}
  .bookshelf-favorite-atmosphere-covers{top:0;bottom:0;height:100%;align-items:flex-end}
  .bookshelf-favorite-atmosphere-cover{height:40%;max-height:40%;width:auto;max-width:none}
  .bookshelf-profile-hero{min-height:0}
}


/* Review rich-text editor: canonical Review HTML v1. */
.bookshelf-rich-review{border:1px solid var(--rs-border-default);border-radius:9px;background:var(--rs-surface-2);overflow:hidden}
.bookshelf-rich-review:focus-within{border-color:var(--rs-border-focus);box-shadow:0 0 0 2px rgba(120,170,220,.12)}
.bookshelf-rich-review-toolbar{display:flex;gap:4px;padding:6px 7px;border-bottom:1px solid var(--rs-border-default);background:var(--rs-surface-1)}
.bookshelf-rich-review-toolbar button{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:30px;padding:3px 9px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--rs-text-primary);font:inherit;cursor:pointer}
.bookshelf-rich-review-toolbar button:hover,.bookshelf-rich-review-toolbar button:focus-visible{border-color:var(--rs-border-strong);background:var(--rs-surface-2)}
.bookshelf-rich-review-area{box-sizing:border-box;min-height:190px;max-height:55vh;padding:11px 12px;overflow:auto;color:var(--rs-text-primary);font:inherit;font-size:.88rem;line-height:1.6;outline:none;white-space:normal}
.bookshelf-review-dialog .bookshelf-rich-review-area{min-height:300px}
.bookshelf-rich-review-area p,.bookshelf-review-text p{margin:0 0 .85em}.bookshelf-rich-review-area p:last-child,.bookshelf-review-text p:last-child{margin-bottom:0}
.bookshelf-rich-review-area spoiler{border-radius:3px;background:var(--rs-surface-3);text-decoration:underline dotted;text-decoration-thickness:1px;text-underline-offset:2px}
.bookshelf-review-editor-label{display:block;margin-bottom:5px;font-size:.72rem;color:var(--rs-text-muted)}
.bookshelf-inline-spoiler{display:inline;padding:1px 4px;border:0;border-radius:4px;background:var(--rs-surface-3);color:inherit;font:inherit;line-height:inherit;cursor:pointer}.bookshelf-inline-spoiler-label{font-size:.72em;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.bookshelf-inline-spoiler-content{display:none}.bookshelf-inline-spoiler[aria-expanded="true"] .bookshelf-inline-spoiler-label{display:none}.bookshelf-inline-spoiler[aria-expanded="true"] .bookshelf-inline-spoiler-content{display:inline}
@media(max-width:620px){.bookshelf-review-dialog .bookshelf-rich-review-area{min-height:42vh;max-height:none}}
.bookshelf-rich-review-toolbar button.is-active,.bookshelf-rich-review-toolbar button[aria-pressed="true"]{border-color:var(--rs-border-strong);background:var(--rs-surface-3);box-shadow:inset 0 0 0 1px var(--rs-border-strong)}


/* ReadingReviewEditor fullscreen presentation. Same canonical editor DOM, no copied content. */
.bookshelf-rich-review-fullscreen{margin-left:auto}
.bookshelf-rich-review-fullscreen-label{margin-left:5px}
body.bookshelf-review-fullscreen-open{overflow:hidden}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen{
  position:fixed!important;inset:0!important;z-index:2147483000!important;box-sizing:border-box!important;
  display:flex!important;flex-direction:column!important;width:100vw!important;max-width:none!important;
  height:100dvh!important;max-height:none!important;margin:0!important;border:0!important;border-radius:0!important;
  background:var(--rs-surface-1)!important
}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-toolbar{flex:0 0 auto;padding:10px 12px}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen [data-review-editor-area]{
  flex:1 1 auto!important;min-height:0!important;max-height:none!important;padding:clamp(14px,2.5vw,32px)!important;
  overflow:auto!important;font-size:clamp(.92rem,1.2vw,1.05rem)
}
@media(max-width:620px){
  .bookshelf-rich-review-fullscreen-label{display:none}
  .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-toolbar{padding:7px}
  .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen [data-review-editor-area]{padding:14px!important}
}

.bookshelf-rich-review-toolbar-separator{align-self:stretch;width:1px;margin:3px 2px;background:var(--rs-border-default)}

.bookshelf-rich-review-mode{display:flex;gap:3px;padding:6px 7px 0;background:var(--rs-surface-1)}
.bookshelf-rich-review-mode button{min-height:29px;padding:3px 10px;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--rs-text-muted);font:inherit;font-size:.78rem;cursor:pointer}
.bookshelf-rich-review-mode button:hover,.bookshelf-rich-review-mode button:focus-visible{color:var(--rs-text-primary);border-color:var(--rs-border-strong)}
.bookshelf-rich-review-mode button.is-active,.bookshelf-rich-review-mode button[aria-pressed="true"]{color:var(--rs-text-primary);background:var(--rs-surface-3);border-color:var(--rs-border-default)}
.bookshelf-rich-review-preview{box-sizing:border-box;min-height:190px;max-height:55vh;padding:11px 12px;overflow:auto;color:var(--rs-text-primary);font:inherit;font-size:.88rem;line-height:1.6}
.bookshelf-review-dialog .bookshelf-rich-review-preview{min-height:300px}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-mode{flex:0 0 auto;padding:8px 12px 0}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-preview{flex:1 1 auto;min-height:0;max-height:none;padding:clamp(14px,2.5vw,32px);overflow:auto;font-size:clamp(.92rem,1.2vw,1.05rem)}
@media(max-width:620px){.bookshelf-review-dialog .bookshelf-rich-review-preview{min-height:42vh;max-height:none}.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-preview{padding:14px}}

/* 3.117: canonical ReadingReviewEditor mode switch. Explicit properties keep
   global/native button styles out of the Edit / Preview control. */
.bookshelf-rich-review-mode{
  display:flex;
  align-items:center;
  gap:2px;
  padding:6px 7px;
  border-bottom:1px solid var(--rs-border-default);
  background:var(--rs-surface-1);
}
.bookshelf-rich-review-mode button{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  min-width:0;
  min-height:28px;
  height:28px;
  margin:0;
  padding:3px 9px;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  box-shadow:none;
  color:var(--rs-text-muted);
  font:inherit;
  font-size:.76rem;
  font-weight:600;
  line-height:1;
  text-shadow:none;
  cursor:pointer;
}
.bookshelf-rich-review-mode button:hover,
.bookshelf-rich-review-mode button:focus-visible{
  border-color:var(--rs-border-strong);
  background:var(--rs-surface-2);
  color:var(--rs-text-primary);
}
.bookshelf-rich-review-mode button.is-active,
.bookshelf-rich-review-mode button[aria-pressed="true"]{
  border-color:var(--rs-border-strong);
  background:var(--rs-surface-3);
  color:var(--rs-text-primary);
  box-shadow:inset 0 0 0 1px var(--rs-border-strong);
}
.bookshelf-rich-review-mode + .bookshelf-rich-review-toolbar{
  border-top:0;
}
.bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-mode{
  padding:8px 12px;
}
@media(max-width:620px){
  .bookshelf-rich-review-mode{padding:6px 7px}
}

/* 3.119: Book Card review modal compact default workspace.
   Fullscreen remains the intentionally expansive writing mode. */
.bookshelf-review-dialog-shell{
  max-height:min(86vh,760px);
}
.bookshelf-review-dialog-form{
  gap:12px;
  padding:16px 20px 18px;
}
.bookshelf-review-dialog .bookshelf-rich-review-area{
  min-height:210px;
  height:clamp(210px,30vh,300px);
  max-height:300px;
}
.bookshelf-review-dialog .bookshelf-rich-review-preview{
  min-height:210px;
  height:clamp(210px,30vh,300px);
  max-height:300px;
}
.bookshelf-review-dialog-options{
  padding-top:0;
}
.bookshelf-review-dialog-actions{
  padding-top:10px;
}
.bookshelf-review-dialog .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-area,
.bookshelf-review-dialog .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-preview{
  height:auto;
  min-height:0!important;
  max-height:none!important;
}
@media(max-width:620px){
  .bookshelf-review-dialog-shell{max-height:calc(100vh - 16px)}
  .bookshelf-review-dialog-form{gap:11px;padding:14px}
  .bookshelf-review-dialog .bookshelf-rich-review-area,
  .bookshelf-review-dialog .bookshelf-rich-review-preview{
    min-height:190px;
    height:clamp(190px,34vh,280px);
    max-height:280px;
  }
  .bookshelf-review-dialog .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-area,
  .bookshelf-review-dialog .bookshelf-rich-review.bookshelf-rich-review-is-fullscreen .bookshelf-rich-review-preview{
    height:auto;
    min-height:0!important;
    max-height:none!important;
  }
}

/* 3.121: Preview is a distinct reading state, not an editor with disabled controls. */
.bookshelf-rich-review-mode{
  justify-content:space-between;
  gap:12px;
}
.bookshelf-rich-review-mode-switch{
  display:flex;
  align-items:center;
  gap:2px;
}
.bookshelf-rich-review-mode .bookshelf-rich-review-fullscreen{
  margin-left:auto;
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  box-sizing:border-box;
  min-height:28px;
  height:28px;
  margin-top:0;
  margin-bottom:0;
  padding:3px 9px;
  border:1px solid transparent;
  border-radius:6px;
  background:transparent;
  box-shadow:none;
  color:var(--rs-text-primary);
  font:inherit;
  font-size:.76rem;
  font-weight:500;
  line-height:1;
  cursor:pointer;
}
.bookshelf-rich-review-mode .bookshelf-rich-review-fullscreen:hover,
.bookshelf-rich-review-mode .bookshelf-rich-review-fullscreen:focus-visible{
  border-color:var(--rs-border-strong);
  background:var(--rs-surface-2);
}
.bookshelf-rich-review-mode .bookshelf-rich-review-fullscreen[aria-pressed="true"]{
  border-color:var(--rs-border-strong);
  background:var(--rs-surface-3);
}
.bookshelf-rich-review-is-preview{
  box-shadow:none!important;
}
.bookshelf-rich-review-is-preview:focus-within{
  border-color:var(--rs-border-default);
  box-shadow:none!important;
}
.bookshelf-rich-review-is-preview .bookshelf-rich-review-mode{
  border-bottom:1px solid var(--rs-border-default);
}
.bookshelf-rich-review-is-preview .bookshelf-rich-review-preview{
  background:var(--rs-surface-raised);
  color:var(--rs-text-primary);
}
.bookshelf-review-dialog .bookshelf-rich-review-is-preview .bookshelf-rich-review-preview{
  border:0;
}
@media(max-width:620px){
  .bookshelf-rich-review-mode{gap:6px}
  .bookshelf-rich-review-mode .bookshelf-rich-review-fullscreen{padding:3px 7px}
}

/* 3.122: explicit Preview presentation and calmer long-form reading color.
   Do not rely on the HTML hidden attribute against component display rules. */
.bookshelf-rich-review.bookshelf-rich-review-is-preview .bookshelf-rich-review-toolbar{
  display:none!important;
}
.bookshelf-rich-review-area,
.bookshelf-rich-review-preview{
  color:var(--rs-text-secondary);
}
.bookshelf-rich-review-is-preview .bookshelf-rich-review-preview{
  color:var(--rs-text-secondary)!important;
}

/* 3.123: spoiler visibility and stylesheet cache version correction. */
.bookshelf-inline-spoiler[aria-expanded="false"]{display:inline-flex;align-items:center;justify-content:center;min-width:5.4em;min-height:1.45em;margin:0 .12em;padding:.08em .5em;border:1px solid var(--rs-border-strong);border-radius:5px;background:var(--rs-surface-3);color:var(--rs-text-secondary);vertical-align:baseline;box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}
.bookshelf-inline-spoiler[aria-expanded="false"]:hover,.bookshelf-inline-spoiler[aria-expanded="false"]:focus-visible{border-color:var(--rs-border-focus);background:var(--rs-surface-2);color:var(--rs-text-primary)}
.bookshelf-inline-spoiler[aria-expanded="false"] .bookshelf-inline-spoiler-label{display:inline;line-height:1}
.bookshelf-inline-spoiler[aria-expanded="true"]{margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none}

/* 3.125: richer latest-review feature and scalable About favorites. */
.bookshelf-overview-voice-card{
  grid-template-columns:88px minmax(0,1fr);
  gap:18px;
  max-width:940px;
  padding:8px 0 8px 16px;
}
.bookshelf-overview-voice-cover img{
  width:88px;
  border-radius:6px;
}
.bookshelf-overview-voice-excerpt{
  max-width:82ch;
  margin-bottom:8px;
  font-size:.84rem;
  line-height:1.55;
}
.bookshelf-about-favorite-item{min-width:0}
.bookshelf-about-favorite-item[hidden]{display:none!important}
.bookshelf-about-favorites-toggle{
  appearance:none;
  -webkit-appearance:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin-top:16px;
  padding:7px 11px;
  border:1px solid var(--rs-border-strong);
  border-radius:7px;
  background:var(--rs-surface-raised);
  color:var(--rs-text-secondary);
  font:inherit;
  font-size:.76rem;
  font-weight:650;
  cursor:pointer;
}
.bookshelf-about-favorites-toggle:hover,
.bookshelf-about-favorites-toggle:focus-visible{
  background:var(--rs-surface-2);
  color:var(--rs-text-primary);
  border-color:var(--rs-border-focus);
}
@media(max-width:720px){
  .bookshelf-overview-voice-card{grid-template-columns:68px minmax(0,1fr);gap:13px;padding-left:11px}
  .bookshelf-overview-voice-cover img{width:68px}
  .bookshelf-overview-voice-excerpt{font-size:.82rem}
}

/* 3.130: Library information hierarchy and Read-date presentation. */
.bookshelf-browser-heading + .bookshelf-library-switcher,
.bookshelf-browser-heading + .bookshelf-library-nav{margin-top:14px}
.bookshelf-read-date-fact{
  color:var(--rs-text-muted);
  font-size:.72rem;
  font-weight:600;
}
.bookshelf-list-read-date{
  white-space:nowrap;
  color:var(--rs-text-secondary);
}


/* 3.131: Bookshelf consumes Design System v1.2 interactive primitives.
   Component visuals/states belong to shared rs-* CSS; these rules are layout only. */
.bookshelf-context-back{margin-top:20px}
.bookshelf-custom-shelves-page .bookshelf-collection-sort{display:flex;justify-content:flex-end;width:100%;margin:-2px 0 18px}
.bookshelf-collection-sort .rs-sort{width:auto;min-width:0}
.bookshelf-collection-sort .rs-sort__select{min-width:220px}
.bookshelf-tools .bookshelf-view-control{justify-self:start;align-self:end;width:max-content}
.bookshelf-tools .bookshelf-filter-submit{justify-self:start;align-self:end}
.bookshelf-review-controls .bookshelf-filter-submit{align-self:end}
@media(max-width:720px){
  .bookshelf-context-back{display:none}
  .bookshelf-review-controls .bookshelf-filter-submit{grid-column:1/-1;width:100%}
}
@media(max-width:620px){
  .bookshelf-custom-shelves-page .bookshelf-collection-sort{justify-content:flex-end;margin-top:0}
}
@media(max-width:480px){
  .bookshelf-collection-sort .rs-sort{width:100%}
  .bookshelf-collection-sort .rs-sort__select{width:100%;min-width:0}
}


/* 3.133: canonical pagination host placement.
   Design System owns pagination visuals; Bookshelf owns only page-level placement. */
.bookshelf-pagination-host{
  display:flex;
  justify-content:center;
  width:100%;
  box-sizing:border-box;
  margin-top:28px;
}
.bookshelf-pagination-host .rs-pagination{
  max-width:100%;
}
@media(max-width:720px){
  .bookshelf-pagination-host{
    margin-top:22px;
    overflow-x:auto;
    justify-content:flex-start;
    padding-bottom:2px;
  }
  .bookshelf-pagination-host .rs-pagination{
    margin-inline:auto;
  }
}


/* 3.135.1: compact restricted Bookshelf access-state shell.
   Privacy/access logic remains owned by the policy; this is presentation only. */
.bookshelf-restricted{max-width:980px;margin-inline:auto}
.bookshelf-restricted-profile{display:flex;align-items:center;gap:var(--rs-space-4);margin-bottom:var(--rs-space-5)}
.bookshelf-restricted-copy h1{margin:.15rem 0 .35rem}
.bookshelf-restricted-notice{
  display:flex;
  align-items:flex-start;
  gap:var(--rs-space-4);
  max-width:760px;
  padding:var(--rs-space-5);
  border:1px solid var(--rs-border);
  border-radius:var(--rs-radius-lg);
  background:var(--rs-surface-1);
}
.bookshelf-restricted-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 2.5rem;
  width:2.5rem;
  height:2.5rem;
  margin:0;
  border:1px solid var(--rs-border);
  border-radius:var(--rs-radius-md);
  background:var(--rs-surface-2);
  font-size:1.15rem;
  line-height:1;
}
.bookshelf-restricted-message{min-width:0}
.bookshelf-restricted-message h2{margin:0 0 var(--rs-space-2);font-size:1.25rem}
.bookshelf-restricted-message p{margin:0;color:var(--rs-text-muted)}
.bookshelf-restricted-message .rs-button{margin-top:var(--rs-space-4)}
@media(max-width:640px){
  .bookshelf-restricted-profile{margin-bottom:var(--rs-space-4)}
  .bookshelf-restricted-notice{gap:var(--rs-space-3);padding:var(--rs-space-4)}
  .bookshelf-restricted-icon{flex-basis:2.25rem;width:2.25rem;height:2.25rem}
}

/* 3.136: Reviews alternate list presentation. Same data pipeline, presentation only. */
.bookshelf-review-presentation{align-self:end}
.bookshelf-review-list.is-list{display:grid;gap:0;border:1px solid var(--rs-border-default);border-radius:12px;overflow:hidden}
.bookshelf-review-list.is-list .bookshelf-review-card{display:grid;grid-template-columns:52px minmax(0,1fr);gap:14px;padding:12px 14px;border:0;border-bottom:1px solid var(--rs-border-default);border-radius:0;background:var(--rs-surface-1)}
.bookshelf-review-list.is-list .bookshelf-review-card:last-child{border-bottom:0}
.bookshelf-review-list.is-list .bookshelf-review-cover{width:52px;align-self:start}
.bookshelf-review-list.is-list .bookshelf-review-cover img{display:block;width:52px;height:72px;object-fit:cover;border-radius:5px}
.bookshelf-review-list.is-list .bookshelf-review-content{min-width:0}
.bookshelf-review-list.is-list .bookshelf-review-book{align-items:start;gap:12px}
.bookshelf-review-list.is-list .bookshelf-review-book h3{margin:.05rem 0 .15rem;font-size:.94rem;line-height:1.25}
.bookshelf-review-list.is-list .bookshelf-review-book>div>p:not(.bookshelf-about-label){margin:.1rem 0;font-size:.76rem}
.bookshelf-review-list.is-list .bookshelf-about-label{display:none}
.bookshelf-review-list.is-list .bookshelf-review-meta{margin-top:5px;font-size:.7rem}
.bookshelf-review-list.is-list [data-review-display]{margin-top:7px}
.bookshelf-review-list.is-list .bookshelf-review-text-wrap{max-height:3.05em;overflow:hidden}
.bookshelf-review-list.is-list .bookshelf-review-text{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;font-size:.78rem;line-height:1.5}
.bookshelf-review-list.is-list .bookshelf-review-text p{display:inline;margin:0}
.bookshelf-review-list.is-list .bookshelf-review-text p+p::before{content:" "}
.bookshelf-review-list.is-list .bookshelf-review-more{display:none!important}
.bookshelf-review-list.is-list .bookshelf-review-spoiler{margin-top:0}
.bookshelf-review-list.is-list .bookshelf-review-spoiler>summary{font-size:.72rem}
.bookshelf-review-list.is-list .bookshelf-review-edit-trigger{min-height:30px;padding:3px 8px;font-size:.72rem}
@media(max-width:620px){.bookshelf-review-presentation{width:100%}.bookshelf-review-list.is-list .bookshelf-review-card{grid-template-columns:42px minmax(0,1fr);gap:10px;padding:10px}.bookshelf-review-list.is-list .bookshelf-review-cover,.bookshelf-review-list.is-list .bookshelf-review-cover img{width:42px}.bookshelf-review-list.is-list .bookshelf-review-cover img{height:59px}}


/* 3.136.1: Reviews list is an index/management view, not a compact review card.
   Hide review prose and align book identity + metadata into a dense row. */
.bookshelf-review-list.is-list .bookshelf-review-card{
  grid-template-columns:64px minmax(0,1fr);
  min-height:92px;
  padding:10px 14px;
}
.bookshelf-review-list.is-list .bookshelf-review-cover{width:64px}
.bookshelf-review-list.is-list .bookshelf-review-cover img{width:64px;height:88px}
.bookshelf-review-list.is-list [data-review-display],
.bookshelf-review-list.is-list .bookshelf-review-spoiler{
  display:none!important;
}
.bookshelf-review-list.is-list .bookshelf-review-book{
  min-height:88px;
  align-content:center;
}
.bookshelf-review-list.is-list .bookshelf-review-content{
  display:flex;
  flex-direction:column;
  justify-content:center;
}
.bookshelf-review-list.is-list .bookshelf-review-book h3{
  font-size:.95rem;
  margin:0 0 3px;
}
.bookshelf-review-list.is-list .bookshelf-review-meta{
  margin-top:6px;
}
@media(min-width:760px){
  .bookshelf-review-list.is-list .bookshelf-review-book{
    display:grid;
    grid-template-columns:minmax(220px,1fr) auto;
    align-items:center;
    column-gap:20px;
  }
  .bookshelf-review-list.is-list .bookshelf-review-book>div:first-child{min-width:0}
  .bookshelf-review-list.is-list .bookshelf-review-edit-trigger{justify-self:end}
}
@media(max-width:620px){
  .bookshelf-review-list.is-list .bookshelf-review-card{
    grid-template-columns:48px minmax(0,1fr);
    min-height:72px;
    padding:9px 10px;
  }
  .bookshelf-review-list.is-list .bookshelf-review-cover,
  .bookshelf-review-list.is-list .bookshelf-review-cover img{width:48px}
  .bookshelf-review-list.is-list .bookshelf-review-cover img{height:66px}
  .bookshelf-review-list.is-list .bookshelf-review-book{min-height:66px}
}


/* 3.136.2: canonical dense Reviews list, aligned with Library list semantics. */
.bookshelf-review-table-head{
  display:grid;
  grid-template-columns:minmax(250px,1.45fr) minmax(180px,1fr) minmax(150px,.75fr) minmax(135px,.65fr) minmax(135px,.65fr) 70px;
  gap:16px;
  padding:10px 14px;
  border-top:1px solid var(--rs-border-default);
  border-bottom:1px solid var(--rs-border-default);
  color:var(--rs-text-muted);
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.bookshelf-review-list.is-list{border:0;border-radius:0;overflow:visible}
.bookshelf-review-list.is-list .bookshelf-review-card{
  display:block;
  min-height:0;
  padding:0 14px;
  border:0;
  border-bottom:1px solid var(--rs-border-default);
  border-radius:0;
  background:transparent;
}
.bookshelf-review-list.is-list .bookshelf-review-cover{display:none}
.bookshelf-review-list.is-list .bookshelf-review-content{display:block}
.bookshelf-review-list.is-list .bookshelf-review-book{
  display:grid;
  grid-template-columns:minmax(250px,1.45fr) minmax(180px,1fr) minmax(150px,.75fr) minmax(135px,.65fr) minmax(135px,.65fr) 70px;
  gap:16px;
  min-height:58px;
  align-items:center;
}
.bookshelf-review-list.is-list .bookshelf-review-identity{display:contents}
.bookshelf-review-list.is-list .bookshelf-review-book h3{grid-column:1;margin:0;font-size:.9rem;line-height:1.25}
.bookshelf-review-list.is-list .bookshelf-review-author{grid-column:2;margin:0!important;font-size:.78rem!important}
.bookshelf-review-list.is-list .bookshelf-review-meta{display:contents}
.bookshelf-review-list.is-list .bookshelf-rating{grid-column:3}
.bookshelf-review-list.is-list [data-review-created]{grid-column:4;font-size:.76rem}
.bookshelf-review-list.is-list [data-review-edited]{grid-column:5;font-size:.76rem}
.bookshelf-review-list.is-list .bookshelf-review-edit-trigger{grid-column:6;justify-self:end;min-height:32px;padding:4px 9px;font-size:.72rem}
.bookshelf-review-list.is-list [data-review-display],
.bookshelf-review-list.is-list .bookshelf-review-spoiler{display:none!important}

@media(max-width:900px){
  .bookshelf-review-table-head{display:none}
  .bookshelf-review-list.is-list .bookshelf-review-card{padding:10px 12px}
  .bookshelf-review-list.is-list .bookshelf-review-book{
    grid-template-columns:minmax(0,1fr) auto;
    gap:3px 12px;
    min-height:0;
  }
  .bookshelf-review-list.is-list .bookshelf-review-identity{display:block;grid-column:1}
  .bookshelf-review-list.is-list .bookshelf-review-book h3{grid-column:auto;margin:0 0 2px}
  .bookshelf-review-list.is-list .bookshelf-review-author{grid-column:auto}
  .bookshelf-review-list.is-list .bookshelf-review-meta{
    display:flex;
    grid-column:1;
    flex-wrap:wrap;
    gap:5px 12px;
    margin:3px 0 0;
  }
  .bookshelf-review-list.is-list .bookshelf-rating,
  .bookshelf-review-list.is-list [data-review-created],
  .bookshelf-review-list.is-list [data-review-edited]{grid-column:auto}
  .bookshelf-review-list.is-list .bookshelf-review-edit-trigger{grid-column:2;grid-row:1 / span 2;align-self:center}
}


/* 3.137.1: Read-date is a reading-state fact, not bibliographic metadata.
   Keep it out of the year/rating flow on cover cards. */
.bookshelf-read-date-corner{
  position:absolute;
  top:10px;
  right:12px;
  z-index:3;
  max-width:42%;
  color:var(--rs-text-muted);
  font-size:.7rem;
  font-weight:600;
  line-height:1.25;
  white-space:nowrap;
  text-align:right;
  pointer-events:none;
}
.bookshelf-book-card:has(.bookshelf-read-date-corner)>.bookshelf-book-copy{padding-right:112px}
.bookshelf-book-card:has(.bookshelf-read-date-corner)>.bookshelf-card-control>summary{top:38px}
@media(max-width:620px){
  .bookshelf-read-date-corner{
    position:static;
    grid-column:2;
    justify-self:start;
    max-width:none;
    margin:-2px 0 1px;
    text-align:left;
  }
  .bookshelf-book-card:has(.bookshelf-read-date-corner)>.bookshelf-book-copy{padding-right:38px}
  .bookshelf-book-card:has(.bookshelf-read-date-corner)>.bookshelf-card-control>summary{top:12px}
}

/* 3.138.0 profile/community completion */
.bookshelf-activity-progress{width:min(250px,100%);height:8px;margin:-.1rem 0 .6rem;overflow:hidden;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
.bookshelf-activity-progress>span{display:block;min-width:2px;height:100%;border-radius:inherit;background:var(--rs-accent,#68b55b)}
.bookshelf-max-achievements{display:inline-flex;align-items:center;gap:2px;color:#ffd21f;font-size:.9rem;line-height:1;white-space:nowrap}
.bookshelf-challenge-summary{display:flex;align-items:end;justify-content:space-between;gap:24px;margin-top:30px;padding:18px 20px;border:1px solid var(--rs-border,#2b3944);border-radius:14px;background:var(--rs-surface,#10181e)}
.bookshelf-challenge-summary h2{margin:.1rem 0 0}.bookshelf-challenge-summary h2 a{color:inherit;text-decoration:none}.bookshelf-challenge-summary h2 a:hover{text-decoration:underline}
.bookshelf-challenge-stats{display:flex;gap:10px;flex-wrap:wrap}.bookshelf-challenge-stats>div{min-width:150px;padding:10px 14px;border-left:1px solid var(--rs-border,#2b3944)}
.bookshelf-challenge-stats span{display:block;color:var(--rs-text-muted,#9fb1c2);font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}.bookshelf-challenge-stats strong{display:block;margin-top:3px;font-size:1.15rem}.bookshelf-challenge-stats small{color:var(--rs-text-muted,#9fb1c2);font-size:.9rem;font-weight:500}
@media(max-width:620px){.bookshelf-challenge-summary{align-items:stretch;flex-direction:column}.bookshelf-challenge-stats{display:grid;grid-template-columns:1fr 1fr;width:100%}.bookshelf-challenge-stats>div{min-width:0;border-left:0;border-top:1px solid var(--rs-border,#2b3944);padding:10px 0}}
/* Bookshelf v2 3.138.2: About information hierarchy */
.bookshelf-activity-level-progress{display:flex;flex-direction:column;align-items:flex-start;gap:4px;width:min(250px,100%);margin:-.1rem 0 .6rem}
.bookshelf-activity-level-progress .bookshelf-activity-progress{width:100%;margin:0}
.bookshelf-activity-next-level{color:var(--rs-text-muted,#9fb1c2);font-size:.72rem;line-height:1.2}
.bookshelf-profile-fact-grid{grid-template-columns:repeat(2,minmax(0,1fr));max-width:660px}
.bookshelf-profile-fact small{margin-top:2px}
.bookshelf-achievements-title-row{display:flex;align-items:baseline;flex-wrap:wrap;gap:8px 14px}
.bookshelf-achievements-title-row h2{margin-bottom:0}
.bookshelf-achievement-max-summary{color:var(--rs-text-muted,#9fb1c2);font-size:.82rem;font-weight:600}
@media(max-width:620px){.bookshelf-profile-fact-grid{grid-template-columns:1fr;max-width:none}.bookshelf-activity-level-progress{width:min(220px,100%)}}

/* Bookshelf v2 3.138.3: header identity hierarchy */
.bookshelf-profile-name-row{display:flex;align-items:flex-start;gap:8px;min-width:0}
.bookshelf-profile-name-row h1{min-width:0}
.bookshelf-profile-name-row .bookshelf-staff-role{position:relative;top:.18rem;min-height:0;padding:2px 6px;border-color:var(--rs-border-strong,#526474);border-radius:4px;background:rgba(255,255,255,.035);color:var(--rs-text-secondary,#c3d2e3);font-size:.62rem;font-weight:650;line-height:1.15;vertical-align:super}
.bookshelf-identity-meta{display:flex;align-items:center;gap:.65rem;flex-wrap:nowrap}
.bookshelf-identity-meta .bookshelf-activity-identity{flex:0 0 auto}
.bookshelf-identity-meta .bookshelf-activity-progress{flex:0 1 190px;width:190px;margin:0;height:7px}
@media(max-width:620px){.bookshelf-identity-meta{gap:.5rem}.bookshelf-identity-meta .bookshelf-activity-progress{flex-basis:120px;width:120px}.bookshelf-profile-name-row .bookshelf-staff-role{top:.12rem}}

/* Bookshelf v2 3.138.4: production header composition polish.
   Identity, staff role and activity progression keep stable semantic groups
   regardless of whether the reader has a public introduction. */
.bookshelf-profile-name-row{
  display:flex;
  align-items:baseline;
  flex-wrap:wrap;
  gap:5px 9px;
  width:max-content;
  max-width:100%;
}
.bookshelf-profile-name-row h1{flex:0 1 auto;min-width:0;max-width:100%;overflow-wrap:anywhere}
.bookshelf-profile-name-row .bookshelf-staff-role{
  position:relative;
  top:-.12em;
  flex:0 0 auto;
  min-height:0;
  padding:2px 6px;
  border-color:var(--rs-border-strong,#526474);
  border-radius:4px;
  background:rgba(255,255,255,.035);
  color:var(--rs-text-secondary,#c3d2e3);
  font-size:.61rem;
  font-weight:650;
  line-height:1.15;
  white-space:nowrap;
}
.bookshelf-identity-meta{
  display:flex;
  align-items:center;
  flex-wrap:nowrap;
  gap:.7rem;
  width:max-content;
  max-width:100%;
  margin:.42rem 0 .48rem;
}
.bookshelf-identity-meta .bookshelf-activity-identity{
  flex:0 0 auto;
  margin:0;
  line-height:1.2;
  white-space:nowrap;
}
.bookshelf-identity-meta .bookshelf-activity-progress{
  flex:0 1 188px;
  width:188px;
  min-width:110px;
  height:6px;
  margin:1px 0 0;
  border-color:rgba(255,255,255,.13);
  background:rgba(255,255,255,.11);
}
.bookshelf-profile-about{margin-top:.1rem}
@media(max-width:620px){
  .bookshelf-profile-name-row{gap:6px}
  .bookshelf-profile-name-row .bookshelf-staff-role{top:-.08em;font-size:.58rem;padding:2px 5px}
  .bookshelf-identity-meta{flex-wrap:wrap;gap:.42rem .55rem;margin-top:.38rem}
  .bookshelf-identity-meta .bookshelf-activity-progress{flex:1 1 120px;width:150px;min-width:90px;max-width:160px}
}


/* Bookshelf 3.138.5: descriptive reading-profile cloud. */
.bookshelf-reading-profile{margin-top:34px}
.bookshelf-reading-profile .bookshelf-section-head{margin-bottom:12px}
.bookshelf-reading-profile .bookshelf-section-head p:last-child{max-width:680px;color:var(--rs-text-muted,#9fb1c2)}
.bookshelf-reading-profile-cloud{display:flex;flex-wrap:wrap;align-items:center;gap:7px 8px;max-width:980px}
.bookshelf-reading-profile-tag{display:inline-flex;align-items:center;min-height:27px;padding:4px 8px;border:1px solid var(--rs-border,#2b3944);border-radius:6px;background:var(--rs-surface,#10181e);color:var(--rs-text-secondary,#c3d2e3);font-size:.76rem;font-weight:600;line-height:1.2;text-decoration:none;transition:border-color .15s ease,background-color .15s ease,color .15s ease}
.bookshelf-reading-profile-tag:hover,.bookshelf-reading-profile-tag:focus-visible{border-color:var(--rs-border-strong,#526474);background:var(--rs-surface-raised,#17222b);color:var(--rs-text,#eef4f8);text-decoration:none}
.bookshelf-reading-profile-tag.is-weight-1{opacity:.62;font-weight:500}
.bookshelf-reading-profile-tag.is-weight-2{opacity:.76}
.bookshelf-reading-profile-tag.is-weight-3{opacity:.9;font-weight:650}
.bookshelf-reading-profile-tag.is-weight-4{opacity:1;font-weight:750}
@media(max-width:620px){.bookshelf-reading-profile{margin-top:28px}.bookshelf-reading-profile-cloud{gap:6px}.bookshelf-reading-profile-tag{font-size:.73rem}}

/* Bookshelf 3.139.0: public profile connections and owner-managed links. */
.bookshelf-connections{margin-top:34px;padding-top:2px}.bookshelf-connection-links{display:flex;flex-wrap:wrap;gap:8px}.bookshelf-connection-links a{display:inline-flex;align-items:center;min-height:32px;padding:5px 10px;border:1px solid var(--rs-border,#2b3944);border-radius:7px;background:var(--rs-surface,#10181e);color:var(--rs-text-secondary,#c3d2e3);font-size:.8rem;font-weight:650;text-decoration:none}.bookshelf-connection-links a:hover,.bookshelf-connection-links a:focus-visible{border-color:var(--rs-border-strong,#526474);background:var(--rs-surface-raised,#17222b);color:var(--rs-text,#eef4f8)}
.bookshelf-profile-links-settings{margin-top:1rem}.bookshelf-profile-links-manager{display:grid;gap:.8rem}.bookshelf-profile-link-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:end;padding:.8rem;border:1px solid var(--rs-border,#273845);border-radius:10px;background:rgba(255,255,255,.018)}.bookshelf-profile-link-rename{display:grid;grid-template-columns:minmax(150px,.45fr) minmax(0,1fr) auto;gap:.65rem;align-items:end}.bookshelf-profile-link-rename>a{align-self:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--rs-text-muted,#9fb0bd);font-size:.76rem}.bookshelf-profile-link-add{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.65rem;align-items:end;padding-top:.2rem}.bookshelf-linked-shelf a{font-weight:650}.bookshelf-link-delete{white-space:nowrap}
@media(max-width:760px){.bookshelf-profile-link-row,.bookshelf-profile-link-rename,.bookshelf-profile-link-add{grid-template-columns:1fr}.bookshelf-profile-link-row{align-items:stretch}.bookshelf-profile-link-row>form:last-child{justify-self:start}}

.bookshelf-connections--profile{margin-top:18px;padding-top:0}.bookshelf-connections--profile .bookshelf-eyebrow{margin-bottom:8px}

/* Bookshelf 3.140.2: Settings are independent persisted controls, not one page-wide form. */
.bookshelf-independent-setting{margin:0 0 1rem}
.bookshelf-setting-control{display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}
.bookshelf-setting-label{color:var(--rs-text,#e7edf3)}
.bookshelf-setting-segmented{min-width:230px}
.bookshelf-setting-segmented .rs-segmented__item{flex:1}
.bookshelf-setting-help,.bookshelf-setting-note{max-width:42rem;line-height:1.5}
.bookshelf-setting-note{font-size:.88rem}
.bookshelf-setting-footer{display:flex;align-items:center;gap:.8rem;margin-top:.7rem}
.bookshelf-setting-status{min-height:1.2em;color:var(--rs-text-muted,#9fb0bd);font-size:.86rem}
.bookshelf-setting-status.is-saved{color:var(--rs-success,#72c99a)}
.bookshelf-setting-status.is-error{color:var(--rs-danger,#ef8c8c)}
.bookshelf-independent-settings-list{display:grid;gap:.65rem}
.bookshelf-setting-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border:1px solid var(--rs-border,#273845);border-radius:10px;background:rgba(255,255,255,.018)}
.bookshelf-setting-row>div:first-child{display:grid;gap:.15rem}
.bookshelf-setting-row small{color:var(--rs-text-muted,#9fb0bd);line-height:1.4}
.bookshelf-setting-row-action{display:flex;align-items:center;gap:.7rem;flex:0 0 auto}
.bookshelf-setting-row-action .bookshelf-setting-segmented{min-width:150px}
.bookshelf-sync-setting{border-color:color-mix(in srgb,var(--rs-border,#273845) 72%,var(--rs-accent,#4d91c6))}
@media(max-width:720px){.bookshelf-setting-row{align-items:flex-start;flex-direction:column}.bookshelf-setting-row-action{width:100%;justify-content:space-between}.bookshelf-setting-segmented{width:100%;min-width:0}}


/* Bookshelf 3.140.3: Settings visual polish. Persisted state controls stay stable while AJAX feedback appears. */
.bookshelf-settings-page{max-width:1000px}
.bookshelf-settings-page>.bookshelf-browser-heading{margin-bottom:1.15rem}
.bookshelf-settings-page .bookshelf-settings-card{gap:2.35rem;padding:1.45rem 1.55rem}
.bookshelf-settings-page .bookshelf-settings-card>div:first-child>p:last-child{max-width:28rem;line-height:1.55}
.bookshelf-setting-control{gap:.7rem}
.bookshelf-setting-label{font-size:.92rem;font-weight:700}
.bookshelf-setting-segmented{min-width:0;width:auto}
.bookshelf-setting-control>.bookshelf-setting-segmented{width:min(310px,100%)}
.bookshelf-sync-setting .bookshelf-setting-control>.bookshelf-setting-segmented{width:min(190px,100%)}
.bookshelf-setting-help{margin-top:.05rem!important}
.bookshelf-setting-note{margin-top:.15rem!important;padding-top:.55rem;border-top:1px solid color-mix(in srgb,var(--rs-border,#273845) 65%,transparent);color:var(--rs-text-muted,#9fb0bd)!important}
.bookshelf-setting-status{display:block;min-height:1.15rem;line-height:1.15rem;font-size:.78rem;font-weight:600}
.bookshelf-independent-settings-list{gap:.7rem}
.bookshelf-setting-row{min-height:76px;padding:.9rem 1rem;gap:1.25rem}
.bookshelf-setting-row-copy{display:flex;flex-direction:column;justify-content:center;gap:.22rem;min-width:0}
.bookshelf-setting-row-copy strong{color:var(--rs-text,#e7edf3);font-size:.94rem;line-height:1.25}
.bookshelf-setting-row-copy small{display:block;max-width:34rem;color:var(--rs-text-muted,#9fb0bd);font-size:.79rem;line-height:1.45}
.bookshelf-setting-row-action{display:grid;grid-template-rows:auto 1.15rem;justify-items:end;align-items:start;gap:.22rem;width:158px;flex:0 0 158px}
.bookshelf-setting-row-action .bookshelf-setting-segmented{width:158px;min-width:158px}
.bookshelf-setting-row-action .bookshelf-setting-status{width:158px;text-align:right;white-space:nowrap}
.bookshelf-setting-row .rs-segmented__item{min-height:38px}
.bookshelf-sync-setting{box-shadow:inset 3px 0 0 color-mix(in srgb,var(--rs-accent,#4d91c6) 72%,transparent)}
@media(max-width:720px){
 .bookshelf-settings-page .bookshelf-settings-card{gap:1.15rem;padding:1.15rem}
 .bookshelf-setting-row{min-height:0;align-items:stretch;gap:.7rem}
 .bookshelf-setting-row-action{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto;width:100%;flex-basis:auto;align-items:center;justify-items:stretch}
 .bookshelf-setting-row-action .bookshelf-setting-segmented{width:min(190px,100%);min-width:0}
 .bookshelf-setting-row-action .bookshelf-setting-status{width:auto;min-width:5.5rem;text-align:right}
 .bookshelf-setting-control>.bookshelf-setting-segmented,.bookshelf-sync-setting .bookshelf-setting-control>.bookshelf-setting-segmented{width:100%}
}


/* Bookshelf 3.141.0: Settings information architecture. */
.bookshelf-settings-tabs{display:flex;gap:.35rem;margin:0 0 1rem;padding:.3rem;border:1px solid var(--rs-border,#273845);border-radius:12px;background:var(--rs-surface,#10181e);overflow-x:auto}
.bookshelf-settings-tab{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:.65rem 1rem;border-radius:9px;color:var(--rs-text-muted,#9fb0bd);font-weight:700;text-decoration:none;white-space:nowrap}
.bookshelf-settings-tab:hover{color:var(--rs-text,#e7edf3);background:rgba(255,255,255,.035)}
.bookshelf-settings-tab.is-active{color:var(--rs-text,#e7edf3);background:color-mix(in srgb,var(--rs-accent,#4d91c6) 24%,transparent);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--rs-accent,#4d91c6) 62%,transparent)}
.bookshelf-account-settings-copy{align-self:center}
@media(max-width:720px){.bookshelf-settings-tabs{margin-inline:-.1rem}.bookshelf-settings-tab{padding:.6rem .8rem;min-height:40px}}


/* Bookshelf 3.141.6: Settings tabs switch already-rendered panels locally.
   Real URLs remain as fallback; no hash targeting means no scroll jump. */
.bookshelf-settings-panel{display:none}
.bookshelf-settings-panel.is-active{display:grid;gap:1rem}

/* Bookshelf 3.142.0: owner-only account identity management. */
.bookshelf-account-summary{display:flex;align-items:center;gap:1rem}
.bookshelf-account-summary>div:last-child{display:grid;gap:.18rem}
.bookshelf-account-summary small{color:var(--rs-text-muted,#9fb0bd)}
.bookshelf-account-avatar img{width:64px;height:64px;object-fit:cover;border-radius:50%}
.bookshelf-account-forms{display:grid;gap:1rem}
.bookshelf-account-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem 1rem;align-items:end}
.bookshelf-account-form .rs-field{grid-column:1/-1}
.bookshelf-account-form .bookshelf-setting-status{align-self:center}
.bookshelf-account-status-list{display:grid;gap:.65rem;align-content:center}
.bookshelf-account-status{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.8rem 1rem;border:1px solid var(--rs-border,#273845);border-radius:10px}
.bookshelf-account-status strong.is-connected{color:var(--rs-success,#72c99a)}
.bookshelf-account-status strong.is-disconnected{color:var(--rs-text-muted,#9fb0bd)}
@media(max-width:720px){.bookshelf-account-form{grid-template-columns:1fr}.bookshelf-account-form .rs-field{grid-column:auto}.bookshelf-account-form .rs-button{justify-self:start}}

/* Bookshelf 3.142.2: profile image management belongs to Profile, before About. */
.bookshelf-profile-avatar-manager{display:flex;align-items:center;gap:1.25rem}
.bookshelf-profile-avatar-preview{flex:0 0 auto}
.bookshelf-profile-avatar-preview img{display:block;width:96px;height:96px;object-fit:cover;border-radius:50%;border:1px solid var(--rs-border,#273845)}
.bookshelf-avatar-upload-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.45rem 1rem;align-items:end;flex:1;min-width:0}
.bookshelf-avatar-upload-form .rs-field{grid-column:1/-1}
.bookshelf-avatar-upload-form small{color:var(--rs-text-muted,#9fb0bd);font-size:.78rem;line-height:1.4}
.bookshelf-avatar-upload-form .bookshelf-setting-status{align-self:center}
@media(max-width:720px){.bookshelf-profile-avatar-manager{align-items:flex-start;flex-direction:column}.bookshelf-avatar-upload-form{grid-template-columns:1fr;width:100%}.bookshelf-avatar-upload-form .rs-field{grid-column:auto}.bookshelf-avatar-upload-form .rs-button{justify-self:start}}


/* Bookshelf 3.142.4: account identity is read-first; editors open only on demand. */
.bookshelf-account-identity-list{display:grid;gap:.75rem;align-content:start}
.bookshelf-account-identity-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:center;padding:.85rem 1rem;border:1px solid var(--rs-border,#273845);border-radius:10px}
.bookshelf-account-identity-value{display:grid;gap:.18rem;min-width:0}
.bookshelf-account-identity-value span{color:var(--rs-text-muted,#9fb0bd);font-size:.82rem}
.bookshelf-account-identity-value strong{overflow-wrap:anywhere}
.bookshelf-account-editor{display:contents}
.bookshelf-account-editor>summary{list-style:none;cursor:pointer}
.bookshelf-account-editor>summary::-webkit-details-marker{display:none}
.bookshelf-account-editor[open]{display:grid;grid-column:1/-1;grid-template-columns:1fr;gap:.75rem}
.bookshelf-account-editor[open]>summary{justify-self:end;grid-row:1;grid-column:1}
.bookshelf-account-editor[open]>.bookshelf-account-form{grid-row:2;grid-column:1}
.bookshelf-account-editor-help{grid-column:1/-1;color:var(--rs-text-muted,#9fb0bd);font-size:.78rem;line-height:1.45}
@media(max-width:720px){.bookshelf-account-identity-item{grid-template-columns:minmax(0,1fr) auto;padding:.8rem}.bookshelf-account-editor[open]>summary{justify-self:start}}

/* Bookshelf 3.143.0: account identity polish and security actions. */
.bookshelf-account-identity-item{padding:1rem 1.05rem;gap:.9rem 1.1rem;background:color-mix(in srgb,var(--rs-surface,#10181e) 92%,var(--rs-accent,#4d91c6) 8%)}
.bookshelf-account-identity-value{gap:.28rem}
.bookshelf-account-identity-value strong{font-size:1rem}
.bookshelf-account-editor>summary{min-width:98px}
.bookshelf-account-editor[open]{padding-top:.15rem;border-top:1px solid color-mix(in srgb,var(--rs-border,#273845) 75%,transparent)}
.bookshelf-account-editor[open]>summary{margin-top:.65rem}
.bookshelf-account-editor[open]>.bookshelf-account-form{padding-top:.15rem}
.bookshelf-account-security-list{display:grid;gap:.75rem;align-content:start}
.bookshelf-account-security-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.75rem 1rem;align-items:center;padding:1rem 1.05rem;border:1px solid var(--rs-border,#273845);border-radius:10px}
.bookshelf-account-security-item>div:first-child{display:grid;gap:.25rem}
.bookshelf-account-security-item p{margin:0;color:var(--rs-text-muted,#9fb0bd);font-size:.86rem}
.bookshelf-account-security-item .bookshelf-account-editor[open]{grid-column:1/-1}
.bookshelf-account-security-item--danger{border-style:dashed}
@media(max-width:720px){.bookshelf-account-identity-item,.bookshelf-account-security-item{padding:.9rem}.bookshelf-account-editor>summary{min-width:0}}

/* Account deletion confirmation 3.144.1 */
.bookshelf-account-delete-form{max-width:680px}.bookshelf-account-delete-warning{margin:0;padding:.8rem .9rem;border:1px solid color-mix(in srgb,#a3373d 65%,var(--rs-border,#273845));border-radius:8px;color:var(--rs-text-primary);background:color-mix(in srgb,#7d2025 12%,transparent);font-size:.86rem;line-height:1.5}

/* Rating sync audit: read-only reconciliation status. */
.bookshelf-sync-audit{margin-top:12px;padding-top:12px;border-top:1px solid var(--rs-border-subtle);}
.bookshelf-sync-audit strong{display:block;font-size:.95rem;}
.bookshelf-sync-audit p{margin:4px 0 0;color:var(--rs-text-muted);font-size:.9rem;}


/* FI/EN Bookshelf Sync Review: exceptional owner-only reconciliation surface. */
.bookshelf-sync-review-page{display:grid;gap:var(--rs-space-5)}
.bookshelf-sync-review-controls,.bookshelf-sync-review-summary{display:flex;align-items:end;justify-content:space-between;gap:var(--rs-space-4);padding:var(--rs-space-4);border:1px solid var(--rs-border-default);border-radius:var(--rs-radius-lg);background:var(--rs-surface-1)}
.bookshelf-sync-review-summary{align-items:center}.bookshelf-sync-review-filters{flex-wrap:wrap}.bookshelf-sync-review-size{display:flex;align-items:end;gap:var(--rs-space-2)}.bookshelf-sync-review-size .rs-field{min-width:150px}
.bookshelf-sync-review-list{display:grid;gap:var(--rs-space-3)}
.bookshelf-sync-review-row{display:grid;grid-template-columns:minmax(330px,1.35fr) minmax(220px,1fr) minmax(220px,1fr);gap:var(--rs-space-4);padding:var(--rs-space-4);border:1px solid var(--rs-border-default);border-radius:var(--rs-radius-lg);background:var(--rs-surface-1)}
.bookshelf-sync-review-book{min-width:0}.bookshelf-sync-review-pair{display:grid;grid-template-columns:1fr 1fr;gap:var(--rs-space-3);margin-top:.35rem}
.bookshelf-sync-review-edition{display:grid;grid-template-columns:56px minmax(0,1fr);gap:.65rem;align-items:start;min-width:0;text-decoration:none;color:inherit}.bookshelf-sync-review-cover{display:flex;width:56px;aspect-ratio:2/3;overflow:hidden;border-radius:var(--rs-radius-sm);background:var(--rs-surface-2);border:1px solid var(--rs-border-default);align-items:center;justify-content:center;color:var(--rs-text-secondary);font-size:.72rem;font-weight:700}.bookshelf-sync-review-cover img{display:block;width:100%;height:100%;object-fit:cover}.bookshelf-sync-review-edition-copy{display:grid;gap:.2rem;min-width:0}.bookshelf-sync-review-edition-copy small{color:var(--rs-text-secondary)}.bookshelf-sync-review-edition-copy strong{overflow-wrap:anywhere}
.bookshelf-sync-review-comparison{border-left:1px solid var(--rs-border-default);padding-left:var(--rs-space-4)}.bookshelf-sync-review-comparison>strong{display:block;margin-bottom:.45rem}.bookshelf-sync-review-comparison>div{display:grid;grid-template-columns:1fr 1fr;gap:.65rem}.bookshelf-sync-review-comparison>div>span{display:grid;align-content:start;gap:.28rem;min-width:0}.bookshelf-sync-review-comparison>div>span>small{color:var(--rs-text-secondary)}.bookshelf-sync-review-comparison .rs-rating{margin-top:.05rem}.bookshelf-sync-review-comparison .rs-rating__stars{display:inline-flex;flex-wrap:nowrap}.bookshelf-sync-review-comparison .is-newer-date>b{color:var(--rs-status-danger-text,#ef8f8f)}.bookshelf-sync-review-comparison .is-newer-date>small{color:var(--rs-status-danger-text,#ef8f8f)}
.bookshelf-sync-review-actions{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:.65rem}.bookshelf-sync-review-actions .rs-button{padding:.4rem .65rem;font-size:.82rem}.bookshelf-sync-review-action-note{display:block;width:100%;color:var(--rs-text-secondary)}.bookshelf-sync-review-feedback{margin-top:.6rem;font-size:.82rem;font-weight:650}.bookshelf-sync-review-feedback.is-success{color:var(--rs-status-success-text,#8bcf9b)}.bookshelf-sync-review-feedback.is-error{color:var(--rs-status-danger-text,#ef8f8f)}.bookshelf-sync-review-row.is-resolved{border-color:var(--rs-status-success-border,var(--rs-border-default))}
.bookshelf-sync-review-link{margin-top:var(--rs-space-2)}
@media(max-width:1000px){.bookshelf-sync-review-row{grid-template-columns:1fr 1fr}.bookshelf-sync-review-book{grid-column:1/-1}.bookshelf-sync-review-comparison:first-of-type{border-left:0;padding-left:0}}
@media(max-width:700px){.bookshelf-sync-review-row{grid-template-columns:1fr}.bookshelf-sync-review-comparison{border-left:0;border-top:1px solid var(--rs-border-default);padding-left:0;padding-top:var(--rs-space-3)}.bookshelf-sync-review-controls,.bookshelf-sync-review-summary{align-items:stretch;flex-direction:column}.bookshelf-sync-review-pair{grid-template-columns:1fr}.bookshelf-sync-review-size{align-items:end}}



.bookshelf-sync-review-bulk{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:var(--rs-space-3) var(--rs-space-4);min-width:min(100%,620px);padding:var(--rs-space-3);border:1px solid var(--rs-border-default);border-radius:var(--rs-radius-md);background:var(--rs-surface-2)}
.bookshelf-sync-review-bulk-copy{display:grid;gap:.2rem;min-width:0}.bookshelf-sync-review-bulk-eyebrow{color:var(--rs-text-secondary);font-size:.72rem;font-weight:700;letter-spacing:.08em}.bookshelf-sync-review-bulk-copy>strong{font-size:.95rem}.bookshelf-sync-review-bulk small{color:var(--rs-text-muted)}.bookshelf-sync-review-bulk-safety{display:block}.bookshelf-sync-review-bulk .bookshelf-sync-review-feedback{grid-column:1/-1;margin:0}.bookshelf-sync-review-bulk>.rs-button{white-space:nowrap}.bookshelf-sync-review-bulk-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--rs-space-2)}.bookshelf-sync-review-bulk-actions .rs-button{white-space:nowrap}.bookshelf-sync-review-summary:has([data-sync-bulk-dates]) .bookshelf-sync-review-bulk{grid-template-columns:1fr}.bookshelf-sync-review-summary:has([data-sync-bulk-dates]) .bookshelf-sync-review-bulk-actions{justify-content:flex-start}
@media(max-width:700px){.bookshelf-sync-review-bulk{grid-template-columns:1fr}.bookshelf-sync-review-bulk>.rs-button{width:100%}.bookshelf-sync-review-bulk-actions{display:grid;grid-template-columns:1fr}.bookshelf-sync-review-bulk-actions .rs-button{width:100%}}



/* Owner-only bookshelf notices: personal attention layer, not public content. */

/* Overview owns spacing between shared Personal Notice components and surrounding sections. */
.bookshelf-overview-notices{display:grid;gap:var(--rs-space-3);margin-top:var(--rs-space-4)}
@media(max-width:720px){.bookshelf-overview-notices{gap:var(--rs-space-2);margin-top:var(--rs-space-3)}}
