.login-overlay{z-index:9999;background:radial-gradient(ellipse at 30% 50%, #0050b42e, transparent 60%), radial-gradient(ellipse at 70% 40%, #6400c81f, transparent 60%), var(--bg0);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.login-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.lb-line{background:linear-gradient(90deg,#0000,#00d4ff40,#0000);height:1px;animation:5s ease-in-out infinite scan;position:absolute;left:0;right:0}@keyframes scan{0%{top:-2px}to{top:100%}}.login-card{z-index:2;border:1px solid var(--border);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);width:370px;box-shadow:0 20px 80px #000c, var(--glow2);background:#060e20ed;border-radius:16px;padding:36px 32px;position:relative}.login-card:before{content:"";background:linear-gradient(90deg,#0000,#00d4ff66,#0000);border-radius:16px 16px 0 0;height:1px;position:absolute;top:0;left:0;right:0}.login-logo{text-align:center;margin-bottom:28px}.ll-ring{border:2px solid var(--p);width:70px;height:70px;box-shadow:var(--glow);border-radius:50%;justify-content:center;align-items:center;margin:0 auto 14px;animation:3s ease-in-out infinite float;display:flex;position:relative}.ll-ring:before{content:"";border:1px solid #00d4ff2e;border-radius:50%;position:absolute;inset:-8px}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.lt{color:var(--p);letter-spacing:1px;font-family:Orbitron,monospace;font-size:13px}.ls{color:var(--text2);letter-spacing:1px;margin-top:4px;font-size:10px}.li-group{margin-bottom:13px}.li-label{color:var(--text2);margin-bottom:5px;font-size:10px;display:block}.input-wrapper{align-items:center;display:flex;position:relative}.input-icon{color:var(--text2);position:absolute;left:12px}.li-input{border:1px solid var(--border);width:100%;color:var(--text);background:#00d4ff0d;border-radius:7px;padding:9px 13px 9px 35px;font-size:12px;transition:all .2s}.li-input:focus{border-color:var(--p);box-shadow:var(--glow);outline:none}.li-input::placeholder{color:var(--text3)}.toggle-password{color:var(--text2);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex;position:absolute;right:10px}.toggle-password:hover{color:var(--p)}.li-btn{background:linear-gradient(135deg, var(--p), var(--p2));color:#000;letter-spacing:1px;cursor:pointer;border:none;border-radius:8px;width:100%;margin-top:6px;padding:11px;font-family:inherit;font-size:12px;font-weight:700;transition:all .2s}.li-btn:hover:not(:disabled){box-shadow:var(--glow);transform:translateY(-1px)}.li-btn:disabled{opacity:.7;cursor:not-allowed}.error-message{color:var(--danger);background:#ff38381a;border:1px solid #ff38384d;border-radius:6px;margin-bottom:12px;padding:8px 12px;font-size:11px}.li-footer{text-align:center;color:var(--text3);margin-top:16px;font-size:9px}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.platform-overlay{z-index:9998;background:var(--bg0);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.platform-bg{pointer-events:none;position:absolute;inset:0;overflow:hidden}.pb-grid{background-image:linear-gradient(#00c8ff08 1px,#0000 1px),linear-gradient(90deg,#00c8ff08 1px,#0000 1px);background-size:50px 50px;animation:20s linear infinite gridFlow;position:absolute;inset:0}.platform-container{z-index:2;width:100%;max-width:900px;padding:40px;position:relative}.platform-header{background:var(--card);border:1px solid var(--border);border-radius:12px;align-items:center;gap:16px;margin-bottom:40px;padding:20px;display:flex}.ph-avatar{background:linear-gradient(135deg, var(--p), var(--accent));color:#000;border-radius:50%;justify-content:center;align-items:center;width:56px;height:56px;font-size:24px;font-weight:700;display:flex}.ph-info{flex:1}.ph-name{color:var(--text);margin-bottom:4px;font-size:16px;font-weight:600}.ph-role{color:var(--text2);font-size:12px}.platform-title{text-align:center;color:var(--text);margin-bottom:30px;font-size:20px;font-weight:600}.platform-grid{grid-template-columns:repeat(2,1fr);gap:24px;margin-bottom:30px;display:grid}.platform-card{background:var(--card);border:1px solid var(--border);cursor:pointer;border-radius:16px;padding:30px;transition:all .3s;position:relative;overflow:hidden}.platform-card:before{content:"";background:linear-gradient(90deg, transparent, var(--platform-color), transparent);height:1px;position:absolute;top:0;left:0;right:0}.platform-card:hover:not(.disabled){border-color:var(--platform-color);transform:translateY(-4px);box-shadow:0 10px 40px #00000080,0 0 30px #00d4ff1a}.platform-card.selected{border-color:var(--platform-color);background:linear-gradient(135deg,#00d4ff0d,#7c3aed0d)}.platform-card.disabled{opacity:.5;cursor:not-allowed}.pc-icon{border:1px solid var(--border);width:64px;height:64px;color:var(--p);background:#00d4ff1a;border-radius:12px;justify-content:center;align-items:center;margin-bottom:20px;display:flex}.platform-card:hover:not(.disabled) .pc-icon{background:#00d4ff26;box-shadow:0 0 20px #00d4ff33}.pc-content h3{color:var(--text);margin-bottom:4px;font-size:16px;font-weight:600}.pc-subtitle{color:var(--text2);letter-spacing:1px;text-transform:uppercase;font-size:10px}.pc-content p{color:var(--text2);margin:12px 0;font-size:12px;line-height:1.5}.pc-features{flex-wrap:wrap;gap:8px;display:flex}.pc-feature-tag{border:1px solid var(--border2);color:var(--text2);background:#00d4ff14;border-radius:20px;padding:4px 10px;font-size:10px}.pc-badge{color:var(--warn);background:#ff95001a;border:1px solid #ff95004d;border-radius:20px;padding:4px 10px;font-size:10px;position:absolute;top:20px;right:20px}.pc-check{background:var(--ok);color:#000;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;font-weight:700;display:flex;position:absolute;bottom:20px;right:20px}.enter-btn{background:linear-gradient(135deg, var(--p), var(--p2));color:#000;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;width:200px;margin:0 auto;padding:14px 28px;font-family:inherit;font-size:14px;font-weight:700;transition:all .3s;display:flex}.enter-btn:hover:not(:disabled){box-shadow:var(--glow);transform:translateY(-2px)}.enter-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=768px){.platform-grid{grid-template-columns:1fr}.platform-container{padding:20px}}.global-layout{background:linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 100%);flex-direction:column;height:100vh;display:flex}.global-header{border-bottom:1px solid var(--border);z-index:200;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fdfefeeb;flex-shrink:0;align-items:center;gap:20px;height:68px;padding:0 24px;display:flex;position:relative;box-shadow:0 10px 24px #0f172a14}.header-left{flex-shrink:0;align-items:center;gap:12px;min-width:0;display:flex}.header-logo{align-items:center;gap:12px;display:flex}.logo-ring{border:2px solid var(--p);width:40px;height:40px;color:var(--p);background:#ffffffeb;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;animation:20s linear infinite spin;display:flex;position:relative;box-shadow:0 10px 20px #3b82f624}.logo-ring:after{content:"";border:1px solid #3b82f633;border-radius:50%;position:absolute;inset:6px}.logo-text{flex-direction:column;gap:2px;display:flex}.logo-title{color:var(--p2);letter-spacing:.5px;white-space:nowrap;font-family:Orbitron,monospace;font-size:14px;font-weight:700}.logo-subtitle{color:var(--text2);letter-spacing:1px;font-size:10px}.header-center-nav{flex:1;justify-content:center;align-items:center;min-width:0;display:flex}.main-nav{border:1px solid var(--border);background:#f4f7fbf5;border-radius:12px;align-items:center;gap:8px;padding:6px;display:flex;box-shadow:inset 0 1px #fffc}.main-nav .nav-item{cursor:pointer;color:var(--text2);white-space:nowrap;background:0 0;border:none;border-radius:8px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.main-nav .nav-item:hover{color:var(--text);background:#c5e9fd80}.main-nav .nav-item.active{color:var(--p2);background:linear-gradient(135deg,#c5e9fde6,#eff8fff5);box-shadow:0 10px 20px #3b82f61f}.main-nav .nav-item .nav-icon{flex-shrink:0;width:18px;height:18px;font-size:18px}.header-right{flex-shrink:0;align-items:center;gap:12px;display:flex}.time-orb{color:var(--p2);letter-spacing:.5px;background:#c5e9fd6b;border:1px solid #3b82f629;border-radius:6px;padding:6px 12px;font-family:Orbitron,monospace;font-size:11px}.tb-btn{border:1px solid var(--border);cursor:pointer;width:36px;height:36px;color:var(--text2);background:#fdfefeeb;border-radius:8px;justify-content:center;align-items:center;font-size:14px;transition:all .2s;display:flex;position:relative;box-shadow:0 6px 16px #0f172a0f}.tb-btn:hover{border-color:var(--p);color:var(--p2);background:#c5e9fd7a;box-shadow:0 10px 20px #3b82f61f}.tb-badge{background:var(--danger);border:1px solid var(--bg0);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.user-chip{border:1px solid var(--border);cursor:pointer;height:36px;color:var(--text);background:#fdfefeeb;border-radius:10px;align-items:center;gap:10px;padding:0 14px;font-size:12px;transition:all .2s;display:flex;position:relative;box-shadow:0 8px 18px #0f172a0f}.user-chip:hover{border-color:var(--p);background:#c5e9fd6b}.avatar{background:linear-gradient(135deg, var(--p), var(--accent));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.rotate{transform:rotate(180deg)}.dropdown-menu{border:1px solid var(--border);z-index:300;background:#fdfefefa;border-radius:12px;min-width:190px;margin-top:10px;padding:8px;position:absolute;top:100%;right:0;box-shadow:0 18px 40px #0f172a24}.menu-item{cursor:pointer;color:var(--text);border-radius:8px;align-items:center;gap:10px;padding:10px 14px;font-size:13px;transition:all .2s;display:flex}.menu-item:hover{background:#c5e9fd6b}.menu-item.active{color:var(--p2);background:#c5e9fd8f}.menu-item.danger{color:var(--danger)}.menu-item.danger:hover{background:#fee2e2c7}.menu-divider{background:var(--border2);height:1px;margin:6px 0}.badge-soon{color:var(--warn);background:#fef3c7e0;border:1px solid #f59e0b2e;border-radius:10px;margin-left:auto;padding:2px 8px;font-size:10px}.notification-menu{width:340px;max-height:420px;overflow-y:auto}.ap-head{border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;margin-bottom:8px;padding:10px 14px;display:flex}.ap-section{margin-bottom:12px}.ap-sec-label{color:var(--text3);text-transform:uppercase;letter-spacing:1px;padding:0 14px 6px;font-size:10px}.ai{border:1px solid var(--border2);cursor:pointer;background:#f4f7fbe6;border-radius:8px;gap:10px;margin-bottom:6px;padding:8px 10px;transition:all .2s;display:flex}.ai:hover{border-color:var(--border);background:#c5e9fd5c}.ai-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:4px}.ai-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;max-width:220px;margin-bottom:3px;font-size:12px;overflow:hidden}.ai-meta{color:var(--text3);flex-wrap:wrap;gap:8px;font-size:10px;display:flex}.content-area{background:linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 100%);flex-direction:column;flex:1;display:flex;overflow:hidden}.layout{flex:1;display:flex;overflow:hidden}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@media (width<=1200px){.global-header{padding:0 16px}.main-nav .nav-item{padding:8px 12px;font-size:12px}.main-nav .nav-item .nav-icon{display:none}.logo-title{font-size:12px}}@media (width<=900px){.logo-text,.time-orb{display:none}.global-header{gap:12px}}:root{--primary-50:#eff8ff;--primary-100:#d9eefc;--primary-200:#c5e9fd;--primary-300:#9ed8fb;--primary-400:#6fc0f7;--primary-500:#3b82f6;--primary-600:#2563eb;--primary-700:#1d4ed8;--primary-800:#1e40af;--primary-900:#1e3a8a;--secondary-500:#8b5cf6;--secondary-600:#7c3aed;--success-50:#ecfdf5;--success-100:#d1fae5;--success-500:#10b981;--success-600:#059669;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-500:#f59e0b;--warning-600:#d97706;--danger-50:#fef2f2;--danger-100:#fee2e2;--danger-500:#ef4444;--danger-600:#dc2626;--neutral-0:#fff;--neutral-50:#fdfefe;--neutral-100:#f4f7fb;--neutral-200:#e2e8f0;--neutral-300:#cbd5e1;--neutral-400:#94a3b8;--neutral-500:#64748b;--neutral-600:#475569;--neutral-700:#334155;--neutral-800:#1e293b;--neutral-900:#0f172a;--bg-primary:#f4f7fb;--bg-secondary:#fdfefe;--bg-tertiary:#edf4fb;--bg-elevated:#fff;--bg-card:#fdfefef5;--text-primary:#0f172a;--text-secondary:#475569;--text-tertiary:#64748b;--text-disabled:#94a3b8;--border-subtle:#94a3b829;--border-default:#94a3b83d;--border-strong:#3b82f63d;--border-focus:#3b82f66b;--shadow-sm:0 1px 2px 0 #0f172a0f;--shadow-md:0 4px 12px #0f172a14;--shadow-lg:0 12px 24px #0f172a1a;--shadow-xl:0 20px 40px #0f172a24;--shadow-glow:0 12px 28px #3b82f61f;--shadow-glow-strong:0 18px 36px #3b82f62e;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:18px;--radius-2xl:24px;--radius-full:9999px;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Consolas", monospace;--font-display:"Orbitron", "Inter", sans-serif;--text-xs:11px;--text-sm:12px;--text-base:14px;--text-lg:16px;--text-xl:20px;--text-2xl:24px;--text-3xl:30px;--font-normal:400;--font-medium:500;--font-semibold:600;--font-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.625;--transition-fast:.15s ease;--transition-base:.25s ease;--transition-slow:.35s ease;--transition-bounce:.3s cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:1000;--z-sticky:1020;--z-fixed:1030;--z-modal-backdrop:1040;--z-modal:1050;--z-popover:1060;--z-tooltip:1070}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-primary);background-color:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glass{-webkit-backdrop-filter:blur(18px);border:1px solid var(--border-default);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#fdfefef5 0%,#f4f7fbf0 100%)}.glass-strong{-webkit-backdrop-filter:blur(22px);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);background:linear-gradient(135deg,#fdfefefa 0%,#edf4fbf5 100%)}.glass-subtle{-webkit-backdrop-filter:blur(12px);border:1px solid var(--border-subtle);background:#fdfefecc}.card-modern{background:var(--bg-card);border:1px solid var(--border-default);border-radius:var(--radius-lg);transition:all var(--transition-base);position:relative;overflow:hidden}.card-modern:before{content:"";opacity:.9;background:linear-gradient(90deg,#0000 0%,#3b82f647 50%,#0000 100%);height:1px;position:absolute;top:0;left:0;right:0}.card-modern:hover{border-color:var(--border-strong);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.card-header-modern{padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:linear-gradient(#c5e9fd47 0%,#0000 100%);justify-content:space-between;align-items:center;display:flex}.card-title-modern{align-items:center;gap:var(--space-3);font-size:var(--text-base);font-weight:var(--font-semibold);color:var(--text-primary);display:flex}.icon-box-modern{border-radius:var(--radius-md);width:32px;height:32px;transition:all var(--transition-base);flex-shrink:0;justify-content:center;align-items:center;display:flex}.icon-box-modern.primary{color:var(--primary-600);background:linear-gradient(135deg,#c5e9fdb8,#eff8fff5);border:1px solid #3b82f629}.icon-box-modern.success{color:var(--success-600);background:linear-gradient(135deg,#d1fae5e6,#ecfdf5f5);border:1px solid #10b98129}.icon-box-modern.warning{color:var(--warning-600);background:linear-gradient(135deg,#fef3c7eb,#fffbebf5);border:1px solid #f59e0b29}.icon-box-modern.danger{color:var(--danger-600);background:linear-gradient(135deg,#fee2e2eb,#fef2f2f5);border:1px solid #ef444429}.icon-box-modern.purple{color:var(--secondary-500);background:linear-gradient(135deg,#ede9feeb,#f5f3fff5);border:1px solid #8b5cf629}.badge-modern{border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:var(--font-medium);transition:all var(--transition-fast);align-items:center;gap:4px;padding:4px 10px;display:inline-flex}@keyframes badgePulse{0%,to{opacity:1}50%{opacity:.7}}.btn-modern{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-fast);border:none;outline:none;display:inline-flex}.btn-modern:focus-visible{box-shadow:0 0 0 2px var(--bg-primary), 0 0 0 4px var(--primary-500)}.btn-modern.primary{background:linear-gradient(135deg, var(--primary-500), var(--primary-600));color:#fff;box-shadow:0 10px 24px #3b82f62e}.btn-modern.primary:hover{background:linear-gradient(135deg, var(--primary-600), var(--primary-700));transform:translateY(-1px);box-shadow:0 14px 28px #3b82f638}.btn-modern.secondary{color:var(--primary-700);background:#c5e9fd7a;border:1px solid #3b82f629}.btn-modern.secondary:hover{background:#c5e9fdb8;border-color:#3b82f63d}.btn-modern.ghost{color:var(--text-secondary);background:0 0}.btn-modern.ghost:hover{color:var(--text-primary);background:#c5e9fd47}.stat-card-modern{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);transition:all var(--transition-base);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fdfefefa 0%,#f4f7fbf5 100%);position:relative;overflow:hidden}.stat-card-modern:before{content:"";background:linear-gradient(90deg, transparent, var(--primary-500), transparent);opacity:.6;height:2px;position:absolute;top:0;left:0;right:0}.stat-card-modern:hover{border-color:var(--border-default);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.stat-card-modern .stat-icon{top:var(--space-3);right:var(--space-3);opacity:.2;color:var(--primary-500);position:absolute}.stat-card-modern .stat-label{font-size:var(--text-xs);color:var(--text-tertiary);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.5px}.stat-card-modern .stat-value{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:var(--leading-tight)}.stat-card-modern .stat-unit{font-size:var(--text-sm);color:var(--text-secondary);margin-left:4px}.stat-card-modern .stat-change{font-size:var(--text-xs);margin-top:var(--space-2)}.stat-card-modern .stat-change.positive{color:var(--success-500)}.stat-card-modern .stat-change.negative{color:var(--danger-500)}.progress-modern{border-radius:var(--radius-full);background:#94a3b833;height:6px;position:relative;overflow:hidden}.progress-modern .progress-fill{background:linear-gradient(90deg, var(--primary-500), var(--success-500));border-radius:var(--radius-full);height:100%;transition:width var(--transition-slow);position:relative}.progress-modern .progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#ffffff4d,#0000);animation:2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.data-card-modern{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-3) var(--space-4);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm);background:#fdfefeeb;position:relative;overflow:hidden}.data-card-modern:before{content:"";background:var(--primary-500);opacity:0;width:3px;transition:opacity var(--transition-fast);position:absolute;top:0;bottom:0;left:0}.data-card-modern:hover{border-color:var(--border-default);background:#c5e9fd57;transform:translate(4px)}.data-card-modern:hover:before{opacity:1}.data-card-modern.active{border-color:var(--primary-500);background:#c5e9fd7a;box-shadow:0 12px 24px #3b82f624}.data-card-modern.active:before{opacity:1}.alert-card-modern{border-radius:var(--radius-md);padding:var(--space-3);align-items:flex-start;gap:var(--space-3);transition:all var(--transition-base);background:#ff383814;border:1px solid #ff383833;display:flex}.alert-card-modern:hover{background:#fee2e2eb;border-color:#ef444447;box-shadow:0 12px 24px #ef44441f}.alert-card-modern .alert-icon{border-radius:var(--radius-sm);width:28px;height:28px;color:var(--danger-500);background:#ff383833;flex-shrink:0;justify-content:center;align-items:center;display:flex}.alert-card-modern .alert-content{flex:1}.alert-card-modern .alert-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.alert-card-modern .alert-meta{font-size:var(--text-xs);color:var(--text-tertiary);gap:var(--space-3);display:flex}.alert-card-modern.level-1{background:#ff38381a;border-color:#ff38384d}.alert-card-modern.level-1 .alert-icon{background:#ff383840}.alert-card-modern.level-2{background:#ff95001a;border-color:#ff95004d}.alert-card-modern.level-2 .alert-icon{color:var(--warning-500);background:#ff950040}.alert-card-modern.level-3{background:#00d4ff1a;border-color:#00d4ff4d}.alert-card-modern.level-3 .alert-icon{color:var(--primary-500);background:#00d4ff40}.env-card-modern{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center;transition:all var(--transition-base);box-shadow:var(--shadow-sm);background:linear-gradient(135deg,#fdfefefa 0%,#eff8fff5 100%);position:relative}.env-card-modern:hover{border-color:var(--border-default);transform:translateY(-2px)}.env-card-modern.alert{border-color:#ff38384d;animation:2s ease-in-out infinite envAlert}@keyframes envAlert{0%,to{box-shadow:0 0 #ff383800}50%{box-shadow:0 0 20px #ff383833}}.env-card-modern .env-icon{border-radius:var(--radius-md);width:40px;height:40px;color:var(--primary-600);margin:0 auto var(--space-3);background:#c5e9fd7a;justify-content:center;align-items:center;display:flex}.env-card-modern .env-value{font-family:var(--font-display);font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--text-primary);margin-bottom:var(--space-1)}.env-card-modern .env-value.alert{color:var(--danger-500)}.env-card-modern .env-label{font-size:var(--text-xs);color:var(--text-tertiary)}.env-card-modern .env-alert-icon{top:var(--space-3);right:var(--space-3);color:var(--danger-500);animation:1s ease-in-out infinite alertBlink;position:absolute}@keyframes alertBlink{0%,to{opacity:1}50%{opacity:.3}}.video-card-modern{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-base);cursor:pointer;box-shadow:var(--shadow-sm);background:#fdfefef5;overflow:hidden}.video-card-modern:hover{border-color:var(--border-strong);box-shadow:var(--shadow-glow);transform:translateY(-2px)}.video-card-modern .video-preview{aspect-ratio:16/9;background:linear-gradient(135deg,#edf4fb 0%,#d9eefc 100%);justify-content:center;align-items:center;display:flex;position:relative}.video-card-modern .video-preview img,.video-card-modern .video-preview video{object-fit:cover;width:100%;height:100%}.video-card-modern .live-badge{top:var(--space-2);left:var(--space-2);color:#fff;font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-sm);background:#ff3838e6;align-items:center;gap:4px;padding:4px 8px;animation:1.5s ease-in-out infinite livePulse;display:flex;position:absolute}@keyframes livePulse{0%,to{opacity:1}50%{opacity:.6}}.video-card-modern .video-info{padding:var(--space-3)}.video-card-modern .video-title{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:2px}.video-card-modern .video-meta{font-size:var(--text-xs);color:var(--text-tertiary)}.chart-container-modern{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);box-shadow:var(--shadow-sm);background:#fdfefef0}.chart-header-modern{margin-bottom:var(--space-4);justify-content:space-between;align-items:center;display:flex}.chart-title-modern{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary)}.chart-legend-modern{gap:var(--space-4);display:flex}.legend-item-modern{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-secondary);display:flex}.legend-dot-modern{border-radius:var(--radius-full);width:8px;height:8px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes glow{0%,to{box-shadow:0 0 5px #00d4ff4d}50%{box-shadow:0 0 20px #00d4ff80}}.animate-fade-in{animation:.3s forwards fadeIn}.animate-scale-in{animation:.3s forwards scaleIn}.animate-slide-in-right{animation:.4s forwards slideInRight}.animate-slide-in-left{animation:.4s forwards slideInLeft}.animate-glow{animation:2s ease-in-out infinite glow}.animate-float{animation:3s ease-in-out infinite float}.scrollbar-modern::-webkit-scrollbar{width:6px;height:6px}.scrollbar-modern::-webkit-scrollbar-track{border-radius:var(--radius-full);background:#e2e8f0b3}.scrollbar-modern::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#94a3b880}.grid{display:grid}.hidden{display:none}.block{display:block}.flex-col{flex-direction:column}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.flex-wrap{flex-wrap:wrap}.flex-1{flex:1}.flex-shrink-0{flex-shrink:0}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.m-0{margin:0}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-center{text-align:center}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.inset-0{inset:0}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-x-auto{overflow-x:auto}.w-full{width:100%}.h-full{height:100%}.min-h-0{min-height:0}.z-10{z-index:10}.z-20{z-index:20}.z-50{z-index:50}.cursor-pointer{cursor:pointer}.transition-all{transition:all var(--transition-base)}@media (width<=1200px){:root{--text-2xl:22px;--text-xl:18px}}@media (width<=768px){:root{--text-2xl:20px;--text-xl:16px;--text-lg:14px}.card-header-modern,.card-body-modern{padding:var(--space-3) var(--space-4)}.grid-cols-4{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.grid-cols-2,.grid-cols-3,.grid-cols-4{grid-template-columns:1fr}.stat-card-modern .stat-value{font-size:var(--text-xl)}}.dashboard-modern{background:#edf1f5;min-height:100vh;overflow:hidden}.dashboard-cockpit-stage{background:linear-gradient(#eef2f6 0%,#e7edf3 100%);height:100vh;min-height:900px;position:relative;overflow:hidden}.dashboard-top-float{z-index:40;pointer-events:none;position:absolute;top:0;left:0;right:0}.dashboard-header-strip,.dashboard-notification-float{pointer-events:auto}.dashboard-header-strip{background:#fffffff5;border-bottom:1px solid #94a3b81f;grid-template-columns:auto 1fr auto;align-items:center;gap:24px;height:54px;padding:0 22px;display:grid;box-shadow:0 10px 24px #0f172a14}.dashboard-header-brand{align-items:center;gap:12px;display:flex}.dashboard-header-brand-icon{color:#fff;background:linear-gradient(135deg,#0b67b2,#1789dc);border-radius:10px;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.dashboard-header-brand-text{align-items:baseline;gap:18px;display:flex}.dashboard-header-brand-text strong{color:#0f172a;font-size:18px;font-weight:800}.dashboard-header-brand-text span{color:#1789dc;font-size:14px;font-weight:700}.dashboard-header-tabs{justify-content:flex-start;align-items:center;gap:18px;display:flex}.dashboard-header-tab{color:#64748b;border-bottom:3px solid #0000;padding:14px 0 10px;font-size:14px;font-weight:600}.dashboard-header-tab.active{color:#0b67b2;border-color:#1789dc}.dashboard-header-search{color:#94a3b8;background:#f5f7faf5;border:1px solid #94a3b824;border-radius:19px;justify-content:center;align-items:center;min-width:280px;height:38px;font-size:13px;display:flex}.dashboard-notification-float{color:#fff;background:linear-gradient(90deg,#bd1f17f5,#d6372bf2);border-bottom:1px solid #ffffff1f;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;height:34px;margin-top:0;padding:0 18px;display:grid}.dashboard-notification-icon{color:#fff;justify-content:center;align-items:center;display:flex}.notification-content-modern{gap:44px;animation-duration:26s}.dashboard-notification-float .notification-item-modern{color:#ffffffeb;font-size:13px}.dashboard-live-chip{color:#fff;background:#fff3;border:1px solid #ffffff3d;border-radius:6px;padding:5px 10px;font-size:12px;font-weight:700}.map-stage-modern{position:absolute;inset:88px 0 0;overflow:hidden}.map-container-modern{width:100%;height:100%;box-shadow:none;border:none;border-radius:0;position:absolute;inset:0}.map-satellite-bg-modern{opacity:.92;filter:brightness(.92)contrast(1.06)saturate(1.02)blur(.3px)}.map-grid-bg-modern{background-image:linear-gradient(#2babff14 1px,#0000 1px),linear-gradient(90deg,#2babff14 1px,#0000 1px);background-size:84px 84px}.dashboard-float-stack{z-index:35;pointer-events:none;flex-direction:column;gap:18px;display:flex;position:absolute;top:22px}.dashboard-float-stack>*{pointer-events:auto}.dashboard-float-stack-left{width:394px;left:28px}.dashboard-float-stack-right{width:448px;right:28px}.dashboard-floating-panel{-webkit-backdrop-filter:blur(10px);background:linear-gradient(#f7f5ede0,#ebebe2d1);border:1px solid #ffffff7a;border-radius:18px;box-shadow:0 18px 48px #0f172a24}.dashboard-floating-panel .dashboard-side-card-header{background:0 0;border-bottom:1px solid #ffffff47;padding:18px 20px 14px}.dashboard-floating-panel .dashboard-side-card-body{padding:16px 20px 18px}.command-summary-grid-compact{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.command-summary-grid-compact .command-summary-card{text-align:center;background:#ffffffc7;border-radius:14px;min-height:74px;padding:10px 8px}.command-summary-grid-compact .command-summary-head{justify-content:center;font-size:11px}.command-summary-grid-compact .command-summary-value{color:#0b67b2;font-size:19px}.command-status-strip-compact{background:0 0;border:none;padding:0}.command-status-strip-compact .command-status-track{background:#3b82f62e;height:6px}.command-roster-list-compact{gap:10px}.drone-status-card-compact{background:#ffffffdb;border:1px solid #94a3b81f;border-radius:14px;align-items:center;gap:12px;padding:12px 14px}.drone-status-card-compact .drone-card-header{align-items:center;margin-bottom:6px}.drone-status-card-compact .drone-card-id{font-size:12px}.drone-card-metrics-inline{flex-wrap:wrap;gap:8px 10px;display:flex}.drone-card-metrics-inline .drone-metric-item{color:#475569;font-size:10px}.dashboard-monitor-stack-overlay{gap:12px}.dashboard-overlay-section-title{color:#64748b;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;display:flex}.dashboard-overlay-section-title.muted{justify-content:flex-start}.eco-monitor-grid-overlay{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.eco-monitor-card-overlay{background:#ffffffd6;border-radius:16px;min-height:92px;box-shadow:inset 0 1px #ffffffa3}.dashboard-water-sheet{background:#ffffffd1;border-radius:16px;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.dashboard-water-sheet-row{color:#334155;justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.dashboard-water-sheet-row span{align-items:center;gap:8px;display:inline-flex}.dashboard-water-sheet-row strong{color:#d97706;font-size:12px}.dashboard-water-progress{flex-direction:column;gap:8px;display:flex}.dashboard-water-progress-labels{color:#334155;justify-content:space-between;align-items:center;font-size:12px;display:flex}.hazard-command-top-overlay{grid-template-columns:120px 1fr;gap:18px}.hazard-command-list-overlay{gap:10px}.overlay-alert-meta{flex-wrap:wrap;gap:12px;font-size:11px;display:flex}.dashboard-alert-action-button{color:#111827;background:#ffffffe6;border:1px solid #efcbc5cc;border-radius:8px;justify-content:center;min-width:52px;height:30px}.dashboard-progress-video-combo{gap:10px}.dashboard-progress-filter-wrap{position:relative}.dashboard-progress-filter{color:#0f172a;cursor:pointer;appearance:none;background:#ffffffd1;border:1px solid #94a3b82e;border-radius:10px;outline:none;min-width:112px;height:32px;padding:0 34px 0 12px;font-size:12px;font-weight:700;box-shadow:inset 0 1px #fff9}.dashboard-progress-filter-wrap:after{content:"▾";color:#64748b;pointer-events:none;font-size:11px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.dashboard-progress-legend-overlay{justify-content:flex-end;margin-bottom:6px}.dashboard-progress-current-section{color:#0b67b2;margin-bottom:8px;font-size:12px;font-weight:700}.dashboard-progress-chart-area{height:142px}.dashboard-progress-table-wrap-overlay{background:#ffffffb8;border:1px solid #94a3b81f;border-radius:14px;overflow:hidden}.dashboard-progress-table-wrap-overlay .dashboard-progress-table th,.dashboard-progress-table-wrap-overlay .dashboard-progress-table td{padding:8px 10px;font-size:11px}.dashboard-progress-table-wrap-overlay .dashboard-progress-table thead{background:#f8fafceb}.dashboard-progress-table-wrap-overlay .dashboard-progress-table tbody tr.active{background:#dbeafe6b}.dashboard-video-mini-section{flex-direction:column;gap:10px;display:flex}.dashboard-switch-chip{color:#94a3b8;background:#dbeafe80;border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:inline-flex}.dashboard-switch-chip.active{color:#fff;background:#0b67b2}.dashboard-progress-chart-shell-overlay{background:0 0;border:none;padding:8px 0 0}.dashboard-video-mini-section{flex-direction:column;gap:8px;margin-top:-2px;display:flex}.dashboard-video-mini-head{color:#475569;justify-content:space-between;align-items:center;gap:12px;font-size:13px;font-weight:700;display:flex}.dashboard-video-grid-icon{color:#0f172a;background:#0f172a14;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;display:flex}.dashboard-video-secondary-grid-overlay{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.dashboard-video-secondary-overlay{box-shadow:none;border:none;border-radius:10px;overflow:hidden}.dashboard-video-preview-photo{background-image:linear-gradient(#0b67b21f,#0f172a3d),url(https://images.unsplash.com/photo-1504307651254-35680f356fce?q=80&w=800&auto=format&fit=crop);background-position:50%;background-size:cover;min-height:35px}.dashboard-video-secondary-overlay:nth-child(2) .dashboard-video-preview-photo{background-image:linear-gradient(#b4530914,#0f172a3d),url(https://images.unsplash.com/photo-1541888946425-d81bb19240f5?q=80&w=800&auto=format&fit=crop)}.dashboard-video-corner-label{color:#fff;text-shadow:0 2px 8px #0f172a73;font-size:11px;font-weight:700;position:absolute;bottom:8px;left:10px}.dashboard-map-tools{z-index:50;top:auto;bottom:136px;right:18px}.dashboard-map-hud-pill{z-index:45;color:#475569;background:#ffffffeb;border-radius:999px;align-items:center;gap:24px;padding:12px 24px;font-size:13px;font-weight:600;display:inline-flex;position:absolute;bottom:108px;left:50%;transform:translate(-50%);box-shadow:0 16px 36px #0f172a1f}.dashboard-map-hud-pill span{align-items:center;gap:8px;display:inline-flex}.hud-dot{border-radius:50%;width:10px;height:10px;display:inline-block}.hud-dot.success{background:#22c55e}.hud-dot.primary{background:#3b82f6}.hud-dot.sky{background:#8ecae6}.dashboard-bottom-float{z-index:45;pointer-events:none;justify-content:flex-start;align-items:flex-end;gap:20px;display:flex;position:absolute;bottom:18px;left:26px;right:26px}.dashboard-bottom-float>*{pointer-events:auto}.dashboard-bottom-brand{color:#fff;background:#08132be0;border-radius:16px;align-items:center;gap:12px;padding:14px 16px;display:flex;box-shadow:0 16px 36px #0f172a2e}.dashboard-bottom-brand-icon{color:#78c4ff;background:#0d94ff2e;border-radius:10px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.dashboard-bottom-brand-title{letter-spacing:.18em;color:#57b7ff;font-size:11px;font-weight:800}.dashboard-bottom-brand-subtitle{color:#ffffffeb;font-size:12px;font-weight:600}.map-legend-modern,.map-stats-modern{display:none}@media (width<=1600px){.dashboard-float-stack-left{width:360px}.dashboard-float-stack-right{width:406px}.dashboard-bottom-tool{width:96px}}@media (width<=1366px){.dashboard-header-strip{grid-template-columns:auto 1fr}.dashboard-header-search{display:none}.dashboard-float-stack-left{width:320px}.dashboard-float-stack-right{width:360px}.dashboard-bottom-brand{display:none}}@media (width<=1200px){.dashboard-float-stack{gap:14px;top:18px}.dashboard-float-stack-left,.dashboard-float-stack-right{width:300px}.dashboard-video-secondary-grid-overlay,.eco-monitor-grid-overlay{grid-template-columns:1fr}.dashboard-map-hud-pill{gap:14px;padding:10px 18px;bottom:98px}}@media (width<=1024px){.dashboard-cockpit-stage{height:auto;min-height:1200px}.map-stage-modern{min-height:1080px;position:relative;inset:88px 0 0}.dashboard-float-stack{width:calc(50% - 32px);position:absolute}.dashboard-float-stack-left{left:16px}.dashboard-float-stack-right{right:16px}.dashboard-bottom-float{left:16px;right:16px}.dashboard-bottom-toolbar{justify-content:space-between;width:100%}}@media (width<=768px){.dashboard-header-strip{grid-template-columns:1fr;gap:10px;height:auto;padding:12px 16px}.dashboard-header-tabs{flex-wrap:wrap;gap:12px}.dashboard-notification-float{grid-template-columns:1fr;height:auto;padding:8px 12px}.dashboard-live-chip,.dashboard-notification-icon{display:none}.map-stage-modern{min-height:1500px;inset:116px 0 0}.dashboard-float-stack{width:auto;position:absolute;left:12px;right:12px}.dashboard-float-stack-left{top:12px}.dashboard-float-stack-right{top:560px}.dashboard-map-hud-pill{justify-content:space-between;gap:10px;padding:10px 14px;font-size:11px;bottom:112px;left:12px;right:12px;transform:none}.dashboard-bottom-float{bottom:12px;left:12px;right:12px}.dashboard-bottom-toolbar{gap:4px;padding:10px;overflow-x:auto}.dashboard-bottom-tool{width:80px;min-width:80px;height:62px;font-size:11px}}.notification-bar-modern{background:linear-gradient(90deg,#fdfefef5,#f4f7fbf0);border-bottom:1px solid #94a3b829;flex-shrink:0;align-items:center;height:36px;display:flex;overflow:hidden}.notification-content-modern{white-space:nowrap;gap:48px;padding:0 24px;animation:30s linear infinite scrollNotification;display:flex}.notification-item-modern{color:#64748b;align-items:center;gap:8px;font-size:12px;display:flex}.notification-dot-modern{border-radius:50%;flex-shrink:0;width:6px;height:6px}.notification-dot-modern.danger{background:#ef4444;animation:1.5s ease-in-out infinite pulse;box-shadow:0 0 0 4px #ef444424}.notification-dot-modern.warning{background:#f59e0b;box-shadow:0 0 0 4px #f59e0b24}.notification-dot-modern.info{background:#3b82f6;box-shadow:0 0 0 4px #3b82f624}@keyframes scrollNotification{0%{transform:translate(0)}to{transform:translate(-50%)}}.dashboard-grid-modern{flex:1;grid-template-columns:320px 1fr 320px;gap:16px;min-height:0;padding:16px;display:grid;overflow:hidden}.dashboard-left-modern{scrollbar-width:thin;scrollbar-color:#94a3b899 #f4f7fbe6;flex-direction:column;gap:16px;padding-right:8px;display:flex;overflow:hidden auto}.dashboard-left-modern::-webkit-scrollbar{width:8px}.dashboard-left-modern::-webkit-scrollbar-track{background:#f4f7fbeb;border-radius:4px}.dashboard-left-modern::-webkit-scrollbar-thumb{background:linear-gradient(#94a3b8b8,#94a3b880) padding-box padding-box;border:2px solid #0000;border-radius:4px}.dashboard-left-modern::-webkit-scrollbar-thumb:hover{background:linear-gradient(#64748bc7,#94a3b89e) padding-box padding-box}.dashboard-center-modern{border-radius:16px;min-height:0;position:relative;overflow:hidden}.dashboard-right-modern{scrollbar-width:thin;scrollbar-color:#94a3b899 #f4f7fbe6;flex-direction:column;gap:16px;padding-right:8px;display:flex;overflow:hidden auto}.dashboard-right-modern::-webkit-scrollbar{width:8px}.dashboard-right-modern::-webkit-scrollbar-track{background:#f4f7fbeb;border-radius:4px}.dashboard-right-modern::-webkit-scrollbar-thumb{background:linear-gradient(#94a3b8b8,#94a3b880) padding-box padding-box;border:2px solid #0000;border-radius:4px}.dashboard-right-modern::-webkit-scrollbar-thumb:hover{background:linear-gradient(#64748bc7,#94a3b89e) padding-box padding-box}.map-container-modern{background:linear-gradient(135deg,#fdfefefa 0%,#edf4fbfa 100%);border:1px solid #94a3b82e;border-radius:16px;width:100%;height:100%;position:relative;overflow:hidden;box-shadow:0 18px 36px #0f172a14}.map-satellite-bg-modern{opacity:.6;filter:brightness(.7)contrast(1.2)saturate(.8);background-image:url(https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/12/2156/3404);background-position:50%;background-size:cover;position:absolute;inset:0}.map-grid-bg-modern{pointer-events:none;background-image:linear-gradient(#94a3b814 1px,#0000 1px),linear-gradient(90deg,#94a3b814 1px,#0000 1px);background-size:50px 50px;position:absolute;inset:0}.protected-area-svg-modern{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.protected-area-label-modern{pointer-events:none;z-index:5;flex-direction:column;align-items:center;gap:4px;display:flex;position:absolute}.area-icon-modern{filter:drop-shadow(0 2px 4px #94a3b852);font-size:20px}.area-name-modern{color:#334155;white-space:nowrap;background:#fdfefee0;border:1px solid #94a3b829;border-radius:4px;padding:2px 8px;font-size:10px}.road-model-modern{pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.road-glow-modern{filter:drop-shadow(0 0 4px #10b98133);animation:2s ease-in-out infinite roadGlow}@keyframes roadGlow{0%,to{stroke-opacity:.6}50%{stroke-opacity:1}}.road-dashed-modern{animation:20s linear infinite roadDash}@keyframes roadDash{to{stroke-dashoffset:-100px}}.road-node-modern{animation:2s ease-in-out infinite nodePulse}@keyframes nodePulse{0%,to{opacity:.6;r:2}50%{opacity:1;r:3}}.nest-marker-modern{cursor:pointer;z-index:15;position:absolute}.nest-icon-modern{color:#fff;background:linear-gradient(135deg,#8b5cf6e6,#7c3aedb8);border:2px solid #ffffffa6;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 12px 24px #8b5cf62e}.nest-label-modern{color:#334155;white-space:nowrap;background:#fdfefeeb;border:1px solid #94a3b829;border-radius:4px;margin-top:4px;padding:2px 8px;font-size:10px;position:absolute;top:100%;left:50%;transform:translate(-50%)}.nest-pulse-modern{border:2px solid #8b5cf647;border-radius:50%;animation:2s ease-out infinite nestPulse;position:absolute;inset:-8px}@keyframes nestPulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.poi-modern{cursor:pointer;z-index:10;position:absolute}.poi-icon-wrapper-modern{color:#fff;border:2px solid #ffffffbf;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;transition:all .3s;display:flex}.poi-modern:hover .poi-icon-wrapper-modern{transform:scale(1.1)}.poi-modern.highlighted .poi-icon-wrapper-modern{transform:scale(1.2);box-shadow:0 0 30px}.poi-pulse-modern{border:2px solid;border-radius:50%;animation:2s ease-out infinite poiPulse;position:absolute;inset:-6px}.poi-pulse-modern.green{border-color:#00e67680}@keyframes poiPulse{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}.poi-label-modern{color:#334155;white-space:nowrap;background:#fdfefef0;border:1px solid #94a3b829;border-radius:4px;margin-top:4px;padding:2px 8px;font-size:10px;font-weight:500;position:absolute;top:100%;left:50%;transform:translate(-50%)}.poi-popup-modern{-webkit-backdrop-filter:blur(12px);background:#fdfefef5;border:1px solid #94a3b82e;border-radius:12px;flex-direction:column;width:320px;display:flex;position:absolute;box-shadow:0 20px 25px -5px #0f172a29,0 8px 10px -6px #0f172a14}.poi-popup-modern:after{content:"";background:#fdfefef5;border-bottom:1px solid #94a3b82e;border-right:1px solid #94a3b82e;width:12px;height:12px;position:absolute;bottom:-6px;left:50%;transform:translate(-50%)rotate(45deg)}.popup-close-modern{color:#94a3b8;cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;width:24px;height:24px;font-size:14px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.popup-close-modern:hover{color:#2563eb;background:#c5e9fd80}.popup-header-modern{border-bottom:1px solid #94a3b824;align-items:center;gap:8px;padding:12px 16px;display:flex}.popup-header-modern .eq-title{color:#0f172a;flex:1;align-items:center;gap:8px;font-size:15px;font-weight:600;display:flex}.popup-header-modern .status-badge{border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:flex}.popup-header-modern .status-flying{color:#10b981;background:#10b98126;border:1px solid #10b9814d}.popup-header-modern .status-flying:before{content:"";background:#10b981;border-radius:50%;width:6px;height:6px;animation:1.5s infinite pulse;box-shadow:0 0 4px #10b981}.popup-header-modern .status-charging{color:#f59e0b;background:#f59e0b26;border:1px solid #f59e0b4d}.popup-header-modern .status-charging:before{content:"⚡";font-size:10px}.popup-id{color:#0f172a;flex:1;align-items:center;gap:6px;font-size:14px;font-weight:600;display:flex}.popup-id:before{content:"⚠️";font-size:14px}.popup-title-modern{color:#0f172a;font-size:15px;font-weight:600;line-height:1.2}.popup-content-modern{gap:12px;padding:16px;display:flex}.hazard-thumb{background:url(https://images.unsplash.com/photo-1504307651254-35680f356fce?q=80&w=200&auto=format&fit=crop) 50%/cover;border:1px solid #94a3b82e;border-radius:6px;flex-shrink:0;width:80px;height:80px;position:relative}.ai-bbox{background:#ef444429;border:1px solid #ef4444;width:50%;height:50%;position:absolute;top:20%;left:20%}.hazard-info{flex-direction:column;flex:1;justify-content:center;gap:6px;display:flex}.hz-title{color:#0f172a;margin-bottom:2px;font-size:15px;font-weight:600;line-height:1.2}.hz-level{color:#ef4444;background:#ef44441a;border:1px solid #ef44443d;border-radius:4px;width:fit-content;padding:2px 6px;font-size:11px;font-weight:500}.info-line{color:#64748b;align-items:center;gap:6px;font-size:12px;display:flex}.info-line span{color:#334155}.popup-footer{background:#f4f7fbeb;border-top:1px solid #94a3b824;border-radius:0 0 12px 12px;gap:10px;padding:12px 16px;display:flex}.btn{cursor:pointer;text-align:center;border:none;border-radius:6px;flex:1;padding:8px 0;font-size:13px;font-weight:500;transition:all .2s}.btn-secondary{color:#334155;background:#fdfefef5;border:1px solid #94a3b838}.btn-secondary:hover{background:#c5e9fd6b}.btn-primary{color:#fff;background:#3b82f6;box-shadow:0 2px 8px #3b82f62e}.btn-primary:hover{background:#2563eb}.telemetry-grid{grid-template-columns:1fr 1fr;gap:12px;padding:16px;display:grid}.tm-item{flex-direction:column;gap:4px;display:flex}.tm-label{color:#94a3b8;font-size:11px}.tm-value{color:#0f172a;font-family:monospace;font-size:16px;font-weight:600}.tm-unit{color:#94a3b8;font-family:sans-serif;font-size:11px;font-weight:400}.mission-bar{background:#f4f7fbf5;border-left:3px solid #3b82f6;border-radius:6px;margin:0 16px 16px;padding:10px 12px}.ms-label{color:#94a3b8;margin-bottom:2px;font-size:11px}.ms-name{color:#334155;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.popup-footer .btn-live{color:#2563eb;background:#c5e9fd8f;border:1px solid #3b82f63d}.popup-footer .btn-live:hover{color:#fff;background:#3b82f6}.popup-footer .btn-action{color:#334155;background:#fdfefef5;border:1px solid #94a3b838}.popup-footer .btn-action:hover{background:#c5e9fd6b}.map-controls-modern{z-index:20;flex-direction:column;gap:8px;display:flex;position:absolute;top:16px;right:16px}.map-btn-modern{color:#475569;cursor:pointer;background:#fdfefef5;border:1px solid #94a3b838;border-radius:8px;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;transition:all .2s;display:flex}.map-btn-modern:hover{color:#2563eb;background:#c5e9fd80;border-color:#3b82f647}.map-stats-modern{z-index:20;gap:12px;display:flex;position:absolute;top:16px;left:16px}.map-stat-item-modern{background:#fdfefef0;border:1px solid #94a3b833;border-radius:10px;flex-direction:column;align-items:center;gap:4px;min-width:60px;padding:10px 16px;display:flex}.map-legend-modern{-webkit-backdrop-filter:blur(12px);z-index:20;background:#fdfefef0;border:1px solid #94a3b833;border-radius:8px;flex-wrap:wrap;gap:8px 16px;max-width:400px;padding:12px 16px;display:flex;position:absolute;bottom:16px;left:16px;box-shadow:0 12px 28px #0f172a1f}.legend-item-modern{white-space:nowrap;flex:0 0 calc(50% - 8px);align-items:center;gap:6px;display:flex}.legend-dot-modern{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-item-modern span{color:#475569;font-size:11px}.video-fullscreen-overlay-modern{z-index:999999;background:#f4f7fbfa;flex-direction:column;animation:.3s fadeIn;display:flex;position:fixed;inset:50px 0 0}.video-fullscreen-header-modern{background:#fdfefef5;border-bottom:1px solid #94a3b833;flex-shrink:0;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex}.video-title-modern{color:#0f172a;align-items:center;gap:12px;font-size:16px;font-weight:600;display:flex}.video-title-modern svg{color:#3b82f6}.video-task-modern{color:#2563eb;background:#c5e9fd80;border:1px solid #3b82f633;border-radius:20px;padding:4px 12px;font-size:12px}.video-controls-modern{align-items:center;gap:12px;display:flex}.video-fullscreen-content-modern{flex:1;gap:16px;padding:20px;display:flex;overflow:hidden}.main-video-player-modern{flex-direction:column;flex:1;gap:16px;min-height:0;display:flex}.video-placeholder-modern{color:#475569b8;background:linear-gradient(135deg,#fdfefefa 0%,#edf4fbf5 100%);border:1px solid #94a3b82e;border-radius:16px;flex-direction:column;flex:1;justify-content:center;align-items:center;min-height:0;display:flex;position:relative}.live-badge-modern{color:#ef4444;background:#fdfefef5;border:1px solid #ef44442e;border-radius:8px;padding:8px 16px;font-size:14px;font-weight:600;animation:1.5s ease-in-out infinite livePulse;position:absolute;top:20px;left:20px}.drone-control-panel-modern{background:#fdfefef5;border:1px solid #94a3b82e;border-radius:16px;flex-wrap:wrap;flex-shrink:0;justify-content:center;gap:24px;padding:16px 20px;animation:.3s slideUp;display:flex}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.control-section-modern{flex-direction:column;gap:12px;display:flex}.control-label-modern{color:#475569b8;text-transform:uppercase;letter-spacing:1px;text-align:center;font-size:11px}.control-buttons-modern{gap:8px;display:flex}.control-action-btn-modern{color:#334155;cursor:pointer;white-space:nowrap;background:#c5e9fd5c;border:1px solid #3b82f633;border-radius:8px;justify-content:center;align-items:center;gap:4px;min-width:70px;padding:8px 16px;font-size:12px;font-weight:500;transition:all .2s;display:flex}.control-action-btn-modern:hover{background:#c5e9fd99;border-color:#3b82f652;transform:translateY(-2px);box-shadow:0 4px 15px #3b82f61f}.control-action-btn-modern.primary{color:#047857;background:#10b98124;border-color:#10b98147}.control-action-btn-modern.primary:hover{background:#10b98138;border-color:#10b98166;box-shadow:0 4px 15px #10b98124}.video-sidebar-modern{flex-direction:column;gap:12px;width:220px;display:flex;overflow-y:auto}.sidebar-video-modern{cursor:pointer;background:#fdfefef0;border:1px solid #94a3b829;border-radius:12px;gap:12px;padding:12px;transition:all .2s;display:flex}.sidebar-video-modern:hover{background:#c5e9fd57;border-color:#3b82f633}.sidebar-video-modern.active{background:#c5e9fd80;border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f61f}.sidebar-video-placeholder-modern{color:#47556985;background:#f4f7fbf5;border-radius:8px;justify-content:center;align-items:center;width:60px;height:45px;display:flex;position:relative}.live-dot-modern{background:#ef4444;border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pulse;position:absolute;top:4px;right:4px}.sidebar-video-info-modern{flex-direction:column;flex:1;justify-content:center;display:flex}.sidebar-video-title-modern{color:#0f172a;font-size:13px;font-weight:600}.sidebar-video-task-modern{color:#475569b8;margin-top:2px;font-size:11px}.video-card-modern{background:#fdfefef0;border:1px solid #94a3b829;border-radius:12px;transition:all .3s;overflow:hidden}.video-card-modern:hover{border-color:#3b82f63d;transform:translateY(-2px);box-shadow:0 10px 24px #0f172a1a}.video-preview-modern{aspect-ratio:16/9;color:#4755696b;background:#f4f7fbf5;justify-content:center;align-items:center;display:flex;position:relative}.video-preview-modern .live-badge-modern{padding:4px 8px;font-size:10px;position:absolute;top:8px;left:8px}.video-info-modern{padding:10px 12px}.video-title-modern{color:#0f172a;margin-bottom:2px;font-size:12px;font-weight:600}.video-meta-modern{color:#475569b8;font-size:10px}.env-card-modern{background:#fdfefef0;border:1px solid #94a3b829;border-radius:10px;flex-direction:column;align-items:center;gap:4px;padding:10px 12px;transition:all .2s;display:flex;position:relative}.env-card-modern.alert{background:#fef2f2d1;border-color:#ef444447}.env-icon{width:32px;height:32px;color:var(--primary-500);background:#c5e9fd80;border-radius:8px;justify-content:center;align-items:center;display:flex}.env-value{color:var(--primary-500);font-size:20px;font-weight:700;font-family:var(--font-display);line-height:1.2}.env-value.alert{color:var(--danger-500)}.env-label{color:#ffffff80;font-size:10px;line-height:1.2}.env-alert-icon{color:var(--danger-500);position:absolute;top:6px;right:6px}.dashboard-monitor-stack{flex-direction:column;gap:16px;display:flex}.dashboard-submodule{background:#ffffff9e;border:1px solid #94a3b82e;border-radius:12px;flex-direction:column;gap:12px;padding:12px;display:flex;box-shadow:inset 0 1px #ffffffa6}.dashboard-submodule-header{justify-content:space-between;align-items:center;gap:10px;display:flex}.dashboard-submodule-title{color:#0f172a;align-items:center;gap:8px;min-width:0;font-size:14px;font-weight:700;display:inline-flex}.dashboard-submodule-accent{border-radius:999px;flex-shrink:0;width:4px;height:14px}.dashboard-submodule-title.eco .dashboard-submodule-accent{background:#10b981}.dashboard-submodule-title.water .dashboard-submodule-accent{background:#3b82f6}.dashboard-submodule-note{color:#64748b;white-space:nowrap;font-size:11px}.dashboard-water-alert-badge{color:#b45309;white-space:nowrap;background:#f59e0b1f;border:1px solid #f59e0b3d;border-radius:999px;align-items:center;min-height:24px;padding:0 10px;font-size:11px;font-weight:600;display:inline-flex}.eco-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.eco-monitor-card{background:#ffffffe0;border:1px solid #94a3b829;border-radius:10px;flex-direction:column;gap:8px;min-height:92px;padding:12px;transition:all .2s;display:flex;position:relative}.eco-monitor-card.is-danger{background:#fef2f2f2;border-color:#ef444442}.eco-monitor-card.is-warning{background:#fffbebf5;border-color:#f59e0b3d}.eco-monitor-card.is-normal{background:#ecfdf5e6;border-color:#10b98138}.eco-monitor-label{color:#64748b;min-height:32px;font-size:12px;line-height:1.35}.eco-monitor-value-row{align-items:baseline;gap:4px;display:flex}.eco-monitor-value{color:#0f172a;font-size:22px;font-weight:700;line-height:1}.eco-monitor-card.is-danger .eco-monitor-value{color:#ef4444}.eco-monitor-card.is-warning .eco-monitor-value{color:#d97706}.eco-monitor-unit{color:#94a3b8;font-size:11px}.eco-monitor-status{border-radius:999px;align-items:center;min-height:20px;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex;position:absolute;top:10px;right:10px}.eco-monitor-status.is-danger{color:#dc2626;background:#ef444424}.eco-monitor-status.is-warning{color:#b45309;background:#f59e0b29}.eco-monitor-status.is-normal{color:#059669;background:#10b98124}.water-monitor-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.water-monitor-stat{text-align:center;background:#ffffffd9;border:1px solid #94a3b829;border-radius:10px;flex-direction:column;justify-content:center;gap:6px;min-height:76px;padding:10px 8px;display:flex}.water-monitor-stat.is-danger{border-bottom:2px solid #ef4444}.water-monitor-stat.is-warning{border-bottom:2px solid #f59e0b}.water-monitor-label{color:#64748b;font-size:11px;line-height:1.35}.water-monitor-value{color:#0f172a;font-size:20px;font-weight:700;line-height:1}.water-monitor-stat.is-danger .water-monitor-value{color:#ef4444}.water-monitor-stat.is-warning .water-monitor-value{color:#d97706}.water-monitor-value span{color:#94a3b8;margin-left:2px;font-size:11px;font-weight:500}.water-monitor-progress{background:#f8fafce0;border:1px solid #94a3b824;border-radius:10px;padding:10px 12px}.water-monitor-progress-header{color:#64748b;justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;font-size:11px;display:flex}.water-monitor-progress-track{background:#94a3b829;border-radius:999px;height:8px;overflow:hidden}.water-monitor-progress-fill{border-radius:inherit;background:linear-gradient(90deg,#0ea5e9,#3b82f6);height:100%}.drone-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:8px;display:flex}.drone-card-title-group{flex-direction:column;gap:2px;min-width:0;display:flex}.drone-card-id{color:#0f172a;font-size:13px;font-weight:700}.drone-card-type{color:#94a3b8;font-size:10px}.drone-card-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px;display:grid}.drone-metric-item{color:#64748b;white-space:nowrap;align-items:center;gap:4px;min-width:0;font-size:11px;display:inline-flex}.drone-card-task{border-left:2px solid var(--primary-500);color:var(--text-secondary);background:#00d4ff14;border-radius:8px;padding:5px 8px;font-size:11px;line-height:1.35}.metrics-grid-compact{grid-template-columns:1fr 1fr;gap:12px;display:grid}.metric-card-compact{background:#ffffff08;border:1px solid #ffffff14;border-radius:8px;flex-direction:column;gap:8px;padding:12px;transition:all .2s;display:flex}.metric-card-compact.danger{background:#ef44441a;border-color:#ef444466;box-shadow:inset 0 0 12px #ef44441a}.card-top-compact{justify-content:space-between;align-items:center;display:flex}.card-label-compact{color:#64748b;align-items:center;gap:6px;font-size:12px;display:flex}.metric-card-compact.danger .card-label-compact{color:#ef4444e6}.warning-icon-compact{color:#ef4444;font-size:12px;animation:1.5s infinite blink}.card-bottom-compact{align-items:baseline;gap:4px;display:flex}.card-value-compact{color:#0f172a;font-size:22px;font-weight:700;line-height:1}.metric-card-compact.danger .card-value-compact{color:#ef4444}.card-unit-compact{color:#64748b;font-size:11px;font-weight:400}@keyframes blink{0%,to{box-shadow:0 0 6px var(--danger)}50%{box-shadow:0 0 22px var(--danger), 0 0 44px #ff38384d}}.sprinkler-btn-compact{cursor:pointer;background:#f8fafc;border:1px solid #94a3b82e;border-radius:8px;justify-content:flex-start;align-items:center;gap:12px;width:100%;padding:12px;transition:all .2s;display:flex;position:relative;overflow:hidden;box-shadow:0 8px 18px #0f172a14}.sprinkler-btn-compact:hover{background:#e2e8f0;transform:translateY(-1px)}.sprinkler-btn-compact:active{transform:translateY(1px)}.sprinkler-btn-compact.success{background:#10b98133;border:1px solid #10b98166}.sprinkler-btn-compact.active{background:#3b82f61f;border:1px solid #3b82f63d}.sprinkler-icon-compact{color:#0f172a;justify-content:center;align-items:center;font-size:20px;display:flex}.sprinkler-btn-compact.success .sprinkler-icon-compact,.sprinkler-btn-compact.active .sprinkler-icon-compact{color:inherit}.sprinkler-text-compact{flex-direction:column;align-items:flex-start;display:flex}.sprinkler-main-text{color:#0f172a;font-size:14px;font-weight:600}.sprinkler-sub-text{color:#64748b;margin-top:2px;font-size:11px}.sprinkler-btn-compact.success .sprinkler-main-text,.sprinkler-btn-compact.active .sprinkler-main-text{color:#0f172a}.sprinkler-btn-compact.success .sprinkler-sub-text,.sprinkler-btn-compact.active .sprinkler-sub-text{color:#334155cc}.sprinkler-progress-compact{background:#94a3b82e;height:3px;position:absolute;bottom:0;left:0;right:0}.sprinkler-progress-compact>div{background:linear-gradient(90deg,#3b82f6,#10b981);height:100%;transition:width .3s}@keyframes waterDrop{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(20px)}}@media (width<=1400px){.dashboard-grid-modern{grid-template-columns:280px 1fr 280px;gap:12px;padding:12px}}@media (width<=1200px){.dashboard-grid-modern{grid-template-columns:260px 1fr 260px;gap:10px;padding:10px}.drone-control-panel-modern{gap:20px;padding:16px}.control-action-btn-modern{padding:8px 14px;font-size:12px}.drone-card-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.water-monitor-stats{grid-template-columns:1fr}}@media (width<=1024px){.dashboard-grid-modern{grid-template-rows:auto 1fr;grid-template-columns:1fr 1fr}.dashboard-center-modern{grid-area:1/1/auto/-1;height:400px}.dashboard-left-modern,.dashboard-right-modern{max-height:500px}.dashboard-submodule-header{flex-direction:column;align-items:flex-start}}@media (width<=768px){.dashboard-grid-modern{grid-template-columns:1fr;gap:12px}.dashboard-center-modern{height:350px}.map-legend-modern{display:none}.map-stats-modern{gap:8px}.map-stat-item-modern{min-width:50px;padding:8px 12px}.eco-monitor-grid,.drone-card-metrics{grid-template-columns:1fr 1fr}.dashboard-water-alert-badge,.dashboard-submodule-note{white-space:normal}.video-fullscreen-overlay-modern{top:0}.video-fullscreen-content-modern{flex-direction:column;gap:12px;padding:12px}.video-fullscreen-header-modern{height:50px;padding:0 16px}.video-sidebar-modern{flex-direction:row;gap:8px;width:100%;overflow:auto hidden}.sidebar-video-modern{min-width:160px;padding:10px}.drone-control-panel-modern{flex-direction:row;gap:12px;padding:12px}.control-section-modern{gap:8px}.control-buttons-modern{flex-wrap:wrap;justify-content:center;gap:6px}.control-action-btn-modern{min-width:60px;padding:6px 12px;font-size:11px}}@media (width<=480px){.notification-bar-modern{height:32px}.notification-item-modern{font-size:11px}.dashboard-center-modern{height:300px}.map-controls-modern{top:8px;right:8px}.map-btn-modern{width:32px;height:32px;font-size:14px}.video-fullscreen-header-modern{padding:0 16px}.video-title-modern{font-size:14px}.video-task-modern{display:none}}@media (prefers-color-scheme:dark){.dashboard-modern{background:linear-gradient(135deg,#020814 0%,#0a1628 50%,#050d18 100%)}}@media (prefers-reduced-motion:reduce){.notification-content-modern,.road-dashed-modern,.road-glow-modern,.nest-pulse-modern,.poi-pulse-modern,.live-badge-modern{animation:none}.card-modern,.video-card-modern,.data-card-modern{transition:none}}.dashboard-grid-modern{grid-template-columns:226px 1fr 226px;gap:10px;padding:10px}.dashboard-left-modern,.dashboard-right-modern{gap:10px;padding-right:4px}.card-modern{border-radius:10px}.card-header-modern,.card-body-modern{padding:10px 12px}.card-title-modern{font-size:13px}.icon-box-modern{width:30px;height:30px}.icon-box-modern svg{width:15px;height:15px}.badge-modern{padding:3px 8px;font-size:10px}.stat-card-modern{padding:8px}.stat-label{font-size:10px}.stat-value{font-size:16px}.progress-modern,.progress-fill{height:6px}.map-stats-modern{gap:10px}.map-stat-item-modern{min-width:50px;padding:8px 10px}.drone-status-card{padding:8px 10px}.drone-card-header{margin-bottom:6px}.drone-card-id{font-size:12px}.drone-card-type,.drone-metric-item,.drone-card-task{font-size:10px}.drone-card-metrics{gap:4px;margin-bottom:6px}.dashboard-monitor-stack{gap:12px}.dashboard-submodule{gap:10px;padding:10px}.dashboard-submodule-title{font-size:13px}.dashboard-submodule-note,.dashboard-water-alert-badge{font-size:10px}.eco-monitor-grid{gap:8px}.eco-monitor-card{min-height:80px;padding:10px}.eco-monitor-label,.water-monitor-label{font-size:10px}.eco-monitor-value{font-size:20px}.water-monitor-stats{gap:8px}.water-monitor-stat{min-height:64px;padding:8px 6px}.water-monitor-value{font-size:18px}.alert-card-modern{padding:10px}.alert-title{font-size:12px}.alert-meta{font-size:10px}.progress-chart-card{padding:10px}.video-card-modern{min-height:124px}.video-placeholder-modern{min-height:78px}@media (width<=1600px){.dashboard-grid-modern{grid-template-columns:280px 1fr 280px;gap:12px;padding:12px}.card-modern{border-radius:12px}.card-header-modern{padding:12px 14px}.card-body-modern{padding:14px}.card-title-modern{font-size:13px}.stat-card-modern{padding:10px}.stat-value{font-size:18px}.stat-label{font-size:11px}}@media (width<=1440px){.dashboard-grid-modern{grid-template-columns:260px 1fr 260px;gap:10px;padding:10px}.card-modern{border-radius:10px}.card-header-modern{padding:10px 12px}.card-body-modern{padding:12px}.icon-box-modern{width:32px;height:32px}.icon-box-modern svg{width:16px;height:16px}.card-title-modern{font-size:12px}.badge-modern{padding:4px 10px;font-size:10px}.stat-card-modern{padding:8px}.stat-value{font-size:16px}.stat-label{font-size:10px}.data-card-modern{padding:10px}.metrics-grid-compact{gap:8px}.metric-card-compact{padding:10px}}@media (width<=1366px){.dashboard-modern{min-height:100vh}.notification-bar-modern{height:32px}.notification-item-modern{font-size:11px}.card-modern{border-radius:8px}.card-body-modern{padding:10px}.card-title-modern{font-size:12px}.icon-box-modern{width:28px;height:28px}.icon-box-modern svg{width:14px;height:14px}.badge-modern{padding:3px 8px;font-size:10px}.stat-card-modern{padding:6px}.stat-value{font-size:15px}.stat-label{font-size:10px}.progress-modern,.progress-fill{height:6px}.video-card-modern{min-height:140px}.video-placeholder-modern{min-height:100px}.video-title-modern{font-size:11px}.video-meta-modern{font-size:10px}.dashboard-grid-modern{grid-template-columns:210px 1fr 210px;gap:8px;padding:8px}.dashboard-left-modern,.dashboard-right-modern{gap:8px}.card-header-modern,.card-body-modern{padding:8px 10px}.drone-card-metrics,.eco-monitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.water-monitor-stats{grid-template-columns:1fr}.map-stat-item-modern{min-width:44px;padding:7px 8px}.video-grid-modern{grid-template-columns:1fr}}.progress-chart-container{width:100%;height:100%;min-height:0}.progress-chart-tooltip{background:#fdfefefa!important;border:1px solid #94a3b838!important;border-radius:8px!important;padding:12px!important;box-shadow:0 8px 20px #0f172a1f!important}.progress-chart-tooltip .label{color:#64748b!important;margin-bottom:4px!important;font-size:11px!important}.progress-chart-tooltip .desc{color:#0f172a!important;font-size:12px!important;font-weight:600!important}.dashboard-modern{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.scrollbar-modern::-webkit-scrollbar{width:6px}.scrollbar-modern::-webkit-scrollbar-track{background:#f4f7fbeb;border-radius:3px}.scrollbar-modern::-webkit-scrollbar-thumb{background:#94a3b866;border-radius:3px;transition:background .2s}.scrollbar-modern::-webkit-scrollbar-thumb:hover{background:#64748b7a}.card-modern{transition:all .25s}.card-modern:hover{transform:translateY(-1px);box-shadow:0 12px 28px #0f172a1f}.btn-modern{transition:all .2s}.btn-modern:hover{transform:translateY(-1px)}.btn-modern:active{transform:translateY(0)}.data-card-modern{transition:all .2s}.data-card-modern:hover{background:#c5e9fd5c;border-color:#3b82f647}.metric-card-compact{transition:all .2s}.metric-card-compact:hover{background:#c5e9fd4d;border-color:#3b82f63d}.dashboard-modern{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;line-height:1.5}.card-title-modern{letter-spacing:.01em;font-size:14px;font-weight:600}.stat-value{letter-spacing:-.02em;font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;font-weight:700}.stat-label{font-size:12px;font-weight:400;line-height:1.4}.dashboard-left-modern>.card-modern,.dashboard-right-modern>.card-modern{margin-bottom:12px}.dashboard-left-modern>.card-modern:last-child,.dashboard-right-modern>.card-modern:last-child{margin-bottom:0}.card-body-modern{padding:16px}.card-header-modern{padding:12px 16px}table{border-collapse:collapse;width:100%}th{text-align:left;font-weight:500}td{font-weight:400}tbody tr{transition:background-color .15s}tbody tr:hover{background-color:#c5e9fd4d}.recharts-wrapper{font-family:inherit!important}.recharts-cartesian-axis-tick-value{fill:#64748b;font-size:11px}.recharts-legend-item-text{font-size:12px;color:#94a3b8!important}.animate-fade-in-up{animation:.4s ease-out forwards fadeInUp}.stagger-1{animation-delay:.1s}.stagger-2{animation-delay:.2s}.stagger-3{animation-delay:.3s}.stagger-4{animation-delay:.4s}.stagger-5{animation-delay:.5s}.video-card-modern{transition:all .2s}.video-card-modern:hover{transform:translateY(-2px);box-shadow:0 12px 28px #0f172a1f}.video-card-modern:active{transform:translateY(0)}.btn-modern:focus{outline:none;box-shadow:0 0 0 2px #3b82f638}select{cursor:pointer;transition:all .2s}select:hover{border-color:#3b82f652}select:focus{outline:none;box-shadow:0 0 0 2px #3b82f629}.data-card-modern{cursor:pointer;background:#fdfefef0;border:1px solid #94a3b829;border-radius:10px;padding:12px}.data-card-modern.active{background:#c5e9fd80;border-color:#3b82f647}.badge-modern{white-space:nowrap;border-radius:12px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-flex}.badge-modern.success{color:#10b981;background:#10b98126;border:1px solid #10b9813d}.badge-modern.warning{color:#f59e0b;background:#f59e0b24;border:1px solid #f59e0b38}.badge-modern.danger{color:#ef4444;background:#ef444424;border:1px solid #ef444438}.badge-modern.primary{color:#3b82f6;background:#c5e9fd94;border:1px solid #3b82f638}.badge-modern.pulse{animation:2s ease-in-out infinite badgePulse}@media (prefers-contrast:high){.card-modern,.badge-modern,.btn-modern{border-width:2px}}.dashboard-side-card{-webkit-backdrop-filter:blur(18px);background:linear-gradient(#ffffffd1 0%,#fafcffbd 100%);border:1px solid #ffffff9e;box-shadow:0 18px 36px #0f172a1a,inset 0 1px #ffffffbf}.dashboard-side-card:hover{transform:translateY(-2px);box-shadow:0 20px 44px #0f172a24,inset 0 1px #ffffffc7}.dashboard-side-card-header{background:linear-gradient(#ffffff94,#ffffff24);border-bottom:1px solid #94a3b81f;padding:14px 16px 12px}.dashboard-side-card-body{flex-direction:column;gap:14px;padding:14px 16px 16px;display:flex}.dashboard-side-chip{letter-spacing:.02em;white-space:nowrap;border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;min-height:28px;padding:0 12px;font-size:11px;font-weight:700;display:inline-flex}.dashboard-side-chip.danger{color:#dc2626;background:#fee2e2db;border-color:#ef444438}.command-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.command-summary-card{background:#ffffffb8;border:1px solid #94a3b829;border-radius:14px;flex-direction:column;gap:8px;min-height:94px;padding:12px;display:flex;position:relative;overflow:hidden}.command-summary-card:after{content:"";opacity:.12;border-radius:50%;width:64px;height:64px;position:absolute;inset:auto -12px -18px auto}.command-summary-card.primary:after{background:#3b82f6}.command-summary-card.success:after{background:#10b981}.command-summary-card.accent:after{background:#8b5cf6}.command-summary-head{color:#64748b;align-items:center;gap:6px;font-size:11px;font-weight:600;display:inline-flex}.command-summary-value{color:#0f172a;font-size:28px;font-weight:700;line-height:1;font-family:var(--font-display)}.command-summary-meta{color:#94a3b8;font-size:11px}.command-status-strip{background:linear-gradient(#f8fafce6,#ffffffb3);border:1px solid #94a3b824;border-radius:12px;padding:12px 14px}.command-status-label-row{justify-content:space-between;align-items:center;gap:10px;margin-bottom:8px;display:flex}.command-status-label{color:#64748b;font-size:11px}.command-status-value{color:#2563eb;font-size:12px;font-weight:700}.command-status-track{background:#94a3b826;border-radius:999px;height:6px;overflow:hidden}.command-status-fill{border-radius:inherit;background:linear-gradient(90deg,#22c55e,#3b82f6);height:100%}.command-roster-head,.hazard-list-head{color:#64748b;justify-content:space-between;align-items:center;gap:12px;font-size:11px;display:flex}.command-roster-head span:last-child,.hazard-list-head span:last-child{color:#94a3b8}.command-roster-list,.hazard-command-list{flex-direction:column;gap:10px;display:flex}.drone-status-card{background:linear-gradient(#ffffffeb,#f8fafce6);border:1px solid #94a3b824;border-radius:14px;align-items:flex-start;gap:12px;display:flex;box-shadow:inset 0 1px #fffc}.drone-status-card.active{background:linear-gradient(#eff8fff2,#e2f0ffe6);border-color:#3b82f63d;box-shadow:0 10px 24px #3b82f61f}.drone-card-icon-shell{color:#2563eb;background:linear-gradient(135deg,#dbeafef2,#eff6ffeb);border:1px solid #3b82f629;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex;box-shadow:0 10px 18px #3b82f61a}.drone-card-main{flex:1;min-width:0}.drone-card-title-row{flex-wrap:wrap;align-items:center;gap:8px;min-width:0;display:flex}.drone-card-subtitle{color:#94a3b8;font-size:10px}.drone-status-badge{flex-shrink:0}.drone-card-task-row{align-items:center;gap:8px;min-width:0;display:flex}.drone-card-task-label{color:#94a3b8;flex-shrink:0;font-size:10px}.dashboard-monitor-overview{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;display:grid}.dashboard-monitor-overview-item{background:#ffffffbd;border:1px solid #94a3b824;border-radius:12px;flex-direction:column;gap:4px;min-height:68px;padding:12px;display:flex}.dashboard-monitor-overview-item span{color:#64748b;font-size:11px}.dashboard-monitor-overview-item strong{color:#0f172a;font-size:20px;line-height:1.1;font-family:var(--font-display)}.eco-monitor-card-top,.water-monitor-stat-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.water-monitor-chip{border-radius:999px;justify-content:center;align-items:center;min-height:20px;padding:0 6px;font-size:10px;font-weight:700;display:inline-flex}.water-monitor-chip.is-danger{color:#dc2626;background:#ef44441f}.water-monitor-chip.is-warning{color:#b45309;background:#f59e0b24}.hazard-command-top{grid-template-columns:108px 1fr;align-items:stretch;gap:14px;display:grid}.hazard-donut-panel{justify-content:center;align-items:center;display:flex}.hazard-donut-shell{background:conic-gradient(#ef4444 0 72deg, #f59e0b 72deg 187.2deg, #3b82f6 187.2deg 360deg);border-radius:50%;width:104px;height:104px;position:relative;box-shadow:inset 0 0 0 1px #fff6,0 14px 28px #0f172a1a}.hazard-donut-shell:after{content:"";background:#ffffffeb;border:1px solid #94a3b81f;border-radius:50%;position:absolute;inset:16px}.hazard-donut-center{z-index:1;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.hazard-donut-center span{color:#64748b;font-size:11px}.hazard-donut-center strong{color:#0f172a;font-size:26px;line-height:1;font-family:var(--font-display)}.hazard-level-stack{flex-direction:column;justify-content:center;gap:10px;display:flex}.hazard-level-item{flex-direction:column;gap:6px;display:flex}.hazard-level-row{justify-content:space-between;align-items:center;gap:10px;display:flex}.hazard-level-label{font-size:11px;font-weight:700}.hazard-level-count{color:#0f172a;font-size:14px;font-weight:700;font-family:var(--font-display)}.hazard-level-track{background:#94a3b824;border-radius:999px;height:7px;overflow:hidden}.hazard-level-fill{border-radius:inherit;height:100%}.dashboard-alert-item{background:linear-gradient(#ffffffeb,#f8fafceb);border:1px solid #94a3b824;border-radius:14px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:12px;display:grid}.dashboard-alert-item.level-1{border-left:3px solid #ef4444}.dashboard-alert-item.level-2{border-left:3px solid #f59e0b}.dashboard-alert-item.level-3{border-left:3px solid #3b82f6}.dashboard-alert-item.ring-2{border-color:#3b82f647;box-shadow:0 0 0 2px #3b82f61f}.dashboard-alert-action{color:#64748b;flex-shrink:0;align-items:center;gap:4px;font-size:11px;font-weight:600;display:inline-flex}.dashboard-progress-select{color:#334155;background:#ffffffc7;border:1px solid #94a3b82e;border-radius:10px;min-width:88px;height:30px;padding:0 10px;font-size:12px}.dashboard-progress-chart-shell{background:linear-gradient(#ffffffb8,#f8fafce6);border:1px solid #94a3b824;border-radius:14px;padding:10px 10px 6px}.dashboard-progress-legend{flex-wrap:wrap;gap:8px 12px;display:flex}.dashboard-progress-legend-item{color:#475569;align-items:center;gap:6px;font-size:11px;display:inline-flex}.dashboard-progress-legend-item.muted{color:#64748b}.dashboard-progress-legend .dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.dashboard-progress-legend .line{background:#3b82f6;border-radius:999px;flex-shrink:0;width:18px;height:2px}.dashboard-progress-legend .line.dashed{background:linear-gradient(90deg,#3b82f640 50%,#0000 50%) 0 0/6px 2px}.dashboard-progress-table-wrap{background:#ffffffc7;border:1px solid #94a3b824;border-radius:12px;overflow:hidden}.dashboard-progress-table th,.dashboard-progress-table td{color:#475569;padding:10px 12px;font-size:11px}.dashboard-progress-table thead{background:#f8fafce6}.dashboard-progress-table th{color:#64748b;font-weight:700}.dashboard-progress-table tbody tr.active{background:#eff8ffe0}.dashboard-video-layout{grid-template-columns:1.2fr .9fr;gap:10px;display:grid}.dashboard-video-feature,.dashboard-video-secondary{border-radius:14px}.dashboard-video-feature-preview{min-height:196px}.dashboard-video-overlay-copy{color:#fff;background:linear-gradient(#0f172a0d,#0f172a94);border-radius:12px;flex-direction:column;gap:2px;padding:10px 12px;display:flex;position:absolute;bottom:14px;left:14px;right:14px}.dashboard-video-overlay-title{font-size:13px;font-weight:700}.dashboard-video-overlay-meta{color:#ffffffc7;font-size:11px}.dashboard-video-secondary-grid{grid-template-columns:1fr;gap:10px;display:grid}.text-tertiary{color:#94a3b8}@media (width<=1600px){.dashboard-side-card-header{padding:12px 14px 10px}.dashboard-side-card-body{gap:12px;padding:12px 14px 14px}.command-summary-grid,.dashboard-monitor-overview{gap:8px}}@media (width<=1366px){.command-summary-grid,.dashboard-monitor-overview,.hazard-command-top,.dashboard-video-layout{grid-template-columns:1fr}.hazard-donut-panel{justify-content:flex-start}.dashboard-video-feature-preview{min-height:156px}.dashboard-progress-table th,.dashboard-progress-table td{padding:8px 10px}}@media (width<=1200px){.command-summary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.dashboard-monitor-overview{grid-template-columns:repeat(2,minmax(0,1fr))}.drone-status-card{flex-direction:column}.drone-card-icon-shell{width:36px;height:36px}.dashboard-video-secondary-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=1024px){.dashboard-video-secondary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.command-summary-grid,.dashboard-monitor-overview,.dashboard-video-secondary-grid{grid-template-columns:1fr}.dashboard-progress-legend{gap:6px 10px}.hazard-command-top{gap:12px}}@media (width<=480px){.dashboard-side-card-header{flex-direction:column;align-items:flex-start}.dashboard-progress-table th,.dashboard-progress-table td{padding:7px 8px;font-size:10px}}.zone-planning-page{grid-template-columns:280px 1fr;gap:0;width:100%;height:100%;padding:0;display:grid;overflow:hidden}.zone-left-panel{background:var(--bg2);border-right:1px solid var(--border2);flex-direction:column;display:flex}.zone-left-panel .panel-header{border-bottom:1px solid var(--border2);background:#0003;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.zone-left-panel .panel-title{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.zone-left-panel .panel-body{flex:1;padding:8px;overflow-y:auto}.wbs-tree{padding:4px 0}.tree-node{cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:6px 8px;transition:all .2s;display:flex;position:relative}.tree-node.selected{background:#00d4ff33;border:1px solid #00d4ff4d}.tree-toggle{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:2px;display:flex}.tree-toggle:hover{color:var(--p);background:#00d4ff33}.tree-toggle-placeholder{width:18px}.tree-label{color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.tree-add-btn{opacity:0;color:var(--p);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:2px;transition:all .2s}.tree-node:hover .tree-add-btn{opacity:1}.tree-add-btn:hover{background:#00d4ff33}.tree-children{margin-left:0}.zone-center-panel{background:var(--bg1);flex-direction:column;display:flex;overflow:hidden}.map-toolbar{background:var(--bg2);border-bottom:1px solid var(--border2);align-items:center;gap:8px;padding:10px 16px;display:flex}.toolbar-btn{color:var(--text2);cursor:pointer;background:#00d4ff1a;border:1px solid #00d4ff4d;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:12px;transition:all .2s;display:flex}.toolbar-btn:hover{border-color:var(--p);background:#00d4ff33}.toolbar-btn.active{border-color:var(--p);color:var(--p);background:#00d4ff4d}.toolbar-divider{background:var(--border2);width:1px;height:24px;margin:0 8px}.toolbar-group{align-items:center;gap:6px;display:flex}.gis-map-container{background:#0a1628;flex:1;position:relative;overflow:hidden}.map-layer{opacity:0;z-index:1;transition:opacity .3s;position:absolute;inset:0}.map-tile{object-fit:cover;width:100%;height:100%}.map-tile-overlay{pointer-events:none;background:linear-gradient(#0014284d 0%,#0000 50%,#00142880 100%);position:absolute;inset:0}.map-grid-overlay{pointer-events:none;z-index:2;position:absolute;inset:0}.grid-svg{width:100%;height:100%}.zone-boundary-overlay{position:absolute;inset:0}.boundary-svg{width:100%;height:100%}.zone-polygon{animation:2s ease-in-out infinite pulse}.vertex{animation:1.5s ease-in-out infinite vertexPulse}.vertex:nth-child(2){animation-delay:.1s}.vertex:nth-child(3){animation-delay:.2s}.vertex:nth-child(4){animation-delay:.3s}.vertex:nth-child(5){animation-delay:.4s}.vertex:nth-child(6){animation-delay:.5s}.vertex:nth-child(7){animation-delay:.6s}@keyframes vertexPulse{0%,to{r:1.5;opacity:.8}50%{r:2.5;opacity:1}}.zone-label{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.zone-label-content{border:1px solid var(--p);color:var(--p);white-space:nowrap;background:#001428e6;border-radius:4px;align-items:center;gap:4px;padding:6px 10px;font-size:11px;font-weight:500;display:flex;box-shadow:0 2px 8px #00000080}.map-controls{flex-direction:column;gap:8px;display:flex;position:absolute;top:16px;right:16px}.map-control-btn{border:1px solid var(--border2);width:36px;height:36px;color:var(--text2);cursor:pointer;background:#001428e6;border-radius:6px;justify-content:center;align-items:center;transition:all .2s;display:flex}.map-control-btn:hover{border-color:var(--p);color:var(--p);background:#00d4ff33}.map-info-bar{border:1px solid var(--border2);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#001428e6;border-radius:6px;align-items:center;gap:16px;padding:8px 16px;display:flex;position:absolute;bottom:16px;left:16px}.map-info-item{color:var(--text2);align-items:center;gap:6px;font-size:11px;display:flex}.map-info-item.active{color:var(--p)}.draw-hint{pointer-events:none;position:absolute;top:16px;left:50%;transform:translate(-50%)}.draw-hint-content{border:1px solid var(--p);color:var(--p);background:#00d4ff33;border-radius:20px;padding:8px 16px;font-size:12px;font-weight:500;animation:1.5s ease-in-out infinite hintPulse}@keyframes hintPulse{0%,to{opacity:.8}50%{opacity:1}}.bim-model-layer{pointer-events:none;z-index:5;position:absolute;inset:0}.bim-model-svg{width:100%;height:100%}.road-glow{filter:drop-shadow(0 0 3px #00e676cc);animation:2s ease-in-out infinite roadGlow}.road-dashed{animation:1s linear infinite dashMove}@keyframes dashMove{to{stroke-dashoffset:-5px}}.bridge-model{animation:3s ease-in-out infinite bridgeFloat}@keyframes bridgeFloat{0%,to{transform:translate(65px,35px)translateY(0)}50%{transform:translate(65px,35px)translateY(-1px)}}.slope-model{animation:4s ease-in-out infinite slopePulse}@keyframes slopePulse{0%,to{opacity:.6}50%{opacity:.8}}.facility-point{animation:2s ease-in-out infinite facilityBlink}.facility-point:nth-child(2){animation-delay:.3s}.facility-point:nth-child(3){animation-delay:.6s}@keyframes facilityBlink{0%,to{opacity:.5;r:1.5}50%{opacity:1;r:2}}.bim-label{pointer-events:none;position:absolute;transform:translate(-50%,-50%)}.bim-label-text{color:var(--p);white-space:nowrap;background:#001428e6;border:1px solid #00c8ff80;border-radius:4px;padding:4px 8px;font-size:10px}.view-3d-badge{border:1px solid var(--p);color:var(--p);z-index:6;background:#001428e6;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:11px;display:flex;position:absolute;top:16px;left:16px}.drawing-layer{z-index:10;width:100%;height:100%;position:absolute;inset:0}.saved-boundary{cursor:pointer}.saved-boundary:hover rect,.saved-boundary:hover polygon{fill:#00c8ff33!important;stroke-width:.5px!important}.drawing-rect{pointer-events:none}.polygon-controls{border:1px solid var(--p);z-index:20;background:#001428f2;border-radius:8px;flex-direction:column;align-items:center;gap:8px;padding:12px 20px;display:flex;position:absolute;top:16px;left:50%;transform:translate(-50%)}.polygon-hint{color:var(--text);font-size:12px}.polygon-btns{gap:8px;display:flex}.polygon-btn{cursor:pointer;border:none;border-radius:4px;padding:6px 16px;font-size:12px;transition:all .2s}.polygon-btn.cancel{color:var(--text2);background:#6464644d}.polygon-btn.cancel:hover{background:#64646480}.polygon-btn.complete{color:var(--p);background:#00d4ff4d}.polygon-btn.complete:hover:not(:disabled){background:#00d4ff80}.polygon-btn:disabled{opacity:.5;cursor:not-allowed}.boundaries-list{z-index:20;border:1px solid var(--border2);background:#001428f2;border-radius:8px;width:220px;max-height:200px;padding:12px;position:absolute;bottom:80px;right:16px;overflow-y:auto}.boundaries-header{border-bottom:1px solid var(--border2);color:var(--text);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;font-size:12px;font-weight:600;display:flex}.save-all-btn{border:1px solid var(--p);color:var(--p);cursor:pointer;background:#00d4ff33;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:10px;transition:all .2s;display:flex}.save-all-btn:hover{background:#00d4ff4d}.boundary-item{background:#0003;border-radius:4px;align-items:center;gap:8px;margin-bottom:6px;padding:8px;font-size:11px;display:flex}.boundary-type{color:var(--p);background:#00d4ff33;border-radius:3px;padding:2px 6px;font-weight:500}.boundary-info{color:var(--text2);flex:1}.boundary-delete{color:#f44336;cursor:pointer;background:#f4433633;border:none;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;transition:all .2s;display:flex}.boundary-delete:hover{background:#f4433666}.zone-right-panel{background:var(--bg2);border-left:1px solid var(--border2);flex-direction:column;grid-column:3;display:flex}.zone-right-panel .panel-header{border-bottom:1px solid var(--border2);background:#0003;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.zone-right-panel .panel-title{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.zone-right-panel .panel-body{flex:1;padding:16px;overflow-y:auto}.form-group input{background:var(--bg1);border:1px solid var(--border2);width:100%;color:var(--text);border-radius:6px;padding:8px 12px;font-size:13px;transition:all .2s}.form-group input:focus{border-color:var(--p);outline:none;box-shadow:0 0 0 2px #00d4ff1a}.form-group input[readOnly]{opacity:.7;cursor:not-allowed}.file-upload:hover{border-color:var(--p);background:#00d4ff0d}.form-actions{border-top:1px solid var(--border2);gap:12px;padding-top:16px;display:flex}.form-actions .btn{flex:1;padding:10px 16px;font-size:13px}@media (width<=1400px){.zone-planning-page{grid-template-columns:240px 1fr}}@media (width<=1200px){.zone-planning-page{grid-template-columns:220px 1fr}}.popup-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.popup-container{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;flex-direction:column;width:90%;max-width:520px;max-height:85vh;animation:.3s ease-out slideUp;display:flex;box-shadow:0 20px 60px #00000080}.popup-header{border-bottom:1px solid var(--border2);background:#0003;border-radius:12px 12px 0 0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.popup-title{color:var(--text);align-items:center;gap:10px;font-size:15px;font-weight:600;display:flex}.popup-title svg{color:var(--p)}.popup-close-btn{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:6px;transition:all .2s;display:flex}.popup-close-btn:hover{color:#ff3838;background:#ff383826}.popup-body{flex:1;padding:20px;overflow-y:auto}.popup-footer{border-top:1px solid var(--border2);background:#0000001a;border-radius:0 0 12px 12px;justify-content:center;padding:16px 20px;display:flex}.popup-footer .btn{min-width:140px;padding:12px 24px;font-size:14px;font-weight:500;transition:all .2s}.popup-footer .btn:active{transform:scale(.97)}.baseline-form{flex-direction:column;gap:16px;display:flex}.form-section{border:1px solid var(--border2);background:#0003;border-radius:8px;padding:14px}.form-section-title{color:var(--p);border-bottom:1px solid var(--border2);align-items:center;gap:6px;margin-bottom:12px;padding-bottom:8px;font-size:13px;font-weight:600;display:flex}.form-group input,.form-group textarea{background:var(--bg1);border:1px solid var(--border2);width:100%;color:var(--text);border-radius:6px;padding:10px 12px;font-family:inherit;font-size:13px;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:var(--p);outline:none;box-shadow:0 0 0 2px #00d4ff26}.form-group input.readonly,.form-group textarea.readonly{opacity:.7;cursor:not-allowed;background:#0000004d}.form-group input[type=date]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}.form-group textarea{resize:vertical;min-height:80px}.file-upload{background:var(--bg1);border:2px dashed var(--border2);cursor:pointer;color:var(--text3);border-radius:8px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:24px;transition:all .2s;display:flex}.file-upload:hover{border-color:var(--p);color:var(--p);background:#00d4ff0d}.file-upload span{font-size:13px}.file-hint{opacity:.6;font-size:11px!important}.file-selected{color:var(--p);background:#00d4ff1a;border:1px solid #00d4ff4d;border-radius:6px;align-items:center;gap:8px;margin-top:8px;padding:10px 12px;font-size:12px;display:flex}.file-selected span{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.file-remove{color:#f44336;cursor:pointer;background:#f4433633;border:none;border-radius:4px;justify-content:center;align-items:center;width:22px;height:22px;transition:all .2s;display:flex}.file-remove:hover{background:#f4433666}.file-display{background:#0003;border-radius:6px;padding:12px}.no-file{color:var(--text3);font-size:12px;font-style:italic}.btn-p:hover{background:#00b8e6;box-shadow:0 4px 12px #00d4ff4d}.btn-p:active{transform:scale(.97)}.btn-default{border:1px solid var(--border2);color:var(--text);background:#ffffff1a}.btn-default:hover{background:#fff3}.task-planning-page{grid-template-columns:300px 1fr;gap:0;width:100%;height:100%;padding:0;display:grid;position:relative;overflow:hidden}.task-left-panel{background:var(--bg2);border-right:1px solid var(--border2);flex-direction:column;display:flex}.task-left-panel .panel-header{border-bottom:1px solid var(--border2);background:#fffffff5;justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.task-left-panel .panel-title{color:var(--text);align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.task-left-panel .panel-body{flex-direction:column;flex:1;gap:20px;padding:16px;display:flex;overflow-y:auto}.zone-list{background:#fdfefef5;border:1px solid #94a3b838;border-radius:8px;overflow:hidden}.zone-list-title{color:var(--text2);border-bottom:1px solid var(--border2);background:#f4f7fbeb;padding:10px 12px;font-size:12px}.zone-item{cursor:pointer;border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;padding:12px;transition:all .2s;display:flex}.zone-item:last-child{border-bottom:none}.zone-item:hover{background:#c5e9fd85}.zone-item.selected{border-left:3px solid var(--p);background:#c5e9fdd1}.zone-info{color:var(--p);align-items:center;gap:8px;display:flex}.zone-name{color:var(--text);font-size:13px}.zone-meta{color:var(--text2);align-items:center;gap:6px;font-size:11px;display:flex}.task-list-section{flex-direction:column;flex:1;gap:10px;min-height:0;display:flex}.task-list-header{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.task-cards-list{flex-direction:column;flex:1;gap:10px;display:flex;overflow-y:auto}.task-card-item:hover{background:#eff8fff5;border-color:#3b82f647}.task-card-item.selected{border-color:var(--p);background:#c5e9fdb3}.task-id{color:var(--text2);font-size:11px}.badge{border-radius:4px;padding:2px 8px;font-size:10px;font-weight:500}.task-tag{color:var(--p);background:#00d4ff1a;border:1px solid #00d4ff4d;border-radius:4px;padding:2px 8px;font-size:10px}.progress-fill{background:var(--p);border-radius:2px;height:100%;transition:width .3s}.progress-text{color:var(--text3);text-align:right;min-width:32px;font-size:11px}.empty-task{color:var(--text3);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:40px 20px;display:flex}.point-flight-entry{width:100%;color:var(--p2);cursor:pointer;background:linear-gradient(135deg,#c5e9fdeb,#eff8fffa);border:1px solid #3b82f63d;border-radius:10px;align-items:center;gap:10px;padding:12px;transition:all .2s;display:flex;box-shadow:0 12px 22px #3b82f61f}.point-flight-entry:hover{transform:translateY(-1px);box-shadow:0 14px 28px #3b82f62e}.point-flight-entry-text{text-align:left;flex-direction:column;align-items:flex-start;gap:3px;display:flex}.point-flight-entry-text strong{color:var(--p2);font-size:13px}.point-flight-entry-text span{color:var(--text2);font-size:11px}.point-flight-hint{color:var(--p2);background:#c5e9fde0;border:1px solid #3b82f633;border-radius:999px;align-items:center;padding:4px 10px;font-size:11px;font-weight:600;display:inline-flex}.task-center-panel{background:var(--bg1);flex-direction:column;display:flex;overflow:hidden}.map-section{border-bottom:1px solid var(--border2);flex-direction:column;flex:1;min-height:0;display:flex}.map-header{background:var(--bg2);border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.map-header-left{align-items:center;gap:16px;display:flex}.map-header-tools{align-items:center;gap:6px;display:flex}.map-tool-btn{width:28px;height:28px;color:var(--text2);cursor:pointer;background:#00d4ff1a;border:1px solid #00d4ff33;border-radius:4px;justify-content:center;align-items:center;transition:all .2s;display:flex}.map-tool-btn:hover{border-color:var(--p);background:#00d4ff33}.map-tool-btn.active{border-color:var(--p);color:var(--p);background:#00d4ff4d}.map-content{background:#0a1628;flex:1;position:relative;overflow:hidden}.task-map-layer{opacity:0;transition:opacity .3s;position:absolute;inset:0}.task-map-layer.active{opacity:1}.task-map-tile{object-fit:cover;width:100%;height:100%}.task-map-overlay{pointer-events:none;background:linear-gradient(#00142833 0%,#0000 50%,#0014284d 100%);position:absolute;inset:0}.task-map-grid{pointer-events:none;position:absolute;inset:0}.task-zone-overlay{position:absolute;inset:0}.task-zone-svg{width:100%;height:100%}.task-zone-label{color:var(--p2);background:#fdfefef5;border:1px solid #3b82f64d;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:10px;font-weight:600;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 18px #0f172a1f}.route-overlay{position:absolute;inset:0}.route-svg{width:100%;height:100%}.route-path{animation:20s linear infinite dash}@keyframes dash{to{stroke-dashoffset:-120px}}.waypoint{animation:1.5s ease-in-out infinite waypointPulse}.waypoint:nth-child(2){animation-delay:.1s}.waypoint:nth-child(3){animation-delay:.2s}.waypoint:nth-child(4){animation-delay:.3s}.waypoint:nth-child(5){animation-delay:.4s}.waypoint:nth-child(6){animation-delay:.5s}@keyframes waypointPulse{0%,to{opacity:.6;r:1.2}50%{opacity:1;r:1.8}}.uav-position{animation:2s ease-in-out infinite uavPulse}@keyframes uavPulse{0%,to{opacity:.8}50%{opacity:1}}.uav-ring{animation:2s ease-out infinite ringExpand}@keyframes ringExpand{0%{r:2.5;opacity:1}to{r:8;opacity:0}}.route-info{background:#fdfefef5;border:1px solid #3b82f63d;border-radius:6px;flex-direction:column;gap:4px;padding:8px 12px;display:flex;position:absolute;bottom:40px;left:16px;box-shadow:0 12px 28px #0f172a24}.route-info-item{color:var(--text);align-items:center;gap:6px;font-size:11px;display:flex}.task-map-controls{flex-direction:column;gap:6px;display:flex;position:absolute;top:12px;right:12px}.task-map-control-btn{width:32px;height:32px;color:var(--text);cursor:pointer;background:#fdfefef5;border:1px solid #94a3b838;border-radius:4px;justify-content:center;align-items:center;transition:all .2s;display:flex;box-shadow:0 10px 18px #0f172a1a}.task-map-control-btn:hover{border-color:var(--p);color:var(--p2);background:#c5e9fdb3}.task-map-info{color:var(--text2);background:#fdfefef5;border:1px solid #94a3b838;border-radius:4px;align-items:center;gap:16px;padding:6px 12px;font-size:10px;display:flex;position:absolute;bottom:12px;left:12px;box-shadow:0 10px 20px #0f172a1f}.map-placeholder{color:var(--text3);background:linear-gradient(135deg,#001428cc 0%,#00285066 100%);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:absolute;inset:0}.map-placeholder span{font-size:16px}.map-placeholder p{opacity:.7;font-size:13px}.gantt-section{background:var(--bg2);flex-direction:column;height:200px;display:flex}.gantt-header{color:var(--text);border-bottom:1px solid var(--border2);align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;display:flex}.gantt-content{flex:1;padding:12px 16px;overflow:auto}.gantt-placeholder{color:var(--text3);flex-direction:column;align-items:center;gap:8px;font-size:13px;display:flex}.gantt-time-slot{text-align:center;color:var(--text2);flex:1;font-size:10px}.gantt-row-label{width:80px;color:var(--text2);font-size:11px;font-weight:500}.gantt-task-bar{border:1px solid var(--p);color:#fff;white-space:nowrap;background:linear-gradient(90deg,#00d4ff99,#00d4ff4d);border-radius:3px;align-items:center;padding:0 6px;font-size:9px;display:flex;position:absolute;top:4px;bottom:4px;overflow:hidden}.gantt-task-bar.warning{background:linear-gradient(90deg,#ffc10799,#ffc1074d);border-color:#ffc107}.gantt-task-bar.conflict{background:linear-gradient(90deg,#f4433699,#f443364d);border-color:#f44336;align-items:center;gap:4px;display:flex}.gantt-legend{border-top:1px solid var(--border2);color:var(--text2);align-items:center;gap:16px;padding-top:8px;font-size:10px;display:flex}.task-right-panel{z-index:100;background:#fdfefefa;border-left:1px solid #94a3b838;flex-direction:column;width:420px;transition:transform .3s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-10px 0 28px #0f172a1f}.drawer-header{border-bottom:1px solid var(--border2);background:#f4f7fbf5;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.drawer-title{color:var(--text);font-size:15px;font-weight:600}.btn-close{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;padding:4px;display:flex}.btn-close:hover{color:#ff3838;background:#ff383833}.drawer-tabs{background:var(--bg1);border-bottom:1px solid var(--border2);padding:0 12px;display:flex}.tab-btn{color:var(--text3);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:6px;padding:12px 16px;font-size:12px;transition:all .2s;display:flex}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--p);border-bottom-color:var(--p)}.drawer-body{flex:1;padding:16px;overflow-y:auto}.drawer-body-new{flex-direction:column;flex:1;gap:12px;padding:16px;display:flex;overflow-y:auto}.tab-content{flex-direction:column;gap:16px;display:flex}.form-section{background:#fdfefefa;border:1px solid #94a3b838;border-radius:8px;padding:16px;box-shadow:0 10px 20px #0f172a0d}.form-section-header{justify-content:space-between;align-items:center;display:flex}.form-section-title{color:var(--p);align-items:center;gap:6px;margin-bottom:12px;font-size:13px;font-weight:600;display:flex}.form-group label{color:var(--text2);margin-bottom:6px;font-size:12px;display:block}.form-group input,.form-group select{background:var(--bg1);border:1px solid var(--border2);width:100%;color:var(--text);border-radius:6px;padding:8px 12px;font-size:13px;transition:all .2s}.form-group input:focus,.form-group select:focus{border-color:var(--p);outline:none}.form-group input.readonly{opacity:.7;cursor:not-allowed}.form-hint{color:var(--text2);margin-top:4px;font-size:11px;display:block}.tag-selector{grid-template-columns:1fr 1fr;gap:8px;display:grid}.tag-option{background:var(--bg1);border:1px solid var(--border2);cursor:pointer;color:var(--text2);border-radius:6px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;transition:all .2s;display:flex}.tag-option input{display:none}.tag-option:hover{border-color:var(--tag-color)}.tag-option.selected{border-color:var(--tag-color);color:var(--tag-color);background:#00d4ff1a}.radio-group{gap:12px;display:flex}.radio-option{background:var(--bg1);border:1px solid var(--border2);cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:8px;padding:10px;font-size:13px;transition:all .2s;display:flex}.radio-option input{display:none}.radio-option:hover{border-color:var(--p)}.radio-option.selected{border-color:var(--p);color:var(--p);background:#00d4ff1a}.frequency-selector select{width:100%}.cron-preview{background:var(--bg1);border-radius:6px;align-items:center;gap:8px;margin-top:12px;padding:10px;font-size:12px;display:flex}.cron-label{color:var(--text3)}.cron-preview code{color:var(--p);font-family:monospace}.device-selector{flex-direction:column;gap:8px;display:flex}.device-option{background:var(--bg1);border:1px solid var(--border2);cursor:pointer;border-radius:6px;align-items:center;gap:12px;padding:12px;transition:all .2s;display:flex}.device-option input{display:none}.device-option:hover{border-color:#00d4ff66}.device-option.selected{border-color:var(--p);background:#00d4ff1a}.device-info{flex-direction:column;gap:4px;display:flex}.device-name{color:var(--text);font-size:13px}.device-meta{color:var(--text3);align-items:center;gap:4px;font-size:11px;display:flex}.route-selector select{width:100%}.ai-model-selector{flex-direction:column;gap:8px;display:flex}.ai-model-option{background:var(--bg1);border:1px solid var(--border2);cursor:pointer;border-radius:6px;align-items:center;gap:10px;padding:10px 12px;font-size:12px;transition:all .2s;display:flex}.ai-model-option input{display:none}.ai-model-option:hover{border-color:#00d4ff66}.ai-model-option.selected{border-color:var(--p);color:var(--p);background:#00d4ff1a}.empty-ai-models{color:#ff9f43;background:#ff9f431a;border:1px solid #ff9f434d;border-radius:6px;align-items:center;gap:8px;padding:16px;font-size:12px;display:flex}.toggle-switch{width:44px;height:24px;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{cursor:pointer;border:1px solid var(--border2);background:#ffffff1a;border-radius:12px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background:var(--text3);border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:2px;left:2px}.toggle-switch input:checked+.toggle-slider{border-color:var(--p);background:#00d4ff4d}.toggle-switch input:checked+.toggle-slider:before{background:var(--p);transform:translate(20px)}.ai-info{background:#00d4ff1a;border:1px solid #00d4ff4d;border-radius:8px;gap:12px;margin-top:12px;padding:14px;display:flex}.ai-info-icon{color:var(--p);align-items:flex-start;display:flex}.ai-info-text{color:var(--text2);font-size:12px}.ai-info-text strong{color:var(--text)}.ai-info-text p{margin:6px 0}.ai-info-text ul{margin:0;padding:0;list-style:none}.ai-info-text li{color:var(--p);padding:2px 0}.drawer-footer{border-top:1px solid var(--border2);background:#f4f7fbf5;gap:12px;padding:16px 20px;display:flex}.drawer-footer .btn{flex:1;padding:10px 16px}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-p:hover:not(:disabled){background:linear-gradient(135deg,#4f8df5,#2563eb)}.btn-default{color:var(--text);background:#fdfefef5;border:1px solid #94a3b838}.btn-default:hover:not(:disabled){background:#eff8fff5}.map-content.manual-route-mode{cursor:crosshair}.manual-route-overlay{pointer-events:none}.manual-route-info{border-color:#3b82f647}.manual-waypoint-group .waypoint{animation:none}.waypoint-label{fill:var(--p2);pointer-events:none;font-size:1.1px;font-weight:700}.manual-waypoint-section{background:#eff8fff5;border:1px solid #3b82f62e;border-radius:8px;margin-top:12px;padding:12px}.manual-waypoint-header{color:var(--text);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.manual-waypoint-count{color:var(--p);font-size:11px}.manual-waypoint-empty{color:var(--text3);text-align:center;background:#00d4ff0f;border:1px dashed #3b82f63d;border-radius:6px;padding:12px;font-size:12px}.manual-waypoint-list{flex-direction:column;gap:8px;display:flex}.manual-waypoint-item{background:var(--bg1);border:1px solid var(--border2);border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:10px;display:grid}.manual-waypoint-badge{width:24px;height:24px;color:var(--p);background:#00d4ff24;border-radius:50%;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.manual-waypoint-fields{flex-direction:column;gap:6px;display:flex}.manual-waypoint-fields input{width:100%}.manual-waypoint-meta{color:var(--text3);flex-wrap:wrap;gap:12px;font-size:11px;display:flex}.manual-waypoint-remove{color:#ff6b6b;cursor:pointer;background:#ff383814;border:1px solid #ff383847;border-radius:6px;justify-content:center;align-items:center;width:30px;height:30px;transition:all .2s;display:flex}.manual-waypoint-remove:hover{background:#ff383829;border-color:#ff383870}@media (width<=1200px){.task-planning-page{grid-template-columns:260px 1fr}.task-right-panel{width:100%;max-width:400px}}@media (width<=900px){.task-planning-page{grid-template-columns:1fr}.task-left-panel{display:none}}.baseline-test{padding:8px}.mode-tabs{gap:8px;margin-bottom:16px;display:flex}.mode-tabs .tab{color:#94a3b8;cursor:pointer;background:#0000004d;border:1px solid #00d4ff33;border-radius:8px;flex-direction:column;flex:1;align-items:center;gap:2px;padding:10px 8px;font-size:13px;transition:all .2s;display:flex}.mode-tabs .tab small{opacity:.7;font-size:10px}.mode-tabs .tab.active{color:#00d4ff;background:#00d4ff26;border-color:#00d4ff}.quick-form{flex-direction:column;gap:12px;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field{flex-direction:column;gap:4px;display:flex}.field label{color:#94a3b8;font-size:12px}.field input{color:#f8fafc;background:#0000004d;border:1px solid #00d4ff33;border-radius:6px;height:34px;padding:0 10px;font-size:13px}.field input:focus{border-color:#00d4ff;outline:none}.field input::placeholder{color:#64748b}.field-hint{color:#64748b;font-size:11px}.detailed-form{flex-direction:column;gap:12px;display:flex}.download-section{background:linear-gradient(135deg,#00d4ff1a,#00b8e60d);border:1px solid #00d4ff4d;border-radius:10px;justify-content:space-between;align-items:center;padding:14px;display:flex}.download-info{color:#00d4ff;align-items:center;gap:12px;display:flex}.download-title{color:#f8fafc;font-size:14px;font-weight:600}.download-desc{color:#94a3b8;font-size:12px}.download-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#00b8e6,#00d4ff);border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.download-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00d4ff4d}.upload-box{cursor:pointer;color:#64748b;border:2px dashed #00d4ff4d;border-radius:10px;flex-direction:column;justify-content:center;align-items:center;gap:8px;padding:40px 20px;transition:all .2s;display:flex}.upload-box:hover{background:#00d4ff0d;border-color:#00d4ff}.upload-box p{color:#f8fafc;margin:0;font-size:14px}.upload-box small{font-size:12px}.uploading-state{color:#94a3b8;flex-direction:column;align-items:center;gap:12px;display:flex}.spinner{border:2px solid #00d4ff33;border-top-color:#00d4ff;border-radius:50%;width:24px;height:24px;animation:1s linear infinite spin}.result-box{background:#0000004d;border:1px solid #00d4ff33;border-radius:10px;overflow:hidden}.result-header{color:#00e676;background:#00e6761a;border-bottom:1px solid #00e67633;align-items:center;gap:8px;padding:12px;font-size:13px;font-weight:500;display:flex}.reset-btn{color:#ef4444;cursor:pointer;background:0 0;border:1px solid #ef444480;border-radius:4px;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:11px;transition:all .2s;display:flex}.reset-btn:hover{background:#ef44441a}.summary-grid{grid-template-columns:repeat(3,1fr);gap:10px;padding:12px;display:grid}.summary-item{color:#00d4ff;background:#0000004d;border-radius:8px;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;display:flex}.summary-item .value{font-family:Orbitron,sans-serif;font-size:20px;font-weight:700}.summary-item .label{color:#64748b;text-align:center;font-size:10px}.tasks-list{border-top:1px solid #00d4ff1a;padding:12px}.tasks-list h4{color:#94a3b8;margin:0 0 10px;font-size:12px;font-weight:500}.tasks-table{border:1px solid #00d4ff1a;border-radius:6px;max-height:180px;overflow-y:auto}.tasks-table table{border-collapse:collapse;width:100%;font-size:11px}.tasks-table th,.tasks-table td{text-align:left;border-bottom:1px solid #00d4ff1a;padding:8px 10px}.tasks-table th{color:#00d4ff;background:#00d4ff1a;font-weight:500;position:sticky;top:0}.tasks-table td{color:#94a3b8}.tasks-table tr:hover td{background:#00d4ff0d}.save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#00b8e6,#00d4ff);border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;width:100%;margin-top:16px;padding:10px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.save-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #00d4ff4d}.save-btn:disabled{opacity:.5;cursor:not-allowed}@media (width<=480px){.form-row,.summary-grid{grid-template-columns:1fr}.download-section{text-align:center;flex-direction:column;gap:12px}}.inspection-planning-center{background:linear-gradient(180deg, var(--bg0) 0%, var(--bg1) 100%);flex-direction:column;height:100%;display:flex;overflow:hidden}.center-header{border-bottom:1px solid var(--border);background:#fdfefef2;justify-content:space-between;align-items:center;padding:14px 20px;display:flex;box-shadow:0 10px 24px #0f172a0f}.header-left,.header-right{align-items:center;gap:16px;display:flex}.header-title{color:var(--p2);align-items:center;gap:10px;display:flex}.header-title h1{color:var(--p2);margin:0;font-size:20px;font-weight:700}.header-tabs,.view-switcher{background:linear-gradient(135deg,#3b82f6,#2563eb);border-radius:14px;gap:6px;padding:6px;display:flex;box-shadow:0 12px 28px #2563eb2e}.header-tab,.view-btn{color:#fff;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:8px;font-weight:600;transition:all .2s;display:inline-flex}.header-tab{padding:10px 18px;font-size:13px}.view-btn{padding:8px 14px;font-size:12px}.header-tab:hover,.view-btn:hover{background:#ffffff29}.header-tab.active,.view-btn.active{background:#ffffff38;border-color:#ffffff57;box-shadow:inset 0 1px #ffffff29}.zone-content,.task-content{flex:1;min-height:0;display:flex;overflow:hidden}.task-content{position:relative}.zone-left-panel,.task-left-panel,.zone-right-panel,.task-right-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fdfefef0}.zone-left-panel,.task-left-panel{border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;width:320px;min-height:0;display:flex}.zone-right-panel{opacity:0;border-left:1px solid var(--border);flex-direction:column;flex-shrink:0;width:0;min-height:0;transition:width .25s,opacity .25s;display:flex}.zone-right-panel.open{opacity:1;width:380px}.task-right-panel{border-left:1px solid var(--border);z-index:50;flex-direction:column;width:420px;transition:transform .25s;display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%);box-shadow:-18px 0 40px #0f172a1f}.task-right-panel.open{transform:translate(0)}.panel-header,.drawer-header,.modal-header{border-bottom:1px solid var(--border2);background:#f4f7fbeb;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.panel-title,.drawer-title,.modal-header h3{color:var(--text);align-items:center;gap:8px;margin:0;font-size:14px;font-weight:700;display:flex}.panel-title svg,.drawer-title svg,.modal-header h3 svg,.form-section-title svg,.collapse-title svg{color:var(--p)}.panel-body,.drawer-body,.modal-body{flex:1;min-height:0;padding:14px;overflow-y:auto}.task-left-panel .panel-body{flex-direction:column;gap:14px;display:flex}.panel-footer,.drawer-footer,.modal-footer{border-top:1px solid var(--border2);background:#f4f7fbeb;gap:12px;padding:14px 16px;display:flex}.drawer-footer .btn,.zone-right-panel .panel-footer .btn,.modal-footer .btn{flex:1}.btn{cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .2s;display:inline-flex}.btn-sm{padding:7px 12px;font-size:12px}.btn-xs{padding:6px 10px;font-size:11px}.btn-p{background:linear-gradient(135deg, var(--p), var(--p2));color:#fff;box-shadow:0 10px 20px #3b82f629}.btn-default{color:var(--text2);border:1px solid var(--border);background:#c5e9fd52}.btn-default:hover,.toolbar-btn:hover,.tree-node:hover,.map-tool-btn:hover,.task-map-control-btn:hover,.map-control-btn:hover,.tree-action-btn:hover,.task-action-btn:hover,.radio-option:hover,.ai-model-option:hover,.file-upload:hover,.upload-dropzone:hover,.collapse-header:hover,.modal-close:hover,.btn-close:hover,.panel-close:hover,.drawer-close:hover{color:var(--p2);background:#c5e9fd80;border-color:#3b82f652}.wbs-tree,.task-tree-section,.task-list-section,.point-flight-tips,.form-section,.form-collapse-section,.zone-list,.file-info,.manual-waypoint-section,.gantt-content,.upload-dropzone,.file-upload{background:var(--card);border:1px solid var(--border);border-radius:14px}.wbs-tree,.task-wbs-tree{padding:8px}.zone-list-title,.task-list-header{color:var(--text2);justify-content:space-between;align-items:center;padding:12px 14px;font-size:12px;font-weight:700;display:flex}.task-list-section{flex-direction:column;flex:1;min-height:0;display:flex}.task-list-actions{gap:8px;display:flex}.task-cards-list{flex-direction:column;flex:1;gap:10px;min-height:0;padding:0 12px 12px;display:flex;overflow-y:auto}.tree-node-container{-webkit-user-select:none;user-select:none}.tree-node{border:1px solid #0000;border-radius:10px;align-items:center;gap:4px;min-height:42px;transition:all .2s;display:flex}.tree-node.selected{background:linear-gradient(135deg,#c5e9fddb,#eff8fff5);border-color:#3b82f647;box-shadow:0 10px 22px #3b82f61f}.tree-node-content{cursor:pointer;flex:1;align-items:center;gap:8px;min-width:0;display:flex}.tree-toggle,.tree-action-btn,.task-action-btn,.map-tool-btn,.task-map-control-btn,.map-control-btn,.modal-close,.btn-close,.panel-close,.drawer-close{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#fdfefeeb;justify-content:center;align-items:center;transition:all .2s;display:inline-flex}.tree-toggle{border-radius:6px;width:24px;height:24px}.tree-toggle-placeholder{flex-shrink:0;width:24px}.tree-icon{color:var(--p);align-items:center;display:flex}.tree-label{min-width:0;color:var(--text);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:13px;overflow:hidden}.tree-node-actions,.task-card-actions{gap:6px;display:flex}.tree-node-actions{opacity:0}.tree-node:hover .tree-node-actions{opacity:1}.tree-action-btn,.task-action-btn{border-radius:8px;width:28px;height:28px}.tree-action-btn.delete:hover,.task-action-btn.delete:hover{color:var(--danger);background:#fee2e2db;border-color:#ef44443d}.model-badge,.task-count{color:var(--ok);background:#10b9811f;border:1px solid #10b9812e;border-radius:999px;justify-content:center;align-items:center;gap:4px;padding:3px 8px;font-size:10px;display:inline-flex}.zone-center-panel,.task-center-panel{background:linear-gradient(#f4f7fbad,#fdfefef5);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.map-toolbar,.map-header{border-bottom:1px solid var(--border);background:#fdfefeeb;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex}.toolbar-group,.map-header-left,.map-header-tools{align-items:center;gap:8px;display:flex}.toolbar-divider{background:var(--border);width:1px;height:24px}.toolbar-btn{border:1px solid var(--border);color:var(--text2);cursor:pointer;background:#fdfefeeb;border-radius:10px;align-items:center;gap:6px;padding:8px 12px;transition:all .2s;display:inline-flex}.toolbar-btn.active,.map-tool-btn.active{color:var(--p2);background:#c5e9fd99;border-color:#3b82f64d}.import-alignment-btn{background:linear-gradient(135deg, var(--p), var(--p2));color:#fff;border-color:#0000}.import-alignment-btn:hover{color:#fff;background:linear-gradient(135deg,#4f8df7,#2c6bf0)}.gis-map-container,.map-content{background:linear-gradient(#b8d7ee 0%,#e7f1f8 100%);flex:1;min-height:0;position:relative;overflow:hidden}.map-layer,.task-map-layer{opacity:0;transition:opacity .35s;position:absolute;inset:0}.map-layer.active,.task-map-layer.active{opacity:1}.map-tile,.task-map-tile{object-fit:cover;width:100%;height:100%}.map-tile-overlay,.task-map-overlay{pointer-events:none;background:linear-gradient(#ffffff1f,#0f172a1a);position:absolute;inset:0}.map-grid-overlay,.zone-2d-overlay,.task-zone-overlay,.route-overlay,.bim-labels{position:absolute;inset:0}.map-grid-overlay,.bim-labels,.view-3d-badge,.zone-info-card,.map-controls,.map-info-bar,.task-map-controls,.task-map-info,.route-info{z-index:12}.grid-svg,.zone-svg,.task-zone-svg,.route-svg{width:100%;height:100%}.zone-polygon,.route-path{animation:18s linear infinite dash}.bim-3d-container{perspective:1200px;z-index:10;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.bim-3d-scene{width:86%;height:80%;transform-style:preserve-3d;transition:transform .1s ease-out;position:relative}.ground-plane{background:radial-gradient(circle at 30% 35%,#ffffff29,#0000 28%),linear-gradient(135deg,#618c54d6,#7fab67b8);border-radius:32px;width:560px;height:440px;position:absolute;top:58%;left:50%;transform:translate(-50%,-50%)rotateX(90deg);box-shadow:inset 0 0 0 1px #ffffff2e,0 24px 60px #2563eb26}.ground-plane:before{content:"";background-color:#0000;background-image:linear-gradient(90deg,#ffffff1f 1px,#0000 1px),linear-gradient(#ffffff1f 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:44px 44px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;border-radius:24px;position:absolute;inset:24px}.terrain-ridge{background:linear-gradient(#83ae62e6,#5f8449d6);border-radius:50% 50% 42% 42%;width:180px;height:120px;position:absolute;top:52%;transform:translateZ(22px);box-shadow:0 18px 36px #0f172a29}.ridge-left{left:18%}.ridge-right{right:16%}.infrastructure-group{transform-style:preserve-3d;position:absolute;inset:0}.road-corridor,.bridge-deck,.bridge-pier,.inspection-drone{transform-style:preserve-3d;position:absolute}.road-corridor{width:190px;height:74px;top:52%}.approach-west{left:19%}.approach-east{right:16%}.road-surface,.bridge-surface{background:linear-gradient(#626c80f5,#464f60f5);border-radius:18px;position:absolute;inset:0;box-shadow:0 14px 24px #0f172a2e}.road-surface:before,.bridge-surface:before{content:"";background:repeating-linear-gradient(90deg,#fffffff2 0 16px,#0000 16px 30px);border-radius:999px;height:4px;position:absolute;top:50%;left:8%;right:8%;transform:translateY(-50%)}.road-side,.bridge-edge,.bridge-rail{border-radius:999px;width:8px;position:absolute;top:8px;bottom:8px}.road-side,.bridge-edge{background:linear-gradient(#a7b4c8eb,#727f95db)}.bridge-rail{background:linear-gradient(#e2e8f0f2,#94a3b8db);width:4px;top:-4px;bottom:-4px}.road-side-left,.bridge-edge-left,.bridge-rail-left{left:10px}.road-side-right,.bridge-edge-right,.bridge-rail-right{right:10px}.bridge-deck{width:170px;height:88px;top:42%;left:44%;transform:translateZ(58px)}.bridge-surface{background:linear-gradient(#bac2d0f5,#8995abf5);border-radius:20px}.bridge-pier{background:linear-gradient(#acb4c0f5,#717c8cf5);border-radius:10px;width:22px;height:120px;top:52%;box-shadow:0 16px 28px #0f172a2e}.pier-1{left:49%}.pier-2{left:57%}.pier-3{left:65%}.lane-mark{background:repeating-linear-gradient(90deg,#ffffffdb 0 10px,#0000 10px 20px);border-radius:999px;height:3px;position:absolute;left:14%;right:14%}.lane-mark-1{top:28px}.lane-mark-2{opacity:.72;top:44px}.inspection-drone{background:radial-gradient(circle at 50% 45%,#fff 0 18%,#60a5fa 18% 42%,#2563eb 42% 100%);border-radius:50%;width:22px;height:22px;box-shadow:0 0 0 8px #3b82f624,0 0 16px #3b82f642}.inspection-drone:before,.inspection-drone:after{content:"";transform-origin:50%;background:#fffc;width:34px;height:2px;position:absolute;top:50%;left:50%}.inspection-drone:before{transform:translate(-50%,-50%)rotate(45deg)}.inspection-drone:after{transform:translate(-50%,-50%)rotate(-45deg)}.drone-a{animation:4s ease-in-out infinite floatDrone;top:33%;left:36%}.drone-b{animation:4.8s ease-in-out infinite floatDrone;top:28%;left:67%}@keyframes floatDrone{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}.bim-label{color:#fff;white-space:nowrap;background:#2563ebe6;border:1px solid #ffffff42;border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:600;display:inline-flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 12px 24px #2563eb38}.view-3d-badge,.zone-info-card,.map-info-bar,.route-info,.task-map-info,.task-zone-label{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;background:#0f172ab3;border:1px solid #ffffff2e}.view-3d-badge{border-radius:999px;align-items:center;gap:8px;padding:10px 14px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:16px;left:16px}.zone-info-card{border-radius:14px;min-width:240px;padding:14px 16px;position:absolute;top:16px;right:16px;box-shadow:0 16px 32px #0f172a29}.zone-info-title,.zone-info-status,.map-info-item,.route-info-item{align-items:center;gap:8px;display:flex}.zone-info-title{color:#fff;margin-bottom:8px;font-size:14px;font-weight:700}.zone-info-status,.map-info-item,.task-map-info,.route-info-item{color:#ffffffe0;font-size:12px}.status-dot{border-radius:50%;width:8px;height:8px}.status-dot.ok{background:#34d399;box-shadow:0 0 0 5px #34d39929}.map-controls,.task-map-controls{flex-direction:column;gap:8px;display:flex;position:absolute;right:16px}.map-controls{bottom:82px}.task-map-controls{top:14px}.map-control-btn,.task-map-control-btn,.map-tool-btn,.modal-close,.btn-close,.panel-close,.drawer-close{border-radius:10px;width:36px;height:36px}.map-info-bar,.task-map-info,.route-info{border-radius:12px;align-items:center;gap:14px;padding:10px 14px;display:flex;position:absolute;left:16px}.map-info-bar{bottom:16px}.task-map-info{font-size:11px;bottom:12px}.route-info{flex-direction:column;align-items:flex-start;gap:6px;bottom:68px}.map-title{color:var(--text);font-size:14px;font-weight:700}.highlight-zone{color:var(--text2);font-size:12px}.highlight-zone strong{color:var(--p2)}.point-flight-hint{color:var(--p2);background:#c5e9fd8f;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:600}.task-save-banner{color:#047857;background:#10b9811f;border:1px solid #10b98133;border-radius:12px;align-items:center;gap:8px;margin-bottom:14px;padding:12px 14px;font-size:12px;font-weight:700;display:flex}.compact-point-flight-tips{margin-bottom:14px}.task-zone-label{border-radius:999px;align-items:center;gap:6px;padding:8px 12px;font-size:11px;font-weight:700;display:inline-flex;position:absolute;top:45%;left:50%;transform:translate(-50%,-50%)}.task-card-item{cursor:pointer;background:linear-gradient(135deg,#c5e9fd8f,#eff8fff5);border:1px solid #3b82f62e;border-radius:14px;padding:14px;transition:all .2s;box-shadow:0 10px 20px #3b82f60f}.task-card-item:hover{border-color:#3b82f64d;transform:translateY(-1px);box-shadow:0 14px 26px #3b82f61a}.task-card-item.selected{background:linear-gradient(135deg,#9dd8f9db,#e6f4ff);border-color:#2563eb6b;box-shadow:0 18px 34px #3b82f629}.task-card-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.task-id{color:var(--p2);font-family:Orbitron,monospace;font-size:11px}.badge{border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:10px;font-weight:700;display:inline-flex}.badge-ok{color:var(--ok);background:#10b9811f}.badge-warn{color:var(--warn);background:#f59e0b24}.badge-info{color:var(--p2);background:#3b82f61f}.badge-error{color:var(--danger);background:#ef44441f}.task-card-name{color:var(--text);margin-bottom:6px;font-size:14px;font-weight:700}.task-card-desc{color:var(--text2);margin:0 0 10px;font-size:12px;line-height:1.5}.task-card-tags{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.task-tag{border:1px solid #3b82f629;border-radius:999px;align-items:center;gap:4px;padding:4px 8px;font-size:10px;font-weight:600;display:inline-flex}.manual-task-tag{color:var(--p2);background:#3b82f61f}.task-card-progress{align-items:center;gap:10px;display:flex}.progress-bar{background:#94a3b833;border-radius:999px;flex:1;height:6px;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--p), #60a5fa);border-radius:999px;height:100%}.progress-text{text-align:right;min-width:34px;color:var(--p2);font-size:11px;font-weight:700}.empty-task,.gantt-placeholder,.empty-state{color:var(--text3);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:28px 16px;display:flex}.gantt-section{border-top:1px solid var(--border);background:#fdfefeeb;flex-direction:column;height:220px;display:flex}.gantt-header{border-bottom:1px solid var(--border2);color:var(--text);align-items:center;gap:8px;padding:12px 16px;font-size:13px;font-weight:700;display:flex}.gantt-chart{flex-direction:column;gap:10px;height:100%;display:flex}.gantt-timeline{border-bottom:1px solid var(--border2);padding-bottom:10px;padding-left:85px;display:flex}.gantt-time-slot,.gantt-row-label,.gantt-legend{color:var(--text2);font-size:11px}.gantt-time-slot{text-align:center;flex:1}.gantt-rows{flex-direction:column;flex:1;gap:10px;display:flex}.gantt-row{align-items:center;height:32px;display:flex}.gantt-row-label{width:85px;font-weight:600}.gantt-row-bar{background:#c5e9fd4d;border-radius:8px;flex:1;height:100%;position:relative}.gantt-task-bar{color:#fff;background:linear-gradient(90deg, var(--p), #60a5fa);white-space:nowrap;border-radius:6px;align-items:center;gap:4px;padding:0 8px;font-size:10px;display:flex;position:absolute;top:4px;bottom:4px;overflow:hidden}.gantt-task-bar.warning{background:linear-gradient(90deg,#f59e0b,#fbbf24)}.gantt-task-bar.conflict{background:linear-gradient(90deg,#ef4444,#f87171)}.gantt-legend{border-top:1px solid var(--border2);align-items:center;gap:16px;padding-top:10px;display:flex}.gantt-legend-item{align-items:center;gap:6px;display:flex}.legend-dot{border-radius:4px;width:10px;height:10px}.legend-dot.normal{background:var(--p)}.legend-dot.warning{background:var(--warn)}.legend-dot.conflict{background:var(--danger)}.form-section,.form-collapse-section{padding:14px}.form-section-title,.collapse-title{color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.form-section-title{border-bottom:1px solid var(--border2);margin-bottom:14px;padding-bottom:10px}.collapse-header{cursor:pointer;justify-content:space-between;align-items:center;padding:12px 0;display:flex}.collapse-content{border-top:1px solid var(--border2);padding-top:10px}.form-group{margin-bottom:14px}.form-group:last-child{margin-bottom:0}.form-group label{color:var(--text2);margin-bottom:6px;font-size:12px;font-weight:600;display:block}.form-group input,.form-group select,textarea{box-sizing:border-box;border:1px solid var(--border);width:100%;color:var(--text);background:#fdfefef5;border-radius:10px;padding:10px 12px;font-family:inherit;font-size:13px;transition:all .2s}textarea{resize:vertical}.form-group input:focus,.form-group select:focus,textarea:focus{border-color:#3b82f661;outline:none;box-shadow:0 0 0 3px #c5e9fd8f}.form-group input[readOnly],textarea[readOnly]{background:#f4f7fbeb}.form-row,.input-group,.radio-group,.tag-selector,.ai-models-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.radio-option,.ai-model-option,.tag-option,.checklist-item{border:1px solid var(--border);cursor:pointer;min-height:42px;color:var(--text2);background:#fdfefef5;border-radius:10px;justify-content:center;align-items:center;gap:8px;padding:10px 12px;font-size:12px;transition:all .2s;display:flex}.radio-option input,.tag-option input,.ai-model-option input,.checkbox-label input,.checklist-item input{width:auto}.radio-option.selected,.ai-model-option.selected,.tag-option.selected{color:var(--p2);background:#c5e9fd8f;border-color:#3b82f652}.ai-model-option .check-icon{opacity:0}.ai-model-option.selected .check-icon{opacity:1}.checkbox-label{color:var(--text2);cursor:pointer;align-items:center;gap:8px;font-size:13px;display:inline-flex}.required,label.required:after{color:var(--danger)}label.required:after{content:" *"}.file-upload,.upload-dropzone{cursor:pointer;color:var(--text2);flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:26px 16px;display:flex}.upload-area,.baseline-form,.quick-actions,.safety-checklist,.manual-waypoint-list{flex-direction:column;gap:10px;display:flex}.file-info{align-items:center;gap:10px;padding:12px 14px;display:flex}.upload-title{color:var(--text);margin:0;font-size:14px;font-weight:700}.upload-hint,.file-hint,.form-hint,.field-hint,.hidden-field textarea,.manual-waypoint-meta,.task-card-desc,.upload-dropzone p:last-child{color:var(--text3);font-size:11px}.point-flight-tips{padding:14px}.point-flight-tip-title,.manual-waypoint-header{color:var(--text2);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:700;display:flex}.point-flight-tips ul{color:var(--text2);margin:0;padding-left:18px;font-size:12px;line-height:1.8}.manual-waypoint-count{color:var(--p2);background:#3b82f61f;border-radius:999px;padding:2px 8px}.manual-waypoint-empty{border:1px dashed var(--border);text-align:center;color:var(--text3);background:#f4f7fbf5;border-radius:10px;padding:16px 12px;font-size:12px}.manual-waypoint-item{border:1px solid var(--border2);background:#f4f7fbf5;border-radius:12px;align-items:center;gap:10px;padding:10px;display:flex}.manual-waypoint-badge{background:linear-gradient(135deg, var(--p), var(--p2));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;font-size:11px;font-weight:700;display:flex}.manual-waypoint-fields{flex:1;min-width:0}.manual-waypoint-meta{gap:10px;margin-top:6px;display:flex}.manual-waypoint-remove{width:30px;height:30px;color:var(--danger);cursor:pointer;background:#fef2f2db;border:1px solid #ef444424;border-radius:8px;justify-content:center;align-items:center;display:inline-flex}.manual-waypoint-remove:hover{background:#fee2e2eb}.manual-route-mode{cursor:crosshair}.manual-route-overlay .waypoint,.vertex{animation:1.6s ease-in-out infinite pulseWaypoint}@keyframes pulseWaypoint{0%,to{opacity:.8}50%{opacity:1}}.waypoint-label{fill:var(--p2);font-size:3.2px;font-weight:700}.route-info.manual-route-info{border-color:#3b82f638}.route-info.manual-route-info .route-info-item{color:#ffffffeb}.task-3d-overlay{z-index:7;perspective:1000px;pointer-events:none;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.task-3d-scene{width:70%;height:70%;transform-style:preserve-3d;position:relative}.task-ground-plane{background:linear-gradient(135deg,#7da264c2,#5e844ca3);border-radius:28px;width:400px;height:400px;position:absolute;top:60%;left:50%;transform:translate(-50%,-50%)rotateX(90deg);box-shadow:0 0 30px #3b82f61a}.flight-path-line{background:linear-gradient(90deg,#0000,#60a5fa,#0000);width:220px;height:3px;animation:2s ease-in-out infinite glowPath;transform:translateZ(40px)}@keyframes glowPath{0%,to{opacity:.55}50%{opacity:1}}.drone-3d{width:40px;height:40px;animation:3s ease-in-out infinite floatDrone;position:absolute;top:35%;left:50%;transform:translate(-50%,-50%)}.drone-body{background:linear-gradient(135deg,#2563eb,#60a5fa);border-radius:6px;width:20px;height:20px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.drone-arm{transform-origin:0;background:linear-gradient(90deg,#64748b,#cbd5e1);width:26px;height:3px;position:absolute;top:50%;left:50%}.arm-1{transform:translate(-50%,-50%)rotate(45deg)}.arm-2{transform:translate(-50%,-50%)rotate(135deg)}.arm-3{transform:translate(-50%,-50%)rotate(225deg)}.arm-4{transform:translate(-50%,-50%)rotate(315deg)}.drone-prop{background:radial-gradient(circle,#ffffffa6,#0000 70%);border-radius:50%;width:12px;height:12px;animation:.18s linear infinite spinProp;position:absolute}.prop-1{top:0;left:0}.prop-2{top:0;right:0}.prop-3{bottom:0;left:0}.prop-4{bottom:0;right:0}@keyframes spinProp{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.modal-overlay,.drawer-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#0f172a57;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal,.drawer{border:1px solid var(--border);background:#fdfefefa;border-radius:16px;flex-direction:column;width:100%;max-width:520px;max-height:86vh;display:flex;box-shadow:0 24px 60px #0f172a33}.drawer{max-width:480px}.drawer-body{padding:16px}.drawer-tabs,.tab-content,.zone-right-drawer,.quick-action-btn,.zone-item,.zone-info,.zone-meta,.zone-name,.model-preview,.model-preview-header,.model-info,.model-info-item,.input-suffix,.panel-header-actions,.zone-info-meta,.safety-checklist{display:initial}@media (width<=1400px){.task-right-panel,.zone-right-panel.open{width:340px}.zone-left-panel,.task-left-panel{width:300px}}@media (width<=1200px){.center-header{flex-direction:column;align-items:stretch;gap:12px}.header-left,.header-right{justify-content:space-between}.header-tabs{flex-wrap:wrap}.zone-right-panel.open,.task-right-panel{width:320px}.map-header{flex-direction:column;align-items:stretch}}@media (width<=900px){.zone-content,.task-content{flex-direction:column}.zone-left-panel,.task-left-panel,.zone-right-panel.open,.task-right-panel{border-left:none;border-right:none;border-top:1px solid var(--border);width:100%;box-shadow:none;position:relative;transform:none}.zone-right-panel{opacity:1;width:100%}.gantt-section{height:260px}.form-row,.input-group,.radio-group,.tag-selector,.ai-models-grid{grid-template-columns:1fr}}.irc-page{background-color:#f4f7fb;background-image:linear-gradient(#6373810d 1px,#0000 1px),linear-gradient(90deg,#6373810d 1px,#0000 1px);background-size:40px 40px;min-height:100%;padding:52px 24px 40px;overflow-y:auto}.irc-title{text-align:center;letter-spacing:1px;color:#1e293b;text-shadow:0 2px 10px #0000000d;margin-bottom:40px;font-size:28px;font-weight:700}.irc-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;max-width:1400px;margin:0 auto;display:grid}.irc-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;text-align:left;background:#ffffffd9;border:1px solid #e2e8f0;border-radius:16px;flex-direction:column;align-items:stretch;gap:0;min-height:250px;padding:24px;transition:transform .4s cubic-bezier(.175,.885,.32,1.275),border-color .3s,box-shadow .3s;display:flex;position:relative;overflow:hidden;box-shadow:0 10px 30px -10px #0000000d}.irc-card:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#007bff,#0000);width:100%;height:3px;transition:opacity .3s;position:absolute;top:0;left:0}.irc-card:hover{border-color:#007bff4d;transform:translateY(-8px);box-shadow:0 20px 40px -10px #007bff26}.irc-card:hover:before{opacity:1}.irc-card-header{border-bottom:1px solid #0000000d;align-items:center;margin-bottom:24px;padding-bottom:16px;display:flex}.irc-icon-box{color:#007bff;background:linear-gradient(135deg,#e0f2fe,#bae6fd);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;margin-right:16px;display:flex;box-shadow:inset 0 2px 4px #ffffff80}.irc-title-group{flex-direction:column;display:flex}.irc-card-title{color:#1e293b;margin:0 0 4px;font-size:18px;font-weight:600}.irc-card-subtitle{color:#94a3b8;text-transform:uppercase;letter-spacing:1px;margin:0;font-size:11px}.irc-metric-list{flex-direction:column;flex:1;gap:16px;display:flex}.irc-metric-item{background:#f8fafccc;border:1px solid #f1f5f9;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.irc-metric-label{color:#64748b;font-weight:500}.irc-metric-value{font-family:DIN Alternate,Courier New,monospace;font-size:16px;font-weight:600}.irc-tone-red{color:#ef4444}.irc-tone-orange{color:#f59e0b}.irc-tone-green{color:#10b981}.irc-tone-blue{color:#007bff}.irc-progress-wrapper{margin-top:8px}.irc-progress-header{color:#64748b;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;font-size:14px;font-weight:500;display:flex}.irc-progress-track{background-color:#e2e8f0;border-radius:4px;height:8px;overflow:hidden}.irc-progress-fill{background:linear-gradient(90deg,#38bdf8,#0284c7);border-radius:4px;width:100%;height:100%;position:relative}.irc-progress-fill:after{content:"";background:linear-gradient(90deg,#0000,#fff6,#0000);animation:2s infinite irc-shimmer;position:absolute;inset:0}@keyframes irc-shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (width<=1200px){.irc-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=768px){.irc-page{padding:32px 16px 24px}.irc-title{margin-bottom:28px;font-size:24px}.irc-grid{grid-template-columns:1fr;gap:20px}.irc-card{min-height:auto}}:root{--hz-bg-page:#f0f2f5;--hz-bg-card:#fff;--hz-bg-secondary:#f7f8fa;--hz-bg-tertiary:#eef0f3;--hz-border:#00000014;--hz-border-md:#0000001f;--hz-text-primary:#1a1d23;--hz-text-secondary:#6b7280;--hz-text-tertiary:#9ca3af;--hz-blue:#1d6fa4;--hz-blue-light:#e8f3fb;--hz-blue-strong:#155882;--hz-red:#e24b4a;--hz-red-light:#fef2f2;--hz-amber:#d97706;--hz-amber-light:#fffbeb;--hz-green:#059669;--hz-green-light:#ecfdf5;--hz-gray-light:#f3f4f6;--hz-gray-text:#6b7280;--hz-radius-sm:6px;--hz-radius-md:8px;--hz-radius-lg:12px;--hz-radius-xl:16px;--hz-shadow-sm:0 1px 3px #0000000f, 0 1px 2px #0000000a;--hz-shadow-lg:0 20px 60px #00000024, 0 8px 24px #00000014}*{box-sizing:border-box}.hazard-center-redesign{background:var(--hz-bg-page);min-height:100vh;color:var(--hz-text-primary);font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.5}.nav-shell{z-index:100;background:#0f1623;border-bottom:1px solid #ffffff0f;align-items:center;gap:20px;min-height:48px;padding:0 20px;display:flex;position:sticky;top:0}.nav-logo{color:#e2e8f0;flex-shrink:0;align-items:center;gap:8px;font-size:13px;font-weight:500;display:flex}.nav-logo-icon{background:linear-gradient(135deg, var(--hz-blue), #0ea5e9);border-radius:8px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.nav-tabs{flex-wrap:wrap;gap:2px;min-width:0;margin-left:12px;display:flex}.nav-tab{border-radius:var(--hz-radius-sm);color:#94a3b8;cursor:default;white-space:nowrap;padding:6px 14px;font-size:13px;transition:all .15s}.nav-tab:hover{color:#e2e8f0;background:#ffffff0f}.nav-tab.active{color:#fff;background:#ffffff1a}.nav-right{flex-shrink:0;align-items:center;gap:12px;margin-left:auto;display:flex}.nav-date{color:#64748b;font-size:12px}.nav-badge{background:var(--hz-red);color:#fff;border-radius:99px;padding:2px 7px;font-size:11px;font-weight:500}.page-header-redesign{background:var(--hz-bg-card);border-bottom:1px solid var(--hz-border);align-items:center;gap:12px;padding:14px 20px;display:flex}.page-header-icon{font-size:16px}.page-title{color:var(--hz-text-primary);font-size:16px;font-weight:500}.status-tag{border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.st-danger{background:var(--hz-red-light);color:var(--hz-red)}.st-warning{background:var(--hz-amber-light);color:var(--hz-amber)}.st-info{background:var(--hz-blue-light);color:var(--hz-blue)}.st-gray{background:var(--hz-gray-light);color:var(--hz-gray-text)}.page-header-right{gap:8px;margin-left:auto;display:flex}.btn-lite,.action-btn,.batch-btn,.page-btn,.hz-modal-btn,.device-run-btn{font-family:inherit}.btn-lite{border-radius:var(--hz-radius-md);border:1px solid var(--hz-border-md);cursor:pointer;background:var(--hz-bg-card);color:var(--hz-text-secondary);padding:6px 14px;font-size:13px;font-weight:400;transition:all .15s}.btn-lite:hover{background:var(--hz-bg-secondary);border-color:#0000002e}.btn-primary-lite{background:var(--hz-blue);color:#fff;border-color:var(--hz-blue);font-weight:500}.btn-primary-lite:hover{background:var(--hz-blue-strong)}.kpi-row-redesign{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;padding:16px 20px;display:grid}.kpi-card{background:var(--hz-bg-card);border:1px solid var(--hz-border);border-radius:var(--hz-radius-lg);box-shadow:var(--hz-shadow-sm);padding:14px 16px}.kpi-label{color:var(--hz-text-tertiary);margin-bottom:6px;font-size:12px}.kpi-value{font-size:26px;font-weight:500;line-height:1}.kpi-sub{color:var(--hz-text-tertiary);margin-top:5px;font-size:11px}.kpi-danger .kpi-value{color:var(--hz-red)}.kpi-warning .kpi-value{color:var(--hz-amber)}.kpi-normal .kpi-value{color:var(--hz-text-primary)}.kpi-info .kpi-value{color:var(--hz-blue)}.main-layout{min-height:calc(100vh - 200px);display:flex}.sidebar{background:var(--hz-bg-card);border-right:1px solid var(--hz-border);width:196px;min-width:196px;padding:16px 0}.sidebar-section{margin-bottom:22px}.sidebar-section-title{color:var(--hz-text-tertiary);text-transform:uppercase;letter-spacing:.06em;padding:0 16px 8px;font-size:11px;font-weight:500}.sidebar-item{color:var(--hz-text-secondary);cursor:pointer;justify-content:space-between;align-items:center;padding:7px 16px;font-size:13px;transition:background .12s;display:flex}.sidebar-item>span:first-child{align-items:center;display:inline-flex}.sidebar-item:hover{background:var(--hz-bg-secondary)}.sidebar-item.active{background:var(--hz-blue-light);color:var(--hz-blue);font-weight:500}.sb-badge{border-radius:99px;padding:1px 7px;font-size:11px;font-weight:500}.sb-red{background:var(--hz-red-light);color:var(--hz-red)}.sb-gray{background:var(--hz-gray-light);color:var(--hz-gray-text)}.dot-indicator{border-radius:50%;flex-shrink:0;width:7px;height:7px;margin-right:7px;display:inline-block}.dot-red{background:var(--hz-red)}.dot-amber{background:var(--hz-amber)}.dot-blue{background:var(--hz-blue)}.table-area{flex:1;min-width:0;padding:16px 20px}.tab-row{border-bottom:1px solid var(--hz-border);gap:0;margin-bottom:14px;display:flex}.tab-pill{cursor:pointer;color:var(--hz-text-secondary);border-bottom:2px solid #0000;margin-bottom:-1px;padding:9px 18px;font-size:13px;transition:all .15s}.tab-pill:hover{color:var(--hz-text-primary)}.tab-pill.active{color:var(--hz-blue);border-bottom-color:var(--hz-blue);font-weight:500}.tab-count{border-radius:99px;margin-left:5px;padding:0 6px;font-size:11px;font-weight:500;display:inline-block}.tc-red{background:var(--hz-red-light);color:var(--hz-red)}.tc-gray{background:var(--hz-gray-light);color:var(--hz-gray-text)}.toolbar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:10px;display:flex}.search-input{border:1px solid var(--hz-border-md);border-radius:var(--hz-radius-md);background:var(--hz-bg-card);min-width:200px;max-width:300px;color:var(--hz-text-primary);outline:none;flex:1;padding:7px 12px;font-size:13px;transition:border .15s}.toolbar-select{border:1px solid var(--hz-border-md);border-radius:var(--hz-radius-md);background:var(--hz-bg-card);color:var(--hz-text-secondary);cursor:pointer;outline:none;padding:7px 10px;font-size:13px}.toolbar-export{margin-left:auto}.batch-bar{background:var(--hz-blue-light);border-radius:var(--hz-radius-md);color:var(--hz-blue);border:1px solid #1d6fa433;align-items:center;gap:10px;margin-bottom:10px;padding:8px 14px;font-size:13px;display:flex}.batch-btn{border-radius:var(--hz-radius-sm);cursor:pointer;background:var(--hz-bg-card);color:var(--hz-blue);border:1px solid #1d6fa44d;padding:4px 12px;font-size:12px;font-weight:500;transition:all .15s}.batch-btn:hover{background:#1d6fa414}.batch-btn-danger{background:var(--hz-red-light);color:var(--hz-red);border-color:#e24b4a4d}.batch-ai-link{color:var(--hz-text-secondary);margin-left:auto;font-size:12px}.batch-ai-link a{color:var(--hz-blue);text-decoration:none}.table-wrap{background:var(--hz-bg-card);border:1px solid var(--hz-border);border-radius:var(--hz-radius-lg);box-shadow:var(--hz-shadow-sm);overflow:hidden}.table-wrap table{border-collapse:collapse;table-layout:fixed;width:100%}.table-wrap thead{background:var(--hz-bg-secondary)}.table-wrap th{text-align:left;color:var(--hz-text-tertiary);border-bottom:1px solid var(--hz-border);white-space:nowrap;text-overflow:ellipsis;padding:10px 12px;font-size:12px;font-weight:500;overflow:hidden}.table-wrap td{color:var(--hz-text-primary);border-bottom:1px solid var(--hz-border);vertical-align:middle;white-space:nowrap;text-overflow:ellipsis;padding:11px 12px;overflow:hidden}.table-wrap tr:last-child td{border-bottom:none}.table-wrap tr:hover td{background:var(--hz-bg-secondary)}.table-wrap tr.row-selected td{background:#f0f7ff}.col-check{width:38px}.col-id{width:68px}.col-level{width:66px}.col-type{width:72px}.col-issue{width:auto}.col-loc{width:116px}.col-src{width:96px}.col-status{width:76px}.col-deadline{width:94px}.col-assignee{width:80px}.col-action{width:120px}.cell-muted{color:var(--hz-text-secondary);font-size:12px}.level-badge{align-items:center;gap:5px;font-size:12px;font-weight:500;display:inline-flex}.level-badge .dot-indicator{margin-right:0}.type-tag{border-radius:4px;padding:2px 8px;font-size:11px;font-weight:500;display:inline-block}.tt-safety{color:#991b1b;background:#fef2f2}.tt-quality{color:#92400e;background:#fffbeb}.tt-env{color:#065f46;background:#ecfdf5}.tt-water{color:#0f766e;background:#ecfdf5}.status-pill{border-radius:99px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-block}.sp-pending{background:var(--hz-amber-light);color:var(--hz-amber)}.sp-doing{background:var(--hz-blue-light);color:var(--hz-blue)}.sp-review{background:var(--hz-green-light);color:var(--hz-green)}.sp-done{background:var(--hz-gray-light);color:var(--hz-gray-text)}.deadline-overdue{color:var(--hz-red);font-weight:500}.deadline-soon{color:var(--hz-amber);font-weight:500}.action-btns{gap:6px;display:flex}.action-btn{border-radius:var(--hz-radius-sm);border:1px solid var(--hz-border-md);cursor:pointer;background:var(--hz-bg-card);color:var(--hz-text-secondary);padding:4px 9px;font-size:12px;font-weight:500;transition:all .15s}.action-btn:hover{background:var(--hz-bg-secondary);border-color:#0000002e}.action-btn-primary{background:var(--hz-blue);color:#fff;border-color:var(--hz-blue)}.action-btn-primary:hover{filter:brightness(1.08)}.pagination{color:var(--hz-text-secondary);border-top:1px solid var(--hz-border);justify-content:space-between;align-items:center;padding:12px 16px;font-size:12px;display:flex}.page-btns{gap:6px;display:flex}.page-btn{border:1px solid var(--hz-border-md);border-radius:var(--hz-radius-sm);cursor:pointer;background:var(--hz-bg-card);color:var(--hz-text-secondary);padding:4px 10px;font-size:12px;transition:all .15s}.page-btn:hover{background:var(--hz-bg-secondary)}.page-btn.active{background:var(--hz-blue);color:#fff;border-color:var(--hz-blue)}.hz-modal-overlay{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:1000;background:#0a0e1a8c;justify-content:center;align-items:center;padding:16px;display:none;position:fixed;inset:0}.hz-modal-overlay.open{display:flex}.hz-modal{border-radius:var(--hz-radius-xl);width:480px;max-width:96vw;max-height:90vh;box-shadow:var(--hz-shadow-lg);background:#141b2d;border:1px solid #ffffff14;animation:.22s hzModalIn;overflow-y:auto}@keyframes hzModalIn{0%{opacity:0;transform:translateY(12px)scale(.97)}to{opacity:1;transform:none}}.hz-modal::-webkit-scrollbar{width:4px}.hz-modal::-webkit-scrollbar-track{background:0 0}.hz-modal::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.hz-modal-header{z-index:2;border-radius:var(--hz-radius-xl) var(--hz-radius-xl) 0 0;background:#141b2d;border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:16px 20px;display:flex;position:sticky;top:0}.hz-modal-title{color:#e2e8f0;font-size:15px;font-weight:500}.hz-modal-close{color:#94a3b8;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:28px;height:28px;margin-left:auto;font-size:16px;transition:background .15s;display:flex}.hz-modal-close:hover{color:#e2e8f0;background:#ffffff24}.hz-modal-badge{border-radius:99px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.mb-pending{color:#fbbf24;background:#d9770633}.mb-doing{color:#38bdf8;background:#0ea5e933}.mb-review{color:#34d399;background:#10b9812e}.mb-done{color:#94a3b8;background:#64748b33}.hz-modal-body{padding:20px}.hz-modal-section{margin-bottom:22px}.no-margin-bottom{margin-bottom:0}.hz-modal-section-title{color:#64748b;text-transform:uppercase;letter-spacing:.05em;align-items:center;gap:6px;margin-bottom:12px;font-size:12px;font-weight:500;display:flex}.hz-modal-section-title:before{content:"";background:var(--hz-blue);border-radius:2px;width:3px;height:12px;display:inline-block}.hz-modal-info-card{border-radius:var(--hz-radius-md);background:#ffffff0d;border:1px solid #ffffff14;gap:14px;padding:14px;display:flex}.hz-modal-thumb{background:#ffffff1a;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;width:96px;height:72px;display:flex;position:relative;overflow:hidden}.hz-modal-thumb-placeholder{opacity:.3;font-size:24px}.ai-confidence{color:#fff;background:#1d6fa4e6;border-radius:4px;padding:1px 6px;font-size:10px;font-weight:500;position:absolute;top:4px;right:4px}.hz-modal-info-rows{flex-direction:column;flex:1;gap:6px;display:flex}.hz-modal-info-row{gap:8px;display:flex}.hz-modal-info-label{color:#64748b;flex-shrink:0;width:64px;font-size:11px}.hz-modal-info-value{color:#cbd5e1;font-size:12px;font-weight:400}.hz-modal-info-value-bold{color:#e2e8f0;font-size:13px;font-weight:500}.hz-modal-green,.submit-green{color:#34d399}.hz-modal-red{color:#f87171}.hz-modal-divider{border:none;border-top:1px solid #ffffff12;margin:4px 0 16px}.strategy-tabs{border-radius:var(--hz-radius-md);background:#ffffff0d;border:1px solid #ffffff1a;gap:0;margin-bottom:14px;padding:3px;display:flex}.strategy-tab{text-align:center;color:#64748b;cursor:pointer;border-radius:6px;flex:1;justify-content:center;align-items:center;gap:6px;padding:8px;font-size:13px;transition:all .15s;display:flex}.strategy-tab.active{background:var(--hz-blue);color:#fff;font-weight:500}.strategy-tab-icon{font-size:14px}.hz-modal-panel{display:none}.hz-modal-panel.active{display:block}.hz-modal-form-group{margin-bottom:14px}.hz-modal-form-label{color:#94a3b8;margin-bottom:6px;font-size:12px;display:block}.hz-modal-input,.hz-modal-textarea{border-radius:var(--hz-radius-md);color:#e2e8f0;background:#ffffff0f;border:1px solid #ffffff1a;outline:none;width:100%;padding:9px 12px;font-size:13px;transition:border .15s}.hz-modal-input:focus,.hz-modal-textarea:focus{border-color:var(--hz-blue)}.hz-modal-input::placeholder,.hz-modal-textarea::placeholder{color:#475569}.hz-modal-textarea{resize:vertical;min-height:80px}.hz-modal-textarea-short{min-height:64px}.device-option{border-radius:var(--hz-radius-md);background:#ffffff0d;border:1px solid #ffffff1a;align-items:center;gap:12px;padding:12px 14px;transition:all .15s;display:flex}.device-gap{margin-bottom:10px}.device-option:hover{background:#1d6fa414;border-color:#1d6fa480}.device-option-icon{background:#1d6fa433;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:16px;display:flex}.device-option-title{color:#e2e8f0;font-size:13px;font-weight:500}.device-option-desc{color:#64748b;margin-top:2px;font-size:11px}.device-run-btn{color:#38bdf8;cursor:pointer;background:#1d6fa426;border:1px solid #1d6fa480;border-radius:6px;margin-left:auto;padding:6px 12px;font-size:12px}.compare-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.compare-box{border-radius:var(--hz-radius-md);border:1px solid #ffffff1a;overflow:hidden}.compare-box-dashed{border-style:dashed;border-color:#ffffff26}.compare-box-header{color:#94a3b8;background:#ffffff0d;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;padding:7px 10px;font-size:12px;display:flex}.compare-box-body{color:#334155;background:#ffffff08;justify-content:center;align-items:center;height:120px;font-size:12px;display:flex}.compare-badge{border-radius:99px;padding:2px 8px;font-size:10px;font-weight:500}.compare-badge-blue{color:#38bdf8;background:#1d6fa433}.cb-fail{color:#f87171;background:#e24b4a33}.cb-wait{color:#94a3b8;background:#64748b33}.cb-ok{color:#34d399;background:#10b98133}.upload-box{border-radius:var(--hz-radius-md);cursor:pointer;background:#ffffff05;border:1.5px dashed #ffffff26;flex-direction:column;justify-content:center;align-items:center;gap:6px;height:120px;transition:all .15s;display:flex}.upload-box:hover{border-color:var(--hz-blue);background:#1d6fa40f}.full-height{border:none;border-radius:0;height:100%}.upload-icon{opacity:.4;font-size:22px}.upload-hint{color:#475569;font-size:12px}.submit-info-card{border-radius:var(--hz-radius-md);background:#ffffff0a;border:1px solid #ffffff14;padding:14px}.submit-info-row{gap:10px;margin-bottom:8px;display:flex}.submit-info-row:last-child{margin-bottom:0}.sil{color:#64748b;flex-shrink:0;width:64px;font-size:12px}.siv{color:#cbd5e1;font-size:12px}.siv-multiline{white-space:normal;color:#94a3b8;line-height:1.6}.timeline-dark{padding-left:20px;position:relative}.timeline-dark:before{content:"";background:#ffffff1a;width:1px;position:absolute;top:8px;bottom:8px;left:6px}.timeline-item{padding:0 0 16px 14px;position:relative}.timeline-item:last-child{padding-bottom:0}.timeline-dot{border:2px solid #141b2d;border-radius:50%;width:10px;height:10px;position:absolute;top:5px;left:-14px}.td-green{background:#10b981}.td-blue{background:#3b82f6}.td-amber{background:#f59e0b}.td-red{background:var(--hz-red)}.timeline-event{color:#cbd5e1;font-size:13px;font-weight:500}.timeline-time{color:#475569;margin-top:2px;font-size:11px}.timeline-actor{color:#64748b;margin-top:1px;font-size:11px}.hz-modal-footer{border-radius:0 0 var(--hz-radius-xl) var(--hz-radius-xl);background:#141b2d;border-top:1px solid #ffffff14;align-items:center;gap:10px;padding:16px 20px;display:flex;position:sticky;bottom:0}.hz-modal-btn{border-radius:var(--hz-radius-md);cursor:pointer;border:1px solid #0000;padding:9px 20px;font-size:13px;font-weight:500;transition:all .15s}.hz-modal-btn-ghost{color:#94a3b8;background:0 0;border-color:#ffffff26}.hz-modal-btn-ghost:hover{color:#e2e8f0;border-color:#ffffff40}.hz-modal-btn-primary{background:var(--hz-blue);color:#fff;border-color:var(--hz-blue);flex:1}.hz-modal-btn-primary:hover{filter:brightness(1.1)}.hz-modal-btn-danger{color:#f87171;background:0 0;border-color:#ef444466}.hz-modal-btn-danger:hover{background:#ef44441a}.hz-modal-btn-success{background:var(--hz-green);color:#fff;border-color:var(--hz-green);flex:1}.hz-modal-btn-success:hover{filter:brightness(1.1)}.hz-modal-btn-fixed{flex:0}.hz-page-time{background:var(--hz-bg-secondary);border:1px solid var(--hz-border);height:34px;color:var(--hz-text-secondary);font-variant-numeric:tabular-nums;white-space:nowrap;border-radius:999px;align-items:center;padding:0 12px;font-size:12px;display:inline-flex}.date-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:0 16px;display:grid}.date-filter-btn{border:1px solid var(--hz-border-md);border-radius:var(--hz-radius-md);background:var(--hz-bg-card);height:34px;color:var(--hz-text-secondary);cursor:pointer;font-size:12px;transition:all .15s}.date-filter-btn:hover{background:var(--hz-bg-secondary);color:var(--hz-blue);border-color:#1d6fa440}.date-filter-btn.active{background:var(--hz-blue);border-color:var(--hz-blue);color:#fff;font-weight:500;box-shadow:0 6px 16px #1d6fa42e}.hz-empty-state{text-align:center;border-top:1px solid var(--hz-border);background:linear-gradient(#f8fafca6,#f0f7fff2);padding:48px 20px}.hz-empty-title{color:var(--hz-text-primary);font-size:15px;font-weight:600}.hz-empty-desc{color:var(--hz-text-secondary);margin-top:8px;font-size:13px}.hz-image-viewer-overlay{z-index:1100;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#080f1cb8;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.hz-image-viewer{background:linear-gradient(#0f172a 0%,#111827 100%);border:1px solid #ffffff14;border-radius:20px;width:min(960px,100%);max-height:calc(100vh - 48px);padding:24px;position:relative;overflow:auto;box-shadow:0 24px 80px #00000073}.hz-image-close{color:#e5eef9;cursor:pointer;background:#ffffff1a;border:none;border-radius:50%;width:36px;height:36px;font-size:16px;transition:all .15s;position:absolute;top:16px;right:16px}.hz-image-close:hover{background:#ffffff2e}.hz-image-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;padding-right:48px;display:flex}.hz-image-id{color:#93c5fd;letter-spacing:.08em;font-size:12px}.hz-image-title{color:#f8fafc;margin-top:4px;font-size:22px;font-weight:600}.hz-evidence-image{background:linear-gradient(#0f172a1f,#0f172a8c),linear-gradient(135deg,#7c8b6b 0%,#8f9b78 28%,#7f8d66 48%,#5f6d52 100%);border-radius:18px;min-height:420px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff0f}.hz-evidence-image:before{content:"";background:radial-gradient(circle at 22% 28%,#ffffff1f,#0000 18%),radial-gradient(circle at 78% 18%,#ffffff14,#0000 20%),linear-gradient(90deg,#0000 0 18%,#3c4a37e6 18% 22%,#0000 22% 78%,#394533e6 78% 82%,#0000 82% 100%),linear-gradient(#0000 0 64%,#586545eb 64% 100%);position:absolute;inset:0}.hz-evidence-image:after{content:"";background:linear-gradient(#525662fa,#343844fa);border-radius:40px;height:64px;position:absolute;top:56%;left:18%;right:18%;transform:perspective(480px)rotateX(68deg);box-shadow:0 0 0 3px #ffffff0d,0 10px 28px #00000047}.hz-evidence-bbox{z-index:2;border:3px solid #ef4444;border-radius:12px;width:24%;height:40%;position:absolute;top:25%;left:31%;box-shadow:0 0 0 9999px #ef44440f}.hz-evidence-bbox:before{content:"AI事件框选";color:#fff;background:#ef4444eb;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;top:-30px;left:0}.hz-evidence-overlay{z-index:3;flex-wrap:wrap;gap:10px;display:flex;position:absolute;bottom:18px;left:18px;right:18px}.hz-evidence-overlay span{color:#e5eef9;background:#0f172ab8;border:1px solid #ffffff1f;border-radius:999px;align-items:center;min-height:30px;padding:0 12px;font-size:12px;display:inline-flex}.hz-image-meta{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px;display:grid}.hz-image-meta>div{background:#ffffff0d;border:1px solid #ffffff14;border-radius:14px;padding:14px 16px}.hz-image-meta span{color:#94a3b8;margin-bottom:6px;font-size:12px;display:block}.hz-image-meta strong{color:#f8fafc;font-size:14px;font-weight:600}.hz-image-caption{color:#dbeafe;background:#1d6fa424;border:1px solid #38bdf838;border-radius:14px;margin-top:16px;padding:16px 18px;font-size:14px;line-height:1.7}@media (width<=1200px){.kpi-row-redesign{grid-template-columns:repeat(2,minmax(0,1fr))}.page-header-redesign{flex-wrap:wrap}.page-header-right{justify-content:flex-end;width:100%;margin-left:0}}@media (width<=992px){.main-layout{flex-direction:column}.sidebar{border-right:none;border-bottom:1px solid var(--hz-border);width:100%;min-width:0;padding:12px 0}.toolbar-export,.batch-ai-link{margin-left:0}.compare-grid,.hz-image-meta{grid-template-columns:1fr}}@media (width<=768px){.nav-shell,.page-header-redesign,.table-area{padding-left:16px;padding-right:16px}.nav-shell{flex-wrap:wrap;align-items:flex-start;gap:12px;padding-top:10px;padding-bottom:10px}.nav-tabs{width:100%;margin-left:0}.nav-right{justify-content:flex-end;width:100%;margin-left:0}.kpi-row-redesign{grid-template-columns:1fr;padding:16px}.toolbar{flex-direction:column;align-items:stretch}.search-input{max-width:none}.batch-bar{flex-wrap:wrap}.pagination{flex-direction:column;align-items:flex-start;gap:10px}.page-btns,.hz-modal-footer{flex-wrap:wrap}.hz-modal-btn,.hz-modal-btn-primary,.hz-modal-btn-success,.hz-modal-btn-fixed{flex:100%}.page-header-right{align-items:stretch}.hz-page-time{justify-content:center;width:100%}.date-filter-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.hz-image-viewer-overlay{padding:12px}.hz-image-viewer{border-radius:16px;padding:18px}.hz-image-head{flex-direction:column;align-items:flex-start;padding-right:40px}.hz-image-title{font-size:18px}.hz-evidence-image{min-height:300px}}.qm-page{color:#0f172a;background:#f4f7fb;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.qm-topbar{z-index:100;background:#fff;border-bottom:1px solid #e2e8f0;flex-direction:column;display:flex}.qm-header-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex}.qm-header-main{align-items:center;gap:12px;display:flex}.qm-back-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.qm-back-btn:hover{background:#f8fafc}.qm-header-title{font-size:18px;font-weight:600}.qm-export-btn,.qm-primary-btn,.qm-outline-btn,.qm-secondary-btn,.qm-danger-btn,.qm-outline-dark-btn,.qm-mini-outline{cursor:pointer;border:none;border-radius:6px;font-size:13px;transition:all .2s}.qm-export-btn{color:#fff;background:#2563eb;align-items:center;gap:6px;padding:8px 16px;display:inline-flex}.qm-export-btn:hover,.qm-primary-btn:hover{background:#1d4ed8}.qm-tab-row{align-items:flex-end;gap:32px;height:48px;padding:0 24px;display:flex}.qm-tab-item{color:#64748b;cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 4px;font-size:15px;font-weight:500}.qm-tab-item.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.qm-workspace{flex:1;position:relative;overflow:hidden}.qm-tab-content{width:100%;height:100%;display:none;overflow:hidden}.qm-tab-content.active{flex-direction:column;display:flex}.qm-filter-bar,.qm-illegal-topbar,.qm-structure-topbar{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:16px;padding:16px 24px;display:flex}.qm-filter-group{align-items:center;gap:16px;display:flex}.qm-filter-group.wrap{flex-wrap:wrap}.qm-filter-label{color:#64748b;font-size:13px;font-weight:600}.qm-divider{background:#e2e8f0;width:1px;height:20px}.qm-select-box,.qm-filter-chip select{background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;outline:none;padding:6px 12px;font-size:13px}.qm-toggle-switch{color:#ef4444;cursor:pointer;background:#fee2e2;border:1px solid #fca5a5;border-radius:20px;align-items:center;gap:8px;padding:6px 12px;font-size:13px;font-weight:600;display:inline-flex}.qm-secondary-btn,.qm-outline-btn{color:#0f172a;background:#fff;border:1px solid #e2e8f0;padding:8px 16px}.qm-secondary-btn:hover,.qm-outline-btn:hover{background:#f8fafc}.qm-card-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));align-content:flex-start;gap:20px;padding:24px;display:grid;overflow-y:auto}.qm-card,.qm-issue-card,.qm-struct-card{background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 2px 8px #0000000a}.qm-card{cursor:pointer;padding:16px;transition:transform .2s,box-shadow .2s}.qm-card:hover,.qm-issue-card:hover,.qm-struct-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 8px 16px #0000000f}.qm-card-head,.qm-issue-header,.qm-struct-head{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.qm-card-title,.qm-issue-title,.qm-struct-title{margin-bottom:4px;font-size:15px;font-weight:600}.qm-card-meta,.qm-issue-meta,.qm-struct-meta{color:#64748b;font-size:12px}.qm-card-badge,.qm-mini-badge,.qm-struct-badge,.qm-issue-badge{border-radius:12px;padding:2px 8px;font-size:12px;font-weight:600}.qm-card-badge.active{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe}.qm-matrix{gap:4px;margin-top:16px;margin-bottom:12px;display:flex}.qm-m-day{color:#fff;background:#e2e8f0;border-radius:4px;flex:1;justify-content:center;align-items:center;height:32px;font-size:12px;font-weight:700;display:flex;position:relative}.qm-m-day:after{content:attr(data-day);color:#64748b;font-size:10px;font-weight:400;position:absolute;top:-16px}.qm-m-day.ok{background:#10b981}.qm-m-day.err{background:#ef4444;box-shadow:0 0 0 2px #ef444433}.qm-m-day.exempt{background:#0ea5e9}.qm-card-footer{border-top:1px dashed #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;font-size:12px;display:flex}.qm-status-text.err{color:#ef4444;font-weight:600}.qm-status-text.exempt{color:#0ea5e9;font-weight:600}.qm-status-text.ok{color:#10b981;font-weight:600}.qm-card-link{color:#2563eb;font-weight:500}.qm-empty-tip{color:#64748b;background:#fff;border:1px dashed #cbd5e1;border-radius:8px;padding:24px}.qm-overlay,.qm-struct-overlay{z-index:999;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a66;display:none;position:fixed;inset:0}.qm-overlay.show,.qm-struct-overlay.show{display:block}.qm-drawer{z-index:1000;background:#fff;flex-direction:column;width:800px;height:100vh;transition:right .3s;display:flex;position:fixed;top:0;right:-800px;box-shadow:-4px 0 24px #0000001a}.qm-drawer.open{right:0}.qm-drawer-header,.qm-modal-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;padding:20px 24px;display:flex}.qm-drawer-title,.qm-modal-title{font-size:18px;font-weight:600}.qm-close-btn{color:#64748b;cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.qm-close-btn:hover{color:#ef4444}.qm-close-btn.light:hover{color:#fff}.qm-info-bar{border-bottom:1px solid #e2e8f0;grid-template-columns:repeat(4,1fr);gap:16px;padding:16px 24px;display:grid}.qm-info-item{flex-direction:column;gap:4px;display:flex}.qm-info-item span{color:#64748b;font-size:12px}.qm-info-item strong{font-size:13px}.qm-info-item strong.blue{color:#2563eb}.qm-drawer-body{flex:1;display:flex;overflow:hidden}.qm-timeline{background:#fafafa;border-right:1px solid #e2e8f0;width:220px;padding:20px;overflow-y:auto}.qm-tl-item{text-align:left;opacity:.6;cursor:pointer;background:0 0;border:none;gap:12px;width:100%;margin-bottom:24px;display:flex;position:relative}.qm-tl-item:before{content:"";background:#e2e8f0;width:2px;position:absolute;top:24px;bottom:-24px;left:11px}.qm-tl-item:last-child:before{display:none}.qm-tl-item.active,.qm-tl-item:hover{opacity:1}.qm-tl-dot{color:#fff;z-index:2;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;font-weight:700;display:flex}.qm-tl-dot.ok{background:#10b981}.qm-tl-dot.err{background:#ef4444}.qm-tl-dot.pending{color:#94a3b8;background:#e2e8f0}.qm-tl-day{margin-bottom:4px;font-size:14px;font-weight:600}.qm-tl-desc{color:#64748b;font-size:12px;line-height:1.4}.qm-tl-desc.err{color:#ef4444}.qm-evidence-panel{flex-direction:column;flex:1;padding:24px;display:flex;overflow-y:auto}.qm-evidence-title,.qm-modal-subtitle{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;font-size:15px;font-weight:600;display:flex}.qm-evidence-viewer{background:#1e293b;border:1px solid #e2e8f0;border-radius:8px;justify-content:center;align-items:center;height:320px;margin-bottom:16px;display:flex;position:relative;overflow:hidden}.qm-evidence-mock{color:#64748b;letter-spacing:2px;font-size:14px}.qm-ai-box{background:#ef44441a;border:2px solid #ef4444;width:120px;height:180px;position:absolute;top:20%;left:40%}.qm-ai-label{color:#fff;background:#ef4444;padding:2px 6px;font-size:12px;font-weight:700;position:absolute;top:-22px;left:-2px}.qm-meta-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:24px;display:grid}.qm-meta-card{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:12px}.qm-meta-card div{color:#64748b;margin-bottom:4px;font-size:12px}.qm-meta-card strong{font-size:13px}.qm-system-note{color:#64748b;background:#fffbeb;border:1px solid #fde68a;border-radius:6px;padding:12px;font-size:13px;line-height:1.6}.qm-system-note strong{color:#d97706}.qm-drawer-footer,.qm-modal-footer,.qm-struct-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.qm-danger-btn{color:#fff;background:#ef4444;padding:8px 16px}.qm-danger-btn:hover,.qm-primary-btn.danger:hover{background:#dc2626}.qm-illegal-layout,.qm-structure-page{flex:1}.qm-illegal-title{font-size:18px;font-weight:600}.qm-filter-chip{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:12px;display:flex}.qm-filter-chip label{cursor:pointer;align-items:center;gap:4px;display:flex}.qm-filter-chip strong{color:#2563eb;font-size:12px}.qm-illegal-workspace,.qm-structure-workspace{flex:1;gap:20px;padding:20px;display:flex;overflow:hidden}.qm-map-panel,.qm-structure-map{background:#0b1120;border:1px solid #e2e8f0;border-radius:12px;flex:2;position:relative;overflow:hidden}.qm-map-grid,.qm-structure-grid{background-image:radial-gradient(#ffffff1a 1px,#0000 1px);background-size:30px 30px;position:absolute;inset:0}.qm-road-area{background:#ffffff0d;flex-direction:column;justify-content:space-between;width:120%;height:160px;display:flex;position:absolute;top:20%;left:-10%;transform:rotate(15deg)}.qm-red-line,.qm-legend-line{border-top:2px dashed #ef4444;width:100%;height:2px;box-shadow:0 0 8px #ef444480}.qm-road-label,.qm-map-brand{color:#ffffff4d;letter-spacing:4px;font-size:24px;font-weight:700;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.qm-map-brand{color:#475569;letter-spacing:2px;font-size:24px;top:20px;left:20px;transform:none}.qm-anomaly-patch{cursor:pointer;background:#f59e0b4d;border:2px solid #f59e0b;border-radius:40% 60% 70% 30%/40% 50% 60%;width:60px;height:45px;position:absolute;top:60%;left:45%;box-shadow:0 0 15px #f59e0b66}.qm-anomaly-patch:hover{background:#f59e0b99;transform:scale(1.1)}.qm-patch-label{color:#fff;white-space:nowrap;background:#f59e0b;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:-24px;left:-10px}.qm-map-legend.dark{color:#e2e8f0;background:#0f172acc;border:1px solid #ffffff1a;border-radius:8px;padding:12px;font-size:12px;position:absolute;bottom:20px;left:20px}.qm-legend-title{margin-bottom:8px;font-weight:700}.qm-legend-row{align-items:center;gap:8px;display:flex}.qm-legend-row+.qm-legend-row{margin-top:6px}.qm-legend-box{width:12px;height:12px}.qm-legend-box.road{background:#ffffff1a}.qm-legend-box.patch{background:#f59e0b66;border:1px solid #f59e0b}.qm-issue-sidebar{flex-direction:column;flex:1;gap:16px;max-width:420px;padding-right:4px;display:flex;overflow-y:auto}.qm-section-title{justify-content:space-between;align-items:center;font-size:16px;font-weight:600;display:flex}.qm-section-title span{color:#ef4444;background:#fee2e2;border-radius:12px;padding:2px 8px;font-size:12px;font-weight:400}.qm-issue-card{cursor:pointer;border-left:4px solid #f59e0b;padding:16px;transition:all .2s}.qm-issue-card.danger{border-left-color:#ef4444}.qm-issue-badge.warning{color:#f59e0b}.qm-issue-badge.danger{color:#ef4444}.qm-issue-preview{color:#64748b;background:#e2e8f0;border:1px solid #cbd5e1;border-radius:6px;justify-content:center;align-items:center;height:120px;margin-bottom:12px;font-size:12px;display:flex;position:relative}.qm-issue-preview span{color:#fff;background:#0009;border-radius:2px;padding:2px 4px;font-size:10px;position:absolute;bottom:4px;right:4px}.qm-issue-actions{gap:8px;display:flex}.qm-primary-btn{color:#fff;background:#2563eb;padding:8px 16px}.qm-primary-btn.danger{background:#ef4444}.qm-modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172a99;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.qm-modal-overlay.show{display:flex}.qm-modal{background:#fff;border-radius:12px;flex-direction:column;width:860px;display:flex;overflow:hidden;box-shadow:0 20px 25px -5px #0003}.qm-mini-badge{color:#c2410c;background:#ffedd5;border-radius:4px;margin-right:8px}.qm-modal-body{padding:24px}.qm-evidence-meta{background:#f1f5f9;border-radius:6px;justify-content:space-between;margin-bottom:20px;padding:12px 16px;font-size:13px;display:flex}.qm-evidence-meta b{color:#ef4444}.qm-evidence-meta .warning{color:#f59e0b;font-weight:600}.qm-slider-container{background:#1e293b;border:1px solid #e2e8f0;border-radius:8px;width:100%;height:360px;position:relative;overflow:hidden}.qm-img-after,.qm-img-before{justify-content:center;align-items:center;height:100%;display:flex;position:absolute;top:0;left:0}.qm-img-after{background:#475569;flex-direction:column;width:100%}.qm-after-title{color:#94a3b8;margin-bottom:20px;font-size:20px;font-weight:700}.qm-mock-waste{background:#cbd5e1;border-radius:40% 60% 70% 30%/40% 50% 60%;width:180px;height:120px;box-shadow:inset 0 0 20px #0000001a}.qm-mock-waste div{text-align:center;color:#475569;margin-top:50px;font-size:12px;font-weight:700}.qm-img-before{background:#166534;border-right:2px solid #fff;overflow:hidden}.qm-mock-grass{color:#86efac;letter-spacing:4px;justify-content:center;align-items:center;min-width:860px;height:100%;font-size:24px;font-weight:700;display:flex}.qm-img-label{color:#fff;background:#0009;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:700;position:absolute;top:12px}.qm-img-label.left{left:12px}.qm-img-label.right{right:12px}.qm-slider-input{z-index:11;opacity:0;cursor:ew-resize;width:100%;height:100%;position:absolute;inset:0}.qm-slider-handle{pointer-events:none;z-index:10;justify-content:center;align-items:center;width:40px;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.qm-slider-btn{color:#2563eb;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex;box-shadow:0 2px 6px #0000004d}.qm-modal-actions,.qm-struct-actions{gap:12px;display:flex}.qm-structure-topbar{box-shadow:0 2px 10px #00000005}.qm-structure-sidebar{background:#fff;border-right:1px solid #e2e8f0;flex-direction:column;width:360px;display:flex;box-shadow:0 2px 8px #0000000a}.qm-structure-filter-section{background:#f8fafc;border-bottom:1px solid #e2e8f0;padding:16px 20px}.qm-filter-label.space-top{margin-top:16px;margin-bottom:8px;display:block}.qm-status-filters{gap:8px;display:flex}.qm-status-btn{cursor:pointer;border:1px solid #0000;border-radius:4px;flex:1;padding:6px 0;font-size:12px;font-weight:600}.qm-status-btn.red{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.qm-status-btn.yellow{color:#c2410c;opacity:.6;background:#ffedd5}.qm-status-btn.green{color:#166534;opacity:.6;background:#dcfce3}.qm-structure-list{flex-direction:column;flex:1;gap:12px;padding:12px;display:flex;overflow-y:auto}.qm-struct-card{cursor:pointer;padding:16px;transition:all .2s}.qm-struct-card.danger{background:#fffcfc;border-left:4px solid #ef4444}.qm-struct-card.warning{border-left:4px solid #f59e0b}.qm-struct-card.safe{border-left:4px solid #10b981}.qm-struct-badge.danger{color:#fff;background:#ef4444}.qm-struct-badge.warning{color:#fff;background:#f59e0b}.qm-struct-badge.safe{color:#10b981}.qm-struct-meta+.qm-struct-meta{margin-top:4px}.qm-struct-meta.danger{color:#ef4444;font-weight:700}.qm-struct-meta.warning{color:#f59e0b;font-weight:700}.qm-structure-grid{background-size:40px 40px;width:200%;height:200%;top:-50%;left:-50%;transform:perspective(500px)rotateX(60deg)}.qm-structure-pin{cursor:pointer;border:none;border-radius:50%;width:16px;height:16px;position:absolute;transform:translate(-50%,-50%)}.qm-structure-pin:after{content:attr(data-label);white-space:nowrap;color:#fff;background:#0009;border-radius:4px;padding:2px 6px;font-size:12px;position:absolute;top:20px;left:50%;transform:translate(-50%)}.qm-structure-pin.safe{background:#10b981;box-shadow:0 0 10px #10b981}.qm-structure-pin.warn{background:#f59e0b;box-shadow:0 0 15px #f59e0b}.qm-structure-pin.danger{background:#ef4444;border:2px solid #fff;animation:1.5s infinite qmPulse;box-shadow:0 0 20px #ef4444}@keyframes qmPulse{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 20px #ef444400}to{box-shadow:0 0 #ef444400}}.qm-struct-drawer{z-index:1001;color:#fff;background:#0f172a;flex-direction:column;width:90%;height:100%;transition:right .4s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-90%;box-shadow:-4px 0 24px #0000001a}.qm-struct-drawer.open{right:0}.qm-struct-drawer-header{border-bottom:1px solid #1e293b;justify-content:space-between;align-items:center;padding:20px 32px;display:flex}.qm-struct-drawer-title{align-items:center;gap:12px;font-size:20px;font-weight:600;display:flex}.qm-danger-pill{color:#fff;background:#ef4444;border-radius:6px;padding:4px 12px;font-size:14px}.qm-summary-grid{background:#1e293b;border-bottom:1px solid #334155;grid-template-columns:repeat(4,1fr);gap:16px;padding:20px 32px;display:grid}.qm-sum-card{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:16px}.qm-sum-card div{color:#94a3b8;margin-bottom:8px;font-size:12px}.qm-sum-card strong{font-size:20px}.qm-sum-card span{font-size:12px;font-weight:400}.qm-struct-drawer-body{background:#0b1120;flex:1;grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr;gap:20px;padding:24px 32px;display:grid;overflow-y:auto}.qm-view-panel{background:#1e293b;border:1px solid #334155;border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.qm-view-panel.large{grid-row:span 2}.qm-vp-title{background:#0003;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.qm-vp-title span:last-child{color:#94a3b8;font-size:12px;font-weight:400}.qm-vp-content{flex:1;justify-content:center;align-items:center;display:flex;position:relative}.qm-vp-content.dark{background:#0f172a}.qm-mock-point-cloud{background:radial-gradient(circle,#334155 0%,#0f172a 100%);border:1px dashed #475569;border-radius:20px;justify-content:center;align-items:center;width:80%;height:80%;display:flex;position:relative}.qm-point-cloud-text{color:#475569;letter-spacing:2px;font-size:20px;font-weight:700}.qm-pc-heat{filter:blur(10px);background:radial-gradient(circle,#ef4444cc 0%,#0000 70%);width:150px;height:150px;position:absolute;top:30%;left:40%}.qm-pc-tooltip{background:#000c;border:1px solid #ef4444;border-radius:6px;padding:8px 12px;font-size:12px;position:absolute;top:40%;left:55%;box-shadow:0 0 10px #ef444480}.qm-pc-tooltip b{color:#fca5a5;font-size:16px}.qm-mini-outline{color:#bfdbfe;background:0 0;border:1px solid #2563eb;padding:2px 8px;font-size:12px}.qm-mock-crack-img{background-color:#475569;background-image:linear-gradient(45deg,#334155 25%,#0000 25% 75%,#334155 75%,#334155),linear-gradient(45deg,#334155 25%,#0000 25% 75%,#334155 75%,#334155);background-position:0 0,10px 10px;background-repeat:repeat;background-size:20px 20px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;width:100%;height:100%;position:relative}.qm-crack-label{background:#ef4444;border-radius:4px;padding:2px 6px;font-size:10px;font-weight:700;position:absolute;top:10%;left:35%}.qm-crack-line{filter:drop-shadow(0 0 4px red);cursor:pointer;border-bottom:3px solid #ef4444;border-left:3px solid #ef4444;width:120px;height:80px;position:absolute;top:20%;left:30%;transform:rotate(-15deg)}.qm-chart-container{border-bottom:1px solid #475569;border-left:1px solid #475569;align-items:flex-end;width:90%;height:80%;padding-bottom:20px;padding-left:30px;display:flex;position:relative}.qm-y-label{color:#94a3b8;font-size:10px;position:absolute;left:-30px}.qm-y-label.top{top:0}.qm-y-label.bottom{bottom:0}.qm-limit-line{z-index:1;width:100%;position:absolute}.qm-limit-line.red{border-top:1px solid #ef4444;top:20%}.qm-limit-line.yellow{border-top:1px dashed #f59e0b;top:40%}.qm-limit-line span{font-size:10px;position:absolute;top:-16px;right:0}.qm-limit-line.red span{color:#ef4444}.qm-limit-line.yellow span{color:#f59e0b}.qm-chart-svg{z-index:5;overflow:visible}.qm-struct-footer{background:#0f172a;border-top:1px solid #1e293b;padding:16px 32px}.qm-outline-dark-btn{color:#fff;background:0 0;border:1px solid #475569;padding:10px 20px;font-size:14px;font-weight:600}.qm-outline-dark-btn:hover{background:#1e293b}.qm-outline-dark-btn.blue{color:#bfdbfe;border-color:#2563eb}@media (width<=1280px){.qm-illegal-workspace,.qm-structure-workspace{flex-direction:column}.qm-issue-sidebar,.qm-structure-sidebar{width:100%;max-width:none}.qm-summary-grid,.qm-info-bar{grid-template-columns:repeat(2,1fr)}}@media (width<=992px){.qm-drawer,.qm-struct-drawer{width:100%;right:-100%}.qm-struct-drawer-body{grid-template-rows:auto;grid-template-columns:1fr}.qm-view-panel.large{grid-row:auto}}@media (width<=768px){.qm-header-row,.qm-filter-bar,.qm-illegal-topbar,.qm-structure-topbar,.qm-drawer-footer,.qm-modal-footer,.qm-struct-footer{flex-direction:column;align-items:stretch;padding-left:16px;padding-right:16px}.qm-tab-row{gap:16px;overflow-x:auto}.qm-card-grid,.qm-illegal-workspace,.qm-structure-workspace,.qm-struct-drawer-body{padding:16px}.qm-meta-grid,.qm-summary-grid,.qm-info-bar,.qm-evidence-meta{grid-template-columns:1fr;display:grid}.qm-drawer-body{flex-direction:column}.qm-timeline{border-bottom:1px solid #e2e8f0;border-right:none;width:100%}.qm-modal{width:calc(100vw - 24px)}}.safety-page{color:#0f172a;background:#f1f5f9;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.safety-topbar{background:#fffffff5;border-bottom:1px solid #e2e8f0;flex-direction:column;flex-shrink:0;padding:0 24px;display:flex}.safety-header-row{border-bottom:1px solid #f1f5f9;justify-content:space-between;align-items:center;gap:16px;min-height:72px;display:flex}.safety-header-main{align-items:center;gap:12px;min-width:0;display:flex}.safety-back-btn{color:#334155;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.safety-back-btn:hover{background:#f8fafc}.safety-breadcrumb{white-space:nowrap;font-size:18px;font-weight:600}.safety-header-controls{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.safety-header-filter{color:#475569;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:8px;min-height:38px;padding:0 12px;display:inline-flex}.safety-header-filter input,.safety-header-filter select{color:#0f172a;background:0 0;border:none;outline:none;font-size:13px}.safety-header-filter input[type=date]{min-width:132px}.safety-tab-row{align-items:flex-end;gap:32px;height:48px;display:flex}.safety-tab-item{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-bottom:3px solid #0000;padding:10px 4px;font-size:15px;font-weight:500;transition:all .2s}.safety-tab-item:hover{color:#0f172a}.safety-tab-item.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600}.safety-workspace{flex:1;overflow:hidden}.safety-tab-panel{height:100%;padding:20px;overflow-y:auto}.safety-stats-wrapper{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-bottom:20px;display:grid}.safety-stat-card,.safety-object-stat-card,.safety-side-card,.safety-vehicle-stat-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:20px;position:relative;box-shadow:0 2px 8px #0f172a0a}.safety-stat-card:before,.safety-vehicle-stat-card:before{content:"";border-radius:12px 0 0 12px;width:4px;position:absolute;top:0;bottom:0;left:0}.safety-stat-card.blue:before,.safety-vehicle-stat-card.blue:before{background:#2563eb}.safety-stat-card.red:before,.safety-vehicle-stat-card.red:before{background:#ef4444}.safety-stat-card.orange:before,.safety-vehicle-stat-card.orange:before{background:#f59e0b}.safety-stat-card.yellow:before,.safety-vehicle-stat-card.yellow:before{background:#eab308}.safety-stat-title,.safety-object-stat-label,.safety-side-card-sub,.safety-vehicle-stat-label{color:#64748b;font-size:13px}.safety-stat-value-row{flex-wrap:wrap;align-items:baseline;gap:8px;margin-top:8px;display:flex}.safety-stat-value,.safety-vehicle-stat-value{font-size:28px;font-weight:700}.safety-stat-value.blue{color:#2563eb}.safety-stat-value.red{color:#ef4444}.safety-stat-value.orange{color:#f59e0b}.safety-stat-value.yellow{color:#eab308}.safety-stat-trend{border-radius:999px;padding:2px 6px;font-size:12px}.safety-stat-trend.flat,.safety-stat-trend.down{color:#15803d;background:#dcfce7}.safety-stat-trend.up{color:#b91c1c;background:#fee2e2}.safety-filter-bar{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:20px;padding:16px 20px;display:flex;box-shadow:0 2px 8px #0f172a0a}.safety-filter-item{align-items:center;gap:8px;font-size:14px;display:flex}.safety-filter-label{color:#64748b;font-weight:600}.safety-filter-select{color:#0f172a;cursor:pointer;background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;padding:7px 12px}.safety-evidence-header,.safety-section-title,.safety-side-card-title{align-items:center;gap:8px;font-size:16px;font-weight:600;display:flex}.safety-live-pill{color:#64748b;background:#e2e8f0;border-radius:999px;padding:2px 8px;font-size:13px;font-weight:400}.safety-evidence-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:20px;padding-top:16px;padding-bottom:20px;display:grid}.safety-evidence-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;transition:transform .2s,box-shadow .2s;display:flex;overflow:hidden;box-shadow:0 2px 8px #0f172a0a}.safety-evidence-card:hover{border-color:#cbd5e1;transform:translateY(-4px);box-shadow:0 12px 24px #0f172a14}.safety-card-img-box{color:#f8fafc;background:linear-gradient(#cbd5e1 0%,#94a3b8 100%);justify-content:center;align-items:center;height:180px;display:flex;position:relative;overflow:hidden}.safety-drone-osd{z-index:3;color:#10b981;text-shadow:1px 1px #000;font-family:monospace;font-size:10px;position:absolute;top:8px;left:8px}.safety-card-canvas-label{font-size:12px}.safety-ai-bounding-box{z-index:2;background:#ef444414;border:2px solid;position:absolute}.safety-ai-bounding-box.red{border-color:#ef4444}.safety-ai-bounding-box.orange{background:#f59e0b14;border-color:#f59e0b}.safety-ai-bounding-box.yellow{background:#eab30814;border-color:#eab308}.safety-ai-label{color:#fff;white-space:nowrap;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:-22px;left:-2px}.safety-ai-label.red{background:#ef4444}.safety-ai-label.orange{background:#f59e0b}.safety-ai-label.yellow{color:#713f12;background:#eab308}.safety-card-content{flex:1;padding:16px}.safety-tag{border:1px solid;border-radius:999px;margin-bottom:8px;padding:2px 8px;font-size:12px;font-weight:600;display:inline-block}.safety-tag.red{color:#b91c1c;background:#fee2e2;border-color:#fca5a5}.safety-tag.orange{color:#c2410c;background:#ffedd5;border-color:#fdba74}.safety-tag.yellow{color:#a16207;background:#fef9c3;border-color:#fde047}.safety-card-title,.safety-list-title{margin-bottom:12px;font-size:15px;font-weight:600;line-height:1.4}.safety-card-meta,.safety-list-meta{color:#64748b;align-items:flex-start;gap:6px;margin-bottom:6px;font-size:12px;line-height:1.5;display:flex}.safety-card-strong{color:#0f172a;font-weight:600}.safety-card-status-row{background:#f8fafc;border:1px solid #e2e8f0;border-radius:999px;align-items:center;gap:8px;margin-top:10px;padding:6px 10px;font-size:12px;display:inline-flex}.safety-inline-label{color:#64748b}.safety-card-actions,.safety-list-actions,.safety-modal-footer,.safety-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.safety-card-actions{background:#f8fafc;border-top:1px solid #f1f5f9;padding:12px 16px}.safety-action-group{gap:8px;display:flex}.safety-btn-export,.safety-btn-primary,.safety-btn-ignore,.safety-btn-secondary,.safety-btn-primary-sm,.safety-btn-icon,.safety-modal-close{cursor:pointer;border-radius:8px;font-size:13px}.safety-btn-export,.safety-btn-secondary,.safety-btn-ignore{color:#475569;background:#fff;border:1px solid #e2e8f0;justify-content:center;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.safety-btn-export:hover,.safety-btn-secondary:hover,.safety-btn-ignore:hover{background:#f8fafc}.safety-btn-primary,.safety-btn-primary-sm{color:#fff;background:#2563eb;border:none;justify-content:center;align-items:center;gap:6px;padding:8px 12px;display:inline-flex}.safety-btn-primary:hover,.safety-btn-primary-sm:hover{background:#1d4ed8}.safety-btn-primary.rounded{border-radius:999px;padding-left:16px;padding-right:16px}.safety-btn-icon{color:#2563eb;background:0 0;border:none;align-items:center;gap:4px;font-weight:500;display:inline-flex}.safety-btn-icon:hover{text-decoration:underline}.safety-toolbar{margin-bottom:16px}.safety-object-stats,.safety-vehicle-stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:20px;display:grid}.safety-object-stat-value{margin-top:8px;font-size:24px;font-weight:700}.safety-object-stat-value.red{color:#ef4444}.safety-object-stat-value.orange{color:#f59e0b}.safety-object-stat-value.blue{color:#2563eb}.safety-vehicle-stat-card.red .safety-vehicle-stat-value{color:#ef4444}.safety-vehicle-stat-card.orange .safety-vehicle-stat-value{color:#f59e0b}.safety-vehicle-stat-card.blue .safety-vehicle-stat-value{color:#2563eb}.safety-vehicle-stat-card.yellow .safety-vehicle-stat-value{color:#ca8a04}.safety-split-view{gap:20px;height:calc(100vh - 280px);min-height:520px;display:flex}.safety-split-list{flex:0 0 400px;padding-right:4px;overflow-y:auto}.safety-split-tip{color:#64748b;margin-bottom:12px;font-size:13px}.safety-list-card{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-left-width:4px;border-radius:12px;margin-bottom:12px;padding:16px;transition:all .2s}.safety-list-card.red{border-left-color:#ef4444}.safety-list-card.orange{border-left-color:#f59e0b}.safety-list-card.muted{opacity:.75}.safety-list-card.active-card{border-color:#2563eb;transform:translate(4px);box-shadow:0 8px 20px #2563eb24}.safety-list-detail{margin-top:6px;font-size:12px}.safety-list-detail.red{color:#ef4444}.safety-list-detail.orange{color:#f59e0b}.safety-list-detail.muted{color:#64748b}.safety-split-map{background:#0f172a;border:1px solid #e2e8f0;border-radius:12px;flex:1;position:relative;overflow:hidden}.safety-object-visualization{color:#94a3b8;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.safety-object-visual-title{margin-bottom:20px;font-size:14px;font-weight:700}.safety-object-scene{width:min(560px,82%);height:300px;position:relative}.safety-object-scene.steel .safety-scene-ground{background:#334155;border-radius:4px;width:100%;height:20px;position:absolute;bottom:24px;left:0}.safety-height-ruler{border-bottom:2px solid #64748b;border-left:2px solid #64748b;width:30px;height:190px;position:absolute;bottom:44px;left:10px}.safety-limit-line{background:#ef4444;height:2px;position:absolute;bottom:150px;left:60px;right:0}.safety-steel-pile{color:#fff;background:linear-gradient(#ef4444 0%,#94a3b8 30%,#64748b 100%);border:2px solid #475569;border-radius:4px 4px 0 0;justify-content:center;align-items:flex-end;width:110px;height:190px;padding-bottom:12px;font-size:24px;font-weight:700;display:flex;position:absolute;bottom:44px;left:50%;transform:translate(-50%)}.safety-road-block,.safety-pit-ground{border-radius:4px;position:absolute;top:50%;transform:translateY(-50%)}.safety-road-block{background:#64748b;width:220px;height:64px;left:20px}.safety-soil-block{color:#fff;background:linear-gradient(90deg,#f59e0b,#ef4444);border:2px solid #ef4444;border-radius:4px;justify-content:center;align-items:center;width:150px;height:86px;font-weight:700;display:flex;position:absolute;top:50%;left:260px;transform:translateY(-50%)}.safety-scene-warning{color:#ef4444;font-size:12px;font-weight:700;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.safety-pit-ground{background:#475569;height:120px;bottom:0;left:0;right:0}.safety-pit-hole{color:#fff;text-align:center;background:linear-gradient(#ef4444 48%,#1e293b 48%);border:2px solid #ef4444;border-radius:4px;justify-content:center;align-items:center;width:180px;height:120px;font-weight:700;display:flex;position:absolute;top:50px;left:60px}.safety-pit-worker{color:#f59e0b;font-size:12px;position:absolute;bottom:132px;left:100px}.safety-water-pool{background:radial-gradient(#3b82f699 0%,#0000 70%);border:2px dashed #3b82f6;border-radius:50%;width:180px;height:110px;position:absolute;inset:70px auto auto 50%;transform:translate(-50%)}.safety-water-note{color:#fff;background:#3b82f6e6;border-radius:6px;padding:8px;font-size:11px;position:absolute;top:20px;right:16px}.safety-visual-panel{color:#fff;border-radius:8px;padding:12px;font-size:12px;position:absolute;top:18px;right:18px}.safety-visual-panel.red{background:#ef4444e6}.safety-visual-panel.orange{background:#f59e0be6}.safety-visual-panel.blue{background:#3b82f6e6}.safety-visual-panel-title{margin-bottom:6px;font-weight:700}.safety-visual-panel-row+.safety-visual-panel-row{margin-top:4px}.safety-map-legend{background:#0f172ae6;border:1px solid #334155;border-radius:8px;padding:10px;position:absolute;bottom:20px;left:20px}.safety-map-legend-title{color:#94a3b8;margin-bottom:6px;font-size:11px}.safety-map-legend-row{color:#cbd5e1;align-items:center;gap:8px;font-size:10px;display:flex}.safety-map-gradient{background:linear-gradient(90deg,#10b981,#f59e0b,#ef4444);border-radius:2px;width:60px;height:12px}.safety-vehicle-list{max-width:1120px;margin:0 auto}.safety-vehicle-list.upgraded{flex-direction:column;gap:16px;display:flex}.safety-vehicle-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;grid-template-columns:180px minmax(0,1fr) 180px;gap:18px;padding:18px;display:grid;box-shadow:0 2px 8px #0f172a0a}.safety-vehicle-card.danger{background:linear-gradient(#fff 0%,#fef2f2 100%);border-color:#fecaca}.safety-vehicle-card.warning{background:linear-gradient(#fff 0%,#fffbeb 100%);border-color:#fde68a}.safety-vehicle-cover{color:#fff;text-align:center;background:linear-gradient(#94a3b8 0%,#475569 100%);border-radius:12px;justify-content:center;align-items:center;min-height:138px;padding:16px;font-size:13px;font-weight:600;display:flex}.safety-vehicle-main{flex-direction:column;gap:16px;min-width:0;display:flex}.safety-vehicle-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.safety-vehicle-title-row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.safety-vehicle-title-row h3{margin:0;font-size:18px}.safety-vehicle-badge{border-radius:999px;justify-content:center;align-items:center;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.safety-vehicle-badge.danger{color:#b91c1c;background:#fee2e2}.safety-vehicle-badge.warning{color:#b45309;background:#fef3c7}.safety-vehicle-submeta{color:#64748b;margin-top:6px;font-size:13px;line-height:1.6}.safety-vehicle-status{color:#1d4ed8;white-space:nowrap;background:#eff6ff;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700}.safety-vehicle-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.safety-vehicle-metric{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:14px}.safety-vehicle-metric span{color:#64748b;margin-bottom:8px;font-size:12px;display:block}.safety-vehicle-metric strong{color:#0f172a;font-size:22px}.safety-vehicle-metric small{color:#64748b;margin-left:4px;font-size:11px}.safety-vehicle-metric.danger{background:#fff1f2;border-color:#fecaca}.safety-vehicle-metric.danger strong{color:#dc2626}.safety-vehicle-note-row{flex-direction:column;gap:10px;display:flex}.safety-drone-action-tag{color:#047857;background:#ecfdf5;border:1px solid #a7f3d0;border-radius:999px;align-items:center;gap:4px;width:fit-content;max-width:100%;padding:6px 10px;font-size:12px;display:inline-flex}.safety-vehicle-risk{color:#475569;font-size:13px}.safety-vehicle-actions{flex-direction:column;justify-content:center;gap:10px;display:flex}.safety-area-layout{gap:20px;height:calc(100vh - 200px);min-height:520px;display:flex}.safety-area-map-wrap{flex:1}.safety-area-map{background:linear-gradient(#dbeafe 0%,#cbd5e1 40%,#94a3b8 100%);border:1px solid #e2e8f0;border-radius:16px;width:100%;height:100%;position:relative;overflow:hidden}.safety-area-layers{z-index:2;background:#fffffff5;border-radius:12px;width:250px;padding:14px;position:absolute;top:20px;left:20px;box-shadow:0 8px 24px #0f172a14}.safety-area-layers-title{margin-bottom:10px;font-size:13px;font-weight:700}.safety-layer-toggle{cursor:pointer;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.safety-map-helper{color:#64748b;border-top:1px dashed #cbd5e1;margin-top:10px;padding-top:10px;font-size:12px;line-height:1.6}.safety-area-stage{position:absolute;inset:0}.safety-area-point{z-index:1;color:#fff;cursor:pointer;background:#0f172ac7;border:1px solid #fffc;border-radius:999px;align-items:center;gap:8px;padding:8px 12px;display:flex;position:absolute;transform:translate(-50%,-50%);box-shadow:0 8px 20px #0f172a33}.safety-area-point.animals{background:#b45309d1}.safety-area-point.personnelClusters{background:#1d4ed8d1}.safety-area-point.vehicleClusters{background:#991b1bd1}.safety-area-point.selected{outline:3px solid #ffffff8c}.safety-area-point-icon{background:#ffffff2e;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;display:inline-flex}.safety-area-point-label{white-space:nowrap;font-size:12px;font-weight:600}.safety-area-cta{z-index:2;background:#fffffffa;border-radius:999px;align-items:center;gap:16px;padding:12px 24px;display:flex;position:absolute;bottom:20px;left:50%;transform:translate(-50%);box-shadow:0 8px 24px #0f172a14}.safety-area-cta span{color:#64748b;white-space:nowrap;font-size:13px}.safety-area-sidebar{flex-direction:column;gap:16px;width:360px;display:flex}.safety-progress-block+.safety-progress-block{margin-top:12px}.safety-progress-row,.safety-count-row{justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.safety-progress-track{background:#e2e8f0;border-radius:3px;width:100%;height:6px;margin-top:8px;overflow:hidden}.safety-progress-fill{border-radius:3px;height:100%}.safety-progress-fill.green{background:#10b981}.safety-progress-fill.orange{background:#f59e0b}.safety-count-row+.safety-count-row{border-top:1px dashed #e2e8f0;margin-top:12px;padding-top:12px}.safety-count-row strong{color:#2563eb;font-family:monospace;font-size:18px}.safety-eco-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:14px;display:grid}.safety-eco-item{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.safety-eco-item span{color:#64748b;font-size:12px;display:block}.safety-eco-item strong{color:#0f172a;margin-top:8px;font-size:22px;display:block}.safety-suggestion-list{flex-direction:column;gap:12px;margin-top:16px;display:flex}.safety-suggestion-card{background:#fffbeb;border:1px solid #fde68a;border-radius:12px;padding:14px}.safety-suggestion-head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;display:flex}.safety-suggestion-head strong{font-size:14px}.safety-suggestion-priority{color:#b45309;background:#fef3c7;border-radius:999px;padding:2px 8px;font-size:11px;font-weight:700}.safety-suggestion-text{color:#0f172a;font-size:13px;line-height:1.7}.safety-suggestion-meta{color:#64748b;margin-top:6px;font-size:12px}.safety-side-card.warning{background:#fff}.safety-modal-overlay{z-index:300;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a66;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.safety-modal-box,.safety-evidence-modal,.safety-advice-modal,.safety-lightbox{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 20px 25px -5px #0000001a}.safety-modal-box{width:min(480px,100vw - 32px)}.safety-evidence-modal{flex-direction:column;width:min(980px,100vw - 32px);max-height:calc(100vh - 32px);display:flex}.safety-advice-modal{flex-direction:column;width:min(760px,100vw - 32px);max-height:calc(100vh - 32px);display:flex}.safety-lightbox{width:min(840px,100vw - 32px)}.safety-modal-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;font-weight:600;display:flex}.safety-modal-close{color:#94a3b8;background:0 0;border:none;font-size:22px}.safety-modal-body{color:#64748b;padding:24px;font-size:14px}.safety-modal-body.evidence{overflow-y:auto}.safety-modal-summary{color:#0f172a;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin:16px 0;padding:12px;font-weight:600;line-height:1.7}.safety-modal-summary span{margin-left:4px}.safety-modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;padding:16px 24px}.safety-evidence-badge{color:#1d4ed8;background:#eff6ff;border-radius:999px;justify-content:center;align-items:center;margin-bottom:14px;padding:4px 10px;font-size:12px;font-weight:700;display:inline-flex}.safety-evidence-stage{grid-template-columns:1.2fr .8fr;gap:16px;margin-bottom:16px;display:grid}.safety-evidence-video-box,.safety-evidence-image-box,.safety-lightbox-stage{text-align:center;border-radius:14px;justify-content:center;align-items:center;min-height:240px;padding:20px;display:flex}.safety-evidence-video-box{color:#e2e8f0;background:linear-gradient(#0f172a 0%,#1e293b 100%)}.safety-evidence-image-box{color:#334155;background:#f8fafc;border:1px dashed #94a3b8;flex-direction:column;gap:10px}.safety-evidence-image-box span{color:#2563eb;font-size:12px}.safety-evidence-meta-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}.safety-evidence-meta-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;padding:12px}.safety-evidence-meta-card span{color:#64748b;margin-bottom:8px;font-size:12px;display:block}.safety-evidence-meta-card strong{color:#0f172a;line-height:1.6;display:block}.safety-evidence-gallery{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:16px;display:grid}.safety-evidence-thumb{color:#334155;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;min-height:96px;padding:14px}.safety-lightbox-stage{color:#f8fafc;background:linear-gradient(#0f172a 0%,#1e293b 100%);min-height:420px;font-size:16px}.safety-advice-tip{color:#1d4ed8;background:#eff6ff;border-radius:12px;margin-bottom:16px;padding:12px 14px;line-height:1.7}.safety-advice-form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.safety-advice-form-grid label{flex-direction:column;gap:8px;display:flex}.safety-advice-form-grid label.full{grid-column:1/-1}.safety-advice-form-grid span{color:#334155;font-size:13px;font-weight:600}.safety-advice-form-grid input,.safety-advice-form-grid select,.safety-advice-form-grid textarea{color:#0f172a;resize:vertical;background:#f8fafc;border:1px solid #cbd5e1;border-radius:10px;outline:none;width:100%;padding:10px 12px;font-size:14px}.safety-advice-form-grid textarea{min-height:120px}.safety-empty-card,.safety-mini-empty{color:#64748b;text-align:center;background:#fff;border:1px dashed #cbd5e1;border-radius:12px;padding:18px}.safety-mini-empty{margin-top:12px;padding:12px;font-size:12px}@media (width<=1440px){.safety-vehicle-card{grid-template-columns:160px minmax(0,1fr)}.safety-vehicle-actions{flex-direction:row;grid-column:1/-1;justify-content:flex-end}}@media (width<=1280px){.safety-stats-wrapper,.safety-object-stats,.safety-vehicle-stats-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.safety-split-view,.safety-area-layout{flex-direction:column;height:auto}.safety-split-list,.safety-area-sidebar{flex:none;width:100%}.safety-split-map,.safety-area-map-wrap{min-height:520px}.safety-evidence-stage,.safety-evidence-meta-grid{grid-template-columns:1fr 1fr}}@media (width<=992px){.safety-header-row{flex-direction:column;align-items:flex-start;padding:16px 0}.safety-header-controls{justify-content:flex-start;width:100%}.safety-vehicle-card,.safety-vehicle-metrics,.safety-evidence-stage,.safety-evidence-meta-grid,.safety-advice-form-grid,.safety-eco-grid{grid-template-columns:1fr}.safety-area-cta{border-radius:16px;flex-direction:column;align-items:flex-start;width:calc(100% - 32px);transform:translate(-50%)}}@media (width<=768px){.safety-topbar,.safety-tab-panel{padding-left:16px;padding-right:16px}.safety-tab-row{gap:16px;overflow-x:auto}.safety-stats-wrapper,.safety-object-stats,.safety-vehicle-stats-grid,.safety-evidence-grid{grid-template-columns:1fr}.safety-card-actions,.safety-toolbar,.safety-list-actions,.safety-vehicle-head,.safety-vehicle-actions,.safety-action-group,.safety-suggestion-head{flex-direction:column;align-items:stretch}.safety-btn-export,.safety-btn-primary,.safety-btn-secondary,.safety-btn-ignore,.safety-btn-primary-sm{width:100%}.safety-split-map,.safety-area-map-wrap{min-height:420px}.safety-area-layers{width:calc(100% - 32px)}.safety-area-point{padding:8px 10px}.safety-area-point-label{text-overflow:ellipsis;max-width:116px;overflow:hidden}.safety-object-scene{width:92%}.safety-modal-header,.safety-modal-body,.safety-modal-footer{padding-left:16px;padding-right:16px}.safety-lightbox-stage{min-height:280px}}.sw-page{color:#0f172a;background:#f4f7fb;flex-direction:column;height:100%;display:flex;overflow:hidden}.sw-topbar{z-index:10;background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:20px;padding:16px 24px;display:flex;box-shadow:0 1px 4px #00000005}.sw-header-main{align-items:center;gap:12px;display:flex}.sw-back-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.sw-back-btn:hover{background:#f8fafc}.sw-header-title{align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.sw-header-actions{gap:12px;display:flex}.sw-btn{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:500;transition:all .2s;display:inline-flex}.sw-btn-outline{color:#0f172a;background:#fff;border-color:#cbd5e1}.sw-btn-outline:hover{background:#f8fafc;border-color:#94a3b8}.sw-btn-primary{color:#fff;background:#2563eb}.sw-btn-primary:hover{background:#1d4ed8}.sw-filter-bar{background:#fff;border-bottom:1px solid #e2e8f0;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 24px;display:flex}.sw-filter-item{align-items:center;gap:8px;font-size:13px;display:flex}.sw-filter-label{color:#64748b;font-weight:600}.sw-select-box,.sw-date-picker{color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:4px;outline:none;padding:6px 12px;font-size:13px}.sw-select-box:focus,.sw-date-picker:focus{border-color:#2563eb}.sw-stat-capsule{color:#b45309;background:#fef3c7;border:1px solid #fde68a;border-radius:20px;margin-left:auto;padding:4px 12px;font-size:12px;font-weight:700}.sw-results-container{flex:1;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));align-content:flex-start;gap:20px;padding:24px;display:grid;overflow-y:auto}.sw-evidence-card{cursor:pointer;text-align:left;background:#fff;border:1px solid #e2e8f0;border-radius:8px;transition:all .2s;position:relative;overflow:hidden;box-shadow:0 2px 8px #0000000a}.sw-evidence-card:hover{border-color:#94a3b8;transform:translateY(-4px);box-shadow:0 4px 16px #00000014}.sw-image-box{background:#e2e8f0;justify-content:center;align-items:center;height:160px;display:flex;position:relative;overflow:hidden}.sw-image-mock{color:#64748b;letter-spacing:1px;font-size:13px;font-weight:500}.sw-tag{color:#fff;z-index:2;background:#000000b3;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;font-weight:700;display:flex;position:absolute;top:12px;left:12px}.sw-tag.danger{background:#ef4444e6}.sw-tag.warning{background:#f59e0be6}.sw-detect-box{background:#ef444426;border:2px solid #ef4444;width:60%;height:50%;position:absolute;top:25%;left:20%;box-shadow:0 0 8px #ef44444d}.sw-detect-box.warning{background:#f59e0b33;border-color:#f59e0b;width:40%;height:60%;left:50%}.sw-card-content{padding:16px}.sw-card-title{margin-bottom:8px;font-size:15px;font-weight:600;line-height:1.4}.sw-meta-grid{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px;display:grid}.sw-meta-item{color:#64748b;flex-direction:column;gap:2px;font-size:12px;display:flex}.sw-meta-value{color:#0f172a;font-weight:600}.sw-meta-value.danger{color:#ef4444}.sw-meta-value.warning{color:#f59e0b}.sw-card-footer{border-top:1px dashed #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding-top:12px;display:flex}.sw-capture-time{color:#64748b;font-size:12px}.sw-card-status{color:#f59e0b;font-size:12px;font-weight:700}.sw-drawer-overlay{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:100;opacity:0;background:#0f172a66;transition:all .3s;display:none;position:fixed;inset:0}.sw-drawer-overlay.show{opacity:1;display:block}.sw-drawer{z-index:101;background:#fff;flex-direction:column;width:850px;height:100vh;transition:right .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-850px;box-shadow:-8px 0 32px #0000001a}.sw-drawer.open{right:0}.sw-drawer-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:20px 24px;display:flex}.sw-drawer-title{flex-wrap:wrap;align-items:center;gap:8px;font-size:18px;font-weight:600;display:flex}.sw-drawer-badge{color:#b91c1c;background:#fee2e2;border-radius:4px;padding:4px 10px;font-size:13px}.sw-drawer-close{color:#64748b;cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1}.sw-drawer-close:hover{color:#ef4444}.sw-drawer-body{background:#fff;flex-direction:column;flex:1;gap:24px;padding:24px;display:flex;overflow-y:auto}.sw-evidence-section{border:1px solid #e2e8f0;border-radius:8px;overflow:hidden}.sw-section-title-row{background:#f1f5f9;border-bottom:1px solid #e2e8f0;justify-content:space-between;gap:12px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.sw-section-note{color:#64748b;font-size:12px;font-weight:400}.sw-slider-container{-webkit-user-select:none;user-select:none;background:#1e293b;width:100%;height:320px;position:relative;overflow:hidden}.sw-img-after,.sw-img-before{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute}.sw-img-after{background:#94a3b8}.sw-img-before{background:#d1d5db;border-right:2px solid #fff;overflow:hidden}.sw-scene-title{color:#475569;margin-bottom:20px;font-size:20px;font-weight:700}.sw-mock-water{background:#3b82f680;border-radius:40% 60% 70% 30%/40% 50% 60%;width:180px;height:100px;box-shadow:inset 0 0 20px #3b82f6cc}.sw-mock-dry{color:#64748b;letter-spacing:2px;text-align:center;min-width:850px;font-size:20px;font-weight:700}.sw-slider-handle{pointer-events:none;justify-content:center;align-items:center;width:40px;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.sw-slider-btn{color:#0f172a;background:#fff;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex;box-shadow:0 2px 6px #0006}.sw-slider-input{width:calc(100% - 48px);position:absolute;bottom:18px;left:24px;right:24px}.sw-img-label{color:#fff;z-index:5;background:#0009;border-radius:4px;padding:4px 10px;font-size:12px;font-weight:700;position:absolute;top:12px}.sw-left-label{left:12px}.sw-right-label{right:12px}.sw-danger-bg{background:#ef4444cc}.sw-info-grid{grid-template-columns:2fr 1fr;gap:20px;display:grid}.sw-data-summary-box{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:16px}.sw-data-title{color:#0f172a;align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.sw-data-list{flex-direction:column;gap:10px;display:flex}.sw-data-item{color:#64748b;border-bottom:1px dashed #e2e8f0;justify-content:space-between;gap:12px;padding-bottom:6px;font-size:13px;display:flex}.sw-data-item:last-child{border-bottom:none;padding-bottom:0}.sw-data-item strong{color:#0f172a;text-align:right}.sw-data-item strong.danger{color:#ef4444}.sw-map-column{flex-direction:column;gap:8px;display:flex}.sw-map-title{color:#64748b;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.sw-mini-map{background:#e2e8f0 radial-gradient(#cbd5e1 1px,#0000 1px) 0 0/20px 20px;border:1px solid #e2e8f0;border-radius:8px;flex:1;justify-content:center;align-items:center;min-height:220px;display:flex;position:relative;overflow:hidden}.sw-mini-map-label{background:#fff;border-radius:4px;padding:2px 6px;font-size:11px;font-weight:700;position:absolute;top:8px;left:8px;box-shadow:0 1px 3px #0000001a}.sw-mini-pin{background:#ef4444;border:2px solid #fff;border-radius:50%;width:14px;height:14px;box-shadow:0 0 10px #ef444499}.sw-mini-map-note{color:#64748b;background:#fffc;padding:2px 4px;font-size:10px;position:absolute;bottom:8px;right:8px}.sw-drawer-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.sw-drawer-footer-left{gap:12px;display:flex}@media (width<=1200px){.sw-topbar,.sw-drawer-footer{flex-direction:column;align-items:flex-start}.sw-header-actions,.sw-drawer-footer-left{flex-wrap:wrap}.sw-drawer{width:100%;right:-100%}}@media (width<=900px){.sw-results-container,.sw-info-grid,.sw-meta-grid{grid-template-columns:1fr}.sw-card-footer{flex-direction:column;align-items:flex-start}}@media (width<=768px){.sw-topbar,.sw-filter-bar,.sw-results-container,.sw-drawer-header,.sw-drawer-body,.sw-drawer-footer{padding-left:16px;padding-right:16px}.sw-section-title-row,.sw-drawer-footer,.sw-drawer-footer-left{flex-direction:column;align-items:flex-start}.sw-mock-dry{min-width:600px;font-size:16px}.sw-btn{justify-content:center;width:100%}}.wo-list{flex-direction:column;gap:8px;padding:10px;display:flex}.wo-item{border:1px solid var(--border2);background:#0000004d;border-radius:8px;padding:12px;transition:all .2s}.wo-item:hover{border-color:var(--border);background:#00d4ff0a}.wo-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.wo-id{color:var(--p);font-family:Orbitron,monospace;font-size:10px}.wo-badges{gap:6px;display:flex}.wo-title{color:var(--text);margin-bottom:8px;font-size:12px}.wo-meta{color:var(--text3);align-items:center;gap:12px;font-size:10px;display:flex}.wo-meta span{align-items:center;gap:4px;display:flex}.unit-ranking{flex-direction:column;gap:12px;display:flex}.unit-item{align-items:center;gap:12px;display:flex}.unit-rank{background:var(--p);color:#000;border-radius:50%;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;font-weight:700;display:flex}.unit-item:first-child .unit-rank{background:gold}.unit-item:nth-child(2) .unit-rank{background:silver}.unit-item:nth-child(3) .unit-rank{background:#cd7f32}.unit-info{flex:1}.unit-name{color:var(--text);margin-bottom:6px;font-size:12px}.unit-progress{align-items:center;gap:8px;display:flex}.unit-progress .pbar{flex:1}.unit-progress span{color:var(--text2);font-family:Orbitron,monospace;font-size:10px}.spatial-page{flex-direction:column;height:100%;display:flex;overflow:hidden}.spatial-layout{gap:12px;height:100%;min-height:0;display:flex}.spatial-left{flex-direction:column;width:20%;min-width:240px;min-height:0;display:flex}.spatial-center{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.spatial-right{flex-direction:column;gap:12px;width:20%;min-width:220px;min-height:0;display:flex}.tree-container{height:calc(100% - 45px);padding:8px 0;overflow-y:auto}.tree-node{cursor:pointer;color:var(--text);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;padding:8px 12px;font-size:11px;transition:all .2s;display:flex}.tree-node:hover{background:#00d4ff14}.tree-node.active{color:var(--accent);border-left:2px solid var(--accent);background:#00d4ff26}.tabs-container{border-bottom:1px solid var(--border2);flex-shrink:0;gap:4px;padding:10px 14px;display:flex;overflow-x:auto}.tab-item{cursor:pointer;color:var(--text2);white-space:nowrap;border-radius:6px;padding:6px 16px;font-size:11px;transition:all .2s}.tab-item.active{color:var(--accent);background:#00d4ff26;font-weight:600}.table-container{flex:1;min-height:0;overflow-y:auto}.table-container table{width:100%}.table-container thead{z-index:10;background:var(--bg1);position:sticky;top:0}.table-container th{background:var(--bg1);color:var(--text2);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border2);padding:12px 10px;font-size:10px;font-weight:600}.table-container td{border-bottom:1px solid var(--border2);padding:10px;font-size:11px}.btn-xs{gap:4px;padding:4px 9px;font-size:11px}.table-container tbody tr:hover{background:#00d4ff0a}.ai-page-new{background:var(--bg1);box-sizing:border-box;flex-direction:column;height:100%;padding:20px 24px;display:flex}.ai-header-new{flex-shrink:0;justify-content:space-between;align-items:center;gap:24px;min-height:52px;margin-bottom:24px;display:flex}.ai-title-section{flex-shrink:0;align-items:center;display:flex}.ai-main-title{color:var(--text);letter-spacing:-.02em;margin:0;font-size:20px;font-weight:700}.tab-container{background:#f4f7fbeb;border:1px solid #94a3b82e;border-radius:10px;flex-shrink:0;padding:4px;display:flex}.tab-item{cursor:pointer;color:#64748b;white-space:nowrap;border-radius:8px;align-items:center;gap:8px;padding:10px 28px;font-size:14px;font-weight:500;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex}.tab-item:hover{color:#0f172a;background:#c5e9fd59}.tab-item.active{color:#2563eb;background:linear-gradient(135deg,#c5e9fde0,#eff8fff5);border:1px solid #3b82f62e;font-weight:600;box-shadow:0 10px 20px #3b82f61f}.ai-search-section{flex-shrink:0;align-items:center;gap:14px;display:flex}.ai-search-box{background:#fdfefef5;border:1px solid #94a3b82e;border-radius:10px;flex-shrink:0;align-items:center;gap:10px;min-width:260px;padding:10px 16px;transition:all .2s;display:flex;box-shadow:0 8px 20px #0f172a0f}.ai-search-box:hover{border-color:#3b82f638}.ai-search-box:focus-within{border-color:#3b82f652;box-shadow:0 0 0 3px #3b82f61a}.ai-search-box svg{color:var(--text3)}.ai-search-box input{color:var(--text);background:0 0;border:none;outline:none;width:100%;font-size:14px;font-weight:400}.ai-search-box input::placeholder{color:var(--text3)}.ai-stats-new{flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-item{background:linear-gradient(145deg,#fdfefefa,#f4f7fbf5);border:1px solid #94a3b829;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:20px;transition:all .3s;display:flex;box-shadow:0 10px 24px #0f172a0f}.stat-item:hover{border-color:#3b82f633;transform:translateY(-2px);box-shadow:0 14px 28px #3b82f61a}.stat-value{color:#2563eb;letter-spacing:-.02em;margin-bottom:6px;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:32px;font-weight:700}.stat-label{color:#64748b;text-transform:uppercase;letter-spacing:.05em;font-size:13px;font-weight:500}.ai-models-grid-new{flex:1;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:18px;padding-bottom:24px;display:grid;overflow-y:auto}.ai-model-card-new{background:linear-gradient(145deg,#fdfefefa,#f4f7fbf5);border:1px solid #94a3b82e;border-radius:16px;flex-direction:column;height:260px;min-height:260px;max-height:260px;padding:20px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 12px 24px #0f172a0f}.ai-model-card-new:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#3b82f647,#0000);height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.ai-model-card-new:hover{border-color:#3b82f63d;transform:translateY(-4px);box-shadow:0 16px 32px #3b82f61f}.ai-model-card-new:hover:before{opacity:1}.model-card-header-new{flex-shrink:0;align-items:flex-start;gap:14px;margin-bottom:16px;display:flex}.model-icon-wrapper-new{background:linear-gradient(135deg,#c5e9fda8,#eff8fff5);border:1px solid #3b82f629;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.model-title-new{flex:1;min-width:0}.model-title-new h3{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;margin:0 0 6px;font-size:16px;font-weight:600;overflow:hidden}.model-version-new{color:#64748b;background:#f4f7fbf5;border:1px solid #94a3b824;border-radius:6px;align-items:center;gap:6px;padding:4px 10px;font-size:12px;font-weight:500;display:inline-flex}.model-switch-new{flex-shrink:0}.switch-new{width:48px;height:26px;display:inline-block;position:relative}.switch-new input{opacity:0;width:0;height:0}.slider-new{cursor:pointer;background-color:#334155;border:2px solid #475569;border-radius:26px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider-new:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:2px;left:2px;box-shadow:0 2px 8px #0000004d}.switch-new input:checked+.slider-new{background-color:#10b981;border-color:#10b981;box-shadow:0 0 16px #10b98166}.switch-new input:checked+.slider-new:before{transform:translate(22px)}.model-metrics-new{flex-shrink:0;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:18px;display:grid}.metric-item-new{flex-direction:column;gap:6px;display:flex}.metric-label-new{color:#64748b;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.metric-value-wrapper-new{align-items:center;gap:8px;display:flex}.metric-value-new{color:#0f172a;letter-spacing:-.02em;font-size:20px;font-weight:700}.trend-up-new{color:#10b981;background:#10b9811a;border-radius:4px;align-items:center;padding:2px 6px;display:flex}.model-config-new{border-top:1px solid #94a3b829;flex-direction:row;flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:14px;display:flex}.threshold-info-new{background:0 0;border:none;border-radius:0;align-items:center;gap:8px;padding:0;display:flex}.threshold-label-new{color:#64748b;font-size:12px;font-weight:500}.threshold-value-new{color:#2563eb;font-size:13px;font-weight:600}.model-actions-new{flex-shrink:0;gap:8px;display:flex}.config-btn-new,.update-btn-new,.delete-btn-new{cursor:pointer;color:#64748b;letter-spacing:.01em;background:#fdfefef5;border:1px solid #94a3b829;border-radius:8px;justify-content:center;align-items:center;gap:0;width:36px;height:36px;padding:8px;font-size:0;font-weight:600;transition:all .25s cubic-bezier(.4,0,.2,1);display:flex;box-shadow:0 6px 14px #0f172a0d}.config-btn-new:hover{color:#2563eb;background:linear-gradient(135deg,#c5e9fdd1,#eff8fff5);border-color:#3b82f63d;transform:translateY(-1px);box-shadow:0 8px 18px #3b82f61f}.update-btn-new:hover{color:#059669;background:linear-gradient(135deg,#d1fae5e6,#ecfdf5f5);border-color:#10b98138;transform:translateY(-1px);box-shadow:0 8px 18px #10b9811f}.delete-btn-new:hover{color:#dc2626;background:linear-gradient(135deg,#fee2e2eb,#fef2f2f5);border-color:#ef44443d;transform:translateY(-1px);box-shadow:0 8px 18px #ef44441f}.stats-board{flex-shrink:0;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px;display:grid}.stat-card-algo{text-align:center;background:linear-gradient(145deg,#fdfefefa,#f4f7fbf5);border:1px solid #94a3b829;border-radius:14px;flex-direction:column;justify-content:center;align-items:center;padding:24px;transition:all .3s;display:flex;box-shadow:0 12px 24px #0f172a0f}.stat-card-algo:hover{border-color:#3b82f638;transform:translateY(-3px);box-shadow:0 16px 30px #3b82f61a}.stat-val-algo{color:#2563eb;letter-spacing:-.02em;align-items:baseline;gap:6px;margin-bottom:8px;font-family:SF Mono,Monaco,Inconsolata,monospace;font-size:36px;font-weight:700;display:flex}.stat-val-algo .stat-unit{color:#64748b;font-size:16px;font-weight:500}.stat-lbl-algo{color:#64748b;font-size:13px;font-weight:500}.filter-bar-algo{color:#64748b;border-bottom:1px solid #94a3b829;flex-wrap:wrap;flex-shrink:0;gap:12px;margin-bottom:24px;padding-bottom:14px;font-size:14px;display:flex}.filter-item-algo{cursor:pointer;white-space:nowrap;margin-bottom:-15px;padding-bottom:12px;font-weight:500;transition:all .25s}.filter-item-algo:hover{color:#0f172a}.filter-item-algo.active{color:#2563eb;border-bottom:2px solid #2563eb;font-weight:600}.algo-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(340px,340px));gap:20px;padding-bottom:24px;display:grid;overflow-y:auto}.algo-card{background:linear-gradient(145deg,#fdfefefa,#f4f7fbf5);border:1px solid #94a3b829;border-radius:16px;flex-direction:column;width:340px;min-width:340px;max-width:340px;height:320px;min-height:320px;max-height:320px;padding:24px;transition:all .3s cubic-bezier(.4,0,.2,1);display:flex;position:relative;overflow:hidden;box-shadow:0 12px 24px #0f172a0f}.algo-card:before{content:"";opacity:0;background:linear-gradient(90deg,#0000,#3b82f64d,#0000);height:2px;transition:opacity .3s;position:absolute;top:0;left:0;right:0}.algo-card:hover{border-color:#3b82f638;transform:translateY(-4px);box-shadow:0 16px 32px #3b82f61f}.algo-card:hover:before{opacity:1}.algo-card-header{flex-shrink:0;justify-content:space-between;align-items:flex-start;margin-bottom:18px;display:flex}.algo-title-wrapper{align-items:center;gap:12px;min-width:0;display:flex}.algo-icon{color:#06b6d4;background:linear-gradient(135deg,#06b6d426,#06b6d40d);border:1px solid #06b6d433;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:24px;display:flex}.algo-name{color:#0f172a;white-space:nowrap;text-overflow:ellipsis;letter-spacing:-.01em;font-size:17px;font-weight:600;overflow:hidden}.algo-version{color:#64748b;background:#f4f7fbf5;border:1px solid #94a3b824;border-radius:6px;margin-top:6px;padding:4px 10px;font-size:11px;font-weight:500;display:inline-block}.switch-algo{flex-shrink:0;width:48px;height:26px;display:inline-block;position:relative}.switch-algo input{opacity:0;width:0;height:0}.slider-algo{cursor:pointer;background-color:#334155;border:2px solid #475569;border-radius:26px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;inset:0}.slider-algo:before{content:"";background-color:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s cubic-bezier(.4,0,.2,1);position:absolute;bottom:2px;left:2px;box-shadow:0 2px 8px #0000004d}.switch-algo input:checked+.slider-algo{background-color:#10b981;border-color:#10b981;box-shadow:0 0 16px #10b98166}.switch-algo input:checked+.slider-algo:before{transform:translate(22px)}.formula-window{color:#4f46e5;text-align:center;letter-spacing:.5px;word-break:break-all;background:linear-gradient(135deg,#f4f7fbfa,#edf4fbf5);border:1px solid #94a3b82e;border-radius:10px;flex-shrink:0;margin-bottom:18px;padding:14px 16px;font-family:Cambria Math,Times New Roman,serif;font-size:15px;font-style:italic}.algo-metrics{flex-shrink:0;justify-content:space-between;gap:16px;margin-bottom:20px;display:flex}.algo-metric{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.algo-metric-label{color:#64748b;white-space:nowrap;text-transform:uppercase;letter-spacing:.04em;font-size:12px;font-weight:500}.algo-metric-value{color:#0f172a;word-break:break-word;letter-spacing:-.01em;align-items:baseline;gap:4px;font-size:18px;font-weight:700;display:flex}.algo-metric-value.success{color:#10b981}.algo-metric-value span{color:#64748b;font-size:12px;font-weight:400}.algo-actions{border-top:1px solid #94a3b829;flex-shrink:0;justify-content:flex-end;gap:8px;margin-top:auto;padding-top:18px;display:flex}.algo-action-btn{color:#64748b;cursor:pointer;white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;padding:0;font-size:13px;transition:all .2s;display:flex}.algo-action-btn:hover{color:#06b6d4}.algo-action-btn.danger:hover{color:#ff5252}.modal-content{background:linear-gradient(145deg,#fdfefefc,#f4f7fbfa);border:1px solid #94a3b82e;border-radius:16px;width:100%;max-width:720px;max-height:90vh;overflow-y:auto;box-shadow:0 24px 64px #0f172a29}.modal-header h3{color:var(--text);letter-spacing:-.01em;margin:0;font-size:18px;font-weight:600}.modal-body{padding:24px}.model-form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.model-form-grid .form-group{flex-direction:column;display:flex}.model-form-grid .form-group.full-width{grid-column:1/-1}.model-form-grid .form-label{color:#cbd5e1;margin-bottom:8px;font-size:13px;font-weight:500;display:block}.model-form-grid .form-label.required:before{content:"* ";color:#ff3838}.model-form-grid .form-input,.model-form-grid .form-select,.model-form-grid .form-textarea{width:100%;color:var(--text);box-sizing:border-box;background:#fdfefefa;border:1px solid #94a3b82e;border-radius:10px;outline:none;padding:12px 14px;font-size:14px;transition:all .2s}.model-form-grid .form-textarea{resize:vertical;min-height:90px}.model-form-grid .form-input:focus,.model-form-grid .form-select:focus,.model-form-grid .form-textarea:focus{border-color:#00d4ff;box-shadow:0 0 0 3px #00d4ff1a}.model-form-grid .form-input:disabled{color:var(--text3);cursor:not-allowed;background:#f4f7fbeb}.model-form-grid .form-select{appearance:none;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:36px}.model-form-grid .form-select option{color:var(--text);background:#0a1428}.btn-p{color:#000;background:linear-gradient(135deg,#00d4ff,#09c);box-shadow:0 4px 16px #00d4ff4d}.btn-p:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00d4ff66}.btn-g{color:var(--text);background:#ffffff1a;border:1px solid #ffffff26}.btn-g:hover{background:#ffffff26;transform:translateY(-1px)}@media (width<=1200px){.ai-stats-new,.stats-board{grid-template-columns:repeat(2,1fr)}.algo-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}}@media (width<=900px){.ai-models-grid-new{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.ai-page-new{padding:16px}.ai-header-new{flex-direction:column;align-items:stretch;gap:16px}.ai-title-section{justify-content:center}.tab-container{width:100%}.tab-item{text-align:center;flex:1;justify-content:center}.ai-search-section{justify-content:center;width:100%}.ai-search-box{flex:1}.ai-stats-new,.stats-board,.ai-models-grid-new,.algo-grid{grid-template-columns:1fr}.filter-bar-algo,.ai-category-filter{flex-wrap:wrap;gap:12px}.model-form-grid,.model-actions-new{grid-template-columns:1fr}}.admin-stat-grid{grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;display:grid}.admin-stat-card{border:1px solid var(--border2);background:linear-gradient(145deg,#00d4ff14,#0000004d);border-radius:12px;padding:16px 20px;transition:all .2s}.admin-stat-card:hover{border-color:var(--p);background:linear-gradient(145deg,#00d4ff1f,#0000004d)}.admin-stat-label{color:var(--text2);margin-bottom:8px;font-size:12px}.admin-stat-value{color:var(--p);margin-bottom:4px;font-family:Orbitron,monospace;font-size:28px;font-weight:700;line-height:1.2}.admin-stat-unit{color:var(--text2);margin-left:4px;font-size:12px}.admin-stat-sub{color:var(--text3);font-size:11px}.role-grid{grid-template-columns:repeat(3,1fr);gap:16px;display:grid}.role-card{border:1px solid var(--border2);background:#0000004d;border-radius:12px;padding:16px;transition:all .2s}.role-card:hover{border-color:var(--border);background:#00d4ff0a}.role-header{color:var(--p);align-items:center;gap:12px;margin-bottom:10px;display:flex}.role-name{color:var(--text);font-size:14px;font-weight:600}.role-desc{color:var(--text3);margin-bottom:12px;font-size:11px;line-height:1.4}.role-stats{flex-direction:column;gap:8px;margin-bottom:14px;display:flex}.role-stat{justify-content:space-between;font-size:11px;display:flex}.role-stat-label{color:var(--text3)}.role-stat-value{color:var(--text);font-weight:500}.role-actions{gap:8px;display:flex}.settings-grid{flex-direction:column;gap:12px;display:flex}.setting-item{border:1px solid var(--border2);background:#0000004d;border-radius:10px;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.setting-info{flex:1}.setting-name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.setting-desc{color:var(--text3);font-size:10px}.switch{width:44px;height:24px;position:relative}.switch input{opacity:0;width:0;height:0}.slider{cursor:pointer;background:var(--border2);border-radius:24px;transition:all .3s;position:absolute;inset:0}.slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}input:checked+.slider{background:var(--p)}input:checked+.slider:before{transform:translate(20px)}.admin-table{border-collapse:collapse;width:100%}.admin-table th,.admin-table td{text-align:left;border-bottom:1px solid var(--border2);padding:12px 10px}.admin-table th{color:var(--text3);text-transform:uppercase;letter-spacing:.5px;background:#0003;font-size:11px;font-weight:600}.admin-table td{color:var(--text);font-size:12px}.admin-table tbody tr:hover{background:#00d4ff08}.admin-table tbody tr.disabled-row{opacity:.6}.admin-table tbody tr.disabled-row td{color:var(--text3)}.action-btns{flex-wrap:nowrap;gap:6px;display:flex}.action-btns .btn-sm{padding:4px 10px;font-size:11px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{border:1px solid var(--border);background:linear-gradient(145deg,#0a1428fa,#050f1efa);border-radius:16px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden;box-shadow:0 25px 50px #00000080}.modal-content.modal-large{max-width:800px}.modal-header{border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{color:var(--text);margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--text3);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.modal-close:hover{color:var(--text);background:#ffffff1a}.modal-body{flex:1;padding:20px;overflow-y:auto}.modal-footer{border-top:1px solid var(--border2);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.form-grid{grid-template-columns:repeat(2,1fr);gap:16px;display:grid}.form-group{flex-direction:column;gap:6px;display:flex}.form-group.full-width{grid-column:1/-1}.form-label{color:var(--text2);font-size:12px;font-weight:500}.form-label.required:after{content:" *";color:var(--d)}.form-input,.form-select{border:1px solid var(--border2);color:var(--text);background:#0000004d;border-radius:8px;outline:none;padding:10px 12px;font-size:13px;transition:all .2s}.form-input:focus,.form-select:focus{border-color:var(--p);box-shadow:0 0 0 2px #00d4ff1a}.form-input::placeholder{color:var(--text3)}.form-input:disabled{color:var(--text3);cursor:not-allowed;background:#00000080}.form-select{cursor:pointer;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238a9aa8' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.form-select option{color:var(--text);background:#0a1428}.password-input{align-items:center;display:flex;position:relative}.password-input .form-input{width:100%;padding-right:40px}.password-toggle{color:var(--text3);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex;position:absolute;right:10px}.password-toggle:hover{color:var(--text)}.permission-table{border:1px solid var(--border2);border-radius:10px;overflow:hidden}.permission-header{border-bottom:1px solid var(--border2);color:var(--text3);background:#0000004d;grid-template-columns:160px 1fr;padding:12px 16px;font-size:12px;font-weight:600;display:grid}.permission-row{border-bottom:1px solid var(--border2);grid-template-columns:160px 1fr;align-items:center;padding:12px 16px;display:grid}.permission-row:last-child{border-bottom:none}.permission-row:hover{background:#00d4ff08}.permission-module-name{color:var(--text);align-items:center;font-size:13px;font-weight:500;display:flex}.permission-action-list{flex-wrap:wrap;gap:20px;display:flex}.permission-checkbox{cursor:pointer;color:var(--text2);align-items:center;gap:6px;font-size:12px;transition:all .2s;display:flex}.permission-checkbox:hover{color:var(--text)}.permission-checkbox input[type=checkbox]{width:16px;height:16px;accent-color:var(--p);cursor:pointer}.btn-w{color:#ffc107;background:#ffc10726;border:1px solid #ffc1074d}.btn-w:hover{background:#ffc10740}@media (width<=1024px){.admin-stat-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=768px){.admin-stat-grid,.role-grid,.form-grid{grid-template-columns:1fr}.permission-header,.permission-row{grid-template-columns:1fr;gap:10px}.action-btns{flex-direction:column;gap:4px}}.pa-page{color:#0f172a;background:#eef3f9;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.pa-topbar{z-index:10;background:#fffffff5;border-bottom:1px solid #dbe5f0;justify-content:space-between;align-items:center;gap:16px;height:68px;padding:0 24px;display:flex;box-shadow:0 1px 8px #0f172a0a}.pa-topbar-main{align-items:center;gap:12px;display:flex}.pa-back-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;display:inline-flex}.pa-back-btn:hover{background:#f8fafc;border-color:#94a3b8}.pa-topbar-title{font-size:18px;font-weight:700}.pa-global-filters{flex-wrap:wrap;gap:14px;display:flex}.pa-filter-btn{color:#2563eb;background:#eff6ff;border:1px solid #bfdbfe;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;font-size:13px;display:flex}.pa-filter-btn span{color:#64748b;white-space:nowrap}.pa-filter-btn select{color:#2563eb;cursor:pointer;background:0 0;border:none;outline:none;font-size:13px;font-weight:600}.pa-workspace{flex:1;display:flex;position:relative;overflow:hidden}.pa-panel{z-index:5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#fffffff5;flex-direction:column;width:340px;display:flex}.pa-panel-left{border-right:1px solid #dbe5f0;box-shadow:4px 0 18px #0f172a0a}.pa-panel-right{border-left:1px solid #dbe5f0;box-shadow:-4px 0 18px #0f172a0a}.pa-panel-header{border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;font-weight:700;display:flex}.pa-panel-body{flex:1;padding:18px;overflow-y:auto}.pa-panel-section-title,.pa-report-section-title,.pa-modal-section-title{color:#64748b;letter-spacing:.04em;margin-bottom:10px;font-size:12px;font-weight:700}.pa-panel-section-title.spaced{margin-top:24px}.pa-section-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.pa-mini-btn{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;align-items:center;gap:4px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.pa-mini-btn:hover{background:#dbeafe}.pa-search-box{margin-bottom:12px;position:relative}.pa-search-icon{color:#64748b;position:absolute;top:50%;left:10px;transform:translateY(-50%)}.pa-search-input{background:#f8fafc;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:9px 12px 9px 32px;font-size:12px}.pa-search-input:focus{background:#fff;border-color:#2563eb}.pa-wbs-tree{font-size:12px}.pa-wbs-panel{background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:8px 0}.pa-wbs-node{color:#64748b;cursor:pointer;border-radius:6px;align-items:center;gap:6px;margin:0 8px;padding-top:7px;padding-bottom:7px;display:flex}.pa-wbs-node:hover{color:#0f172a;background:#eef4ff}.pa-wbs-node.selected{color:#1d4ed8;background:#dbeafe;font-weight:600}.pa-wbs-toggle,.pa-wbs-dot{flex-shrink:0;justify-content:center;align-items:center;width:16px;display:flex}.pa-wbs-name{flex:1}.pa-layer-item{text-align:left;cursor:pointer;background:#f8fafc;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;width:100%;margin-bottom:10px;padding:12px;display:flex}.pa-layer-item:hover{background:#fff;border-color:#cbd5e1}.pa-layer-item.muted{opacity:.62}.pa-layer-label{color:#0f172a;font-size:13px;font-weight:600}.pa-layer-desc{color:#64748b;margin-top:4px;font-size:12px;line-height:1.4}.pa-switch{background:#cbd5e1;border-radius:999px;flex-shrink:0;width:38px;height:22px;transition:background .2s;position:relative}.pa-switch:after{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:left .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0f172a40}.pa-switch.active{background:#2563eb}.pa-switch.active:after{left:18px}.pa-model-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pa-model-card{text-align:center;cursor:pointer;color:#334155;background:#fafafa;border:1px dashed #cbd5e1;border-radius:10px;padding:14px 10px;font-size:12px}.pa-model-card:hover,.pa-model-card.active{color:#1d4ed8;background:#eff6ff;border-color:#2563eb}.pa-model-icon{margin-bottom:6px;font-size:22px}.pa-model-tip{color:#94a3b8;margin-top:6px;font-size:10px}.pa-model-detail-card{background:linear-gradient(#fff 0%,#f8fbff 100%);border:1px solid #dbe5f0;border-radius:12px;margin-top:14px;padding:14px}.pa-model-detail-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;font-size:14px;font-weight:700;display:flex}.pa-model-placed-tag{color:#166534;background:#dcfce7;border-radius:999px;padding:3px 8px;font-size:11px;font-weight:700}.pa-model-detail-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.pa-model-detail-grid div{background:#f8fafc;border-radius:8px;padding:10px}.pa-model-detail-grid span{color:#64748b;margin-bottom:4px;font-size:11px;display:block}.pa-model-detail-grid strong{color:#0f172a;font-size:13px}.pa-model-detail-desc{color:#475569;margin-top:12px;font-size:12px;line-height:1.6}.pa-viewport{background:linear-gradient(#cfd9e6 0%,#9fb1c8 100%);flex:1;position:relative;overflow:hidden}.pa-map-bg{opacity:.35;background-image:radial-gradient(#fff6 1px,#0000 1px),linear-gradient(135deg,#1e293b0d 25%,#0000 25%),linear-gradient(225deg,#1e293b0d 25%,#0000 25%);background-size:22px 22px,140px 140px,140px 140px;position:absolute;inset:0}.pa-view-surface{position:absolute;inset:0;overflow:hidden}.pa-view-surface.view-3d{background:radial-gradient(circle at 50% 35%,#ffffff14,#0000 32%),linear-gradient(#ffffff29,#0f172a1f)}.pa-view-surface.view-map{background:linear-gradient(#bfdbfe4d,#22c55e24)}.pa-view-engine-label{z-index:2;letter-spacing:.08em;color:#0f172a42;pointer-events:none;font-size:28px;font-weight:800;position:absolute;top:26px;left:28px}.pa-view-subtitle{z-index:2;color:#0f172a66;pointer-events:none;font-size:12px;position:absolute;top:64px;left:30px}.pa-drop-tip{z-index:3;color:#2563eb;pointer-events:none;background:#ffffffd9;border:1px dashed #2563eb59;border-radius:999px;padding:8px 14px;font-size:12px;font-weight:600;position:absolute;top:18px;left:50%;transform:translate(-50%)}.pa-reality-tile,.pa-bim-line,.pa-eco-zone,.pa-contour-zone,.pa-wbs-zone,.pa-profile-line,.pa-profile-point,.pa-dropped-model{position:absolute}.pa-reality-tile{z-index:1;color:#0f172aa6;background:linear-gradient(135deg,#7dd3fc8c,#94a3b84d);border:1px solid #ffffff8c;border-radius:16px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex;box-shadow:inset 0 0 0 1px #ffffff3d,0 10px 30px #0f172a14}.pa-bim-line{z-index:2;color:#1d4ed8;background:linear-gradient(90deg,#2563ebf2,#3b82f659);border-radius:999px;height:8px;padding-left:8px;font-size:11px;font-weight:700;line-height:8px;box-shadow:0 0 0 2px #ffffff4d,0 0 18px #2563eb73}.pa-eco-zone{z-index:2;color:#991b1b;background:#f8717129;border:2px dashed #dc2626d9;border-radius:18px 28px 22px 24px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.pa-contour-zone{z-index:1;opacity:.8;background:repeating-radial-gradient(circle,#f59e0b2e 0 10px,#f59e0b08 10px 18px);border-radius:50%}.pa-wbs-zone{z-index:2;color:#047857;background:#10b98129;border:1px solid #10b98199;border-radius:12px;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.pa-dropped-model{z-index:4;color:#1e3a8a;text-align:left;cursor:pointer;background:#fffffff0;border:1px solid #bfdbfe;border-radius:14px;min-width:144px;padding:10px 36px 10px 12px;transform:translate(-50%,-50%);box-shadow:0 10px 30px #0f172a1f}.pa-dropped-model.selected{border-color:#2563eb;box-shadow:0 14px 32px #2563eb33}.pa-dropped-model-head{align-items:center;gap:6px;margin-bottom:6px;font-size:13px;display:flex}.pa-dropped-model-head strong{font-size:13px}.pa-dropped-model-body{flex-wrap:wrap;gap:8px;display:flex}.pa-dropped-model-body span{color:#2563eb;background:#eff6ff;border-radius:999px;padding:2px 6px;font-size:10px;font-weight:700}.pa-remove-model{color:#475569;cursor:pointer;background:#e2e8f0;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;display:flex;position:absolute;top:8px;right:8px}.pa-remove-model:hover{color:#b91c1c;background:#fecaca}.pa-profile-point{z-index:5;background:#ef4444;border:2px solid #fff;border-radius:50%;width:12px;height:12px;transform:translate(-50%,-50%);box-shadow:0 0 0 6px #ef444429}.pa-profile-line{z-index:4;background:linear-gradient(90deg,#ef4444,#f97316);border-radius:999px;height:4px;box-shadow:0 0 12px #ef444480}.pa-float-tools{z-index:6;background:#ffffffeb;border:1px solid #fff6;border-radius:12px;flex-direction:column;gap:8px;padding:8px;display:flex;position:absolute;top:22px;right:22px;box-shadow:0 10px 26px #0f172a1f}.pa-tool-btn{color:#64748b;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.pa-tool-btn:hover,.pa-tool-btn.active{color:#2563eb;background:#eff6ff;border-color:#bfdbfe}.pa-bottom-chart-panel{z-index:6;background:#fffffffa;border:1px solid #dbe5f0;border-radius:16px 16px 0 0;flex-direction:column;height:250px;padding:16px;display:flex;position:absolute;bottom:0;left:20px;right:20px;box-shadow:0 -10px 30px #0f172a1f}.pa-chart-header{justify-content:space-between;gap:12px;margin-bottom:16px;font-size:14px;font-weight:700;display:flex}.pa-close-chart{color:#64748b;cursor:pointer;background:0 0;border:none}.pa-chart-area{background:linear-gradient(#f8fafc 0%,#eef4fb 100%);border:1px dashed #cbd5e1;border-radius:10px;flex:1;align-items:flex-end;padding:12px;display:flex;position:relative}.pa-chart-axis-label{color:#64748b;font-size:12px;position:absolute;top:10px;left:12px}.pa-mock-line{clip-path:polygon(0 100%,0 60%,20% 50%,40% 80%,60% 30%,80% 40%,100% 20%,100% 100%);background:linear-gradient(#2563eb47,#0000);border-top:2px solid #2563eb;width:100%;height:100%}.pa-chart-note{color:#2563eb;background:#ffffffeb;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:600;position:absolute;bottom:12px;right:12px}.pa-btn-export,.pa-btn,.pa-modal-body textarea,.pa-add-form-grid input,.pa-add-form-grid textarea{font-size:12px}.pa-btn-export{cursor:pointer;background:#fff;border:1px solid #e2e8f0;border-radius:6px;padding:6px 10px}.pa-btn-export:hover{background:#f8fafc}.pa-issue-card,.pa-report-card,.pa-kpi-card{background:#fff;border:1px solid #e2e8f0;border-radius:12px}.pa-issue-card{cursor:pointer;border-left:4px solid #ef4444;margin-bottom:12px;padding:16px;transition:transform .2s,box-shadow .2s}.pa-issue-card.warning{border-left-color:#f59e0b}.pa-issue-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14}.pa-issue-header{justify-content:space-between;gap:8px;margin-bottom:8px;font-size:12px;display:flex}.pa-tag{border-radius:999px;padding:2px 8px;font-weight:700}.pa-tag.danger{color:#b91c1c;background:#fee2e2}.pa-tag.manual{color:#b45309;background:#fef3c7}.pa-status-text.danger{color:#ef4444}.pa-status-text.warning{color:#f59e0b}.pa-issue-title{margin-bottom:6px;font-size:14px;font-weight:700}.pa-issue-desc{color:#64748b;font-size:12px;line-height:1.5}.pa-report-card{margin-top:16px;padding:16px}.pa-kpi-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.pa-kpi-card{background:#f8fafc;padding:14px}.pa-kpi-card.full{grid-column:span 2}.pa-kpi-card.full.danger{background:#fef2f2;border-color:#fecaca}.pa-kpi-label{color:#64748b;margin-bottom:6px;font-size:11px}.pa-kpi-value{align-items:baseline;gap:4px;font-size:20px;font-weight:800;display:flex}.pa-kpi-value span{color:#64748b;font-size:11px;font-weight:500}.pa-kpi-value.danger{color:#ef4444}.pa-chart-box{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:8px;height:160px;margin-bottom:20px;display:flex}.pa-chart-icon{opacity:.5;font-size:32px}.pa-chart-text{font-size:11px}.pa-bar-group{flex-direction:column;gap:12px;display:flex}.pa-bar-header{color:#64748b;justify-content:space-between;gap:10px;margin-bottom:4px;font-size:11px;display:flex}.pa-bar-header .warning{color:#ef4444;font-weight:700}.pa-bar-track{background:#e2e8f0;border-radius:999px;height:6px;overflow:hidden}.pa-bar-fill{background:#2563eb;border-radius:999px;height:100%}.pa-bar-fill.normal{background:#10b981}.pa-bar-fill.warning{background:#ef4444}.pa-action-footer{background:#f8fafc;border-top:1px solid #e2e8f0;gap:10px;padding:16px;display:flex}.pa-btn{cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 0;font-weight:600;display:inline-flex}.pa-btn.secondary{color:#0f172a;background:#fff;border:1px solid #cbd5e1}.pa-btn.primary{color:#fff;background:#2563eb}.pa-btn.success{color:#fff;background:#10b981}.pa-modal-overlay{z-index:30;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0f172a80;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.pa-modal-box{background:#fff;border-radius:16px;flex-direction:column;width:680px;max-width:calc(100vw - 48px);max-height:calc(100vh - 48px);display:flex;overflow:hidden;box-shadow:0 24px 40px #0f172a40}.pa-modal-box.wide,.pa-add-modal{width:760px}.pa-modal-header{background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;display:flex}.pa-modal-title{align-items:center;gap:8px;font-size:16px;font-weight:700;display:flex}.pa-modal-close{color:#64748b;cursor:pointer;background:0 0;border:none;font-size:20px}.pa-modal-body{padding:24px;overflow-y:auto}.pa-modal-footer{background:#f8fafc;border-top:1px solid #e2e8f0;justify-content:flex-end;gap:10px;padding:16px 24px;display:flex}.pa-meta-grid{background:#f1f5f9;border-radius:10px;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:20px;padding:16px;font-size:13px;display:grid}.pa-meta-grid span{color:#64748b;margin-bottom:4px;display:block}.pa-meta-grid strong.danger{color:#ef4444}.pa-evidence-box{gap:16px;margin-bottom:20px;display:flex}.pa-evidence-img,.pa-review-img{color:#64748b;text-align:center;background:linear-gradient(135deg,#dbe5f0,#e9eef5);border:1px solid #cbd5e1;border-radius:10px;flex:1;justify-content:center;align-items:center;min-height:160px;padding:16px;display:flex}.pa-modal-body textarea,.pa-add-form-grid input,.pa-add-form-grid textarea{resize:none;background:#fff;border:1px solid #cbd5e1;border-radius:8px;outline:none;width:100%;padding:10px 12px}.pa-modal-body textarea:focus,.pa-add-form-grid input:focus,.pa-add-form-grid textarea:focus{border-color:#2563eb}.pa-review-tip{color:#64748b;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:16px;padding:12px;font-size:14px;line-height:1.5}.pa-review-compare{gap:16px;margin-bottom:20px;display:flex}.pa-review-box{border:1px solid #e2e8f0;border-radius:10px;flex:1;overflow:hidden}.pa-review-box.success{border-width:2px;border-color:#10b981;box-shadow:0 4px 12px #10b98126}.pa-review-box-header{color:#64748b;background:#f1f5f9;border-bottom:1px solid #e2e8f0;padding:8px 12px;font-size:12px;font-weight:700}.pa-review-box-header.success{color:#047857;background:#ecfdf5;border-bottom-color:#a7f3d0}.pa-review-img.success{color:#10b981;font-weight:700}.pa-add-form-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.pa-add-form-grid label{color:#475569;flex-direction:column;gap:8px;font-size:12px;font-weight:600;display:flex}.pa-add-form-grid label.full{grid-column:1/-1}.pa-add-form-grid textarea{min-height:88px}.pa-upload-field input[type=file]{background:#f8fafc;padding:8px}.pa-upload-tip{color:#2563eb;align-items:center;gap:6px;font-size:12px;display:inline-flex}@media (width<=1280px){.pa-panel{width:300px}}@media (width<=992px){.pa-workspace{flex-direction:column;overflow-y:auto}.pa-panel{width:100%}.pa-panel-left,.pa-panel-right{box-shadow:none;border:none;border-bottom:1px solid #e2e8f0}.pa-viewport{min-height:640px}.pa-drop-tip{white-space:normal;text-align:center;max-width:calc(100% - 32px)}}@media (width<=768px){.pa-topbar{flex-direction:column;align-items:flex-start;gap:12px;height:auto;padding:16px}.pa-topbar-main,.pa-global-filters,.pa-evidence-box,.pa-review-compare,.pa-action-footer,.pa-modal-footer,.pa-section-row{flex-direction:column;align-items:stretch}.pa-global-filters,.pa-filter-btn,.pa-back-btn,.pa-btn,.pa-mini-btn{justify-content:center;width:100%}.pa-kpi-grid,.pa-meta-grid,.pa-model-detail-grid,.pa-add-form-grid,.pa-model-grid{grid-template-columns:1fr}.pa-kpi-card.full,.pa-add-form-grid label.full{grid-column:auto}.pa-panel-body,.pa-panel-header,.pa-bottom-chart-panel,.pa-modal-body,.pa-modal-header,.pa-modal-footer{padding-left:16px;padding-right:16px}.pa-float-tools{top:auto;bottom:260px;right:12px}.pa-view-engine-label{max-width:70%;font-size:22px;line-height:1.2}.pa-view-subtitle{max-width:80%;line-height:1.4;top:82px}.pa-bottom-chart-panel{height:220px;left:12px;right:12px}}.sl-page{color:#0f172a;background:#f1f5f9;flex-direction:column;min-height:100%;display:flex;overflow:hidden}.sl-topbar{z-index:20;background:#fffffff2;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;height:60px;padding:0 24px;display:flex}.sl-header-main{align-items:center;gap:12px;display:flex}.sl-back-btn{color:#334155;cursor:pointer;background:#fff;border:1px solid #cbd5e1;border-radius:6px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.sl-back-btn:hover{background:#f8fafc}.sl-header-title{font-size:18px;font-weight:600}.sl-export-btn{color:#fff;cursor:pointer;background:#2563eb;border:none;border-radius:6px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;display:inline-flex}.sl-export-btn:hover{background:#1d4ed8}.sl-workspace{flex:1;display:flex;overflow:hidden}.sl-sidebar{z-index:5;background:#fffffff2;border-right:1px solid #e2e8f0;flex-direction:column;width:320px;display:flex;box-shadow:4px 0 15px #00000008}.sl-panel-header{border-bottom:1px solid #e2e8f0;padding:16px 20px;font-size:15px;font-weight:600}.sl-panel-body{flex:1;padding:20px;overflow-y:auto}.sl-config-group{margin-bottom:24px}.sl-config-label{color:#64748b;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:600}.sl-select-box,.sl-search-box input{color:#0f172a;background:#f8fafc;border:1px solid #cbd5e1;border-radius:6px;outline:none;width:100%;padding:8px 12px;font-size:13px}.sl-select-box{margin-bottom:12px}.sl-vs-divider{text-align:center;color:#2563eb;margin-bottom:12px;font-size:12px;font-weight:700}.sl-calc-btn{color:#2563eb;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;width:100%;padding:10px;font-size:14px;font-weight:600}.sl-calc-btn:hover{color:#fff;background:#2563eb}.sl-search-box{color:#64748b;align-items:center;gap:8px;margin-bottom:8px;display:flex;position:relative}.sl-search-box svg{position:absolute;left:10px}.sl-search-box input{padding-left:32px}.sl-wbs-tree{font-size:13px}.sl-wbs-item{color:#0f172a;align-items:center;gap:6px;padding:8px 0;display:flex}.sl-wbs-item.active{color:#2563eb;font-weight:600}.sl-wbs-toggle{color:currentColor;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:18px;height:18px;display:flex}.sl-wbs-branch{text-align:center;color:#64748b;width:18px}.sl-main-panel{flex-direction:column;flex:1;display:flex;position:relative;overflow:hidden}.sl-viewport{background-color:#0b1120;background-image:linear-gradient(#ffffff08 1px,#0000 1px),linear-gradient(90deg,#ffffff08 1px,#0000 1px);background-position:0 0;background-repeat:repeat;background-size:40px 40px;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden}.sl-map-legend{z-index:10;color:#cbd5e1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172abf;border:1px solid #ffffff1a;border-radius:6px;padding:12px 16px;font-size:12px;position:absolute;top:20px;left:20px}.sl-legend-title{color:#fff;margin-bottom:8px;font-size:13px;font-weight:600}.sl-legend-item{align-items:center;gap:8px;display:flex}.sl-legend-item+.sl-legend-item{margin-top:6px}.sl-color-box{border-radius:2px;width:12px;height:12px}.sl-color-box.ahead{background:#f59e0b}.sl-color-box.lagging{background:#3b82f6}.sl-color-box.matched{background:#475569}.sl-mock-model{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.sl-engine-label{color:#475569;letter-spacing:4px;font-size:32px;font-weight:700}.sl-heat-zone{filter:blur(28px);border-radius:50%;position:absolute}.sl-heat-zone.ahead{background:#f59e0b4d;width:180px;height:100px;top:35%;left:30%}.sl-heat-zone.lagging{background:#2563eb66;width:250px;height:120px;transition:box-shadow .2s,border .2s;bottom:30%;right:25%}.sl-heat-zone.lagging.active{border:2px solid #ef4444cc;box-shadow:0 0 30px #ef444499}.sl-tooltip-3d{z-index:20;color:#fff;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0f172ad9;border-left:3px solid #ef4444;border-radius:6px;flex-direction:column;gap:4px;padding:12px;font-size:12px;display:flex;position:absolute;bottom:35%;right:22%;box-shadow:0 4px 12px #00000080}.sl-tooltip-3d strong{font-size:14px}.sl-bottom-grid{z-index:30;background:#fffffffa;border-top:1px solid #e2e8f0;flex-direction:column;width:100%;height:35%;transition:height .3s;display:flex;position:absolute;bottom:0;left:0;box-shadow:0 -4px 20px #00000014}.sl-bottom-grid.expanded{height:85%}.sl-bottom-grid.collapsed{height:48px}.sl-grid-header{cursor:pointer;background:#f8fafc;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;height:48px;padding:0 24px;display:flex}.sl-grid-header:hover{background:#f1f5f9}.sl-grid-title{font-size:15px;font-weight:600}.sl-grid-controls{gap:16px;display:flex}.sl-grid-controls button{color:#2563eb;cursor:pointer;background:0 0;border:none;font-size:13px;font-weight:500}.sl-grid-controls button:hover{text-decoration:underline}.sl-table-container{flex:1;overflow:auto}.sl-bottom-grid.collapsed .sl-table-container{display:none}.sl-ledger-table{border-collapse:collapse;text-align:left;width:100%;font-size:13px}.sl-ledger-table th{z-index:2;color:#64748b;background:#f1f5f9;border-bottom:1px solid #e2e8f0;padding:12px 16px;font-weight:600;position:sticky;top:0}.sl-ledger-table td{color:#0f172a;border-bottom:1px solid #f1f5f9;padding:10px 16px}.sl-ledger-table tr{cursor:pointer}.sl-ledger-table tr:hover{background:#f8fafc}.sl-ledger-table tr.active{background:#eff6ff}.sl-ledger-table tr.level-1{background:#fafafa;font-weight:600}.sl-ledger-table tr.level-2 td:first-child{color:#64748b;padding-left:32px}.sl-ledger-table tr.level-3 td:first-child{color:#64748b;padding-left:56px}.sl-ledger-table td.danger{color:#ef4444;font-weight:600}.sl-status-badge{border-radius:12px;align-items:center;gap:4px;padding:2px 8px;font-size:12px;font-weight:500;display:inline-flex}.sl-status-badge.ok{color:#166534;background:#dcfce3}.sl-status-badge.warn{color:#854d0e;background:#fef9c3}.sl-status-badge.danger{color:#991b1b;background:#fee2e2}@media (width<=1200px){.sl-sidebar{width:280px}}@media (width<=992px){.sl-workspace{flex-direction:column;overflow-y:auto}.sl-sidebar{border-bottom:1px solid #e2e8f0;border-right:none;width:100%}.sl-main-panel{min-height:720px}}@media (width<=768px){.sl-topbar{flex-direction:column;align-items:flex-start;gap:12px;height:auto;padding:16px}.sl-grid-header{flex-direction:column;align-items:flex-start;gap:12px;height:auto;padding:12px 16px}.sl-grid-controls{flex-wrap:wrap;gap:10px}.sl-engine-label{text-align:center;letter-spacing:2px;font-size:24px}.sl-tooltip-3d{bottom:42%;left:12px;right:12px}}.quality-hazard-page{background:#0b1120 radial-gradient(#1e293b 1px,#0000 1px) 0 0/20px 20px;flex-direction:column;height:100%;display:flex;overflow:hidden}.page-header{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a99;border-bottom:1px solid #ffffff14;justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;display:flex}.back-button{color:#f8fafc;cursor:pointer;background:#ffffff0d;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;transition:all .2s;display:flex}.back-button:hover{background:#0ea5e91a;border-color:#0ea5e9}.filter-item{background:#ffffff0d;border:1px solid #ffffff14;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;display:flex}.top-section{flex-direction:column;gap:24px;display:flex}.stats-container{gap:16px;display:flex}.stat-card{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a99;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;flex:1;gap:8px;padding:20px;display:flex}.stat-icon-wrap{color:#94a3b8;align-items:center;gap:8px;font-size:13px;display:flex}.stat-icon{border-radius:6px;justify-content:center;align-items:center;width:28px;height:28px;font-size:14px;display:flex}.stat-icon.total{color:#0ea5e9;background:#0ea5e933}.stat-icon.pending{color:#ef4444;background:#ef444433}.stat-icon.rate{color:#10b981;background:#10b98133}.stat-value.danger{color:#ef4444}.stat-value.success{color:#10b981}.filter-container{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a99;border:1px solid #ffffff14;border-radius:12px;flex-direction:column;gap:16px;padding:20px;display:flex}.filter-group{align-items:center;gap:16px;display:flex}.filter-label{color:#94a3b8;align-items:center;gap:4px;width:60px;font-size:13px;display:flex}.filter-options{flex-wrap:wrap;gap:8px;display:flex}.filter-btn{cursor:pointer;color:#94a3b8;background:0 0;border:1px solid #0000;border-radius:16px;padding:4px 12px;font-size:13px;transition:all .2s}.filter-btn:hover{color:#f8fafc;background:#ffffff0d}.filter-btn.active{color:#0ea5e9;background:#0ea5e926;border-color:#0ea5e94d;font-weight:500}.search-bar{justify-content:space-between;align-items:center;gap:16px;margin-top:8px;display:flex}.search-input{color:#f8fafc;background:#0000004d;border:1px solid #ffffff14;border-radius:8px;outline:none;flex:1;padding:10px 16px;font-size:13px;transition:all .2s}.search-input:focus{border-color:#0ea5e9}.btn-export{color:#0ea5e9;cursor:pointer;background:#0ea5e91a;border:1px solid #0ea5e9;border-radius:8px;align-items:center;gap:6px;padding:10px 20px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.btn-export:hover{color:#fff;background:#0ea5e9}.list-container{flex-direction:column;flex:1;gap:12px;display:flex;overflow:hidden}.list-header{color:#94a3b8;border-bottom:1px solid #ffffff0d;grid-template-columns:100px 2.5fr 1fr 1fr 1.5fr;gap:16px;padding:0 24px 8px;font-size:12px;display:grid}.list-row{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f172a99;border:1px solid #ffffff14;border-radius:12px;grid-template-columns:100px 2.5fr 1fr 1fr 1.5fr;align-items:center;gap:16px;padding:16px 24px;transition:all .2s;display:grid}.list-row:hover{background:#ffffff0d;border-color:#ffffff26;transform:translateY(-1px);box-shadow:0 4px 12px #0003}.thumb-box{cursor:pointer;color:#94a3b8;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;justify-content:center;align-items:center;width:80px;height:60px;display:flex;position:relative}.thumb-box:after{content:"🔍";opacity:0;background:#00000080;border-radius:6px;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex;position:absolute;inset:0}.thumb-box:hover:after{opacity:1}.info-col{flex-direction:column;gap:6px;display:flex}.info-id{color:#0ea5e9;cursor:pointer;font-size:14px;font-weight:600}.info-id:hover{text-decoration:underline}.info-title{color:#f8fafc;font-size:13px;font-weight:500}.info-meta{color:#94a3b8;align-items:center;gap:12px;font-size:11px;display:flex}.attr-col{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.badge{border:1px solid #0000;border-radius:4px;align-items:center;gap:4px;padding:2px 8px;font-size:11px;font-weight:500;display:flex}.b-danger{color:#ef4444;background:#ef444426;border-color:#ef44444d}.b-warn{color:#f59e0b;background:#f59e0b26;border-color:#f59e0b4d}.b-source{color:#94a3b8;background:#ffffff0d;border-color:#ffffff1a}.status-col{align-items:center;display:flex}.status-pill{border:1px solid;border-radius:16px;padding:4px 12px;font-size:12px;font-weight:500}.s-pending{color:#ef4444;background:#ef44441a;border-color:#ef44444d}.s-doing{color:#0ea5e9;background:#0ea5e91a;border-color:#0ea5e94d}.s-closed{color:#10b981;background:#10b9811a;border-color:#10b9814d}.action-col{justify-content:flex-end;gap:8px;display:flex}.btn{cursor:pointer;border:1px solid #0000;border-radius:6px;padding:6px 16px;font-size:12px;font-weight:500;transition:all .2s}.btn-view{color:#f8fafc;background:#ffffff0d;border-color:#ffffff1a}.btn-view:hover{background:#ffffff1a}.btn-urge{color:#f59e0b;background:#f59e0b1a;border-color:#f59e0b;align-items:center;gap:4px;display:flex}.btn-urge:hover{color:#fff;background:#f59e0b}::-webkit-scrollbar{width:4px}.violation-capture-page{background:var(--bg1);flex-direction:column;height:100%;display:flex;overflow:hidden}.page-header{background:var(--bg2);border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;gap:20px;padding:20px 24px;display:flex}.page-header>div:first-child{align-items:center;gap:20px;display:flex}.back-button{border:1px solid var(--border2);color:var(--text);cursor:pointer;background:#ffffff0d;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:14px;transition:all .2s;display:flex}.back-button:hover{border-color:var(--p);background:#00d4ff1a}.page-title{align-items:center;gap:12px;display:flex}.page-title h1{color:var(--text);margin:0;font-size:20px;font-weight:600}.page-filters{align-items:center;gap:12px;display:flex}.filter-item{border:1px solid var(--border2);background:#ffffff0d;border-radius:8px;align-items:center;gap:8px;padding:8px 14px;display:flex}.filter-item select{color:var(--text2);cursor:pointer;background:0 0;border:none;outline:none;font-size:13px}.page-content{flex-direction:column;flex:1;gap:16px;padding:20px 24px;display:flex;overflow:hidden}.filter-section{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;display:flex}.filter-tags{flex-wrap:wrap;gap:10px;display:flex}.filter-tag{border:1px solid var(--border2);color:var(--text2);cursor:pointer;background:#ffffff0d;border-radius:20px;padding:8px 18px;font-size:13px;transition:all .2s}.filter-tag:hover{border-color:var(--tag-color,var(--p));background:#ffffff14}.filter-tag.active{background:color-mix(in srgb, var(--tag-color,var(--p)) 20%, transparent);border-color:var(--tag-color,var(--p));color:var(--tag-color,var(--p));font-weight:600}.search-export{align-items:center;gap:12px;display:flex}.search-box{border:1px solid var(--border2);color:var(--text3);background:#ffffff0d;border-radius:8px;align-items:center;gap:8px;min-width:280px;padding:8px 14px;display:flex}.search-box input{color:var(--text2);background:0 0;border:none;outline:none;width:100%;font-size:13px}.export-btn{border:1px solid var(--p);color:var(--p);cursor:pointer;background:#00d4ff26;border-radius:8px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.export-btn:hover{background:#00d4ff40}.captures-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));align-content:start;gap:20px;padding-bottom:20px;display:grid;overflow-y:auto}.capture-card{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;transition:all .3s;overflow:hidden}.capture-card:hover{border-color:#00d4ff4d;transform:translateY(-4px);box-shadow:0 8px 24px #0000004d}.capture-image-container{aspect-ratio:4/3;background:#0000004d;position:relative;overflow:hidden}.capture-photo{width:100%;height:100%;position:relative}.photo-placeholder{width:100%;height:100%;color:var(--text3);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.photo-placeholder p{margin:0;font-size:14px}.ai-box{pointer-events:none;border:2px solid;border-radius:4px;position:absolute}.ai-label{color:#fff;border-radius:4px 4px 0 0;padding:2px 8px;font-size:11px;font-weight:700;position:absolute;top:-24px;left:-2px}.capture-type-tag{color:#fff;border-radius:20px;padding:6px 14px;font-size:13px;font-weight:700;position:absolute;top:12px;left:12px;box-shadow:0 2px 8px #0000004d}.confidence-badge{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--p);background:#000000b3;border-radius:6px;padding:6px 12px;font-size:12px;font-weight:600;position:absolute;top:12px;right:12px}.capture-details{flex-direction:column;gap:10px;padding:16px;display:flex}.detail-row{color:var(--text2);align-items:center;gap:8px;font-size:13px;display:flex}.detail-row svg{color:var(--text3);flex-shrink:0}.capture-actions{gap:8px;padding:0 16px 16px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:6px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.action-btn.valid{color:#2ecc71;background:#2ecc7126}.action-btn.valid:hover{background:#2ecc7140}.action-btn.invalid{color:#ff3838;background:#ff383826}.action-btn.invalid:hover{background:#ff383840}.capture-card-new{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;flex-direction:column;height:100%;transition:all .3s;display:flex;overflow:hidden}.capture-card-new:hover{border-color:#00d4ff4d;transform:translateY(-4px);box-shadow:0 8px 24px #0000004d}.capture-visual{background:#0000004d;height:70%;min-height:280px;position:relative;overflow:hidden}.capture-photo-wrapper{width:100%;height:100%;position:relative}.photo-placeholder-new{width:100%;height:100%;color:var(--text3);background:linear-gradient(135deg,#0006 0%,#0009 100%);justify-content:center;align-items:center;display:flex}.ai-box-new{pointer-events:none;z-index:5;border:2px solid;border-radius:4px;position:absolute}.confidence-badge-new{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:#00d4ff;z-index:10;background:#000000bf;border-radius:20px;align-items:center;gap:4px;padding:6px 12px;font-size:12px;font-weight:600;display:flex;position:absolute;top:12px;right:12px}.hover-overlay{opacity:0;z-index:15;background:#0009;justify-content:center;align-items:center;transition:opacity .3s;display:flex;position:absolute;inset:0}.capture-visual:hover .hover-overlay{opacity:1}.hover-buttons{gap:12px;display:flex}.hover-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;padding:12px 20px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.hover-btn.primary{color:#fff;background:#ff3838}.hover-btn.primary:hover{background:#ff4d4d;transform:scale(1.05)}.hover-btn.secondary{color:#fff;background:#fff3;border:1px solid #ffffff4d}.hover-btn.secondary:hover{background:#ffffff4d;transform:scale(1.05)}.capture-info-area{background:var(--bg2);flex-direction:column;gap:10px;height:30%;padding:14px 16px;display:flex}.violation-type-badge{color:#fff;border-radius:16px;align-items:center;gap:6px;width:fit-content;padding:4px 12px;font-size:13px;font-weight:700;display:inline-flex}.capture-meta{flex-direction:column;gap:6px;display:flex}.meta-item{color:var(--text2);align-items:center;gap:8px;font-size:13px;display:flex}.meta-item svg{color:var(--text3);flex-shrink:0}:root{--eem-bg:#08111f;--eem-panel:#0a1424d6;--eem-panel-2:#101c30e6;--eem-border:#4755698c;--eem-border-soft:#94a3b82e;--eem-text:#f8fafc;--eem-sub:#94a3b8;--eem-blue:#3b82f6;--eem-cyan:#22d3ee;--eem-danger:#ef4444;--eem-warning:#f59e0b;--eem-success:#10b981;--eem-purple:#a855f7;--eem-shadow:0 12px 32px #00000057}.eem-page{background:var(--eem-bg);height:100%;color:var(--eem-text);flex-direction:column;display:flex;overflow:hidden}.eem-topbar{border-bottom:1px solid var(--eem-border);z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0a1424eb;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:12px 24px;display:flex}.eem-title-block{flex-direction:column;gap:4px;display:flex}.eem-title-main{align-items:center;gap:12px;display:flex}.eem-back-btn{border:1px solid var(--eem-border-soft);color:#e2e8f0;cursor:pointer;background:#ffffff0a;border-radius:8px;align-items:center;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.eem-back-btn:hover{background:#ffffff14}.eem-title{letter-spacing:1px;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.eem-subtitle{color:var(--eem-sub);font-size:12px}.eem-top-actions{justify-content:flex-end;align-items:center;gap:12px;display:flex}.eem-btn-export{background:linear-gradient(135deg, var(--eem-blue), #2563eb);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:8px;padding:9px 16px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 0 10px #3b82f659}.eem-btn-export:hover{background:#2563eb}.eem-summary-strip{border-bottom:1px solid var(--eem-border);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:30;background:linear-gradient(#0f172aeb,#08111feb);grid-template-columns:repeat(8,minmax(0,1fr));gap:12px;height:108px;padding:14px 20px;display:grid}.eem-stat-card{border:1px solid var(--eem-border-soft);background:#ffffff0a;border-radius:12px;flex-direction:column;justify-content:center;gap:6px;min-width:0;padding:12px 14px;display:flex}.eem-stat-label{color:var(--eem-sub);font-size:11px;line-height:1.4}.eem-stat-value{white-space:nowrap;font-size:22px;font-weight:700}.eem-stat-note{color:#cbd5e1;white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.eem-workspace{flex:1;position:relative;overflow:hidden}.eem-map-base{background:radial-gradient(#ffffff0b 1px,#0000 1px) 0 0/40px 40px,radial-gradient(circle at 22% 22%,#3b82f617,#0000 22%),radial-gradient(circle at 78% 28%,#22d3ee14,#0000 18%),radial-gradient(circle at 58% 72%,#10b98112,#0000 18%),linear-gradient(#08111f 0%,#0a1527 100%);position:absolute;inset:0}.eem-river{pointer-events:none;background:linear-gradient(#3b82f614,#22d3ee2e,#3b82f61a);border:1px solid #3b82f61f;border-radius:48% 52% 42% 58%/18% 22% 78% 82%;width:320px;height:520px;position:absolute;top:12%;right:16%;transform:rotate(16deg)}.eem-village{color:#bfdbfed9;pointer-events:none;background:#00000059;border:1px solid #3b82f666;border-radius:8px;padding:4px 10px;font-size:13px;font-weight:700;position:absolute;top:16%;right:34%}.eem-map-grid-note{color:#e2e8f029;letter-spacing:4px;pointer-events:none;font-size:36px;font-weight:700;position:absolute;top:24px;left:50%;transform:translate(-50%)}.eem-floating{z-index:10;background:var(--eem-panel);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--eem-border);box-shadow:var(--eem-shadow);border-radius:14px;position:absolute}.eem-left-panel{flex-direction:column;gap:18px;width:420px;padding:18px;display:flex;top:20px;bottom:20px;left:20px;overflow-y:auto}.eem-right-panel{flex-direction:column;width:430px;display:flex;top:20px;bottom:20px;right:20px;overflow:hidden}.eem-section-title{color:#fff;border-bottom:1px solid var(--eem-border);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;font-size:15px;font-weight:700;display:flex}.eem-section-sub{color:var(--eem-sub);margin-top:10px;font-size:12px;line-height:1.6}.eem-tabs{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.eem-tab{border:1px solid var(--eem-border-soft);color:#e2e8f0;cursor:pointer;background:#ffffff0a;border-radius:8px;padding:10px 8px;font-size:12px;font-weight:600}.eem-tab.active{border-color:var(--eem-blue);background:#3b82f624}.eem-control-group,.eem-rule-box,.eem-layer-popover{border:1px solid var(--eem-border-soft);background:#ffffff0a;border-radius:12px;padding:14px}.eem-filter-row{grid-template-columns:1fr 1fr;gap:10px;display:grid}.eem-filter-row.three-col{grid-template-columns:repeat(3,1fr)}.eem-select{border:1px solid var(--eem-border-soft);color:#fff;background:#00000038;border-radius:8px;width:100%;padding:10px 12px}.eem-rule-box{color:#cbd5e1;font-size:12px;line-height:1.7}.eem-rule-box strong{color:#fff}.eem-map-layer-control{z-index:15;position:absolute;top:20px;left:460px}.eem-layer-toggle-btn{border:1px solid var(--eem-border-soft);color:#fff;cursor:pointer;min-width:58px;height:34px;box-shadow:var(--eem-shadow);background:#0a1424e6;border-radius:999px;font-size:12px;font-weight:700}.eem-layer-toggle-btn.active{border-color:var(--eem-blue)}.eem-layer-popover{width:240px;box-shadow:var(--eem-shadow);margin-top:10px}.eem-switch-item{cursor:pointer;color:#fff;text-align:left;background:#ffffff08;border:1px solid #0000;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:10px 12px;font-size:13px;display:flex}.eem-switch-item+.eem-switch-item{margin-top:8px}.eem-switch-item.active{border-color:var(--eem-blue);background:#3b82f61f}.eem-switch-item:hover{background:#ffffff12}.eem-toggle{background:#334155;border-radius:999px;flex-shrink:0;width:38px;height:20px;position:relative}.eem-toggle:after{content:"";background:#fff;border-radius:50%;width:16px;height:16px;transition:all .25s;position:absolute;top:2px;left:2px}.eem-switch-item.active .eem-toggle{background:var(--eem-blue)}.eem-switch-item.active .eem-toggle:after{left:20px}.eem-pr-header{border-bottom:1px solid var(--eem-border);background:#0000002e;justify-content:space-between;align-items:center;gap:12px;padding:16px 18px;display:flex}.eem-feed-title{font-size:15px;font-weight:700}.eem-feed-filter{color:var(--eem-sub);text-align:right;font-size:12px}.eem-feed-list{flex-direction:column;flex:1;gap:14px;padding:16px;display:flex;overflow-y:auto}.eem-feed-card{border:1px solid var(--eem-border-soft);border-left:4px solid var(--eem-blue);cursor:pointer;color:#fff;text-align:left;background:linear-gradient(#ffffff0d,#ffffff08);border-radius:14px;padding:16px;transition:all .22s;box-shadow:0 8px 22px #00000029}.eem-feed-card:hover{background:linear-gradient(#ffffff14,#ffffff0d);transform:translateY(-3px)}.eem-feed-card.high{border-left-color:var(--eem-danger)}.eem-feed-card.medium{border-left-color:var(--eem-warning)}.eem-feed-card.observe{border-left-color:var(--eem-purple)}.eem-feed-card.eco{border-left-color:var(--eem-success)}.eem-feed-card-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:10px;display:flex}.eem-feed-domain{color:#bfdbfe;letter-spacing:.8px;font-size:11px}.eem-feed-badge-row{align-items:center;gap:8px;display:flex}.eem-feed-card-title{margin-bottom:10px;font-size:15px;font-weight:700;line-height:1.6}.eem-feed-badge{white-space:nowrap;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700}.eem-feed-badge.high{background:var(--eem-danger);color:#fff}.eem-feed-badge.medium{background:var(--eem-warning);color:#111827}.eem-feed-badge.observe{background:var(--eem-purple);color:#fff}.eem-feed-status{color:#cbd5e1;background:#ffffff14;border-radius:999px;padding:3px 8px;font-size:11px}.eem-feed-meta{color:var(--eem-sub);margin-bottom:6px;font-size:12px;line-height:1.6}.eem-feed-meta.strong{color:#e2e8f0}.eem-feed-summary{color:#dbe6f4;margin:8px 0 10px;font-size:13px;line-height:1.7}.eem-feed-tags{flex-wrap:wrap;gap:6px;display:flex}.eem-tag,.eem-detail-tag{border:1px solid var(--eem-border-soft);color:#cbd5e1;background:#ffffff0f;border-radius:999px;padding:3px 8px;font-size:11px}.eem-feed-open{color:#93c5fd;margin-top:12px;font-size:12px}.eem-empty-card{text-align:center;border:1px dashed var(--eem-border-soft);color:var(--eem-sub);border-radius:14px;padding:20px}.eem-map-feature{transition:all .25s;position:absolute}.eem-sensitive-zone{border:2px dashed var(--eem-blue);background:#3b82f61a;border-radius:40% 60% 70% 30%/40% 50% 60%;justify-content:center;align-items:center;width:300px;height:190px;display:flex;top:12%;right:23%;box-shadow:0 0 20px #3b82f62e}.eem-label{color:#bfdbfe;background:#00000073;border:1px solid #3b82f659;border-radius:6px;padding:4px 8px;font-size:12px;font-weight:700}.eem-water-plume-wrap{top:35%;right:35%}.eem-water-plume{filter:blur(4px);background:radial-gradient(at 0 0,#f59e0bd1 0%,#f59e0b40 60%,#0000 100%);border-radius:50%;width:110px;height:88px}.eem-trace-line{border-top:2px dashed var(--eem-danger);width:104px;height:2px;position:absolute;top:30px;left:-84px;transform:rotate(15deg)}.eem-trace-pin{background:var(--eem-danger);cursor:pointer;border:none;border-radius:50%;width:14px;height:14px;animation:1.5s infinite eemPulseRed;position:absolute;top:44px;left:-94px;box-shadow:0 0 15px #ef44448c}.eem-trace-label{color:#fecaca;background:#000000a3;border-radius:6px;padding:3px 7px;font-size:12px;font-weight:700;position:absolute;top:60px;left:-148px}.eem-air-heat{filter:blur(20px);cursor:pointer;background:radial-gradient(circle,#a855f7a6 0%,#ef444461 40%,#0000 80%);border:none;width:220px;height:160px;animation:4s ease-in-out infinite eemFloat;top:56%;left:28%}.eem-bare-soil{grid-template-rows:repeat(4,1fr);grid-template-columns:repeat(4,1fr);gap:2px;width:252px;height:210px;display:grid;top:50%;left:23%;transform:rotateX(45deg)rotate(-15deg)}.eem-soil-cell{background:#ffffff05;border:1px solid #ffffff0f}.eem-soil-cell.danger{border-color:var(--eem-warning);cursor:pointer;background:#f59e0b4d;box-shadow:inset 0 0 10px #f59e0b66}.eem-soil-tip{color:#fcd34d;pointer-events:none;background:#000000a3;border-radius:6px;padding:3px 8px;font-size:12px;font-weight:700;position:absolute;top:-32px;left:8px;transform:rotateX(-45deg)rotate(15deg)}.eem-sensor.sensor-one{top:52%;left:44%}.eem-sensor.sensor-two{top:46%;left:38%}.eem-pm-sensor{background:var(--eem-purple);cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;animation:1.8s infinite eemPulsePurple;box-shadow:0 0 18px #a855f794}.eem-pm-label{color:#ddd6fe;white-space:nowrap;background:#0000009e;border-radius:6px;padding:3px 8px;font-size:11px;font-weight:700;position:absolute;top:18px;left:50%;transform:translate(-50%)}.eem-wildlife-zone{border:2px dashed var(--eem-success);background:#10b9811f;border-radius:50% 40% 60%;justify-content:center;align-items:center;width:220px;height:150px;animation:5s ease-in-out infinite reverse eemFloat;display:flex;top:24%;left:46%;box-shadow:0 0 20px #10b9812e}.eem-wildlife-zone .eem-label{color:#a7f3d0;border-color:#10b98159}.eem-wildlife-pin{background:var(--eem-warning);cursor:pointer;border:2px solid #fff;border-radius:50%;width:16px;height:16px;animation:1.5s infinite eemPulseYellow;position:absolute;bottom:-12px;right:18px;box-shadow:0 0 14px #f59e0b94}.eem-wildlife-note{color:#fcd34d;white-space:nowrap;background:#000000b8;border:1px solid #f59e0b5c;border-radius:6px;padding:3px 7px;font-size:12px;font-weight:700;position:absolute;bottom:-38px;right:-34px}.eem-agg-bubble{color:#dbeafe;cursor:pointer;text-align:center;background:#08111fd1;border:1px solid #3b82f657;border-radius:999px;min-width:150px;padding:10px 14px;font-size:12px;font-weight:700;box-shadow:0 0 20px #3b82f62e}.eem-agg-bubble.agg-a{top:18%;left:52%}.eem-agg-bubble.agg-b{top:68%;left:36%}.eem-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:200;opacity:0;background:#0000009e;transition:all .3s;display:none;position:fixed;inset:0}.eem-overlay.show{opacity:1;display:block}.eem-drawer{width:980px;height:100vh;box-shadow:var(--eem-shadow);z-index:201;background:#0f172a;border-left:1px solid #334155;flex-direction:column;transition:right .38s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:-980px}.eem-drawer.open{right:0}.eem-d-header{background:#0000003d;border-bottom:1px solid #1e293b;justify-content:space-between;align-items:center;gap:12px;padding:20px 28px;display:flex}.eem-d-title{flex-wrap:wrap;align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.eem-drawer-badge{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.eem-drawer-badge.danger{background:var(--eem-danger)}.eem-drawer-badge.purple{background:var(--eem-purple)}.eem-drawer-badge.warning-dark{background:var(--eem-warning);color:#0f172a}.eem-d-close{color:var(--eem-sub);cursor:pointer;background:0 0;border:none}.eem-d-close:hover{color:#fff}.eem-d-body{flex-direction:column;flex:1;gap:20px;padding:28px;display:flex;overflow-y:auto}.eem-d-footer{background:#0000003d;border-top:1px solid #1e293b;justify-content:space-between;align-items:center;gap:12px;padding:16px 28px;display:flex}.eem-detail-overview{background:linear-gradient(#1e293bf5,#0f172af5);border:1px solid #334155;border-radius:16px;grid-template-columns:minmax(0,1.5fr) 280px;gap:16px;padding:18px;display:grid}.eem-detail-kicker{color:#93c5fd;letter-spacing:.8px;margin-bottom:8px;font-size:11px}.eem-detail-main h3{margin:0 0 10px;font-size:24px;line-height:1.45}.eem-detail-main p{color:#cbd5e1;margin:0;line-height:1.8}.eem-detail-side{background:#ffffff0a;border:1px solid #94a3b824;border-radius:14px;flex-direction:column;gap:10px;padding:16px;display:flex}.eem-detail-pill{color:#bfdbfe;background:#3b82f624;border-radius:999px;width:fit-content;padding:4px 10px;font-size:12px;font-weight:700}.eem-detail-line{color:#cbd5e1;font-size:13px;line-height:1.6}.eem-detail-tags{flex-wrap:wrap;gap:8px;display:flex}.eem-detail-layout.two-col{grid-template-columns:minmax(0,1.2fr) 360px;gap:16px;display:grid}.eem-detail-stack{flex-direction:column;gap:16px;display:flex}.eem-alert-box{border:1px solid #0000;border-radius:14px;padding:18px;font-size:13px;line-height:1.8}.eem-alert-box.high{background:#ef44441a;border-color:#ef444447}.eem-alert-box.air{background:#a855f71a;border-color:#a855f747}.eem-alert-box.eco{background:#f59e0b1a;border-color:#f59e0b47}.eem-alert-title{margin-bottom:8px;font-size:16px;font-weight:700}.eem-danger-text{color:var(--eem-danger)}.eem-purple-text{color:#d8b4fe}.eem-warning-text{color:var(--eem-warning)}.eem-highlight-value{color:#fff;font-size:16px;font-weight:700}.eem-meta-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.eem-meta-grid.compact{grid-template-columns:repeat(2,1fr)}.eem-meta-card{background:#1e293b;border:1px solid #334155;border-radius:14px;padding:14px}.eem-meta-label{color:var(--eem-sub);margin-bottom:6px;font-size:12px}.eem-meta-value{font-size:18px;font-weight:700}.eem-meta-value.eem-meta-small{font-size:15px;line-height:1.6}.eem-danger-soft{color:#fca5a5}.eem-blue-soft{color:#93c5fd}.eem-purple-soft{color:#d8b4fe}.eem-warning-soft{color:var(--eem-warning)}.eem-warning-fade{color:#fcd34d}.eem-species-text{color:#a7f3d0;font-size:15px}.eem-panel-card{background:#1e293b;border:1px solid #334155;border-radius:14px;overflow:hidden}.eem-panel-card.emphasis{box-shadow:inset 0 0 0 1px #ffffff08}.eem-panel-card.compact-card{min-height:0}.eem-panel-title-row{background:#00000052;border-bottom:1px solid #334155;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:700;display:flex}.eem-panel-title-row small{color:var(--eem-sub);font-size:12px;font-weight:400}.eem-slider-container{-webkit-user-select:none;user-select:none;width:100%;height:360px;position:relative;overflow:hidden}.eem-img-after,.eem-img-before{flex-direction:column;justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:absolute;top:0;left:0}.eem-img-after{background:#475569}.eem-img-before{background:#064e3b;border-right:2px solid #fff;overflow:hidden}.eem-mock-mud{filter:blur(20px);opacity:.82;background:#b45309;border-radius:50%;width:200px;height:150px}.eem-mock-clear-water{color:#34d399;letter-spacing:4px;text-align:center;min-width:950px;font-size:24px;font-weight:700}.eem-img-label{color:#fff;z-index:5;background:#0009;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:700;position:absolute;top:12px}.eem-left-label{left:12px}.eem-right-label{right:12px}.eem-danger-bg{background:#ef4444d1}.eem-slider-divider{z-index:3;pointer-events:none;justify-content:center;align-items:center;width:40px;display:flex;position:absolute;top:0;bottom:0;transform:translate(-50%)}.eem-slider-btn{width:36px;height:36px;color:var(--eem-bg);background:#fff;border-radius:50%;justify-content:center;align-items:center;font-size:18px;font-weight:700;display:flex;box-shadow:0 2px 6px #00000080}.eem-slider-input{z-index:4;width:calc(100% - 40px);position:absolute;inset:auto 20px 20px}.eem-dom-img-box{background:#334155;justify-content:center;align-items:center;height:300px;display:flex;position:relative;overflow:hidden}.eem-dom-img-box.small-box{height:220px}.eem-dom-placeholder{color:#64748b;letter-spacing:2px;font-size:14px}.eem-danger-target-box{border:2px solid var(--eem-danger);width:80px;height:60px;position:absolute;bottom:30%;right:40%}.eem-danger-target-box span{background:var(--eem-danger);padding:2px 4px;font-size:10px;font-weight:700;position:absolute;top:-20px;left:-2px}.eem-ai-bare-box{border:2px solid var(--eem-warning);background:#f59e0b33;width:180px;height:120px;position:absolute;top:30%;left:40%}.eem-ai-bare-label{background:var(--eem-warning);color:#fff;padding:2px 8px;font-size:12px;font-weight:700;position:absolute;top:-24px;left:-2px}.eem-chart-wrap{height:210px;padding:18px 20px 20px 30px;position:relative}.eem-chart-wrap.eem-chart-short{height:170px}.eem-chart-box{border-bottom:1px solid #475569;border-left:1px solid #475569;height:100%;position:relative}.eem-limit-line{z-index:1;width:100%;position:absolute;left:0}.eem-limit-line span{font-size:10px;position:absolute;top:-18px;right:0}.eem-limit-pm{border-top:1px dashed var(--eem-purple);top:30%}.eem-limit-pm span{color:var(--eem-purple)}.eem-limit-noise{border-top:1px dashed var(--eem-danger);top:40%}.eem-limit-noise span{color:var(--eem-danger)}.eem-line-chart{position:absolute;inset:0;overflow:visible}.eem-thermal-box{background:#1e293b;justify-content:center;align-items:center;height:320px;display:flex;position:relative;overflow:hidden}.eem-thermal-gradient{opacity:.62;background:linear-gradient(135deg,#1e3a8a 0%,#312e81 40%,#831843 80%,#fef08a 100%);width:100%;height:100%;position:absolute}.eem-thermal-tag{z-index:4;background:#00000080;border-radius:4px;padding:4px 12px;font-size:14px;font-weight:700;position:absolute;top:10px;left:10px}.eem-thermal-dot{z-index:5;background:#fef08a;border-radius:50%;width:15px;height:15px;position:absolute;top:50%;left:30%;box-shadow:0 0 10px #fef08a}.eem-machine-box{border:2px dashed var(--eem-warning);z-index:5;width:34px;height:34px;color:var(--eem-warning);justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex;position:absolute;top:70%;left:60%}.eem-svg-line{z-index:4;position:absolute;inset:0}.eem-action-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:700;display:inline-flex}.eem-action-btn.outline{color:#fff;background:0 0;border:1px solid #475569}.eem-action-btn.outline:hover{background:#1e293b}.eem-action-btn.primary{background:var(--eem-danger);color:#fff}.eem-action-btn.primary:hover{background:#dc2626}.eem-action-btn.warning{background:var(--eem-warning);color:#0f172a}.eem-action-btn.warning:hover{color:#fff;background:#d97706}.eem-action-btn.blue{background:var(--eem-blue);color:#fff}.eem-action-btn.blue:hover{background:#2563eb}.eem-footer-actions{gap:12px;display:flex}@keyframes eemPulseRed{0%{box-shadow:0 0 #ef4444b3}70%{box-shadow:0 0 0 15px #ef444400}to{box-shadow:0 0 #ef444400}}@keyframes eemPulseYellow{0%{box-shadow:0 0 #f59e0bb3}70%{box-shadow:0 0 0 15px #f59e0b00}to{box-shadow:0 0 #f59e0b00}}@keyframes eemPulsePurple{0%{box-shadow:0 0 #a855f799}70%{box-shadow:0 0 0 15px #a855f700}to{box-shadow:0 0 #a855f700}}@keyframes eemFloat{0%{transform:translateY(0)scale(1)}50%{transform:translateY(-10px)scale(1.05)}to{transform:translateY(0)scale(1)}}@media (width<=1600px){.eem-summary-strip{grid-template-columns:repeat(4,minmax(0,1fr));height:auto}.eem-left-panel{width:380px}.eem-right-panel{width:390px}.eem-map-layer-control{left:420px}.eem-drawer{width:900px;right:-900px}}@media (width<=1280px){.eem-topbar{flex-direction:column;align-items:flex-start}.eem-workspace{overflow:auto}.eem-left-panel,.eem-right-panel{width:auto;margin:16px;position:relative;inset:auto}.eem-map-layer-control,.eem-map-feature,.eem-map-grid-note,.eem-village,.eem-river{display:none}.eem-drawer{width:100%;right:-100%}.eem-detail-overview,.eem-detail-layout.two-col{grid-template-columns:1fr}}@media (width<=900px){.eem-filter-row,.eem-filter-row.three-col,.eem-tabs,.eem-meta-grid,.eem-meta-grid.compact{grid-template-columns:1fr}}@media (width<=768px){.eem-summary-strip{grid-template-columns:repeat(2,minmax(0,1fr))}.eem-d-header,.eem-d-body,.eem-d-footer{padding-left:16px;padding-right:16px}.eem-d-footer,.eem-footer-actions,.eem-top-actions{flex-direction:column;align-items:stretch}.eem-action-btn,.eem-btn-export{justify-content:center;width:100%}.eem-mock-clear-water{min-width:480px;font-size:18px}}.video-monitor-page{color:#0f172a;background:linear-gradient(#eef2f6 0%,#e7edf3 100%);min-height:100vh;padding:20px}.video-monitor-header{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#ffffffe6;border:1px solid #94a3b829;border-radius:16px;justify-content:space-between;align-items:center;margin-bottom:24px;padding:16px 24px;display:flex;box-shadow:0 16px 36px #0f172a14}.video-monitor-header .header-left{align-items:center;gap:16px;display:flex}.video-monitor-header .header-left h1{color:#0f172a;margin:0;font-size:24px;font-weight:700}.back-btn{color:#0b67b2;cursor:pointer;background:#ffffffe0;border:1px solid #94a3b82e;border-radius:10px;padding:10px 20px;font-weight:700;transition:all .2s;box-shadow:0 10px 24px #0f172a0f}.back-btn:hover{background:#dbeafeb8;border-color:#3b82f647;transform:translateY(-1px)}.video-monitor-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;margin-bottom:24px;display:grid}.video-monitor-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:linear-gradient(#f7f5ede6,#ebebe2d6);border:1px solid #ffffff7a;border-radius:18px;transition:all .25s;overflow:hidden;box-shadow:0 18px 40px #0f172a1a}.video-monitor-card:hover{transform:translateY(-4px);box-shadow:0 24px 48px #0f172a24}.video-card-header{background:#ffffff80;border-bottom:1px solid #94a3b81f;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.video-card-title{color:#0f172a;align-items:center;gap:8px;font-weight:700;display:flex}.video-status{border-radius:999px;padding:4px 10px;font-size:12px;font-weight:700}.video-status.live{color:#dc2626;background:#dc26261a;animation:1.5s ease-in-out infinite pulse}.video-status.standby{color:#64748b;background:#94a3b824}.video-card-body{padding:16px}.video-preview{aspect-ratio:16/9;background:linear-gradient(#0b67b21f,#0f172a2e);border:1px solid #94a3b81f;border-radius:12px;width:100%;margin-bottom:12px;position:relative;overflow:hidden}.video-preview-placeholder{color:#64748b;background:linear-gradient(#ffffff59,#ffffff1f);justify-content:center;align-items:center;width:100%;height:100%;display:flex;position:relative}.live-badge-small{color:#dc2626;background:#ffffffe0;border-radius:999px;padding:3px 8px;font-size:10px;font-weight:700;animation:1.5s ease-in-out infinite pulse;position:absolute;top:8px;left:8px}.video-fullscreen-btn{color:#475569;cursor:pointer;background:#ffffffe6;border:1px solid #94a3b82e;border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;transition:all .2s;display:flex;position:absolute;top:8px;right:8px}.video-fullscreen-btn:hover{color:#0b67b2;background:#dbeafed9;transform:scale(1.06)}.video-card-info{flex-direction:column;gap:4px;display:flex}.video-task-name{color:#0f172a;font-size:14px;font-weight:700}.video-update-time{color:#64748b;font-size:12px}.video-card-footer{background:#ffffff75;border-top:1px solid #94a3b81a;gap:8px;padding:12px 16px;display:flex}.video-action-btn{color:#0b67b2;cursor:pointer;background:#dbeafec7;border:1px solid #3b82f629;border-radius:8px;flex:1;padding:8px 12px;font-size:12px;font-weight:700;transition:all .2s}.video-action-btn:hover{background:#bfdbfee6}.video-action-btn.secondary{color:#475569;background:#ffffffc2;border-color:#94a3b829}.video-action-btn.secondary:hover{background:#f1f5f9eb}.video-monitor-footer{background:#ffffffe6;border:1px solid #94a3b824;border-radius:16px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;padding:20px;display:grid;box-shadow:0 16px 36px #0f172a14}.footer-stat{text-align:center;background:#f4f7fbdb;border:1px solid #94a3b81a;border-radius:12px;padding:14px 12px}.stat-value{color:#0f172a;font-family:Orbitron,monospace;font-size:20px;font-weight:700}@media (width<=1200px){.video-monitor-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}}@media (width<=768px){.video-monitor-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.video-monitor-header{text-align:center;flex-direction:column;gap:12px}.video-monitor-footer{grid-template-columns:repeat(2,1fr)}}@media (width<=480px){.video-monitor-grid,.video-monitor-footer{grid-template-columns:1fr}.video-card-footer{flex-direction:column}}.video-fullscreen-overlay{z-index:1000;background:linear-gradient(#eef2f6fa,#e7edf3fa);flex-direction:column;display:flex;position:fixed;inset:0}.video-fullscreen-header{background:#ffffffe0;border-bottom:1px solid #94a3b824;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 24px;display:flex;box-shadow:0 10px 24px #0f172a0f}.video-title{color:#0f172a;align-items:center;gap:12px;font-size:18px;font-weight:700;display:flex}.video-task{color:#0b67b2;background:#dbeafec7;border-radius:999px;margin-left:8px;padding:4px 12px;font-size:13px}.video-controls{align-items:center;gap:12px;display:flex}.control-btn{color:#475569;cursor:pointer;background:#ffffffe6;border:1px solid #94a3b82e;border-radius:8px;padding:8px 16px;font-size:13px;font-weight:700;transition:all .2s}.control-btn:hover{color:#0b67b2;background:#dbeafed1}.control-btn.close{color:#dc2626;background:#fee2e2e6;border-color:#ef444438;justify-content:center;align-items:center;width:36px;height:36px;padding:0;display:flex}.control-btn.close:hover{background:#fecacaf2}.video-fullscreen-content{flex:1;gap:16px;padding:16px;display:flex;overflow:hidden}.main-video-player{background:linear-gradient(#f7f5ede6,#ebebe2d6);border:1px solid #ffffff73;border-radius:18px;flex:1;justify-content:center;align-items:center;display:flex;position:relative;overflow:hidden;box-shadow:0 18px 40px #0f172a1a}.video-placeholder{color:#64748b;flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.video-placeholder span{color:#475569;font-size:16px}.live-badge{color:#dc2626;background:#ffffffe6;border-radius:999px;padding:6px 12px;font-size:12px;font-weight:700;animation:1.5s ease-in-out infinite pulse;position:absolute;top:16px;left:16px}.drone-control-panel{background:#ffffffe0;border:1px solid #94a3b829;border-radius:16px;flex-wrap:wrap;gap:24px;padding:16px;display:flex;position:absolute;bottom:16px;left:16px;right:16px;box-shadow:0 16px 36px #0f172a14}.control-section{flex-direction:column;gap:8px;display:flex}.control-label{color:#64748b;font-size:12px;font-weight:700}.control-buttons{flex-wrap:wrap;gap:8px;display:flex}.control-action-btn{color:#475569;cursor:pointer;background:#ffffffeb;border:1px solid #94a3b829;border-radius:8px;align-items:center;gap:4px;padding:8px 14px;font-size:12px;font-weight:700;transition:all .2s;display:flex}.control-action-btn:hover{background:#f1f5f9f2}.control-action-btn.primary{color:#0b67b2;background:#dbeafed6;border-color:#3b82f62e}.control-action-btn.primary:hover{background:#bfdbfeeb}.video-sidebar{background:#ffffffdb;border:1px solid #94a3b824;border-radius:16px;flex-direction:column;flex-shrink:0;gap:8px;width:240px;padding:12px;display:flex;overflow-y:auto;box-shadow:0 16px 36px #0f172a14}.sidebar-video{cursor:pointer;background:#f4f7fbe0;border:1px solid #0000;border-radius:10px;align-items:center;gap:12px;padding:10px;transition:all .2s;display:flex}.sidebar-video:hover{background:#eff6ffeb;border-color:#3b82f62e}.sidebar-video.active{background:#dbeafedb;border-color:#3b82f642}.sidebar-video-placeholder{color:#64748b;background:#e2e8f0cc;border-radius:8px;justify-content:center;align-items:center;width:48px;height:36px;display:flex;position:relative}.live-dot{background:#dc2626;border-radius:50%;width:6px;height:6px;animation:1.5s ease-in-out infinite pulse;position:absolute;top:4px;right:4px}.sidebar-video-info{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-video-title{color:#0f172a;font-size:13px;font-weight:700}.sidebar-video-task{color:#64748b;font-size:11px}.structure-monitoring-page{background:var(--bg1);flex-direction:column;height:100%;display:flex;overflow:hidden}.monitoring-header{background:var(--bg2);border-bottom:1px solid var(--border2);flex-shrink:0;align-items:center;gap:16px;padding:16px 24px;display:flex}.back-btn{border:1px solid var(--border2);color:var(--text);cursor:pointer;background:#ffffff0d;border-radius:8px;align-items:center;gap:6px;padding:8px 14px;font-size:14px;transition:all .2s;display:flex}.back-btn:hover{border-color:var(--p);color:var(--p);background:#00d4ff1a}.monitoring-title{color:var(--text);margin:0;font-size:20px;font-weight:600}.monitoring-content{flex:1;grid-template-columns:280px 1fr 320px;gap:16px;padding:16px 24px;display:grid;overflow:hidden}.left-panel{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.panel-header{border-bottom:1px solid var(--border2);background:#0003;padding:14px 16px}.panel-title{color:var(--text);font-size:13px;font-weight:600}.search-box{border-bottom:1px solid var(--border2);color:var(--text3);align-items:center;gap:8px;padding:10px 16px;display:flex}.search-box input{color:var(--text2);background:0 0;border:none;outline:none;flex:1;font-size:12px}.structure-list{flex:1;padding:8px;overflow-y:auto}.structure-item{background:var(--bg1);border:1px solid var(--border2);cursor:pointer;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;margin-bottom:8px;padding:12px;transition:all .2s;display:flex}.structure-item:hover{border-color:#00d4ff4d}.structure-item.active{border-color:var(--p);background:#00d4ff1a}.structure-info{flex:1;min-width:0}.structure-name{color:var(--text);margin-bottom:4px;font-size:13px;font-weight:600}.structure-type{color:var(--text3);font-size:11px}.structure-badge{color:var(--p);background:#00d4ff26;border-radius:6px;padding:4px 10px;font-size:12px;font-weight:700}.structure-badge.warning{color:#ff9f43;background:#ff9f4326}.structure-badge.normal{color:#2ecc71;background:#2ecc7126}.center-panel{flex-direction:column;gap:0;min-height:0;display:flex;overflow:hidden}.center-top-bar{flex-shrink:0;justify-content:flex-end;padding:0;display:flex}.view-modes{gap:8px;display:flex}.view-btn{border:1px solid var(--border2);color:var(--text2);cursor:pointer;background:#ffffff0d;border-radius:6px;padding:8px 14px;font-size:12px;transition:all .2s}.view-btn:hover{border-color:var(--p);color:var(--p);background:#00d4ff1a}.visualization-area{background:var(--bg2);border:1px solid var(--border2);background:linear-gradient(135deg,#0006 0%,#00d4ff0d 100%);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:16px;min-height:0;display:flex}.structure-icon{color:var(--p);opacity:.6}.placeholder-text{color:var(--text3);margin:0;font-size:13px}.chart-container{background:var(--bg2);border:1px solid var(--border2);border-top:none;border-radius:0 0 12px 12px;flex-direction:column;flex:1;min-height:150px;display:flex;overflow:hidden}.chart-header{border-bottom:1px solid var(--border2);background:#0003;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.chart-title{color:var(--text);align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.time-selector{border:1px solid var(--border2);color:var(--p);cursor:pointer;background:#00d4ff1a;border-radius:6px;outline:none;padding:6px 12px;font-size:12px}.chart-area{flex:1;justify-content:center;align-items:center;display:flex}.chart-placeholder{color:var(--text3);margin:0;font-size:12px}.right-panel{flex-direction:column;gap:16px;display:flex;overflow-y:auto}.data-panel{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;overflow:hidden}.data-header{border-bottom:1px solid var(--border2);background:#0003;justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.data-title{color:var(--text);font-size:13px;font-weight:600}.update-time{color:var(--text3);font-size:11px}.data-grid{grid-template-columns:1fr 1fr;gap:12px;padding:16px;display:grid}.data-card{background:var(--bg1);border:1px solid var(--border2);border-radius:8px;padding:12px}.data-card.warning{background:#ff9f4314;border-color:#ff9f434d}.data-card.online{border-color:#2ecc714d}.data-label{color:var(--text3);margin-bottom:6px;font-size:11px}.data-value{color:var(--p);font-size:18px;font-weight:700}.data-card.warning .data-value{color:#ff9f43}.data-card.online .data-value{color:#2ecc71;align-items:center;gap:6px;font-size:14px;display:flex}.status-dot{background:#2ecc71;border-radius:50%;width:8px;height:8px;box-shadow:0 0 8px #2ecc71}.alert-box{background:#ff38381a;border:1px solid #ff38384d;border-left:3px solid #ff3838;border-radius:6px;margin:0 16px 16px;padding:12px}.alert-header{color:#ff3838;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.alert-text{color:var(--text2);margin:0;font-size:12px;line-height:1.6}.analysis-panel{background:var(--bg2);border:1px solid var(--border2);border-radius:12px;flex-shrink:0;overflow:hidden}.analysis-header{border-bottom:1px solid var(--border2);color:var(--text);background:#0003;align-items:center;gap:8px;padding:14px 16px;font-size:13px;font-weight:600;display:flex}.analysis-content{padding:16px}.analysis-content p{color:var(--text2);margin:0;font-size:12px;line-height:1.8}.action-buttons{flex-direction:column;gap:10px;padding:0 16px 16px;display:flex}.action-btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:500;transition:all .2s;display:flex}.action-btn.confirm{color:#2ecc71;background:#2ecc7126}.action-btn.confirm:hover{background:#2ecc7140}.action-btn.workorder{color:#fff;background:linear-gradient(135deg,#ff3838,#ff6b35)}.action-btn.workorder:hover{transform:translateY(-1px);box-shadow:0 4px 12px #ff38384d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg0:#f4f7fb;--bg1:#fdfefe;--bg2:#edf4fb;--card:#fdfefef0;--glass:#c5e9fd52;--border:#94a3b847;--border2:#94a3b829;--p:#3b82f6;--p2:#2563eb;--accent:#7c3aed;--danger:#ef4444;--warn:#f59e0b;--ok:#10b981;--text:#0f172a;--text2:#475569;--text3:#94a3b8;--glow:0 8px 24px #3b82f629;--glow2:0 14px 36px #3b82f61a;--shadow:0 18px 40px #0f172a1f}html,body{background:var(--bg0);width:100%;height:100%;color:var(--text);font-family:Noto Sans SC,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:#e2e8f0e6}::-webkit-scrollbar-thumb{background:#94a3b8e6;border-radius:2px}@keyframes marquee{0%{transform:translate(100%)}to{transform:translate(-200%)}}@keyframes ripple{0%{opacity:1;transform:scale(.7)}to{opacity:0;transform:scale(2.8)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes gridFlow{0%{background-position:0 0}to{background-position:40px 40px}}@keyframes radarSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}#root{width:100%;height:100%}.app-container{flex-direction:column;height:100vh;display:flex;position:relative}.app-container:before{content:"";pointer-events:none;z-index:0;background-image:linear-gradient(#94a3b814 1px,#0000 1px),linear-gradient(90deg,#94a3b814 1px,#0000 1px);background-size:40px 40px;animation:10s linear infinite gridFlow;position:fixed;inset:0}.layout{z-index:1;flex:1;display:flex;position:relative;overflow:hidden}.content-area{flex-direction:column;flex:1;display:flex;overflow:hidden}.page{flex-direction:column;flex:1;gap:12px;padding:14px;display:none;overflow:hidden auto}.page.active{animation:.3s fadeUp;display:flex}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;position:relative;overflow:hidden}.card:before{content:"";background:linear-gradient(90deg,#0000,#3b82f638,#0000);height:1px;position:absolute;top:0;left:0;right:0}.card-header{border-bottom:1px solid var(--border2);justify-content:space-between;align-items:center;padding:11px 14px;display:flex}.card-title{color:var(--text);align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.card-body{padding:12px 14px}.ctd{background:var(--p);border-radius:50%;width:5px;height:5px;box-shadow:0 0 0 4px #3b82f624}.stat-grid-2{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-grid-3{grid-template-columns:1fr 1fr 1fr;gap:8px;display:grid}.stat-grid-4{grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;display:grid}.stat-box{border:1px solid var(--border2);background:#c5e9fd57;border-radius:8px;padding:10px}.stat-label{color:var(--text2);margin-bottom:3px;font-size:9px}.stat-val{color:var(--p);font-family:Orbitron,monospace;font-size:20px;font-weight:700;line-height:1}.stat-unit{margin-left:2px;font-size:9px}.stat-sub{color:var(--text3);margin-top:3px;font-size:9px}.badge-ok{color:var(--ok);background:#00e6761a;border:1px solid #00e67633;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.badge-warn{color:var(--warn);background:#ff95001a;border:1px solid #ff950033;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.badge-danger{color:var(--danger);background:#ff38381a;border:1px solid #ff383833;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.badge-info{color:var(--p2);background:#3b82f61f;border:1px solid #3b82f62e;border-radius:20px;align-items:center;gap:3px;padding:2px 7px;font-size:9px;font-weight:600;display:inline-flex}.sdot{background:currentColor;border-radius:50%;flex-shrink:0;width:4px;height:4px;animation:2s infinite pulse}.btn{cursor:pointer;border:none;border-radius:7px;align-items:center;gap:5px;padding:7px 13px;font-family:inherit;font-size:11px;font-weight:600;transition:all .2s;display:inline-flex}.btn-p{background:linear-gradient(135deg, var(--p), var(--p2));color:#fff}.btn-p:hover{box-shadow:var(--glow);transform:translateY(-1px)}.btn-d{color:#fff;background:linear-gradient(135deg,#ff3838,#b00)}.btn-d:hover{box-shadow:0 0 18px #ff383866}.btn-g{background:var(--glass);border:1px solid var(--border);color:var(--text2)}.btn-g:hover{border-color:var(--p);color:var(--p2);background:#c5e9fd73}.btn-sm{border-radius:6px;padding:4px 9px;font-size:10px}.btn-xs{border-radius:5px;gap:4px;padding:3px 8px;font-size:11px}.pbar{background:#94a3b838;border-radius:2px;height:4px;overflow:hidden}.pfill{border-radius:2px;height:100%;transition:width 1s}table{border-collapse:collapse;width:100%;font-size:11px}th{text-align:left;color:var(--text2);border-bottom:1px solid var(--border2);white-space:nowrap;background:#c5e9fd4d;padding:8px 10px;font-weight:500}td{border-bottom:1px solid var(--border2);color:var(--text);padding:7px 10px}tr:hover td{background:#c5e9fd38}tr:last-child td{border-bottom:none}.tabs{border-bottom:1px solid var(--border2);padding:0 14px;display:flex}.tab{cursor:pointer;color:var(--text2);border-bottom:2px solid #0000;padding:8px 14px;font-size:11px;transition:all .2s}.tab:hover:not(.active){color:var(--text)}.tab.active{color:var(--p);border-bottom-color:var(--p)}.grid{gap:12px;display:grid}.g2{grid-template-columns:1fr 1fr}.g3{grid-template-columns:1fr 1fr 1fr}.g4{grid-template-columns:1fr 1fr 1fr 1fr}.flex{display:flex}.fc{flex-direction:column}.gap4{gap:4px}.gap8{gap:8px}.gap12{gap:12px}.aic{align-items:center}.jb{justify-content:space-between}.jc{justify-content:center}.f1{flex:1}.fs9{font-size:9px}.fs10{font-size:10px}.fs11{font-size:11px}.ct2{color:var(--text2)}.ct3{color:var(--text3)}.cp{color:var(--p)}.cok{color:var(--ok)}.cwarn{color:var(--warn)}.cdanger{color:var(--danger)}.orb{font-family:Orbitron,monospace}.mt8{margin-top:8px}.mt12{margin-top:12px}.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}.w100{width:100%}.tc{text-align:center}.bold{font-weight:600}.ovh{overflow:hidden}.ovy{overflow-y:auto}.loading-spinner{border:2px solid #94a3b847;border-top-color:var(--p);border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}
