:root {
  --color-primary: #0F2F5F;
  --color-primary-hover: #0B254A;
  --color-secondary: #1877F2;
  --color-bg: #F4F7FB;
  --color-card: #FFFFFF;
  --color-border: #E5E7EB;
  --color-text: #1F2937;
  --color-muted: #6B7280;
  --color-success: #16A34A;
  --color-warning: #F59E0B;
  --color-danger: #DC2626;
  --color-info: #2563EB;
  --color-maintenance: #6D28D9;
  --radius-sm: 6px;
  --radius-md: 10px;
  --radius-lg: 16px;
  --shadow-card: 0 4px 14px rgba(15, 47, 95, 0.08);
  --font-main: "Noto Sans Thai", "Sarabun", "Prompt", Arial, sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; font-family: var(--font-main); background: var(--color-bg); color: var(--color-text); }
a { color: inherit; text-decoration: none; }
.app-shell { min-height: 100vh; display: flex; }
.main { flex: 1; margin-left: 260px; }
.content { padding: 24px; }
@media (max-width: 900px) { .app-shell { display:block; } .main { margin-left:0; } }

.sidebar { width: 260px; min-height: 100vh; background: var(--color-primary); color: white; position: fixed; left:0; top:0; bottom:0; padding: 18px; }
.sidebar-brand { font-size: 22px; font-weight: 800; margin-bottom: 18px; }
.sidebar-menu { display: grid; gap: 6px; }
.sidebar-link { padding: 11px 12px; border-radius: var(--radius-md); color: #EAF1FB; }
.sidebar-link:hover, .sidebar-link.active { background: rgba(255,255,255,.12); color:#fff; }
.topbar { height: 74px; background:white; border-bottom:1px solid var(--color-border); display:flex; align-items:center; justify-content:space-between; padding:0 24px; position: sticky; top:0; z-index:5; }
.topbar h1 { margin:0; font-size:22px; }
.breadcrumb { color: var(--color-muted); font-size: 13px; margin-bottom: 3px; }
.card { background: var(--color-card); border:1px solid var(--color-border); border-radius: var(--radius-lg); box-shadow: var(--shadow-card); padding: 18px; }
.grid { display:grid; gap:16px; }
.grid-4 { grid-template-columns: repeat(4, minmax(0,1fr)); }
@media(max-width:1100px){ .grid-4 { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media(max-width:640px){ .grid-4 { grid-template-columns: 1fr; } .sidebar { position:static; width:100%; min-height:auto; } }
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:40px; padding:9px 14px; border-radius: var(--radius-md); border:1px solid transparent; cursor:pointer; font-weight:600; font-size:14px; }
.btn-primary { background: var(--color-primary); color:#fff; }
.btn-primary:hover { background: var(--color-primary-hover); }
.btn-secondary { background:#fff; color:var(--color-primary); border-color:var(--color-primary); }
.btn-danger { background:var(--color-danger); color:#fff; }
.form-control { width:100%; min-height:42px; border:1px solid var(--color-border); border-radius:var(--radius-md); padding:10px 12px; font:inherit; }
.form-label { display:block; font-weight:700; margin-bottom:6px; }
.form-help { color:var(--color-muted); font-size:13px; margin-top:4px; }
.table { width:100%; border-collapse: collapse; background:#fff; border-radius:var(--radius-lg); overflow:hidden; }
.table th, .table td { padding:12px; border-bottom:1px solid var(--color-border); text-align:left; font-size:14px; }
.badge { display:inline-flex; padding:4px 9px; border-radius:99px; font-size:12px; font-weight:700; }
.badge-success { background:#DCFCE7; color:#166534; }
.badge-warning { background:#FEF3C7; color:#92400E; }
.badge-info { background:#DBEAFE; color:#1E40AF; }
.badge-danger { background:#FEE2E2; color:#991B1B; }
.badge-muted { background:#F3F4F6; color:#374151; }
.alert { padding:12px 14px; border-radius:var(--radius-md); margin-bottom:14px; }
.alert-success { background:#DCFCE7; color:#166534; }
.alert-error { background:#FEE2E2; color:#991B1B; }


/* Resort555 MVP Complete Components */
.page-actions{display:flex;gap:10px;justify-content:flex-end;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.form-full{grid-column:1/-1}
.form-label{display:block;margin-bottom:6px;font-weight:600;color:var(--color-text)}.form-help{font-size:12px;color:var(--color-muted);margin-top:4px}.form-control,select.form-control,textarea.form-control{width:100%;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;background:#fff;font:inherit;color:var(--color-text)}textarea.form-control{min-height:90px}.form-control:focus{outline:2px solid var(--color-secondary-light,#E8F1FF);border-color:var(--color-secondary)}
.alert{padding:12px 14px;border-radius:var(--radius-md);margin-bottom:16px}.alert-success{background:#ECFDF5;color:#065F46;border:1px solid #A7F3D0}.alert-error{background:#FEF2F2;color:#991B1B;border:1px solid #FECACA}.alert-warning{background:#FFFBEB;color:#92400E;border:1px solid #FDE68A}.alert-info{background:#EFF6FF;color:#1E40AF;border:1px solid #BFDBFE}
.badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:700;white-space:nowrap}.badge-success{background:#DCFCE7;color:#166534}.badge-warning{background:#FEF3C7;color:#92400E}.badge-danger{background:#FEE2E2;color:#991B1B}.badge-info{background:#DBEAFE;color:#1E40AF}.badge-muted{background:#F3F4F6;color:#4B5563}.badge-maintenance{background:#EDE9FE;color:#5B21B6}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:9px 13px;border-radius:var(--radius-md);text-decoration:none;border:1px solid transparent;font-weight:700;cursor:pointer;min-height:40px}.btn-primary{background:var(--color-primary);color:#fff}.btn-primary:hover{background:var(--color-primary-hover)}.btn-secondary{background:#fff;color:var(--color-primary);border-color:var(--color-primary-light,#C9D8EF)}.btn-danger{background:var(--color-danger);color:#fff}.btn-success{background:var(--color-success);color:#fff}.btn-small{font-size:12px;padding:6px 9px;min-height:32px}.btn[disabled]{opacity:.55;cursor:not-allowed}
.table{width:100%;border-collapse:collapse}.table th,.table td{padding:10px 12px;border-bottom:1px solid var(--color-border);text-align:left;vertical-align:top}.table th{font-size:13px;color:var(--color-muted);background:#F9FAFB}.table-responsive{overflow:auto}.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.stat-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:18px}.stat-label{color:var(--color-muted);font-size:13px}.stat-value{font-size:26px;font-weight:800;color:var(--color-primary);margin-top:5px}.empty-state{text-align:center;padding:42px 20px;color:var(--color-muted)}.muted{color:var(--color-muted)}.nowrap{white-space:nowrap}.copy-box{display:flex;gap:8px;align-items:center}.copy-box input{flex:1}
@media(max-width:768px){.form-grid,.form-grid-3,.summary-grid{grid-template-columns:1fr}.page-actions{justify-content:flex-start}.table-responsive{border:1px solid var(--color-border);border-radius:var(--radius-md)}}

.calendar-table th,.calendar-table td{min-width:92px;text-align:center}.calendar-table td:first-child,.calendar-table th:first-child{text-align:left;min-width:180px;position:sticky;left:0;background:#fff;z-index:1}.grid[style*='grid-template-columns:1fr 2fr']{gap:16px}@media(max-width:900px){.grid[style*='grid-template-columns']{grid-template-columns:1fr!important}}


/* Resort555 V1.2 refinements */
.two-col-layout{grid-template-columns:1fr 2fr;align-items:start;gap:16px}.readonly-box{min-height:42px;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px 12px;background:#F9FAFB;color:var(--color-text)}.install-page{background:var(--color-bg);padding:24px}.install-wrap{max-width:1040px;margin:0 auto;display:grid;gap:16px}.main{margin-left:260px;min-height:100vh;background:var(--color-bg)}.content{padding:20px 24px}.topbar-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}@media(max-width:640px){.main{margin-left:0}.content{padding:14px}.two-col-layout{grid-template-columns:1fr}.topbar{height:auto;min-height:74px;align-items:flex-start;gap:8px;flex-direction:column;padding:14px}.topbar-actions{width:100%;justify-content:space-between}}

/* Resort555 V1.4 Operations Modules */
.media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.media-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;background:#fff;display:grid;gap:7px}.media-thumb{height:125px;background:#F3F4F6;border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center}.media-thumb img{width:100%;height:100%;object-fit:cover}.sidebar-menu{max-height:calc(100vh - 70px);overflow:auto;padding-right:4px}.sidebar-menu::-webkit-scrollbar{width:5px}.sidebar-menu::-webkit-scrollbar-thumb{background:rgba(255,255,255,.25);border-radius:99px}
hr{border:0;border-top:1px solid var(--color-border);margin:18px 0}.card h2,.card h3{margin-top:0}.inline-form{display:inline}.status-actions{display:flex;gap:6px;flex-wrap:wrap}

/* Resort555 V1.5 Public Polish + Dashboard Operations */
.dashboard-ops-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.ops-list{display:grid;gap:10px}.ops-item{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:10px;background:#fff}.empty-state.compact{padding:18px 10px}.message-template-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.message-template-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;background:#fff;display:grid;gap:10px}.message-template-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.public-hero{border-radius:var(--radius-lg);background:linear-gradient(135deg,#0F2F5F,#1877F2);background-size:cover;background-position:center;color:white;padding:56px 30px;margin-bottom:18px;box-shadow:var(--shadow-card)}.public-hero-inner{max-width:760px}.public-hero h1{font-size:38px;line-height:1.15;margin:8px 0 12px}.public-hero p{font-size:18px;opacity:.94}.public-kicker{display:inline-flex;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.24);border-radius:99px;padding:6px 11px;font-weight:700}.public-actions{display:flex;gap:10px;flex-wrap:wrap}.btn-public{min-height:46px;padding:11px 18px}.public-section{margin-bottom:18px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.room-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}.public-room-card{border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;background:#fff;display:grid;gap:10px}.public-room-card h3{margin:0}.room-type-badge{font-size:12px;font-weight:800;color:var(--color-primary);background:var(--color-primary-light,#EAF1FB);border-radius:999px;padding:5px 9px;justify-self:start}.room-meta{display:flex;justify-content:space-between;gap:10px;font-weight:800;color:var(--color-primary)}.public-gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px}.public-gallery-grid figure{margin:0;border-radius:var(--radius-md);overflow:hidden;background:#F3F4F6;border:1px solid var(--color-border)}.public-gallery-grid img{width:100%;height:150px;object-fit:cover;display:block}.public-gallery-grid figcaption{padding:8px;font-size:12px;color:var(--color-muted)}.contact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.policy-box{background:#F9FAFB;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px}.lead{font-size:17px;color:var(--color-muted)}.booking-form-card{max-width:980px;margin-left:auto;margin-right:auto}
@media(max-width:900px){.dashboard-ops-grid,.message-template-grid,.contact-grid{grid-template-columns:1fr}.public-hero{padding:36px 20px}.public-hero h1{font-size:30px}.section-head{align-items:flex-start;flex-direction:column}}

/* V1.6 Admin SaaS + Tenant Setup */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}.filter-bar{display:flex;gap:10px;align-items:center;margin-bottom:16px;flex-wrap:wrap}.filter-bar .form-control{max-width:280px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid .full{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;gap:10px;align-items:center;margin-top:8px}.btn-row{display:flex;gap:10px;flex-wrap:wrap}.list-row{display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--color-border);padding:10px 0}.text-muted{color:var(--color-muted)}.checkbox-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.checklist-row{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:10px;background:#fff}.checklist-row input{margin-top:4px}.progress{width:100%;height:12px;border-radius:999px;background:#E5E7EB;overflow:hidden}.progress-bar{height:100%;background:var(--color-secondary)}.badge-success{background:#DCFCE7;color:#166534}.badge-warning{background:#FEF3C7;color:#92400E}.badge-danger{background:#FEE2E2;color:#991B1B}@media(max-width:900px){.grid-2,.form-grid{grid-template-columns:1fr}.filter-bar .form-control{max-width:100%}}

.inline-check{display:inline-flex;align-items:center;gap:6px;margin:8px 14px 8px 0;color:var(--color-text)}
.feature-grid{display:flex;flex-wrap:wrap;gap:10px;margin:12px 0}
.grid-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
@media (max-width:900px){.grid-4{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.grid-4{grid-template-columns:1fr}}


.sidebar-link.active{background:rgba(255,255,255,.14);font-weight:700;border-left:4px solid #fff;}
.domain-row{display:grid;grid-template-columns:2fr 1fr 1fr 1fr auto;gap:10px;align-items:center;padding:12px;border-bottom:1px solid var(--color-border,#e5e7eb)}
.domain-pill{display:inline-flex;padding:4px 10px;border-radius:999px;background:#EAF1FB;color:#0F2F5F;font-size:12px;font-weight:700}
.feature-flag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.feature-flag-card{border:1px solid var(--color-border,#e5e7eb);border-radius:12px;padding:12px;background:#fff}
.route-box{background:#0F2F5F;color:#fff;border-radius:14px;padding:16px;overflow:auto}.route-box code{color:#fff}

.stat-card .label { color: var(--color-muted); font-size: 14px; }
.stat-card .value { font-size: 28px; font-weight: 800; margin-top: 8px; color: var(--color-primary); }
.page-actions { display:flex; gap:10px; flex-wrap:wrap; margin-bottom:16px; }
.form-grid { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:14px; }
@media(max-width:700px){ .form-grid { grid-template-columns: 1fr; } }


/* ========================================================================
   Resort555 V18 — one active CSS bundle + 5 theme variables
   ======================================================================== */
.public-wrap{max-width:1040px;margin:24px auto;padding:0 16px}.public-site{min-height:100vh}.theme-switcher{margin-bottom:18px}.theme-switcher .public-actions{margin-top:12px}

/* Nature */
[data-theme="nature"]{--color-primary:#24523A;--color-primary-hover:#183C2A;--color-secondary:#A66A32;--color-bg:#F3F6F0;--color-card:#FFFEFA;--color-border:#D8E1D5;--color-text:#203128;--color-muted:#657469;--radius-sm:8px;--radius-md:14px;--radius-lg:22px;--shadow-card:0 12px 32px rgba(36,82,58,.10);--font-main:"Noto Sans Thai","Sarabun","Prompt",Arial,sans-serif}
[data-theme="nature"] .public-hero{background:linear-gradient(135deg,#1D4934,#467B56);border-radius:28px}.public-site[data-theme="nature"] .public-room-card{background:linear-gradient(180deg,#fff,#F7FAF3)}

/* City */
[data-theme="city"]{--color-primary:#102A43;--color-primary-hover:#071C2C;--color-secondary:#00A7C4;--color-bg:#EFF4F8;--color-card:#FFFFFF;--color-border:#CAD8E4;--color-text:#102A43;--color-muted:#627D98;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--shadow-card:0 8px 20px rgba(16,42,67,.10);--font-main:Arial,"Noto Sans Thai","Sarabun",sans-serif}
[data-theme="city"] .public-hero{background:linear-gradient(120deg,#102A43,#006D8F);border-radius:12px}.public-site[data-theme="city"] .public-room-card{border-top:4px solid var(--color-secondary)}

/* Camping */
[data-theme="camping"]{--color-primary:#203D2C;--color-primary-hover:#12271B;--color-secondary:#D97706;--color-bg:#F5F0E6;--color-card:#FFF9ED;--color-border:#D8C9A9;--color-text:#302B22;--color-muted:#766B5B;--radius-sm:5px;--radius-md:10px;--radius-lg:16px;--shadow-card:0 10px 24px rgba(48,43,34,.12);--font-main:"Sarabun","Noto Sans Thai",Arial,sans-serif}
[data-theme="camping"] .public-hero{background:linear-gradient(135deg,#173226,#425B36);border-bottom:6px solid #D97706;border-radius:18px}.public-site[data-theme="camping"] .room-type-badge{background:#FFE7C2;color:#8A4400}

/* Luxury */
[data-theme="luxury"]{--color-primary:#191713;--color-primary-hover:#050505;--color-secondary:#B58B42;--color-bg:#F2EFE9;--color-card:#FFFCF6;--color-border:#D8C9AE;--color-text:#211F1A;--color-muted:#746B5D;--radius-sm:8px;--radius-md:14px;--radius-lg:24px;--shadow-card:0 18px 42px rgba(25,23,19,.14);--font-main:Georgia,"Noto Serif Thai","Noto Sans Thai",serif}
[data-theme="luxury"] .public-hero{background:linear-gradient(135deg,#111,#3B3020);border:1px solid #B58B42;border-radius:26px}.public-site[data-theme="luxury"] .btn-primary{background:#191713;border-color:#B58B42}.public-site[data-theme="luxury"] .public-kicker{color:#F7D89A}

/* Minimal */
[data-theme="minimal"]{--color-primary:#202124;--color-primary-hover:#000;--color-secondary:#5F6368;--color-bg:#FAFAFA;--color-card:#FFFFFF;--color-border:#E7E7E7;--color-text:#202124;--color-muted:#777;--radius-sm:3px;--radius-md:5px;--radius-lg:7px;--shadow-card:none;--font-main:Arial,"Noto Sans Thai","Sarabun",sans-serif}
[data-theme="minimal"] .public-hero{background:#FFFFFF!important;color:#202124;border:1px solid #E5E5E5;border-radius:7px;box-shadow:none}.public-site[data-theme="minimal"] .public-kicker{background:#F3F3F3;border-color:#E5E5E5}.public-site[data-theme="minimal"] .public-room-card{box-shadow:none}

/* Make hero background images retain each theme's overlay tone. */
.public-hero{background-size:cover;background-position:center}.public-site .card,.public-site .public-room-card,.public-site .btn{transition:border-color .18s ease,box-shadow .18s ease,transform .18s ease}.public-site .public-room-card:hover{transform:translateY(-2px)}

/* V18 responsive app shell: menu is overlay on small screens. */
.sidebar-toggle{display:none;border:1px solid var(--color-border);background:#fff;color:var(--color-primary);border-radius:var(--radius-md);min-width:40px;min-height:40px;font-size:20px;cursor:pointer}.topbar-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}
.r555-sidebar-backdrop{display:none}
@media(max-width:900px){
 html,body{width:100%;max-width:100%;overflow-x:hidden}.app-shell{display:block}.main{margin-left:0!important;min-width:0}.content{padding:14px!important}
 .sidebar{position:fixed!important;top:0;bottom:0;left:0;width:min(82vw,286px)!important;min-height:100dvh!important;transform:translateX(-105%);transition:transform .2s ease;z-index:1001;box-shadow:none}.sidebar.open{transform:translateX(0);box-shadow:14px 0 34px rgba(15,47,95,.24)}
 .sidebar-toggle{display:inline-flex;align-items:center;justify-content:center}.topbar{height:auto;min-height:62px;flex-direction:row!important;align-items:center!important;padding:9px 12px!important;gap:8px;z-index:500}.topbar h1{font-size:18px;max-width:42vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.breadcrumb{display:none}.topbar-actions{margin-left:auto;flex-wrap:nowrap!important;gap:6px!important;min-width:0}.topbar-resort{display:none}.user-name{max-width:110px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}.topbar-public-link{display:none!important}
 .r555-sidebar-backdrop{display:block;position:fixed;inset:0;background:rgba(15,23,42,.42);z-index:1000;opacity:0;visibility:hidden;pointer-events:none;transition:.2s}.r555-sidebar-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}body.sidebar-open{overflow:hidden}
 .summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:10px}.stat-card{padding:13px}.stat-value{font-size:22px}.card{padding:14px}.table-responsive{max-width:100%;overflow-x:auto}.public-wrap{margin:12px auto;padding:0 12px}
}
@media(max-width:520px){.summary-grid{grid-template-columns:1fr!important}.user-name{display:none}.public-hero{padding:30px 18px}.public-hero h1{font-size:28px}}


/* === Resort555 V23 Feature Parity === */
.amenity-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.amenity-check{display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--border,#dce3ea);border-radius:10px;background:var(--surface,#fff);font-size:14px}.amenity-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.amenity-chip{display:inline-flex;padding:4px 8px;border-radius:999px;background:rgba(15,87,149,.08);border:1px solid rgba(15,87,149,.15);font-size:12px}.public-amenities{margin:10px 0}.calendar-scroll{overflow:auto;max-width:100%;border:1px solid var(--border,#dce3ea);border-radius:12px}.calendar-month-table{min-width:1780px;margin:0}.calendar-month-table th,.calendar-month-table td{min-width:48px;text-align:center;padding:7px 5px;vertical-align:middle}.calendar-month-table .calendar-sticky{position:sticky;left:0;z-index:3;min-width:180px;text-align:left;background:var(--surface,#fff);box-shadow:2px 0 0 rgba(0,0,0,.04)}.calendar-month-table thead .calendar-sticky{z-index:5}.calendar-month-table th small{display:block;font-weight:400;opacity:.65;margin-top:3px}.calendar-date{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%}.calendar-special{border:2px solid #d92d20;color:#b42318;font-weight:700}.calendar-other-month{opacity:.42}.calendar-free{color:#12b76a;font-size:22px;line-height:1}.calendar-month-table .badge{display:inline-block;max-width:45px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;padding:4px}
@media(max-width:900px){.amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendar-month-table .calendar-sticky{min-width:145px}}
@media(max-width:520px){.amenity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}.amenity-check{padding:8px;font-size:12px}}


/* === Resort555 V24 Calendar + Operations === */
.calendar-legend{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:10px 0 14px;font-size:12px;color:var(--color-muted)}
.calendar-legend span{display:inline-flex;align-items:center;gap:6px}.legend-box{display:inline-block;width:28px;height:9px;border-radius:4px}
.calendar-month-table td.calendar-has-segment{padding-left:0!important;padding-right:0!important;overflow:hidden}
.calendar-booking-segment,.calendar-block-segment{display:block;width:calc(100% + 2px);min-height:28px;line-height:28px;margin-left:-1px;margin-right:-1px;border-radius:0;font-size:9px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px;position:relative;z-index:1}
.calendar-booking-segment.segment-start,.calendar-block-segment.segment-start{border-top-left-radius:7px;border-bottom-left-radius:7px;margin-left:2px;width:calc(100% - 1px)}
.calendar-booking-segment.segment-end,.calendar-block-segment.segment-end{border-top-right-radius:7px;border-bottom-right-radius:7px;margin-right:2px;width:calc(100% - 1px)}
.calendar-booking-segment.segment-start.segment-end,.calendar-block-segment.segment-start.segment-end{width:calc(100% - 4px);margin-left:2px;margin-right:2px}
.cal-status-confirmed{background:#DCFCE7;color:#166534}.cal-status-checkedin{background:#DBEAFE;color:#1E40AF}.cal-status-uploaded{background:#EDE9FE;color:#5B21B6}.cal-status-waiting{background:#FEF3C7;color:#92400E}.cal-status-muted{background:#F3F4F6;color:#4B5563}
.calendar-block-segment{background:repeating-linear-gradient(135deg,#FEE2E2,#FEE2E2 5px,#FCA5A5 5px,#FCA5A5 10px);color:#7F1D1D}
.capacity-pill{display:inline-flex;align-items:center;justify-content:center;min-width:38px;padding:4px 5px;border-radius:7px;font-size:10px;font-weight:800}.capacity-ok{background:#DCFCE7;color:#166534}.capacity-full{background:#FEE2E2;color:#991B1B}
.calendar-mini-link{display:inline-block;margin-top:4px;font-size:10px;color:var(--color-secondary);font-weight:700}.pricing-night-row{font-size:12px;padding:3px 0;border-bottom:1px dashed var(--color-border)}
@media(max-width:900px){.calendar-booking-segment,.calendar-block-segment{min-height:25px;line-height:25px;font-size:8px}.calendar-legend{gap:8px}}
