.site-header { position: relative; z-index: 50; min-height: 4.75rem; background: var(--pine-950); color: var(--cream-100); border-bottom: 1px solid rgba(234, 217, 157, .22); }
.header-inner { min-height: 4.75rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.brand { display: inline-flex; align-items: center; gap: .7rem; color: inherit; font-family: var(--font-title); font-size: 1.15rem; font-weight: 700; text-decoration: none; white-space: nowrap; }
.brand-mark { display: grid; place-items: center; width: 2rem; aspect-ratio: 1; color: var(--gold-500); border: 1px solid rgba(212, 175, 55, .52); border-radius: 50%; font-size: .85rem; }
.brand-dark { color: var(--pine-950); }
.menu-toggle { min-height: 2.75rem; padding: .55rem .8rem; color: var(--cream-100); background: transparent; border: 1px solid rgba(255,255,255,.34); border-radius: var(--radius-sm); }
.header-bell { position:relative; display:grid; place-items:center; width:2.75rem; height:2.75rem; margin-left:auto; color:var(--cream-50); border:1px solid rgba(255,255,255,.34); border-radius:50%; text-decoration:none; }
.header-bell .notification-badge { position:absolute; top:-.25rem; right:-.25rem; margin:0; }
.main-nav { position: absolute; top: 100%; left: 0; right: 0; display: none; padding: .75rem 1rem 1rem; background: var(--pine-950); box-shadow: var(--shadow-lg); }
.main-nav.is-open { display: grid; }
.main-nav > a, .main-nav summary, .nav-button { display: block; width: 100%; padding: .75rem .8rem; color: var(--cream-100); background: none; border: 0; border-radius: .4rem; font-size: .95rem; font-weight: 650; text-align: left; text-decoration: none; }
.main-nav > a:hover, .main-nav summary:hover, .nav-button:hover { background: rgba(255,255,255,.08); }
.main-nav form { margin: 0; }
.nav-group summary { cursor: pointer; list-style: none; }
.nav-group summary::-webkit-details-marker { display: none; }
.nav-group summary::after { content: '⌄'; float: right; color: var(--gold-500); }
.nav-popover { display: grid; padding: .3rem 0 .3rem 1rem; }
.nav-popover a { padding: .45rem .7rem; color: var(--cream-100); text-decoration: none; }
.nav-admin { color: var(--gold-200) !important; }
.nav-login { border: 1px solid rgba(212,175,55,.65); }
.flash-wrap { position: relative; z-index: 30; padding-top: 1rem; }
.flash-wrap:empty { display: none; }
.alert { margin: 0 0 1rem; padding: .95rem 1.1rem; border-radius: var(--radius-sm); box-shadow: var(--shadow-sm); }
.alert ul { margin: .45rem 0 0; }
.alert-success { background: #e4f2eb; color: #164d38; border: 1px solid #91c3ab; }
.alert-error { background: #fae9ec; color: #6f1826; border: 1px solid #dda8b1; }

.hero { position: relative; min-height: clamp(570px, 78vh, 800px); display: grid; align-items: center; overflow: hidden; background: var(--pine-950); }
.hero-image, .hero-shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-image { object-position: 63% center; }
.hero-shade { background: linear-gradient(90deg, rgba(5,22,19,.97) 0%, rgba(9,32,28,.88) 38%, rgba(11,38,34,.36) 70%, rgba(11,38,34,.12) 100%); }
.hero-content { position: relative; z-index: 2; padding-block: 5rem; color: var(--cream-100); }
.hero-content .eyebrow { color: var(--gold-200); }
.hero-content h1 { max-width: 790px; color: var(--cream-50); font-size: clamp(3.1rem, 8vw, 6.8rem); }
.hero-copy { max-width: 630px; margin-bottom: 2rem; color: rgba(255,253,248,.88); font-size: clamp(1.05rem, 2vw, 1.25rem); }
.button-row { display: flex; flex-wrap: wrap; gap: .75rem; align-items: center; }
.button { display: inline-flex; min-height: 2.9rem; align-items: center; justify-content: center; gap:.45rem; padding: .72rem 1.15rem; border: 1px solid transparent; border-radius: .7rem; font-weight: 750; line-height: 1.2; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease, background .18s ease; }
.button:hover { transform: translateY(-1px); }
.button-primary { background: var(--pine-800); color: var(--white); box-shadow: 0 6px 18px rgba(22,66,60,.18); }
.button-primary:hover { background: var(--pine-700); }
.button-secondary { background: transparent; color: var(--pine-800); border-color: var(--pine-800); }
.button-gold { background: var(--gold-500); color: var(--pine-950); }
.button-ghost-light { color: var(--cream-50); border-color: rgba(255,255,255,.58); background: rgba(11,38,34,.2); backdrop-filter: blur(8px); }
.button-danger { background: transparent; color: var(--danger); border-color: #c98f99; }
.button-small { min-height: 2.75rem; padding: .55rem .75rem; font-size: .84rem; }
.button-block { width: 100%; }
.text-link, .form-link { color: var(--link); font-weight: 750; }
.text-link:hover, .form-link:hover { color:var(--pine-800); }
.countdown-band { position: relative; z-index: 3; color: var(--cream-50); background: var(--wine-800); border-block: 1px solid rgba(234,217,157,.35); }
.countdown-grid { min-height: 8.5rem; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 1rem; text-align: center; }
.countdown-grid div:not(.countdown-divider) { display: flex; flex-direction: column; align-items: center; }
.countdown-grid strong { color: var(--gold-200); font-family: var(--font-title); font-size: clamp(2.6rem, 7vw, 4.5rem); line-height: .9; }
.countdown-grid span { margin-top: .55rem; font-size: .8rem; letter-spacing: .08em; text-transform: uppercase; }
.countdown-divider { width: 1px; height: 3.5rem; background: rgba(234,217,157,.4); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: 2rem; }
.section-heading h2 { margin-bottom: 0; }
.event-list { display: grid; gap: .8rem; }
.event-card { display: grid; grid-template-columns: 4.2rem 1fr; gap: 1rem; align-items: start; padding: 1.25rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.event-date { display: grid; place-items: center; align-content: center; min-height: 4.3rem; color: var(--cream-50); background: var(--pine-800); border-radius: .75rem; }
.event-date strong { font-family: var(--font-title); font-size: 1.7rem; line-height: 1; }
.event-date span { color: var(--gold-200); font-size: .68rem; font-weight: 800; letter-spacing: .12em; }
.event-card h3 { margin: .18rem 0 .4rem; }
.event-card h3 a, .content-card h3 a { text-decoration: none; }
.event-card p:last-child { margin-bottom: 0; color: var(--muted); }
.event-card-community { position:relative; border-color:rgba(212,175,55,.7); box-shadow:0 10px 28px rgba(184,146,32,.14); }
.event-card-community::after { content:''; position:absolute; inset:.45rem .45rem auto auto; width:.55rem; height:.55rem; background:var(--gold-500); border-radius:50%; }
.community-event-badge { display:inline-flex; margin:0 0 .45rem; padding:.25rem .55rem; color:var(--pine-950); background:var(--gold-200); border-radius:999px; font-size:.7rem; font-weight:850; letter-spacing:.04em; text-transform:uppercase; }
.card-meta { display: flex; flex-wrap: wrap; gap: .4rem .8rem; margin: 0; color: var(--wine-700); font-size: .78rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.card-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 1.25rem; }
.content-card { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); transition:transform .2s ease,box-shadow .2s ease; }
.content-card:hover { transform:translateY(-3px); box-shadow:0 18px 40px rgba(11,38,34,.12); }
.card-media { display: block; aspect-ratio: 3/2; overflow: hidden; background: var(--pine-900); text-decoration: none; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.card-media:hover img { transform: scale(1.025); }
.card-placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--gold-200); background: radial-gradient(circle at 72% 28%, rgba(212,175,55,.2), transparent 28%), var(--pine-900); font-family: var(--font-title); font-size: 5rem; }
.card-body { padding: 1.15rem 1.2rem 1.3rem; }
.card-body h3 { margin: .65rem 0 .45rem; }
.card-body p:last-child { margin: 0; color: var(--muted); }
.empty-state { padding: clamp(2.5rem, 7vw, 5rem); text-align: center; background: rgba(255,255,255,.65); border: 1px dashed #cfc7b5; border-radius: var(--radius-lg); }
.empty-state > span { color: var(--gold-600); font-size: 2rem; }
.empty-state h2, .empty-state h3 { margin-top: .6rem; }
.empty-state p { max-width: 35rem; margin-inline: auto; color: var(--muted); }
.empty-state.compact { padding: 2rem; }
.story-grid { display: grid; gap: 2rem; }
.story-grid h2 { max-width: 700px; }
.story-grid > div:last-child { max-width: 580px; color: #515956; font-size: 1.08rem; }

.member-welcome { position: relative; padding-block: clamp(3rem, 7vw, 5rem); overflow: hidden; color: var(--cream-50); background: var(--pine-900); }
.member-welcome::after { content: '✦'; position: absolute; right: 5%; top: 50%; color: rgba(212,175,55,.12); font-size: 17rem; transform: translateY(-50%); }
.welcome-grid { position: relative; z-index: 1; display: grid; gap: 2rem; align-items: center; }
.welcome-grid h1 { color: var(--cream-50); }
.welcome-grid .eyebrow { color: var(--gold-200); }
.member-countdown { display: grid; grid-template-columns: auto auto auto; align-items: baseline; gap: .7rem; width: max-content; max-width: 100%; padding: 1rem 1.2rem; background: rgba(255,255,255,.07); border: 1px solid rgba(234,217,157,.3); border-radius: var(--radius-md); }
.member-countdown strong { color: var(--gold-200); font-family: var(--font-title); font-size: 3.5rem; line-height: 1; }
.member-layout { display: grid; gap: 2rem; }
.member-aside { display: grid; align-content: start; gap: 1rem; }
.quick-card { padding: 1.3rem; background: var(--cream-100); border: 1px solid var(--line); border-radius: var(--radius-md); }
.quick-card h2 { font-size: 1.35rem; }
.quick-links { display: grid; }
.quick-links a { display: flex; gap: .7rem; padding: .7rem 0; color: var(--pine-800); font-weight: 700; text-decoration: none; border-top: 1px solid var(--line); }
.quick-links span { color: var(--wine-700); }
.plain-list { margin: 0; padding: 0; list-style: none; }
.plain-list li { padding: .8rem 0; border-top: 1px solid var(--line); }
.plain-list a { display: block; font-weight: 750; text-decoration: none; }
.plain-list span { display: block; color: var(--muted); font-size: .82rem; }
.activity-list { max-width: 750px; margin: 0; padding: 0; list-style: none; }
.activity-list li { display: grid; grid-template-columns: 1rem 1fr; gap: .75rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.activity-dot { width: .55rem; height: .55rem; margin-top: .48rem; background: var(--gold-500); border-radius: 50%; }
.activity-list time { display: block; color: var(--muted); font-size: .8rem; }
.mini-countdowns { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.5rem; margin-top: 2rem; color: var(--muted); }
.mini-countdowns strong { color: var(--wine-700); font-family: var(--font-title); font-size: 1.5rem; }

.page-header { display: flex; flex-wrap: wrap; align-items: end; justify-content: space-between; gap: 1.5rem; padding-block: clamp(3rem, 7vw, 5.5rem) 1rem; }
.page-header h1 { font-size: clamp(2.7rem, 6vw, 5rem); }
.page-header p:not(.eyebrow) { max-width: 650px; color: var(--muted); font-size: 1.08rem; }
.status-page { width: min(760px, calc(100% - 2rem)); min-height: 60vh; margin-inline: auto; padding-block: 8vh; display: grid; place-items: center; align-content: center; text-align: center; }
.status-page h1 { font-size: clamp(2.5rem, 7vw, 5rem); }
.status-page > p:not(.eyebrow) { max-width: 620px; color: var(--muted); font-size: 1.1rem; }
.status-symbol { color: var(--gold-600); font-size: 2.5rem; }
.status-page .button-row { justify-content: center; }

.auth-shell { width: var(--shell); min-height: calc(100vh - 11rem); margin-inline: auto; padding-block: clamp(3rem, 8vw, 7rem); display: grid; align-items: center; gap: 2rem; }
.auth-intro { max-width: 560px; }
.auth-intro .brand { margin-bottom: clamp(2rem, 6vw, 5rem); }
.auth-intro h1 { font-size: clamp(3rem, 8vw, 6rem); }
.auth-intro > p:last-child { color: var(--muted); font-size: 1.08rem; }
.form-card { padding: clamp(1.3rem, 4vw, 2rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.form-card h2 { font-size: 1.55rem; }
.form-card > .button:last-child, .form-card > .button-row:last-child { margin-top: .35rem; }
.field { margin-bottom: 1.15rem; }
.field label { display: block; margin-bottom: .38rem; color: var(--pine-950); font-size: .9rem; font-weight: 750; }
.field label span { color: var(--muted); font-weight: 500; }
.field input, .field select, .field textarea, .inline-form select { width: 100%; min-height: 3rem; padding: .72rem .8rem; color: var(--ink); background: var(--cream-50); border: 1px solid #aaa99f; border-radius: .45rem; }
.field input[type="file"] { padding:.38rem; color:var(--muted); background:var(--surface-soft); border-style:dashed; }
.field input[type="file"]::file-selector-button { min-height:2.35rem; margin-right:.75rem; padding:.5rem .85rem; color:var(--white); background:var(--pine-800); border:0; border-radius:.48rem; font-weight:750; cursor:pointer; }
.field input[type="file"]::file-selector-button:hover { background:var(--pine-700); }
.field textarea { resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--pine-700); box-shadow: 0 0 0 3px rgba(35,91,81,.13); outline: 0; }
.field small, .form-footer { display: block; margin-top: .35rem; color: var(--muted); font-size: .8rem; }
.form-link { display: block; margin-top: 1rem; text-align: center; }
.form-footer { margin: 1.4rem 0 0; text-align: center; }
.form-stack { display: grid; gap: 1rem; }
.field-grid { display: grid; gap: 0 1rem; }
.form-layout { display: grid; gap: 1.5rem; align-items: start; }
.form-help { padding: 1.5rem; color: var(--cream-100); background: var(--pine-900); border-radius: var(--radius-md); }
.form-help h2 { color: var(--cream-50); font-size: 1.4rem; }
.form-help ul { margin: 0; padding-left: 1.2rem; }
.form-preview { width: 15rem; aspect-ratio: 3/2; margin: 0 0 1.2rem; object-fit: cover; border-radius: var(--radius-sm); }
.optional-fields { margin: 0 0 1.2rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.optional-fields summary { color: var(--pine-800); font-weight: 750; }
.optional-fields .field-grid { margin-top: 1rem; }
.checkbox-field { margin: 0 0 1.2rem; padding: 1rem; border: 1px solid var(--line); border-radius: var(--radius-sm); }
.checkbox-field legend { padding-inline: .35rem; color: var(--pine-950); font-weight: 750; }
.checkbox-field legend span { color: var(--muted); font-weight: 500; }
.checkbox-field > div { display: flex; flex-wrap: wrap; gap: .6rem 1rem; }
.checkbox-field label { cursor: pointer; }
.minimal-body { min-height: 100vh; display: grid; place-items: center; padding: 1rem; background: radial-gradient(circle at 20% 15%, rgba(212,175,55,.2), transparent 27%), var(--cream-100); }
.minimal-shell { width: min(600px, 100%); }
.setup-card { padding: clamp(1.5rem, 6vw, 3.5rem); background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-lg); box-shadow: var(--shadow-lg); }
.setup-card .brand { margin-bottom: 2rem; }
.profile-grid { display: grid; gap: 1.5rem; align-items: start; }
.profile-card { padding: clamp(1.3rem, 4vw, 2rem); color: var(--cream-100); background: var(--pine-900); border-radius: var(--radius-lg); }
.profile-head { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; }
.profile-head h2 { color: var(--cream-50); margin-bottom: .2rem; }
.avatar-large { width: 6rem; height: 6rem; object-fit: cover; border: 2px solid var(--gold-500); border-radius: 50%; }
.avatar-placeholder { display: grid; place-items: center; color: var(--pine-950); background: var(--gold-200); font-family: var(--font-title); font-size: 2.5rem; }
.profile-stats { display: grid; grid-template-columns: repeat(3, 1fr); margin: 2rem 0 0; border-top: 1px solid rgba(255,255,255,.18); }
.profile-stats div { padding: 1.1rem .2rem 0; }
.profile-stats dt { color: rgba(255,255,255,.68); font-size: .72rem; text-transform: uppercase; }
.profile-stats dd { margin: .2rem 0 0; color: var(--gold-200); font-family: var(--font-title); font-size: 2rem; }
.status-badge { display: inline-flex; width: max-content; padding: .26rem .55rem; color: #3f4945; background: #eceae2; border-radius: 999px; font-size: .72rem; font-weight: 800; white-space: nowrap; }
.status-approved, .status-published, .status-active { color: #1a573d; background: #dcefe5; }
.status-pending { color: #6a5010; background: #f5e9bb; }
.status-rejected, .status-blocked, .status-deleted { color: #771b29; background: #f6dfe3; }
.status-hidden, .status-inactive { color: #505b57; background: #e3e7e5; }

.detail-hero { position: relative; min-height: clamp(420px, 62vh, 650px); display: flex; align-items: end; overflow: hidden; color: var(--cream-50); background: var(--pine-900); }
.detail-hero > img, .detail-shade { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.detail-shade { background: linear-gradient(0deg, rgba(7,29,25,.96), rgba(7,29,25,.06) 75%); }
.detail-no-image { min-height: 390px; background: radial-gradient(circle at 78% 30%, rgba(212,175,55,.2), transparent 23%), var(--pine-900); }
.detail-title { position: relative; z-index: 1; padding-block: 3rem; }
.detail-title h1 { max-width: 900px; color: var(--cream-50); font-size: clamp(3rem, 8vw, 6.4rem); }
.detail-title .eyebrow { color: var(--gold-200); }
.detail-layout { display: grid; gap: clamp(1.5rem,4vw,3rem); align-items: start; }
.prose { max-width: 760px; }
.prose .lead { font-size: 1.15rem; }
.prose h2 { margin-top: 2.2rem; }
.prose a:not(.button) { color:var(--link); font-weight:750; }
.detail-intro { padding:clamp(1.2rem,3vw,1.8rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.detail-intro .lead:last-child { margin-bottom:0; }
.detail-section { margin-top:2rem; padding-top:.2rem; }
.detail-section h2 { display:flex; align-items:center; gap:.55rem; }
.detail-aside { display:grid; gap:1.15rem; padding:clamp(1.25rem,3vw,1.75rem); background:var(--surface-soft); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.detail-actions { display:grid; gap:.8rem; margin-top:1.2rem; }
.detail-actions + .source-card { margin-top:1.35rem; }
.detail-meta { display:flex; flex-wrap:wrap; gap:.55rem; margin-top:1rem; }
.detail-chip { display:inline-flex; align-items:center; min-height:2rem; padding:.35rem .65rem; color:var(--pine-900); background:rgba(234,217,157,.55); border-radius:999px; font-size:.78rem; font-weight:800; }
.ingredient-list { margin:.8rem 0 0; padding:0; list-style:none; }
.ingredient-list li { position:relative; padding:.65rem .8rem .65rem 2rem; border-bottom:1px solid var(--line); }
.ingredient-list li::before { content:'✦'; position:absolute; left:.55rem; color:var(--gold-600); }
.preparation-list { display:grid; gap:.85rem; margin:.8rem 0 0; padding-left:2rem; }
.preparation-list li { min-height:2.5rem; padding:.75rem 1rem; background:var(--surface-soft); border-radius:.7rem; }
.preparation-list li::marker { color:var(--wine-700); font-weight:800; }
.fact-list { display:grid; gap:.55rem; margin:0; }
.fact-list div { display:grid; grid-template-columns:1fr 1.6fr; gap:.8rem; padding:.75rem .85rem; background:var(--white); border:1px solid var(--line); border-radius:.65rem; }
.fact-list dt { color: var(--muted); font-size: .82rem; font-weight: 750; }
.fact-list dd { margin: 0; font-weight: 650; text-align: right; }
.rating-summary { display: flex; align-items: center; gap: .7rem; margin: 1rem 0; }
.rating-summary strong { color: var(--wine-700); font-family: var(--font-title); font-size: 2.4rem; }
.rating-summary span { color: var(--muted); font-size: .82rem; }
.interaction-section { padding-block: 1.5rem; background: var(--cream-100); border-block: 1px solid var(--line); }
.inline-form { display: flex; flex-wrap: wrap; align-items: end; gap: .7rem; }
.inline-form label { width: 100%; color: var(--pine-950); font-weight: 750; }
.inline-form select { width: min(240px, 100%); }
.attendance-form { display:grid; gap:1rem; padding:clamp(1rem,3vw,1.35rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.attendance-form fieldset { padding:0; border:0; }
.attendance-form legend { width: 100%; margin-bottom: .5rem; font-weight: 800; }
.attendance-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:.6rem; }
.attendance-form label { display:flex; align-items:center; justify-content:center; min-height:3rem; padding:.65rem; border:1px solid var(--line); border-radius:.65rem; font-weight:750; text-align:center; cursor:pointer; }
.attendance-form input:focus-visible+span { outline:3px solid rgba(35,91,81,.25); outline-offset:3px; }
.attendance-form input:checked+span { color:var(--cream-50); background:var(--pine-800); }
.attendance-form label>span { display:grid; place-items:center; width:1.7rem; height:1.7rem; margin-right:.4rem; color:var(--pine-800); background:var(--cream-100); border-radius:50%; }
.attendance-form input { position:absolute; opacity:0; pointer-events:none; }
.attendance-community,.rating-people { margin-top:1.25rem; }
.attendance-groups { display:grid; gap:1rem; }
.attendance-groups>section,.rating-people { padding:1rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.attendance-groups h3,.rating-people h2 { margin:0 0 .75rem; font-size:1.05rem; }
.people-list { display:flex; flex-wrap:wrap; gap:.55rem; margin:0; padding:0; list-style:none; }
.people-list li { display:inline-flex; align-items:center; gap:.45rem; min-height:2.35rem; padding:.3rem .65rem .3rem .3rem; background:var(--cream-100); border-radius:999px; font-size:.8rem; font-weight:700; }
.people-list img,.people-list .avatar-small { width:1.8rem; height:1.8rem; object-fit:cover; font-size:.72rem; }
.person-score { color:var(--wine-700); font-weight:850; }
.rating-community { margin-top:1.4rem; }
.rating-form { display:grid; gap:1rem; }
.rating-form fieldset { margin:0; padding:0; border:0; }
.rating-form legend { font-family:var(--font-title); font-size:1.35rem; font-weight:700; }
.rating-scale { display:flex; flex-wrap:wrap; gap:.5rem; }
.rating-scale label { position:relative; display:grid; place-items:center; min-width:2.75rem; min-height:2.75rem; padding:.35rem; border:1px solid var(--line); border-radius:.55rem; font-weight:800; cursor:pointer; }
.rating-scale input { position:absolute; opacity:0; }
.rating-scale input:focus-visible+span { outline:3px solid rgba(124,35,53,.22); outline-offset:3px; }
.rating-scale input:checked+span { display:grid; place-items:center; width:100%; align-self:stretch; color:var(--cream-50); background:var(--wine-700); border-radius:.35rem; }
.comments-section { max-width: 860px; }
.comments-list { margin: 0 0 2rem; padding: 0; list-style: none; }
.comments-list li { display: grid; grid-template-columns: 2.5rem 1fr; gap: .8rem; padding: 1rem 0; border-bottom: 1px solid var(--line); }
.avatar-small { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; color: var(--cream-50); background: var(--wine-700); border-radius: 50%; font-weight: 800; }
.comment-meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; }
.comment-meta time { color: var(--muted); font-size: .78rem; }
.comments-list p { margin: .35rem 0 0; }
.comment-form { margin-top: 2rem; padding: 1.3rem; background: var(--cream-100); border-radius: var(--radius-md); }
.pagination { display: flex; flex-wrap: wrap; gap: .4rem; justify-content: center; margin-top: 2rem; }
.pagination a { display: grid; place-items: center; min-width: 2.5rem; min-height: 2.5rem; color: var(--pine-800); border: 1px solid var(--line); border-radius: .4rem; text-decoration: none; }
.pagination a[aria-current="page"] { color: var(--white); background: var(--pine-800); border-color: var(--pine-800); }

.admin-header { padding-block: 3rem 0; color: var(--cream-50); background: var(--pine-900); }
.admin-header h1 { color: var(--cream-50); font-size: clamp(2.8rem, 6vw, 4.5rem); }
.admin-header .eyebrow { color: var(--gold-200); }
.admin-nav { display: flex; gap: .2rem; overflow-x: auto; padding: .7rem 0 0; scrollbar-width: thin; }
.admin-nav a { flex: 0 0 auto; padding: .7rem .8rem; color: rgba(255,255,255,.85); border-radius: .4rem .4rem 0 0; font-size: .88rem; font-weight: 700; text-decoration: none; }
.admin-nav a:hover { color: var(--pine-950); background: var(--cream-100); }
.metric-grid { display: grid; gap: 1rem; margin-bottom: 2rem; }
.metric-grid a { display: flex; flex-direction: column; padding: 1.25rem; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); text-decoration: none; box-shadow: var(--shadow-sm); }
.metric-grid span { color: var(--muted); font-size: .82rem; font-weight: 750; }
.metric-grid strong { color: var(--wine-700); font-family: var(--font-title); font-size: 2.7rem; }
.admin-panel { overflow: hidden; background: var(--white); border: 1px solid var(--line); border-radius: var(--radius-md); box-shadow: var(--shadow-sm); }
.panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.15rem 1.3rem; border-bottom: 1px solid var(--line); }
.panel-heading h2 { margin: 0; font-size: 1.5rem; }
.panel-heading p, .panel-heading span { margin: 0; color: var(--muted); font-size: .82rem; }
.table-scroll { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: .9rem; }
th, td { padding: .85rem 1rem; vertical-align: top; text-align: left; border-bottom: 1px solid var(--line); }
th { color: var(--muted); background: var(--cream-100); font-size: .72rem; letter-spacing: .06em; text-transform: uppercase; }
td small { display: block; margin-top: .2rem; color: var(--muted); }
.table-actions { display: flex; flex-wrap: wrap; gap: .55rem; }
.table-actions form { margin: 0; }
.comment-cell { min-width: 280px; }
.empty-inline { padding: 2rem; color: var(--muted); text-align: center; }
.admin-two-columns { display: grid; gap: 1.5rem; align-items: start; }
.management-list { margin: 0; padding: 0; list-style: none; }
.management-list li { display: flex; justify-content: space-between; gap: 1rem; align-items: center; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--line); }
.management-list span { display: block; color: var(--muted); font-size: .8rem; }
.settings-form { max-width: 760px; }
.switch-list { display: grid; gap: .8rem; margin: 0 0 1.5rem; padding: 0; border: 0; }
.switch-list legend { margin-bottom: .6rem; font-family: var(--font-title); font-size: 1.4rem; font-weight: 700; }
.switch-list label { display: grid; grid-template-columns: auto 1fr; gap: .8rem; padding: .9rem; background: var(--cream-100); border: 1px solid var(--line); border-radius: .6rem; cursor: pointer; }
.switch-list input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: var(--pine-800); }
.switch-list strong, .switch-list small { display: block; }
.switch-list small { color: var(--muted); }
.role-grid { display: grid; gap: 1rem; margin-bottom: 2rem; }
.role-card { padding: 1.2rem; background: var(--cream-100); border: 1px solid var(--line); border-radius: var(--radius-md); }
.role-card h2 { margin-bottom: .2rem; font-size: 1.35rem; }
.role-card p { margin: .8rem 0 0; color: var(--muted); font-size: .82rem; }
.role-users > form { display: grid; gap: .8rem; padding: 1.15rem 1.25rem; border-bottom: 1px solid var(--line); }
.role-users small { display: block; color: var(--muted); }
.role-users fieldset { display: flex; flex-wrap: wrap; gap: .6rem 1rem; padding: 0; border: 0; }
.role-users label { font-size: .88rem; }

.site-footer { padding-block: 3rem; color: rgba(255,255,255,.72); background: var(--pine-950); border-top: 4px solid var(--gold-500); }
.footer-grid { display: grid; gap: 2rem; }
.brand-footer { color: var(--cream-50); }
.site-footer p { margin: .7rem 0 0; }
.brand-logo { width: 2.85rem; height: 2.85rem; flex: 0 0 auto; object-fit: contain; border-radius: 50%; }
.brand-footer .brand-logo { width: 3.15rem; height: 3.15rem; }
.footer-links { display: grid; align-content: start; gap: .45rem; }
.footer-links strong { color: var(--gold-200); font-size: .76rem; letter-spacing: .09em; text-transform: uppercase; }
.footer-links a, .link-button { color: var(--cream-100); background: none; border: 0; padding: 0; text-align: left; text-decoration:none; }
.footer-note { font-size: .82rem; }

.check-row { display:flex; align-items:flex-start; gap:.65rem; margin:0 0 1.15rem; color:var(--pine-950); font-weight:650; cursor:pointer; }
.check-row input { width:1.15rem; height:1.15rem; margin-top:.15rem; accent-color:var(--pine-800); }
.notification-link { position:relative; display:inline-flex!important; align-items:center; gap:.35rem; }
.main-nav .notification-bell { display:none!important; }
.notification-icon,.bell-icon { font-size:1.05rem; line-height:1; }
.notification-badge { display:inline-grid; place-items:center; min-width:1.25rem; height:1.25rem; margin-left:.25rem; padding:0 .25rem; color:white; background:var(--wine-700); border-radius:999px; font-size:.68rem; }
.notification-layout { display:grid; gap:1.5rem; align-items:start; }
.notification-layout>* { min-width:0; }
.notification-item { display:flex; justify-content:space-between; gap:1rem; padding:1.15rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.notification-item+.notification-item { margin-top:.75rem; }
.notification-item.is-unread { border-left:4px solid var(--gold-500); background:#fffdf7; }
.notification-item h2 { margin:.1rem 0 .35rem; font-size:1.15rem; }
.notification-item p,.notification-item time { margin:0; color:var(--muted); font-size:.88rem; }
.notification-actions { display:flex; flex-direction:column; align-items:flex-end; gap:.5rem; }
.button-link { padding:0; color:var(--link); background:none; border:0; text-decoration:none; font-weight:750; cursor:pointer; }
.push-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.85rem 1rem; margin:1.15rem 0; }
.preference-form h2 { margin-bottom:1.1rem; }
.preference-list { display:grid; gap:.75rem; }
.preference-row { display:grid; grid-template-columns:1fr 1fr; gap:.55rem; align-items:center; padding:.85rem; background:var(--cream-100); border:1px solid var(--line); border-radius:.65rem; font-size:.85rem; }
.preference-row strong { grid-column:1/-1; }
.preference-choice { display:flex; align-items:center; gap:.45rem; min-height:2.25rem; padding:.5rem; background:var(--white); border-radius:.5rem; cursor:pointer; }
.preference-choice input { width:1.05rem; height:1.05rem; accent-color:var(--pine-800); }
.preference-actions { margin-top:1.35rem; padding-top:1.15rem; border-top:1px solid var(--line); }
.notice-inline,.source-note { padding:1rem; background:var(--cream-100); border-left:3px solid var(--gold-500); border-radius:.3rem; }
.source-card { display:grid; grid-template-columns:auto 1fr; gap:.8rem 1rem; align-items:start; padding:1rem 1.1rem; color:var(--pine-950); background:linear-gradient(135deg,#fffdf5,var(--cream-100)); border:1px solid rgba(185,137,22,.32); border-radius:var(--radius-md); text-decoration:none; box-shadow:var(--shadow-sm); }
.source-card:hover { border-color:var(--gold-600); transform:translateY(-1px); }
.source-card-icon,.source-icon { display:grid; place-items:center; width:2.5rem; height:2.5rem; color:var(--pine-900); background:var(--gold-200); border-radius:50%; font-weight:900; }
.source-card strong,.source-card span { display:block; }
.source-card small { display:block; margin-top:.2rem; color:var(--muted); font-size:.82rem; }
.event-options { display:grid; gap:1rem; margin-bottom:1.2rem; }
.event-options .field { margin:0; }
.toggle-card { display:flex; align-items:center; gap:.75rem; min-height:3.1rem; padding:.8rem 1rem; background:var(--cream-100); border:1px solid var(--line); border-radius:.65rem; font-weight:750; cursor:pointer; }
.toggle-card input { width:1.2rem; height:1.2rem; accent-color:var(--pine-800); }
.source-fields { padding:1rem; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }
.source-fields legend { padding:0 .35rem; color:var(--pine-950); font-family:var(--font-title); font-size:1.15rem; font-weight:700; }
.profile-sidebar { display:grid; gap:1rem; }

.idea-board-section { padding-top:1rem; }
.idea-board-heading { display:flex; justify-content:space-between; align-items:end; gap:1.5rem; margin-bottom:1.25rem; }
.idea-board-heading h2,.idea-board-heading p { margin-bottom:0; }
.idea-board-heading>p { max-width:34rem; color:var(--muted); }
.idea-board-feedback { min-height:1.4em; margin:0 0 .75rem; color:var(--pine-700); font-size:.85rem; font-weight:700; }
.idea-board-feedback:empty { margin-bottom:0; }
.idea-board-feedback.is-error { color:var(--danger); }
.idea-board { display:grid; gap:1.25rem; align-items:start; }
.idea-column { min-width:0; min-height:13rem; padding:1.15rem; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); transition:border-color .18s ease,box-shadow .18s ease,background .18s ease; }
.idea-column.is-drag-over { background:#fffaf0; border-color:var(--gold-600); box-shadow:0 0 0 3px rgba(185,137,22,.14); }
.idea-column>header { position:relative; min-height:5.2rem; }
.idea-column>header h3 { margin:0 2rem .2rem 0; font-size:1.2rem; }
.idea-column>header p { margin:0; color:var(--muted); font-size:.78rem; }
.idea-column>header>span { position:absolute; top:0; right:0; display:grid; place-items:center; min-width:1.65rem; height:1.65rem; background:var(--white); border-radius:999px; font-size:.75rem; font-weight:800; }
.idea-stack { display:grid; align-content:start; gap:.75rem; min-height:5rem; }
.idea-empty { margin:1.1rem 0 0; color:var(--muted); }
.idea-empty[hidden] { display:none; }
.idea-card { position:relative; padding:1.1rem; background:var(--white); border:1px solid rgba(18,65,59,.08); border-top:4px solid var(--idea-color,var(--pine-700)); border-radius:.65rem; box-shadow:var(--shadow-sm); transition:opacity .18s ease,transform .18s ease,box-shadow .18s ease; }
.idea-card.is-movable { cursor:grab; padding-right:2.35rem; }
.idea-card.is-movable:active { cursor:grabbing; }
.idea-card.is-dragging { opacity:.45; transform:rotate(1deg) scale(.98); }
.idea-card.is-saving { opacity:.65; pointer-events:none; }
.idea-drag-handle { position:absolute; top:.75rem; right:.7rem; color:var(--muted); font-size:1.15rem; line-height:1; }
.idea-card-meta { display:flex; flex-wrap:wrap; justify-content:space-between; gap:.35rem .6rem; color:var(--muted); font-size:.75rem; }
.idea-card h4 { margin:.35rem 0 .45rem; font-size:1.05rem; }
.idea-card p { margin:.35rem 0; color:var(--muted); font-size:.84rem; }
.idea-actions { display:flex; flex-wrap:wrap; align-items:center; gap:.8rem; margin-top:1.1rem; padding-top:.9rem; border-top:1px solid var(--line); }
.idea-actions form { margin:0; }
.idea-status-select { min-height:2.75rem; padding:.4rem 2.25rem .4rem .75rem; color:var(--pine-950); background-color:var(--white); background-image:linear-gradient(45deg,transparent 50%,var(--pine-800) 50%),linear-gradient(135deg,var(--pine-800) 50%,transparent 50%); background-position:calc(100% - 15px) 50%,calc(100% - 10px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; border:1px solid var(--pine-700); border-radius:.6rem; appearance:none; font-weight:700; }
.idea-status-select:hover,.idea-status-select:focus { border-color:var(--wine-700); box-shadow:0 0 0 3px rgba(124,35,53,.1); outline:0; }
.idea-vote { min-height:2.75rem; padding:.4rem .65rem; color:var(--pine-900); background:var(--cream-100); border:1px solid var(--line); border-radius:.55rem; cursor:pointer; }
.idea-vote.is-active { color:var(--cream-50); background:var(--wine-700); border-color:var(--wine-700); }
.idea-create { display:grid; gap:clamp(1.5rem,4vw,3rem); align-items:start; }
.idea-create .form-card { margin:0; }
.category-manager { display:grid; gap:1.25rem; align-items:start; }
.category-list { display:grid; gap:1rem; }
.category-row { display:grid; gap:1rem; padding:1.15rem; background:var(--white); border:1px solid var(--line); border-left:5px solid var(--category-color,var(--pine-700)); border-radius:var(--radius-md); }
.category-row .field { margin:0; }
.category-swatch { display:none; }
.category-usage { display:flex; align-items:baseline; gap:.3rem; color:var(--muted); }
.category-usage strong { color:var(--pine-900); font-size:1.3rem; }
.color-field input { min-height:2.7rem; padding:.2rem; }
.category-chip { border:1px solid var(--category-color,var(--gold-500)); }
.form-feedback { min-height:1.4em; color:var(--muted); font-size:.85rem; }
.install-grid { display:grid; gap:1rem; }
.guide-card { padding:clamp(1.25rem,3vw,2rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.guide-card ol { padding-left:1.25rem; }
.guide-card li+li { margin-top:.65rem; }
.step-number { display:inline-flex; padding:.25rem .55rem; color:var(--cream-50); background:var(--wine-700); border-radius:999px; font-size:.72rem; font-weight:800; }
.legal-copy { max-width:800px; }
.episode-list { padding:0; list-style:none; }.episode-list li { padding:.8rem 0; border-bottom:1px solid var(--line); }.episode-list span { display:block; color:var(--muted); font-size:.85rem; }
.shared-label { padding:.7rem; color:var(--pine-800); background:var(--cream-100); border-radius:.4rem; font-size:.78rem; }

.calendar-section { padding-bottom:clamp(2rem,6vw,4rem); }
.calendar-filters { display:grid; gap:.75rem; padding:1rem; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }
.calendar-filters .field { margin:0; }
.calendar-filters .button { align-self:end; }
.calendar-toolbar { display:grid; grid-template-columns:2.75rem 1fr 2.75rem; align-items:center; gap:1rem; margin:1.5rem 0 1rem; text-align:center; }
.calendar-toolbar h2 { margin:0; font-size:clamp(1.6rem,4vw,2.5rem); }
.calendar-nav { display:grid; place-items:center; width:2.75rem; height:2.75rem; color:var(--pine-900); border:1px solid var(--line); border-radius:50%; text-decoration:none; }
.calendar-legend { display:flex; flex-wrap:wrap; gap:.8rem; margin:0 0 .75rem; color:var(--muted); font-size:.78rem; }
.calendar-legend span::before { content:''; display:inline-block; width:.7rem; height:.7rem; margin-right:.35rem; border-radius:2px; }
.legend-fair::before { background:var(--wine-700); }.legend-community::before { background:var(--pine-700); }.legend-holiday::before { background:var(--gold-600); }
.calendar-grid { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.weekday { padding:.55rem .2rem; color:var(--cream-50); background:var(--pine-900); font-size:.72rem; font-weight:800; text-align:center; text-transform:uppercase; }
.calendar-day { min-width:0; min-height:7.8rem; padding:.45rem; overflow:hidden; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
.calendar-day:nth-child(7n) { border-right:0; }
.calendar-day>time { display:grid; place-items:center; width:1.7rem; height:1.7rem; color:var(--pine-950); font-size:.78rem; font-weight:800; }
.calendar-day.is-outside { background:#f1eee5; }.calendar-day.is-outside>time { opacity:.58; }.calendar-day.is-today>time { color:white; background:var(--wine-700); border-radius:50%; opacity:1; }
.day-events { display:grid; gap:.25rem; margin-top:.3rem; }
.calendar-event { overflow:hidden; padding:.27rem .35rem; color:white; border-radius:.25rem; font-size:.67rem; font-weight:700; line-height:1.2; text-decoration:none; text-overflow:ellipsis; white-space:nowrap; }
.calendar-event.event-fair { background:var(--wine-700); }.calendar-event.event-community { background:var(--pine-700); }.calendar-event.event-holiday { color:var(--pine-950); background:var(--gold-300); }
.calendar-more summary { padding:.2rem .1rem; color:var(--pine-800); font-size:.7rem; font-weight:800; cursor:pointer; list-style:none; }
.calendar-more summary::-webkit-details-marker { display:none; }
.calendar-more-list { display:grid; gap:.2rem; margin-top:.2rem; }

@media (min-width: 700px) {
    .field-grid { grid-template-columns: 1fr 1fr; }
    .metric-grid { grid-template-columns: repeat(2, 1fr); }
    .role-grid { grid-template-columns: repeat(2, 1fr); }
    .role-users > form { grid-template-columns: minmax(180px, .8fr) 2fr auto; align-items: center; }
    .footer-grid { grid-template-columns: 1.3fr repeat(3,.7fr); }
    .calendar-filters { grid-template-columns:1fr 1fr auto; }
    .notification-layout { grid-template-columns:minmax(0,1fr) 340px; }
    .install-grid { grid-template-columns:repeat(3,1fr); }
    .event-options { grid-template-columns:1fr 1fr; align-items:end; }
    .attendance-groups { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .idea-board { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .idea-create { grid-template-columns:minmax(0,.75fr) minmax(360px,1fr); }
    .category-row { grid-template-columns:minmax(9rem,2fr) minmax(7rem,1fr) 5rem auto auto; align-items:end; }
}

@media (min-width: 920px) {
    .menu-toggle { display: none; }
    .header-bell { display:none; }
    .main-nav { position: static; display: flex; align-items: center; gap: .1rem; padding: 0; background: transparent; box-shadow: none; }
    .main-nav > a, .main-nav summary, .nav-button { width: auto; padding: .55rem .65rem; font-size: .86rem; }
    .main-nav .notification-bell { display:inline-grid!important; place-items:center; width:2.55rem; height:2.55rem; padding:0; border:1px solid rgba(255,255,255,.28); border-radius:50%; }
    .nav-group { position: relative; }
    .nav-popover { position: absolute; top: calc(100% + .3rem); left: 0; min-width: 175px; padding: .5rem; display: none; background: var(--pine-950); border: 1px solid rgba(255,255,255,.15); border-radius: .6rem; box-shadow: var(--shadow-lg); }
    .nav-group[open] .nav-popover { display: grid; }
    .nav-popover a { border-radius: .35rem; }
    .nav-popover a:hover { background: rgba(255,255,255,.08); }
    .auth-shell { grid-template-columns: 1.1fr minmax(360px, .75fr); }
    .auth-shell-compact { grid-template-columns: 1fr minmax(360px, .7fr); }
    .story-grid { grid-template-columns: 1.2fr .8fr; }
    .welcome-grid { grid-template-columns: 1fr auto; }
    .member-layout { grid-template-columns: minmax(0, 1fr) 340px; }
    .profile-grid { grid-template-columns: minmax(300px, .8fr) minmax(440px, 1.2fr); }
    .form-layout { grid-template-columns: minmax(0, 1fr) 290px; }
    .form-help { position: sticky; top: 1rem; }
    .detail-layout { grid-template-columns: minmax(0, 1fr) 320px; }
    .detail-aside { position: sticky; top: 1rem; }
    .event-list-large { grid-template-columns: repeat(2, 1fr); }
    .metric-grid { grid-template-columns: repeat(4, 1fr); }
    .admin-two-columns { grid-template-columns: 340px minmax(0, 1fr); }
    .role-grid { grid-template-columns: repeat(4, 1fr); }
    .idea-board { grid-template-columns:repeat(4,minmax(0,1fr)); }
    .category-manager { grid-template-columns:320px minmax(0,1fr); }
}

@media (max-width: 760px) {
    .calendar-filters { padding:.85rem; }
    .calendar-toolbar { grid-template-columns:2.5rem minmax(0,1fr) 2.5rem; gap:.5rem; }
    .calendar-legend { justify-content:center; }
    .calendar-grid { display:block; overflow:visible; background:transparent; border:0; box-shadow:none; }
    .weekday,.calendar-day.is-outside,.calendar-day:not(.has-events) { display:none; }
    .calendar-day { display:grid; grid-template-columns:2.8rem minmax(0,1fr); min-height:0; gap:.65rem; margin-bottom:.6rem; padding:.75rem; overflow:visible; background:var(--white); border:1px solid var(--line); border-radius:.7rem; box-shadow:var(--shadow-sm); }
    .calendar-day>time { grid-row:1; width:2.3rem; height:2.3rem; background:var(--cream-100); border-radius:50%; }
    .day-events { grid-column:2; min-width:0; margin:0; }
    .calendar-event { padding:.55rem .65rem; font-size:.8rem; white-space:normal; }
    .calendar-more summary { padding:.45rem 0; font-size:.8rem; }
}

@media (max-width: 560px) {
    .hero-content h1 { font-size: 3.15rem; }
    .section-heading { align-items: flex-start; flex-direction: column; gap: .8rem; margin-bottom: 1.5rem; }
    .section-heading .text-link { min-height: 2.75rem; display: inline-flex; align-items: center; }
    .management-list li { align-items: flex-start; flex-direction: column; gap: .8rem; }
    .management-list li form, .management-list li .button { width: 100%; }
    .button-row .button { width: 100%; }
    .countdown-grid { gap: .55rem; }
    .countdown-grid span { font-size: .67rem; }
    .event-card { grid-template-columns: 3.8rem 1fr; padding: 1rem; }
    .member-countdown { grid-template-columns: auto auto; }
    .member-countdown span:last-child { grid-column: 1 / -1; }
    .profile-stats { grid-template-columns: 1fr; }
    .profile-stats div { display: flex; justify-content: space-between; align-items: center; }
    .page-header { padding-top:2.4rem; }
    .detail-hero,.detail-no-image { min-height:330px; }
    .detail-title { padding-block:2rem; }
    .detail-title h1 { font-size:clamp(2.25rem,12vw,3.35rem); }
    .fact-list div { grid-template-columns:1fr; gap:.15rem; }
    .fact-list dd { text-align:left; }
    .notification-item { flex-direction:column; }.notification-actions { align-items:flex-start; }
    .preference-row { grid-template-columns:1fr 1fr; }
    .preference-actions .button { width:100%; }
    .idea-board-heading { display:block; }
    .idea-board-heading>p { margin-top:.75rem; }
    .attendance-options { grid-template-columns:1fr; }
    .preference-choice { padding:.6rem; }
    .source-card { grid-template-columns:1fr; }
    .source-card-icon,.source-icon { display:none; }
}

/* V1.5 · Comunitat social i reptes */
.social-layout,.challenge-layout{display:grid;gap:1.5rem;align-items:start}.social-main,.challenge-main{min-width:0}.social-aside,.challenge-aside{display:grid;gap:1rem}.social-composer{margin-bottom:1.25rem}.social-feed{display:grid;gap:1.15rem}.social-post{overflow:hidden;padding:1.15rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.social-post-head{display:flex;gap:.8rem;align-items:center;margin-bottom:.9rem}.social-post-head>div{display:grid;gap:.15rem}.social-post-head time,.social-post>time{color:var(--muted);font-size:.78rem}.social-author{font-weight:800;color:var(--pine-950)}.social-copy{margin:.6rem 0 1rem;white-space:normal}.social-gallery{display:grid;gap:.35rem;margin:0 -1.15rem}.social-gallery img{display:block;width:100%;height:100%;max-height:620px;object-fit:cover}.social-gallery-2,.social-gallery-3,.social-gallery-4{grid-template-columns:repeat(2,1fr)}.social-gallery-3 img:first-child{grid-row:span 2}.social-gallery-4 img{aspect-ratio:1/1}.social-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.8rem;padding-top:.9rem;color:var(--muted);font-size:.85rem}.social-actions form{margin:0}.reaction-button{padding:.45rem .7rem;color:var(--pine-900);background:var(--cream-100);border:1px solid var(--line);border-radius:999px;font:inherit;font-weight:750;cursor:pointer}.reaction-button.is-active{color:var(--wine-700);background:#fff4f4;border-color:#e7b8b8}.social-comments{display:grid;gap:.45rem;margin-top:.85rem;padding-top:.75rem;border-top:1px solid var(--line)}.social-comment{padding:.55rem .7rem;background:var(--cream-100);border-radius:.65rem;font-size:.88rem}.social-comment-form{display:grid;grid-template-columns:1fr auto;gap:.55rem;margin-top:.75rem}.social-comment-form input{min-width:0}.challenge-chip{width:max-content;margin-top:.2rem;padding:.2rem .5rem;color:var(--wine-700);background:#fff5e5;border-radius:999px;font-size:.72rem;font-weight:800}.danger-link{color:var(--wine-700)}.member-profile-head{display:flex;gap:1.2rem;align-items:center}.social-profile-feed{max-width:820px}.challenge-grid{display:grid;gap:1rem}.challenge-card{display:block;padding:1.25rem;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:transform .16s ease,box-shadow .16s ease}.challenge-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.challenge-card h2{margin:.65rem 0 .35rem}.challenge-card p{color:var(--muted)}.challenge-card strong{color:var(--wine-700)}.challenge-entries{display:grid;gap:1rem}.challenge-entry{overflow:hidden;padding:1rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}.challenge-entry.is-winner{border:2px solid var(--gold-500);box-shadow:var(--shadow-md)}.winner-card{margin:1rem 0 1.5rem;padding:1.3rem;background:#fff7df;border:1px solid #e9cb73;border-radius:var(--radius-md)}.community-pulse-grid{display:grid;gap:1rem}.pulse-posts{display:grid;gap:.7rem}.pulse-post{display:grid;gap:.2rem;padding:1rem;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md)}.pulse-post span,.pulse-post small{color:var(--muted)}
@media (min-width:800px){.social-layout{grid-template-columns:minmax(0,1fr) 280px}.challenge-layout{grid-template-columns:minmax(0,1fr) 300px}.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-pulse-grid{grid-template-columns:minmax(0,1fr) 300px}}
@media (max-width:640px){.social-post{padding:1rem}.social-gallery{margin-inline:-1rem}.social-gallery-3,.social-gallery-4{grid-template-columns:1fr 1fr}.social-comment-form{grid-template-columns:1fr}.member-profile-head{align-items:flex-start}.page-header .button{width:100%}.challenge-card{padding:1rem}}
.social-comment{display:flex;justify-content:space-between;gap:.7rem;align-items:flex-start}.social-comment form{margin:0;flex:0 0 auto}.challenge-archive .challenge-card{background:rgba(255,255,255,.78)}

/* V1.6 · Hotfix social + concursos */
.page-header-actions{display:flex;flex-wrap:wrap;gap:.65rem;align-items:center}
.form-card-heading,.aside-heading{margin-bottom:1rem}.form-card-heading .eyebrow,.aside-heading .eyebrow{margin-bottom:.2rem}
.social-layout{grid-template-columns:minmax(0,1fr);gap:1.4rem}.social-main{width:100%;max-width:860px}.social-aside{min-width:0}
.social-composer{margin-bottom:1.4rem}.social-composer-footer{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:1rem;align-items:end}.social-photo-field{margin:0}.social-composer-footer>.button{margin-bottom:.1rem;min-width:8rem}
.social-post{overflow:visible;padding:1.2rem;border-radius:1.1rem}.social-post-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.8rem;align-items:start;margin-bottom:.9rem}.social-avatar{width:48px;height:48px;border-radius:.65rem;object-fit:cover}.social-post-identity{display:grid;gap:.1rem;min-width:0}.social-post-delete{margin:0;padding-top:.05rem}.social-post-delete .link-button{font-size:.8rem}
.social-copy{margin:.75rem 0 1rem;font-size:1rem;line-height:1.55}.social-gallery{display:grid;gap:.4rem;margin:.8rem 0 0;overflow:hidden;border-radius:.85rem;background:var(--cream-100)}.social-gallery img{width:100%;height:100%;min-height:180px;max-height:640px;object-fit:cover}.social-gallery-1 img{max-height:680px;object-fit:contain;background:var(--cream-100)}.social-gallery-2,.social-gallery-3,.social-gallery-4{grid-template-columns:repeat(2,minmax(0,1fr))}.social-gallery-3 img:first-child{grid-row:span 2}.social-gallery-4 img{aspect-ratio:1/1}
.social-actions{display:flex;align-items:center;gap:.9rem;margin-top:.9rem;padding:.75rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.social-comment-count{color:var(--muted);font-weight:650}.reaction-button{display:inline-flex;gap:.25rem;align-items:center;min-height:2.25rem;padding:.4rem .72rem}.reaction-button strong{color:inherit}
.social-comments{margin-top:.75rem;padding-top:0;border-top:0}.social-comment{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;padding:.65rem .75rem}.social-comment-copy{display:flex;flex-wrap:wrap;gap:.35rem;min-width:0}.social-comment-copy span{overflow-wrap:anywhere}.comment-delete{display:grid;place-items:center;width:1.75rem;height:1.75rem;padding:0;color:var(--muted);background:transparent;border:0;border-radius:50%;font-size:1.15rem;cursor:pointer}.comment-delete:hover,.comment-delete:focus-visible{color:var(--wine-700);background:#fff0f0}
.social-comment-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.6rem;align-items:stretch;margin-top:.8rem}.social-comment-form input{min-height:2.7rem}.social-comment-form .button{min-height:2.7rem;margin:0}.social-empty{margin-top:1rem}
.social-challenges-card{position:sticky;top:6rem}.social-challenge-list{display:grid;gap:.55rem;margin:0;padding:0;list-style:none}.social-challenge-list li{margin:0}.social-challenge-list a{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:center;padding:.7rem;color:inherit;background:var(--cream-100);border:1px solid transparent;border-radius:.75rem}.social-challenge-list a:hover{border-color:var(--line);background:var(--white)}.social-challenge-icon{display:grid;place-items:center;width:2rem;height:2rem;background:var(--white);border-radius:50%}.social-challenge-list span:last-child{display:grid;gap:.1rem}.social-challenge-list small{color:var(--muted)}.aside-links{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:1rem}.mini-empty{display:grid;justify-items:center;gap:.35rem;padding:1.2rem .8rem;text-align:center;color:var(--muted);background:var(--cream-100);border-radius:.8rem}.mini-empty span{font-size:1.6rem}.mini-empty p{margin:0}

.challenge-page-header .page-header-actions{align-self:flex-end}.challenge-section{padding-top:1.25rem}.challenge-history-section{margin-top:1rem}.challenge-grid{grid-template-columns:1fr;gap:1rem}.challenge-card{overflow:hidden;padding:0;border-radius:1rem}.challenge-card-cover{aspect-ratio:16/8;overflow:hidden;background:var(--cream-100)}.challenge-card-cover img{width:100%;height:100%;object-fit:cover}.challenge-card-body{padding:1.15rem}.challenge-card-meta{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center}.kind-badge{display:inline-flex;align-items:center;width:max-content;padding:.28rem .55rem;border-radius:999px;font-size:.72rem;font-weight:850;letter-spacing:.02em}.kind-challenge{color:var(--pine-900);background:#eef5ef}.kind-contest{color:#6c4c00;background:#fff3c7}.challenge-card h2{margin:.65rem 0 .35rem}.challenge-card-stats{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:.8rem;color:var(--wine-700);font-size:.82rem;font-weight:800}.challenge-deadline{display:block;margin-top:.5rem;color:var(--muted);font-size:.78rem}.challenge-empty{width:min(100%,760px);margin-inline:auto;padding:1.5rem 1.25rem}.challenge-empty h3{margin:.2rem 0}.challenge-empty p{margin-bottom:0}
.challenge-layout{gap:1.4rem}.challenge-hero{overflow:hidden;margin-bottom:1.25rem;border-radius:1rem;box-shadow:var(--shadow-sm)}.challenge-hero img{display:block;width:100%;max-height:520px;object-fit:cover}.challenge-entry-form{margin-bottom:1.5rem}.entries-heading{display:flex;flex-direction:row;align-items:center;justify-content:space-between}.entry-count{display:grid;place-items:center;min-width:2.25rem;height:2.25rem;padding:0 .55rem;color:var(--pine-950);background:var(--gold-200);border-radius:999px;font-weight:850}.challenge-entry{padding:1.1rem;border-radius:1rem}.challenge-entry-head{display:flex;justify-content:space-between;gap:.75rem;align-items:center}.winner-mini-badge{padding:.25rem .5rem;background:#fff3c7;border-radius:999px;font-size:.75rem;font-weight:850}.challenge-entry-actions{margin-top:.8rem}.challenge-summary .challenge-dates{display:grid;gap:.65rem;margin:0}.challenge-dates div{display:grid;gap:.08rem;padding-bottom:.55rem;border-bottom:1px solid var(--line)}.challenge-dates div:last-child{padding-bottom:0;border-bottom:0}.challenge-dates dt{color:var(--muted);font-size:.74rem;text-transform:uppercase;letter-spacing:.06em}.challenge-dates dd{margin:0;font-weight:750}.countdown-pill{margin-top:1rem;padding:.65rem .75rem;text-align:center;color:var(--wine-700);background:#fff5e5;border-radius:.7rem;font-size:.84rem;font-weight:850}.prize-card{background:#fff9e8;border-color:#ead494}
.podium-section{margin-bottom:1.6rem}.podium-grid{display:grid;gap:.75rem}.podium-card{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto auto;gap:.05rem .7rem;align-items:center;padding:1rem;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:.9rem;box-shadow:var(--shadow-sm)}.podium-medal{grid-row:1/3;display:grid;place-items:center;width:2.7rem;height:2.7rem;background:var(--cream-100);border-radius:50%;font-size:1.4rem}.podium-place{color:var(--muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.podium-card strong{font-size:1rem}.podium-card small{grid-column:2;color:var(--muted)}.podium-position-1{border-color:#d7b44d;background:#fffaf0}.results-note{margin-top:.8rem;padding:1rem;background:var(--cream-100);border-radius:.8rem}.results-note p{margin:0}
.award-grid{display:grid;gap:.6rem}.award-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.65rem;align-items:center;padding:.75rem;color:inherit;background:var(--white);border:1px solid var(--line);border-radius:.8rem}.award-icon{font-size:1.35rem}.award-card span:last-child{display:grid;gap:.05rem}.award-card small{color:var(--muted)}.compact-awards .award-card{background:var(--cream-100)}.member-awards{padding-top:1rem}
.admin-challenge-layout{display:grid;gap:1.5rem;align-items:start}.challenge-admin-form{min-width:0}.challenge-admin-list{min-width:0}.challenge-management-list{display:grid;gap:1rem}.challenge-admin-card{display:grid;gap:.9rem}.challenge-admin-card-head{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.challenge-admin-card h3{margin:.35rem 0 .2rem}.challenge-admin-card p{margin:0;color:var(--muted)}.challenge-status-form{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.55rem}.challenge-result-form{display:grid;gap:.75rem;padding:1rem;background:var(--cream-100);border-radius:.8rem}.challenge-result-form h4{margin:0}.result-selects{display:grid;gap:.55rem}.result-selects .field{margin:0}.current-winners{display:flex;flex-wrap:wrap;gap:.45rem .75rem;font-size:.84rem}.challenge-edit-cover{overflow:hidden;width:min(100%,520px);aspect-ratio:16/7;border-radius:.8rem}.challenge-edit-cover img{width:100%;height:100%;object-fit:cover}.narrow-section{max-width:980px}

@media (min-width:800px){.social-layout{grid-template-columns:minmax(0,1fr) 300px}.challenge-layout{grid-template-columns:minmax(0,1fr) 310px}.challenge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.podium-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.podium-count-1{grid-template-columns:minmax(0,360px)}.award-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-challenge-layout{grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)}}
@media (max-width:799px){.social-main{max-width:none}.social-challenges-card{position:static}.page-header-actions{width:100%}.page-header-actions .button{flex:1 1 12rem;text-align:center}.challenge-card-cover{aspect-ratio:16/7}.admin-challenge-layout{padding-top:1rem}}
@media (max-width:640px){.social-post{padding:.9rem}.social-post-head{grid-template-columns:auto minmax(0,1fr)}.social-post-delete{grid-column:2;margin-top:.15rem}.social-composer-footer{grid-template-columns:1fr}.social-composer-footer>.button{width:100%}.social-gallery{margin-inline:0}.social-gallery-2,.social-gallery-3,.social-gallery-4{grid-template-columns:repeat(2,minmax(0,1fr))}.social-gallery img{min-height:130px}.social-gallery-1 img{min-height:0}.social-comment-form{grid-template-columns:1fr}.social-comment-form .button{width:100%}.challenge-card-body{padding:1rem}.challenge-entry{padding:.9rem}.entries-heading{align-items:center;flex-direction:row}.challenge-status-form{grid-template-columns:1fr}.challenge-status-form .button{width:100%}.challenge-admin-card-head{flex-direction:column}.challenge-admin-card-head .button{width:100%}.podium-grid{grid-template-columns:1fr}.award-grid{grid-template-columns:1fr}}

/* V1.7 — formularis coherents, reptes comunitaris i gestió col·laborativa */
.form-grid{display:grid;gap:0 1rem;align-items:start}.form-grid>.field{min-width:0}.form-card-heading{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1.4rem}.form-card-heading h2,.form-card-heading h3{margin:.15rem 0 .35rem}.form-card-heading p:last-child{margin:0;color:var(--muted)}.form-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin-top:.35rem}.form-action-note{color:var(--muted);font-size:.82rem}.panel-heading h2,.aside-heading h2{margin:.15rem 0 .3rem}.aside-heading p:last-child{margin-bottom:0;color:var(--muted)}
.table-actions select,.challenge-status-form>select{width:100%;min-height:3rem;padding:.72rem .8rem;color:var(--ink);background:var(--cream-50);border:1px solid #aaa99f;border-radius:.45rem}.table-actions select:focus,.challenge-status-form>select:focus{border-color:var(--pine-700);box-shadow:0 0 0 3px rgba(35,91,81,.13);outline:0}
.challenge-create-section{padding-top:.65rem}.challenge-create-panel{overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.challenge-create-panel>summary{display:flex;align-items:center;gap:.85rem;padding:1.15rem 1.3rem;color:var(--pine-950);cursor:pointer;list-style:none}.challenge-create-panel>summary::-webkit-details-marker{display:none}.challenge-create-panel>summary>span:first-child{display:grid;place-items:center;flex:0 0 2.5rem;height:2.5rem;color:var(--cream-50);background:var(--pine-800);border-radius:50%;font-size:1.35rem}.challenge-create-panel>summary>span:last-child{display:grid;gap:.1rem}.challenge-create-panel>summary strong{font-family:var(--font-title);font-size:1.35rem}.challenge-create-panel>summary small{color:var(--muted);font-size:.82rem}.challenge-create-panel[open]>summary{border-bottom:1px solid var(--line)}.challenge-create-panel .challenge-community-form{border:0;border-radius:0;box-shadow:none}.challenge-community-form{display:block}.challenge-community-form .field:last-child{margin-bottom:1.15rem}
.challenge-card{display:flex;flex-direction:column}.challenge-card h3{margin:.7rem 0 .4rem;font-family:var(--font-title);font-size:1.5rem;line-height:1.08}.challenge-card h3 a{color:inherit;text-decoration:none}.challenge-card h3 a:hover{color:var(--wine-700)}.challenge-mode-badge{display:inline-flex;align-items:center;width:max-content;padding:.28rem .55rem;color:var(--pine-800);background:#edf3f0;border-radius:999px;font-size:.72rem;font-weight:800}.challenge-card-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:1rem;padding-top:.9rem;border-top:1px solid var(--line)}.challenge-byline{margin-top:.55rem!important;font-size:.88rem!important}.challenge-manager-card{display:grid;gap:1rem;background:var(--white);box-shadow:var(--shadow-sm)}.challenge-manager-card .aside-heading{margin-bottom:0}.challenge-status-form{display:grid;gap:.75rem}.challenge-status-form .field{margin:0}.challenge-result-form{display:grid;gap:.8rem;padding:1rem;background:var(--cream-100);border:1px solid var(--line);border-radius:.8rem}.challenge-result-form .form-card-heading{margin:0}.challenge-result-form .field{margin:0}.challenge-manager-actions{display:grid;gap:.65rem;padding-top:.2rem}.challenge-manager-actions form{margin:0}.challenge-manager-actions .button{margin:0}.challenge-edit-cover{margin:0 0 1.25rem}.detail-management{display:grid;gap:.65rem;margin-top:1rem;padding-top:1rem;border-top:1px solid var(--line)}.detail-management .eyebrow{margin:0 0 .1rem}.detail-management form{margin:0}
@media (min-width:720px){.form-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}.form-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:719px){.form-actions{align-items:stretch;flex-direction:column}.form-actions .button{width:100%}.form-action-note{text-align:center}.challenge-create-panel>summary{padding:1rem}.challenge-card-actions{align-items:stretch;flex-direction:column}.challenge-card-actions .button,.challenge-card-actions .text-link{width:100%;text-align:center}.challenge-manager-card{padding:1rem}}

/* V1.7.1 · Hotfix visual de reptes i comptadors de notificacions */
.notification-badge{
    position:absolute;
    top:-.38rem;
    right:-.38rem;
    z-index:2;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:1.38rem;
    height:1.38rem;
    margin:0;
    padding:0 .3rem;
    box-sizing:border-box;
    color:var(--white);
    background:var(--wine-700);
    border:2px solid var(--pine-950);
    border-radius:999px;
    font-size:.67rem;
    font-weight:850;
    line-height:1;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}
.header-bell .notification-badge,
.notification-bell .notification-badge{top:-.38rem;right:-.38rem;margin:0}

.entries-heading{
    justify-content:flex-start;
    gap:.75rem;
}
.entry-count{
    flex:0 0 auto;
    min-width:2.25rem;
    height:2.25rem;
    line-height:1;
}

.challenge-manager-card{
    min-width:0;
    overflow:hidden;
}
.challenge-manager-card .challenge-status-form{
    grid-template-columns:minmax(0,1fr);
    gap:.7rem;
}
.challenge-manager-card .challenge-status-form .field{
    min-width:0;
    margin:0;
}
.challenge-manager-card .challenge-status-form select{
    min-width:0;
}
.challenge-manager-card .challenge-status-form .button{
    width:100%;
    min-height:3rem;
}
.challenge-manager-card .challenge-manager-actions{
    gap:.7rem;
}
.challenge-manager-card .challenge-manager-actions .button{
    min-height:3rem;
}

@media (min-width:800px){
    .challenge-layout{grid-template-columns:minmax(0,1fr) minmax(320px,350px)}
    .challenge-aside{min-width:0}
}
@media (max-width:919px){
    .header-bell .notification-badge{top:-.3rem;right:-.3rem}
}


/* V1.7.2 — programació de reptes */
.alert-warning{background:#fff4d8;color:#6b4b00;border:1px solid #e3c36f}
.schedule-timezone-note{margin:.25rem 0 0;padding:.85rem 1rem;background:var(--cream-100);border:1px solid var(--line);border-radius:.75rem;color:var(--muted);font-size:.88rem;line-height:1.5}
.schedule-timezone-note strong{color:var(--ink)}
.schedule-summary-note{margin:.15rem 0 .8rem;font-size:.82rem}
.challenge-manager-card .aside-heading p:last-child{line-height:1.5}

/* V1.8 · Catàleg personal i fotografia social */
.social-gallery-1 img { max-height: 780px; object-fit: contain; background: var(--pine-950); }
.social-copy { white-space: pre-line; }

.catalog-toolbar { display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-top:1rem; padding:1rem 1.1rem; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }
.catalog-toolbar > div { display:grid; gap:.15rem; }
.catalog-toolbar > div span { color:var(--muted); font-size:.88rem; }
.segmented-filter { display:inline-flex; flex-wrap:wrap; gap:.35rem; padding:.3rem; background:var(--white); border:1px solid var(--line); border-radius:999px; }
.segmented-filter a { display:inline-flex; align-items:center; min-height:2.4rem; padding:.45rem .8rem; color:var(--pine-900); border-radius:999px; text-decoration:none; font-weight:800; font-size:.84rem; }
.segmented-filter a[aria-current="page"] { color:var(--cream-50); background:var(--pine-900); }

.card-media { position:relative; }
.watch-card-badge { position:absolute; top:.7rem; right:.7rem; z-index:2; display:inline-flex; align-items:center; gap:.35rem; min-height:2rem; padding:.35rem .65rem; border-radius:999px; box-shadow:0 5px 16px rgba(0,0,0,.16); font-size:.76rem; font-weight:850; }
.watch-card-badge.is-watched { color:var(--cream-50); background:rgba(18,60,52,.94); }
.watch-card-badge.is-pending { color:var(--pine-950); background:rgba(255,248,232,.94); }
.watch-card-badge > span { font-size:1rem; line-height:1; }

.watch-panel { display:grid; gap:.9rem; padding:1rem; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }
.watch-panel > div { display:flex; align-items:flex-start; gap:.75rem; }
.watch-panel > div > div { display:grid; gap:.15rem; }
.watch-panel > div span:not(.watch-panel-icon) { color:var(--muted); font-size:.84rem; line-height:1.45; }
.watch-panel-icon { display:grid; place-items:center; flex:0 0 2.2rem; width:2.2rem; height:2.2rem; color:var(--wine-700); background:var(--white); border:1px solid var(--line); border-radius:999px; font-size:1.15rem; font-weight:900; }
.watch-panel.is-watched { background:#eef7f2; border-color:#bdd7c8; }
.watch-panel.is-watched .watch-panel-icon { color:var(--cream-50); background:var(--pine-800); border-color:var(--pine-800); }

.availability-card { display:grid; gap:.85rem; padding:1rem; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.availability-heading h2 { margin:.15rem 0 0; font-size:1.2rem; }
.availability-group { display:grid; gap:.4rem; }
.availability-group > strong { font-size:.82rem; }
.provider-list { display:flex; flex-wrap:wrap; gap:.4rem; }
.provider-list span { display:inline-flex; align-items:center; min-height:2rem; padding:.35rem .6rem; background:var(--cream-100); border:1px solid var(--line); border-radius:999px; font-size:.78rem; font-weight:800; }
.availability-note,.availability-unavailable { margin:0; color:var(--muted); font-size:.78rem; line-height:1.45; }
.availability-unavailable { color:var(--wine-700); font-weight:750; }

@media (max-width: 720px) {
    .catalog-toolbar { align-items:stretch; flex-direction:column; }
    .segmented-filter { width:100%; border-radius:.85rem; }
    .segmented-filter a { flex:1 1 auto; justify-content:center; }
}

/* V1.8.2 · Correcció de catàleg i fitxes audiovisuals */
.detail-hero-screen { min-height:clamp(300px,42vh,440px); isolation:isolate; background:linear-gradient(135deg,var(--wine-800),var(--pine-950) 72%); }
.detail-hero-screen .detail-backdrop-art { object-fit:cover; filter:saturate(.82) contrast(.96); opacity:.58; transform:none; }
.detail-hero-screen .detail-shade { background:linear-gradient(0deg,rgba(7,29,25,.96),rgba(7,29,25,.45) 64%,rgba(7,29,25,.58)); }
.detail-hero-screen .detail-title { padding-block:clamp(2rem,4vw,3.1rem); }
.detail-hero-screen .detail-title h1 { max-width:980px; font-size:clamp(2.8rem,6vw,5rem); }

.screen-detail-layout { display:grid; gap:clamp(1.25rem,3vw,2rem); align-items:start; padding-block:clamp(1.75rem,4vw,3.5rem); }
.screen-detail-main { display:grid; gap:1.25rem; min-width:0; }
.screen-detail-intro { display:grid; gap:1rem; padding:clamp(1.25rem,2.6vw,1.75rem); }
.screen-detail-intro .lead { margin:0; font-size:clamp(1rem,1.35vw,1.12rem); line-height:1.72; }
.screen-detail-meta-row { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; padding-top:.9rem; border-top:1px solid var(--line); }
.screen-rating-summary { color:var(--muted); font-size:.88rem; }
.screen-rating-summary strong { color:var(--wine-700); }
.screen-detail-section { padding:clamp(1.15rem,2vw,1.5rem); background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }
.screen-detail-section h2 { margin:.15rem 0 1rem; font-size:clamp(1.45rem,2.2vw,2rem); }
.screen-rating-card,.screen-comments-card { display:grid; gap:1.15rem; padding:clamp(1.15rem,2vw,1.5rem); background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.screen-rating-card .rating-people { margin-top:0; padding-top:1rem; border-top:1px solid var(--line); }
.screen-rating-card .rating-form .button { width:100%; }
.screen-comments-card .section-heading { margin-bottom:0; }
.screen-comments-card .comment-form { margin-top:.25rem; }

.screen-detail-aside { min-width:0; padding:1rem; }
.screen-aside-poster { margin:0; overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); }
.screen-aside-poster img { display:block; width:100%; height:auto; max-height:520px; object-fit:contain; }

/* Les il·lustracions editorials V1.8 són horitzontals (1200×800): no es forcen a 2:3. */
.content-card-movie .card-media,.content-card-series .card-media { aspect-ratio:3/2; background:var(--cream-100); }
.content-card-movie .card-media-editorial img,.content-card-series .card-media-editorial img { object-fit:cover; background:transparent; }
.content-card-movie .card-media-uploaded img,.content-card-series .card-media-uploaded img { object-fit:contain; background:var(--cream-100); }
.form-preview-poster { width:min(100%,360px); height:auto; max-height:520px; object-fit:contain; background:var(--cream-100); border:1px solid var(--line); border-radius:var(--radius-md); }

.poster-manager-section { padding-top:2rem; }
.poster-manager-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr)); gap:1.25rem; }
.poster-manager-card { overflow:hidden; background:var(--white); border:1px solid var(--line); border-radius:var(--radius-md); box-shadow:var(--shadow-sm); }
.poster-manager-preview { display:grid; place-items:center; aspect-ratio:3/2; overflow:hidden; background:var(--cream-100); }
.poster-manager-preview img { width:100%; height:100%; object-fit:contain; }
.poster-manager-preview.is-editorial img { object-fit:cover; }
.poster-manager-preview .card-placeholder { font-size:5.5rem; }
.poster-manager-body { display:grid; gap:.7rem; padding:1rem; }
.poster-manager-body .eyebrow,.poster-manager-body h2,.poster-manager-body p { margin:0; }
.poster-manager-body h2 { font-size:1.3rem; }
.poster-upload-form { display:grid; gap:.7rem; margin-top:.25rem; padding-top:.8rem; border-top:1px solid var(--line); }
.poster-upload-form .field { margin:0; }

@media (min-width:980px) {
    .screen-detail-layout { grid-template-columns:minmax(0,1fr) minmax(285px,330px); }
    .screen-detail-aside { position:sticky; top:1rem; }
}
@media (max-width:979px) {
    .screen-detail-aside { position:static; }
}
@media (max-width:699px) {
    .detail-hero-screen { min-height:300px; }
    .detail-hero-screen .detail-title { padding-block:1.8rem; }
    .screen-detail-meta-row { align-items:stretch; flex-direction:column; }
    .screen-detail-meta-row .button { width:100%; }
    .screen-detail-aside { padding:1rem; }
}

/* V1.8.3 · Portades originals amb cerca assistida */
.poster-search-section{display:grid;gap:1.25rem}
.poster-search-form{display:grid;grid-template-columns:minmax(0,1fr) 110px auto;gap:.75rem;align-items:end;padding:1rem;background:var(--cream-100);border:1px solid var(--line);border-radius:var(--radius-md)}
.poster-search-form .field{margin:0}
.poster-search-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:1.25rem;align-items:start}
.poster-search-card{overflow:hidden;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.poster-search-preview{aspect-ratio:2/3;background:var(--cream-100);overflow:hidden}
.poster-search-preview img{display:block;width:100%;height:100%;object-fit:cover}
.poster-search-body{display:grid;gap:.8rem;padding:1rem}
.poster-search-body h2,.poster-search-body p{margin:0}
.poster-search-body h2{font-size:1.15rem;line-height:1.25}
.poster-original-title{color:var(--muted);font-size:.82rem}
.poster-search-overview{color:var(--muted);font-size:.88rem;line-height:1.5}

/* Les imatges pujades/importades per pel·lícules i sèries són pòsters reals. */
.content-card-movie .card-media-uploaded,.content-card-series .card-media-uploaded{aspect-ratio:2/3;background:var(--cream-100)}
.content-card-movie .card-media-uploaded img,.content-card-series .card-media-uploaded img{object-fit:cover;background:transparent}
.poster-manager-preview.is-uploaded{aspect-ratio:2/3}
.poster-manager-preview.is-uploaded img{object-fit:cover}

@media (max-width:680px){
    .poster-search-form{grid-template-columns:1fr}
    .poster-search-form .button{width:100%}
}
.tmdb-credit{display:inline-flex;align-items:center;text-decoration:none}
.tmdb-credit img{display:block;width:auto;height:28px;max-width:180px}

/* V1.9.0 · Ecosistema audiovisual TMDB */
.tmdb-import-callout{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.25rem;padding:1rem 1.1rem;background:var(--cream-100);border:1px solid var(--line);border-radius:var(--radius-md)}
.tmdb-import-callout>div{display:grid;gap:.2rem}.tmdb-import-callout p{margin:0;color:var(--muted);font-size:.88rem;line-height:1.5}.tmdb-import-callout strong{color:var(--ink)}
.tmdb-library-search{grid-template-columns:150px minmax(0,1fr) 120px auto}
.tmdb-import-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.tmdb-admin-stack{display:grid;gap:2rem}
.tmdb-admin-stack>.metric-grid{margin-bottom:0}
.tmdb-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.5rem}
.tmdb-step-card{display:flex;min-width:0;flex-direction:column}
.tmdb-step-card .panel-heading{align-items:flex-start;min-height:5.25rem}
.tmdb-panel-body{display:flex;flex:1;flex-direction:column;gap:1.15rem;padding:1.35rem}
.tmdb-panel-body>p{margin:0;color:var(--muted);line-height:1.65}
.tmdb-panel-body>.muted{font-size:.88rem}
.tmdb-panel-actions{margin-top:auto;padding-top:.15rem}
.tmdb-panel-actions form{margin:0}
.tmdb-batch-buttons{display:flex;flex-wrap:wrap;gap:.7rem}
.tmdb-batch-buttons form{margin:0}
.tmdb-recent-panel .panel-heading{padding-block:1.3rem}
.tmdb-metrics a{padding:1.4rem 1.35rem}
.tmdb-config-warning{border-color:#d7b9b2;background:#fff8f5}
.tmdb-config-warning code{font-size:.88em}

@media (max-width:840px){
    .tmdb-admin-grid{grid-template-columns:1fr}
    .tmdb-library-search{grid-template-columns:1fr 1fr}
    .tmdb-library-search .field:nth-child(2){grid-column:1/-1}
}
@media (max-width:680px){
    .tmdb-import-callout{align-items:stretch;flex-direction:column}
    .tmdb-import-callout .button{width:100%}
    .tmdb-library-search{grid-template-columns:1fr}
    .tmdb-library-search .field:nth-child(2){grid-column:auto}
    .tmdb-batch-buttons,.tmdb-batch-buttons form,.tmdb-batch-buttons .button{width:100%}
}


/* V1.9.1 · Push més visible i administració amb més aire */
.form-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.65rem}
.form-card-heading h2,.form-card-heading p{margin:0}
.push-state-pill{display:inline-flex;align-items:center;min-height:1.9rem;padding:.28rem .65rem;color:var(--muted);background:var(--cream-100);border:1px solid var(--line);border-radius:999px;font-size:.76rem;font-weight:800;white-space:nowrap}
.push-state-pill[data-state="on"]{color:var(--pine-900);background:#eef7f2;border-color:#bfd8c9}
.push-state-pill[data-state="off"]{color:var(--wine-700);background:#fff7f5;border-color:#e3c8c1}
.push-profile-card .push-actions{margin-bottom:.45rem}
.push-profile-card .text-link{align-self:center}
.push-reminder{position:fixed;z-index:60;right:1rem;bottom:1rem;left:1rem;pointer-events:none}
.push-reminder[hidden]{display:none}
.push-reminder-card{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1rem;width:min(100%,680px);margin-left:auto;padding:1.15rem 1.2rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:0 18px 50px rgba(0,0,0,.2);pointer-events:auto}
.push-reminder-icon{display:grid;place-items:center;width:3rem;height:3rem;background:var(--cream-100);border-radius:50%;font-size:1.35rem}
.push-reminder-content{min-width:0}
.push-reminder-content .eyebrow{margin:0 0 .2rem}
.push-reminder-content h2{margin:0 0 .35rem;font-size:1.45rem}
.push-reminder-content>p{margin:.2rem 0 0;color:var(--muted);line-height:1.55}
.push-reminder-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem .8rem;margin-top:1rem}
.push-reminder-actions .button-link{min-height:2.5rem}
.admin-notification-stack{display:grid;gap:1.5rem}
.admin-notification-stack>.metric-grid{margin-bottom:0}
.metric-card{display:flex;flex-direction:column;padding:1.25rem;background:var(--white);border:1px solid var(--line);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}
.metric-card span{color:var(--muted);font-size:.82rem;font-weight:750}
.metric-card strong{color:var(--wine-700);font-family:var(--font-title);font-size:2.1rem}
.notification-config-warning{border-color:#d7b9b2;background:#fff8f5}
.panel-body-copy{display:grid;gap:.6rem;padding:1.25rem 1.3rem}
.panel-body-copy p{margin:0;line-height:1.6}
.panel-body-copy code{font-size:.88em}

@media (max-width:680px){
    .form-card-heading{align-items:stretch;flex-direction:column}
    .push-state-pill{align-self:flex-start}
    .push-reminder{right:.6rem;bottom:.6rem;left:.6rem}
    .push-reminder-card{grid-template-columns:1fr;padding:1rem}
    .push-reminder-icon{width:2.65rem;height:2.65rem}
    .push-reminder-actions{align-items:stretch;flex-direction:column}
    .push-reminder-actions .button,.push-reminder-actions .button-link{width:100%;text-align:center}
    .tmdb-step-card .panel-heading{min-height:0}
}

/* V1.10 · episodis nadalencs */
.christmas-episodes-section{display:grid;gap:1rem}
.compact-heading{align-items:center;margin-bottom:0}
.episode-count-pill{display:inline-flex;align-items:center;justify-content:center;padding:.4rem .7rem;border:1px solid var(--line);border-radius:999px;color:var(--muted);font-size:.82rem;white-space:nowrap}
.episode-season-list{display:grid;gap:.85rem}
.episode-season{border:1px solid var(--line);border-radius:1rem;background:var(--surface);overflow:hidden}
.episode-season>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.1rem;cursor:pointer;font-weight:800;list-style:none}
.episode-season>summary::-webkit-details-marker{display:none}
.episode-season>summary strong{display:inline-flex;min-width:2rem;height:2rem;align-items:center;justify-content:center;border-radius:999px;background:var(--surface-2);font-size:.82rem}
.episode-cards{display:grid;gap:.75rem;padding:0 1rem 1rem}
.episode-card{display:grid;gap:.55rem;padding:1rem;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2)}
.episode-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.episode-card-heading>div{display:grid;gap:.2rem}
.episode-card h3{margin:0;font-size:1rem;line-height:1.25}
.episode-code{color:var(--muted);font-size:.76rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase}
.episode-year{color:var(--muted);font-size:.82rem;white-space:nowrap}
.episode-card p{margin:0;color:var(--muted);line-height:1.55;font-size:.92rem}
.tmdb-episode-panel{display:grid;gap:1.15rem}
.tmdb-episode-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.85rem}
.tmdb-episode-metric{padding:1rem;border:1px solid var(--line);border-radius:1rem;background:var(--surface-2)}
.tmdb-episode-metric span{display:block;color:var(--muted);font-size:.8rem;margin-bottom:.3rem}
.tmdb-episode-metric strong{font-size:1.4rem}
.tmdb-candidate-actions{display:flex;gap:.45rem;flex-wrap:wrap}
@media (max-width:760px){.tmdb-episode-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.episode-card-heading{align-items:flex-start}.compact-heading{align-items:flex-start}}

/* V1.10.1 · Edició audiovisual completa i col·laborativa */
.content-editor-nav{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:-.25rem;margin-bottom:1rem}
.content-editor-nav a{display:inline-flex;align-items:center;min-height:2.35rem;padding:.42rem .78rem;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:999px;text-decoration:none;font-size:.82rem;font-weight:800}
.content-editor-nav a:hover{border-color:var(--pine-700);color:var(--pine-900)}
.content-editor-section{scroll-margin-top:1rem}
.editor-source-banner{display:grid;gap:.55rem;padding:1rem;background:var(--cream-100);border:1px solid var(--line);border-radius:var(--radius-md)}
.editor-source-banner>div{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.editor-source-banner p{margin:0;color:var(--muted);font-size:.86rem;line-height:1.55}
.source-pill,.status-pill,.sync-mode-pill{display:inline-flex;align-items:center;justify-content:center;min-height:1.9rem;padding:.28rem .65rem;border:1px solid var(--line);border-radius:999px;font-size:.75rem;font-weight:800;white-space:nowrap}
.source-pill{color:var(--muted);background:var(--cream-100)}
.sync-mode-pill.is-auto{color:var(--pine-900);background:#eef7f2;border-color:#bfd8c9}.sync-mode-pill.is-manual{color:var(--wine-700);background:#fff7f5;border-color:#e3c8c1}
.editor-module{display:grid;gap:1.15rem;scroll-margin-top:1rem;margin-bottom:1.5rem;padding:clamp(1.1rem,2.5vw,1.5rem);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.editor-module-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.editor-module-heading h2{margin:.15rem 0 .35rem;font-size:clamp(1.45rem,2.5vw,2rem)}.editor-module-heading p{margin:0;max-width:760px;color:var(--muted);line-height:1.6}
.editor-module-note{margin:0;padding:.85rem 1rem;background:var(--cream-100);border-radius:var(--radius-md);color:var(--muted);font-size:.86rem;line-height:1.55}
.availability-editor{display:grid;gap:1rem}.availability-editor-list{display:grid;gap:.75rem}.availability-editor-row{display:grid;grid-template-columns:minmax(160px,1fr) minmax(145px,.55fr) minmax(220px,1.2fr) auto;gap:.75rem;align-items:end;padding:.9rem;background:var(--cream-100);border:1px solid var(--line);border-radius:var(--radius-md)}
.availability-editor-row .field{margin:0}.availability-remove{align-self:end;min-height:2.75rem}.editor-module-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.65rem}
.episode-add-card,.episode-editor-card{border:1px solid var(--line);border-radius:var(--radius-md);background:var(--cream-100);overflow:hidden}.episode-add-card>summary,.episode-editor-details>summary{cursor:pointer;list-style:none;font-weight:800}.episode-add-card>summary::-webkit-details-marker,.episode-editor-details>summary::-webkit-details-marker{display:none}.episode-add-card>summary{padding:1rem 1.1rem}.episode-add-card[open]>summary{border-bottom:1px solid var(--line)}
.episode-editor-form{display:grid;gap:.9rem;padding:1rem 1.1rem}.episode-editor-form .field{margin:0}.episode-editor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem}.episode-editor-list{display:grid;gap:.8rem}.episode-editor-card{padding:1rem;background:var(--white)}
.episode-editor-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}.episode-editor-card-heading>div:first-child{display:grid;gap:.2rem}.episode-editor-card-heading h3{margin:0;font-size:1.08rem}.episode-editor-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem}.status-pill.status-published{color:var(--pine-900);background:#eef7f2;border-color:#bfd8c9}.status-pill.status-candidate{color:#73520c;background:#fff8e7;border-color:#ead39b}.status-pill.status-rejected{color:var(--wine-700);background:#fff7f5;border-color:#e3c8c1}
.episode-editor-details{margin-top:.75rem;border-top:1px solid var(--line)}.episode-editor-details>summary{padding:.8rem 0;color:var(--pine-900)}.episode-editor-details .episode-editor-form{padding:0 0 1rem}.episode-remove-form{padding-top:.9rem;border-top:1px solid var(--line)}.editor-field-note{margin:0;color:var(--muted);font-size:.78rem;line-height:1.5}.compact-empty{padding:1rem}.compact-empty p{margin:0}
.episode-community-note{padding-top:.35rem;border-top:1px dashed var(--line)}
.provider-list a{display:inline-flex;align-items:center;min-height:2rem;padding:.35rem .6rem;color:var(--ink);background:var(--cream-100);border:1px solid var(--line);border-radius:999px;font-size:.78rem;font-weight:800;text-decoration:none}.provider-list a:hover{border-color:var(--pine-700);color:var(--pine-900)}
@media (max-width:900px){.availability-editor-row{grid-template-columns:1fr 1fr}.availability-url-field{grid-column:1/-1}.availability-remove{justify-self:start}.episode-editor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.content-editor-nav{display:grid;grid-template-columns:1fr 1fr}.content-editor-nav a{justify-content:center}.editor-module-heading,.episode-editor-card-heading{align-items:stretch;flex-direction:column}.episode-editor-badges{justify-content:flex-start}.availability-editor-row,.episode-editor-grid{grid-template-columns:1fr}.availability-url-field{grid-column:auto}.editor-module-actions,.editor-module-actions .button{width:100%}.editor-module-actions{align-items:stretch;flex-direction:column}}

/* V1.10.2 · Cerca, filtres i auditoria visual global */
.catalog-filter-panel{display:grid;gap:1rem;margin-top:1.25rem;padding:clamp(1rem,2.4vw,1.4rem);background:var(--white);border:1px solid var(--line);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}
.catalog-search-form{display:grid;gap:.85rem}.catalog-search-form .field{margin:0}.catalog-search-field>label{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em}
.catalog-search-control{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.7rem;align-items:stretch}.catalog-search-control input{min-width:0}
.catalog-advanced{border-top:1px solid var(--line);padding-top:.85rem}.catalog-advanced>summary{width:max-content;max-width:100%;color:var(--pine-900);font-size:.86rem;font-weight:800;cursor:pointer;list-style:none}.catalog-advanced>summary::-webkit-details-marker{display:none}.catalog-advanced>summary::after{content:' +';color:var(--wine-700)}.catalog-advanced[open]>summary::after{content:' −'}
.catalog-advanced-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:1rem}.catalog-filter-actions{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:.2rem}
.catalog-watch-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:1rem;border-top:1px solid var(--line)}.catalog-watch-row>div{display:grid;gap:.15rem}.catalog-watch-row span{color:var(--muted);font-size:.84rem}
.catalog-results-section{padding-top:clamp(2rem,5vw,3.5rem)}.catalog-results-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.1rem}.catalog-results-heading p{margin:0;color:var(--muted);font-size:.9rem}.catalog-results-heading strong{color:var(--pine-950)}
.catalog-pagination{align-items:center}.pagination-gap{display:grid;place-items:center;min-width:2rem;min-height:2.5rem;color:var(--muted)}.pagination-direction{font-weight:900}.pagination-summary{margin:.65rem 0 0;color:var(--muted);font-size:.78rem;text-align:center}
.content-card .card-meta{gap:.45rem .7rem}.content-card .card-body{min-width:0}

/* Formularis: ritme més consistent i millor resposta en pantalles estretes. */
.form-card,.editor-module,.admin-panel{min-width:0}.field input,.field select,.field textarea,.inline-form select{border-color:#b8b5ab}.field input::placeholder,.field textarea::placeholder{color:#8a8f8c;opacity:1}.field textarea{min-height:7rem}.field small{line-height:1.45}
.availability-editor-row{grid-template-columns:minmax(180px,1fr) minmax(150px,.55fr) minmax(260px,1.25fr) auto;padding:1rem 1.05rem;gap:.9rem}.availability-editor-row .field label{min-height:1.4rem}.availability-remove{white-space:nowrap}
.editor-module{gap:1.25rem;padding:clamp(1.15rem,2.8vw,1.7rem)}.editor-module-actions{padding-top:.15rem}.episode-editor-card{padding:1.05rem}.episode-editor-form{gap:1rem}

/* Administració: menys sensació de blocs enganxats i taules més llegibles. */
.admin-panel+.admin-panel{margin-top:1.25rem}.panel-heading{padding:1.25rem 1.4rem}.table-scroll{scrollbar-width:thin}.table-scroll table{min-width:720px}.table-scroll th,.table-scroll td{vertical-align:top}.table-actions{align-items:center}.metric-grid{gap:1rem}

@media (max-width:900px){
  .catalog-advanced-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.catalog-watch-row{align-items:stretch;flex-direction:column}.catalog-watch-row .segmented-filter{width:100%}
  .availability-editor-row{grid-template-columns:1fr 1fr}.availability-url-field{grid-column:1/-1}.availability-remove{justify-self:start}
}
@media (max-width:640px){
  .catalog-filter-panel{border-radius:var(--radius-md)}.catalog-search-control{grid-template-columns:1fr}.catalog-search-control .button{width:100%}.catalog-advanced-grid{grid-template-columns:1fr}.catalog-filter-actions{display:grid;grid-template-columns:1fr}.catalog-filter-actions .button{width:100%}
  .catalog-results-heading{align-items:flex-start;flex-direction:column}.segmented-filter{overflow-x:auto;justify-content:flex-start}.segmented-filter a{flex:1 0 auto;min-width:6.2rem}
  .card-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem}.content-card .card-body{padding:.85rem}.content-card h3{font-size:1.05rem}.content-card .card-body>p{font-size:.82rem;line-height:1.5}.card-meta{font-size:.7rem}
  .availability-editor-row{grid-template-columns:1fr;padding:.9rem}.availability-url-field{grid-column:auto}.availability-remove{width:100%;justify-content:center}
  .panel-heading{align-items:flex-start;flex-direction:column;padding:1rem}.tmdb-panel-body,.panel-body-copy{padding:1rem}.admin-nav{padding-bottom:.2rem}
}
@media (max-width:420px){
  .card-grid{grid-template-columns:1fr}.content-card h3{font-size:1.2rem}.content-card .card-body>p{font-size:.88rem}.page-header-actions{display:grid;width:100%;grid-template-columns:1fr}.page-header-actions .button{width:100%}
}

/* V1.10.2 · reforç responsive transversal */
@media (max-width:680px){
  .notification-item{align-items:stretch;flex-direction:column}.notification-actions{align-items:stretch}.notification-actions .button,.notification-actions form,.notification-actions form .button{width:100%}
  .management-list li{align-items:flex-start;flex-direction:column}.management-list li>.button,.management-list li>form,.management-list li>form .button{width:100%}
  .idea-board-heading{align-items:flex-start;flex-direction:column}.calendar-filters{grid-template-columns:1fr!important}.calendar-filters .button{width:100%}
  .preference-row{grid-template-columns:1fr}.preference-row strong{grid-column:auto}.push-actions{align-items:stretch;flex-direction:column}.push-actions .button{width:100%}
}
