.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}
