:root {
  --z: #2d5a3d;
  --z-sv: #3d7a54;
  --bg: #f0f7f1;
  --bela: #fff;
  --rob: #cfe4d4;
  --siva: #6b7280;
  --teks: #1a2e20;
  --senka: 0 1px 3px rgba(0,0,0,.08),0 1px 2px rgba(0,0,0,.04);
  --senka-md: 0 4px 12px rgba(0,0,0,.09);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Lato',sans-serif;background:var(--bg);color:var(--teks);min-height:100vh}
a{color:inherit}

/* ── NAV ── */
.nav{background:var(--bela);border-bottom:1px solid var(--rob);position:sticky;top:0;z-index:100;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.nav-inner{max-width:1100px;margin:0 auto;padding:0 1.25rem;height:60px;display:flex;align-items:center;gap:1.25rem}
.nav-logo{font-weight:700;font-size:1rem;color:var(--z);text-decoration:none;white-space:nowrap;flex-shrink:0}
.nav-logo span{font-weight:400;color:var(--siva)}
.nav-links{display:flex;gap:1.5rem;flex:1}
.nav-link{text-decoration:none;color:var(--siva);font-size:.9rem;font-weight:600;padding:.25rem 0;border-bottom:2px solid transparent;transition:color .15s,border-color .15s;white-space:nowrap}
.nav-link:hover,.nav-link.active{color:var(--z);border-bottom-color:var(--z)}
.nav-user{display:flex;align-items:center;gap:.85rem;margin-left:auto}
.nav-user-name{font-size:.85rem;color:var(--siva);white-space:nowrap}
.btn-odjava{font-size:.82rem;background:transparent;border:1px solid var(--rob);color:var(--siva);padding:.3rem .85rem;border-radius:6px;text-decoration:none;transition:all .15s;white-space:nowrap;flex-shrink:0}
.btn-odjava:hover{border-color:var(--z);color:var(--z)}

/* Hamburger */
.nav-ham{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:.45rem;border-radius:6px;margin-left:auto;flex-shrink:0}
.nav-ham span{display:block;width:22px;height:2px;background:var(--z);border-radius:2px;transition:transform .2s,opacity .2s}
.nav-ham.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-ham.open span:nth-child(2){opacity:0;transform:scaleX(0)}
.nav-ham.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* Mobile dropdown */
.nav-mob{display:none;border-top:1px solid var(--rob);background:var(--bela)}
.nav-mob.open{display:block}
.nav-mob a{display:block;padding:.85rem 1.25rem;color:var(--siva);text-decoration:none;font-size:.95rem;font-weight:600;border-bottom:1px solid #f3f3f3}
.nav-mob a:hover,.nav-mob a.active{background:var(--bg);color:var(--z)}
.nav-mob-user{display:flex;justify-content:space-between;align-items:center;padding:.85rem 1.25rem;border-top:2px solid var(--rob);margin-top:.25rem;gap:1rem}
.nav-mob-user span{font-size:.85rem;color:var(--siva)}

/* ── PAGE ── */
.page{max-width:1100px;margin:0 auto;padding:2rem 1.5rem}
.page-glava{margin-bottom:2rem;display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.page-glava h1{font-size:1.55rem;color:var(--z);font-weight:700}
.page-glava p{color:var(--siva);margin-top:.25rem;font-size:.95rem}

/* ── BUTTONS ── */
.btn{display:inline-block;padding:.5rem 1.15rem;border-radius:8px;font-size:.9rem;font-weight:700;text-decoration:none;border:none;cursor:pointer;font-family:inherit;transition:all .15s;line-height:1.4}
.btn-prim{background:var(--z);color:#fff}
.btn-prim:hover{background:#1e3d2a}
.btn-sek{background:transparent;border:1px solid var(--z);color:var(--z)}
.btn-sek:hover{background:var(--z);color:#fff}
.btn-danger{background:#dc2626;color:#fff}
.btn-danger:hover{background:#b91c1c}
.btn-muted{background:transparent;border:1px solid var(--rob);color:var(--siva)}
.btn-muted:hover{border-color:var(--z);color:var(--z)}
.btn-sm{padding:.28rem .65rem;font-size:.8rem}

/* ── FORM ── */
.polje{margin-bottom:1.1rem}
.polje label{display:block;font-size:.84rem;font-weight:700;color:var(--teks);margin-bottom:.35rem}
.polje input,.polje select,.polje textarea{width:100%;padding:.58rem .85rem;border:1px solid var(--rob);border-radius:8px;font-size:.92rem;font-family:inherit;background:#fff;color:var(--teks);transition:border-color .15s}
.polje input:focus,.polje select:focus,.polje textarea:focus{outline:none;border-color:var(--z);box-shadow:0 0 0 3px rgba(45,90,61,.12)}
.polje textarea{resize:vertical;min-height:90px}
.polje-hint{font-size:.77rem;color:var(--siva);margin-top:.22rem}
.check-skupina{display:flex;flex-direction:column;gap:.5rem;padding:.5rem 0}
.check-skupina label{display:flex;align-items:center;gap:.55rem;font-size:.9rem;font-weight:400;cursor:pointer}
.check-skupina input[type=checkbox]{width:16px;height:16px;accent-color:var(--z);flex-shrink:0}

/* ── ALERT ── */
.alert{padding:.75rem 1rem;border-radius:8px;margin-bottom:1.25rem;font-size:.9rem}
.alert-napaka{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}
.alert-uspeh{background:#f0fdf4;color:#166534;border:1px solid #bbf7d0}

/* ── CARD ── */
.kartica{background:var(--bela);border-radius:12px;box-shadow:var(--senka);padding:1.75rem}

/* ── LOGIN ── */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:1rem}
.login-box{background:var(--bela);border-radius:16px;box-shadow:var(--senka-md);padding:2.5rem;width:100%;max-width:400px}
.login-logo{text-align:center;font-size:1.05rem;font-weight:700;color:var(--z);margin-bottom:.4rem}
.login-logo span{font-weight:400;color:var(--siva)}
.login-sub{text-align:center;color:var(--siva);font-size:.85rem;margin-bottom:2rem}

/* ── DASHBOARD GRID ── */
.app-mreza{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1.5rem}
.app-kartica{background:var(--bela);border-radius:14px;box-shadow:var(--senka);padding:2rem 1.5rem;text-align:center;text-decoration:none;display:block;transition:box-shadow .2s,transform .2s}
.app-kartica:hover{box-shadow:var(--senka-md);transform:translateY(-3px)}
.app-ikona{font-size:2.8rem;margin-bottom:.75rem;display:block}
.app-naziv{font-size:1.05rem;font-weight:700;color:var(--z);margin-bottom:.35rem}
.app-opis{font-size:.83rem;color:var(--siva);line-height:1.5}
.app-prazen{color:var(--siva);font-size:.95rem;padding:2rem 0}

/* ── TABLE ── */
.tabela-wrap{overflow-x:auto;border-radius:12px;box-shadow:var(--senka)}
table{width:100%;border-collapse:collapse;background:var(--bela)}
th{text-align:left;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--siva);padding:.65rem 1rem;border-bottom:2px solid #f0f0f0;background:#fafafa}
td{padding:.75rem 1rem;border-bottom:1px solid #f4f4f4;font-size:.9rem;vertical-align:middle}
tr:last-child td{border-bottom:none}
tr:hover td{background:#f7fbf7}

/* ── BADGES ── */
.znacka{display:inline-block;padding:.18rem .6rem;border-radius:20px;font-size:.74rem;font-weight:700}
.znacka-admin{background:#fef3c7;color:#92400e}
.znacka-uporabnik{background:#e0f2fe;color:#0369a1}
.znacka-aktiven{background:#dcfce7;color:#15803d}
.znacka-neaktiven{background:#f1f5f9;color:#64748b}

/* ── FILTER BAR ── */
.filter-bar{display:flex;gap:1rem;flex-wrap:wrap;align-items:center;margin-bottom:1.25rem}
.filter-bar select,.filter-bar input{padding:.45rem .8rem;border:1px solid var(--rob);border-radius:8px;font-size:.88rem;font-family:inherit;background:#fff}
.filter-bar select:focus,.filter-bar input:focus{outline:none;border-color:var(--z)}

/* ── MODAL ── */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:200;align-items:center;justify-content:center}
.modal-overlay.open{display:flex}
.modal{background:var(--bela);border-radius:14px;padding:2rem;max-width:580px;width:90%;max-height:80vh;overflow-y:auto;position:relative;box-shadow:0 20px 60px rgba(0,0,0,.2)}
.modal-zapri{position:absolute;top:.85rem;right:1rem;background:none;border:none;font-size:1.4rem;cursor:pointer;color:var(--siva);line-height:1;padding:.25rem}
.modal h3{color:var(--z);margin-bottom:1.25rem;font-size:1.05rem;padding-right:2rem}
.modal-vrstica{display:flex;gap:.5rem;margin-bottom:.6rem;font-size:.88rem}
.modal-vrstica strong{min-width:80px;color:var(--siva);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding-top:.15rem;flex-shrink:0}
.modal-sporocilo{background:var(--bg);padding:1rem;border-radius:8px;margin-top:.5rem;line-height:1.75;white-space:pre-wrap;font-size:.9rem}

/* ── PAGINATION ── */
.pagina{display:flex;gap:.4rem;margin-top:1.5rem;flex-wrap:wrap}
.pagina a,.pagina span{display:inline-block;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;text-decoration:none;border:1px solid var(--rob);color:var(--siva)}
.pagina a:hover{border-color:var(--z);color:var(--z)}
.pagina .aktivna{background:var(--z);border-color:var(--z);color:#fff}

/* ── DIVIDER ── */
.delilnik{border:none;border-top:1px solid var(--rob);margin:1.5rem 0}

/* ════════════════════════════════
   MOBILNI PRIKAZ
   ════════════════════════════════ */
@media(max-width:700px){

  /* Nav */
  .nav-links{display:none}
  .nav-user{display:none}
  .nav-ham{display:flex}

  /* Page */
  .page{padding:1.25rem 1rem}
  .page-glava{flex-direction:column;gap:.5rem;margin-bottom:1.25rem}
  .page-glava h1{font-size:1.3rem}
  .page-glava > a.btn{align-self:flex-start}

  /* Login */
  .login-box{padding:1.75rem 1.25rem;border-radius:12px}

  /* Dashboard */
  .app-mreza{grid-template-columns:1fr 1fr;gap:1rem}
  .app-kartica{padding:1.25rem 1rem}
  .app-ikona{font-size:2rem;margin-bottom:.5rem}
  .app-naziv{font-size:.93rem}
  .app-opis{display:none}

  /* Form card full width */
  .kartica{padding:1.25rem}
  .kartica[style*="max-width"]{max-width:100%!important}

  /* Table → kartice */
  .tabela-wrap{box-shadow:none;border-radius:0;background:transparent;overflow:visible}
  .tabela-wrap table,.tabela-wrap tbody,.tabela-wrap tr{display:block}
  .tabela-wrap thead{display:none}
  .tabela-wrap tr{
    background:var(--bela);
    border-radius:12px;
    box-shadow:var(--senka);
    margin-bottom:.75rem;
    padding:.15rem 0;
  }
  .tabela-wrap td{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:.75rem;
    padding:.55rem 1rem;
    border-bottom:1px solid #f4f4f4;
    font-size:.88rem;
  }
  .tabela-wrap tr:last-child td:last-child{border-bottom:none}
  .tabela-wrap td:last-child{border-bottom:none;padding-top:.65rem;padding-bottom:.65rem}
  .tabela-wrap td[data-label]::before{
    content:attr(data-label);
    font-weight:700;
    font-size:.72rem;
    text-transform:uppercase;
    letter-spacing:.03em;
    color:var(--siva);
    flex-shrink:0;
    white-space:nowrap;
  }
  .tabela-wrap td:not([data-label]){justify-content:flex-end}
  .tabela-wrap tr:hover td{background:transparent}

  /* Modal – sheet from bottom */
  .modal-overlay{align-items:flex-end}
  .modal{
    width:100%;
    max-height:88vh;
    border-radius:18px 18px 0 0;
    padding:1.5rem 1.25rem 2rem;
  }
  /* Drag handle visual */
  .modal::before{
    content:'';
    display:block;
    width:40px;height:4px;
    background:var(--rob);
    border-radius:2px;
    margin:0 auto 1.25rem;
  }
  .modal h3{padding-right:1.5rem}

  /* Filter bar */
  .filter-bar{gap:.5rem}
  .filter-bar form{width:100%}
  .filter-bar select{width:100%}
}

@media(max-width:400px){
  .app-mreza{grid-template-columns:1fr}
}

/* ── KOLEDAR ── */
.kal-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}
.kal-nav h2{font-size:1.2rem;color:var(--z);font-weight:700;white-space:nowrap}
.kal-nav-gumbi{display:flex;gap:.4rem;align-items:center}

.kal-glava{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:2px}
.kal-glava-dn{text-align:center;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--siva);padding:.4rem 0}
.kal-glava-dn.vikend{color:#b45309}

.kal-mreza{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.kal-celica{background:var(--bela);min-height:90px;padding:.4rem .45rem;border-radius:6px;position:relative;cursor:pointer;transition:background .12s}
.kal-celica:hover{background:#f0f9f2}
.kal-prazna{background:transparent;cursor:default}
.kal-prazna:hover{background:transparent}
.kal-vikend{background:#fdfaf3}
.kal-vikend:hover{background:#f7f4e8}

.kal-dn-st{font-size:.78rem;font-weight:700;color:var(--siva);margin-bottom:.3rem;line-height:1;display:flex;align-items:center;gap:.2rem}
.kal-celica.danes .kal-dn-st span{
  background:var(--z);color:#fff;
  width:20px;height:20px;border-radius:50%;
  display:inline-flex;align-items:center;justify-content:center;
  font-size:.72rem;
}
.kal-nov-gumb{
  margin-left:auto;opacity:0;font-size:.9rem;line-height:1;
  color:var(--z);text-decoration:none;font-weight:700;
  transition:opacity .12s;
}
.kal-celica:hover .kal-nov-gumb{opacity:1}

.kal-event{
  display:block;font-size:.68rem;font-weight:700;
  color:#fff;padding:.12rem .35rem;border-radius:3px;
  margin-bottom:2px;white-space:nowrap;overflow:hidden;
  text-overflow:ellipsis;text-decoration:none;line-height:1.4;
}
.kal-event:hover{filter:brightness(.88)}
.kal-event.preklicana{opacity:.4;text-decoration:line-through}
.kal-event.cakanje{opacity:.75;background-image:repeating-linear-gradient(45deg,rgba(255,255,255,.15) 0,rgba(255,255,255,.15) 2px,transparent 2px,transparent 6px)}

/* Legenda */
.kal-legenda{display:flex;gap:1rem;flex-wrap:wrap;margin-top:1rem}
.kal-leg-elem{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--siva)}
.kal-leg-pikica{width:10px;height:10px;border-radius:50%;flex-shrink:0}

/* Prihajajoče */
.prih-seznam{display:flex;flex-direction:column;gap:.6rem;margin-top:.5rem}
.prih-vnos{display:flex;align-items:center;gap:.85rem;background:var(--bela);border-radius:10px;padding:.75rem 1rem;box-shadow:var(--senka);text-decoration:none;color:inherit;transition:box-shadow .15s}
.prih-vnos:hover{box-shadow:var(--senka-md)}
.prih-barvica{width:4px;align-self:stretch;border-radius:2px;flex-shrink:0}
.prih-datum{font-size:.78rem;color:var(--siva);min-width:80px;flex-shrink:0}
.prih-ime{font-weight:700;font-size:.9rem;color:var(--teks)}
.prih-pod{font-size:.78rem;color:var(--siva)}
.prih-status{margin-left:auto;flex-shrink:0}

/* Status znacke za rezervacije */
.znacka-potrjena{background:#dcfce7;color:#15803d}
.znacka-cakanje{background:#fef3c7;color:#92400e}
.znacka-preklicana{background:#f1f5f9;color:#64748b}

/* Rezervacija forma */
.rez-mreza{display:grid;grid-template-columns:1fr 1fr;gap:0 1.25rem}
.rez-mreza .polje-polna{grid-column:span 2}

/* Conflict box */
.conflict-box{background:#fef2f2;border:1px solid #fecaca;border-radius:8px;padding:.85rem 1rem;margin-bottom:1.25rem;font-size:.88rem;color:#991b1b}

@media(max-width:700px){
  .kal-celica{min-height:56px;padding:.3rem .25rem}
  .kal-event{font-size:.6rem;padding:.08rem .25rem}
  .kal-dn-st{font-size:.7rem}
  .kal-nov-gumb{display:none}
  .kal-nav h2{font-size:1.05rem}
  .rez-mreza{grid-template-columns:1fr}
  .rez-mreza .polje-polna{grid-column:span 1}
}
