.cmsb-admin { color:#172033; }
.cmsb-admin h1 { font-weight:700; }
.cmsb-upgrade-banner.notice { display:flex; justify-content:space-between; gap:18px; align-items:center; margin:16px 20px 8px 2px; padding:18px 20px; border:1px solid #bae6fd; border-left:4px solid #0ea5e9; border-radius:8px; background:linear-gradient(135deg,#f0f9ff 0%,#ffffff 56%,#ecfeff 100%); box-shadow:0 10px 28px rgba(15,23,42,.08); }
.cmsb-upgrade-banner span { display:inline-flex; margin-bottom:6px; padding:3px 9px; border-radius:999px; background:#e0f2fe; color:#075985; font-weight:800; font-size:12px; text-transform:uppercase; }
.cmsb-upgrade-banner h2 { margin:0; color:#0f172a; font-size:18px; line-height:1.25; }
.cmsb-upgrade-banner p { margin:6px 0 0; max-width:760px; color:#475569; }
.cmsb-upgrade-banner .button { flex:0 0 auto; min-height:36px; display:inline-flex; align-items:center; }
.cmsb-tab-shell { margin-top:18px; margin-bottom:0; }
.cmsb-nav-tabs { display:flex; gap:4px; flex-wrap:wrap; align-items:flex-end; border-bottom:1px solid #c3c4c7; padding-top:2px; }
.cmsb-nav-tabs .nav-tab { float:none; margin-left:0; margin-bottom:-1px; white-space:nowrap; }
.cmsb-nav-tabs .nav-tab-active { background:#fff; border-bottom-color:#fff; }
.cmsb-page-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin:12px 0 18px; }
.cmsb-page-head h1 { margin-bottom:4px; }
.cmsb-page-head p { margin:0; color:#64748b; }
.cmsb-head-actions { display:flex; gap:8px; flex-wrap:wrap; justify-content:flex-end; }
.cmsb-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin:20px 0; }
.cmsb-card,.cmsb-panel,.cmsb-template,.cmsb-wizard { background:#fff; border:1px solid #dcdcde; border-radius:8px; padding:18px; box-shadow:0 1px 2px rgba(0,0,0,.04); }
.cmsb-card span { display:block; color:#667085; }
.cmsb-card strong { display:block; font-size:34px; margin-top:6px; }
.cmsb-card small { display:block; margin-top:6px; color:#64748b; }
.cmsb-kpi-grid .cmsb-card { min-height:96px; }
.cmsb-dashboard-grid { display:grid; grid-template-columns:minmax(0,1.45fr) minmax(280px,.8fr); gap:16px; align-items:start; margin-top:16px; }
.cmsb-section-head { display:flex; justify-content:space-between; gap:12px; align-items:center; margin-bottom:10px; }
.cmsb-section-head h2 { margin:0; }
.cmsb-dashboard-row { position:relative; display:grid; grid-template-columns:92px minmax(0,1fr) auto; gap:6px 12px; align-items:center; padding:10px 0; border-top:1px solid #e5e7eb; text-decoration:none; color:#172033; }
.cmsb-dashboard-row:first-of-type { border-top:0; }
.cmsb-dashboard-row span,.cmsb-dashboard-row small { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmsb-dashboard-row small { color:#64748b; }
.cmsb-dashboard-row em { font-style:normal; justify-self:end; }
.cmsb-action-list { display:grid; gap:8px; }
.cmsb-action-list a { display:block; padding:10px 12px; border:1px solid #e5e7eb; border-radius:6px; text-decoration:none; background:#f8fafc; color:#172033; }
.cmsb-action-list a:hover { border-color:#94a3b8; background:#fff; }
.cmsb-license-badge { display:inline-flex; align-items:center; min-height:30px; padding:0 10px; border-radius:999px; background:#eef2ff; color:#3730a3; font-weight:700; }
.cmsb-license-badge.is-active { background:#dcfce7; color:#166534; }
.cmsb-check-list { margin:0; }
.cmsb-check-list li { position:relative; margin:0 0 10px; padding-left:24px; color:#334155; }
.cmsb-check-list li:before { content:""; position:absolute; left:0; top:6px; width:12px; height:12px; border-radius:999px; background:#16a34a; }
.cmsb-feature-matrix { margin-top:16px; }
.cmsb-feature-matrix > div { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:12px; }
.cmsb-feature-matrix article { display:grid; gap:6px; padding:12px; border:1px solid #e5e7eb; border-radius:8px; background:#f8fafc; }
.cmsb-feature-matrix span { color:#64748b; }
.cmsb-feature-matrix em { justify-self:start; padding:2px 8px; border-radius:999px; background:#f1f5f9; color:#475569; font-style:normal; font-size:12px; font-weight:700; }
.cmsb-feature-matrix em.is-prepared { background:#dcfce7; color:#166534; }
.cmsb-pricing-overview { margin-top:16px; }
.cmsb-pricing-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; margin-top:12px; }
.cmsb-pricing-grid article { display:flex; flex-direction:column; gap:8px; min-height:100%; padding:16px; border:1px solid #dbe3ef; border-radius:8px; background:#fff; }
.cmsb-pricing-grid article.is-highlighted { border-color:#2563eb; box-shadow:0 10px 24px rgba(37,99,235,.12); }
.cmsb-pricing-grid span { color:#475569; font-weight:800; text-transform:uppercase; font-size:12px; }
.cmsb-pricing-grid strong { color:#0f172a; font-size:24px; line-height:1.15; }
.cmsb-pricing-grid p { margin:0; color:#475569; }
.cmsb-pricing-grid em { color:#166534; font-style:normal; font-weight:700; }
.cmsb-pricing-grid ul { margin:4px 0 0 18px; color:#334155; list-style:disc; }
.cmsb-pricing-table { margin-top:16px; }
.cmsb-table-scroll { overflow-x:auto; }
.cmsb-pricing-table table { min-width:720px; }
.cmsb-pricing-table th { font-weight:800; }
.cmsb-google-actions { display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin-top:14px; }
.cmsb-google-actions form { margin:0; }
.cmsb-google-status { display:grid; gap:8px; margin:16px 0 0; }
.cmsb-google-status div { display:flex; justify-content:space-between; gap:12px; padding:8px 0; border-top:1px solid #e5e7eb; }
.cmsb-google-status dt { font-weight:700; color:#334155; }
.cmsb-google-status dd { margin:0; color:#64748b; text-align:right; }
.cmsb-google-notes { margin-top:16px; }
.cmsb-google-notes ul { margin:0 0 0 18px; list-style:disc; color:#475569; }
.cmsb-wizard-actions { display:flex; gap:10px; align-items:end; flex-wrap:wrap; margin-top:14px; }
.cmsb-wizard-actions label { display:block; font-weight:600; }
.cmsb-wizard-actions input { min-width:240px; margin-top:5px; }
.cmsb-inline-form { margin-top:10px; }
.cmsb-layout { display:grid; grid-template-columns:300px minmax(0,1fr); gap:20px; align-items:start; }
.cmsb-room-list { margin:0 0 16px; }
.cmsb-room-list a { display:block; padding:8px 10px; background:#fff; border:1px solid #dcdcde; text-decoration:none; }
.cmsb-room-list span { display:block; margin-top:2px; color:#64748b; font-size:12px; }
.cmsb-duplicate-panel h3 { margin-top:0; }
.cmsb-panel label,.cmsb-template label { display:block; font-weight:600; margin:0 0 12px; }
.cmsb-panel input[type=text],.cmsb-panel input[type=email],.cmsb-panel input[type=number],.cmsb-panel select,.cmsb-panel textarea,.cmsb-template input,.cmsb-template textarea { width:100%; margin-top:5px; }
.cmsb-inline-panel { margin:14px 0; padding:12px; border:1px solid #d6dbe5; border-radius:8px; background:#f8fafc; }
.cmsb-inline-panel p { margin:6px 0 10px; color:#64748b; }
.cmsb-inline-panel input[readonly] { width:100%; background:#fff; }
.cmsb-qr-panel img { display:block; width:180px; height:180px; margin:10px 0; border:1px solid #e5e7eb; background:#fff; }
.cmsb-panel h2 { margin:18px 0 12px; padding-top:12px; border-top:1px solid #e2e8f0; }
.cmsb-panel h2:first-of-type { margin-top:0; padding-top:0; border-top:0; }
.cmsb-rule-box { margin:6px 0 18px; padding:14px; border:1px solid #dbeafe; border-radius:8px; background:#f8fbff; }
.cmsb-rule-box h3 { margin:0 0 6px; }
.cmsb-rule-box p { margin:0 0 12px; color:#475569; }
.cmsb-rule-box .description { display:block; margin-top:5px; color:#64748b; font-weight:400; }
.cmsb-email-help { background:#fff; border:1px solid #dcdcde; border-radius:8px; padding:14px 18px; margin:16px 0; }
.cmsb-email-help h2 { margin:0 0 8px; font-size:16px; }
.cmsb-email-help code { display:inline-block; margin:2px 4px 2px 0; }
.cmsb-email-templates { display:grid; grid-template-columns:1fr; gap:16px; }
.cmsb-template-head { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin-bottom:12px; padding-bottom:12px; border-bottom:1px solid #e2e8f0; }
.cmsb-template-head h2 { margin:0 0 4px; }
.cmsb-template-head form { margin:0; }
.cmsb-test-mail { display:flex; gap:10px; align-items:flex-end; flex-wrap:wrap; margin-top:14px; padding-top:14px; border-top:1px solid #e2e8f0; }
.cmsb-test-mail label { min-width:260px; margin:0; }
.cmsb-test-mail input[type=email] { min-width:260px; }
.cmsb-export-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(320px,1fr)); gap:16px; margin-top:16px; align-items:start; }
.cmsb-export-grid h2 { margin-top:0; }
.cmsb-export-grid p { color:#475569; }
.cmsb-premium-panel ul { margin-left:18px; list-style:disc; color:#475569; }
.cmsb-upgrade-note,.cmsb-upgrade-field { margin:12px 0 16px; padding:12px 14px; border:1px solid #bfdbfe; border-radius:8px; background:#eff6ff; color:#1e3a8a; }
.cmsb-upgrade-note strong,.cmsb-upgrade-field strong { display:block; margin-bottom:4px; color:#1e40af; }
.cmsb-upgrade-field span { display:block; color:#475569; }
.cmsb-reservation-edit h2 { margin:22px 0 12px; padding-top:8px; border-top:1px solid #e2e8f0; }
.cmsb-reservation-edit h2:first-of-type { margin-top:0; padding-top:0; border-top:0; }
.cmsb-form-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:14px; }
.cmsb-toolbar { display:flex; gap:8px; flex-wrap:wrap; margin:14px 0; }
.cmsb-status { display:inline-block; padding:3px 8px; border-radius:999px; background:#eef2ff; color:#3730a3; font-size:12px; }
.cmsb-status-confirmed { background:#dcfce7; color:#166534; }
.cmsb-status-arrived { background:#ccfbf1; color:#0f766e; }
.cmsb-status-declined,.cmsb-status-cancelled { background:#fee2e2; color:#991b1b; }
.cmsb-status-no_show { background:#ffedd5; color:#9a3412; }
.cmsb-status-blocked { background:#fef3c7; color:#92400e; }
.cmsb-calendar-header { display:flex; justify-content:space-between; gap:16px; align-items:flex-start; margin:14px 0; }
.cmsb-calendar-header h2 { margin:10px 0 0; }
.cmsb-calendar-tabs,.cmsb-calendar-nav,.cmsb-calendar-actions { display:flex; gap:6px; flex-wrap:wrap; align-items:center; }
.cmsb-calendar-filter select { min-width:150px; }
.cmsb-calendar-stats { display:flex; gap:8px; flex-wrap:wrap; align-items:center; margin:12px 0 18px; }
.cmsb-calendar-stats > span:first-child { padding:3px 0; color:#475569; }
.cmsb-calendar { display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; }
.cmsb-calendar section,.cmsb-month-calendar section { background:#fff; border:1px solid #dcdcde; border-radius:8px; padding:12px; }
.cmsb-calendar-item { padding:10px 0; border-top:1px solid #eee; }
.cmsb-calendar-item:first-of-type { border-top:0; }
.cmsb-calendar-item p { margin:6px 0 10px; color:#475569; }
.cmsb-calendar-actions form { display:inline; margin:0; }
.cmsb-empty-day { color:#64748b; }
.cmsb-month-calendar { background:#fff; border:1px solid #dcdcde; border-radius:8px; overflow:hidden; }
.cmsb-month-weekdays,.cmsb-month-week { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); }
.cmsb-month-weekdays { background:#f8fafc; border-bottom:1px solid #dcdcde; }
.cmsb-month-weekdays strong { padding:10px; color:#475569; }
.cmsb-month-calendar section { min-height:118px; border:0; border-right:1px solid #e5e7eb; border-bottom:1px solid #e5e7eb; border-radius:0; }
.cmsb-month-calendar section.is-muted { background:#f8fafc; color:#94a3b8; }
.cmsb-day-number { display:inline-flex; justify-content:center; align-items:center; width:28px; height:28px; border-radius:999px; text-decoration:none; font-weight:700; color:#172033; }
.cmsb-day-number:hover { background:#eef2ff; }
.cmsb-calendar-chip { display:block; margin-top:6px; padding:6px 8px; border-radius:6px; text-decoration:none; background:#eef2ff; color:#1e1b4b; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmsb-calendar-chip small { display:block; color:inherit; opacity:.72; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmsb-calendar-chip.cmsb-status-confirmed { background:#dcfce7; color:#166534; }
.cmsb-calendar-chip.cmsb-status-declined,.cmsb-calendar-chip.cmsb-status-cancelled { background:#fee2e2; color:#991b1b; }
.cmsb-calendar-chip.cmsb-status-blocked { background:#fef3c7; color:#92400e; }
.cmsb-editor-toolbar { display:flex; gap:8px; align-items:center; margin-bottom:10px; flex-wrap:wrap; }
.cmsb-toolbar-separator { width:1px; height:28px; background:#cbd5e1; margin:0 2px; }
.cmsb-grid-settings { display:flex; gap:12px; align-items:center; flex-wrap:wrap; margin:0 0 10px; padding:10px 12px; background:#fff; border:1px solid #dcdcde; border-radius:8px; }
.cmsb-grid-settings label { display:inline-flex; align-items:center; gap:6px; font-weight:600; }
.cmsb-grid-settings input[type=number] { width:76px; }
.cmsb-grid-settings input[type=text] { width:58px; }
.cmsb-grid-readout { color:#475569; font-weight:700; }
.cmsb-canvas { position:relative; min-height:520px; overflow:hidden; background-color:#f8fafc; background-image:linear-gradient(to right, rgba(100,116,139,.22) 1px, transparent 1px),linear-gradient(to bottom, rgba(100,116,139,.22) 1px, transparent 1px),linear-gradient(#f8fafc,#eef2f7); background-size:var(--cmsb-grid-size, 20px) var(--cmsb-grid-size, 20px),var(--cmsb-grid-size, 20px) var(--cmsb-grid-size, 20px),100% 100%; border:1px solid #cbd5e1; border-radius:8px; }
.cmsb-table-shape { position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; background:#ffffff; border:2px solid #2563eb; color:#172033; cursor:move; user-select:none; box-shadow:0 10px 25px rgba(15,23,42,.12); }
.cmsb-layout-shape { position:absolute; z-index:1; display:flex; align-items:center; justify-content:center; background:color-mix(in srgb, var(--cmsb-layout-color) 24%, transparent); border:2px solid var(--cmsb-layout-color); color:#0f172a; cursor:move; user-select:none; font-weight:700; text-align:center; overflow:hidden; }
.cmsb-layout-shape span { pointer-events:none; padding:2px 6px; line-height:1.2; }
.cmsb-layout-wall { background:var(--cmsb-layout-color); border-color:var(--cmsb-layout-color); color:transparent; min-height:8px; }
.cmsb-layout-door { background:#fff7ed; border:2px dashed var(--cmsb-layout-color); color:#92400e; border-radius:999px; }
.cmsb-layout-counter { background:color-mix(in srgb, var(--cmsb-layout-color) 60%, white); border-color:var(--cmsb-layout-color); color:#fff; border-radius:8px; }
.cmsb-layout-label { background:transparent; border:1px dashed var(--cmsb-layout-color); color:var(--cmsb-layout-color); }
.cmsb-layout-pillar { border-radius:999px; background:var(--cmsb-layout-color); border-color:#1e293b; color:#fff; }
.cmsb-layout-obstacle { background:color-mix(in srgb, var(--cmsb-layout-color) 30%, white); border:2px solid var(--cmsb-layout-color); color:#7f1d1d; }
.cmsb-table-shape { z-index:3; }
.cmsb-shape-round { border-radius:999px; }
.cmsb-shape-rect { border-radius:8px; }
.cmsb-table-shape.is-selected,.cmsb-layout-shape.is-selected { outline:3px solid #f59e0b; outline-offset:2px; }
.cmsb-table-shape.is-disabled,.cmsb-layout-shape.is-disabled { opacity:.45; border-style:dashed; }
.cmsb-table-shape span { font-weight:700; }
.cmsb-table-shape small { font-size:11px; }
.cmsb-inspector { display:grid; grid-template-columns:repeat(auto-fit,minmax(120px,1fr)); gap:10px; margin-top:12px; padding:12px; background:#fff; border:1px solid #dcdcde; border-radius:8px; }
.cmsb-inspector label { font-weight:600; }
.cmsb-inspector input[type=text],.cmsb-inspector input[type=number] { width:100%; }
.cmsb-hours-table input[type=time] { width:120px; }
.cmsb-hours-table th,.cmsb-hours-table td { vertical-align:middle; }
.cmsb-hours-table label { font-weight:600; }
@media (max-width: 900px) { .cmsb-upgrade-banner.notice { display:block; margin-right:10px; } .cmsb-upgrade-banner .button { margin-top:12px; } .cmsb-nav-tabs { gap:2px; } .cmsb-nav-tabs .nav-tab { flex:1 1 150px; margin-right:0; text-align:center; } .cmsb-layout,.cmsb-dashboard-grid { grid-template-columns:1fr; } .cmsb-page-head { display:block; } .cmsb-head-actions { justify-content:flex-start; margin-top:10px; } .cmsb-dashboard-row { grid-template-columns:1fr; } .cmsb-dashboard-row em { justify-self:start; } .cmsb-calendar-header { display:block; } .cmsb-month-weekdays,.cmsb-month-week { grid-template-columns:1fr; } .cmsb-month-weekdays { display:none; } }

/* Premium visual floorplan polish: chairs and decorative room elements. */
.cmsb-table-shape,.cmsb-public-table { overflow:visible; isolation:isolate; }
.cmsb-table-shape > span,.cmsb-table-shape > small,.cmsb-public-table > span,.cmsb-public-table > small { position:relative; z-index:2; pointer-events:none; }
.cmsb-table-chairs { position:absolute; inset:0; z-index:-1; pointer-events:none; }
.cmsb-table-chairs b { display:none; position:absolute; width:18px; height:14px; border:1px solid #b88746; border-radius:5px 5px 9px 9px; background:linear-gradient(180deg,#f6d7aa,#c9924f); box-shadow:0 2px 5px rgba(92,59,26,.22); }
.cmsb-table-chairs b:nth-child(1) { display:block; left:50%; top:-16px; transform:translateX(-50%); }
.cmsb-table-chairs b:nth-child(2) { display:block; left:50%; bottom:-16px; transform:translateX(-50%) rotate(180deg); }
.cmsb-table-chairs b:nth-child(3) { display:block; left:-16px; top:50%; transform:translateY(-50%) rotate(-90deg); }
.cmsb-table-chairs b:nth-child(4) { display:block; right:-16px; top:50%; transform:translateY(-50%) rotate(90deg); }
.cmsb-table-chairs b:nth-child(5) { left:18%; top:-16px; transform:translateX(-50%); }
.cmsb-table-chairs b:nth-child(6) { right:18%; top:-16px; transform:translateX(50%); }
.cmsb-table-chairs b:nth-child(7) { left:18%; bottom:-16px; transform:translateX(-50%) rotate(180deg); }
.cmsb-table-chairs b:nth-child(8) { right:18%; bottom:-16px; transform:translateX(50%) rotate(180deg); }
.cmsb-chairs-5 b:nth-child(5),.cmsb-chairs-6 b:nth-child(5),.cmsb-chairs-6 b:nth-child(6),.cmsb-chairs-7 b:nth-child(5),.cmsb-chairs-7 b:nth-child(6),.cmsb-chairs-7 b:nth-child(7),.cmsb-chairs-8 b:nth-child(n+5) { display:block; }
.cmsb-chairs-1 b:nth-child(n+2),.cmsb-chairs-2 b:nth-child(n+3),.cmsb-chairs-3 b:nth-child(n+4),.cmsb-chairs-4 b:nth-child(n+5) { display:none; }
.cmsb-layout-plant { border-radius:999px; background:radial-gradient(circle at 45% 42%,#dcfce7 0 12%,#22c55e 13% 32%,#15803d 33% 58%,#14532d 59% 100%); border-color:#15803d; color:transparent; box-shadow:0 8px 18px rgba(20,83,45,.18); }
.cmsb-layout-plant:before { content:""; position:absolute; inset:18%; border-radius:999px; background:radial-gradient(circle,#bbf7d0 0 12%,transparent 13%),radial-gradient(circle at 30% 60%,#86efac 0 14%,transparent 15%),radial-gradient(circle at 70% 42%,#4ade80 0 14%,transparent 15%); }
.cmsb-layout-planter { border-radius:14px; background:linear-gradient(90deg,#6b3f20,#a16207); border-color:#854d0e; color:#fef3c7; }
.cmsb-layout-planter:before { content:""; position:absolute; left:8px; right:8px; top:-12px; height:24px; background:repeating-radial-gradient(circle at 12px 16px,#16a34a 0 8px,transparent 9px 28px); }
.cmsb-layout-umbrella { border-radius:999px; background:conic-gradient(from 22deg,#e0f2fe 0 18%,#0284c7 18% 36%,#e0f2fe 36% 54%,#0284c7 54% 72%,#e0f2fe 72% 90%,#0284c7 90% 100%); border-color:#0369a1; color:transparent; box-shadow:0 10px 22px rgba(2,132,199,.18); }
.cmsb-layout-umbrella:after { content:""; position:absolute; left:50%; top:50%; width:8px; height:46%; transform:translate(-50%,-4%); background:#92400e; border-radius:999px; }
.cmsb-layout-bench { border-radius:10px; background:repeating-linear-gradient(90deg,#a16207 0 20px,#92400e 21px 25px); border-color:#713f12; color:#fff7ed; }
.cmsb-layout-service { border-radius:18px; background:linear-gradient(135deg,#ede9fe,#c4b5fd); border-color:#7c3aed; color:#3b0764; }
.cmsb-layout-service:before { content:"S"; position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-size:28px; font-weight:900; color:#5b21b6; }
.cmsb-layout-divider { min-height:10px; border-radius:999px; background:repeating-linear-gradient(90deg,var(--cmsb-layout-color) 0 24px,transparent 24px 34px); border-color:var(--cmsb-layout-color); color:transparent; }