:root{
  --ink:#181716;
  --ink-2:#302d29;
  --muted:#77736d;
  --canvas:#f4f4f7;
  --cream:#f7f4ef;
  --paper:#fff;
  --paper-soft:#fbfaf8;
  --gold:#ad8952;
  --gold-dark:#71512a;
  --gold-soft:#f2e8d9;
  --border:#e8e5e0;
  --success:#39704e;
  --danger:#b44141;
  --warning:#a56a19;
  --shadow-sm:0 2px 12px rgba(30,25,18,.045);
  --shadow:0 14px 38px rgba(30,25,18,.075);
  --shadow-lg:0 24px 60px rgba(30,25,18,.12);
  --radius-sm:13px;
  --radius:20px;
  --radius-lg:28px;
}

*{box-sizing:border-box}
html{min-height:100%;scroll-behavior:smooth}
body{
  min-height:100%;
  margin:0;
  color:var(--ink);
  background:var(--canvas);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text",Inter,"Segoe UI",sans-serif;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overscroll-behavior-y:none;
}
a{text-decoration:none}
button,a,.btn{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
.min-w-0{min-width:0}
.skip-link{position:fixed;left:12px;top:-80px;z-index:2000;background:#fff;color:#111;padding:10px 14px;border-radius:10px;box-shadow:var(--shadow)}
.skip-link:focus{top:12px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(173,137,82,.38);outline-offset:2px}

/* Aplikácia */
.app-shell{min-height:100vh}
.app-sidebar{
  position:fixed;
  inset:0 auto 0 0;
  width:272px;
  z-index:1030;
  display:flex;
  flex-direction:column;
  padding:22px 16px;
  color:#fff;
  background:
    radial-gradient(circle at 20% 0,rgba(173,137,82,.17),transparent 31%),
    linear-gradient(180deg,#211f1c 0%,#151412 100%);
  border-right:1px solid rgba(255,255,255,.06);
}
.brand{display:flex;gap:12px;align-items:center;color:inherit;min-width:0}
.brand:hover{color:inherit}
.brand-mark{
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:14px;
  color:#fff;
  font-size:1.16rem;
  background:linear-gradient(145deg,#c9a870,#98713b);
  box-shadow:0 9px 26px rgba(173,137,82,.27),inset 0 1px 0 rgba(255,255,255,.35);
}
.brand>span:last-child,.brand.compact>span:last-child{display:flex;flex-direction:column;min-width:0}
.brand strong,.brand small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brand strong{font-size:.94rem}
.brand small,.user-chip small{color:rgba(255,255,255,.56);font-size:.72rem}
.sidebar-nav{min-height:0;display:grid;flex:1;align-content:start;gap:4px;margin-top:28px;overflow:auto}
.sidebar-nav a,.sidebar-footer>a{
  min-height:46px;
  display:flex;
  gap:12px;
  align-items:center;
  padding:10px 13px;
  border-radius:13px;
  color:rgba(255,255,255,.7);
  font-weight:650;
  transition:background .15s ease,color .15s ease,transform .15s ease;
}
.sidebar-nav a:hover,.sidebar-nav a.active,.sidebar-footer>a:hover{color:#fff;background:rgba(255,255,255,.09)}
.sidebar-nav a.active{box-shadow:inset 3px 0 0 #c9a870}
.sidebar-nav a:active,.sidebar-footer>a:active{transform:scale(.985)}
.sidebar-nav i{width:23px;font-size:1.12rem;text-align:center}
.sidebar-footer{display:grid;gap:5px;margin-top:auto;padding-top:16px}
.user-chip{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  margin:7px 0;
  padding:13px 7px;
  border-top:1px solid rgba(255,255,255,.09);
  border-bottom:1px solid rgba(255,255,255,.09);
}
.user-chip>span{width:38px;height:38px;flex:0 0 38px;display:grid;place-items:center;border-radius:12px;background:var(--gold);font-weight:800}
.user-chip div{display:flex;flex-direction:column;min-width:0}
.user-chip strong,.user-chip small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-main{min-height:100vh;margin-left:272px}
.page-wrap{max-width:1480px;margin:auto;padding:34px 34px 48px}
.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:25px}
.page-heading h1{margin:0;font-size:clamp(1.72rem,3vw,2.35rem);font-weight:780;letter-spacing:-.045em}
.page-actions{display:flex;gap:10px}
.eyebrow{margin:0 0 4px;color:var(--gold-dark);font-size:.7rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase}
.mobile-header,.mobile-bottom-nav,.mobile-welcome{display:none}

/* Základné komponenty */
.card,.panel{
  overflow:hidden;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--paper);
  box-shadow:var(--shadow-sm);
}
.card-header{padding:18px 20px;border-bottom:1px solid var(--border);background:transparent}
.card-body{padding:20px}
.card:hover.menu-card{border-color:#d9d2c8;box-shadow:var(--shadow);transform:translateY(-1px)}
.menu-card{transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.menu-chevron{margin-left:auto;color:#b5afa7}
.btn{
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  border-radius:12px;
  font-weight:700;
  letter-spacing:-.01em;
}
.btn-sm{min-height:44px;border-radius:10px}
.btn-lg{min-height:50px;border-radius:14px;font-size:1rem}
.btn-primary{
  --bs-btn-bg:var(--gold-dark);
  --bs-btn-border-color:var(--gold-dark);
  --bs-btn-hover-bg:#5d411f;
  --bs-btn-hover-border-color:#5d411f;
  --bs-btn-active-bg:#4f371a;
  --bs-btn-active-border-color:#4f371a;
}
.btn-outline-primary{
  --bs-btn-color:var(--gold-dark);
  --bs-btn-border-color:#b89a6e;
  --bs-btn-hover-bg:var(--gold-dark);
  --bs-btn-hover-border-color:var(--gold-dark);
  --bs-btn-active-bg:#5d411f;
  --bs-btn-active-border-color:#5d411f;
}
.btn-light{--bs-btn-bg:#fff;--bs-btn-border-color:var(--border);--bs-btn-hover-bg:#f7f5f2;--bs-btn-hover-border-color:#d8d3cc}
.form-control,.form-select,.input-group-text{
  min-height:47px;
  border-color:#dfdcd7;
  border-radius:12px;
  background-color:#fff;
}
.input-group>.form-control,.input-group>.form-select{min-width:0}
.form-control:focus,.form-select:focus{border-color:#b69665;box-shadow:0 0 0 .25rem rgba(173,137,82,.13)}
.form-control[readonly]{background:#f7f6f4}
.form-label{margin-bottom:.42rem;font-size:.88rem;font-weight:740}
.form-text,.text-muted{color:var(--muted)!important}
.form-check-input:checked{border-color:var(--gold-dark);background-color:var(--gold-dark)}
.form-switch .form-check-input{width:2.45em;height:1.35em}
.alert{border:0;border-radius:15px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.045)}
.dropdown-menu{padding:7px;border-color:var(--border);border-radius:14px;box-shadow:var(--shadow)}
.dropdown-item{padding:10px 12px;border-radius:9px}
.badge{padding:.5em .76em;border-radius:999px;font-weight:720}
.table-card{overflow:auto}
.table{margin:0}
.table>:not(caption)>*>*{padding:15px 18px;border-bottom-color:var(--border);vertical-align:middle}
.table thead th{background:#faf9f7;color:var(--muted);font-size:.71rem;font-weight:760;letter-spacing:.07em;text-transform:uppercase}
.search-bar{position:relative}
.search-bar>i{position:absolute;left:15px;top:50%;z-index:2;transform:translateY(-50%);color:#9d9891;pointer-events:none}
.search-bar .form-control{padding-left:42px}
.empty-state{padding:48px 20px;text-align:center;color:var(--muted)}
.empty-state i{display:block;margin-bottom:11px;color:#c8b69a;font-size:2.45rem}
.empty-state strong{display:block;color:var(--ink)}

/* Prehľady a zoznamy */
.stat-card{min-height:128px;display:flex;justify-content:space-between;padding:20px;background:linear-gradient(145deg,#fff,#fcfbf9)}
.stat-card .stat-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--gold-soft);color:var(--gold-dark);font-size:1.2rem}
.stat-card strong{font-size:1.9rem;line-height:1;letter-spacing:-.04em}
.stat-card small{color:var(--muted)}
.appointment-list{display:grid}
.appointment-row{
  display:grid;
  grid-template-columns:74px minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:16px 20px;
  border-bottom:1px solid var(--border);
  color:var(--ink);
}
.appointment-row:last-child{border:0}
.appointment-row:hover{background:#fcfaf7}
.appointment-time{font-size:1.2rem;font-weight:820;letter-spacing:-.02em;white-space:nowrap}
.appointment-meta{min-width:0}
.appointment-meta strong{display:block}
.appointment-meta small{color:var(--muted)}
.appointment-actions{display:flex;gap:8px}
.appointment-manage-row{grid-template-columns:78px minmax(0,1fr) auto}
.appointment-manage-row .appointment-time{display:flex;flex-direction:column}
.appointment-manage-row .appointment-time small{font-size:.79rem;color:var(--muted);font-weight:700}
.appointment-manage-row .appointment-actions{align-items:center;justify-content:flex-end;flex-wrap:wrap}
.appointment-manage-row .appointment-actions form{margin:0}
.info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.info-item{padding:14px;border:1px solid var(--border);border-radius:14px;background:#faf9f7}
.info-item small{display:block;margin-bottom:4px;color:var(--muted)}
.quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}
.quick-actions .btn{width:100%}
.action-center{border-color:#d9c9ae}
.action-total{width:48px;height:48px;display:grid;place-items:center;flex:none;border-radius:15px;background:var(--ink);color:#fff;font-size:1.2rem;font-weight:820}
.action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border)}
.action-grid>a{min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:#fff;color:var(--ink)}
.action-grid>a span{display:flex;align-items:center;gap:9px;font-weight:700}
.action-grid>a i{color:var(--gold-dark)}
.action-grid>a strong{min-width:31px;height:31px;display:grid;place-items:center;border-radius:10px;background:#f1efec}
.action-grid>a.needs-action{background:#fff9ed}
.action-grid>a.needs-action strong{background:var(--warning);color:#fff}
.action-grid>a.needs-action.danger{background:#fff3f3}
.action-grid>a.needs-action.danger strong{background:var(--danger)}
.action-total.is-clear{background:var(--success);font-size:1.35rem}

/* Luxusný denný dashboard */
.dashboard-hero{
  position:relative;
  isolation:isolate;
  min-height:268px;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(300px,.7fr);
  gap:30px;
  align-items:end;
  overflow:hidden;
  padding:34px;
  border:1px solid rgba(216,186,137,.25);
  border-radius:var(--radius-lg);
  color:#fff;
  background:
    radial-gradient(circle at 7% 0,rgba(212,174,111,.25),transparent 34%),
    radial-gradient(circle at 92% 110%,rgba(173,137,82,.18),transparent 42%),
    linear-gradient(135deg,#171614 0%,#2a251f 58%,#171614 100%);
  box-shadow:0 24px 55px rgba(24,20,15,.16);
}
.dashboard-hero::after{content:"";position:absolute;z-index:-1;right:-105px;top:-160px;width:360px;height:360px;border:1px solid rgba(226,197,148,.16);border-radius:50%;box-shadow:0 0 0 38px rgba(226,197,148,.035),0 0 0 82px rgba(226,197,148,.025)}
.dashboard-date{margin:0 0 9px;color:#d8bb89;font-size:.73rem;font-weight:800;letter-spacing:.13em;text-transform:uppercase}
.dashboard-hero-copy h2{max-width:760px;margin:0;font-size:clamp(2rem,4vw,3.3rem);font-weight:760;letter-spacing:-.055em}
.dashboard-hero-copy>p:not(.dashboard-date){margin:9px 0 0;color:rgba(255,255,255,.66)}
.dashboard-hero-stats{display:flex;flex-wrap:wrap;gap:30px;margin-top:30px}
.dashboard-hero-stats>div{display:flex;flex-direction:column;padding-right:30px;border-right:1px solid rgba(255,255,255,.12)}
.dashboard-hero-stats>div:last-child{padding-right:0;border:0}
.dashboard-hero-stats strong{font-size:1.45rem;line-height:1.1;letter-spacing:-.035em}
.dashboard-hero-stats span{margin-top:4px;color:rgba(255,255,255,.55);font-size:.76rem}
.dashboard-next{position:relative;display:flex;min-height:132px;flex-direction:column;justify-content:center;padding:22px 56px 22px 23px;border:1px solid rgba(255,255,255,.13);border-radius:19px;background:rgba(255,255,255,.075);color:#fff;backdrop-filter:blur(10px);transition:background .16s ease,transform .16s ease}
.dashboard-next:hover{color:#fff;background:rgba(255,255,255,.12);transform:translateY(-1px)}
.dashboard-next>span{margin-bottom:8px;color:#d8bb89;font-size:.69rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.dashboard-next>strong{font-size:1.06rem}
.dashboard-next>small{margin-top:3px;color:rgba(255,255,255,.6)}
.dashboard-next>i{position:absolute;right:22px;top:50%;font-size:1.18rem;transform:translateY(-50%)}
.dashboard-next.is-empty{opacity:.78}
.dashboard-action-center{border-color:#d9c9ae;box-shadow:0 12px 34px rgba(48,38,25,.07)}
.dashboard-action-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.dashboard-content-grid{display:grid;grid-template-columns:minmax(0,1fr) 278px;gap:22px;align-items:start}
.dashboard-day-card{min-width:0;box-shadow:0 17px 45px rgba(44,36,26,.07)}
.dashboard-day-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:22px 24px}
.dashboard-day-header>div{min-width:0}
.dashboard-day-header p.text-muted{max-width:760px;font-size:.91rem}
.dashboard-appointment-row{grid-template-columns:68px minmax(190px,1fr) minmax(370px,auto);padding:17px 22px}
.dashboard-appointment-row.is-completed{background:#fbfcfb}
.dashboard-appointment-row.is-completed .appointment-meta{opacity:.72}
.dashboard-appointment-row .appointment-actions{display:flex;align-items:center;justify-content:flex-end;min-width:0}
.payment-chip{display:inline-flex;align-items:center;gap:5px;margin-top:6px;padding:4px 8px;border-radius:999px;background:#edf6ef;color:var(--success);font-size:.7rem;font-weight:750}
.quick-finish-form{display:grid;grid-template-columns:145px 118px auto;gap:8px;align-items:end;min-width:0}
.quick-finish-price,.quick-finish-method{display:flex;min-width:0;flex-direction:column;margin:0}
.quick-finish-price>span,.quick-finish-method>span{margin:0 0 4px;color:var(--muted);font-size:.66rem;font-weight:760;letter-spacing:.06em;text-transform:uppercase}
.quick-finish-form .form-control,.quick-finish-form .form-select,.quick-finish-form .input-group-text{min-height:44px}
.quick-finish-price .form-control{font-weight:780}
.quick-finish-form>.btn{min-width:94px}
.completed-visit{display:flex;flex-direction:column;align-items:flex-end;margin-right:4px}
.completed-visit span{display:flex;align-items:center;gap:5px;color:var(--success);font-size:.78rem;font-weight:760}
.completed-visit strong{font-size:1.03rem}
.dashboard-side{display:grid;gap:18px}
.dashboard-quick-actions{grid-template-columns:1fr}
.dashboard-tip{border-color:#ded0b8;background:linear-gradient(145deg,#fff,#fbf6ee)}
.dashboard-tip .card-body{display:flex;gap:13px;align-items:flex-start}
.dashboard-tip .card-body>span{width:42px;height:42px;flex:0 0 42px;display:grid;place-items:center;border-radius:13px;background:var(--gold-soft);color:var(--gold-dark)}
.dashboard-tip strong{display:block;margin-bottom:3px}
.dashboard-tip p{margin:0;color:var(--muted);font-size:.84rem}
.notification-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}
.notification-actions form{margin:0}
.duration-stepper{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:8px}
.duration-stepper>.btn{min-width:60px}
.request-transfer-card{padding:16px;border:1px solid #d8b878;border-radius:16px;background:#fff8e9}
.cancellation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.cancellation-grid form{margin:0}
.cancellation-grid .btn{min-height:68px;display:flex;align-items:flex-start;flex-direction:column;gap:2px;text-align:left}
.cancellation-grid .btn small{font-weight:550;opacity:.75}
.quick-confirm-card{border-color:#a9c9b2;background:linear-gradient(140deg,#fff,#ecf6ef)}
.completion-card{border-color:#b7cfbd;background:linear-gradient(140deg,#fff,#edf6ef)}
.completion-icon{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:15px;background:var(--success);color:#fff;font-size:1.42rem}
.customer-avatar{width:44px;height:44px;display:grid;place-items:center;border-radius:14px;background:#eee7dd;color:var(--gold-dark);font-weight:820}
.customer-contact a{font-weight:650}
.customer-picker{padding:16px;border:1px solid #dfd7cb;border-radius:17px;background:#faf7f2}
.customer-search-box input{background:#fff;font-size:1rem}
.customer-search-results{display:grid;max-height:330px;margin-top:8px;overflow:auto;border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:var(--shadow)}
.customer-search-result{width:100%;display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:12px;border:0;border-bottom:1px solid var(--border);background:#fff;color:var(--ink);text-align:left}
.customer-search-result:last-child{border-bottom:0}
.customer-search-result:hover,.customer-search-result.active{background:#f5ede2}
.customer-search-result>i{color:var(--gold-dark)}
.customer-result-text,.customer-selected-text{display:flex;flex-direction:column;min-width:0}
.customer-result-text strong,.customer-result-text small,.customer-selected-text strong,.customer-selected-text small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.customer-result-text small,.customer-selected-text small{margin-top:2px;color:var(--muted)}
.customer-selected{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px;border:1px solid #c9ad80;border-radius:15px;background:#fff;box-shadow:0 5px 16px rgba(80,58,28,.05)}
.customer-selected .customer-avatar{width:48px;height:48px;background:var(--gold);color:#fff}
.service-card{height:100%;padding:20px;position:relative}
.service-card:hover{box-shadow:var(--shadow)}
.service-card .menu{position:absolute;right:14px;top:14px}
.service-color{width:13px;height:13px;display:inline-block;border-radius:50%}
.service-price{font-size:1.27rem;font-weight:820}
.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}
.photo-card{position:relative;overflow:hidden;aspect-ratio:1;border-radius:16px;background:#eee}
.photo-card img{width:100%;height:100%;object-fit:cover}
.photo-card span{position:absolute;left:8px;bottom:8px;padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.72);color:#fff;font-size:.73rem}
.menu-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:15px;background:var(--gold-soft);color:var(--gold-dark);font-size:1.22rem}
.more-grid .card-body{min-height:118px}

/* Kalendár */
.calendar-card{padding:18px}
.fc{
  --fc-border-color:var(--border);
  --fc-button-bg-color:var(--ink);
  --fc-button-border-color:var(--ink);
  --fc-button-hover-bg-color:var(--gold-dark);
  --fc-button-hover-border-color:var(--gold-dark);
  --fc-button-active-bg-color:var(--gold);
  --fc-button-active-border-color:var(--gold);
  --fc-today-bg-color:rgba(173,137,82,.08);
}
.fc .fc-toolbar-title{font-size:1.18rem;font-weight:780;letter-spacing:-.025em}
.fc .fc-button{border-radius:10px;font-weight:680}
.fc-event{padding:2px 4px;border:0;border-radius:7px}

/* Verejná časť */
.public-body{min-height:100vh;background:radial-gradient(circle at 15% 0,#fff 0,#f5efe7 38%,#eee5da 100%)}
.public-wrap{max-width:920px;margin:auto;padding:28px 16px 60px}
.public-hero{
  position:relative;
  overflow:hidden;
  margin-bottom:22px;
  padding:31px;
  border-radius:var(--radius-lg);
  background:
    radial-gradient(circle at 85% 10%,rgba(207,174,117,.24),transparent 31%),
    linear-gradient(145deg,#292621,#171615);
  color:#fff;
  box-shadow:var(--shadow-lg);
}
.public-hero:after{content:"";position:absolute;width:220px;height:220px;right:-95px;bottom:-130px;border:1px solid rgba(255,255,255,.15);border-radius:50%}
.public-hero h1{margin-bottom:.65rem;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,6vw,3.2rem);letter-spacing:-.038em}
.public-hero p{max-width:610px;color:rgba(255,255,255,.7)}
.public-hero .eyebrow{color:#e1c58f}
.booking-steps{display:flex;gap:12px;margin:4px 4px 20px}
.booking-step{height:auto;flex:1;display:flex;align-items:center;gap:7px;color:#8b7f71}
.booking-step:after{content:"";height:2px;flex:1;background:#d8c9b7}
.booking-step:last-child:after{display:none}
.booking-step b{width:29px;height:29px;display:grid;place-items:center;border:2px solid #c9b9a6;border-radius:50%;font-size:.77rem}
.booking-step small{font-weight:740}
.booking-step.active{color:var(--ink)}
.booking-step.active b{border-color:var(--ink);background:var(--ink);color:#fff}
.booking-step.active:after{background:var(--gold)}
.booking-panel{scroll-margin-top:18px;border:0;border-radius:24px;box-shadow:0 18px 50px rgba(65,50,31,.09)}
.booking-heading{display:flex;gap:13px;align-items:flex-start;margin-bottom:22px}
.booking-heading>span{width:39px;height:39px;flex:none;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#fff;font-weight:820}
.booking-heading h2{margin:1px 0 3px;font-size:1.35rem;letter-spacing:-.025em}
.booking-heading p{margin:0;color:var(--muted)}
.category-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(145px,1fr));gap:10px}
.category-choice{min-height:52px;display:flex;align-items:center;gap:9px;padding:13px 11px;border:1px solid var(--border);border-radius:15px;background:#fff;color:var(--ink);font-weight:760;text-align:left}
.category-choice i{color:var(--gold-dark);font-size:1.14rem}
.category-choice:hover,.category-choice.active{border-color:var(--gold);background:#f7f0e5;box-shadow:0 6px 18px rgba(116,86,43,.09)}
.service-category h3{margin-bottom:12px;color:var(--muted);font-size:.76rem;letter-spacing:.12em;text-transform:uppercase}
.service-option{height:100%;position:relative;display:flex;align-items:stretch;padding:17px;border:1px solid var(--border);border-radius:16px;background:#fff;cursor:pointer;transition:.15s ease}
.service-option:hover,.service-option.selected{border-color:var(--gold);box-shadow:0 8px 22px rgba(157,124,67,.12)}
.service-option:focus-within{outline:3px solid rgba(118,85,34,.3);outline-offset:2px}
.service-option input{position:absolute;width:1px;height:1px;inset:0 auto auto 0;opacity:0}
.service-copy{width:100%;display:flex;flex-direction:column;gap:8px}
.service-topline{display:flex;justify-content:space-between;gap:12px;font-size:1.02rem}
.service-check{width:25px;height:25px;flex:none;display:grid;place-items:center;border-radius:50%;background:#e9e1d4;color:transparent}
.service-option.selected .service-check{background:var(--gold);color:#fff}
.service-description{line-height:1.45;color:var(--muted)}
.service-meta{display:flex;flex-wrap:wrap;gap:8px 16px;color:#554d43;font-size:.81rem}
.service-meta i{color:var(--gold-dark)}
.service-copy em{align-self:flex-start;padding:5px 9px;border-radius:20px;background:#f4eee5;color:#756755;font-size:.71rem;font-style:normal;font-weight:730}
.service-option.selected .service-copy em{background:#ece1ce;color:#654715}
.service-extras h3{font-size:1rem}
.extra-option{display:block;position:relative}
.extra-option input{position:absolute;opacity:0}
.extra-option span{min-height:48px;display:flex;align-items:center;gap:8px;padding:12px 14px;border:1px solid var(--border);border-radius:13px;background:#fff;font-weight:730}
.extra-option input:checked+span{border-color:var(--gold);background:#f0e4d1;color:#624717}
.extra-option input:checked+span i:before{content:"\f26a"}
.availability-label{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.available-days{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.available-day{min-height:76px;display:flex;flex-direction:column;align-items:center;padding:12px 8px;border:1px solid var(--border);border-radius:15px;background:#fff;color:var(--ink);line-height:1.25}
.available-day strong{color:var(--muted);font-size:.74rem;text-transform:uppercase}
.available-day span{margin:3px 0;font-size:1.06rem;font-weight:820}
.available-day small{color:var(--gold-dark)}
.available-day:hover,.available-day.selected{border-color:var(--ink);background:var(--ink);color:#fff}
.available-day.selected strong,.available-day.selected small{color:#e0c18a}
.manual-date-wrap{margin-top:16px;padding-top:12px;border-top:1px solid var(--border)}
.manual-date-toggle{padding:6px 0;border:0;background:transparent;color:var(--gold-dark);font-weight:730}
.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:10px}
.slot-btn{min-height:47px;display:flex;flex-direction:column;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff;font-weight:800}
.slot-btn small{font-size:.68rem;font-weight:500;opacity:.7}
.slot-btn:hover,.slot-btn.selected{border-color:var(--ink);background:var(--ink);color:#fff}
.request-note,.public-help{display:flex;gap:14px;padding:18px;border:1px solid #ddc9aa;border-radius:18px;background:#f8f1e7}
.request-note>i,.public-help>i{color:var(--gold-dark);font-size:1.55rem}
.request-note p,.public-help span{margin:4px 0 0;color:var(--muted)}
.legal-check{padding:14px 14px 14px 2.3rem;border:1px solid var(--border);border-radius:14px;background:#fcfaf7}
.legal-check .form-check-input{margin-left:-1.45rem}
.booking-summary{padding:16px;border:1px solid #dbc9aa;border-radius:16px;background:#f8f2e8}
.public-help{margin-top:16px;background:rgba(255,255,255,.55)}
.public-footer{margin-top:24px;color:var(--muted);font-size:.83rem;text-align:center}
.confirmation-wrap{max-width:650px;padding-top:60px}
.confirmation-icon{width:82px;height:82px;position:relative;z-index:2;display:grid;place-items:center;margin:0 auto -40px;border:7px solid #f5ecdf;border-radius:50%;background:var(--success);color:#fff;font-size:2.35rem}
.confirmation-wrap .card{border:0;border-radius:24px;box-shadow:var(--shadow-lg)}
.legal-document{line-height:1.67}
.legal-document h1{margin-bottom:1rem;font-size:clamp(1.75rem,5vw,2.35rem);line-height:1.15}
.legal-document h2{margin:2rem 0 .7rem;font-size:1.2rem;line-height:1.3}
.legal-document li+li{margin-top:.45rem}
.legal-document a{overflow-wrap:anywhere}

/* Návod */
.guide-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 28px;border-radius:var(--radius-lg);background:linear-gradient(140deg,#27231e,#161514);color:#fff;box-shadow:var(--shadow)}
.guide-hero h2{margin:0 0 5px;font-size:clamp(1.45rem,3vw,2rem);letter-spacing:-.035em}
.guide-hero p{max-width:720px;margin:0;color:rgba(255,255,255,.67)}
.guide-hero>span{width:72px;height:72px;flex:0 0 72px;display:grid;place-items:center;border-radius:22px;background:rgba(201,168,112,.18);color:#e0c18a;font-size:2rem}
.guide-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:22px;align-items:start}
.guide-sidebar{position:sticky;top:22px}
.guide-nav{display:grid;gap:6px}
.guide-nav a{display:grid;grid-template-columns:40px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px;border:1px solid transparent;border-radius:15px;color:var(--ink);transition:.15s ease}
.guide-nav a:hover{background:#fff;border-color:var(--border)}
.guide-nav a.active{background:#fff;border-color:#d8c8af;box-shadow:var(--shadow-sm)}
.guide-nav a>span{width:40px;height:40px;display:grid;place-items:center;border-radius:12px;background:var(--gold-soft);color:var(--gold-dark)}
.guide-nav a>div{display:flex;flex-direction:column;min-width:0}
.guide-nav strong,.guide-nav small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guide-nav strong{font-size:.9rem}
.guide-nav small{color:var(--muted);font-size:.72rem}
.guide-nav a>i{color:#b0aaa2;font-size:.78rem}
.guide-content{padding:28px;border:1px solid var(--border);border-radius:var(--radius-lg);background:#fff;box-shadow:var(--shadow-sm)}
.guide-title{display:flex;gap:15px;align-items:center;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--border)}
.guide-title>span{width:52px;height:52px;flex:0 0 52px;display:grid;place-items:center;border-radius:16px;background:var(--gold-soft);color:var(--gold-dark);font-size:1.45rem}
.guide-title h2{margin:0 0 3px;font-size:1.7rem;letter-spacing:-.035em}
.guide-title p{margin:0;color:var(--muted)}
.guide-content h3{margin:30px 0 12px;font-size:1.15rem;letter-spacing:-.015em}
.guide-content h3:first-of-type{margin-top:0}
.guide-content p{line-height:1.62}
.guide-steps{display:grid;gap:10px;margin:0;padding:0;list-style:none}
.guide-steps li{display:grid;grid-template-columns:38px minmax(0,1fr);gap:12px;padding:15px;border:1px solid var(--border);border-radius:15px;background:#fbfaf8}
.guide-steps li>span{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--ink);color:#fff;font-weight:800}
.guide-steps strong{display:block;margin:1px 0 3px}
.guide-steps p{margin:0;color:var(--muted)}
.guide-callout{display:flex;gap:13px;margin:20px 0;padding:16px;border:1px solid #d8c4a4;border-radius:16px;background:#f8f1e6}
.guide-callout>i{color:var(--gold-dark);font-size:1.35rem}
.guide-callout strong{display:block;margin-bottom:2px}
.guide-callout p{margin:0;color:#62594e}
.guide-callout.success{border-color:#b9d3c0;background:#eff7f1}
.guide-callout.success>i{color:var(--success)}
.guide-callout.warning{border-color:#e6cda6;background:#fff7e9}
.guide-callout.warning>i{color:var(--warning)}
.guide-callout.danger{border-color:#e5b9b9;background:#fff2f2}
.guide-callout.danger>i{color:var(--danger)}
.guide-list{display:grid;gap:9px;margin:0;padding-left:1.2rem}
.guide-list li{line-height:1.55}
.guide-flow{display:flex;align-items:center;gap:10px;padding:15px;border-radius:16px;background:#f6f3ef;overflow:auto}
.guide-flow span{min-width:150px;padding:10px;border:1px solid var(--border);border-radius:12px;background:#fff;text-align:center;font-size:.85rem;font-weight:730}
.guide-flow i{color:var(--gold-dark)}
.guide-compare{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.guide-compare>div{padding:18px;border:1px solid var(--border);border-radius:16px;background:#fbfaf8}
.guide-compare i{display:block;margin-bottom:8px;color:var(--gold-dark);font-size:1.45rem}
.guide-compare strong{display:block;margin-bottom:5px}
.guide-compare p{margin:0;color:var(--muted)}
.guide-footer{display:flex;justify-content:space-between;gap:10px;margin-top:30px;padding-top:20px;border-top:1px solid var(--border)}
.guide-footer a{font-weight:700}

/* Tablet a mobil */
@media(max-width:1199.98px){
  .guide-layout{grid-template-columns:280px minmax(0,1fr)}
  .dashboard-hero{grid-template-columns:minmax(0,1.3fr) minmax(270px,.7fr)}
  .dashboard-content-grid{grid-template-columns:1fr}
  .dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
}

@media(max-width:991.98px){
  .app-sidebar{display:none}
  .app-main{margin:0}
  .mobile-header{
    position:sticky;
    top:0;
    z-index:1020;
    height:calc(64px + env(safe-area-inset-top));
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    padding:calc(8px + env(safe-area-inset-top)) 14px 8px;
    border-bottom:1px solid rgba(0,0,0,.08);
    background:rgba(244,244,247,.88);
    -webkit-backdrop-filter:blur(20px) saturate(170%);
    backdrop-filter:blur(20px) saturate(170%);
  }
  .brand.compact{gap:9px;min-width:0}
  .brand.compact .brand-mark{width:40px;height:40px;flex-basis:40px;border-radius:12px}
  .brand.compact strong{max-width:210px;color:var(--ink);font-size:.95rem}
  .brand.compact small{color:var(--muted);font-size:.66rem}
  .mobile-header-actions{display:flex;gap:8px}
  .icon-button{width:42px;height:42px;display:grid;place-items:center;border-radius:14px;background:var(--gold-dark);color:#fff;font-size:1.05rem;box-shadow:0 5px 14px rgba(113,81,42,.19)}
  .icon-button.secondary{border:1px solid rgba(0,0,0,.07);background:rgba(255,255,255,.82);color:var(--ink);box-shadow:none}
  .page-wrap{padding:17px 14px calc(96px + env(safe-area-inset-bottom))}
  .page-heading{display:none}
  .mobile-bottom-nav{
    position:fixed;
    inset:auto 0 0;
    z-index:1040;
    display:grid;
    grid-template-columns:repeat(5,1fr);
    padding:6px 5px calc(6px + env(safe-area-inset-bottom));
    border-top:1px solid rgba(0,0,0,.1);
    background:rgba(252,252,253,.92);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    backdrop-filter:blur(22px) saturate(180%);
    box-shadow:0 -8px 28px rgba(0,0,0,.06);
  }
  .mobile-bottom-nav a{min-height:52px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border-radius:11px;color:#76736f;font-size:.72rem;font-weight:700}
  .mobile-bottom-nav i{font-size:1.24rem;line-height:1}
  .mobile-bottom-nav a.active{color:var(--gold-dark)}
  .mobile-bottom-nav a.active i{transform:translateY(-1px)}
  .appointment-row{grid-template-columns:58px 1fr;gap:10px;padding:14px}
  .appointment-actions{grid-column:1/-1}
  .appointment-manage-row .appointment-actions{display:grid;grid-template-columns:1fr auto}
  .appointment-manage-row .appointment-actions form:first-child .btn{width:100%}
  .calendar-card{padding:8px}
  .fc .fc-toolbar{align-items:flex-start;gap:8px}
  .fc .fc-toolbar.fc-header-toolbar{flex-direction:column}
  .fc .fc-toolbar-chunk{display:flex}
  .guide-layout{display:block}
  .guide-sidebar{position:static;margin-bottom:14px}
  .guide-nav{grid-template-columns:repeat(2,minmax(0,1fr));max-height:270px;overflow:auto}
  .guide-nav a>div small{display:none}
  .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-hero{min-height:0;grid-template-columns:1fr;padding:28px}
  .dashboard-next{min-height:108px}
  .dashboard-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-appointment-row{grid-template-columns:66px minmax(0,1fr);gap:10px}
  .dashboard-appointment-row .appointment-actions{grid-column:1/-1;display:block}
  .quick-finish-form{grid-template-columns:minmax(150px,1fr) 125px auto;width:100%}
}

@media(max-width:767.98px){
  .hours-responsive{overflow:visible}
  .hours-table thead{display:none}
  .hours-table tbody{display:grid;gap:12px}
  .hours-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid var(--border);border-radius:16px;background:#fff}
  .hours-table tbody td{display:block;padding:0;border:0}
  .hours-table tbody td:first-child{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid var(--border)}
  .hours-table tbody td:not(:first-child)::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:.72rem;font-weight:700}
  .hours-table .form-check-input{width:1.5rem;height:1.5rem;margin-top:8px}
  .responsive-card-table{overflow:visible}
  .responsive-card-table table,.responsive-card-table tbody{display:block}
  .responsive-card-table thead{display:none}
  .responsive-card-table tbody{display:grid;gap:10px;padding:10px}
  .responsive-card-table tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:14px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
  .responsive-card-table td{display:block;padding:0!important;border:0;text-align:left!important;overflow-wrap:anywhere}
  .responsive-card-table td::before{display:block;margin-bottom:3px;color:var(--muted);font-size:.68rem;font-weight:760;text-transform:uppercase}
  .responsive-card-table td[data-label]::before{content:attr(data-label)}
  .notification-table td:nth-child(1)::before{content:"Dátum"}
  .notification-table td:nth-child(2)::before{content:"Kanál"}
  .notification-table td:nth-child(3)::before{content:"Príjemca"}
  .notification-table td:nth-child(4)::before{content:"Správa"}
  .notification-table td:nth-child(5)::before{content:"Stav"}
  .notification-table td:nth-child(6){grid-column:1/-1}
  .notification-table td:nth-child(6) .btn{width:100%}
  .notification-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:575.98px){
  body{background:#f2f2f7}
  .page-wrap{padding-left:12px;padding-right:12px}
  .mobile-welcome{display:flex;align-items:center;justify-content:space-between;padding:4px 3px}
  .mobile-welcome div{display:flex;flex-direction:column}
  .mobile-welcome span{color:var(--muted);font-size:.76rem}
  .mobile-welcome strong{font-size:1.28rem;letter-spacing:-.03em}
  .mobile-welcome>a{width:40px;height:40px;display:grid;place-items:center;border-radius:50%;background:var(--ink);color:#fff}
  .card,.panel{border-radius:17px}
  .card-header{padding:16px}
  .card-body{padding:16px}
  .stat-card{min-height:111px;padding:15px}
  .stat-card strong{margin-top:14px!important;font-size:1.48rem}
  .stat-card .stat-icon{width:39px;height:39px;border-radius:12px;font-size:1.05rem}
  .stat-card small{font-size:.73rem}
  .appointment-manager-list,.appointment-list:has(.appointment-manage-row){overflow:visible;border:0;background:transparent;box-shadow:none}
  .appointment-manager-list .appointment-row,.appointment-list:has(.appointment-manage-row) .appointment-row{margin-bottom:9px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
  .appointment-manager-list .appointment-row:last-child,.appointment-list:has(.appointment-manage-row) .appointment-row:last-child{border:1px solid var(--border)}
  .appointment-manage-row .appointment-actions{grid-template-columns:1fr}
  .appointment-manage-row .appointment-actions .btn{width:100%}
  .appointment-row .badge{font-size:.63rem}
  .responsive-card-table .table{min-width:0}
  .action-grid{grid-template-columns:1fr}
  .action-grid>a{min-height:58px;padding:13px 15px}
  .dashboard-hero{margin-left:-2px;margin-right:-2px;padding:24px 20px;border-radius:22px}
  .dashboard-hero-copy h2{font-size:2rem}
  .dashboard-hero-copy>p:not(.dashboard-date){font-size:.89rem}
  .dashboard-hero-stats{gap:0;margin-top:24px}
  .dashboard-hero-stats>div{min-width:33.333%;padding:0 11px;border-right:1px solid rgba(255,255,255,.12)}
  .dashboard-hero-stats>div:first-child{padding-left:0}
  .dashboard-hero-stats strong{font-size:1.2rem}
  .dashboard-hero-stats span{font-size:.66rem}
  .dashboard-next{min-height:96px;padding:17px 49px 17px 17px;border-radius:16px}
  .dashboard-action-center .card-header{padding:16px}
  .dashboard-action-center .card-header h2{font-size:1.08rem}
  .dashboard-action-center .action-total{width:42px;height:42px;border-radius:13px}
  .dashboard-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .dashboard-action-grid>a{min-height:78px;align-items:flex-start;flex-direction:column;padding:13px}
  .dashboard-action-grid>a span{align-items:flex-start;font-size:.78rem}
  .dashboard-action-grid>a strong{align-self:flex-end;margin-top:-30px}
  .dashboard-side{grid-template-columns:1fr}
  .dashboard-quick-actions{grid-template-columns:1fr}
  .dashboard-day-header{align-items:flex-start;padding:17px;flex-direction:column}
  .dashboard-day-header>.btn{width:100%}
  .dashboard-appointment-list{padding:0 10px 10px}
  .dashboard-appointment-row{grid-template-columns:62px minmax(0,1fr);margin-bottom:9px;padding:13px;border:1px solid var(--border)!important;border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
  .dashboard-appointment-row:first-child{margin-top:10px}
  .dashboard-appointment-row .appointment-actions{display:block}
  .quick-finish-form{grid-template-columns:minmax(0,1fr) 118px 54px;gap:7px}
  .quick-finish-form>.btn{min-width:54px;padding-left:8px;padding-right:8px}
  .quick-finish-form>.btn span{display:none}
  .quick-finish-price>span,.quick-finish-method>span{font-size:.61rem}
  .completed-visit{display:inline-flex;min-height:44px;align-items:flex-start;justify-content:center;vertical-align:middle}
  .dashboard-appointment-row.is-completed .appointment-actions{display:flex;align-items:center;justify-content:space-between}
  .dashboard-appointment-row.is-completed .appointment-actions .btn{width:48px}
  .cancellation-grid{grid-template-columns:1fr}
  .duration-stepper>.btn{min-width:54px;padding-left:8px;padding-right:8px}
  .info-grid{grid-template-columns:1fr}
  .public-wrap{padding:12px 11px 38px}
  .public-hero{margin-bottom:14px;padding:24px 20px;border-radius:21px}
  .booking-panel{border-radius:19px}
  .booking-step small{display:none}
  .category-grid{grid-template-columns:repeat(2,1fr)}
  .category-choice{padding:11px 9px;font-size:.84rem}
  .available-days{grid-template-columns:repeat(2,1fr)}
  .booking-heading p{font-size:.84rem}
  .service-meta{flex-direction:column;gap:4px}
  .slot-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .public-help{padding:15px}
  .confirmation-wrap{padding-top:44px}
  .legal-document{font-size:.94rem}
  .legal-document h2{margin-top:1.6rem}
  .booking-summary{padding:14px}
  .table>:not(caption)>*>*{padding:13px 12px}
  .hide-mobile{display:none!important}
  .table-responsive{border:0}
  .table-responsive .table{min-width:680px}
  .customer-picker{padding:13px}
  .customer-search-result{grid-template-columns:40px minmax(0,1fr);padding:11px}
  .customer-search-result .customer-avatar{width:40px;height:40px}
  .customer-search-result>i{display:none}
  .customer-selected{grid-template-columns:42px minmax(0,1fr);padding:11px}
  .customer-selected .customer-avatar{width:42px;height:42px}
  .customer-selected .btn{grid-column:1/-1;width:100%}
  .more-grid{gap:8px!important}
  .more-grid>div{width:100%}
  .more-grid .card-body{min-height:0;padding:12px!important}
  .more-grid .menu-icon{width:43px;height:43px;border-radius:13px}
  .more-grid h2{font-size:.94rem}
  .more-grid p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}
  .customer-table-card{overflow:visible;border:0;background:transparent;box-shadow:none}
  .customer-table thead{display:none}
  .customer-table,.customer-table tbody{display:block}
  .customer-table tbody{display:grid;gap:8px}
  .customer-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;padding:11px 10px;border:1px solid var(--border);border-radius:16px;background:#fff;box-shadow:var(--shadow-sm)}
  .customer-table td{display:block;padding:0!important;border:0}
  .customer-table td:first-child{grid-column:1/2}
  .customer-table .customer-contact{grid-column:1/2;padding-left:56px!important;margin-top:-10px}
  .customer-table td:last-child{grid-column:2/3;grid-row:1/3}
  .customer-table .customer-contact small{display:none!important}
  .customer-table .customer-contact a{font-size:.79rem}
  .guide-hero{padding:20px;border-radius:20px}
  .guide-hero>span{width:52px;height:52px;flex-basis:52px;border-radius:16px;font-size:1.45rem}
  .guide-hero p{font-size:.84rem}
  .guide-nav{display:flex;gap:7px;margin:0 -12px;padding:0 12px 5px;overflow:auto}
  .guide-nav a{min-width:max-content;display:flex;padding:8px 11px;border-color:var(--border);background:#fff}
  .guide-nav a>span{width:33px;height:33px}
  .guide-nav a>div small,.guide-nav a>i{display:none}
  .guide-content{padding:18px 15px;border-radius:19px}
  .guide-title{align-items:flex-start;margin-bottom:21px;padding-bottom:17px}
  .guide-title>span{width:45px;height:45px;flex-basis:45px;border-radius:14px}
  .guide-title h2{font-size:1.4rem}
  .guide-title p{font-size:.84rem}
  .guide-steps li{grid-template-columns:34px minmax(0,1fr);padding:13px}
  .guide-steps li>span{width:34px;height:34px}
  .guide-callout{padding:14px}
  .guide-flow{align-items:stretch;flex-direction:column}
  .guide-flow i{transform:rotate(90deg);text-align:center}
  .guide-flow span{width:100%}
  .guide-compare{grid-template-columns:1fr}
  .guide-footer{flex-direction:column}
  input,select,textarea{font-size:16px!important}
}

@media(max-width:350px){
  .quick-finish-form{grid-template-columns:minmax(0,1fr) 54px}
  .quick-finish-price{grid-column:1;grid-row:1}
  .quick-finish-method{grid-column:1/-1;grid-row:2}
  .quick-finish-form>.btn{grid-column:2;grid-row:1}
}

.staff-chip{--staff-color:#8c2f4e;display:inline-flex;align-items:center;gap:6px;padding:4px 9px;border:1px solid color-mix(in srgb,var(--staff-color) 25%,#fff);border-radius:999px;background:color-mix(in srgb,var(--staff-color) 10%,#fff);color:#3a2930;font-size:.72rem;font-weight:800;line-height:1.2}
.staff-chip::before{width:8px;height:8px;flex:0 0 8px;border-radius:50%;background:var(--staff-color);content:""}
.staff-chip-large{padding:9px 12px;font-size:.88rem}
.staff-color{--staff-color:#8c2f4e;width:14px;height:42px;flex:0 0 14px;border-radius:999px;background:var(--staff-color)}
.permission-list{display:grid;gap:8px}
.permission-option{display:flex;align-items:flex-start;gap:11px;padding:12px;border:1px solid var(--border);border-radius:14px;background:#fff;cursor:pointer;transition:.15s ease}
.permission-option:hover{border-color:#c8b1a4;background:#fdfaf8}
.permission-option input{margin-top:3px}
.permission-option span{display:grid;gap:2px}
.permission-option strong{font-size:.84rem}
.permission-option small{color:var(--muted);font-size:.72rem;line-height:1.45}
.calendar-toolbar .form-select{width:min(100%,260px)}
.calendar-toolbar .form-label{font-weight:800}
.fc .fc-event{border-width:0 0 0 5px!important}

.public-body{--ink:#241c20;--ink-2:#3d3036;--gold:#8c2f4e;--gold-dark:#661a36;--gold-soft:#f4e7ea;--canvas:#fbfaf7;--cream:#f7eeee;--border:#eadfe3;background:radial-gradient(circle at 15% 0,#fff 0,#f8eff1 42%,#f2e5e8 100%)}
.public-body .public-hero{background:radial-gradient(circle at 85% 10%,rgba(224,172,190,.24),transparent 31%),linear-gradient(145deg,#8c2f4e,#53152c)}
.public-body .public-hero .eyebrow{color:#f1cbd7}
.public-body .brand-mark{background:linear-gradient(145deg,#b94f72,#7b2443)}
.public-body .category-choice:hover,.public-body .category-choice.active{border-color:var(--gold);background:#fbf0f3;box-shadow:0 6px 18px rgba(102,26,54,.09)}
.public-body .service-option:hover,.public-body .service-option.selected{box-shadow:0 8px 22px rgba(102,26,54,.1)}
.public-body .service-option:focus-within{outline-color:rgba(140,47,78,.28)}
.public-body .service-check{background:#f0e3e7}
.public-body .service-option.selected .service-copy em,.public-body .extra-option input:checked+span{border-color:var(--gold);background:#f4e2e8;color:var(--wine-dark,#661a36)}
.public-body .available-day.selected strong,.public-body .available-day.selected small{color:#f2cad7}
.public-body .request-note,.public-body .public-help{border-color:#e2c5cf;background:#fbf0f3}
.public-body .legal-check{background:#fffafb}
.public-body .booking-summary{border-color:#dfc3cc;background:#fbf0f3}

@media(max-width:600px){
  .calendar-toolbar .card-body{align-items:stretch!important;flex-direction:column}
  .calendar-toolbar .form-select{width:100%}
  .permission-option{padding:11px}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;transition:none!important;animation:none!important}
}

/* === 3.3.0: pracovný kalendár, klientky a žiadosti === */
.calendar-control-card .card-body{display:flex;align-items:center;justify-content:space-between;gap:22px;padding:17px 20px}
.calendar-control-copy{display:grid;gap:3px}.calendar-control-copy strong{font-size:.96rem}.calendar-control-copy small{max-width:700px;color:var(--muted);font-size:.76rem;line-height:1.45}
.calendar-control-actions{display:flex;align-items:center;gap:18px}.calendar-staff-control{display:flex;align-items:center;gap:9px;margin:0}.calendar-staff-control>span{font-size:.72rem;font-weight:800}.calendar-staff-control .form-select{min-width:180px}
.calendar-history-toggle{display:flex;align-items:center;gap:8px;margin:0;padding:0}.calendar-history-toggle .form-check-input{float:none;margin:0}.calendar-history-toggle .form-check-label{font-size:.76rem;font-weight:750;white-space:nowrap}
.calendar-card{overflow:hidden}.calendar-card #calendar{padding:14px}.fc{--fc-border-color:#ece7e4;--fc-page-bg-color:#fff;--fc-neutral-bg-color:#faf8f7;--fc-today-bg-color:#fff7f8;--fc-now-indicator-color:#9a274f}
.fc .fc-toolbar-title{font-size:1.15rem;font-weight:850}.fc .fc-button{border:1px solid var(--border)!important;border-radius:10px!important;background:#fff!important;color:var(--ink)!important;box-shadow:none!important;font-size:.75rem!important;font-weight:800!important;text-transform:none!important}.fc .fc-button:hover,.fc .fc-button-active{border-color:#c9aeb8!important;background:#f8edf0!important;color:#7b2343!important}.fc .fc-button-primary:disabled{opacity:.55}
.fc .fc-timegrid-slot{height:2.35em}.fc .fc-timegrid-slot-label-cushion,.fc .fc-col-header-cell-cushion{color:#74686d;font-size:.68rem;font-weight:750}.fc .fc-col-header-cell-cushion{padding:9px 4px}.fc .fc-day-today .fc-col-header-cell-cushion{color:#8c2f4e}
.fc .appointment-event{border:0!important;border-left:4px solid rgba(0,0,0,.16)!important;border-radius:8px!important;box-shadow:0 3px 10px rgba(44,26,33,.08);cursor:pointer}.fc .appointment-event.status-completed{opacity:.55}.fc .appointment-event.status-cancelled,.fc .appointment-event.status-no_show{opacity:.48;filter:saturate(.55)}
.calendar-event-content{display:grid;gap:1px;min-width:0;padding:3px 5px;color:#fff;line-height:1.14}.calendar-event-content strong{font-size:.68rem}.calendar-event-content span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem;font-weight:850}.calendar-event-content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem;opacity:.9}
.customer-risk-warning,.customer-history-warning{display:flex;align-items:flex-start;gap:11px;margin-top:10px;padding:12px 13px;border:1px solid #efc8b8;border-radius:14px;background:#fff5ef;color:#7e3824}.customer-risk-warning>i,.customer-history-warning>i{margin-top:1px;font-size:1.05rem}.customer-risk-warning>div,.customer-history-warning>div{display:grid;gap:2px}.customer-risk-warning strong,.customer-history-warning strong{font-size:.79rem}.customer-risk-warning small,.customer-history-warning span{color:#8b5a4a;font-size:.7rem}.customer-result-risk{display:inline-flex;width:max-content;margin-top:3px;padding:2px 7px;border-radius:999px;background:#fff0e9;color:#91462d;font-size:.65rem;font-weight:850}
.customer-list-hero .card-body,.waitlist-overview .card-body{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 22px}.customer-list-hero h2,.waitlist-overview h2{font-weight:850}.customer-search-panel .card-body{display:flex;gap:9px;align-items:center}.customer-list-search{flex:1}.customer-filter-tabs{display:flex;gap:7px;overflow:auto;padding:2px 1px 5px;scrollbar-width:none}.customer-filter-tabs::-webkit-scrollbar{display:none}.customer-filter-tabs a{display:flex;align-items:center;gap:9px;min-width:max-content;padding:9px 12px;border:1px solid var(--border);border-radius:12px;background:#fff;color:var(--ink);font-size:.74rem;font-weight:800;text-decoration:none}.customer-filter-tabs a strong{display:grid;min-width:23px;height:23px;place-items:center;padding:0 6px;border-radius:999px;background:#f1edef;font-size:.66rem}.customer-filter-tabs a.active{border-color:#a94d6d;background:#8c2f4e;color:#fff}.customer-filter-tabs a.active strong{background:rgba(255,255,255,.17);color:#fff}
.customer-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.customer-empty{grid-column:1/-1}.customer-profile-card{overflow:hidden;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm);transition:.16s ease}.customer-profile-card:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.customer-profile-card.has-risk{border-color:#edcfc2}.customer-profile-main{display:block;padding:17px;color:inherit;text-decoration:none}.customer-profile-head{display:grid;grid-template-columns:50px minmax(0,1fr) auto;align-items:center;gap:12px}.customer-avatar-lg{width:50px!important;height:50px!important;font-size:.82rem!important}.customer-profile-head h2{margin:0;font-size:1rem;font-weight:880}.customer-profile-head span:not(.customer-avatar){color:var(--muted);font-size:.74rem}.customer-profile-head>i{color:#a09297}.customer-risk-chip{display:flex;align-items:center;gap:8px;margin-top:12px;padding:8px 10px;border-radius:11px;background:#fff3ed;color:#90462e}.customer-risk-chip>span{display:grid}.customer-risk-chip strong{font-size:.72rem}.customer-risk-chip small{font-size:.63rem;opacity:.8}.customer-profile-stats{display:grid;grid-template-columns:.8fr 1fr 1fr;gap:8px;margin-top:14px}.customer-profile-stats>div{display:grid;gap:2px;padding:9px;border-radius:11px;background:#faf8f7}.customer-profile-stats small{color:var(--muted);font-size:.61rem}.customer-profile-stats strong{font-size:.74rem}.customer-profile-actions{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--border)}.customer-profile-actions a{display:flex;align-items:center;justify-content:center;gap:6px;padding:10px 6px;border-right:1px solid var(--border);color:#59484e;font-size:.69rem;font-weight:800;text-decoration:none}.customer-profile-actions a:last-child{border-right:0}.customer-profile-actions a:hover{background:#faf5f6;color:#8c2f4e}.history-status-no_show,.history-status-cancelled{opacity:.72;background:#fbf8f7}.history-status-no_show{border-left:3px solid #7b4b3c!important}
.waitlist-mini-stats{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.waitlist-mini-stats span{display:grid;min-width:92px;padding:9px 11px;border-radius:12px;background:#f8f4f5;color:var(--muted);font-size:.65rem}.waitlist-mini-stats strong{color:var(--ink);font-size:1.05rem}.waitlist-card-list{display:grid;gap:12px}.waitlist-request-card{padding:17px;border:1px solid var(--border);border-radius:18px;background:#fff;box-shadow:var(--shadow-sm)}.waitlist-request-card.status-waiting_slot{border-color:#c9d7df;background:#fbfdfe}.waitlist-request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:13px}.waitlist-request-head>div{display:flex;gap:11px;min-width:0}.waitlist-request-date{display:grid;width:47px;height:47px;place-items:center;flex:0 0 47px;border-radius:13px;background:#f5ecef;color:#7c2443;font-size:.72rem;font-weight:900}.waitlist-request-head h2{margin:1px 0 2px;font-size:.96rem;font-weight:880}.waitlist-request-head p{margin:0;color:var(--muted);font-size:.7rem}.waitlist-request-head p a{color:inherit}.waitlist-request-preference{display:flex;gap:10px;flex-wrap:wrap;margin-top:13px;padding:10px 11px;border-radius:12px;background:#faf8f7}.waitlist-request-preference span{display:flex;align-items:center;gap:5px;color:#655960;font-size:.68rem}.waitlist-request-preference strong{color:var(--ink)}.waitlist-request-note{margin-top:10px;padding:11px 12px;border-left:3px solid #d6b6c1;border-radius:0 10px 10px 0;background:#fcf8f9;font-size:.72rem;line-height:1.5}.waitlist-request-note>strong{display:block;margin-bottom:3px}.waitlist-primary-actions{display:flex;gap:8px;margin-top:12px}.waitlist-status-form{display:grid;grid-template-columns:minmax(180px,.85fr) minmax(220px,1.4fr) auto;align-items:end;gap:9px;margin-top:13px;padding-top:13px;border-top:1px solid var(--border)}.waitlist-status-form label{display:grid;gap:4px}.waitlist-status-form label>span{font-size:.65rem;font-weight:800}.waitlist-status-form label small{font-weight:500;color:var(--muted)}.waitlist-status-form .btn{min-height:42px}.waitlist-add-card{position:sticky;top:20px}
@media(max-width:800px){.calendar-control-card .card-body,.customer-list-hero .card-body,.waitlist-overview .card-body{align-items:stretch;flex-direction:column}.calendar-control-actions{align-items:stretch;flex-direction:column;gap:11px}.calendar-staff-control{align-items:stretch;flex-direction:column}.calendar-staff-control .form-select{width:100%}.calendar-history-toggle{min-height:42px}.calendar-card{border:0;background:transparent;box-shadow:none}.calendar-card #calendar{padding:5px 0 0}.fc .fc-header-toolbar{gap:8px;margin-bottom:10px!important}.fc .fc-toolbar-title{font-size:.98rem}.fc .fc-timegrid-slot{height:2.7em}.fc .fc-footer-toolbar{margin-top:10px!important;padding:0 2px}.fc .fc-footer-toolbar .fc-toolbar-chunk:first-child{display:flex;gap:5px}.customer-card-grid{grid-template-columns:1fr}.customer-search-panel .card-body{flex-wrap:wrap}.customer-list-search{flex-basis:100%}.customer-search-panel .btn{flex:1}.waitlist-mini-stats{justify-content:flex-start}.waitlist-status-form{grid-template-columns:1fr}.waitlist-primary-actions{display:grid;grid-template-columns:1fr 1fr}.waitlist-add-card{position:static}}
@media(max-width:430px){.customer-profile-main{padding:14px}.customer-profile-stats{grid-template-columns:1fr 1fr}.customer-profile-stats>div:first-child{grid-column:1/-1}.customer-profile-actions a{font-size:.64rem}.waitlist-request-card{padding:14px}.waitlist-request-head{align-items:flex-start;flex-direction:column}.waitlist-primary-actions{grid-template-columns:1fr}.fc .fc-toolbar{align-items:center}.fc .fc-button{padding:.38em .56em!important;font-size:.69rem!important}.calendar-event-content small{display:none}}


/* === 3.3.1: modernejší kalendár pre mobil a tablet === */
.calendar-shell{display:grid;gap:16px}
.calendar-hero{border-color:rgba(165,120,143,.18);background:linear-gradient(135deg,#fff7f9 0%,#fff 48%,#fbf8f8 100%);box-shadow:0 22px 44px rgba(56,32,40,.06)}
.calendar-hero .card-body{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);gap:20px;align-items:center;padding:24px}
.calendar-hero-copy h2{margin:0;font-size:clamp(1.4rem,3vw,2rem);font-weight:850;letter-spacing:-.04em}
.calendar-hero-copy p:not(.eyebrow){margin:10px 0 0;color:#675f65;max-width:760px;line-height:1.6}
.calendar-hero-points{display:grid;gap:10px}
.calendar-hero-points>div{display:flex;flex-direction:column;padding:14px 16px;border:1px solid rgba(165,120,143,.15);border-radius:18px;background:rgba(255,255,255,.82);box-shadow:0 8px 22px rgba(80,47,59,.04)}
.calendar-hero-points strong{font-size:.9rem;font-weight:850}
.calendar-hero-points span{margin-top:2px;color:#73686f;font-size:.76rem}

.calendar-toolbar{border-color:#efe3e8;background:linear-gradient(180deg,#fff,#fff9fb)}
.calendar-toolbar .card-body{display:grid;gap:16px;padding:20px}
.calendar-toolbar-main,.calendar-toolbar-meta{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.calendar-toolbar-copy{display:grid;gap:4px;min-width:min(100%,460px)}
.calendar-toolbar-copy strong{font-size:1rem;font-weight:840}
.calendar-toolbar-copy small{color:#746a70;line-height:1.55}
.calendar-segmented{display:inline-flex;flex-wrap:wrap;gap:6px;padding:6px;border:1px solid #eadde2;border-radius:20px;background:#f7eff2;box-shadow:inset 0 1px 0 rgba(255,255,255,.6)}
.calendar-segmented-btn{min-height:42px;padding:0 16px;border:0;border-radius:14px;background:transparent;color:#6a5d65;font-size:.8rem;font-weight:820;letter-spacing:-.01em;transition:background .16s ease,color .16s ease,transform .16s ease,box-shadow .16s ease}
.calendar-segmented-btn:hover{background:rgba(255,255,255,.58);color:#5e2740}
.calendar-segmented-btn.active{background:#fff;color:#7d2246;box-shadow:0 8px 18px rgba(122,40,73,.12),inset 0 0 0 1px rgba(122,40,73,.06)}
.calendar-toolbar-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.calendar-staff-control{display:flex;align-items:center;gap:10px;margin:0}.calendar-staff-control>span{font-size:.74rem;font-weight:850;color:#4f464b;white-space:nowrap}
.calendar-staff-control .form-select{min-width:180px;border-color:#e6dce0;background:#fff}
.calendar-history-toggle{min-height:44px;display:inline-flex;align-items:center;gap:10px;margin:0;padding:0 14px;border:1px solid #eadfe3;border-radius:14px;background:#fff}
.calendar-history-toggle .form-check-input{float:none;margin:0}
.calendar-history-toggle .form-check-label{font-size:.78rem;font-weight:760;white-space:nowrap}
.calendar-today-btn{min-height:44px;border-radius:14px;border-color:#e7dce1}
.calendar-legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.calendar-legend-pill{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid #ece4e7;border-radius:999px;background:#fff;color:#665b62;font-size:.72rem;font-weight:760}
.calendar-legend-pill i{width:10px;height:10px;border-radius:50%;display:block;background:#bbb}
.calendar-legend-pill.is-confirmed i{background:#ad8952}
.calendar-legend-pill.is-pending i{background:#b95e8d}
.calendar-legend-pill.is-completed i{background:#63836f}

.calendar-card{padding:16px;border-radius:28px;border-color:#ede3e8;background:linear-gradient(180deg,#fff,#fdfcfc);box-shadow:0 18px 42px rgba(46,30,37,.06);overflow:hidden}
.calendar-card #calendar{padding:0}
.fc{--fc-border-color:#f0e5ea;--fc-page-bg-color:#fff;--fc-neutral-bg-color:#fbf7f8;--fc-neutral-text-color:#72676d;--fc-today-bg-color:#fff2f6;--fc-now-indicator-color:#b33767;--fc-list-event-hover-bg-color:#fbf4f6}
.fc .fc-scrollgrid{border:1px solid #efe3e8;border-radius:22px;overflow:hidden;background:#fff}
.fc-theme-standard td,.fc-theme-standard th{border-color:#f0e6ea}
.fc .fc-toolbar{position:sticky;top:0;z-index:4;margin-bottom:14px!important;padding:8px 4px 4px;background:linear-gradient(180deg,rgba(253,252,252,.98),rgba(253,252,252,.88));backdrop-filter:blur(10px)}
.fc .fc-toolbar-title{text-transform:capitalize;font-size:1.24rem;font-weight:860;letter-spacing:-.03em;color:#231d21}
.fc .fc-button{min-height:42px;padding:.42rem .85rem!important;border:1px solid #eadde2!important;border-radius:14px!important;background:#fff!important;color:#30272c!important;font-size:.78rem!important;font-weight:820!important;box-shadow:none!important}
.fc .fc-button:hover,.fc .fc-button-active{border-color:#dab6c4!important;background:#fdf2f6!important;color:#84264d!important}
.fc .fc-button-primary:disabled{opacity:.5}
.fc .fc-col-header-cell{background:#fcf7f8}
.fc .fc-col-header-cell-cushion{padding:12px 6px;color:#5a5156;font-size:.75rem;font-weight:820;text-transform:capitalize}
.fc .fc-timegrid-axis,.fc .fc-timegrid-slot-label{background:#fff}
.fc .fc-timegrid-axis-cushion,.fc .fc-timegrid-slot-label-cushion{padding:0 8px;color:#8a7e84;font-size:.74rem;font-weight:760}
.fc .fc-timegrid-slot{height:3.2em}
.fc .fc-timegrid-divider{padding:0;border-color:#f0e6ea}
.fc .fc-day-today{background:transparent!important}
.fc .fc-timegrid-col.fc-day-today,.fc .fc-daygrid-day.fc-day-today{background:linear-gradient(180deg,rgba(255,242,246,.78),rgba(255,255,255,0) 65%)}
.fc .fc-timegrid-now-indicator-line{border-color:#b33767;border-width:2px}
.fc .fc-timegrid-now-indicator-arrow{border-color:#b33767}
.fc .fc-view-harness{min-height:68vh}
.fc .fc-daygrid-day-number{padding:10px 12px;color:#463e43;font-weight:750}
.fc .fc-daygrid-more-link{font-weight:760;color:#7d2246}

.fc-event.calendar-event{border:0!important;border-left:5px solid rgba(255,255,255,.8)!important;border-radius:16px!important;box-shadow:0 12px 24px rgba(74,43,55,.12);overflow:hidden}
.fc-event.calendar-event .fc-event-main{padding:0}
.calendar-event-content{display:grid;gap:6px;min-width:0;padding:10px 11px;color:#fff;line-height:1.12}
.calendar-event-top{display:flex;align-items:center;justify-content:space-between;gap:6px}
.calendar-event-content strong{font-size:.71rem;font-weight:880;letter-spacing:.01em}
.calendar-event-content>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.84rem;font-weight:860}
.calendar-event-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}
.calendar-event-content small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.66rem;opacity:.96}
.calendar-event-staff{padding-left:8px;border-left:1px solid rgba(255,255,255,.24)}
.calendar-status-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;max-width:120px;padding:0 8px;border-radius:999px;background:rgba(255,255,255,.18);backdrop-filter:blur(4px);font-size:.58rem;font-weight:900;text-transform:uppercase;letter-spacing:.06em}
.calendar-status-badge.status-pending,.calendar-status-badge.status-requested{background:rgba(255,255,255,.22)}
.calendar-status-badge.status-confirmed{background:rgba(255,255,255,.15)}
.calendar-status-badge.status-completed{background:rgba(25,48,29,.22)}
.calendar-event-content.blocked{padding:9px 10px;color:#3b3437}.calendar-event-content.blocked span{font-size:.74rem;font-weight:820}.calendar-event-content.blocked small{font-size:.65rem;color:#6b6267}
.fc-bg-event{opacity:.3!important}

@media(max-width:1180px){
  .calendar-hero .card-body{grid-template-columns:1fr}
}
@media(max-width:920px){
  .calendar-toolbar-main,.calendar-toolbar-meta{align-items:stretch;flex-direction:column}
  .calendar-toolbar-copy{min-width:0}
  .calendar-segmented{width:100%;justify-content:space-between}
  .calendar-segmented-btn{flex:1}
}
@media(max-width:760px){
  .calendar-hero{display:none}
  .calendar-toolbar .card-body{padding:16px}
  .calendar-toolbar-actions{display:grid;grid-template-columns:1fr;align-items:stretch}
  .calendar-staff-control{align-items:stretch;flex-direction:column}
  .calendar-staff-control .form-select{width:100%}
  .calendar-history-toggle,.calendar-today-btn{justify-content:center;width:100%}
  .calendar-legend{display:none}
  .calendar-card{padding:8px;border:0;background:transparent;box-shadow:none}
  .fc .fc-toolbar{padding:4px 2px 2px;margin-bottom:8px!important}
  .fc .fc-toolbar-title{font-size:1rem}
  .fc .fc-button{min-height:40px;padding:.4rem .75rem!important}
  .fc .fc-view-harness{min-height:62vh}
  .fc .fc-timegrid-slot{height:3.45em}
  .fc .fc-col-header-cell-cushion{padding:10px 4px;font-size:.72rem}
  .calendar-event-content{padding:9px 9px 10px}
  .calendar-status-badge{display:none}
}
@media(max-width:480px){
  .calendar-segmented{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}
  .calendar-segmented-btn{width:100%}
  .fc .fc-header-toolbar{gap:8px}
  .fc .fc-toolbar-title{font-size:.95rem}
  .fc .fc-timegrid-slot-label-cushion,.fc .fc-timegrid-axis-cushion{font-size:.68rem}
  .calendar-event-bottom{display:block}
  .calendar-event-staff{display:none}
}


/* === 3.3.2: mobilný diár v kalendári === */
.fc .fc-list{border:1px solid #efe3e8;border-radius:22px;overflow:hidden;background:#fff}
.fc .fc-list-empty{padding:18px;color:#7b6f76}
.fc .fc-list-day-cushion{padding:12px 16px!important;background:#fcf5f7!important;color:#3e3339;font-size:.9rem;font-weight:850;text-transform:capitalize}
.fc .fc-list-event:hover td{background:#fff8fa}
.fc .fc-list-event td{padding:0;border-color:#f1e7eb;vertical-align:middle}
.fc .fc-list-event-time{width:78px;padding:14px 10px 14px 16px!important;color:#8a7b83;font-size:.75rem;font-weight:820;white-space:nowrap}
.fc .fc-list-event-graphic{display:none}
.fc .fc-list-event-title{padding:10px 14px!important}
.calendar-list-event{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:6px 0}
.calendar-list-main{display:flex;flex-direction:column;gap:4px;min-width:0}
.calendar-list-main strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#241f22;font-size:.9rem;font-weight:860}
.calendar-list-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#7a6f75;font-size:.72rem}
.calendar-list-status{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;background:#f6edf1;color:#7c2348;font-size:.62rem;font-weight:900;letter-spacing:.05em;text-transform:uppercase;white-space:nowrap}
.calendar-list-status.status-completed{background:#ecf4ee;color:#346247}
.calendar-list-status.status-confirmed,.calendar-list-status.status-deposit_paid{background:#f2ecdf;color:#75541e}
.calendar-list-status.status-pending,.calendar-list-status.status-requested,.calendar-list-status.status-waiting_deposit{background:#f9e9f0;color:#9a2e5b}
@media(max-width:760px){
  .fc .fc-list{border-radius:18px}
  .fc .fc-list-day-cushion{padding:11px 14px!important;font-size:.84rem}
  .fc .fc-list-event-time{width:68px;padding:12px 8px 12px 12px!important;font-size:.71rem}
  .fc .fc-list-event-title{padding:8px 10px!important}
  .calendar-list-event{align-items:flex-start;gap:10px}
  .calendar-list-status{padding:6px 8px;font-size:.58rem}
}
@media(max-width:430px){
  .calendar-list-event{flex-direction:column;align-items:flex-start}
  .calendar-list-status{margin-left:0}
}


/* === 3.3.3: lepší desktopový kalendár === */
@media(min-width:1121px){
  .calendar-shell{gap:18px}
  .calendar-card{padding:18px 20px 20px}
  .fc .fc-view-harness{min-height:72vh}
  .fc .fc-timegrid-slot{height:2.8em}
  .fc .fc-col-header-cell-cushion{padding:12px 8px;font-size:.78rem}
  .calendar-event-content{padding:9px 10px}
  .calendar-event-content>span{font-size:.8rem}
  .calendar-status-badge{font-size:.55rem;max-width:92px}
}


/* === 3.4.0: adaptívny kalendár + jednoduchý sprievodca termínom === */
.calendar-shell-v4{gap:12px}
.calendar-shell-v4 .calendar-toolbar{position:relative;border:1px solid #eadfe3;border-radius:22px;box-shadow:0 10px 28px rgba(54,34,42,.05)}
.calendar-shell-v4 .calendar-toolbar .card-body{gap:12px;padding:16px 18px}
.calendar-shell-v4 .calendar-toolbar-copy strong{font-size:1.02rem}.calendar-shell-v4 .calendar-toolbar-copy small{max-width:680px}
.calendar-shell-v4 .calendar-segmented{flex-wrap:nowrap;padding:4px;border-radius:16px;overflow-x:auto;scrollbar-width:none}.calendar-shell-v4 .calendar-segmented::-webkit-scrollbar{display:none}
.calendar-shell-v4 .calendar-segmented-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 13px;border-radius:12px;white-space:nowrap}.calendar-shell-v4 .calendar-segmented-btn i{font-size:.82rem}
.calendar-readable-hint{display:flex;align-items:center;gap:8px;color:#83767d;font-size:.7rem;font-weight:700}.calendar-readable-hint i{color:#a14b6d}
.calendar-card-v4{padding:12px 14px 14px;border-radius:22px;overflow:visible}
.calendar-card-v4 .fc .fc-scrollgrid{border-radius:16px}
.calendar-card-v4 .fc .fc-toolbar{position:static;padding:3px 2px 9px;margin-bottom:4px!important;background:transparent;backdrop-filter:none}
.calendar-card-v4 .fc .fc-toolbar-title{font-size:1.1rem}
.calendar-card-v4 .fc .fc-button{min-height:38px;padding:.35rem .7rem!important;border-radius:11px!important}
.calendar-card-v4 .fc .fc-col-header-cell-cushion{padding:10px 5px;font-size:.78rem}
.calendar-card-v4 .fc .fc-timegrid-slot{height:3.05em}
.calendar-card-v4 .fc .fc-timegrid-slot-label-cushion{font-variant-numeric:tabular-nums}
.calendar-card-v4 .fc-event.calendar-event{border-left-width:4px!important;border-radius:11px!important;box-shadow:0 5px 12px rgba(67,42,51,.1)}
.calendar-card-v4 .calendar-event-content{gap:3px;padding:7px 8px;line-height:1.16}
.calendar-card-v4 .calendar-event-content>span{font-size:.8rem;font-weight:880}
.calendar-card-v4 .calendar-event-top strong{font-size:.67rem}.calendar-card-v4 .calendar-event-service{font-size:.63rem;opacity:.95}
.calendar-card-v4 .calendar-status-badge{min-height:18px;max-width:86px;padding:0 5px;font-size:.48rem;letter-spacing:.03em}
@media(max-width:1279px){.calendar-card-v4 .calendar-status-badge{display:none}.calendar-card-v4 .calendar-event-content>span{font-size:.78rem}}
@media(max-width:920px){.calendar-shell-v4 .calendar-toolbar-main,.calendar-shell-v4 .calendar-toolbar-meta{gap:10px}.calendar-shell-v4 .calendar-toolbar-copy small{display:none}.calendar-shell-v4 .calendar-segmented{width:100%}.calendar-shell-v4 .calendar-segmented-btn{flex:1}.calendar-readable-hint{display:none}}
@media(max-width:759px){.calendar-shell-v4 .calendar-toolbar{border-radius:16px}.calendar-shell-v4 .calendar-toolbar .card-body{padding:12px}.calendar-shell-v4 .calendar-toolbar-copy{display:none}.calendar-shell-v4 .calendar-toolbar-actions{grid-template-columns:1fr 1fr}.calendar-shell-v4 .calendar-history-toggle{grid-column:1/-1}.calendar-shell-v4 .calendar-segmented-btn span{font-size:.68rem}.calendar-card-v4{padding:0;border:0;box-shadow:none}.calendar-card-v4 .fc .fc-toolbar-title{font-size:.95rem}.calendar-card-v4 .fc .fc-list-event-time{width:64px}.calendar-card-v4 .calendar-list-main strong{font-size:.88rem}}
@media(max-width:480px){.calendar-shell-v4 .calendar-segmented{display:flex}.calendar-shell-v4 .calendar-segmented-btn{min-width:max-content;padding:0 10px}.calendar-shell-v4 .calendar-toolbar-actions{display:grid;grid-template-columns:1fr}.calendar-shell-v4 .calendar-history-toggle{grid-column:auto}}

.appointment-wizard{max-width:980px;margin:0 auto 30px}.wizard-progress{display:grid;grid-template-columns:1fr auto 1fr auto 1fr;align-items:center;gap:8px;margin:0 0 14px;padding:9px;border:1px solid #eadfe3;border-radius:18px;background:#fff;box-shadow:0 8px 24px rgba(54,34,42,.04)}
.wizard-progress>i{color:#c7bbc0;font-size:.72rem}.wizard-progress-step{display:flex;align-items:center;gap:10px;min-width:0;padding:9px 11px;border:0;border-radius:13px;background:transparent;color:#8b7f85;text-align:left}.wizard-progress-step>span{display:grid;width:30px;height:30px;place-items:center;flex:0 0 30px;border-radius:10px;background:#f3edef;color:#796c73;font-size:.75rem;font-weight:900}.wizard-progress-step>div{display:grid;min-width:0}.wizard-progress-step strong{font-size:.78rem;font-weight:850}.wizard-progress-step small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.62rem}.wizard-progress-step.active{background:#f9eef2;color:#7d2246}.wizard-progress-step.active>span{background:#8c2f4e;color:#fff}.wizard-progress-step.done>span{background:#edf4ef;color:#366448}.wizard-progress-step.done>span::before{content:'✓';font-size:.8rem}.wizard-progress-step.done>span{font-size:0}
.appointment-wizard[data-wizard-ready="1"] .wizard-step-panel{display:none}.appointment-wizard[data-wizard-ready="1"] .wizard-step-panel.active{display:block}.wizard-card{overflow:hidden;border:1px solid #eadfe3;border-radius:24px;box-shadow:0 18px 42px rgba(51,31,39,.06)}.wizard-card .card-body{padding:24px}.wizard-heading{display:flex;gap:15px;align-items:flex-start;margin-bottom:24px}.wizard-number{display:grid;width:42px;height:42px;place-items:center;flex:0 0 42px;border-radius:14px;background:#8c2f4e;color:#fff;font-size:1rem;font-weight:900}.wizard-heading h2{margin:0;font-size:1.3rem;font-weight:880;letter-spacing:-.03em}.wizard-heading p:not(.eyebrow){margin:6px 0 0;max-width:760px;color:#776b72;font-size:.78rem;line-height:1.55}.wizard-card-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 20px;border-top:1px solid #eee4e8;background:#fcfafb}.wizard-card-footer .btn{min-width:150px;border-radius:14px}.wizard-save{min-width:200px!important}
.wizard-selected{margin-bottom:14px;padding:14px 15px;border:1px solid #dfc8d1;border-radius:16px;background:#fff8fa}.wizard-selected .customer-selected-text{display:grid;gap:1px}.wizard-selected .customer-selected-text>small{color:#9b6c7e;font-size:.6rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.wizard-selected .customer-selected-text>span{color:#7b6f76;font-size:.7rem}.customer-match-area{padding:14px;border:1px solid #ede3e7;border-radius:17px;background:#fbf9fa}.customer-match-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.customer-match-head>div{display:grid;gap:2px}.customer-match-head strong{font-size:.77rem}.customer-match-head small{color:#81757c;font-size:.68rem}.customer-match-head .badge{font-size:.62rem;font-weight:750}.wizard-customer-result{border-radius:12px!important;margin-top:5px;border:1px solid #eee4e8!important}.wizard-customer-result+.wizard-customer-result{border-top:1px solid #eee4e8!important}.customer-result-use{padding:6px 9px;border-radius:9px;background:#f5e9ee;color:#7c2447;font-size:.62rem;font-weight:850}.appointment-time-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(150px,.7fr) minmax(170px,.8fr);gap:14px}.wizard-advanced{border:1px solid #ede3e7;border-radius:15px;background:#fcfafb}.wizard-advanced summary{display:flex;align-items:center;gap:8px;padding:13px 15px;cursor:pointer;color:#5f5359;font-size:.75rem;font-weight:820;list-style:none}.wizard-advanced summary::-webkit-details-marker{display:none}.wizard-advanced-body{display:grid;gap:9px;padding:0 13px 13px}.wizard-switch{display:flex;align-items:flex-start;gap:11px;padding:11px 12px;border-radius:12px;background:#fff}.wizard-switch .form-check-input{flex:0 0 auto;margin-top:2px}.wizard-switch>span{display:grid}.wizard-switch strong{font-size:.74rem}.wizard-switch small{color:#7f747a;font-size:.66rem}
.individual-deposit-card{overflow:hidden;border:1px solid #e4d4bb;border-radius:18px;background:#fffcf5}.deposit-toggle{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:15px 16px;cursor:pointer}.deposit-icon{display:grid;width:44px;height:44px;place-items:center;border-radius:14px;background:#f3ead8;color:#805d21;font-size:1.1rem}.deposit-toggle>span:nth-child(2){display:grid}.deposit-toggle strong{font-size:.82rem}.deposit-toggle small{margin-top:3px;color:#7d7160;font-size:.67rem;line-height:1.45}.deposit-toggle .form-check-input{width:2.6em;height:1.35em}.deposit-amount-wrap{padding:0 16px 16px 72px}.deposit-amount-wrap .input-group{max-width:260px}.wizard-error{max-width:980px;margin-left:auto;margin-right:auto}
@media(max-width:760px){.appointment-wizard{margin:-2px 0 20px}.wizard-progress{position:sticky;top:64px;z-index:8;grid-template-columns:repeat(3,1fr);gap:5px;padding:6px;border-radius:14px}.wizard-progress>i{display:none}.wizard-progress-step{justify-content:center;padding:7px 5px}.wizard-progress-step>span{width:27px;height:27px;flex-basis:27px}.wizard-progress-step>div small{display:none}.wizard-progress-step strong{font-size:.69rem}.wizard-card{border-radius:18px}.wizard-card .card-body{padding:17px 15px}.wizard-heading{gap:11px;margin-bottom:18px}.wizard-number{width:36px;height:36px;flex-basis:36px;border-radius:12px}.wizard-heading h2{font-size:1.12rem}.wizard-heading p:not(.eyebrow){font-size:.72rem}.wizard-card-footer{position:sticky;bottom:0;z-index:6;padding:11px 12px;background:rgba(255,255,255,.96);backdrop-filter:blur(10px)}.wizard-card-footer .btn{min-width:0;flex:1}.customer-match-head{align-items:flex-start;flex-direction:column}.customer-match-head .badge{white-space:normal;text-align:left}.appointment-time-grid{grid-template-columns:1fr 1fr}.appointment-time-grid>div:first-child{grid-column:1/-1}.deposit-toggle{grid-template-columns:40px minmax(0,1fr) auto;padding:13px}.deposit-icon{width:40px;height:40px}.deposit-amount-wrap{padding:0 13px 13px}.wizard-selected{grid-template-columns:42px minmax(0,1fr) auto}.wizard-selected .customer-avatar{width:42px;height:42px}.wizard-selected .btn{padding:.45rem .55rem;font-size:.68rem}}
@media(max-width:430px){.wizard-progress-step>div{display:none}.wizard-progress-step{gap:0}.wizard-card-footer{gap:8px}.wizard-card-footer .btn{font-size:.76rem}.appointment-time-grid{grid-template-columns:1fr}.appointment-time-grid>div:first-child{grid-column:auto}.wizard-customer-result{grid-template-columns:40px minmax(0,1fr) auto}.customer-result-use{display:none}.deposit-toggle{grid-template-columns:38px minmax(0,1fr) auto}.deposit-icon{width:38px;height:38px}}


/* === 3.5.0: moderný Bootstrap app shell, mobil-first kalendár a wizard === */
:root{
  --app-accent:#8c2f4e;
  --app-accent-dark:#651b36;
  --app-accent-soft:#f8ebf0;
  --app-surface:#ffffff;
  --app-bg:#f6f4f3;
  --app-line:#ebe5e6;
  --app-text:#241f21;
  --app-muted:#7d7478;
  --shadow-ui:0 14px 40px rgba(49,34,40,.07);
  --shadow-float:0 18px 44px rgba(50,30,38,.16);
}
body.app-body{background:linear-gradient(180deg,#f8f7f6 0,#f4f2f1 100%);color:var(--app-text)}
.app-sidebar{width:252px;padding:18px 14px;background:radial-gradient(circle at 18% -5%,rgba(184,86,119,.20),transparent 28%),linear-gradient(180deg,#20191c 0%,#151113 100%);border-right:1px solid rgba(255,255,255,.055)}
.app-main{margin-left:252px}
.app-sidebar .brand{padding:6px 8px 13px}.app-sidebar .brand-mark{border-radius:15px;background:linear-gradient(145deg,#b45577,#7f2748);box-shadow:0 10px 28px rgba(140,47,78,.3)}
.sidebar-nav{gap:3px;margin-top:14px}.sidebar-nav a,.sidebar-footer>a{min-height:44px;border-radius:12px;font-size:.89rem}.sidebar-nav a.active{background:linear-gradient(90deg,rgba(180,79,115,.22),rgba(255,255,255,.06));box-shadow:inset 3px 0 0 #d78ba5}.sidebar-nav i{font-size:1.04rem}
.page-wrap{max-width:1600px;padding:28px 30px 48px}.page-heading{margin-bottom:20px}.page-heading h1{font-size:clamp(1.65rem,2.3vw,2.2rem);font-weight:850}.eyebrow{color:var(--app-accent);letter-spacing:.11em}
.card,.panel{border-color:var(--app-line);border-radius:18px;background:rgba(255,255,255,.98);box-shadow:0 6px 24px rgba(45,31,36,.045)}
.btn{border-radius:12px}.btn-primary{--bs-btn-bg:var(--app-accent);--bs-btn-border-color:var(--app-accent);--bs-btn-hover-bg:var(--app-accent-dark);--bs-btn-hover-border-color:var(--app-accent-dark);--bs-btn-active-bg:#57142c;--bs-btn-active-border-color:#57142c;box-shadow:0 8px 18px rgba(140,47,78,.13)}
.btn-outline-primary{--bs-btn-color:var(--app-accent);--bs-btn-border-color:#c999aa;--bs-btn-hover-bg:var(--app-accent);--bs-btn-hover-border-color:var(--app-accent)}
.form-control,.form-select,.input-group-text{min-height:50px;border-color:#e3dddf;border-radius:13px;background-color:#fff;box-shadow:none}.form-control-lg,.form-select-lg{min-height:54px;font-size:.98rem}.form-control:focus,.form-select:focus{border-color:#b76683;box-shadow:0 0 0 .24rem rgba(140,47,78,.10)}
.form-check-input:checked{border-color:var(--app-accent);background-color:var(--app-accent)}
.input-icon{position:relative}.input-icon>i{position:absolute;left:15px;top:50%;z-index:3;transform:translateY(-50%);color:#9a8c92;font-size:1rem;pointer-events:none}.input-icon>.form-control,.input-icon>.form-select{padding-left:44px}

/* Kalendár */
.calendar-shell-v4{gap:10px}.calendar-shell-v4 .calendar-toolbar{border:1px solid var(--app-line);border-radius:18px;background:#fff;box-shadow:0 8px 26px rgba(46,31,37,.045)}.calendar-shell-v4 .calendar-toolbar .card-body{padding:14px 16px}.calendar-shell-v4 .calendar-toolbar-copy strong{font-size:.96rem}.calendar-shell-v4 .calendar-toolbar-copy small{color:var(--app-muted);font-size:.74rem}
.calendar-shell-v4 .calendar-segmented{gap:3px;padding:4px;border-color:#ede4e7;border-radius:14px;background:#f8f4f5}.calendar-shell-v4 .calendar-segmented-btn{min-height:38px;padding:0 12px;border-radius:10px;color:#756b70;font-size:.74rem}.calendar-shell-v4 .calendar-segmented-btn.active{background:#fff;color:var(--app-accent);box-shadow:0 4px 12px rgba(64,39,49,.08),inset 0 0 0 1px rgba(140,47,78,.08)}
.calendar-mobile-actions{display:flex;gap:8px;width:100%}.calendar-mobile-actions .btn{position:relative;flex:1;min-height:44px;background:#fff}.calendar-filter-dot{position:absolute;right:10px;top:9px;width:7px;height:7px;border-radius:50%;background:var(--app-accent);box-shadow:0 0 0 3px #f5e5eb}
.calendar-card-v4{padding:10px 12px 12px;border-radius:18px;border-color:var(--app-line);background:#fff;box-shadow:var(--shadow-ui)}
.calendar-card-v4 .fc{--fc-border-color:#eee8ea;--fc-today-bg-color:#fff7fa;--fc-now-indicator-color:var(--app-accent)}.calendar-card-v4 .fc .fc-scrollgrid{border-radius:14px}.calendar-card-v4 .fc .fc-toolbar{padding:2px 0 10px}.calendar-card-v4 .fc .fc-toolbar-title{font-size:1.03rem;font-weight:880}.calendar-card-v4 .fc .fc-button{min-width:40px;min-height:40px;padding:.35rem .65rem!important;border-radius:11px!important;border-color:#e9e1e4!important}.calendar-card-v4 .fc .fc-button .fc-icon{font-size:1.1rem}
.calendar-card-v4 .fc .fc-col-header-cell{background:#fbf8f9}.calendar-card-v4 .fc .fc-col-header-cell-cushion{padding:10px 4px;color:#62585d;font-size:.72rem;font-weight:850}.calendar-card-v4 .fc .fc-timegrid-slot{height:3.15em}.calendar-card-v4 .fc .fc-timegrid-slot-label-cushion{color:#998d92;font-size:.69rem}
.calendar-card-v4 .fc-event.calendar-event{border-left:0!important;border-radius:10px!important;box-shadow:0 5px 14px rgba(67,42,51,.11)}.calendar-card-v4 .calendar-event-content{padding:7px 8px}.calendar-card-v4 .calendar-event-content>span{font-size:.79rem}.calendar-card-v4 .calendar-event-service{font-size:.61rem}.calendar-card-v4 .calendar-status-badge{background:rgba(255,255,255,.22)}
.calendar-filter-sheet{height:auto!important;max-height:min(72vh,560px);border:0;border-radius:24px 24px 0 0;box-shadow:0 -24px 60px rgba(39,24,30,.16)}.calendar-filter-sheet .offcanvas-header{padding:20px 20px 12px}.calendar-filter-sheet .offcanvas-body{padding:8px 20px calc(22px + env(safe-area-inset-bottom))}.calendar-sheet-field{margin-bottom:14px}.calendar-sheet-field .form-label{display:flex;align-items:center;gap:8px}.calendar-sheet-switch{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 16px;border:1px solid var(--app-line);border-radius:16px;background:#fbf9fa}.calendar-sheet-switch>span{display:flex;align-items:center;gap:12px;min-width:0}.calendar-sheet-switch>span>i{display:grid;width:40px;height:40px;place-items:center;flex:0 0 40px;border-radius:12px;background:var(--app-accent-soft);color:var(--app-accent)}.calendar-sheet-switch>span>span{display:grid}.calendar-sheet-switch strong{font-size:.8rem}.calendar-sheet-switch small{margin-top:2px;color:var(--app-muted);font-size:.68rem}.calendar-sheet-switch .form-check-input{width:2.65em;height:1.45em;flex:0 0 auto;margin:0}

/* FullCalendar list = mobilný diár */
.calendar-card-v4 .fc .fc-list{border:0;border-radius:0;background:transparent}.calendar-card-v4 .fc .fc-list-day-cushion{margin:6px 0;padding:10px 12px!important;border-radius:11px;background:#f7f1f3!important;color:#53484d;font-size:.77rem}.calendar-card-v4 .fc .fc-list-event{display:table-row}.calendar-card-v4 .fc .fc-list-event td{border:0;border-bottom:7px solid transparent!important;background:#fff}.calendar-card-v4 .fc .fc-list-event-time{width:72px;padding:14px 9px 14px 12px!important;border-radius:14px 0 0 14px;background:#faf7f8;color:var(--app-accent);font-size:.72rem;font-weight:900}.calendar-card-v4 .fc .fc-list-event-title{padding:8px 12px!important;border-radius:0 14px 14px 0;background:#faf7f8}.calendar-card-v4 .calendar-list-main strong{font-size:.9rem}.calendar-card-v4 .calendar-list-main small{font-size:.69rem}.calendar-card-v4 .calendar-list-status{padding:5px 8px;font-size:.53rem}

/* Sprievodca termínom */
.appointment-wizard{max-width:920px}.wizard-progress{gap:5px;margin-bottom:12px;padding:6px;border-color:var(--app-line);border-radius:16px;box-shadow:none}.wizard-progress-step{padding:8px 10px;border-radius:11px}.wizard-progress-step>span{border-radius:9px}.wizard-progress-step.active{background:var(--app-accent-soft);color:var(--app-accent)}.wizard-progress-step.active>span{background:var(--app-accent)}
.wizard-card{border-color:var(--app-line);border-radius:20px;box-shadow:var(--shadow-ui)}.wizard-card .card-body{padding:26px}.wizard-number{border-radius:13px;background:linear-gradient(145deg,#a84065,#7c2348);box-shadow:0 8px 20px rgba(140,47,78,.18)}.wizard-heading{margin-bottom:22px}.wizard-heading h2{font-size:1.26rem}.wizard-heading p:not(.eyebrow){color:var(--app-muted);font-size:.76rem}.wizard-card-footer{padding:14px 18px;border-color:var(--app-line);background:#fcfbfb}.wizard-card-footer .btn{min-height:50px}.customer-match-area{border-color:var(--app-line);background:#faf8f9}.wizard-customer-result{border-color:var(--app-line)!important;background:#fff}.wizard-selected{border-color:#e5cbd5;background:#fff8fa}.customer-result-use{background:var(--app-accent-soft);color:var(--app-accent)}
.appointment-time-grid{grid-template-columns:minmax(0,1.5fr) minmax(150px,.65fr) minmax(170px,.72fr)}.wizard-advanced{border-color:var(--app-line);background:#faf9f9}.individual-deposit-card{border-color:#e8d9bf;border-radius:16px;background:#fffcf6}.deposit-icon{background:#f5ecdc}
.appointment-review{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;margin:-4px 0 20px;padding:9px;border:1px solid var(--app-line);border-radius:17px;background:#faf8f9}.appointment-review>div{display:flex;align-items:center;gap:10px;min-width:0;padding:10px;border-radius:12px;background:#fff}.appointment-review>div>span:last-child{display:grid;min-width:0}.appointment-review small{color:var(--app-muted);font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.appointment-review strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.76rem}.review-icon{display:grid;width:34px;height:34px;place-items:center;flex:0 0 34px;border-radius:10px;background:var(--app-accent-soft);color:var(--app-accent)}

@media(max-width:991.98px){
  .app-sidebar{display:none}.app-main{margin-left:0}
  .mobile-header{height:calc(62px + env(safe-area-inset-top));padding:calc(7px + env(safe-area-inset-top)) 12px 7px;border-bottom:1px solid rgba(92,62,73,.08);background:rgba(248,247,246,.88)}
  .brand.compact .brand-mark{width:38px;height:38px;flex-basis:38px;border-radius:12px;background:linear-gradient(145deg,#a84065,#76213f)}.brand.compact small{font-size:.61rem}.brand.compact strong{font-size:.91rem}
  .mobile-header-actions{gap:6px}.icon-button{width:40px;height:40px;border-radius:12px;background:var(--app-accent);box-shadow:0 7px 18px rgba(140,47,78,.18)}
  .page-wrap{padding:14px 12px calc(102px + env(safe-area-inset-bottom))}
  .mobile-bottom-nav{inset:auto 9px calc(8px + env(safe-area-inset-bottom)) 9px;grid-template-columns:repeat(5,1fr);padding:5px;border:1px solid rgba(74,49,58,.09);border-radius:22px;background:rgba(255,255,255,.94);box-shadow:var(--shadow-float);-webkit-backdrop-filter:blur(22px) saturate(170%);backdrop-filter:blur(22px) saturate(170%)}
  .mobile-bottom-nav a{min-height:50px;border-radius:16px;color:#847a7e;font-size:.62rem}.mobile-bottom-nav i{font-size:1.16rem}.mobile-bottom-nav a.active{background:var(--app-accent-soft);color:var(--app-accent)}
  .calendar-shell-v4 .calendar-toolbar-main{gap:9px}.calendar-shell-v4 .calendar-toolbar-meta{gap:8px}.calendar-readable-hint{display:none}.calendar-shell-v4 .calendar-toolbar-copy{display:none}.calendar-shell-v4 .calendar-segmented{width:100%;overflow-x:auto}.calendar-shell-v4 .calendar-segmented-btn{flex:1;min-width:max-content}
  .calendar-card-v4{padding:8px;border-radius:16px}.calendar-card-v4 .fc .fc-toolbar-title{font-size:.96rem}.calendar-card-v4 .fc .fc-button{min-height:38px;min-width:38px}
  .wizard-progress{top:calc(68px + env(safe-area-inset-top))}
  .wizard-card-footer{bottom:calc(76px + env(safe-area-inset-bottom));box-shadow:0 -10px 26px rgba(48,30,37,.07)}
}
@media(max-width:767.98px){
  .calendar-shell-v4 .calendar-toolbar{border-radius:16px}.calendar-shell-v4 .calendar-toolbar .card-body{padding:10px}.calendar-shell-v4 .calendar-segmented-btn{min-height:39px;padding:0 10px}.calendar-shell-v4 .calendar-segmented-btn span{font-size:.67rem}.calendar-mobile-actions{display:grid;grid-template-columns:1fr 1fr}.calendar-mobile-actions .btn{font-size:.74rem}
  .calendar-card-v4{padding:0;border:0;background:transparent;box-shadow:none}.calendar-card-v4 .fc .fc-toolbar{padding:3px 3px 8px}.calendar-card-v4 .fc .fc-list-day-cushion{margin:5px 2px}.calendar-card-v4 .fc .fc-list-event-time{width:66px;padding-left:10px!important}.calendar-card-v4 .fc .fc-list-event-title{padding-right:9px!important}
  .appointment-wizard{margin:0}.wizard-progress{grid-template-columns:repeat(3,1fr);position:sticky;z-index:8}.wizard-progress>i{display:none}.wizard-progress-step{justify-content:center}.wizard-card{border-radius:17px}.wizard-card .card-body{padding:18px 15px}.wizard-heading{gap:10px;margin-bottom:17px}.wizard-heading p:not(.eyebrow){font-size:.7rem}.wizard-card-footer{padding:10px 11px}.wizard-card-footer .btn{min-height:48px}.appointment-review{grid-template-columns:1fr;gap:6px;padding:7px}.appointment-review>div{padding:8px 10px}.appointment-time-grid{grid-template-columns:1fr}.appointment-time-grid>div:first-child{grid-column:auto}.form-control-lg,.form-select-lg{min-height:52px}
}
@media(max-width:430px){
  .page-wrap{padding-left:10px;padding-right:10px}.mobile-bottom-nav{left:7px;right:7px}.mobile-bottom-nav a span{font-size:.59rem}
  .calendar-shell-v4 .calendar-segmented{display:flex}.calendar-shell-v4 .calendar-segmented-btn{min-width:auto;flex:1;padding:0 7px}.calendar-shell-v4 .calendar-segmented-btn i{display:none}.calendar-card-v4 .fc .fc-list-event-time{width:61px;font-size:.68rem}.calendar-card-v4 .calendar-list-event{gap:7px}.calendar-card-v4 .calendar-list-status{display:none}.calendar-card-v4 .calendar-list-main strong{font-size:.86rem}
  .wizard-progress-step>div{display:grid}.wizard-progress-step small{display:none}.wizard-progress-step strong{font-size:.64rem}.wizard-progress-step>span{width:25px;height:25px;flex-basis:25px}.wizard-heading .eyebrow{display:none}.wizard-heading h2{font-size:1.08rem}.wizard-heading p:not(.eyebrow){line-height:1.42}.wizard-card-footer .btn{font-size:.76rem}.deposit-toggle small{display:none}
}

/* === 3.6.0: jednotný vizuálny systém celej aplikácie === */
:root{
  /* Brand */
  --brand:#862d4b;
  --brand-dark:#5f1932;
  --brand-deep:#461123;
  --brand-soft:#f7ecef;
  --brand-soft-2:#fbf5f7;
  --champagne:#c6a56d;
  --champagne-soft:#f5eee3;

  /* Neutrals */
  --ink:#241f21;
  --ink-2:#40373b;
  --muted:#7a7074;
  --canvas:#f7f5f4;
  --cream:#fbf8f7;
  --paper:#fff;
  --paper-soft:#fcfaf9;
  --border:#e9e3e4;

  /* Legacy tokens mapped to one system */
  --gold:var(--brand);
  --gold-dark:var(--brand-dark);
  --gold-soft:var(--brand-soft);

  /* App tokens */
  --app-accent:var(--brand);
  --app-accent-dark:var(--brand-dark);
  --app-accent-soft:var(--brand-soft);
  --app-surface:var(--paper);
  --app-bg:var(--canvas);
  --app-line:var(--border);
  --app-text:var(--ink);
  --app-muted:var(--muted);

  /* Semantic */
  --success:#39704e;
  --danger:#a94149;
  --warning:#9a681f;

  /* Shape + elevation */
  --radius-sm:12px;
  --radius:18px;
  --radius-lg:24px;
  --shadow-sm:0 4px 18px rgba(49,35,40,.045);
  --shadow:0 14px 38px rgba(49,35,40,.075);
  --shadow-lg:0 24px 60px rgba(49,35,40,.12);
  --shadow-ui:0 12px 34px rgba(49,35,40,.065);
  --shadow-float:0 18px 44px rgba(49,30,38,.15);
}

body.app-body,
body.public-body{
  color:var(--ink);
  background:
    radial-gradient(circle at 12% -8%,rgba(134,45,75,.045),transparent 28%),
    linear-gradient(180deg,#faf9f8 0%,var(--canvas) 100%);
}

/* Bootstrap farby pod jednou paletou */
.btn-primary{
  --bs-btn-bg:var(--brand);
  --bs-btn-border-color:var(--brand);
  --bs-btn-hover-bg:var(--brand-dark);
  --bs-btn-hover-border-color:var(--brand-dark);
  --bs-btn-active-bg:var(--brand-deep);
  --bs-btn-active-border-color:var(--brand-deep);
  --bs-btn-disabled-bg:#b98b9b;
  --bs-btn-disabled-border-color:#b98b9b;
  box-shadow:0 8px 20px rgba(134,45,75,.14);
}
.btn-outline-primary{
  --bs-btn-color:var(--brand);
  --bs-btn-border-color:#cda9b5;
  --bs-btn-hover-bg:var(--brand);
  --bs-btn-hover-border-color:var(--brand);
  --bs-btn-active-bg:var(--brand-dark);
  --bs-btn-active-border-color:var(--brand-dark);
}
.btn-success{
  --bs-btn-bg:#39704e;
  --bs-btn-border-color:#39704e;
  --bs-btn-hover-bg:#2f6042;
  --bs-btn-hover-border-color:#2f6042;
  --bs-btn-active-bg:#284f38;
  --bs-btn-active-border-color:#284f38;
}
.btn-danger{
  --bs-btn-bg:#a94149;
  --bs-btn-border-color:#a94149;
  --bs-btn-hover-bg:#913740;
  --bs-btn-hover-border-color:#913740;
}
.btn-warning{
  --bs-btn-bg:#b07b2e;
  --bs-btn-border-color:#b07b2e;
  --bs-btn-color:#fff;
  --bs-btn-hover-bg:#946522;
  --bs-btn-hover-border-color:#946522;
  --bs-btn-hover-color:#fff;
}
.btn-dark{
  --bs-btn-bg:#2a2426;
  --bs-btn-border-color:#2a2426;
  --bs-btn-hover-bg:#181416;
  --bs-btn-hover-border-color:#181416;
}
.btn-light{
  --bs-btn-bg:#fff;
  --bs-btn-border-color:var(--border);
  --bs-btn-hover-bg:#faf7f8;
  --bs-btn-hover-border-color:#ddd4d7;
  --bs-btn-active-bg:#f5eff1;
  --bs-btn-active-border-color:#d9cdd1;
}
.text-bg-primary{background:var(--brand)!important}
.text-bg-success{background:#39704e!important}
.text-bg-danger{background:#a94149!important}
.text-bg-warning{background:#b07b2e!important;color:#fff!important}
.text-bg-dark{background:#2a2426!important}
.text-bg-light{background:#f5f1f2!important;color:#51474b!important;border:1px solid var(--border)}
.text-primary{color:var(--brand)!important}
.text-success{color:#39704e!important}
.text-danger{color:#a94149!important}
.text-warning{color:#946522!important}
.bg-light{background:#faf8f8!important}
.bg-primary{background:var(--brand)!important}
.bg-success{background:#39704e!important}
.bg-danger{background:#a94149!important}
.bg-warning{background:#b07b2e!important}

/* Typografia a základné povrchy */
a{color:var(--brand)}
a:hover{color:var(--brand-dark)}
.page-heading h1,.card h2,.card h3,.panel h2,.panel h3{color:var(--ink)}
.eyebrow{color:var(--brand);font-weight:850}
.card,.panel{
  border-color:var(--border);
  border-radius:var(--radius);
  background:rgba(255,255,255,.985);
  box-shadow:var(--shadow-sm);
}
.card-header{
  border-bottom-color:var(--border);
  background:linear-gradient(180deg,#fff,#fdfbfb);
}
.table>:not(caption)>*>*{border-bottom-color:var(--border)}
.table thead th{background:#faf7f8;color:#7a7074}
.table tbody tr:hover>*{background:#fdfafb}
.dropdown-menu{border-color:var(--border);box-shadow:var(--shadow)}
.dropdown-item:hover,.dropdown-item:focus{background:var(--brand-soft);color:var(--brand-dark)}
.form-control,.form-select,.input-group-text{
  border-color:#e1d9dc;
  background:#fff;
}
.form-control:focus,.form-select:focus{
  border-color:#ba8295;
  box-shadow:0 0 0 .24rem rgba(134,45,75,.10);
}
.form-control[readonly],.form-control:disabled,.form-select:disabled{background:#f7f4f5}
.form-check-input:checked{border-color:var(--brand);background-color:var(--brand)}
.search-bar>i,.input-icon>i{color:#9d8f94}
.badge{letter-spacing:-.005em}

/* Sidebar + mobilná navigácia */
.app-sidebar{
  background:
    radial-gradient(circle at 15% -8%,rgba(198,165,109,.18),transparent 28%),
    radial-gradient(circle at 100% 35%,rgba(134,45,75,.13),transparent 35%),
    linear-gradient(180deg,#241c20 0%,#171315 100%);
}
.app-sidebar .brand-mark,
.brand.compact .brand-mark{
  background:linear-gradient(145deg,#9a3d5c 0%,var(--brand-dark) 72%);
  box-shadow:0 9px 26px rgba(95,25,50,.27),inset 0 1px 0 rgba(255,255,255,.22);
}
.sidebar-nav a.active{
  background:linear-gradient(90deg,rgba(134,45,75,.25),rgba(255,255,255,.055));
  box-shadow:inset 3px 0 0 var(--champagne);
}
.user-chip>span{background:var(--brand)}
.mobile-header{
  border-bottom-color:rgba(74,49,58,.08);
  background:rgba(250,249,248,.91);
}
.icon-button{background:var(--brand);box-shadow:0 7px 18px rgba(134,45,75,.18)}
.icon-button.secondary{background:#fff;color:var(--ink);border:1px solid var(--border);box-shadow:none}
.mobile-bottom-nav a.active{background:var(--brand-soft);color:var(--brand)}

/* Dashboard - odstránenie starého zlatého vzhľadu */
.dashboard-hero{
  border-color:rgba(198,165,109,.20);
  background:
    radial-gradient(circle at 6% 0%,rgba(198,165,109,.16),transparent 32%),
    radial-gradient(circle at 95% 100%,rgba(134,45,75,.24),transparent 43%),
    linear-gradient(135deg,#241b1f 0%,#351d27 58%,#21181c 100%);
  box-shadow:0 24px 55px rgba(40,23,30,.17);
}
.dashboard-date,.dashboard-next>span{color:#e4c998}
.dashboard-hero::after{border-color:rgba(228,201,152,.15);box-shadow:0 0 0 38px rgba(228,201,152,.03),0 0 0 82px rgba(228,201,152,.02)}
.dashboard-action-center{border-color:#e5d8dc}
.dashboard-day-card{box-shadow:var(--shadow-ui)}
.dashboard-tip{
  border-color:#eadde1;
  background:linear-gradient(145deg,#fff,#fbf6f8);
}
.dashboard-tip .card-body>span,
.stat-card .stat-icon,
.menu-icon,
.customer-avatar,
.guide-nav a>span,
.guide-title>span{
  background:var(--brand-soft);
  color:var(--brand);
}
.action-grid>a i{color:var(--brand)}
.action-grid>a.needs-action{background:#fffaf1}
.action-grid>a.needs-action.danger{background:#fff5f5}
.appointment-row:hover{background:#fdfafb}
.customer-search-result:hover,.customer-search-result.active{background:var(--brand-soft)}
.customer-selected{border-color:#dfbdc8;background:#fff}
.customer-selected .customer-avatar{background:var(--brand);color:#fff}
.payment-chip{background:#edf6ef;color:#39704e}
.request-transfer-card{border-color:#e6c98f;background:#fff9ee}
.quick-confirm-card,.completion-card{border-color:#c4dacb;background:linear-gradient(140deg,#fff,#f2f8f4)}

/* Kalendár - rovnaké povrchy a akcenty */
.calendar-hero{
  border-color:#eadde1;
  background:linear-gradient(135deg,#fbf5f7 0%,#fff 48%,#faf7f8 100%);
}
.calendar-hero-points>div{border-color:#ebdde2;background:#fff}
.calendar-toolbar,.calendar-shell-v4 .calendar-toolbar{border-color:var(--border);background:#fff}
.calendar-segmented,.calendar-shell-v4 .calendar-segmented{border-color:#eadfe2;background:#f7f2f4}
.calendar-segmented-btn,.calendar-shell-v4 .calendar-segmented-btn{color:#72666b}
.calendar-segmented-btn:hover{color:var(--brand-dark)}
.calendar-segmented-btn.active,.calendar-shell-v4 .calendar-segmented-btn.active{
  color:var(--brand);
  background:#fff;
  box-shadow:0 5px 14px rgba(80,45,58,.08),inset 0 0 0 1px rgba(134,45,75,.07);
}
.calendar-card,.calendar-card-v4{border-color:var(--border);background:#fff}
.calendar-card-v4 .fc{
  --fc-border-color:#eee8ea;
  --fc-today-bg-color:#fff6f8;
  --fc-now-indicator-color:var(--brand);
  --fc-list-event-hover-bg-color:#fbf5f7;
}
.calendar-card-v4 .fc .fc-col-header-cell{background:#faf7f8}
.calendar-card-v4 .fc .fc-button{
  border-color:#e8dfe2!important;
  background:#fff!important;
  color:#44383d!important;
}
.calendar-card-v4 .fc .fc-button:hover,.calendar-card-v4 .fc .fc-button-active{
  border-color:#d9bcc6!important;
  background:var(--brand-soft)!important;
  color:var(--brand)!important;
}
.calendar-card-v4 .fc .fc-list-day-cushion{background:#f8f2f4!important;color:#51454a}
.calendar-card-v4 .fc .fc-list-event-time{background:#fbf8f9;color:var(--brand)}
.calendar-card-v4 .fc .fc-list-event-title{background:#fbf8f9}
.calendar-sheet-switch{border-color:var(--border);background:#faf7f8}
.calendar-sheet-switch>span>i{background:var(--brand-soft);color:var(--brand)}
.calendar-filter-dot{background:var(--brand);box-shadow:0 0 0 3px #f4e6eb}

/* Wizard - jedna paleta od prvého po posledný krok */
.wizard-progress,.wizard-card{border-color:var(--border)}
.wizard-progress-step{color:#85797e}
.wizard-progress-step>span{background:#f3edef;color:#76696e}
.wizard-progress-step.active{background:var(--brand-soft);color:var(--brand)}
.wizard-progress-step.active>span,
.wizard-number{background:linear-gradient(145deg,#9a3d5c,var(--brand-dark));color:#fff}
.wizard-progress-step.done>span{background:#edf5ef;color:#39704e}
.wizard-card-footer{border-color:var(--border);background:#fcfafb}
.customer-match-area,.wizard-advanced,.appointment-review{border-color:var(--border);background:#faf8f9}
.wizard-selected{border-color:#e3c8d1;background:#fff8fa}
.customer-result-use,.review-icon{background:var(--brand-soft);color:var(--brand)}
.individual-deposit-card{border-color:#ead8b9;background:#fffdf8}
.deposit-icon{background:var(--champagne-soft);color:#7f5c22}

/* Návod */
.guide-hero{
  background:
    radial-gradient(circle at 88% 20%,rgba(134,45,75,.21),transparent 35%),
    linear-gradient(140deg,#241b1f,#171315);
}
.guide-hero>span{background:rgba(198,165,109,.16);color:#e4c998}
.guide-nav a.active{border-color:#dfcbd2}
.guide-content{border-color:var(--border)}

/* Verejná rezervácia, login a právne stránky */
.public-body{
  --ink:#241f21;
  --ink-2:#463b40;
  --muted:#7a7074;
  --gold:var(--brand);
  --gold-dark:var(--brand-dark);
  --gold-soft:var(--brand-soft);
  --border:#e9e3e4;
}
.public-body .public-hero{
  background:
    radial-gradient(circle at 88% 5%,rgba(229,202,154,.17),transparent 30%),
    radial-gradient(circle at 0 100%,rgba(150,54,87,.18),transparent 38%),
    linear-gradient(145deg,#351e27,#1f171b);
  box-shadow:0 22px 54px rgba(46,27,34,.15);
}
.public-body .public-hero .eyebrow{color:#e6cb9c}
.public-body .brand-mark{background:linear-gradient(145deg,#9a3d5c,var(--brand-dark))}
.booking-step{color:#8a7e83}
.booking-step:after{background:#e4dcde}
.booking-step b{border-color:#d9cdd1}
.booking-step.active{color:var(--brand)}
.booking-step.active b{border-color:var(--brand);background:var(--brand)}
.booking-step.active:after{background:#cfaeb9}
.booking-panel{box-shadow:0 18px 50px rgba(58,35,44,.075)}
.booking-heading>span{background:var(--brand)}
.category-choice:hover,.category-choice.active,
.public-body .category-choice:hover,.public-body .category-choice.active{
  border-color:#cda9b5;
  background:var(--brand-soft);
  box-shadow:0 6px 18px rgba(95,25,50,.07);
}
.category-choice i,.service-meta i,.request-note>i,.public-help>i{color:var(--brand)}
.service-option:hover,.service-option.selected,
.public-body .service-option:hover,.public-body .service-option.selected{
  border-color:#cda9b5;
  box-shadow:0 8px 22px rgba(95,25,50,.08);
}
.service-check{background:#f0e6e9}
.service-option.selected .service-check{background:var(--brand)}
.service-copy em{background:#f6f1f2;color:#75686d}
.service-option.selected .service-copy em,
.extra-option input:checked+span,
.public-body .service-option.selected .service-copy em,
.public-body .extra-option input:checked+span{
  border-color:#cda9b5;
  background:var(--brand-soft);
  color:var(--brand-dark);
}
.available-day small,.manual-date-toggle{color:var(--brand)}
.available-day:hover,.available-day.selected,
.slot-btn:hover,.slot-btn.selected{border-color:var(--brand);background:var(--brand);color:#fff}
.available-day.selected strong,.available-day.selected small{color:#f2dfe5}
.request-note,.public-help,.public-body .request-note,.public-body .public-help{
  border-color:#e5d4da;
  background:#fbf5f7;
}
.legal-check{background:#fdfbfb}
.booking-summary,.public-body .booking-summary{border-color:#e3cfd6;background:#fbf5f7}
.public-footer{color:var(--muted)}

/* Stavy sú farebné len tam, kde nesú význam */
.alert-success{--bs-alert-color:#315f42;--bs-alert-bg:#edf6ef;--bs-alert-border-color:#cfe2d5}
.alert-danger{--bs-alert-color:#83343b;--bs-alert-bg:#fff1f2;--bs-alert-border-color:#ebc9cc}
.alert-warning{--bs-alert-color:#76511d;--bs-alert-bg:#fff8e9;--bs-alert-border-color:#ead5aa}
.alert-info{--bs-alert-color:#4a5960;--bs-alert-bg:#f1f6f8;--bs-alert-border-color:#d3e1e6}
.alert-light{--bs-alert-color:var(--ink);--bs-alert-bg:#faf8f8;--bs-alert-border-color:var(--border)}

/* SweetAlert2 nech pôsobí ako súčasť aplikácie */
.swal2-popup{border-radius:22px!important;color:var(--ink)!important;font-family:inherit!important}
.swal2-title{color:var(--ink)!important;letter-spacing:-.025em!important}
.swal2-confirm{border-radius:12px!important;background:var(--brand)!important;box-shadow:none!important}
.swal2-cancel{border-radius:12px!important}

@media(max-width:991.98px){
  .mobile-header{background:rgba(250,249,248,.92)}
  .mobile-bottom-nav{border-color:rgba(82,55,65,.09);background:rgba(255,255,255,.95)}
}

@media(prefers-color-scheme:dark){
  /* Aplikácia zostáva zámerne svetlá pre čitateľnosť v salóne. */
}

/* === 3.6.1: mobilný wizard – CTA nesmie prekrývať obsah === */
@media (max-width: 767.98px){
  .appointment-wizard .wizard-card-footer{
    position:static !important;
    inset:auto !important;
    bottom:auto !important;
    z-index:auto;
    margin:0;
    padding:12px 12px 13px;
    border-top:1px solid var(--border);
    background:var(--surface);
    box-shadow:none !important;
    -webkit-backdrop-filter:none;
    backdrop-filter:none;
  }
  .appointment-wizard .wizard-card-footer .btn{
    min-width:0;
    min-height:50px;
  }
  .appointment-wizard .wizard-card-footer > span:empty{
    display:none;
  }
  .appointment-wizard .wizard-card-footer > span:empty + .btn{
    width:100%;
    flex:1 1 100%;
  }
}

@media (max-width: 380px){
  .appointment-wizard .wizard-card-footer{
    gap:8px;
  }
  .appointment-wizard .wizard-card-footer .btn{
    padding-left:10px;
    padding-right:10px;
    font-size:.74rem;
  }
}

/* === 3.6.2: iOS/Android wizard footer – definitívne bez prekrývania === */
@media (max-width: 767.98px){
  .appointment-wizard .wizard-step-panel.active,
  .appointment-wizard .wizard-card{
    overflow:visible;
  }
  .appointment-wizard .wizard-card{
    display:flex;
    flex-direction:column;
  }
  .appointment-wizard .wizard-card .card-body{
    position:relative;
    z-index:1;
    flex:0 0 auto;
  }
  .appointment-wizard .wizard-card-footer{
    position:relative !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    inset:auto !important;
    z-index:1 !important;
    flex:0 0 auto;
    width:100%;
    transform:none !important;
    margin:0 !important;
    padding:12px 12px 14px !important;
    border-top:1px solid var(--border) !important;
    background:var(--surface) !important;
    box-shadow:none !important;
    -webkit-backdrop-filter:none !important;
    backdrop-filter:none !important;
  }
  .appointment-wizard .customer-match-area{
    position:relative;
    z-index:0;
    margin-bottom:4px;
  }
  .appointment-wizard .wizard-card-footer > span:empty{
    display:none !important;
  }
  .appointment-wizard .wizard-card-footer > span:empty + .btn{
    width:100%;
    flex:1 1 100%;
  }
  .appointment-wizard .wizard-card-footer .btn{
    min-height:52px;
  }
  .appointment-wizard{
    padding-bottom:12px;
  }
  .page-wrap:has(.appointment-wizard){
    padding-bottom:calc(128px + env(safe-area-inset-bottom));
  }
}

/* === 3.7.0: mobil a tablet ako natívnejšia aplikácia === */
:root{
  --app-mobile-header:62px;
  --app-bottom-nav:66px;
  --app-touch:48px;
}

/* Bezpečná hodnota pre staršie pravidlá wizardu. */
.app-body{--surface:var(--app-surface,var(--paper,#fff))}

@media (max-width:991.98px){
  html,body.app-body{background:#f6f4f4}
  body.app-body{min-height:100dvh}
  .app-main{min-height:100dvh}
  .mobile-header{
    min-height:calc(var(--app-mobile-header) + env(safe-area-inset-top));
    height:auto;
    align-items:center;
    padding:calc(8px + env(safe-area-inset-top)) clamp(12px,2.8vw,24px) 8px;
    border-bottom:1px solid rgba(70,45,55,.07);
    background:rgba(250,249,249,.94);
    box-shadow:0 1px 0 rgba(255,255,255,.7);
  }
  body.app-scrolled .mobile-header{box-shadow:0 8px 24px rgba(49,32,39,.08)}
  .brand.compact .brand-mark{width:40px;height:40px;flex-basis:40px;border-radius:13px}
  .brand.compact strong{max-width:min(56vw,360px);font-size:.95rem;font-weight:820;letter-spacing:-.02em}
  .brand.compact small{font-size:.61rem;font-weight:720;letter-spacing:.015em}
  .mobile-header-actions{gap:7px}
  .icon-button{width:42px;height:42px;border-radius:13px}

  .page-wrap{
    width:100%;
    max-width:980px;
    margin:0 auto;
    padding:18px clamp(12px,2.8vw,24px) calc(104px + env(safe-area-inset-bottom));
  }
  .card,.panel{box-shadow:0 7px 24px rgba(48,31,38,.055)}
  .btn,.form-control,.form-select,.input-group-text{min-height:var(--app-touch)}
  .btn-sm{min-height:44px}
  .btn-lg,.form-control-lg,.form-select-lg{min-height:52px}

  .mobile-bottom-nav{
    left:50%;
    right:auto;
    bottom:calc(9px + env(safe-area-inset-bottom));
    width:min(720px,calc(100% - 24px));
    transform:translateX(-50%);
    padding:5px;
    border:1px solid rgba(74,49,58,.10);
    border-radius:23px;
    background:rgba(255,255,255,.96);
    box-shadow:0 16px 42px rgba(47,29,36,.16);
  }
  .mobile-bottom-nav a{min-height:51px;border-radius:17px;transition:background .16s ease,color .16s ease,transform .12s ease}
  .mobile-bottom-nav a:active{transform:scale(.96)}
  .mobile-bottom-nav a.active{background:linear-gradient(180deg,#fbf1f4,var(--brand-soft));box-shadow:inset 0 0 0 1px rgba(134,45,75,.055)}
  .mobile-bottom-nav a.active i{transform:none}
  .mobile-bottom-nav i{font-size:1.2rem}
  .mobile-bottom-nav span{font-size:.62rem;line-height:1.05}
  body.app-keyboard-open .mobile-bottom-nav{opacity:0;pointer-events:none;transform:translate(-50%,18px)}

  .offcanvas-bottom{border-radius:24px 24px 0 0}
  .modal-content{border:0;border-radius:22px;box-shadow:0 28px 70px rgba(42,24,31,.22)}

  /* Dotykové zoznamy */
  .appointment-row{min-height:74px}
  .appointment-row,.menu-card,.customer-search-result{transition:transform .12s ease,background .12s ease,border-color .12s ease}
  .appointment-row:active,.menu-card:active,.customer-search-result:active{transform:scale(.994)}
  .appointment-actions .btn{min-height:46px}

  /* Kalendár: ovládanie ako horný app panel. */
  .calendar-shell-v4{gap:10px}
  .calendar-shell-v4 .calendar-toolbar{position:sticky;top:calc(var(--app-mobile-header) + env(safe-area-inset-top));z-index:9;border-radius:18px;background:rgba(255,255,255,.96);box-shadow:0 8px 24px rgba(48,31,38,.055);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  .calendar-shell-v4 .calendar-toolbar .card-body{padding:11px 12px}
  .calendar-shell-v4 .calendar-segmented{gap:4px;padding:4px;border-radius:14px}
  .calendar-shell-v4 .calendar-segmented-btn{min-height:40px;border-radius:10px}
  .calendar-mobile-actions .btn{min-height:42px}
  .calendar-card-v4{border-radius:18px}
  .calendar-card-v4 .fc .fc-toolbar{padding-top:5px}
  .calendar-card-v4 .fc .fc-button{min-width:42px;min-height:42px!important}

  /* Wizard: kompaktnejší, ale stále veľmi ľahko ovládateľný prstom. */
  .appointment-wizard{max-width:900px}
  .wizard-progress{top:calc(var(--app-mobile-header) + 7px + env(safe-area-inset-top));z-index:10;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  .wizard-progress-step{min-height:43px}
  .wizard-card{box-shadow:0 8px 28px rgba(49,32,39,.055)}
  .appointment-wizard .wizard-card-footer{background:#fff!important}
  .wizard-switch{min-height:56px;align-items:center}
  .wizard-switch .form-check-input{width:1.35rem;height:1.35rem;margin-top:0}
  .deposit-toggle .form-check-input{width:2.55em;height:1.42em;flex:0 0 auto}
}

/* Tablet: nie roztiahnutý mobil, ale pracovná appka. */
@media (min-width:768px) and (max-width:991.98px){
  .page-wrap{padding-top:24px;padding-left:24px;padding-right:24px;padding-bottom:calc(112px + env(safe-area-inset-bottom))}
  .mobile-header{padding-left:24px;padding-right:24px}
  .mobile-bottom-nav{width:min(720px,calc(100% - 48px));bottom:calc(12px + env(safe-area-inset-bottom))}
  .card,.panel{border-radius:22px}
  .card-header{padding:19px 21px}.card-body{padding:21px}

  .dashboard-hero{padding:30px;border-radius:26px}
  .dashboard-content-grid{gap:18px}
  .dashboard-side{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
  .dashboard-side .dashboard-tip{height:100%}
  .dashboard-quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}
  .dashboard-appointment-row{grid-template-columns:72px minmax(0,1fr) auto}
  .dashboard-appointment-row .appointment-actions{grid-column:auto;display:flex}

  .more-grid>div{width:50%}
  .more-grid .card-body{min-height:104px;padding:17px!important}

  .wizard-card .card-body{padding:25px}
  .wizard-card-footer{padding:14px 18px!important}
  .appointment-time-grid{grid-template-columns:minmax(0,1.45fr) minmax(140px,.65fr);gap:14px}
  .appointment-time-grid>div:last-child{grid-column:1/-1}
  .appointment-review{grid-template-columns:repeat(3,minmax(0,1fr))}

  .responsive-card-table tbody{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
  .responsive-card-table tr{height:100%}
}

/* Telefón: viac priestoru na obsah a konzistentné app karty. */
@media (max-width:767.98px){
  .page-wrap{padding-top:12px;padding-bottom:calc(102px + env(safe-area-inset-bottom))}
  .card,.panel{border-radius:18px}
  .card-header{padding:15px 16px}.card-body{padding:16px}
  .alert{border-radius:14px}

  .appointment-wizard .wizard-card-footer{
    position:relative!important;
    inset:auto!important;
    width:100%;
    padding:11px 12px 13px!important;
    background:#fff!important;
  }
  .appointment-wizard .wizard-card-footer .btn{flex:1 1 0;min-width:0;min-height:52px}
  .appointment-wizard .wizard-card-footer .wizard-save{flex:1.55 1 0;min-width:0!important}
  .appointment-wizard .wizard-card-footer>span:empty + .btn{flex-basis:100%}
  .page-wrap:has(.appointment-wizard){padding-bottom:calc(106px + env(safe-area-inset-bottom))}

  .customer-match-head{align-items:flex-start;flex-direction:column}
  .customer-match-head .badge{max-width:100%;white-space:normal;text-align:left;line-height:1.3}
  .wizard-selected{grid-template-columns:44px minmax(0,1fr)}
  .wizard-selected .btn{grid-column:1/-1;width:100%}
  .customer-risk-warning{align-items:flex-start}

  .calendar-shell-v4 .calendar-toolbar{top:calc(var(--app-mobile-header) + env(safe-area-inset-top))}
  .calendar-card-v4 .fc .fc-list-day-cushion{position:sticky;top:calc(var(--app-mobile-header) + 112px + env(safe-area-inset-top));z-index:3}

  .quick-actions .btn,.notification-actions .btn{min-height:48px}
  .form-check-label{line-height:1.35}
}

@media (max-width:575.98px){
  .mobile-header{padding-left:11px;padding-right:11px}
  .brand.compact strong{max-width:48vw;font-size:.9rem}
  .page-wrap{padding-left:10px;padding-right:10px}
  .mobile-bottom-nav{width:calc(100% - 14px);bottom:calc(7px + env(safe-area-inset-bottom));border-radius:21px}
  .mobile-bottom-nav a{min-height:49px;border-radius:15px}

  .modal-dialog{margin:auto 8px 8px;min-height:calc(100% - 8px);display:flex;align-items:flex-end}
  .modal-dialog-centered{min-height:calc(100% - 8px)}
  .modal-content{width:100%;border-radius:24px 24px 18px 18px}
  .modal-header,.modal-body,.modal-footer{padding-left:17px;padding-right:17px}

  .dashboard-hero{padding:22px 18px;border-radius:22px}
  .dashboard-hero-copy h2{font-size:1.82rem}
  .dashboard-next{border-radius:16px}
  .dashboard-day-header p{font-size:.78rem}
  .dashboard-appointment-row{padding:12px}

  .wizard-progress{margin-left:-1px;margin-right:-1px;padding:5px;border-radius:14px}
  .wizard-progress-step{gap:6px;padding:7px 6px}
  .wizard-progress-step strong{font-size:.62rem}
  .wizard-card .card-body{padding:17px 14px}
  .wizard-heading{gap:9px}
  .wizard-number{width:38px;height:38px;flex-basis:38px;border-radius:12px}
  .wizard-heading h2{font-size:1.08rem}
  .wizard-heading p:not(.eyebrow){font-size:.7rem}
  .customer-match-area{padding:12px}
  .appointment-review{margin-bottom:15px}

  .calendar-shell-v4 .calendar-toolbar .card-body{padding:9px}
  .calendar-shell-v4 .calendar-segmented-btn{padding:0 7px}
  .calendar-shell-v4 .calendar-segmented-btn span{font-size:.65rem}
  .calendar-mobile-actions{gap:7px}
  .calendar-card-v4 .fc .fc-toolbar-title{font-size:.94rem}
  .calendar-card-v4 .fc .fc-list-event-time{width:62px}
}

@media (max-width:370px){
  .brand.compact small{display:none}
  .brand.compact strong{max-width:50vw}
  .mobile-header-actions{gap:5px}
  .icon-button{width:39px;height:39px}
  .mobile-bottom-nav a span{font-size:.56rem}
  .wizard-progress-step>span{width:24px;height:24px;flex-basis:24px}
}
@media (min-width:768px) and (max-width:991.98px){
  .appointment-wizard .wizard-progress{position:sticky}
}
