
/* =========================
   ZÁKLAD STRÁNKY
========================= */
body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    background: var(--color-background);
    color: #2c3e50;
    min-height: 100vh;
}

/* =========================
   TOPBAR
========================= */
.topbar {
    width: 100%;
    max-width: var(--max-width);
    margin: 20px auto;
    padding: 20px;
    background: var(--color-primary);
    color: #fff;
    text-align: center;
    border-radius: 12px;
}

.logo {
    font-size: 26px;
    font-weight: bold;
    margin-bottom: 15px;
}

/* =========================
   MENU
========================= */
.menu {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 25px;
    flex-wrap: wrap;
}

.menu a,
.dropdown > a {
    display: flex;
    align-items: center;
    color: #fff;
    text-decoration: none;
    font-weight: bold;
    padding: 10px 15px;
    border-radius: 4px;
    transition: background 0.3s;
}

.menu a:hover,
.dropdown > a:hover {
    background: var(--color-primary-hover);
}

.menu .logout {
    background: var(--color-danger);
}

/* =========================
   LOGIN
========================= */

body {
   
    font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

.login-box {
    max-width: 360px;
    margin: 120px auto;
    background: #ffffff;
    padding: 28px 30px;
    border-radius: 12px;
    border: 1px solid #e0e0e0;
    box-shadow: 0 6px 20px rgba(0,0,0,0.1);
}

.login-box h2 {
    margin-top: 0;
    margin-bottom: 18px;
    text-align: center;
    font-size: 22px;
    color: #0b2c3d;
}

.login-box label {
    display: block;
    margin-top: 14px;
    font-weight: 600;
    font-size: 14px;
    color: #333;
}

.login-box input {
    width: 100%;
    max-width: 275px; 
    padding: 10px 11px;
    margin-top: 5px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 14px;
}

.login-box input:focus {
    outline: none;
    border-color: #0b2c3d;
    box-shadow: 0 0 0 2px rgba(11,44,61,0.15);
}

.login-box button {
    width: 100%;
    margin-top: 22px;
    padding: 12px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 8px;
    font-size: 15px;
    font-weight: 600;
    cursor: pointer;
}

.login-box button:hover {
   background: var(--color-primary-hover);
}

.login-box p {
    margin-top: 10px;
    text-align: center;
    font-size: 14px;
}


/* =========================
   DROPDOWN
========================= */
.dropdown {
    position: relative;
    display: flex;
    align-items: center;
}

.dropdown-content {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    min-width: 180px;
    background: var(--color-primary-hover);
    border-radius: 6px;
    z-index: 10;
}

.dropdown-content a {
    display: block;
    padding: 10px 15px;
    color: #fff;
    text-decoration: none;
}

.dropdown-content a:hover {
    background: var(--color-primary);
}

.dropdown:hover .dropdown-content {
    display: block;
}

/* =========================
   OBSAH
========================= */
.content {
    width: 100%;
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 20px;
}

/* =========================
   DASHBOARD
========================= */
.dashboard-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 20px;
}

.card {
    background: #fff;
    padding: 20px;
    border-radius: 8px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.1);
}

.card h3 {
    margin-top: 0;
    color: var(--color-primary);
}

/* =========================
   TABULKY
========================= */
.user-table,
.log-table {
    width: 100%;
    border-collapse: collapse;
    background: #fff;
    margin-top: 20px;
    border-radius: 10px;
    overflow: hidden;
    box-shadow: 0 4px 14px rgba(0,0,0,0.08);
}

.user-table thead,
.log-table th {
    background: var(--color-primary);
    color: #fff;
}

.user-table th,
.user-table td,
.log-table td {
    padding: 12px 14px;
    text-align: left;
    border-bottom: 1px solid #e6e6e6;
}

.user-table tbody tr:hover {
    background: #f4f8fb;
}

/* =========================
   TLAČÍTKA
========================= */
.btn {
    display: inline-block;
    padding: 9px 14px;
    border-radius: 6px;
    font-weight: bold;
    text-decoration: none;
    font-size: 14px;
    transition: background 0.2s;
}

.btn-blue {
    background: var(--color-primary);
    color: #fff;
}

.btn-blue:hover {
    background: var(--color-primary-hover);
}

.btn-red {
    background: var(--color-danger);
    color: #fff;
}

/* =========================
   FORMULÁŘE (ADD / EDIT / PROFILE)
========================= */
.profile-form {
    max-width: 420px;
    margin: 30px auto;
    background: #fff;
    padding: 22px;
    border-radius: 10px;
    border: 1px solid #e0e0e0;
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.profile-form label {
    display: block;
    margin-top: 14px;
    font-weight: bold;
    font-size: 14px;
}

.profile-form input,
.profile-form select {
    width: 100%;
    max-width: 360px;   /* ← TADY je to zmenšení */
    padding: 9px;
    margin-top: 4px;
    border-radius: 6px;
    border: 1px solid #ccc;
}

.profile-form input:disabled {
    background: #f3f3f3;
}


.profile-form .checkbox-row {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    font-weight: normal;
}

.profile-form .checkbox-row input {
    width: auto;
    margin: 0;
}

.area-box {
    margin-top: 6px;
    padding: 8px 10px;
    border: 1px solid #ddd;
    border-radius: 6px;
    background: #fafafa;
}

.area-box .area-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-weight: normal;
    margin: 4px 0;
}


.area-row {
    padding: 6px 0;
    border-bottom: 1px solid #ddd;
}

.area-row strong {
    display: block;
    margin-bottom: 4px;
}

label.inline {
    margin-right: 15px;
}

.areas-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 6px;
}

.areas-table th,
.areas-table td {
    border: 1px solid #ddd;
    padding: 8px 10px;
}

.areas-table th {
    background: #f2f2f2;
    text-align: left;
}

.areas-table td.center {
    text-align: center;
}

/* =========================
   FORM ACTIONS
========================= */
.form-actions {
    margin-top: 20px;
    text-align: center;
}

.form-actions button {
    width: 100%;
    padding: 11px;
    background: var(--color-primary);
    color: #fff;
    border: none;
    border-radius: 6px;
    font-weight: bold;
    cursor: pointer;
}

.btn-secondary {
    display: inline-block;
    margin-top: 10px;
    background: #6c757d;
    color: #fff;
    padding: 10px 18px;
    border-radius: 6px;
    text-decoration: none;
}

/* =========================
   HLÁŠKY
========================= */
.success {
    background: #e6ffed;
    color: #1e7e34;
    padding: 10px 14px;
    border-radius: 6px;
    margin: 10px 0;
}

.error {
    background: #ffe6e6;
    color: #a30000;
    padding: 10px 14px;
    border-radius: 6px;
    margin: 10px 0;
}

/* =========================
   LOGIN
========================= */
.login-box {
    max-width: 300px;
    margin: 50px auto;
    padding: 25px;
    background: #fff;
    border-radius: 8px;
    box-shadow: 0 0 10px rgba(0,0,0,0.1);
}



/* =========================
   FOOTER
========================= */
.footer {
    max-width: var(--max-width);
    margin: 0 auto;
    padding: 12px;
    text-align: center;
    background: #f1f1f1;
    color: #555;
    border-radius: 6px 6px 0 0;
}

/* =========================
   FILTRY LOGŮ – FINÁLNÍ OPRAVA
========================= */

.log-filters {
    display: flex;
    gap: 16px;
    align-items: flex-start;   /* 🔑 KLÍČ */
    flex-wrap: wrap;
}

/* label je blok, text nahoře */
.log-filters label {
    display: flex;
    flex-direction: column;   /* 🔑 */
    gap: 6px;
    font-weight: bold;
    font-size: 14px;
}

/* select */
.log-filters select {
    height: 40px;
    padding: 0 10px;
    border-radius: 6px;
    border: 1px solid #ccc;
    font-size: 14px;
}

/* tlačítka */
.log-filters .btn {
    height: 40px;
    padding: 0 18px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    line-height: 1;
    margin-top: 20px; /* 🔑 dorovnání k selectům */
}


/* TABULKA */
.log-table thead th {
    padding: 14px 16px;
    font-size: 15px;
    font-weight: bold;
    letter-spacing: 0.3px;
    vertical-align: middle;
}

.log-table td {
    vertical-align: middle;
}

.log-table .ua {
    font-size: 12px;
    color: #555;
    max-width: 360px;
    word-break: break-word;
}

.log-table td[colspan] {
    text-align: center;
    font-style: italic;
    color: #666;
}

/* =========================
   LOG – PODBARVENÍ ŘÁDKŮ
========================= */
.log-table tbody tr.log-success {
    background-color: #e6f7ec;   /* zelená */
}

.log-table tbody tr.log-fail {
    background-color: #fdeaea;   /* červená */
}

.log-table tbody tr.log-logout {
    background-color: #eaf2fd;   /* modrá */
}

.log-table tbody tr:hover {
    filter: brightness(0.97);
}
/* =========================
   LOG – ŘAZENÍ
========================= */
.sort-link {
    color: #fff;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: 4px;
}

.sort-link:hover {
    text-decoration: underline;
}


/* =========================
   STRÁNKOVÁNÍ
========================= */
.pagination {
    margin-top: 20px;
    display: flex;
    gap: 6px;
    justify-content: center;
    flex-wrap: wrap;
}

.pagination a {
    padding: 7px 12px;
    background: #f1f1f1;
    border-radius: 5px;
    text-decoration: none;
    font-weight: bold;
    color: #333;
    transition: background 0.2s;
}

.pagination a:hover {
    background: #ddd;
}

.pagination a.active {
    background: var(--color-primary);
    color: #fff;
}

//Oblasti
.areas-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 14px;
}

.areas-table th,
.areas-table td {
    border: 1px solid #ddd;
    padding: 8px 10px;
}

.areas-table th {
    background: #f2f2f2;
    text-align: left;
}


.password-field {
    position: relative;
}

.password-field input {
    padding-right: 40px;
}

.toggle-password {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    user-select: none;
    opacity: 0.6;
}

.toggle-password:hover {
    opacity: 1;
}

/* =========================
   OBLASTI – KARTIČKY
========================= */
.areas-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 6px;
}

.area-card {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 14px;
    background: #f2f2f2;
    border-radius: 8px;
    cursor: pointer;
    user-select: none;
    transition: background 0.2s ease, box-shadow 0.2s ease;
}

.area-card:hover {
    background: #e8e8e8;
}

.area-card input {
    accent-color: #8e44ad; /* stejná fialová */
    cursor: pointer;
}

.area-card input:checked + span {
    font-weight: 600;
}

/* =========================
   RESPONSIVITA
========================= */
@media (max-width: 768px) {
    .menu {
        flex-direction: column;
        gap: 10px;
    }

    .dropdown-content {
        position: static;
        width: 100%;
    }

    .user-table {
        display: block;
        overflow-x: auto;
    }
}

/* Rezervační kalendář – fialový motiv */
body{background:linear-gradient(180deg,#faf9ff 0,#f4f0ff 100%);color:#241b35;font-family:Inter,Segoe UI,Arial,sans-serif}
.topbar{background:linear-gradient(135deg,#3b0764,#6d28d9);box-shadow:0 18px 40px rgba(76,29,149,.18)}
.logo{font-size:clamp(22px,3vw,34px);font-weight:800;letter-spacing:-.5px}
.menu a{border-radius:10px}.menu a:hover{background:rgba(255,255,255,.14)}
.content{max-width:var(--max-width);margin:42px auto;padding:0 22px}
.calendar-heading{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px}.calendar-heading h1,.form-card h1{margin:4px 0 0;font-size:32px}.eyebrow{color:#7c3aed;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800}
.legend{display:flex;gap:16px;flex-wrap:wrap}.legend span{display:flex;align-items:center;gap:7px;font-size:14px}.legend i{width:13px;height:13px;border-radius:4px}.legend .free{background:#d1fae5}.legend .pending{background:#fde68a}.legend .confirmed{background:#fecaca}
.calendar-nav{display:flex;justify-content:center;align-items:center;gap:24px;margin:20px 0}.calendar-nav strong{font-size:20px;min-width:150px;text-align:center}.month-button{background:#ede9fe;color:#4c1d95;padding:11px 16px;border-radius:10px;text-decoration:none;font-weight:700}.month-button:hover{background:#ddd6fe}
.calendar-wrap{overflow-x:auto;border-radius:16px;box-shadow:0 16px 45px rgba(76,29,149,.12);background:white}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(145px,1fr));min-width:1015px}.weekday{background:#4c1d95;color:white;text-align:center;padding:14px;font-weight:800}.calendar-day{min-height:166px;padding:10px;border-right:1px solid #e9e5f2;border-bottom:1px solid #e9e5f2;background:#fff}.calendar-day.outside{background:#fafafa;opacity:.55}.day-number{font-size:21px;font-weight:800;margin-bottom:8px;display:flex;justify-content:space-between}.day-number small{font-size:10px;text-transform:uppercase;color:#8b8396}
.slot-form{margin:0}.slot{box-sizing:border-box;width:100%;min-height:49px;margin:4px 0;padding:7px 8px;border:0;border-left:4px solid;border-radius:8px;text-align:left;display:flex;flex-direction:column;justify-content:center}.slot b{font-size:12px}.slot span{font-size:11px;opacity:.8}.slot em{font-size:11px;font-style:normal;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.slot.free{background:#d1fae5;border-color:#10b981;color:#065f46}.slot-form .slot.free{cursor:pointer}.slot-form .slot.free:hover{transform:translateY(-1px);box-shadow:0 5px 13px rgba(16,185,129,.2)}.slot.pending{background:#fde68a;border-color:#f59e0b;color:#78350f}.slot.confirmed{background:#fecaca;border-color:#ef4444;color:#7f1d1d}
.calendar-login,.form-card{margin:25px auto;padding:20px 24px;background:white;border:1px solid #e9e5f2;border-radius:14px;box-shadow:0 10px 30px rgba(76,29,149,.08)}.calendar-login{text-align:center}.form-card{max-width:560px}.notice{padding:12px 16px;border-radius:10px}.notice.success{background:#dcfce7;color:#166534}.notice.error{background:#fee2e2;color:#991b1b}.table-wrap{overflow-x:auto}.btn-small{padding:6px 9px;font-size:12px}
@media(max-width:768px){.calendar-heading{align-items:flex-start;flex-direction:column}.calendar-nav{gap:8px}.month-button{font-size:0}.month-button:first-child:after{content:'←';font-size:18px}.month-button:last-child:after{content:'→';font-size:18px}.content{margin-top:24px;padding:0 12px}}

/* Střízlivá tabulková varianta podle původního kalendáře */
body{background:#fff;color:#303036}
.topbar{background:#5b3f8c;box-shadow:none}
.menu a:hover{background:rgba(255,255,255,.1)}
.content{width:100%;max-width:1200px;box-sizing:border-box;margin:54px auto;padding:0 20px}
.calendar-heading{margin-bottom:30px}.calendar-heading h1{font-size:29px;color:#27313b}.eyebrow{color:#66558f}.legend{font-size:13px}
.calendar-nav{justify-content:flex-start;margin:0 0 30px;gap:22px}.calendar-nav strong{font-size:18px}.month-button{background:#e7e7e9;color:#161616;border-radius:7px;padding:10px 17px}.month-button:hover{background:#d9d9dc}
.calendar-wrap{border-radius:0;box-shadow:none;border:1px solid #d4d4d4}
.calendar-grid{grid-template-columns:repeat(7,minmax(150px,1fr)) minmax(105px,.65fr);min-width:1155px}
.weekday{background:#44444b;padding:14px 10px;font-size:17px;border-right:1px solid #777;color:#fff}
.calendar-day{height:176px;min-height:176px;padding:0;border-right:1px solid #cfcfd2;border-bottom:1px solid #cfcfd2;display:grid;grid-template-rows:64px 1fr 1fr;background:#fff}
.calendar-day.outside{background:#fafafa;opacity:.5}
.day-number{display:flex;align-items:center;justify-content:center;text-align:center;font-size:25px;color:#050505;margin:0;background:#fff}.day-number small{display:none}
.slot-form{height:100%;margin:0}.slot,.slot-form .slot{width:100%;height:100%;min-height:0;margin:0;padding:0;border:0;border-radius:0;display:flex;align-items:center;justify-content:center;text-align:center}
.slot em{font-size:11px;font-style:normal;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 5px}
.slot.free{background:#dff1e1;color:#315d37}.slot-form .slot.free{cursor:pointer}.slot-form .slot.free:hover{transform:none;box-shadow:inset 0 0 0 3px #83ad88;background:#d1e8d4}
.slot.pending{background:#f8e7aa;color:#66500d}.slot.confirmed{background:#efb7b7;color:#762d2d}
.week-number{height:176px;box-sizing:border-box;background:#f4f4f4;border-bottom:1px solid #d4d4d4;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#343434}
.calendar-login{box-shadow:none;border-color:#ddd;border-radius:4px}.form-card{box-shadow:none}
@media(max-width:768px){.content{padding:0 12px;margin-top:28px}.calendar-nav{justify-content:center}.calendar-grid{grid-template-columns:repeat(7,minmax(135px,1fr)) 90px;min-width:1035px}.calendar-day,.week-number{height:166px;min-height:166px}}

/* Přesná tabulková podoba kalendáře ze sprava.zip */
.source-calendar-nav{display:flex;justify-content:center;align-items:center;gap:15px;margin:15px auto;flex-wrap:wrap}
.source-calendar-nav .btn-nav{padding:6px 12px;background:#ddd;border-radius:5px;color:#000;text-decoration:none;font-weight:bold}
.source-calendar-nav .btn-nav:hover{background:#bbb}
.calendar-scroll{overflow-x:auto;width:100%}
table.source-calendar{border-collapse:collapse;margin:20px auto;width:auto;font-size:14px}
table.source-calendar th{background:#333338;color:#fff;padding:8px;text-align:center;border:1px solid #777}
table.source-calendar td{box-sizing:border-box;width:90px;height:90px;border:1px solid #ccc;padding:0;background:#fff}
table.source-calendar td a.day-link{display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;text-decoration:none;color:#000}
table.source-calendar td a.day-link:hover{background:#cce5ff}
.source-day-number{font-size:20px;font-weight:bold;margin-bottom:4px}
table.source-calendar .event-count{font-size:11px;color:#555}
table.source-calendar .day-cell.today a.day-link{background:#ffcccc}
table.source-calendar .day-cell.selected a.day-link{background:#ccffcc}
table.source-calendar td.week-cell{width:90px;background:#f5f5f5;text-align:center;font-size:14px;font-weight:bold;color:#333}
table.source-calendar .week-cell span{display:flex;align-items:center;justify-content:center;height:100%}
.selected-day{max-width:560px;margin:28px auto;padding:18px 22px;border:1px solid #ccc;background:#fafafa}.selected-day h3{text-align:center;margin-top:0}.reservation-row{min-height:48px;display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:14px;border-top:1px solid #ddd}.reservation-row form{margin:0}.status-dot{width:18px;height:18px;border-radius:50%;display:inline-block}.status-dot.pending{background:#e1b52f}.status-dot.confirmed{background:#cf5656}
@media(max-width:768px){table.source-calendar{min-width:720px}table.source-calendar td{width:90px;height:90px}.source-day-number{font-size:20px}table.source-calendar .event-count{font-size:11px}}

/* Rezervace půldnů v diagonálně dělené buňce */
.calendar-title{text-align:center;margin:0 auto 28px}
.day-split{position:relative;width:100%;height:100%;overflow:hidden;background:#fff}
.day-split>.source-day-number{position:absolute;z-index:5;left:50%;top:50%;transform:translate(-50%,-50%);margin:0;text-shadow:0 1px 2px rgba(255,255,255,.9);pointer-events:none}
.triangle-form,.day-triangle{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0}
.triangle-form{z-index:2}.triangle-form .day-triangle{cursor:pointer}
.triangle-am,.triangle-form.triangle-am{clip-path:polygon(0 0,100% 0,0 100%)}
.triangle-pm,.triangle-form.triangle-pm{clip-path:polygon(100% 0,100% 100%,0 100%)}
.day-triangle.free{background:#bdeec3}.day-triangle.pending{background:#f8e7aa}.day-triangle.confirmed{background:#efb7b7}
.triangle-form .day-triangle:hover{filter:brightness(.93)}
.day-triangle span{position:absolute;z-index:4;max-width:58px;font-size:9px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.day-triangle.triangle-am span{left:5px;top:5px}.day-triangle.triangle-pm span{right:5px;bottom:5px}
table.source-calendar .day-cell.today .source-day-number{color:#b42323}
.day-triangle.selectable{cursor:pointer}.day-triangle.selectable:hover{filter:brightness(.94)}.day-triangle.selectable.chosen{background:#56c966;box-shadow:inset 0 0 0 3px #16832b}
.bulk-reservation-bar{display:flex;align-items:center;justify-content:center;gap:14px;margin:22px auto;min-height:46px}.bulk-reservation-bar button{margin:0}.bulk-reservation-bar button:disabled{opacity:.45;cursor:not-allowed}
.topbar{box-sizing:border-box}.notice,.calendar-title{max-width:1160px;box-sizing:border-box}
.reservation-table td{vertical-align:middle}.reservation-actions{white-space:nowrap}.reservation-actions form{display:inline;margin:0}.reservation-actions a,.reservation-actions button{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;margin:0 3px;padding:0;border:0;border-radius:5px;background:transparent;text-decoration:none;font-size:17px;cursor:pointer}.reservation-actions a:hover,.reservation-actions button:hover{background:#eee}.action-confirm{color:#17833a}.action-reject{color:#b32d2d}
.approved-by strong,.approved-by small{display:inline}.approved-by small{color:#666;white-space:nowrap}.approval-separator{color:#999;margin:0 3px}
.select-column{width:38px;text-align:center!important}.select-column input{width:18px;height:18px;accent-color:#66558f;cursor:pointer}.bulk-status-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:9px;width:max-content;max-width:100%;margin:0 0 8px auto;position:sticky;top:6px;z-index:8;padding:7px 9px;background:rgba(255,255,255,.96);border:1px solid #e2e2e2;border-radius:8px;box-shadow:0 3px 10px rgba(0,0,0,.06)}.bulk-status-toolbar>span{margin-right:4px;font-size:14px}.bulk-action-button{width:auto;margin:0;padding:8px 13px;border:0;border-radius:6px;color:#fff;font-weight:700;font-size:13px;cursor:pointer}.bulk-confirm{background:#249c48}.bulk-confirm:hover{background:#1c813a}.bulk-reject{background:#d4423a}.bulk-reject:hover{background:#b9342e}.bulk-status-toolbar button:disabled{opacity:.35;cursor:not-allowed;filter:grayscale(.35)}
.reservation-actions .reservation-select,.select-all-actions{width:18px;height:18px;accent-color:#66558f;cursor:pointer;vertical-align:middle}.reservation-actions .reservation-select{margin-left:9px}.select-all-actions{margin-left:10px}
@media(max-width:768px){.bulk-status-toolbar{width:100%;box-sizing:border-box;justify-content:center;flex-wrap:wrap;position:static}.bulk-action-button{padding:7px 9px;font-size:12px}}
.menu-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:10px;background:#ef4444;color:#fff;font-size:11px;line-height:1}.pending-users-notice{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin:12px 0 18px;padding:12px 15px;border-left:4px solid #e3a51a;background:#fff4cf;color:#654900;border-radius:5px}.pending-users-notice a{color:#5b3f8c;font-weight:700}.pending-user-row{background:#fff8df!important}.pending-user-row:hover{background:#fff1bc!important}
.category-badge{display:inline-block;padding:4px 9px;border-radius:12px;background:#eee8f8;color:#513c7b;font-size:12px;font-weight:700;white-space:nowrap}
.category-page>p{color:#666}.category-table input[type=text],.category-table input[type=number],.category-table input:not([type]){box-sizing:border-box;width:100%;min-width:120px;padding:8px;border:1px solid #ccc;border-radius:5px}.money-input{display:flex;align-items:center;gap:7px;min-width:125px}.money-input span{color:#666}.service-check{display:flex;align-items:center;gap:7px;white-space:nowrap}.service-check input{width:18px;height:18px;accent-color:#66558f}.category-table button{margin:0;white-space:nowrap;border:0}.category-new{background:#f3f8f4!important}.category-add{background:#249c48}.category-add:hover{background:#1c813a}@media(max-width:768px){.category-table{min-width:780px}}
.calendar-status-legend{display:flex;align-items:center;justify-content:center;gap:22px;flex-wrap:wrap;margin:4px auto 12px;font-size:13px}.calendar-status-legend span{display:inline-flex;align-items:center;gap:7px}.calendar-status-legend i{display:inline-block;width:17px;height:17px;border:1px solid rgba(0,0,0,.12);border-radius:3px}.calendar-status-legend .legend-free{background:#bdeec3}.calendar-status-legend .legend-pending{background:#f8e7aa}.calendar-status-legend .legend-confirmed{background:#efb7b7}
.registration-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-card .profile-form button[type=submit]{display:block;width:100%;box-sizing:border-box;margin-top:22px;padding:13px 20px;border:0;border-radius:8px;background:#66558f;color:#fff;font-size:16px;font-weight:700;line-height:1.2;cursor:pointer;box-shadow:0 5px 14px rgba(91,63,140,.2);transition:background .18s ease,transform .18s ease,box-shadow .18s ease}.form-card .profile-form button[type=submit]:hover{background:#514371;transform:translateY(-1px);box-shadow:0 7px 18px rgba(91,63,140,.27)}.form-card .profile-form button[type=submit]:focus-visible{outline:3px solid rgba(102,85,143,.3);outline-offset:3px}.form-card .profile-form button[type=submit]:active{transform:translateY(0)}
.utility-rates-page>p{color:#666}.utility-rates-form{max-width:760px;margin-top:24px}.utility-rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.utility-rate-card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:8px 12px;padding:22px;border:1px solid #dedbe6;border-radius:12px;background:#fff;box-shadow:0 6px 18px rgba(50,35,80,.06)}.utility-rate-icon{grid-row:1/3;font-size:30px}.utility-rate-card>strong{font-size:19px}.utility-price-input{display:flex;align-items:center;gap:9px}.utility-price-input input{box-sizing:border-box;width:145px;padding:10px;border:1px solid #bbb;border-radius:6px;font-size:17px}.utility-price-input b{color:#555;white-space:nowrap}.utility-rate-card small{grid-column:1/-1;color:#777}.utility-rates-save{margin-top:18px;border:0}@media(max-width:650px){.utility-rate-grid{grid-template-columns:1fr}.utility-rate-card{padding:17px}}
.webcam-strip{position:relative;width:100%;max-width:1160px;height:210px;margin:-18px auto 34px;overflow:hidden;border-radius:12px;background:#222;box-shadow:0 7px 22px rgba(0,0,0,.16)}.webcam-strip a,.webcam-strip img{display:block;width:100%;height:100%}.webcam-strip img{object-fit:cover;object-position:center 48%;transition:transform .35s ease}.webcam-strip a:hover img{transform:scale(1.015)}.webcam-strip figcaption{position:absolute;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:center;padding:28px 14px 9px;color:#fff;font-size:12px;background:linear-gradient(transparent,rgba(0,0,0,.68));pointer-events:none}.webcam-strip figcaption span{display:flex;align-items:center;gap:7px;font-weight:700}.webcam-strip figcaption i{width:8px;height:8px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 3px rgba(74,222,128,.2)}

@media(max-width:768px){
  .calendar-scroll{overflow-x:visible}
  table.source-calendar{width:100%;min-width:0;table-layout:fixed;margin:14px auto}
  table.source-calendar th{padding:7px 1px;font-size:12px}
  table.source-calendar th:last-child{width:9%}
  table.source-calendar td{width:auto;height:clamp(52px,13vw,78px)}
  table.source-calendar td.week-cell{width:auto;font-size:11px}
  .source-day-number{font-size:clamp(14px,4vw,19px)}
  .day-triangle span{display:none}
  .calendar-title{font-size:23px;margin-bottom:18px}
  .source-calendar-nav{gap:8px;margin:10px auto 14px}
  .source-calendar-nav strong{font-size:15px;min-width:112px}
  .source-calendar-nav .btn-nav{padding:7px 9px;font-size:0}
  .source-calendar-nav .btn-nav:first-child:after{content:'←';font-size:18px}
  .source-calendar-nav .btn-nav:last-child:after{content:'→';font-size:18px}
  .bulk-reservation-bar{flex-wrap:wrap;gap:8px;font-size:14px}
  .bulk-reservation-bar .btn,.bulk-reservation-bar .btn-secondary{padding:8px 10px;font-size:13px}
  .calendar-status-legend{gap:8px 14px;font-size:11px;margin-bottom:10px}
  .calendar-status-legend i{width:14px;height:14px}
  .webcam-strip{height:112px;margin:-8px auto 22px;border-radius:8px}.webcam-strip figcaption{padding:22px 9px 6px;font-size:9px}
}

