:root{box-sizing:border-box;color-scheme:light;padding-top:env(safe-area-inset-top,0px)}
*,*::before,*::after{box-sizing:inherit}
body{background:#f7f5ff;color:#1e1b4b;font-family:'DM Sans',system-ui,sans-serif;margin:0}
.fd{font-family:'Bricolage Grotesque','DM Sans',system-ui,sans-serif}
.card{background:#fff;border-radius:1.25rem;box-shadow:0 1px 0 #ede9fe,0 8px 24px -12px rgba(76,29,149,.18)}
.btn{display:inline-block;border-radius:.9rem;font-weight:700;padding:.55rem 1rem;transition:transform .12s;text-align:center;cursor:pointer;white-space:nowrap}
.btn:active{transform:scale(.96)}
.inp{width:100%;border:2px solid #ede9fe;border-radius:.8rem;padding:.55rem .8rem;background:#fff;outline:none;margin-top:.25rem;font-weight:400}
.inp:focus{border-color:#a855f7}
.lbl{display:block;font-size:.75rem;font-weight:700}
.badge{padding:.25rem .625rem;border-radius:9999px;font-size:.75rem;font-weight:700;white-space:nowrap;display:inline-block}
.row{display:flex;justify-content:space-between;gap:.75rem;padding:.25rem 0;font-size:.875rem}
.row>span{color:#64748b}.row>b{text-align:right}
.li-row{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;border-bottom:1px solid #f5f3ff}
.li-row:last-child{border-bottom:0}
a:focus-visible,button:focus-visible,label:focus-visible{outline:3px solid #d946ef;outline-offset:2px}
form.inline{display:inline}

/* tablo (liste görünümü) */
.tbl{width:100%;font-size:.875rem;border-collapse:collapse}
.tbl th{text-align:left;font-size:.75rem;color:#64748b;padding:.75rem;white-space:nowrap}
.tbl td{padding:.6rem .75rem;border-top:1px solid #f5f3ff;white-space:nowrap}
.tbl tr:hover td{background:#faf8ff}

/* sol menü */
.nav-link{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:.75rem;font-weight:500}
.nav-link:hover{background:rgba(255,255,255,.1)}
.nav-link.active{background:#c026d3}
.mnav-link{white-space:nowrap;padding:.375rem .75rem;border-radius:9999px;font-size:.875rem;font-weight:700;background:rgba(255,255,255,.1)}
.mnav-link.active{background:#c026d3}

/* gizli radio/checkbox (CSS ile sekme, filtre, görünüm) */
.sr{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.chip{display:inline-block;border-radius:.9rem;font-weight:700;padding:.5rem .9rem;background:#fff;cursor:pointer;white-space:nowrap}
.seg{display:inline-flex;background:#ede9fe;padding:.25rem;border-radius:1rem;gap:.25rem}
.seg label{padding:.4rem .8rem;border-radius:.8rem;font-weight:700;font-size:.875rem;cursor:pointer}

/* kart / liste görünümü */
.vt-list:checked ~ .v-cards,.vt-card:checked ~ .v-list{display:none}
.vt-card:checked ~ .toolbar .l-card,.vt-list:checked ~ .toolbar .l-list{background:#1e1b4b;color:#fff}

/* arama */
.ara-gizli{display:none!important}
.soluk{opacity:.18;filter:grayscale(1)}

/* kişi formu */
fieldset.kisi{border:2px solid #ede9fe;border-radius:1rem;padding:.6rem .75rem .75rem;margin-top:.6rem}
fieldset.kisi legend{font-size:.8rem;font-weight:700;padding:0 .3rem;color:#6d28d9}
details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}

/* bungalov şekli */
.bng{display:block;border-radius:1.4rem;transition:transform .12s}
.bng:hover{transform:translateY(-2px)}
.bng svg{display:block;border-radius:1.4rem;box-shadow:0 6px 18px -10px rgba(30,27,75,.35)}
.bng-new{border:2px dashed #c4b5fd;border-radius:1rem;display:grid;place-items:center;min-height:9rem;color:#8b5cf6;font-weight:700}

/* modal: JS yok, CSS :target ile açılır. <a href="#modal-id"> açar, <a href="#"> kapatır */
.modal{display:none;position:fixed;inset:0;z-index:40;align-items:end;justify-items:center}
.modal:target{display:grid}
.modal-bg{position:absolute;inset:0;background:rgba(30,27,75,.6)}
.modal-box{position:relative;background:#fff;border-radius:1.5rem 1.5rem 0 0;padding:1.25rem;width:100%;max-height:92vh;overflow-y:auto;animation:pop .22s ease-out;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom,0px))}
@media (min-width:768px){.modal{align-items:center}.modal-box{max-width:36rem;border-radius:1.5rem}}
@keyframes pop{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.modal-box{animation:none}}
@media print{aside,.sticky,.np{display:none!important}body{background:#fff}}

/* ---- dinamik arayüz ---- */
[hidden]{display:none!important}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:1.5rem;z-index:60;background:#1e1b4b;color:#fff;padding:.75rem 1.25rem;border-radius:1rem;font-weight:700;box-shadow:0 10px 30px -10px rgba(0,0,0,.4);max-width:90vw;text-align:center}
.toast-hata{background:#e11d48}
.chip.aktif,.tab.aktif{background:#1e1b4b;color:#fff}
.tab{display:inline-block;border-radius:.9rem;font-weight:700;padding:.5rem .9rem;background:#fff;cursor:pointer;white-space:nowrap}
.tab.aktif{background:#c026d3}
.yukleniyor{color:#8b5cf6;font-size:.875rem;padding:1rem 0}
button[disabled]{opacity:.55;cursor:wait}
.bos-mesaj{grid-column:1/-1}

/* oda planı hücreleri: renk durumdan gelir */
.durum-BOS{background:#d1fae5;color:#047857;border-color:#6ee7b7}
.durum-DOLU{background:#ede9fe;color:#6d28d9;border-color:#c4b5fd}
.durum-TEMIZ{background:#fef3c7;color:#92400e;border-color:#fcd34d}
.durum-BAKIM{background:#ffe4e6;color:#be123c;border-color:#fda4af}
.bos-hucre .arti{display:none}
#duzen:checked ~ .plan .bos-hucre{border:2px dashed #c4b5fd;background:transparent;cursor:pointer}
#duzen:checked ~ .plan .bos-hucre .arti{display:grid}
#duzen:checked ~ .plan .birim-hucre{outline:2px solid #e879f9;outline-offset:2px}
#duzen:checked ~ .toolbar label[for="duzen"]{background:#10b981}
#duzen:not(:checked) ~ * .edit-only,#duzen:not(:checked) ~ .edit-only{display:none!important}
#duzen:checked ~ * .view-only,#duzen:checked ~ .view-only{display:none!important}

/* ---- v2: durum renkleri (boş yeşil, dolu kırmızı, rezervasyon sarı, temizlik açık mavi, bakım koyu gri) ---- */
.durum-BOS{background:#dcfce7;color:#15803d;border-color:#86efac}
.durum-DOLU{background:#fee2e2;color:#b91c1c;border-color:#fca5a5}
.durum-REZERVASYON{background:#fef9c3;color:#a16207;border-color:#fde047}
.durum-TEMIZ{background:#e0f2fe;color:#0369a1;border-color:#7dd3fc}
.durum-BAKIM{background:#374151;color:#fff;border-color:#1f2937}
/* takvim hücreleri */
.tk{min-width:2.1rem;height:2.1rem;border-radius:.4rem;font-size:10px;line-height:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;padding:0 2px;cursor:pointer;display:flex;align-items:center;justify-content:center}
.tk-BOS{background:#bbf7d0;color:#166534}.tk-DOLU{background:#ef4444;color:#fff}.tk-REZERVASYON{background:#facc15;color:#713f12}
.tk-TEMIZ{background:#7dd3fc;color:#0c4a6e}.tk-BAKIM{background:#374151;color:#fff}
.takvim th,.takvim td{padding:2px}
.takvim .birim-kol{position:sticky;left:0;background:#fff;z-index:1;font-weight:700;font-size:.8rem;padding-right:.5rem;white-space:nowrap}
.takvim .bugun{outline:2px solid #1e1b4b;outline-offset:-1px}
/* kişi çipleri */
.cipler{display:flex;flex-wrap:wrap;gap:.4rem;margin:.5rem 0}
.cip{border-radius:9999px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;border:2px dashed #c4b5fd;color:#6d28d9;background:#fff;cursor:pointer}
.cip.dolu{border-style:solid;background:#ede9fe}
.cip.acik{background:#6d28d9;color:#fff;border-color:#6d28d9}
/* cari seçici */
.cari-secici{position:relative}
.cari-sonuc{position:absolute;left:0;right:0;top:100%;z-index:50;background:#fff;border:2px solid #ede9fe;border-radius:.8rem;margin-top:.25rem;max-height:16rem;overflow-y:auto;box-shadow:0 12px 30px -12px rgba(30,27,75,.35)}
.cari-satir{display:flex;flex-direction:column;align-items:flex-start;width:100%;padding:.5rem .75rem;text-align:left;border-bottom:1px solid #f5f3ff}
.cari-satir:hover{background:#f5f3ff}.cari-satir small{color:#64748b;font-size:.72rem}
/* kullanıcı menüsü */
details.kullanici-menu>summary{cursor:pointer}
.kullanici-menu .menu{position:absolute;bottom:100%;left:0;right:0;margin-bottom:.5rem;background:#fff;color:#1e1b4b;border-radius:1rem;padding:.4rem;box-shadow:0 20px 40px -12px rgba(0,0,0,.45);z-index:60}
.kullanici-menu .menu a{display:block;padding:.55rem .75rem;border-radius:.6rem;font-size:.875rem;font-weight:600}
.kullanici-menu .menu a:hover{background:#f5f3ff}
.kullanici-menu.ust .menu{bottom:auto;top:100%;left:auto;right:0;width:15rem;margin:.5rem 0 0}
.seg button{padding:.4rem .8rem;border-radius:.8rem;font-weight:700;font-size:.875rem}
.seg button.aktif-seg{background:#1e1b4b;color:#fff}
.kat-grid.goruntu{display:flex;flex-wrap:wrap;gap:.5rem}
.kat-grid.goruntu .birim-hucre{width:5.2rem;height:5.2rem;aspect-ratio:auto}
.kat-grid.duzen{display:grid;gap:.5rem}
.bos-hucre{background:rgba(237,233,254,.6)}
.kullanici-menu.panel-menu .menu{bottom:auto;top:100%;left:0;right:auto;width:16rem;margin:.5rem 0 0}
/* fareyle üzerine gelince bilgi balonu */
.ipucu{position:fixed;z-index:90;max-width:20rem;background:#1e1b4b;color:#fff;border-radius:.8rem;padding:.6rem .8rem;font-size:.8rem;line-height:1.45;box-shadow:0 18px 40px -12px rgba(0,0,0,.5);pointer-events:none}
.ipucu b{font-size:.9rem;margin-bottom:.15rem}
/* rezervasyon: takvim görünümü */
.v-takvim{display:none}
.vt-takvim:checked ~ .v-takvim{display:block}
.vt-takvim:checked ~ .v-cards,.vt-takvim:checked ~ .v-list{display:none}
.vt-takvim:checked ~ .toolbar .l-takvim{background:#1e1b4b;color:#fff}
.vt-takvim:checked ~ .toolbar #filtreler{visibility:hidden}
/* WhatsApp butonu */
.btn-ws{background:#25d366;color:#fff}
.btn-ws:hover{background:#1ebe5b}
