:root{--cw-navy:#38203f;--cw-accent:#bd2f68;--cw-accent-dark:#8e1e4d;--cw-paper:#f7f4f7;--cw-card:#fff;--cw-line:#e4dbe4;--cw-muted:#706775}
html{background:var(--cw-paper)}body{background:var(--cw-paper)}
.site-header{height:auto;min-height:72px;color:#fff;background:var(--cw-navy);border-bottom:4px solid #e06191;padding-top:10px;padding-bottom:10px}
.site-header .brand,.site-header nav a{color:#fff}.site-header nav{gap:3px;flex-wrap:wrap;justify-content:flex-end}.site-header nav a{padding:8px 10px;border-radius:8px;font-size:.82rem}.site-header nav a:hover,.site-header nav a[aria-current=page]{background:rgba(255,255,255,.14);box-shadow:inset 0 -2px 0 #f2a1bd}
.nav-logout{margin:0}.nav-logout button{min-height:38px;padding:7px 10px;color:#fff;background:transparent;border-color:rgba(255,255,255,.28);font-size:.82rem}.nav-logout button:hover{background:rgba(255,255,255,.14)}
.page-heading{max-width:1400px;margin:28px auto 20px;padding:26px 28px;background:linear-gradient(120deg,#f9e5ed,#fff 70%);border-left:5px solid var(--cw-accent)}
.page-heading h1{font-family:inherit;font-size:clamp(2rem,5vw,3.4rem);letter-spacing:-.035em;line-height:1.16;margin:.15em 0}.page-heading p{max-width:760px;margin:.3rem 0;color:var(--cw-muted)}
.content-shell{max-width:1400px;margin:auto;padding:0 20px 64px}.card-panel,.filter-panel{margin-bottom:20px;padding:20px;background:#fff;border:1px solid var(--cw-line);border-radius:12px;box-shadow:0 6px 24px rgba(56,32,63,.05)}
.filter-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px;align-items:start}.filter-panel .single-filter{display:grid;gap:5px;font-size:.86rem;font-weight:750}.filter-panel .choice-filter{background:#fff}.filter-panel .filter-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.filter-panel .filter-actions>*{min-width:150px}
.choice-filter{border-radius:7px}.choice-filter summary{border:1px solid #bdb1bd;border-radius:7px}.choice-filter[open]{position:relative}.choice-filter[open] fieldset{position:absolute;z-index:30;top:52px;left:0;width:max(100%,270px);max-width:min(420px,calc(100vw - 40px));padding:8px;background:#fff;border:1px solid var(--cw-line);border-radius:9px;box-shadow:0 14px 36px rgba(56,32,63,.2)}.choice-options{grid-template-columns:1fr;max-height:320px}.choice-option{border:0;border-radius:6px}.choice-option:hover{background:#fff0f5}
.favorite-only{display:flex;align-items:center;gap:9px;min-height:50px;padding:10px 12px;border:1px solid var(--cw-line);border-radius:8px;font-weight:750;background:#fff}.favorite-only input{width:21px;height:21px;min-height:21px;accent-color:var(--cw-accent)}
.ranking-weights{grid-column:1/-1;display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px!important;padding:16px!important;border:1px solid var(--cw-line)!important;border-radius:10px;background:#faf7fa}.ranking-weights legend{font-weight:800}.ranking-weights label{display:grid;gap:5px;padding:10px;background:#fff;border:1px solid var(--cw-line);border-radius:8px}.ranking-weights label span{display:flex;justify-content:space-between}.ranking-weights output{display:grid;place-items:center;width:26px;height:26px;color:#fff;background:var(--cw-accent);border-radius:50%}.ranking-weights input{min-height:28px;padding:0;accent-color:var(--cw-accent)}
.dashboard-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:20px 0}.dashboard-summary>div{display:grid;grid-template-columns:1fr auto;align-items:end;padding:14px 16px;background:#fff;border:1px solid var(--cw-line);border-top:4px solid var(--cw-accent);border-radius:9px}.dashboard-summary span{grid-column:1/-1;color:var(--cw-muted);font-size:.78rem;font-weight:750}.dashboard-summary strong{font-size:1.8rem}.dashboard-summary small{color:var(--cw-muted)}
.upgrade-callout{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:18px 0;padding:20px 22px;background:linear-gradient(120deg,#fff2f7,#fff);border:1px solid #e9b8ca;border-left:5px solid var(--cw-accent);border-radius:10px}.upgrade-callout p{margin:.2rem 0;color:var(--cw-muted)}
.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}.section-heading h2,.section-heading p{margin:0}.section-heading>span{color:var(--cw-muted)}
.ranking-list{display:grid;gap:10px}.ranking-card{display:grid;grid-template-columns:64px 96px minmax(0,1fr);gap:10px;padding:10px;border:1px solid var(--cw-line);border-radius:11px;background:#fff}.ranking-card:nth-child(-n+3){background:linear-gradient(105deg,#fff8ed,#fff 34%);border-color:#dfc889}.ranking-position{display:grid;place-items:center;align-content:center;min-height:132px;text-align:center;background:#f6eff5;border-radius:8px}.ranking-position span,.ranking-position small{color:var(--cw-muted);font-size:.68rem}.ranking-position strong{display:block;color:var(--cw-accent-dark);font-size:1.55rem;line-height:1.05}.ranking-photo{display:grid;min-height:132px;overflow:hidden;background:#eee8ee;border-radius:8px}.ranking-photo img{width:100%;height:100%;max-height:154px;object-fit:cover}.ranking-photo-empty{display:grid;place-items:center;color:var(--cw-muted)}.ranking-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"title title" "facts facts" "scores scores" "reason links";gap:6px 10px;min-width:0}.ranking-title{grid-area:title;display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.ranking-title>div{min-width:0}.ranking-title h3,.ranking-title p{margin:0}.ranking-title p{color:var(--cw-muted);font-size:.76rem;line-height:1.25}.ranking-facts{grid-area:facts;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin:0}.ranking-facts>span{display:grid;align-content:center;min-width:0;padding:5px 6px;background:#f8f5f8;border-radius:6px}.ranking-facts small{color:var(--cw-muted);font-size:.62rem}.ranking-facts strong{overflow-wrap:anywhere;font-size:.74rem;line-height:1.2}.score-breakdown{grid-area:scores;display:flex;flex-wrap:wrap;gap:4px}.score-breakdown span{padding:3px 7px;color:#5b3954;background:#f3e5ee;border-radius:999px;font-size:.66rem;font-weight:750}.ranking-reasons{grid-area:reason;align-self:center;margin:0;color:var(--cw-accent-dark);font-size:.72rem;font-weight:700;line-height:1.25}.ranking-links{grid-area:links;display:flex;align-items:center;justify-content:flex-end;gap:6px;flex-wrap:wrap}.ranking-links .button{min-height:32px;padding:5px 8px;font-size:.7rem}
.complete-cast-name,.profile-name,.table-cast-name{overflow:visible!important;text-overflow:clip!important;white-space:normal!important;overflow-wrap:anywhere;word-break:break-word;line-break:strict}.complete-cast-name{font-size:clamp(1rem,1.6vw,1.35rem)!important;line-height:1.28}.table-cast-name{display:block;max-width:18rem;font-size:clamp(.82rem,1.1vw,1rem);line-height:1.35}
.complete-cast-name.name-size-long{font-size:clamp(.86rem,1.3vw,1.08rem)!important;line-height:1.32}.complete-cast-name.name-size-xlong{font-size:clamp(.74rem,1.05vw,.94rem)!important;line-height:1.38;letter-spacing:-.025em}
.profile-name.name-size-long{font-size:clamp(1.8rem,5vw,3.7rem)!important}.profile-name.name-size-xlong{font-size:clamp(1.45rem,4vw,2.8rem)!important;line-height:1.18!important}.profile-availability{display:grid;gap:3px;margin:18px 0;padding:16px;border:1px solid #e6b4c8;border-left:5px solid var(--cw-accent);border-radius:9px;background:#fff5f8}.profile-availability span,.profile-availability small{color:var(--cw-muted);font-size:.75rem}.profile-availability strong{color:var(--cw-accent-dark);font-size:1.35rem}.profile-availability p{margin:0;font-weight:750}.profile-availability.is-unknown{border-color:var(--cw-line);border-left-color:var(--cw-muted);background:#faf8fa}
.cast-catalog-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:14px}.catalog-card{overflow:hidden;background:#fff;border:1px solid var(--cw-line);border-radius:11px}.catalog-photo{display:block;background:#eee8ee}.catalog-photo img,.catalog-photo-empty{display:grid;place-items:center;width:100%;aspect-ratio:3/4;object-fit:cover;color:var(--cw-accent-dark);font-size:3rem}.catalog-body{display:grid;gap:9px;padding:14px}.catalog-body h2,.catalog-body p{margin:0}.catalog-store{font-size:.88rem}.catalog-store span{display:block;color:var(--cw-muted);font-size:.76rem}.catalog-facts{display:flex;flex-wrap:wrap;gap:5px}.catalog-facts span{padding:3px 7px;background:#f6eff5;border-radius:999px;font-size:.7rem}.catalog-links{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;font-size:.8rem}
.favorite-form{margin:0}.favorite-button,.favorite-login{min-height:40px;padding:7px 10px;border-radius:8px;font-size:.76rem;white-space:nowrap}.favorite-button{background:#fff;color:var(--cw-accent-dark);border:1px solid #dca9bd}.favorite-button:hover,.favorite-button.is-favorite{background:#fff0f5;color:var(--cw-accent-dark)}.favorite-login{display:inline-flex;align-items:center;color:var(--cw-accent-dark);font-weight:700}
.table-scroll{max-height:min(72vh,900px);overflow:auto}.availability-table{width:100%;min-width:1100px;border-collapse:collapse;font-size:.84rem}.availability-table th,.availability-table td{padding:11px 10px;text-align:left;vertical-align:top;border-bottom:1px solid var(--cw-line)}.availability-table th{position:sticky;z-index:2;top:0;background:#f4edf3;color:#554b57;white-space:nowrap}.availability-table tbody tr:nth-child(even){background:#fcfafc}.availability-table tbody tr:hover{background:#fff3f7}.availability-table small{display:block;color:var(--cw-muted)}.cast-thumb{width:64px;height:82px;object-fit:cover;border-radius:7px}.next-available{color:var(--cw-accent-dark);font-size:1.05rem}.status-badge{display:inline-block;padding:4px 7px;background:#f5eaf1;border-radius:999px;font-size:.72rem;font-weight:750}
.availability-heading{align-items:center}.view-switch{display:flex;align-items:center;justify-content:flex-end;gap:7px;flex-wrap:wrap}.view-switch button{min-height:38px;padding:6px 11px;font-size:.76rem}.view-switch button[aria-pressed=true]{color:#fff;background:var(--cw-accent);border-color:var(--cw-accent)}.compact-label{display:none}.schedule-panel[data-view=compact] .normal-only{display:none}.schedule-panel[data-view=compact] .availability-table{min-width:690px}.schedule-panel[data-view=compact] .availability-table th,.schedule-panel[data-view=compact] .availability-table td{padding:7px 6px}.schedule-panel[data-view=compact] .cast-thumb{width:48px;height:62px}.schedule-panel[data-view=compact] .favorite-button,.schedule-panel[data-view=compact] .favorite-login{min-height:34px;padding:4px 7px}
.compact-only{display:none}.schedule-panel[data-view=compact] .compact-only{display:block}.compact-bust{font-weight:750;color:var(--cw-text)}.compact-official-link{font-size:.72rem}.compact-official-link a{font-weight:800;text-decoration:underline;text-underline-offset:2px}
.availability-facts{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}.availability-facts span{display:inline-flex;padding:2px 6px;border-radius:999px;background:#f4edf3;color:#554b57;font-size:.67rem;line-height:1.35}.schedule-panel[data-view=compact] .availability-facts{gap:3px}.schedule-panel[data-view=compact] .availability-facts span{padding:1px 4px;font-size:.6rem}
@media(max-width:900px){.site-header{align-items:flex-start;flex-wrap:wrap}.site-header nav{max-width:100%;overflow:visible;flex-wrap:wrap;justify-content:flex-start}.site-header nav a{white-space:normal}.ranking-weights{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ranking-card{grid-template-columns:58px 82px minmax(0,1fr)}.ranking-position,.ranking-photo{min-height:112px}.ranking-facts{grid-template-columns:repeat(3,minmax(0,1fr))}.ranking-summary{grid-template-areas:"title title" "facts facts" "scores scores" "reason reason" "links links"}.ranking-links{justify-content:flex-start}}
@media(max-width:620px){.page-heading{margin-top:14px;padding:20px}.content-shell{padding-inline:12px}.filter-panel,.card-panel{padding:14px}.ranking-weights{grid-template-columns:1fr}.upgrade-callout{align-items:stretch;display:grid}.ranking-card{grid-template-columns:48px 70px minmax(0,1fr);gap:7px;padding:8px;overflow:hidden}.ranking-position{grid-column:1;grid-row:1;min-height:92px}.ranking-photo{grid-column:2;grid-row:1;min-height:92px}.ranking-photo img{max-height:112px}.ranking-summary{display:contents}.ranking-title{grid-column:3;grid-row:1;display:grid;align-content:start;gap:4px;min-width:0}.ranking-title p{font-size:.68rem}.ranking-title .favorite-button,.ranking-title .favorite-login{width:auto;min-height:28px;padding:3px 6px;justify-self:start;font-size:.62rem}.ranking-facts{grid-column:1/-1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px}.ranking-facts>span{padding:4px 5px}.ranking-facts small{font-size:.58rem}.ranking-facts strong{font-size:.69rem}.score-breakdown{grid-column:1/-1;grid-row:3;gap:3px}.score-breakdown span{padding:2px 6px;font-size:.62rem}.ranking-reasons{grid-column:1/-1;grid-row:4;font-size:.68rem}.ranking-links{grid-column:1/-1;grid-row:5;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.ranking-links .button{width:auto;min-width:0;min-height:30px;padding:4px 5px;font-size:.64rem;text-align:center;white-space:normal}.cast-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.catalog-body{padding:10px}.favorite-button,.favorite-login{width:100%;justify-content:center;white-space:normal}.dashboard-summary>div{padding:10px}.dashboard-summary strong{font-size:1.45rem}}
@media(max-width:760px){.schedule-panel[data-view=compact] .table-scroll{max-height:none;overflow:visible}.schedule-panel[data-view=compact] .availability-table,.schedule-panel[data-view=compact] .availability-table tbody{display:block;min-width:0}.schedule-panel[data-view=compact] .availability-table thead{display:none}.schedule-panel[data-view=compact] .availability-table tr{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:5px 9px;margin-bottom:9px;padding:9px;border:1px solid var(--cw-line);border-radius:9px;background:#fff}.schedule-panel[data-view=compact] .availability-table td{display:block;padding:0;border:0}.schedule-panel[data-view=compact] .availability-photo{grid-column:1;grid-row:1/5}.schedule-panel[data-view=compact] .availability-person{grid-column:2;grid-row:1}.schedule-panel[data-view=compact] .availability-next{grid-column:3;grid-row:1;text-align:right}.schedule-panel[data-view=compact] .availability-status{grid-column:2/4;grid-row:2}.schedule-panel[data-view=compact] .availability-today{grid-column:2;grid-row:3;font-size:.76rem}.schedule-panel[data-view=compact] .availability-favorite{grid-column:3;grid-row:3}.schedule-panel[data-view=compact] .cast-thumb{width:56px;height:72px}.schedule-panel[data-view=compact] .compact-label{display:block;color:var(--cw-muted);font-size:.65rem}.schedule-panel[data-view=compact] .table-cast-name{max-width:none;font-size:clamp(.78rem,3.4vw,.94rem)}.schedule-panel[data-view=compact] .availability-person>small:nth-of-type(2){display:none}.schedule-panel[data-view=compact] .favorite-button,.schedule-panel[data-view=compact] .favorite-login{width:auto;min-height:32px;font-size:.68rem}.availability-heading{align-items:flex-start}.view-switch{justify-content:flex-start}}
@media(max-width:760px){.site-header{height:auto;min-height:64px;padding:12px 16px;align-items:flex-start;flex-direction:column;gap:9px}.site-header nav{width:100%;max-width:100%;gap:5px 7px;overflow:visible;flex-wrap:wrap}.site-header nav a{display:inline-flex!important;padding:6px 8px;white-space:normal}.nav-logout{display:inline-flex}.nav-logout button{min-height:34px}}
.legal-page{max-width:960px}.legal-page h2{margin:2rem 0 .5rem;font-size:1.25rem}.legal-page h2:first-child{margin-top:0}.legal-page p,.legal-page li{color:#463e49}.legal-page strong{color:var(--cw-accent-dark)}.contact-card{max-width:720px;margin-inline:auto}.contact-card form{display:grid;gap:16px}.contact-card label{display:grid;gap:6px;font-weight:750}.contact-card textarea{width:100%;resize:vertical;min-height:180px;padding:12px;border:1px solid var(--cw-line);border-radius:10px;font:inherit}.admin-section-nav{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:16px}.contact-admin-list{display:grid;gap:12px}.contact-admin-item{margin-bottom:0}.contact-admin-item header{display:flex;justify-content:space-between;gap:12px}.contact-admin-item header>div{display:flex;align-items:center;gap:8px}.contact-admin-item .contact-body{white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#faf7fa;border-radius:8px}.contact-admin-item form{display:flex;gap:8px;flex-wrap:wrap}
.schedule-panel[data-view=normal] .cast-thumb{width:128px;height:164px}
.analysis-method{padding:0}.analysis-method summary{padding:16px 20px;cursor:pointer;font-weight:800}.analysis-method p{margin:0;padding:0 20px 20px;color:var(--cw-muted)}.analysis-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin:18px 0}.analysis-grid .card-panel{margin:0}.distribution-card:last-child{grid-column:1/-1}.bar-chart{display:grid;gap:10px}.bar-row{display:grid;grid-template-columns:minmax(7rem,1.1fr) minmax(100px,2fr) 2.2rem 3rem;align-items:center;gap:9px}.bar-label{min-width:0;overflow-wrap:anywhere;font-size:.8rem;font-weight:750}.bar-track{height:12px;overflow:hidden;border-radius:999px;background:#eee7ee}.bar-track span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--cw-accent-dark),#e06191)}.bar-row strong,.bar-row small{text-align:right}.bar-row small{color:var(--cw-muted);font-size:.72rem}
@media(max-width:620px){.analysis-grid{grid-template-columns:1fr}.distribution-card:last-child{grid-column:auto}.bar-row{grid-template-columns:minmax(5.7rem,1fr) minmax(70px,1.5fr) 1.8rem}.bar-row small{display:none}}
.decision-presets{grid-column:1/-1;padding:15px;border:1px solid var(--cw-line);border-radius:10px;background:#faf7fa}.decision-presets legend{font-weight:850}.decision-presets p{margin:0 0 10px;color:var(--cw-muted);font-size:.82rem}.decision-presets>div{display:flex;gap:8px;flex-wrap:wrap}.decision-presets button{min-height:40px;padding:7px 12px}.decision-presets button.is-selected{color:#fff;background:var(--cw-accent);border-color:var(--cw-accent)}.preference-tuning{grid-column:1/-1;border:1px solid var(--cw-line);border-radius:10px;background:#fff}.preference-tuning>summary{padding:14px 16px;cursor:pointer;font-weight:800}.preference-tuning .ranking-weights{margin:0 14px 14px}.decision-shortlist{border-top:4px solid var(--cw-accent)}.shortlist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.shortlist-grid article{display:grid;grid-template-columns:86px minmax(0,1fr);gap:11px;padding:11px;border:1px solid var(--cw-line);border-radius:9px;background:#faf8fa}.shortlist-photo{display:grid;min-height:112px;overflow:hidden;border-radius:7px;background:#eee7ee}.shortlist-photo img{width:100%;height:100%;object-fit:cover}.shortlist-photo span{display:grid;place-items:center;color:var(--cw-accent-dark);font-size:2rem}.shortlist-grid h3,.shortlist-grid p{margin:.2rem 0}.shortlist-grid small{color:var(--cw-muted)}.shortlist-grid p{font-size:.78rem}.shortlist-grid .button{min-height:36px;padding:6px 9px;font-size:.75rem}
@media(max-width:900px){.shortlist-grid{grid-template-columns:1fr}.shortlist-grid article{grid-template-columns:76px minmax(0,1fr)}.shortlist-photo{min-height:98px}}
@media(max-width:620px){.decision-presets>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.decision-presets button{width:100%;white-space:normal}.preference-tuning .ranking-weights{margin:0 8px 8px}.decision-shortlist .section-heading{align-items:flex-start}.shortlist-grid article{grid-template-columns:70px minmax(0,1fr);padding:8px}.shortlist-photo{min-height:92px}}
.ranking-bust{display:inline-block;margin-left:.35rem;padding:1px 5px;color:var(--cw-accent-dark);background:#f3e5ee;border-radius:999px;font-weight:750;white-space:nowrap}.shortlist-grid .shortlist-bust{display:inline-block;margin:.1rem 0 .25rem;padding:2px 6px;color:var(--cw-accent-dark);background:#f3e5ee;border-radius:999px;font-weight:750}
/* Dense ranking card: portrait at left, every comparison value at right. */
.ranking-card{position:relative;grid-template-columns:108px minmax(0,1fr);gap:12px;max-width:100%;padding:10px;overflow:hidden}.ranking-position{position:absolute;z-index:1;top:14px;left:14px;width:45px;min-height:0;padding:3px 2px;background:rgba(255,255,255,.92);box-shadow:0 2px 8px rgba(56,32,63,.16);backdrop-filter:blur(3px)}.ranking-position span,.ranking-position small{font-size:.6rem}.ranking-position strong{font-size:1.38rem}.ranking-photo{grid-column:1;min-height:0;height:166px;align-self:start}.ranking-photo img{max-height:none}.ranking-summary{grid-column:2;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "facts" "scores" "reason" "links";gap:5px;min-width:0}.ranking-title{grid-area:title;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:7px;min-width:0}.ranking-title .favorite-button,.ranking-title .favorite-login{width:auto;min-height:30px;padding:4px 7px;font-size:.66rem}.ranking-facts{grid-area:facts;display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin:0}.ranking-facts>span{display:inline-flex;align-items:baseline;gap:3px;min-width:0;padding:2px 5px;background:#f8f5f8;border-radius:5px}.ranking-facts small{font-size:.59rem;white-space:nowrap}.ranking-facts strong{font-size:.7rem;line-height:1.2}.score-breakdown{grid-area:scores;gap:4px}.score-breakdown span{padding:3px 7px;font-size:.65rem;background:#e9f1f1}.ranking-reasons{grid-area:reason;margin:0;font-size:.7rem;line-height:1.28}.ranking-links{grid-area:links;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;justify-content:stretch}.ranking-links .button{width:auto;min-width:0;min-height:31px;padding:4px 6px;text-align:center;white-space:normal}.ranking-card:nth-child(-n+3){border-color:#d6bd62;box-shadow:0 3px 12px rgba(137,109,25,.08)}
@media(max-width:620px){.ranking-card{grid-template-columns:96px minmax(0,1fr);gap:9px;padding:8px}.ranking-position{top:11px;left:11px;width:42px}.ranking-photo{grid-column:1;grid-row:1;height:154px;min-height:0}.ranking-summary{grid-column:2;grid-row:1;display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "facts" "scores" "reason" "links";gap:4px}.ranking-title{grid-area:title;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px}.ranking-title p{font-size:.64rem}.ranking-title .favorite-button,.ranking-title .favorite-login{width:auto;min-height:27px;padding:3px 5px;font-size:.59rem}.ranking-bust{margin-left:.15rem;padding:1px 4px}.ranking-facts{grid-area:facts;display:flex;gap:3px}.ranking-facts>span{padding:2px 4px}.ranking-facts small{font-size:.55rem}.ranking-facts strong{font-size:.65rem}.score-breakdown{grid-area:scores;gap:3px}.score-breakdown span{padding:2px 5px;font-size:.59rem}.ranking-reasons{grid-area:reason;font-size:.64rem}.ranking-links{grid-area:links;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}.ranking-links .button{width:auto;min-height:28px;padding:3px 4px;font-size:.59rem}}

/* Mobile availability cards keep current status and the next bookable time together. */
@media(max-width:760px){.schedule-panel[data-view=compact] .availability-table tr{grid-template-columns:94px minmax(0,1fr);gap:10px;padding:14px}.schedule-panel[data-view=compact] .availability-photo{grid-column:1;grid-row:1;align-self:start}.schedule-panel[data-view=compact] .availability-person{grid-column:2;grid-row:1;min-width:0}.schedule-panel[data-view=compact] .availability-table td.availability-next,.schedule-panel[data-view=compact] .availability-table td.availability-status,.schedule-panel[data-view=compact] .availability-table td.availability-today,.schedule-panel[data-view=compact] .availability-table td.availability-favorite,.schedule-panel[data-view=compact] .availability-table td.normal-only{display:none!important}.schedule-panel[data-view=compact] .cast-thumb{width:94px;height:126px;border-radius:9px}.schedule-panel[data-view=compact] .availability-store-name{font-weight:750}.schedule-panel[data-view=compact] .availability-live-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:8px;margin-top:12px}.availability-live{display:grid;gap:7px}.availability-live p{display:flex;align-items:baseline;gap:7px;margin:0}.availability-live p small{font-size:.72rem}.availability-live p strong{font-size:.92rem}.schedule-panel[data-view=compact] .compact-bust{align-self:center;padding:8px 9px;border-radius:8px;background:#f1f5f6;color:#42505a;font-size:.75rem;white-space:nowrap}.schedule-panel[data-view=compact] .availability-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center;gap:8px;margin-top:12px}.availability-card-actions .compact-official-link,.availability-card-actions .favorite-login,.availability-card-actions .favorite-button{display:inline-flex;align-items:center;justify-content:center;min-height:36px;font-weight:800;text-align:center}.availability-card-actions .favorite-form{display:block}}
@media(max-width:440px){.schedule-panel[data-view=compact] .availability-table tr{grid-template-columns:84px minmax(0,1fr);gap:9px;padding:11px}.schedule-panel[data-view=compact] .cast-thumb{width:84px;height:114px}.schedule-panel[data-view=compact] .compact-bust{padding:5px 7px;font-size:.68rem}.schedule-panel[data-view=compact] .availability-card-actions{grid-template-columns:1fr 1fr}}
/* Keep rank readable above the portrait instead of covering the image. */
.ranking-position{position:static;grid-column:1;grid-row:1;width:auto;min-height:44px;padding:4px 3px;box-shadow:none;backdrop-filter:none}.ranking-photo{grid-column:1;grid-row:2;height:132px}.ranking-summary{grid-column:2;grid-row:1/3}
@media(max-width:620px){.ranking-position{grid-column:1;grid-row:1;width:auto;min-height:42px}.ranking-photo{grid-column:1;grid-row:2;height:124px}.ranking-summary{grid-column:2;grid-row:1/3}}
.favorite-bulk-form{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:4px 0 14px}.favorite-bulk-form button{min-height:40px;padding:7px 12px;font-size:.86rem}.favorite-select{display:inline-flex;align-items:center;flex:0 0 auto;gap:6px;color:var(--cw-muted);font-size:.78rem;font-weight:750;cursor:pointer}.favorite-select input{width:20px;height:20px;min-height:20px;accent-color:var(--cw-accent)}.favorite-card .favorite-card-link{flex:1;min-width:0}.favorite-card .favorite-select span{white-space:nowrap}
@media(max-width:620px){.favorite-bulk-form{justify-content:stretch}.favorite-bulk-form button{width:100%}.favorite-select{font-size:.72rem}.favorite-select input{width:19px;height:19px;min-height:19px}}
.region-choice-options{display:block;max-height:360px;padding:4px;overflow-y:auto;overscroll-behavior:contain}.region-choice-all{position:sticky;z-index:2;top:0;border-bottom:1px solid var(--cw-line)!important;background:#fff!important;font-weight:850}.region-choice-group{border-bottom:1px solid var(--cw-line)}.region-choice-group:last-child{border-bottom:0}.region-choice-group-toggle{background:#f4f7f8!important;color:#38203f;font-weight:850}.region-choice-group-toggle small{margin-left:auto;color:var(--cw-muted);font-size:.65rem;font-weight:650}.region-choice-items{display:grid;padding:3px 0 5px 14px}.region-choice-child:before{width:9px;height:10px;flex:0 0 9px;margin-left:3px;border-bottom:2px solid #b8adb8;border-left:2px solid #b8adb8;content:"";transform:translateY(-2px)}.grouped-choice-filter[open] fieldset{width:max(100%,320px)}@media(max-width:620px){.region-choice-options{max-height:340px}.grouped-choice-filter[open] fieldset{left:0;width:min(390px,calc(100vw - 48px));max-width:calc(100vw - 48px)}.region-choice-group-toggle small{font-size:.6rem}.region-choice-items{padding-left:10px}}

/* Crawlable official landing page: fast SSR content without client-side rendering. */
.seo-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:28px;max-width:1400px;margin:28px auto;padding:36px 28px;background:linear-gradient(125deg,#f9e5ed,#fff 64%);border:1px solid var(--cw-line);border-radius:18px}.seo-hero-copy{align-self:center;max-width:790px}.seo-hero h1{margin:.08em 0;font-size:clamp(3.2rem,9vw,7rem);letter-spacing:-.065em;line-height:.95}.seo-lead{max-width:760px;color:#4b424e;font-size:clamp(1rem,2vw,1.25rem);line-height:1.8}.seo-actions,.seo-link-list{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}.seo-search-card{display:grid;gap:13px;padding:24px;background:#fff;border:1px solid #dfcad6;border-radius:14px;box-shadow:0 12px 34px rgba(56,32,63,.1)}.seo-search-card h2,.seo-search-card p{margin:0}.seo-search-card>label{display:grid;gap:6px;font-weight:800}.seo-search-card fieldset{display:grid;gap:8px;padding:12px;border:1px solid var(--cw-line);border-radius:9px}.seo-search-card fieldset label{display:flex;align-items:center;gap:8px}.seo-search-card input[type=checkbox]{width:20px;height:20px;min-height:20px;accent-color:var(--cw-accent)}.seo-content{max-width:1400px;margin:auto;padding:0 20px 64px}.seo-section{margin:20px 0;padding:30px;background:#fff;border:1px solid var(--cw-line);border-radius:14px}.seo-section>h2{margin:.15rem 0 1rem;font-size:clamp(1.6rem,3vw,2.35rem)}.seo-section>p{max-width:940px;line-height:1.8}.seo-feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.seo-feature-grid article{padding:20px;background:#faf7fa;border:1px solid var(--cw-line);border-radius:11px}.seo-feature-grid h2,.seo-feature-grid h3{margin:.1rem 0 .6rem}.seo-feature-grid p{line-height:1.65}.seo-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:0;counter-reset:step;list-style:none}.seo-steps li{display:grid;gap:6px;padding:18px;background:#faf7fa;border-radius:10px;counter-increment:step}.seo-steps li:before{color:var(--cw-accent-dark);font-size:.78rem;font-weight:850;content:"STEP " counter(step)}.seo-steps span{color:var(--cw-muted)}.seo-faq{display:grid;gap:10px}.seo-faq details{background:#faf7fa;border:1px solid var(--cw-line);border-radius:10px}.seo-faq summary{padding:16px 18px;cursor:pointer;font-weight:850}.seo-faq details p{margin:0;padding:0 18px 18px;line-height:1.7}.seo-service{border-left:5px solid var(--cw-accent)}.seo-feature-page{max-width:1400px;grid-template-columns:repeat(2,minmax(0,1fr))}.seo-faq-page details{background:#fff}
@media(max-width:820px){.seo-hero{grid-template-columns:1fr;margin:14px 12px;padding:24px 18px}.seo-feature-grid,.seo-steps{grid-template-columns:1fr}.seo-feature-page{grid-template-columns:1fr}.seo-content{padding-inline:12px}.seo-section{padding:22px 18px}.seo-actions{display:grid}.seo-actions .button{width:100%;text-align:center}}
.account-close-link{border-left:5px solid #a52a45}.account-close-card{border-top:5px solid #a52a45}.account-close-card form{display:grid;gap:16px}.account-close-card form>label{display:grid;gap:6px;font-weight:750}.account-close-card .account-close-confirm{display:flex;align-items:flex-start;gap:9px}.account-close-confirm input{width:21px;height:21px;min-height:21px;accent-color:#a52a45}.danger-button{color:#fff;background:#a52a45;border-color:#7f1831}.danger-button:hover{background:#7f1831}

/* Analysis ranking cards: generous white surfaces with a clear left score rail. */
.ranking-list{gap:16px}
.ranking-card{display:grid;grid-template-columns:minmax(118px,16%) minmax(0,1fr);gap:22px;align-items:stretch;padding:18px;background:#fff;border:1px solid #e4dfe2;border-radius:18px;box-shadow:0 8px 24px rgba(56,32,63,.07);overflow:hidden}
.ranking-card:nth-child(-n+3){background:#fff;border-color:#ead9e1;box-shadow:0 8px 24px rgba(56,32,63,.08)}
.ranking-aside{display:grid;grid-template-rows:auto 1fr;gap:12px;min-width:0}
.ranking-position{display:grid;place-items:center;align-content:center;min-height:92px;padding:10px 8px;background:#fff8fb;border:1px solid #edd4e0;border-radius:12px;text-align:center}
.ranking-position span{color:var(--cw-accent-dark);font-size:clamp(.95rem,1.7vw,1.2rem);font-weight:850;line-height:1.15}
.ranking-position strong{color:var(--cw-accent-dark);font-size:clamp(2rem,4vw,3rem);line-height:1.02}
.ranking-position small{color:var(--cw-muted);font-size:.78rem;font-weight:750}
.ranking-photo{display:grid;aspect-ratio:3/4;min-height:0;height:auto;overflow:hidden;background:#f0ebef;border-radius:13px}
.ranking-photo img{width:100%;height:100%;max-height:none;object-fit:cover}
.ranking-photo-empty{display:grid;place-items:center;min-height:170px;color:var(--cw-muted);font-size:.9rem}
.ranking-summary{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:"title" "status" "facts" "scores" "reason" "links";gap:10px;align-content:start;min-width:0}
.ranking-title{grid-area:title;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.ranking-title>div{min-width:0}
.ranking-title h3{margin:0;color:var(--cw-accent-dark);font-size:clamp(1.3rem,2.4vw,2rem);font-weight:850;line-height:1.28}
.ranking-title p{margin:5px 0 8px;color:var(--cw-text-secondary,var(--cw-muted));font-size:clamp(.9rem,1.5vw,1.05rem);line-height:1.35}
.ranking-bust{margin:0;padding:4px 10px;font-size:.9rem}
.ranking-title .favorite-button,.ranking-title .favorite-login{width:auto;min-height:42px;padding:8px 12px;font-size:.82rem;white-space:nowrap}
.ranking-status{grid-area:status;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:11px 16px;border:1px solid #ded9dd;border-radius:12px;background:#fff;font-size:1.08rem}
.ranking-status.is-waiting{border-color:#afd2bc;background:#f3fbf5;color:#16723d}
.ranking-status.is-next{border-color:#e5b8cc;background:#fff7fb;color:var(--cw-accent-dark)}
.ranking-status.is-unknown{background:#faf9fa;color:var(--cw-muted)}
.ranking-status-icon{font-size:1.45rem;line-height:1}
.ranking-status-label{font-weight:800;letter-spacing:.01em}
.ranking-status strong:not(.ranking-status-source){font-size:clamp(1.05rem,2vw,1.4rem);font-weight:850;line-height:1.2;text-align:right;overflow-wrap:anywhere}
.ranking-facts{grid-area:facts;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.ranking-facts>span{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;min-width:0;padding:11px 13px;border:1px solid #e5e1e4;border-radius:10px;background:#fff}
.ranking-facts small{color:var(--cw-muted);font-size:.8rem;white-space:nowrap}
.ranking-facts strong{font-size:clamp(.9rem,1.6vw,1.1rem);line-height:1.3;overflow-wrap:anywhere}
.score-breakdown{grid-area:scores;gap:5px}
.score-breakdown span{padding:4px 9px;font-size:.72rem}
.ranking-reasons{grid-area:reason;margin:0;color:var(--cw-accent-dark);font-size:.82rem;line-height:1.35}
.ranking-links{grid-area:links;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;justify-content:stretch}
.ranking-links .button{width:auto;min-height:44px;padding:8px 12px;font-size:.9rem;text-align:center;white-space:normal}
.ranking-links .button.secondary{color:var(--cw-accent-dark);border-color:#d49ab1;background:#fff}
.ranking-status-source{display:none!important;animation:none!important}
@media(max-width:760px){.ranking-card{grid-template-columns:96px minmax(0,1fr);gap:13px;padding:13px;border-radius:15px}.ranking-position{min-height:76px;padding:8px 5px}.ranking-position span{font-size:.9rem}.ranking-position strong{font-size:2rem}.ranking-position small{font-size:.7rem}.ranking-aside{gap:9px}.ranking-photo{border-radius:10px}.ranking-title{gap:8px}.ranking-title h3{font-size:clamp(1.05rem,4.5vw,1.45rem)}.ranking-title p{font-size:.82rem}.ranking-title .favorite-button,.ranking-title .favorite-login{min-height:36px;padding:6px 8px;font-size:.68rem;white-space:normal}.ranking-bust{padding:3px 8px;font-size:.78rem}.ranking-status{min-height:50px;padding:9px 11px;gap:7px;font-size:.95rem}.ranking-status-icon{font-size:1.2rem}.ranking-status strong:not(.ranking-status-source){font-size:1.05rem}.ranking-facts{grid-template-columns:1fr;gap:6px}.ranking-facts>span{padding:9px 10px}.ranking-facts small{font-size:.72rem}.ranking-facts strong{font-size:.88rem}.ranking-links{gap:6px}.ranking-links .button{min-height:40px;padding:7px 8px;font-size:.78rem}}
@media(max-width:430px){.ranking-card{grid-template-columns:82px minmax(0,1fr);gap:10px;padding:10px}.ranking-position{min-height:68px}.ranking-position strong{font-size:1.75rem}.ranking-position span{font-size:.8rem}.ranking-position small{font-size:.64rem}.ranking-title{display:grid;grid-template-columns:minmax(0,1fr);gap:5px}.ranking-title .favorite-button,.ranking-title .favorite-login{justify-self:start;width:auto}.ranking-status{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon label value";align-items:center}.ranking-status-icon{grid-area:icon}.ranking-status-label{grid-area:label;white-space:nowrap}.ranking-status strong:not(.ranking-status-source){grid-area:value;text-align:right;font-size:.95rem;white-space:nowrap}.ranking-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}.ranking-links .button{min-height:44px;padding:6px 3px;font-size:.72rem;line-height:1.2}}

/* Availability listing: card-first layout shared by desktop and narrow screens. */
.card-panel.availability-results{padding:0;border:0;background:transparent;box-shadow:none}
.availability-card-list{display:grid;gap:14px;min-width:0}
.availability-card{display:grid;gap:0;min-width:0;padding:22px 24px 16px;background:#fff;border:1px solid #eadfe5;border-radius:20px;box-shadow:0 7px 22px rgba(56,32,63,.07)}
.availability-card-main{display:grid;grid-template-columns:minmax(128px,24%) minmax(0,1fr);gap:24px;min-width:0}
.availability-card-photo{display:grid;place-items:center;aspect-ratio:3/4;min-height:174px;overflow:hidden;background:#f1e9ef;border-radius:16px;color:var(--cw-accent-dark);text-decoration:none}
.availability-card-photo img{display:block;width:100%;height:100%;object-fit:cover}
.availability-card-avatar{font-size:3rem;font-weight:850}
.availability-card-info{display:grid;align-content:start;gap:13px;min-width:0;padding-top:1px}
.availability-card-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;min-width:0}
.availability-card-title{min-width:0}
.availability-card-name{margin:0;color:#231f24;font-size:clamp(1.35rem,2.6vw,2rem);font-weight:850;line-height:1.22;overflow-wrap:anywhere}
.availability-card-name a{color:inherit;text-decoration:none}
.availability-card-name a:hover{text-decoration:underline;text-underline-offset:3px}
.availability-card-store{display:flex;align-items:baseline;gap:5px;margin:7px 0 0;color:#453b45;font-size:clamp(.84rem,1.45vw,1.06rem);line-height:1.35;overflow-wrap:anywhere}
.availability-card-store span{color:#2e2930;font-size:1.22em;line-height:1}
.availability-card-cup{flex:0 0 auto;padding:9px 14px;border:1px solid #efbfd3;border-radius:10px;color:#c22668;background:#fff;font-size:clamp(.78rem,1.4vw,.96rem);font-weight:800;white-space:nowrap}
.availability-card-tags{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
.availability-card-tags span,.availability-card-area{margin:0;padding:8px 12px;border-radius:9px;background:#faf5f8;color:#342d34;font-size:.86rem;line-height:1.35;overflow-wrap:anywhere}
.availability-card-tags b,.availability-card-area b{margin-right:7px;font-weight:850}
.availability-card-area{width:fit-content;max-width:100%;background:#faf5f8}
.availability-card-slot{display:flex;min-width:0;min-height:42px;align-items:center}
.availability-slot{display:inline-flex;align-items:center;gap:7px;max-width:100%;padding:9px 14px;border-radius:11px;font-size:1rem;font-weight:800;line-height:1.2;overflow-wrap:anywhere}
.availability-slot strong{font-size:1.08em;font-weight:850}
.availability-slot-waiting{background:#e5f5e9;color:#197640}
.availability-slot-next{background:#fff0e3;color:#e36a16}
.availability-slot-unknown{background:#f5f1f4;color:#6f6470;font-size:.86rem}
.availability-card-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;min-width:0;margin-top:20px;padding-top:15px;border-top:1px solid #e9e1e6}
.availability-card-shift{display:flex;align-items:baseline;flex:1 1 auto;gap:9px;min-width:0;margin:0;color:#2e2930;font-size:1rem;white-space:nowrap}
.availability-card-shift span{font-size:.92rem}.availability-card-shift strong{font-size:clamp(1rem,2vw,1.35rem);letter-spacing:.02em}
.availability-card-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px;flex:0 1 48%;min-width:0}
.availability-card-actions .favorite-form{display:block;min-width:0;margin:0}
.availability-card-actions .favorite-button,.availability-card-actions .favorite-login,.availability-cityheaven{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:48px;padding:9px 13px;border-radius:10px;font-size:.9rem;font-weight:850;line-height:1.2;text-align:center;white-space:normal;overflow-wrap:anywhere}
.availability-card-actions .favorite-button,.availability-card-actions .favorite-login{border:1px solid #dd6e9d;color:#c22668;background:#fff;text-decoration:none}
.availability-card-actions .favorite-button:hover,.availability-card-actions .favorite-login:hover{color:#a51b55;background:#fff0f5;border-color:#c22668}
.availability-cityheaven{border:1px solid #c22668;color:#fff;background:#c22668;text-decoration:none}
.availability-cityheaven:hover{border-color:#a51b55;color:#fff;background:#a51b55}
@media(max-width:760px){.availability-card{padding:15px 14px 13px;border-radius:16px}.availability-card-main{grid-template-columns:92px minmax(0,1fr);gap:14px}.availability-card-photo{min-height:122px;border-radius:12px}.availability-card-info{gap:9px}.availability-card-heading{gap:8px}.availability-card-name{font-size:clamp(1.02rem,5vw,1.38rem)}.availability-card-store{margin-top:4px;font-size:.76rem}.availability-card-cup{padding:6px 8px;border-radius:8px;font-size:.72rem}.availability-card-tags{gap:5px}.availability-card-tags span,.availability-card-area{padding:6px 8px;font-size:.7rem;border-radius:7px}.availability-card-tags b,.availability-card-area b{margin-right:4px}.availability-card-slot{min-height:36px}.availability-slot{padding:7px 10px;border-radius:9px;font-size:.84rem}.availability-slot strong{font-size:1.03em}.availability-card-footer{align-items:center;gap:9px;margin-top:14px;padding-top:12px}.availability-card-shift{gap:5px;font-size:.76rem}.availability-card-shift span{font-size:.72rem}.availability-card-shift strong{font-size:.92rem}.availability-card-actions{gap:6px;flex-basis:58%}.availability-card-actions .favorite-button,.availability-card-actions .favorite-login,.availability-cityheaven{min-height:42px;padding:7px 6px;font-size:.7rem;border-radius:8px}}
@media(max-width:440px){.availability-card{padding:13px 11px 11px}.availability-card-main{grid-template-columns:80px minmax(0,1fr);gap:10px}.availability-card-photo{min-height:108px;border-radius:10px}.availability-card-name{font-size:1.02rem}.availability-card-store{font-size:.69rem}.availability-card-store span{font-size:1.05em}.availability-card-cup{padding:5px 6px;font-size:.66rem}.availability-card-tags{gap:4px}.availability-card-tags span,.availability-card-area{padding:5px 6px;font-size:.64rem}.availability-slot{padding:6px 8px;font-size:.76rem}.availability-card-footer{gap:7px}.availability-card-shift{gap:4px;font-size:.66rem}.availability-card-shift strong{font-size:.8rem}.availability-card-actions{gap:4px;flex-basis:61%}.availability-card-actions .favorite-button,.availability-card-actions .favorite-login,.availability-cityheaven{min-height:40px;padding:6px 3px;font-size:.62rem}}

/* r58 reference-inspired page treatment. These rules are deliberately scoped to
   the two preview pages so shared templates keep their existing contracts. */
.availability-hero,
.today-hero {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1.12fr) minmax(220px, .88fr);
  gap: 22px;
  min-height: 248px;
  overflow: hidden;
  isolation: isolate;
  border-left-width: 4px;
  border-radius: 0 4px 4px 0;
  box-shadow: 0 10px 30px rgba(56,32,63,.06);
}
.availability-hero-copy,
.today-hero-copy { position: relative; z-index: 2; align-self: center; min-width: 0; }
.availability-hero h1,
.today-hero h1 { max-width: 650px; color: #211d22; font-size: clamp(2rem, 4.7vw, 3.5rem); }
.availability-hero .eyebrow,
.today-hero .eyebrow { margin-bottom: 9px; color: var(--cw-accent); letter-spacing: .08em; }
.availability-hero p:last-child,
.today-hero p:last-child { max-width: 560px; margin-top: 13px; color: #5e5360; line-height: 1.65; }
.availability-hero-art,
.today-hero-art { position: relative; min-height: 200px; align-self: stretch; pointer-events: none; }
.availability-hero-art::after,
.today-hero-art::after { position: absolute; inset: 0; z-index: -1; content: ""; background: radial-gradient(circle at 60% 40%, rgba(255,255,255,.95), transparent 55%); }
.availability-hero-skyline { position: absolute; right: -8%; bottom: -4px; left: -12%; height: 76px; opacity: .34; background: linear-gradient(90deg, #d98aaa 0 7%, transparent 7% 11%, #c97095 11% 17%, transparent 17% 23%, #d98aaa 23% 32%, transparent 32% 35%, #bd5b86 35% 45%, transparent 45% 49%, #d98aaa 49% 58%, transparent 58% 63%, #c97095 63% 72%, transparent 72% 77%, #d98aaa 77% 88%, transparent 88%); clip-path: polygon(0 43%, 7% 43%, 7% 21%, 11% 21%, 11% 56%, 17% 56%, 17% 34%, 23% 34%, 23% 49%, 28% 49%, 28% 14%, 34% 14%, 34% 52%, 39% 52%, 39% 27%, 45% 27%, 45% 46%, 51% 46%, 51% 11%, 57% 11%, 57% 57%, 63% 57%, 63% 29%, 71% 29%, 71% 48%, 77% 48%, 77% 20%, 84% 20%, 84% 51%, 91% 51%, 91% 33%, 100% 33%, 100% 100%, 0 100%); }
.availability-hero-calendar { position: absolute; top: 27px; right: 25%; display: block; width: 112px; height: 112px; border: 9px solid rgba(255,255,255,.72); border-radius: 50%; background: rgba(255,255,255,.32); box-shadow: 0 0 0 1px rgba(255,255,255,.62), 0 13px 24px rgba(189,47,104,.12); transform: rotate(-7deg); }
.availability-hero-calendar::before { position: absolute; inset: 16px; border: 1px solid rgba(189,47,104,.28); border-radius: 8px; background: repeating-linear-gradient(90deg, transparent 0 15px, rgba(189,47,104,.14) 15px 16px), repeating-linear-gradient(0deg, transparent 0 15px, rgba(189,47,104,.14) 15px 16px), rgba(255,255,255,.62); content: ""; }
.availability-hero-calendar::after { position: absolute; top: 16px; right: 16px; left: 16px; height: 17px; border-radius: 7px 7px 2px 2px; background: rgba(189,47,104,.42); content: ""; }
.availability-hero-calendar i,
.availability-hero-calendar b,
.availability-hero-calendar em { position: absolute; z-index: 1; display: block; }
.availability-hero-calendar i { top: 7px; left: 28px; width: 8px; height: 19px; border-radius: 8px; background: #fff; box-shadow: 48px 0 #fff; }
.availability-hero-calendar b { right: 10px; bottom: 8px; width: 24px; height: 24px; border: 3px solid #fff; border-radius: 50%; background: #c94f7e; }
.availability-hero-calendar b::after { position: absolute; top: 6px; left: 6px; width: 7px; height: 4px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; content: ""; transform: rotate(-45deg); }
.availability-hero-calendar em { right: 4px; bottom: 3px; width: 20px; height: 3px; border-radius: 3px; background: #fff; transform: rotate(48deg); transform-origin: right center; }
.availability-hero-search { position: absolute; right: 8%; bottom: 57px; display: block; width: 78px; height: 78px; border: 11px solid rgba(189,47,104,.2); border-radius: 50%; transform: rotate(-42deg); }
.availability-hero-search::after { position: absolute; right: -31px; bottom: -19px; width: 43px; height: 12px; border-radius: 10px; background: rgba(189,47,104,.23); content: ""; }

.today-hero { grid-template-columns: minmax(0, 1fr) minmax(260px, .9fr); background: linear-gradient(116deg, #fff 0 48%, #f9e8f0 100%); }
.today-hero-copy { display: grid; align-content: center; justify-items: start; gap: 15px; }
.today-hero-copy .button { min-height: 42px; padding: 8px 14px; font-size: .78rem; }
.today-hero-beam { position: absolute; top: -10px; left: 50%; width: 92px; height: 250px; opacity: .34; background: linear-gradient(90deg, transparent, #e7abc2, transparent); clip-path: polygon(36% 0, 64% 0, 100% 100%, 0 100%); transform: translateX(-50%); }
.today-silhouette { position: absolute; bottom: 18px; display: block; width: 27px; height: 100px; border-radius: 50% 50% 22% 22%; background: #d897b0; opacity: .46; }
.today-silhouette::before { position: absolute; top: -18px; left: 50%; width: 25px; height: 25px; border-radius: 50%; background: inherit; content: ""; transform: translateX(-50%); }
.today-silhouette::after { position: absolute; top: 26px; right: -11px; width: 49px; height: 8px; border-radius: 8px; background: inherit; content: ""; transform: rotate(-14deg); transform-origin: left center; }
.today-silhouette-left { right: 62%; height: 82px; opacity: .31; transform: scale(.8); }
.today-silhouette-main { right: 41%; z-index: 1; width: 37px; height: 139px; border-radius: 50% 50% 19% 19%; background: #ba3a70; opacity: .92; }
.today-silhouette-main::before { width: 31px; height: 31px; }
.today-silhouette-main::after { right: -17px; width: 64px; }
.today-silhouette-right { right: 15%; height: 90px; opacity: .28; transform: scale(.9); }
.today-hero-check { position: absolute; top: 38px; right: 35%; display: grid; place-items: center; width: 23px; height: 23px; border-radius: 50%; background: #b52d65; color: #fff; font-size: .84rem; font-weight: 900; box-shadow: 0 3px 8px rgba(189,47,104,.2); }

.availability-page .filter-panel,
.today-page .filter-panel { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 0 20px 20px; border-top: 4px solid var(--cw-accent); border-radius: 15px; overflow: visible; }
.filter-panel-heading { grid-column: 1 / -1; display: flex; align-items: center; gap: 13px; min-width: 0; margin: 0 -20px 3px; padding: 17px 20px 14px; border-bottom: 1px solid #eee3e8; background: linear-gradient(90deg, #fff8fb, #fff); }
.filter-panel-heading::before { flex: 0 0 auto; width: 4px; height: 35px; border-radius: 4px; background: var(--cw-accent); content: ""; }
.filter-panel-heading > div { min-width: 0; }
.filter-panel-kicker { flex: 0 0 auto; align-self: flex-start; margin-top: 3px; color: var(--cw-accent); font-size: .62rem; font-weight: 850; letter-spacing: .12em; }
.filter-panel-heading h2 { margin: 0; color: #2a242c; font-size: 1.08rem; }
.filter-panel-heading p { margin: 4px 0 0; color: var(--cw-muted); font-size: .78rem; line-height: 1.4; }
.availability-page .filter-panel > label,
.availability-page .filter-panel > .choice-filter,
.availability-page .filter-panel > .favorite-only,
.today-page .filter-panel > label,
.today-page .filter-panel > .choice-filter,
.today-page .filter-panel > .favorite-only { min-width: 0; }
.availability-page .filter-panel input,
.availability-page .filter-panel select,
.today-page .filter-panel input,
.today-page .filter-panel select { min-width: 0; }
.availability-page .filter-panel .filter-actions,
.today-page .filter-panel .filter-actions { min-width: 0; }
.availability-page .dashboard-summary { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 11px; margin: 22px 0; }
.today-page .dashboard-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin: 22px 0; }
.availability-page .dashboard-summary > div,
.today-page .dashboard-summary > div { position: relative; min-width: 0; min-height: 78px; padding: 14px 14px 13px 49px; border: 1px solid #eadfe5; border-top: 3px solid #dc6b99; border-radius: 12px; box-shadow: 0 5px 15px rgba(56,32,63,.04); }
.availability-page .dashboard-summary > div::before,
.today-page .dashboard-summary > div::before { position: absolute; top: 19px; left: 14px; display: grid; place-items: center; width: 25px; height: 25px; border: 1px solid #f0c4d5; border-radius: 50%; background: #fff6fa; color: var(--cw-accent); font-size: .83rem; font-weight: 850; content: "•"; }
.availability-page .dashboard-summary > div:nth-child(1)::before { content: "◉"; }
.availability-page .dashboard-summary > div:nth-child(2)::before { content: "▣"; }
.availability-page .dashboard-summary > div:nth-child(3)::before { content: "◷"; }
.availability-page .dashboard-summary > div:nth-child(4)::before { content: "♙"; }
.availability-page .dashboard-summary > div:nth-child(5)::before { content: "♡"; }
.today-page .dashboard-summary > div:nth-child(1)::before { content: "◆"; }
.today-page .dashboard-summary > div:nth-child(2)::before { content: "ϟ"; }
.today-page .dashboard-summary > div:nth-child(3)::before { content: "◷"; }
.today-page .dashboard-summary > div:nth-child(4)::before { content: "⌛"; }
.today-page .dashboard-summary > div:nth-child(5)::before { content: "♡"; }
.today-page .dashboard-summary > div:nth-child(6)::before { content: "▣"; }
.availability-page .dashboard-summary span,
.today-page .dashboard-summary span { font-size: .72rem; line-height: 1.25; }
.availability-page .dashboard-summary strong,
.today-page .dashboard-summary strong { font-size: clamp(1.35rem, 2.4vw, 1.85rem); line-height: 1.05; }
.availability-page .dashboard-summary small,
.today-page .dashboard-summary small { min-width: 0; font-size: .7rem; overflow-wrap: anywhere; }

.availability-page .availability-results { margin-top: 26px; }
.availability-page .availability-heading { margin: 0 0 12px; padding: 0 2px 12px; border-bottom: 1px solid #eadfe5; }
.availability-page .availability-heading h2 { color: #2a242c; font-family: inherit; font-size: 1.18rem; font-weight: 850; }
.availability-page .availability-heading > span { padding: 4px 9px; border-radius: 999px; background: #fff1f6; color: var(--cw-accent-dark); font-size: .72rem; font-weight: 800; }
.availability-page .availability-card { border-color: #eadfe5; box-shadow: 0 8px 24px rgba(56,32,63,.055); }
.availability-page .availability-card:hover { border-color: #df9ab6; box-shadow: 0 10px 26px rgba(189,47,104,.1); }

.today-page .decision-presets { padding: 16px; border-color: #efd5e1; background: linear-gradient(120deg, #fff7fa, #fff); box-shadow: inset 0 0 0 1px rgba(255,255,255,.55); }
.today-page .decision-presets > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.today-page .decision-presets button { min-width: 0; min-height: 42px; padding: 8px 10px; border-color: #e6cad6; background: #fff; color: #513a49; font-size: .78rem; }
.today-page .decision-presets button:hover,
.today-page .decision-presets button.is-selected { border-color: var(--cw-accent); background: var(--cw-accent); color: #fff; }
.today-page .preference-tuning { border-color: #efd5e1; background: #fffafd; }
.today-page .preference-tuning > summary { padding: 13px 15px; color: #513a49; }
.today-page .preference-tuning .ranking-weights { margin: 0 12px 12px; border-color: #eadbe3 !important; background: #fff; }
.today-page .decision-shortlist { border-top: 0; border-left: 4px solid var(--cw-accent); box-shadow: 0 8px 24px rgba(56,32,63,.055); }
.today-page .shortlist-grid article { min-width: 0; border-color: #eadfe5; background: #fff; box-shadow: 0 4px 14px rgba(56,32,63,.04); }
.today-page .shortlist-grid .button { width: 100%; }
.today-page .analysis-method { border-color: #efd5e1; background: #fff8fb; }
.today-page .analysis-grid { gap: 12px; }
.today-page .distribution-card { border-color: #eadfe5; box-shadow: 0 5px 16px rgba(56,32,63,.04); }
.today-page .ranking-section { border-top: 4px solid var(--cw-accent); box-shadow: 0 8px 24px rgba(56,32,63,.055); }
.today-page .ranking-card { border-color: #eadfe5; box-shadow: 0 7px 20px rgba(56,32,63,.055); }

@media(max-width: 900px) {
  .availability-page .dashboard-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .today-page .dashboard-summary { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .availability-hero-calendar { right: 18%; }
  .availability-hero-search { right: 3%; }
}
@media(max-width: 760px) {
  .availability-hero,
  .today-hero { grid-template-columns: minmax(0, 1fr); min-height: 255px; padding: 26px 20px 22px; }
  .availability-hero-copy,
  .today-hero-copy { max-width: 76%; align-self: start; }
  .availability-hero-art,
  .today-hero-art { position: absolute; inset: 0; z-index: 1; min-height: 0; opacity: .72; }
  .availability-hero h1,
  .today-hero h1 { font-size: clamp(1.9rem, 9vw, 2.7rem); }
  .availability-hero p:last-child,
  .today-hero p:last-child { max-width: 360px; font-size: .82rem; }
  .availability-hero-calendar { top: 28px; right: 5%; transform: scale(.78) rotate(-7deg); transform-origin: top right; }
  .availability-hero-search { right: -4%; bottom: 44px; transform: scale(.7) rotate(-42deg); }
  .today-hero-copy { max-width: 72%; gap: 12px; }
  .today-hero-copy .button { min-height: 38px; }
  .today-silhouette-left { right: 57%; }
  .today-silhouette-main { right: 25%; }
  .today-silhouette-right { right: 0; }
  .today-hero-check { right: 18%; }
  .availability-page .filter-panel,
  .today-page .filter-panel { grid-template-columns: minmax(0, 1fr); padding: 0 14px 14px; gap: 10px; }
  .filter-panel-heading { margin-inline: -14px; padding: 15px 14px 12px; }
  .filter-panel-kicker { display: none; }
  .availability-page .dashboard-summary,
  .today-page .dashboard-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
  .availability-page .dashboard-summary > div,
  .today-page .dashboard-summary > div { min-height: 70px; padding: 12px 9px 11px 42px; }
  .availability-page .dashboard-summary > div::before,
  .today-page .dashboard-summary > div::before { top: 14px; left: 10px; }
  .availability-page .dashboard-summary strong,
  .today-page .dashboard-summary strong { font-size: 1.35rem; }
  .today-page .decision-presets > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .today-page .decision-presets button { min-height: 40px; padding-inline: 7px; font-size: .72rem; }
  .today-page .ranking-section { padding: 14px; }
}
@media(max-width: 440px) {
  .availability-hero,
  .today-hero { width: calc(100% - 24px); min-height: 245px; padding: 22px 16px 18px; }
  .availability-hero-copy,
  .today-hero-copy { max-width: 82%; }
  .availability-hero p:last-child,
  .today-hero p:last-child { font-size: .76rem; line-height: 1.5; }
  .availability-hero-calendar { top: 21px; right: -2%; transform: scale(.62) rotate(-7deg); }
  .availability-hero-search { right: -10%; bottom: 27px; transform: scale(.56) rotate(-42deg); }
  .today-hero-art { opacity: .56; }
  .today-silhouette-main { right: 12%; transform: scale(.82); transform-origin: bottom; }
  .today-hero-check { top: 29px; right: 9%; transform: scale(.8); }
  .filter-panel-heading h2 { font-size: 1rem; }
  .filter-panel-heading p { font-size: .72rem; }
  .availability-page .filter-panel .filter-actions,
  .today-page .filter-panel .filter-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 7px; }
  .availability-page .filter-panel .filter-actions > *,
  .today-page .filter-panel .filter-actions > * { min-width: 0; width: 100%; padding-inline: 7px; font-size: .76rem; }
  .availability-page .dashboard-summary > div,
  .today-page .dashboard-summary > div { padding-left: 38px; }
  .availability-page .dashboard-summary > div::before,
  .today-page .dashboard-summary > div::before { left: 8px; width: 23px; height: 23px; font-size: .74rem; }
  .availability-page .dashboard-summary span,
  .today-page .dashboard-summary span { font-size: .67rem; }
  .availability-page .dashboard-summary strong,
  .today-page .dashboard-summary strong { font-size: 1.2rem; }
  .availability-page .dashboard-summary small,
  .today-page .dashboard-summary small { font-size: .62rem; }
  .today-page .decision-presets { padding: 12px; }
  .today-page .decision-presets > div { gap: 6px; }
  .today-page .preference-tuning .ranking-weights { margin-inline: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  .availability-page .availability-card,
  .today-page .ranking-card { transition: none; }
}
