/* Raumuna 0.5 – shared app components. Scoped to the plugin. */
.rb-app { --rb-ink:#182c34; --rb-muted:#637780; --rb-accent:#2563eb; --rb-line:#dbe5f2; --rb-surface:#fff; font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:14px; line-height:1.55; color:var(--rb-ink); background:#f6f8fc; border:1px solid var(--rb-line); border-radius:20px; max-width:1680px; grid-template-columns:230px minmax(0,1fr); box-shadow:0 8px 40px #1e3a8a08; }
.rb-app *, .rb-app *::before, .rb-app *::after { box-sizing:border-box; }
.rb-app [hidden] { display:none !important; }
.rb-app .rb-app-content { min-width:0; padding:32px; background:#f6f8fc; }
.rb-app .rb-app-sidebar { background:#fff; padding:24px 16px; border-color:var(--rb-line); }
.rb-app .rb-app-brand { gap:12px; padding:0 8px 24px; }
.rb-app .rb-app-brand-icon { display:block; flex:0 0 40px; width:40px; height:40px; padding:0; background:transparent; border-radius:12px; object-fit:contain; }
.rb-app .rb-app-brand-name { display:block; color:#1e3a8a; font-size:17px; font-weight:750; line-height:1.2; letter-spacing:-.5px; }
.rb-app .rb-app-brand strong { font-size:17px; letter-spacing:-.5px; }
.rb-app .rb-app-brand span { font-size:12px; color:var(--rb-muted); overflow-wrap:anywhere; }
.rb-login-brand .rb-login-brand-icon { display:block; flex:0 0 46px; width:46px; height:46px; padding:0; background:transparent; border-radius:13px; object-fit:contain; }
.rb-app .rb-app-nav-title { color:#71868c; font-size:10px; letter-spacing:1.3px; margin-bottom:8px; }
.rb-app .rb-app-nav-group { margin-bottom:24px; }
.rb-app .rb-app-nav-link { padding:11px 13px; border-radius:9px; color:#52666e; font-size:13px; font-weight:550; gap:11px; }
.rb-app .rb-app-nav-link:hover { background:#eff6ff; color:#1d4ed8; }
.rb-app .rb-app-nav-link.is-active { background:#eff6ff; color:#1d4ed8; box-shadow:inset 3px 0 #2563eb; }
.rb-app .rb-app-page-header { margin:0 0 26px; }
.rb-app .rb-app-page-eyebrow { color:#2563eb; font-size:10px; font-weight:700; letter-spacing:1.5px; }
.rb-app h1 { color:var(--rb-ink); font-family:inherit; font-size:30px; line-height:1.2; font-weight:650; letter-spacing:-1px; margin:7px 0 10px; }
.rb-app h2 { color:var(--rb-ink); font-family:inherit; font-size:20px; line-height:1.35; font-weight:650; letter-spacing:-.5px; }
.rb-app h3 { color:var(--rb-ink); font-family:inherit; font-size:16px; line-height:1.4; font-weight:650; }
.rb-app p { font-size:14px; line-height:1.65; }
.rb-app .rb-app-page-header p,.rb-app .rb-app-section-header p,.rb-view-intro { color:var(--rb-muted); margin:6px 0 16px; }
.rb-app a { text-underline-offset:3px; }
.rb-app :is(button,input,select,textarea) { font:inherit; }
.rb-app :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),select,textarea) { max-width:100%; border:1px solid #cddcdf; border-radius:8px; background:#fff; color:var(--rb-ink); padding:10px 12px; min-height:42px; box-shadow:none; }
.rb-app label { font-size:12px; font-weight:600; color:#52666e; }
.rb-app :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid #2563eb; outline-offset:3px; }
.rb-app :is(.rb-app-primary-button,.rb-billing-primary,.rb-bookings-export-button,#rb-organization-save,.button-primary) { background:#2563eb; border:1px solid #2563eb; border-radius:8px; color:#fff; font-size:13px; font-weight:650; padding:10px 16px; box-shadow:0 2px 3px #1d4ed812; text-decoration:none; }
.rb-app :is(.rb-app-primary-button,.rb-billing-primary,.rb-bookings-export-button,#rb-organization-save,.button-primary):hover { background:#1d4ed8; border-color:#1d4ed8; }
.rb-app button:disabled { opacity:.5; cursor:not-allowed; }
.rb-app .rb-app-section-header { gap:20px; margin-bottom:18px; }
.rb-app .rb-app-admin-stats { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; margin:20px 0; }
.rb-app .rb-app-stat-card { padding:20px; border:1px solid var(--rb-line); border-radius:12px; background:#fff; box-shadow:none; }
.rb-app .rb-app-stat-label { font-size:10px; letter-spacing:.8px; color:var(--rb-muted); }
.rb-app .rb-app-stat-value { font-size:32px; letter-spacing:-1px; font-weight:650; line-height:1.3; margin:10px 0 5px; }
.rb-app .rb-app-stat-description { font-size:12px; line-height:1.5; color:var(--rb-muted); }
.rb-app .rb-app-admin-dashboard > .rb-app-section-header p { display:none; }
.rb-app .rb-app-stat-label::after { display:none; }
.rb-app :is(.rb-app-action-card,.rb-app-upcoming-empty,.rb-app-location-card,.rb-app-room-card,.rb-app-floor-card) { border-color:var(--rb-line); border-radius:12px; box-shadow:none; }
.rb-app :is(.rb-app-location-detail,.rb-organization-card,.rb-app-employee-card) { background:#fff; border:1px solid var(--rb-line); border-radius:14px; padding:24px; }
.rb-app .rb-organization-card { max-width:740px; }
.rb-app .rb-organization-card > p { display:grid; grid-template-columns:180px minmax(0,1fr); align-items:center; gap:16px; margin:16px 0; font-size:14px; }
.rb-app .rb-organization-card strong { font-size:13px; color:#52666e; font-weight:600; }
.rb-app #rb-organization-save-message:empty { display:none; }
.rb-app .rb-app-bookings-filter { display:flex; flex-wrap:wrap; gap:14px; background:#fff; border:1px solid var(--rb-line); border-radius:12px; padding:20px; }
.rb-app .rb-app-bookings-filter-field { flex:1 1 145px; min-width:0; }
.rb-app .rb-app-bookings-filter-field :is(input,select) { width:100%; }
.rb-app .rb-app-bookings-table-wrapper { max-width:100%; overflow-x:auto; padding:20px; margin-top:20px; border:1px solid var(--rb-line); border-radius:12px; background:#fff; }
.rb-app .rb-app-bookings-table { width:100%; font-size:12px; border-collapse:collapse; }
.rb-app .rb-app-bookings-table :is(td,th) { padding:13px 12px; font-size:12px; border-bottom:1px solid #e8eff0; white-space:nowrap; }
.rb-app .rb-app-bookings-table th { background:#f5f8f8; color:#536b73; font-weight:600; }
.rb-app #rb-bookings-count { display:none; }
.rb-app .rb-bookings-result-count { display:inline-block; margin-right:20px; font-size:12px; color:var(--rb-muted); }
.rb-app .rb-bookings-export-button { margin:0 0 18px; }
.rb-app .rb-booking-app { max-width:none; }
.rb-app .rb-booking-dashboard-header { padding:16px 20px; border-color:var(--rb-line); box-shadow:none; border-radius:12px; }
.rb-app.rb-view-booking .rb-booking-dashboard-title { display:block !important; }
.rb-app .rb-booking-dashboard-title h2 { display:none; }
.rb-app .rb-booking-dashboard-title p { margin:0; font-size:13px; }
.rb-app .rb-booking-dashboard { grid-template-columns:260px minmax(0,1fr); gap:20px; }
.rb-app .rb-booking-sidebar,.rb-app .rb-booking-main { border:1px solid var(--rb-line); border-radius:12px; box-shadow:none; min-width:0; }
.rb-app .rb-booking-main-header,.rb-app .rb-booking-sidebar-header { padding:18px 20px; }
.rb-app .rb-booking-floorplan { padding:20px; }
.rb-app .rb-booking-canvas-viewport { border:1px solid var(--rb-line); box-shadow:none; border-radius:10px; background:#f7faf9; }
.rb-app .rb-booking-canvas { background-image:radial-gradient(#cddedb 1px,transparent 1px) !important; background-size:20px 20px !important; background-color:#f7faf9 !important; }
.rb-app .rb-booking-element-desk { border-radius:9px; box-shadow:0 3px 6px #163b3310; }
.rb-app .rb-booking-element-desk.rb-workspace-free { border-color:#64a997; background:#ecf7f1; color:#195745; }
.rb-app .rb-booking-element-desk.rb-workspace-booked { background:#fff0ed; border-color:#ce948c; color:#8e443b; }
.rb-app.rb-view-my-bookings .rb-booking-dashboard-header { display:none; }
.rb-app .rb-my-bookings { background:transparent; border:0; padding:0; box-shadow:none; }
.rb-app .rb-my-bookings-list { gap:16px; }
.rb-app .rb-my-booking-card { padding:22px; border:1px solid var(--rb-line); border-radius:12px; box-shadow:none; }
.rb-app.rb-view-my-bookings .rb-booking-app .rb-my-bookings-header { display:none; }
.rb-app .rb-app-plans > div[style] { background:#fff; border-color:var(--rb-line) !important; }
.rb-app .rb-app-plans h2 { margin:26px 0 14px; }
.rb-app .rb-app-plans p { font-size:13px; }
.rb-app .rb-app-plans h3 { font-size:18px; }
.rb-app .rb-onboarding { border-color:var(--rb-line); border-radius:12px; }
.rb-app .rb-onboarding summary { font-size:15px; padding:17px 20px; }
.rb-app .rb-onboarding progress { accent-color:#2563eb; }
.rb-app .rb-onboarding a { color:#2563eb; }
.rb-ui-icon { display:inline-block; vertical-align:middle; flex-shrink:0; }
/* A selected room gets a dedicated workspace, without surrounding management lists. */
.rb-app.rb-editor-mode .rb-app-locations > .rb-app-section-header,
.rb-app.rb-editor-mode :is(.rb-app-location-detail-header,.rb-app-location-detail-stats,.rb-app-location-edit,.rb-app-location-delete,.rb-app-location-list,.rb-app-location-back),
.rb-app.rb-editor-mode .rb-app-location-floors > :is(.rb-app-section-header,.rb-app-floor-list,.rb-app-upcoming-empty) { display:none; }
.rb-app.rb-editor-mode .rb-app-location-detail { background:transparent; border:0; padding:0; margin:0; }
.rb-app.rb-editor-mode .rb-app-location-floors { margin:0; border:0; padding:0; }
.rb-app.rb-editor-mode .rb-app-selected-room { background:transparent; border:0; padding:0; margin:0; }
.rb-app.rb-editor-mode .rb-app-selected-room > .rb-app-section-header { display:none; }
.rb-app.rb-editor-mode .rb-app-back-to-rooms { display:none; }
.rb-app.rb-editor-mode .rb-app-room-back { display:inline-block; font-size:12px; color:#2563eb; margin:0 0 12px; }
.rb-app .rb-app-selected-room-editor .rb-editor { margin:0; }
.rb-app .rb-app-selected-room-editor .rb-editor > p:first-child { display:none; }
.rb-app .rb-app-selected-room-editor .rb-editor-toolbar > div:first-child { display:block !important; }
.rb-app .rb-editor-toolbar { gap:20px; padding:18px 20px; background:#fff; border:1px solid var(--rb-line); border-radius:12px; }
.rb-app .rb-editor-toolbar .rb-editor-room-title { font-size:20px; margin:0 0 4px; }
.rb-app .rb-editor-toolbar p { font-size:12px; margin:0; }
.rb-app .rb-editor-guide { color:#526e72; font-size:12px; padding:12px 4px 0; margin:0; }
.rb-app .rb-floorplan-wrapper { grid-template-columns:150px minmax(0,1fr) 200px; gap:12px; margin-top:16px; max-width:none; }
.rb-app .rb-floorplan-sidebar,.rb-app .rb-floorplan-inspector { border:1px solid var(--rb-line); border-radius:12px; padding:16px; background:#fff; }
.rb-app .rb-floorplan-sidebar h3,.rb-app .rb-floorplan-inspector h3 { font-size:13px; margin:0 0 12px; }
.rb-app .rb-floorplan-sidebar p,.rb-app .rb-floorplan-inspector p { font-size:12px; color:var(--rb-muted); }
.rb-app .rb-floorplan-tool { display:flex; align-items:center; gap:9px; border:1px solid var(--rb-line); background:#f6f9f9; border-radius:8px; font-size:12px; padding:10px !important; color:#28474b; }
.rb-app .rb-floorplan-tool:hover { border-color:#2563eb; background:#eff6ff; }
.rb-app .rb-inspector-field { margin-bottom:12px; }
.rb-app .rb-inspector-field label { display:block; margin-bottom:5px; font-size:11px; }
.rb-app .rb-inspector-field input,.rb-app .rb-inspector-field select { width:100%; min-height:36px; padding:7px 9px; font-size:12px; }
.rb-app .rb-floorplan-view-controls { gap:8px; flex-wrap:wrap; min-height:36px; margin-bottom:10px; }
.rb-app .rb-floorplan-view-label { font-size:11px; color:#637780; }
.rb-app #rb-floorplan-fit { font-size:11px; padding:7px 9px; min-height:32px; border:1px solid var(--rb-line); border-radius:7px; background:#fff; color:#24474b; }
.rb-app #rb-floorplan-canvas { background-color:#f7faf9 !important; background-image:radial-gradient(#c9dcd7 1px,transparent 1px) !important; background-size:20px 20px !important; border:1px solid #cfdfdb !important; border-radius:12px !important; min-height:520px !important; box-shadow:inset 0 2px 8px #163b3304; }
.rb-app #rb-floorplan-canvas.has-background-image { background-image:none !important; background-color:#fff !important; }
.rb-app .rb-floorplan-background-image { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:contain; object-position:center; opacity:.72; pointer-events:none; user-select:none; }
.rb-app .rb-floor-element { z-index:2; }
.rb-app .rb-floorplan-background-tools { margin-top:18px; padding-top:16px; border-top:1px solid var(--rb-line); }
.rb-app .rb-floorplan-background-tools h3 { margin-bottom:6px; }
.rb-app .rb-floorplan-background-remove { width:100%; margin-top:7px; padding:8px 10px; border:1px solid #bfdbfe; border-radius:8px; background:#fff; color:#1d4ed8; font-size:11px; cursor:pointer; }
.rb-app .rb-floorplan-background-remove:hover { background:#eff6ff; }
.rb-app .rb-floorplan-background-status { min-height:18px; margin:8px 0 0; color:#1d4ed8 !important; font-size:11px !important; }
.rb-app .rb-floorplan-background-status.is-error { color:#b91c1c !important; }
.rb-app .rb-booking-canvas.has-background-image { background-image:none !important; background-color:#fff !important; }
.rb-app .rb-booking-background-image { position:absolute; inset:0; z-index:0; width:100%; height:100%; object-fit:contain; object-position:center; opacity:.72; pointer-events:none; user-select:none; }
.rb-app .rb-booking-element { z-index:2; }
.rb-app .rb-element-desk { border:1.5px solid #93c5fd; border-radius:8px; background:#fff; color:#1e40af; box-shadow:0 3px 6px #1e3a8a10; }
.rb-app .rb-element-selected { outline-color:#2563eb; outline-offset:3px; }
.rb-app .rb-floor-element .rb-ui-icon { width:17px; height:17px; }
.rb-app .rb-room-workspaces { padding:18px; margin-top:18px; background:#fff; border:1px solid var(--rb-line); border-radius:12px; }
.rb-app .rb-room-workspaces-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:8px; }
.rb-app .rb-room-workspace-item { padding:10px 12px; border-color:var(--rb-line); border-radius:8px; }
.rb-app .rb-room-workspace-name { font-size:12px; font-weight:600; }
.rb-app .rb-room-workspace-id { display:none; }
@media(min-width:1250px) { .rb-app.rb-editor-mode { grid-template-columns:210px minmax(0,1fr); } }
@media(max-width:1200px) { .rb-app .rb-app-admin-stats { grid-template-columns:repeat(3,minmax(0,1fr)); } .rb-app .rb-floorplan-wrapper { grid-template-columns:140px minmax(0,1fr); } .rb-app .rb-floorplan-inspector { grid-column:1/-1; } .rb-app .rb-floorplan-inspector .rb-inspector-field { display:inline-block; width:145px; margin-right:12px; vertical-align:top; } }
@media(max-width:900px) { .rb-app { grid-template-columns:190px minmax(0,1fr); } .rb-app .rb-app-content { padding:22px; } .rb-app .rb-booking-dashboard { grid-template-columns:1fr; } .rb-app .rb-booking-dashboard-header { flex-wrap:wrap; } .rb-app .rb-app-admin-stats { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:680px) { .rb-app { display:block; margin:0; border-radius:0; } .rb-app .rb-app-sidebar { padding:16px; } .rb-app .rb-app-brand { padding-bottom:12px; } .rb-app .rb-app-nav { display:flex; gap:14px; overflow-x:auto; } .rb-app .rb-app-nav-group { display:flex; flex:0 0 auto; gap:6px; margin:0; } .rb-app .rb-app-nav-title,.rb-app .rb-app-sidebar-footer { display:none; } .rb-app .rb-app-nav-link { white-space:nowrap; padding:10px; } .rb-app .rb-app-content { padding:20px 14px; } .rb-app h1 { font-size:26px; } .rb-app .rb-app-stat-card { padding:16px; } .rb-app .rb-floorplan-wrapper { display:flex; flex-direction:column; } .rb-app .rb-floorplan-sidebar { display:flex; flex-wrap:wrap; gap:6px; } .rb-app .rb-floorplan-sidebar h3 { width:100%; } .rb-app .rb-floorplan-sidebar p { display:none; } .rb-app .rb-floorplan-tool { width:auto; flex:1; margin:0 !important; } .rb-app .rb-editor-toolbar { flex-wrap:wrap; } .rb-app .rb-organization-card > p { grid-template-columns:1fr; gap:6px; } .rb-app .rb-app-plans > div[style*="grid"] { grid-template-columns:1fr !important; } }
@media(prefers-reduced-motion:reduce) { .rb-app *, .rb-app *::before, .rb-app *::after { scroll-behavior:auto !important; transition:none !important; animation:none !important; } }

.rb-app .rb-app-selected-room-editor .rb-editor-toolbar { justify-content:space-between !important; }
.rb-app .rb-app-selected-room-editor .rb-editor-toolbar > div:first-child { display:block !important; }
.rb-app .rb-app-selected-room-editor .rb-floorplan-wrapper { grid-template-columns:150px minmax(0,1fr) 200px; }
.rb-app .rb-app-selected-room-editor .rb-floorplan-legend { display:none; }
.rb-app .rb-app-selected-room-editor .rb-room-workspaces-list { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
@media(max-width:1200px) { .rb-app .rb-app-selected-room-editor .rb-floorplan-wrapper { grid-template-columns:140px minmax(0,1fr); } }
@media(max-width:680px) { .rb-app .rb-app-selected-room-editor .rb-floorplan-wrapper { display:flex; } }

.rb-app.rb-view-booking .rb-booking-room-header { display:none; }
/* Explicit overrides for legacy theme-protection rules. */
.rb-app .rb-app-nav-link { color:#52666e !important; }
.rb-app .rb-app-nav-link:hover { color:#1d4ed8 !important; }
.rb-app .rb-app-nav-link.is-active { color:#1d4ed8 !important; }
.rb-app .rb-app-content { padding:32px !important; }
.rb-app .rb-app-admin-stats .rb-app-stat-card { min-height:132px; }
@media(max-width:900px) { .rb-app .rb-app-content { padding:22px !important; } }
@media(max-width:680px) { .rb-app .rb-app-content { padding:20px 14px !important; } .rb-app .rb-app-user { display:none; } }
