*,*::before,*::after{box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-width:0;overflow-x:hidden;padding-bottom:env(safe-area-inset-bottom)}img,video,canvas,svg{max-width:100%}video{height:auto}button,.btn,input[type=button],input[type=submit],select{min-height:44px}input,select,textarea{max-width:100%;font-size:16px}textarea{min-height:96px}dialog,.modal,.drawer,.popup{max-width:min(94vw,900px)!important;max-height:88dvh!important;overflow:auto!important}table{max-width:100%}.table-wrap,.table-responsive,[class*=table-wrap]{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}canvas{touch-action:none}.pwa-install{position:fixed;left:max(14px,env(safe-area-inset-left));right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));z-index:1000;display:none;align-items:center;justify-content:space-between;gap:14px;padding:13px 14px;background:#fff;border:1px solid #dbe3ee;border-radius:8px;box-shadow:0 18px 45px rgba(15,23,42,.22);color:#172033}.pwa-install.show{display:flex}.pwa-install p{margin:0;font-size:13px;line-height:1.4}.pwa-install-actions{display:flex;gap:8px}.pwa-install button{white-space:nowrap;padding:0 13px;border:0;border-radius:8px;font-weight:800}.pwa-install .install,.pwa-install button:not(.dismiss){background:#0f766e!important;color:#fff!important}.pwa-install .dismiss{background:#344054!important;color:#fff!important}.offline-banner{display:none;position:fixed;top:0;left:0;right:0;z-index:2000;padding:8px;text-align:center;background:#b42318;color:#fff;font-weight:700;font-size:13px}.offline .offline-banner{display:block}
@media(max-width:767px){body{font-size:15px}.app-shell-header{margin-bottom:14px!important}.app-shell-inner{padding:9px 12px!important;min-height:60px!important;align-items:center!important}.app-brand{width:auto!important;flex:1}.app-brand-mark{width:34px!important;height:34px!important}.app-brand small{display:none!important}.app-mobile-toggle{display:inline-flex!important;width:44px;height:44px;align-items:center;justify-content:center;border:1px solid #dbe3ee!important;background:#fff!important;color:#172033!important;box-shadow:none!important;font-size:22px}.app-nav,.app-actions{display:none!important;width:100%;flex-direction:column;align-items:stretch!important;overflow:visible!important}.app-shell-header.mobile-open .app-nav,.app-shell-header.mobile-open .app-actions{display:flex!important}.app-nav{order:3!important;padding:8px 0 0!important}.app-actions{order:4!important;margin:0!important;padding-bottom:8px}.app-nav a,.app-utility,.app-menu summary,.app-user summary{width:100%;min-height:44px;height:auto!important;justify-content:flex-start}.app-menu,.app-user{width:100%}.app-menu-panel,.app-user-panel{position:static!important;width:100%;min-width:0!important;box-shadow:none!important;margin-top:4px}.app-user-text{display:block!important}.app-user-panel a,.app-menu-panel a{min-height:44px;display:flex!important;align-items:center}.app-menu-panel{max-height:50dvh;overflow:auto}.kpi-grid,.stats-grid,.cards,.dashboard-grid{grid-template-columns:1fr!important}.grid,.row,.form-row{min-width:0}.panel,.box,.card,.wrap{max-width:100%}form{max-width:100%}.canvas-wrap{min-height:280px!important;max-height:65dvh}.canvas-wrap img{max-height:65dvh!important}.workspace,.annotation-shell,.live-layout,.camera-layout{grid-template-columns:1fr!important}.tool-panel,.sidebar,.right-panel{position:static!important;width:100%!important}.pwa-install{align-items:flex-start;flex-direction:column}.pwa-install-actions{width:100%}.pwa-install-actions button{flex:1}.chart canvas{max-height:260px}h1{font-size:clamp(1.45rem,7vw,2rem)!important}h2{font-size:1.25rem!important}}
@media(min-width:768px) and (max-width:1023px){.kpi-grid,.stats-grid,.cards{grid-template-columns:repeat(2,minmax(0,1fr))!important}.app-shell-inner{padding-left:16px!important;padding-right:16px!important}}
@media(orientation:landscape) and (max-height:600px){.canvas-wrap video,.camera-preview video{max-height:72dvh}.app-shell-header{position:relative!important}}
@media(min-width:768px){.app-mobile-toggle{display:none!important}}
