/* Bridge existing functional templates to the approved app-inspired design. */
:root {
  --bg-primary: var(--paper); --bg-secondary: var(--field); --bg-card: var(--surface); --bg-glass: var(--surface);
  --text-primary: var(--ink); --text-secondary: var(--muted); --text-muted: var(--muted);
  --border: var(--line); --border-light: var(--line); --accent: var(--brand); --accent-light: var(--blue); --accent-dark: var(--brand);
  --gradient: linear-gradient(var(--brand),var(--brand)); --warning: #a16811; --danger: #b63b46;
  --radius-sm: 10px; --radius-md: 14px; --radius-lg: 22px; --radius-xl: 24px;
  --shadow: 0 12px 40px #1415130d; --shadow-glow: none; --font: Manrope, sans-serif; --header-height: 91px;
}
:root[data-theme=dark] { --danger: #ff9aa4; --warning: #ebc17a; --shadow: 0 12px 40px #0003; }
body.redesigned { background: var(--paper); color: var(--ink); }
.redesigned:not(.has-mobile-tabbar) { padding-bottom: 0; }
.redesigned input, .redesigned select, .redesigned textarea { color-scheme: inherit; }
.container { width: min(1200px,calc(100% - 80px)); max-width: 1200px; margin-inline: auto; padding-inline: 0; }
.cabinet-content { min-height: 60vh; }
.cabinet { padding-top: 36px; padding-bottom: 80px; }
.cabinet-content .player-page { padding-top: 36px; }
.cabinet__head { margin: 36px 0 30px; }
.cabinet__head h1, .cabinet .cabinet__head h1 { margin: 0 0 10px; font-size: clamp(28px,3.5vw,44px); letter-spacing: -.055em; line-height: 1.15; }
.cabinet__head p { max-width: 650px; font-size: 15px; line-height: 1.7; }
.cabinet-eyebrow { margin: 0 0 14px; color: var(--blue); font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .13em; }
.cabinet-nav, .passport-tabs { display: flex; flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; gap: 8px; padding: 0 0 12px; margin-bottom: 24px; }
.cabinet-nav__link, .passport-tabs__link { flex: 0 0 auto; min-height: 44px; padding: 12px 18px; font-size: 13px; font-weight: 700; border: 0; border-radius: 999px; color: var(--muted); background: var(--field); box-shadow: none; }
.cabinet-nav__link:hover, .passport-tabs__link:hover { color: var(--ink); background: var(--mist); border: 0; }
.cabinet-nav__link--active, .passport-tabs__link--active { background: var(--ink); color: var(--paper); }
.cabinet-nav__link--active:hover, .passport-tabs__link--active:hover { background: var(--ink); color: var(--paper); }
.owner-tabs, .mod-tabs { background: var(--paper); border-bottom: 1px solid var(--line); top: var(--header-height); padding: 12px 0; gap: 6px; margin-bottom: 24px; }
.owner-tabs__link, .mod-tabs__btn { border-radius: 999px; min-height: 44px; font-size: 13px; padding: 11px 17px; color: var(--muted); background: var(--field); }
.owner-tabs__link:hover, .mod-tabs__btn:hover { color: var(--ink); background: var(--mist); }
.owner-tabs__link--active, .mod-tabs__btn--active { color: #fff; background: var(--brand); }
.owner-tabs__link--active:hover, .mod-tabs__btn--active:hover { color: #fff; background: var(--brand); }
.btn { min-height: 44px; padding: 12px 19px; border-radius: 13px; font-size: 13px; font-weight: 800; white-space: normal; text-align: center; box-shadow: none; line-height: 1.45; }
.btn--primary, .btn--primary:hover { background: var(--brand); color: #fff; box-shadow: none; }
.btn--outline { color: var(--blue); background: var(--mist); border: 1px solid transparent; }
.btn--ghost { color: var(--ink); background: var(--surface); border: 1px solid var(--line); }
.btn--outline:hover, .btn--ghost:hover { color: var(--blue); background: var(--mist); border-color: transparent; }
.btn--sm { min-height: 40px; padding: 10px 15px; font-size: 12px; }
.btn--danger { color: var(--danger); background: color-mix(in srgb,var(--danger) 9%,var(--surface)); }
.owner-check__box::after, .form-check__box::after { border-color: #fff; }
.cabinet-toggle__track::after { background: #fff; }
.cabinet-toggle input:checked + .cabinet-toggle__track { background: var(--brand); }
.cabinet-toggle input:focus-visible + .cabinet-toggle__track { outline: 2px solid var(--blue); outline-offset: 3px; }
.cabinet-card, .owner-panel, .mod-claim-card, .mod-review-card, .cabinet-section, .passport-panel { border: 0; border-radius: 22px; background: var(--surface); padding: 26px; box-shadow: none; }
.owner-panel h2, .cabinet-card h2, .mod-section__head h2, .passport-panel h2 { letter-spacing: -.035em; font-size: 20px; line-height: 1.3; }
.legacy-page main :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]):not([type=submit]),select,textarea) { min-width: 0; max-width: 100%; background: var(--field); color: var(--ink); border: 1px solid var(--line); border-radius: 12px; padding: 13px 15px; font-size: 14px; line-height: 1.5; box-shadow: none; }
.legacy-page main :is(input,select,textarea):focus-visible { outline: 2px solid var(--blue); outline-offset: 2px; border-color: transparent; }
.legacy-page main input:autofill { -webkit-text-fill-color: var(--ink); box-shadow: 0 0 0 100px var(--field) inset; }
.legacy-page main :is(input,select,textarea):disabled { opacity: .65; cursor: not-allowed; }
.legacy-page main label { line-height: 1.6; }
.auth-form__field > span, .claim-form__field > span, .mod-field > span { font-size: 12px; font-weight: 800; color: var(--ink); }
.auth-form, .owner-form__grid { gap: 20px; }
.owner-form__actions { border: 0; padding: 8px 0 0; }
/* Nested editors keep a separate surface from their input fields. */
.owner-edit, .owner-edit__panel, .owner-form__grid, .owner-form__grid > *, .owner-promo__form, .owner-rating__form { min-width:0; }
.owner-edit .auth-form__field { display:flex; flex-direction:column; gap:8px; min-width:0; }
.owner-edit .auth-form__field > span { color:var(--ink); font-size:13px; font-weight:700; }
.legacy-page main .owner-edit .auth-form__field :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]):not([type=file]),select,textarea) { width:100%; min-height:48px; font-family:inherit; }
.legacy-page main .owner-edit textarea { min-height:100px; resize:vertical; }
.owner-panel > .owner-panel__lead { margin:8px 0 24px; max-width:850px; line-height:1.7; }
.owner-events { gap:16px; }
.owner-event, .owner-faq__item, .owner-promo, .owner-rating, .owner-review, .owner-rating-import, .owner-verification { background:var(--surface); border:1px solid var(--line); border-radius:16px; }
.owner-event__header { align-items:center; gap:12px; }
.owner-event__toggle { padding:20px; border-radius:15px; }
.owner-event__toggle:hover { background:var(--paper); }
.owner-event__summary { gap:7px; }
.owner-event__summary strong { font-size:16px; font-weight:800; line-height:1.45; overflow-wrap:anywhere; }
.owner-event__meta { font-size:12px; line-height:1.6; }
.owner-event__delete { padding:0 20px 0 0; }
.owner-event--open .owner-event__header { background:var(--paper); }
.owner-event__body { padding:24px; background:var(--surface); }
.owner-event__form, .owner-promo__form, .owner-rating__form { gap:24px; }
.owner-event__actions, .owner-promo__actions, .owner-rating__actions { flex-wrap:wrap; justify-content:flex-end; gap:12px; padding-top:20px; border-top:1px solid var(--line); }
.owner-event__actions .btn, .owner-promo__actions .btn, .owner-rating__actions .btn { min-height:44px; padding:12px 22px; background:var(--brand); color:#fff; border:1px solid transparent; }
.owner-event__actions .btn:hover, .owner-promo__actions .btn:hover, .owner-rating__actions .btn:hover { background:var(--brand); color:#fff; filter:brightness(.94); }
.owner-event__delete .btn, .owner-promo__delete .btn, .owner-rating__delete .btn, .owner-faq__remove { color:var(--danger); background:var(--surface); border:1px solid color-mix(in srgb,var(--danger) 35%,var(--surface)); }
.owner-event__delete .btn:hover, .owner-promo__delete .btn:hover, .owner-rating__delete .btn:hover, .owner-faq__remove:hover { color:var(--danger); background:color-mix(in srgb,var(--danger) 8%,var(--surface)); }
.owner-event-add, .owner-promo-add { margin-top:28px; padding-top:28px; }
.owner-event-add h3, .owner-promo-add h3, .owner-rating-add h3 { font-size:18px; margin-bottom:20px; }
.owner-event-add > .btn, .owner-promo-add > .btn { margin-top:24px; min-height:44px; }
.owner-faq__item { display:grid; gap:20px; padding:22px; }
.owner-faq__remove { justify-self:end; margin:0; }
.owner-promo { grid-template-columns:120px minmax(0,1fr) auto; padding:22px; gap:20px; }
.owner-rating { grid-template-columns:minmax(0,1fr) auto; padding:22px; gap:20px; }
.owner-form__grid--ratings { grid-template-columns:repeat(3,minmax(0,1fr)); }
.owner-form__grid--ratings .owner-form__field--wide { grid-column:1 / -1; }
.owner-rating-import { padding:22px; gap:16px; }
.owner-rating-add > .btn { justify-self:start; }
.owner-review__reply { display:grid; gap:18px; padding-top:20px; margin-top:20px; }
.owner-review__reply > .btn { justify-self:start; }
.owner-review__reply > label:not(.auth-form__field) { font-size:12px; color:var(--muted); }
.owner-review__reply > label a { color:var(--blue); }
.owner-edit input[type=file]::file-selector-button { font:inherit; font-weight:700; color:var(--blue); background:var(--mist); border:0; border-radius:10px; padding:12px 16px; margin-right:12px; cursor:pointer; }
.owner-edit .btn:disabled { opacity:.5; cursor:not-allowed; }
.owner-verification__main, .owner-verification__actions { min-width:0; }
.owner-verification__actions { flex:0 1 280px; }
.owner-verification__status { background:var(--mist); }
.owner-verification__reject input { min-height:48px; }
@media(min-width:1100px) {
  .owner-form__grid--ratings { grid-template-columns:minmax(0,2fr) repeat(3,minmax(0,1fr)); }
  .owner-form__grid--ratings .owner-form__field--wide { grid-column:auto; }
}
@media(max-width:900px) {
  .owner-promo, .owner-rating { grid-template-columns:minmax(0,1fr); }
  .owner-promo__thumb { max-width:180px; width:100%; }
  .owner-promo__delete, .owner-rating__delete { justify-self:end; }
}
@media(max-width:760px) { .owner-verification__actions { flex-basis:auto; } }
@media(max-width:640px) {
  .owner-panel--events { padding:18px; }
  .owner-event__header { flex-direction:row; flex-wrap:wrap; align-items:center; gap:0; }
  .owner-event__toggle { flex-basis:100%; padding:16px; }
  .owner-event__delete { margin-left:auto; padding:0 16px 16px; }
  .owner-event__body, .owner-faq__item, .owner-promo, .owner-rating, .owner-rating-import { padding:16px; }
  .owner-event__summary strong { font-size:14px; }
  .owner-event__actions .btn, .owner-promo__actions .btn, .owner-rating__actions .btn, .owner-event-add > .btn, .owner-promo-add > .btn { width:100%; }
  .owner-form__grid--ratings { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
.owner-dropzone { border: 1px dashed var(--line); background: var(--field); border-radius: 18px; }
.owner-dropzone:hover { border-color: var(--blue); background: var(--mist); }
.owner-logo-picker__btn { border: 0; background: var(--mist); }
.cabinet-alert, .auth-card__error, .auth-card__success, .claim-form__error, .service-notice { padding: 16px 20px; border-radius: 14px; font-size: 14px; margin: 16px 0; }
.cabinet-alert--success, .auth-card__success { color: var(--success); background: color-mix(in srgb,var(--success) 9%,var(--surface)); }
.cabinet-alert--error, .auth-card__error, .claim-form__error { color: var(--danger); background: color-mix(in srgb,var(--danger) 9%,var(--surface)); }
.service-notice { background: var(--mist); color: var(--ink); }
.mod-stats { grid-template-columns: repeat(6,minmax(0,1fr)); gap: 14px; margin-bottom: 32px; }
.mod-stat { padding: 22px 18px; background: var(--surface); border: 0; border-radius: 20px; }
.mod-stat strong { font-size: 36px; letter-spacing: -.05em; margin-top: 16px; }
.mod-stat span, .mod-stat small { font-size: 12px; }
.mod-stat--accent { background: var(--mist); color: var(--blue); }
.mod-badge { background: var(--field); color: var(--muted); border: 0; border-radius: 999px; padding: 6px 10px; }
.mod-badge--ok { background: color-mix(in srgb,var(--success) 10%,var(--surface)); color: var(--success); }
.mod-badge--warn, .mod-badge--danger { color: var(--danger); }
.mod-table-wrap, .cabinet-table-wrap, .owner-ratings-table-wrap, .analytics-table-wrap { max-width: 100%; overflow-x: auto; border: 0; border-radius: 18px; background: var(--surface); }
.mod-table, .cabinet-table { border-collapse: collapse; }
.mod-table :is(th,td), .cabinet-table :is(th,td) { border-bottom: 1px solid var(--line); padding: 16px; line-height: 1.6; }
.mod-table th, .cabinet-table th { font-size: 11px; letter-spacing: .06em; color: var(--muted); background: var(--field); }
.mod-table tbody tr:hover { background: var(--field); }
.mod-table__actions { gap: 6px; }
.passport { --passport-surface: var(--surface); --passport-line: var(--line); }
.passport__header, .passport__progress-row, .passport__activity-row { gap: 20px; margin-bottom: 20px; }
.player-profile-card { background: var(--surface); border: 0; border-radius: 22px; padding: 28px; }
.player-profile-card__name { color: var(--ink); font-size: clamp(24px,3vw,34px); letter-spacing: -.055em; }
.player-profile-card__since { color: var(--muted); font-size: 12px; }
.player-profile-card__edit, .player-profile-card__share { color: var(--blue); background: var(--mist); border: 0; min-height: 40px; border-radius: 12px; padding: 11px 14px; font-size: 12px; }
.player-profile-card__edit:hover, .player-profile-card__share:hover { color: var(--blue); background: var(--field); }
.player-profile-card__avatar--placeholder { background: var(--mist); color: var(--blue); }
.passport__favorite .player-my-clubs__card { padding: 24px; border-radius: 22px; border: 0; background: var(--mist); }
.player-my-clubs__name, .passport__favorite .player-my-clubs__name { color: var(--ink); letter-spacing: -.04em; }
.player-my-clubs__change { background: var(--surface); color: var(--blue); border: 0; }
.passport-progress { background: var(--field); }
.passport-progress > span { background: var(--brand); }
.passport-metrics { gap: 16px; margin: 28px 0; }
.passport-metric { padding: 22px; }
.passport-metric h2 { font-size: 12px; letter-spacing: 0; }
.passport-metric strong { margin-top: 12px; font-size: 30px; letter-spacing: -.04em; }
.passport-metric__icon, .passport-raffle__icon { background: var(--mist); color: var(--blue); }
.passport-achievement { background: var(--field); border: 0; padding: 20px 12px; border-radius: 16px; }
.passport-achievement__icon { color: var(--blue); background: var(--mist); }
.passport-achievement--gold .passport-achievement__icon { color: var(--warning); background: color-mix(in srgb,var(--warning) 10%,var(--surface)); }
.passport-achievement--teal .passport-achievement__icon { color: var(--success); background: color-mix(in srgb,var(--success) 10%,var(--surface)); }
.passport-achievement--locked .passport-achievement__icon { color: var(--muted); background: var(--surface); }
.passport-achievement h3 { font-size: 13px; }
.passport-achievement__description { font-size: 12px; }
.passport-raffle__ticket { color: var(--line); filter: none; }
.passport-raffle__ticket--earned, .passport-raffle__details summary, .passport-raffle__rules li.is-earned { color: var(--blue); filter: none; }
.passport-raffle__head > span { color: var(--blue); background: var(--mist); border: 0; }
.passport-raffle__head h2 { font-size: 18px; }
.passport-visit__body strong { font-size: 13px; }
.passport-visit__body time { font-size: 11px; }
.passport-section-head > a { font-size: 12px; }
.passport-section-head > a:hover { color: var(--ink); }
.passport-bottom { display: grid; gap: 20px; }
.legacy-page .empty-state { color: var(--muted); background: var(--field); border: 0; padding: 28px; border-radius: 18px; }
.legacy-page main :is(.player-my-clubs-modal__dialog,.player-verification-modal__dialog,.custom-select__list) { background: var(--surface); border-color: var(--line); box-shadow: var(--shadow); color: var(--ink); }
.legacy-page main :is(.player-my-clubs-modal,.player-verification-modal) { z-index: 180; }
.player-verification-modal { padding:calc(16px + env(safe-area-inset-top)) 16px calc(16px + env(safe-area-inset-bottom)); }
.player-verification-modal__dialog {
  display:flex; flex-direction:column; min-height:0; padding:0; overflow:hidden;
  max-height:min(760px,calc(100vh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
  max-height:min(760px,calc(100dvh - 32px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));
}
.player-verification-modal__head { flex:0 0 auto; margin:0; padding:20px 20px 16px; }
.player-verification-modal__head > div { min-width:0; }
.player-verification-modal__close { width:40px; height:40px; }
.player-verification-modal__body { flex:1 1 auto; min-height:0; max-height:none; overflow-y:auto; overflow-x:hidden; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; padding:4px 20px 20px; }
.player-verification__item, .player-verification__item > div { min-width:0; overflow-wrap:anywhere; }
.auth-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 60px; padding-block: 60px 90px; align-items: center; }
.auth-story { padding: 32px 0; position: relative; overflow: hidden; }
.auth-story h2 { font-size: clamp(32px,4vw,54px); line-height: 1.08; letter-spacing: -.06em; margin: 24px 0; }
.auth-story > p:not(.section-kicker) { font-size: 16px; max-width: 370px; color: var(--muted); line-height: 1.8; }
.auth-story__suit { display: block; font-size: 170px; line-height: 1; color: var(--blue); margin-top: 30px; }
.auth-layout .auth-page { width: 100%; padding: 0; min-height: 0; max-width: 500px; }
.auth-layout .auth-card { width: 100%; max-width: none; border: 0; padding: 36px; border-radius: 24px; background: var(--surface); box-shadow: none; }
.auth-card h1 { font-size: 32px; letter-spacing: -.045em; }
.auth-card__lead { margin: 12px 0 28px; font-size: 14px; color: var(--muted); line-height: 1.7; }
.password-control { display: flex; position: relative; }
.password-control > input { width: 100%; padding-right: 52px !important; }
.password-control > button { position: absolute; right: 6px; top: 4px; width: 42px; height: 42px; border: 0; border-radius: 10px; background: transparent; color: var(--muted); }
.password-control > button:hover { color: var(--blue); }
.auth-card__footer { font-size: 13px; }
.claim-page { padding-top: 40px; padding-bottom: 80px; }
.claim-page__head h1 { font-size: clamp(28px,4vw,44px); letter-spacing: -.05em; }
.claim-form { border: 0; border-radius: 22px; background: var(--surface); }
.partner-showcase .club-card { pointer-events: auto; }
.review-form { display: grid; gap: 18px; margin-top: 24px; padding: 24px; background: var(--surface); border-radius: 20px; }
.review-form fieldset { border: 0; }
.review-form legend { font-size: 12px; font-weight: 800; margin-bottom: 10px; }
.review-form .review-scores { display: flex; flex-wrap: wrap; gap: 10px; }
.review-scores label { display: flex; align-items: center; gap: 6px; padding: 8px 12px; background: var(--field); border-radius: 10px; }
.review-form textarea { resize: vertical; min-height: 110px; }
.favorite-action { width: 100%; border: 0; background: none; cursor: pointer; text-align: center; justify-content: center; }
.favorite-action.is-favorite { color: var(--blue); }
.detail-section .faq { width: 100%; }
.checkin-page { background: var(--paper); color: var(--ink); padding: 28px 18px; }
.checkin-page__card { background: var(--surface); border: 0; border-radius: 24px; }
.checkin-page__brand { display: flex; align-items: center; gap: 9px; color: var(--ink); font-size: 26px; font-weight: 800; }
.checkin-page__receipt { background: var(--mist); color: var(--ink); }
.checkin-page__receipt strong { color: var(--blue); }
.checkin-page__error { color: var(--danger); }
@media(min-width: 1101px) { .passport__header, .passport__progress-row { grid-template-columns: minmax(0,1.3fr) minmax(0,1fr); } }
@media(max-width: 1100px) { .mod-stats { grid-template-columns: repeat(3,minmax(0,1fr)); } .auth-layout { gap: 30px; } }
@media(max-width: 768px) {
  :root { --header-height: 73px; }
  .container { width: calc(100% - 36px); }
  .cabinet { padding-top: 24px; padding-bottom: 48px; }
  .cabinet__head { margin: 24px 0; }
  .cabinet-card, .owner-panel, .mod-claim-card, .mod-review-card, .cabinet-section, .passport-panel { padding: 20px; border-radius: 18px; }
  .cabinet-nav, .passport-tabs { margin-bottom: 18px; }
  .cabinet-nav__link, .passport-tabs__link { padding: 11px 15px; font-size: 12px; }
  .owner-tabs, .mod-tabs { margin-inline: -18px; padding-inline: 18px; }
  .auth-layout { display: block; padding-block: 32px 56px; }
  .auth-story { display: none; }
  .auth-layout .auth-page { max-width: 520px; margin-inline: auto; }
  .auth-layout .auth-card { padding: 28px; }
  .mod-stat strong { font-size: 30px; }
  .mod-stat { padding: 18px 14px; }
}
@media(max-width: 640px) {
  .passport-panel h2, .owner-panel h2 { font-size: 18px; }
  .passport-metric h2 { font-size: 11px; letter-spacing: 0; }
  .passport-metric strong { font-size: 26px; }
  .passport-metrics { gap: 10px; margin: 20px 0; }
  .passport-metric { padding: 18px; }
  .passport__header, .passport__progress-row, .passport__activity-row { gap: 14px; }
  .player-profile-card { padding: 22px; }
  .player-profile-card__identity { gap: 14px; }
  .player-profile-card__actions { flex-wrap: wrap; }
  .player-profile-card__edit, .player-profile-card__share { min-height: 44px; }
  .passport__favorite .player-my-clubs__card { padding: 20px; }
  .passport__favorite .player-my-clubs__name { font-size: 22px; }
  .passport__favorite .player-my-clubs__logo { width: 56px; height: 56px; }
  .passport-level__head h2 { font-size: 24px; }
  .passport-achievements-grid { gap: 10px; }
  .passport-raffle__head h2 { font-size: 16px; }
  .legacy-page main :is(input:not([type=checkbox]):not([type=radio]),select,textarea) { font-size: 16px; }
  .mod-stats { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
  .owner-form__grid { grid-template-columns: minmax(0,1fr); }
  .owner-form__actions { justify-content: stretch; flex-wrap: wrap; }
  .owner-form__actions .btn { flex: 1; }
  .owner-checks--grid { grid-template-columns: minmax(0,1fr); }
  .owner-checks--days .owner-check { padding: 8px 10px; }
  .mod-section__head, .mod-claim-card__head, .mod-review-card__head { align-items: flex-start; flex-wrap: wrap; }
  .auth-layout .auth-card { padding: 24px 20px; }
  .auth-card h1 { font-size: 28px; }
}
@media(prefers-reduced-motion:reduce) { .redesigned *, .redesigned *::before, .redesigned *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; } }
.club-offer-list { display: grid; gap: 16px; }
.club-offer-list h3 { font-size: 23px; margin: 10px 0; }
.club-offer-list .venue-photo { max-height: 340px; object-fit: cover; }
.club-favorite-count--text .club-favorite-count__heart { display: none; }

/* Account surfaces use the same spacing, typography and blue accents as the app. */
.account-kicker { color:var(--muted); font-size:10px; font-weight:800; letter-spacing:.12em; text-transform:uppercase; margin:0 0 8px; }
.passport__progress-row { align-items:stretch; grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
.passport__progress-row .passport-level { display:flex; flex-direction:column; align-items:stretch; gap:0; background:var(--brand); color:#fff; padding:28px; min-height:0; align-self:stretch; }
.passport-level__head { align-items:center; margin-bottom:24px; }
.passport-level__head .passport-level__eyebrow { color:#fff; margin:0 0 8px; font-size:11px; letter-spacing:.14em; font-weight:800; text-transform:uppercase; }
.passport-level__head h2 { font-size:44px; line-height:1.1; letter-spacing:-.055em; color:#fff; }
.passport-level__head h2 span { font-size:24px; letter-spacing:-.03em; }
.passport-level__symbol { display:grid; place-items:center; width:64px; height:64px; border-radius:20px; background:#ffffff1a; }
.passport-level__symbol svg { width:36px; height:36px; }
.passport-level .passport-progress { height:6px; flex:none; margin-top:auto; background:#ffffff40; }
.passport-level .passport-progress > span { background:#fff; }
.passport-level__remaining { margin:14px 0 0; font-size:13px; font-weight:700; color:#fff; }
.passport-level .passport-level__note { color:#ffffffe0; font-size:11px; line-height:1.6; margin:8px 0 0; }
:root[data-theme=dark] .passport__progress-row .passport-level { background:#293c8b; }
.passport-raffle { padding:24px; gap:14px; }
.passport-raffle__icon { width:40px; height:40px; }
.passport-raffle__head { gap:8px; }
.passport-raffle__head h2 { font-size:18px; }
.passport-raffle__head > span { font-size:10px; font-weight:700; padding:6px 9px; border-radius:8px; }
.passport-raffle p { line-height:1.65; font-size:12px; }
.passport-raffle__tickets { max-width:none; gap:8px; margin:16px 0 12px; }
.passport-raffle__ticket { display:grid; place-items:center; flex:1; height:42px; border-radius:10px; color:var(--muted); background:var(--field); }
.passport-raffle__ticket--earned { background:var(--mist); color:var(--blue); }
.passport-raffle__tickets svg { width:24px; height:24px; }
.passport-raffle__details-link { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--blue); font-size:12px; font-weight:800; padding-top:14px; margin-top:14px; border-top:1px solid var(--line); }
.passport-moscow__grid { gap:0 22px; grid-template-columns:repeat(2,minmax(0,1fr)); }
.passport-moscow__club { border:0; border-bottom:1px solid var(--line); border-radius:0; background:none; color:var(--ink); padding:17px 0; gap:14px; }
.passport-moscow__club > span:first-child { display:grid; place-items:center; width:38px; height:38px; flex-shrink:0; border-radius:12px; background:var(--field); color:var(--muted); }
.passport-moscow__club--visited { background:none; color:var(--ink); }
.passport-moscow__club--visited > span:first-child { background:var(--mist); color:var(--blue); }
.passport-moscow__club--visited small { color:var(--blue); }
.passport-moscow__club:hover { background:none; color:var(--blue); }
.passport-moscow__club strong { font-weight:800; }
.passport-moscow__club small { font-size:11px; }
.passport-achievement { background:var(--paper); }
.passport-achievement--locked { opacity:1; }
.passport-achievement--locked .passport-achievement__icon { background:var(--field); }
.passport-section-head { align-items:center; flex-wrap:wrap; gap:10px; margin-bottom:20px; }
.passport-section-head > a { color:var(--blue); font-weight:700; }

body.account-dialog-open { overflow:hidden; }
.account-dialog { border:0; border-radius:24px; margin:auto; padding:0; width:min(600px,calc(100vw - 32px)); max-width:600px; max-height:calc(100dvh - 48px); color:var(--ink); background:var(--surface); box-shadow:0 24px 90px #0004; }
.account-dialog[open] { display:flex; flex-direction:column; }
.account-dialog::backdrop { background:#0c10256b; backdrop-filter:blur(4px); }
.account-dialog__header { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:24px 28px 20px; border-bottom:1px solid var(--line); flex-shrink:0; }
.account-dialog__header h2 { font-size:23px; }
.account-dialog__header .account-kicker { margin:0 0 6px; font-size:10px; }
.account-dialog__close { display:grid; place-items:center; width:40px; height:40px; flex-shrink:0; background:var(--field); color:var(--ink); border:0; border-radius:50%; font-size:26px; cursor:pointer; }
.account-dialog__body { padding:8px 28px 28px; overflow-y:auto; overscroll-behavior:contain; }
.account-dialog__body > p { margin:18px 0; color:var(--muted); font-size:13px; line-height:1.75; }
.account-dialog__body .passport-raffle__rules { margin:22px 0; }
.account-dialog__body .passport-raffle__rules li { padding:16px 0; font-size:14px; color:var(--ink); }
.account-dialog__body .passport-raffle__rules li.is-earned { color:var(--blue); }
.account-dialog__body .passport-raffle__rules small { font-size:11px; }
.account-dialog__body h3 { font-size:16px; margin-top:24px; }

.cabinet-profile { display:grid; grid-template-columns:minmax(240px,.7fr) minmax(0,1.3fr); gap:24px; align-items:start; }
.cabinet-profile__aside, .cabinet-profile__main { display:grid; gap:24px; min-width:0; }
.cabinet-profile .cabinet-card { padding:26px; margin:0; min-width:0; }
.cabinet-profile .cabinet-card h2 { margin:0 0 20px; }
.cabinet-profile .cabinet-card > p { font-size:13px; line-height:1.75; color:var(--muted); margin:14px 0; }
.cabinet-profile__avatar .owner-logo-picker { flex-direction:column; align-items:flex-start; gap:16px; }
.cabinet-profile .owner-logo-picker__label { color:var(--ink); font-size:13px; font-weight:800; margin:0 0 5px; }
.cabinet-profile .owner-logo-picker__hint { color:var(--muted); font-size:12px; line-height:1.7; }
.cabinet-profile .auth-form { display:grid; gap:18px; }
.cabinet-profile .auth-form__field { display:grid; gap:8px; min-width:0; }
.cabinet-profile .auth-form__field > span { font-size:12px; line-height:1.5; }
.cabinet-profile .auth-form__field :is(input,select) { width:100%; min-height:48px; appearance:none; }
.cabinet-profile .auth-form > .cabinet-profile__hint { font-size:11px; line-height:1.6; margin:-10px 0 0; }
.cabinet-profile__public { padding-top:18px; border-top:1px solid var(--line); }
.cabinet-profile__public .cabinet-profile__hint { margin:12px 0; font-size:12px; line-height:1.65; }
.cabinet-profile__public-url { margin:12px 0 0; font-size:12px; font-weight:700; }
.cabinet-profile .auth-form > .btn { justify-self:start; min-width:140px; }
.cabinet-profile .cabinet-toggle__label { font-size:13px; font-weight:700; }

.mod-workspace { display:grid; grid-template-columns:215px minmax(0,1fr); gap:28px; align-items:start; }
.mod-sidebar { position:sticky; top:calc(var(--header-height) + 18px); min-width:0; }
.mod-sidebar .mod-tabs { display:flex; flex-direction:column; align-items:stretch; flex-wrap:nowrap; position:static; overflow:visible; border:0; background:none; margin:0; padding:0; gap:4px; }
.mod-tabs__group { font-size:10px; font-weight:800; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; padding:18px 12px 8px; }
.mod-tabs__group:first-child { padding-top:4px; }
.mod-sidebar .mod-tabs__btn { display:flex; align-items:center; gap:11px; flex:0 0 auto; min-height:44px; border:0; border-radius:12px; padding:11px 12px; background:none; font-size:12px; text-align:left; font-weight:700; color:var(--muted); white-space:normal; }
.mod-tabs__btn .icon { width:19px; height:19px; flex-shrink:0; }
.mod-sidebar .mod-tabs__btn:hover { background:var(--surface); color:var(--ink); }
.mod-sidebar .mod-tabs__btn--active, .mod-sidebar .mod-tabs__btn--active:hover { background:var(--mist); color:var(--blue); }
.mod-section-picker { display:none; }
.mod-panels { min-width:0; }
.mod-stats { grid-template-columns:repeat(3,minmax(0,1fr)); }
.mod-panel > .owner-panel { padding:26px; }
.mod-panel .mod-section__head { gap:16px; margin-bottom:24px; }
.mod-section__head .mod-hint { font-size:12px; line-height:1.7; margin:8px 0 0; }
.mod-claims-heading { margin-bottom:24px; }
.mod-claims-heading .mod-section__head { margin-bottom:0; }
.mod-claims .mod-claim-card__head .mod-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-top:10px; font-size:12px; }
.mod-claims .mod-claim-card__head time { white-space:nowrap; font-size:11px; }
.mod-claims .mod-dl { margin:22px 0; }
.mod-claims .mod-dl dt { font-size:11px; margin-bottom:5px; }
.mod-claims .mod-dl dd { font-size:13px; overflow-wrap:anywhere; }
.mod-claim-guide { padding:18px; margin:20px 0; border-radius:14px; background:var(--paper); }
.mod-claim-guide h4 { font-size:13px; margin:0 0 10px; }
.mod-claim-guide ol { padding-left:20px; margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.mod-claim-guide li + li { margin-top:6px; }
.mod-claim-guide a { color:var(--blue); font-weight:700; }
.mod-claims .mod-claim-card__hint { font-size:12px; line-height:1.7; }
.mod-claims .mod-claim-card__actions { gap:16px; padding-top:20px; }
.mod-claims .mod-reject-form { min-width:0; margin-left:auto; flex:0 1 auto; }
.mod-claims .mod-reject-form .mod-field { min-width:0; flex:1 1 180px; }
.mod-clubs-list .mod-table-wrap { border-radius:0; }
.mod-clubs-list .mod-table th { background:var(--surface); padding:12px 10px; }
.mod-clubs-list .mod-table td { padding:20px 10px; background:var(--surface); font-size:12px; vertical-align:middle; }
.mod-clubs-list .mod-table tbody tr:hover td { background:var(--surface); }
.mod-clubs-list .mod-table td:first-child > a:first-child { font-size:14px; font-weight:800; color:var(--ink); }
.mod-clubs-list .mod-slug { font-size:11px; margin-top:4px; }
.mod-clubs-list .section__link { display:block; font-size:11px; margin-top:8px; color:var(--blue); }
.mod-table__actions { flex-wrap:wrap; justify-content:flex-start; }
.mod-table__actions .btn { min-height:36px; padding:8px 11px; font-size:11px; }
@media(min-width:769px) {
  .mod-clubs-list .mod-table__actions { justify-content:flex-end; }
  .mod-clubs-list .mod-table :is(th,td):last-child { padding-right:0; }
}
.btn--edit { background:var(--mist); color:var(--blue); border:1px solid transparent; }
.btn--edit:hover { background:var(--brand); color:white; }
.mod-table .btn--danger, .mod-safety-actions .btn--danger { background:var(--surface); border:1px solid color-mix(in srgb,var(--danger) 35%,var(--surface)); color:var(--danger); }
.mod-table .btn--danger:hover, .mod-safety-actions .btn--danger:hover { background:color-mix(in srgb,var(--danger) 8%,var(--surface)); }
.mod-status { display:inline-flex; align-items:center; gap:6px; font-size:11px; font-weight:700; }
.mod-status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.mod-badge--ok { color:var(--blue); background:var(--mist); }
.mod-status--on { color:var(--ink); }
.mod-status--off { color:var(--muted); }
.mod-safety { display:grid; gap:22px; }
.mod-queue { padding:26px; background:var(--surface); border-radius:22px; min-width:0; }
.mod-queue .mod-review-card { padding:22px 0; border-top:1px solid var(--line); border-radius:0; }
.mod-queue .mod-review-card h3 { font-size:16px; line-height:1.5; margin:0; }
.mod-queue .mod-review-card p { font-size:13px; line-height:1.75; margin:12px 0; overflow-wrap:anywhere; }
.mod-review-card__head .mod-meta { margin:5px 0 0; font-size:12px; color:var(--muted); }
.mod-safety-actions { display:flex; flex-wrap:wrap; gap:8px; margin-top:20px; }
.mod-queue blockquote { background:var(--paper); padding:16px; border-radius:12px; border:0; border-left:3px solid var(--blue); margin:18px 0; font-size:13px; line-height:1.7; overflow-wrap:anywhere; }
.mod-empty { display:flex; flex-direction:column; align-items:center; text-align:center; padding:32px 20px; border-radius:16px; background:var(--paper); }
.mod-empty__icon { display:grid; place-items:center; width:46px; height:46px; border-radius:15px; color:var(--blue); background:var(--mist); margin-bottom:16px; }
.mod-empty strong { color:var(--ink); font-size:15px; }
.mod-empty p { margin:8px 0 0; max-width:390px; color:var(--muted); font-size:12px; line-height:1.75; }
.mod-checkin .mod-checkin__intro { margin:8px 0 0; font-size:13px; line-height:1.7; max-width:600px; }
.mod-checkin__help { margin-top:22px; border-top:1px solid var(--line); padding-top:18px; }
.mod-checkin__help summary { color:var(--blue); font-size:12px; font-weight:800; cursor:pointer; }
.mod-checkin__help p { margin:12px 0 0; font-size:12px; line-height:1.75; color:var(--muted); }
.mod-checkin__club { padding:22px; border:1px solid var(--line); border-radius:16px; }
.mod-checkin__club header > span { font-size:10px; font-weight:700; color:var(--blue); padding:6px 10px; border-radius:8px; background:var(--mist); }
.mod-checkin__coordinates { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; margin:20px 0; }
.mod-checkin__coordinates div { min-width:0; }
.mod-checkin__coordinates dt { color:var(--muted); font-size:11px; margin-bottom:5px; }
.mod-checkin__coordinates dd { margin:0; font-size:13px; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.mod-checkin .mod-location-confirm input { width:18px; height:18px; min-height:0; padding:0; margin:3px 0 0; accent-color:var(--brand); }
.mod-checkin .btn--secondary { background:var(--field); color:var(--ink); border:0; }
@media(max-width:1100px) {
  .passport__progress-row { grid-template-columns:1fr 1fr; }
  .mod-workspace { grid-template-columns:185px minmax(0,1fr); gap:20px; }
  .passport-raffle { display:block; }
  .passport-raffle__icon { display:none; }
}
@media(max-width:900px) {
  .cabinet-profile { grid-template-columns:1fr; }
  .cabinet-profile__aside { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .cabinet-profile__avatar .owner-logo-picker { flex-direction:row; flex-wrap:wrap; }
  .mod-workspace { display:block; }
  .mod-sidebar { position:static; margin:0 0 24px; }
  .mod-section-picker:not([hidden]) { display:grid; gap:8px; padding:16px 18px; border-radius:16px; background:var(--surface); }
  .mod-section-picker label { font-size:10px; color:var(--muted); font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
  .legacy-page main .mod-section-picker select { width:100%; min-height:46px; font-weight:700; padding:10px 12px; font-size:14px; }
  .mod-sidebar .mod-tabs--enhanced { display:none; }
}
@media(max-width:640px) {
  .passport__progress-row { grid-template-columns:1fr; }
  .passport__progress-row .passport-level { padding:24px; }
  .passport-level__head h2 { font-size:38px; }
  .passport-level__symbol { width:54px; height:54px; border-radius:17px; }
  .passport-raffle { padding:22px; }
  .passport-moscow__grid { grid-template-columns:1fr; }
  .account-dialog { max-height:calc(100dvh - 24px); width:calc(100vw - 24px); border-radius:20px; }
  .account-dialog__header { padding:20px; }
  .account-dialog__header h2 { font-size:20px; }
  .account-dialog__body { padding:4px 20px 24px; }
  .cabinet-profile__aside { grid-template-columns:1fr; }
  .cabinet-profile, .cabinet-profile__aside, .cabinet-profile__main { gap:16px; }
  .cabinet-profile .cabinet-card { padding:22px; }
  .cabinet-profile .auth-form > .btn { width:100%; }
  .mod-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .mod-panel > .owner-panel, .mod-queue { padding:20px; }
  .mod-clubs-list .mod-table tbody { gap:0; }
  .mod-clubs-list .mod-table tbody tr { padding:20px 0; border:0; border-bottom:1px solid var(--line); border-radius:0; background:var(--surface); gap:10px; }
  .mod-clubs-list .mod-table td { padding:0; border:0; }
  .mod-clubs-list .mod-table td[data-label]::before { content:attr(data-label) ' · '; color:var(--muted); }
  .mod-clubs-list .mod-table td:first-child > a:first-child { font-size:17px; }
  .mod-table__actions { margin-top:8px; }
  .mod-table__actions .btn { font-size:12px; min-height:42px; }
  .mod-checkin__club { padding:16px; }
  .mod-checkin__coordinates { grid-template-columns:1fr; }
  .mod-safety-actions .btn { flex:1 1 140px; }
}

/* Embedded applications share the parent panel's inset. */
.partner-application .claim-form--embedded { padding:0; margin:24px 0 0; border:0; background:none; box-shadow:none; }
@media(min-width:641px) and (max-width:768px) {
 .mod-clubs-list .mod-table tbody tr { background:var(--surface); padding:20px 0; border-radius:0; }
 .mod-clubs-list .mod-table td { padding:0; border:0; }
}

.cabinet-profile .auth-form__field select, .legacy-page main .claim-form__field select { appearance:auto; width:100%; min-height:48px; padding:12px 16px; font:inherit; color:var(--ink); }
@media(max-width:900px) {
 .cabinet-profile__aside, .cabinet-profile__main { display:contents; }
 .cabinet-profile__avatar { order:1; }
 .cabinet-profile__details { order:2; }
 .cabinet-profile__security { order:3; }
 .cabinet-profile__telegram { order:4; }
 .cabinet-profile__avatar .owner-logo-picker { display:flex; flex-wrap:nowrap; align-items:center; }
 .cabinet-profile__avatar .owner-logo-picker__btn { width:72px; height:72px; flex:0 0 72px; }
}

.mod-checkin__club > p { font-size:12px; line-height:1.7; color:var(--muted); margin:12px 0; }
.mod-location-form > label { font-size:12px; }
.mod-raffles > form[method=post] { display:grid; gap:18px; margin:24px 0; padding:22px; border:1px solid var(--line); border-radius:16px; }
.mod-raffles > form[method=post] > label { display:grid; gap:8px; min-width:0; font-size:13px; font-weight:700; }
.mod-raffles > form[method=post] input:not([type=hidden]) { width:100%; min-height:48px; }
.mod-raffles > form[method=post] > .btn { justify-self:start; }

.passport-tabs { scrollbar-width:none; }
.passport-tabs::-webkit-scrollbar { display:none; }

.mod-users-manual { margin-top:24px; }
.mod-users-manual > summary { color:var(--muted); font-size:12px; font-weight:700; cursor:pointer; }
.mod-users-manual .mod-users-grid { margin-top:18px; }
.mod-users-grid .owner-form, .mod-user-action-form { display:grid; gap:20px; margin-top:22px; }
.mod-users-grid .owner-form > .btn { justify-self:start; }
.mod-user-search { display:grid; grid-template-columns:minmax(0,1fr) minmax(160px,.6fr) auto; gap:14px; align-items:end; }
.mod-user-search .mod-field { min-width:0; }
.legacy-page main .mod-user-search select { appearance:auto; width:100%; min-height:49px; }
.mod-user-search .btn { min-height:49px; }
.mod-users-feedback { margin:12px 0; color:var(--muted); font-size:12px; }
.mod-users-feedback:empty { display:none; }
.mod-user-list { margin-top:22px; }
.mod-user { display:grid; grid-template-columns:42px minmax(0,1fr) auto 140px; align-items:center; gap:16px; padding:22px 0; border-top:1px solid var(--line); }
.mod-user__avatar { display:grid; place-items:center; width:42px; height:42px; border-radius:14px; background:var(--mist); color:var(--blue); font-weight:800; }
.mod-user__identity { min-width:0; overflow-wrap:anywhere; }
.mod-user h3 { margin:0; font-size:14px; }
.mod-user__identity p { margin:6px 0; font-size:11px; line-height:1.6; color:var(--muted); }
.mod-user__identity small { font-size:10px; color:var(--muted); }
.mod-user__identity .mod-user__reason { color:var(--danger); }
.mod-user__status { font-size:11px; font-weight:700; }
.mod-user__status--banned { color:var(--danger); }
.mod-user__protected { text-align:center; color:var(--muted); font-size:11px; }
.mod-user .btn { font-size:11px; padding:10px; }
.mod-user-dialog-actions { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:10px; padding-top:4px; }
@media(max-width:1100px) {
  .mod-user { grid-template-columns:38px minmax(0,1fr) auto; gap:12px; }
  .mod-user__status { grid-column:2; grid-row:2; }
  .mod-user > .btn, .mod-user__protected { grid-column:3; grid-row:1 / span 2; }
}
@media(max-width:640px) {
  .mod-user-search { grid-template-columns:minmax(0,1fr) auto; }
  .mod-user-search > label:first-of-type { grid-column:1 / -1; }
  .mod-user { grid-template-columns:38px minmax(0,1fr); }
  .mod-user__status { grid-column:2; grid-row:auto; }
  .mod-user > .btn, .mod-user__protected { grid-column:2; grid-row:auto; justify-self:start; }
  .mod-user-dialog-actions .btn { flex:1 1 120px; }
}
