@import "https://fonts.googleapis.com/css2?family=Manrope:wght@400;500;600;700;800&family=Playfair+Display:wght@700;800&display=swap";:root{color:#17221e;font-synthesis:none;--green:#0c7b58;--green-dark:#07573f;--gold:#c99337;--ink:#17221e;--muted:#66736e;--line:#dfe7e3;--card:#fff;--shadow:0 20px 50px #1532281a;background:#f6f8f7;font-family:Manrope,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}img{max-width:100%;display:block}.app-shell{min-height:100vh}.topbar{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line);z-index:50;background:#fffffff5;justify-content:space-between;align-items:center;height:78px;padding:0 clamp(18px,5vw,70px);display:flex;position:sticky;top:0}.brand{text-align:left;color:var(--ink);background:0 0;border:0;align-items:center;gap:12px;display:flex}.brand-mark{background:linear-gradient(145deg,var(--green),#10a272);color:#fff;border-radius:14px;place-items:center;width:44px;height:44px;display:grid;box-shadow:0 9px 22px #0c7b5840}.brand-mark.large{border-radius:19px;width:62px;height:62px;margin:auto}.brand span:last-child{flex-direction:column;display:flex}.brand strong{font-size:16px}.brand small{color:var(--muted)}nav{align-items:center;gap:6px;display:flex}nav button{color:#45534e;background:0 0;border:0;border-radius:11px;padding:11px 14px;font-weight:700}nav button:hover{color:var(--green);background:#eff6f3}.nav-primary,.primary-btn{justify-content:center;align-items:center;gap:8px;display:inline-flex;box-shadow:0 10px 22px #0c7b5833;background:linear-gradient(135deg,var(--green),#119369)!important;color:#fff!important;border:0!important}.mobile-menu-btn{background:#edf4f1;border:0;border-radius:12px;padding:9px;display:none}.demo-banner{color:#694d11;text-align:center;background:#fff4d9;justify-content:center;gap:8px;padding:9px 20px;font-size:13px;font-weight:700;display:flex}.hero{align-items:top;background:url(/ff.jpg) 100%/cover;min-height:700px;display:flex;position:relative}.hero-overlay{background:linear-gradient(90deg,#062219e8,#0622197a 58%,#06221914);position:absolute;inset:0}.hero-content{color:#fff;width:min(1180px,90%);margin:auto;position:relative}.eyebrow,.section-kicker{text-transform:uppercase;letter-spacing:.13em;color:#9de3c8;align-items:center;gap:8px;font-size:12px;font-weight:800;display:flex}.hero h1{margin:20px 0;font:800 clamp(46px,7vw,80px)/1.02 Playfair Display,serif}.hero p{color:#dceae5;max-width:650px;font-size:18px;line-height:1.75}.hero-points{flex-wrap:wrap;gap:12px;margin-top:30px;display:flex}.hero-points span{background:#ffffff1a;border:1px solid #ffffff3d;border-radius:999px;align-items:center;gap:8px;padding:11px 14px;font-size:13px;font-weight:700;display:flex}.hero-points svg{width:17px}.content-section{width:min(1180px,92%);margin:auto;padding:70px 0}.section-title-row{justify-content:space-between;align-items:end;gap:25px;margin-bottom:28px;display:flex}.section-kicker{color:var(--green)}h1,h2,h3,p{margin-top:0}.section-title-row h2{margin:6px 0;font:800 38px Playfair Display,serif}.section-title-row p,.dash-card-head p{color:var(--muted);margin:0}.filters{gap:10px;display:flex}.search-box{border:1px solid var(--line);height:46px;color:var(--muted);background:#fff;border-radius:13px;align-items:center;gap:9px;padding:0 13px;display:flex}.search-box input{background:0 0;border:0;outline:0;min-width:180px}.filters select,select,input,textarea{border:1px solid var(--line);background:#fff;border-radius:12px;outline:none;width:100%;padding:12px 13px}input:focus,select:focus,textarea:focus{border-color:#63ae93;box-shadow:0 0 0 3px #0c7b5817}.room-grid{grid-template-columns:repeat(3,1fr);gap:22px;display:grid}.room-card{background:var(--card);box-shadow:var(--shadow);border:1px solid #edf2ef;border-radius:22px;transition:all .25s;overflow:hidden}.room-card:hover{transform:translateY(-6px)}.room-image{height:240px;position:relative}.room-image img,.detail-photo img,.booking-summary img,.admin-room-grid img{object-fit:cover;width:100%;height:100%}.room-image .status-badge{position:absolute;top:15px;left:15px}.room-number{color:#fff;background:#062219db;border-radius:10px;padding:8px 11px;font-weight:800;position:absolute;bottom:15px;right:15px}.room-number.large{font-size:18px}.room-card-body{padding:20px}.room-card-body h3{margin-bottom:5px}.room-card-body p{color:var(--muted);font-size:13px}.amenity-mini{flex-wrap:wrap;gap:6px;margin:15px 0 20px;display:flex}.amenity-mini span{color:#486059;background:#f1f6f4;border-radius:8px;padding:6px 8px;font-size:11px;font-weight:700}.room-card-footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;padding-top:16px;display:flex}.room-card-footer strong{font-size:20px;display:block}.room-card-footer small{color:var(--muted)}.primary-btn,.secondary-btn,.small-btn{border-radius:12px;padding:12px 16px;font-weight:800}.primary-btn.big{padding:15px 22px;font-size:16px}.full{width:100%}.status-badge{text-transform:uppercase;letter-spacing:.05em;border-radius:999px;align-items:center;padding:6px 9px;font-size:10px;font-weight:800;display:inline-flex}.status-available{color:#08724f;background:#ddf7ec}.status-reserved{color:#9a5a00;background:#fff0d9}.status-paid{color:#175d9e;background:#dfeeff}.status-cleaning{color:#6741a4;background:#eee7ff}.status-maintenance{color:#a62e2e;background:#ffe5e5}.empty-state{text-align:center;background:#fff;border:1px dashed #becdc7;border-radius:20px;grid-column:1/-1;padding:70px}.back-btn,.text-btn{color:var(--green);background:0 0;border:0;align-items:center;gap:5px;font-weight:800;display:flex}.detail-grid{grid-template-columns:1.25fr .75fr;align-items:center;gap:45px;margin-top:20px;display:grid}.detail-photo{height:600px;box-shadow:var(--shadow);border-radius:28px;position:relative;overflow:hidden}.detail-copy h1{margin:18px 0 8px;font:800 48px Playfair Display,serif}.detail-subtitle{color:var(--muted)}.price-line{align-items:baseline;gap:9px;margin:25px 0;display:flex}.price-line strong{color:var(--green);font-size:32px}.amenity-grid{grid-template-columns:1fr 1fr;gap:11px;display:grid}.amenity-grid span{color:#43524c;align-items:center;gap:8px;display:flex}.amenity-grid svg{color:var(--green)}.policy-box,.payment-instruction{background:#eff7f4;border-radius:16px;gap:13px;margin:25px 0;padding:17px;display:flex}.policy-box svg,.payment-instruction svg{color:var(--green);flex:none}.policy-box p{color:var(--muted);margin:4px 0 0;font-size:13px}.booking-layout{grid-template-columns:1fr 360px;align-items:start;gap:25px;display:grid}.card-panel,.dash-card{background:#fff;border:1px solid #e8efec;border-radius:22px;box-shadow:0 13px 35px #18332a12}.booking-form{padding:30px}.form-heading h1{margin:7px 0;font:800 38px Playfair Display,serif}.form-heading p{color:var(--muted)}label{color:#3d4d47;flex-direction:column;gap:7px;font-size:13px;font-weight:800;display:flex}.form-grid{gap:15px;margin-bottom:15px;display:grid}.form-grid.two{grid-template-columns:1fr 1fr}.form-grid.three{grid-template-columns:repeat(3,1fr)}textarea{resize:vertical}.upload-grid{grid-template-columns:1fr 1fr;gap:15px;margin:17px 0;display:grid}.upload-box{text-align:center;background:#f9fcfb;border:1.5px dashed #a9c4ba;border-radius:16px;align-items:center;padding:22px;position:relative}.upload-box svg{color:var(--green)}.upload-box span{color:var(--muted);font-size:11px;font-weight:500}.upload-box input{opacity:0;cursor:pointer;position:absolute;inset:0}.upload-box small{color:var(--green);max-width:100%;overflow:hidden}.scan-progress{color:var(--green);background:#edf8f4;border-radius:12px;align-items:center;gap:9px;padding:13px;font-weight:700;display:flex}.receipt-result{background:#f5f8ff;border:1px solid #dce7fb;border-radius:14px;grid-template-columns:1fr 1fr;gap:8px;margin:15px 0;padding:15px;font-size:12px;display:grid}.receipt-result strong{grid-column:1/-1}.booking-summary{padding-bottom:20px;position:sticky;top:100px;overflow:hidden}.booking-summary img{height:220px}.booking-summary h3,.booking-summary>div,.booking-summary>p{margin-left:20px;margin-right:20px}.booking-summary h3{margin-top:18px}.summary-row{border-top:1px solid var(--line);justify-content:space-between;padding:14px 0;display:flex}.payment-instruction{margin-top:15px}.payment-instruction p,.payment-instruction small{color:var(--muted);margin:3px 0;display:block}.payment-instruction b{color:var(--green);font-size:21px}.fine-print{color:var(--muted);font-size:11px;line-height:1.6}.lookup-page,.login-page{place-items:center;min-height:72vh;display:grid}.lookup-card,.login-card{text-align:center;width:min(620px,100%);padding:38px}.search-box.large{height:58px;margin:22px 0}.search-box.large input{width:100%;font-size:16px}.lookup-result{text-align:left;border:1px solid var(--line);border-radius:15px;grid-template-columns:1fr auto;gap:12px;padding:16px;display:grid}.lookup-result>div:first-child span{color:var(--muted);margin-top:4px;font-size:12px;display:block}.lookup-details{grid-column:1/-1;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;display:grid}.login-page{background:radial-gradient(circle at top,#dff5ed,#0000 45%)}.login-card{width:min(440px,92%);box-shadow:var(--shadow);background:#fff;border-radius:25px}.login-card h1{margin:18px 0 8px;font:800 34px Playfair Display,serif}.login-card>p,.login-card>small{color:var(--muted);line-height:1.6}.login-card label{text-align:left;margin-top:14px}.login-card .text-btn{margin:16px auto}.error-box{color:#9a2525;background:#ffeaea;border-radius:10px;padding:10px;font-size:12px}.dashboard-page{background:#f3f6f5;grid-template-columns:240px 1fr;min-height:calc(100vh - 78px);display:grid}.dashboard-sidebar{color:#fff;background:#102a22;flex-direction:column;gap:7px;padding:25px 15px;display:flex}.sidebar-title{align-items:center;gap:10px;padding:0 8px 24px;display:flex}.sidebar-title small{color:#9fb7af;display:block}.dashboard-sidebar button{color:#b9cbc5;text-align:left;background:0 0;border:0;border-radius:11px;align-items:center;gap:10px;padding:12px 14px;font-weight:700;display:flex}.dashboard-sidebar button.active,.dashboard-sidebar button:hover{color:#fff;background:#1c4437}.dashboard-main{min-width:0;padding:30px}.dashboard-top{justify-content:space-between;align-items:center;margin-bottom:24px;display:flex}.dashboard-top h1{margin:4px 0;font:800 35px Playfair Display,serif}.stats-grid{grid-template-columns:repeat(4,1fr);gap:15px;display:grid}.stat-card{background:#fff;border:1px solid #e4ebe8;border-radius:17px;align-items:center;gap:13px;padding:18px;display:flex}.stat-card>span{border-radius:14px;place-items:center;width:46px;height:46px;display:grid}.stat-card.green>span{color:#0c7b58;background:#dcf6eb}.stat-card.blue>span{color:#2866aa;background:#e3f0ff}.stat-card.orange>span{color:#a96508;background:#fff0dc}.stat-card.purple>span{color:#714caf;background:#eee6ff}.stat-card small{color:var(--muted);display:block}.stat-card strong{font-size:23px}.dashboard-grid{grid-template-columns:1.45fr .75fr;gap:18px;margin-top:18px;display:grid}.dash-card{padding:20px}.dash-card-head{justify-content:space-between;align-items:center;margin-bottom:18px;display:flex}.dash-card-head h3{margin-bottom:4px}.compact-room-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.compact-room{text-align:center;border:0;border-radius:12px;padding:13px 5px}.compact-room strong,.compact-room span{display:block}.compact-room span{margin-top:3px;font-size:8px}.compact-room.available{color:#096d4d;background:#daf5e9}.compact-room.paid{color:#205c97;background:#dfedff}.compact-room.reserved{color:#925b0d;background:#fff0dc}.compact-room.cleaning{color:#62469c;background:#eee8ff}.compact-room.maintenance{color:#9a2d2d;background:#ffe5e5}.checkout-list>div{border-bottom:1px solid var(--line);align-items:center;gap:11px;padding:11px 0;display:flex}.room-circle{width:42px;height:42px;color:var(--green);background:#e8f5f0;border-radius:50%;place-items:center;font-weight:800;display:grid}.checkout-list div div{flex:1}.checkout-list small{color:var(--muted);font-size:11px;display:block}.checkout-list button,.small-btn{color:var(--green);background:#edf4f1;border:0;border-radius:9px;padding:8px 10px;font-size:11px;font-weight:800}.table-wrap{overflow:auto}table{border-collapse:collapse;width:100%;min-width:900px}th,td{text-align:left;border-bottom:1px solid var(--line);padding:13px;font-size:12px}th{color:var(--muted);text-transform:uppercase;font-size:10px}td span{color:var(--muted);margin-top:4px;font-size:10px;display:block}.secondary-btn{border:1px solid var(--line);color:var(--green);background:#fff;align-items:center;gap:7px;display:flex}.admin-room-grid{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}.admin-room-grid article{border:1px solid var(--line);border-radius:15px;overflow:hidden}.admin-room-grid img{height:130px}.admin-room-grid article>div{padding:13px}.room-admin-title{justify-content:space-between;align-items:center;display:flex}.admin-room-grid span,.admin-room-grid b{margin-top:6px;display:block}.admin-actions{gap:7px;margin-top:12px;display:flex}.admin-actions button{color:var(--green);background:#edf4f1;border:0;border-radius:9px;align-items:center;gap:5px;padding:8px 10px;font-weight:800;display:flex}.admin-actions button.danger{color:#b83434;background:#fff0f0}.settings-card{max-width:800px}.modal-backdrop{z-index:100;background:#061a14ab;place-items:center;padding:15px;display:grid;position:fixed;inset:0}.modal-card{width:min(560px,100%);max-height:92vh;box-shadow:var(--shadow);background:#fff;border-radius:22px;overflow:auto}.modal-wide{width:min(820px,100%)}.modal-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:18px 22px;display:flex}.modal-head h2{margin:0}.icon-btn{background:#edf4f1;border:0;border-radius:10px;padding:8px}.modal-form{padding:22px}.modal-total{background:#eff7f4;border-radius:13px;justify-content:space-between;margin:15px 0;padding:15px;display:flex}.modal-total strong{color:var(--green);font-size:20px}.empty-inline{text-align:center;color:var(--muted);padding:25px}footer{color:#d5e2dd;background:#102a22;justify-content:space-between;align-items:center;gap:15px;padding:28px clamp(18px,5vw,70px);font-size:13px;display:flex}footer div:first-child{flex-direction:column;display:flex}footer span{color:#8fa79f}.toast{z-index:200;color:#fff;box-shadow:var(--shadow);background:#102a22;border-radius:13px;align-items:center;gap:9px;padding:14px 18px;display:flex;position:fixed;bottom:22px;right:22px}.loading-screen{text-align:center;min-height:100vh;color:var(--green);place-content:center;gap:12px;display:grid}.spin-soft{animation:1s infinite alternate pulse}@keyframes pulse{to{opacity:.55;transform:scale(1.15)}}@media (width<=950px){.room-grid{grid-template-columns:repeat(2,1fr)}.detail-grid,.booking-layout,.dashboard-grid{grid-template-columns:1fr}.detail-photo{height:450px}.booking-summary{position:static}.dashboard-page{grid-template-columns:80px 1fr}.sidebar-title div,.dashboard-sidebar button:not(.active){font-size:0}.dashboard-sidebar button,.sidebar-title{justify-content:center}.stats-grid,.admin-room-grid{grid-template-columns:repeat(2,1fr)}.compact-room-grid{grid-template-columns:repeat(4,1fr)}}@media (width<=700px){.topbar{height:68px;padding:0 16px}.brand small{display:none}.mobile-menu-btn{display:block}nav{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:15px;flex-direction:column;align-items:stretch;padding:10px;display:none;position:absolute;top:68px;left:10px;right:10px}nav.nav-open{display:flex}nav button{justify-content:center}.hero{min-height:470px}.hero h1{font-size:45px}.hero p{font-size:15px}.content-section{padding:45px 0}.section-title-row{flex-direction:column;align-items:stretch}.filters{flex-direction:column}.room-grid{grid-template-columns:1fr}.room-image{height:230px}.detail-grid{gap:22px}.detail-photo{height:330px}.detail-copy h1{font-size:38px}.amenity-grid,.form-grid.two,.form-grid.three,.upload-grid,.receipt-result{grid-template-columns:1fr}.booking-form{padding:20px}.dashboard-page{display:block}.dashboard-sidebar{z-index:30;flex-direction:row;padding:8px;position:sticky;top:68px;overflow:auto}.sidebar-title{display:none}.dashboard-sidebar button,.dashboard-sidebar button:not(.active){min-width:50px;font-size:0}.dashboard-main{padding:17px}.dashboard-top{align-items:flex-start;gap:12px}.dashboard-top .primary-btn{padding:13px;font-size:0}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:12px}.stat-card strong{font-size:17px}.compact-room-grid{grid-template-columns:repeat(3,1fr)}.admin-room-grid{grid-template-columns:1fr}.dash-card-head.responsive{flex-direction:column;align-items:stretch;gap:12px}.lookup-card,.login-card{padding:24px}.lookup-details{grid-template-columns:1fr}footer{text-align:center;flex-direction:column}.toast{bottom:14px;left:14px;right:14px}.modal-card{border-radius:18px}.section-title-row h2{font-size:32px}}.admin-login-page{background:radial-gradient(circle at top,#dff5ed,#0000 48%),#f4f8f6;min-height:calc(100vh - 78px)}.admin-login-page .login-card{flex-direction:column;align-items:center;gap:12px;display:flex}.admin-login-page .section-kicker{margin-top:8px}.google-signin-btn{color:#1f2d28;cursor:pointer;background:#fff;border:1px solid #d8dfdc;border-radius:14px;justify-content:center;align-items:center;gap:12px;width:100%;min-height:54px;font-size:15px;font-weight:800;display:flex;box-shadow:0 7px 20px #14372c14}.google-signin-btn:hover{background:#f8fbfa;border-color:#b9cbc5}.google-signin-btn:disabled{opacity:.65;cursor:wait}.google-g{color:#4285f4;background:#fff;border:1px solid #e1e5e4;border-radius:50%;place-items:center;width:28px;height:28px;font-size:18px;font-weight:900;display:grid}.required-mark{color:#c63f2f;vertical-align:middle;background:#fff0ed;border-radius:999px;margin-left:8px;padding:4px 8px;font-size:11px;font-weight:800;line-height:1;display:inline-flex}.upload-box.upload-required{background:linear-gradient(145deg,#fff8f6f5,#fffffffa);border-color:#c63f2f6b}.upload-box.upload-complete{background:linear-gradient(145deg,#ebfbf5f5,#fffffffa);border-color:#0a8f668c}.selected-file{color:#07835d;overflow-wrap:anywhere;justify-content:center;align-items:center;gap:6px;margin-top:10px;font-weight:750;display:inline-flex}.booking-alert-modal,.booking-success-modal{text-align:center;flex-direction:column;align-items:center;padding:8px 4px 4px;display:flex}.booking-alert-icon{border-radius:24px;place-items:center;width:78px;height:78px;margin:4px auto 18px;display:grid}.booking-alert-icon.warning{color:#c76b13;background:#fff1dd;box-shadow:0 15px 35px #c76b1326}.booking-alert-icon.success{color:#07865f;background:#ddf7ed;box-shadow:0 15px 35px #07865f2b}.booking-alert-modal h3,.booking-success-modal h3{margin:0 0 9px;font-size:25px}.booking-alert-modal>p,.booking-success-modal>p{color:#66726e;max-width:470px;margin:0 0 20px;line-height:1.65}.booking-alert-note{color:#40504a;background:#f3f7f5;border-radius:15px;justify-content:center;align-items:center;gap:9px;width:100%;margin-bottom:22px;padding:14px 16px;font-size:14px;font-weight:700;display:flex}.booking-reference-box{background:radial-gradient(circle at 100% 0,#0a8f661f,#0000 42%),#f4fbf8;border:1px solid #0a8f6640;border-radius:20px;width:100%;margin:3px 0 20px;padding:20px}.booking-reference-box>span{color:#65746f;margin-bottom:7px;font-size:13px;font-weight:700;display:block}.booking-reference-box>strong{color:#073e30;letter-spacing:1px;overflow-wrap:anywhere;margin-bottom:15px;font-size:clamp(24px,5vw,34px);font-weight:900;display:block}.copy-reference-btn{color:#087d5a;min-height:42px;font:inherit;cursor:pointer;background:#fff;border:1px solid #0a8f6640;border-radius:12px;justify-content:center;align-items:center;gap:7px;padding:0 17px;font-weight:800;display:inline-flex}.booking-success-details{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;margin-bottom:22px;display:grid}.booking-success-details div{background:#f4f7f6;border-radius:14px;min-width:0;padding:13px 9px}.booking-success-details span,.booking-success-details strong{display:block}.booking-success-details span{color:#72807b;margin-bottom:5px;font-size:12px}.booking-success-details strong{color:#14251f;overflow-wrap:anywhere;font-size:14px}@media (width<=600px){.booking-success-details{grid-template-columns:1fr}.booking-alert-modal h3,.booking-success-modal h3{font-size:22px}.booking-reference-box>strong{font-size:24px}}.dash-card-actions{align-items:center;gap:10px;display:flex}
