:root {
    --zielen: #3d6b52;
    --zielen-ciemna: #2a4d3a;
    --bezowy: #f7f4ee;
    --tekst: #2b2b28;
    --czerwony: #c0392b;
    --szary: #6b6b64;
    --biel: #ffffff;
    --promien: 10px;
}

* { box-sizing: border-box; }

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    background: var(--bezowy);
    color: var(--tekst);
    line-height: 1.5;
}

.container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}

.header {
    background: var(--zielen);
    color: var(--biel);
    padding: 30px 0;
}
.header h1 { margin: 0 0 5px; font-size: 1.8rem; }
.header p { margin: 0; opacity: 0.9; }
.powrot { color: var(--biel); text-decoration: none; opacity: 0.85; font-size: 0.9rem; }
.powrot:hover { opacity: 1; }

.footer {
    text-align: center;
    padding: 30px 0;
    color: var(--szary);
    font-size: 0.85rem;
}
.footer a { color: var(--szary); }

/* --- Lista domków --- */
.grid-domki {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 24px;
    margin: 40px 0;
}

.karta-domku {
    background: var(--biel);
    border-radius: var(--promien);
    overflow: hidden;
    text-decoration: none;
    color: inherit;
    box-shadow: 0 2px 8px rgba(0,0,0,0.06);
    transition: transform 0.15s ease, box-shadow 0.15s ease;
    display: flex;
    flex-direction: column;
}
.karta-domku:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 16px rgba(0,0,0,0.1);
}
.karta-domku-zdjecie { height: 180px; background: #ddd; }
.karta-domku-zdjecie img { width: 100%; height: 100%; object-fit: cover; display: block; }
.brak-zdjecia { display:flex; align-items:center; justify-content:center; height:100%; color:#999; }
.karta-domku-tresc { padding: 16px 18px; flex: 1; display: flex; flex-direction: column; }
.karta-domku-tresc h2 { margin: 0 0 8px; font-size: 1.15rem; color: var(--zielen-ciemna); }
.opis-skrocony { color: var(--szary); font-size: 0.92rem; flex: 1; }
.karta-domku-stopka { display: flex; justify-content: space-between; margin-top: 12px; font-size: 0.9rem; }
.cena { font-weight: 600; color: var(--zielen-ciemna); }
.osoby { color: var(--szary); }

/* --- Strona domku --- */
.strona-domku { padding-bottom: 60px; }
.galeria { margin: 24px 0; }
.zdjecie-glowne { width: 100%; max-height: 420px; object-fit: cover; border-radius: var(--promien); }
.galeria-miniaturki { display: flex; gap: 10px; margin-top: 10px; flex-wrap: wrap; }
.galeria-miniaturki img { width: 100px; height: 70px; object-fit: cover; border-radius: 6px; }

.opis-domku { margin: 20px 0; }
.szczegoly { font-size: 1.05rem; }

.sekcja-kalendarz, .sekcja-formularz {
    background: var(--biel);
    border-radius: var(--promien);
    padding: 24px;
    margin: 24px 0;
    box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}
.sekcja-kalendarz h2, .sekcja-formularz h2 { margin-top: 0; color: var(--zielen-ciemna); }
.info-kalendarz, .info-formularz { color: var(--szary); font-size: 0.9rem; }

#kalendarz { margin-top: 16px; }

/* --- Formularz --- */
form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-top: 16px; }
.pole { display: flex; flex-direction: column; }
.pole-pelna { grid-column: 1 / -1; }
label { font-size: 0.85rem; margin-bottom: 6px; color: var(--szary); }
input, textarea {
    padding: 10px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 1rem;
    font-family: inherit;
}
input:focus, textarea:focus { outline: none; border-color: var(--zielen); }

.pole-checkbox { margin-top: 4px; }
.etykieta-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    font-size: 0.92rem;
    color: var(--tekst);
    cursor: pointer;
}
.etykieta-checkbox input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
    flex-shrink: 0;
    accent-color: var(--zielen);
}
.etykieta-checkbox a { color: var(--zielen-ciemna); }

.przycisk-glowny {
    grid-column: 1 / -1;
    background: var(--zielen);
    color: var(--biel);
    border: none;
    padding: 14px;
    border-radius: 6px;
    font-size: 1rem;
    cursor: pointer;
    font-weight: 600;
}
.przycisk-glowny:hover { background: var(--zielen-ciemna); }
.przycisk-glowny:disabled { opacity: 0.6; cursor: not-allowed; }

.komunikat {
    grid-column: 1 / -1;
    padding: 12px 16px;
    border-radius: 6px;
    margin-bottom: 10px;
    font-size: 0.95rem;
}
.komunikat.sukces { background: #e3f3e9; color: var(--zielen-ciemna); border: 1px solid #b7ddc4; }
.komunikat.blad { background: #fbe8e6; color: var(--czerwony); border: 1px solid #f0bcb6; }

@media (max-width: 600px) {
    form { grid-template-columns: 1fr; }
}

/* --- Regulamin --- */
.strona-regulaminu { padding-bottom: 60px; }
.uwaga-szablon {
    background: #fdf1da;
    color: #a5730f;
    padding: 14px 18px;
    border-radius: 8px;
    font-size: 0.9rem;
    margin: 24px 0;
}
.regulamin { padding-left: 20px; }
.regulamin li { margin-bottom: 18px; }
.regulamin strong { color: var(--zielen-ciemna); }

/* --- Panel admina --- */
.tlo-logowania {
    display: flex; align-items: center; justify-content: center;
    min-height: 100vh; background: var(--zielen-ciemna);
}
.karta-logowania {
    background: var(--biel); padding: 36px; border-radius: var(--promien);
    width: 100%; max-width: 360px;
}
.karta-logowania h1 { font-size: 1.3rem; margin-top: 0; color: var(--zielen-ciemna); }
.karta-logowania form { grid-template-columns: 1fr; }

.naglowek-admin { display: flex; justify-content: space-between; align-items: center; }
.link-wyloguj { color: var(--biel); text-decoration: none; font-size: 0.9rem; }

.zakladki-filtr { display: flex; gap: 8px; margin: 24px 0; flex-wrap: wrap; }
.zakladki-filtr a {
    padding: 8px 14px; border-radius: 20px; text-decoration: none;
    color: var(--tekst); background: var(--biel); font-size: 0.9rem;
    border: 1px solid #ddd;
}
.zakladki-filtr a.aktywna { background: var(--zielen); color: var(--biel); border-color: var(--zielen); }

.brak-danych { color: var(--szary); margin: 40px 0; text-align: center; }

.tabela-rezerwacji { display: flex; flex-direction: column; gap: 14px; margin-bottom: 40px; }
.wiersz-rezerwacji {
    background: var(--biel); border-radius: 8px; padding: 16px 20px;
    box-shadow: 0 2px 6px rgba(0,0,0,0.05);
    border-left: 4px solid var(--szary);
}
.wiersz-rezerwacji.status-oczekujaca { border-left-color: #e0a11e; }
.wiersz-rezerwacji.status-potwierdzona { border-left-color: var(--zielen); }
.wiersz-rezerwacji.status-odrzucona { border-left-color: var(--czerwony); }

.wiersz-glowny { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; margin-bottom: 6px; }
.termin { color: var(--szary); font-size: 0.9rem; }
.znacznik { font-size: 0.75rem; padding: 3px 10px; border-radius: 12px; font-weight: 600; }
.znacznik-oczekujaca { background: #fdf1da; color: #a5730f; }
.znacznik-potwierdzona { background: #e3f3e9; color: var(--zielen-ciemna); }
.znacznik-odrzucona { background: #fbe8e6; color: var(--czerwony); }
.znacznik-anulowana { background: #eee; color: var(--szary); }

.wiersz-szczegoly p { margin: 4px 0; font-size: 0.92rem; }
.uwagi { color: var(--szary); }
.data-utworzenia { font-size: 0.8rem; color: #999; }

.wiersz-akcje { margin-top: 12px; display: flex; gap: 10px; }
.przycisk-tak, .przycisk-nie {
    border: none; padding: 8px 16px; border-radius: 6px; cursor: pointer; font-size: 0.9rem;
}
.przycisk-tak { background: var(--zielen); color: var(--biel); }
.przycisk-nie { background: var(--czerwony); color: var(--biel); }
