.app-shell{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;background-color:var(--color-bg-canvas)}.mobile-header{display:flex;align-items:center;justify-content:space-between;gap:.75rem;padding-top:calc(.875rem + env(safe-area-inset-top));padding-right:calc(1.25rem + env(safe-area-inset-right));padding-bottom:.875rem;padding-left:calc(1.25rem + env(safe-area-inset-left));background-color:var(--color-bg-surface);border-bottom:1px solid var(--color-border)}.mobile-header .user-avatar{flex-shrink:0}.mobile-header-actions{display:flex;align-items:center;gap:.75rem}.menu-btn{display:inline-flex;align-items:center;justify-content:center;width:var(--touch-target-min);height:var(--touch-target-min);background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer}.menu-btn svg{width:1.375rem;height:1.375rem}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;background:transparent;border:1px solid var(--color-border);color:var(--color-text-primary);border-radius:var(--radius-md);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.theme-toggle svg{width:1.25rem;height:1.25rem}.theme-toggle:hover{background-color:var(--color-bg-surface-hover)}@media(pointer:coarse){.theme-toggle{width:var(--touch-target-min);height:var(--touch-target-min)}}.theme-toggle .theme-icon-light{display:none}.theme-toggle[data-current-theme=dark] .theme-icon-light{display:block}.theme-toggle[data-current-theme=dark] .theme-icon-dark{display:none}.brand{display:flex;flex-direction:column;align-items:flex-start}.brand h2{font-size:1.35rem;font-weight:800;color:var(--color-text-primary);letter-spacing:-.02em;margin:0;line-height:1.2}.brand h2 span{color:var(--color-primary)}.brand-tagline{display:block;font-size:.75rem;color:var(--color-text-muted);font-weight:500;margin-top:.35rem;line-height:1.3}.sidebar{background-color:var(--color-bg-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;visibility:visible}@media(max-width:767px){.sidebar{position:fixed;top:0;left:0;bottom:0;width:280px;max-width:85vw;z-index:1000;background-color:var(--color-bg-surface);transform:translate(-100%);visibility:hidden;transition:transform var(--transition-normal) ease,visibility var(--transition-normal) ease;box-shadow:4px 0 24px #00000026;display:flex}.sidebar.open{transform:translate(0);visibility:visible}.sidebar-backdrop{position:fixed;inset:0;background-color:#0f172a80;backdrop-filter:blur(2px);z-index:999;transition:opacity var(--transition-fast) ease}.sidebar-backdrop.is-hidden{display:none}}.sidebar .brand{padding:1.5rem 1.25rem 1rem;display:flex;flex-direction:column;align-items:flex-start}.nav-links{display:flex;flex-direction:column;padding:.75rem;gap:.35rem;flex:1}.nav-links a{display:flex;align-items:center;gap:.75rem;padding:.7rem .875rem;border-radius:var(--radius-md);color:var(--color-text-secondary);font-weight:500;font-size:.925rem;text-decoration:none;transition:all var(--transition-fast)}@media(pointer:coarse){.nav-links a{padding-top:.85rem;padding-bottom:.85rem}}@media(min-width:768px){.nav-links a{padding-top:.7rem;padding-bottom:.7rem}}.nav-links a:hover{background-color:var(--color-bg-surface-hover);color:var(--color-text-primary);text-decoration:none}.nav-links a.active{background-color:var(--color-primary);color:var(--color-text-on-primary);font-weight:600}.nav-icon{display:inline-flex;width:1.25rem;height:1.25rem;flex-shrink:0}.nav-icon svg{width:100%;height:100%}.sidebar-footer{padding:1.25rem;padding-bottom:calc(1.25rem + env(safe-area-inset-bottom));border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.875rem}.user-info{display:flex;align-items:center;gap:.75rem}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--color-primary-subtle);color:var(--color-primary);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.8rem}.user-details{display:flex;flex-direction:column;min-width:0;overflow:hidden}.user-name{font-size:.875rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clinic-name{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.logout-btn{width:100%;padding:.625rem;background:transparent;border:1px solid var(--color-border);color:var(--color-text-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;font-weight:500;transition:all var(--transition-fast)}@media(pointer:coarse){.logout-btn{min-height:var(--touch-target-min)}}.logout-btn:hover{background:var(--color-status-danger-bg);border-color:var(--color-status-danger);color:var(--color-status-danger-text)}.main-wrapper{flex:1;display:flex;flex-direction:column}.topbar{height:68px;background-color:var(--color-bg-surface);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 2rem}.page-title{font-size:var(--text-title-md);font-weight:700;letter-spacing:-.01em;color:var(--color-text-primary)}.topbar-right{display:flex;align-items:center;gap:1rem}.status-indicator{display:flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--color-status-success-text);background:var(--color-status-success-bg);padding:.35rem .75rem;border-radius:var(--radius-full)}.pulse-dot{width:8px;height:8px;border-radius:var(--radius-full);background:var(--color-status-success)}.tenant-badge{background:var(--color-primary-subtle);color:var(--color-primary);padding:.35rem .85rem;border-radius:var(--radius-full);font-size:.8rem;font-weight:600}.content{flex:1;padding:1.5rem;max-width:1400px;width:100%;margin:0 auto}.mobile-title{margin-bottom:1.25rem}.mobile-title h1{font-size:var(--text-title-md);font-weight:700}.mobile-only{display:block}.desktop-only{display:none}@media(min-width:768px){.app-shell{flex-direction:row}.mobile-header,.mobile-only{display:none}.desktop-only{display:flex}.sidebar .brand.desktop-only{display:flex;flex-direction:column}.sidebar{display:flex;width:260px;min-height:100vh;min-height:100dvh;position:sticky;top:0;height:100vh;height:100dvh}.content{padding:2rem}}
