/* --- Base kontroly (náhrada za Tailwind utility z originálu) ------------- */
.input{
  width:100%;min-width:0;height:36px;padding:4px 12px;
  font:inherit;font-size:16px;color:inherit;background:#fff;
  border:1px solid var(--input);border-radius:6px;
  box-shadow:0 1px 2px #0000000d;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.input::placeholder{color:var(--muted-foreground)}
.input:focus-visible{border-color:var(--ring);box-shadow:0 0 0 3px #175bda80}
.input[aria-invalid="true"]{border-color:var(--destructive);box-shadow:0 0 0 3px #e7000b33}
.input:disabled{opacity:.5;cursor:not-allowed}

select.input{
  appearance:none;padding-right:34px;cursor:pointer;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23566780' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>");
  background-repeat:no-repeat;background-position:right 10px center;
}

.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;flex-shrink:0;
  height:36px;padding:8px 16px;font:inherit;font-size:14px;font-weight:500;white-space:nowrap;
  color:var(--primary-foreground);background:var(--primary);
  border:0;border-radius:6px;outline:none;transition:background .15s,box-shadow .15s,opacity .15s;
}
.btn:hover:not(:disabled){background:#1451c4}
.btn:focus-visible{box-shadow:0 0 0 3px #175bda80}
.btn:disabled{opacity:.5;pointer-events:none}
.btn svg{width:16px;height:16px;flex-shrink:0}

input[type=radio]{
  width:15px;height:15px;margin:0;flex-shrink:0;
  accent-color:var(--primary);cursor:pointer;
}

:root{--background:#f2f5fa;--foreground:#11233d;--card:#fff;--card-foreground:#171717;--popover:#fff;--popover-foreground:#171717;--primary:#175bda;--primary-foreground:#fff;--secondary:#f5f5f5;--secondary-foreground:#171717;--muted:#f5f5f5;--muted-foreground:#566780;--accent:#f5f5f5;--accent-foreground:#171717;--destructive:#e7000b;--border:#dce3ee;--input:#becbdd;--ring:#175bda;--chart-1:#f54900;--chart-2:#009689;--chart-3:#104e64;--chart-4:#ffb900;--chart-5:#fe9a00;--radius:.625rem;--sidebar:#fafafa;--sidebar-foreground:#171717;--sidebar-primary:#171717;--sidebar-primary-foreground:#fafafa;--sidebar-accent:#f5f5f5;--sidebar-accent-foreground:#171717;--sidebar-border:#e5e5e5;--sidebar-ring:#a1a1a1}
*{box-sizing:border-box}
body{background:var(--background);color:var(--foreground);margin:0;font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.5}
button,input{font:inherit}
button,a,label{touch-action:manipulation}
a{color:inherit}
button{cursor:pointer}
button:disabled{cursor:not-allowed}
h1,h2,h3,p{margin:0}
.site-shell{max-width:1360px;margin:auto;padding:0 48px}
.topbar{border-bottom:1px solid #d9e1eb;justify-content:space-between;align-items:center;height:104px;display:flex}
.wordmark{background:#fff;border-radius:6px;flex-shrink:1;min-width:0;padding:10px 12px;text-decoration:none;display:block}
.wordmark img{width:250px;max-width:100%;height:auto;display:block}
.topbar-label,.event-year{letter-spacing:2px;font-size:13px;font-weight:700}
.event-year{color:#5a6b82;margin-left:12px}
.booking-layout{background:#fff;border:1px solid #dce3ee;border-radius:18px;grid-template-columns:380px minmax(0,1fr);margin-top:36px;display:grid;overflow:hidden;box-shadow:0 18px 55px #18325809}
.event-panel{color:#fff;background:#0e2441;align-self:stretch;padding:44px 34px;position:relative}
.eyebrow{letter-spacing:2px;color:#1b5ac3;font-size:12px;font-weight:700}
.event-panel .eyebrow{color:#9cbffb}
.event-panel h1{letter-spacing:-1.25px;text-wrap:balance;margin-top:22px;font-size:38px;font-weight:650;line-height:1.13}
.event-subtitle{color:#c7d6eb;margin-top:17px;font-size:18px}
.event-date{border-top:1px solid #ffffff30;border-bottom:1px solid #ffffff30;flex-direction:column;margin-top:42px;padding:27px 0;display:flex}
.event-date span:first-child{letter-spacing:-2px;font-size:61px;font-weight:700;line-height:1.15}
.event-date span:last-child{letter-spacing:3px;color:#b2c8e5;margin-top:8px;font-size:14px}
.event-facts{gap:28px;margin-top:37px;display:grid}
.event-facts>div{align-items:flex-start;gap:15px;display:flex}
.event-facts svg{color:#8ab7ff;width:22px;height:22px;margin-top:3px}
.event-facts p{flex-direction:column;gap:4px;display:flex}
.event-facts strong{font-weight:600}
.event-facts span{color:#bbcee7;font-size:14px}
.event-bottom{letter-spacing:1px;color:#b6cbea;border-top:1px dashed #ffffff40;justify-content:space-between;gap:16px;margin-top:54px;padding-top:22px;font-size:12px;display:flex}
.booking-panel{padding:43px 42px}
.form-intro h2{letter-spacing:-.9px;margin:12px 0;font-size:30px;font-weight:700;line-height:1.2}
.form-intro>p:last-child{color:#596b82;max-width:490px}
.form-section{border:0;border-bottom:1px solid #e2e8f1;min-width:0;margin:29px 0 0;padding:0 0 28px}
.form-section legend{align-items:center;gap:10px;width:100%;margin-bottom:17px;font-size:17px;font-weight:700;display:flex}
.step{color:#175bda;background:#f4f8fe;border:1px solid #dbe5f3;border-radius:7px;justify-content:center;align-items:center;width:27px;height:27px;font-family:monospace;font-size:12px;display:inline-flex}
.muted,.section-note{color:#637189;font-size:14px}
.people-row{align-items:center;gap:18px;display:flex}
.people-select{background:#fff;min-width:125px;height:45px!important;font-size:16px!important}
.section-note{margin-top:-8px;margin-bottom:17px}
.days-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}
.day-title{justify-content:space-between;align-items:baseline;gap:5px;margin-bottom:10px;display:flex}
.day-title h3{font-size:16px;font-weight:700}
.day-title>span{color:#637189;font-size:14px}
.slot-list{gap:8px;display:grid}
.time-slot{cursor:pointer;border:1px solid #dce3ed;border-radius:8px;align-items:center;gap:10px;min-height:70px;padding:11px 12px;transition:border-color .15s,background .15s;display:flex;position:relative}
.time-slot:hover{background:#f7faff;border-color:#6690d2}
.time-slot.selected{background:#eff5ff;border-color:#175bda;box-shadow:0 0 0 1px #175bda}
.time-slot:focus-within{outline-offset:2px;outline:3px solid #83abef}
.time-slot strong{font-variant-numeric:tabular-nums;letter-spacing:-.3px;font-size:16px;display:block}
.time-slot small{color:#52657c;margin-top:1px;font-size:12px;display:block}
.time-slot.unavailable{opacity:.55;cursor:not-allowed;background:#f3f5f8}
.slot-check{color:#175bda;flex-shrink:0;width:16px;height:16px;margin-left:auto}
.time-slot [data-slot=radio-group-item]{width:15px;height:15px}
.fields-grid{grid-template-columns:1fr 1fr;gap:18px 15px;display:grid}
.fields-grid label,.license-type{font-size:14px;font-weight:600;display:block}
.fields-grid input,.license-type input{background:#fff;height:46px;margin-top:7px;font-weight:400;font-size:16px!important}
.license-field{margin-top:23px;font-size:14px;font-weight:600}
.license-options{gap:27px;margin-top:13px;font-size:16px;font-weight:400;display:flex}
.license-options label{cursor:pointer;align-items:center;gap:9px;display:flex}
.license-type{margin-top:18px}
.submit-section{padding-top:24px}
.selection-summary{flex-wrap:wrap;justify-content:space-between;gap:14px;margin-bottom:16px;font-size:14px;display:flex}
.main-button{border-radius:9px;justify-content:space-between;width:100%;font-weight:600;height:52px!important;padding:0 20px!important;font-size:16px!important}
.privacy-note{color:#697a91;margin-top:13px;font-size:12px;line-height:1.6}
.error-box{color:#992d20;background:#fff2ef;border:1px solid #f3c5bb;border-radius:8px;margin:12px 0;padding:12px 14px;font-size:14px}
.loading{color:#60738e;align-items:center;gap:9px;padding:32px 0;display:flex}
.spinner{width:19px;animation:1s linear infinite spin}
@keyframes spin{to{transform:rotate(360deg)}
}
.honeypot{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}
.site-footer{color:#61728a;justify-content:space-between;gap:16px;padding:24px 0 34px;font-size:12px;display:flex}
.receipt{outline:none;padding:24px 0}
.success-icon{color:#175bda;width:45px;height:45px;margin-bottom:26px}
.receipt h2{letter-spacing:-1px;margin:14px 0;font-size:35px;font-weight:700;line-height:1.2}
.ticket{background:#f5f8fd;border:1px solid #cbd9ed;border-radius:12px;flex-direction:column;gap:12px;margin:26px 0;padding:24px;display:flex}
.ticket-label{letter-spacing:1.5px;color:#5272a0;font-size:12px}
.ticket strong{font-size:20px}
.ticket b{letter-spacing:-1px;font-size:35px;line-height:1.1}
.ticket-reference{border-top:1px dashed #bed0e8;margin-top:5px;padding-top:16px;font-family:monospace;font-size:13px}
.receipt .main-button{justify-content:center;margin-top:25px}
.admin-shell{max-width:1100px;margin:auto;padding:40px 24px}
.admin-shell h1{font-size:32px;font-weight:700}
.admin-shell table{border-collapse:collapse;width:100%;margin-top:24px;font-size:14px}
.admin-shell th,.admin-shell td{text-align:left;vertical-align:top;border-bottom:1px solid #dce3ee;padding:12px}
.admin-shell th{background:#e8eef8}
.table-wrap{overflow:auto}
.qr-page{text-align:center;max-width:520px;margin:auto;padding:50px 24px}
.qr-page h1{font-size:32px;font-weight:700}
.qr-page img{width:300px;max-width:100%;height:auto;margin:24px auto}
.qr-page img.qr-brand{background:#fff;border-radius:5px;width:280px;margin:0 auto 24px;padding:10px 12px}
.qr-page p{margin:12px 0}
.qr-page .main-button{justify-content:center;margin:24px 0}
@media (min-width:1200px){.event-panel{padding:44px 38px}
.booking-panel{padding:43px 52px}
.booking-layout{grid-template-columns:400px minmax(0,1fr)}
}
@media (max-width:1020px){.site-shell{padding:0 24px}
.booking-layout{grid-template-columns:300px minmax(0,1fr)}
.event-panel{padding:34px 25px}
.event-panel h1{font-size:33px}
.event-date span:first-child{font-size:51px}
.booking-panel{padding:34px 26px}
.days-grid{gap:10px}
.time-slot{gap:6px;padding:10px 8px}
.slot-check{display:none}
.day-title{flex-wrap:wrap}
.form-intro h2{font-size:27px}
}
@media (max-width:760px){.site-shell{padding:0 16px}
.topbar{height:77px}
.wordmark{padding:8px 10px}
.wordmark img{width:218px}
.topbar-label{display:none}
.booking-layout{border-radius:13px;grid-template-columns:1fr;margin-top:20px}
.event-panel{padding:26px 24px}
.event-panel h1{letter-spacing:-.7px;max-width:550px;margin-top:12px;font-size:28px;line-height:1.17}
.event-subtitle{margin-top:8px;font-size:16px}
.event-date{flex-direction:row;align-items:baseline;gap:14px;margin-top:23px;padding:16px 0}
.event-date span:first-child{font-size:35px}
.event-date span:last-child{margin:0;font-size:13px}
.event-facts{flex-wrap:wrap;gap:20px;margin-top:20px;display:flex}
.event-facts>div{gap:8px}
.event-facts svg{width:18px;height:18px}
.event-facts strong{font-size:14px}
.event-facts span{font-size:12px}
.event-facts>div:last-child,.event-bottom{display:none}
.booking-panel{padding:29px 23px}
.form-intro h2{font-size:28px}
.form-intro>p:last-child{font-size:15px}
.form-section{margin-top:25px}
.site-footer{flex-direction:column;gap:5px}
.people-row{align-items:flex-start;gap:13px}
.people-row .muted{font-size:13px}
.time-slot{gap:8px;padding:11px 9px}
.time-slot strong{font-size:15px}
.fields-grid{gap:16px 12px}
.receipt h2{font-size:30px}
}
@media (max-width:370px){.booking-panel{padding:25px 16px}
.fields-grid{grid-template-columns:1fr}
.time-slot strong{font-size:14px}
.days-grid{gap:8px}
.time-slot{gap:5px;padding:11px 6px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}
}
@media print{body{background:#fff}
.topbar,.event-panel,.site-footer,.receipt .main-button{display:none}
.site-shell{padding:0}
.booking-layout{box-shadow:none;border:0;margin:0;display:block}
.booking-panel{padding:20px}
.receipt{padding:0}
.qr-page .main-button{display:none}
}
.admin-nav,.admin-actions{flex-wrap:wrap;align-items:center;gap:10px;display:flex}
.admin-nav{gap:20px;margin:22px 0}
.admin-summary{margin:22px 0}
.admin-notice{color:#175b41;margin:12px 0}
.admin-editor{background:#fff;border:1px solid #b9cdea;border-radius:12px;margin:24px 0;padding:24px}
.admin-editor h2,.admin-slot h2{margin-bottom:12px;font-size:20px;font-weight:700}
.admin-editor p{margin:12px 0}
.admin-fields{grid-template-columns:1fr 1fr;gap:18px;margin:20px 0;display:grid}
.admin-fields label{font-size:14px;font-weight:600}
.admin-fields input,.admin-fields select{width:100%;min-width:0;font:inherit;background:#fff;border:1px solid #aabbd3;border-radius:6px;margin-top:6px;padding:10px;font-size:16px;display:block}
.admin-actions button{background:#fff;border:1px solid #aabbd3;border-radius:6px;min-height:42px;padding:9px 13px;font-size:14px}
.admin-actions .admin-primary{color:#fff;background:#175bda;border-color:#175bda}
.admin-actions .admin-danger{color:#a12b22;border-color:#d89f99}
.admin-actions button:disabled{opacity:.5}
.admin-actions button:focus-visible{outline-offset:2px;outline:3px solid #83abef}
.admin-slot{margin-top:32px}
.admin-editor fieldset{border:0;margin:0;padding:0}
@media (max-width:600px){.admin-fields{grid-template-columns:1fr}
.admin-editor{padding:18px}
.admin-shell{padding:28px 16px}
}
/* --- Doplnky k pôvodnému dizajnu ---------------------------------------- */
.topbar-right{display:flex;align-items:center;gap:14px}
.lang-switch{display:flex;align-items:center;gap:2px;border:1px solid #d4dded;border-radius:7px;background:#fff;padding:2px}
.lang-switch a{
  display:block;padding:4px 9px;border-radius:5px;
  font-size:12px;font-weight:700;letter-spacing:1px;color:#5a6b82;text-decoration:none;
  transition:background .15s,color .15s;
}
.lang-switch a:hover{background:#eef3fb;color:var(--primary)}
.lang-switch a.is-active{background:var(--primary);color:#fff}
.lang-switch a:focus-visible{outline:3px solid #83abef;outline-offset:1px}

.event-panel h1{text-wrap:balance}

/* Sloty: natívne radio v rovnakom layoute ako pôvodný radix radio-group */
.time-slot{margin:0}
.time-slot input[type=radio]{margin-top:2px}
.time-slot .slot-text{min-width:0}
.time-slot.unavailable input[type=radio]{cursor:not-allowed}
.time-slot.unavailable:hover{background:#f3f5f8;border-color:#dce3ed}
.time-slot:has(input:checked){background:#eff5ff;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}
.time-slot:has(input:checked) .slot-check{display:block}
.slot-check{display:none}
@media (max-width:1020px){.time-slot:has(input:checked) .slot-check{display:none}}

.people-select{padding-right:36px}
.fields-grid .input{height:46px;margin-top:7px}

.error-box ul{margin:6px 0 0;padding-left:18px}
.error-box li{margin-top:2px}

.weather-note{
  background:#eff5ff;border:1px solid var(--primary);border-radius:8px;
  padding:14px 16px;margin-bottom:26px;
  font-size:13px;line-height:1.55;color:#28415f;
}
.weather-contact{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:7px}
.weather-contact a{color:var(--primary);font-weight:600;text-decoration:none;white-space:nowrap}
.weather-contact a:hover{text-decoration:underline}

.confirm-note{color:#5b6c84;font-size:14px;margin-top:18px}
.receipt-status{display:flex;align-items:center;gap:10px}
.receipt.is-cancelled .success-icon{color:#c0392b}

/* Admin */
.admin-login{max-width:380px;margin:12vh auto;padding:0 24px}
.admin-login h1{font-size:26px;font-weight:700;margin-bottom:18px}
.admin-login label{display:block;font-size:14px;font-weight:600;margin-bottom:18px}
.admin-login .input{margin-top:7px;height:44px}
.admin-badge{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600}
.admin-badge.active{background:#e4f2e8;color:#1c6b3a}
.admin-badge.cancelled{background:#f7e6e4;color:#a12b22}
.admin-badge.closed{background:#f1e7d4;color:#8a6116}
.admin-shell td form{display:inline}
.admin-shell .muted{color:#637189;font-size:13px}
.admin-slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;margin-top:16px}
.admin-slot-card{border:1px solid #dce3ee;border-radius:10px;background:#fff;padding:14px}
.admin-slot-card strong{display:block;font-size:15px}
.admin-slot-card .muted{display:block;margin:2px 0 10px}
.admin-topline{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:12px}
.admin-topline a{font-size:14px;color:var(--primary)}
