.satnik-reg-wrap{max-width:900px;margin:40px auto;padding:0 20px;color:inherit}.satnik-reg-intro{margin-bottom:30px}.satnik-reg-kicker{font-size:12px;font-weight:700;letter-spacing:.12em;opacity:.6}.satnik-reg-wrap h2{font-size:34px;margin:6px 0 12px}.satnik-reg-form fieldset{border:0;border-top:1px solid rgba(0,0,0,.14);padding:26px 0;margin:0}.satnik-reg-form legend{font-weight:700;font-size:20px;padding:0 12px 0 0}.satnik-reg-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.satnik-reg-choice{display:flex;gap:10px;align-items:center;padding:16px;border:1px solid rgba(0,0,0,.18);border-radius:6px;cursor:pointer}.satnik-reg-choice input{width:18px;height:18px}.satnik-reg-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:18px}.satnik-reg-field{display:flex;flex-direction:column;gap:7px}.satnik-reg-field span{font-weight:600}.satnik-reg-field small{font-weight:400;opacity:.65}.satnik-reg-field input,.satnik-reg-field textarea{width:100%;box-sizing:border-box;padding:12px 13px;border:1px solid rgba(0,0,0,.25);border-radius:4px;background:#fff;color:#222;font-size:16px}.satnik-reg-full{grid-column:1/-1}.satnik-reg-docs{margin-top:18px;padding:18px 20px;background:rgba(0,0,0,.035);border-radius:6px}.satnik-reg-docs h3{margin-top:0}.satnik-reg-storage-note,.satnik-reg-errors,.satnik-reg-success,.satnik-reg-locked{margin:18px 0;padding:16px 18px;border-left:4px solid #777;background:rgba(0,0,0,.04)}.satnik-reg-errors{border-left-color:#b32d2e}.satnik-reg-success{border-left-color:#1b7f45}.satnik-reg-consent{display:flex;gap:10px;align-items:flex-start;margin:22px 0;opacity:.7}.satnik-reg-form button{border:0;padding:14px 24px;font-size:16px;font-weight:700;cursor:pointer;border-radius:4px}.satnik-reg-form button:hover{opacity:.88}@media(max-width:640px){.satnik-reg-categories,.satnik-reg-grid{grid-template-columns:1fr}.satnik-reg-wrap h2{font-size:28px}}
.satnik-reg-name-note{margin-top:18px;padding:12px 14px;background:rgba(0,0,0,.035);border-radius:4px;font-size:14px}
.satnik-reg-upload-row{padding:15px 0;border-bottom:1px solid rgba(0,0,0,.1)}
.satnik-reg-upload-row:last-child{border-bottom:0}
.satnik-reg-upload-row label{display:flex;flex-direction:column;gap:7px}
.satnik-reg-upload-row span{font-size:14px;opacity:.75}
.satnik-reg-upload-row input[type=file]{margin-top:5px}

.satnik-reg-file-help{display:block;margin-top:2px;font-size:13px;opacity:.72}

.satnik-activation-wrap{max-width:720px;margin:0 auto}
.satnik-activation-wrap .satnik-reg-form{margin-top:22px}


/* Můj Šatník – TEST */
.satnik-portal-wrap{max-width:920px;margin:0 auto}
.satnik-portal-login{max-width:620px}
.satnik-portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:24px}
.satnik-portal-card{background:#fff;border:1px solid rgba(0,0,0,.12);padding:22px;border-radius:4px}
.satnik-portal-card h3{margin-top:0}
.satnik-portal-data{margin:0}
.satnik-portal-data>div{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:9px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.satnik-portal-data>div:last-child{border-bottom:0}
.satnik-portal-data dt{font-weight:600}
.satnik-portal-data dd{margin:0}
.satnik-portal-doc{display:flex;justify-content:space-between;gap:18px;padding:10px 0;border-bottom:1px solid rgba(0,0,0,.08)}
.satnik-portal-doc:last-child{border-bottom:0}
.satnik-portal-small,.satnik-portal-test-note{font-size:13px;opacity:.7;margin-top:16px}
.satnik-portal-coming{margin:22px 0;padding:15px 17px;background:rgba(0,0,0,.035);border-radius:4px}
.satnik-portal-logout{margin-top:18px}
.satnik-portal-secondary{background:transparent!important;color:inherit!important;border:1px solid rgba(0,0,0,.25)!important}
.satnik-portal-link{display:inline-block;padding:12px 20px;text-decoration:none;border:1px solid currentColor;border-radius:30px}
@media (max-width:720px){
  .satnik-portal-grid{grid-template-columns:1fr}
  .satnik-portal-data>div{grid-template-columns:1fr;gap:3px}
  .satnik-portal-doc{flex-direction:column;gap:3px}
}


/* v1.0.1 – Zephyr may visually suppress native button text. Keep this scoped. */
.satnik-portal-logout .satnik-portal-secondary{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:auto!important;
  min-width:140px!important;
  min-height:44px!important;
  padding:10px 22px!important;
  font-size:15px!important;
  line-height:1.2!important;
  font-weight:600!important;
  text-indent:0!important;
  opacity:1!important;
  visibility:visible!important;
  color:#333!important;
  background:#fff!important;
  border:1px solid rgba(0,0,0,.25)!important;
}


/* v1.0.2 – render logout label independently of Zephyr button typography. */
.satnik-portal-logout .satnik-portal-secondary .satnik-portal-logout-label{
  display:inline-block!important;
  position:relative!important;
  z-index:2!important;
  width:auto!important;
  height:auto!important;
  margin:0!important;
  padding:0!important;
  font-family:inherit!important;
  font-size:15px!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.2!important;
  letter-spacing:normal!important;
  text-indent:0!important;
  text-transform:none!important;
  text-decoration:none!important;
  color:#333!important;
  opacity:1!important;
  visibility:visible!important;
  -webkit-text-fill-color:#333!important;
}
.satnik-portal-logout .satnik-portal-secondary::before,
.satnik-portal-logout .satnik-portal-secondary::after{
  display:none!important;
  content:none!important;
}


/* v1.1 – password recovery */
.satnik-portal-forgot-link{margin:14px 0 0}
.satnik-portal-forgot-link a,
.satnik-portal-back a{font-weight:600}


/* v1.1.1 – Zephyr visibility fix for password recovery links. */
.satnik-portal-forgot-link{
  display:block!important;
  margin:16px 0 0!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
}
.satnik-portal-forgot-link a,
.satnik-portal-back a{
  display:inline-block!important;
  position:relative!important;
  z-index:2!important;
  width:auto!important;
  height:auto!important;
  font-family:inherit!important;
  font-size:15px!important;
  font-style:normal!important;
  font-weight:600!important;
  line-height:1.4!important;
  letter-spacing:normal!important;
  text-indent:0!important;
  text-transform:none!important;
  text-decoration:underline!important;
  color:#333!important;
  opacity:1!important;
  visibility:visible!important;
  -webkit-text-fill-color:#333!important;
}


/* v1.3 – read-only visit/help ledger in client portal */
.satnik-portal-ledger-card{margin-top:20px}
.satnik-portal-ledger-head{
  display:flex;
  justify-content:space-between;
  gap:24px;
  align-items:flex-start;
}
.satnik-portal-ledger-head h3{margin:0}
.satnik-portal-balance{
  min-width:170px;
  text-align:right;
}
.satnik-portal-balance span{
  display:block;
  font-size:13px;
  opacity:.7;
}
.satnik-portal-balance strong{
  display:block;
  font-size:34px;
  line-height:1.1;
  margin-top:4px;
}
.satnik-portal-ledger-list{margin-top:18px}
.satnik-portal-ledger-row{
  display:flex;
  justify-content:space-between;
  gap:20px;
  align-items:center;
  padding:13px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.satnik-portal-ledger-row:last-child{border-bottom:0}
.satnik-portal-ledger-row>div:first-child{
  display:flex;
  flex-wrap:wrap;
  gap:5px 12px;
  align-items:baseline;
}
.satnik-portal-ledger-row>div:first-child strong{
  width:100%;
}
.satnik-portal-ledger-row span{
  font-size:13px;
  opacity:.72;
}
.satnik-portal-ledger-note{
  width:100%;
  font-style:italic;
}
.satnik-portal-ledger-delta{
  min-width:48px;
  text-align:center;
  font-size:20px;
  font-weight:700;
  padding:7px 10px;
  border-radius:4px;
  background:rgba(0,0,0,.04);
}
.satnik-portal-ledger-delta.is-plus{background:rgba(46,125,50,.10)}
.satnik-portal-ledger-delta.is-minus{background:rgba(183,28,28,.08)}
@media (max-width:720px){
  .satnik-portal-ledger-head{flex-direction:column}
  .satnik-portal-balance{text-align:left}
}


/* v1.4 – help slot reservations */
.satnik-help-booking-card{margin-top:20px}
.satnik-help-slot-list{margin-top:18px}
.satnik-help-slot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:15px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.satnik-help-slot:last-child{border-bottom:0}
.satnik-help-slot>div{
  display:flex;
  flex-wrap:wrap;
  align-items:baseline;
  gap:4px 12px;
}
.satnik-help-slot>div strong{
  font-size:17px;
}
.satnik-help-slot>div small{
  display:block;
  width:100%;
  opacity:.7;
}
.satnik-help-slot form{margin:0}
.satnik-help-slot button{
  min-width:120px;
}
.satnik-help-current-booking{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:22px;
  margin-top:18px;
  padding:18px;
  background:rgba(46,125,50,.07);
  border-radius:4px;
}
.satnik-help-current-booking>div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.satnik-help-current-booking>div span{
  font-size:13px;
  opacity:.7;
}
.satnik-help-current-booking>div strong{
  font-size:20px;
}
.satnik-help-current-booking small{
  margin-top:6px;
  opacity:.75;
}
.satnik-help-cancel{
  min-width:160px!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
}
.satnik-help-cancel span{
  display:inline-block!important;
  color:#333!important;
  opacity:1!important;
  visibility:visible!important;
  -webkit-text-fill-color:#333!important;
}
@media (max-width:720px){
  .satnik-help-slot,
  .satnik-help-current-booking{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =======================================================
   v1.5 Calendar Core
   ======================================================= */
.satnik-calendar-wrap{
  max-width:1500px;
  margin:0 auto;
}
.satnik-calendar-nav{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin:18px 0 8px;
}
.satnik-calendar-nav a{
  display:inline-flex!important;
  align-items:center;
  min-height:40px;
  padding:7px 14px;
  border:1px solid rgba(0,0,0,.18);
  border-radius:22px;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
  font-weight:600;
}
.satnik-calendar-week-label{
  font-size:18px;
  font-weight:700;
  margin:12px 0 16px;
}
.satnik-calendar-legend{
  display:flex;
  flex-wrap:wrap;
  gap:14px;
  margin:0 0 16px;
  font-size:13px;
}
.satnik-calendar-legend span{
  display:inline-flex;
  align-items:center;
  gap:6px;
}
.satnik-calendar-legend i{
  display:inline-block;
  width:16px;
  height:16px;
  border-radius:3px;
  border:1px solid rgba(0,0,0,.08);
}
.satnik-calendar-legend i.is-free{background:#e8f5e9}
.satnik-calendar-legend i.is-busy{background:#fdeaea}
.satnik-calendar-legend i.is-mine{background:#e6edff}
.satnik-calendar-legend i.is-selected{background:#fff0c8}

.satnik-calendar-scroll{
  overflow-x:auto;
  padding-bottom:8px;
  -webkit-overflow-scrolling:touch;
}
.satnik-calendar-grid{
  display:grid;
  grid-template-columns:repeat(7,minmax(215px,1fr));
  gap:8px;
  min-width:1505px;
}
.satnik-calendar-day{
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  min-width:0;
}
.satnik-calendar-day>header{
  display:flex;
  justify-content:space-between;
  align-items:baseline;
  gap:8px;
  padding:12px;
  border-bottom:1px solid rgba(0,0,0,.1);
  background:rgba(0,0,0,.025);
}
.satnik-calendar-day>header strong{
  font-size:15px;
}
.satnik-calendar-day>header span{
  font-size:13px;
  opacity:.65;
}
.satnik-calendar-closed{
  min-height:100px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#777;
  font-size:13px;
}
.satnik-calendar-time-row{
  display:grid;
  grid-template-columns:48px 1fr;
  gap:5px;
  padding:4px;
  border-bottom:1px solid rgba(0,0,0,.055);
}
.satnik-calendar-time-row:last-child{
  border-bottom:0;
}
.satnik-calendar-time{
  font-size:11px;
  color:#666;
  padding-top:8px;
  text-align:center;
}
.satnik-calendar-lanes{
  display:grid;
  grid-template-columns:repeat(var(--satnik-capacity),minmax(0,1fr));
  gap:3px;
}
.satnik-calendar-cell{
  min-width:0;
  min-height:38px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:4px!important;
  margin:0!important;
  border-radius:3px!important;
  border:1px solid rgba(0,0,0,.06)!important;
  font-size:10px!important;
  line-height:1.15!important;
  text-align:center!important;
  overflow:hidden;
  word-break:break-word;
  white-space:normal;
  box-shadow:none!important;
  text-decoration:none!important;
  text-transform:none!important;
  letter-spacing:normal!important;
  opacity:1!important;
  visibility:visible!important;
}
button.satnik-calendar-cell{
  cursor:pointer;
}
.satnik-calendar-cell.is-free{
  background:#e8f5e9!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-calendar-cell.is-busy{
  background:#fdeaea!important;
  color:#7c2727!important;
  -webkit-text-fill-color:#7c2727!important;
}
.satnik-calendar-cell.is-mine{
  background:#e6edff!important;
  color:#254da5!important;
  -webkit-text-fill-color:#254da5!important;
}
.satnik-calendar-cell.is-selected{
  background:#fff0c8!important;
  color:#735300!important;
  -webkit-text-fill-color:#735300!important;
  outline:2px solid rgba(115,83,0,.22);
}
.satnik-calendar-cell.is-cancel-selected{
  background:#ffe0b2!important;
  color:#8a4500!important;
  -webkit-text-fill-color:#8a4500!important;
}
.satnik-calendar-cell:disabled{
  cursor:default;
}
.satnik-calendar-cell.is-staff{
  font-size:10px!important;
}
a.satnik-calendar-cell.is-staff:hover{
  text-decoration:underline!important;
}
.satnik-calendar-selection-bar{
  position:sticky;
  bottom:10px;
  z-index:4;
  margin:16px 0 0;
  padding:14px 16px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  background:#fff;
  border:1px solid rgba(0,0,0,.15);
  border-radius:5px;
}
.satnik-calendar-selection-bar button{
  min-width:160px;
}
.satnik-calendar-selection-bar button:disabled{
  opacity:.45!important;
  cursor:default;
}
@media (max-width:720px){
  .satnik-calendar-grid{
    grid-template-columns:repeat(7,minmax(205px,205px));
    min-width:max-content;
  }
  .satnik-calendar-selection-bar{
    position:static;
    align-items:flex-start;
    flex-direction:column;
  }
}


/* =======================================================
   v1.5.1 – full-width week + mini month + past slots
   ======================================================= */
.satnik-calendar-wrap{
  width:100%;
  max-width:none;
}
.satnik-calendar-topbar{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:28px;
  margin:16px 0 18px;
}
.satnik-calendar-week-tools{
  min-width:0;
  flex:1 1 auto;
}
.satnik-calendar-nav{
  margin:0 0 12px;
}
.satnik-calendar-week-label{
  margin:0;
}
.satnik-calendar-scroll{
  width:100%;
  overflow-x:visible;
}
.satnik-calendar-grid{
  width:100%;
  min-width:0;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
}
.satnik-calendar-day{
  width:auto;
  min-width:0;
}
.satnik-calendar-time-row{
  grid-template-columns:38px minmax(0,1fr);
  gap:3px;
  padding:3px;
}
.satnik-calendar-time{
  font-size:10px;
  padding-top:8px;
}
.satnik-calendar-lanes{
  gap:2px;
}
.satnik-calendar-cell{
  min-height:36px;
  padding:3px!important;
  font-size:9px!important;
}
.satnik-calendar-cell.is-staff{
  font-size:9px!important;
}

/* Past slots */
.satnik-calendar-time-row.is-past-row{
  background:rgba(0,0,0,.018);
}
.satnik-calendar-cell.is-past,
.satnik-calendar-cell.is-past:hover{
  background:#eeeeee!important;
  color:#8a8a8a!important;
  -webkit-text-fill-color:#8a8a8a!important;
  border-color:#e2e2e2!important;
  cursor:default;
  outline:none!important;
  text-decoration:none!important;
}

/* Compact month picker above the week, not beside it. */
.satnik-mini-month{
  flex:0 0 250px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  padding:10px;
  border-radius:5px;
}
.satnik-mini-month-head{
  display:grid;
  grid-template-columns:32px 1fr 32px;
  align-items:center;
  gap:4px;
  margin-bottom:7px;
}
.satnik-mini-month-head strong{
  text-align:center;
  font-size:14px;
}
.satnik-mini-month-head a{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:32px!important;
  height:32px!important;
  min-height:32px!important;
  padding:0!important;
  border-radius:50%!important;
  border:1px solid rgba(0,0,0,.12)!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
  font-size:22px!important;
  line-height:1!important;
}
.satnik-mini-month-weekdays,
.satnik-mini-month-days{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:2px;
}
.satnik-mini-month-weekdays span{
  text-align:center;
  font-size:10px;
  font-weight:700;
  color:#777;
  padding:3px 0;
}
.satnik-mini-day{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  aspect-ratio:1/1;
  min-width:0!important;
  min-height:0!important;
  padding:0!important;
  border-radius:4px!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
  font-size:11px!important;
  line-height:1!important;
  border:1px solid transparent!important;
}
.satnik-mini-day.is-outside{
  opacity:.28;
}
.satnik-mini-day.is-week{
  background:rgba(0,0,0,.055)!important;
}
.satnik-mini-day.is-today{
  border-color:#333!important;
  font-weight:800!important;
}
.satnik-mini-day.is-week.is-today{
  background:rgba(0,0,0,.09)!important;
}

/* At normal desktop widths keep the whole week visible.
   Only fall back to local horizontal scrolling when cells would become unusably tiny. */
@media (max-width:1180px){
  .satnik-calendar-scroll{
    overflow-x:auto;
  }
  .satnik-calendar-grid{
    grid-template-columns:repeat(7,minmax(170px,170px));
    min-width:max-content;
  }
}
@media (max-width:820px){
  .satnik-calendar-topbar{
    flex-direction:column;
  }
  .satnik-mini-month{
    width:250px;
    max-width:100%;
    flex-basis:auto;
  }
}


/* =======================================================
   v1.5.2 – horizontal day timeline
   ======================================================= */
.satnik-timeline-week{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.satnik-timeline-day{
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  border-radius:5px;
  overflow:hidden;
}
.satnik-timeline-day-head{
  min-height:52px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:10px 16px;
  border-bottom:1px solid rgba(0,0,0,.1);
  background:rgba(0,0,0,.025);
}
.satnik-timeline-day-head>div{
  display:flex;
  align-items:baseline;
  gap:10px;
}
.satnik-timeline-day-head strong{
  font-size:17px;
}
.satnik-timeline-day-head span{
  font-size:13px;
  opacity:.65;
}
.satnik-timeline-closed-label{
  font-size:12px!important;
  font-weight:700;
}
.satnik-timeline-closed{
  min-height:70px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#777;
}
.satnik-timeline-scroll{
  overflow-x:auto;
  padding:0 10px 10px;
  -webkit-overflow-scrolling:touch;
}
.satnik-timeline-board{
  min-width:900px;
}
.satnik-timeline-axis{
  position:relative;
  height:30px;
  margin-left:0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.satnik-timeline-axis span{
  position:absolute;
  left:calc((var(--satnik-tick) / var(--satnik-slot-count)) * 100%);
  top:7px;
  transform:translateX(-50%);
  font-size:10px;
  color:#666;
  white-space:nowrap;
}
.satnik-timeline-axis span:first-child{
  transform:none;
}
.satnik-timeline-axis span:last-child{
  transform:translateX(-100%);
}
.satnik-timeline-lanes{
  display:flex;
  flex-direction:column;
  gap:4px;
  padding-top:5px;
}
.satnik-timeline-lane{
  display:grid;
  grid-template-columns:repeat(var(--satnik-slot-count),minmax(0,1fr));
  gap:2px;
  min-height:44px;
  position:relative;
  background-image:
    linear-gradient(to right, rgba(0,0,0,.055) 1px, transparent 1px);
  background-size:calc(100% / var(--satnik-slot-count)) 100%;
}
.satnik-timeline-block{
  min-width:0;
  min-height:44px;
  display:flex!important;
  align-items:center!important;
  gap:8px;
  padding:5px 10px!important;
  border-radius:4px!important;
  overflow:hidden;
  text-decoration:none!important;
  box-shadow:none!important;
  border:1px solid rgba(0,0,0,.08)!important;
}
.satnik-timeline-block.is-booked{
  background:#fdeaea!important;
  color:#742626!important;
  -webkit-text-fill-color:#742626!important;
}
.satnik-timeline-block.is-booked strong{
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:13px;
}
.satnik-timeline-block.is-booked span{
  flex:0 0 auto;
  font-size:11px;
  opacity:.72;
}
.satnik-timeline-block.is-empty{
  background:#e8f5e9!important;
}
.satnik-timeline-block.is-past{
  background:#eeeeee!important;
  color:#777!important;
  -webkit-text-fill-color:#777!important;
}
.satnik-timeline-client-cell{
  min-width:0;
  min-height:44px;
  padding:0!important;
  margin:0!important;
  border-radius:3px!important;
  border:1px solid rgba(0,0,0,.06)!important;
  box-shadow:none!important;
  font-size:9px!important;
  line-height:1!important;
}
button.satnik-timeline-client-cell{
  cursor:pointer;
}
.satnik-timeline-client-cell.is-free{
  background:#e8f5e9!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-timeline-client-cell.is-busy{
  background:#fdeaea!important;
}
.satnik-timeline-client-cell.is-mine{
  background:#e6edff!important;
  color:#254da5!important;
  -webkit-text-fill-color:#254da5!important;
}
.satnik-timeline-client-cell.is-selected{
  background:#fff0c8!important;
  color:#735300!important;
  -webkit-text-fill-color:#735300!important;
  outline:2px solid rgba(115,83,0,.25);
}
.satnik-timeline-client-cell.is-cancel-selected{
  background:#ffe0b2!important;
  color:#8a4500!important;
  -webkit-text-fill-color:#8a4500!important;
}
.satnik-timeline-client-cell.is-past{
  background:#eeeeee!important;
  border-color:#e2e2e2!important;
}
@media (min-width:1200px){
  .satnik-timeline-board{
    min-width:0;
    width:100%;
  }
  .satnik-timeline-scroll{
    overflow-x:visible;
  }
}
@media (max-width:720px){
  .satnik-timeline-day-head>div{
    flex-direction:column;
    gap:0;
  }
}


/* =======================================================
   v1.5.3 – oddělená hodinová políčka
   ======================================================= */
.satnik-timeline-lane{
  gap:6px;
  background-image:none;
}
.satnik-timeline-board{
  min-width:860px;
}
.satnik-timeline-axis{
  margin-bottom:6px;
}
.satnik-timeline-block,
.satnik-timeline-client-cell{
  min-height:52px;
  border-radius:6px!important;
}
.satnik-timeline-block.is-hour{
  justify-content:center!important;
  text-align:center!important;
  padding:6px 8px!important;
}
.satnik-timeline-block.is-hour strong{
  white-space:normal;
  overflow:visible;
  text-overflow:clip;
  font-size:12px;
  line-height:1.15;
}
.satnik-timeline-block.is-hour.is-empty{
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
  font-size:11px!important;
}
.satnik-timeline-block.is-hour.is-past{
  color:#777!important;
  -webkit-text-fill-color:#777!important;
}
.satnik-timeline-client-cell{
  width:100%;
}
@media (min-width:1200px){
  .satnik-timeline-board{
    min-width:0;
  }
}


/* =======================================================
   v1.6 – staff attendance
   ======================================================= */
.satnik-timeline-block.is-booked{
  flex-direction:column;
  align-items:stretch!important;
  justify-content:center!important;
  gap:3px;
  min-height:74px;
  padding:6px!important;
  overflow:visible;
}
.satnik-attendance-client-link{
  display:block!important;
  min-width:0;
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  text-decoration:none!important;
  text-align:center;
}
.satnik-attendance-client-link strong{
  display:block;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:11px!important;
}
.satnik-attendance-client-link:hover{
  text-decoration:underline!important;
}
.satnik-attendance-status{
  display:block;
  text-align:center;
  font-size:9px!important;
  line-height:1.15;
  font-weight:700;
  opacity:.78!important;
}
.satnik-timeline-block.is-attendance-arrived{
  background:#e7f3ff!important;
  color:#24527a!important;
  -webkit-text-fill-color:#24527a!important;
}
.satnik-timeline-block.is-attendance-completed{
  background:#e8f5e9!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-timeline-block.is-attendance-no_show{
  background:#eeeeee!important;
  color:#777!important;
  -webkit-text-fill-color:#777!important;
}
.satnik-timeline-block.is-attendance-completed small{
  text-align:center;
  font-size:9px;
  font-weight:700;
}
.satnik-attendance-actions,
.satnik-attendance-quick-form{
  margin:0;
}
.satnik-attendance-quick-form{
  display:flex;
  justify-content:center;
  gap:3px;
  flex-wrap:wrap;
}
.satnik-attendance-mini{
  min-height:24px!important;
  min-width:0!important;
  padding:2px 5px!important;
  margin:0!important;
  border-radius:3px!important;
  font-size:8px!important;
  line-height:1.1!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.satnik-attendance-mini.is-arrived{
  background:#fff!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
  border:1px solid rgba(36,91,43,.25)!important;
}
.satnik-attendance-mini.is-noshow{
  background:#fff!important;
  color:#7b3333!important;
  -webkit-text-fill-color:#7b3333!important;
  border:1px solid rgba(123,51,51,.22)!important;
}
.satnik-attendance-complete{
  position:relative;
  text-align:center;
  font-size:9px;
}
.satnik-attendance-complete summary{
  cursor:pointer;
  font-weight:700;
  text-decoration:underline;
}
.satnik-attendance-complete>form{
  position:absolute;
  z-index:20;
  top:22px;
  left:50%;
  transform:translateX(-50%);
  width:220px;
  padding:10px;
  background:#fff;
  border:1px solid rgba(0,0,0,.18);
  border-radius:5px;
  box-shadow:0 4px 18px rgba(0,0,0,.12);
  text-align:left;
}
.satnik-attendance-complete label{
  display:block;
  margin:0 0 7px;
  font-size:10px;
  font-weight:700;
}
.satnik-attendance-complete input,
.satnik-attendance-complete select{
  display:block;
  width:100%;
  margin-top:2px;
  min-height:32px;
  font-size:12px;
}
.satnik-attendance-complete-btn{
  width:100%!important;
  min-height:34px!important;
  padding:5px 8px!important;
  font-size:10px!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}


/* =======================================================
   v1.6.1 – JS-free native calendar selection
   ======================================================= */
.satnik-native-calendar-cell{
  min-width:0;
  min-height:52px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  position:relative;
  margin:0!important;
  padding:0!important;
  border-radius:6px!important;
  border:1px solid rgba(0,0,0,.06)!important;
  overflow:hidden;
  font-size:10px!important;
  line-height:1.1!important;
  text-align:center;
}
label.satnik-native-calendar-cell{
  cursor:pointer;
}
.satnik-native-calendar-cell>input{
  position:absolute!important;
  inline-size:1px!important;
  block-size:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.satnik-native-calendar-cell>span{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:50px!important;
  padding:4px!important;
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
  opacity:1!important;
  visibility:visible!important;
  font-size:10px!important;
  font-weight:600!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.satnik-native-calendar-cell.is-free{
  background:#e8f5e9!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-native-calendar-cell.is-free:has(input:checked){
  background:#fff0c8!important;
  color:#735300!important;
  -webkit-text-fill-color:#735300!important;
  outline:2px solid rgba(115,83,0,.28);
}
.satnik-native-calendar-cell.is-free:has(input:checked)>span::after{
  content:'vybráno';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff0c8;
}
.satnik-native-calendar-cell.is-mine{
  background:#e6edff!important;
  color:#254da5!important;
  -webkit-text-fill-color:#254da5!important;
}
.satnik-native-calendar-cell.is-mine:has(input:checked){
  background:#ffe0b2!important;
  color:#8a4500!important;
  -webkit-text-fill-color:#8a4500!important;
  outline:2px solid rgba(138,69,0,.25);
}
.satnik-native-calendar-cell.is-mine:has(input:checked)>span::after{
  content:'zrušit';
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#ffe0b2;
}
.satnik-native-calendar-cell.is-busy{
  background:#fdeaea!important;
  color:#7c2727!important;
  -webkit-text-fill-color:#7c2727!important;
}
.satnik-native-calendar-cell.is-past{
  background:#eeeeee!important;
  color:#8a8a8a!important;
  -webkit-text-fill-color:#8a8a8a!important;
}

/* Fallback for browsers without :has(): checked input still changes the adjacent span. */
.satnik-native-calendar-cell input:checked + span{
  font-weight:800!important;
}
.satnik-native-calendar-cell.is-free input:checked + span{
  background:#fff0c8!important;
  color:#735300!important;
  -webkit-text-fill-color:#735300!important;
}
.satnik-native-calendar-cell.is-mine input:checked + span{
  background:#ffe0b2!important;
  color:#8a4500!important;
  -webkit-text-fill-color:#8a4500!important;
}


/* =======================================================
   v1.6.2 – larger staff attendance cards
   ======================================================= */
.satnik-timeline-lane{
  min-height:96px!important;
}
.satnik-timeline-block.is-booked{
  min-height:92px!important;
  padding:9px 8px!important;
  gap:5px!important;
}
.satnik-attendance-client-link strong{
  font-size:14px!important;
  line-height:1.2!important;
  white-space:normal!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
.satnik-attendance-status{
  font-size:10px!important;
  line-height:1.25!important;
}
.satnik-attendance-mini{
  min-height:30px!important;
  padding:4px 8px!important;
  font-size:9px!important;
}
.satnik-timeline-block.is-attendance-completed small{
  font-size:10px!important;
}
.satnik-timeline-block.is-hour.is-empty{
  min-height:92px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.satnik-timeline-client-cell,
.satnik-native-calendar-cell{
  min-height:70px!important;
}
.satnik-native-calendar-cell>span{
  min-height:68px!important;
  font-size:11px!important;
}


/* =======================================================
   v1.6.3 – calendar directly in Můj Šatník
   ======================================================= */
.satnik-account-calendar-card{
  margin-top:20px;
  overflow:visible;
}
.satnik-account-calendar-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:12px;
}
.satnik-account-calendar-head h3{
  margin:0 0 6px;
}
.satnik-account-calendar-head p{
  margin:4px 0;
}
.satnik-account-calendar-open{
  flex:0 0 auto;
  display:inline-flex!important;
  align-items:center;
  min-height:40px;
  padding:7px 14px!important;
  border:1px solid rgba(0,0,0,.18)!important;
  border-radius:22px!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
  font-weight:600!important;
  white-space:nowrap;
}
.satnik-calendar-wrap.is-embedded{
  padding:0!important;
  margin:0!important;
  max-width:none!important;
}
.satnik-calendar-wrap.is-embedded .satnik-calendar-topbar{
  margin-top:6px;
}
.satnik-calendar-wrap.is-embedded .satnik-calendar-selection-bar{
  margin-bottom:0;
}
@media (max-width:720px){
  .satnik-account-calendar-head{
    flex-direction:column;
  }
}


/* =======================================================
   v1.6.5 – attendance completion popup must escape calendar
   ======================================================= */

/* v1.5.2 used overflow:hidden for rounded day cards.
   That clipped the absolute attendance completion form. */
.satnik-timeline-day{
  overflow:visible!important;
}

/* Keep the currently opened completion control above later calendar rows/days. */
.satnik-attendance-complete[open]{
  position:relative!important;
  z-index:1000!important;
}
.satnik-timeline-block:has(.satnik-attendance-complete[open]){
  position:relative!important;
  z-index:900!important;
}
.satnik-timeline-lane:has(.satnik-attendance-complete[open]){
  position:relative!important;
  z-index:800!important;
}
.satnik-timeline-day:has(.satnik-attendance-complete[open]){
  position:relative!important;
  z-index:700!important;
}

/* Popup itself sits above all calendar cells. */
.satnik-attendance-complete>form{
  z-index:1200!important;
}

/* Desktop timeline has no need to clip vertically. */
@media (min-width:1200px){
  .satnik-timeline-scroll{
    overflow:visible!important;
  }
  .satnik-timeline-board,
  .satnik-timeline-lanes{
    overflow:visible!important;
  }
}

/* On narrower screens keep horizontal scrolling but give the popup extra room
   inside the scroll area rather than clipping immediately below the lane. */
@media (max-width:1199px){
  .satnik-timeline-scroll{
    padding-bottom:260px!important;
    margin-bottom:-250px!important;
  }
}


/* =======================================================
   v1.7 – staff reception / visit desk
   ======================================================= */
.satnik-staff-wrap{
  max-width:1100px;
  margin:0 auto;
}
.satnik-staff-search{
  margin:22px 0;
  max-width:850px;
}
.satnik-staff-search>label>span{
  display:block;
  font-weight:700;
  margin-bottom:7px;
}
.satnik-staff-search-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
}
.satnik-staff-search-row input{
  min-width:0;
  min-height:48px;
  padding:10px 12px;
  font-size:16px;
}
.satnik-staff-search-row button{
  min-height:48px;
  padding:9px 22px!important;
}
.satnik-staff-result-list{
  border-top:1px solid rgba(0,0,0,.1);
}
.satnik-staff-result{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:14px 4px!important;
  border-bottom:1px solid rgba(0,0,0,.1);
  text-decoration:none!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
}
.satnik-staff-result>div:first-child{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.satnik-staff-result strong{
  font-size:17px;
}
.satnik-staff-result span,
.satnik-staff-result small{
  font-size:13px;
  opacity:.72;
}
.satnik-staff-result-meta{
  text-align:right;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.satnik-staff-client{
  margin-top:20px;
}
.satnik-staff-client-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.satnik-staff-client-head h3{
  font-size:30px;
  margin:10px 0 2px;
}
.satnik-staff-back{
  color:#333!important;
  -webkit-text-fill-color:#333!important;
}
.satnik-staff-original-name{
  margin:2px 0;
  opacity:.65;
  font-size:13px;
}
.satnik-staff-admin-link{
  display:inline-flex!important;
  align-items:center;
  min-height:42px;
  padding:8px 15px!important;
  border:1px solid rgba(0,0,0,.18)!important;
  border-radius:22px!important;
  text-decoration:none!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  font-weight:600!important;
  white-space:nowrap;
}
.satnik-staff-client-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin-bottom:20px;
}
.satnik-staff-summary-card{
  min-width:0;
  padding:16px;
  background:#fff;
  border:1px solid rgba(0,0,0,.12);
  border-radius:5px;
}
.satnik-staff-summary-card span{
  display:block;
  font-size:12px;
  opacity:.65;
  margin-bottom:5px;
}
.satnik-staff-summary-card strong{
  display:block;
  font-size:16px;
  word-break:break-word;
}
.satnik-staff-summary-card.is-balance strong{
  font-size:34px;
  line-height:1;
}
.satnik-staff-visit-actions{
  padding:20px;
  border:1px solid rgba(0,0,0,.12);
  background:#fff;
  border-radius:5px;
  margin-bottom:22px;
}
.satnik-staff-visit-actions h3{
  margin-top:0;
}
.satnik-staff-credit-warning{
  padding:11px 13px;
  margin:10px 0 15px;
  background:#fff6dd;
  border-left:4px solid #c88a00;
  font-size:13px;
}
.satnik-staff-visit-form>label>span{
  display:block;
  font-weight:700;
  margin-bottom:5px;
}
.satnik-staff-visit-form input[type="text"]{
  width:100%;
  min-height:44px;
  padding:8px 10px;
  margin-bottom:14px;
}
.satnik-staff-visit-buttons{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.satnik-staff-visit-primary,
.satnik-staff-visit-secondary{
  min-height:46px!important;
  padding:9px 18px!important;
  font-size:15px!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.satnik-staff-visit-secondary{
  background:#fff!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  border:1px solid rgba(0,0,0,.2)!important;
}
.satnik-staff-history-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.satnik-staff-history-grid>section{
  min-width:0;
  padding:18px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:5px;
  background:#fff;
}
.satnik-staff-history-grid h3{
  margin-top:0;
}
.satnik-staff-history-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:10px 0;
  border-bottom:1px solid rgba(0,0,0,.075);
}
.satnik-staff-history-row:last-child{
  border-bottom:0;
}
.satnik-staff-history-row>div{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:2px;
}
.satnik-staff-history-row span{
  font-size:12px;
  opacity:.68;
}
.satnik-staff-history-row b{
  min-width:34px;
  text-align:right;
  font-size:19px;
}
@media (max-width:800px){
  .satnik-staff-client-grid{
    grid-template-columns:1fr 1fr;
  }
  .satnik-staff-history-grid{
    grid-template-columns:1fr;
  }
  .satnik-staff-client-head{
    flex-direction:column;
  }
}
@media (max-width:520px){
  .satnik-staff-search-row{
    grid-template-columns:1fr;
  }
  .satnik-staff-client-grid{
    grid-template-columns:1fr;
  }
  .satnik-staff-result{
    align-items:flex-start;
    flex-direction:column;
  }
  .satnik-staff-result-meta{
    text-align:left;
  }
}


/* =======================================================
   v1.8 – shared frontdesk account
   ======================================================= */
.satnik-staff-home{
  max-width:900px;
  margin:0 auto;
}
.satnik-staff-operator-box{
  margin:22px 0;
  padding:22px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:6px;
  background:#fff;
}
.satnik-staff-operator-box h3{
  margin-top:0;
}
.satnik-staff-operator-form{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  max-width:650px;
}
.satnik-staff-operator-form input{
  min-height:48px;
  padding:9px 12px;
  font-size:16px;
}
.satnik-staff-operator-form button{
  min-height:48px!important;
  padding:9px 18px!important;
}
.satnik-staff-active-operator{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:7px;
  padding:12px 14px;
  margin:20px 0;
  background:#edf7ee;
  border-radius:5px;
}
.satnik-staff-active-operator form{
  margin:0;
}
.satnik-staff-change-operator{
  background:transparent!important;
  border:0!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:underline!important;
  padding:0 4px!important;
  min-height:0!important;
  font-size:13px!important;
}
.satnik-staff-home-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:16px;
  margin:20px 0 28px;
}
.satnik-staff-home-card{
  min-height:150px;
  display:flex!important;
  flex-direction:column;
  justify-content:center;
  gap:8px;
  padding:24px!important;
  border:1px solid rgba(0,0,0,.12)!important;
  border-radius:6px!important;
  background:#fff!important;
  text-decoration:none!important;
  color:#222!important;
  -webkit-text-fill-color:#222!important;
}
.satnik-staff-home-card strong{
  font-size:23px;
}
.satnik-staff-home-card span{
  font-size:14px;
  opacity:.72;
}
.satnik-staff-frontend-logout{
  margin-top:18px;
}
.satnik-staff-frontend-logout button{
  background:#fff!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  border:1px solid rgba(0,0,0,.22)!important;
  min-height:42px!important;
  padding:7px 16px!important;
}
@media (max-width:650px){
  .satnik-staff-home-grid{
    grid-template-columns:1fr;
  }
  .satnik-staff-operator-form{
    grid-template-columns:1fr;
  }
}


/* =======================================================
   v1.8.1 – client navigation + compact single-day calendar
   ======================================================= */
.satnik-client-shell{
  display:grid;
  grid-template-columns:190px minmax(0,1fr);
  gap:28px;
  align-items:start;
}
.satnik-client-main{min-width:0}
.satnik-client-nav{
  position:sticky;
  top:24px;
  display:flex;
  flex-direction:column;
  gap:4px;
  padding:14px;
  border:1px solid rgba(0,0,0,.11);
  border-radius:7px;
  background:#fff;
}
.satnik-client-nav-title{
  padding:6px 9px 11px;
  font-size:13px;
  font-weight:800;
  letter-spacing:.03em;
  text-transform:uppercase;
  opacity:.6;
}
.satnik-client-nav-item{
  display:block!important;
  min-height:42px;
  padding:10px 11px!important;
  border-radius:5px!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
  font-weight:600!important;
}
.satnik-client-nav-item:hover{background:rgba(0,0,0,.035)!important}
.satnik-client-nav-item.is-active{
  background:#f1f3f8!important;
  font-weight:800!important;
}
.satnik-portal-calendar-cta{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  margin-top:20px;
}
.satnik-portal-calendar-cta h3{margin:0 0 5px}
.satnik-portal-calendar-cta p{margin:0}
.satnik-client-calendar-main,
.satnik-client-calendar-main .satnik-calendar-wrap{
  max-width:none;
  min-width:0;
  margin:0;
}
.satnik-client-day-tabs{
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:6px;
  margin:0 0 14px;
}
.satnik-client-day-tab{
  min-width:0;
  min-height:52px;
  display:flex!important;
  flex-direction:column;
  align-items:center!important;
  justify-content:center!important;
  gap:2px;
  padding:6px!important;
  border:1px solid rgba(0,0,0,.11)!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  text-decoration:none!important;
}
.satnik-client-day-tab strong{font-size:12px}
.satnik-client-day-tab span{font-size:11px;opacity:.65}
.satnik-client-day-tab.is-active{
  background:#f1f3f8!important;
  border-color:rgba(0,0,0,.25)!important;
}
.satnik-client-day-tab.is-closed{opacity:.45}
.satnik-client-calendar-main .satnik-timeline-week{gap:0}
.satnik-client-calendar-main .satnik-calendar-selection-bar{
  position:static!important;
  margin-top:14px!important;
}
.satnik-client-calendar-main .satnik-calendar-topbar{margin-top:0}
@media (min-width:1100px){
  .satnik-client-calendar-main .satnik-timeline-scroll{overflow-x:visible!important}
  .satnik-client-calendar-main .satnik-timeline-board{
    min-width:0!important;
    width:100%!important;
  }
}
@media (max-width:850px){
  .satnik-client-shell{grid-template-columns:1fr;gap:14px}
  .satnik-client-nav{
    position:static;
    flex-direction:row;
    overflow-x:auto;
    padding:7px;
  }
  .satnik-client-nav-title{display:none}
  .satnik-client-nav-item{white-space:nowrap}
  .satnik-client-day-tabs{
    grid-template-columns:repeat(7,minmax(72px,1fr));
    overflow-x:auto;
  }
}
@media (max-width:600px){
  .satnik-portal-calendar-cta{align-items:flex-start;flex-direction:column}
}


/* =======================================================
   v1.8.3 – Simple Client Week
   ======================================================= */
.satnik-client-calendar-main .satnik-calendar-topbar{
  display:block!important;
  margin-bottom:18px!important;
}
.satnik-client-calendar-main .satnik-mini-month{
  display:none!important;
}
.satnik-client-calendar-main .satnik-calendar-week-tools{
  width:100%;
}
.satnik-client-calendar-main .satnik-calendar-week-label{
  font-size:20px;
}
.satnik-simple-week{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.satnik-simple-day{
  display:grid;
  grid-template-columns:150px minmax(0,1fr);
  gap:12px;
  align-items:stretch;
  border:1px solid rgba(0,0,0,.11);
  border-radius:6px;
  background:#fff;
  overflow:hidden;
}
.satnik-simple-day-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  padding:14px 16px;
  background:rgba(0,0,0,.025);
  border-right:1px solid rgba(0,0,0,.08);
}
.satnik-simple-day-head>div{
  display:flex;
  flex-direction:column;
  gap:2px;
}
.satnik-simple-day-head strong{
  font-size:16px;
}
.satnik-simple-day-head span{
  font-size:12px;
  opacity:.65;
}
.satnik-simple-closed{
  font-size:11px!important;
  font-weight:700;
}
.satnik-simple-hours{
  display:grid;
  grid-template-columns:repeat(6,minmax(0,1fr));
  gap:7px;
  padding:8px;
}
.satnik-simple-hour{
  min-width:0;
  min-height:60px;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  flex-direction:column;
  gap:3px;
  padding:7px!important;
  margin:0!important;
  border-radius:5px!important;
  border:1px solid rgba(0,0,0,.07)!important;
  text-align:center!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:1.15!important;
  position:relative;
}
label.satnik-simple-hour{
  cursor:pointer;
}
.satnik-simple-hour input{
  position:absolute!important;
  inline-size:1px!important;
  block-size:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.satnik-simple-hour>span{
  display:flex!important;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  width:100%;
  min-height:44px;
  color:inherit!important;
  -webkit-text-fill-color:currentColor!important;
}
.satnik-simple-hour small{
  display:block;
  font-size:10px;
  font-weight:600;
  opacity:.7;
}
.satnik-simple-hour.is-free{
  background:#e8f5e9!important;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-simple-hour.is-free input:checked + span{
  position:absolute;
  inset:0;
  background:#fff0c8!important;
  color:#735300!important;
  -webkit-text-fill-color:#735300!important;
  border-radius:5px;
  padding:7px;
}
.satnik-simple-hour.is-free input:checked + span small::after{
  content:'vybráno';
  font-size:10px;
  font-weight:800;
}
.satnik-simple-hour.is-free input:checked + span small{
  font-size:0;
}
.satnik-simple-hour.is-mine{
  background:#e6edff!important;
  color:#254da5!important;
  -webkit-text-fill-color:#254da5!important;
}
.satnik-simple-hour.is-mine input:checked + span{
  position:absolute;
  inset:0;
  background:#ffe0b2!important;
  color:#8a4500!important;
  -webkit-text-fill-color:#8a4500!important;
  border-radius:5px;
  padding:7px;
}
.satnik-simple-hour.is-mine input:checked + span small::after{
  content:'zrušit';
  font-size:10px;
  font-weight:800;
}
.satnik-simple-hour.is-mine input:checked + span small{
  font-size:0;
}
.satnik-simple-hour.is-full{
  background:#fdeaea!important;
  color:#7c2727!important;
  -webkit-text-fill-color:#7c2727!important;
}
.satnik-simple-hour.is-past{
  background:#eeeeee!important;
  color:#888!important;
  -webkit-text-fill-color:#888!important;
}
.satnik-simple-day.is-closed{
  min-height:64px;
  grid-template-columns:150px 1fr;
}
.satnik-simple-day.is-closed::after{
  content:'Zavřeno';
  display:flex;
  align-items:center;
  padding:0 14px;
  color:#888;
  font-size:13px;
}
.satnik-client-calendar-main .satnik-calendar-selection-bar{
  position:static!important;
  margin-top:14px!important;
}
@media (max-width:900px){
  .satnik-simple-day{
    grid-template-columns:120px minmax(0,1fr);
  }
  .satnik-simple-hours{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:620px){
  .satnik-simple-day{
    grid-template-columns:1fr;
  }
  .satnik-simple-day-head{
    border-right:0;
    border-bottom:1px solid rgba(0,0,0,.08);
  }
  .satnik-simple-hours{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}


/* =======================================================
   v1.8.6 – unified client portal width
   ======================================================= */

/* Profile and calendar now share the same portal width. */
.satnik-portal-wrap,
.satnik-client-calendar-main .satnik-calendar-wrap{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

/* The shell itself owns the width so the left navigation stays aligned
   between Přehled and Kalendář pomoci. */
.satnik-client-shell{
  width:min(1320px, calc(100vw - 64px))!important;
  max-width:1320px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  grid-template-columns:190px minmax(0,1fr)!important;
}

/* Let the profile cards use the available main column width. */
.satnik-client-main .satnik-portal-grid{
  width:100%!important;
  max-width:none!important;
  grid-template-columns:repeat(2, minmax(0,1fr))!important;
}

/* Wide account sections should span the same main column as the calendar. */
.satnik-client-main .satnik-portal-card,
.satnik-client-main .satnik-help-ledger-card,
.satnik-client-main .satnik-portal-calendar-cta{
  max-width:none!important;
}

/* Keep the content visually balanced on very wide screens. */
@media (min-width:1500px){
  .satnik-client-shell{
    width:1320px!important;
  }
}

@media (max-width:850px){
  .satnik-client-shell{
    width:calc(100vw - 28px)!important;
    max-width:none!important;
    grid-template-columns:1fr!important;
  }

  .satnik-client-main .satnik-portal-grid{
    grid-template-columns:1fr!important;
  }
}


/* =======================================================
   v1.8.7 – wider client navigation
   ======================================================= */
.satnik-client-shell{
  grid-template-columns:230px minmax(0,1fr)!important;
}

.satnik-client-nav{
  padding:15px!important;
}

.satnik-client-nav-item{
  font-size:15px!important;
  line-height:1.25!important;
  padding:10px 12px!important;
  white-space:nowrap!important;
}

.satnik-client-nav-title{
  font-size:12px!important;
  padding-left:12px!important;
  padding-right:12px!important;
}

@media (max-width:850px){
  .satnik-client-shell{
    grid-template-columns:1fr!important;
  }

  .satnik-client-nav-item{
    white-space:nowrap!important;
  }
}


/* =======================================================
   v1.9 – persistent simple staff navigation
   ======================================================= */
.satnik-staff-shell{
  width:min(1380px, calc(100vw - 64px));
  max-width:1380px;
  margin:0 auto;
  display:grid;
  grid-template-columns:245px minmax(0,1fr);
  gap:30px;
  align-items:start;
}

.satnik-staff-main{
  min-width:0;
}

.satnik-staff-shell .satnik-staff-home,
.satnik-staff-shell .satnik-staff-wrap,
.satnik-staff-shell .satnik-calendar-wrap{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

.satnik-staff-nav{
  position:sticky;
  top:24px;
  min-height:410px;
  display:flex;
  flex-direction:column;
  padding:16px;
  border:1px solid rgba(0,0,0,.12);
  border-radius:7px;
  background:#fff;
}

.satnik-staff-nav-title{
  padding:7px 10px 14px;
  font-size:12px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.04em;
  color:#777;
}

.satnik-staff-nav-links{
  display:flex;
  flex-direction:column;
  gap:6px;
}

.satnik-staff-nav-item{
  display:flex!important;
  align-items:center!important;
  min-height:52px;
  padding:12px 13px!important;
  border-radius:6px!important;
  color:#222!important;
  -webkit-text-fill-color:#222!important;
  text-decoration:none!important;
  font-size:16px!important;
  line-height:1.2!important;
  font-weight:700!important;
}

.satnik-staff-nav-item:hover{
  background:rgba(0,0,0,.035)!important;
}

.satnik-staff-nav-item.is-active{
  background:#f0f2f7!important;
  font-weight:800!important;
}

.satnik-staff-nav-bottom{
  margin-top:auto;
  padding-top:22px;
}

.satnik-staff-nav-operator{
  padding:12px;
  margin-bottom:10px;
  border-radius:6px;
  background:#edf7ee;
}

.satnik-staff-nav-operator span{
  display:block;
  margin-bottom:3px;
  font-size:11px;
  text-transform:uppercase;
  letter-spacing:.04em;
  color:#667;
}

.satnik-staff-nav-operator strong{
  display:block;
  font-size:18px;
  line-height:1.2;
}

.satnik-staff-nav-operator a{
  display:inline-block;
  margin-top:5px;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  font-size:12px!important;
  text-decoration:underline!important;
}

.satnik-staff-nav-logout{
  margin:0;
}

.satnik-staff-nav-logout button{
  width:100%!important;
  min-height:46px!important;
  padding:8px 12px!important;
  background:#fff!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  border:1px solid rgba(0,0,0,.2)!important;
  border-radius:6px!important;
  font-size:15px!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}

@media (max-width:900px){
  .satnik-staff-shell{
    width:calc(100vw - 28px);
    max-width:none;
    grid-template-columns:1fr;
    gap:14px;
  }

  .satnik-staff-nav{
    position:static;
    min-height:0;
  }

  .satnik-staff-nav-links{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
  }

  .satnik-staff-nav-item{
    justify-content:center!important;
    text-align:center!important;
  }

  .satnik-staff-nav-bottom{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:12px;
    padding-top:12px;
    border-top:1px solid rgba(0,0,0,.08);
  }

  .satnik-staff-nav-operator{
    flex:1 1 auto;
    margin:0;
  }

  .satnik-staff-nav-logout{
    flex:0 0 auto;
  }
}

@media (max-width:560px){
  .satnik-staff-nav-links{
    grid-template-columns:1fr;
  }

  .satnik-staff-nav-bottom{
    align-items:stretch;
    flex-direction:column;
  }
}


/* =======================================================
   v2.0 – supplement registration
   ======================================================= */
.satnik-supplement-wrap{
  max-width:850px;
  margin:0 auto;
}
.satnik-supplement-note{
  margin:18px 0 22px;
  padding:18px 20px;
  border-left:4px solid rgba(0,0,0,.28);
  background:#f6f6f6;
  border-radius:3px;
}
.satnik-supplement-note p{
  margin:8px 0 0;
  white-space:normal;
}
.satnik-supplement-upload{
  padding:14px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.satnik-supplement-upload:last-child{
  border-bottom:0;
}


/* =======================================================
   v2.2 – frontend registration queue
   ======================================================= */
.satnik-front-reg-wrap{
  width:100%!important;
  max-width:none!important;
}
.satnik-front-reg-filters{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  margin:20px 0 18px;
}
.satnik-front-reg-filter{
  display:grid!important;
  grid-template-columns:auto 1fr;
  column-gap:12px;
  row-gap:3px;
  align-items:center;
  padding:14px!important;
  border:1px solid rgba(0,0,0,.12)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:#222!important;
  -webkit-text-fill-color:#222!important;
  text-decoration:none!important;
}
.satnik-front-reg-filter.is-active{
  border-color:#4f6bed!important;
  background:#f3f6ff!important;
}
.satnik-front-reg-count{
  grid-row:1 / 3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  border-radius:50%;
  background:#f0f0f0;
  font-size:22px;
  font-weight:800;
}
.satnik-front-reg-filter.is-active
.satnik-front-reg-count{
  background:#4f6bed;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}
.satnik-front-reg-filter strong{
  font-size:15px;
}
.satnik-front-reg-filter small{
  opacity:.65;
}
.satnik-front-reg-toolbar{
  display:flex;
  align-items:center;
  gap:14px;
  flex-wrap:wrap;
  margin:12px 0;
}
.satnik-front-reg-toolbar span{
  opacity:.65;
}
.satnik-front-reg-toolbar a{
  margin-left:auto;
}
.satnik-front-reg-list{
  border:1px solid rgba(0,0,0,.11);
  border-radius:6px;
  overflow:hidden;
  background:#fff;
}
.satnik-front-reg-row{
  display:grid!important;
  grid-template-columns:180px 1.3fr 1.2fr 1.3fr 90px;
  gap:14px;
  align-items:center;
  padding:14px 16px!important;
  border-bottom:1px solid rgba(0,0,0,.08);
  color:#222!important;
  -webkit-text-fill-color:#222!important;
  text-decoration:none!important;
}
.satnik-front-reg-row:last-child{
  border-bottom:0;
}
.satnik-front-reg-row:hover{
  background:rgba(0,0,0,.025)!important;
}
.satnik-front-reg-status-col,
.satnik-front-reg-person,
.satnik-front-reg-contact{
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
}
.satnik-front-reg-person strong{
  font-size:16px;
}
.satnik-front-reg-person small,
.satnik-front-reg-contact small{
  opacity:.62;
}
.satnik-front-reg-status{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:5px 8px;
  border-radius:4px;
  background:#eee;
  font-size:12px;
  font-weight:800;
}
.satnik-front-reg-status.is-pending{
  background:#fff4ce;
  color:#674e00!important;
  -webkit-text-fill-color:#674e00!important;
}
.satnik-front-reg-status.is-resubmitted{
  background:#dff0ff;
  color:#135e96!important;
  -webkit-text-fill-color:#135e96!important;
}
.satnik-front-reg-status.is-needs_changes{
  background:#eee;
  color:#555!important;
  -webkit-text-fill-color:#555!important;
}
.satnik-front-reg-status.is-approved{
  background:#e7f5e7;
  color:#245b2b!important;
  -webkit-text-fill-color:#245b2b!important;
}
.satnik-front-reg-status.is-rejected{
  background:#fde8e8;
  color:#8a2424!important;
  -webkit-text-fill-color:#8a2424!important;
}
.satnik-front-reg-test{
  font-weight:800;
  color:#996800;
}
.satnik-front-reg-open{
  text-align:right;
  font-weight:800;
}
.satnik-front-reg-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  margin:16px 0;
}
.satnik-front-reg-detail-head h2{
  margin:3px 0;
}
.satnik-front-reg-original{
  margin:2px 0;
  opacity:.65;
}
.satnik-front-reg-summary{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
  margin:18px 0;
}
.satnik-front-reg-summary>div,
.satnik-front-reg-data>div{
  min-width:0;
  padding:15px;
  border:1px solid rgba(0,0,0,.11);
  border-radius:5px;
  background:#fff;
}
.satnik-front-reg-summary span,
.satnik-front-reg-data span{
  display:block;
  margin-bottom:5px;
  font-size:12px;
  opacity:.62;
}
.satnik-front-reg-summary strong,
.satnik-front-reg-data strong{
  display:block;
  word-break:break-word;
}
.satnik-front-reg-safe-note{
  padding:17px;
  margin:20px 0;
  border-left:4px solid #4f6bed;
  background:#f4f6fb;
}
.satnik-front-reg-safe-note p{
  margin-bottom:0;
}
.satnik-front-reg-section{
  margin:22px 0;
  padding:20px;
  border:1px solid rgba(0,0,0,.11);
  border-radius:6px;
  background:#fff;
}
.satnik-front-reg-section h3{
  margin-top:0;
}
.satnik-front-reg-data{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.satnik-front-reg-data .is-wide{
  grid-column:1 / -1;
}
.satnik-front-doc-list{
  border-top:1px solid rgba(0,0,0,.08);
}
.satnik-front-doc{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:13px 0;
  border-bottom:1px solid rgba(0,0,0,.08);
}
.satnik-front-doc>div:first-child{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.satnik-front-doc span,
.satnik-front-doc small{
  opacity:.65;
}
.satnik-front-doc-actions{
  display:flex;
  align-items:center;
  gap:7px;
  flex-wrap:wrap;
}
.satnik-front-doc-actions form{
  margin:0;
}
.satnik-front-doc-actions a,
.satnik-front-doc-actions button{
  min-height:36px!important;
  display:inline-flex!important;
  align-items:center!important;
  padding:6px 10px!important;
  border:1px solid rgba(0,0,0,.18)!important;
  border-radius:5px!important;
  background:#fff!important;
  color:#222!important;
  -webkit-text-fill-color:#222!important;
  text-decoration:none!important;
  font-size:12px!important;
  font-weight:700!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.satnik-front-reg-decision label>span{
  display:block;
  margin-bottom:5px;
  font-weight:800;
}
.satnik-front-reg-decision textarea{
  width:100%;
  min-height:110px;
  padding:10px;
  font-size:15px;
}
.satnik-front-reg-supplement{
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:15px;
  margin:15px 0;
  background:#fff8dd;
  border-left:4px solid #d29a00;
}
.satnik-front-reg-supplement>strong{
  margin-bottom:4px;
}
.satnik-front-reg-supplement label{
  display:flex;
  align-items:center;
  gap:8px;
}
.satnik-front-reg-decision-buttons{
  display:flex;
  gap:9px;
  flex-wrap:wrap;
  margin-top:15px;
}
.satnik-front-reg-decision-buttons button{
  min-height:44px!important;
  padding:8px 15px!important;
  background:#fff!important;
  color:#333!important;
  -webkit-text-fill-color:#333!important;
  border:1px solid rgba(0,0,0,.2)!important;
  text-transform:none!important;
  letter-spacing:normal!important;
}
.satnik-front-reg-decision-buttons
button.is-primary{
  background:#4f6bed!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  border-color:#4f6bed!important;
}
@media (min-width:901px){
  .satnik-staff-home-grid{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media (max-width:1100px){
  .satnik-front-reg-row{
    grid-template-columns:150px 1.2fr 1fr 1.2fr;
  }
  .satnik-front-reg-open{
    display:none;
  }
}
@media (max-width:850px){
  .satnik-front-reg-filters{
    grid-template-columns:1fr 1fr;
  }
  .satnik-front-reg-row{
    grid-template-columns:1fr;
    gap:8px;
  }
  .satnik-front-reg-status-col{
    flex-direction:row;
    align-items:center;
  }
  .satnik-front-reg-summary{
    grid-template-columns:1fr 1fr;
  }
}
@media (max-width:560px){
  .satnik-front-reg-filters{
    grid-template-columns:1fr;
  }
  .satnik-front-reg-summary,
  .satnik-front-reg-data{
    grid-template-columns:1fr;
  }
  .satnik-front-reg-data .is-wide{
    grid-column:auto;
  }
  .satnik-front-doc{
    align-items:flex-start;
    flex-direction:column;
  }
}


/* v2.4 – safe production registration preview */
.satnik-reg-preview-lock{
  margin:16px 0 20px;
  padding:14px 16px;
  border-left:4px solid #d29a00;
  background:#fff8dd;
  color:#3c3c3c;
}
.satnik-reg-preview-lock strong{
  margin-right:4px;
}
.satnik-reg-form button[disabled]{
  cursor:not-allowed!important;
  opacity:.55;
}


/* =======================================================
   v2.5 – visual pass for public/test registration form
   Scoped to .satnik-reg-registration only.
   No workflow or staff/client portal layout changes.
   ======================================================= */

.satnik-reg-registration{
  --satnik-red:#ef1b0b;
  --satnik-red-dark:#c91508;
  --satnik-beige:#f7e8d4;
  --satnik-beige-soft:#fcf7ef;
  --satnik-ink:#171717;
  --satnik-muted:#6f6f6f;
  --satnik-line:rgba(23,23,23,.13);
  --satnik-radius:8px;

  width:min(100%,980px)!important;
  max-width:980px!important;
  margin:0 auto!important;
  padding:42px 28px 70px!important;
  color:var(--satnik-ink);
}

.satnik-reg-registration .satnik-reg-intro{
  max-width:760px;
  margin:0 0 30px;
}

.satnik-reg-registration .satnik-reg-kicker{
  margin:0 0 14px;
  font-size:12px;
  font-weight:800;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--satnik-muted);
}

.satnik-reg-registration .satnik-reg-intro h2{
  margin:0 0 12px!important;
  font-size:clamp(34px,5vw,54px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
  color:var(--satnik-ink)!important;
}

.satnik-reg-registration .satnik-reg-intro p{
  max-width:720px;
  margin:0;
  font-size:18px;
  line-height:1.55;
  color:#2d2d2d;
}

.satnik-reg-registration .satnik-reg-preview-lock{
  margin:22px 0 30px!important;
  padding:15px 18px!important;
  border:0!important;
  border-left:5px solid var(--satnik-red)!important;
  border-radius:0 var(--satnik-radius) var(--satnik-radius) 0!important;
  background:var(--satnik-beige-soft)!important;
  color:#2a2a2a!important;
  box-shadow:none!important;
}

.satnik-reg-registration .satnik-reg-form{
  display:flex;
  flex-direction:column;
  gap:18px;
}

.satnik-reg-registration .satnik-reg-section-card{
  margin:0!important;
  padding:26px 28px 28px!important;
  border:1px solid var(--satnik-line)!important;
  border-radius:var(--satnik-radius)!important;
  background:#fff!important;
  box-shadow:0 1px 0 rgba(0,0,0,.02)!important;
}

.satnik-reg-registration .satnik-reg-section-card legend{
  width:auto!important;
  max-width:100%;
  margin:0 0 18px!important;
  padding:0 12px 0 0!important;
  font-size:22px!important;
  line-height:1.2!important;
  font-weight:800!important;
  color:var(--satnik-ink)!important;
  background:#fff!important;
}

.satnik-reg-registration .satnik-reg-categories{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:12px!important;
}

.satnik-reg-registration .satnik-reg-choice{
  position:relative;
  display:flex!important;
  align-items:center!important;
  min-height:72px!important;
  padding:16px 18px!important;
  border:1px solid var(--satnik-line)!important;
  border-radius:var(--satnik-radius)!important;
  background:#fff!important;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}

.satnik-reg-registration .satnik-reg-choice:hover{
  border-color:rgba(239,27,11,.42)!important;
  background:var(--satnik-beige-soft)!important;
}

.satnik-reg-registration .satnik-reg-choice:has(input:checked){
  border-color:var(--satnik-red)!important;
  background:var(--satnik-beige)!important;
}

.satnik-reg-registration .satnik-reg-choice input[type="radio"]{
  width:20px!important;
  height:20px!important;
  margin:0 13px 0 0!important;
  accent-color:var(--satnik-red);
  flex:0 0 auto;
}

.satnik-reg-registration .satnik-reg-choice span{
  font-size:17px!important;
  font-weight:650!important;
  line-height:1.3!important;
  color:var(--satnik-ink)!important;
}

.satnik-reg-registration .satnik-reg-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px 16px!important;
}

.satnik-reg-registration .satnik-reg-field{
  display:flex!important;
  flex-direction:column!important;
  gap:7px!important;
  margin:0!important;
}

.satnik-reg-registration .satnik-reg-field>span{
  font-size:14px!important;
  font-weight:750!important;
  color:#292929!important;
}

.satnik-reg-registration .satnik-reg-field>span small{
  display:inline;
  font-weight:500;
  color:var(--satnik-muted);
}

.satnik-reg-registration .satnik-reg-field input,
.satnik-reg-registration .satnik-reg-field textarea{
  width:100%!important;
  min-height:50px!important;
  margin:0!important;
  padding:12px 14px!important;
  border:1px solid rgba(23,23,23,.18)!important;
  border-radius:6px!important;
  background:#fff!important;
  color:var(--satnik-ink)!important;
  font-size:16px!important;
  line-height:1.35!important;
  box-shadow:none!important;
  transition:border-color .15s ease, box-shadow .15s ease;
}

.satnik-reg-registration .satnik-reg-field textarea{
  min-height:96px!important;
  resize:vertical;
}

.satnik-reg-registration .satnik-reg-field input:focus,
.satnik-reg-registration .satnik-reg-field textarea:focus{
  outline:none!important;
  border-color:var(--satnik-red)!important;
  box-shadow:0 0 0 3px rgba(239,27,11,.09)!important;
}

.satnik-reg-registration .satnik-reg-field small{
  font-size:12px!important;
  line-height:1.5!important;
  color:var(--satnik-muted)!important;
}

.satnik-reg-registration .satnik-reg-name-note{
  margin-top:16px!important;
  padding:13px 15px!important;
  border-radius:6px!important;
  background:var(--satnik-beige-soft)!important;
  color:#454545!important;
  font-size:13px!important;
  line-height:1.55!important;
}

.satnik-reg-registration .satnik-reg-docs{
  margin:0!important;
}

.satnik-reg-registration .satnik-reg-docs h3{
  margin:0 0 14px!important;
  font-size:18px!important;
  line-height:1.3!important;
  color:var(--satnik-ink)!important;
}

.satnik-reg-registration .satnik-reg-upload-row{
  margin:0 0 12px!important;
  padding:17px 18px!important;
  border:1px solid var(--satnik-line)!important;
  border-radius:6px!important;
  background:#fff!important;
}

.satnik-reg-registration .satnik-reg-upload-row label{
  display:flex!important;
  flex-direction:column!important;
  gap:5px!important;
  margin:0!important;
}

.satnik-reg-registration .satnik-reg-upload-row strong{
  font-size:15px!important;
  color:var(--satnik-ink)!important;
}

.satnik-reg-registration .satnik-reg-upload-row span{
  color:#4d4d4d!important;
  font-size:13px!important;
  line-height:1.5!important;
}

.satnik-reg-registration .satnik-reg-upload-row input[type="file"]{
  margin-top:8px!important;
  width:100%!important;
  padding:10px!important;
  border:1px dashed rgba(23,23,23,.23)!important;
  border-radius:5px!important;
  background:var(--satnik-beige-soft)!important;
}

.satnik-reg-registration .satnik-reg-file-help{
  margin-top:3px!important;
  color:var(--satnik-muted)!important;
  font-size:12px!important;
}

.satnik-reg-registration .satnik-reg-storage-note{
  margin-top:18px!important;
  padding:15px 16px!important;
  border:0!important;
  border-radius:6px!important;
  background:var(--satnik-beige-soft)!important;
  font-size:13px!important;
  line-height:1.55!important;
  color:#404040!important;
}

.satnik-reg-registration .satnik-reg-consent{
  display:flex!important;
  align-items:flex-start!important;
  gap:11px!important;
  margin:0!important;
  padding:16px!important;
  border-radius:6px!important;
  background:var(--satnik-beige-soft)!important;
  color:#383838!important;
}

.satnik-reg-registration .satnik-reg-consent input{
  margin-top:3px!important;
}

.satnik-reg-registration .satnik-reg-section-final{
  background:var(--satnik-beige)!important;
  border-color:transparent!important;
}

.satnik-reg-registration .satnik-reg-section-final legend{
  background:var(--satnik-beige)!important;
}

.satnik-reg-registration .satnik-reg-form>button{
  align-self:flex-start!important;
  min-height:52px!important;
  margin-top:4px!important;
  padding:13px 25px!important;
  border:0!important;
  border-radius:999px!important;
  background:var(--satnik-red)!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  font-size:15px!important;
  font-weight:800!important;
  line-height:1!important;
  letter-spacing:0!important;
  text-transform:none!important;
  box-shadow:none!important;
  transition:background .15s ease, transform .15s ease;
}

.satnik-reg-registration .satnik-reg-form>button:not([disabled]):hover{
  background:var(--satnik-red-dark)!important;
  transform:translateY(-1px);
}

.satnik-reg-registration .satnik-reg-form>button[disabled]{
  background:#bdbdbd!important;
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
  opacity:1!important;
  cursor:not-allowed!important;
}

.satnik-reg-registration .satnik-reg-success{
  border:0!important;
  border-left:5px solid #2e7d32!important;
  border-radius:0 6px 6px 0!important;
  background:#edf7ee!important;
}

.satnik-reg-registration .satnik-reg-errors{
  border:0!important;
  border-left:5px solid var(--satnik-red)!important;
  border-radius:0 6px 6px 0!important;
  background:#fff0ee!important;
}

/* Give the form more room on the actual Zephyr page. */
body .l-main .satnik-reg-registration{
  box-sizing:border-box;
}

/* Tablet */
@media (max-width:800px){
  .satnik-reg-registration{
    padding:30px 20px 54px!important;
  }

  .satnik-reg-registration .satnik-reg-intro h2{
    font-size:38px!important;
  }

  .satnik-reg-registration .satnik-reg-categories,
  .satnik-reg-registration .satnik-reg-grid{
    grid-template-columns:1fr!important;
  }

  .satnik-reg-registration .satnik-reg-section-card{
    padding:22px 20px 24px!important;
  }
}

/* Mobile */
@media (max-width:520px){
  .satnik-reg-registration{
    padding:24px 14px 42px!important;
  }

  .satnik-reg-registration .satnik-reg-intro{
    margin-bottom:22px;
  }

  .satnik-reg-registration .satnik-reg-intro h2{
    font-size:33px!important;
  }

  .satnik-reg-registration .satnik-reg-intro p{
    font-size:16px!important;
  }

  .satnik-reg-registration .satnik-reg-section-card{
    padding:20px 15px 22px!important;
  }

  .satnik-reg-registration .satnik-reg-section-card legend{
    font-size:20px!important;
  }

  .satnik-reg-registration .satnik-reg-choice{
    min-height:64px!important;
    padding:14px!important;
  }

  .satnik-reg-registration .satnik-reg-form>button{
    width:100%!important;
    justify-content:center!important;
  }
}


/* =======================================================
   v2.6 – second visual pass
   Looser composition inspired by the existing Šatník site.
   Registration only; workflow untouched.
   ======================================================= */

.satnik-reg-registration{
  width:min(100%,1080px)!important;
  max-width:1080px!important;
  padding:58px 34px 88px!important;
}

/* Hero */
.satnik-reg-registration .satnik-reg-hero{
  max-width:860px!important;
  margin:0 0 42px!important;
  padding:0!important;
}

.satnik-reg-registration .satnik-reg-hero h2{
  max-width:820px;
  font-size:clamp(42px,5.6vw,68px)!important;
  line-height:.98!important;
  letter-spacing:-.045em!important;
  margin-bottom:18px!important;
}

.satnik-reg-registration .satnik-reg-hero p{
  max-width:760px!important;
  font-size:19px!important;
  line-height:1.62!important;
  color:#333!important;
}

/* Preview info becomes a quiet site-like strip, not an admin warning box */
.satnik-reg-registration .satnik-reg-preview-lock{
  max-width:860px!important;
  margin:0 0 50px!important;
  padding:16px 20px!important;
  border-left:4px solid var(--satnik-red)!important;
  border-radius:0!important;
  background:var(--satnik-beige)!important;
  font-size:14px!important;
  line-height:1.5!important;
}

/* Overall form rhythm */
.satnik-reg-registration .satnik-reg-form{
  gap:0!important;
}

/* Sections: remove card-box feel */
.satnik-reg-registration .satnik-reg-section-card{
  position:relative;
  margin:0!important;
  padding:46px 0 52px!important;
  border:0!important;
  border-top:1px solid var(--satnik-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}

.satnik-reg-registration .satnik-reg-section-card:first-of-type{
  border-top:0!important;
  padding-top:0!important;
}

.satnik-reg-registration .satnik-reg-section-card legend{
  display:block!important;
  width:100%!important;
  margin:0 0 28px!important;
  padding:0!important;
  background:transparent!important;
  font-size:26px!important;
  line-height:1.15!important;
  font-weight:800!important;
  letter-spacing:-.02em!important;
}

/* Category cards become larger and more editorial */
.satnik-reg-registration .satnik-reg-category-grid{
  gap:14px!important;
}

.satnik-reg-registration .satnik-reg-choice{
  min-height:86px!important;
  padding:20px 22px!important;
  border:1px solid rgba(23,23,23,.15)!important;
  border-radius:4px!important;
  background:#fff!important;
}

.satnik-reg-registration .satnik-reg-choice:hover{
  border-color:var(--satnik-red)!important;
  background:#fffaf6!important;
  transform:none!important;
}

.satnik-reg-registration .satnik-reg-choice:has(input:checked){
  border-color:var(--satnik-red)!important;
  background:var(--satnik-beige)!important;
  box-shadow:inset 4px 0 0 var(--satnik-red)!important;
}

.satnik-reg-registration .satnik-reg-choice span{
  font-size:18px!important;
}

/* Data area: open, cleaner fields */
.satnik-reg-registration .satnik-reg-grid{
  gap:24px 20px!important;
}

.satnik-reg-registration .satnik-reg-field>span{
  font-size:13px!important;
  letter-spacing:.01em!important;
}

.satnik-reg-registration .satnik-reg-field input,
.satnik-reg-registration .satnik-reg-field textarea{
  min-height:54px!important;
  padding:13px 14px!important;
  border:0!important;
  border-bottom:1px solid rgba(23,23,23,.27)!important;
  border-radius:0!important;
  background:#fff!important;
}

.satnik-reg-registration .satnik-reg-field input:focus,
.satnik-reg-registration .satnik-reg-field textarea:focus{
  border-bottom-color:var(--satnik-red)!important;
  box-shadow:0 2px 0 var(--satnik-red)!important;
}

/* Helpful notes use broad beige strips instead of small cards */
.satnik-reg-registration .satnik-reg-name-note,
.satnik-reg-registration .satnik-reg-storage-note{
  margin-top:24px!important;
  padding:18px 20px!important;
  border-radius:0!important;
  background:var(--satnik-beige-soft)!important;
}

/* Document block */
.satnik-reg-registration .satnik-reg-docs h3{
  margin-bottom:18px!important;
  font-size:20px!important;
}

.satnik-reg-registration .satnik-reg-upload-row{
  margin:0!important;
  padding:20px 0!important;
  border:0!important;
  border-top:1px solid var(--satnik-line)!important;
  border-radius:0!important;
  background:transparent!important;
}

.satnik-reg-registration .satnik-reg-upload-row:last-child{
  border-bottom:1px solid var(--satnik-line)!important;
}

.satnik-reg-registration .satnik-reg-upload-row label{
  display:grid!important;
  grid-template-columns:minmax(220px,.8fr) 1.4fr!important;
  column-gap:28px!important;
  row-gap:8px!important;
  align-items:start!important;
}

.satnik-reg-registration .satnik-reg-upload-row strong{
  grid-column:1;
  grid-row:1;
  font-size:15px!important;
}

.satnik-reg-registration .satnik-reg-upload-row span{
  grid-column:1;
  grid-row:2;
  font-size:13px!important;
  color:#575757!important;
}

.satnik-reg-registration .satnik-reg-upload-row input[type="file"]{
  grid-column:2;
  grid-row:1 / span 2;
  align-self:center;
  margin:0!important;
  min-height:52px;
  padding:11px 12px!important;
  border:1px dashed rgba(23,23,23,.24)!important;
  border-radius:3px!important;
  background:#fff!important;
}

.satnik-reg-registration .satnik-reg-file-help{
  grid-column:2;
  margin-top:2px!important;
}

/* Final section = full beige statement area */
.satnik-reg-registration .satnik-reg-section-final{
  margin:12px 0 0!important;
  padding:34px 34px 36px!important;
  border:0!important;
  background:var(--satnik-beige)!important;
}

.satnik-reg-registration .satnik-reg-section-final legend{
  background:transparent!important;
  margin-bottom:18px!important;
}

.satnik-reg-registration .satnik-reg-consent{
  padding:0!important;
  background:transparent!important;
  border-radius:0!important;
  font-size:14px!important;
  line-height:1.55!important;
}

/* Main action gets more space and matches rounded red CTA language of site */
.satnik-reg-registration .satnik-reg-form>button{
  min-height:56px!important;
  margin-top:28px!important;
  padding:15px 30px!important;
  font-size:16px!important;
}

.satnik-reg-registration .satnik-reg-form>button[disabled]{
  background:#a9a9a9!important;
}

/* Break the white page with a very subtle beige section rhythm */
.satnik-reg-registration .satnik-reg-section-docs{
  background:linear-gradient(
    90deg,
    rgba(252,247,239,.72) 0,
    rgba(252,247,239,.72) 100%
  )!important;
  margin-left:-34px!important;
  margin-right:-34px!important;
  padding-left:34px!important;
  padding-right:34px!important;
}

/* Keep browser autofill/Zephyr from adding odd rounded boxes */
.satnik-reg-registration input,
.satnik-reg-registration textarea,
.satnik-reg-registration button{
  font-family:inherit!important;
}

/* Tablet */
@media (max-width:800px){
  .satnik-reg-registration{
    padding:42px 22px 64px!important;
  }

  .satnik-reg-registration .satnik-reg-hero h2{
    font-size:44px!important;
  }

  .satnik-reg-registration .satnik-reg-section-card{
    padding:36px 0 42px!important;
  }

  .satnik-reg-registration .satnik-reg-section-docs{
    margin-left:-22px!important;
    margin-right:-22px!important;
    padding-left:22px!important;
    padding-right:22px!important;
  }

  .satnik-reg-registration .satnik-reg-upload-row label{
    grid-template-columns:1fr!important;
  }

  .satnik-reg-registration .satnik-reg-upload-row strong,
  .satnik-reg-registration .satnik-reg-upload-row span,
  .satnik-reg-registration .satnik-reg-upload-row input[type="file"],
  .satnik-reg-registration .satnik-reg-file-help{
    grid-column:1!important;
    grid-row:auto!important;
  }
}

/* Mobile */
@media (max-width:520px){
  .satnik-reg-registration{
    padding:30px 14px 48px!important;
  }

  .satnik-reg-registration .satnik-reg-hero{
    margin-bottom:30px!important;
  }

  .satnik-reg-registration .satnik-reg-hero h2{
    font-size:36px!important;
  }

  .satnik-reg-registration .satnik-reg-hero p{
    font-size:16px!important;
  }

  .satnik-reg-registration .satnik-reg-preview-lock{
    margin-bottom:34px!important;
    padding:14px 15px!important;
  }

  .satnik-reg-registration .satnik-reg-section-card{
    padding:30px 0 34px!important;
  }

  .satnik-reg-registration .satnik-reg-section-card legend{
    font-size:22px!important;
    margin-bottom:20px!important;
  }

  .satnik-reg-registration .satnik-reg-category-grid{
    grid-template-columns:1fr!important;
  }

  .satnik-reg-registration .satnik-reg-choice{
    min-height:68px!important;
    padding:15px 16px!important;
  }

  .satnik-reg-registration .satnik-reg-section-docs{
    margin-left:-14px!important;
    margin-right:-14px!important;
    padding-left:14px!important;
    padding-right:14px!important;
  }

  .satnik-reg-registration .satnik-reg-section-final{
    padding:26px 20px 28px!important;
  }
}


/* =======================================================
   v2.6.1 – documents empty state
   ======================================================= */
.satnik-reg-registration .satnik-reg-docs-empty{
  display:flex;
  flex-direction:column;
  gap:5px;
  max-width:760px;
  padding:20px 22px;
  background:rgba(247,232,212,.62);
  border-left:4px solid var(--satnik-red);
  color:#343434;
}

.satnik-reg-registration .satnik-reg-docs-empty strong{
  font-size:16px;
  line-height:1.4;
  color:var(--satnik-ink);
}

.satnik-reg-registration .satnik-reg-docs-empty span{
  font-size:14px;
  line-height:1.55;
  color:#555;
}

.satnik-reg-registration .satnik-reg-docs-empty[hidden]{
  display:none!important;
}

/* No oversized empty beige block before a category is selected. */
.satnik-reg-registration .satnik-reg-section-docs:has(.satnik-reg-docs-empty:not([hidden])){
  min-height:0!important;
  padding-bottom:42px!important;
}

@media (max-width:520px){
  .satnik-reg-registration .satnik-reg-docs-empty{
    padding:16px 16px;
  }
}


/* =======================================================
   v2.6.2 – final small registration polish
   ======================================================= */

/* Hide technical/private-storage note until a category is selected. */
.satnik-reg-registration .satnik-reg-storage-note[hidden]{
  display:none!important;
}

/* Keep empty documents section compact. */
.satnik-reg-registration .satnik-reg-section-docs:has(.satnik-reg-docs-empty:not([hidden])){
  padding-bottom:34px!important;
}

/* Final section heading should sit inside the beige area, not on its edge. */
.satnik-reg-registration .satnik-reg-section-final{
  padding-top:42px!important;
}

.satnik-reg-registration .satnik-reg-section-final legend{
  position:static!important;
  transform:none!important;
  margin:0 0 22px!important;
  padding:0!important;
  line-height:1.15!important;
}

@media (max-width:520px){
  .satnik-reg-registration .satnik-reg-section-final{
    padding-top:32px!important;
  }

  .satnik-reg-registration .satnik-reg-section-final legend{
    margin-bottom:18px!important;
  }
}


/* =======================================================
   v2.6.3 – section heading alignment fix
   Keep step headings fully inside their sections.
   ======================================================= */

.satnik-reg-registration .satnik-reg-section-docs,
.satnik-reg-registration .satnik-reg-section-final{
  padding-top:44px!important;
}

.satnik-reg-registration .satnik-reg-section-docs legend,
.satnik-reg-registration .satnik-reg-section-final legend{
  position:relative!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  bottom:auto!important;
  float:none!important;
  display:block!important;
  width:100%!important;
  max-width:none!important;
  margin:0 0 26px!important;
  padding:0!important;
  transform:none!important;
  background:transparent!important;
  line-height:1.15!important;
}

.satnik-reg-registration .satnik-reg-section-docs legend{
  color:var(--satnik-ink)!important;
}

.satnik-reg-registration .satnik-reg-section-final legend{
  color:var(--satnik-ink)!important;
}

@media (max-width:520px){
  .satnik-reg-registration .satnik-reg-section-docs,
  .satnik-reg-registration .satnik-reg-section-final{
    padding-top:34px!important;
  }

  .satnik-reg-registration .satnik-reg-section-docs legend,
  .satnik-reg-registration .satnik-reg-section-final legend{
    margin-bottom:20px!important;
  }
}


/* =======================================================
   v2.6.4 – Mirek palette & typography
   COLORS + FONTS ONLY. No layout changes.
   Existing site:
   body: Inter
   headings: LGB
   dominant palette sampled from site:
   beige #F7E8D5 / turquoise #0393B8
   ======================================================= */

.satnik-reg-registration{
  --satnik-red:#0393B8;
  --satnik-red-dark:#007FA5;
  --satnik-beige:#F7E8D5;
  --satnik-beige-soft:#FBF0E3;
  --satnik-ink:#0393B8;
  --satnik-muted:#527A84;
  --satnik-line:rgba(3,147,184,.22);

  background:#F7E8D5!important;
  color:#0393B8!important;
  font-family:Inter,sans-serif!important;
}


/* Site typography */
.satnik-reg-registration .satnik-reg-hero h2,
.satnik-reg-registration h1,
.satnik-reg-registration h2,
.satnik-reg-registration h3,
.satnik-reg-registration h4,
.satnik-reg-registration legend,
.satnik-reg-registration .satnik-reg-section-card legend{
  font-family:LGB,var(--h1-font-family),sans-serif!important;
  color:#0393B8!important;
  font-weight:400!important;
}

.satnik-reg-registration,
.satnik-reg-registration p,
.satnik-reg-registration label,
.satnik-reg-registration span,
.satnik-reg-registration small,
.satnik-reg-registration input,
.satnik-reg-registration textarea,
.satnik-reg-registration select,
.satnik-reg-registration button{
  font-family:Inter,var(--font-family),sans-serif!important;
}

/* Intro */
.satnik-reg-registration .satnik-reg-kicker,
.satnik-reg-registration .satnik-reg-hero p,
.satnik-reg-registration .satnik-reg-intro p{
  color:#0393B8!important;
}

/* Section surfaces: no stark white */
.satnik-reg-registration .satnik-reg-section-card{
  background:#F7E8D5!important;
  border-color:rgba(3,147,184,.20)!important;
}

.satnik-reg-registration .satnik-reg-section-docs{
  background:#FBF0E3!important;
}

.satnik-reg-registration .satnik-reg-section-final{
  background:#F4DFC4!important;
}

.satnik-reg-registration .satnik-reg-section-final legend{
  background:transparent!important;
}

/* Category choices */
.satnik-reg-registration .satnik-reg-choice{
  background:#FBF0E3!important;
  border-color:rgba(3,147,184,.25)!important;
}

.satnik-reg-registration .satnik-reg-choice:hover{
  background:#F4DFC4!important;
  border-color:#0393B8!important;
}

.satnik-reg-registration .satnik-reg-choice:has(input:checked){
  background:#F4DFC4!important;
  border-color:#0393B8!important;
  box-shadow:inset 4px 0 0 #0393B8!important;
}

.satnik-reg-registration .satnik-reg-choice span,
.satnik-reg-registration .satnik-reg-field>span,
.satnik-reg-registration .satnik-reg-docs h3,
.satnik-reg-registration .satnik-reg-upload-row strong{
  color:#0393B8!important;
}

/* Form fields */
.satnik-reg-registration .satnik-reg-field input,
.satnik-reg-registration .satnik-reg-field textarea{
  background:#FBF0E3!important;
  color:#14586A!important;
  border-bottom-color:rgba(3,147,184,.32)!important;
}

.satnik-reg-registration .satnik-reg-field input::placeholder,
.satnik-reg-registration .satnik-reg-field textarea::placeholder{
  color:#7A9BA3!important;
  opacity:1;
}

.satnik-reg-registration .satnik-reg-field input:focus,
.satnik-reg-registration .satnik-reg-field textarea:focus{
  border-bottom-color:#0393B8!important;
  box-shadow:0 2px 0 #0393B8!important;
}

/* Helper / privacy / empty states */
.satnik-reg-registration .satnik-reg-preview-lock,
.satnik-reg-registration .satnik-reg-name-note,
.satnik-reg-registration .satnik-reg-storage-note,
.satnik-reg-registration .satnik-reg-docs-empty,
.satnik-reg-registration .satnik-reg-consent{
  background:#F4DFC4!important;
  color:#14586A!important;
}

.satnik-reg-registration .satnik-reg-preview-lock,
.satnik-reg-registration .satnik-reg-docs-empty{
  border-left-color:#0393B8!important;
}

.satnik-reg-registration .satnik-reg-docs-empty strong,
.satnik-reg-registration .satnik-reg-docs-empty span,
.satnik-reg-registration .satnik-reg-name-note,
.satnik-reg-registration .satnik-reg-storage-note,
.satnik-reg-registration .satnik-reg-consent span{
  color:#14586A!important;
}

/* Upload controls */
.satnik-reg-registration .satnik-reg-upload-row{
  border-color:rgba(3,147,184,.22)!important;
}

.satnik-reg-registration .satnik-reg-upload-row span,
.satnik-reg-registration .satnik-reg-file-help{
  color:#527A84!important;
}

.satnik-reg-registration .satnik-reg-upload-row input[type="file"]{
  background:#F7E8D5!important;
  color:#14586A!important;
  border-color:rgba(3,147,184,.35)!important;
}

/* Main action */
.satnik-reg-registration .satnik-reg-form>button{
  background:#0393B8!important;
  color:#F7E8D5!important;
  -webkit-text-fill-color:#F7E8D5!important;
}

.satnik-reg-registration .satnik-reg-form>button:not([disabled]):hover{
  background:#007FA5!important;
}

.satnik-reg-registration .satnik-reg-form>button[disabled]{
  background:#8ABDC9!important;
  color:#F7E8D5!important;
  -webkit-text-fill-color:#F7E8D5!important;
}

/* Keep status/error semantics readable; only typography follows site. */
.satnik-reg-registration .satnik-reg-success,
.satnik-reg-registration .satnik-reg-errors{
  font-family:Inter,var(--font-family),sans-serif!important;
}



/* =======================================================
   v2.6.5 – stable section headings
   Native <legend> is kept for accessibility but visually hidden.
   Visible headings are normal blocks inside each fieldset so LGB
   can never sit across the fieldset border.
   ======================================================= */

.satnik-reg-registration .satnik-reg-sr-only{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  padding:0!important;
  margin:-1px!important;
  overflow:hidden!important;
  clip:rect(0,0,0,0)!important;
  white-space:nowrap!important;
  border:0!important;
}

.satnik-reg-registration .satnik-reg-section-title{
  display:block!important;
  position:static!important;
  width:100%!important;
  margin:0 0 26px!important;
  padding:0!important;
  transform:none!important;
  background:transparent!important;
  font-family:LGB,var(--h1-font-family),sans-serif!important;
  color:#0393B8!important;
  font-size:26px!important;
  line-height:1.15!important;
  font-weight:400!important;
  letter-spacing:-.02em!important;
}

/* Remove all visual influence of native legends. */
.satnik-reg-registration .satnik-reg-section-card > legend.satnik-reg-sr-only{
  float:none!important;
  max-width:1px!important;
}

/* Keep existing spacing from v2.6.x, now with normal headings. */
.satnik-reg-registration .satnik-reg-section-docs,
.satnik-reg-registration .satnik-reg-section-final{
  padding-top:44px!important;
}

.satnik-reg-registration .satnik-reg-section-card:first-of-type{
  padding-top:0!important;
}

@media (max-width:520px){
  .satnik-reg-registration .satnik-reg-section-title{
    font-size:22px!important;
    margin-bottom:20px!important;
  }

  .satnik-reg-registration .satnik-reg-section-docs,
  .satnik-reg-registration .satnik-reg-section-final{
    padding-top:34px!important;
  }
}






/* =======================================================
   v2.6.8 – use the actual Zephyr header beige
   Source of truth: --color-header-middle-bg (#f8ebdb currently)
   Scoped to registration main area only. Footer untouched.
   ======================================================= */

body:has(.satnik-reg-registration) .l-main{
  background-color:var(--color-header-middle-bg,#f8ebdb)!important;
}

.satnik-reg-registration{
  background:var(--color-header-middle-bg,#f8ebdb)!important;
}

/* Normal sections blend seamlessly into the page. */
.satnik-reg-registration .satnik-reg-section-card{
  background:var(--color-header-middle-bg,#f8ebdb)!important;
}

/* Intentional inner emphasis remains subtly distinct. */
.satnik-reg-registration .satnik-reg-section-docs{
  background:#fbf0e3!important;
}

.satnik-reg-registration .satnik-reg-section-final{
  background:#f4dfc4!important;
}


/* =======================================================
   v2.7.0 – Mirek palette & typography across portals
   TWO brand colors only for normal UI:
   beige  = Zephyr --color-header-middle-bg
   teal   = Zephyr --color-content-primary

   No grid, spacing, dimensions or workflow changes.
   ======================================================= */

:root{
  --satnik-brand-beige:var(--color-header-middle-bg,#f8ebdb);
  --satnik-brand-teal:var(--color-content-primary,#0393b8);
}

/* -------------------------------------------------------
   PAGE BASE
   Only pages that actually contain our portal/staff UI.
   Footer and generic Zephyr sections remain untouched.
   ------------------------------------------------------- */
body:has(.satnik-portal-wrap) .l-main,
body:has(.satnik-client-shell) .l-main,
body:has(.satnik-staff-shell) .l-main,
body:has(.satnik-staff-wrap) .l-main,
body:has(.satnik-front-reg-wrap) .l-main{
  background:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   TYPOGRAPHY
   ------------------------------------------------------- */
.satnik-portal-wrap,
.satnik-client-shell,
.satnik-calendar-wrap,
.satnik-staff-shell,
.satnik-staff-wrap,
.satnik-front-reg-wrap{
  font-family:Inter,var(--font-family),sans-serif!important;
  color:var(--satnik-brand-teal)!important;
}

.satnik-portal-wrap h1,
.satnik-portal-wrap h2,
.satnik-portal-wrap h3,
.satnik-client-shell h1,
.satnik-client-shell h2,
.satnik-client-shell h3,
.satnik-calendar-wrap h1,
.satnik-calendar-wrap h2,
.satnik-calendar-wrap h3,
.satnik-staff-shell h1,
.satnik-staff-shell h2,
.satnik-staff-shell h3,
.satnik-staff-wrap h1,
.satnik-staff-wrap h2,
.satnik-staff-wrap h3,
.satnik-front-reg-wrap h1,
.satnik-front-reg-wrap h2,
.satnik-front-reg-wrap h3{
  font-family:LGB,var(--h1-font-family),sans-serif!important;
  color:var(--satnik-brand-teal)!important;
  font-weight:400!important;
}

/* -------------------------------------------------------
   CLIENT PORTAL
   ------------------------------------------------------- */
.satnik-portal-card,
.satnik-portal-ledger-card,
.satnik-portal-calendar-cta{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-portal-data>div,
.satnik-portal-doc,
.satnik-portal-ledger-row{
  border-color:color-mix(
    in srgb,
    var(--satnik-brand-teal) 22%,
    transparent
  )!important;
}

.satnik-portal-wrap a,
.satnik-portal-link,
.satnik-portal-back a,
.satnik-portal-forgot-link a{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-portal-wrap input[type="text"],
.satnik-portal-wrap input[type="email"],
.satnik-portal-wrap input[type="password"],
.satnik-portal-wrap input[type="tel"],
.satnik-portal-wrap textarea,
.satnik-portal-wrap select{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* -------------------------------------------------------
   CLIENT SIDE NAV
   Beige panel + teal text, active item inverted.
   ------------------------------------------------------- */
.satnik-client-nav{
  background:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-client-nav-title,
.satnik-client-nav-item{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-client-nav-item:hover,
.satnik-client-nav-item.is-active{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   STAFF SIDE NAV
   Same exact two-color language.
   ------------------------------------------------------- */
.satnik-staff-nav{
  background:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-staff-nav-title,
.satnik-staff-nav-item,
.satnik-staff-nav-operator,
.satnik-staff-nav-logout,
.satnik-staff-change-operator{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-staff-nav-item:hover,
.satnik-staff-nav-item.is-active{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-staff-nav-operator{
  background:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* -------------------------------------------------------
   STAFF DASHBOARD / RECEPTION
   ------------------------------------------------------- */
.satnik-staff-home-card,
.satnik-staff-operator-box,
.satnik-staff-summary-card,
.satnik-staff-visit-actions,
.satnik-staff-history-grid>section{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-staff-home-card,
.satnik-staff-home-card strong,
.satnik-staff-home-card span,
.satnik-staff-result,
.satnik-staff-back,
.satnik-staff-admin-link{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-staff-result-list,
.satnik-staff-result,
.satnik-staff-history-row{
  border-color:color-mix(
    in srgb,
    var(--satnik-brand-teal) 22%,
    transparent
  )!important;
}

.satnik-staff-search-row input,
.satnik-staff-operator-form input,
.satnik-staff-visit-form input[type="text"]{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Primary staff actions: inverted brand palette */
.satnik-staff-search-row button,
.satnik-staff-operator-form button,
.satnik-staff-visit-primary{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Secondary staff actions */
.satnik-staff-visit-secondary,
.satnik-staff-frontend-logout button,
.satnik-staff-admin-link{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Operator indicator: no third normal UI color */
.satnik-staff-active-operator{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
}

.satnik-staff-active-operator strong,
.satnik-staff-active-operator span,
.satnik-staff-active-operator button,
.satnik-staff-active-operator a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   FRONTEND REGISTRATION QUEUE
   ------------------------------------------------------- */
.satnik-front-reg-filter,
.satnik-front-reg-section,
.satnik-front-reg-summary>div,
.satnik-front-reg-data>div,
.satnik-front-doc{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-filter,
.satnik-front-reg-row,
.satnik-front-reg-open,
.satnik-front-doc-actions a,
.satnik-front-doc-actions button{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-filter.is-active,
.satnik-front-reg-open,
.satnik-front-doc-actions button{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-row,
.satnik-front-doc,
.satnik-front-reg-list{
  border-color:color-mix(
    in srgb,
    var(--satnik-brand-teal) 22%,
    transparent
  )!important;
}

.satnik-front-reg-decision textarea{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Do not destroy workflow meaning of status text, but keep badge
   surfaces inside the two-color visual system. */
.satnik-front-reg-status{
  border-color:var(--satnik-brand-teal)!important;
}

/* -------------------------------------------------------
   CALENDAR
   Structural surfaces use the same two colors.
   Availability state colors stay intact because they carry meaning.
   ------------------------------------------------------- */
.satnik-calendar-wrap,
.satnik-simple-week,
.satnik-timeline-week,
.satnik-timeline-day{
  color:var(--satnik-brand-teal)!important;
}

.satnik-calendar-topbar,
.satnik-calendar-day,
.satnik-timeline-day-head,
.satnik-calendar-selection-bar{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-calendar-nav a,
.satnik-client-day-tab,
.satnik-simple-hour{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-client-day-tab.is-active{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   BUTTON LANGUAGE GENERALLY INSIDE OUR PORTALS
   ------------------------------------------------------- */
.satnik-portal-wrap button[type="submit"],
.satnik-client-shell button[type="submit"],
.satnik-staff-shell button[type="submit"],
.satnik-front-reg-wrap button[type="submit"]{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Preserve readability of browser autofill / form placeholders. */
.satnik-portal-wrap input::placeholder,
.satnik-staff-shell input::placeholder,
.satnik-staff-wrap input::placeholder,
.satnik-front-reg-wrap textarea::placeholder{
  color:var(--satnik-brand-teal)!important;
  opacity:.55;
}



/* =======================================================
   v2.7.1 – safe production preview label
   Actual portal UI below uses the existing v2.7 palette.
   ======================================================= */

.satnik-production-preview{
  font-family:Inter,var(--font-family),sans-serif;
}

.satnik-production-preview-note{
  display:flex;
  align-items:center;
  gap:14px;
  max-width:1180px;
  margin:0 auto 26px;
  padding:12px 16px;
  background:var(--color-content-primary,#0393b8);
  color:var(--color-header-middle-bg,#f8ebdb);
}

.satnik-production-preview-note strong,
.satnik-production-preview-note span{
  color:var(--color-header-middle-bg,#f8ebdb)!important;
}

.satnik-production-preview-note strong{
  font-family:LGB,var(--h1-font-family),sans-serif;
  font-weight:400;
}

@media (max-width:700px){
  .satnik-production-preview-note{
    flex-direction:column;
    align-items:flex-start;
    gap:3px;
  }
}


/* =======================================================
   v2.7.2 – staff palette + calendar/layout repair
   beige #f8ebdb / red #eb2f06 / teal #0a9dbf
   ======================================================= */
:root{
  --satnik-brand-beige:var(--color-header-middle-bg,#f8ebdb);
  --satnik-brand-red:var(--color-content-primary,#eb2f06);
  --satnik-brand-teal:#0a9dbf;
}

/* Preview strip stays red = technical TEST marker */
.satnik-production-preview-note{
  background:var(--satnik-brand-red)!important;
  color:var(--satnik-brand-beige)!important;
}
.satnik-production-preview-note strong,
.satnik-production-preview-note span{
  color:var(--satnik-brand-beige)!important;
}

/* PŘÍJEM KLIENTEK + OBSLUHA: teal panel, beige typography */
body:has(.satnik-staff-wrap) .l-main,
body:has(.satnik-staff-shell) .l-main{
  background:var(--satnik-brand-teal)!important;
}
.satnik-staff-wrap,
.satnik-staff-shell{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
}
.satnik-staff-wrap h1,.satnik-staff-wrap h2,.satnik-staff-wrap h3,
.satnik-staff-shell h1,.satnik-staff-shell h2,.satnik-staff-shell h3,
.satnik-staff-wrap p,.satnik-staff-shell p,
.satnik-staff-wrap label,.satnik-staff-shell label,
.satnik-staff-wrap strong,.satnik-staff-shell strong,
.satnik-staff-wrap span,.satnik-staff-shell span,
.satnik-staff-wrap small,.satnik-staff-shell small,
.satnik-staff-wrap a,.satnik-staff-shell a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}
.satnik-staff-home-card,
.satnik-staff-operator-box,
.satnik-staff-summary-card,
.satnik-staff-visit-actions,
.satnik-staff-history-grid>section,
.satnik-staff-result-list,
.satnik-staff-result,
.satnik-staff-active-operator{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-beige)!important;
}
.satnik-staff-search-row input,
.satnik-staff-operator-form input,
.satnik-staff-visit-form input[type="text"],
.satnik-staff-wrap input,.satnik-staff-shell input,
.satnik-staff-wrap textarea,.satnik-staff-shell textarea,
.satnik-staff-wrap select,.satnik-staff-shell select{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}
.satnik-staff-search-row input::placeholder,
.satnik-staff-operator-form input::placeholder,
.satnik-staff-wrap input::placeholder,
.satnik-staff-shell input::placeholder{
  color:var(--satnik-brand-teal)!important;
  opacity:.55!important;
}
.satnik-staff-search-row button,
.satnik-staff-operator-form button,
.satnik-staff-visit-primary,
.satnik-staff-visit-secondary,
.satnik-staff-frontend-logout button,
.satnik-staff-admin-link{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

/* Staff nav follows teal/beige operational language */
.satnik-staff-nav{
  background:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}
.satnik-staff-nav-title,.satnik-staff-nav-item,
.satnik-staff-nav-operator,.satnik-staff-nav-logout,
.satnik-staff-change-operator{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}
.satnik-staff-nav-item:hover,.satnik-staff-nav-item.is-active{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* KALENDÁŘ: full width / no clipping */
.satnik-calendar-wrap,
.satnik-simple-week,
.satnik-timeline-week,
.satnik-timeline-day,
.satnik-calendar-day{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  box-sizing:border-box!important;
}
.satnik-calendar-wrap{overflow:visible!important}
.satnik-timeline-week{
  overflow-x:auto!important;
  overflow-y:visible!important;
  -webkit-overflow-scrolling:touch;
}
body:has(.satnik-calendar-wrap) .l-main{
  background:var(--satnik-brand-beige)!important;
}
.satnik-calendar-wrap{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
}
.satnik-calendar-wrap h1,.satnik-calendar-wrap h2,
.satnik-calendar-wrap h3,.satnik-calendar-wrap strong{
  color:var(--satnik-brand-teal)!important;
}
.satnik-calendar-topbar,.satnik-calendar-day,
.satnik-timeline-day,.satnik-timeline-day-head,
.satnik-calendar-selection-bar{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:rgba(10,157,191,.35)!important;
}
.satnik-calendar-nav a,.satnik-client-day-tab{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}
.satnik-client-day-tab.is-active{
  background:var(--satnik-brand-red)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-red)!important;
}
.satnik-timeline-day-head{
  color:var(--satnik-brand-teal)!important;
  border-bottom-color:var(--satnik-brand-red)!important;
}
.satnik-simple-hour:not(.is-mine):not(.is-full):not(.is-selected),
.satnik-slot:not(.is-booked):not(.is-full):not(.is-selected){
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-color:rgba(10,157,191,.28)!important;
}

/* REGISTRACE STAFF: repair collapsed filter grid */
.satnik-front-reg-wrap{
  width:100%!important;
  max-width:1180px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}
.satnik-front-reg-filters{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
}
.satnik-front-reg-filter{
  min-width:0!important;
  width:auto!important;
  height:auto!important;
  overflow:visible!important;
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}
.satnik-front-reg-filter strong,
.satnik-front-reg-filter small,
.satnik-front-reg-filter span{
  color:inherit!important;
  -webkit-text-fill-color:inherit!important;
  overflow-wrap:anywhere;
}
.satnik-front-reg-filter.is-active{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}
.satnik-front-reg-list,.satnik-front-reg-row{
  width:100%!important;
  max-width:none!important;
  box-sizing:border-box!important;
}

@media (max-width:900px){
  .satnik-front-reg-filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}
@media (max-width:600px){
  .satnik-front-reg-filters{grid-template-columns:1fr!important}
  .satnik-calendar-nav{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:8px!important;
  }
}


/* =======================================================
   v2.7.3 – portal inverse palette + staff preview repair
   ======================================================= */

/* -------------------------------------------------------
   1) STAFF PRODUCTION PREVIEW WITHOUT NAVIGATION

   In technical production preview staff_nav() can be empty.
   The old shell still reserved its 245px navigation column, so the
   only child (.satnik-staff-main) was squeezed into that first column.
   Collapse the shell to one full-width column only when nav is absent.
   ------------------------------------------------------- */
.satnik-production-preview
.satnik-staff-shell:not(:has(.satnik-staff-nav)){
  display:block!important;
  grid-template-columns:none!important;
  width:min(1380px,calc(100vw - 64px))!important;
  max-width:1380px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.satnik-production-preview
.satnik-staff-shell:not(:has(.satnik-staff-nav))
.satnik-staff-main{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

/* Staff registration filters: stable 3 / 2 / 1 layout.
   Never allow labels to wrap one character at a time. */
.satnik-production-preview .satnik-front-reg-wrap{
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

.satnik-production-preview .satnik-front-reg-filters{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:16px!important;
  width:100%!important;
  min-width:0!important;
}

.satnik-production-preview .satnik-front-reg-filter{
  display:grid!important;
  grid-template-columns:56px minmax(0,1fr)!important;
  grid-template-rows:auto auto!important;
  column-gap:14px!important;
  row-gap:4px!important;
  align-items:center!important;
  min-width:0!important;
  width:auto!important;
  height:auto!important;
  padding:18px!important;
  overflow:visible!important;
}

.satnik-production-preview .satnik-front-reg-count{
  grid-column:1!important;
  grid-row:1 / 3!important;
  width:52px!important;
  height:52px!important;
  min-width:52px!important;
}

.satnik-production-preview .satnik-front-reg-filter strong,
.satnik-production-preview .satnik-front-reg-filter small{
  grid-column:2!important;
  min-width:0!important;
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:break-word!important;
  writing-mode:horizontal-tb!important;
}

.satnik-production-preview .satnik-front-reg-filter strong{
  grid-row:1!important;
}

.satnik-production-preview .satnik-front-reg-filter small{
  grid-row:2!important;
}

@media (max-width:900px){
  .satnik-production-preview
  .satnik-staff-shell:not(:has(.satnik-staff-nav)){
    width:calc(100vw - 28px)!important;
  }

  .satnik-production-preview .satnik-front-reg-filters{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:600px){
  .satnik-production-preview .satnik-front-reg-filters{
    grid-template-columns:1fr!important;
  }
}

/* -------------------------------------------------------
   2) MŮJ ŠATNÍK – INVERTED REGISTRATION PALETTE

   Registration = beige field + teal typography.
   Client portal = teal field + beige typography.
   ------------------------------------------------------- */
body:has(.satnik-portal-wrap) .l-main,
body:has(.satnik-client-shell) .l-main,
#page-content > .l-section:has(.satnik-portal-wrap),
#page-content > .l-section:has(.satnik-client-shell){
  background:var(--satnik-brand-teal)!important;
}

#page-content > .l-section:has(.satnik-portal-wrap),
#page-content > .l-section:has(.satnik-client-shell){
  min-height:calc(100svh - 100px);
}

body.admin-bar
#page-content > .l-section:has(.satnik-portal-wrap),
body.admin-bar
#page-content > .l-section:has(.satnik-client-shell){
  min-height:calc(100svh - 132px);
}

.satnik-portal-wrap,
.satnik-client-shell,
.satnik-client-main{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
}

.satnik-portal-wrap .satnik-reg-intro,
.satnik-client-main .satnik-reg-intro{
  color:var(--satnik-brand-beige)!important;
}

.satnik-portal-wrap h1,
.satnik-portal-wrap h2,
.satnik-portal-wrap h3,
.satnik-client-shell h1,
.satnik-client-shell h2,
.satnik-client-shell h3,
.satnik-portal-wrap p,
.satnik-client-shell p,
.satnik-portal-wrap label,
.satnik-client-shell label,
.satnik-portal-wrap dt,
.satnik-portal-wrap dd,
.satnik-portal-wrap .satnik-reg-kicker,
.satnik-client-shell .satnik-reg-kicker,
.satnik-portal-wrap .satnik-portal-small{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Cards become part of the blue field instead of white/beige islands. */
.satnik-portal-card,
.satnik-portal-ledger-card,
.satnik-portal-calendar-cta{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
  border-color:rgba(248,235,219,.70)!important;
  box-shadow:none!important;
}

.satnik-portal-data>div,
.satnik-portal-doc,
.satnik-portal-ledger-row{
  border-color:rgba(248,235,219,.30)!important;
}

.satnik-portal-doc span,
.satnik-portal-doc strong,
.satnik-portal-ledger-row > div:first-child > strong,
.satnik-portal-ledger-row > div:first-child > span,
.satnik-portal-balance span,
.satnik-portal-balance strong{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Preserve semantic +/- ledger colors: do not overwrite
   .satnik-portal-ledger-delta state classes. */

/* Client nav: teal field, beige outline/text, active item inverted. */
.satnik-client-nav{
  background:transparent!important;
  border-color:rgba(248,235,219,.70)!important;
}

.satnik-client-nav-title,
.satnik-client-nav-item{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-client-nav-item:hover,
.satnik-client-nav-item.is-active{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Inputs / login = beige controls on teal. */
.satnik-portal-wrap input[type="text"],
.satnik-portal-wrap input[type="email"],
.satnik-portal-wrap input[type="password"],
.satnik-portal-wrap input[type="tel"],
.satnik-portal-wrap textarea,
.satnik-portal-wrap select{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-portal-wrap input::placeholder,
.satnik-portal-wrap textarea::placeholder{
  color:var(--satnik-brand-teal)!important;
  opacity:.55!important;
}

/* Client primary/secondary actions = beige on teal. */
.satnik-portal-wrap button[type="submit"],
.satnik-portal-link,
.satnik-portal-secondary{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-portal-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-decoration:none!important;
}

/* Client calendar page keeps its functional calendar palette.
   Only profile/Můj Šatník gets the full inverse treatment above. */


/* -------------------------------------------------------
   3) PŘÍJEM KLIENTEK / OBSLUHA – FIRST VIEWPORT HERO

   Blue operational section fills the first screen below the site header.
   The beige footer/support area starts only after scrolling.
   ------------------------------------------------------- */
#page-content > .l-section:has(.satnik-staff-wrap){
  min-height:calc(100svh - 100px)!important;
  background:var(--satnik-brand-teal)!important;
  box-sizing:border-box!important;
}

body.admin-bar
#page-content > .l-section:has(.satnik-staff-wrap){
  min-height:calc(100svh - 132px)!important;
}

#page-content > .l-section:has(.satnik-staff-wrap) > .l-section-h{
  width:100%!important;
  min-height:inherit!important;
  box-sizing:border-box!important;
}

/* Preserve comfortable content width inside the full-screen field. */
#page-content > .l-section:has(.satnik-staff-wrap)
.satnik-staff-shell{
  padding-top:0!important;
  padding-bottom:24px!important;
}

@media (max-width:1280px){
  #page-content > .l-section:has(.satnik-portal-wrap),
  #page-content > .l-section:has(.satnik-client-shell),
  #page-content > .l-section:has(.satnik-staff-wrap){
    min-height:calc(100svh - 60px)!important;
  }

  body.admin-bar
  #page-content > .l-section:has(.satnik-portal-wrap),
  body.admin-bar
  #page-content > .l-section:has(.satnik-client-shell),
  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-wrap){
    min-height:calc(100svh - 92px)!important;
  }
}

@media (max-width:782px){
  body.admin-bar
  #page-content > .l-section:has(.satnik-portal-wrap),
  body.admin-bar
  #page-content > .l-section:has(.satnik-client-shell),
  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-wrap){
    min-height:calc(100svh - 106px)!important;
  }
}


/* =======================================================
   v2.7.4 – staff contrast + operator full teal + simpler calendar
   ======================================================= */

/* -------------------------------------------------------
   1) ŠATNÍK – OBSLUHA
   Entire operational page = teal background + beige text.
   ------------------------------------------------------- */
body:has(.satnik-staff-operator-box) .l-main,
#page-content > .l-section:has(.satnik-staff-operator-box){
  background:var(--satnik-brand-teal)!important;
}

#page-content > .l-section:has(.satnik-staff-operator-box){
  min-height:calc(100svh - 100px)!important;
}

body.admin-bar
#page-content > .l-section:has(.satnik-staff-operator-box){
  min-height:calc(100svh - 132px)!important;
}

body:has(.satnik-staff-operator-box)
.satnik-staff-shell,
body:has(.satnik-staff-operator-box)
.satnik-staff-main,
body:has(.satnik-staff-operator-box)
.satnik-staff-wrap{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
}

body:has(.satnik-staff-operator-box)
.satnik-staff-main h1,
body:has(.satnik-staff-operator-box)
.satnik-staff-main h2,
body:has(.satnik-staff-operator-box)
.satnik-staff-main h3,
body:has(.satnik-staff-operator-box)
.satnik-staff-main p,
body:has(.satnik-staff-operator-box)
.satnik-staff-main strong,
body:has(.satnik-staff-operator-box)
.satnik-staff-main span,
body:has(.satnik-staff-operator-box)
.satnik-staff-main label,
body:has(.satnik-staff-operator-box)
.satnik-staff-main a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Operator card remains teal, separated only by beige outline. */
.satnik-staff-operator-box{
  background:transparent!important;
  border-color:rgba(248,235,219,.75)!important;
  color:var(--satnik-brand-beige)!important;
}

.satnik-staff-operator-box h2,
.satnik-staff-operator-box p{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-staff-operator-box input{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-staff-operator-box input::placeholder{
  color:var(--satnik-brand-teal)!important;
  opacity:.55!important;
}

.satnik-staff-operator-box button,
.satnik-staff-frontend-logout button{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   2) REGISTRACE STAFF – CONTRAST REPAIR
   Beige cards = teal text.
   Teal page = beige headings/body text.
   ------------------------------------------------------- */
body:has(.satnik-front-reg-wrap) .l-main,
#page-content > .l-section:has(.satnik-front-reg-wrap){
  background:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-wrap,
.satnik-front-reg-wrap h1,
.satnik-front-reg-wrap h2,
.satnik-front-reg-wrap h3,
.satnik-front-reg-wrap > p,
.satnik-front-reg-wrap .satnik-reg-kicker,
.satnik-front-reg-head,
.satnik-front-reg-heading{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Filter cards */
.satnik-front-reg-filter{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-front-reg-filter strong,
.satnik-front-reg-filter small,
.satnik-front-reg-filter span:not(.satnik-front-reg-count){
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-filter.is-active{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-front-reg-filter.is-active strong,
.satnik-front-reg-filter.is-active small,
.satnik-front-reg-filter.is-active span:not(.satnik-front-reg-count){
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Count bubbles */
.satnik-front-reg-count{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-front-reg-filter.is-active .satnik-front-reg-count{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Registration list rows: beige surface, teal copy */
.satnik-front-reg-list,
.satnik-front-reg-row{
  background:var(--satnik-brand-beige)!important;
  border-color:rgba(248,235,219,.70)!important;
}

.satnik-front-reg-row,
.satnik-front-reg-row strong,
.satnik-front-reg-row small,
.satnik-front-reg-row span,
.satnik-front-reg-row a:not(.satnik-front-reg-open){
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-open{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Section title above list stays beige on teal */
.satnik-front-reg-wrap > h2,
.satnik-front-reg-wrap > .satnik-front-reg-list-head,
.satnik-front-reg-wrap .satnik-front-reg-list-title{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* -------------------------------------------------------
   3) KALENDÁŘ – remove mini month calendar from staff view
   Weekly navigation already covers the operational use case.
   ------------------------------------------------------- */
.satnik-calendar-mini,
.satnik-mini-calendar,
.satnik-calendar-month-mini,
.satnik-calendar-sidebar,
.satnik-timeline-mini-calendar{
  display:none!important;
}

/* If top bar/grid reserved a second column for mini calendar,
   collapse it back to full-width week navigation. */
.satnik-calendar-topbar,
.satnik-calendar-header,
.satnik-timeline-header{
  grid-template-columns:1fr!important;
}

.satnik-calendar-header > .satnik-calendar-mini,
.satnik-timeline-header > .satnik-timeline-mini-calendar{
  display:none!important;
}

/* Keep nav aligned cleanly after sidebar removal. */
.satnik-calendar-nav{
  width:100%!important;
  max-width:none!important;
}

/* -------------------------------------------------------
   Responsive viewport adjustment for operator page
   ------------------------------------------------------- */
@media (max-width:1280px){
  #page-content > .l-section:has(.satnik-staff-operator-box){
    min-height:calc(100svh - 60px)!important;
  }

  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-operator-box){
    min-height:calc(100svh - 92px)!important;
  }
}

@media (max-width:782px){
  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-operator-box){
    min-height:calc(100svh - 106px)!important;
  }
}


/* =======================================================
   v2.7.5 – operator contrast + calendar nav + registration detail repair
   ======================================================= */

/* -------------------------------------------------------
   1) ŠATNÍK – OBSLUHA
   Production preview can render the home without .satnik-staff-main.
   Therefore target .satnik-staff-home directly.
   ------------------------------------------------------- */
body:has(.satnik-staff-operator-box)
.satnik-staff-home,
body:has(.satnik-staff-operator-box)
.satnik-staff-home .satnik-reg-intro{
  color:var(--satnik-brand-beige)!important;
}

body:has(.satnik-staff-operator-box)
.satnik-staff-home .satnik-reg-intro h2,
body:has(.satnik-staff-operator-box)
.satnik-staff-home .satnik-reg-intro p,
body:has(.satnik-staff-operator-box)
.satnik-staff-home .satnik-reg-intro strong,
body:has(.satnik-staff-operator-box)
.satnik-staff-home .satnik-reg-kicker,
body:has(.satnik-staff-operator-box)
.satnik-staff-operator-box h3,
body:has(.satnik-staff-operator-box)
.satnik-staff-operator-box p{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

body:has(.satnik-staff-operator-box)
.satnik-staff-operator-box h3{
  font-family:LGB,var(--h1-font-family),sans-serif!important;
  font-weight:400!important;
}

/* Controls stay inverted. */
body:has(.satnik-staff-operator-box)
.satnik-staff-operator-box input,
body:has(.satnik-staff-operator-box)
.satnik-staff-operator-box button,
body:has(.satnik-staff-operator-box)
.satnik-staff-frontend-logout button{
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-teal)!important;
}


/* -------------------------------------------------------
   2) KALENDÁŘ
   v2.7.4 hid the whole week-tools container together with mini month.
   Hide only the real mini calendar: .satnik-mini-month.
   ------------------------------------------------------- */
.satnik-mini-month{
  display:none!important;
}

.satnik-calendar-topbar > .satnik-calendar-week-tools{
  display:block!important;
  width:100%!important;
  max-width:none!important;
}

.satnik-calendar-week-tools{
  display:block!important;
  min-width:0!important;
}

.satnik-calendar-nav{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  width:100%!important;
  max-width:none!important;
}

.satnik-calendar-week-label{
  display:block!important;
  margin-top:14px!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  font-weight:700!important;
}

/* Undo the over-broad v2.7.4 direct-child hide for week tools. */
.satnik-calendar-topbar >
.satnik-calendar-week-tools{
  visibility:visible!important;
  opacity:1!important;
}


/* -------------------------------------------------------
   3) REGISTRACE STAFF – SIMPLER OVERVIEW
   Keep teal/beige as base and use RED only as one navigation accent.
   ------------------------------------------------------- */
.satnik-front-reg-filters{
  gap:14px!important;
}

.satnik-front-reg-filter,
.satnik-front-reg-filter.is-active{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border:1px solid rgba(248,235,219,.85)!important;
  border-top:5px solid transparent!important;
}

.satnik-front-reg-filter strong,
.satnik-front-reg-filter small,
.satnik-front-reg-filter span:not(.satnik-front-reg-count),
.satnik-front-reg-filter.is-active strong,
.satnik-front-reg-filter.is-active small,
.satnik-front-reg-filter.is-active span:not(.satnik-front-reg-count){
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-filter .satnik-front-reg-count,
.satnik-front-reg-filter.is-active .satnik-front-reg-count{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-front-reg-filter.is-active{
  border-top-color:var(--satnik-brand-red)!important;
}

.satnik-front-reg-filter.is-active .satnik-front-reg-count{
  background:var(--satnik-brand-red)!important;
}

.satnik-front-reg-toolbar{
  color:var(--satnik-brand-beige)!important;
  border-bottom:2px solid var(--satnik-brand-red)!important;
  padding-bottom:10px!important;
}

.satnik-front-reg-toolbar strong,
.satnik-front-reg-toolbar span,
.satnik-front-reg-toolbar a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}


/* -------------------------------------------------------
   4) REGISTRACE STAFF – DETAIL PAGE
   Stable width / grids / document rows / actions.
   ------------------------------------------------------- */
.satnik-production-preview
.satnik-front-reg-wrap{
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
  box-sizing:border-box!important;
}

.satnik-front-reg-detail-head{
  display:flex!important;
  align-items:flex-start!important;
  justify-content:space-between!important;
  gap:24px!important;
  width:100%!important;
  min-width:0!important;
  margin:18px 0 22px!important;
}

.satnik-front-reg-detail-head > div{
  min-width:0!important;
  flex:1 1 auto!important;
}

.satnik-front-reg-detail-head h2,
.satnik-front-reg-detail-head p,
.satnik-front-reg-original{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-front-reg-summary{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
  margin:18px 0 24px!important;
}

.satnik-front-reg-summary > div{
  min-width:0!important;
  width:auto!important;
  padding:18px!important;
  background:var(--satnik-brand-beige)!important;
  border:1px solid rgba(248,235,219,.85)!important;
  border-radius:6px!important;
  box-sizing:border-box!important;
}

.satnik-front-reg-summary span,
.satnik-front-reg-summary strong{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
}

.satnik-front-reg-section{
  width:100%!important;
  min-width:0!important;
  padding:24px!important;
  margin:22px 0!important;
  box-sizing:border-box!important;
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border:1px solid rgba(248,235,219,.85)!important;
}

.satnik-front-reg-section h3,
.satnik-front-reg-section p,
.satnik-front-reg-section label,
.satnik-front-reg-section strong,
.satnik-front-reg-section span,
.satnik-front-reg-section small{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-data{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:14px!important;
  width:100%!important;
}

.satnik-front-reg-data > div{
  min-width:0!important;
  width:auto!important;
  box-sizing:border-box!important;
  background:rgba(255,255,255,.16)!important;
  border-color:rgba(10,157,191,.25)!important;
}

.satnik-front-reg-data .is-wide{
  grid-column:1 / -1!important;
}

.satnik-front-reg-safe-note{
  width:100%!important;
  box-sizing:border-box!important;
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border-left:5px solid var(--satnik-brand-red)!important;
}

.satnik-front-reg-safe-note strong,
.satnik-front-reg-safe-note p{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-front-doc-list{
  width:100%!important;
}

.satnik-front-doc{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:18px!important;
  width:100%!important;
  min-width:0!important;
  padding:16px 0!important;
  background:transparent!important;
  border-left:0!important;
  border-right:0!important;
  border-top:0!important;
  border-bottom:1px solid rgba(10,157,191,.22)!important;
}

.satnik-front-doc > div:first-child{
  flex:1 1 auto!important;
  min-width:0!important;
}

.satnik-front-doc-actions{
  flex:0 0 auto!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:8px!important;
  flex-wrap:wrap!important;
}

.satnik-front-doc-actions a,
.satnik-front-doc-actions button{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-decision textarea{
  width:100%!important;
  box-sizing:border-box!important;
  background:#fff8ee!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:rgba(10,157,191,.45)!important;
}

.satnik-front-reg-supplement{
  width:100%!important;
  box-sizing:border-box!important;
}

.satnik-front-reg-decision-buttons{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin-top:18px!important;
}

.satnik-front-reg-decision-buttons button{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

.satnik-front-reg-decision-buttons
button[value="rejected"]{
  background:var(--satnik-brand-red)!important;
  border-color:var(--satnik-brand-red)!important;
}

/* Preserve semantic status badge colors from the original component. */

@media (max-width:900px){
  .satnik-front-reg-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }

  .satnik-front-reg-detail-head{
    flex-direction:column!important;
  }
}

@media (max-width:650px){
  .satnik-front-reg-summary,
  .satnik-front-reg-data{
    grid-template-columns:1fr!important;
  }

  .satnik-front-reg-data .is-wide{
    grid-column:auto!important;
  }

  .satnik-front-doc{
    flex-direction:column!important;
    align-items:flex-start!important;
  }

  .satnik-front-doc-actions{
    justify-content:flex-start!important;
  }
}


/* =======================================================
   v2.7.6 – structural hotfix
   1) staff shell without nav must never reserve 245px
   2) week tools must stay visible; only mini month is hidden
   ======================================================= */

/* -------------------------------------------------------
   STAFF SHELL WITHOUT LEFT NAV

   staff_nav() intentionally returns an empty string for technical
   admins / registration managers. In that state the shell contains
   only <main>, so the standard 245px + content grid is invalid.

   Apply globally, not only inside production-preview, because the
   same no-nav state is used by the STAFF TEST detail page.
   ------------------------------------------------------- */
.satnik-staff-shell:not(:has(> .satnik-staff-nav)){
  display:block!important;
  grid-template-columns:none!important;
  grid-template-rows:none!important;
  gap:0!important;

  width:min(1380px,calc(100vw - 64px))!important;
  max-width:1380px!important;
  min-width:0!important;

  margin-left:auto!important;
  margin-right:auto!important;
}

.satnik-staff-shell:not(:has(> .satnik-staff-nav))
> .satnik-staff-main{
  display:block!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  grid-column:auto!important;
  grid-row:auto!important;
}

/* Registration listing + detail both use the available width. */
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-wrap{
  width:100%!important;
  max-width:1180px!important;
  min-width:0!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Detail cards must never inherit the old narrow-column behaviour. */
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-summary{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  width:100%!important;
  min-width:0!important;
}

.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-data{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  width:100%!important;
  min-width:0!important;
}

.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-summary > div,
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-data > div{
  min-width:0!important;
  width:auto!important;
  writing-mode:horizontal-tb!important;
}

.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-summary span,
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-summary strong,
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-data span,
.satnik-staff-shell:not(:has(> .satnik-staff-nav))
.satnik-front-reg-data strong{
  white-space:normal!important;
  word-break:normal!important;
  overflow-wrap:anywhere!important;
  writing-mode:horizontal-tb!important;
}

/* -------------------------------------------------------
   CALENDAR WEEK NAVIGATION

   Hide exactly the mini month and nothing else.
   ------------------------------------------------------- */
.satnik-calendar-topbar{
  display:block!important;
  width:100%!important;
}

.satnik-calendar-topbar > .satnik-calendar-week-tools{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
}

.satnik-calendar-week-tools .satnik-calendar-nav{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  width:100%!important;
  margin:0 0 12px!important;
}

.satnik-calendar-week-tools .satnik-calendar-nav > a{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
}

.satnik-calendar-week-tools .satnik-calendar-week-label{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0!important;
}

.satnik-calendar-topbar > .satnik-mini-month,
.satnik-mini-month{
  display:none!important;
}

/* -------------------------------------------------------
   RESPONSIVE
   ------------------------------------------------------- */
@media (max-width:900px){
  .satnik-staff-shell:not(:has(> .satnik-staff-nav)){
    width:calc(100vw - 28px)!important;
    max-width:none!important;
  }

  .satnik-staff-shell:not(:has(> .satnik-staff-nav))
  .satnik-front-reg-summary{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
}

@media (max-width:650px){
  .satnik-staff-shell:not(:has(> .satnik-staff-nav))
  .satnik-front-reg-summary,
  .satnik-staff-shell:not(:has(> .satnik-staff-nav))
  .satnik-front-reg-data{
    grid-template-columns:1fr!important;
  }
}


/* =======================================================
   v2.7.7 – calendar date/time emphasis only
   ======================================================= */

/* Week range under navigation */
.satnik-calendar-week-label{
  font-size:1.12rem!important;
  font-weight:700!important;
  line-height:1.25!important;
  letter-spacing:.01em!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  margin-top:16px!important;
}

/* Day header: weekday stronger, date more visible */
.satnik-timeline-day-head{
  display:flex!important;
  align-items:baseline!important;
  gap:12px!important;
}

.satnik-timeline-day-head strong,
.satnik-timeline-day-head .satnik-day-name{
  font-weight:700!important;
  font-size:1.08rem!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

.satnik-timeline-day-head .satnik-day-date,
.satnik-timeline-day-head span{
  font-weight:600!important;
  font-size:.98rem!important;
  color:rgba(10,157,191,.88)!important;
  -webkit-text-fill-color:rgba(10,157,191,.88)!important;
}

/* Timeline hour labels */
.satnik-timeline-hours,
.satnik-timeline-time,
.satnik-slot-time,
.satnik-calendar-time{
  color:#4f4a45!important;
  -webkit-text-fill-color:#4f4a45!important;
  font-weight:600!important;
}

/* In case the current markup uses plain spans/divs in the timeline row */
.satnik-timeline-day .satnik-timeline-grid > div:first-child span,
.satnik-timeline-day .satnik-timeline-grid time,
.satnik-timeline-day time{
  color:#4f4a45!important;
  -webkit-text-fill-color:#4f4a45!important;
  font-weight:600!important;
}

/* Slightly stronger separator below day header */
.satnik-timeline-day-head{
  border-bottom:2px solid var(--satnik-brand-red)!important;
}


/* =======================================================
   v2.7.8 – STAFF HOME visual fix

   Applies to the real staff home in both states:
   - before operator selection (.satnik-staff-operator-box)
   - after operator selection  (.satnik-staff-active-operator)

   No workflow/layout logic changes.
   ======================================================= */

/* Entire staff home section = teal field */
body:has(.satnik-staff-home) .l-main,
#page-content > .l-section:has(.satnik-staff-home){
  background:var(--satnik-brand-teal)!important;
}

#page-content > .l-section:has(.satnik-staff-home){
  min-height:calc(100svh - 100px)!important;
  box-sizing:border-box!important;
}

/* The home wrapper itself must not reintroduce a white surface */
.satnik-staff-home{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
}

/* Intro: always beige on teal */
.satnik-staff-home .satnik-reg-intro,
.satnik-staff-home .satnik-reg-intro h1,
.satnik-staff-home .satnik-reg-intro h2,
.satnik-staff-home .satnik-reg-intro h3,
.satnik-staff-home .satnik-reg-intro p,
.satnik-staff-home .satnik-reg-intro strong,
.satnik-staff-home .satnik-reg-kicker{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Before shift selection: outlined teal card with beige copy */
.satnik-staff-home .satnik-staff-operator-box{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
  border:1px solid rgba(248,235,219,.78)!important;
  box-shadow:none!important;
}

.satnik-staff-home .satnik-staff-operator-box h3,
.satnik-staff-home .satnik-staff-operator-box p{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* After shift selection: beige status strip */
.satnik-staff-home .satnik-staff-active-operator{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border:1px solid var(--satnik-brand-beige)!important;
  box-shadow:none!important;
}

.satnik-staff-home .satnik-staff-active-operator,
.satnik-staff-home .satnik-staff-active-operator strong,
.satnik-staff-home .satnik-staff-active-operator span,
.satnik-staff-home .satnik-staff-active-operator a,
.satnik-staff-home .satnik-staff-active-operator button{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Main navigation cards: beige cards on teal field */
.satnik-staff-home .satnik-staff-home-grid{
  width:100%!important;
}

.satnik-staff-home .satnik-staff-home-card{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border:1px solid var(--satnik-brand-beige)!important;
  box-shadow:none!important;
}

.satnik-staff-home .satnik-staff-home-card strong,
.satnik-staff-home .satnik-staff-home-card span{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  opacity:1!important;
}

.satnik-staff-home .satnik-staff-home-card:hover{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  transform:translateY(-1px);
}

/* Operator input + main action remain inverse controls */
.satnik-staff-home .satnik-staff-operator-form input{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

.satnik-staff-home .satnik-staff-operator-form input::placeholder{
  color:var(--satnik-brand-teal)!important;
  opacity:.55!important;
}

.satnik-staff-home .satnik-staff-operator-form button,
.satnik-staff-home .satnik-staff-frontend-logout button{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-beige)!important;
}

/* Frontdesk persistent shell/nav should blend into the same home page */
body:has(.satnik-staff-home) .satnik-staff-shell,
body:has(.satnik-staff-home) .satnik-staff-main{
  background:transparent!important;
}

body.admin-bar
#page-content > .l-section:has(.satnik-staff-home){
  min-height:calc(100svh - 132px)!important;
}

@media (max-width:1280px){
  #page-content > .l-section:has(.satnik-staff-home){
    min-height:calc(100svh - 60px)!important;
  }

  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-home){
    min-height:calc(100svh - 92px)!important;
  }
}

@media (max-width:782px){
  body.admin-bar
  #page-content > .l-section:has(.satnik-staff-home){
    min-height:calc(100svh - 106px)!important;
  }
}


/* =======================================================
   v2.7.9 – compact fallback staff navigation
   Visible only in technical admin / registration-manager views.
   Real frontdesk users keep the persistent left navigation.
   ======================================================= */

.satnik-staff-context-nav{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px;
  width:100%;
  margin:4px 0 28px;
  padding:8px;
  box-sizing:border-box;
  background:var(--satnik-brand-beige);
  border:1px solid rgba(10,157,191,.28);
}

.satnik-staff-context-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:7px 14px;
  box-sizing:border-box;
  text-decoration:none!important;
  font-family:Inter,var(--font-family),sans-serif!important;
  font-size:.95rem;
  font-weight:700;
  line-height:1.2;
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-bottom:3px solid transparent;
}

.satnik-staff-context-link:hover{
  color:var(--satnik-brand-red)!important;
  -webkit-text-fill-color:var(--satnik-brand-red)!important;
}

.satnik-staff-context-link.is-active{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
  border-bottom-color:var(--satnik-brand-red);
}

/* On teal operational pages the beige strip becomes a clear,
   compact breadcrumb/navigation island. */
body:has(.satnik-staff-home)
.satnik-staff-context-nav,
body:has(.satnik-staff-wrap)
.satnik-staff-context-nav,
body:has(.satnik-front-reg-wrap)
.satnik-staff-context-nav{
  background:var(--satnik-brand-beige)!important;
}

/* Registration detail back link directly under the context nav. */
.satnik-front-reg-back{
  margin:0 0 20px!important;
}

.satnik-front-reg-back a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  font-weight:700!important;
  text-decoration:none!important;
}

.satnik-front-reg-back a:hover{
  text-decoration:underline!important;
}

/* Calendar is beige already; the nav still gets a subtle teal outline. */
.satnik-calendar-wrap .satnik-staff-context-nav{
  margin-bottom:24px;
}

@media (max-width:700px){
  .satnik-staff-context-nav{
    gap:4px;
    padding:6px;
  }

  .satnik-staff-context-link{
    flex:1 1 calc(50% - 4px);
    padding-left:9px;
    padding-right:9px;
    font-size:.9rem;
  }
}

@media (max-width:430px){
  .satnik-staff-context-link{
    flex-basis:100%;
    justify-content:flex-start;
  }
}


/* =======================================================
   v2.7.10 – staff context nav color fix
   Teal strip + beige links + red active underline.
   ======================================================= */

.satnik-staff-context-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  flex-wrap:wrap!important;
  gap:10px!important;

  width:100%!important;
  margin:4px 0 28px!important;
  padding:10px 14px!important;
  box-sizing:border-box!important;

  background:var(--satnik-brand-teal)!important;
  border:1px solid rgba(248,235,219,.55)!important;
  box-shadow:none!important;
}

.satnik-staff-context-nav .satnik-staff-context-link{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;

  align-items:center!important;
  justify-content:center!important;

  min-height:40px!important;
  padding:8px 15px!important;
  box-sizing:border-box!important;

  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;

  border:0!important;
  border-bottom:4px solid transparent!important;

  font-family:Inter,var(--font-family),sans-serif!important;
  font-size:.96rem!important;
  font-weight:700!important;
  line-height:1.2!important;
  text-decoration:none!important;
  white-space:nowrap!important;
}

.satnik-staff-context-nav .satnik-staff-context-link:hover{
  background:rgba(248,235,219,.10)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-staff-context-nav .satnik-staff-context-link.is-active,
.satnik-staff-context-nav .satnik-staff-context-link[aria-current="page"]{
  background:transparent!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-bottom-color:var(--satnik-brand-red)!important;
}

/* Stronger scoped overrides against older page-specific link rules. */
.satnik-front-reg-wrap .satnik-staff-context-nav a,
.satnik-staff-wrap .satnik-staff-context-nav a,
.satnik-staff-home .satnik-staff-context-nav a,
.satnik-calendar-wrap .satnik-staff-context-nav a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  background:transparent!important;
}

.satnik-front-reg-wrap .satnik-staff-context-nav a.is-active,
.satnik-staff-wrap .satnik-staff-context-nav a.is-active,
.satnik-staff-home .satnik-staff-context-nav a.is-active,
.satnik-calendar-wrap .satnik-staff-context-nav a.is-active{
  border-bottom-color:var(--satnik-brand-red)!important;
}

/* Avoid the old beige-island appearance on teal staff pages. */
body:has(.satnik-front-reg-wrap) .satnik-staff-context-nav,
body:has(.satnik-staff-wrap) .satnik-staff-context-nav,
body:has(.satnik-staff-home) .satnik-staff-context-nav{
  background:var(--satnik-brand-teal)!important;
  border-color:rgba(248,235,219,.55)!important;
}

/* Calendar lives on beige; keep the same teal navigation strip there too. */
.satnik-calendar-wrap .satnik-staff-context-nav{
  background:var(--satnik-brand-teal)!important;
  border-color:var(--satnik-brand-teal)!important;
}

@media (max-width:700px){
  .satnik-staff-context-nav{
    gap:6px!important;
    padding:8px!important;
  }

  .satnik-staff-context-nav .satnik-staff-context-link{
    flex:1 1 calc(50% - 6px)!important;
    white-space:normal!important;
  }
}

@media (max-width:430px){
  .satnik-staff-context-nav .satnik-staff-context-link{
    flex-basis:100%!important;
    justify-content:flex-start!important;
  }
}


/* =======================================================
   v2.7.11 – rounded subpage staff navigation
   Main staff home intentionally has no context nav.
   ======================================================= */

.satnik-staff-context-nav{
  border-radius:14px!important;
  overflow:hidden!important;
}

.satnik-staff-context-nav .satnik-staff-context-link{
  border-radius:10px!important;
}

.satnik-staff-context-nav .satnik-staff-context-link:hover{
  border-radius:10px!important;
}

.satnik-staff-context-nav .satnik-staff-context-link.is-active,
.satnik-staff-context-nav .satnik-staff-context-link[aria-current="page"]{
  border-radius:10px!important;
}

/* Keep the active red underline visible inside rounded links. */
.satnik-staff-context-nav .satnik-staff-context-link.is-active,
.satnik-staff-context-nav .satnik-staff-context-link[aria-current="page"]{
  box-shadow:inset 0 -4px 0 var(--satnik-brand-red)!important;
  border-bottom-color:transparent!important;
}


/* =======================================================
   v2.7.12 – final registration acknowledgement
   ======================================================= */

.satnik-reg-registration .satnik-reg-consent{
  opacity:1!important;
  align-items:flex-start!important;
  gap:14px!important;
}

.satnik-reg-registration .satnik-reg-consent input[type="checkbox"]{
  flex:0 0 auto!important;
  width:22px!important;
  height:22px!important;
  margin-top:3px!important;
  accent-color:#0a9dbf;
}

.satnik-reg-registration .satnik-reg-consent-copy{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  min-width:0!important;
}

.satnik-reg-registration .satnik-reg-consent-copy strong{
  color:#14586A!important;
  -webkit-text-fill-color:#14586A!important;
  font-weight:700!important;
  line-height:1.45!important;
}

.satnik-reg-registration .satnik-reg-consent-detail{
  display:block!important;
  color:#527A84!important;
  -webkit-text-fill-color:#527A84!important;
  font-size:.92rem!important;
  line-height:1.55!important;
  opacity:1!important;
}


/* =======================================================
   v2.7.13 – registration consent readability hotfix
   ======================================================= */

.satnik-reg-registration .satnik-reg-consent{
  opacity:1!important;
  align-items:flex-start!important;
  gap:16px!important;
}

/* Explicit custom checkbox so it cannot disappear against beige
   or inherit the theme's faint native checkbox styling. */
.satnik-reg-registration
.satnik-reg-consent input[type="checkbox"]{
  -webkit-appearance:none!important;
  appearance:none!important;

  position:relative!important;
  display:block!important;
  flex:0 0 24px!important;

  width:24px!important;
  min-width:24px!important;
  height:24px!important;

  margin:2px 0 0!important;
  padding:0!important;

  background:#f8ebdb!important;
  border:2px solid #0a9dbf!important;
  border-radius:5px!important;

  box-shadow:none!important;
  outline:none!important;
  cursor:pointer!important;
}

.satnik-reg-registration
.satnik-reg-consent input[type="checkbox"]:hover{
  border-color:#eb2f06!important;
}

.satnik-reg-registration
.satnik-reg-consent input[type="checkbox"]:focus-visible{
  outline:3px solid rgba(235,47,6,.35)!important;
  outline-offset:3px!important;
}

.satnik-reg-registration
.satnik-reg-consent input[type="checkbox"]:checked{
  background-color:#0a9dbf!important;
  border-color:#0a9dbf!important;

  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M5 12.5l4.2 4.2L19 7' fill='none' stroke='%23f8ebdb' stroke-width='2.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;
  background-position:center!important;
  background-size:20px 20px!important;
}

.satnik-reg-registration
.satnik-reg-consent input[type="checkbox"]:disabled{
  opacity:.45!important;
  cursor:not-allowed!important;
}

/* High-contrast copy. Keep Mirek palette for accents; use a dark
   readable teal tone already established by this consent block. */
.satnik-reg-registration .satnik-reg-consent-copy{
  display:flex!important;
  flex-direction:column!important;
  gap:10px!important;
  min-width:0!important;
}

.satnik-reg-registration
.satnik-reg-consent-copy strong{
  color:#14586A!important;
  -webkit-text-fill-color:#14586A!important;
  opacity:1!important;
  font-weight:750!important;
  line-height:1.45!important;
}

.satnik-reg-registration
.satnik-reg-consent-detail{
  display:block!important;
  color:#14586A!important;
  -webkit-text-fill-color:#14586A!important;
  opacity:1!important;
  font-size:.98rem!important;
  font-weight:500!important;
  line-height:1.58!important;
}

/* Make the whole final block visually calmer and consistent. */
.satnik-reg-registration
fieldset:has(.satnik-reg-consent){
  background:#f8ebdb!important;
  border:1px solid rgba(10,157,191,.22)!important;
}

@media (max-width:600px){
  .satnik-reg-registration .satnik-reg-consent{
    gap:12px!important;
  }

  .satnik-reg-registration
  .satnik-reg-consent-detail{
    font-size:.94rem!important;
  }
}


/* =======================================================
   v2.7.14 – final consent block unified to one beige card
   ======================================================= */

.satnik-reg-registration .satnik-reg-section-final{
  background:#ead2af!important;
  border:1px solid rgba(10,157,191,.18)!important;
  border-radius:10px!important;
  padding:34px 28px 28px!important;
  margin-top:20px!important;
  box-shadow:none!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-section-title{
  margin:0 0 22px!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent-copy{
  gap:16px!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent-copy strong{
  color:#0b4f63!important;
  -webkit-text-fill-color:#0b4f63!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent-detail{
  color:#245f72!important;
  -webkit-text-fill-color:#245f72!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent input[type="checkbox"]{
  background:#ead2af!important;
}

.satnik-reg-registration .satnik-reg-section-final .satnik-reg-consent input[type="checkbox"]:checked{
  background-color:#0a9dbf!important;
  border-color:#0a9dbf!important;
}

@media (max-width: 640px){
  .satnik-reg-registration .satnik-reg-section-final{
    padding:26px 18px 20px!important;
    border-radius:8px!important;
  }

  .satnik-reg-registration .satnik-reg-section-final .satnik-reg-section-title{
    margin-bottom:18px!important;
  }
}


/* =======================================================
   v2.8.0-rc6 – client calendar palette isolation

   Můj Šatník profile uses inverse palette:
   teal field + beige text.

   The calendar itself intentionally remains a beige functional panel,
   so it must not inherit beige text from .satnik-client-shell.
   Staff calendar is untouched.
   ======================================================= */

.satnik-client-calendar-main{
  background:transparent!important;
  color:var(--satnik-brand-teal)!important;
}

.satnik-client-calendar-main > .satnik-calendar-wrap{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;

  border:1px solid rgba(248,235,219,.88)!important;
  border-radius:12px!important;

  padding:30px 28px!important;
  box-sizing:border-box!important;
}

/* Restore the calendar intro which was visually disappearing because
   the portal-wide inverse palette made it beige-on-beige. */
.satnik-client-calendar-main .satnik-reg-intro,
.satnik-client-calendar-main .satnik-reg-intro h1,
.satnik-client-calendar-main .satnik-reg-intro h2,
.satnik-client-calendar-main .satnik-reg-intro h3,
.satnik-client-calendar-main .satnik-reg-intro p,
.satnik-client-calendar-main .satnik-reg-kicker{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Calendar notices must stay readable on the beige panel. */
.satnik-client-calendar-main .satnik-reg-success,
.satnik-client-calendar-main .satnik-reg-errors,
.satnik-client-calendar-main .satnik-reg-locked,
.satnik-client-calendar-main .satnik-reg-storage-note{
  color:#14586A!important;
  -webkit-text-fill-color:#14586A!important;
  background:rgba(10,157,191,.06)!important;
}

.satnik-client-calendar-main .satnik-reg-success{
  border-left-color:#1b7f45!important;
}

.satnik-client-calendar-main .satnik-reg-errors{
  border-left-color:var(--satnik-brand-red)!important;
}

/* Text inside the functional calendar uses teal/dark teal,
   regardless of the parent Můj Šatník inverse theme. */
.satnik-client-calendar-main .satnik-calendar-wrap p,
.satnik-client-calendar-main .satnik-calendar-wrap label,
.satnik-client-calendar-main .satnik-calendar-wrap strong,
.satnik-client-calendar-main .satnik-calendar-wrap small{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Navigation buttons already belong to the calendar language:
   teal button on beige. */
.satnik-client-calendar-main .satnik-calendar-nav a{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  border-color:var(--satnik-brand-teal)!important;
}

/* Keep slot/status semantic surfaces intact; only enforce readable
   text where the parent inverse palette could leak through. */
.satnik-client-calendar-main .satnik-simple-day,
.satnik-client-calendar-main .satnik-simple-hour,
.satnik-client-calendar-main .satnik-timeline-day,
.satnik-client-calendar-main .satnik-timeline-block{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

@media (max-width:850px){
  .satnik-client-calendar-main > .satnik-calendar-wrap{
    padding:22px 16px!important;
    border-radius:10px!important;
  }
}


/* =======================================================
   v2.8.0-rc7 – client navbar visibility
   ======================================================= */

.satnik-client-shell > .satnik-client-nav{
  background:transparent!important;
  border:1px solid rgba(248,235,219,.72)!important;
  border-radius:12px!important;
  overflow:visible!important;
}

.satnik-client-shell > .satnik-client-nav
.satnik-client-nav-title{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;

  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;

  font-weight:800!important;
}

/* Inactive item must remain visibly present on teal. */
.satnik-client-shell > .satnik-client-nav
.satnik-client-nav-item{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;

  background:rgba(248,235,219,.08)!important;

  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;

  border:1px solid rgba(248,235,219,.34)!important;
  border-radius:8px!important;

  font-weight:700!important;
}

/* Hover: slightly stronger but still inactive. */
.satnik-client-shell > .satnik-client-nav
.satnik-client-nav-item:hover{
  background:rgba(248,235,219,.16)!important;

  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;

  border-color:rgba(248,235,219,.62)!important;
}

/* Active destination = full beige card. */
.satnik-client-shell > .satnik-client-nav
.satnik-client-nav-item.is-active,
.satnik-client-shell > .satnik-client-nav
.satnik-client-nav-item[aria-current="page"]{
  background:var(--satnik-brand-beige)!important;

  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;

  border-color:var(--satnik-brand-beige)!important;
  font-weight:800!important;
}


/* =======================================================
   v2.8.1 REVIEW – Nora approval portal
   ======================================================= */

.satnik-review-wrap{
  max-width:1240px!important;
  padding-top:24px!important;
  padding-bottom:50px!important;
}

.satnik-review-hero,
.satnik-review-login{
  background:#0a9dbf!important;
  color:#f8ebdb!important;
  border-radius:14px!important;
  padding:34px 38px!important;
  margin-bottom:28px!important;
}

.satnik-review-hero h2,
.satnik-review-login h2,
.satnik-review-hero p,
.satnik-review-login p,
.satnik-review-hero .satnik-reg-kicker,
.satnik-review-login .satnik-reg-kicker{
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
}

.satnik-review-safe{
  margin-top:20px!important;
  padding:13px 16px!important;
  border:1px solid rgba(248,235,219,.65)!important;
  border-radius:9px!important;
  color:#f8ebdb!important;
}

.satnik-review-grid{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:18px!important;
}

.satnik-review-card{
  display:flex!important;
  flex-direction:column!important;
  min-height:250px!important;
  padding:25px!important;
  background:#f8ebdb!important;
  border:1px solid rgba(10,157,191,.3)!important;
  border-radius:12px!important;
  color:#14586a!important;
}

.satnik-review-card h3{
  margin-top:0!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
}

.satnik-review-card p{
  color:#14586a!important;
  -webkit-text-fill-color:#14586a!important;
}

.satnik-review-check{
  flex:1 1 auto!important;
  padding-top:8px!important;
  font-size:.94rem!important;
}

.satnik-review-open,
.satnik-review-primary,
.satnik-review-approve{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:max-content!important;
  min-height:44px!important;
  padding:10px 18px!important;
  border:0!important;
  border-radius:8px!important;
  background:#0a9dbf!important;
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
  text-decoration:none!important;
  font-weight:800!important;
  cursor:pointer!important;
}

.satnik-review-primary{
  background:#f8ebdb!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
}

.satnik-review-approval{
  margin-top:28px!important;
  padding:25px!important;
  background:#f8ebdb!important;
  border:1px solid rgba(10,157,191,.3)!important;
  border-radius:12px!important;
}

.satnik-review-approval h3,
.satnik-review-approval p{
  color:#14586a!important;
  -webkit-text-fill-color:#14586a!important;
}

.satnik-review-subnav{
  margin-bottom:18px!important;
}

.satnik-review-subnav a{
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
  font-weight:800!important;
  text-decoration:none!important;
}

.satnik-review-preview-note{
  display:flex!important;
  justify-content:space-between!important;
  gap:15px!important;
  align-items:center!important;
  padding:14px 18px!important;
  margin-bottom:18px!important;
  border-radius:9px!important;
  background:#eb2f06!important;
  color:#f8ebdb!important;
}

.satnik-review-preview-note strong,
.satnik-review-preview-note span{
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
}

.satnik-review-client-demo .satnik-portal-logout{
  display:none!important;
}

@media (max-width:800px){
  .satnik-review-grid{
    grid-template-columns:1fr!important;
  }

  .satnik-review-hero,
  .satnik-review-login{
    padding:26px 22px!important;
  }

  .satnik-review-preview-note{
    align-items:flex-start!important;
    flex-direction:column!important;
  }
}


/* =======================================================
   v2.8.2 REVIEW SHARE – external read-only session
   ======================================================= */

.satnik-review-share{
  margin-top:18px!important;
  padding:16px!important;
  border-radius:9px!important;
  background:rgba(248,235,219,.12)!important;
  border:1px solid rgba(248,235,219,.55)!important;
}

.satnik-review-share strong,
.satnik-review-share p{
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
}

.satnik-review-share input{
  width:100%!important;
  box-sizing:border-box!important;
  margin:10px 0!important;
  padding:11px 12px!important;
  border:1px solid #f8ebdb!important;
  border-radius:7px!important;
  background:#f8ebdb!important;
  color:#14586a!important;
  -webkit-text-fill-color:#14586a!important;
  font-family:monospace!important;
}

.satnik-review-share button{
  border:0!important;
  border-radius:7px!important;
  padding:9px 13px!important;
  background:#f8ebdb!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
  font-weight:800!important;
  cursor:pointer!important;
}

.satnik-review-readonly{
  margin-top:18px!important;
  padding:12px 15px!important;
  border-radius:8px!important;
  border:1px solid rgba(248,235,219,.65)!important;
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
  font-weight:800!important;
}

.satnik-external-review .satnik-staff-visit-form,
.satnik-external-review .satnik-front-reg-decision form,
.satnik-external-review .satnik-front-doc-actions form,
.satnik-external-review .satnik-attendance-actions,
.satnik-external-review .satnik-attendance-quick-form,
.satnik-external-review .satnik-attendance-complete{
  display:none!important;
}

.satnik-review-doc-note{
  display:inline-block!important;
  font-size:.9rem!important;
  font-weight:700!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
}


/* =======================================================
   v2.8.3 STAFF LOGIN – simple frontend login for staff
   ======================================================= */

.satnik-staff-login-page{
  max-width:720px!important;
  padding-top:44px!important;
  padding-bottom:60px!important;
}

.satnik-staff-login-card{
  padding:36px 38px!important;
  background:#0a9dbf!important;
  border-radius:14px!important;
  color:#f8ebdb!important;
}

.satnik-staff-login-card h2,
.satnik-staff-login-card p,
.satnik-staff-login-card span,
.satnik-staff-login-card .satnik-reg-kicker{
  color:#f8ebdb!important;
  -webkit-text-fill-color:#f8ebdb!important;
}

.satnik-staff-login-intro{
  margin-bottom:20px!important;
}

.satnik-staff-login-test{
  margin:18px 0 22px!important;
  padding:11px 14px!important;
  border:1px solid rgba(248,235,219,.65)!important;
  border-radius:8px!important;
  color:#f8ebdb!important;
  font-weight:700!important;
}

.satnik-staff-login-form{
  margin-top:20px!important;
}

.satnik-staff-login-form .satnik-reg-field{
  margin-bottom:16px!important;
}

.satnik-staff-login-form input{
  background:#f8ebdb!important;
  color:#14586a!important;
  -webkit-text-fill-color:#14586a!important;
  border:1px solid #f8ebdb!important;
  border-radius:8px!important;
}

.satnik-staff-login-form button{
  width:100%!important;
  min-height:48px!important;
  margin-top:6px!important;
  background:#f8ebdb!important;
  color:#0a9dbf!important;
  -webkit-text-fill-color:#0a9dbf!important;
  border-radius:8px!important;
}

.satnik-staff-login-help{
  margin:18px 0 0!important;
  font-size:.92rem!important;
  opacity:.88!important;
}

.satnik-staff-login-card .satnik-reg-errors{
  background:#f8ebdb!important;
  color:#8b2719!important;
  -webkit-text-fill-color:#8b2719!important;
  border-left-color:#eb2f06!important;
}

.satnik-staff-login-card .satnik-reg-errors p{
  color:#8b2719!important;
  -webkit-text-fill-color:#8b2719!important;
}

@media (max-width:640px){
  .satnik-staff-login-page{
    padding-top:20px!important;
  }

  .satnik-staff-login-card{
    padding:28px 20px!important;
    border-radius:10px!important;
  }
}


/* =======================================================
   v2.8.6 PRE-LIVE – role split + staff calendar polish
   ======================================================= */

/* The current operator is already shown in the main content strip.
   Do not reserve a second beige operator card in the left sidebar. */
.satnik-staff-nav-operator{
  display:none!important;
}

/* With the operator card gone, keep logout naturally at the bottom. */
.satnik-staff-nav-bottom{
  margin-top:auto!important;
}

/* Frontdesk account has only two operational home cards.
   Let them use the available width instead of leaving a registration gap. */
.satnik-staff-home-grid:has(> .satnik-staff-home-card:nth-child(2):last-child){
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}

/* Staff calendar: teal operational page around one beige functional panel.
   Client calendar remains untouched. */
body:has(.satnik-staff-calendar-shell) .l-main{
  background:var(--satnik-brand-teal)!important;
}

.satnik-staff-calendar-shell{
  background:var(--satnik-brand-teal)!important;
}

.satnik-staff-calendar-shell > .satnik-staff-main{
  background:transparent!important;
}

.satnik-staff-calendar-shell .satnik-calendar-wrap{
  background:var(--satnik-brand-beige)!important;
  color:var(--satnik-brand-teal)!important;
  border:1px solid rgba(248,235,219,.82)!important;
  border-radius:12px!important;
  padding:28px 24px 30px!important;
  box-sizing:border-box!important;
}

.satnik-staff-calendar-shell .satnik-calendar-wrap h1,
.satnik-staff-calendar-shell .satnik-calendar-wrap h2,
.satnik-staff-calendar-shell .satnik-calendar-wrap h3,
.satnik-staff-calendar-shell .satnik-calendar-wrap p,
.satnik-staff-calendar-shell .satnik-calendar-wrap strong,
.satnik-staff-calendar-shell .satnik-calendar-wrap span,
.satnik-staff-calendar-shell .satnik-calendar-wrap label{
  color:var(--satnik-brand-teal)!important;
  -webkit-text-fill-color:var(--satnik-brand-teal)!important;
}

/* Keep actual buttons inverse on the beige calendar card. */
.satnik-staff-calendar-shell .satnik-calendar-nav a{
  background:var(--satnik-brand-teal)!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

/* Past slot labels are intentionally neutral/dark, not teal-on-grey. */
.satnik-staff-calendar-shell .satnik-timeline-block.is-past,
.satnik-staff-calendar-shell .satnik-timeline-block.is-past span,
.satnik-staff-calendar-shell .satnik-slot.is-past,
.satnik-staff-calendar-shell .satnik-slot.is-past span{
  color:#5c5a57!important;
  -webkit-text-fill-color:#5c5a57!important;
}

@media (max-width:900px){
  .satnik-staff-calendar-shell .satnik-calendar-wrap{
    padding:20px 14px 24px!important;
    border-radius:9px!important;
  }
}


/* =======================================================
   v2.8.9 LIVE UI – password recovery links on teal portal
   ======================================================= */

.satnik-portal-wrap .satnik-portal-forgot-link a,
.satnik-portal-wrap .satnik-portal-back a{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  text-decoration:underline!important;
  text-underline-offset:4px!important;
  opacity:1!important;
  visibility:visible!important;
}

.satnik-portal-wrap .satnik-portal-forgot-link a:hover,
.satnik-portal-wrap .satnik-portal-back a:hover{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  opacity:.82!important;
}


/* =======================================================
   v2.8.10 LIVE UI – registration link below client login
   ======================================================= */

.satnik-portal-wrap .satnik-portal-register-prompt{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:baseline!important;
  gap:6px 10px!important;
  margin:22px 0 0!important;
  padding:18px 0 0!important;
  max-width:680px!important;
  border-top:1px solid color-mix(
    in srgb,
    var(--satnik-brand-beige) 34%,
    transparent
  )!important;
  font-family:inherit!important;
  font-size:15px!important;
  line-height:1.5!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
}

.satnik-portal-wrap .satnik-portal-register-prompt span{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  opacity:.9!important;
}

.satnik-portal-wrap .satnik-portal-register-prompt a{
  display:inline-block!important;
  width:auto!important;
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  font-weight:700!important;
  text-decoration:underline!important;
  text-underline-offset:4px!important;
  opacity:1!important;
  visibility:visible!important;
}

.satnik-portal-wrap .satnik-portal-register-prompt a:hover{
  color:var(--satnik-brand-beige)!important;
  -webkit-text-fill-color:var(--satnik-brand-beige)!important;
  opacity:.82!important;
}

@media (max-width:600px){
  .satnik-portal-wrap .satnik-portal-register-prompt{
    display:block!important;
  }

  .satnik-portal-wrap .satnik-portal-register-prompt a{
    margin-top:4px!important;
  }
}
