:root{--bg:#f4f6f9;--card:#fff;--ink:#111827;--muted:#667085;--line:#e5e7eb;--accent:#111827;--good:#087443;--bad:#b42318;--warn:#b54708;--kenduri:#7c3aed;--radius:16px}*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:16px}a{color:inherit}h1,h2,h3,p{margin-top:0}input,select,textarea,button{font:inherit}label{display:grid;gap:7px;font-weight:650;color:#344054}input,select,textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:12px;background:#fff;color:#101828}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:12px;padding:12px 17px;background:var(--accent);color:#fff;text-decoration:none;font-weight:800;cursor:pointer}.btn.secondary{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.small{padding:8px 11px;font-size:14px}.site-header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:14px max(20px,calc((100vw - 1180px)/2));background:rgba(255,255,255,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line)}.brand{font-weight:900;text-decoration:none}.hero,.section{max-width:1180px;margin:auto;padding:64px 20px}.hero{min-height:440px;display:grid;grid-template-columns:1.4fr .8fr;align-items:center;gap:34px}.hero h1{font-size:clamp(42px,7vw,74px);line-height:.98;letter-spacing:-.055em;max-width:760px}.hero p{font-size:20px;color:var(--muted);max-width:700px}.eyebrow{text-transform:uppercase;letter-spacing:.13em;font-weight:900;font-size:12px;color:#475467}.hero-card{background:#111827;color:#fff;border-radius:28px;padding:30px;display:grid;gap:18px;box-shadow:0 24px 60px #10182822}.hero-card strong{font-size:25px;border-bottom:1px solid #ffffff20;padding-bottom:16px}.section-head,.panel-head,.toolbar,.booking-title,.calendar-nav,.group-head,.resource-row{display:flex;justify-content:space-between;align-items:center;gap:16px}.availability-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;background:#fff;padding:16px;border-radius:18px;box-shadow:0 8px 32px #1018280d}.alert-kenduri{margin-top:18px;padding:18px;border-radius:14px;background:#f5f3ff;border:1px solid #ddd6fe;color:#5b21b6}.availability-group{margin-top:16px;background:#fff;border-radius:16px;padding:16px}.group-head h3{text-transform:capitalize;margin:0}.avail-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px;margin-top:12px}.avail-row{display:flex;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-radius:10px}.avail-row.yes strong{color:var(--good)}.avail-row.no strong{color:var(--bad)}.whatsapp{margin-top:18px;background:#087443}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.card-photo{height:180px;background-size:cover;background-position:center}.card-photo.placeholder{background:linear-gradient(135deg,#e5e7eb,#f9fafb)}.card-body{padding:18px}.pill{display:inline-flex;border-radius:999px;padding:5px 9px;background:#eef2f6;font-size:12px;font-weight:800}.pill.warn{background:#fff7ed;color:var(--warn)}.highlight{background:#111827;color:#fff;border-radius:28px;margin-bottom:60px}.footer{padding:34px 20px;text-align:center;color:var(--muted)}.video-wrap{aspect-ratio:9/16;max-width:360px}.video-wrap iframe{width:100%;height:100%;border:0;border-radius:16px}
.login-body{min-height:100vh;display:grid;place-items:center;padding:20px}.login-card{width:min(430px,100%);background:#fff;padding:30px;border-radius:22px;box-shadow:0 24px 80px #1018281a;display:grid;gap:16px}.admin-body{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:#101828;color:#fff;padding:20px;position:sticky;top:0;height:100vh}.sidebar-brand{font-size:24px;font-weight:900;margin-bottom:24px}.sidebar-brand small{font-size:12px;color:#98a2b3}.sidebar nav{display:grid;gap:5px}.sidebar nav a{padding:10px 12px;border-radius:9px;text-decoration:none;color:#e5e7eb}.sidebar nav a:hover{background:#ffffff12}.admin-main{min-width:0}.admin-top{height:64px;padding:0 24px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center}.admin-top>div{display:grid}.admin-top small{color:var(--muted)}.menu-btn{display:none}.admin-content{padding:24px;max-width:1500px}.flash{padding:13px 15px;border-radius:12px;margin-bottom:16px}.flash.error{background:#fef3f2;color:#b42318}.flash.success{background:#ecfdf3;color:#067647}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:16px}.stat,.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px}.stat{display:grid;gap:7px}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:25px}.stat.warn strong{color:var(--warn)}.panel{margin-bottom:16px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top;white-space:nowrap}td small{display:block;color:var(--muted);margin-top:4px}.toolbar{margin-bottom:16px}.toolbar form{display:flex;gap:8px}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.booking-editor{display:grid;gap:0}.booking-item{border:1px solid var(--line);border-radius:14px;padding:14px;margin-bottom:12px}.item-grid{grid-template-columns:2fr repeat(4,1fr) 1fr}.item-actions{display:flex;justify-content:space-between;margin-top:9px;color:var(--muted);font-size:13px}.link-danger{border:0;background:none;color:var(--bad);cursor:pointer}.check{display:flex;align-items:center;grid-template-columns:auto 1fr;margin-top:14px}.check input{width:auto}.savebar{position:sticky;bottom:10px;background:#ffffffee;border:1px solid var(--line);padding:12px;border-radius:14px;display:flex;justify-content:flex-end;gap:10px;box-shadow:0 10px 35px #10182815}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px}.resource-row{padding:11px 0;border-bottom:1px solid var(--line)}.resource-row:last-child{border-bottom:0}.resource-row small,.activity small{display:block;color:var(--muted)}.activity{padding:9px 0;border-bottom:1px solid var(--line)}.booking-title h1{margin:8px 0 5px}.month-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dow{font-size:12px;font-weight:900;color:var(--muted);padding:8px}.day{min-height:145px;background:#fff;border:1px solid var(--line);border-radius:12px;padding:8px;display:flex;flex-direction:column;gap:5px}.day.today{outline:2px solid #101828}.day.empty{background:transparent;border-color:transparent}.day-num{font-weight:900}.event{border:0;text-align:left;border-radius:8px;padding:7px;font-size:12px;font-weight:800}.event.out{background:#eff8ff;color:#175cd3}.event.clean{background:#fffaeb;color:#b54708}.event.in{background:#ecfdf3;color:#067647}.event.kenduri{background:#f5f3ff;color:#6d28d9}.day-link{font-size:11px;margin-top:auto;color:var(--muted)}.legend{display:flex;gap:16px;flex-wrap:wrap;margin:10px 0 16px}.ops-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.op{padding:9px 0;border-bottom:1px solid var(--line)}.op small{display:block;color:var(--muted)}.score{display:inline-flex;font-weight:900;border-radius:999px;padding:4px 8px}.score-high{background:#ecfdf3;color:#067647}.score-mid{background:#fffaeb;color:#b54708}.score-low{background:#fef3f2;color:#b42318}.match-form{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.muted{color:var(--muted)}.narrow{max-width:600px}.admin-cards{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))}
@media(max-width:900px){body{font-size:16px}.hero{grid-template-columns:1fr;padding-top:44px}.hero-card{grid-template-columns:1fr 1fr}.availability-form{grid-template-columns:1fr}.admin-body{display:block}.sidebar{position:fixed;z-index:50;left:-260px;width:240px;transition:.2s}.menu-open .sidebar{left:0}.menu-btn{display:block;margin-right:12px}.admin-content{padding:14px}.stats{grid-template-columns:1fr 1fr}.form-grid,.item-grid,.two-col,.ops-grid{grid-template-columns:1fr}.month-grid{gap:3px}.day{min-height:105px;padding:5px}.event{font-size:10px;padding:5px}.dow{font-size:9px;padding:4px}.toolbar{align-items:flex-start;flex-direction:column}.toolbar form{width:100%}.toolbar input{flex:1}.booking-title{align-items:flex-start}.hero h1{font-size:48px}}@media(max-width:540px){.stats{grid-template-columns:1fr 1fr}.hero-card{grid-template-columns:1fr}.section,.hero{padding-left:14px;padding-right:14px}.admin-content{padding:10px}.day{min-height:92px}.day-link{display:none}}

.timeline-wrap{overflow:auto}.timeline{min-width:1200px}.timeline th{position:sticky;left:0;background:#fff;z-index:2}.timeline .tl-date{position:static;text-align:center;min-width:78px}.timeline .tl-date small{display:block}.tl-cell{text-align:center;height:68px;min-width:78px;font-weight:900}.tl-cell a{text-decoration:none}.tl-cell small{display:block;max-width:72px;overflow:hidden;text-overflow:ellipsis}.tl-cell.free{background:#ecfdf3;color:#067647}.tl-cell.occupied{background:#eff8ff;color:#175cd3}.tl-cell.blocked{background:#fef3f2;color:#b42318}hr{border:0;border-top:1px solid var(--line);margin:18px 0}

/* ===== V3 PUBLIC WEBSITE ===== */
:root{--brand:#0d5a45;--brand-2:#0a4636;--soft:#edf8f4;--sand:#f8f5ef}
body:not(.admin-body){background:#fbfcfb;color:#17201d}.site-header{padding-top:12px;padding-bottom:12px}.brand{display:flex;align-items:center;gap:9px}.brand-mark{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--brand);color:#fff;letter-spacing:-.04em}.public-nav{display:flex;align-items:center;gap:20px}.public-nav>a:not(.btn){text-decoration:none;font-weight:700;color:#42504b}.home-hero{max-width:1240px;grid-template-columns:1.02fr .98fr;min-height:640px;padding-top:72px;padding-bottom:72px}.hero-copy h1{font-size:clamp(48px,6vw,78px);max-width:760px}.hero-copy>p{font-size:19px;line-height:1.65;max-width:680px}.hero-points{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}.hero-points span{background:var(--soft);color:var(--brand-2);border:1px solid #cce9dd;padding:8px 11px;border-radius:999px;font-weight:800;font-size:13px}.search-shell{background:#fff;border:1px solid #dfe7e3;border-radius:26px;box-shadow:0 24px 80px #17352b17;padding:10px}.search-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;background:#f3f6f5;border-radius:18px;padding:5px}.search-tab{border:0;background:transparent;border-radius:13px;padding:12px 8px;font-weight:850;color:#5e6a66;cursor:pointer}.search-tab.active{background:#fff;color:var(--brand);box-shadow:0 4px 16px #183b2e12}.search-form{display:none;padding:18px;gap:14px}.search-form.active{display:grid}.search-form .search-grid{display:grid;grid-template-columns:1fr 1fr .7fr;gap:10px}.search-grid.two{grid-template-columns:1fr 1fr}.search-form input{padding:13px}.btn.wide{width:100%;background:var(--brand);padding:14px 18px}.optional-stay{border:1px dashed #cdd9d4;border-radius:13px;padding:11px 13px}.optional-stay summary{cursor:pointer;font-weight:800}.optional-stay p{font-size:13px;color:var(--muted);margin:8px 0}.loading{margin-top:12px;padding:16px;border-radius:14px;background:#f5f7f6;color:#58645f;font-weight:750}.result-summary{margin:10px 8px 0;padding:15px;border-radius:16px;display:flex;gap:12px;align-items:center}.result-summary.good{background:#ecfdf3;color:#067647}.result-summary.warn{background:#fff7ed;color:#9a3412}.result-summary p{margin:3px 0 0;font-size:13px}.result-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;font-weight:950;font-size:20px}.availability-group{box-shadow:none;border:1px solid #e5ece8;margin:12px 8px}.availability-count{display:inline-flex;padding:6px 10px;border-radius:999px}.availability-count.has{background:#ecfdf3;color:#067647}.availability-count.none{background:#fef3f2;color:#b42318}.avail-row{text-decoration:none;align-items:center}.avail-row small{display:block;color:var(--muted);font-size:11px;margin-top:2px}.result-cta{margin:14px 8px 8px;background:#0f2d23;color:#fff;border-radius:17px;padding:16px;display:flex;align-items:center;justify-content:space-between;gap:15px}.result-cta span{display:block;color:#bcd3ca;font-size:13px;margin-top:3px}.result-cta .whatsapp{margin:0;background:#19a765;white-space:nowrap}.trust-strip{max-width:1160px;margin:0 auto 20px;display:grid;grid-template-columns:repeat(4,1fr);background:var(--brand);color:#fff;border-radius:22px;overflow:hidden}.trust-strip div{padding:22px;text-align:center;border-right:1px solid #ffffff22}.trust-strip div:last-child{border:0}.trust-strip strong{display:block;font-size:27px}.trust-strip span{font-size:12px;opacity:.75;text-transform:uppercase;letter-spacing:.09em}.section-head p{color:var(--muted);max-width:660px}.text-link{font-weight:850;color:var(--brand);text-decoration:none}.unit-cards{grid-template-columns:repeat(3,1fr)}.unit-card{border-color:#e1e8e4;transition:.2s}.unit-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px #15392b12}.unit-card .card-photo{display:block;height:220px}.card-top,.card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}.card-actions{margin-top:16px}.package-section{display:grid;grid-template-columns:1.2fr .8fr;gap:22px;background:#0f2d23;color:#fff;border-radius:30px;margin-top:50px;margin-bottom:40px}.package-copy h2{font-size:clamp(36px,5vw,58px);letter-spacing:-.04em}.package-copy p{color:#cae0d7;font-size:18px}.package-req{display:flex;flex-wrap:wrap;gap:9px;margin:22px 0}.package-req span{background:#ffffff12;border:1px solid #ffffff20;padding:8px 11px;border-radius:999px;font-weight:750}.package-section .btn{background:#fff;color:#0f2d23}.policy-card{background:#fff;color:#17201d;border-radius:22px;padding:24px;align-self:center}.policy-list{display:grid;gap:9px}.policy-list span{padding:10px;border-radius:10px;background:#f4f7f5;font-size:13px}.video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.video-card{background:#fff;border:1px solid #e1e8e4;border-radius:18px;padding:13px}.video-card>div:first-child{padding:4px 4px 10px}.video-card small{display:block;color:var(--muted)}.video-card .video-wrap{max-width:none}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.steps>div{background:#fff;border:1px solid #e2e9e5;border-radius:18px;padding:20px}.steps b{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--soft);color:var(--brand)}.steps h3{margin-top:18px}.steps p{color:var(--muted);font-size:14px;line-height:1.6}.faq-list{display:grid;gap:8px}.faq-list details{background:#fff;border:1px solid #e1e8e4;border-radius:14px;padding:15px 17px}.faq-list summary{font-weight:850;cursor:pointer}.faq-list p{margin:12px 0 0;color:var(--muted);line-height:1.6}.seo-link-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.seo-link-grid a{display:grid;gap:6px;background:#fff;border:1px solid #e1e8e4;border-radius:15px;padding:16px;text-decoration:none}.seo-link-grid span{color:var(--muted);font-size:13px}.footer{max-width:1180px;margin:0 auto;border-top:1px solid #e4eae7;display:grid;grid-template-columns:1fr auto;gap:20px;text-align:left}.footer-links{display:flex;gap:15px;flex-wrap:wrap}.footer small{grid-column:1/-1}.sticky-wa{position:fixed;z-index:30;right:18px;bottom:18px;background:#159957;color:#fff;padding:13px 17px;border-radius:999px;text-decoration:none;font-weight:900;box-shadow:0 12px 30px #0e6e3e40}.booking-public-card{margin:10px 8px 8px;border:1px solid #dfe7e3;border-radius:18px;padding:17px;background:#fff}.booking-public-head{display:flex;justify-content:space-between;gap:12px}.booking-money{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0}.booking-money div{background:#f5f8f6;padding:10px;border-radius:11px}.booking-money span{display:block;color:var(--muted);font-size:11px}.booking-money strong{display:block;margin-top:3px}.resource-public-list{display:grid;gap:7px}.resource-public-list>div{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf1ef;padding-top:9px}.resource-public-list span{color:var(--muted);font-size:12px;text-align:right}.unit-public-hero{max-width:1180px;margin:auto;padding:56px 20px;display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.unit-cover{min-height:430px;border-radius:26px;background:#eef2f0 center/cover no-repeat}.unit-public-copy h1{font-size:clamp(43px,6vw,68px);letter-spacing:-.05em}.unit-meta{display:flex;flex-wrap:wrap;gap:8px;margin:17px 0}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.gallery-grid img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:15px}.seo-article{max-width:900px}.seo-article h1{font-size:clamp(42px,6vw,66px);letter-spacing:-.045em}.seo-content{font-size:17px;line-height:1.8;color:#35413d}.seo-content h2{margin-top:32px;color:#17201d}.seo-content ul{padding-left:20px}.public-admin-note{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:12px;border-radius:12px}

@media(max-width:960px){.public-nav>a:not(.btn){display:none}.home-hero{grid-template-columns:1fr;padding-top:46px}.hero-copy h1{font-size:54px}.trust-strip{margin-left:14px;margin-right:14px}.unit-cards,.video-grid{grid-template-columns:repeat(2,1fr)}.package-section{grid-template-columns:1fr}.steps{grid-template-columns:1fr 1fr}.seo-link-grid{grid-template-columns:1fr 1fr}.unit-public-hero{grid-template-columns:1fr}.unit-cover{min-height:340px}}
@media(max-width:620px){.site-header{padding-left:12px;padding-right:12px}.brand>span:last-child{font-size:14px}.home-hero{padding-left:14px;padding-right:14px}.hero-copy h1{font-size:44px}.search-tabs{grid-template-columns:1fr}.search-form .search-grid,.search-grid.two{grid-template-columns:1fr}.trust-strip{grid-template-columns:1fr 1fr}.unit-cards,.video-grid,.steps,.seo-link-grid{grid-template-columns:1fr}.result-cta{align-items:stretch;flex-direction:column}.result-cta .whatsapp{width:100%}.package-section{margin-left:14px;margin-right:14px;padding:30px 18px}.booking-money{grid-template-columns:1fr}.resource-public-list>div{display:grid}.resource-public-list span{text-align:left}.footer{grid-template-columns:1fr;padding-bottom:90px}.footer-links{display:grid}.sticky-wa{left:14px;right:14px;bottom:10px;text-align:center}.gallery-grid{grid-template-columns:1fr 1fr}.unit-public-hero{padding-left:14px;padding-right:14px}}
.gallery-admin{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin:12px 0}.gallery-admin>div{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#fff}.gallery-admin img{width:100%;height:100px;object-fit:cover;display:block}.gallery-admin a{display:block;padding:7px;text-align:center}.lead{font-size:20px;color:var(--muted);line-height:1.6}
.turnaround-hint{font-weight:750}.hint-good{color:#067647}.hint-warn{color:#b54708}.hint-bad{color:#b42318}


/* V3.1 Booking lock workflow */
.lock-notice{padding:14px 16px;border:1px solid #b8e0cf;background:#effaf5;border-radius:14px;margin:0 0 16px;display:flex;gap:4px;flex-direction:column}.lock-notice strong{color:#0d6449}.lock-notice small{color:#4b635b}.booking-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.booking-actions form{margin:0}.btn.danger{background:#a61b1b;color:#fff;border-color:#a61b1b}.danger-zone{border-color:#efc0c0}.danger-zone h2{color:#8b1a1a}.timeline th small{display:block;margin-top:3px;color:#6b7280;font-weight:500}

/* ===== V3.2 Admin speed workflow ===== */
.compact-4{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-3{grid-template-columns:repeat(3,minmax(0,1fr))}.compact-2{grid-template-columns:repeat(2,minmax(0,1fr))}.booking-compact-head{padding-bottom:14px}.event-fields{border-left:4px solid #7c3aed}.package-note,.package-calc-note{padding:11px 13px;border-radius:11px;background:#f8fafc;color:#475467;font-size:13px;margin-top:10px}.item-main-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr .9fr;gap:12px;align-items:end}.booking-item-v32{background:#fbfcfd}.booking-item-v32 label small{display:block;font-weight:500;color:var(--muted);margin-top:5px}.item-options-row{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-top:10px}.item-options-row .check{margin:0}.link-button{border:0;background:transparent;padding:0;color:#3448a5;font-weight:750;cursor:pointer}.item-time-extra{display:none;grid-template-columns:1fr 1fr;gap:12px;margin-top:10px;max-width:520px}.booking-item.show-time .item-time-extra{display:grid}.booking-item-v32 .turnaround-hint{margin-top:9px;font-size:12px}.charge-panel{background:#fcfcff}.charge-row{display:grid;grid-template-columns:1.8fr .5fr .7fr .8fr auto;gap:10px;align-items:end;padding:10px 0;border-bottom:1px solid var(--line)}.charge-row:last-child{border-bottom:0}.booking-total-panel{border:2px solid #e3e8ef}.security-row{align-items:end}.summary-box{background:#f6f8fa;border:1px solid var(--line);border-radius:12px;padding:11px 13px;display:grid;gap:3px}.summary-box span,.summary-box small{color:var(--muted);font-size:12px}.summary-box strong{font-size:22px}.resource-price{display:flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}.charge-line{background:#fafafa;padding-left:10px;padding-right:10px;border-radius:9px}.package-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.package-admin-grid .panel{margin-bottom:0}

.calendar-color-legend{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:9px 0 14px}.calendar-color-legend span{padding:6px 9px;border-radius:999px;font-size:12px;font-weight:850}.calendar-color-legend .legend-note{background:transparent;color:var(--muted);font-weight:600}.cat-homestay{background:#dcfce7!important;color:#166534!important}.cat-roomstay{background:#dbeafe!important;color:#1d4ed8!important}.cat-venue{background:#fef3c7!important;color:#92400e!important}.cat-tent{background:#ffedd5!important;color:#9a3412!important}.cat-kenduri{background:#f3e8ff!important;color:#7e22ce!important}.cat-event{background:#fce7f3!important;color:#be185d!important}.month-grid-detail .day{min-height:190px}.cal-chip-list{display:grid;gap:4px}.cal-booking-chip,.cal-special{width:100%;border:0;border-radius:7px;text-align:left;padding:5px 6px;cursor:pointer;background:#f2f4f7}.cal-booking-chip span{display:grid;min-width:0}.cal-booking-chip strong,.cal-special{font-size:10.5px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-booking-chip small{font-size:9.5px;opacity:.8;margin-top:2px;white-space:nowrap}.cal-booking-chip:hover,.cal-special:hover{filter:brightness(.97);outline:1px solid #98a2b3}.cal-clean-mini,.cal-more{font-size:10px;text-decoration:none;color:#8a5a00;background:#fff8e1;border-radius:6px;padding:4px 6px}.cal-more{color:#475467;background:#f2f4f7}.op-button{border:0;background:transparent;width:100%;text-align:left;cursor:pointer}.op-button:hover{background:#f7f8fa}.quick-modal{position:fixed;inset:0;background:#10182870;z-index:100;display:none;align-items:center;justify-content:center;padding:18px}.quick-modal.open{display:flex}.quick-modal-card{position:relative;width:min(720px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:20px;padding:22px;box-shadow:0 30px 90px #0004}.modal-x{position:absolute;right:12px;top:10px;border:0;background:#eef2f6;width:34px;height:34px;border-radius:50%;font-size:24px;cursor:pointer}.popup-booking-head{display:flex;justify-content:space-between;gap:20px;padding-right:35px}.popup-booking-head h2{margin:8px 0 4px}.popup-phone{font-weight:750;color:#087443}.popup-no{text-align:right;font-weight:850}.popup-no small{display:block;color:var(--muted);margin-top:4px}.popup-event{display:flex;justify-content:space-between;gap:10px;background:#faf5ff;border:1px solid #ead7ff;padding:10px 12px;border-radius:11px;margin:14px 0}.popup-items{border-top:1px solid var(--line);margin-top:12px}.popup-item{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.popup-item small{display:block;color:var(--muted);margin-top:3px}.unit-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.unit-dot.cat-homestay{background:#22c55e!important}.unit-dot.cat-roomstay{background:#3b82f6!important}.unit-dot.cat-venue{background:#f59e0b!important}.unit-dot.cat-tent{background:#f97316!important}.popup-item.charge{background:#fafafa;padding-left:8px;padding-right:8px}.popup-money-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:14px}.popup-money-grid>div{background:#f6f8fa;border-radius:11px;padding:10px}.popup-money-grid span,.popup-money-grid small{display:block;color:var(--muted);font-size:11px}.popup-money-grid strong{display:block;margin:3px 0}.popup-notes{background:#fffbeb;border-radius:10px;padding:10px;margin-top:12px}.popup-notes p{margin:5px 0 0}.popup-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:15px}.span-switch{display:flex;justify-content:center;gap:6px;margin-top:5px}.span-switch a{text-decoration:none;font-size:12px;padding:4px 7px;border-radius:7px;background:#fff;border:1px solid var(--line)}.span-switch a.active{background:#111827;color:#fff}.tl-cell button{width:100%;height:100%;border:0;background:transparent;color:inherit;cursor:pointer;font-weight:850;padding:5px}.tl-cell button small{font-size:9px;font-weight:500}.admin-cards .card-photo.placeholder{height:100px}.admin-cards .card-photo:not(.placeholder){height:150px}.admin-cards .card-body{padding:14px}

@media(max-width:1000px){.compact-4,.compact-3,.item-main-grid,.package-admin-grid{grid-template-columns:1fr 1fr}.charge-row{grid-template-columns:1.5fr .5fr .8fr .8fr}.charge-row .link-danger{grid-column:1/-1;justify-self:end}.month-grid-detail .day{min-height:160px}.cal-booking-chip small{display:none}}
@media(max-width:700px){.compact-4,.compact-3,.compact-2,.item-main-grid,.package-admin-grid,.popup-money-grid{grid-template-columns:1fr}.item-time-extra{grid-template-columns:1fr}.charge-row{grid-template-columns:1fr 1fr}.charge-row label:first-of-type{grid-column:1/-1}.month-grid-detail{min-width:880px}.admin-content:has(.month-grid-detail){overflow-x:auto}.popup-booking-head{display:grid}.popup-no{text-align:left}.quick-modal-card{padding:18px}.calendar-color-legend{position:sticky;left:0}.resource-price{justify-content:flex-start}}
.unit-price-public{display:block;color:var(--brand);margin:8px 0}.package-price-line{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0}.package-price-line strong,.package-price-line span{padding:8px 10px;border-radius:10px;background:#ffffff12;border:1px solid #ffffff20}.package-price-line span{color:#cae0d7}
.search-tabs{grid-template-columns:repeat(4,1fr)}
@media(max-width:620px){.search-tabs{grid-template-columns:1fr 1fr}}


/* ==========================================================
   HNZ V3.3 — Calendar Pro + compact booking editor
   ========================================================== */
.label-note{font-size:10px;color:var(--muted);font-weight:600;margin-left:3px}.booking-editor-v33 .panel{margin-bottom:12px}.booking-editor-v33 .booking-item-v32{padding:12px;border-color:#dce3ea;background:#fff}.booking-editor-v33 .item-main-grid{grid-template-columns:minmax(230px,1.45fr) minmax(155px,.85fr) minmax(155px,.85fr) minmax(150px,.65fr);gap:10px}.booking-editor-v33 .item-main-grid label{gap:5px}.booking-editor-v33 .item-options-row{margin-top:7px}.booking-editor-v33 .booking-total-panel{background:linear-gradient(180deg,#fff,#fbfcfd)}.booking-editor-v33 .summary-box{min-height:76px;justify-content:center}.booking-editor-v33 [data-price-explain]{min-height:16px;color:#087443;font-weight:700}.booking-editor-v33 .turnaround-hint{padding:7px 9px;border-radius:8px;background:#f8fafc}.booking-editor-v33 .hint-good{background:#ecfdf3;color:#067647}.booking-editor-v33 .hint-warn{background:#fffaeb;color:#b54708}.booking-editor-v33 .hint-bad{background:#fef3f2;color:#b42318}
.calendar-pro-legend{background:#fff;border:1px solid var(--line);padding:9px 10px;border-radius:12px}.calendar-pro-legend .legend-title{font-weight:900;font-size:12px;padding:0}.calendar-pro-legend .legend-item{box-shadow:inset 0 0 0 1px #0000000a}.month-grid-detail{gap:7px}.month-grid-detail .day{min-height:235px;max-height:235px;padding:8px 7px;border-radius:14px;transition:.15s;overflow:hidden}.month-grid-detail .day.has-booking{border-color:#cbd5e1;background:#fff}.month-grid-detail .day.has-booking:hover{box-shadow:0 8px 24px #10182810;transform:translateY(-1px)}.day-head{display:flex;align-items:center;justify-content:space-between;gap:6px}.day-count{font-size:8.5px;color:#667085;background:#f2f4f7;padding:3px 5px;border-radius:999px;white-space:nowrap}.cal-chip-scroll{min-height:0;overflow-y:auto;overflow-x:hidden;padding-right:2px;scrollbar-width:thin}.cal-chip-list{gap:5px}.cal-booking-chip,.cal-special{min-height:42px;padding:5px 7px;border-radius:9px;border:1px solid transparent;box-shadow:0 1px 2px #1018280a}.cal-booking-chip{display:grid;gap:2px}.cal-chip-top,.cal-chip-customer{display:flex;align-items:center;min-width:0}.cal-chip-top{gap:4px}.cal-chip-top strong{font-size:11px}.cal-phase{font-size:11px}.cal-chip-top em{margin-left:auto;font-style:normal;font-size:7.5px;font-weight:900;opacity:.72;letter-spacing:.04em}.cal-chip-customer{gap:5px;justify-content:space-between}.cal-chip-customer b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-chip-customer small{font-size:8.5px;white-space:nowrap;opacity:.85}.cal-special{font-size:10px!important;font-weight:850}.cal-clean-mini{display:block;border:1px dashed #f0c36a;background:#fff9e8;padding:5px 7px}.day-link{display:inline-flex;align-items:center;font-weight:700;text-decoration:none;padding-top:3px}.cat-homestay.cal-booking-chip{border-left:4px solid #22c55e}.cat-roomstay.cal-booking-chip{border-left:4px solid #3b82f6}.cat-venue.cal-booking-chip{border-left:4px solid #f59e0b}.cat-tent.cal-booking-chip{border-left:4px solid #f97316}
@media(max-width:1100px){.booking-editor-v33 .item-main-grid{grid-template-columns:1.2fr 1fr 1fr}.booking-editor-v33 .item-main-grid>label:last-child{grid-column:1/-1}.month-grid-detail .day{min-height:210px;max-height:210px}.cal-chip-customer small{display:none}}
@media(max-width:760px){.booking-editor-v33 .item-main-grid{grid-template-columns:1fr}.booking-editor-v33 .item-main-grid>label:last-child{grid-column:auto}.month-grid-detail{min-width:1050px}.month-grid-detail .day{min-height:220px;max-height:220px}.cal-chip-customer small{display:inline}}
