/* =========================================================================
   1. ADMIN STYLES (NEDOTKNUTÉ)
   ========================================================================= */
.kp-admin-wrap {
    opacity: 0; transition: opacity 0.4s ease-in;
    --bg:#0b1220; --text:#e5e7eb; --muted:#94a3b8; --border: rgba(148,163,184,.22); 
    --card: rgba(16,26,51,.82); --free: rgba(148,163,184,.10); --reserved: rgba(250,204,21,.55); 
    --occupied: rgba(248,113,113,.55); --holiday: #ef4444; --weekend: rgba(148,163,184,.08); 
    --primaryBorder: rgba(59,130,246,.55); --primaryBg: rgba(59,130,246,.18); 
    --dangerBorder: rgba(248,113,113,.45); --dangerBg: rgba(248,113,113,.12); 
    --okBorder: rgba(34,197,94,.45); --okBg: rgba(34,197,94,.10); 
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial; 
    background: radial-gradient(1200px 700px at 20% 10%, rgba(59,130,246,.25), transparent 60%), 
                radial-gradient(900px 600px at 80% 20%, rgba(34,211,238,.18), transparent 60%), 
                var(--bg); 
    color: var(--text); padding: 20px; border-radius:8px; margin: 20px 0; min-height: 80vh; 
}
.kp-admin-wrap.loaded { opacity: 1; }
.kp-admin-wrap * { box-sizing:border-box; }
.kp-admin-wrap h1 { margin:0; font-size:20px; color:white; line-height: 1.2; }
.kp-admin-wrap .sub { margin-top:6px; color: var(--muted); font-size:13px; }
.kp-admin-wrap .top { display:flex; justify-content:space-between; margin-bottom:20px; gap: 15px; flex-wrap: wrap; }
.kp-admin-wrap .right { display:flex; gap:10px; align-items:center; flex-wrap: wrap; }
.kp-admin-wrap .card { background: var(--card); border:1px solid var(--border); border-radius: 16px; overflow:hidden; box-shadow: 0 10px 30px rgba(0,0,0,.30); }
.kp-admin-wrap .toolbar { padding: 12px 14px; border-bottom:1px solid var(--border); display:flex; gap:10px; flex-wrap:wrap; align-items:center; background: rgba(148,163,184,.04); }
.kp-admin-wrap .tabs { display:flex; gap:8px; flex-wrap: wrap; }
.kp-admin-wrap button { cursor:pointer; border-radius: 12px; border:1px solid var(--border); background: transparent; color: var(--text); padding: 10px 12px; font-weight: 900; font-size: 13px; white-space: nowrap; }
.kp-admin-wrap button.primary { background: var(--primaryBg); border-color: var(--primaryBorder); }
.kp-admin-wrap button.tab.active { background: var(--primaryBg); border-color: var(--primaryBorder); }
.kp-admin-wrap button.danger { border-color: var(--dangerBorder); background: var(--dangerBg); }
.kp-admin-wrap button.small { padding:7px 9px; font-size:12px; border-radius:10px; }
.kp-admin-wrap .filters { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; }
.kp-admin-wrap input, .kp-admin-wrap select, .kp-admin-wrap textarea { width:100%; background: rgba(16,26,51,.88); border:1px solid var(--border); color: var(--text); border-radius: 12px; padding: 10px 12px; outline:none; font-size: 14px; }
.kp-admin-wrap .grid { display:grid; grid-template-columns: 1.10fr .90fr; gap: 14px; padding:14px; }
@media (max-width: 900px){ .kp-admin-wrap .grid { grid-template-columns: 1fr; } }
.kp-admin-wrap .panel { border:1px solid var(--border); border-radius: 14px; overflow:hidden; background: rgba(16,26,51,.28); display: flex; flex-direction: column; }
.kp-admin-wrap .head { padding:12px; border-bottom:1px solid var(--border); background: rgba(148,163,184,.06); display: flex; justify-content: space-between; align-items: center; }
.kp-admin-wrap .head h2 { margin:0; font-size:14px; }
.kp-admin-wrap .body { padding:12px; overflow-x: auto; }
.kp-admin-wrap table { width:100%; border-collapse: collapse; font-size: 12px; min-width: 600px; }
.kp-admin-wrap th, .kp-admin-wrap td { padding: 10px; border-bottom:1px solid var(--border); text-align:left; } 
.kp-admin-wrap th { color: var(--muted); font-weight:900; }
.kp-admin-wrap tr:hover td { background: rgba(148,163,184,.06); } 
.kp-admin-wrap tr.cancelled td { opacity:.65; }
.kp-admin-wrap .badge { display:inline-flex; padding: 6px 8px; border-radius: 99px; border:1px solid var(--border); font-weight: 900; font-size: 11px; white-space: nowrap; }
.kp-admin-wrap .b-obs { background: rgba(248,113,113,.22); }
.kp-admin-wrap .b-rez { background: rgba(250,204,21,.20); }
.kp-admin-wrap .b-zrus { text-decoration: line-through; opacity: 0.7; }
.kp-admin-wrap .row { display:grid; grid-template-columns: 1fr 1fr; gap:12px; }
.kp-admin-wrap .row3 { display:grid; grid-template-columns: 1fr 1fr 1fr; gap:12px; }
@media (max-width: 600px) {
    .kp-admin-wrap .row, .kp-admin-wrap .row3 { grid-template-columns: 1fr; } 
    .kp-admin-wrap { padding: 10px; margin: 10px 0; }
    .kp-admin-wrap .pill { display: none; } 
}
.kp-admin-wrap .calgrid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 10px; padding: 12px; }
@media (max-width: 1100px){ .kp-admin-wrap .calgrid { grid-template-columns: 1fr; } }
.kp-admin-wrap .calwrap { overflow:auto; max-height: 72vh; border: 1px solid var(--border); border-radius: 14px; background: rgba(16,26,51,.28); }
.kp-admin-wrap .mcap { padding: 10px; text-align:center; font-weight: 900; border-bottom: 1px solid var(--border); background: rgba(148,163,184,.05); }
.kp-admin-wrap table.quick { min-width: 0; }
.kp-admin-wrap table.quick th { text-align:center; position:sticky; top:0; background:rgba(16,26,51,.92); padding: 4px 6px; border-bottom:1px solid var(--border); font-size:10px; z-index: 5; } 
.kp-admin-wrap table.quick td { padding:4px; text-align:center; border-bottom:1px solid var(--border); line-height: 1.1; }
.kp-admin-wrap .cellState { border-radius: 8px; padding: 3px 0; border: 1px solid rgba(148,163,184,.18); font-size: 11px; overflow: hidden; min-height: 22px; font-weight: 900; font-family: ui-monospace, monospace; }
.kp-admin-wrap .cellState.free { background: var(--free); color: rgba(229,231,235,.70); }
.kp-admin-wrap .cellState.reserved { background: var(--reserved); color:#000; }
.kp-admin-wrap .cellState.occupied { background: var(--occupied); color:#000; }
.kp-admin-wrap .wk { background: var(--weekend); } .kp-admin-wrap .hol { color: var(--holiday); font-weight: 900; }
.kp-admin-wrap .pill { display:inline-flex; align-items:center; gap:8px; padding: 7px 10px; border:1px solid var(--border); border-radius: 999px; background: rgba(148,163,184,.12); color: var(--muted); font-size:12px; white-space: nowrap; cursor:pointer; text-decoration:none; }
.kp-admin-wrap .dot { width:10px; height:10px; border-radius:999px; background: rgba(148,163,184,.35); }
.dot.res { background: rgba(250,204,21,.75); }
.dot.occ { background: rgba(248,113,113,.75); }
.kp-admin-wrap .modalBack { position: fixed; inset:0; background: rgba(0,0,0,.55); display:none; align-items:center; justify-content:center; z-index:99999; }
.kp-admin-wrap .modal { width: min(520px, 94%); background: rgba(16,26,51,.96); border:1px solid var(--border); border-radius: 16px; padding:20px; box-shadow: 0 20px 60px rgba(0,0,0,.55); }
.kp-admin-wrap .modal .mHead { padding-bottom: 14px; border-bottom:1px solid var(--border); font-weight: 900; margin-bottom: 14px; }
.kp-admin-wrap .modal .mFoot { padding-top: 14px; border-top:1px solid var(--border); display:flex; gap:10px; justify-content:flex-end; margin-top: 14px; }
.kp-admin-wrap .msg { padding:10px; margin-bottom:10px; border-radius:8px; display:none; }
.kp-admin-wrap .msg.ok { background:var(--okBg); border:1px solid var(--okBorder); }
.kp-admin-wrap .msg.err { border:1px solid var(--dangerBorder); background:var(--dangerBg); color:rgba(254,226,226,.95); }
.kp-admin-wrap .footerbar { display:flex; justify-content:space-between; gap:10px; flex-wrap:wrap; padding:12px 14px; border-top:1px solid var(--border); color:var(--muted); font-size:12px; background:rgba(148,163,184,.03); }
.kp-admin-wrap .dateNum.hol { color: var(--holiday); font-weight: 900; }

/* =========================================================================
   2. PUBLIC STYLES (OPRAVENÁ LEGENDA + KALENDÁR)
   ========================================================================= */
.kp-public-wrap {
    --bg:#0b1220; --text:#e5e7eb; --muted:#94a3b8; --border: rgba(148,163,184,.22); 
    --card: rgba(16,26,51,.82); --free: rgba(148,163,184,.10); --reserved: rgba(250,204,21,.55); 
    --occupied: rgba(248,113,113,.55); --holiday: #ef4444;
    font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial;
    color: var(--text);
    background:
      radial-gradient(1200px 700px at 20% 10%, rgba(59,130,246,.25), transparent 60%),
      radial-gradient(900px 600px at 80% 20%, rgba(34,211,238,.18), transparent 60%),
      var(--bg);
    padding: 20px;
    border-radius: 8px;
}
.kp-public-wrap * { box-sizing: border-box; }
.kp-public-wrap h1 { margin: 0; font-size: 20px; color: white; }
.kp-public-wrap .sub { margin-top: 6px; color: var(--muted); font-size: 13px; }

/* Upravená legenda - väčšia a krajšia */
.kp-public-wrap .legend { margin: 16px 0 20px; display: flex; gap: 15px; flex-wrap: wrap; align-items: center; }
.kp-public-wrap .pill { 
    display: inline-flex; align-items: center; gap: 10px; 
    padding: 8px 14px; /* Väčší padding */
    border: 1px solid var(--border); border-radius: 50px; /* Okrúhle */
    background: rgba(148,163,184,.12); color: var(--muted); 
    font-size: 13px; /* Väčšie písmo */
    font-weight: 600;
    white-space: nowrap; 
}
/* Kruhové ukazovatele v legende */
.kp-public-wrap .sw { 
    width: 16px; height: 16px; /* Väčšie */
    border-radius: 50%; /* Kruh */
    border: 1px solid var(--border); 
    background: var(--free); 
}
.kp-public-wrap .sw.res { background: var(--reserved); border-color: rgba(250,204,21,.8); box-shadow: 0 0 5px rgba(250,204,21,.4); }
.kp-public-wrap .sw.occ { background: var(--occupied); border-color: rgba(248,113,113,.8); box-shadow: 0 0 5px rgba(248,113,113,.4); }

/* Grid apartmánov */
.kp-public-wrap .grid2 { display: grid; grid-template-columns: 1fr; gap: 16px; }
@media (min-width: 980px) { .kp-public-wrap .grid2 { grid-template-columns: 1fr 1fr; } }

/* Karta apartmánu */
.kp-public-wrap .apt { background: var(--card); border: 1px solid var(--border); border-radius: 16px; overflow: hidden; box-shadow: 0 10px 30px rgba(0,0,0,.30); }
.kp-public-wrap .aptHead { padding: 12px 14px; border-bottom: 1px solid var(--border); display: flex; justify-content: space-between; align-items: baseline; gap: 10px; flex-wrap: wrap; background: rgba(148,163,184,.05); }
.kp-public-wrap .aptHead .name { font-weight: 900; font-size: 16px; color: var(--text); }
.kp-public-wrap .aptHead .cap { color: var(--muted); font-size: 12px; }

/* Grid mesiacov */
.kp-public-wrap .months { padding: 14px; display: grid; grid-template-columns: repeat(1, 1fr); gap: 14px; }
@media (min-width: 520px) { .kp-public-wrap .months { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1200px) { .kp-public-wrap .months { grid-template-columns: repeat(3, 1fr); } }

/* Force Styles pre tabuľku */
.kp-public-wrap .month { border: 1px solid var(--border); border-radius: 14px; overflow: hidden; background: rgba(16,26,51,.55); }
.kp-public-wrap table.cal { width: 100% !important; border-collapse: collapse !important; table-layout: fixed !important; margin: 0 !important; border:none !important; }
.kp-public-wrap table.cal th { font-size: 12px !important; color: var(--muted) !important; font-weight: 900 !important; padding: 6px 0 !important; text-align: center !important; background: transparent !important; border: none !important; }
.kp-public-wrap table.cal th.mTitle { padding: 10px 10px 8px !important; border-bottom: 1px solid var(--border) !important; background: rgba(148,163,184,.05) !important; color: var(--text) !important; }
.kp-public-wrap table.cal td { padding: 0 !important; border:none !important; border-top: 1px solid rgba(148,163,184,.10) !important; }

/* Bunky a dni */
.kp-public-wrap .cell { aspect-ratio: 1 / 1; padding: 6px; display: flex; align-items: flex-start; justify-content: flex-start; }
.kp-public-wrap .cell.blank { background: transparent; }
.kp-public-wrap .cell.free { background: var(--free); }
.kp-public-wrap .cell.reserved { background: var(--reserved); }
.kp-public-wrap .cell.occupied { background: var(--occupied); }
.kp-public-wrap .day { font-size: 12px; font-weight: 900; line-height: 1; color: var(--text); }
.kp-public-wrap .day.hol { color: var(--holiday) !important; }