:root{--blue-deep: #1c6dbf;--blue-sky: #6fb6e8;--orange-burnt: #c1571a;--orange-bright: #f2891f;--ink: #16202b;--stone: #5b6672;--stone-light: #8a95a1;--cream: #faf9f7;--paper: #ffffff;--line: #e7e3dc;--success: #1a8a4a;--danger: #c62828;--warn: #b5750e;--font-display: "Sora", ui-sans-serif, system-ui, sans-serif;--font-body: "Inter", ui-sans-serif, system-ui, sans-serif;--radius-sm: 6px;--radius-md: 10px;--shadow-card: 0 1px 2px rgba(22, 32, 43, .06), 0 8px 24px -12px rgba(22, 32, 43, .18);--container: 1180px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-display);margin:0 0 .5em;line-height:1.15;letter-spacing:-.01em}p{line-height:1.65;color:var(--stone);margin:0 0 1em}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button{font-family:inherit;cursor:pointer}.container{max-width:var(--container);margin:0 auto;padding:0 24px}.section{padding:88px 0}.section-tight{padding:56px 0}.eyebrow{color:var(--orange-burnt);font-weight:600;font-size:.95rem;margin-bottom:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:var(--radius-sm);border:1px solid transparent;font-weight:600;font-size:.98rem;transition:transform .15s ease,box-shadow .15s ease,background-color .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--orange-bright);color:#fff}.btn-primary:hover{background:var(--orange-burnt)}.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:#232f3d}.btn-outline{background:transparent;border-color:var(--ink);color:var(--ink)}.btn-outline:hover{background:var(--ink);color:#fff}.btn-outline-light{background:transparent;border-color:#fff9;color:#fff}.btn-outline-light:hover{background:#ffffff1f}.btn-block{width:100%}.btn-sm{padding:8px 16px;font-size:.88rem}.btn-danger{background:var(--danger);color:#fff}.btn[disabled]{opacity:.55;cursor:not-allowed}.brand-stripes{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none}.brand-stripes span{position:absolute;transform:skew(-18deg)}.navbar{position:sticky;top:0;z-index:40;background:#faf9f7e6;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.navbar .container{display:flex;align-items:center;justify-content:space-between;height:76px}.nav-brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:700;font-size:1.05rem}.nav-brand img{height:36px;width:auto}.nav-links{display:flex;align-items:center;gap:30px}.nav-links a{font-weight:500;color:var(--ink);font-size:.96rem;padding:6px 0;border-bottom:2px solid transparent}.nav-links a.active,.nav-links a:hover{border-color:var(--orange-bright)}.nav-actions{display:flex;align-items:center;gap:12px}.nav-toggle{display:none}@media (max-width: 860px){.nav-links{position:fixed;top:76px;left:0;right:0;background:var(--paper);flex-direction:column;align-items:flex-start;padding:20px 24px;border-bottom:1px solid var(--line);gap:16px;transform:translateY(-8px);opacity:0;visibility:hidden;transition:all .18s ease}.nav-links.open{transform:translateY(0);opacity:1;visibility:visible}.nav-toggle{display:inline-flex;background:none;border:none}.nav-actions .btn span{display:none}}.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}.hero .container{position:relative;z-index:2;padding-top:96px;padding-bottom:96px;display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:center}.hero h1{font-size:clamp(2.2rem,4vw,3.4rem);color:#fff;max-width:12ch}.hero p.lede{color:#ffffffc7;font-size:1.1rem;max-width:46ch}.hero-actions{display:flex;gap:14px;margin-top:28px;flex-wrap:wrap}.hero-shape-a,.hero-shape-b,.hero-shape-c{position:absolute;top:-20%;bottom:-20%;width:16%;transform:skew(-18deg)}.hero-shape-a{right:34%;background:var(--orange-burnt)}.hero-shape-b{right:22%;background:var(--orange-bright)}.hero-shape-c{right:10%;background:var(--blue-sky);opacity:.9;clip-path:polygon(0 55%,50% 0,100% 55%,100% 100%,0 100%)}.hero-panel{position:relative;z-index:2;background:#ffffff0f;border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-md);padding:28px}.hero-panel-row{display:flex;justify-content:space-between;padding:14px 0;border-bottom:1px solid rgba(255,255,255,.12)}.hero-panel-row:last-child{border-bottom:none}.hero-panel-row .label{color:#ffffffa6;font-size:.92rem}.hero-panel-row .value{font-weight:600}.hero-cards{position:relative;z-index:2;display:flex;justify-content:center;align-items:flex-start;padding:10px 0}.hero-card{display:block;width:190px;flex-shrink:0;margin-left:-50px;border-radius:var(--radius-md);overflow:hidden;background:var(--paper);border:1px solid rgba(255,255,255,.14);box-shadow:var(--shadow-card);transition:transform .2s ease,box-shadow .2s ease}.hero-card:first-child{margin-left:0}.hero-card:nth-child(1){transform:rotate(-8deg) translateY(14px);z-index:1}.hero-card:nth-child(2){transform:rotate(0) translateY(-6px);z-index:2}.hero-card:nth-child(3){transform:rotate(8deg) translateY(14px);z-index:1}.hero-card:hover{transform:translateY(-10px) rotate(0) scale(1.05)!important;z-index:5!important;box-shadow:0 16px 32px -12px #00000073}.hero-card img{width:100%;aspect-ratio:9 / 16;object-fit:cover}.hero-card .hero-card-body{padding:10px 12px 14px}.hero-card .hero-card-body .name{font-weight:700;font-size:.84rem;color:var(--ink);margin-bottom:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.hero-card .hero-card-body .price{font-family:var(--font-display);font-weight:700;color:var(--orange-burnt);font-size:.86rem}.hero-card .hero-card-body .price small{color:var(--stone);font-weight:500;font-size:.7rem}@media (max-width: 900px){.hero .container{grid-template-columns:1fr;padding-top:64px;padding-bottom:56px}.hero-cards{margin-top:12px;justify-content:flex-start}}@media (max-width: 480px){.hero-card{width:135px;margin-left:-36px}.hero-card .hero-card-body{padding:8px 9px 11px}}.feature-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:2px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}.feature-cell{background:var(--paper);padding:30px 22px;position:relative}.feature-cell:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--orange-bright)}.feature-cell h3{font-size:1.02rem;margin-bottom:8px}.feature-cell p{font-size:.92rem;margin-bottom:0}@media (max-width: 1000px){.feature-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 600px){.feature-grid{grid-template-columns:1fr}}.section-head{max-width:640px;margin-bottom:44px}.section-head.center{margin-left:auto;margin-right:auto;text-align:center}.room-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:26px}.room-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;display:flex;flex-direction:column}.room-card .thumb{height:190px;overflow:hidden;position:relative}.room-card .thumb img{width:100%;height:100%;object-fit:cover}.room-card .tag{position:absolute;top:12px;left:12px;background:var(--ink);color:#fff;font-size:.76rem;font-weight:600;padding:4px 10px;border-radius:999px}.room-card .body{padding:20px 20px 22px;display:flex;flex-direction:column;gap:10px;flex:1}.room-card h3{font-size:1.12rem;margin-bottom:0}.room-card .price{font-family:var(--font-display);font-weight:700;color:var(--orange-burnt);font-size:1.15rem}.room-card .price small{color:var(--stone);font-weight:500;font-size:.8rem}.room-meta{display:flex;gap:14px;color:var(--stone);font-size:.86rem}.room-card .amenity-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.pill{background:var(--cream);border:1px solid var(--line);font-size:.78rem;padding:3px 9px;border-radius:999px;color:var(--stone)}.room-card .cta-row{margin-top:auto;display:flex;gap:10px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-field{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}.form-field label{font-size:.88rem;font-weight:600;color:var(--ink)}.form-field input,.form-field select,.form-field textarea{border:1px solid var(--line);border-radius:var(--radius-sm);padding:12px 14px;font-size:.96rem;font-family:inherit;background:var(--paper);color:var(--ink)}.form-field input:focus,.form-field select:focus,.form-field textarea:focus{outline:2px solid var(--blue-sky);outline-offset:1px;border-color:var(--blue-deep)}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}}.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:28px}.summary-row{display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px dashed var(--line);font-size:.94rem}.summary-row:last-of-type{border-bottom:none}.summary-row.total{font-weight:700;font-size:1.05rem;padding-top:16px}.alert{padding:12px 16px;border-radius:var(--radius-sm);font-size:.9rem;margin-bottom:18px}.alert-error{background:#fdecea;color:var(--danger);border:1px solid #f3c2bd}.alert-success{background:#e9f7ef;color:var(--success);border:1px solid #bfe6cf}.alert-warn{background:#fdf4e3;color:var(--warn);border:1px solid #f2ddac}.badge{display:inline-block;padding:3px 10px;border-radius:999px;font-size:.76rem;font-weight:600}.badge-pending_payment{background:#fdf4e3;color:var(--warn)}.badge-confirmed{background:#e9f7ef;color:var(--success)}.badge-failed{background:#fdecea;color:var(--danger)}.badge-cancelled{background:#ececec;color:var(--stone)}.badge-checked_out{background:#e6eefc;color:var(--blue-deep)}.footer{background:var(--ink);color:#ffffffd1;padding:64px 0 28px}.footer h4{color:#fff;font-size:.98rem}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}.footer a{color:#ffffffb3}.footer a:hover{color:#fff}.footer-bottom{margin-top:48px;padding-top:24px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;font-size:.85rem;color:#ffffff8c;flex-wrap:wrap;gap:10px}@media (max-width: 800px){.footer-grid{grid-template-columns:1fr 1fr}}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.admin-sidebar{background:var(--ink);color:#fff;padding:26px 18px;display:flex;flex-direction:column;gap:6px}.admin-sidebar .brand{display:flex;align-items:center;gap:10px;padding:0 8px 22px;font-family:var(--font-display);font-weight:700}.admin-sidebar .brand img{height:30px}.admin-nav-link{padding:11px 12px;border-radius:var(--radius-sm);color:#ffffffbf;font-weight:500;font-size:.94rem}.admin-nav-link:hover{background:#ffffff0f;color:#fff}.admin-nav-link.active{background:var(--orange-bright);color:#fff}.admin-main{padding:34px 40px}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;margin-bottom:34px}.stat-card{background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);padding:22px}.stat-card .num{font-family:var(--font-display);font-size:1.7rem;font-weight:700}.stat-card .lbl{color:var(--stone);font-size:.88rem}@media (max-width: 900px){.admin-shell{grid-template-columns:1fr}.admin-sidebar{display:flex;flex-direction:row;overflow-x:auto}.stat-grid{grid-template-columns:repeat(2,1fr)}}table.data-table{width:100%;border-collapse:collapse;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden}table.data-table th,table.data-table td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);font-size:.9rem}table.data-table th{background:var(--cream);color:var(--stone);font-weight:600;font-size:.8rem;text-transform:uppercase;letter-spacing:.03em}table.data-table tr:last-child td{border-bottom:none}.table-wrap{overflow-x:auto}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#16202b8c;display:flex;align-items:center;justify-content:center;z-index:100;padding:20px}.modal{background:var(--paper);border-radius:var(--radius-md);padding:28px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto}.page-hero{background:var(--ink);color:#fff;padding:56px 0;position:relative;overflow:hidden}.page-hero h1{color:#fff;font-size:clamp(1.8rem,3vw,2.5rem)}.page-hero p{color:#ffffffbf}.two-col{display:grid;grid-template-columns:1.1fr .9fr;gap:48px;align-items:start}@media (max-width: 900px){.two-col{grid-template-columns:1fr}}.loading-block{padding:60px 0;text-align:center;color:var(--stone)}.auth-page{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;padding:48px 20px;background:var(--cream)}.auth-card{width:100%;max-width:920px;display:grid;grid-template-columns:1fr 1fr;background:var(--paper);border-radius:var(--radius-md);overflow:hidden;box-shadow:0 1px 2px #16202b0f,0 24px 48px -20px #16202b47}.auth-brand{position:relative;background:var(--ink);color:#fff;padding:44px 40px;display:flex;flex-direction:column;justify-content:space-between;gap:32px;overflow:hidden}.auth-brand:before{content:"";position:absolute;top:-30%;right:-20%;width:60%;height:160%;background:var(--orange-bright);opacity:.14;transform:skew(-18deg)}.auth-brand-top{position:relative;z-index:1}.auth-brand h2{color:#fff;font-size:1.6rem;max-width:18ch}.auth-brand p{color:#ffffffb8;margin-bottom:0;max-width:32ch}.auth-perks{position:relative;z-index:1;list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.auth-perks li{display:flex;align-items:center;gap:12px;color:#ffffffe0;font-size:.92rem}.auth-perk-dot{flex-shrink:0;width:8px;height:8px;border-radius:50%;background:var(--orange-bright)}.auth-form-panel{padding:44px 40px;display:flex;align-items:center}.auth-form-inner{width:100%}.auth-form-inner h1{font-size:1.6rem}.auth-switch{margin:20px 0 0;text-align:center;font-size:.92rem}.auth-switch a{color:var(--orange-burnt);font-weight:600}@media (max-width: 800px){.auth-card{grid-template-columns:1fr;max-width:460px}.auth-brand{display:none}.auth-form-panel{padding:36px 28px}}@media (max-width: 640px){.section{padding:56px 0}.section-tight{padding:40px 0}.container{padding:0 18px}.hero-actions{flex-direction:column;align-items:stretch}.hero-actions .btn{width:100%}.stat-grid,.footer-grid{grid-template-columns:1fr}}
