:root{--bg:#f4f7fb;--surface:#fff;--surface2:#eef3f8;--ink:#10243e;--muted:#607086;--accent:#0e7490;--accent2:#0891b2;--line:#dbe4ee;--success:#0f766e;--danger:#b42318;--shadow:0 20px 60px rgba(16,36,62,.10)}*{box-sizing:border-box}html{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--ink)}body{margin:0;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.site-header{height:76px;padding:0 max(24px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.92);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;font-weight:800;color:var(--ink);text-decoration:none}.brand:hover{text-decoration:none}.brand-mark{width:64px;height:64px;display:grid;place-items:center;border-radius:18px;background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:30px;font-weight:900;box-shadow:0 12px 28px rgba(14,116,144,.25)}.brand-mark.small{width:38px;height:38px;border-radius:11px;font-size:18px}.site-header nav{display:flex;align-items:center;gap:22px}.site-header nav a,.link-button{color:var(--ink);font-weight:650}.nav-cta{background:var(--ink);color:#fff!important;padding:10px 15px;border-radius:11px}.inline-form{display:inline}.link-button{border:0;background:transparent;font:inherit;cursor:pointer}.page-shell{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:56px 0 80px}.hero{display:grid;grid-template-columns:1.5fr .75fr;gap:48px;align-items:center;padding:70px 0}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:800;color:var(--accent);margin:0 0 10px}.hero h1,.dashboard-welcome h1,.auth-card h1,.install-card h1{font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-.045em;margin:0}.hero-copy{font-size:19px;line-height:1.7;color:var(--muted);max-width:720px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.btn{display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:12px;background:var(--accent);color:#fff;padding:12px 18px;font-weight:800;cursor:pointer;font:inherit;text-decoration:none}.btn:hover{background:var(--accent2);text-decoration:none}.btn.secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line)}.hero-panel,.admin-card,.auth-card,.install-card{background:var(--surface);border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow)}.hero-panel{padding:32px}.hero-panel p{color:var(--muted);line-height:1.6}.status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;background:#16a34a;margin-right:8px}.feature-grid,.placeholder-grid,.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-grid article,.placeholder-grid article,.stats-grid article{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:24px}.feature-grid span{font-weight:900;color:var(--accent)}.feature-grid p,.placeholder-grid span,.muted{color:var(--muted);line-height:1.6}.site-footer{display:flex;justify-content:space-between;padding:28px max(24px,calc((100vw - 1180px)/2));border-top:1px solid var(--line);color:var(--muted);font-size:14px}.auth-card{max-width:520px;margin:40px auto;padding:38px}.auth-card h1{font-size:42px}.stack-form,.settings-form{display:grid;gap:18px;margin-top:28px}label{display:grid;gap:8px;font-weight:700;font-size:14px}input,select{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;background:#fff;color:var(--ink);outline:none}input:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,116,144,.1)}.form-foot{text-align:center;color:var(--muted)}.alert{padding:14px 16px;border-radius:12px;margin:0 0 20px;border:1px solid}.alert.success{background:#ecfdf5;border-color:#a7f3d0;color:#065f46}.alert.error{background:#fff1f2;border-color:#fecdd3;color:#9f1239}.dashboard-welcome{padding:35px 0}.dashboard-welcome h1{font-size:48px}.dashboard-welcome p{color:var(--muted);font-size:18px;max-width:760px;line-height:1.7}.admin-body{display:grid;grid-template-columns:270px 1fr;min-height:100vh}.sidebar{background:#0f2238;color:#dce8f3;padding:24px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column}.sidebar-brand{color:#fff;margin-bottom:32px}.sidebar nav{display:grid;gap:8px}.sidebar nav a,.nav-disabled{padding:11px 12px;border-radius:10px;color:#dce8f3}.sidebar nav a:hover{background:rgba(255,255,255,.08);text-decoration:none}.nav-disabled{opacity:.55;display:flex;justify-content:space-between}.nav-disabled em{font-size:11px;font-style:normal}.sidebar-bottom{margin-top:auto;display:grid;gap:12px}.sidebar-bottom a,.sidebar-logout{color:#dce8f3}.sidebar-logout{background:transparent;border:0;padding:0;font:inherit;cursor:pointer}.admin-main{padding:36px;min-width:0}.admin-topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.admin-topbar h1{margin:0;font-size:34px;letter-spacing:-.03em}.user-chip{background:var(--surface);border:1px solid var(--line);padding:9px 13px;border-radius:999px;font-weight:700}.stats-grid{grid-template-columns:repeat(4,1fr)}.stats-grid article{display:grid;gap:8px}.stats-grid span{color:var(--muted)}.stats-grid strong{font-size:30px}.admin-card{padding:28px;margin-top:22px}.admin-card h2{font-size:28px;margin:0}.admin-card>p{color:var(--muted);line-height:1.7}.roadmap-strip{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.roadmap-strip span{padding:8px 11px;border-radius:999px;background:var(--surface2);font-size:13px;color:var(--muted)}.roadmap-strip .done{background:#dff7f4;color:#0f766e;font-weight:800}.settings-form{max-width:720px}.check-row{grid-template-columns:auto 1fr;align-items:center}.check-row input{width:18px;height:18px}.error-page{text-align:center;padding:100px 20px}.error-page>span{font-size:80px;font-weight:900;color:#cbd5e1}.error-page h1{font-size:42px;margin:0}.error-page p{color:var(--muted);margin:12px auto 28px}.install-shell{min-height:100vh;display:grid;place-items:center;padding:36px 18px;background:radial-gradient(circle at top,#e6f7fb 0,transparent 42%),var(--bg)}.install-card{width:min(600px,100%);padding:36px}.install-card.wide{width:min(860px,100%)}.install-card h1{font-size:42px}.requirements{display:flex;gap:8px;flex-wrap:wrap;margin:24px 0}.pill{padding:7px 10px;border-radius:999px;font-size:12px;font-weight:800}.pill.ok{background:#dff7f4;color:#0f766e}.pill.bad{background:#ffe4e6;color:#9f1239}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-grid h2{grid-column:1/-1;border-top:1px solid var(--line);padding-top:22px;margin-top:8px}.span-2{grid-column:1/-1}small{font-weight:500;color:var(--muted)}@media(max-width:900px){.hero{grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}.admin-body{grid-template-columns:1fr}.sidebar{position:relative;height:auto}.sidebar nav{grid-template-columns:repeat(2,1fr)}.sidebar-bottom{margin-top:20px}.feature-grid,.placeholder-grid{grid-template-columns:1fr}.site-header{padding:0 20px}.site-header nav{gap:12px}.site-header nav>a:not(.nav-cta){display:none}}@media(max-width:620px){.page-shell{width:min(100% - 24px,1180px);padding-top:28px}.hero{padding:35px 0}.hero h1{font-size:42px}.form-grid{grid-template-columns:1fr}.span-2,.form-grid h2{grid-column:auto}.stats-grid{grid-template-columns:1fr}.admin-main{padding:22px 16px}.admin-topbar{align-items:flex-start;gap:12px}.user-chip{display:none}.site-footer{padding:22px;display:grid;gap:6px}.site-header .brand span:last-child{display:none}}
textarea{width:100%;border:1px solid var(--line);border-radius:12px;padding:12px 14px;font:inherit;background:#fff;color:var(--ink);outline:none;resize:vertical;line-height:1.55}textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(14,116,144,.1)}.section-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}.section-heading h2,.content-section h2,.page-heading h1{margin:0;letter-spacing:-.03em}.section-heading .muted{margin-bottom:0}.admin-card-flat{margin-top:0}.search-bar{display:flex;gap:10px;margin-top:24px}.search-bar input{max-width:440px}.empty-state{background:var(--surface);border:1px dashed #bfd0df;border-radius:24px;padding:64px 24px;text-align:center;margin-top:22px}.empty-state h2{margin:12px 0 6px}.empty-state p{color:var(--muted)}.empty-icon,.image-placeholder{display:grid;place-items:center;background:linear-gradient(135deg,#e3f6fa,#dce8f3);color:var(--accent);font-weight:900}.empty-icon{width:58px;height:58px;border-radius:18px;margin:0 auto;font-size:24px}.hotel-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.hotel-admin-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(16,36,62,.06)}.hotel-admin-cover{height:210px;position:relative;background:var(--surface2)}.hotel-admin-cover img{width:100%;height:100%;object-fit:cover}.hotel-admin-cover .image-placeholder{height:100%;font-size:50px}.status-badge,.featured-badge,.cover-label{position:absolute;top:14px;padding:6px 10px;border-radius:999px;font-size:11px;font-weight:900;letter-spacing:.02em}.status-badge{left:14px;background:#eef2ff;color:#3730a3}.status-badge.active{background:#dcfce7;color:#166534}.status-badge.inactive{background:#fee2e2;color:#991b1b}.featured-badge{right:14px;background:#fff7ed;color:#9a3412}.hotel-admin-content{padding:20px}.hotel-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.hotel-title-row h3{margin:0 0 5px;font-size:21px}.hotel-title-row p,.hotel-meta{color:var(--muted);font-size:13px}.stars{color:#b7791f;letter-spacing:.04em;white-space:nowrap}.hotel-meta{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:14px;margin-top:14px}.card-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:18px}.card-actions form{margin:0}.btn.danger{background:#fff1f2;color:#b42318;border:1px solid #fecdd3}.btn.danger:hover{background:#ffe4e6}.hotel-form{display:grid;gap:0}.form-actions-top,.form-actions-bottom{display:flex;justify-content:space-between;align-items:center;margin-bottom:2px}.form-actions-bottom{justify-content:flex-end;margin:18px 0 40px}.form-grid-admin{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-top:24px}.form-grid-admin .span-2{grid-column:1/-1}.form-note{color:var(--muted);font-size:13px}.hotel-check{align-self:end;min-height:46px}.facility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:22px}.facility-choice{display:flex;align-items:center;gap:10px;padding:12px 13px;border:1px solid var(--line);border-radius:12px;background:#fafcff;cursor:pointer}.facility-choice input{width:17px;height:17px}.gallery-admin-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}.gallery-admin-item{position:relative;border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface2)}.gallery-admin-item img{width:100%;height:150px;object-fit:cover;display:block}.cover-label{left:8px;top:8px;background:#dff7f4;color:#0f766e}.gallery-actions{display:flex;justify-content:space-between;gap:6px;padding:9px;background:#fff}.gallery-actions form{margin:0}.mini-btn{border:0;background:transparent;color:var(--accent);font-weight:800;font-size:12px;cursor:pointer;padding:3px}.danger-text{color:#b42318}.page-heading{padding:34px 0 22px}.page-heading h1{font-size:48px}.public-hotel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.public-hotel-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(16,36,62,.07)}.public-hotel-image{display:block;height:230px;position:relative;background:var(--surface2)}.public-hotel-image img{width:100%;height:100%;object-fit:cover;display:block}.public-hotel-image .image-placeholder{height:100%;font-size:48px}.public-hotel-content{padding:21px}.public-hotel-content h2,.public-hotel-content h3{margin:6px 0 5px}.public-hotel-content h2 a,.public-hotel-content h3 a{color:var(--ink)}.public-hotel-content p{color:var(--muted);line-height:1.55}.location-line{font-size:13px;color:var(--muted)!important}.text-link{font-weight:800}.home-hotels{padding:60px 0 10px}.home-hotels .section-heading{margin-bottom:22px}.public-hotel-grid.compact .public-hotel-image{height:185px}.hotel-detail-hero{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:center;padding:34px 0}.hotel-hero-image{width:100%;height:480px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.hotel-hero-image.image-placeholder{font-size:72px}.hotel-detail-copy h1{font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.045em;margin:9px 0 14px}.quick-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}.quick-facts span{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:13px;color:var(--muted);font-size:13px}.quick-facts strong{display:block;color:var(--ink);margin-bottom:4px}.content-section{padding:38px 0;border-top:1px solid var(--line)}.content-section h2{font-size:32px;margin-bottom:18px}.prose{font-size:17px;line-height:1.8;color:#40526a;max-width:900px}.facility-public-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.facility-public-grid span{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px}.public-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.public-gallery img{width:100%;height:220px;object-fit:cover;border-radius:16px}.policy-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.policy-grid article{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px}.policy-grid h3{margin-top:0}.policy-grid p{color:var(--muted);line-height:1.65;margin-bottom:0}.contact-card{display:flex;justify-content:space-between;gap:32px;background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px;margin:24px 0 20px}.update-summary{box-shadow:none;margin-bottom:20px}
@media(max-width:1050px){.hotel-admin-grid,.public-hotel-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-admin-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.facility-public-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hotel-detail-hero{grid-template-columns:1fr}.hotel-hero-image{height:420px}}
@media(max-width:720px){.section-heading,.contact-card{display:grid}.search-bar{flex-wrap:wrap}.search-bar input{max-width:none}.hotel-admin-grid,.public-hotel-grid,.form-grid-admin,.policy-grid{grid-template-columns:1fr}.form-grid-admin .span-2{grid-column:auto}.facility-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-admin-grid,.public-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.facility-public-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hotel-meta{display:grid}.page-heading h1{font-size:40px}.hotel-hero-image{height:300px}.quick-facts{grid-template-columns:1fr}.form-actions-top{gap:10px}.form-actions-top .btn{padding:10px 12px}.public-gallery img{height:160px}}

/* v0.3.0 Rooms & Inventory */
.room-filter-bar{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:24px}.room-filter-bar label{min-width:220px}.room-filter-bar .grow{flex:1}.room-admin-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.room-admin-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 14px 40px rgba(16,36,62,.06)}.room-admin-cover{height:220px;position:relative;background:var(--surface2)}.room-admin-cover img{width:100%;height:100%;object-fit:cover}.room-admin-cover .image-placeholder{height:100%;font-size:52px}.room-admin-content{padding:20px}.room-price{white-space:nowrap;font-size:16px}.inventory-summary{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}.inventory-summary span{padding:12px;border-radius:12px;background:var(--surface2);color:var(--muted);font-size:12px}.inventory-summary strong{display:block;color:var(--ink);font-size:22px;margin-bottom:2px}.inventory-callout,.booking-phase-card{display:flex;justify-content:space-between;align-items:center;gap:24px}.inventory-status-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:22px}.inventory-status-grid div{background:var(--surface2);border-radius:14px;padding:14px}.inventory-status-grid span{display:block;color:var(--muted);font-size:12px}.inventory-status-grid strong{font-size:26px}.inventory-add-form{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;align-items:end;margin-top:20px}.inventory-add-form .inventory-notes{grid-column:span 2}.inventory-table-wrap{overflow-x:auto;margin-top:18px}.inventory-table{width:100%;border-collapse:collapse;min-width:900px}.inventory-table th,.inventory-table td{padding:10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}.inventory-table th{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.inventory-table input,.inventory-table select{min-width:120px;padding:9px 10px}.mini-empty{padding:22px;border-radius:14px;background:var(--surface2);color:var(--muted);margin-top:16px}.room-status{display:inline-block;padding:5px 8px;border-radius:999px;font-size:11px;font-weight:800;background:#eef2ff;color:#3730a3}.room-status.available{background:#dcfce7;color:#166534}.room-status.maintenance{background:#fff7ed;color:#9a3412}.room-status.blocked{background:#fef3c7;color:#92400e}.room-status.inactive{background:#fee2e2;color:#991b1b}.room-status.occupied{background:#dbeafe;color:#1d4ed8}.public-room-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.public-room-card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden}.public-room-image{display:block;height:230px;background:var(--surface2)}.public-room-image img{width:100%;height:100%;object-fit:cover}.public-room-image .image-placeholder{height:100%;font-size:48px}.public-room-content{padding:20px}.room-card-heading{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.room-card-heading h3{margin:0 0 5px}.room-card-heading p,.public-room-content>p{color:var(--muted);line-height:1.55}.room-card-heading strong{white-space:nowrap}.room-card-meta{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0}.room-card-meta span{font-size:12px;background:var(--surface2);padding:7px 9px;border-radius:999px;color:var(--muted)}.room-detail-hero{display:grid;grid-template-columns:1.15fr .85fr;gap:40px;align-items:center;padding:34px 0}.room-hero-image{width:100%;height:500px;object-fit:cover;border-radius:28px;box-shadow:var(--shadow)}.room-hero-image.image-placeholder{display:grid;place-items:center;font-size:72px;background:linear-gradient(135deg,#e3f6fa,#dce8f3);color:var(--accent);font-weight:900}.room-public-price{display:grid;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:16px;margin-top:20px}.room-public-price span,.room-public-price small{color:var(--muted)}.room-public-price strong{font-size:28px}.room-facts{grid-template-columns:repeat(3,1fr)}.room-phase-empty{background:var(--surface2);border-radius:20px;padding:28px!important;border-top:0}.booking-phase-card{background:var(--surface2);border-radius:20px;padding:28px!important;border-top:0}
@media(max-width:1050px){.room-admin-grid,.public-room-grid{grid-template-columns:1fr}.room-detail-hero{grid-template-columns:1fr}.room-hero-image{height:420px}.inventory-status-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:720px){.inventory-callout,.booking-phase-card,.room-card-heading{display:grid}.inventory-status-grid{grid-template-columns:repeat(2,1fr)}.inventory-add-form{grid-template-columns:1fr}.inventory-add-form .inventory-notes{grid-column:auto}.room-hero-image{height:300px}.room-facts{grid-template-columns:1fr}.room-filter-bar{display:grid}.room-filter-bar label{min-width:0}}


/* v0.4.0 Availability & Inventory Calendar */
.availability-filter-bar{display:grid;grid-template-columns:minmax(180px,.7fr) minmax(220px,1fr) minmax(180px,.55fr) auto;gap:12px;align-items:end;margin-top:24px}.availability-overview{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:22px}.availability-overview article{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:20px}.availability-overview span{display:block;color:var(--muted);font-size:13px}.availability-overview strong{display:block;font-size:26px;margin-top:6px}.availability-check-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end;margin-top:22px;max-width:850px}.availability-result{margin-top:16px;margin-bottom:0}.success-result{display:flex;gap:8px;align-items:baseline;padding:14px 16px;border-radius:12px;background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.success-result strong{font-size:20px}.availability-block-form{display:grid;grid-template-columns:1.2fr .8fr .8fr .8fr;gap:12px;align-items:end;margin-top:22px}.availability-block-form .span-2{grid-column:span 2}.availability-calendar-card{overflow:hidden}.calendar-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:24px}.availability-calendar-wrap{overflow:auto;margin-top:22px;border:1px solid var(--line);border-radius:16px;background:#fff;max-height:620px}.availability-calendar{border-collapse:separate;border-spacing:0;min-width:max-content;width:100%}.availability-calendar th,.availability-calendar td{border-right:1px solid #e7edf4;border-bottom:1px solid #e7edf4;text-align:center}.availability-calendar thead th{position:sticky;top:0;z-index:4;background:#f8fafc;padding:8px 6px;min-width:54px}.availability-calendar thead th span,.availability-calendar thead th small{display:block;color:var(--muted);font-size:10px;font-weight:600}.availability-calendar thead th strong{display:block;font-size:16px;margin:2px 0}.availability-calendar .sticky-col{position:sticky;left:0;z-index:3;background:#fff}.availability-calendar thead .sticky-col{z-index:6;background:#f8fafc}.availability-calendar .room-col{min-width:130px;text-align:left;padding:10px 12px}.availability-calendar .room-col strong,.availability-calendar .room-col small{display:block}.availability-calendar .room-col small{color:var(--muted);font-size:10px;margin-top:3px;text-transform:capitalize}.availability-cell{width:54px;height:48px;background:#dcfce7;color:#166534;font-weight:900}.availability-cell.blocked,.availability-cell.type-blocked{background:#fef3c7;color:#92400e}.availability-cell.maintenance,.availability-cell.type-maintenance{background:#ffedd5;color:#9a3412}.availability-cell.owner-use,.availability-cell.type-owner-use{background:#ede9fe;color:#6d28d9}.availability-cell.hold,.availability-cell.type-hold{background:#cffafe;color:#0e7490}.availability-cell.occupied{background:#dbeafe;color:#1d4ed8}.availability-cell.inactive{background:#fee2e2;color:#991b1b}.availability-cell span{font-size:12px}.availability-legend{display:flex;gap:8px;flex-wrap:wrap;margin-top:14px}.availability-legend span{padding:6px 9px;border-radius:999px;font-size:11px;font-weight:800}.availability-legend .available{background:#dcfce7;color:#166534}.availability-legend .blocked{background:#fef3c7;color:#92400e}.availability-legend .maintenance{background:#ffedd5;color:#9a3412}.availability-legend .owner-use{background:#ede9fe;color:#6d28d9}.availability-legend .hold{background:#cffafe;color:#0e7490}.availability-legend .occupied{background:#dbeafe;color:#1d4ed8}.availability-legend .inactive{background:#fee2e2;color:#991b1b}.block-list{display:grid;gap:10px;margin-top:20px}.block-list article{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.block-list article>div{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.block-list article p{margin:0;color:var(--muted);font-size:13px}.room-status.owner-use{background:#ede9fe;color:#6d28d9}.room-status.hold{background:#cffafe;color:#0e7490}.availability-note{font-size:13px;color:var(--muted)}
@media(max-width:1050px){.availability-filter-bar{grid-template-columns:1fr 1fr}.availability-overview{grid-template-columns:repeat(2,1fr)}.availability-block-form{grid-template-columns:1fr 1fr}.availability-block-form .span-2{grid-column:auto}.availability-check-form{grid-template-columns:1fr 1fr}.availability-check-form .btn{grid-column:1/-1}.calendar-toolbar{display:grid}}
@media(max-width:720px){.availability-filter-bar,.availability-overview,.availability-block-form,.availability-check-form{grid-template-columns:1fr}.availability-check-form .btn{grid-column:auto}.block-list article,.block-list article>div{display:grid}.availability-calendar-wrap{max-height:520px}.availability-calendar .room-col{min-width:110px}.availability-calendar thead th{min-width:48px}}

/* v0.5.0 Dynamic Pricing & Rate Plans */
.pricing-filter{display:flex;gap:12px;align-items:end;flex-wrap:wrap;margin-top:24px}.pricing-filter label{min-width:210px}.pricing-filter .grow{flex:1}.pricing-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px}.pricing-plan-card{margin-top:0}.pricing-plan-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start}.pricing-plan-head h2{margin:5px 0}.badge-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.badge-row .status-badge{position:static}.price-big{display:grid;text-align:right;gap:2px;min-width:150px}.price-big span,.price-big small,.rate-price span,.rate-price small{color:var(--muted);font-size:12px}.price-big strong,.rate-price strong{font-size:24px}.pricing-meta-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:18px 0}.pricing-meta-grid span{background:var(--surface2);padding:11px;border-radius:12px;color:var(--muted);font-size:11px}.pricing-meta-grid strong{display:block;color:var(--ink);font-size:17px;margin-bottom:2px}.quote-form{display:grid;grid-template-columns:1fr 1fr .6fr .6fr auto;gap:12px;align-items:end;margin-top:20px}.quote-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:20px}.quote-summary article{padding:15px;border-radius:14px;background:var(--surface2)}.quote-summary span{display:block;color:var(--muted);font-size:12px}.quote-summary strong{display:block;font-size:20px;margin-top:4px}.quote-summary .quote-total{background:#dff7f4}.table-wrap{overflow-x:auto;margin-top:20px}.admin-table{width:100%;border-collapse:collapse;min-width:800px}.admin-table th,.admin-table td{padding:11px 10px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.admin-table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.weekday-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:8px}.weekday-grid label{display:flex;align-items:center;justify-content:center;gap:5px;background:var(--surface2);padding:9px;border-radius:10px;font-size:12px}.weekday-grid input{width:15px;height:15px}.field-label{display:block;font-weight:700;font-size:14px}.pricing-rules-list{display:grid;gap:16px;margin-top:18px}.pricing-rule-item{border:1px solid var(--line);border-radius:18px;padding:18px;background:#fbfdff}.public-rate-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:20px}.public-rate-card{border:1px solid var(--line);border-radius:18px;padding:20px;background:var(--surface);display:grid;gap:12px}.public-rate-card h3{margin:0 0 6px}.public-rate-card p{margin:0;line-height:1.55}.rate-price{display:grid;gap:2px}.rate-term{font-size:11px;padding:5px 8px;border-radius:999px;background:var(--surface2);color:var(--muted);font-weight:800}.rate-policy{border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:13px}.admin-empty{margin-top:22px}
@media(max-width:1100px){.pricing-plan-grid,.public-rate-grid{grid-template-columns:1fr}.quote-form{grid-template-columns:1fr 1fr}.quote-form .btn{grid-column:1/-1}.quote-summary{grid-template-columns:repeat(2,1fr)}.pricing-meta-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.pricing-filter,.pricing-plan-head,.quote-form{display:grid}.pricing-filter label{min-width:0}.quote-summary,.pricing-meta-grid,.weekday-grid{grid-template-columns:1fr}.price-big{text-align:left}.public-rate-grid{grid-template-columns:1fr}}


/* v0.5.0 pricing UI clarity hotfix */
.pricing-plan-card{display:grid;gap:18px}.pricing-plan-title{min-width:0}.pricing-plan-title .muted{margin:0;line-height:1.5}.price-big{background:var(--surface2);border:1px solid var(--line);border-radius:16px;padding:14px 16px;text-align:left;min-width:190px;align-self:stretch;align-content:center}.price-big span,.price-big small{display:block}.price-big strong{display:block;margin:3px 0;line-height:1.15}.pricing-meta-grid{margin:0}.pricing-meta-grid>div{background:var(--surface2);border:1px solid var(--line);padding:12px 14px;border-radius:12px;min-width:0}.pricing-meta-grid>div>span{display:block;color:var(--muted);font-size:11px;margin-bottom:4px}.pricing-meta-grid>div>strong{display:block;color:var(--ink);font-size:16px;line-height:1.3}.pricing-price-help{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;border:1px dashed #b7c8d9;background:#f8fbfe;border-radius:12px;font-size:13px;color:var(--muted)}.pricing-price-help a{font-weight:800;white-space:nowrap}.pricing-base-panel{display:grid;grid-template-columns:1.25fr .75fr;gap:24px;align-items:center;margin-top:22px;padding:20px;border:1px solid #b9dce6;background:linear-gradient(135deg,#f2fbfd,#f8fbfe);border-radius:18px}.pricing-base-panel h3{margin:0 0 6px;font-size:23px}.pricing-base-panel p.muted{margin:0;line-height:1.6}.pricing-base-input{display:grid;gap:7px;font-weight:800}.pricing-base-input input{font-size:20px;font-weight:800;padding:14px 15px}.pricing-base-input small{font-weight:500;color:var(--muted);line-height:1.45}.pricing-plan-card .card-actions{margin-top:0}
@media(max-width:850px){.pricing-base-panel{grid-template-columns:1fr}.pricing-plan-head{display:grid}.price-big{min-width:0}.pricing-price-help{align-items:flex-start;display:grid}}

/* v0.6.0 Search & Availability Frontend */
.search-hero{align-items:center}.search-status-panel{align-self:center}.home-search-card,.inline-search-card,.hotel-search-strip,.room-search-panel{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;margin:26px 0;box-shadow:0 16px 40px rgba(15,35,60,.05)}
.public-search-form{display:grid;grid-template-columns:minmax(220px,1.6fr) repeat(2,minmax(145px,.85fr)) repeat(2,minmax(95px,.5fr)) auto;gap:12px;align-items:end}.public-search-form label{display:grid;gap:7px;font-size:12px;font-weight:800;color:var(--muted)}.public-search-form input{width:100%;min-width:0}.public-search-form .btn{white-space:nowrap}.search-page-heading{margin-bottom:18px}.search-page-form{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px}.search-errors{margin-top:16px}
.search-summary-bar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin:22px 0;padding:16px 18px;background:#f8fbfe;border:1px solid var(--line);border-radius:16px}.search-summary-bar>div{display:flex;align-items:baseline;gap:6px;padding-right:14px;border-right:1px solid var(--line)}.search-summary-bar strong{font-size:24px}.search-summary-bar span,.search-summary-bar p{color:var(--muted);font-size:13px}.search-summary-bar p{margin:0 0 0 auto}.search-results-grid{display:grid;gap:20px}.search-result-card{display:grid;grid-template-columns:300px 1fr;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;box-shadow:0 16px 44px rgba(15,35,60,.05)}.search-result-image{position:relative;min-height:260px;background:#e8f5f8}.search-result-image img,.search-result-image .image-placeholder{width:100%;height:100%;object-fit:cover}.search-result-content{padding:24px;display:grid;gap:16px}.search-result-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.search-result-top h2{margin:4px 0 5px}.search-result-top p{margin:0}.availability-pill,.unavailable-pill{display:inline-flex;align-items:center;justify-content:center;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;white-space:nowrap}.availability-pill{background:#dcfce7;color:#166534}.unavailable-pill{background:#fee2e2;color:#991b1b}.search-result-image .availability-pill,.search-result-image .unavailable-pill{position:absolute;top:12px;right:12px}.search-room-facts{display:flex;gap:8px;flex-wrap:wrap}.search-room-facts span,.room-card-meta span{background:var(--surface2);border-radius:999px;padding:6px 9px;color:var(--muted);font-size:11px;font-weight:800}.search-price-row{display:flex;justify-content:space-between;align-items:end;gap:18px;border-top:1px solid var(--line);padding-top:16px}.search-price-row>div{display:grid;gap:2px}.search-price-row small,.search-price-row span{color:var(--muted);font-size:12px}.search-price-row strong{font-size:28px}.search-empty{margin-top:22px}
.hotel-search-strip>div:first-child,.room-search-panel>div:first-child{margin-bottom:14px}.hotel-search-form,.room-search-form{grid-template-columns:repeat(2,minmax(150px,1fr)) repeat(2,minmax(95px,.55fr)) auto}.stay-context-banner{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:15px;padding:12px 14px;background:#eaf9f7;border:1px solid #b6e5df;border-radius:12px}.stay-context-banner span{color:var(--muted);font-size:13px}.room-unavailable-card{opacity:.72}.room-search-price{display:grid;text-align:right;gap:2px}.room-search-price small,.room-search-price span{color:var(--muted);font-size:11px}.room-search-price strong{font-size:20px}.availability-warning{color:#9a3412;font-size:13px;font-weight:700}.rate-live-price{display:grid;gap:3px;padding:13px 14px;background:#effaf8;border:1px solid #c6ebe5;border-radius:14px}.rate-live-price span,.rate-live-price small{color:var(--muted);font-size:12px}.rate-live-price strong{font-size:24px}.rate-unavailable{background:#fbfbfc;opacity:.78}.rate-unavailable-message{display:grid;gap:4px;padding:13px 14px;background:#fff4ed;border:1px solid #fed7aa;border-radius:14px;color:#9a3412}.rate-unavailable-message span{font-size:12px}.booking-disabled{opacity:.62;cursor:not-allowed}.nightly-breakdown-card{background:#f8fbfe}
@media(max-width:1150px){.public-search-form{grid-template-columns:repeat(3,1fr)}.public-search-form .search-destination{grid-column:span 2}.public-search-form .btn{grid-column:auto}.search-result-card{grid-template-columns:240px 1fr}.hotel-search-form,.room-search-form{grid-template-columns:repeat(3,1fr)}}
@media(max-width:780px){.public-search-form,.hotel-search-form,.room-search-form{grid-template-columns:1fr}.public-search-form .search-destination{grid-column:auto}.search-result-card{grid-template-columns:1fr}.search-result-image{min-height:220px}.search-result-top,.search-price-row,.stay-context-banner{display:grid}.search-summary-bar{display:grid;grid-template-columns:repeat(3,1fr)}.search-summary-bar>div{border-right:0;padding-right:0}.search-summary-bar p{grid-column:1/-1;margin:0}.room-search-price{text-align:left}.search-price-row .btn{width:100%}}

/* v0.7.0 Booking & Checkout */
.checkout-heading{margin-bottom:22px}.checkout-heading h1{margin:0;font-size:clamp(36px,4vw,56px);letter-spacing:-.045em}.checkout-heading .hero-copy{margin-bottom:0}.checkout-errors{margin-bottom:22px}.checkout-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:22px;align-items:start}.checkout-main,.checkout-sidebar,.confirmation-main,.confirmation-sidebar{display:grid;gap:20px}.checkout-sidebar,.confirmation-sidebar{position:sticky;top:96px}.checkout-card{background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:0 14px 38px rgba(16,36,62,.05)}.checkout-card h2{margin:0;font-size:26px;letter-spacing:-.03em}.checkout-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.checkout-stay-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:20px}.checkout-stay-grid>div,.booking-detail-grid>div{background:var(--surface2);border:1px solid var(--line);border-radius:14px;padding:13px 14px;min-width:0}.checkout-stay-grid span,.booking-detail-grid span{display:block;color:var(--muted);font-size:11px;margin-bottom:5px}.checkout-stay-grid strong,.booking-detail-grid strong{display:block;line-height:1.35}.selected-rate{display:flex;justify-content:space-between;gap:18px;align-items:center;margin-top:18px;padding-top:18px;border-top:1px solid var(--line)}.selected-rate>div{display:grid;gap:3px}.selected-rate span,.selected-rate small{color:var(--muted);font-size:12px}.checkout-policy,.admin-policy-box{margin-top:18px;padding:15px 16px;border-radius:14px;background:#fff8ed;border:1px solid #fed7aa}.checkout-policy p,.admin-policy-box p{margin:6px 0 0;color:#7c4a03;line-height:1.6}.checkout-form{display:grid;gap:22px}.checkout-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.checkout-form-grid .span-2{grid-column:1/-1}.checkout-terms{padding:16px;border-radius:15px;background:#f8fbfe;border:1px solid var(--line)}.checkout-terms .check-row{margin-bottom:8px}.checkout-terms p{margin:8px 0 0;color:var(--muted);font-size:13px;line-height:1.6}.checkout-submit{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--line);padding-top:20px}.checkout-submit>div{display:grid;gap:4px}.checkout-submit span{color:var(--muted);font-size:12px;line-height:1.5}.price-summary-card>h2{font-size:34px;margin:2px 0 18px}.price-lines{display:grid;gap:11px}.price-lines>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:1px solid var(--line)}.price-lines>div:last-child{border-bottom:0}.price-lines span{color:var(--muted);font-size:13px}.price-lines .price-total{padding-top:5px}.price-lines .price-total span,.price-lines .price-total strong{color:var(--ink);font-size:18px}.small-copy{font-size:12px;line-height:1.55}.nightly-details summary{cursor:pointer;font-weight:800}.nightly-list{display:grid;gap:9px;margin-top:16px}.nightly-list>div{display:flex;justify-content:space-between;gap:12px;font-size:13px}.nightly-list span{color:var(--muted)}.booking-confirmation-hero{display:flex;gap:20px;align-items:center;padding:18px 0 32px}.booking-confirmation-hero h1{margin:0;font-size:clamp(34px,4vw,52px);letter-spacing:-.04em}.confirmation-mark{width:72px;height:72px;border-radius:22px;display:grid;place-items:center;background:#dcfce7;color:#166534;font-size:36px;font-weight:900}.booking-confirmation-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:22px;align-items:start}.booking-status-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px}.booking-status,.payment-status{display:inline-flex;align-items:center;padding:6px 9px;border-radius:999px;font-size:11px;font-weight:900}.booking-status{background:#eef2ff;color:#3730a3}.booking-status.confirmed{background:#dcfce7;color:#166534}.booking-status.pending{background:#fef3c7;color:#92400e}.booking-status.cancelled,.booking-status.no_show{background:#fee2e2;color:#991b1b}.booking-status.checked_in{background:#dbeafe;color:#1d4ed8}.booking-status.checked_out{background:#e5e7eb;color:#374151}.payment-status{background:#fff7ed;color:#9a3412}.room-assignment{margin-top:18px;padding:15px 16px;border-radius:14px;background:#effaf8;border:1px solid #c6ebe5;display:grid;gap:3px}.room-assignment span,.room-assignment small{color:var(--muted);font-size:12px}.room-assignment strong{font-size:24px}.guest-detail-list{display:grid;gap:0;margin-top:12px}.guest-detail-list p{display:grid;grid-template-columns:130px 1fr;gap:12px;padding:10px 0;margin:0;border-bottom:1px solid var(--line)}.guest-detail-list p:last-child{border-bottom:0}.guest-detail-list span{color:var(--muted);line-height:1.5}.payment-due-note{display:grid;gap:4px;margin-top:18px;padding:13px 14px;border-radius:13px;background:#fff7ed;border:1px solid #fed7aa;color:#9a3412}.payment-due-note span{font-size:12px}.hotel-contact-summary h3{margin:0 0 8px;font-size:22px}.hotel-contact-summary p{color:var(--muted);line-height:1.55}.confirmation-actions{display:flex;align-items:center;justify-content:space-between;gap:22px}.settings-section{border-top:1px solid var(--line);padding-top:22px;margin-top:8px}.settings-section h3{margin:0 0 6px;font-size:22px}.settings-section p{margin-bottom:0}.booking-filter{display:grid;grid-template-columns:minmax(170px,.6fr) minmax(170px,.6fr) minmax(260px,1.5fr) auto;gap:12px;align-items:end;margin-top:22px}.booking-search-field{min-width:0}.bookings-table-card{padding:0 24px}.bookings-table td small{display:block;color:var(--muted);margin-top:4px}.compact-btn{padding:8px 12px;border-radius:10px}.booking-admin-hero{display:flex;align-items:center;justify-content:space-between;gap:20px}.booking-admin-hero h2{font-size:34px}.booking-admin-grid{display:grid;grid-template-columns:1.4fr .85fr .75fr;gap:20px;align-items:start}.booking-admin-main{grid-row:span 1}.booking-detail-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:18px}.booking-admin-ops{display:grid;grid-template-columns:1fr 1fr;gap:20px}.allocation-form{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end;margin-top:18px}.status-action-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.danger-btn{background:#b42318}.danger-btn:hover{background:#991b1b}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:hover{background:var(--accent)}
@media(max-width:1100px){.checkout-grid,.booking-confirmation-grid{grid-template-columns:1fr}.checkout-sidebar,.confirmation-sidebar{position:static}.booking-admin-grid{grid-template-columns:1fr 1fr}.booking-admin-main{grid-column:1/-1}.booking-filter{grid-template-columns:1fr 1fr}.booking-filter .booking-search-field{grid-column:1/-1}.booking-filter .btn{justify-self:start}.checkout-stay-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.checkout-form-grid,.booking-detail-grid,.booking-admin-grid,.booking-admin-ops,.booking-filter{grid-template-columns:1fr}.checkout-form-grid .span-2,.booking-admin-main,.booking-filter .booking-search-field{grid-column:auto}.checkout-card-head,.selected-rate,.checkout-submit,.confirmation-actions,.booking-admin-hero{display:grid}.checkout-stay-grid{grid-template-columns:1fr 1fr}.guest-detail-list p{grid-template-columns:1fr;gap:4px}.allocation-form{grid-template-columns:1fr}.checkout-submit .btn{width:100%}}
@media(max-width:460px){.checkout-stay-grid{grid-template-columns:1fr}.confirmation-mark{width:58px;height:58px;border-radius:18px;font-size:28px}.booking-confirmation-hero{align-items:flex-start}}
.payment-choice-section{display:grid;gap:16px;border-top:1px solid var(--line);padding-top:22px}.payment-choice-section h2{margin:0}.payment-method-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.payment-method-option{display:flex;align-items:flex-start;gap:12px;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface2);cursor:pointer}.payment-method-option:has(input:checked){border-color:var(--accent);background:#ecfeff;box-shadow:0 0 0 3px rgba(14,116,144,.08)}.payment-method-option input{width:18px;height:18px;margin-top:2px}.payment-method-option span{display:grid;gap:4px}.payment-method-option small{line-height:1.45}.deposit-line,.balance-line{margin-top:4px;padding-top:12px;border-top:1px solid var(--line)}.payment-status.partial{background:#fff7ed;color:#9a3412}.payment-status.paid{background:#dcfce7;color:#166534}.payment-status.refunded,.payment-status.partially_refunded{background:#f3e8ff;color:#7e22ce}.bank-detail-grid,.payment-summary-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:18px 0}.bank-detail-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.bank-detail-grid>div,.payment-summary-grid>div{display:grid;gap:5px;padding:14px;border:1px solid var(--line);background:var(--surface2);border-radius:14px}.bank-detail-grid span,.payment-summary-grid span{color:var(--muted);font-size:13px}.payment-instructions{padding:14px;border-radius:14px;background:#f8fafc;border:1px solid var(--line);line-height:1.6}.payment-submit-form,.payment-admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}.payment-submit-form button,.payment-admin-form button,.payment-admin-form>div{align-self:end}.public-payment-list{display:grid;gap:10px;margin-top:16px}.public-payment-list>div{display:flex;justify-content:space-between;gap:18px;padding:13px 0;border-bottom:1px solid var(--line)}.public-payment-list>div:last-child{border-bottom:0}.public-payment-list span{display:grid;gap:4px}.payment-ledger-card{margin-top:22px}.payment-transaction-list{display:grid;gap:12px;margin-top:22px}.payment-transaction{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff}.payment-transaction>div:first-child{display:grid;gap:4px}.payment-transaction>div:first-child span,.payment-transaction small{color:var(--muted);font-size:12px}.payment-transaction-amount{display:grid;justify-items:end;gap:6px}.payment-transaction-actions{display:flex;gap:7px;align-items:center}.transaction-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#e2e8f0;color:#475569}.transaction-status.pending{background:#fef3c7;color:#92400e}.transaction-status.completed{background:#dcfce7;color:#166534}.transaction-status.rejected,.transaction-status.cancelled{background:#fee2e2;color:#991b1b}.payment-empty-note{margin:22px 0 0}.payments-table td small{display:block;color:var(--muted);margin-top:4px}.refund-form{border-top:1px solid var(--line);padding-top:20px}.settings-section{border-top:1px solid var(--line);padding-top:20px;margin-top:6px}.settings-section h3{margin:0 0 6px}.settings-section p{margin-bottom:0}@media(max-width:900px){.payment-method-options,.bank-detail-grid,.payment-summary-grid{grid-template-columns:1fr 1fr}.payment-transaction{grid-template-columns:1fr}.payment-transaction-amount{justify-items:start}.payment-transaction-actions{flex-wrap:wrap}}@media(max-width:620px){.payment-method-options,.bank-detail-grid,.payment-summary-grid,.payment-submit-form,.payment-admin-form{grid-template-columns:1fr}.public-payment-list>div{display:grid}.payment-transaction-actions{display:grid;grid-template-columns:1fr 1fr}.payment-transaction-actions .btn{width:100%}}
.gateway-settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.gateway-settings-card{display:grid;gap:14px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--surface2)}.gateway-settings-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.gateway-settings-title strong{font-size:18px}.gateway-badge{padding:5px 8px;border-radius:999px;background:#dff7f4;color:#0f766e;font-size:11px;font-weight:900}.online-payment-card{border-color:#b6e3ec;background:linear-gradient(180deg,#fff,#f4fbfd)}.gateway-pay-button{min-width:220px}.gateway-redirect-card,.gateway-result-card{max-width:720px;margin:70px auto;text-align:center}.gateway-mark{width:92px;height:58px;display:grid;place-items:center;margin:0 auto 18px;border-radius:18px;background:#e8f7f2;color:#167b5c;font-size:22px;font-weight:900}.gateway-reference-box{display:grid;gap:5px;margin:22px auto;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface2);max-width:440px}.gateway-reference-box span{color:var(--muted);font-size:12px}.gateway-reference-box strong{font-size:20px;word-break:break-all}@media(max-width:760px){.gateway-settings-grid{grid-template-columns:1fr}}
.gateway-attempt-row{align-items:center}.gateway-attempt-actions{display:flex!important;align-items:center;gap:10px;justify-content:flex-end}.gateway-attempt-actions form{margin:0}@media(max-width:620px){.gateway-attempt-actions{justify-content:flex-start;flex-wrap:wrap}}

/* v0.10.0 — Hotel Operations & Front Desk */
.frontdesk-hero{margin-top:0}.frontdesk-heading{align-items:center}.frontdesk-filter{display:grid;grid-template-columns:minmax(220px,1fr) minmax(180px,.65fr) auto auto;gap:12px;align-items:end;margin-top:22px}.frontdesk-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-top:22px}.frontdesk-stats article{display:grid;gap:6px;padding:20px;background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 12px 34px rgba(16,36,62,.06)}.frontdesk-stats span{font-size:13px;color:var(--muted)}.frontdesk-stats strong{font-size:30px}.frontdesk-stats small{font-size:12px}.frontdesk-section{overflow:hidden}.frontdesk-count{display:inline-grid;place-items:center;min-width:38px;height:38px;padding:0 10px;border-radius:999px;background:var(--surface2);font-weight:900;color:var(--accent)}.frontdesk-table td small{display:block;margin-top:4px;color:var(--muted)}.frontdesk-table td{vertical-align:middle}.frontdesk-actions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.frontdesk-actions form{margin:0}.frontdesk-warning{display:inline-flex;padding:6px 9px;border-radius:999px;background:#fff1f2;color:#9f1239;font-size:11px;font-weight:900}.room-ops-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:22px}.room-ops-card{display:grid;gap:15px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.room-ops-card.occupied-now{border-color:#bfdbfe;background:linear-gradient(180deg,#fff,#f8fbff)}.room-ops-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.room-ops-title h3{margin:0 0 4px;font-size:24px}.room-ops-title small{color:var(--muted)}.room-static-status{padding:5px 8px;border-radius:999px;background:#eef2f7;color:#475569;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em}.room-static-status.available{background:#dcfce7;color:#166534}.room-static-status.maintenance,.room-static-status.blocked,.room-static-status.inactive{background:#fee2e2;color:#991b1b}.room-ops-current{display:grid;gap:4px;padding:12px;border-radius:13px;background:var(--surface2)}.room-ops-current span{font-size:12px;color:var(--muted)}.housekeeping-badge{display:inline-flex;width:max-content;padding:7px 10px;border-radius:999px;font-size:11px;font-weight:900;background:#e2e8f0;color:#475569}.housekeeping-badge.clean{background:#dcfce7;color:#166534}.housekeeping-badge.dirty{background:#fff7ed;color:#9a3412}.housekeeping-badge.inspection{background:#fef3c7;color:#92400e}.housekeeping-form{display:grid;grid-template-columns:1fr;gap:9px}.frontdesk-reservation-hero{margin-top:0}.frontdesk-errors{margin-top:22px}.frontdesk-reservation-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.frontdesk-form-divider{border-top:1px solid var(--line);padding-top:20px;margin-top:4px}.frontdesk-form-divider h3{margin:0;font-size:24px}.frontdesk-submit{align-self:end;display:grid;gap:5px;padding:15px;border-radius:15px;background:var(--surface2)}.frontdesk-submit .btn{margin-top:8px}.operation-timeline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.operation-timeline span{display:grid;gap:4px;padding:12px;border-radius:13px;background:#eef7fb;border:1px solid #d6eaf2}.operation-timeline small{color:var(--muted)}.operation-note{background:#f8fbfe!important;border-color:#dbe4ee!important}.operation-note p{color:var(--muted)!important}
@media(max-width:1200px){.room-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.frontdesk-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.frontdesk-filter,.frontdesk-reservation-form{grid-template-columns:1fr}.frontdesk-filter .btn,.frontdesk-filter a.btn{width:100%}.room-ops-grid{grid-template-columns:1fr}.operation-timeline{grid-template-columns:1fr}.frontdesk-reservation-form .span-2{grid-column:auto}}
@media(max-width:540px){.frontdesk-stats{grid-template-columns:1fr}.frontdesk-heading{display:grid}.frontdesk-heading .btn{width:100%}.frontdesk-actions{display:grid}.frontdesk-actions .btn{width:100%}}
