.app-layout{justify-content:center;background:var(--clr-bg)}.app-layout,.app-shell{display:flex;min-height:100vh}.app-shell{width:100%;max-width:1300px;align-items:flex-start;position:relative}.app-page,.app-shell-page{flex:1;min-width:0;min-height:100vh}.app-page{padding:0 24px 24px;display:flex;justify-content:center}.app-page-content{width:100%;min-width:0;max-width:100%}.chat-shell,.dashboard-shell,.location-shell,.poc-detail-shell,.property-shell,.settings-shell{width:100%;min-width:0;display:flex;flex-direction:column}.chat-page{padding:0}.chat-shell{height:100dvh;min-height:100dvh;overflow:hidden}.sidebar{position:sticky;top:0;width:var(--sidebar-w);height:100vh;background:var(--clr-surface);border-right:1px solid var(--clr-border);flex-direction:column;z-index:200;overflow-y:auto;overflow-x:hidden}.sidebar,.sidebar-logo{flex-shrink:0;display:flex}.sidebar-logo{align-items:center;gap:10px;padding:20px 18px 16px;border-bottom:1px solid var(--clr-border);color:inherit;text-decoration:none}.logo-img{height:40px;width:auto;max-width:min(100%,168px);object-fit:contain;display:block}.sidebar-nav{flex:1;padding:10px 0;overflow-y:auto;display:flex;flex-direction:column}.nav-item{display:flex;align-items:center;gap:10px;padding:10px 18px;color:var(--clr-text-muted);font-size:var(--text-sm);font-weight:500;position:relative;cursor:pointer;text-decoration:none;transition:background var(--duration-fast),color var(--duration-fast)}.nav-item:hover{background:var(--clr-surface-2);color:var(--clr-text)}.nav-item.active{background:var(--clr-accent-muted);color:var(--clr-accent-light)}.nav-item.active:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:3px;background:var(--clr-accent-light);border-radius:0 var(--radius-sm) var(--radius-sm) 0}.nav-item--logout{margin-top:auto}.nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.75}.nav-item.active .nav-icon,.nav-item:hover .nav-icon{opacity:1}.nav-label{flex:1}.nav-badge{min-width:20px;height:20px;padding:0 6px;background:var(--clr-accent);color:white;font-size:var(--text-xs);font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.nav-badge.yellow{background:var(--clr-yellow);color:#111}.sidebar-user{padding:14px 18px;border-top:1px solid var(--clr-border);display:flex;align-items:center;gap:10px;cursor:pointer;transition:background var(--duration-fast);flex-shrink:0;text-decoration:none;color:inherit}.sidebar-user:hover{background:var(--clr-surface-2)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--clr-surface-3);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);color:var(--clr-accent-light);border:2px solid var(--clr-accent);overflow:hidden;position:relative}.user-avatar img{width:100%;height:100%;object-fit:cover;display:block}.user-info{flex:1;overflow:hidden}.user-name{font-size:var(--text-sm);font-weight:600;color:var(--clr-text);display:flex;align-items:center;gap:4px}.user-name,.user-role{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-role{font-size:var(--text-xs);color:var(--clr-text-muted);margin-top:1px}.nav-verified-chip{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;background:var(--clr-verified);color:#fff;border-radius:50%;font-size:9px;font-weight:900;flex-shrink:0}.sidebar-footer{padding:10px 18px 14px;display:flex;flex-wrap:wrap;gap:4px 10px;border-top:1px solid var(--clr-border);flex-shrink:0}.sidebar-footer a{font-size:var(--text-xs);color:var(--clr-text-faint);transition:color var(--duration-fast);text-decoration:none}.sidebar-footer a:hover{color:var(--clr-text-muted)}.sidebar-footer .copyright{width:100%;font-size:var(--text-xs);color:var(--clr-text-faint);margin-top:4px}.topbar{display:none;position:fixed;top:0;left:0;right:0;height:var(--topbar-h);background:var(--clr-surface);border-bottom:1px solid var(--clr-border);z-index:150;align-items:center;padding:0 14px;justify-content:center}.topbar-inner{width:100%;max-width:1300px;gap:10px}.topbar-inner,.topbar-logo{display:flex;align-items:center}.topbar-logo{flex:1;text-decoration:none;color:inherit}.topbar-logo-img{height:30px;width:auto;max-width:120px;object-fit:contain;display:block}.icon-btn{width:38px;height:38px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;color:var(--clr-text-muted);background:var(--clr-surface-2);transition:background var(--duration-fast),color var(--duration-fast);position:relative;flex-shrink:0;border:none;cursor:pointer;font-family:inherit;text-decoration:none}.icon-btn:hover{background:var(--clr-surface-3);color:var(--clr-text)}.icon-btn svg{width:20px;height:20px}.topbar-avatar{width:32px;height:32px;border-radius:50%;background:var(--clr-surface-3);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--clr-accent-light);border:1.5px solid var(--clr-accent);flex-shrink:0;overflow:hidden;position:relative;cursor:pointer;text-decoration:none}.topbar-avatar img{width:100%;height:100%;object-fit:cover;display:block}.drawer-overlay{display:none;position:fixed;inset:0;background:var(--clr-overlay);z-index:190;opacity:0;pointer-events:none;transition:opacity var(--duration-base) var(--ease-out)}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer{position:fixed;top:0;right:0;width:270px;height:100vh;background:var(--clr-surface);border-left:1px solid var(--clr-border);z-index:195;display:flex;flex-direction:column;transform:translateX(100%);transition:transform var(--duration-base) var(--ease-out);overflow-y:auto}.drawer.open{transform:translateX(0)}.drawer-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--clr-border);flex-shrink:0}.drawer-user{gap:10px;text-decoration:none;color:inherit}.close-btn,.drawer-user{display:flex;align-items:center;cursor:pointer}.close-btn{width:32px;height:32px;justify-content:center;border-radius:var(--radius-md);color:var(--clr-text-muted);transition:background var(--duration-fast);border:none;background:none;font-family:inherit;flex-shrink:0}.close-btn:hover{background:var(--clr-surface-2);color:var(--clr-text)}.close-btn svg{width:18px;height:18px}.drawer-nav{flex:1;padding:8px 0;overflow-y:auto;display:flex;flex-direction:column}.drawer-nav .nav-item{padding:11px 16px}.drawer-footer{padding:10px 16px 20px;border-top:1px solid var(--clr-border);flex-shrink:0}.drawer-footer-links{display:flex;flex-wrap:wrap;gap:4px 12px;margin-bottom:8px}.drawer-footer-links a{font-size:var(--text-xs);color:var(--clr-text-faint);text-decoration:none}.drawer-footer-links a:hover{color:var(--clr-text-muted)}.drawer-copyright{font-size:var(--text-xs);color:var(--clr-text-faint)}.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;height:var(--bottomnav-h);background:var(--clr-surface);border-top:1px solid var(--clr-border);z-index:150;align-items:center;justify-content:space-around;padding:0 4px env(safe-area-inset-bottom)}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;gap:3px;padding:6px 10px;border-radius:var(--radius-md);color:var(--clr-text-muted);font-size:10px;font-weight:500;cursor:pointer;position:relative;text-decoration:none;transition:color var(--duration-fast)}.bottom-nav-item svg{width:22px;height:22px}.bottom-nav-item.active{color:var(--clr-accent-light)}.bottom-nav-badge{position:absolute;top:2px;right:calc(50% - 18px);min-width:16px;height:16px;padding:0 4px;background:var(--clr-accent);color:white;font-size:10px;font-weight:700;line-height:16px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;pointer-events:none}.status-banner{position:fixed;bottom:calc(var(--bottomnav-h) + 8px);left:50%;transform:translateX(-50%) translateY(20px);background:var(--clr-surface-2);border:1px solid var(--clr-border-accent);color:var(--clr-text);font-size:var(--text-xs);padding:8px 16px;border-radius:var(--radius-full);z-index:999;opacity:0;pointer-events:none;transition:opacity var(--duration-base),transform var(--duration-base) var(--ease-out);white-space:nowrap}.status-banner.show{opacity:1;transform:translateX(-50%) translateY(0)}.notif-badge{position:absolute;top:4px;right:4px;min-width:16px;height:16px;padding:0 4px;background:var(--clr-danger);color:white;font-size:10px;font-weight:700;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;pointer-events:none;line-height:1}.user-avatar .nav-skel-avatar{display:block;width:100%;height:100%;border-radius:50%}@media (max-width:1024px){.sidebar{display:none}.topbar{display:flex}.drawer-overlay{display:block}.app-shell-page{padding-top:var(--topbar-h)}.app-page{padding:0 16px 20px}.chat-page{padding:0}.chat-shell{height:calc(100dvh - var(--topbar-h));min-height:calc(100dvh - var(--topbar-h))}}@media (max-width:768px){.app-page{padding:0 12px 16px}.chat-page{padding:0}}@media (max-width:480px){.bottom-nav{display:flex}.app-shell-page{padding-bottom:var(--bottomnav-h)}.app-page{padding:0 10px 16px}.chat-page{padding:0}.chat-shell{height:calc(100dvh - var(--topbar-h) - var(--bottomnav-h));min-height:calc(100dvh - var(--topbar-h) - var(--bottomnav-h))}}