.tabbar-nav{position:fixed;bottom:0;left:0;right:0;z-index:500;height:calc(var(--tabbar-height, 64px) + env(safe-area-inset-bottom,0px));background:rgba(255,255,255,.98);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:flex-start;box-shadow:0 -1px rgba(0,0,0,.08),0 -4px 20px rgba(0,0,0,.06);padding-bottom:env(safe-area-inset-bottom,0px)}.tabbar-nav.hidden{transform:translateY(100%)}.tabbar-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);color:#9ca3af;padding:8px 0 4px;min-height:64px;position:relative}.tabbar-item:active{transform:scale(.95);opacity:.8}.tabbar-item.active{color:var(--color-primary, #4F6AF6)}.tabbar-icon-wrap{position:relative;display:flex;align-items:center;justify-content:center;width:30px;height:30px}.tabbar-icon{width:26px;height:26px;transition:all .3s cubic-bezier(.4,0,.2,1)}.tabbar-item.active .tabbar-icon{transform:scale(1.15);filter:drop-shadow(0 2px 4px rgba(79,106,246,.3))}.tabbar-dot{position:absolute;bottom:-4px;left:50%;transform:translate(-50%) scale(0);width:5px;height:5px;border-radius:50%;background:var(--color-primary, #4F6AF6);transition:transform .3s cubic-bezier(.4,0,.2,1)}.tabbar-item.active .tabbar-dot{transform:translate(-50%) scale(1)}.tabbar-label{font-size:13px;font-weight:500;line-height:1.2;letter-spacing:.3px;transition:all .2s ease}.tabbar-item.active .tabbar-label{font-size:13px;font-weight:700;transform:translateY(-1px)}@media (max-width: 360px){.tabbar-icon-wrap{width:26px;height:26px}.tabbar-icon{width:22px;height:22px}.tabbar-label{font-size:11px}.tabbar-item.active .tabbar-label{font-size:12px}}@media (orientation: landscape) and (max-height: 500px){.tabbar-nav{height:calc(50px + env(safe-area-inset-bottom,0px))}.tabbar-item{min-height:50px;flex-direction:row;gap:8px;padding:6px 12px}.tabbar-label{font-size:14px}}@media (prefers-color-scheme: dark){.tabbar-nav{background:rgba(30,30,40,.98);box-shadow:0 -1px rgba(255,255,255,.08),0 -4px 20px rgba(0,0,0,.3)}.tabbar-item{color:#6b7280}.tabbar-item.active{color:#6b8cff}}:root{--color-primary: #4F6AF6;--color-primary-light: #EEF1FE;--color-primary-dark: #3B52CC;--color-secondary: #10B981;--color-secondary-light: #D1FAE5;--color-accent: #F97316;--color-accent-light: #FFF7ED;--color-danger: #EF4444;--color-danger-light: #FEE2E2;--color-danger-glow: rgba(239, 68, 68, .35);--color-warning: #F59E0B;--color-warning-light: #FEF3C7;--color-bg: #F4F6FB;--color-surface: #FFFFFF;--color-card: #FFFFFF;--color-text: #1A2332;--color-text-secondary: #4B5563;--color-text-muted: #9CA3AF;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--shadow-sm: 0 1px 4px rgba(0,0,0,.06);--shadow-md: 0 4px 12px rgba(0,0,0,.08);--shadow-lg: 0 8px 24px rgba(0,0,0,.1);--text-xs: 12px;--text-sm: 14px;--text-base: 16px;--text-lg: 18px;--text-xl: 20px;--text-2xl: 24px;--text-3xl: 30px;--text-4xl: 38px;--text-huge: 48px;--tabbar-height: 64px;--tabbar-icon: 26px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;font-size:var(--text-base);color:var(--color-text);background:var(--color-bg);line-height:1.6;-webkit-font-smoothing:antialiased}#app-root{min-height:100vh;background:var(--color-bg)}.offline-banner{position:fixed;top:0;left:0;right:0;z-index:9999;background:var(--color-warning);color:#78350f;font-size:var(--text-sm);text-align:center;padding:var(--spacing-sm) var(--spacing-md);line-height:1.4}.page-slide-enter-active,.page-slide-leave-active{transition:opacity .18s ease,transform .18s ease}.page-slide-enter-from{opacity:0;transform:translate(12px)}.page-slide-leave-to{opacity:0;transform:translate(-12px)}button,.btn{min-height:44px;min-width:44px;cursor:pointer;font-size:var(--text-base);font-family:inherit}input,select,textarea{min-height:48px;font-size:var(--text-base);font-family:inherit;padding:var(--spacing-sm) var(--spacing-md);border:1.5px solid #D1D5DB;border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text);width:100%;transition:border-color .2s}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px rgba(79,106,246,.15)}.page-wrap{min-height:100vh;padding-bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:var(--color-bg)}.page-content{padding:var(--spacing-md);padding-bottom:calc(var(--tabbar-height) + var(--spacing-lg) + env(safe-area-inset-bottom))}.card{background:var(--color-card);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.card-title{font-size:var(--text-lg);font-weight:600;color:var(--color-text);margin-bottom:var(--spacing-sm)}.section-gap{margin-top:var(--spacing-lg)}.sos-btn{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-full);background:var(--color-danger);color:#fff;font-size:var(--text-xl);font-weight:700;box-shadow:0 4px 16px var(--color-danger-glow);border:3px solid rgba(255,255,255,.9);cursor:pointer;transition:transform .15s,box-shadow .15s;user-select:none;-webkit-user-select:none}.sos-btn:active{transform:scale(.94);box-shadow:0 2px 8px var(--color-danger-glow)}.sos-btn.sos-active{animation:sos-pulse .6s ease-in-out infinite}@keyframes sos-pulse{0%,to{box-shadow:0 0 0 0 var(--color-danger-glow)}50%{box-shadow:0 0 0 12px transparent}}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#d1d5db;border-radius:2px}@media (max-width: 576px){:root{--text-xs: 10px;--text-sm: 12px;--text-base: 14px;--text-lg: 16px;--text-xl: 18px;--text-2xl: 20px;--text-3xl: 24px;--spacing-xs: 2px;--spacing-sm: 4px;--spacing-md: 8px;--spacing-lg: 12px;--spacing-xl: 16px;--tabbar-height: 56px}.cockpit-container{padding:10px!important}.cockpit-header h1{font-size:18px!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important;gap:8px!important}.kpi-value{font-size:20px!important}.main-content{grid-template-columns:1fr!important;height:auto!important;gap:10px!important}.left-panel,.right-panel{max-height:300px}.center-panel{height:300px;order:-1}.feature-grid{grid-template-columns:repeat(3,1fr)!important;gap:8px!important}.feature-item{padding:12px 4px!important}.feature-item .icon{font-size:24px!important}.feature-item .label{font-size:12px!important}}@media (min-width: 577px) and (max-width: 992px){.cockpit-container{padding:15px!important}.kpi-grid{grid-template-columns:repeat(2,1fr)!important}.main-content{grid-template-columns:200px 1fr!important;grid-template-rows:1fr 1fr}.right-panel{grid-column:1 / -1}.feature-grid{grid-template-columns:repeat(4,1fr)!important}}@media (min-width: 993px) and (max-width: 1200px){.main-content{grid-template-columns:220px 1fr 260px!important}.kpi-grid{grid-template-columns:repeat(4,1fr)!important}}@media (min-width: 1600px){:root{--text-base: 18px;--text-lg: 20px;--text-xl: 24px;--text-2xl: 28px;--text-3xl: 36px;--spacing-md: 20px;--spacing-lg: 28px;--spacing-xl: 36px}.cockpit-container{max-width:1920px;margin:0 auto;padding:30px!important}.cockpit-header h1{font-size:36px!important}.kpi-value{font-size:48px!important}.main-content{height:650px!important}.left-panel,.right-panel{padding:20px!important}.panel-title{font-size:20px!important}}@media (min-width: 2560px){.cockpit-container{max-width:2400px}.main-content{grid-template-columns:300px 1fr 350px!important;height:800px!important}}@media (orientation: portrait) and (max-width: 768px){.building-section,.map-overlay{display:none!important}}@media (orientation: landscape) and (max-height: 500px){.cockpit-header{margin-bottom:10px!important}.cockpit-header h1{font-size:16px!important}.kpi-grid{grid-template-columns:repeat(4,1fr)!important;gap:8px!important;margin-bottom:10px!important}.kpi-card{padding:10px!important}.main-content{height:calc(100vh - 150px)!important}}@media print{.TabBar,.ai-float,.offline-banner{display:none!important}.cockpit-container{background:#fff!important;color:#000!important}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--color-text: #000000;--color-bg: #ffffff;--color-primary: #0000ff}}
