:root{--bg:#f6f4ef;--surface:#fff;--ink:#17201e;--muted:#6b7773;--line:#e7e3da;--brand:#0e6b5c;--brand-dark:#0a5247;--brand-soft:#e2f0ed;--booked:#f6ddd6;--booked-ink:#9a3b27;--warn:#9a6400;--warn-soft:#fbefd5;--danger:#b3261e;--whatsapp:#128c4a;--radius:18px;--radius-sm:12px;--shadow:0 1px 2px #17201e0a, 0 8px 24px #17201e0f;color:var(--ink);background:var(--bg);-webkit-text-size-adjust:100%;font-family:IBM Plex Sans Arabic,system-ui,Segoe UI,Tahoma,sans-serif;line-height:1.55}*{box-sizing:border-box}body{background:var(--bg);margin:0}h1,h2,p{margin:0}h1{font-size:1.55rem;font-weight:700;line-height:1.3}h2{font-size:1.05rem;font-weight:600}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.82rem}.app{max-width:560px;min-height:100dvh;margin:0 auto}.topbar{justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.brand{color:var(--brand-dark);align-items:center;gap:10px;font-size:1.15rem;font-weight:700;display:flex}.brand-mark{background:var(--brand) url(/favicon.svg) center / cover;border-radius:9px;width:30px;height:30px}.lang-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:999px;padding:6px 14px;font-size:.85rem}.page{flex-direction:column;gap:16px;padding:8px 16px 40px;display:flex}.page-title{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.stack{flex-direction:column;gap:12px;display:flex}.row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:12px;padding:18px;display:flex}.section-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.back-link{color:var(--muted);cursor:pointer;background:0 0;border:0;align-self:flex-start;align-items:center;gap:8px;padding:4px 0;font-size:.9rem;display:inline-flex}.chev{border-top:2px solid;border-right:2px solid;width:8px;height:8px;display:inline-block}.chev-next{transform:rotate(45deg)}.chev-prev,[dir=rtl] .chev-next{transform:rotate(-135deg)}[dir=rtl] .chev-prev{transform:rotate(45deg)}.btn{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 20px;font-weight:600;transition:background .15s,transform 50ms;display:inline-flex}.btn:active{transform:scale(.98)}.btn-block{width:100%}.btn-sm{white-space:nowrap;min-height:36px;padding:0 12px;font-size:.85rem}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-dark)}.btn-ghost{background:var(--surface);border-color:var(--line)}.btn-danger-ghost{color:var(--danger);background:0 0}.btn-whatsapp{background:var(--whatsapp);color:#fff}.btn.is-disabled{opacity:.45;pointer-events:none}.icon-btn{border:1px solid var(--line);background:var(--surface);cursor:pointer;border-radius:50%;place-items:center;width:40px;height:40px;display:grid}.icon-btn:disabled{opacity:.35;cursor:default}.pill{background:var(--bg);color:var(--muted);white-space:nowrap;border-radius:999px;align-self:flex-start;padding:3px 10px;font-size:.8rem;font-weight:500}.pill-brand{background:var(--brand-soft);color:var(--brand-dark)}.pill-warn{background:var(--warn-soft);color:var(--warn)}.property-card{flex-direction:row;align-items:stretch;gap:14px;padding:12px}.thumb,.hero-placeholder{background:linear-gradient(135deg,#0e6b5c 0%,#3aa391 55%,#e9c98a 130%) 50%/cover}.thumb{border-radius:var(--radius-sm);flex-shrink:0;width:104px;min-height:104px}.property-body{flex-direction:column;gap:2px;min-width:0;display:flex}.property-name{font-size:1.05rem}.price{color:var(--brand-dark);font-weight:700}.price small{color:var(--muted);font-weight:400}.price-lg{font-size:1.35rem}.property-body .pill{margin-top:6px}.empty{text-align:center;align-items:center;padding:36px 18px}.empty-mark{background:var(--brand-soft) url(/favicon.svg) center / 60% no-repeat;border-radius:16px;width:56px;height:56px}.stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.stat{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);flex-direction:column;gap:2px;min-width:0;padding:12px;display:flex}.stat span{color:var(--muted);font-size:.75rem}.stat strong{overflow-wrap:anywhere;font-size:1.05rem}.stat-warn strong{color:var(--warn)}.cal-head{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.cal-grid{grid-template-columns:repeat(7,1fr);gap:6px;display:grid}.cal-weekdays{text-align:center;color:var(--muted);white-space:nowrap;margin-bottom:6px;font-size:.72rem}.day{aspect-ratio:1;background:var(--brand-soft);color:var(--brand-dark);cursor:pointer;border:0;border-radius:12px;font-weight:600}.day.is-booked{background:var(--booked);color:var(--booked-ink)}.day.is-past{color:#b9bfbc;background:0 0}.day.is-past.is-booked{background:var(--bg);color:var(--muted)}.day.is-today{box-shadow:inset 0 0 0 2px var(--brand)}.day.is-selected{background:var(--brand);color:#fff}.day:disabled{cursor:default}.cal-legend{color:var(--muted);gap:16px;margin-top:12px;font-size:.8rem;display:flex}.dot{border-radius:4px;width:10px;height:10px;margin-inline-end:4px;display:inline-block}.dot-free{background:var(--brand-soft);box-shadow:inset 0 0 0 1px #bfdcd6}.dot-booked{background:var(--booked);box-shadow:inset 0 0 0 1px #e7b9ad}.dot-selected{background:var(--brand)}.booking-list{margin:0;padding:0;list-style:none}.booking-list li+li{border-top:1px solid var(--line)}.booking-list button{text-align:start;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;gap:10px;width:100%;padding:12px 0;display:flex}.booking-list button>div{flex-direction:column;min-width:0;display:flex}.booking-list .muted{font-size:.85rem}.share code{border-radius:var(--radius-sm);background:var(--bg);overflow-wrap:anywhere;text-align:left;padding:10px 12px;font-size:.85rem;display:block}.form label,.field-label{color:var(--muted);flex-direction:column;gap:6px;font-size:.88rem;font-weight:500;display:flex}.field-label{margin-bottom:6px}.form input,.form textarea{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--ink);background:#fcfbf9;outline:none;padding:10px 14px;font-size:1rem;transition:border-color .15s,box-shadow .15s}.form textarea{resize:vertical}.form input:focus,.form textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-soft)}.form input[dir=ltr]{text-align:left}.error{border-radius:var(--radius-sm);color:var(--danger);background:#fbe9e7;padding:10px 12px;font-size:.9rem}.stepper{border:1px solid var(--line);border-radius:var(--radius-sm);min-height:48px;color:var(--ink);background:#fcfbf9;justify-content:space-between;align-items:center;display:flex}.stepper button{cursor:pointer;background:0 0;border:0;width:46px;height:46px;font-size:1.3rem}.stepper button:disabled{opacity:.3}.remaining{border-radius:var(--radius-sm);background:var(--warn-soft);color:var(--warn);justify-content:space-between;align-items:center;padding:12px 14px;display:flex}.remaining.is-paid{background:var(--brand-soft);color:var(--brand-dark)}.photo-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.photo{aspect-ratio:1;border-radius:var(--radius-sm);background:var(--bg) center / cover;position:relative}.photo button{top:4px;color:#fff;cursor:pointer;background:#17201eb3;border:0;border-radius:50%;width:24px;height:24px;line-height:1;position:absolute;inset-inline-end:4px}.form label.photo-add{cursor:pointer;text-align:center;background:0 0;border:1.5px dashed #cfcac0;justify-content:center;align-items:center;gap:0}.photo-add span{font-size:1.4rem;line-height:1}.photo-add small{font-size:.68rem}.sheet-backdrop{z-index:20;background:#17201e73;justify-content:center;align-items:flex-end;animation:.15s ease-out fade;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:560px;max-height:92dvh;padding:10px 18px calc(18px + env(safe-area-inset-bottom));background:var(--surface);border-radius:24px 24px 0 0;flex-direction:column;gap:12px;animation:.2s ease-out rise;display:flex;overflow-y:auto}.sheet-grip{background:var(--line);border-radius:2px;align-self:center;width:40px;height:4px}@keyframes fade{0%{opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(24px)}}.public{padding-bottom:120px}.gallery{scroll-snap-type:x mandatory;scrollbar-width:none;gap:10px;margin-inline:-16px;padding-inline:16px;display:flex;overflow-x:auto}.gallery-slide{aspect-ratio:4/3;border-radius:var(--radius);scroll-snap-align:center;cursor:zoom-in;background:#1c2321;flex:0 0 88%;min-width:0;position:relative;overflow:hidden}.gallery-slide:only-child{flex-basis:100%}.gallery-slide img{width:100%;height:100%;display:block;position:absolute;inset:0}.gallery-backdrop{object-fit:cover;filter:blur(22px)brightness(.8);transform:scale(1.2)}.gallery-photo{object-fit:contain}.gallery-block{flex-direction:column;gap:10px;display:flex}.gallery-wrap{position:relative}.nav-btn{z-index:1;width:40px;height:40px;color:var(--ink);cursor:pointer;background:#fffffff0;border:0;border-radius:50%;place-items:center;transition:opacity .15s;display:grid;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 10px #17201e33}.nav-prev{inset-inline-start:8px}.nav-next{inset-inline-end:8px}.nav-btn:disabled{opacity:0;pointer-events:none}.viewer .nav-btn{width:46px;height:46px;box-shadow:none;color:#fff;background:#ffffff29}.dots{justify-content:center;gap:6px;display:flex}.dots button{cursor:pointer;background:#cfcac0;border:0;border-radius:4px;width:7px;height:7px;padding:0;transition:width .15s,background .15s}.dots button.is-on{background:var(--brand);width:20px}.viewer{z-index:30;background:#0a0e0df0;animation:.15s ease-out fade;position:fixed;inset:0}.viewer-strip{scroll-snap-type:x mandatory;scrollbar-width:none;height:100%;display:flex;overflow-x:auto}.viewer-slide{scroll-snap-align:center;flex:0 0 100%;place-items:center;min-width:0;padding:56px 0;display:grid}.viewer-slide img{object-fit:contain;max-width:100%;max-height:100%}.viewer-close{top:calc(10px + env(safe-area-inset-top));z-index:1;color:#fff;cursor:pointer;background:#ffffff24;border:0;border-radius:50%;width:40px;height:40px;font-size:1.5rem;line-height:1;position:absolute;inset-inline-end:12px}.viewer-count{bottom:calc(16px + env(safe-area-inset-bottom));color:#fff;background:#ffffff24;border-radius:999px;padding:4px 12px;font-size:.85rem;position:absolute;left:50%;transform:translate(-50%)}.hero-placeholder{aspect-ratio:16/9;border-radius:var(--radius)}.public-head{flex-direction:column;gap:2px;display:flex}.times{grid-template-columns:1fr 1fr;gap:10px;display:grid}.times>div{border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand-dark);flex-direction:column;padding:12px 14px;display:flex}.times span{opacity:.8;font-size:.8rem}.times strong{font-size:1.1rem}.stay{border-radius:var(--radius-sm);background:var(--bg);color:var(--muted);flex-direction:column;gap:2px;padding:10px 14px;font-size:.88rem;display:flex}.stay strong{color:var(--ink);font-weight:600}.description{white-space:pre-line}.powered{text-align:center;font-size:.82rem}.powered strong{color:var(--brand-dark)}.sticky-cta{z-index:10;width:100%;max-width:560px;padding:12px 16px calc(12px + env(safe-area-inset-bottom));background:var(--surface);border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -8px 24px #17201e0f}.sticky-cta>div{flex-direction:column;min-width:0;display:flex}.state{flex-direction:column;align-items:center;gap:12px;padding:48px 0;display:flex}.spinner{border:3px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.notice{border-radius:var(--radius-sm);background:var(--brand-soft);color:var(--brand-dark);padding:10px 12px;font-size:.9rem}.btn:disabled{opacity:.55;cursor:default}.link-btn{color:var(--brand);cursor:pointer;background:0 0;border:0;padding:0;font-weight:600}.topbar-actions{gap:8px;display:flex}.auth-page{padding-top:24px}.auth-head{text-align:center;flex-direction:column;align-items:center;gap:6px;display:flex}.auth-switch{text-align:center;font-size:.92rem}.password-field{position:relative}.form .password-field input{padding-right:52px}.password-field button{width:40px;height:40px;color:var(--muted);cursor:pointer;background:0 0;border:0;border-radius:10px;place-items:center;display:grid;position:absolute;top:50%;right:6px;transform:translateY(-50%)}.password-field button:hover{color:var(--brand)}.reset-form{border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;gap:10px;padding:14px;display:flex}.chips{flex-wrap:wrap;gap:6px;margin-top:4px;display:flex}.pill-booked{background:var(--booked);color:var(--booked-ink)}.day{flex-direction:column;justify-content:center;align-items:center;line-height:1.15;display:flex}.day small{opacity:.85;font-size:.62rem;font-weight:500}.day.is-partial{background:var(--warn-soft);color:var(--warn)}.dot-partial{background:var(--warn-soft);box-shadow:inset 0 0 0 1px #ecd29a}.cal-legend{flex-wrap:wrap}.booking-list a{justify-content:space-between;align-items:center;gap:10px;padding:10px 0;display:flex}.booking-list .list-title{padding-top:12px;font-weight:600}.form select{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;min-height:48px;color:var(--ink);font:inherit;background:#fcfbf9;padding:10px 14px}.filter-summary{color:var(--brand-dark);justify-content:space-between;align-items:center;gap:10px;font-size:.9rem;font-weight:600;display:flex}.unit-card{gap:0;padding:0;overflow:hidden}.unit-photo{aspect-ratio:16/9;background:linear-gradient(135deg,#0e6b5c 0%,#3aa391 55%,#e9c98a 130%) 50%/cover}.unit-body{flex-direction:column;gap:2px;padding:14px 16px 16px;display:flex}.unit-top{justify-content:space-between;align-items:baseline;gap:10px;display:flex}.owner-list{margin:0;padding:0;list-style:none}.owner-list li{flex-direction:column;gap:10px;padding:14px 0;display:flex}.owner-list li+li{border-top:1px solid var(--line)}.owner-head{justify-content:space-between;align-items:center;gap:10px;display:flex}.owner-head>div{flex-direction:column;min-width:0;display:flex}.owner-actions{flex-wrap:wrap;gap:8px;display:flex}.credentials{border:2px solid var(--brand)}.credentials dl{grid-template-columns:auto 1fr;gap:6px 16px;margin:0;display:grid}.credentials dt{color:var(--muted)}.credentials dd{text-align:start;-webkit-user-select:all;user-select:all;margin:0;font-size:1.1rem;font-weight:700}@media (width<=360px){.row{grid-template-columns:1fr}.stats{grid-template-columns:1fr 1fr}}
