/* ============================================================
   style.css — Hišica v Termah
   Skupni CSS za index.php in admin.php
   ============================================================ */

/* ── Reset & Spremenljivke ──────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

:root {
  /* Barve */
  --teal:    #3d7e7e;
  --teal-l:  #6aacac;
  --teal-d:  #1e4f4f;
  --teal-dd: #122e2e;
  --steam:   #eef5f5;
  --mist:    #d8ebeb;
  --accent:  #e0f0f0;
  --deep:    #162e2e;
  --white:   #fff;
  /* Status */
  --ok:   #3a9e6e;
  --warn: #e07c3a;
  --err:  #c0392b;
  /* Layout */
  --sidebar: 228px;
  --radius:  4px;
}

/* ── Tipografija & Osnove ──────────────────────────────────────────────────── */
html { scroll-behavior: smooth; }

body {
  font-family: 'DM Sans', 'Segoe UI', system-ui, sans-serif;
  background: var(--steam);
  color: var(--deep);
  min-height: 100vh;
}

/* ── Skupne komponente ─────────────────────────────────────────────────────── */

/* Vnosna polja */
input, select, textarea {
  font-family: inherit;
  font-size: .93rem;
  color: var(--deep);
  background: var(--steam);
  border: 1px solid var(--mist);
  padding: .85rem 1rem;
  border-radius: var(--radius);
  outline: none;
  transition: border-color .2s;
  width: 100%;
}
input:focus, select:focus, textarea:focus { border-color: var(--teal); }
textarea { resize: vertical; min-height: 90px; }

/* Oznaka */
label {
  font-size: .68rem;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: rgba(22,46,46,.45);
  font-weight: 500;
}

/* Gumbi */
.btn {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 8px 16px;
  border-radius: var(--radius);
  border: none;
  font-size: .76rem;
  font-weight: 600;
  letter-spacing: .06em;
  cursor: pointer;
  transition: all .18s;
  text-decoration: none;
  white-space: nowrap;
}
.btn-ok          { background: var(--teal-d); color: #fff; }
.btn-ok:hover    { background: var(--teal); }
.btn-del         { background: #fdecea; color: var(--err); border: 1px solid #f5c6c1; }
.btn-del:hover   { background: #f5c6c1; }
.btn-sec         { background: #f0f4f4; color: var(--deep); border: 1px solid var(--mist); }
.btn-sec:hover   { background: var(--mist); }
.btn-sm          { padding: 6px 13px; font-size: .72rem; }

/* Toast obvestilo */
.toast {
  position: fixed;
  bottom: 22px; right: 22px;
  padding: 12px 20px;
  border-radius: var(--radius);
  font-size: .83rem;
  font-weight: 500;
  color: #fff;
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
  z-index: 9999;
  opacity: 0;
  transform: translateY(12px);
  transition: all .3s;
  pointer-events: none;
}
.toast.show   { opacity: 1; transform: translateY(0); }
.toast-ok     { background: var(--ok); }
.toast-err    { background: var(--err); }

/* Prazno stanje */
.empty       { text-align: center; padding: 50px 20px; color: rgba(22,46,46,.4); }
.empty-icon  { font-size: 2.8rem; margin-bottom: 10px; }
.empty-txt   { font-family: Georgia, serif; font-size: 1.05rem; font-weight: 300; }

/* Animacije */
@keyframes fadeUp   { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }
@keyframes fadeIn   { from { opacity: 0; } to { opacity: 1; } }
@keyframes scaleIn  { from { opacity: 0; transform: scale(.95); } to { opacity: 1; transform: scale(1); } }
@keyframes bounce   { 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
@keyframes rise     { from { transform: translateY(0) scale(1); opacity: .7; } to { transform: translateY(-100vh) scale(1.4); opacity: 0; } }


/* ═══════════════════════════════════════════════════════════════════
   INDEX.PHP — Javna stran
   ═══════════════════════════════════════════════════════════════════ */

/* ── Hero sekcija ──────────────────────────────────────────────────────────── */
.hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background: var(--teal-d);
}
.hero-bg {
  position: absolute; inset: 0;
  background:
    radial-gradient(ellipse at 30% 60%, rgba(106,172,172,.18) 0%, transparent 55%),
    radial-gradient(ellipse at 75% 30%, rgba(61,126,126,.12) 0%, transparent 50%),
    linear-gradient(160deg, #0d2525 0%, #1e4f4f 50%, #163838 100%);
}
.bubbles { position: absolute; inset: 0; overflow: hidden; pointer-events: none; }
.bubble  {
  position: absolute; bottom: -20px; border-radius: 50%;
  background: rgba(255,255,255,.04);
  animation: rise linear infinite;
}
.bubble:nth-child(1) { width:14px; height:14px; left:10%; animation-duration:9s; }
.bubble:nth-child(2) { width: 8px; height: 8px; left:25%; animation-duration:12s; animation-delay:2s; }
.bubble:nth-child(3) { width:20px; height:20px; left:40%; animation-duration:8s;  animation-delay:1s; }
.bubble:nth-child(4) { width:10px; height:10px; left:55%; animation-duration:14s; animation-delay:3s; }
.bubble:nth-child(5) { width:16px; height:16px; left:70%; animation-duration:10s; animation-delay:.5s; }
.bubble:nth-child(6) { width: 6px; height: 6px; left:85%; animation-duration:11s; animation-delay:4s; }
.bubble:nth-child(7) { width:12px; height:12px; left:18%; animation-duration:13s; animation-delay:1.5s; }
.bubble:nth-child(8) { width:18px; height:18px; left:62%; animation-duration:7s;  animation-delay:2.5s; }
.water-line { position: absolute; bottom: 0; left: 0; width: 100%; height: 80px; opacity: .12; }

.hero-content  { position: relative; z-index: 2; text-align: center; padding: 2rem; }
.hero-eyebrow  { font-size:.7rem; letter-spacing:.35em; text-transform:uppercase; color:var(--teal-l); margin-bottom:1.5rem; opacity:0; animation:fadeUp 1s ease .3s both; }
.hero-title    { font-family:'Cormorant Garamond',serif; font-size:clamp(3rem,9vw,7.5rem); font-weight:300; color:#e8f4f4; line-height:.95; margin-bottom:.5rem; opacity:0; animation:fadeUp 1s ease .5s both; }
.hero-title em { font-style:italic; color:var(--teal-l); display:block; }
.hero-sub      { font-family:'Cormorant Garamond',serif; font-size:clamp(1rem,2.5vw,1.6rem); font-weight:300; color:rgba(232,244,244,.45); margin-bottom:2.5rem; opacity:0; animation:fadeUp 1s ease .7s both; }
.hero-pills    { display:flex; gap:.75rem; justify-content:center; flex-wrap:wrap; margin-bottom:3rem; opacity:0; animation:fadeUp 1s ease .9s both; }
.hero-pill     { background:rgba(255,255,255,.07); border:1px solid rgba(106,172,172,.3); color:var(--teal-l); font-size:.72rem; letter-spacing:.1em; padding:.45rem 1rem; border-radius:100px; }
.hero-scroll        { display:inline-flex; align-items:center; gap:.75rem; color:rgba(232,244,244,.5); font-size:.72rem; letter-spacing:.25em; text-transform:uppercase; text-decoration:none; opacity:0; animation:fadeUp 1s ease 1.1s both; transition:color .3s,gap .3s; }
.hero-scroll:hover  { color:var(--teal-l); gap:1.2rem; }
.hero-scroll svg    { animation:bounce 2s ease infinite; }

/* ── Layout ────────────────────────────────────────────────────────────────── */
.section      { padding: 4rem 2rem 6rem; max-width: 1160px; margin: 0 auto; }
.section-head { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:3.5rem; flex-wrap:wrap; gap:2rem; margin-top:4rem; }
.section-title      { font-family:'Cormorant Garamond',serif; font-size:clamp(2.2rem,5vw,4rem); font-weight:300; line-height:1; }
.section-title span { display:block; font-style:italic; color:var(--teal); }
.section-note { font-size:.82rem; color:rgba(22,46,46,.5); max-width:230px; line-height:1.65; }

/* ── Amenitete ─────────────────────────────────────────────────────────────── */
.features    { display:grid; grid-template-columns:repeat(auto-fit,minmax(170px,1fr)); gap:1px; background:var(--mist); border-radius:var(--radius); overflow:hidden; margin-top:1rem; }
.feat        { background:#fff; padding:2rem 1.75rem; transition:background .2s; }
.feat:hover  { background:var(--accent); }
.feat-icon   { font-size:1.6rem; margin-bottom:.75rem; }
.feat-name   { font-family:'Cormorant Garamond',serif; font-size:1.1rem; margin-bottom:.35rem; }
.feat-desc   { font-size:.78rem; color:rgba(22,46,46,.5); line-height:1.6; }

/* ── Legenda ───────────────────────────────────────────────────────────────── */
.legend      { display:flex; gap:2rem; flex-wrap:wrap; margin-bottom:1.5rem; }
.legend-item { display:flex; align-items:center; gap:.5rem; font-size:.78rem; color:rgba(22,46,46,.6); }
.legend-dot  { width:12px; height:12px; border-radius:3px; }
/* .legend-item ima display:flex, kar premaga privzeti [hidden]{display:none} iz UA sloga —
   brez tega guarda bi bila postavka vidna kljub hidden. Omejeno na nov razred, da ne
   posega v obstoječe tri postavke. */
.legend-item-unavail[hidden] { display:none; }
/* Izrazitejša šrafura kot v celici koledarja: kvadratek je 12×12 px, pri 8 % bi bil neviden.
   Nad njim ni besedila, zato kontrastna omejitev celice tu ne velja. */
.legend-dot-unavail { background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--teal) 45%, transparent) 0 2px, transparent 2px 4px); border:1px solid color-mix(in srgb, var(--teal) 35%, transparent); }

/* Najzgodnejši možen prihod — namerno brez lastnosti display, da deluje privzeti
   [hidden]{display:none}. Kdor doda display, mora dodati tudi [hidden] guard. */
.cal-omejitev { font-size:.82rem; line-height:1.65; margin-bottom:1.25rem; color:color-mix(in srgb, var(--deep) 75%, transparent); }

/* ── Koledar ───────────────────────────────────────────────────────────────── */
.cal-wrap      { background:#fff; border-radius:var(--radius); box-shadow:0 4px 40px rgba(22,46,46,.08); overflow:hidden; margin-bottom:3rem; }
.cal-head      { display:flex; align-items:center; justify-content:space-between; padding:1.5rem 2rem; background:var(--teal-d); }
.cal-nav       { background:none; border:1px solid rgba(106,172,172,.3); color:var(--teal-l); width:40px; height:40px; border-radius:50%; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:all .2s; font-size:1.1rem; }
.cal-nav:hover { background:rgba(106,172,172,.15); color:#e8f4f4; }
.cal-month     { font-family:'Cormorant Garamond',serif; font-size:1.8rem; font-weight:300; color:#e8f4f4; }
.cal-year      { font-size:.7rem; color:var(--teal-l); letter-spacing:.2em; text-align:center; margin-top:-.2rem; }

.cal-days-head     { display:grid; grid-template-columns:repeat(7,1fr); background:var(--mist); }
.cal-days-head div { padding:.9rem .5rem; text-align:center; font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:var(--teal); font-weight:500; }
.cal-grid          { display:grid; grid-template-columns:repeat(7,1fr); }

.cal-day                             { min-height:56px; display:flex; flex-direction:column; align-items:center; justify-content:center; border:.5px solid rgba(22,46,46,.05); cursor:pointer; transition:background .12s; position:relative; user-select:none; padding:4px 2px; }
.cal-day:hover:not(.taken):not(.empty):not(.past):not(.unavailable) { background:rgba(61,126,126,.08); }
.cal-day.empty, .cal-day.past        { cursor:default; }
.cal-day.past .day-n                 { color:rgba(22,46,46,.2); }
.cal-day.taken                       { background:rgba(61,126,126,.04); cursor:not-allowed; }
.cal-day.taken .day-n                { color:rgba(22,46,46,.25); text-decoration:line-through; }
.cal-day.taken .taken-lbl            { font-size:.48rem; color:rgba(61,126,126,.5); margin-top:2px; }
.cal-day.rs, .cal-day.re            { background:var(--teal) !important; z-index:2; }
.cal-day.rs .day-n, .cal-day.re .day-n { color:#fff !important; }
.cal-day.range                       { background:rgba(61,126,126,.12); }
.cal-day.today .day-n                { color:var(--teal); font-weight:600; }
.cal-day.weekend                     { background: rgba(61,126,126,.05); }
.cal-day.weekend .day-n              { color: var(--teal-d); }
.cal-day.weekend.past .day-n         { color: rgba(22,46,46,.2); }
.cal-day.weekend.taken               { background: rgba(61,126,126,.04); } /* zasedena barva prevlada */
.cal-day.weekend.rs, .cal-day.weekend.re { background: var(--teal) !important; }

/* Prezgodaj za novo rezervacijo — enaka vizualna teža kot .taken, druga oznaka.
   MORA stati za .today/.weekend pravili: pri vklopljenem pravilu je današnji dan vedno
   blokiran in nosi tudi .today, ki ima enako specifičnost — odloča vrstni red. */
.cal-day.unavailable                 { background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--teal) 8%, transparent) 0 3px, transparent 3px 7px); cursor:not-allowed; }
.cal-day.weekend.unavailable         { background:repeating-linear-gradient(135deg, color-mix(in srgb, var(--teal) 8%, transparent) 0 3px, transparent 3px 7px); }
.cal-day.unavailable .day-n          { color:color-mix(in srgb, var(--deep) 70%, transparent); text-decoration:line-through; }
.cal-day.unavailable .unavail-lbl    { font-size:.52rem; line-height:1; margin-top:2px; color:var(--teal-d); }

.day-n          { font-family:'Cormorant Garamond',serif; font-size:1.1rem; line-height:1; color:var(--deep); }
.day-price      { font-size:.52rem; color:rgba(22,46,46,.38); margin-top:1px; line-height:1; }
.day-price.special                   { color:var(--teal); font-weight:600; }
.cal-day.rs .day-price, .cal-day.re .day-price { color:rgba(255,255,255,.8) !important; }
.cal-day.range .day-price            { color:var(--teal); }

/* ── Cena box ──────────────────────────────────────────────────────────────── */
.cena-box       { background:linear-gradient(135deg,var(--teal-d),var(--teal)); border-radius:var(--radius); padding:1.25rem 1.5rem; margin-bottom:1.5rem; color:#fff; }
.cena-label     { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; opacity:.7; margin-bottom:4px; }
.cena-total     { font-family:'Cormorant Garamond',serif; font-size:2.2rem; font-weight:300; line-height:1; }
.cena-breakdown { font-size:.75rem; margin-top:8px; }

/* Razčlenitev cene — vrstice */
.cb-vrstica      { display:flex; justify-content:space-between; gap:12px; padding:3px 0; opacity:.82; border-bottom:1px solid rgba(255,255,255,.1); }
.cb-vrstica:first-child { padding-top:0; }
.cb-naziv        { opacity:.85; }
.cb-vrednost     { font-weight:500; text-align:right; }
.cb-skupaj       { display:flex; justify-content:space-between; gap:12px; padding:5px 0 0; font-weight:600; font-size:.8rem; border-top:1px solid rgba(255,255,255,.3); margin-top:2px; }

/* ── Obvezna doplačila (informativna škatlica pod koledarjem) ────────────────── */
.stroski-info      { background:#fff; border-radius:var(--radius); padding:1.5rem 2rem; margin:-1.5rem 0 3rem; box-shadow:0 4px 40px rgba(22,46,46,.07); border-left:3px solid var(--teal); }
.stroski-info-title { font-size:.82rem; font-weight:600; color:var(--deep); margin-bottom:.75rem; }
.stroski-info-list  { list-style:none; display:flex; flex-direction:column; gap:.6rem; }
.stroski-info-list li { font-size:.8rem; line-height:1.5; color:var(--deep); }
.si-naziv           { font-weight:600; }
.si-opis             { color:rgba(22,46,46,.55); }
.si-opis::before     { content:" — "; }

/* ── Obrazec ───────────────────────────────────────────────────────────────── */
.form-box        { background:#fff; border-radius:var(--radius); padding:3rem; box-shadow:0 4px 40px rgba(22,46,46,.07); }
.form-top        { display:flex; align-items:flex-start; justify-content:space-between; gap:2rem; margin-bottom:2.5rem; flex-wrap:wrap; }
.form-title      { font-family:'Cormorant Garamond',serif; font-size:2rem; font-weight:300; }
.form-title em   { font-style:italic; color:var(--teal); }
.form-desc       { font-size:.82rem; color:rgba(22,46,46,.5); margin-top:.4rem; line-height:1.65; }

.price-box       { text-align:right; flex-shrink:0; }
.price-lbl       { font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(22,46,46,.4); margin-bottom:.3rem; }
.price-val       { font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--teal-d); line-height:1; }
.price-sub       { font-size:.75rem; color:rgba(22,46,46,.4); }

.date-row        { display:flex; gap:1rem; margin-bottom:1.5rem; flex-wrap:wrap; }
.date-chip       { flex:1; min-width:140px; background:var(--steam); border:1px solid var(--mist); border-radius:var(--radius); padding:1rem 1.25rem; cursor:pointer; transition:border-color .2s, box-shadow .2s; }
.date-chip:hover  { border-color:rgba(61,126,126,.4); }
.date-chip.chip-active { border-color:var(--teal); box-shadow:0 0 0 3px rgba(61,126,126,.15); background:#fff; }
.date-chip.chip-active .date-chip-lbl { color:var(--teal-d); }
.date-chip-lbl   { font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(22,46,46,.4); margin-bottom:.3rem; }
.date-chip-val   { font-family:'Cormorant Garamond',serif; font-size:1.25rem; color:var(--deep); }
.date-chip-val.ph { color:rgba(22,46,46,.25); font-style:italic; }

.nights          { display:flex; align-items:center; gap:.5rem; font-size:.8rem; color:var(--teal); margin-bottom:1rem; font-weight:500; }
.form-grid       { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.5rem; }
.fg              { display:flex; flex-direction:column; gap:.45rem; }

.submit-btn          { width:100%; padding:1.1rem 2rem; background:var(--teal-d); color:#e8f4f4; border:none; border-radius:var(--radius); font-family:inherit; font-size:.78rem; letter-spacing:.22em; text-transform:uppercase; cursor:pointer; transition:all .3s; position:relative; overflow:hidden; }
.submit-btn::before  { content:''; position:absolute; inset:0; background:var(--teal); transform:translateX(-100%); transition:transform .4s ease; }
.submit-btn:hover::before { transform:translateX(0); }
.submit-btn:disabled { opacity:.6; cursor:not-allowed; }
.submit-btn span     { position:relative; z-index:1; }

/* ── Overlay uspeh ─────────────────────────────────────────────────────────── */
.overlay       { display:none; position:fixed; inset:0; background:rgba(22,46,46,.82); z-index:1000; align-items:center; justify-content:center; backdrop-filter:blur(6px); }
.overlay.show  { display:flex; animation:fadeIn .4s ease; }
.ov-card       { background:var(--steam); padding:3.5rem; max-width:460px; width:90%; text-align:center; border-radius:var(--radius); animation:scaleIn .4s ease; }
.ov-icon       { width:56px; height:56px; background:var(--teal); border-radius:50%; display:flex; align-items:center; justify-content:center; margin:0 auto 1.5rem; color:#fff; font-size:1.5rem; }
.ov-title      { font-family:'Cormorant Garamond',serif; font-size:2.5rem; font-weight:300; margin-bottom:1rem; }
.ov-title em   { font-style:italic; color:var(--teal); }
.ov-text       { font-size:.87rem; color:rgba(22,46,46,.6); line-height:1.75; margin-bottom:.75rem; }
.ov-id         { font-size:.75rem; color:rgba(22,46,46,.4); margin-bottom:2rem; }
.ov-id strong  { color:var(--teal); }
.ov-close      { background:var(--teal-d); color:#e8f4f4; border:none; padding:.9rem 2.5rem; font-family:inherit; font-size:.75rem; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; border-radius:var(--radius); transition:background .3s; }
.ov-close:hover { background:var(--teal); }

/* ── Footer ────────────────────────────────────────────────────────────────── */
.footer   { background:var(--teal-d); padding:2rem; text-align:center; color:rgba(232,244,244,.35); font-size:.75rem; letter-spacing:.1em; }
.footer a { color:var(--teal-l); text-decoration:none; }

/* ── Responzivno (index) ────────────────────────────────────────────────────── */
@media (max-width: 640px) {
  .form-grid                         { grid-template-columns: 1fr; }
  .section-head, .form-top           { flex-direction: column; align-items: flex-start; }
  .price-box                         { text-align: left; }
  .form-box                          { padding: 2rem 1.5rem; }
  .cal-day                           { min-height: 44px; }
  .day-n                             { font-size: .9rem; }
}


/* ── Galerija ──────────────────────────────────────────────────────────────── */
.gallery-wrap {
  margin: 3.5rem 0 1rem;
}
.gallery-head {
  margin-bottom: 1.75rem;
}

/*
  Grid galerija: 1 velika slika levo + 3×2 mreža desno
  Na manjših ekranih se preklopi na enostavno mrežo
*/
.gallery {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  grid-template-rows: 200px 200px 120px;
  gap: 8px;
  border-radius: var(--radius);
  overflow: hidden;
}

/* Slika 1 — velika levo, zavzame obe zgornji vrstici */
.gallery-item.gallery-main {
  grid-column: 1 / 2;
  grid-row: 1 / 3;
}

/* Slika 2: desno zgoraj (stolpci 2–4, vrstica 1) */
.gallery-item.gallery-top-r {
  grid-column: 2 / 5;
  grid-row: 1 / 2;
}

/* Slika 3: desno sredina (stolpci 2–4, vrstica 2) */
.gallery-item.gallery-mid-r {
  grid-column: 2 / 5;
  grid-row: 2 / 3;
}

/* Slike 4–7: spodnja vrsta (vsaka 1 stolpec, vrstica 3) */
.gallery-item.gallery-bot {
  grid-row: 3 / 4;
}

.gallery-item {
  position: relative;
  overflow: hidden;
  background: var(--mist);
  cursor: pointer;
}

.gallery-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .45s ease;
}

.gallery-item:hover img {
  transform: scale(1.05);
}

/* Hover overlay */
.gallery-overlay {
  position: absolute;
  inset: 0;
  background: rgba(22,46,46,.4);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  transition: opacity .25s;
}
.gallery-overlay span {
  font-size: 1.8rem;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.4));
}
.gallery-item:hover .gallery-overlay {
  opacity: 1;
}

/* Slika manjka — placeholder */
.gallery-item.gallery-missing {
  cursor: default;
  background: var(--steam);
  border: 1px dashed var(--mist);
}
.gallery-item.gallery-missing img {
  display: none;
}
.gallery-item.gallery-missing::after {
  content: '📷';
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  opacity: .25;
}
.gallery-item.gallery-missing .gallery-overlay {
  display: none;
}

/* ── Lightbox ──────────────────────────────────────────────────────────────── */
.lb-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(10, 20, 20, .94);
  z-index: 2000;
  align-items: center;
  justify-content: center;
  backdrop-filter: blur(8px);
}
.lb-overlay.lb-show {
  display: flex;
  animation: fadeIn .25s ease;
}

.lb-img-wrap {
  max-width: 90vw;
  max-height: 85vh;
  display: flex;
  align-items: center;
  justify-content: center;
}
.lb-img {
  max-width: 90vw;
  max-height: 85vh;
  object-fit: contain;
  border-radius: var(--radius);
  box-shadow: 0 20px 80px rgba(0,0,0,.6);
  animation: scaleIn .25s ease;
  user-select: none;
}

.lb-close {
  position: fixed;
  top: 20px; right: 24px;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.2);
  color: #fff;
  width: 42px; height: 42px;
  border-radius: 50%;
  font-size: 1rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
  z-index: 10;
}
.lb-close:hover {
  background: rgba(255,255,255,.25);
}

.lb-nav {
  position: fixed;
  top: 50%; transform: translateY(-50%);
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.15);
  color: #fff;
  width: 48px; height: 48px;
  border-radius: 50%;
  font-size: 1.2rem;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: background .2s;
  z-index: 10;
}
.lb-nav:hover    { background: rgba(255,255,255,.22); }
.lb-prev         { left: 16px; }
.lb-next         { right: 16px; }

.lb-counter {
  position: fixed;
  bottom: 20px; left: 50%;
  transform: translateX(-50%);
  background: rgba(0,0,0,.5);
  color: rgba(255,255,255,.8);
  font-size: .78rem;
  letter-spacing: .1em;
  padding: 5px 14px;
  border-radius: 100px;
}

/* ── Responzivno – galerija ─────────────────────────────────────────────────── */

/* Tablet: 2 stolpca enake velikosti, brez "hero" slike */
@media (max-width: 900px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-template-rows: auto;
    grid-auto-rows: 160px;
  }
  .gallery-item.gallery-main,
  .gallery-item.gallery-top-r,
  .gallery-item.gallery-mid-r,
  .gallery-item.gallery-bot {
    grid-column: auto;
    grid-row: auto;
  }
}

/* Manjši telefoni: 2 stolpca */
@media (max-width: 560px) {
  .gallery {
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 130px;
    gap: 5px;
  }
  .lb-nav { width: 38px; height: 38px; font-size: 1rem; }
  .lb-prev { left: 8px; }
  .lb-next { right: 8px; }
}

/* ═══════════════════════════════════════════════════════════════════
   ADMIN.PHP — Admin panel
   ═══════════════════════════════════════════════════════════════════ */

/* ── Prijava ────────────────────────────────────────────────────────────────── */
.login-wrap    { min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#0d2525,#1e4f4f 60%,#163838); }
.login-card    { background:#fff; border-radius:6px; width:100%; max-width:400px; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.35); }
.login-head    { background:var(--teal-d); padding:36px; text-align:center; }
.login-logo    { font-family:Georgia,serif; font-size:1.6rem; font-weight:300; color:#e8f4f4; }
.login-logo em { font-style:italic; color:var(--teal-l); }
.login-sub     { font-size:.68rem; color:var(--teal-l); letter-spacing:.2em; text-transform:uppercase; margin-top:6px; }
.login-body    { padding:36px; }
.lerr          { background:#fef0ec; border:1px solid #f0b49a; color:#8a3010; padding:10px 14px; border-radius:var(--radius); font-size:.83rem; margin-bottom:20px; }
.login-fg             { margin-bottom:18px; }
.login-fg label       { display:block; font-size:.65rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(22,46,46,.5); font-weight:600; margin-bottom:6px; }
.login-fg input       { padding:.8rem 1rem; }
.btn-login            { width:100%; padding:1rem; background:var(--teal-d); color:#e8f4f4; border:none; border-radius:var(--radius); font-size:.8rem; letter-spacing:.2em; text-transform:uppercase; cursor:pointer; transition:background .2s; }
.btn-login:hover      { background:var(--teal); }

/* ── App layout ─────────────────────────────────────────────────────────────── */
body.admin-body { background: #f0f4f4; }
.app    { display:flex; min-height:100vh; }

/* ── Sidebar ────────────────────────────────────────────────────────────────── */
.sidebar      { width:var(--sidebar); background:var(--teal-dd); display:flex; flex-direction:column; position:fixed; top:0; left:0; bottom:0; z-index:100; }
.sb-logo      { padding:24px 18px 16px; border-bottom:1px solid rgba(255,255,255,.07); }
.sb-logo-t    { font-family:Georgia,serif; font-size:1.05rem; font-weight:300; color:#e8f4f4; line-height:1.2; }
.sb-logo-t em { font-style:italic; color:var(--teal-l); }
.sb-logo-s    { font-size:.6rem; color:rgba(106,172,172,.55); letter-spacing:.15em; text-transform:uppercase; margin-top:4px; }
.sb-user      { padding:12px 18px; border-bottom:1px solid rgba(255,255,255,.07); }
.sb-user-l    { font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(106,172,172,.5); }
.sb-user-n    { font-size:.83rem; color:#e8f4f4; margin-top:2px; }
nav           { flex:1; padding:8px 0; overflow-y:auto; }
.nav-item          { display:flex; align-items:center; gap:11px; padding:12px 18px; color:rgba(232,244,244,.5); font-size:.86rem; text-decoration:none; transition:all .18s; border-left:3px solid transparent; white-space:nowrap; }
.nav-item:hover    { color:#e8f4f4; background:rgba(255,255,255,.05); border-left-color:rgba(106,172,172,.4); }
.nav-item.active   { color:#e8f4f4; background:rgba(255,255,255,.07); border-left-color:var(--teal-l); }
.nav-icon          { font-size:1rem; width:20px; text-align:center; flex-shrink:0; }
.nav-badge         { margin-left:auto; background:var(--warn); color:#fff; font-size:.62rem; font-weight:700; padding:2px 7px; border-radius:100px; flex-shrink:0; }
.sb-footer         { padding:14px 18px; border-top:1px solid rgba(255,255,255,.07); font-size:.68rem; color:rgba(106,172,172,.35); text-align:center; }

/* ── Main ───────────────────────────────────────────────────────────────────── */
.main          { margin-left:var(--sidebar); flex:1; display:flex; flex-direction:column; min-width:0; }
.topbar        { background:#fff; padding:0 28px; height:54px; display:flex; align-items:center; border-bottom:1px solid var(--mist); box-shadow:0 1px 4px rgba(22,46,46,.05); }
.topbar-title  { font-family:Georgia,serif; font-size:1.2rem; font-weight:300; color:var(--deep); }
.topbar-title em { font-style:italic; color:var(--teal); }
.content       { padding:24px 28px; flex:1; }

/* ── Stat kartice ───────────────────────────────────────────────────────────── */
.stat-row  { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:14px; margin-bottom:24px; }
.stat-card { background:#fff; border-radius:var(--radius); padding:18px 20px; box-shadow:0 2px 8px rgba(22,46,46,.06); }
.stat-n    { font-family:Georgia,serif; font-size:2.1rem; font-weight:300; color:var(--teal-d); line-height:1; }
.stat-l    { font-size:.68rem; color:rgba(22,46,46,.45); letter-spacing:.1em; text-transform:uppercase; margin-top:4px; }

/* ── Tabela ─────────────────────────────────────────────────────────────────── */
.tbl-wrap       { background:#fff; border-radius:var(--radius); box-shadow:0 2px 8px rgba(22,46,46,.06); overflow:hidden; margin-bottom:20px; }
.tbl-head       { padding:16px 22px; border-bottom:1px solid var(--mist); display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.tbl-head h3    { font-family:Georgia,serif; font-size:1.05rem; font-weight:400; }
table           { width:100%; border-collapse:collapse; font-size:.83rem; }
th              { text-align:left; padding:10px 13px; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(22,46,46,.4); background:#f8fafa; border-bottom:1px solid var(--mist); white-space:nowrap; }
td              { padding:11px 13px; border-bottom:1px solid rgba(22,46,46,.05); vertical-align:top; }
tr:last-child td { border-bottom:none; }
tr:hover td     { background:#f8fafa; }
td a            { color:var(--teal); text-decoration:none; }
td a:hover      { text-decoration:underline; }
.td-bold        { font-weight:600; }
.td-date        { font-family:Georgia,serif; font-size:.88rem; }
.td-price       { font-family:Georgia,serif; font-size:.95rem; color:var(--teal-d); font-weight:600; }

/* ── Rezervacija kartice ────────────────────────────────────────────────────── */
.rez-card               { background:#fff; border-radius:var(--radius); box-shadow:0 2px 8px rgba(22,46,46,.06); margin-bottom:14px; overflow:hidden; border-left:4px solid var(--warn); }
.rez-card.confirmed     { border-left-color:var(--ok); opacity:.65; pointer-events:none; }
.rez-card.rejected      { border-left-color:var(--err); opacity:.5; pointer-events:none; }
.rch                    { padding:14px 18px; display:flex; align-items:flex-start; gap:14px; flex-wrap:wrap; }
.rch-av                 { width:42px; height:42px; border-radius:50%; background:var(--teal-d); display:flex; align-items:center; justify-content:center; color:#e8f4f4; font-family:Georgia,serif; font-size:1.2rem; font-weight:300; flex-shrink:0; }
.rch-info               { flex:1; min-width:0; }
.rch-name               { font-weight:600; font-size:.92rem; }
.rch-meta               { font-size:.76rem; color:rgba(22,46,46,.5); margin-top:3px; display:flex; flex-wrap:wrap; gap:10px; }
.rch-meta a             { color:var(--teal); }
.rch-actions            { display:flex; gap:8px; align-items:center; flex-shrink:0; }
.rcb                    { padding:14px 18px 16px; border-top:1px solid rgba(22,46,46,.06); }
.rez-dates              { display:flex; gap:20px; flex-wrap:wrap; padding:4px 0 10px; }
.rdi                    { font-size:.8rem; }
.rdi-l                  { font-size:.58rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(22,46,46,.4); margin-bottom:3px; }
.rdi-v                  { font-family:Georgia,serif; font-size:1rem; }
.rez-price-tag          { display:inline-flex; align-items:center; gap:8px; background:linear-gradient(135deg,var(--teal-d),var(--teal)); color:#fff; padding:8px 14px; border-radius:var(--radius); font-size:.82rem; margin:8px 0; }
.rez-price-tag strong   { font-family:Georgia,serif; font-size:1.1rem; font-weight:300; }
.rez-msg                { font-size:.8rem; color:rgba(22,46,46,.6); background:var(--steam); padding:9px 13px; border-radius:var(--radius); margin-top:8px; line-height:1.6; font-style:italic; }
.rez-id                 { font-size:.67rem; color:rgba(22,46,46,.28); margin-top:7px; }

/* ── Nastavitve cen ─────────────────────────────────────────────────────────── */
.cene-wrap  { display:grid; grid-template-columns:1fr 340px; gap:20px; align-items:start; }
.cen-card   { background:#fff; border-radius:var(--radius); box-shadow:0 2px 8px rgba(22,46,46,.06); overflow:hidden; }
.cen-card-h { padding:14px 20px; border-bottom:1px solid var(--mist); display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.cen-card-h h3 { font-family:Georgia,serif; font-size:1rem; font-weight:400; }
.cen-card-b { padding:18px 20px; }

.adm-cal-grid  { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.adm-dh        { font-size:.58rem; letter-spacing:.1em; text-transform:uppercase; color:rgba(22,46,46,.35); text-align:center; padding:4px 0; }
.adm-day       { min-height:52px; border-radius:var(--radius); cursor:pointer; transition:all .12s; padding:4px; border:2px solid transparent; display:flex; flex-direction:column; align-items:center; }
.adm-day:hover:not(.adm-past):not(.adm-empty) { background:rgba(61,126,126,.08); border-color:rgba(61,126,126,.2); }
.adm-day.adm-empty, .adm-day.adm-past  { cursor:default; opacity:.35; }
.adm-day.adm-selected                  { background:rgba(61,126,126,.12); border-color:var(--teal); }
.adm-day.adm-has-price                 { background:#e8f4f0; }
.adm-day.adm-selected.adm-has-price    { background:rgba(61,126,172,.2); }
.adm-dn        { font-family:Georgia,serif; font-size:.95rem; color:var(--deep); margin-top:2px; }
.adm-dc        { font-size:.55rem; color:var(--teal); font-weight:600; margin-top:1px; }
.adm-day.adm-today .adm-dn            { color:var(--teal); font-weight:700; }
.adm-cal-month.adm-month-clickable    { cursor:pointer; border-radius:var(--radius); transition:background .12s; }
.adm-cal-month.adm-month-clickable:hover { background:rgba(61,126,126,.08); }

.cene-quick    { display:flex; flex-direction:column; gap:10px; }
.cq-label      { font-size:.65rem; letter-spacing:.12em; text-transform:uppercase; color:rgba(22,46,46,.45); font-weight:600; margin-bottom:4px; }
.cena-input-row { display:flex; gap:8px; align-items:center; }
.cena-input    { padding:.7rem .9rem; font-size:.9rem; }
.eur-suffix    { font-size:.8rem; color:rgba(22,46,46,.4); white-space:nowrap; }
.bulk-row      { display:flex; flex-wrap:wrap; gap:6px; margin-top:4px; }
.bulk-btn      { flex:1; min-width:80px; padding:8px; border:1px solid var(--mist); background:var(--steam); border-radius:var(--radius); font-size:.74rem; color:var(--deep); cursor:pointer; transition:all .15s; text-align:center; }
.bulk-btn:hover { background:var(--teal-d); color:#fff; border-color:var(--teal-d); }
.vec-mes-leto  { margin-bottom:6px; }
.vec-mes-grid  { display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-bottom:6px; }
.vec-mes-item  { display:flex; align-items:center; gap:6px; padding:6px 8px; border:1px solid var(--mist); background:var(--steam); border-radius:var(--radius); font-size:.76rem; color:var(--deep); cursor:pointer; transition:all .15s; }
.vec-mes-item input { width:auto; margin:0; accent-color:var(--teal-d); }
.vec-mes-item.vec-mes-checked { background:var(--teal-d); color:#fff; border-color:var(--teal-d); }
.vec-mes-btn   { width:100%; }
.sel-info      { background:var(--steam); border-radius:var(--radius); padding:10px 14px; font-size:.8rem; color:rgba(22,46,46,.6); border-left:3px solid var(--teal); }
.sel-count     { font-family:Georgia,serif; font-size:1.3rem; color:var(--teal-d); font-weight:300; }
.opomba-input  { padding:.65rem .9rem; font-size:.82rem; }
.save-bar      { background:#fff; border-top:1px solid var(--mist); padding:14px 20px; display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.save-info     { font-size:.78rem; color:rgba(22,46,46,.5); }
.legend-row    { display:flex; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.leg-item      { display:flex; align-items:center; gap:6px; font-size:.74rem; color:rgba(22,46,46,.6); }
.leg-dot       { width:14px; height:14px; border-radius:2px; flex-shrink:0; }

/* ── Responzivno (admin) ────────────────────────────────────────────────────── */
@media (max-width: 900px) { .cene-wrap { grid-template-columns: 1fr; } }

/* ── Mobile top bar ──────────────────────────────────────────────────────────── */
.mob-topbar {
  display: none;
  position: fixed;
  top: 0; left: 0; right: 0;
  height: 56px;
  background: var(--teal-dd);
  z-index: 200;
  align-items: center;
  justify-content: space-between;
  padding: 0 16px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
.mob-logo {
  font-family: Georgia, serif;
  font-size: .95rem;
  font-weight: 300;
  color: #e8f4f4;
}
.mob-logo em { font-style: italic; color: var(--teal-l); }

/* Hamburger */
.mob-burger {
  background: none;
  border: none;
  cursor: pointer;
  padding: 6px;
  display: flex;
  flex-direction: column;
  gap: 5px;
  width: 36px;
}
.mob-burger span {
  display: block;
  height: 2px;
  background: #e8f4f4;
  border-radius: 2px;
  transition: all .25s;
  transform-origin: center;
}
.mob-burger.open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mob-burger.open span:nth-child(2) { opacity: 0; }
.mob-burger.open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* Overlay */
.mob-nav-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.5);
  z-index: 149;
  backdrop-filter: blur(2px);
}
.mob-nav-overlay.show { display: block; }

@media (max-width: 768px) {
  /* Mob topbar */
  .mob-topbar { display: flex; }

  /* Sidebar — off-canvas */
  .sidebar {
    position: fixed;
    top: 0; left: 0; bottom: 0;
    width: 260px !important;
    transform: translateX(-100%);
    transition: transform .28s cubic-bezier(.4,0,.2,1);
    z-index: 150;
    overflow-y: auto;
  }
  .sidebar.mob-open { transform: translateX(0); }

  /* Show all sidebar elements again on mobile open */
  .sb-logo-t, .sb-logo-s, .sb-user,
  .nav-item span:not(.nav-icon),
  .sb-footer { display: revert !important; }
  .nav-item { justify-content: flex-start !important; padding: 13px 18px !important; }

  /* Main content */
  .main { margin-left: 0 !important; padding-top: 56px; }
  .topbar { display: none; }
  .content { padding: 12px; }

  /* Cards in full width */
  .cene-wrap { grid-template-columns: 1fr !important; gap: 12px; }
  .stat-row  { gap: 8px; }
  .stat-card { min-width: 80px; padding: 12px 8px; }
  .stat-n    { font-size: 1.2rem; }

  /* Reservation cards */
  .rez-card { border-radius: 8px; }
  .rch { flex-wrap: wrap; gap: 8px; }
  .rch-actions { width: 100%; display: flex; gap: 6px; }
  .rch-actions .btn { flex: 1; justify-content: center; padding: 10px 8px; font-size: .78rem; }
  .rez-dates { grid-template-columns: 1fr 1fr; gap: 8px; }
  .pred-btni { flex-wrap: wrap; }

  /* Tables scroll horizontally */
  .cen-card table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }

  /* Domov table */
  .adm-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }

  /* Modal full screen on mobile */
  .adm-modal-box { max-width: 100% !important; margin: 0; border-radius: 16px 16px 0 0; position: fixed; bottom: 0; left: 0; right: 0; }
  .adm-modal { align-items: flex-end !important; padding: 0 !important; }

  /* Narocila badge improvements */
  .rez-cena-badge { font-size: .68rem; }

  /* Stat cards smaller on mobile */
  .stat-row { justify-content: space-between; }
  .stat-card { flex: 0 0 calc(33% - 6px); }

  /* Date chips in termini */
  .date-row { flex-direction: column; }

  /* Calendar */
  .adm-cal-grid { font-size: .72rem; }
  .adm-day { min-height: 36px; }

  /* iCal rows */
  .ical-row { flex-wrap: wrap; gap: 8px; }
  .ical-row > div:last-child { width: 100%; justify-content: flex-end; }

  /* Zavrni modal */
  #zavrniRazlog { font-size: 16px; } /* prevent zoom on iOS */
}

@media (max-width: 420px) {
  .stat-card { flex: 0 0 calc(50% - 4px); }
  .rch-actions .btn { font-size: .72rem; padding: 9px 6px; }
  .content { padding: 8px; }
}

/* ── Ročni vnos zasedenih terminov ─────────────────────────────────────────── */
.adm-day.t-zaseden {
  background: rgba(192, 57, 43, .12);
  border-color: rgba(192, 57, 43, .35);
}
.adm-day.t-zaseden .adm-dn {
  color: var(--err);
  font-weight: 600;
}
.adm-day.t-zaseden .adm-dc {
  color: var(--err);
  opacity: .7;
}
.adm-day.t-zaseden:hover:not(.adm-past) {
  background: rgba(192, 57, 43, .22);
  border-color: var(--err);
}

/* ── Dodatni stroški (admin) ─────────────────────────────────────────────────── */
.strosek-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 20px;
  border-bottom: 1px solid rgba(22,46,46,.06);
  transition: background .15s, opacity .3s;
}
.strosek-row:last-child  { border-bottom: none; }
.strosek-row:hover       { background: #f8fafa; }
.strosek-info            { flex: 1; min-width: 0; }
.strosek-naziv           { font-size: .88rem; font-weight: 600; color: var(--deep); }
.strosek-meta            { display: flex; gap: 10px; margin-top: 3px; }
.strosek-tip             { font-size: .7rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(22,46,46,.4); background: var(--steam); padding: 2px 7px; border-radius: 100px; }
.strosek-znesek          { font-size: .82rem; font-weight: 600; color: var(--teal-d); }
.strosek-opis            { font-size: .74rem; color: rgba(22,46,46,.5); margin-top: 4px; line-height: 1.5; }
.strosek-actions         { display: flex; gap: 6px; flex-shrink: 0; }

/* ── Termini — rezervacije iz javne strani ──────────────────────────────────── */
.adm-day.t-rezervacija {
  background: rgba(30, 79, 79, .10);
  border-color: rgba(30, 79, 79, .3);
  cursor: default;
}
.adm-day.t-rezervacija .adm-dn { color: var(--teal-d); font-weight: 600; }
.adm-day.t-rezervacija:hover   { background: rgba(30, 79, 79, .15); }

.adm-dc-rez { color: var(--teal-d) !important; opacity: .8; }

/* Seznam rezervacij v sidebar */
.rez-termin-row {
  padding: 10px 16px;
  border-bottom: 1px solid rgba(22,46,46,.06);
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.rez-termin-row:last-child { border-bottom: none; }
.rez-termin-row:hover      { background: #f8fafa; }
.rez-termin-ime  { font-size: .84rem; font-weight: 600; color: var(--deep); display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.rez-termin-dati { font-size: .76rem; color: rgba(22,46,46,.5); }
.rez-termin-link { font-size: .7rem; color: var(--teal); text-decoration: none; letter-spacing: .05em; }
.rez-termin-link:hover { text-decoration: underline; }

/* ── Half-day check-in / check-out ──────────────────────────────────────────── */
/* Checkout dan: zasedeno zgoraj-levo (diagonala), prosto spodaj-desno */
.cal-day.half-checkout {
  background: linear-gradient(135deg,
    rgba(61,126,126,.15) 50%,
    transparent 50%);
}
/* Checkin dan: prosto zgoraj-levo, zasedeno spodaj-desno (diagonala) */
.cal-day.half-checkin {
  background: linear-gradient(135deg,
    transparent 50%,
    rgba(61,126,126,.15) 50%);
}
/* Vikend + half */
.cal-day.weekend.half-checkout {
  background: linear-gradient(135deg,
    rgba(61,126,126,.20) 50%,
    rgba(61,126,126,.05) 50%);
}
.cal-day.weekend.half-checkin {
  background: linear-gradient(135deg,
    rgba(61,126,126,.05) 50%,
    rgba(61,126,126,.20) 50%);
}
/* Selected (rs/re) prevlada nad half-day */
.cal-day.rs.half-checkout,
.cal-day.rs.half-checkin,
.cal-day.re.half-checkout,
.cal-day.re.half-checkin {
  background: var(--teal) !important;
}
/* Range prevlada nad half-day */
.cal-day.range.half-checkout,
.cal-day.range.half-checkin {
  background: rgba(61,126,126,.12) !important;
}

/* ── Mail predloge gumbi v naročilih ────────────────────────────────────────── */
.pred-btni {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
  padding: 10px 16px;
  background: rgba(61,126,126,.04);
  border-top: 1px solid rgba(61,126,126,.1);
}
.pred-lbl {
  font-size: .72rem;
  color: rgba(22,46,46,.45);
  flex-shrink: 0;
}
.btn-mail {
  background: rgba(61,126,126,.1);
  color: var(--teal-d);
  border: 1px solid rgba(61,126,126,.25);
  font-size: .72rem;
  padding: 4px 10px;
  border-radius: 4px;
  cursor: pointer;
  transition: background .15s, color .15s;
}
.btn-mail:hover { background: var(--teal); color: #fff; }
.btn-mail:disabled { opacity: .6; cursor: default; }

/* Posiljanje stran — textarea višja */
#pTelo { min-height: 200px; font-family: monospace; font-size: .82rem; line-height: 1.6; }

/* Mail sent stanje */
.btn-mail.mail-sent {
  background: rgba(61,126,126,.18);
  color: var(--teal-d);
  border-color: rgba(61,126,126,.35);
}
.btn-mail.mail-sent:hover { background: var(--teal); color: #fff; }

/* ── Admin modal ─────────────────────────────────────────────────────────────── */
.adm-modal {
  display: none;
  position: fixed; inset: 0;
  background: rgba(10,30,30,.55);
  backdrop-filter: blur(3px);
  z-index: 999;
  align-items: center;
  justify-content: center;
  padding: 20px;
}
.adm-modal.show { display: flex; }
.adm-modal-box {
  background: #fff;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(10,30,30,.25);
  width: 100%;
  max-width: 480px;
  overflow: hidden;
}
.adm-modal-h {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(61,126,126,.12);
}
.adm-modal-h h3 { margin: 0; font-size: 1rem; color: var(--deep); font-weight: 600; }
.adm-modal-close {
  background: none; border: none; font-size: 1rem;
  cursor: pointer; color: rgba(22,46,46,.4); padding: 4px 8px;
}
.adm-modal-close:hover { color: var(--deep); }
.adm-modal-b { padding: 20px 24px; }
.adm-modal-f {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  padding: 16px 24px;
  border-top: 1px solid rgba(61,126,126,.1);
  background: rgba(61,126,126,.03);
}

/* Cena badge pri imenu v naročilih */
.rez-cena-badge {
  display: inline-block;
  background: rgba(61,126,126,.12);
  color: var(--teal-d);
  font-size: .72rem;
  font-family: 'Inter', sans-serif;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 4px;
  margin-left: 8px;
  vertical-align: middle;
}

/* Zavrnjene rezervacije */
.rez-card-zavrnjena        { opacity: .75; border-left: 3px solid rgba(180,60,60,.3); }
.rez-card-zavrnjena:hover  { opacity: 1; }
.rch-av-del                { background: rgba(180,60,60,.15) !important; color: #c05050 !important; }
.badge-zavrnjena           { font-size: .7rem; color: #c05050; background: rgba(180,60,60,.1); border: 1px solid rgba(180,60,60,.2); padding: 3px 10px; border-radius: 4px; white-space: nowrap; }

/* Statistika — več stat kartic v vrsti */
.stat-row { display:flex; flex-wrap:wrap; gap:12px; }
.stat-card { flex:1; min-width:100px; background:var(--steam); border:1px solid var(--mist); border-radius:var(--radius); padding:16px; text-align:center; }
.stat-n    { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:300; color:var(--deep); line-height:1.1; }
.stat-l    { font-size:.62rem; letter-spacing:.15em; text-transform:uppercase; color:rgba(22,46,46,.4); margin-top:4px; }

/* iCal vrstice */
.ical-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 14px 16px;
  border-bottom: 1px solid rgba(61,126,126,.08);
  transition: background .15s;
}
.ical-row:last-child { border-bottom: none; }
.ical-row:hover { background: rgba(61,126,126,.03); }

/* Paketi — časovna omejitev */
.paket-cas-wrap   { border:1px solid rgba(61,126,126,.18); border-radius:var(--radius); overflow:hidden; margin-bottom:0; }
.paket-cas-toggle { display:flex; align-items:center; gap:8px; padding:12px 14px; cursor:pointer; font-size:.82rem; color:var(--deep); background:rgba(61,126,126,.04); user-select:none; }
.paket-cas-toggle:hover { background:rgba(61,126,126,.08); }
.paket-cas-ikona  { font-size:1rem; }
.paket-cas-arrow  { margin-left:auto; font-size:.8rem; color:rgba(22,46,46,.4); }
.paket-cas-body   { padding:0 14px 14px; background:#fff; }
.paket-cas-badge  { display:inline-block; font-size:.68rem; background:rgba(61,126,126,.1); color:var(--teal-d); border:1px solid rgba(61,126,126,.2); padding:2px 8px; border-radius:3px; margin-left:8px; vertical-align:middle; font-weight:400; }

/* ── Gantt zasedenost ────────────────────────────────────────────────────────── */
.gantt-vrstica   { display:flex; flex-wrap:wrap; gap:2px; }
.gantt-dan       { width:20px; height:20px; border-radius:3px; background:rgba(61,126,126,.08); cursor:default; position:relative; transition:transform .1s; flex-shrink:0; }
.gantt-dan:hover { transform:scale(1.3); z-index:2; }
.gd-potrjena     { background:var(--teal) !important; opacity:.85; cursor:pointer; }
.gd-cakajoca     { background:var(--warn) !important; opacity:.85; cursor:pointer; }
.gd-rocni        { background:rgba(192,57,43,.45) !important; }
.gd-today        { outline:2px solid var(--deep); outline-offset:1px; }
.gd-vikend       { background:rgba(61,126,126,.16); }
.gd-lbl          { position:absolute; top:1px; left:2px; font-size:8px; color:rgba(22,46,46,.5); pointer-events:none; line-height:1; }
.gd-potrjena .gd-lbl, .gd-cakajoca .gd-lbl { color:rgba(255,255,255,.7); }
@media (max-width:768px) {
  .gantt-dan { width:14px; height:14px; border-radius:2px; }
}

/* ── Opomba widget ───────────────────────────────────────────────────────────── */
.opomba-wrap   { margin-top:8px; border-top:1px solid rgba(61,126,126,.08); padding-top:8px; }
.opomba-toggle { font-size:.74rem; color:rgba(22,46,46,.5); cursor:pointer; padding:4px 0; }
.opomba-toggle:hover { color:var(--teal-d); }
.opomba-body   { margin-top:8px; display:flex; flex-direction:column; gap:6px; }
.opomba-ta     { width:100%; box-sizing:border-box; border:1px solid rgba(61,126,126,.2); border-radius:4px; padding:8px; font-size:.8rem; font-family:inherit; resize:vertical; min-height:60px; color:var(--deep); background:#fff; }
.opomba-ta:focus { outline:none; border-color:var(--teal); }

/* ── Predprihodne toggle ─────────────────────────────────────────────────────── */
.pp-toggle        { position:relative; display:inline-block; width:44px; height:24px; }
.pp-toggle input  { opacity:0; width:0; height:0; }
.pp-slider        { position:absolute; inset:0; background:rgba(61,126,126,.2); border-radius:24px; cursor:pointer; transition:.3s; }
.pp-slider:before { content:''; position:absolute; width:18px; height:18px; left:3px; top:3px; background:#fff; border-radius:50%; transition:.3s; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.pp-toggle input:checked + .pp-slider { background:var(--teal); }
.pp-toggle input:checked + .pp-slider:before { transform:translateX(20px); }

/* ── Predloge sporočil (Pošiljanje) — enoten obrazec #predlogaForm ───────────── */
/* Pravila vidnosti (GU6) — vsa so "skrij", nobeno ne določa privzetega display
   (.fg je flex, vrstica 290 zgoraj) — da display:block tiho ne spremeni postavitve. */
#predlogaForm[data-mode="lastna"]    .js-only-sistemska        { display: none; }
#predlogaForm[data-mode="sistemska"] .js-only-lastna           { display: none; }
#predlogaForm[data-tip="predprihodna"] .js-ne-predprihodna     { display: none; }
#predlogaForm:not([data-tip="admin_obvestilo"]) .js-only-admin-obvestilo { display: none; }
#predlogaForm[data-tip="admin_obvestilo"] #fgPrejemnikRO       { display: none; }

/* Opozorilni pas (OP3) — sporočila, ki jih program preskoči pri pošiljanju */
.opoz-pas {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  margin-bottom: 16px;
  border-radius: var(--radius);
  background: color-mix(in srgb, var(--warn) 12%, transparent);
  border-left: 3px solid var(--warn);
  color: var(--deep);
}
.opoz-ikona { font-size: 1.1rem; flex-shrink: 0; }
.opoz-txt   { font-size: .82rem; line-height: 1.5; }
.opoz-txt a { color: var(--teal-d); font-weight: 600; text-decoration: underline; }

/* Besedne značke stanja sistemskega sporočila (GU2) */
.tag {
  display: inline-block;
  font-size: .68rem;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 2px 9px;
  border-radius: 100px;
  margin-left: 8px;
  vertical-align: middle;
  white-space: nowrap;
}
.tag-off  { color: rgba(22,46,46,.55); background: rgba(22,46,46,.08); border: 1px solid rgba(22,46,46,.14); }
.tag-warn { color: var(--warn); background: color-mix(in srgb, var(--warn) 12%, transparent); border: 1px solid color-mix(in srgb, var(--warn) 35%, transparent); }

/* Izklopljena vrstica sistemskega sporočila (GU2) — nadomešča današnji inline opacity:.45 (admin.php:2582) */
.strosek-row.is-off       { opacity: .45; }
.strosek-row.is-off:hover { opacity: .8; }

/* Poddrobnica pod meta vrstico — predogled zadeve pri sistemskih sporočilih (GU2) */
.row-sub { font-size: .74rem; color: rgba(22,46,46,.5); margin-top: 2px; }

/* Meta pripis ob naslovu kartice, npr. "pošilja program sam" (GU2) */
.cen-h-meta { font-size: .72rem; color: rgba(22,46,46,.42); font-weight: 400; }

/* Statično (neurejljivo) polje "Prejemnik" pri sistemskih sporočilih z dinamičnim prejemnikom (GU3) —
   izgled poravnan z vnosnimi polji (glej input, vrstica 42), da polje ne izstopa iz mreže obrazca. */
.fg-static {
  font-size: .93rem;
  color: var(--deep);
  padding: .85rem 1rem;
  background: var(--steam);
  border: 1px solid var(--mist);
  border-radius: var(--radius);
}

/* Vrstica testnega pošiljanja (GU1) — vidna pri lastnih predlogah in pri sistemskih (V15) */
.test-row       { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-top: 6px; }
.test-row input { flex: 1; min-width: 180px; }
.hint           { font-size: .72rem; color: rgba(22,46,46,.45); flex-basis: 100%; line-height: 1.4; }

/* Gumb "Res izbrisati?" — druga stopnja dvostopenjske potrditve brisanja lastne predloge (GU7) */
.btn-potrdi       { background: var(--err); color: #fff; border-color: var(--err); }
.btn-potrdi:hover { background: color-mix(in srgb, var(--err) 80%, black); }

/* ── Nastavitve strani ────────────────────────────────────────────────────────── */
.nast-sekcija       { border:1px solid rgba(61,126,126,.14); border-radius:var(--radius); overflow:hidden; margin-bottom:10px; background:#fff; }
.nast-sekcija-h     { display:flex; justify-content:space-between; align-items:center; padding:14px 18px; cursor:pointer; font-size:.85rem; font-weight:500; color:var(--deep); background:rgba(61,126,126,.04); user-select:none; }
.nast-sekcija-h:hover { background:rgba(61,126,126,.08); }
.nast-arrow         { font-size:.7rem; color:rgba(22,46,46,.4); }
.nast-sekcija-b     { padding:16px 18px; display:flex; flex-direction:column; gap:10px; }
/* Drobno pojasnilo pod poljem v nastavitvah (nadomešča inline style pri novih poljih). */
.fg-hint            { font-size:.7rem; line-height:1.45; margin-top:2px; color:color-mix(in srgb, var(--deep) 70%, transparent); }
.nast-grid          { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.nast-input         { width:100%; box-sizing:border-box; border:1px solid rgba(61,126,126,.2); border-radius:4px; padding:.65rem .9rem; font-size:.83rem; font-family:inherit; color:var(--deep); background:#fff; transition:border-color .2s; }
.nast-input:focus   { outline:none; border-color:var(--teal); box-shadow:0 0 0 3px rgba(61,126,126,.1); }
textarea.nast-input { resize:vertical; min-height:52px; }

/* Slike grid */
.nast-slike-grid    { display:grid; grid-template-columns:repeat(5,1fr); gap:10px; }
.nast-slika-wrap    { display:flex; flex-direction:column; gap:5px; }
.nast-slika-preview { aspect-ratio:4/3; border-radius:6px; overflow:hidden; cursor:pointer; position:relative; border:2px dashed rgba(61,126,126,.2); background:rgba(61,126,126,.04); transition:border-color .2s; }
.nast-slika-preview:hover { border-color:var(--teal); }
.nast-slika-preview img { width:100%; height:100%; object-fit:cover; display:block; }
.nast-slika-empty   { display:flex; flex-direction:column; align-items:center; justify-content:center; height:100%; font-size:1.4rem; color:rgba(61,126,126,.35); gap:2px; }
.nast-slika-empty small { font-size:.65rem; }
.nast-slika-overlay { position:absolute; inset:0; background:rgba(22,46,46,.5); color:#fff; display:flex; align-items:center; justify-content:center; font-size:.72rem; opacity:0; transition:opacity .2s; }
.nast-slika-preview:hover .nast-slika-overlay { opacity:1; }
.nast-slika-status  { font-size:.68rem; text-align:center; min-height:14px; }

/* Sidebar separator */
.sb-separator       { height:1px; background:rgba(255,255,255,.1); margin:6px 12px; }

@media (max-width:768px) {
  .nast-grid          { grid-template-columns:1fr; }
  .nast-slike-grid    { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:420px) {
  .nast-slike-grid    { grid-template-columns:repeat(2,1fr); }
}

/* ── Amenitete (storitve) drop-down ───────────────────────────────────────── */
.amenities            { background:#fff; border-radius:var(--radius); box-shadow:0 2px 20px rgba(22,46,46,.06); margin-top:2.5rem; }
.amenities[open]       { padding-bottom:.5rem; }
.amenities-head        { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:1.5rem 2rem; cursor:pointer; list-style:none; }
.amenities-head::-webkit-details-marker { display:none; }
.amenities-title        { font-family:'Cormorant Garamond',serif; font-size:clamp(1.4rem,3vw,2rem); font-weight:300; color:var(--deep); }
.am-chevron              { width:22px; height:22px; color:var(--teal); flex-shrink:0; transition:transform .25s ease; }
.amenities[open] .am-chevron { transform:rotate(180deg); }

.amenities-body        { padding:0 2rem 2rem; border-top:1px solid var(--mist); }

.am-highlight           { display:flex; flex-wrap:wrap; gap:1.5rem 2.5rem; padding:1.5rem 0; border-bottom:1px solid var(--mist); margin-bottom:2rem; }
.am-h-item              { display:flex; align-items:center; gap:.6rem; font-size:.85rem; color:var(--deep); }
.am-h-item svg           { width:20px; height:20px; color:var(--teal); flex-shrink:0; }

.am-cols                { display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:2.5rem; }
.am-col                 { display:flex; flex-direction:column; gap:1.5rem; }
.am-cat-head             { display:flex; align-items:center; gap:.5rem; margin-bottom:.6rem; }
.am-cat-head svg          { width:18px; height:18px; color:var(--teal); flex-shrink:0; }
.am-cat-head h4           { font-size:.88rem; font-weight:600; color:var(--deep); }
.am-note                { font-size:.78rem; line-height:1.5; color:rgba(22,46,46,.55); }

.am-list                { list-style:none; display:flex; flex-direction:column; gap:.5rem; }
.am-list li              { display:flex; align-items:flex-start; gap:.55rem; font-size:.82rem; line-height:1.4; color:var(--deep); }
.am-list li svg           { width:15px; height:15px; margin-top:.1rem; color:var(--ok); flex-shrink:0; }

@media (max-width:640px) {
  .amenities-head    { padding:1.25rem 1.25rem; }
  .amenities-body    { padding:0 1.25rem 1.5rem; }
}
