/* Csepel SC kék–piros arculat */
:root {
  --green: #174a8b;
  --dark: #0b2854;
  --lime: #e1252f;
  --cream: #f4f6fa;
  --ink: #13233d;
  --muted: #697386;
  --line: #d9dee8;
  --red: #e1252f;
}

.hero { background: linear-gradient(135deg, #0b2854 0%, #174a8b 72%, #1e5aa3 100%); }
.field { border-color: #f15a61; background: repeating-linear-gradient(90deg, #1e5aa3 0, #1e5aa3 14.25%, #174a8b 14.25%, #174a8b 28.5%); }
.field-title { text-shadow: 0 3px 10px #061c40; }
.date-btn.active, .primary, .avatar { color: #fff; }
.staff-link { box-shadow: inset 4px 0 0 var(--red); }
.metrics article { border-top-color: var(--green); }
.metrics .warning { border-top-color: var(--red); }
.slot:hover { background: var(--green); box-shadow: inset 0 -4px 0 var(--red); }
.slot { display: flex; min-height: 58px; flex-direction: column; align-items: center; justify-content: center; gap: 3px; }
.slot small { font-size: 10px; font-weight: 600; text-decoration: none; }
.slot.partial { border-color: #e39a26; background: #fff4df; color: #985e06; }
.slot.partial:hover { background: #e39a26; color: #fff; box-shadow: none; }
.slot.busy small { text-decoration: none; }
.booking-actions { display: flex; gap: 6px; margin-top: 7px; }
.booking-actions button { border: 0; padding: 5px 8px; color: #fff; font-size: 10px; font-weight: 800; }
.booking-actions .approve { background: var(--green); }
.booking-actions .reject { background: var(--red); }
.notification-panel { margin-top: 16px; }
.notification-item { display: grid; grid-template-columns: 190px 1fr 150px; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--line); font-size: 12px; }
.notification-item span { color: var(--muted); }
.price-estimate { margin: -6px 0 0; padding: 13px 16px; background: #eaf1fb; border-left: 3px solid var(--green); color: var(--dark); font-weight: 800; }
.price-estimate span { color: #18704a; }
.price-estimate small { font-weight: 600; color: var(--muted); }
.service-check { padding: 12px; background: #f4f6fa; border: 1px solid var(--line); }
.crest-image { width: 52px; height: 52px; padding: 0; border: 0; border-radius: 0; object-fit: contain; filter: drop-shadow(0 2px 3px #071b3830); }
.inverse .crest-image { width: 58px; height: 58px; border: 0; }
.booking-section { max-width: 1600px; padding-left: 5vw; padding-right: 5vw; }
.discount-banner { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; margin-bottom: 18px; padding: 22px 26px; color: #fff; background: linear-gradient(105deg, var(--red), #b91524); box-shadow: 0 12px 28px #9d15252a; }
.discount-number { font: 800 36px Manrope, sans-serif; white-space: nowrap; }
.discount-banner strong { font: 800 18px Manrope, sans-serif; }
.discount-banner p { margin: 4px 0 0; color: #ffe6e8; font-size: 13px; }
.discount-tag { padding: 8px 11px; border: 1px solid #ffffff70; font-size: 9px; font-weight: 800; letter-spacing: 1.4px; white-space: nowrap; }
.filters { padding: 28px; gap: 22px; border-top: 4px solid var(--green); box-shadow: 0 14px 34px #0b285412; }
.filters label { flex: 1; min-width: 155px; font-size: 13px; }
.filters select, .filters input { width: 100%; min-width: 0; padding: 16px 14px; font-size: 14px; }
.date-strip { margin-top: 2px; }
.date-btn { padding-top: 25px; padding-bottom: 25px; }
.slots { grid-template-columns: repeat(4, 1fr); gap: 13px; margin-top: 28px; }
.slot { min-height: 70px; font-size: 15px; }
@media(max-width:1100px){.filters{display:grid;grid-template-columns:repeat(3,1fr)}.legend{margin:0}.slots{grid-template-columns:repeat(3,1fr)}}
@media(max-width:650px){.booking-section{padding-left:18px;padding-right:18px}.discount-banner{grid-template-columns:auto 1fr;padding:18px;gap:14px}.discount-number{font-size:28px}.discount-banner strong{font-size:14px}.discount-tag{display:none}.filters{grid-template-columns:1fr;padding:18px}.slots{grid-template-columns:1fr 1fr}.slot{min-height:64px;font-size:12px}}
.locations-section { max-width: 1500px; margin: auto; padding: 80px 8vw; border-top: 1px solid var(--line); }
.location-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px; }
.location-card { overflow: hidden; background: #fff; border: 1px solid var(--line); box-shadow: 0 14px 35px #0b28540e; }
.location-card iframe { display: block; width: 100%; height: 320px; border: 0; filter: saturate(.8); }
.location-body { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 24px; }
.location-index { display: grid; place-items: center; width: 42px; height: 42px; color: #fff; background: var(--red); font-weight: 800; }
.location-body h3 { margin: 0 0 5px; font-size: 19px; }
.location-body p { margin: 0 0 4px; color: var(--ink); }
.location-body small { color: var(--muted); }
.location-body a { color: var(--green); font-size: 12px; font-weight: 800; text-decoration: none; white-space: nowrap; }
.address-source { margin: 16px 0 0; color: var(--muted); font-size: 11px; }
.address-source a { color: var(--green); }
@media(max-width:900px){.location-grid{grid-template-columns:1fr}.location-card iframe{height:280px}}
@media(max-width:650px){.locations-section{padding:55px 18px}.location-card iframe{height:230px}.location-body{grid-template-columns:auto 1fr;padding:18px}.location-body a{grid-column:2}}
.admin-page { animation: adminFade .2s ease; }
@keyframes adminFade { from { opacity: 0; transform: translateY(5px); } }
.page-title { display: flex; align-items: center; justify-content: space-between; margin-bottom: 28px; }
.page-title h1 { margin: 7px 0 3px; font-size: 34px; }
.page-title p { margin: 0; color: var(--muted); }
.outline-button { padding: 11px 15px; border: 1px solid var(--green); background: #fff; color: var(--green); font-weight: 800; }
.admin-toolbar { display: grid; grid-template-columns: 1fr 210px 210px; gap: 12px; margin-bottom: 14px; padding: 16px; background: #fff; border: 1px solid var(--line); }
.admin-toolbar input, .admin-toolbar select { width: 100%; min-width: 0; }
.admin-table-wrap { padding: 0; overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { padding: 14px 16px; background: #eef2f8; color: var(--muted); font-size: 10px; letter-spacing: 1px; text-align: left; white-space: nowrap; }
.data-table td { padding: 15px 16px; border-bottom: 1px solid var(--line); vertical-align: top; }
.data-table td small { display: block; margin-top: 4px; color: var(--muted); }
.data-table tbody tr:hover { background: #f8faff; }
.table-actions { min-width: 170px; }
.table-action { margin: 0 4px 4px 0; padding: 6px 8px; border: 0; color: #fff; font-size: 10px; font-weight: 800; }
.table-action.approve { background: var(--green); }
.table-action.reject { background: var(--red); }
.table-action.neutral { border: 1px solid var(--line); background: #fff; color: var(--ink); }
.empty-cell { padding: 45px!important; color: var(--muted); text-align: center; }
.page-metrics { grid-template-columns: repeat(3, 1fr); }
.pitch-admin-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-bottom: 18px; }
.pitch-admin-card { display: grid; grid-template-columns: 105px 1fr auto; gap: 18px; align-items: center; padding: 18px; background: #fff; border: 1px solid var(--line); }
.pitch-visual { display: grid; place-items: center; width: 105px; height: 80px; color: #fff; background: repeating-linear-gradient(90deg,#1e5aa3 0,#1e5aa3 25%,#174a8b 25%,#174a8b 50%); border: 2px solid #fff; outline: 1px solid var(--green); }
.pitch-visual span { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid #fff; border-radius: 50%; font-weight: 800; }
.pitch-admin-card h3 { margin: 5px 0; }
.pitch-admin-card p { margin: 0; color: var(--muted); font-size: 12px; }
.pitch-tags { display: flex; gap: 5px; margin-top: 8px; }
.pitch-tags span { padding: 3px 6px; background: #eaf1fb; color: var(--green); font-size: 9px; font-weight: 800; }
.price-panel { padding: 0; }
.price-panel .panel-head { padding: 22px; }
.table-note { padding: 0 22px 18px; color: var(--muted); font-size: 12px; }
.staff-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.staff-card { display: grid; grid-template-columns: auto 1fr auto; gap: 16px; align-items: center; padding: 24px; background: #fff; border: 1px solid var(--line); }
.staff-card h3, .staff-card p { margin: 0 0 5px; }
.staff-card p { color: var(--muted); font-size: 12px; }
.staff-card>button { border: 0; background: transparent; font-size: 22px; }
.admin-avatar { background: var(--red); }
.role-info { margin-top: 16px; }
.role-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.role-grid div { padding: 18px; background: #f5f7fb; }
.role-grid p { color: var(--muted); }
.settings-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.settings-grid article { display: flex; flex-direction: column; gap: 17px; }
.settings-grid h2 { margin: 0 0 8px; }
.settings-grid input, .settings-grid select { width: 100%; min-width: 0; }
.settings-grid label small { color: var(--muted); font-weight: 500; }
.setting-check { flex-direction: row; align-items: center; padding: 10px 0; font-weight: 500; }
.setting-check input { width: auto; min-width: auto; }
@media(max-width:1100px){.settings-grid{grid-template-columns:1fr 1fr}.pitch-admin-grid{grid-template-columns:1fr}.admin-toolbar{grid-template-columns:1fr 1fr}.admin-toolbar input{grid-column:1/-1}}
@media(max-width:700px){.page-title{align-items:flex-start;gap:14px}.page-title h1{font-size:27px}.admin-toolbar,.staff-grid,.role-grid,.settings-grid{grid-template-columns:1fr}.admin-toolbar input{grid-column:auto}.page-metrics{grid-template-columns:1fr}.pitch-admin-card{grid-template-columns:70px 1fr}.pitch-visual{width:70px;height:65px}.pitch-admin-card>button{grid-column:2}.notification-item{grid-template-columns:1fr}.data-table{min-width:850px}}
.view-switch { display: inline-flex; padding: 4px; background: #e5eaf2; }
.view-switch button { padding: 9px 13px; border: 0; background: transparent; color: var(--muted); font-size: 12px; font-weight: 800; }
.view-switch button.active { background: #fff; color: var(--green); box-shadow: 0 2px 8px #0b28541a; }
.top-view-switch { margin-bottom: 13px; }
.booking-calendar-panel { background: #fff; border: 1px solid var(--line); }
.calendar-controls { display: flex; gap: 14px; align-items: end; padding: 16px; border-bottom: 1px solid var(--line); }
.calendar-controls label { margin-left: auto; }
.calendar-controls input { padding: 9px; min-width: 160px; }
.day-navigation { display: flex; gap: 5px; }
.day-arrow { width: 42px; padding-left: 0; padding-right: 0; font-size: 18px; }
.calendar-days { display: grid; grid-template-columns: repeat(7,1fr); border-bottom: 1px solid var(--line); }
.calendar-days button { padding: 13px; border: 0; border-right: 1px solid var(--line); background: #fff; color: var(--muted); }
.calendar-days button span,.calendar-days button strong { display: block; }
.calendar-days button strong { margin-top: 3px; font-size: 18px; }
.calendar-days button.active { background: var(--green); color: #fff; }
.occupancy-legend { display: flex; flex-wrap: wrap; gap: 15px; padding: 12px 16px; border-bottom: 1px solid var(--line); color: var(--muted); font-size: 10px; }
.occupancy-legend i { display: inline-block; width: 11px; height: 11px; margin-right: 5px; vertical-align: -2px; }
.legend-quarter{background:#8bb7e5}.legend-half{background:#3d79bb}.legend-full{background:var(--green)}.legend-request{background:#e39a26}
.occupancy-scroll { max-height: 680px; overflow: auto; }
.occupancy-grid { display: grid; grid-template-columns: 70px repeat(4,minmax(220px,1fr)); min-width: 950px; }
.calendar-corner,.pitch-column-head { position: sticky; top: 0; z-index: 3; padding: 13px; background: var(--dark); color: #fff; border-right: 1px solid #ffffff20; }
.pitch-column-head span,.pitch-column-head strong,.pitch-column-head small { display: block; }
.pitch-column-head span { color: #f15a61; font-size: 9px; font-weight: 800; letter-spacing: 1px; }
.pitch-column-head strong { margin: 3px 0; font-size: 12px; }
.pitch-column-head small { color: #aebed5; font-size: 9px; }
.time-cell { padding: 12px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--muted); font-size: 11px; font-weight: 800; text-align: right; }
.calendar-corner { position: sticky; left: 0; top: 0; z-index: 8; box-shadow: 2px 0 5px #0b285420; }
.time-cell { position: sticky; left: 0; z-index: 5; background: #fff; box-shadow: 2px 0 5px #0b285412; }
.time-cell { grid-column: 1!important; min-width: 70px; }
.occupancy-cell { min-height: 54px; padding: 4px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: #fafbfc; display: flex; gap: 3px; }
.occupancy-cell.occupied { background: #eef3fa; }
.occupancy-booking { flex: 1; min-width: 0; padding: 6px; border: 0; border-left: 4px solid var(--green); background: #dbe9f7; color: var(--dark); text-align: left; overflow: hidden; }
.occupancy-booking strong,.occupancy-booking span { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.occupancy-booking strong { font-size: 10px; }.occupancy-booking span { margin-top: 2px; font-size: 8px; }
.occupancy-booking.units-1 { border-left-color:#8bb7e5 }.occupancy-booking.units-2 { border-left-color:#3d79bb }.occupancy-booking.units-4 { border-left-color:var(--green);background:#cbdcf0 }.occupancy-booking.request { border-left-color:#e39a26;background:#fff0d6 }
@media(max-width:700px){.calendar-controls{align-items:stretch;flex-wrap:wrap}.calendar-controls label{margin-left:0}.calendar-days button{padding:9px 3px}.occupancy-scroll{max-height:600px}}
.billing-box { margin: 4px 0; padding: 20px; border: 1px solid var(--line); background: #f7f9fc; }
.billing-box legend { padding: 0 8px; color: var(--dark); font: 800 15px Manrope, sans-serif; }
.billing-box input,.billing-box select { width: 100%; min-width: 0; }
.billing-box label small { color: var(--muted); font-weight: 500; }
.billing-privacy { margin: 13px 0 0; color: var(--muted); font-size: 11px; }
.invoice-table { min-width: 1200px; }
.invoice-incomplete { background: #fff8eb; }
.invoice-readiness { display: block; width: max-content; margin-top: 7px; padding: 4px 7px; font-size: 9px; font-weight: 800; }
.invoice-readiness.ready { color: #176747; background: #e0f2e9; }
.invoice-readiness.missing { color: #a15e08; background: #ffedce; }
#page-overview .metrics { grid-template-columns: 1fr 1fr; }
#page-overview .metrics article:nth-child(2),#page-overview .metrics article:nth-child(3),#page-overview .admin-grid>.payments { display: none; }
#page-overview .admin-grid { grid-template-columns: 1fr; }
.admin-action-dialog form { padding: 34px; }
.admin-action-dialog h2 { margin: 5px 0 16px; }
.admin-action-dialog label { margin-bottom: 12px; }
.detail-summary { margin-bottom: 18px; padding: 14px; background: #eef3fa; }
.detail-summary p { margin: 4px 0; }
.dialog-actions { display: flex; justify-content: space-between; gap: 12px; margin-top: 18px; }
.danger { border-color: var(--red); color: var(--red); }
.block-list { margin-top: 16px; }
.block-row { display: flex; justify-content: space-between; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--line); }
.block-row div { display: flex; flex-direction: column; }
.block-row span { margin-top: 4px; color: var(--muted); font-size: 11px; }
.monthly-billing-controls { display: flex; align-items: end; gap: 10px; margin-bottom: 14px; padding: 16px; background: #fff; border: 1px solid var(--line); }
.monthly-billing-controls input { min-width: 170px; padding: 10px; }
.monthly-billing-controls select { min-width: 210px; padding: 10px; }
.monthly-billing-controls>span { margin-left: auto; max-width: 350px; color: var(--muted); font-size: 11px; }
@media(max-width:800px){.monthly-billing-controls{align-items:stretch;flex-direction:column}.monthly-billing-controls>span{margin-left:0}}
.billing-section-row td { padding: 15px 18px!important; background: var(--dark); color: #fff; }
.billing-section-row.monthly td { background: var(--green); }
.billing-section-row td span { float: right; color: #cbd8e9; font-size: 11px; }
.booking-kind-note { margin: 2px 0 14px; padding: 11px 13px; background: #eaf1fb; border-left: 3px solid var(--green); color: var(--dark); font-size: 12px; }
.occupancy-grid { grid-auto-rows: 54px; position: relative; }
.occupancy-booking.unified { position: relative; z-index: 2; align-self: stretch; height: auto; margin-top: 3px; margin-bottom: 3px; box-shadow: 0 3px 8px #0b285428; }
.occupancy-booking.unified strong,.occupancy-booking.unified span { white-space: normal; line-height: 1.15; }
.occupancy-booking.unified.internal-booking { background: #e3edf9; }
.privacy-section,.contact-section { max-width: 1500px; margin: auto; padding: 80px 8vw; border-top: 1px solid var(--line); }
.privacy-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.privacy-grid article { padding: 24px; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--green); }
.privacy-grid h3 { margin-top: 0; }.privacy-grid p,.official-policy p { color: var(--muted); line-height: 1.6; }
.official-policy { margin-top: 16px; padding: 22px; background: #eaf1fb; border-left: 4px solid var(--red); }
.official-policy a { color: var(--green); font-weight: 800; }
.contact-card { display: grid; grid-template-columns: auto 1fr auto; gap: 22px; align-items: center; padding: 30px; background: var(--dark); color: #fff; }
.contact-avatar { display: grid; place-items: center; width: 70px; height: 70px; border-radius: 50%; background: var(--red); font: 800 20px Manrope; }
.contact-card h3 { margin: 5px 0 10px; font-size: 25px; }.contact-card>div:nth-child(2)>a { display: block; margin: 4px 0; color: #dce8f5; text-decoration: none; }
.contact-actions { display: flex; gap: 8px; }.contact-actions a { padding: 11px 14px; background: #fff; color: var(--dark); font-size: 12px; font-weight: 800; text-decoration: none; }
@media(max-width:700px){.privacy-section,.contact-section{padding:55px 18px}.privacy-grid{grid-template-columns:1fr}.contact-card{grid-template-columns:auto 1fr}.contact-actions{grid-column:1/-1;flex-wrap:wrap}}
#bookingForm .check a { color: var(--green); font-weight: 800; }
.features article { border-top-color: var(--red); }
.toast { border-left-color: var(--red); }
/* Kiegészítő adminfelületek */
.extra-search{min-width:280px;max-width:380px;padding:12px 14px;border:1px solid #d6ddea;border-radius:10px;background:#fff}.extra-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.report-bar{margin:18px 0}.report-bar>div{display:flex;justify-content:space-between;gap:16px;margin-bottom:7px}.report-bar i{display:block;height:10px;border-radius:8px;background:#e8edf5;overflow:hidden}.report-bar b{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,#0755a5,#e32636)}@media(max-width:800px){.extra-grid{grid-template-columns:1fr}.extra-search{min-width:0;width:100%}.page-title{align-items:stretch}}
.page-title-actions{display:flex;gap:10px;flex-wrap:wrap}.weekly-schedule{margin-top:22px}.weekly-controls{display:flex;align-items:end;gap:14px;flex-wrap:wrap}.weekly-controls>div{margin-right:auto}.weekly-controls h2{margin:4px 0}.weekly-controls label{font-size:12px;font-weight:700}.weekly-controls select,.weekly-controls input{display:block;margin-top:5px;padding:10px;border:1px solid #ccd5e2;border-radius:8px}.weekly-print{margin-top:16px}.weekly-print>header{display:flex;justify-content:space-between;border-bottom:4px solid #0755a5;padding-bottom:15px}.weekly-print>header span{color:#e32636;font-weight:900}.weekly-print>header h1{margin:3px 0}.weekly-day{margin:20px 0;break-inside:avoid}.weekly-day h2{display:flex;justify-content:space-between;background:#0755a5;color:#fff;padding:8px 12px;font-size:16px}.weekly-day table{width:100%;border-collapse:collapse;font-size:13px}.weekly-day th,.weekly-day td{padding:8px;border:1px solid #cfd7e3;text-align:left}.weekly-day th{background:#edf2f8}.weekly-day td small{display:block;color:#0755a5}.weekly-empty{text-align:center!important;color:#778397}.weekly-print footer{margin-top:18px;border-top:1px solid #ccd5e2;padding-top:10px;font-size:11px;color:#657084}
@media print{body *{visibility:hidden!important}#weeklyPrintArea,#weeklyPrintArea *{visibility:visible!important}#weeklyPrintArea{position:absolute;inset:0;width:100%;margin:0;padding:8mm;box-shadow:none;border:0}.weekly-day{margin:10px 0}.weekly-day h2{background:#0755a5!important;color:#fff!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.weekly-day th{background:#edf2f8!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}.sidebar,.admin-header{display:none!important}@page{size:A4 landscape;margin:8mm}}
.birthday-section{padding:80px 5%;background:linear-gradient(135deg,#eaf5ff 0%,#fff 45%,#fff1f2 100%)}.birthday-showcase{max-width:1280px;margin:auto;display:grid;grid-template-columns:.9fr 1.1fr;border-radius:28px;overflow:hidden;box-shadow:0 24px 70px rgba(7,52,102,.18);background:#fff}.birthday-visual{position:relative;overflow:hidden;padding:54px;color:#fff;background:linear-gradient(145deg,#064d98,#0874c9)}.birthday-visual:after{content:'⚽';position:absolute;right:-35px;bottom:-60px;font-size:220px;opacity:.12}.birthday-kicker{font-weight:900;letter-spacing:.18em;color:#fff}.birthday-visual h2{font-size:48px;line-height:1.02;margin:18px 0}.birthday-visual>p{font-size:18px;max-width:430px}.birthday-package{position:relative;z-index:1;margin-top:44px;padding:24px;border-radius:20px;background:#fff;color:#073d75;display:grid;gap:10px}.birthday-package strong{color:#e32636}.birthday-package span{font-size:20px;font-weight:800}.birthday-package small{color:#637083}.birthday-balloons{display:flex;gap:12px;margin:28px 0}.birthday-balloons i{width:48px;height:62px;border-radius:50%;background:#ffbe22}.birthday-balloons i:nth-child(2){background:#e32636}.birthday-balloons i:nth-child(3){background:#55d8d0}.birthday-form-card{padding:48px}.birthday-form-card h2{font-size:38px;margin:8px 0}.birthday-included{padding:14px 18px;margin:18px 0;border-radius:12px;background:#e9f4ff;color:#064d98}.birthday-message{margin:12px 0 0;font-weight:700}.birthday-message.success{color:#147a43}.birthday-message.error{color:#c72636}@media(max-width:850px){.birthday-showcase{grid-template-columns:1fr}.birthday-visual h2{font-size:38px}.birthday-form-card,.birthday-visual{padding:32px}}
.birthday-heading{max-width:900px;margin:0 auto 32px;text-align:center}.birthday-heading h2{font-size:40px;margin:8px 0}.birthday-tier-grid{max-width:1280px;margin:0 auto 48px;display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.birthday-tier{position:relative;padding:30px;border:2px solid #dce5f0;border-radius:24px;background:#fff;box-shadow:0 12px 34px rgba(7,52,102,.1);display:flex;flex-direction:column}.birthday-tier.selected{border-color:#e32636;transform:translateY(-5px)}.birthday-tier.featured{background:linear-gradient(180deg,#f3f8ff,#fff)}.tier-icon{font-size:38px}.birthday-tier small{margin-top:15px;color:#0755a5;font-weight:900;letter-spacing:.1em}.birthday-tier h3{font-size:29px;margin:7px 0;color:#073d75}.birthday-tier ul{padding-left:20px;line-height:1.75;flex:1}.birthday-tier>strong{font-size:18px;color:#e32636;margin:12px 0}.birthday-tier button{border:0;border-radius:10px;padding:12px;background:#0755a5;color:#fff;font-weight:800;cursor:pointer}.birthday-tier.selected button{background:#e32636}.tier-ribbon{position:absolute;right:18px;top:18px;padding:6px 9px;border-radius:20px;background:#ffbe22;color:#073d75;font-size:10px;font-weight:900}.chosen-package{margin-top:0!important}@media(max-width:900px){.birthday-tier-grid{grid-template-columns:1fr}.birthday-heading h2{font-size:32px}}
.birthday-extras{max-width:1280px;margin:-20px auto 48px;padding:25px;border-radius:22px;background:#073d75;color:#fff;display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:14px;align-items:stretch}.birthday-extras h3{margin:5px 0}.birthday-extras label{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-content:center;padding:15px;border:1px solid rgba(255,255,255,.2);border-radius:14px;background:rgba(255,255,255,.08);cursor:pointer}.birthday-extras label input{grid-row:1/3}.birthday-extras label span{font-size:24px}.birthday-extras label small{grid-column:2;color:#b9d9f8}@media(max-width:900px){.birthday-extras{grid-template-columns:1fr}}
.birthday-heading{position:relative;max-width:1100px!important;padding:40px 35px!important;border-radius:26px;background:radial-gradient(circle at 90% 10%,rgba(255,190,34,.28),transparent 32%),linear-gradient(135deg,#063f7e,#0874c9);color:#fff;overflow:hidden;box-shadow:0 20px 50px rgba(7,52,102,.2)}.birthday-heading:after{content:'⚽';position:absolute;right:35px;bottom:-38px;font-size:150px;opacity:.1}.birthday-heading .step-label{color:#a9dcff}.birthday-heading h2{color:#fff!important;font-size:44px!important;max-width:760px;margin-left:auto!important;margin-right:auto!important}.birthday-heading p{max-width:760px;margin:10px auto 0;font-size:17px;color:#dceeff}.birthday-heading-badge{display:inline-flex;align-items:center;gap:8px;margin-bottom:15px;padding:8px 13px;border:1px solid rgba(255,255,255,.32);border-radius:30px;background:rgba(255,255,255,.12);font-size:12px;font-weight:900;letter-spacing:.08em}.birthday-heading-badge span{font-size:20px}.birthday-extras{position:relative;overflow:hidden;background:linear-gradient(135deg,#062f60,#0755a5)!important;box-shadow:0 18px 45px rgba(4,39,81,.22)}.birthday-extras:before{content:'';position:absolute;width:220px;height:220px;border-radius:50%;background:#e32636;opacity:.1;right:-80px;top:-120px}.birthday-extras>div,.birthday-extras label{position:relative;z-index:1}.birthday-extras label{transition:.2s ease;border:2px solid rgba(255,255,255,.14)!important}.birthday-extras label:hover{transform:translateY(-3px);background:rgba(255,255,255,.14)!important}.birthday-extras label.selected{border-color:#ffbe22!important;background:rgba(255,190,34,.16)!important;box-shadow:inset 0 0 0 1px rgba(255,190,34,.2)}.birthday-extras label input{width:20px;height:20px;accent-color:#ffbe22}.birthday-extras label strong{font-size:15px}.birthday-extras label small{color:#d5eaff!important}.extras-running-total{display:flex;align-items:center;justify-content:space-between;margin-top:15px;padding:10px 13px;border-radius:10px;background:rgba(255,255,255,.11)}.extras-running-total small{color:#cce5ff}.extras-running-total strong{color:#ffcf43}@media(max-width:900px){.birthday-heading{padding:30px 22px!important}.birthday-heading h2{font-size:34px!important}.birthday-heading:after{font-size:100px}}
.weekly-birthday td{background:#fff2f3!important}.weekly-birthday td:first-child{border-left:4px solid #e32636}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #ffbe22;outline-offset:2px}
dialog{max-height:calc(100vh - 24px);overflow:auto}button:disabled{cursor:not-allowed;opacity:.6}
.hub-return{display:flex;align-items:center;gap:10px;margin-top:auto;padding:12px;color:#dbe8f5;font-size:11px;font-weight:800;text-decoration:none}.hub-return:hover{color:#fff;background:#ffffff10}.hub-return+.logout{margin-top:0}
@media(max-width:650px){button,.side-item,.table-action{min-height:44px}.monthly-billing-controls{align-items:stretch}.monthly-billing-controls>*{width:100%}.birthday-tier-grid{grid-template-columns:1fr!important}.birthday-showcase{grid-template-columns:1fr!important}.birthday-form-card,.birthday-visual{padding:24px!important}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
