﻿.reservation-body{background:#f5f7f8;color:#17222c;font-family:Arial,Helvetica,sans-serif;margin:0}.reservation-header{align-items:center;background:#fff;box-shadow:0 1px 12px #16212b1a;display:flex;gap:2rem;justify-content:space-between;padding:.65rem max(4vw,1rem);position:sticky;top:0;z-index:10}.reservation-brand img{display:block;height:auto;width:205px}.reservation-nav{align-items:center;display:flex;flex-wrap:wrap;gap:.35rem 1rem;justify-content:flex-end}.reservation-nav a{color:#253746;font-size:.92rem;font-weight:700;text-decoration:none}.reservation-nav__accent{background:#ff7200!important;border-radius:999px;color:#fff!important;padding:.55rem .9rem}.reservation-main{margin:0 auto;max-width:1200px;padding:2.5rem max(4vw,1rem) 4rem}.reservation-hero{display:flex;gap:2rem;justify-content:space-between;margin-bottom:1.6rem}.reservation-hero h1{margin:.25rem 0 .5rem}.eyebrow{color:#ff7200;font-size:.78rem;font-weight:800;letter-spacing:.1em;margin:0;text-transform:uppercase}.reservation-panel{background:#fff;border:1px solid #e3e8eb;border-radius:18px;box-shadow:0 8px 25px #1421300d;padding:1.35rem}.narrow{margin:4rem auto;max-width:520px}.filter-bar,.form-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:1.2rem}.form-grid{grid-template-columns:1fr}.form-grid label,.filter-bar label{display:grid;font-size:.86rem;font-weight:700;gap:.38rem}.form-grid input,.form-grid textarea,.filter-bar input,.filter-bar select,.admin-form input,.admin-form textarea,.admin-form select{border:1px solid #cbd5dc;border-radius:8px;font:inherit;padding:.68rem}.filter-bar .button{align-self:end}.button{border:0;cursor:pointer;display:inline-block;font:inherit;font-weight:800;text-align:center;text-decoration:none}.button--primary{background:#ff7200;color:white}.button--outline{background:white;border:1px solid #ff7200;color:#c95700}.flash,.form-error{border-radius:10px;margin-bottom:1.2rem;padding:.85rem 1rem}.flash{background:#e8f5ed;color:#145a32}.form-error{background:#fff0ee;color:#9c2717}.schedule{display:grid;gap:.85rem;grid-template-columns:repeat(7,minmax(142px,1fr));overflow-x:auto;padding-bottom:.5rem}.day-card{background:#f8fafb;border:1px solid #e2e8ec;border-radius:12px;min-width:142px;padding:.8rem}.day-card__date{color:#ff7200;font-weight:800;margin:0 0 .65rem}.slot{align-items:center;border-top:1px solid #e3e8eb;display:flex;font-size:.87rem;gap:.4rem;justify-content:space-between;padding:.46rem 0}.slot:first-of-type{border-top:0}.slot--busy{color:#8a3e34}.slot--free{color:#14633a}.slot a{color:#c95800;font-weight:800;text-decoration:none}.table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e1e7eb;padding:.75rem;text-align:left;vertical-align:top}.data-table th{color:#526371;font-size:.78rem;text-transform:uppercase}.status{border-radius:99px;display:inline-block;font-size:.78rem;font-weight:800;padding:.22rem .5rem}.status--active{background:#e7f5ec;color:#15703d}.status--cancelled{background:#eeeef0;color:#555}.inline-form{display:inline}.inline-form button{background:transparent;border:0;color:#c24d10;cursor:pointer;font:inherit;font-weight:700;padding:0}.admin-grid{display:grid;gap:1rem;grid-template-columns:repeat(3,1fr);margin-bottom:1rem}.metric{background:#fff;border:1px solid #e1e7eb;border-radius:14px;padding:1rem}.metric[href]{color:inherit;text-decoration:none}.metric[href]:hover{border-color:#102d64;box-shadow:0 5px 14px rgba(9,25,54,.10)}.metric strong{display:block;font-size:1.7rem}.reservation-footer{background:#15232d;color:#dbe5e8;font-size:.9rem;padding:1.5rem 4vw;text-align:center}.muted{color:#657482}.actions{display:flex;flex-wrap:wrap;gap:.6rem}.admin-form{display:grid;gap:.8rem;grid-template-columns:repeat(2,1fr)}.admin-form .wide{grid-column:1/-1}@media(max-width:760px){.reservation-header{align-items:flex-start;flex-direction:column;gap:.6rem}.reservation-brand img{width:185px}.reservation-nav{justify-content:flex-start}.filter-bar,.admin-form{grid-template-columns:1fr}.reservation-hero{display:block}.admin-grid{grid-template-columns:1fr 1fr}.schedule{grid-template-columns:repeat(7,142px)}}

/* Rezervační kalendář navazuje na střídmou modro-zelenou paletu úvodní stránky. */
.reservation-body{background:#f7f8f4;color:#101b2b}.reservation-header{box-shadow:0 1px 12px rgba(9,25,54,.10)}.reservation-nav__accent{background:#102d64!important}.reservation-hero h1{color:#091936}.reservation-hero .eyebrow{color:#637080}.reservation-panel,.day-card{border-color:#dfe5df}.button--primary{background:#102d64}.button--outline{border-color:#102d64;color:#102d64}.day-card__date{color:#101b2b}.slot{gap:.35rem}.slot--free,.slot--busy{color:#101b2b}.slot__time{color:#101b2b;font-weight:800}.slot__status{border-radius:3px;color:#fff;display:inline-block;font-size:.71rem;font-weight:800;line-height:1;padding:.35rem .4rem;text-transform:uppercase}.slot__status--free{background:#2f7d4b}.slot__status--busy{background:#bd3f31}.slot__reserve{background:#2f7d4b;border-radius:3px;color:#fff!important;font-size:.78rem;padding:.35rem .48rem}.slot__reserve:hover{background:#24633b}

/* Hlavička i rezervace používají shodnou, vystředěnou pracovní plochu. */
.reservation-header{display:block;padding:.65rem 0}
.reservation-header__inner,.reservation-main{box-sizing:border-box;margin-left:auto;margin-right:auto;width:min(calc(100% - 8vw),1640px)}
.reservation-header__inner{align-items:center;display:flex;gap:2rem;justify-content:space-between}
.reservation-main{max-width:none;padding:2.5rem 0 4rem}
@media(max-width:760px){.reservation-header__inner,.reservation-main{width:calc(100% - 2rem)}.reservation-header__inner{align-items:flex-start;flex-direction:column;gap:.6rem}.reservation-main{padding:2rem 0 3rem}}
/* Kalendář se skládá do řádků podle dostupné šířky; nikdy nevytváří vodorovný posuv. */
.schedule{grid-template-columns:repeat(auto-fit,minmax(205px,1fr));overflow-x:visible}
.day-card{min-width:0}
.slot a.slot__status{color:#fff!important}
.slot__time,.slot__status,.slot a.slot__reserve{font-weight:400}
.slot__status--busy{font-weight:800}
.slot a.slot__reserve{font-weight:800}
.status--confirmed,.status--closed{background:#2f7d4b;color:#fff}
.status--confirmed:before,.status--closed:before{content:"✓";font-weight:800;margin-right:.35em}
.inline-form .reservation-cancel{background:#bd3f31;border-radius:3px;color:#fff;font-weight:800;padding:.35rem .48rem}
.inline-form .reservation-cancel:hover{background:#9f3024}
.status--confirmed{background:#fff;color:#2f7d4b}.status--confirmed:before{content:none}
.status--closed{background:#fff;color:#101b2b}.status--closed:before{content:none}.status--cancelled{background:#fff;color:#657482}
.reservation-footer a{color:#fff;font-weight:800;text-decoration:none}.reservation-footer a:hover,.reservation-footer a:focus-visible{color:#a7ce38;text-decoration:underline}
/* Stálé rychlé odkazy v administraci. */
.admin-shortcuts{background:#f7f8f4;border-bottom:1px solid #dfe5df;box-shadow:0 4px 10px rgba(9,25,54,.05)}
.admin-shortcuts__inner{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem;justify-content:center;margin:0 auto;max-width:1640px;padding:.75rem 4vw}
.admin-shortcuts a{background:#fff;border:1px solid #cdd9d1;border-radius:4px;color:#102d64!important;font-size:.82rem;font-weight:800;line-height:1;padding:.58rem .78rem;text-decoration:none;transition:background .15s,border-color .15s,color .15s}
.admin-shortcuts a:hover,.admin-shortcuts a:focus-visible{background:#102d64;border-color:#102d64;color:#fff!important;text-decoration:none}
@media(max-width:760px){.admin-shortcuts__inner{align-items:stretch;flex-direction:column;gap:.4rem;padding:.7rem 1rem}.admin-shortcuts a{text-align:center}}

/* Zvýrazněné administrační akce. */
.button--success{background:#fff;border:1px solid #2f7d4b;color:#2f7d4b}.button--success:hover,.button--success:focus-visible{background:#2f7d4b;color:#fff}
.admin-shortcuts a.admin-shortcuts__reservations{background:#fff;border-color:#2f7d4b;color:#2f7d4b!important}.admin-shortcuts a.admin-shortcuts__reservations:hover,.admin-shortcuts a.admin-shortcuts__reservations:focus-visible{background:#2f7d4b;border-color:#2f7d4b;color:#fff!important}
.metric--today{background:#2f7d4b!important;border-color:#2f7d4b!important;color:#fff!important}.metric--today strong{color:#fff}

.button--danger{background:#bd3f31;color:#fff}.button--danger:hover,.button--danger:focus-visible{background:#9f3024;color:#fff}.account-result{border-top:1px solid #dfe5df;margin-top:1.2rem;padding-top:1rem}
.test-reset-link{background:#fff7ef;border:1px solid #efc28e;border-radius:10px;margin:1rem 0;padding:.85rem 1rem;word-break:break-all}.test-reset-link a{color:#102d64;font-weight:700}

.text-link{background:transparent;border:0;color:#101b2b;cursor:pointer;font:inherit;font-weight:400;padding:0;text-decoration:underline}.gdpr-link{margin-bottom:0}.login-prompt{color:#101b2b;font-weight:400}.login-prompt a{color:#102d64;font-weight:400}.gdpr-dialog{background:#fff;border:0;border-radius:14px;box-shadow:0 20px 70px rgba(0,0,0,.32);color:#101b2b;max-height:min(760px,86vh);max-width:min(760px,calc(100vw - 2rem));padding:0;width:100%}.gdpr-dialog::backdrop{background:rgba(9,25,54,.55)}.gdpr-dialog__head{align-items:center;border-bottom:1px solid #dfe5df;display:flex;justify-content:space-between;padding:1rem 1.2rem}.gdpr-dialog__head h2{font-size:1.15rem;margin:0}.gdpr-dialog__close{background:transparent;border:0;color:#102d64;cursor:pointer;font-size:2rem;line-height:1;padding:0 .2rem}.gdpr-dialog__content{line-height:1.55;max-height:calc(min(760px,86vh) - 145px);overflow:auto;padding:1.2rem}.gdpr-dialog__actions{border-top:1px solid #dfe5df;padding:1rem 1.2rem;text-align:right}.gdpr-editor{background:#fff;margin:1rem 0;min-height:300px}.ql-toolbar.ql-snow,.ql-container.ql-snow{border-color:#cbd5dc}.ql-editor{font-family:Arial,Helvetica,sans-serif;font-size:1rem;line-height:1.55;min-height:280px}
/* Pevný rozměr stavových štítků udrží řádky i denní karty zarovnané. */
.slot__status,.slot a.slot__reserve{align-items:center;box-sizing:border-box;display:inline-flex;height:29px;justify-content:center;line-height:1;padding:.35rem .5rem}
.slot__status--busy{background:#7b858c}.slot__status,.slot a.slot__reserve{width:100px}
.slot__time{align-items:center;display:inline-flex;gap:.4rem}
.slot__time:after{border-radius:50%;content:"";display:inline-block;height:8px;width:8px}
.slot--free .slot__time:after{background:#2f7d4b}
.slot--busy .slot__time:after{background:#bd3f31}
/* Správa administrační lišty a měsíční statistiky. */
.admin-shortcuts__inner{justify-content:space-between}.admin-shortcuts__links{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem}.admin-shortcuts__migration{margin-left:auto}.stats-month-nav{align-items:center;display:flex;gap:1rem;justify-content:space-between;margin-bottom:1.1rem}.stats-month-nav h2{color:#091936;font-size:1.2rem;margin:0;text-align:center}.stats-calendar{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border-left:1px solid #dfe5df;border-top:1px solid #dfe5df}.stats-calendar__weekday{background:#f4f7f5;border-bottom:1px solid #dfe5df;border-right:1px solid #dfe5df;color:#637080;font-size:.72rem;font-weight:800;padding:.55rem .45rem;text-align:center;text-transform:uppercase}.stats-calendar__day{background:#fff;border-bottom:1px solid #dfe5df;border-right:1px solid #dfe5df;min-height:122px;padding:.55rem}.stats-calendar__day>strong{color:#102d64;display:block;font-size:.9rem;margin-bottom:.4rem}.stats-calendar__day dl{display:grid;gap:.3rem;margin:0}.stats-calendar__day dl div{align-items:center;display:flex;justify-content:space-between}.stats-calendar__day dt{color:#657482;font-size:.67rem}.stats-calendar__day dd{color:#101b2b;font-size:.86rem;font-weight:800;margin:0}.stats-calendar__day--outside{background:#f7f8f4}.stats-calendar__day--outside>strong,.stats-calendar__day--outside dt,.stats-calendar__day--outside dd{color:#a4afb1}@media(max-width:760px){.admin-shortcuts__inner{align-items:stretch}.admin-shortcuts__links{flex-direction:column}.admin-shortcuts__migration{margin-left:0;text-align:center}.stats-month-nav{gap:.45rem}.stats-month-nav .button{font-size:.78rem;padding:.6rem}.stats-month-nav h2{font-size:1rem}.stats-calendar__weekday{font-size:.6rem;padding:.45rem .15rem}.stats-calendar__day{min-height:104px;padding:.35rem}.stats-calendar__day>strong{font-size:.78rem}.stats-calendar__day dt{font-size:.55rem}.stats-calendar__day dd{font-size:.72rem}}
.admin-shortcuts__tools{align-items:center;display:flex;flex-wrap:wrap;gap:.45rem;margin-left:auto}.admin-shortcuts__tools .admin-shortcuts__migration{margin-left:0}@media(max-width:760px){.admin-shortcuts__tools{flex-direction:column;margin-left:0}.admin-shortcuts__tools a{width:100%}}
.password-field{display:block;position:relative}.password-field input{padding-right:3.25rem!important;width:100%}.password-toggle{align-items:center;background:transparent;border:0;border-radius:7px;color:#526371;cursor:pointer;display:flex;height:2.5rem;justify-content:center;position:absolute;right:.2rem;top:50%;transform:translateY(-50%);width:2.5rem}.password-toggle:hover,.password-toggle:focus-visible{background:#eef2f5;color:#102d64;outline:0}.password-toggle svg{fill:none;height:1.25rem;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8;width:1.25rem}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}
/* TEST POZADÍ: pro návrat stačí odstranit tento celý řádek. */
.reservation-body { background:#f7f8f4 url("../../assets/images/pozadi.jpg") repeat-x top center; }
/* TEST POZADÍ: administrace zůstává na původním jednobarevném podkladu. */
.reservation-body.reservation-body--admin { background:#f7f8f4; }

/* Na stránce Moje rezervace vyplní hlavní obsah volnou výšku okna, takže patička zůstane dole. */
.reservation-body.reservation-body--my-bookings { display:flex; flex-direction:column; min-height:100vh; }
.reservation-body--my-bookings .reservation-main { box-sizing:border-box; flex:1 0 auto; }
.reservation-body--my-bookings .reservation-footer { margin-top:auto; }
/* V úvodní hlavičce rezervací se odkazy k účtu nemají natahovat na výšku nadpisu. */
@media (max-width:760px) { .reservation-hero > .actions { position:relative; top:7px; } }