:root {
  --clay-950:#351610; --clay-900:#65271d; --clay-800:#8f3d2d; --clay-700:#a84d37;
  --sand:#f1c3a5; --sand-soft:#fae8dc; --ball:#dce86b;
  --green-950:var(--clay-950); --green-900:var(--clay-900); --green-800:var(--clay-800); --green-700:var(--clay-700);
  --lime:var(--sand); --lime-soft:var(--sand-soft); --cream:#faf5f0; --surface:#fffdfb; --surface-2:#f5eae3;
  --ink:#30211d; --muted:#78665f; --line:#e7d5cb; --danger:#a52a24; --warning:#9a5a14;
  --shadow:0 18px 55px rgba(83,38,27,.12); --shadow-sm:0 8px 24px rgba(83,38,27,.09);
  --radius:1.15rem; --radius-sm:.82rem; --header:76px;
}
[data-theme="dark"] { --cream:#1a100e; --surface:#241613; --surface-2:#32201b; --ink:#fff5ef; --muted:#c8ada2; --line:#4b322b; --lime:#efb991; --lime-soft:#44271f; --shadow:0 18px 55px rgba(0,0,0,.32); --shadow-sm:0 8px 24px rgba(0,0,0,.26); }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:90px; }
body { margin:0; background:var(--cream); color:var(--ink); font-family:"DM Sans",sans-serif; line-height:1.55; -webkit-font-smoothing:antialiased; }
body::selection { background:var(--lime); color:var(--green-950); }
h1,h2,h3,strong,.brand { font-family:"Manrope",sans-serif; }
h1,h2,h3,p { margin-top:0; }
a { color:inherit; text-decoration:none; }
button,input,select,textarea { font:inherit; }
button { cursor:pointer; }
.hidden { display:none !important; }
.muted { color:var(--muted); }
.site-header { height:var(--header); display:flex; align-items:center; justify-content:space-between; padding:0 clamp(1rem,4vw,4.5rem); position:sticky; top:0; z-index:50; background:color-mix(in srgb,var(--cream) 88%,transparent); backdrop-filter:blur(18px); border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent); }
.brand { display:flex; align-items:center; gap:.75rem; font-weight:800; letter-spacing:-.03em; font-size:1.15rem; }
.brand img { border-radius:.75rem; box-shadow:0 5px 14px rgba(143,61,45,.25); }
.site-header nav { display:flex; gap:1.35rem; align-items:center; font-weight:600; font-size:.92rem; }
.site-header nav a { color:var(--muted); transition:.2s; }
.site-header nav a:hover { color:var(--green-700); }
.site-header nav .nav-cta { background:var(--green-800); color:#fff; padding:.72rem 1rem; border-radius:.8rem; }
.icon-button { width:40px; height:40px; border-radius:50%; border:1px solid var(--line); color:var(--ink); background:var(--surface); }
.menu-toggle { display:none; }
.flash { max-width:1160px; margin:1rem auto 0; padding:1rem 1.2rem; border-radius:var(--radius-sm); font-weight:600; box-shadow:var(--shadow-sm); }
.flash-success { color:var(--green-900); background:var(--lime-soft); border:1px solid #e7b794; }
.flash-error { color:#7a271a; background:#fef3f2; border:1px solid #fecdca; }
.hero { min-height:calc(88vh - var(--header)); max-width:1320px; margin:auto; padding:clamp(3rem,7vw,7rem) clamp(1.25rem,5vw,5rem); display:grid; grid-template-columns:1.03fr .97fr; gap:5vw; align-items:center; overflow:hidden; }
.hero h1 { font-size:clamp(3.2rem,6.2vw,6.1rem); line-height:.98; letter-spacing:-.065em; margin:.8rem 0 1.5rem; max-width:760px; }
.hero h1 em { color:var(--green-700); font-style:normal; }
.hero-copy>p { max-width:620px; font-size:1.18rem; color:var(--muted); }
.eyebrow { display:block; color:var(--green-700); text-transform:uppercase; font-weight:800; letter-spacing:.14em; font-size:.74rem; }
.hero-actions,.header-actions { display:flex; gap:.75rem; flex-wrap:wrap; margin-top:2rem; }
.hero-trust { display:flex; flex-wrap:wrap; gap:1rem; color:var(--muted); margin-top:2rem; font-size:.86rem; }
.button { min-height:46px; display:inline-flex; align-items:center; justify-content:center; border-radius:.82rem; padding:.75rem 1.2rem; font-weight:700; border:1px solid transparent; transition:transform .18s,box-shadow .18s,background .18s; }
.button:hover { transform:translateY(-1px); }
.button-primary { background:var(--green-800); color:#fff; box-shadow:0 8px 22px rgba(143,61,45,.22); }
.button-primary:hover { background:var(--green-700); box-shadow:0 11px 30px rgba(143,61,45,.3); }
.button-secondary { background:var(--surface); color:var(--ink); border-color:var(--line); }
.button-ghost { background:transparent; border-color:var(--line); color:var(--ink); }
.button-danger { background:#fff0ee; color:var(--danger); border-color:#fecdca; }
.button-block { width:100%; }
.button-small { min-height:38px; padding:.5rem .8rem; font-size:.85rem; }
.court-visual { aspect-ratio:1/.82; position:relative; background:linear-gradient(140deg,#ca704e,#8f3d2d); border-radius:2.3rem; padding:2rem; box-shadow:0 35px 75px rgba(108,45,31,.28); transform:rotate(1deg); }
.court-lines { position:absolute; inset:2.4rem; border:4px solid rgba(255,255,255,.8); }
.court-lines::before,.court-lines::after { content:""; position:absolute; background:rgba(255,255,255,.78); }
.court-lines::before { width:4px; height:100%; left:50%; }
.court-lines::after { height:4px; width:100%; top:50%; }
.court-lines .net { position:absolute; left:-6%; right:-6%; top:50%; height:12px; transform:translateY(-50%); background:repeating-linear-gradient(90deg,#fff 0 2px,transparent 2px 8px); filter:drop-shadow(0 3px 2px rgba(0,0,0,.18)); z-index:2; }
.court-lines .ball { position:absolute; width:48px; height:48px; border-radius:50%; background:var(--ball); top:18%; right:18%; box-shadow:0 10px 15px rgba(0,0,0,.22); }
.court-lines .ball::before { content:""; position:absolute; inset:6px -2px; border:3px solid rgba(255,255,255,.8); border-radius:50%; transform:rotate(35deg); }
.visual-card { position:absolute; left:-2rem; bottom:2.5rem; background:var(--surface); border-radius:1rem; padding:1rem 1.2rem; box-shadow:var(--shadow); display:flex; align-items:center; gap:.75rem; transform:rotate(-1deg); }
.visual-card small { display:block; color:var(--muted); margin-top:.15rem; }
.status-dot { width:12px; height:12px; background:#22c55e; border-radius:50%; box-shadow:0 0 0 6px #dcfce7; }
.section { padding:clamp(4rem,8vw,7rem) max(1.25rem,calc((100vw - 1180px)/2)); }
.section-compact { padding:2rem max(1.25rem,calc((100vw - 1280px)/2)); }
.section-soft { background:var(--surface-2); }
.section-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:2.2rem; }
.section-heading h2,.card-heading h2 { font-size:clamp(2rem,4vw,3.4rem); letter-spacing:-.045em; margin:.3rem 0 0; }
.section-heading>p { max-width:510px; color:var(--muted); }
.section-heading.centered { display:block; text-align:center; }
.section-heading.centered p { margin:.6rem auto; }
.booking-layout { display:grid; grid-template-columns:minmax(0,1.55fr) minmax(320px,.75fr); gap:1.5rem; align-items:start; }
.calendar-panel,.booking-card,.panel-card,.plan-card,.auth-card,.message-card { background:var(--surface); border:1px solid var(--line); border-radius:var(--radius); box-shadow:var(--shadow-sm); }
.calendar-panel,.booking-card,.panel-card { padding:1.5rem; }
.booking-card { position:sticky; top:calc(var(--header) + 1rem); }
.booking-card h3 { font-size:1.45rem; margin-bottom:.25rem; }
label { display:flex; flex-direction:column; gap:.4rem; font-size:.84rem; font-weight:700; margin-bottom:1rem; color:var(--ink); }
label small { font-weight:400; color:var(--muted); }
input,select,textarea { width:100%; min-height:46px; padding:.72rem .85rem; border-radius:.72rem; border:1px solid var(--line); background:var(--surface); color:var(--ink); outline:none; transition:border .18s,box-shadow .18s; }
input:focus,select:focus,textarea:focus { border-color:var(--green-700); box-shadow:0 0 0 4px color-mix(in srgb,var(--green-700) 13%,transparent); }
select[multiple] { min-height:110px; }
.member-picker-native { display:none !important; }
.member-picker { position:relative; width:100%; }
.member-picker-search { padding-left:2.55rem; background:var(--surface) no-repeat .85rem center; background-size:18px; }
.member-picker::before { content:"⌕"; position:absolute; left:.9rem; top:.62rem; z-index:2; color:var(--muted); font-size:1.2rem; pointer-events:none; }
.member-picker-results { position:absolute; left:0; right:0; top:calc(46px + .35rem); z-index:80; padding:.35rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface); box-shadow:var(--shadow); max-height:260px; overflow:auto; }
.member-picker-result { width:100%; border:0; background:transparent; color:var(--ink); display:flex; align-items:center; gap:.65rem; padding:.62rem; border-radius:.62rem; text-align:left; font-weight:650; }
.member-picker-result:hover,.member-picker-result:focus { background:var(--surface-2); outline:none; }
.member-picker-avatar { width:30px; height:30px; flex:none; display:grid; place-items:center; border-radius:50%; background:var(--lime-soft); color:var(--green-900); font-size:.75rem; font-weight:800; }
.member-picker-empty { display:block; color:var(--muted); padding:.8rem; font-size:.82rem; text-align:center; }
.member-picker-selected { display:flex; flex-wrap:wrap; gap:.42rem; margin-top:.55rem; }
.member-picker-chip { display:inline-flex; align-items:center; gap:.4rem; max-width:100%; padding:.35rem .42rem .35rem .65rem; border-radius:999px; background:var(--lime-soft); color:var(--green-900); font-size:.76rem; font-weight:750; }
.member-picker-chip button { width:22px; height:22px; border:0; border-radius:50%; background:color-mix(in srgb,var(--green-900) 12%,transparent); color:inherit; line-height:1; }
.field-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.85rem; }
.field-row.three { grid-template-columns:repeat(3,minmax(0,1fr)); }
.checkbox { flex-direction:row; align-items:center; font-weight:500; }
.checkbox input { width:18px; min-height:18px; accent-color:var(--green-700); }
.checkbox.align-end { padding-top:1.9rem; }
.price-preview { display:flex; justify-content:space-between; background:var(--surface-2); border-radius:.8rem; padding:1rem; margin:1rem 0; }
.price-preview strong { font-size:1.25rem; }
.form-note { text-align:center; color:var(--muted); font-size:.78rem; margin:.8rem 0 0; }
.form-note a { color:var(--green-700); font-weight:700; }
.availability-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; margin-top:1rem; }
.court-slots { border:1px solid var(--line); border-radius:1rem; padding:1rem; }
.court-slots h3 { display:flex; justify-content:space-between; margin-bottom:.8rem; }
.court-slots h3 small { font-family:"DM Sans"; font-size:.75rem; color:var(--muted); }
.slots { display:grid; grid-template-columns:repeat(4,1fr); gap:.45rem; }
.slot { border:1px solid var(--line); border-radius:.6rem; background:var(--surface); color:var(--ink); min-height:40px; font-size:.8rem; font-weight:700; }
.slot:hover:not(:disabled),.slot.selected-start { background:var(--green-800); border-color:var(--green-800); color:#fff; }
.slot.selected-range { background:var(--lime-soft); border-color:#d3916d; color:var(--green-900); }
.slot.selected-start { box-shadow:0 0 0 3px color-mix(in srgb,var(--green-700) 24%,transparent); }
.slot.selection-invalid { background:#fff0ee; border-color:#ef4444; color:#b42318; animation:selection-shake .22s linear 2; }
.slot:disabled { opacity:.35; cursor:not-allowed; text-decoration:line-through; }
.selection-summary { margin-top:1rem; padding:.78rem .9rem; border-radius:.75rem; background:var(--surface-2); color:var(--muted); font-size:.84rem; font-weight:650; }
.member-availability-panel { border:1px solid var(--line); border-radius:1rem; padding:1rem; margin-bottom:1rem; background:var(--surface-2); }
.member-availability-grid { grid-template-columns:1fr; }
.member-availability-grid .court-slots { background:var(--surface); }
.member-availability-grid .slots { grid-template-columns:repeat(8,1fr); }
@keyframes selection-shake { 25% { transform:translateX(-2px); } 75% { transform:translateX(2px); } }
.skeleton { height:260px; border-radius:1rem; background:linear-gradient(90deg,var(--surface) 25%,var(--line) 37%,var(--surface) 63%); background-size:400% 100%; animation:skeleton 1.3s infinite; }
@keyframes skeleton { to { background-position:-100% 0; } }
.plans-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:1rem; align-items:stretch; }
.plan-card { padding:1.6rem; position:relative; display:flex; flex-direction:column; }
.plan-card.featured { border:2px solid var(--green-700); transform:translateY(-8px); box-shadow:var(--shadow); }
.membership-context { max-width:900px; margin:-.5rem auto 2.2rem; padding:1rem 1.1rem; display:flex; align-items:center; gap:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface-2); box-shadow:var(--shadow-sm); }
.membership-context-icon { width:48px; height:48px; flex:0 0 48px; display:grid; place-items:center; border-radius:.85rem; background:var(--green-800); color:var(--lime); font-size:1.3rem; }
.membership-context-copy { min-width:0; flex:1; display:grid; gap:.1rem; }
.membership-context-copy>span { color:var(--green-700); font-size:.72rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.membership-context-copy>strong { font-size:1.15rem; }
.membership-context-copy>small { display:flex; align-items:center; flex-wrap:wrap; gap:.55rem; color:var(--muted); }
.plan-card.current-plan { border:2px solid var(--green-800); background:linear-gradient(180deg,var(--lime-soft),var(--surface) 42%); box-shadow:var(--shadow); transform:translateY(-8px); }
.plan-card.scheduled-plan { border:2px dashed var(--green-700); }
.plan-badge { position:absolute; top:0; right:1rem; transform:translateY(-50%); background:var(--green-800); color:#fff; border-radius:999px; padding:.35rem .7rem; text-transform:uppercase; font-size:.64rem; font-weight:800; letter-spacing:.08em; }
.plan-badge-current { background:var(--green-900); color:var(--lime); }
.plan-badge-scheduled { background:var(--lime); color:var(--green-950); }
.plan-icon { width:45px; height:45px; border-radius:.85rem; background:var(--lime-soft); color:var(--green-800); display:grid; place-items:center; margin-bottom:1rem; }
.plan-card h3 { margin-bottom:.4rem; }
.plan-price { font-family:"Manrope"; font-size:1.9rem; font-weight:800; letter-spacing:-.04em; }
.plan-price small,.membership-price small { font-size:.75rem; color:var(--muted); font-weight:500; }
.plan-card p,.plan-card li { color:var(--muted); font-size:.88rem; }
.plan-card ul { list-style:none; padding:0; flex:1; }
.plan-card li { padding:.35rem 0; }
.plan-card li::before { content:"✓"; color:var(--green-700); font-weight:800; margin-right:.5rem; }
.plan-current-action { background:var(--green-900); color:#fff; cursor:default; }
.plan-action-disabled { color:var(--muted); cursor:default; opacity:.75; }
.stats-strip { padding-top:2.2rem; padding-bottom:2.2rem; background:var(--green-950); color:#fff; display:grid; grid-template-columns:repeat(4,1fr); }
.stats-strip div { text-align:center; border-right:1px solid rgba(255,255,255,.15); }
.stats-strip div:last-child { border:0; }
.stats-strip strong { display:block; font-size:1.8rem; color:var(--lime); }
.stats-strip span { color:#e8cfc2; font-size:.84rem; }
.site-footer { padding:2rem clamp(1.25rem,5vw,5rem); background:#27110d; color:#fff; display:flex; align-items:center; justify-content:space-between; }
.site-footer span,.site-footer a { color:#cfb3a7; font-size:.86rem; }
.footer-actions { display:flex; align-items:center; gap:1rem; }
.auth-shell { min-height:calc(100vh - var(--header)); display:grid; grid-template-columns:1fr minmax(380px,540px); gap:5vw; align-items:center; max-width:1160px; margin:auto; padding:4rem 1.25rem; }
.auth-intro h1 { font-size:clamp(3rem,6vw,5.5rem); line-height:1; letter-spacing:-.06em; margin:.7rem 0 1.2rem; }
.auth-intro p { color:var(--muted); max-width:500px; font-size:1.1rem; }
.auth-card { padding:2rem; }
.auth-card h2 { font-size:1.9rem; }
.message-page { min-height:calc(100vh - var(--header)); display:grid; place-items:center; padding:2rem; }
.message-card { padding:2.5rem; max-width:620px; text-align:center; }
.message-card img { border-radius:1.4rem; }
.message-card h1 { font-size:2.4rem; letter-spacing:-.04em; margin:1rem 0 .5rem; }
.message-card p { color:var(--muted); }
.reservation-detail dl { display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin:1.5rem 0; }
.reservation-detail dl div { background:var(--surface-2); padding:.8rem; border-radius:.7rem; }
.reservation-detail dt { color:var(--muted); font-size:.72rem; }
.reservation-detail dd { margin:0; font-weight:700; }
.dashboard-hero,.admin-header { max-width:1280px; margin:auto; padding:3rem 1.25rem 1rem; display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.dashboard-hero h1,.admin-header h1 { font-size:clamp(2.5rem,5vw,4.5rem); line-height:1; letter-spacing:-.06em; margin:.4rem 0; }
.dashboard-hero p,.admin-header p { color:var(--muted); }
.balance-card { min-width:230px; padding:1.2rem; border-radius:1rem; background:var(--green-950); color:#fff; box-shadow:var(--shadow); }
.balance-card span,.balance-card small { display:block; color:#dfc0b2; }
.balance-card strong { display:block; color:var(--lime); font-size:2rem; }
.dashboard-summary-cards { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
.quota-card { min-width:245px; padding:1.2rem; border-radius:1rem; background:var(--surface); border:1px solid var(--line); box-shadow:var(--shadow-sm); }
.quota-card>span,.quota-card>small { display:block; color:var(--muted); }
.quota-card>strong { display:block; color:var(--green-700); font-size:1.35rem; margin:.2rem 0; }
.quota-card>i { display:block; height:6px; overflow:hidden; background:var(--surface-2); border-radius:999px; margin-top:.7rem; }
.quota-card>i>b { display:block; height:100%; max-width:100%; background:var(--green-700); border-radius:inherit; }
.dashboard-grid { display:grid; grid-template-columns:minmax(0,1.7fr) minmax(290px,.65fr); gap:1rem; align-items:start; }
.main-column,.side-column { display:grid; gap:1rem; }
.card-heading { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1.25rem; }
.card-heading h2 { font-size:1.8rem; }
.card-heading h3 { margin:0; }
.membership-price { font-family:"Manrope"; font-size:2rem; font-weight:800; margin:.6rem 0; }
.membership-pill { align-self:start; }
.status { display:inline-flex; align-items:center; gap:.42rem; width:max-content; max-width:100%; padding:.38rem .68rem; border:1px solid transparent; border-radius:999px; background:var(--surface-2); color:var(--muted); font-size:.72rem; font-weight:800; line-height:1.15; }
.status::before { content:""; width:.46rem; height:.46rem; flex:none; border-radius:50%; background:currentColor; opacity:.78; }
.status-active,.status-confirmed,.status-paid,.status-approved { background:#e7f8ec; border-color:#b9e4c5; color:#166534; }
.status-grace,.status-hold,.status-pending_payment,.status-approved_pending_payment { background:#fff8df; border-color:#efd98d; color:#8a5a00; }
.status-requested,.status-pending { background:#eaf5ff; border-color:#bddbf4; color:#175b89; }
.status-cancelled,.status-expired,.status-suspended,.status-rejected { background:#fff0ee; border-color:#f3c2bc; color:#b42318; }
.status-completed { background:#eef0ff; border-color:#cdd2f5; color:#3f4692; }
.status-refunded_external { background:#f2f4f7; border-color:#d0d5dd; color:#475467; }
.status-late_paid { background:#f2f4f7; border-color:#d0d5dd; color:#475467; }
[data-theme="dark"] .status-active,[data-theme="dark"] .status-confirmed,[data-theme="dark"] .status-paid,[data-theme="dark"] .status-approved { background:#163d25; border-color:#28643c; color:#9de3af; }
[data-theme="dark"] .status-grace,[data-theme="dark"] .status-hold,[data-theme="dark"] .status-pending_payment,[data-theme="dark"] .status-approved_pending_payment { background:#3c3116; border-color:#6b5521; color:#f5d66f; }
[data-theme="dark"] .status-requested,[data-theme="dark"] .status-pending { background:#173247; border-color:#285773; color:#9bd4f4; }
[data-theme="dark"] .status-cancelled,[data-theme="dark"] .status-expired,[data-theme="dark"] .status-suspended,[data-theme="dark"] .status-rejected { background:#421f1d; border-color:#713532; color:#f4aaa3; }
[data-theme="dark"] .status-completed { background:#292b51; border-color:#454982; color:#c6c9ff; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; min-width:650px; }
th { color:var(--muted); font-size:.72rem; text-transform:uppercase; letter-spacing:.08em; text-align:left; padding:.7rem; border-bottom:1px solid var(--line); }
td { padding:.85rem .7rem; border-bottom:1px solid var(--line); font-size:.88rem; }
td small { display:block; color:var(--muted); }
.table-actions { white-space:nowrap; }
.table-actions a,.table-actions button,.text-button { border:0; background:none; color:var(--green-700); font-weight:700; padding:.25rem .4rem; }
.empty-state { padding:2.5rem 1rem; text-align:center; border:1px dashed var(--line); border-radius:1rem; color:var(--muted); }
.empty-state strong,.empty-state span { display:block; }
.empty-inline { text-align:center; color:var(--muted); padding:1rem; }
.stack-list>div { display:flex; justify-content:space-between; align-items:center; gap:.75rem; padding:.8rem 0; border-bottom:1px solid var(--line); }
.stack-list>div:last-child { border:0; }
.stack-list small { display:block; color:var(--muted); }
.notification-list>div { padding:.75rem 0; border-bottom:1px solid var(--line); }
.notification-list p { color:var(--muted); font-size:.82rem; margin:.2rem 0; }
.notification-list small { color:var(--muted); font-size:.72rem; }
.admin-header { max-width:1320px; }
.metrics-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1rem; }
.metrics-grid article { background:var(--surface); border:1px solid var(--line); border-radius:1rem; padding:1.2rem; }
.metrics-grid span,.metrics-grid small { display:block; color:var(--muted); }
.metrics-grid strong { display:block; font-size:2rem; letter-spacing:-.04em; margin:.2rem 0; }
.admin-layout { display:grid; grid-template-columns:210px minmax(0,1fr); gap:1.2rem; align-items:start; }
.admin-nav { position:sticky; top:calc(var(--header) + 1rem); background:var(--surface); border:1px solid var(--line); border-radius:1rem; padding:.7rem; display:grid; gap:.2rem; }
.admin-nav a { padding:.7rem .8rem; border-radius:.65rem; color:var(--muted); font-weight:700; font-size:.86rem; }
.admin-nav a:hover { background:var(--surface-2); color:var(--green-700); }
.admin-content { display:grid; gap:1rem; min-width:0; }
.admin-two-col { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.inline-form { display:flex; gap:.4rem; align-items:center; }
.inline-form select { min-height:38px; }
.member-admin-toolbar { display:flex; justify-content:space-between; align-items:end; gap:1rem; margin-bottom:1rem; padding:1rem; border-radius:.9rem; background:var(--surface-2); }
.member-admin-toolbar label { width:min(100%,420px); margin:0; }
.member-admin-toolbar>span { color:var(--muted); font-size:.82rem; padding-bottom:.75rem; }
.member-table-actions { display:flex; flex-direction:column; align-items:flex-start; gap:.45rem; min-width:245px; }
.member-table-actions .inline-form { width:100%; }
.member-table-actions .inline-form select { min-width:135px; }
.member-admin-dialog { width:min(760px,calc(100vw - 2rem)); }
.member-profile-form { padding:1rem; margin-top:1rem; border-radius:.9rem; background:var(--surface-2); }
.member-profile-form h3,.member-security-grid h3 { margin:0 0 .8rem; }
.member-security-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; margin-top:1rem; }
.member-security-grid>form { padding:1rem; border:1px solid var(--line); border-radius:.9rem; }
.member-security-grid p { color:var(--muted); font-size:.82rem; }
.plans-admin { display:grid; gap:.75rem; }
.plan-admin-row { display:grid; grid-template-columns:1.5fr .8fr .65fr .65fr auto auto auto auto; gap:.55rem; align-items:end; padding:.75rem; border:1px solid var(--line); border-radius:.8rem; }
.plan-admin-row label { margin:0; }
.plan-admin-row .checkbox { padding-bottom:.7rem; white-space:nowrap; }
.settings-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.8rem; align-items:end; }
.exception-row { display:grid; grid-template-columns:1.6fr auto .6fr 1fr auto auto; gap:.7rem; align-items:end; padding:1rem 0; border-bottom:1px solid var(--line); }
.exception-row p { color:var(--muted); margin:.15rem 0; }
.audit-list>div { display:grid; grid-template-columns:36px 1fr auto; gap:.7rem; align-items:center; padding:.7rem 0; border-bottom:1px solid var(--line); }
.audit-icon { width:32px; height:32px; display:grid; place-items:center; border-radius:.6rem; background:var(--surface-2); }
.audit-list p { margin:0; }
.audit-list small { display:block; color:var(--muted); }
.audit-list time { color:var(--muted); font-size:.75rem; }
.agenda-heading { align-items:center; }
.agenda-heading p,.admin-reservation-creator>p { color:var(--muted); font-size:.86rem; margin:.35rem 0 0; }
.agenda-navigation { display:flex; align-items:center; gap:.55rem; flex:none; }
.agenda-navigation .icon-button { display:grid; place-items:center; }
.admin-calendar-layout { display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:1rem; align-items:start; }
.week-calendar-scroll { overflow:auto; border:1px solid var(--line); border-radius:1rem; background:var(--surface-2); }
.week-calendar { min-width:980px; display:grid; grid-template-columns:118px repeat(var(--calendar-days),minmax(122px,1fr)); gap:1px; background:var(--line); }
.calendar-corner,.calendar-day-heading,.calendar-court-heading,.calendar-day-cell { background:var(--surface); }
.calendar-corner,.calendar-day-heading { min-height:72px; padding:.7rem; display:flex; align-items:center; justify-content:center; }
.calendar-corner { color:var(--muted); font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.calendar-day-heading { flex-direction:column; gap:.1rem; color:var(--muted); }
.calendar-day-heading span { font-size:.72rem; font-weight:800; text-transform:uppercase; letter-spacing:.05em; }
.calendar-day-heading strong { font-size:1.45rem; line-height:1; color:var(--ink); }
.calendar-day-heading.is-today { background:var(--green-800); color:#f9ded0; }
.calendar-day-heading.is-today strong { color:#fff; }
.calendar-court-heading { min-height:118px; padding:.75rem; display:flex; flex-direction:column; justify-content:center; }
.calendar-court-heading small { color:var(--muted); margin-top:.2rem; }
.calendar-day-cell { min-height:118px; padding:.38rem; display:flex; flex-direction:column; gap:.38rem; position:relative; }
.calendar-day-cell.is-today { background:color-mix(in srgb,var(--lime-soft) 38%,var(--surface)); }
.calendar-reservation { width:100%; border:1px solid #e0b6a2; border-left:4px solid var(--green-700); border-radius:.65rem; padding:.55rem; background:#fff3ec; color:#54281e; text-align:left; display:flex; flex-direction:column; gap:.12rem; transition:transform .16s,box-shadow .16s; }
.calendar-reservation:hover { transform:translateY(-1px); box-shadow:0 7px 18px rgba(20,82,44,.15); }
.calendar-reservation .reservation-time { color:#8f3d2d; font-size:.7rem; font-weight:800; }
.calendar-reservation strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.8rem; }
.calendar-reservation small { color:#815f53; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:.67rem; }
.calendar-reservation.status-card-hold,.calendar-reservation.status-card-pending_payment { background:#fff8df; border-color:#ead38a; border-left-color:#d49b14; color:#5e4206; }
.calendar-reservation.status-card-completed { background:#f2f3ff; border-color:#cbd0f4; border-left-color:#6268b5; color:#303478; opacity:.82; }
.calendar-empty-slot { margin:auto; width:34px; height:34px; border:1px dashed var(--line); border-radius:50%; color:var(--muted); background:transparent; opacity:0; transition:.18s; }
.calendar-day-cell:hover .calendar-empty-slot { opacity:1; }
.calendar-empty-slot:hover { color:#fff; border-color:var(--green-700); background:var(--green-700); }
.calendar-no-courts { grid-column:1/-1; margin:1rem; }
.admin-reservation-creator { position:sticky; top:calc(var(--header) + 1rem); border:1px solid var(--line); border-radius:1rem; padding:1.1rem; background:var(--surface); }
.admin-reservation-creator h3 { margin:.25rem 0; font-size:1.35rem; }
.admin-reservation-creator form { margin-top:1rem; }
.creator-empty { margin-top:1rem; padding:1.2rem .8rem; }
.creator-empty .button { margin-top:.8rem; }
.admin-reservation-dialog { width:min(820px,calc(100vw - 2rem)); max-height:calc(100vh - 2rem); overflow:auto; border:1px solid var(--line); border-radius:1.2rem; padding:1.35rem; background:var(--surface); color:var(--ink); box-shadow:0 30px 90px rgba(5,30,16,.28); }
.admin-reservation-dialog::backdrop { background:rgba(4,20,11,.56); backdrop-filter:blur(3px); }
.dialog-heading { display:flex; justify-content:space-between; gap:1rem; align-items:start; }
.dialog-heading h2 { margin:.25rem 0; font-size:2rem; letter-spacing:-.04em; }
.dialog-heading p { color:var(--muted); margin:0; }
.reservation-dialog-meta { display:flex; gap:.65rem; align-items:center; flex-wrap:wrap; padding:1rem 0; margin:1rem 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.reservation-dialog-meta>span:not(.status) { color:var(--muted); flex:1; min-width:180px; }
.reservation-dialog-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.reservation-dialog-grid form { padding:1rem; background:var(--surface-2); border-radius:.9rem; }
.reservation-dialog-grid h3 { margin:0 0 .8rem; }
.dialog-danger-zone { display:flex; justify-content:space-between; align-items:center; gap:1rem; border:1px solid #fecdca; background:#fff8f7; padding:1rem; border-radius:.9rem; margin-top:1rem; color:#7a271a; }
[data-theme="dark"] .dialog-danger-zone { background:#361b19; }
.dialog-danger-zone small { display:block; color:var(--muted); margin-top:.2rem; }
.reservation-page { max-width:1180px; margin:auto; padding:3rem 1.25rem 5rem; }
.reservation-page-heading { display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:1.5rem; }
.reservation-page-heading h1 { font-size:clamp(2.7rem,6vw,4.8rem); line-height:1; letter-spacing:-.06em; margin:.35rem 0 .65rem; }
.reservation-page-heading p { color:var(--muted); margin:0; }
.reservation-page-heading>.status { margin-bottom:.5rem; }
.reservation-detail-grid { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(275px,.7fr); gap:1rem; align-items:start; }
.reservation-main-column { display:grid; gap:1rem; }
.reservation-side-column { display:grid; gap:.8rem; position:sticky; top:calc(var(--header) + 1rem); }
.reservation-facts { display:grid; grid-template-columns:repeat(4,1fr); gap:.65rem; }
.reservation-facts>div { display:flex; flex-direction:column; gap:.22rem; padding:1rem; border-radius:.85rem; background:var(--surface-2); min-width:0; }
.reservation-facts span,.payment-summary span { color:var(--muted); font-size:.75rem; }
.reservation-facts strong { overflow:hidden; text-overflow:ellipsis; }
.participant-list { border-top:1px solid var(--line); margin-top:1.25rem; padding-top:1.25rem; }
.participant-list h2 { font-size:1rem; margin-bottom:.75rem; }
.participant-list>div { display:flex; align-items:center; gap:.75rem; padding:.5rem 0; }
.participant-list>div>span:last-child { display:flex; flex-direction:column; }
.participant-list small { color:var(--muted); }
.participant-avatar { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; background:var(--lime-soft); color:var(--green-800); font-weight:800; }
.payment-manager .card-heading p,.share-links-card .card-heading p { color:var(--muted); margin:.4rem 0 0; max-width:630px; }
.payment-total { font-size:1.55rem; color:var(--green-700); white-space:nowrap; }
.payment-choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.75rem; }
.payment-choice { min-height:170px; display:flex; flex-direction:column; align-items:flex-start; gap:.45rem; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); color:var(--ink); text-align:left; transition:.18s; }
.payment-choice:hover { border-color:var(--green-700); transform:translateY(-2px); box-shadow:var(--shadow-sm); }
.payment-choice small { color:var(--muted); line-height:1.4; }
.payment-choice-icon { width:38px; height:38px; display:grid; place-items:center; border-radius:.7rem; background:var(--lime-soft); color:var(--green-800); font-size:1.2rem; font-weight:800; margin-bottom:.25rem; }
.split-payment-form { margin-top:1rem; padding:1rem; background:var(--surface-2); border-radius:1rem; }
.split-form-heading { display:flex; justify-content:space-between; align-items:start; gap:1rem; margin-bottom:1rem; }
.split-form-heading small { display:block; color:var(--muted); margin-top:.2rem; }
.guest-share-fields { display:grid; gap:.65rem; }
.guest-share-fields>[data-guest-share] { display:grid; grid-template-columns:38px 1fr 1fr; gap:.7rem; align-items:center; padding:.7rem; border:1px solid var(--line); border-radius:.8rem; background:var(--surface); }
.guest-share-fields>[data-guest-share]>span { width:30px; height:30px; display:grid; place-items:center; border-radius:50%; background:var(--green-800); color:#fff; font-weight:800; }
.guest-share-fields label { margin:0; }
.split-payment-form>.button { margin-top:1rem; }
.payment-progress { display:grid; gap:.4rem; margin:1rem 0; }
.payment-progress>span { height:9px; overflow:hidden; border-radius:999px; background:var(--surface-2); }
.payment-progress i { display:block; height:100%; background:var(--green-700); border-radius:inherit; }
.payment-progress small { color:var(--muted); }
.share-link-list { display:grid; gap:.7rem; }
.share-link-row { display:grid; grid-template-columns:minmax(130px,.55fr) minmax(0,1.45fr); gap:1rem; align-items:center; padding:.85rem; border:1px solid var(--line); border-radius:.85rem; }
.share-link-row>div:first-child { display:flex; flex-direction:column; }
.share-link-row small { color:var(--muted); }
.share-link-actions { display:grid; grid-template-columns:1fr auto; gap:.5rem; }
.share-link-actions input { min-width:0; color:var(--muted); background:var(--surface-2); }
.local-notice { margin:1rem 0 0; padding:.8rem; border-radius:.7rem; background:#fff8df; color:#75510a !important; font-size:.8rem; }
[data-theme="dark"] .local-notice { background:#3c3116; color:#f5d66f !important; }
.payment-summary { padding:1.25rem; }
.payment-summary>div { display:flex; justify-content:space-between; gap:1rem; padding:.75rem 0; border-bottom:1px solid var(--line); }
.payment-summary>div strong { font-size:.9rem; text-align:right; }
.payment-summary .payment-summary-total { padding-top:1rem; }
.payment-summary .payment-summary-total strong { font-size:1.25rem; color:var(--green-700); }
.payment-summary .payment-paid strong { color:var(--green-700); }
.payment-summary p { color:var(--muted); font-size:.8rem; margin:1rem 0 0; }
.reservation-actions { display:grid; gap:.6rem; }
.guest-payment-page { min-height:calc(100vh - var(--header)); display:grid; place-items:center; padding:2rem 1rem 4rem; }
.guest-payment-card { width:min(100%,520px); background:var(--surface); border:1px solid var(--line); border-radius:1.35rem; box-shadow:var(--shadow); padding:2rem; }
.guest-payment-brand { display:flex; align-items:center; gap:1rem; }
.guest-payment-brand img { border-radius:.85rem; }
.guest-payment-brand h1 { font-size:2rem; letter-spacing:-.04em; margin:.2rem 0; }
.guest-payment-card>.reservation-time { color:var(--muted); padding:1rem 0; border-bottom:1px solid var(--line); }
.guest-payment-amount { display:flex; flex-direction:column; align-items:center; padding:1.6rem; margin:1rem 0; border-radius:1rem; background:var(--green-950); color:#fff; }
.guest-payment-amount span,.guest-payment-amount small { color:#dfc0b2; }
.guest-payment-amount strong { color:var(--lime); font-size:2.5rem; letter-spacing:-.04em; }
.payment-success { text-align:center; padding:2rem .5rem; }
.payment-success>span { width:64px; height:64px; display:grid; place-items:center; margin:0 auto 1rem; border-radius:50%; background:var(--lime-soft); color:var(--green-800); font-size:2rem; font-weight:800; }
.payment-success p { color:var(--muted); }
.confirm-dialog { width:min(520px,calc(100vw - 2rem)); border:1px solid var(--line); border-radius:1.15rem; padding:1.3rem; background:var(--surface); color:var(--ink); box-shadow:0 30px 90px rgba(5,30,16,.3); }
.confirm-dialog::backdrop { background:rgba(4,20,11,.58); backdrop-filter:blur(3px); }
.confirm-dialog h2 { margin:.2rem 0; font-size:1.7rem; }
.confirm-dialog .dialog-heading { margin-bottom:1rem; }
.confirm-dialog-actions { display:flex; justify-content:flex-end; gap:.65rem; margin-top:1rem; }
.pwa-install-button,.pwa-update-button { position:fixed; z-index:95; border:0; font:inherit; font-weight:800; box-shadow:0 14px 38px rgba(68,25,17,.3); }
.pwa-install-button { right:max(1rem,env(safe-area-inset-right)); bottom:max(1rem,env(safe-area-inset-bottom)); min-height:54px; display:flex; align-items:center; gap:.65rem; padding:.45rem 1rem .45rem .5rem; border-radius:999px; background:var(--green-800); color:#fff; }
.pwa-install-button:hover { background:var(--green-700); transform:translateY(-2px); }
.pwa-install-button>span { width:40px; height:40px; display:grid; place-items:center; border-radius:50%; background:rgba(255,255,255,.16); color:var(--lime); font-size:1.3rem; line-height:1; }
.pwa-update-button { left:max(1rem,env(safe-area-inset-left)); bottom:max(1rem,env(safe-area-inset-bottom)); min-height:46px; padding:.65rem 1rem; border-radius:.8rem; background:var(--ball); color:#30211d; }
.install-dialog { width:min(560px,calc(100vw - 2rem)); max-height:calc(100dvh - 2rem); overflow:auto; border:1px solid var(--line); border-radius:1.25rem; padding:1.4rem; background:var(--surface); color:var(--ink); box-shadow:0 30px 90px rgba(53,22,16,.34); }
.install-dialog::backdrop { background:rgba(38,16,12,.62); backdrop-filter:blur(4px); }
.install-dialog h2 { margin:.2rem 0; font-size:1.8rem; letter-spacing:-.035em; }
.install-dialog .dialog-heading>div>p { margin:0; color:var(--muted); }
.install-instructions { margin-top:1.2rem; }
.install-platform { display:flex; flex-direction:column; gap:.15rem; padding:.9rem 1rem; margin-bottom:.8rem; border-radius:.9rem; background:var(--lime-soft); color:var(--green-950); }
.install-platform span { font-size:.82rem; color:var(--green-700); }
.install-instructions ol { list-style:none; display:grid; gap:.6rem; padding:0; margin:0; }
.install-instructions li { display:grid; grid-template-columns:34px 1fr; gap:.7rem; align-items:center; padding:.72rem; border:1px solid var(--line); border-radius:.82rem; background:var(--surface-2); }
.install-instructions li>span { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:var(--green-800); color:#fff; font-weight:800; }
.install-instructions li p { margin:0; }
.install-secure-note { margin:1rem 0 0; padding:.8rem; border-radius:.75rem; background:#fff8df; color:#75510a; font-size:.82rem; }
[data-theme="dark"] .install-platform { background:#44271f; color:#f8dfd3; }
[data-theme="dark"] .install-secure-note { background:#3c3116; color:#f5d66f; }
hr { border:0; border-top:1px solid var(--line); margin:1.4rem 0; }
.toast { position:fixed; right:1rem; bottom:1rem; max-width:380px; background:var(--green-950); color:#fff; padding:1rem 1.2rem; border-radius:.9rem; box-shadow:var(--shadow); transform:translateY(140%); opacity:0; transition:.25s; z-index:100; }
.toast.show { transform:translateY(0); opacity:1; }
.toast.error { background:#7a271a; }
@media (max-width:1050px) {
  .plans-grid { grid-template-columns:repeat(2,1fr); }
  .booking-layout,.dashboard-grid { grid-template-columns:1fr; }
  .booking-card { position:static; }
  .plan-admin-row { grid-template-columns:repeat(4,1fr); }
  .exception-row { grid-template-columns:1fr 1fr; }
  .admin-calendar-layout { grid-template-columns:1fr; }
  .admin-reservation-creator { position:static; }
  .reservation-detail-grid { grid-template-columns:1fr; }
  .reservation-side-column { position:static; grid-template-columns:1fr auto; }
  .reservation-actions { min-width:220px; }
}
@media (max-width:820px) {
  .site-header { height:auto; min-height:68px; padding:.7rem 1rem; }
  .site-header nav>a:not(.nav-cta),.site-header nav .nav-cta { display:none; }
  .menu-toggle { display:inline-flex; align-items:center; justify-content:center; }
  .site-header nav.open { position:absolute; left:1rem; right:1rem; top:calc(100% + .4rem); padding:.85rem; background:var(--surface); border:1px solid var(--line); border-radius:1rem; box-shadow:var(--shadow); display:grid; grid-template-columns:1fr auto auto; z-index:60; }
  .site-header nav.open>a:not(.nav-cta),.site-header nav.open .nav-cta { display:block; grid-column:1/-1; padding:.72rem .8rem; border-radius:.7rem; }
  .site-header nav.open .nav-cta { text-align:center; margin-top:.3rem; }
  .site-header nav.open .menu-toggle { grid-column:2; grid-row:1; }
  .site-header nav.open [data-theme-toggle] { grid-column:3; grid-row:1; }
  .hero { grid-template-columns:1fr; min-height:auto; padding-top:3.5rem; }
  .hero h1 { font-size:clamp(3.2rem,14vw,5.2rem); }
  .court-visual { max-width:600px; width:100%; justify-self:center; }
  .section-heading { display:block; }
  .availability-grid { grid-template-columns:1fr; }
  .auth-shell { grid-template-columns:1fr; padding-top:2.5rem; }
  .auth-intro h1 { font-size:3.3rem; }
  .metrics-grid { grid-template-columns:repeat(2,1fr); }
  .admin-layout { grid-template-columns:1fr; }
  .admin-nav { position:static; display:flex; overflow:auto; }
  .admin-nav a { white-space:nowrap; }
  .admin-two-col { grid-template-columns:1fr; }
  .settings-grid { grid-template-columns:repeat(2,1fr); }
  .member-availability-grid .slots { grid-template-columns:repeat(6,1fr); }
  .dashboard-hero,.admin-header { align-items:start; flex-direction:column; }
  .balance-card { width:100%; }
  .dashboard-summary-cards { width:100%; }
  .payment-choice-grid { grid-template-columns:1fr; }
  .payment-choice { min-height:auto; }
  .reservation-facts { grid-template-columns:repeat(2,1fr); }
  .reservation-side-column { grid-template-columns:1fr; }
  .member-security-grid { grid-template-columns:1fr; }
}
@media (max-width:580px) {
  .hero { padding-left:1rem; padding-right:1rem; }
  .court-visual { border-radius:1.5rem; }
  .visual-card { left:.8rem; right:.8rem; bottom:1rem; }
  .section,.section-compact { padding-left:1rem; padding-right:1rem; }
  .plans-grid,.field-row,.field-row.three,.stats-strip,.metrics-grid,.settings-grid { grid-template-columns:1fr; }
  .plan-card.featured,.plan-card.current-plan { transform:none; }
  .membership-context { align-items:flex-start; flex-wrap:wrap; }
  .membership-context .button { width:100%; }
  .stats-strip div { padding:.8rem; border-right:0; border-bottom:1px solid rgba(255,255,255,.15); }
  .site-footer { align-items:flex-start; gap:1rem; flex-direction:column; }
  .auth-shell { padding:2rem 1rem; }
  .auth-card { padding:1.35rem; }
  .auth-intro h1 { font-size:2.8rem; }
  .slots { grid-template-columns:repeat(3,1fr); }
  .member-availability-grid .slots { grid-template-columns:repeat(3,1fr); }
  .reservation-detail dl { grid-template-columns:1fr; }
  .plan-admin-row,.exception-row { grid-template-columns:1fr; }
  .header-actions { width:100%; }
  .header-actions .button { flex:1; }
  .agenda-heading,.dialog-danger-zone { align-items:flex-start; flex-direction:column; }
  .agenda-navigation { width:100%; }
  .agenda-navigation .button { flex:1; }
  .reservation-dialog-grid { grid-template-columns:1fr; }
  .reservation-page { padding:2rem 1rem 4rem; }
  .reservation-page-heading { align-items:flex-start; flex-direction:column; gap:.8rem; }
  .reservation-page-heading>.status { margin:0; }
  .reservation-facts { grid-template-columns:1fr; }
  .guest-share-fields>[data-guest-share],.share-link-row { grid-template-columns:1fr; }
  .guest-share-fields>[data-guest-share]>span { display:none; }
  .share-link-actions { grid-template-columns:1fr; }
  .guest-payment-card { padding:1.3rem; }
  .confirm-dialog-actions { flex-direction:column-reverse; }
  .confirm-dialog-actions .button { width:100%; }
  .install-dialog { padding:1.1rem; }
  .pwa-install-button { right:max(.75rem,env(safe-area-inset-right)); bottom:max(.75rem,env(safe-area-inset-bottom)); }
  .dashboard-summary-cards { grid-template-columns:1fr; }
  .quota-card { min-width:0; }
  .member-admin-toolbar { align-items:stretch; flex-direction:column; }
  .member-admin-toolbar label { width:100%; }
  .member-admin-toolbar>span { padding:0; }
  .member-table-actions { min-width:210px; }
}

.account-form,.refund-profile-form,.membership-change-form { display:grid; gap:.85rem; }
.card-heading p,.refund-request-form p { color:var(--muted); margin:.35rem 0 0; }
.refund-card h3 { margin:.2rem 0 .8rem; }
.refund-request-form { display:grid; grid-template-columns:minmax(220px,1fr) minmax(130px,.35fr) minmax(230px,.8fr) auto; gap:.8rem; align-items:end; }
.refund-request-form>div p { font-size:.82rem; line-height:1.45; }
.refund-request-form label { margin:0; }
.plan-change-notice { display:grid; gap:.2rem; margin:1rem 0 0; padding:.8rem; border-radius:.8rem; background:var(--lime-soft); color:var(--green-950); }
.plan-change-notice small { color:var(--green-700); font-weight:700; text-transform:uppercase; letter-spacing:.06em; }
.plan-change-notice .text-button { justify-self:start; padding:0; }
[data-theme="dark"] .plan-change-notice { background:#44271f; color:#f8dfd3; }
.refund-admin-list { display:grid; gap:.8rem; }
.refund-admin-row { display:grid; grid-template-columns:minmax(220px,1.15fr) minmax(220px,.85fr) minmax(180px,.8fr) minmax(150px,.6fr) auto; gap:.8rem; align-items:end; padding:1rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface-2); }
.refund-admin-person,.refund-bank-summary { display:grid; gap:.25rem; align-self:start; }
.refund-admin-person .status { justify-self:start; }
.refund-admin-person p { color:var(--muted); font-size:.82rem; margin:.25rem 0 0; }
.refund-bank-summary span,.refund-bank-summary small,.refund-admin-person small { color:var(--muted); }
.refund-bank-summary code { font-size:1rem; color:var(--ink); }
.refund-admin-actions { display:flex; gap:.5rem; align-items:center; }
.button:disabled { opacity:.5; cursor:not-allowed; transform:none; }
.panel-page-heading { max-width:1280px; margin:0 auto; padding:3rem 1.25rem .7rem; }
.panel-page-heading h1 { font-size:clamp(2.4rem,5vw,4rem); line-height:1; letter-spacing:-.055em; margin:.4rem 0; }
.panel-page-heading p { color:var(--muted); margin:.4rem 0 0; }
.panel-page-heading-with-card { display:flex; justify-content:space-between; align-items:end; gap:2rem; }
.panel-page-heading-with-card .balance-card { min-width:245px; }
.panel-subnav-wrap { padding-top:.5rem; padding-bottom:.5rem; }
.panel-subnav { display:flex; gap:.35rem; overflow-x:auto; padding:.4rem; border:1px solid var(--line); border-radius:1rem; background:var(--surface); box-shadow:var(--shadow-sm); scrollbar-width:none; }
.panel-subnav::-webkit-scrollbar { display:none; }
.panel-subnav a { display:flex; align-items:center; gap:.48rem; flex:0 0 auto; padding:.72rem .9rem; border-radius:.72rem; color:var(--muted); font-size:.86rem; font-weight:700; }
.panel-subnav a span { width:1.2rem; text-align:center; color:var(--green-700); font-size:1rem; }
.panel-subnav a:hover { color:var(--green-700); background:var(--surface-2); }
.panel-subnav a.is-active { color:#fff; background:var(--green-800); box-shadow:0 8px 22px rgba(143,61,45,.22); }
.panel-subnav a.is-active span { color:var(--lime); }
.panel-settings-shell { display:grid; grid-template-columns:minmax(0,760px); justify-content:center; padding-top:1rem; }
.panel-settings-shell-wide { grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr); align-items:start; gap:1rem; }
.panel-settings-grid { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr); gap:1rem; align-items:start; padding-top:1rem; }
.panel-settings-grid .panel-card,.panel-settings-shell .panel-card { min-width:0; }
.settings-form-actions { display:flex; justify-content:flex-end; gap:.65rem; padding-top:.3rem; }
.membership-manage-link { margin-top:1.1rem; }
.membership-detail-card>p { color:var(--muted); }
.refund-request-form-stacked { grid-template-columns:1fr; align-items:stretch; }
.refund-request-form-stacked .button { justify-self:start; }
.refund-history-card { grid-column:1/-1; }
.form-warning { color:#8a5a00; }
@media (max-width:1200px) {
  .refund-request-form,.refund-admin-row { grid-template-columns:1fr 1fr; }
  .refund-admin-actions { grid-column:1/-1; }
}
@media (max-width:820px) {
  .panel-page-heading-with-card { align-items:start; flex-direction:column; }
  .panel-page-heading-with-card .balance-card { width:100%; }
  .panel-settings-grid,.panel-settings-shell-wide { grid-template-columns:1fr; }
}
@media (max-width:580px) {
  .refund-request-form,.refund-admin-row { grid-template-columns:1fr; }
  .panel-page-heading { padding:2.2rem 1rem .5rem; }
  .panel-subnav-wrap { padding-left:1rem; padding-right:1rem; }
  .panel-subnav a { padding:.68rem .78rem; }
  .settings-form-actions { align-items:stretch; flex-direction:column-reverse; }
  .settings-form-actions .button { width:100%; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto !important; animation:none !important; transition:none !important; } }
