:root{font-family:Inter,system-ui,Arial,sans-serif;color:#0f172a;--app-navy: #12103b;--app-navy-mid: #25234a;--app-blue-cta: #073763;--app-teal: #149e9f;--app-teal-hover: #0f7c7d;--app-lavender: #edeaf7;--app-bg: #f7f6fb;--text: #12103b;--muted: #475569;--btn-text-color: #ffffff}*{box-sizing:border-box}.skip-link{position:absolute;left:-9999px;z-index:999;padding:.5rem 1rem;background:var(--app-navy);color:#fff;font-weight:600;border-radius:0 0 8px;text-decoration:none}.skip-link:focus{left:.5rem;top:.5rem;outline:none}.skip-link:focus-visible{outline:3px solid rgba(20,158,159,.55);outline-offset:2px}body{margin:0;background:#f8fafc}button,input{font:inherit}.btn{appearance:none;border:1px solid var(--app-blue-cta);background:var(--app-blue-cta);color:var(--btn-text-color);padding:8px 10px;border-radius:10px;cursor:pointer;font-weight:600;font-family:inherit}.btn:hover{background:var(--app-teal);border-color:var(--app-teal);color:#fff}.btn:disabled{opacity:.65;cursor:not-allowed}.btn.btn-secondary{background:#fff;color:var(--text);border-color:#cbd5e1}.btn.btn-secondary:hover:not(:disabled){background:#f1f5f9;border-color:#94a3b8;color:var(--text)}.btn.btn-sm{padding:6px 12px;font-size:.8125rem;border-radius:8px}.btn.btn-icon{padding:.4rem .5rem;min-width:2.25rem;display:inline-flex;align-items:center;justify-content:center}.password-input-with-toggle{display:flex;gap:.35rem;align-items:stretch;width:100%}.password-input-with-toggle input{flex:1;min-width:0}.mfa-qr-frame{display:inline-block;padding:12px;background:#fff;border:1px solid #e2e8f0;border-radius:12px;line-height:0;box-shadow:0 1px 3px #0f172a0f}.mfa-qr-frame img{display:block;width:220px;height:220px;max-width:100%;object-fit:contain}.btn:focus-visible,.nav-item:focus-visible,.mobile-item:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,.admin-menu-parent:focus-visible,.admin-submenu-parent:focus-visible,.hamburger-btn:focus-visible,.mobile-nav-backdrop:focus-visible{outline:3px solid rgba(20,158,159,.35);outline-offset:2px}.main-content:focus{outline:none}.main-content:focus-visible{outline:3px solid rgba(20,158,159,.25);outline-offset:-3px}.app-shell{position:relative;display:flex;flex-direction:column;min-height:100vh}.kiosk-shell>.main-content{flex:1;min-height:0;width:100%}.app-global-header{flex-shrink:0;display:flex;justify-content:flex-end;align-items:center;padding:.5rem 1rem;background:#fff;border-bottom:1px solid #e2e8f0;gap:.75rem;z-index:40}.app-global-header-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:.65rem}.app-global-header-user{margin:0;font-weight:600;color:var(--text);max-width:min(42vw,200px);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}a.app-global-header-link{font-size:.8125rem;font-weight:600;color:var(--app-blue-cta);text-decoration:none}a.app-global-header-link:hover{text-decoration:underline}.user-account-menu{position:relative;display:flex;align-items:center}.user-account-trigger{display:inline-flex;align-items:center;gap:.5rem;max-width:min(52vw,260px);padding:.2rem .45rem .2rem .2rem;margin:0;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:var(--text);font-size:.8125rem;font-weight:600;cursor:pointer}.user-account-trigger:hover{background:#f1f5f9}.user-account-trigger:focus{outline:2px solid var(--app-blue-cta);outline-offset:2px}.user-account-trigger-avatar{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;overflow:hidden;background:#e2e8f0;flex-shrink:0}.user-account-trigger-icon{color:#64748b}img.user-account-trigger-icon{width:28px;height:28px;object-fit:cover}.user-account-trigger-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-account-dropdown{position:absolute;right:0;top:calc(100% + 6px);min-width:200px;padding:.35rem 0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 30px #0f172a1f;z-index:60}.user-account-dropdown-item{display:flex;align-items:center;width:100%;padding:.5rem .85rem;border:none;background:none;font:inherit;font-size:.875rem;font-weight:600;color:var(--text);text-align:left;text-decoration:none;cursor:pointer}a.user-account-dropdown-item:hover,button.user-account-dropdown-item:hover{background:#f8fafc}.user-account-dropdown-danger{color:#b91c1c}.profile-photo-row{display:flex;flex-wrap:wrap;align-items:center;gap:1rem}.profile-photo-preview{width:96px;height:96px;object-fit:cover;border-radius:8px;border:1px solid #e2e8f0}.profile-photo-placeholder{width:96px;height:96px;border-radius:8px;border:1px dashed #cbd5e1;display:flex;align-items:center;justify-content:center;font-size:.75rem;color:#64748b;background:#f8fafc}.profile-photo-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center}.visually-hidden-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.input-readonly{opacity:.85;background:#f1f5f9!important;cursor:not-allowed}.mobile-drawer-section-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;padding:.35rem .75rem .15rem}.mobile-drawer-logout{width:100%;text-align:left;border:none;background:none;cursor:pointer;color:#b91c1c}.app-body{display:grid;grid-template-columns:240px 1fr;flex:1;min-height:0}.sidebar{background:#fff;border-right:1px solid #e2e8f0;padding:1rem;display:flex;flex-direction:column;gap:1rem}.brand{display:flex;align-items:center;gap:.75rem}.brand-logo{max-height:var(--brand-logo-max-height, 32px);height:auto;width:auto;display:block}.nav-item,.mobile-item{display:flex;align-items:center;gap:.5rem;text-decoration:none;color:#475569;padding:.5rem .75rem;border-radius:.5rem}.nav-item:hover,.mobile-item:hover{background:#f1f5f9}.nav-item.active,.mobile-item.active{background:#e0e7ff;color:#3730a3}.admin-menu{display:flex;flex-direction:column;gap:.25rem}.admin-menu-parent{width:100%;justify-content:space-between;background:transparent;border:none;text-align:left;cursor:pointer;padding-right:.5rem}.admin-menu-parent:hover{background:#f1f5f9}.admin-menu-body{display:flex;flex-direction:column;gap:.25rem;margin-left:.25rem}.admin-submenu-parent{width:100%;justify-content:space-between;background:transparent;border:none;cursor:pointer;padding-right:.5rem}.admin-submenu-parent:hover{background:#f1f5f9}.admin-submenu{display:flex;flex-direction:column;gap:.25rem;margin-left:.75rem}.admin-submenu-item{padding-left:.75rem}.floorplan-context-menu-item:hover:not(:disabled){background:#f1f5f9}.user-tile{margin-top:auto;display:flex;gap:.5rem;align-items:center}.main-content{display:flex;flex-direction:column}.top-bar{background:#fff;border-bottom:1px solid #e2e8f0;padding:.75rem 1rem;display:flex;flex-wrap:wrap;gap:.75rem;align-items:flex-end;justify-content:flex-start}.top-bar-fields{display:flex;flex-wrap:wrap;gap:1rem;align-items:flex-end}.top-bar-timezone{margin:0;font-size:.75rem;line-height:1.3;align-self:center}.top-bar-timezone-id{font-family:ui-monospace,monospace;color:var(--text)}.top-bar-fields label{display:flex;flex-direction:column;gap:.25rem;font-size:.75rem;color:#64748b}.top-bar-fields input,.top-bar-fields select{padding:.35rem .5rem;border:1px solid #e2e8f0;border-radius:.35rem;font-size:.875rem;max-width:min(42vw,280px);background:#fff}.top-bar-fields select:disabled{opacity:.65;cursor:not-allowed}.top-bar-account{margin-left:auto;display:flex;align-items:center;flex-shrink:0}.kiosk-public-top-bar{align-items:center}.kiosk-public-top-bar .kiosk-top-bar-brand{flex-shrink:0;margin-right:.35rem}@media(max-width:720px){.kiosk-public-top-bar .kiosk-top-bar-brand .brand-logo{max-height:28px}}.user-account-menu--compact .user-account-trigger{padding:.12rem .35rem .12rem .12rem;max-width:min(40vw,200px)}.user-account-menu--compact .user-account-trigger-label{max-width:120px;font-size:.75rem}.user-account-menu--compact .user-account-trigger-avatar,.user-account-menu--compact img.user-account-trigger-icon{width:24px;height:24px}.api-error{display:flex;justify-content:space-between;align-items:center;gap:.75rem;padding:.5rem 1rem;background:#fef2f2;color:#7f1d1d;border:1px solid #fecaca;border-radius:.35rem;font-size:.875rem;font-weight:500}.api-error button{flex-shrink:0}.muted{margin:.25rem 0 0;font-size:.8rem;color:var(--muted)}.page-body{padding:1rem}.page-heading{margin:0 0 .75rem;font-size:1.35rem;font-weight:700;color:var(--text);letter-spacing:-.02em}.section-heading{margin:0;font-size:1.15rem;font-weight:650;color:var(--text)}.stack{display:flex;flex-direction:column;gap:1rem}.stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.card{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:1rem}.row{display:flex;align-items:center;gap:.75rem}.spread{justify-content:space-between}.item-row{border:1px solid #e2e8f0;border-radius:.5rem}.link-btn{display:inline-flex;align-items:center;gap:.25rem}.map-page{display:flex;flex-direction:column;gap:.75rem}.map-grid{display:grid;grid-template-columns:1fr 320px;gap:1rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.desk-g{cursor:pointer}.loading-screen{min-height:100vh;display:grid;place-items:center}.spinner{width:2rem;height:2rem;border:3px solid #cbd5e1;border-top-color:#4338ca;border-radius:999px;animation:spin 1s linear infinite}.auth-page{min-height:100vh;display:grid;place-items:center;padding:2rem;background:linear-gradient(165deg,#f8fafc,#e2e8f0 45%,#f1f5f9)}.auth-layout{width:100%;max-width:420px;display:flex;flex-direction:column;align-items:center}.auth-logo--hero{margin-bottom:1.5rem;max-width:min(320px,100%);object-fit:contain}.auth-unified-card{width:100%;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:2rem 1.75rem;box-shadow:0 10px 40px #0f172a14;display:flex;flex-direction:column;gap:1rem}.auth-card-title{margin:0;font-size:1.375rem;font-weight:700;color:#0f172a;letter-spacing:-.02em}.auth-card-lead{margin:0;font-size:.9375rem;line-height:1.5;color:#475569}.auth-bullet-list{margin:0;padding-left:1.25rem;line-height:1.55}.auth-form{display:flex;flex-direction:column;gap:1rem}.auth-field{display:flex;flex-direction:column;gap:.35rem;font-size:.875rem;color:#6b7280}.auth-password-block{display:flex;flex-direction:column;gap:.35rem}.auth-password-block .auth-password-toggle-wrap{width:100%}.auth-password-block .auth-password-toggle-wrap .password-input-with-toggle__toggle{flex-shrink:0}.auth-password-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.auth-inline-label{font-size:.875rem;color:#6b7280}.auth-input,.auth-field .auth-input{width:100%;border:1px solid #d1d5db;border-radius:8px;padding:.65rem .75rem;background:#fff;color:#0f172a}.auth-input::placeholder,.auth-field input::placeholder{color:#9ca3af}.auth-input:hover,.auth-field input:hover{border-color:#9ca3af}.auth-input:focus,.auth-field input:focus{border-color:#2563eb;box-shadow:0 0 0 3px #2563eb26;outline:none}.auth-primary-btn{width:100%;margin-top:.25rem;padding:.7rem 1rem;border-radius:8px;border:1px solid #0f172a;background:#0f172a;color:#fff}.auth-primary-btn:hover:not(:disabled){background:#1e293b;border-color:#1e293b;color:#fff}a.auth-primary-btn--link{display:block;text-align:center;text-decoration:none;box-sizing:border-box}.auth-dev-hint{margin:-.25rem 0 0;line-height:1.45}.auth-divider{display:flex;align-items:center;gap:.75rem;margin:.25rem 0;font-size:.8125rem;color:#9ca3af}.auth-divider:before,.auth-divider:after{content:"";flex:1;height:1px;background:#e5e7eb}.auth-social-stack{display:flex;flex-direction:column;gap:.65rem}.auth-social-btn{display:flex;align-items:center;justify-content:center;gap:.55rem;width:100%;padding:.65rem .75rem;border-radius:8px;border:1px solid #d1d5db;background:#fff;color:#374151;font-weight:500;font-size:.9375rem;cursor:pointer;transition:background .15s ease,border-color .15s ease}.auth-social-btn:hover:not(:disabled){background:#f9fafb;border-color:#9ca3af}.auth-social-btn:disabled{opacity:.65;cursor:not-allowed}.auth-footer{margin:.5rem 0 0;text-align:center;font-size:.875rem;color:#6b7280}.auth-link{padding:0;border:none;background:none;color:#2563eb;font:inherit;font-weight:500;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-link:hover{color:#1d4ed8}.auth-banner{border-radius:8px;padding:.65rem .75rem;font-size:.875rem;line-height:1.45}.auth-banner--error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}.auth-banner--warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.auth-banner--info{background:#eff6ff;border:1px solid #bfdbfe;color:#1e40af}.auth-card{width:100%;max-width:520px;background:#fff;border:1px solid rgba(18,16,59,.12);border-radius:14px;padding:1.25rem;box-shadow:0 12px 40px #12103b14;display:flex;flex-direction:column;gap:1rem}.auth-page h1{margin:0 0 1rem}.auth-logo{max-height:var(--auth-logo-max-height, 44px);max-width:min(320px,100%);width:auto;height:auto;object-fit:contain;margin-bottom:.25rem}.field{display:flex;flex-direction:column;gap:.35rem;font-size:.9rem;color:var(--muted)}.field input{border:1px solid rgba(18,16,59,.2);border-radius:10px;padding:10px 12px;background:#fff}.field select{appearance:none;border:1px solid rgba(18,16,59,.2);border-radius:10px;padding:10px 12px;background:#fff;color:var(--text)}.field select:focus,.field input:focus{outline:none;border-color:var(--app-teal);box-shadow:0 0 0 3px #149e9f26}.form-control{border:1px solid rgba(18,16,59,.2);border-radius:10px;padding:10px 12px;background:#fff;color:var(--text);font:inherit}.form-control:focus{outline:none;border-color:var(--app-teal);box-shadow:0 0 0 3px #149e9f26}.file-control{padding:8px 10px}.file-control::file-selector-button{appearance:none;border:1px solid var(--app-blue-cta);background:var(--app-blue-cta);color:#fff;padding:8px 10px;border-radius:10px;cursor:pointer;font-weight:600;font-family:inherit;margin-right:10px}.file-control::file-selector-button:hover{background:var(--app-teal);border-color:var(--app-teal)}.auth-page code{background:var(--app-lavender);padding:.15rem .35rem;border-radius:8px}.admin-page{padding:1.5rem}.admin-page table{width:100%;border-collapse:collapse}.admin-page th,.admin-page td{padding:.75rem;border-bottom:1px solid rgba(18,16,59,.12);text-align:left}.admin-page th{color:var(--muted);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em}.admin-page .list{padding-left:1rem}.mobile-nav{display:none}.admin-studio-root{display:flex;flex-direction:row;align-items:stretch;width:100%;min-height:0}.admin-studio-blade{flex-shrink:0;transition:width .2s ease,min-width .2s ease;overflow:hidden;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}.admin-studio-blade-inner{padding:.75rem;box-sizing:border-box;overflow-y:auto;max-height:min(90vh,880px)}.admin-studio-blade-left .admin-studio-blade-inner{width:var(--admin-blade-left-w, 220px)}.admin-studio-blade-right .admin-studio-blade-inner{width:var(--admin-blade-right-w, 320px)}.admin-studio-center{flex:1;min-width:0;min-height:0}.admin-studio-edge-toggle{flex-shrink:0;align-self:flex-start;margin-top:.5rem;width:28px;height:40px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:1px solid #cbd5e1;background:#fff;border-radius:6px;cursor:pointer;color:#475569;z-index:1}.admin-studio-edge-toggle:hover{background:#f1f5f9}.admin-studio-edge-toggle-left{margin-right:.35rem}.admin-studio-edge-toggle-right{margin-left:.35rem}.admin-tabs{display:flex;gap:.25rem;flex-wrap:wrap;margin:0 0 1rem;border-bottom:1px solid #e2e8f0;padding-bottom:.5rem}.admin-tabs button{appearance:none;border:1px solid transparent;background:transparent;padding:.45rem .85rem;border-radius:8px;cursor:pointer;font:inherit;font-weight:600;color:#64748b}.admin-tabs button:hover{background:#f1f5f9;color:#0f172a}.admin-tabs button.admin-tab-active{background:#e0e7ff;border-color:#a5b4fc;color:#312e81}.admin-furniture-pill.btn{background:#f8fafc;color:#0f172a;border-color:#e2e8f0}.admin-furniture-pill.btn:hover:not(:disabled){background:#f1f5f9;border-color:#cbd5e1;color:#0f172a}.admin-furniture-pill.btn[aria-pressed=true]{background:#eef2ff;border-color:#4338ca;color:#312e81}.admin-furniture-pill.btn[aria-pressed=true]:hover:not(:disabled){background:#e0e7ff;border-color:#4338ca;color:#312e81}.floorplan-editor-frame{position:relative;width:100%}.floorplan-base{position:absolute;inset:0;width:100%;height:100%}.floorplan-base svg{width:100%;height:100%;display:block}.floorplan-overlay{pointer-events:auto}.floor-plan-desk-shape>text{fill-opacity:1}.hamburger-btn{appearance:none;border:none;background:transparent;cursor:pointer;color:#475569;padding:.5rem;border-radius:999px}.hamburger-btn:hover{background:#f1f5f9}.mobile-nav-backdrop{position:fixed;inset:0;background:#02061759;z-index:50}.mobile-drawer{position:fixed;left:0;right:0;bottom:3.75rem;background:#fff;border-top:1px solid #e2e8f0;z-index:60;padding:.75rem 1rem 1rem;max-height:calc(100vh - 4.5rem);overflow:auto}.mobile-drawer-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem;gap:1rem}.mobile-drawer-section{display:flex;flex-direction:column;gap:.5rem;margin-top:.75rem}.mobile-drawer-item{width:100%;justify-content:flex-start}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.app-body{grid-template-columns:1fr}.sidebar{display:none}.map-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;left:0;right:0;bottom:0;display:flex;justify-content:center;background:#fff;border-top:1px solid #e2e8f0;padding:.5rem;z-index:70}.page-body{padding-bottom:4rem}}.calendar-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:.65rem;align-items:stretch}@media(max-width:1100px){.calendar-week-grid{grid-template-columns:1fr}}.cal-event-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}.cal-event-li{margin:0;padding:0}.cal-event-chip-wrap{display:block;width:100%}.cal-event-chip{display:flex;flex-wrap:wrap;align-items:baseline;gap:.25rem .4rem;width:100%;margin:0;padding:.45rem .5rem;text-align:left;border:1px solid #e2e8f0;border-radius:8px;cursor:default;font:inherit;line-height:1.25;color:#0f172a}.cal-event-chip--desk{background:#eff6ff}.cal-event-chip--room{background:#f5f3ff}.cal-event-chip--compact{padding:.32rem .4rem;gap:.2rem .35rem}.cal-event-chip-top{display:flex;flex-wrap:nowrap;align-items:baseline;gap:.35rem .5rem;width:100%;min-width:0}.cal-event-chip-kind{flex-shrink:0;font-weight:700;text-transform:uppercase;font-size:.62rem;letter-spacing:.04em}.cal-event-chip--desk .cal-event-chip-kind{color:#1d4ed8}.cal-event-chip--room .cal-event-chip-kind{color:#5b21b6}.cal-event-chip-title{font-weight:600;font-size:.82rem;flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-event-chip--compact .cal-event-chip-title{font-size:.78rem}.cal-event-chip-time{font-size:.72rem;color:#64748b;width:100%}.cal-event-chip--compact .cal-event-chip-time{font-size:.68rem}.cal-event-tooltip{pointer-events:none;max-width:min(22rem,calc(100vw - 1.5rem));filter:drop-shadow(0 4px 12px rgba(15,23,42,.12))}.cal-event-tooltip-inner{background:#0f172a;color:#f8fafc;padding:.55rem .65rem;border-radius:8px;font-size:.78rem;line-height:1.45}.cal-event-tooltip-line+.cal-event-tooltip-line{margin-top:.2rem;padding-top:.2rem;border-top:1px solid rgba(248,250,252,.12)}.calendar-month-shell{overflow-x:auto}.calendar-month-weekdays{display:grid;grid-template-columns:repeat(7,minmax(6.5rem,1fr));gap:.35rem;margin-bottom:.35rem}.calendar-month-weekday{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#64748b;text-align:center}.calendar-month-grid{display:grid;grid-template-columns:repeat(7,minmax(6.5rem,1fr));grid-auto-rows:minmax(6.5rem,auto);gap:.35rem}.calendar-month-cell{border:1px solid #e2e8f0;border-radius:8px;padding:.35rem;min-height:6.5rem;background:#fff;display:flex;flex-direction:column;min-width:0}.calendar-month-cell--muted{background:#f8fafc}.calendar-month-cell--muted .calendar-month-date{color:#94a3b8}.calendar-month-date{font-weight:700;font-size:.85rem;margin-bottom:.25rem;flex-shrink:0}.calendar-month-events{flex:1;min-height:0;overflow-y:auto;max-height:9.5rem}@media(max-width:900px){.calendar-month-weekdays,.calendar-month-grid{grid-template-columns:repeat(7,minmax(5rem,1fr))}.calendar-month-cell{min-height:5.5rem}.calendar-month-events{max-height:7rem}}
