/* Alapszínek, tipográfia és a közös oldalkeret. */
:root{color-scheme:dark;--bg:#111827;--panel:#1f2937;--green:#22c55e;--text:#f9fafb;--muted:#9ca3af;--red:#ef4444}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font:16px system-ui,sans-serif}
a{color:#86efac}
main{width:min(1100px,94%);margin:2rem auto}
.wide-page{width:min(1600px,98%)}
.login-card{width:min(430px,92%);padding:2rem;background:var(--panel);border-radius:1rem}
.login-page{width:min(1050px,94%);margin:3rem auto;display:grid;grid-template-columns:minmax(320px,430px) minmax(380px,1fr);gap:1.5rem;align-items:start}.login-page .login-card{width:auto;margin:0}.location-card{padding:2rem;background:var(--panel);border-radius:1rem}.location-card h2{margin-top:0}.location-details{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.map-frame{position:relative;width:100%;height:320px;overflow:hidden;border:1px solid #4b5563;border-radius:.75rem}.map-frame iframe{width:100%;height:100%;border:0}
label{display:block;margin:1rem 0}
input,select,textarea,button{width:100%;padding:.75rem;border:1px solid #4b5563;border-radius:.5rem;font:inherit}
button{background:var(--green);color:#052e16;border:0;font-weight:700;cursor:pointer}
.error{padding:.75rem;background:#450a0a;color:#fecaca;border-radius:.5rem}
.success{padding:.75rem;background:#052e16;color:#bbf7d0;border-radius:.5rem}
nav{display:flex;gap:1rem;flex-wrap:wrap;padding:1rem;background:var(--panel)}
.main-nav{align-items:center}.main-nav form{margin:0}.main-nav a,.nav-button{white-space:nowrap}
.nav-button{width:auto;padding:0;background:transparent;color:#86efac}
.user-name{margin-left:auto;color:var(--muted)}
table{width:100%;border-collapse:collapse;background:var(--panel)}
th,td{padding:.7rem;border-bottom:1px solid #374151;text-align:left}
.actions{display:flex;gap:.5rem;align-items:center}.actions form{margin:0}
.actions button{width:auto}
/* Űrlapok, táblázatos műveletek, szűrők és összesítő kártyák. */
.pass-form{display:grid;grid-template-columns:repeat(2,minmax(110px,1fr));gap:.4rem;min-width:270px}
.pass-form label{margin:0;font-size:.85rem}.pass-form button{grid-column:1/-1}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;margin-bottom:2rem}
.form-grid .wide{grid-column:1/-1}.form-grid button,.button-link{align-self:end}
.button-link{display:inline-block;padding:.75rem;border-radius:.5rem;background:#374151;text-align:center}
.google-login{display:block;background:#fff;color:#1f2937;border:1px solid #d1d5db;font-weight:700;text-decoration:none}
.auth-alternative{display:flex;align-items:center;gap:.75rem;margin:1.25rem 0;color:var(--muted)}.auth-alternative::before,.auth-alternative::after{content:'';height:1px;flex:1;background:#4b5563}.auth-alternative span{white-space:nowrap}
.danger{background:var(--red);color:white;width:auto}
.cancel-booking{background:#2563eb;color:white}
.filter-bar{margin:1rem 0 2rem}.filter-bar label{margin:0;min-width:150px}
.filter-grid{display:grid;grid-template-columns:110px minmax(180px,1fr) minmax(240px,1.4fr) minmax(180px,1fr) auto auto;gap:.75rem;align-items:end;margin:1rem 0 2rem}
.filter-grid label{margin:0}.filter-grid button{width:auto}.table-scroll{overflow-x:auto}
.history-filter{display:grid;grid-template-columns:repeat(2,minmax(180px,240px)) auto auto;gap:.75rem;align-items:end;justify-content:start;margin:1rem 0 2rem}
.history-filter label{margin:0}.history-filter input{min-width:0}.history-filter button,.history-filter .button-link{width:auto;white-space:nowrap}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1rem 0}
.summary-grid div{background:var(--panel);padding:1rem;border-radius:.5rem}
.summary-grid strong,.summary-grid small{display:block}
.notice{margin:1.5rem 0;padding:1rem;background:var(--panel);border-left:4px solid var(--green)}
/* Alkalomkeret-jelzés, vásárlási tájékoztatók és érvényességi állapotok. */
.pass-status{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(250px,1.6fr) auto;gap:1rem;align-items:center;margin:1rem 0 1.5rem;padding:1rem 1.25rem;background:#052e16;border:2px solid #22c55e;border-radius:.75rem}.pass-status>div{display:flex;gap:.45rem;align-items:baseline;flex-wrap:wrap}.pass-status small{width:100%;color:#bbf7d0;font-weight:700}.pass-status strong{font-size:2rem;line-height:1}.pass-status .pass-validity{font-size:1.35rem}.pass-status.is-warning{background:#451a03;border-color:#f59e0b}.pass-status.is-warning small{color:#fde68a}.pass-status.is-danger{background:#450a0a;border-color:#ef4444}.pass-status.is-danger small{color:#fecaca}.pass-status .button-link{white-space:nowrap}
.purchase-page{max-width:950px}.price-list-card{margin:1.5rem 0;padding:1.25rem;background:var(--panel);border:1px solid #4b5563;border-radius:.75rem}.price-list-card.upcoming{border-color:#f59e0b}.price-list-badge{display:inline-block;margin:0 0 .5rem;padding:.35rem .65rem;border-radius:999px;background:#166534;color:#dcfce7;font-weight:700}.price-list-card.upcoming .price-list-badge{background:#92400e;color:#fef3c7}.price-list-form textarea{resize:vertical}.price-item-editor{display:grid;grid-template-columns:2fr 2fr 1fr 100px auto auto;gap:.75rem;align-items:end;margin:.75rem 0;padding:1rem;background:var(--panel);border-radius:.5rem}.price-item-editor label{margin:0}.price-item-editor button{width:auto}.price-list-actions{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}.price-list-actions form{margin:0}.withdraw-form{display:flex;gap:.4rem;align-items:center}.withdraw-form label{display:flex;gap:.3rem;align-items:center;margin:0;font-size:.85rem}.withdraw-form input[type=checkbox]{width:auto}.withdraw-form button{width:auto}
.validity-expired{color:#f87171;font-weight:700}
.validity-soon{color:#f59e0b;font-weight:700}
.payment-paid{color:#4ade80;font-weight:700}
.price-item-editor{grid-template-columns:repeat(4,minmax(130px,1fr))}
/* A lista/naptár nézetváltó és a havi naptár rácsa. */
.view-switch{padding:0;margin:1rem 0 2rem;background:transparent}
.view-switch .is-active{background:var(--green);color:#052e16;font-weight:700;text-decoration:none}
.calendar-toolbar{display:grid;grid-template-columns:auto 1fr auto auto;gap:.75rem;align-items:center;margin:1rem 0}
.calendar-toolbar h2{margin:0;text-align:center;text-transform:capitalize}
.calendar-toolbar-bottom{margin-top:1.25rem}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-top:1px solid #4b5563;border-left:1px solid #4b5563;background:#0f172a}
.calendar-weekday{padding:.75rem;background:#374151;font-weight:700;text-align:center;border-right:1px solid #4b5563;border-bottom:1px solid #4b5563}
.calendar-day,.calendar-empty{min-height:170px;padding:.55rem;border-right:1px solid #4b5563;border-bottom:1px solid #4b5563}
.calendar-empty{background:#111827}
.calendar-day h3{margin:0 0 .5rem;font-size:1rem}
.calendar-day-number{display:inline-grid;place-items:center;width:1.8rem;height:1.8rem;border-radius:50%}
.calendar-day.is-today .calendar-day-number{background:var(--green);color:#052e16}
.calendar-mobile-weekday{display:none;margin-left:.4rem;color:var(--muted);font-weight:400}
.calendar-event{display:grid;gap:.3rem;margin:.45rem 0;padding:.55rem;background:var(--panel);border-left:4px solid var(--green);border-radius:.4rem}
.calendar-event.is-booked{border-left-color:#3b82f6}
.calendar-event span,.calendar-event small{display:block}
.calendar-event .actions{margin-top:.25rem}.calendar-event .actions form{width:100%}
.calendar-event .actions button{width:100%;padding:.55rem}
small,.muted{color:var(--muted)}
/* Keskeny kijelzőkhöz igazított űrlap-, táblázat- és naptárelrendezések. */
@media(max-width:900px){.filter-grid{grid-template-columns:1fr 1fr}.calendar-toolbar{grid-template-columns:1fr 1fr}.calendar-toolbar h2{grid-column:1/-1;grid-row:1}.calendar-day,.calendar-empty{min-height:140px;padding:.35rem}.calendar-event{padding:.4rem;font-size:.9rem}}
@media(max-width:1000px){.price-item-editor{grid-template-columns:1fr 1fr}.price-item-editor button{width:100%}}
@media(max-width:700px){table{display:block;overflow:auto}.login-card{padding:1.2rem}.form-grid,.pass-form,.filter-grid,.history-filter{grid-template-columns:1fr}.form-grid .wide,.pass-form button{grid-column:auto}.user-name{margin-left:0;width:100%}.summary-grid{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.login-page{grid-template-columns:1fr;margin:1.25rem auto}.location-details{grid-template-columns:1fr}.map-frame{height:300px}}
@media(max-width:700px){.pass-status{grid-template-columns:1fr}.pass-status .button-link{width:auto}}
@media(max-width:700px){.calendar-grid{display:block;border:0;background:transparent}.calendar-weekday,.calendar-empty,.calendar-day.no-events{display:none}.calendar-day{min-height:0;margin:.75rem 0;padding:.75rem;border:1px solid #4b5563;border-radius:.5rem}.calendar-mobile-weekday{display:inline}.calendar-toolbar .button-link{padding:.6rem}.view-switch .button-link{flex:1}}
