.app-layout{min-height:100vh;background:var(--clr-bg)}.app-shell{position:relative;width:100%;min-height:100vh}.app-shell-page{min-height:100vh;padding-left:max(var(--sidebar-w),calc((100% - 1300px) / 2 + var(--sidebar-w)));padding-right:max(0px,calc((100% - 1300px) / 2))}.app-page{width:100%;max-width:1300px;min-height:100vh;margin-left:auto;margin-right:auto;padding:0 24px 24px}.app-page-content{align-items:stretch}.app-page-content,.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:fixed;left:max(0px,calc((100vw - 1300px) / 2));top:0;width:var(--sidebar-w);height:100vh;background:var(--clr-surface);border-right:1px solid var(--clr-border);display:flex;flex-direction:column;z-index:200;overflow:hidden}.sidebar-logo{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid var(--clr-border);flex-shrink:0;color:inherit;text-decoration:none}.logo-img{height:28px;width:auto;max-width:min(100%,148px);object-fit:contain;display:block}.sidebar-nav{padding:4px 0;display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden}.nav-section{display:flex;flex-direction:column}.nav-section-label{display:block;padding:clamp(2px,.5vh,4px) 14px 0;font-size:10px;font-weight:700;letter-spacing:.08em;opacity:.55;text-transform:uppercase;user-select:none}.nav-item,.nav-section-label{color:var(--app-text-secondary)}.nav-item{display:flex;align-items:center;gap:8px;padding:clamp(3px,.9vh,7px) 14px;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(--app-text-accent)}.nav-item--logout{margin-top:2px}.nav-icon{width:20px;height:20px;flex-shrink:0;opacity:.75}.nav-icon--asset{display:inline-block;background-color:currentColor;mask:var(--nav-icon-url) center /contain no-repeat;-webkit-mask:var(--nav-icon-url) center /contain no-repeat}.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:var(--app-text-primary)}.sidebar-user{padding:8px 14px;border-top:1px solid var(--clr-border);cursor:pointer;transition:background var(--duration-fast);flex-shrink:0}.sidebar-user:hover{background:var(--clr-surface-2)}.sidebar-user-skeleton{padding:8px 14px;border-top:1px solid var(--clr-border);display:flex;align-items:center;gap:8px;cursor:pointer;transition:background var(--duration-fast);flex-shrink:0;text-decoration:none;color:inherit}.sidebar-user-skeleton:hover{background:var(--clr-surface-2)}.shell-user-subtitle-lines{display:flex;flex-direction:column;gap:1px;min-width:0}.user-avatar{width:28px;height:28px;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-xs);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(--app-text-muted);min-width:0;margin-top:1px}.sidebar-footer{padding:6px 14px 8px;display:flex;flex-direction:column;gap:1px;border-top:1px solid var(--clr-border);flex-shrink:0}.sidebar-footer-links{display:flex;flex-wrap:wrap;align-items:center;gap:2px 0}.sidebar-footer-links a{font-size:10px;line-height:1.2;color:var(--app-text-muted);transition:color var(--duration-fast);text-decoration:none;white-space:nowrap}.sidebar-footer-links a+a:before{content:"•";color:var(--app-text-muted);margin:0 6px}.sidebar-footer-links a:hover{color:var(--app-text-secondary)}.sidebar-footer .copyright{display:flex;flex-wrap:wrap;align-items:center;gap:0 6px;font-size:10px;line-height:1.2;color:var(--app-text-muted)}.sidebar-footer .build-stamp{letter-spacing:.03em}.sidebar-footer .build-stamp:before{content:"•";margin-right:6px}.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}.topbar-avatar-skeleton{width:28px;height:28px;border-radius:50%;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center}.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{justify-content:space-between;padding:14px 16px;border-bottom:1px solid var(--clr-border);flex-shrink:0}.drawer-header,.drawer-logo{display:flex;align-items:center}.drawer-logo{color:inherit;text-decoration:none}.drawer-logo-img{display:block;width:auto;height:32px;max-width:168px;object-fit:contain}.drawer-user--account{margin:2px 16px 8px;padding:8px 10px;border-radius:var(--radius-md);transition:background var(--duration-fast)}.drawer-user--account:hover{background:var(--clr-surface-2)}.drawer-user-skeleton{display:flex;align-items:center;gap:10px;cursor:pointer;text-decoration:none;color:inherit;margin:2px 16px 8px;padding:8px 10px;border-radius:var(--radius-md);transition:background var(--duration-fast)}.drawer-user-skeleton:hover{background:var(--clr-surface-2)}.close-btn{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);color:var(--clr-text-muted);transition:background var(--duration-fast);border:none;background:none;cursor:pointer;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:7px 16px 9px;border-top:1px solid var(--clr-border);flex-shrink:0}.drawer-footer-links{display:flex;gap:10px;margin-bottom:4px;white-space:nowrap}.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(--app-text-muted)}.drawer-build-time{font-size:var(--text-xs);letter-spacing:.02em}@media (max-width:560px){.drawer{width:100vw;border-left:none}}.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(--app-text-secondary);font-size:10px;font-weight:500;cursor:pointer;position:relative;text-decoration:none;transition:color var(--duration-fast)}.bottom-nav-icon{width:22px;height:22px;display:inline-block;background-color:currentColor;mask:var(--nav-icon-url) center /contain no-repeat;-webkit-mask:var(--nav-icon-url) center /contain no-repeat}.bottom-nav-item.active{color:var(--app-text-accent)}.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);padding-left:max(0px,calc((100% - 1300px) / 2));padding-right:max(0px,calc((100% - 1300px) / 2))}.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))}}