.continue-feature { display: grid; grid-template-columns: 9rem minmax(0, 1fr); gap: var(--space-32); align-items: stretch; }
.continue-feature > .book-cover-link { height: 100%; }
.continue-feature > .book-cover-link .book-cover-wrap { height: 100%; min-height: 100%; aspect-ratio: auto; }
.continue-content { max-width: 44rem; }
.continue-content h3, .club-feature h3, .book-hero h1 { font-family: var(--font-editorial); font-weight: 600; }
.continue-content h3 { font-size: var(--text-2xl); }
.continue-content .author { margin-top: var(--space-4); color: var(--text-secondary); }
.continue-content .progress-meta { margin-top: var(--space-24); }
.continue-content .progress-track { margin-top: var(--space-8); }
.continue-actions { display: flex; flex-wrap: wrap; gap: var(--space-12); margin-top: var(--space-24); }
.reading-carousel { display: grid; grid-auto-flow: column; grid-auto-columns: 100%; gap: var(--space-24); overflow: hidden; scroll-behavior: smooth; scroll-snap-type: x mandatory; }
.reading-carousel.multiple { grid-auto-columns: calc((100% - var(--space-24)) / 2); }
.reading-carousel > * { scroll-snap-align: start; }
.reading-carousel.multiple .continue-feature { grid-template-columns: 7rem minmax(0, 1fr); gap: var(--space-24); padding: var(--space-24); }
.reading-carousel.multiple .continue-content h3 { font-size: var(--text-xl); }
.reading-nav { display: flex; align-items: center; gap: var(--space-8); }
.reading-nav.two-readings { display: none; }
.reading-counter { min-width: 4.5rem; color: var(--text-muted); font-size: var(--text-sm); text-align: right; }
.reading-nav .button { min-height: 2rem; width: 2rem; }

.home-secondary { display: grid; grid-template-columns: 7fr 5fr; gap: var(--space-24); align-items: stretch; }
.home-secondary > article { display: flex; min-width: 0; flex-direction: column; }
.home-secondary > article > .surface { flex: 1; }
.month-feature { display: grid; grid-template-columns: 6.5rem 1fr; gap: var(--space-24); align-items: center; }
.month-feature .book-cover-wrap { aspect-ratio: 2 / 3; }
.month-feature h3 { font-family: var(--font-editorial); }
.month-feature .button, .event-card .button { margin-top: var(--space-24); }
.event-layout { display: grid; height: 100%; grid-template-columns: 4rem minmax(0, 1fr); gap: var(--space-24); align-items: center; }
.event-date { display: inline-grid; min-width: 4rem; grid-template-columns: 1fr; border-right: 1px solid var(--border-strong); padding-right: var(--space-16); text-align: center; }
.event-date strong { font-size: var(--text-2xl); line-height: 1; }
.event-date span { margin-top: var(--space-4); color: var(--text-secondary); font-size: var(--text-xs); font-weight: 600; letter-spacing: .08em; }
.event-card h3 { margin-top: 0; }
.event-card p { margin-top: var(--space-4); color: var(--text-secondary); font-size: var(--text-sm); }
.event-card .button { margin-top: var(--space-16); }

.feed-section { max-width: 54rem; }
.feed-list { border-top: 1px solid var(--border-default); }
.feed-item { display: grid; grid-template-columns: 3rem minmax(0,1fr) 3rem; gap: var(--space-16); align-items: center; border-bottom: 1px solid var(--border-default); padding: var(--space-16) 0; cursor: pointer; }
.feed-item:focus-visible { outline: 2px solid var(--text-primary); outline-offset: 3px; }
.feed-item > div { min-width: 0; }
.feed-item p { line-height: 1.5; }
.feed-item p a:hover { text-decoration: underline; }
.feed-item time { display: block; margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-xs); }
.feed-avatar { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--border-default); border-radius: 50%; object-fit: cover; }
.feed-avatar-fallback { background: var(--bg-surface); color: var(--text-secondary); font-size: var(--text-xs); font-weight: 700; }
.feed-image { width: 3rem; height: 3rem; overflow: hidden; border-radius: var(--radius-sm); background: var(--bg-surface); }
.feed-image img { width: 100%; height: 100%; object-fit: cover; }
.feed-rating { display: block; margin-top: var(--space-4); color: var(--text-secondary); letter-spacing: .08em; }
.feed-sentinel { display: flex; min-height: 3.5rem; align-items: center; justify-content: center; gap: var(--space-8); color: var(--text-muted); font-size: var(--text-sm); }

.tutorial-filters { margin-bottom: var(--space-32); }
.tutorial-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-32) var(--space-24); }
.tutorial-card { display: grid; gap: var(--space-8); }
.tutorial-thumbnail { position: relative; display: block; overflow: hidden; aspect-ratio: 16/9; border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--bg-surface); }
.tutorial-thumbnail img { width: 100%; height: 100%; object-fit: cover; transition: opacity var(--transition); }
.tutorial-thumbnail > span { position: absolute; inset: 50% auto auto 50%; display: grid; width: 3rem; height: 3rem; place-items: center; transform: translate(-50%,-50%); border-radius: 50%; background: rgba(11,11,11,.84); }
.tutorial-card:hover .tutorial-thumbnail img { opacity: .78; }
.tutorial-card strong { font-size: var(--text-lg); }
.tutorial-card small { color: var(--text-muted); }
.tutorial-detail { max-width: 62rem; }
.tutorial-detail header { max-width: 48rem; margin-bottom: var(--space-32); }
.tutorial-detail h1 { margin-top: var(--space-12); }
.tutorial-detail header p { margin-top: var(--space-16); color: var(--text-secondary); line-height: 1.65; }
.tutorial-player { overflow: hidden; aspect-ratio: 16/9; border: 1px solid var(--border-default); border-radius: var(--radius); background: #000; }
.tutorial-player iframe { width: 100%; height: 100%; border: 0; }

.shelf-toolbar { display: flex; align-items: center; justify-content: space-between; gap: var(--space-24); margin-bottom: var(--space-32); }
.shelf-header-actions { display: flex; gap: var(--space-8); }
.list-header-actions { display: flex; gap: var(--space-8); }
.user-list-description { max-width: 46rem; color: var(--text-secondary); }
.list-page-toolbar { justify-content: flex-start; margin-top: var(--space-24); }
.view-toggle { display: flex; gap: var(--space-4); }
.book-grid.list-view { grid-template-columns: 1fr; gap: 0; }
.book-grid.list-view .book-card { display: grid; grid-template-columns: 3.5rem minmax(0, 1fr) auto 2.5rem; align-items: center; gap: var(--space-16); border-top: 1px solid var(--border-subtle); padding: var(--space-12) 0; }
.book-grid.list-view .book-card:last-child { border-bottom: 1px solid var(--border-subtle); }
.book-grid.list-view .book-cover-link { grid-row: span 3; width: 3.5rem; }
.book-grid.list-view .book-cover-wrap { width: 3.5rem; margin: 0; }
.book-grid.list-view .book-title { grid-column: 2; grid-row: 1; min-height: 0; }
.book-grid.list-view .book-author { grid-column: 2; grid-row: 2; min-height: 0; }
.book-grid.list-view .book-card-tags { grid-column: 3; grid-row: 1 / span 2; justify-content: flex-end; margin: 0; }
.book-grid.list-view .context-trigger { position: static; grid-column: 4; grid-row: 1 / span 2; opacity: 1; }

.club-feature { position: relative; display: grid; grid-template-columns: 10rem minmax(0, 1fr); gap: var(--space-32); align-items: stretch; cursor: pointer; }
.club-feature > .book-cover-wrap { height: 100%; min-height: 100%; aspect-ratio: auto; }
.club-feature:focus-visible { outline: 2px solid var(--text-primary); outline-offset: 3px; }
.club-discussion-icon { position: absolute; right: var(--space-16); bottom: var(--space-16); display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--bg-page); color: var(--text-secondary); }
.club-feature:hover .club-discussion-icon { color: var(--text-primary); border-color: var(--border-strong); }
.club-feature h3 { font-size: var(--text-2xl); }
.club-meta { display: flex; flex-wrap: wrap; gap: var(--space-24); margin-top: var(--space-24); }
.club-meta strong, .club-meta span { display: block; }
.club-meta strong { font-size: var(--text-lg); }
.club-meta span { color: var(--text-secondary); font-size: var(--text-sm); }
.vote-list { border-top: 1px solid var(--border-default); }
.vote-option { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: var(--space-16); align-items: center; border-bottom: 1px solid var(--border-default); padding: var(--space-16) 0; cursor: pointer; }
.vote-option.selected, .vote-option:has(input:checked) { background: var(--bg-surface); box-shadow: inset 3px 0 var(--text-secondary); padding-inline: var(--space-16); }
.vote-option input { width: 1.125rem; height: 1.125rem; accent-color: var(--text-primary); }
.vote-option strong { font-family: var(--font-editorial); font-size: var(--text-lg); }
.vote-option .book-status { display: block; margin-top: var(--space-4); }
.vote-count { color: var(--text-secondary); font-size: var(--text-sm); }
.vote-option-end { display: flex; align-items: center; gap: var(--space-12); }
.vote-info { display: grid; width: 2rem; height: 2rem; flex: 0 0 auto; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; background: transparent; color: var(--text-secondary); cursor: pointer; }
.vote-info:hover { border-color: var(--text-secondary); color: var(--text-primary); }
.vote-book-details { display: grid; grid-template-columns: 9rem minmax(0,1fr); gap: var(--space-24); }
.vote-book-details > .book-cover-wrap { width: 9rem; aspect-ratio: 2 / 3; }
.vote-book-details h3 { font-family: var(--font-editorial); font-size: var(--text-xl); }
.vote-book-synopsis { margin: 0 0 var(--space-24); color: var(--text-secondary); line-height: 1.65; }
.vote-actions { display: flex; align-items: center; gap: var(--space-16); margin-top: var(--space-24); }
.vote-note { color: var(--text-muted); font-size: var(--text-sm); }
.previous-read-carousel { grid-auto-columns: min(16rem, calc((100% - 4.5rem) / 4)); }
.previous-read-carousel .book-author { margin-top: var(--space-4); }
.previous-read-carousel .book-status { margin-top: var(--space-8); }
.discussion-list { display: grid; }
.discussion-form { margin-top: var(--space-24); }
.comment { display: grid; grid-template-columns: 2.5rem 1fr; gap: var(--space-12); border-bottom: 1px solid var(--border-subtle); padding: var(--space-16) 0; }
.comment-avatar { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--border-default); border-radius: 50%; background: var(--bg-surface); font-size: var(--text-xs); font-weight: 700; }
.comment-profile-avatar { display: block; width: 2.5rem; height: 2.5rem; border-radius: 50%; }
.comment-profile-avatar .comment-avatar { object-fit: cover; }
.comment-head a:hover { text-decoration: underline; text-underline-offset: .18em; }
.comment-head { display: flex; justify-content: space-between; gap: var(--space-16); }
.comment-head time { color: var(--text-muted); font-size: var(--text-xs); }
.comment p { margin-top: var(--space-8); color: var(--text-secondary); }
#reviews .comment:last-child { border-bottom: 0; }

.agenda-summary { margin: var(--space-24) 0 var(--space-32); color: var(--text-secondary); }
.agenda-summary strong { color: var(--text-primary); }
.timeline-month + .timeline-month { margin-top: var(--space-48); }
.month-label { margin-bottom: var(--space-16); color: var(--text-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .1em; }
.timeline-item { display: grid; grid-template-columns: 4.5rem 1px minmax(0, 1fr); gap: var(--space-24); }
.timeline-date { padding-top: var(--space-16); text-align: right; }
.timeline-date strong { display: block; font-size: var(--text-lg); line-height: 1; }
.timeline-date span { color: var(--text-muted); font-size: var(--text-xs); font-weight: 600; }
.timeline-line { background: var(--border-default); }
.timeline-content { border-bottom: 1px solid var(--border-subtle); padding: var(--space-12) 0 var(--space-24); }
.timeline-title { display: block; font-size: var(--text-md); font-weight: 600; }
.timeline-trigger-meta { display: block; margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-xs); }
.timeline-content > p { margin-top: var(--space-4); color: var(--text-secondary); font-size: var(--text-sm); }
.timeline-details { margin-top: var(--space-16); color: var(--text-secondary); }
.timeline-details p + p { margin-top: var(--space-8); }
.timeline-details .button { margin-top: var(--space-16); }

.calendar-toolbar { margin-bottom: var(--space-24); }
.agenda-header-actions { display: flex; align-items: center; gap: var(--space-12); }
.agenda-view-toggle { display: flex; gap: var(--space-4); }
.calendar-section { margin-top: 0; }
.calendar-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: var(--space-24); margin-bottom: var(--space-16); }
.calendar-heading p { margin-top: var(--space-4); color: var(--text-secondary); font-size: var(--text-sm); }
.calendar-navigation { display: flex; gap: var(--space-8); }
.calendar { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); overflow: hidden; border-top: 1px solid var(--border-default); border-left: 1px solid var(--border-default); border-radius: var(--radius); }
.calendar-weekday { border-right: 1px solid var(--border-default); border-bottom: 1px solid var(--border-default); padding: var(--space-8) var(--space-12); color: var(--text-muted); font-size: var(--text-xs); font-weight: 700; letter-spacing: .08em; text-align: right; }
.calendar-day { display: flex; min-width: 0; min-height: 6.5rem; flex-direction: column; gap: var(--space-8); border-right: 1px solid var(--border-default); border-bottom: 1px solid var(--border-default); background: var(--bg-page); padding: var(--space-8); color: var(--text-primary); text-align: left; cursor: pointer; transition: background var(--transition); }
.calendar-day:hover { background: var(--bg-surface-hover); }
.calendar-day.outside { background: var(--bg-sidebar); color: var(--text-disabled); }
.calendar-day.today { box-shadow: inset 0 0 0 1px var(--text-secondary); }
.calendar-day-number { align-self: flex-end; display: grid; min-width: 1.5rem; height: 1.5rem; place-items: center; font-size: var(--text-sm); font-weight: 600; }
.calendar-day.today .calendar-day-number { background: var(--text-primary); color: var(--bg-page); }
.calendar-day-events { display: grid; gap: var(--space-4); min-width: 0; }
.calendar-event { display: block; overflow: hidden; border-left: 2px solid var(--text-secondary); background: var(--bg-elevated); padding: var(--space-4) var(--space-8); color: var(--text-secondary); font-size: var(--text-xs); line-height: 1.3; text-overflow: ellipsis; white-space: nowrap; }
.calendar-event span { color: var(--text-primary); font-weight: 600; }
.calendar-more { color: var(--text-muted); font-size: var(--text-xs); }
.day-events { display: grid; gap: var(--space-24); }
.day-event { border-top: 1px solid var(--border-default); padding-top: var(--space-16); }
.day-event:first-child { border-top: 0; padding-top: 0; }
.day-event-head { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-16); }
.day-event-head h3 { margin-top: var(--space-4); font-family: var(--font-editorial); }
.day-event-head > strong { font-size: var(--text-sm); }
.event-type { color: var(--text-muted); font-size: var(--text-xs); font-weight: 600; letter-spacing: .06em; text-transform: uppercase; }
.day-event > p { margin-top: var(--space-8); color: var(--text-secondary); }
.day-event .event-attendees { color: var(--text-muted); font-size: var(--text-sm); }
.day-event .button { margin-top: var(--space-16); }
.agenda-list { max-width: 58rem; border-top: 1px solid var(--border-default); }
.agenda-list-month { border-bottom: 1px solid var(--border-default); padding: var(--space-32) 0 var(--space-12); font-size: var(--text-lg); }
.agenda-list-month:first-child { padding-top: var(--space-8); }
.agenda-list-event { display: grid; width: 100%; grid-template-columns: 4rem minmax(0, 1fr) auto; gap: var(--space-24); align-items: center; border-bottom: 1px solid var(--border-default); background: transparent; padding: var(--space-16) var(--space-8); color: var(--text-primary); text-align: left; cursor: pointer; }
.agenda-list-event:hover { background: var(--bg-surface); }
.agenda-list-date { display: grid; justify-items: center; border-right: 1px solid var(--border-default); }
.agenda-list-date strong { font-size: var(--text-xl); line-height: 1.1; }
.agenda-list-date span { color: var(--text-muted); font-size: var(--text-xs); text-transform: uppercase; }
.agenda-list-copy { display: grid; min-width: 0; gap: var(--space-4); }
.agenda-list-copy > strong { font-size: var(--text-md); }
.agenda-list-copy > span:last-child { overflow: hidden; color: var(--text-secondary); font-size: var(--text-sm); text-overflow: ellipsis; white-space: nowrap; }
.agenda-list-arrow { color: var(--text-muted); }

.profile-header { display: grid; grid-template-columns: 4.5rem 1fr; gap: var(--space-16); align-items: center; margin-bottom: var(--space-24); }
.profile-header .avatar { width: 4.5rem; height: 4.5rem; }
.profile-header h1 { font-size: var(--text-2xl); }
.profile-header p { color: var(--text-secondary); }
.profile-header .profile-total { margin-top: var(--space-8); color: var(--text-primary); font-size: var(--text-sm); }
.membership-wrap { max-width: 38rem; }
.membership-card { position: relative; aspect-ratio: 1.644 / 1; overflow: hidden; border: 1px solid #383838; border-radius: var(--radius); background: #0c0c0c url('../assets/images/carteirinha_galeitura_clean.png') center / cover no-repeat; color: #0b0b0b; container-type: inline-size; }
.membership-card-motto { background-image: url('../assets/images/carteirinha_galeitura_motto.png'); }
.membership-card::after { content: ''; position: absolute; right: 0; bottom: 0; z-index: 1; width: 17.2%; aspect-ratio: 1; border-radius: 0 0 var(--radius) 0; background: #e9e8e3 url('../assets/images/membership-paper.webp') center / auto 100% repeat-x; }
.membership-card-info { position: absolute; top: 44.2%; left: 0; display: flex; width: 55.2%; height: 40.4%; flex-direction: column; justify-content: space-between; background: #e9e8e3 url('../assets/images/membership-paper.webp') center / auto 100% repeat-x; padding: 0 4% 1%; }
.membership-identity { display: flex; min-height: 40%; flex-direction: column; justify-content: center; }
.membership-name { overflow: hidden; font-size: clamp(.95rem, 5cqw, 2rem); font-weight: 700; letter-spacing: -.03em; line-height: 1.05; text-overflow: ellipsis; white-space: nowrap; }
.membership-identity span { overflow: hidden; margin-top: .18rem; color: #555550; font-size: clamp(.42rem, 1.65cqw, .8rem); line-height: 1.1; text-overflow: ellipsis; white-space: nowrap; }
.membership-card-data { display: grid; height: 60%; grid-template-columns: 1.45fr 1fr; border-top: 1px solid #2b2b2b; }
.membership-card-data span { display: grid; align-content: center; gap: .3rem; }
.membership-card-data span + span { border-left: 1px solid #2b2b2b; padding-left: 14%; }
.membership-card-data small { color: #353535; font-size: clamp(.38rem, 1.35cqw, .68rem); font-weight: 700; letter-spacing: .04em; line-height: 1; text-transform: uppercase; }
.membership-card-data b { font-size: clamp(.9rem, 7cqw, 3rem); line-height: .9; }
.membership-card-data span + span b { font-size: clamp(.8rem, 4.2cqw, 1.8rem); }
.membership-footer { position: absolute; bottom: 0; left: 15.3%; display: flex; height: 15.4%; align-items: center; gap: 4%; min-width: 31%; padding: 0 1.4%; color: #f2f2f0; font-family: var(--font-editorial); font-size: clamp(.52rem, 2.4cqw, 1.1rem); line-height: 1; white-space: nowrap; }
.membership-footer strong { font-size: 1.05em; }
.membership-footer.is-motto { font-family: var(--font-body); font-size: clamp(.4rem, 1.65cqw, .76rem); font-weight: 600; letter-spacing: .01em; }
.membership-share { margin-top: var(--space-24); }
.membership-card + .membership-actions { margin-top: var(--space-24); }
.membership-actions { margin-bottom: var(--space-24); }
.card-share { display: grid; justify-items: center; gap: var(--space-16); }
.card-share-preview { display: block; width: min(100%, 42rem); border: 1px solid var(--border-default); border-radius: var(--radius); }
.card-share-preview img { display: block; width: 100%; border-radius: inherit; }
.public-profile-header { display: flex; flex-direction: column; gap: var(--space-16); align-items: center; border-bottom: 1px solid var(--border-default); padding-bottom: var(--space-32); text-align: center; }
.public-profile-avatar-wrap { position: relative; width: 8rem; height: 8rem; }
.public-profile-avatar { display: grid; width: 8rem; height: 8rem; place-items: center; border: 1px solid var(--border-strong); border-radius: 50%; object-fit: cover; }
.public-profile-avatar-fallback { background: var(--bg-surface); font-family: var(--font-editorial); font-size: var(--text-2xl); }
.profile-avatar-edit { position: absolute; right: 0; bottom: 0; border-radius: 50%; background: var(--bg-page); }
.public-profile-identity h1 { font-size: var(--text-3xl); }
.public-profile-identity p { margin-top: var(--space-8); color: var(--text-secondary); }
.public-profile-city { display: block; margin: var(--space-8) auto 0; border: 0; background: transparent; color: var(--text-secondary); cursor: pointer; font: inherit; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: .2em; transition: color var(--transition), text-decoration-color var(--transition); }
.public-profile-city:hover { color: var(--text-primary); text-decoration-color: currentColor; }
.public-profile-identity .public-profile-username { display: block; width: max-content; margin: var(--space-12) auto 0; color: var(--text-muted); font-size: var(--text-sm); }
.public-profile-socials { display: flex; align-items: center; justify-content: center; gap: var(--space-8); margin-top: var(--space-8); }
.public-profile-socials a { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border: 1px solid var(--border-default); border-radius: 50%; color: var(--text-secondary); transition: border-color var(--transition), color var(--transition), background var(--transition); }
.public-profile-socials a:hover { border-color: var(--border-strong); background: var(--bg-surface-hover); color: var(--text-primary); }
.public-profile-socials svg { width: 1.125rem; height: 1.125rem; }
.public-profile-follow { display: flex; margin: var(--space-16) auto 0; }
.public-profile-follow.is-following { color: var(--text-secondary); }
.public-profile-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--space-8); }
.member-list { width: 100%; }
.member-list-item { display: grid; width: 100%; grid-template-columns: 3rem minmax(0,1fr) auto; align-items: center; gap: var(--space-12); border-bottom: 1px solid var(--border-default); padding: var(--space-12) 0; }
.member-list-item:first-child { padding-top: 0; }
.member-list-item:last-child { border-bottom: 0; padding-bottom: 0; }
.member-list-item > span:not(.member-list-avatar) { display: grid; gap: var(--space-4); }
.member-list-item small { color: var(--text-muted); }
.member-list-item > svg { color: var(--text-muted); }
.member-list-avatar { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--border-default); border-radius: 50%; object-fit: cover; }
.member-list-avatar-fallback { background: var(--bg-surface); font-size: var(--text-xs); font-weight: 700; }
.profile-books .book-grid { margin-top: var(--space-16); }
.profile-qr { position: absolute; right: 0; bottom: 0; z-index: 2; box-sizing: border-box; width: 17.2% !important; height: auto !important; aspect-ratio: 1; overflow: hidden; border: 0; border-radius: 0 0 var(--radius) 0; background: #f2f2f0; padding: .65%; }
.profile-qr img, .profile-qr canvas { display: block; width: 100% !important; height: 100% !important; }
.story-share { display: grid; justify-items: center; gap: var(--space-16); }
.story-editor { display: grid; order: 2; width: 100%; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-24); border-top: 1px solid var(--border-default); padding-top: var(--space-24); }
.story-control-group { min-width: 0; border: 0; margin: 0; padding: 0; }
.story-control-group legend { margin-bottom: var(--space-12); color: var(--text-secondary); font-size: var(--text-sm); font-weight: 500; }
.story-color-options { display: flex; flex-wrap: wrap; gap: var(--space-16); }
.story-color-choice { position: relative; display: grid; justify-items: center; gap: var(--space-8); color: var(--text-secondary); font-size: var(--text-xs); cursor: pointer; }
.story-color-choice input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.story-color-swatch { display: block; width: 2.5rem; height: 2.5rem; border: 2px solid transparent; border-radius: 50%; box-shadow: 0 0 0 1px var(--border-strong); transition: box-shadow var(--transition), transform var(--transition); }
.story-color-choice:hover .story-color-swatch { transform: scale(1.05); }
.story-color-choice input:checked + .story-color-swatch { box-shadow: 0 0 0 2px var(--bg-surface), 0 0 0 4px var(--text-primary); }
.story-color-choice input:focus-visible + .story-color-swatch { outline: 2px solid var(--text-primary); outline-offset: 4px; }
.story-color-black { background: #0b0b0b; }
.story-color-paper { background: #e9e3d8; }
.story-color-wine { background: #260d15; }
.story-color-white { background: #f2f2f0; }
.story-toggle-options { display: grid; grid-column: 1 / -1; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12); }
.story-toggle { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); border: 1px solid var(--border-default); border-radius: var(--radius); padding: var(--space-12) var(--space-16); color: var(--text-secondary); font-size: var(--text-sm); cursor: pointer; }
.story-toggle input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.story-toggle-track { position: relative; width: 2.8rem; height: 1.5rem; flex: 0 0 auto; border-radius: 999px; background: #777; transition: background var(--transition); }
.story-toggle-track::after { content: ''; position: absolute; top: .1875rem; left: .1875rem; width: 1.125rem; height: 1.125rem; border-radius: 50%; background: #f5f5f5; transition: transform var(--transition), background var(--transition); }
.story-toggle input:checked + .story-toggle-track { background: #f2f2f0; }
.story-toggle input:checked + .story-toggle-track::after { background: #111; transform: translateX(1.3rem); }
.story-toggle input:focus-visible + .story-toggle-track { outline: 2px solid var(--text-primary); outline-offset: 3px; }
.story-toggle:has(input:disabled) { opacity: .45; cursor: not-allowed; }
.story-preview-shell { display: grid; order: 1; width: min(100%, 19rem); aspect-ratio: 9 / 16; overflow: hidden; place-items: center; border: 1px solid var(--border-default); border-radius: var(--radius); background: #080808; }
.story-preview-shell .loading-state { padding: var(--space-24); }
.story-preview { display: block; width: 100%; height: 100%; object-fit: contain; }
.story-share-actions { order: 3; justify-content: center; margin-top: 0; }
.story-link-share { order: 4; padding: var(--space-8); }
.image-upload-preview { display: grid; place-items: center; margin-top: var(--space-16); }
.username-field { display: flex; align-items: center; border: 1px solid var(--border-default); border-radius: var(--radius); background: var(--bg-page); }
.username-field:focus-within { border-color: var(--border-strong); }
.username-field span { padding-left: var(--space-12); color: var(--text-muted); font-size: var(--text-sm); white-space: nowrap; }
.username-field .input { border: 0; padding-left: var(--space-4); }
.settings-save { justify-content: flex-start; }
.achievement-list { display: grid; grid-template-columns: repeat(4, 1fr); gap: var(--space-16); }
.achievement { border-top: 1px solid var(--border-strong); padding-top: var(--space-16); }
.achievement-number { display: grid; width: 2rem; height: 2rem; place-items: center; border: 1px solid var(--border-strong); border-radius: var(--radius-sm); font-size: var(--text-xs); font-weight: 700; }
.achievement h3 { margin-top: var(--space-12); font-size: var(--text-md); }
.achievement p { margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-sm); }
.history-list { border-top: 1px solid var(--border-default); }
.history-row { display: flex; justify-content: space-between; border-bottom: 1px solid var(--border-default); padding: var(--space-16) 0; }
.history-row span { color: var(--text-secondary); }

.back-link { display: inline-flex; align-items: center; gap: var(--space-8); margin-bottom: var(--space-32); color: var(--text-secondary); font-size: var(--text-sm); }
.back-link:hover { color: var(--text-primary); }
.book-page-layout { display: grid; grid-template-columns: minmax(12rem, 18rem) minmax(0, 1fr); gap: clamp(var(--space-32), 5vw, var(--space-64)); align-items: start; max-width: 72rem; }
.book-sticky-cover { position: sticky; top: calc(var(--topbar-height) + var(--space-32)); }
.book-hero-cover { max-width: 18rem; }
.book-hero-cover .book-cover-wrap { aspect-ratio: 2 / 3; }
.book-readers-mobile { display: none; }
.book-readers-desktop { margin-top: var(--space-16); }
.book-readers-summary { display: flex; width: 100%; align-items: center; gap: var(--space-12); border: 0; background: transparent; color: var(--text-secondary); padding: var(--space-8) 0; cursor: pointer; font-size: var(--text-sm); text-align: left; }
.book-readers-summary:not(:disabled):hover { color: var(--text-primary); }
.book-readers-summary:disabled { cursor: default; opacity: .65; }
.book-reader-stack { display: flex; min-width: 2.5rem; padding-left: .5rem; }
.book-reader-avatar { display: grid; width: 2.25rem; height: 2.25rem; margin-left: -.5rem; place-items: center; border: 2px solid var(--bg-page); border-radius: 50%; background: var(--bg-surface); object-fit: cover; }
.book-reader-avatar-fallback { font-size: .625rem; font-weight: 700; }
.book-page-content { min-width: 0; }
.guest-app-body .back-link,
.guest-app-body .book-hero-status,
.guest-app-body .book-hero-actions,
.guest-app-body .book-progress,
.guest-app-body #sua-leitura { display: none; }
.book-info h1 { font-family: var(--font-editorial); font-size: var(--text-3xl); font-weight: 600; }
.book-title-row { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-24); }
.book-hero-author { margin-top: var(--space-8); color: var(--text-secondary); font-size: var(--text-lg); }
.book-hero-rating { margin-top: var(--space-16); color: var(--text-secondary); font-size: var(--text-sm); }
.book-hero-status { margin-top: var(--space-24); }
.book-hero-actions { display: flex; flex-wrap: wrap; gap: var(--space-12); margin-top: var(--space-24); }
.book-progress { max-width: 34rem; margin-top: var(--space-24); }
.book-progress .progress-track { margin-top: var(--space-8); }
.book-details { max-width: 58rem; margin-top: var(--space-48); }
.book-details .accordion-panel p { max-width: 48rem; }
.book-review-actions { justify-content: flex-start; }
.rating-wrap { display: flex; align-items: center; gap: var(--space-16); margin: var(--space-8) 0 var(--space-16); }
.half-rating { gap: var(--space-4); }
.rating-star { position: relative; display: inline-block; width: 2.5rem; height: 2.5rem; color: var(--text-disabled); font-size: var(--text-xl); line-height: 2.5rem; text-align: center; }
.rating-empty, .rating-fill { position: absolute; inset: 0; pointer-events: none; }
.rating-fill { width: 100%; overflow: hidden; clip-path: inset(0 calc(100% - var(--rating-fill)) 0 0); color: var(--text-primary); white-space: nowrap; }
.half-rating .rating-hit { position: absolute; top: 0; bottom: 0; z-index: 1; width: 50%; height: 100%; background: transparent; padding: 0; cursor: pointer; }
.rating-hit-left { left: 0; }
.rating-hit-right { right: 0; }
.rating-hit:focus-visible { outline-offset: -2px; }
.rating-value { color: var(--text-muted); font-size: var(--text-sm); }
.reader-filter-tabs { display: flex; overflow-x: auto; gap: var(--space-8); margin-bottom: var(--space-24); padding-bottom: var(--space-4); scrollbar-width: none; }
.reader-filter-tabs .filter-tab { flex: 0 0 auto; }
.book-reader-list { border-top: 1px solid var(--border-default); }
.book-reader-item { display: grid; grid-template-columns: 3rem minmax(0,1fr) auto auto; align-items: center; gap: var(--space-12); border-bottom: 1px solid var(--border-default); padding: var(--space-12) 0; }
.book-reader-list-avatar { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--border-default); border-radius: 50%; background: var(--bg-surface); object-fit: cover; }
.book-reader-person { display: grid; gap: var(--space-4); min-width: 0; }
.book-reader-person strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.book-reader-person small { color: var(--text-muted); }
.reader-stars { position: relative; display: inline-block; color: var(--text-disabled); font-size: var(--text-sm); letter-spacing: .08em; white-space: nowrap; }
.reader-stars-fill { position: absolute; inset: 0 auto 0 0; overflow: hidden; color: var(--text-primary); white-space: nowrap; }
.book-reader-item > svg { color: var(--text-muted); }
.edition-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-16) var(--space-32); }
.edition-grid dt { color: var(--text-muted); font-size: var(--text-xs); }
.edition-grid dd { margin: var(--space-4) 0 0; }

.settings-layout { max-width: 52rem; }
.settings-section { border-top: 1px solid var(--border-default); padding: var(--space-24) 0 var(--space-32); }
.settings-section h2 { font-size: var(--text-lg); }
.settings-section > p { margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-sm); }
.settings-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-16); margin-top: var(--space-24); }
.settings-fields > .form-group + .form-group { margin-top: 0; }
.settings-account-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: start; gap: var(--space-16); margin-top: var(--space-24); }
.settings-account-column { display: grid; align-content: start; gap: var(--space-16); }
.settings-account-column .form-group + .form-group { margin-top: 0; }
.check-row { display: flex; align-items: flex-start; gap: var(--space-12); margin-top: var(--space-16); }
.check-row input { width: 1.125rem; height: 1.125rem; margin-top: .15rem; accent-color: var(--text-primary); }
.check-row label span { display: block; color: var(--text-muted); font-size: var(--text-sm); }

.admin-section { max-width: 72rem; }
.admin-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-24); margin-bottom: var(--space-24); }
.admin-section-heading p { margin-top: var(--space-4); color: var(--text-muted); font-size: var(--text-sm); }
.admin-list { border-top: 1px solid var(--border-default); }
.admin-row { display: flex; align-items: center; justify-content: space-between; gap: var(--space-24); border-bottom: 1px solid var(--border-default); padding: var(--space-16) 0; }
.admin-row-main { display: grid; min-width: 0; gap: var(--space-4); }
.admin-row-main > span:not(.admin-badges) { overflow-wrap: anywhere; color: var(--text-secondary); font-size: var(--text-sm); }
.admin-badges { display: flex; flex-wrap: wrap; gap: var(--space-8); }
.admin-badges .book-status { margin-top: var(--space-4); }
.admin-row-actions { display: flex; flex: 0 0 auto; align-items: center; gap: var(--space-8); }
.admin-role-control { width: 10.5rem; }
.admin-inline-form { max-width: 52rem; }
.admin-wide-field { margin-top: var(--space-16); }
.admin-form-help { margin-top: var(--space-16); }
.admin-eyebrow { margin: 0 0 var(--space-8) !important; color: var(--text-muted) !important; font-size: var(--text-xs); font-weight: 600; letter-spacing: .08em; text-transform: uppercase; }
.admin-dashboard-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--space-16); max-width: 72rem; margin-top: var(--space-32); }
.admin-dashboard-card { display: grid; grid-template-columns: 2.75rem minmax(0,1fr) auto; gap: var(--space-16); align-items: center; min-height: 9rem; padding: var(--space-24); transition: background var(--transition),border-color var(--transition); }
.admin-dashboard-card:hover { border-color: var(--border-strong); background: var(--bg-surface-hover); }
.admin-dashboard-card > span { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid var(--border-default); border-radius: var(--radius); }
.admin-dashboard-card > svg { color: var(--text-muted); }
.admin-dashboard-card h2 { font-size: var(--text-lg); }
.admin-dashboard-card p { margin-top: var(--space-8); color: var(--text-secondary); font-size: var(--text-sm); line-height: 1.5; }
.page-header-actions { display: flex; flex-wrap: wrap; gap: var(--space-8); }
.admin-section + .admin-section { margin-top: var(--space-48); }
.admin-picker-span { grid-column: 1 / -1; }
.admin-catalog-results { display: grid; max-height: 15rem; overflow-y: auto; }
.admin-selected-books { display: grid; gap: var(--space-8); margin-bottom: var(--space-16); }
.admin-selected-book { display: grid; grid-template-columns: 2.5rem minmax(0,1fr) auto; gap: var(--space-12); align-items: center; border: 1px solid var(--border-default); border-radius: var(--radius); padding: var(--space-8); }
.admin-selected-book .book-cover-wrap { width: 2.5rem; aspect-ratio: 2 / 3; }
.admin-selected-book small { display: block; margin-top: var(--space-4); color: var(--text-muted); }
.admin-submission-row { display: grid; grid-template-columns: 4.5rem minmax(0,1fr) auto; align-items: start; justify-content: initial; column-gap: var(--space-24); }
.admin-submission-row .admin-row-main { width: 100%; text-align: left; }
.admin-submission-row .admin-row-actions { justify-content: flex-start; }
.admin-submission-cover { width: 4.5rem; height: 6.75rem; flex: 0 0 auto; border: 1px solid var(--border-default); object-fit: cover; }
.admin-submission-cover-empty { display: grid; place-items: center; padding: var(--space-8); color: var(--text-muted); font-size: var(--text-xs); text-align: center; }
.admin-submission-editor-cover { display: block; width: 6rem; height: 9rem; border: 1px solid var(--border-default); margin: var(--space-8) 0 var(--space-12); object-fit: cover; }
.security-blocks { margin-top: var(--space-48); }
.security-filters { display: grid; grid-template-columns: minmax(12rem,1.2fr) repeat(3,minmax(9rem,1fr)) auto; gap: var(--space-12); align-items: end; margin-bottom: var(--space-24); }
.security-filters .form-group { margin: 0; }
.security-event { align-items: flex-start; }
.security-event.is-reviewed { opacity: .68; }
.security-event-title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-8); }
.security-event code, .security-blocks code { color: var(--text-primary); font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: .82em; }
.security-severity { border: 1px solid var(--border-default); border-radius: 999px; padding: .15rem .45rem; color: var(--text-secondary); font-size: .66rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.security-severity-warning { border-color: #806d38; color: #d6bc68; }
.security-severity-error, .security-severity-critical { border-color: #7f3e3e; color: #e18b8b; }
.security-pagination { display: flex; align-items: center; justify-content: center; gap: var(--space-16); padding-top: var(--space-24); color: var(--text-secondary); font-size: var(--text-sm); }
.admin-mail-test-result { display: grid; gap: var(--space-8); color: var(--text-secondary); }
.admin-mail-test-result:not(:empty) { margin-top: var(--space-16); }
.admin-mail-test-result .mail-test-ok { color: #8fc99a; }
.admin-mail-test-result .mail-test-error { color: #df7777; }
.admin-pagination { display: flex; align-items: center; justify-content: space-between; gap: var(--space-16); max-width: 72rem; border-top: 1px solid var(--border-subtle); padding-top: var(--space-24); color: var(--text-secondary); font-size: var(--text-sm); }
.admin-pagination > div { display: flex; align-items: center; gap: var(--space-12); }

.add-book-results { display: grid; max-height: 20rem; overflow-y: auto; border-top: 1px solid var(--border-default); margin-top: var(--space-16); }
.manual-book-link { display: block; position: sticky; bottom: 0; width: 100%; border: 0; background: transparent; padding: var(--space-16) 0 var(--space-4); color: var(--text-secondary); font-size: var(--text-sm); text-align: left; text-decoration: underline; cursor: pointer; }
.manual-book-link:hover { color: var(--text-primary); }

.book-cover-wrap.is-loading::after { content: ''; position: absolute; inset: 0; background: linear-gradient(100deg, var(--bg-elevated) 20%, var(--bg-surface-hover) 40%, var(--bg-elevated) 60%); background-size: 220% 100%; animation: cover-shimmer 1.2s linear infinite; }
@keyframes cover-shimmer { to { background-position-x: -220%; } }
.modal-intro { margin-bottom: var(--space-24); color: var(--text-secondary); line-height: 1.55; }
.honeypot-field { position: absolute !important; left: -10000px !important; width: 1px !important; height: 1px !important; overflow: hidden !important; }
.manual-book-actions { justify-content: space-between; }
.add-book-result { display: grid; grid-template-columns: 3rem 1fr auto; gap: var(--space-12); align-items: center; border-bottom: 1px solid var(--border-subtle); background: transparent; padding: var(--space-12) 0; color: var(--text-primary); text-align: left; cursor: pointer; }
.add-book-result:hover { background: var(--bg-surface-hover); }
.add-book-result > .book-cover-wrap { width: 3rem; aspect-ratio: 2 / 3; }
.add-book-result small { display: block; color: var(--text-secondary); }
.add-book-confirm { display: grid; grid-template-columns: 7.5rem minmax(0, 1fr); gap: var(--space-24); align-items: stretch; }
.add-book-confirm-cover { height: 100%; min-height: 100%; }
.add-book-confirm-cover .book-cover-wrap { height: 100%; min-height: 100%; aspect-ratio: auto; }
.add-book-confirm h3 { font-family: var(--font-editorial); font-size: var(--text-xl); }
.add-book-confirm-author { margin-top: var(--space-4); color: var(--text-secondary); }
.add-book-facts { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-12) var(--space-24); margin: var(--space-24) 0; }
.add-book-facts dt { color: var(--text-muted); font-size: var(--text-xs); }
.add-book-facts dd { margin: var(--space-4) 0 0; }
.add-book-confirm-actions { justify-content: space-between; }
.list-cover-tile { position: relative; display: flex; aspect-ratio: 2 / 3; flex-direction: column; justify-content: flex-end; overflow: hidden; border: 1px solid var(--border-default); border-radius: var(--radius-sm); background: var(--bg-surface); margin-bottom: var(--space-12); padding: var(--space-24); }
.list-cover-tile::before { content: ''; position: absolute; top: var(--space-16); left: var(--space-16); width: 2.5rem; border-top: 1px solid var(--border-strong); border-bottom: 1px solid var(--border-strong); height: var(--space-8); }
.list-cover-tile strong { font-family: var(--font-editorial); font-size: var(--text-xl); line-height: 1.2; }
.list-cover-tile span { margin-top: var(--space-8); color: var(--text-secondary); font-size: var(--text-sm); }
.list-card .book-status { border-style: dashed; }
.book-grid.list-view .list-cover-tile { width: 3.5rem; margin: 0; padding: var(--space-8); }
.book-grid.list-view .list-cover-tile::before, .book-grid.list-view .list-cover-tile strong, .book-grid.list-view .list-cover-tile span { display: none; }
