:root{--bg-primary:#fff;--bg-secondary:#f0f1f4;--bg-tertiary:#eaebef;--bg-hover:#e5e6ea;--bg-active:#dce0e6;--bg-dark:#111827;--text-primary:#111827;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-muted:#838c9a;--text-inverse:#fff;--border-primary:#cfd3da;--border-secondary:#dfe1e6;--border-tertiary:#eaecf0;--border-light:#dfe1e6;--border-lighter:#eaecf0;--border-dark:#adb3bf;--border-dashed:#8b919e;--color-primary:#00b4ed;--color-primary-dark:#0091c7;--color-primary-darker:#006d96;--color-primary-light:#e8f7fd;--color-success:#16a34a;--color-success-light:#f0fdf4;--color-success-dark:#15803d;--color-warning:#ca8a04;--color-warning-light:#fefce8;--color-orange:#ea580c;--color-orange-light:#fff7ed;--color-error:#dc2626;--color-danger:#dc2626;--color-danger-dark:#b91c1c;--color-danger-darker:#991b1b;--color-danger-light:#fef2f2;--color-danger-lighter:#fff5f5;--color-purple:#7c3aed;--color-disabled:#d2d5db;--color-disabled-dark:#b3b8c2;--bg-primary-light:#e8f7fd;--bg-success-light:#f0fdf4;--bg-warning-light:#fefce8;--bg-error-light:#fef2f2;--bg-purple-light:#f5f3ff;--bg-section-header:#f0f1f4;--bg-filter:#fff;--bg-gauge:#dce0e6;--bg-card:#fff;--bg-tab-inactive:#8b919e;--text-time:#6b7280;--header-height:48px;--sidenav-width:72px;--control-panel-width:280px;--detail-panel-width:380px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 2px #0000000f, 0 1px 3px #0000001a;--shadow-md:0 2px 4px #0000000f, 0 4px 12px #00000014;--shadow-lg:0 4px 8px #0000000f, 0 12px 32px #0000001a;--shadow-xl:0 8px 16px #00000014, 0 24px 64px #00000024;--transition-fast:.1s cubic-bezier(.4, 0, .2, 1);--transition-normal:.16s cubic-bezier(.4, 0, .2, 1);--transition-slow:.28s cubic-bezier(.4, 0, .2, 1)}[data-theme=light]{--bg-primary:#fff;--bg-secondary:#f7f8fa;--bg-tertiary:#f2f3f6;--bg-hover:#eceef3;--bg-active:#e5e8ee;--bg-dark:#191f28;--text-primary:#191f28;--text-secondary:#4e5968;--text-tertiary:#6b7684;--text-muted:#8b95a1;--text-inverse:#fff;--border-primary:#d1d6db;--border-secondary:#e5e8eb;--border-tertiary:#f2f4f6;--border-light:#e8ebed;--border-lighter:#f2f4f6;--border-dark:#333d4b;--border-dashed:#8b95a1;--color-primary:#0064ff;--color-primary-dark:#0054d9;--color-primary-darker:#0046b8;--color-primary-light:#e8f3ff;--color-success:#00c471;--color-success-light:#e8faf3;--color-success-dark:#00a65e;--color-warning:#f59f00;--color-warning-light:#fff8e6;--color-orange:#ff8a3d;--color-orange-light:#fff0e6;--color-error:#f04452;--color-danger:#f04452;--color-danger-dark:#d93644;--color-danger-darker:#c22a37;--color-danger-light:#ffebee;--color-danger-lighter:#fff5f6;--color-purple:#8b5cf6;--color-disabled:#d1d6db;--color-disabled-dark:#b0b8c1;--bg-primary-light:#e8f3ff;--bg-success-light:#e8faf3;--bg-warning-light:#fff8e6;--bg-error-light:#ffebee;--bg-purple-light:#f3f0ff;--bg-section-header:#f2f4f6;--bg-filter:#f7f8fa;--bg-gauge:#e5e8eb;--bg-card:#fff;--bg-tab-inactive:#b0b8c1;--text-time:#6b7684;--header-height:56px;--sidenav-width:72px;--control-panel-width:260px;--detail-panel-width:360px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001f;--shadow-xl:0 8px 32px #00000029;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}[data-theme=dark]{--bg-primary:#17171c;--bg-secondary:#1e1e24;--bg-tertiary:#26262d;--bg-hover:#2f2f38;--bg-active:#3a3a44;--bg-dark:#0d0d0f;--text-primary:#f2f4f6;--text-secondary:#b0b8c1;--text-tertiary:#8b95a1;--text-muted:#6b7684;--text-inverse:#17171c;--border-primary:#3a3a44;--border-secondary:#2f2f38;--border-tertiary:#26262d;--border-light:#333340;--border-lighter:#3a3a44;--border-dark:#6b7684;--border-dashed:#4e5968;--color-primary:#3182f6;--color-primary-dark:#5b9bf8;--color-primary-darker:#84b4fa;--color-primary-light:#1a2d45;--color-success:#20c997;--color-success-light:#1a3a2d;--color-success-dark:#4dd9ac;--color-warning:#ffc107;--color-warning-light:#3d351a;--color-orange:#ff9f43;--color-orange-light:#3d2f1a;--color-error:#f25a5a;--color-danger:#f25a5a;--color-danger-dark:#f78888;--color-danger-darker:#fbb5b5;--color-danger-light:#3d2326;--color-danger-lighter:#2d1a1c;--color-purple:#a78bfa;--color-disabled:#4e5968;--color-disabled-dark:#3a3a44;--bg-primary-light:#1a2d45;--bg-success-light:#1a3a2d;--bg-warning-light:#3d351a;--bg-error-light:#3d2326;--bg-purple-light:#2a2440;--bg-section-header:#1e1e24;--bg-filter:#17171c;--bg-gauge:#3a3a44;--bg-card:#1e1e24;--bg-tab-inactive:#4e5968;--text-time:#8b95a1}[data-theme=material]{--bg-primary:#fffbfe;--bg-secondary:#f7f2fa;--bg-tertiary:#e8def8;--bg-hover:#e8e0eb;--bg-active:#ddd6e0;--bg-dark:#1c1b1f;--text-primary:#1c1b1f;--text-secondary:#49454f;--text-tertiary:#625d67;--text-muted:#79747e;--text-inverse:#fff;--border-primary:#79747e;--border-secondary:#cac4d0;--border-tertiary:#e7e0ec;--border-light:#e7e0ec;--border-lighter:#f4eff4;--border-dark:#49454f;--border-dashed:#79747e;--color-primary:#6750a4;--color-primary-dark:#4f378b;--color-primary-darker:#381e72;--color-primary-light:#eaddff;--color-success:#386a20;--color-success-light:#c8e6c9;--color-success-dark:#2e7d32;--color-warning:#7d5700;--color-warning-light:#ffdea3;--color-orange:#8b5000;--color-orange-light:#ffdcbe;--color-error:#b3261e;--color-danger:#b3261e;--color-danger-dark:#8c1d18;--color-danger-darker:#601410;--color-danger-light:#f9dedc;--color-danger-lighter:#fceeee;--color-purple:#6750a4;--color-disabled:#cac4d0;--color-disabled-dark:#79747e;--bg-primary-light:#eaddff;--bg-success-light:#c8e6c9;--bg-warning-light:#ffdea3;--bg-error-light:#f9dedc;--bg-purple-light:#eaddff;--bg-section-header:#f7f2fa;--bg-filter:#fffbfe;--bg-gauge:#e7e0ec;--bg-card:#fffbfe;--bg-tab-inactive:#cac4d0;--text-time:#49454f;--header-height:64px;--sidenav-width:80px;--control-panel-width:280px;--detail-panel-width:400px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:28px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 2px #0000004d, 0 1px 3px #00000026;--shadow-md:0 1px 2px #0000004d, 0 2px 6px #00000026;--shadow-lg:0 4px 8px #0000004d, 0 6px 12px #00000026;--shadow-xl:0 8px 12px #0000004d, 0 12px 24px #00000026;--transition-fast:.1s cubic-bezier(.2, 0, 0, 1);--transition-normal:.2s cubic-bezier(.2, 0, 0, 1);--transition-slow:.3s cubic-bezier(.2, 0, 0, 1)}[data-theme=material-dark]{--bg-primary:#1c1b1f;--bg-secondary:#2b2930;--bg-tertiary:#36343b;--bg-hover:#413f46;--bg-active:#4d4b52;--bg-dark:#0e0e11;--text-primary:#e6e1e5;--text-secondary:#cac4d0;--text-tertiary:#ada8b3;--text-muted:#938f99;--text-inverse:#1c1b1f;--border-primary:#938f99;--border-secondary:#49454f;--border-tertiary:#36343b;--border-light:#49454f;--border-lighter:#5a575e;--border-dark:#cac4d0;--border-dashed:#938f99;--color-primary:#d0bcff;--color-primary-dark:#e8deff;--color-primary-darker:#f3eeff;--color-primary-light:#4f378b;--color-success:#7dd87d;--color-success-light:#1b4a1b;--color-success-dark:#a5d6a7;--color-warning:#ffca28;--color-warning-light:#4a3c00;--color-orange:#ffb74d;--color-orange-light:#4a3000;--color-error:#f2b8b5;--color-danger:#f2b8b5;--color-danger-dark:#f9dedc;--color-danger-darker:#ffedea;--color-danger-light:#601410;--color-danger-lighter:#3c1410;--color-purple:#d0bcff;--color-disabled:#49454f;--color-disabled-dark:#36343b;--bg-primary-light:#4f378b;--bg-success-light:#1b4a1b;--bg-warning-light:#4a3c00;--bg-error-light:#601410;--bg-purple-light:#4f378b;--bg-section-header:#2b2930;--bg-filter:#1c1b1f;--bg-gauge:#49454f;--bg-card:#2b2930;--bg-tab-inactive:#49454f;--text-time:#cac4d0;--header-height:64px;--sidenav-width:80px;--control-panel-width:280px;--detail-panel-width:400px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:28px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 2px #00000080, 0 1px 3px #0000004d;--shadow-md:0 1px 2px #00000080, 0 2px 6px #0000004d;--shadow-lg:0 4px 8px #00000080, 0 6px 12px #0000004d;--shadow-xl:0 8px 12px #00000080, 0 12px 24px #0000004d;--transition-fast:.1s cubic-bezier(.2, 0, 0, 1);--transition-normal:.2s cubic-bezier(.2, 0, 0, 1);--transition-slow:.3s cubic-bezier(.2, 0, 0, 1)}[data-theme=apple]{--bg-primary:#fff;--bg-secondary:#f2f2f7;--bg-tertiary:#e5e5ea;--bg-hover:#d1d1d6;--bg-active:#c7c7cc;--bg-dark:#1c1c1e;--text-primary:#000;--text-secondary:#3c3c43;--text-tertiary:#636366;--text-muted:#8e8e93;--text-inverse:#fff;--border-primary:#c6c6c8;--border-secondary:#d1d1d6;--border-tertiary:#e5e5ea;--border-light:#e5e5ea;--border-lighter:#f2f2f7;--border-dark:#3c3c43;--border-dashed:#8e8e93;--color-primary:#007aff;--color-primary-dark:#0056b3;--color-primary-darker:#004085;--color-primary-light:#e5f2ff;--color-success:#34c759;--color-success-light:#e8f9ed;--color-success-dark:#248a3d;--color-warning:#ff9500;--color-warning-light:#fff4e5;--color-orange:#ff9500;--color-orange-light:#fff4e5;--color-error:#ff3b30;--color-danger:#ff3b30;--color-danger-dark:#d70015;--color-danger-darker:#a80010;--color-danger-light:#ffeceb;--color-danger-lighter:#fff5f5;--color-purple:#af52de;--color-disabled:#c7c7cc;--color-disabled-dark:#8e8e93;--bg-primary-light:#e5f2ff;--bg-success-light:#e8f9ed;--bg-warning-light:#fff4e5;--bg-error-light:#ffeceb;--bg-purple-light:#f5eafa;--bg-section-header:#f2f2f7;--bg-filter:#fff;--bg-gauge:#e5e5ea;--bg-card:#fff;--bg-tab-inactive:#8e8e93;--text-time:#636366;--header-height:44px;--sidenav-width:72px;--control-panel-width:260px;--detail-panel-width:360px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:20px;--spacing-xl:28px;--shadow-sm:0 1px 3px #0000001a;--shadow-md:0 4px 12px #0000001a;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 16px 48px #00000026;--transition-fast:.15s ease-out;--transition-normal:.25s ease-out;--transition-slow:.35s ease-out}[data-theme=apple-dark]{--bg-primary:#000;--bg-secondary:#1c1c1e;--bg-tertiary:#2c2c2e;--bg-hover:#3a3a3c;--bg-active:#48484a;--bg-dark:#000;--text-primary:#fff;--text-secondary:#ebebf5;--text-tertiary:#ababaf;--text-muted:#7c7c80;--text-inverse:#000;--border-primary:#48484a;--border-secondary:#3a3a3c;--border-tertiary:#2c2c2e;--border-light:#3a3a3c;--border-lighter:#48484a;--border-dark:#ebebf5;--border-dashed:#636366;--color-primary:#0a84ff;--color-primary-dark:#409cff;--color-primary-darker:#70b5ff;--color-primary-light:#1a3a5c;--color-success:#30d158;--color-success-light:#1a3d24;--color-success-dark:#63e085;--color-warning:#ff9f0a;--color-warning-light:#3d2e0a;--color-orange:#ff9f0a;--color-orange-light:#3d2e0a;--color-error:#ff453a;--color-danger:#ff453a;--color-danger-dark:#ff6961;--color-danger-darker:#ff9590;--color-danger-light:#3d1a18;--color-danger-lighter:#2d1210;--color-purple:#bf5af2;--color-disabled:#48484a;--color-disabled-dark:#3a3a3c;--bg-primary-light:#1a3a5c;--bg-success-light:#1a3d24;--bg-warning-light:#3d2e0a;--bg-error-light:#3d1a18;--bg-purple-light:#3d1a4d;--bg-section-header:#1c1c1e;--bg-filter:#000;--bg-gauge:#3a3a3c;--bg-card:#1c1c1e;--bg-tab-inactive:#636366;--text-time:#ababaf;--header-height:44px;--sidenav-width:72px;--control-panel-width:260px;--detail-panel-width:360px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:20px;--spacing-xl:28px;--shadow-sm:0 1px 3px #0006;--shadow-md:0 4px 12px #00000080;--shadow-lg:0 8px 24px #0009;--shadow-xl:0 16px 48px #000000b3;--transition-fast:.15s ease-out;--transition-normal:.25s ease-out;--transition-slow:.35s ease-out}[data-theme=carbon]{--bg-primary:#fff;--bg-secondary:#f4f4f4;--bg-tertiary:#e0e0e0;--bg-hover:#e8e8e8;--bg-active:#c6c6c6;--bg-dark:#161616;--text-primary:#161616;--text-secondary:#525252;--text-tertiary:#6f6f6f;--text-muted:#8d8d8d;--text-inverse:#fff;--border-primary:#8d8d8d;--border-secondary:#c6c6c6;--border-tertiary:#e0e0e0;--border-light:#e0e0e0;--border-lighter:#f4f4f4;--border-dark:#525252;--border-dashed:#8d8d8d;--color-primary:#0f62fe;--color-primary-dark:#0043ce;--color-primary-darker:#002d9c;--color-primary-light:#d0e2ff;--color-success:#24a148;--color-success-light:#defbe6;--color-success-dark:#198038;--color-warning:#f1c21b;--color-warning-light:#fff8e1;--color-orange:#ff832b;--color-orange-light:#ffe2cc;--color-error:#da1e28;--color-danger:#da1e28;--color-danger-dark:#a2191f;--color-danger-darker:#750e13;--color-danger-light:#ffd7d9;--color-danger-lighter:#fff1f1;--color-purple:#8a3ffc;--color-disabled:#c6c6c6;--color-disabled-dark:#8d8d8d;--bg-primary-light:#d0e2ff;--bg-success-light:#defbe6;--bg-warning-light:#fff8e1;--bg-error-light:#ffd7d9;--bg-purple-light:#e8daff;--bg-section-header:#f4f4f4;--bg-filter:#fff;--bg-gauge:#e0e0e0;--bg-card:#fff;--bg-tab-inactive:#8d8d8d;--text-time:#6f6f6f;--header-height:48px;--sidenav-width:72px;--control-panel-width:260px;--detail-panel-width:360px;--radius-xs:0px;--radius-sm:2px;--radius-md:4px;--radius-lg:4px;--radius-xl:8px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 2px 6px #0000001a;--shadow-md:0 4px 8px #0000001a;--shadow-lg:0 6px 12px #0000001a;--shadow-xl:0 12px 24px #0000001a;--transition-fast:.11s cubic-bezier(.2, 0, .38, .9);--transition-normal:.24s cubic-bezier(.2, 0, .38, .9);--transition-slow:.4s cubic-bezier(.2, 0, .38, .9)}[data-theme=carbon-dark]{--bg-primary:#161616;--bg-secondary:#262626;--bg-tertiary:#393939;--bg-hover:#353535;--bg-active:#525252;--bg-dark:#0d0d0d;--text-primary:#f4f4f4;--text-secondary:#c6c6c6;--text-tertiary:#a8a8a8;--text-muted:#6f6f6f;--text-inverse:#161616;--border-primary:#6f6f6f;--border-secondary:#525252;--border-tertiary:#393939;--border-light:#525252;--border-lighter:#6f6f6f;--border-dark:#c6c6c6;--border-dashed:#6f6f6f;--color-primary:#4589ff;--color-primary-dark:#78a9ff;--color-primary-darker:#a6c8ff;--color-primary-light:#002d9c;--color-success:#42be65;--color-success-light:#044317;--color-success-dark:#6fdc8c;--color-warning:#f1c21b;--color-warning-light:#3d2e00;--color-orange:#ff832b;--color-orange-light:#3d1e00;--color-error:#fa4d56;--color-danger:#fa4d56;--color-danger-dark:#ff8389;--color-danger-darker:#ffb3b8;--color-danger-light:#750e13;--color-danger-lighter:#520408;--color-purple:#a56eff;--color-disabled:#525252;--color-disabled-dark:#393939;--bg-primary-light:#002d9c;--bg-success-light:#044317;--bg-warning-light:#3d2e00;--bg-error-light:#750e13;--bg-purple-light:#491d8b;--bg-section-header:#262626;--bg-filter:#161616;--bg-gauge:#525252;--bg-card:#262626;--bg-tab-inactive:#525252;--text-time:#a8a8a8;--header-height:48px;--sidenav-width:72px;--control-panel-width:260px;--detail-panel-width:360px;--radius-xs:0px;--radius-sm:2px;--radius-md:4px;--radius-lg:4px;--radius-xl:8px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 2px 6px #0000004d;--shadow-md:0 4px 8px #0006;--shadow-lg:0 6px 12px #00000080;--shadow-xl:0 12px 24px #0009;--transition-fast:.11s cubic-bezier(.2, 0, .38, .9);--transition-normal:.24s cubic-bezier(.2, 0, .38, .9);--transition-slow:.4s cubic-bezier(.2, 0, .38, .9)}[data-theme=sms]{--bg-primary:#131315;--bg-secondary:#1a1a1c;--bg-tertiary:#222224;--bg-hover:#2a2a2d;--bg-active:#333336;--bg-dark:#0a0a0b;--text-primary:#fffffff2;--text-secondary:#ffffffe6;--text-tertiary:#ffffffb3;--text-muted:#fff9;--text-inverse:#131315;--border-primary:#343436;--border-secondary:#2a2a2d;--border-tertiary:#222224;--border-light:#3a3a3d;--border-lighter:#444447;--border-dark:#ffffff59;--border-dashed:#ffffff59;--color-primary:#0af;--color-primary-dark:#00c8ff;--color-primary-darker:#16dcf2;--color-primary-light:#00aaff1f;--color-success:#0fdc4c;--color-success-light:#0fdc4c26;--color-success-dark:#2ee866;--color-warning:#ffd900;--color-warning-light:#ffd90026;--color-orange:#ff9f0a;--color-orange-light:#ff9f0a26;--color-error:#df0000;--color-danger:#ef2020;--color-danger-dark:#ff4d4f;--color-danger-darker:#ff7875;--color-danger-light:#ef202026;--color-danger-lighter:#df00001a;--color-purple:#a855f7;--color-disabled:#6b6b6b;--color-disabled-dark:#444447;--bg-primary-light:#00aaff1f;--bg-success-light:#0fdc4c26;--bg-warning-light:#ffd90026;--bg-error-light:#ef202026;--bg-purple-light:#a855f726;--bg-section-header:#1a1a1c;--bg-filter:#131315;--bg-gauge:#333336;--bg-card:#1a1a1c;--bg-tab-inactive:#6b6b6b;--text-time:#fff9;--icon-enabled:#ffffffb3;--icon-disabled:#ffffff59;--header-height:46px;--sidenav-width:60px;--control-panel-width:320px;--detail-panel-width:400px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:12px;--radius-xl:16px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 2px 4px #00000080;--shadow-md:0 4px 8px #0006, 0 2px 4px #0000004d;--shadow-lg:0 8px 16px #00000080, 0 4px 8px #0000004d;--shadow-xl:0 12px 24px #0009, 0 8px 16px #0006;--transition-fast:.15s ease;--transition-normal:.2s ease;--transition-slow:.3s ease}[data-theme=hl_design-dark]{--bg-primary:#161b22;--bg-secondary:#1e2530;--bg-tertiary:#1c2129;--bg-hover:#252c36;--bg-active:#2d3440;--bg-dark:#0d1117;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-tertiary:#6e7681;--text-muted:#5a6370;--text-inverse:#111827;--border-primary:#484f58;--border-secondary:#30363d;--border-tertiary:#21262d;--border-light:#30363d;--border-lighter:#484f58;--border-dark:#8b949e;--border-dashed:#484f58;--color-primary:#1fb8ed;--color-primary-dark:#56c9f3;--color-primary-darker:#93ddf8;--color-primary-light:#1fb8ed26;--color-success:#22c55e;--color-success-light:#22c55e26;--color-success-dark:#4ade80;--color-warning:#eab308;--color-warning-light:#eab30826;--color-orange:#f97316;--color-orange-light:#f9731626;--color-error:#ef4444;--color-danger:#ef4444;--color-danger-dark:#f87171;--color-danger-darker:#fca5a5;--color-danger-light:#ef444426;--color-danger-lighter:#ef44441a;--color-purple:#a78bfa;--color-disabled:#484f58;--color-disabled-dark:#30363d;--bg-primary-light:#1fb8ed26;--bg-success-light:#22c55e26;--bg-warning-light:#eab30826;--bg-error-light:#ef444426;--bg-purple-light:#a78bfa26;--bg-section-header:#1e2530;--bg-filter:#161b22;--bg-gauge:#2d3440;--bg-card:#1e2530;--bg-tab-inactive:#484f58;--text-time:#6e7681;--header-height:48px;--sidenav-width:72px;--control-panel-width:280px;--detail-panel-width:380px;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--spacing-xs:4px;--spacing-sm:8px;--spacing-md:16px;--spacing-lg:24px;--spacing-xl:32px;--shadow-sm:0 1px 3px #0006, 0 0 0 1px #ffffff08;--shadow-md:0 3px 12px #0006, 0 0 0 1px #ffffff08;--shadow-lg:0 8px 24px #00000073;--shadow-xl:0 16px 48px #00000080;--transition-fast:.1s cubic-bezier(.4, 0, .2, 1);--transition-normal:.16s cubic-bezier(.4, 0, .2, 1);--transition-slow:.28s cubic-bezier(.4, 0, .2, 1)}[data-device=steamdeck]{--header-height:56px;--sidenav-width:80px;--control-panel-width:300px;--detail-panel-width:400px;--spacing-xs:6px;--spacing-sm:10px;--spacing-md:18px;--spacing-lg:28px;--radius-xs:6px;--radius-sm:8px;--radius-md:12px}[data-device=tablet]{--header-height:52px;--sidenav-width:76px}[data-lang=ko]{--font-primary:"Pretendard Variable", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--line-height-base:1.6;--letter-spacing-base:-.01em}[data-lang=en]{--font-primary:"Geist", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;--line-height-base:1.5;--letter-spacing-base:0}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px;line-height:1.5}.wireframe{border:1px solid var(--border-secondary);background:var(--bg-tertiary);border-radius:var(--radius-sm)}button{cursor:pointer;font-family:inherit;font-size:inherit;transition:var(--transition-fast);background:0 0;border:none}button:hover{opacity:.85}button:active{transform:scale(.98)}input,select,textarea{font-family:inherit;font-size:inherit;border-radius:var(--radius-sm);transition:var(--transition-fast)}input:focus,select:focus,textarea:focus{border-color:var(--color-primary);outline:none}::-webkit-scrollbar{width:4px;height:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--text-tertiary)}.text-xs{font-size:11px}.text-sm{font-size:12px}.text-base{font-size:14px}.text-lg{font-size:16px}.text-xl{font-size:18px}.text-2xl{font-size:20px}.text-3xl{font-size:24px}.font-normal{font-weight:400}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.action-btn{border-radius:var(--radius-sm);background:var(--bg-tertiary);color:var(--text-primary);cursor:pointer;transition:var(--transition-fast);border:none;padding:10px 20px;font-size:14px;font-weight:600}.action-btn:hover{background:var(--bg-hover)}.action-btn.primary{background:var(--color-primary);color:var(--text-inverse)}.action-btn.primary:hover{background:var(--color-primary-dark)}.action-btn.danger{background:var(--color-danger);color:var(--text-inverse)}.action-btn.danger:hover{background:var(--color-danger-dark)}.toggle-btn{border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);border:none;padding:6px 14px;font-size:12px;font-weight:600}.toggle-btn:hover{opacity:.9}.card{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);padding:var(--spacing-md)}.badge{border-radius:var(--radius-full);background:var(--bg-tertiary);color:var(--text-secondary);align-items:center;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.badge.primary{background:var(--bg-primary-light);color:var(--color-primary)}.badge.success{background:var(--bg-success-light);color:var(--color-success)}.badge.warning{background:var(--bg-warning-light);color:var(--color-warning)}.badge.danger{background:var(--bg-error-light);color:var(--color-danger-darker)}[data-theme=dark] .badge.danger,[data-theme=material-dark] .badge.danger,[data-theme=apple-dark] .badge.danger,[data-theme=carbon-dark] .badge.danger,[data-theme=hl_design-dark] .badge.danger{color:var(--color-danger-dark)}[data-theme=material] body,[data-theme=material-dark] body{letter-spacing:.25px;font-family:Roboto,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.43}[data-theme=material] .action-btn,[data-theme=material-dark] .action-btn{letter-spacing:.1px;border-radius:var(--radius-xl);padding:10px 24px;font-size:14px;font-weight:500}[data-theme=material] .action-btn.primary,[data-theme=material-dark] .action-btn.primary{box-shadow:var(--shadow-sm)}[data-theme=material] .action-btn.primary:hover,[data-theme=material-dark] .action-btn.primary:hover{box-shadow:var(--shadow-md)}[data-theme=material] .toggle-btn,[data-theme=material-dark] .toggle-btn{letter-spacing:.1px;border:1px solid var(--border-primary);border-radius:var(--radius-sm);padding:6px 16px;font-size:14px;font-weight:500}[data-theme=material] .toggle-btn.on,[data-theme=material-dark] .toggle-btn.on{border-color:#0000}[data-theme=material] .card,[data-theme=material-dark] .card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}[data-theme=material] .badge,[data-theme=material-dark] .badge{letter-spacing:.1px;border-radius:var(--radius-sm);padding:6px 12px;font-size:14px;font-weight:500}[data-theme=material] .settings-select,[data-theme=material-dark] .settings-select{border-radius:var(--radius-xs);letter-spacing:.5px;padding:12px 16px;font-size:16px}[data-theme=material] .modal-window,[data-theme=material-dark] .modal-window{border-radius:var(--radius-xl)}[data-theme=material] .modal-close,[data-theme=material-dark] .modal-close{border-radius:var(--radius-full);width:40px;height:40px}[data-theme=apple] body,[data-theme=apple-dark] body{letter-spacing:-.022em;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,Helvetica Neue,sans-serif;font-size:14px;line-height:1.47}[data-theme=apple] .action-btn,[data-theme=apple-dark] .action-btn{letter-spacing:-.01em;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:500}[data-theme=apple] .action-btn.primary,[data-theme=apple-dark] .action-btn.primary{box-shadow:none}[data-theme=apple] .toggle-btn,[data-theme=apple-dark] .toggle-btn{letter-spacing:-.01em;border-radius:var(--radius-sm);padding:6px 12px;font-size:13px;font-weight:500}[data-theme=apple] .card,[data-theme=apple-dark] .card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}[data-theme=apple] .badge,[data-theme=apple-dark] .badge{border-radius:var(--radius-sm);padding:4px 8px;font-size:12px;font-weight:500}[data-theme=apple] .settings-select,[data-theme=apple-dark] .settings-select{border-radius:var(--radius-sm);letter-spacing:-.01em;padding:8px 12px;font-size:14px}[data-theme=apple] .modal-window,[data-theme=apple-dark] .modal-window{border-radius:var(--radius-lg)}[data-theme=apple] .modal-close,[data-theme=apple-dark] .modal-close{border-radius:var(--radius-full);width:28px;height:28px}[data-theme=carbon] body,[data-theme=carbon-dark] body{letter-spacing:.16px;font-family:IBM Plex Sans,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:14px;line-height:1.43}[data-theme=carbon] .action-btn,[data-theme=carbon-dark] .action-btn{letter-spacing:.16px;border-radius:0;padding:13px 16px;font-size:14px;font-weight:400}[data-theme=carbon] .action-btn.primary,[data-theme=carbon-dark] .action-btn.primary{box-shadow:none}[data-theme=carbon] .toggle-btn,[data-theme=carbon-dark] .toggle-btn{letter-spacing:.32px;border-radius:var(--radius-full);border:none;padding:4px 8px;font-size:12px;font-weight:400}[data-theme=carbon] .card,[data-theme=carbon-dark] .card{box-shadow:none;border:1px solid var(--border-secondary);border-radius:0}[data-theme=carbon] .badge,[data-theme=carbon-dark] .badge{letter-spacing:.32px;border-radius:var(--radius-full);padding:4px 8px;font-size:12px;font-weight:400}[data-theme=carbon] .settings-select,[data-theme=carbon-dark] .settings-select{letter-spacing:.16px;border-bottom:1px solid var(--border-primary);border-top:none;border-left:none;border-right:none;border-radius:0;padding:11px 16px;font-size:14px}[data-theme=carbon] .modal-window,[data-theme=carbon-dark] .modal-window{border-radius:0}[data-theme=carbon] .modal-close,[data-theme=carbon-dark] .modal-close{border-radius:0;width:48px;height:48px}[data-theme=sms] body{letter-spacing:-.15px;font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,system-ui,Roboto,Helvetica Neue,Segoe UI,sans-serif;font-size:14px;line-height:1.5}[data-theme=sms] .action-btn{letter-spacing:-.15px;border-radius:var(--radius-sm);padding:10px 20px;font-size:15px;font-weight:500}[data-theme=sms] .action-btn.primary{background:var(--color-primary);box-shadow:none}[data-theme=sms] .action-btn.primary:hover{background:var(--color-primary-dark)}[data-theme=sms] .toggle-btn{letter-spacing:-.1px;border-radius:var(--radius-xs);padding:6px 14px;font-size:14px;font-weight:500}[data-theme=sms] .toggle-btn.on{background:var(--color-primary)}[data-theme=sms] .card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-secondary)}[data-theme=sms] .badge{border-radius:var(--radius-xs);padding:4px 10px;font-size:13px;font-weight:500}[data-theme=sms] .settings-select{border-radius:var(--radius-sm);letter-spacing:-.15px;background:var(--bg-tertiary);border:1px solid var(--border-primary);padding:10px 14px;font-size:15px}[data-theme=sms] .modal-window{border-radius:var(--radius-lg);box-shadow:4px 4px 10px #00000080}[data-theme=sms] .modal-close{border-radius:var(--radius-xs);width:32px;height:32px}[data-theme=sms] .badge.danger{color:var(--color-danger-dark)}:root body,[data-theme=hl_design-dark] body{letter-spacing:-.1px;font-family:Pretendard Variable,Pretendard,Geist,system-ui,-apple-system,BlinkMacSystemFont,sans-serif;font-size:14px;line-height:1.5}:root .action-btn,[data-theme=hl_design-dark] .action-btn{letter-spacing:-.1px;border-radius:var(--radius-sm);padding:8px 16px;font-size:14px;font-weight:500}:root .action-btn.primary,[data-theme=hl_design-dark] .action-btn.primary{box-shadow:var(--shadow-sm)}:root .action-btn.primary:hover,[data-theme=hl_design-dark] .action-btn.primary:hover{box-shadow:var(--shadow-md)}:root .toggle-btn,[data-theme=hl_design-dark] .toggle-btn{letter-spacing:-.1px;border-radius:var(--radius-sm);padding:6px 14px;font-size:13px;font-weight:500}:root .card,[data-theme=hl_design-dark] .card{border-radius:var(--radius-md);box-shadow:var(--shadow-sm);border:1px solid var(--border-secondary)}:root .badge,[data-theme=hl_design-dark] .badge{border-radius:var(--radius-sm);padding:4px 10px;font-size:12px;font-weight:500}:root .settings-select,[data-theme=hl_design-dark] .settings-select{border-radius:var(--radius-sm);letter-spacing:-.1px;border:1px solid var(--border-primary);background:var(--bg-primary);padding:8px 12px;font-size:14px}:root .modal-window,[data-theme=hl_design-dark] .modal-window{border-radius:var(--radius-lg);box-shadow:var(--shadow-xl)}:root .modal-close,[data-theme=hl_design-dark] .modal-close{border-radius:var(--radius-sm);width:32px;height:32px}[data-theme=hl_design-dark] .badge.danger{color:var(--color-danger-dark)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes dropdownIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.main-layout{background:var(--bg-primary);height:100vh;display:flex}.main-content{flex-direction:column;flex:1;display:flex}.home-wrapper{flex:1;display:flex;overflow:hidden}.side-nav{width:var(--sidenav-width);min-width:var(--sidenav-width);max-width:var(--sidenav-width);border-right:1px solid var(--border-secondary);padding:var(--spacing-sm);background:var(--bg-primary);flex-direction:column;flex-shrink:0;display:flex}.side-nav .logo{text-align:center;padding:var(--spacing-md) 0;margin-bottom:var(--spacing-sm);color:var(--color-primary);font-size:14px;font-weight:700}.side-nav .nav-menu{gap:var(--spacing-xs);flex-direction:column;flex:1;display:flex}.side-nav .nav-item{padding:var(--spacing-sm) var(--spacing-xs);text-align:center;cursor:pointer;border-radius:var(--radius-sm);color:var(--text-secondary);transition:var(--transition-fast);white-space:pre-line;font-size:11px;font-weight:500}.side-nav .nav-item:hover{background:var(--bg-tertiary);color:var(--text-primary)}.side-nav .nav-item.active{background:var(--bg-primary-light);color:var(--color-primary);font-weight:600}.side-nav .nav-item.disabled{opacity:.35;cursor:not-allowed}.side-nav .nav-item.disabled:hover{color:var(--text-secondary);background:0 0}.side-nav .nav-bottom{border-top:1px solid var(--border-secondary);padding-top:var(--spacing-sm);margin-top:var(--spacing-sm);gap:var(--spacing-xs);flex-direction:column;display:flex}.header{height:var(--header-height);border-bottom:1px solid var(--border-secondary);padding:0 var(--spacing-lg);background:var(--bg-primary);justify-content:space-between;align-items:center;display:flex;position:relative}.header.emergency-active{border-bottom-color:var(--color-error);animation:1s ease-in-out infinite emergency-flash}@keyframes emergency-flash{0%,to{background:#ff3b3026}50%{background:#ff3b3059}}.header-center{justify-content:center;align-items:center;display:flex;position:absolute;left:50%;transform:translate(-50%)}.emergency-text{color:var(--color-error);letter-spacing:2px;text-transform:uppercase;font-size:18px;font-weight:700;animation:1s ease-in-out infinite emergency-pulse}@keyframes emergency-pulse{0%,to{opacity:1}50%{opacity:.6}}.header-left{gap:var(--spacing-lg);align-items:center;display:flex}.header-title{color:var(--text-primary);font-size:16px;font-weight:700}.header-map,.header-acs{color:var(--text-tertiary);font-size:13px}.header-right{gap:var(--spacing-md);align-items:center;display:flex}.service-toggle{align-items:center;gap:var(--spacing-sm);display:flex}.toggle-btn{border-radius:var(--radius-full);padding:6px 14px;font-size:12px;font-weight:600}.toggle-btn.on{background:var(--color-success);color:var(--text-inverse)}.toggle-btn.off{background:var(--bg-tertiary);color:var(--text-secondary)}.lang-toggle{background:var(--bg-tertiary);border-radius:var(--radius-sm);gap:2px;padding:2px;display:flex}.lang-btn{border-radius:var(--radius-xs);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;padding:4px 10px;font-size:12px;font-weight:500}.lang-btn:hover{color:var(--text-secondary)}.lang-btn.active{background:var(--bg-primary);color:var(--text-primary);box-shadow:0 1px 2px #0000001a}.user{color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);padding:6px 12px;font-size:13px}.user:hover{background:var(--bg-tertiary)}.site-dropdown-wrapper{position:relative}.site-dropdown-trigger{border:1px solid var(--border-secondary);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:var(--transition-fast);align-items:center;gap:6px;padding:4px 12px;font-size:12px;font-weight:500;display:flex}.site-dropdown-trigger:hover{background:var(--bg-tertiary);border-color:var(--color-info)}.site-dropdown-arrow{color:var(--text-muted);font-size:8px}.site-dropdown-menu{background:var(--bg-primary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);z-index:1000;min-width:100%;padding:4px 0;animation:.15s cubic-bezier(.16,1,.3,1) dropdownIn;position:absolute;top:calc(100% + 4px);left:0;box-shadow:0 4px 16px #00000026}.site-dropdown-item{width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;transition:var(--transition-fast);background:0 0;border:none;padding:6px 12px;font-size:12px;display:block}.site-dropdown-item:hover{background:var(--bg-secondary);color:var(--text-primary)}.site-dropdown-item.active{color:var(--color-info);font-weight:600}.role-toggle{background:var(--bg-secondary);border-radius:var(--radius-full);border:1px solid var(--border-secondary);align-items:center;gap:8px;padding:4px 12px;display:flex}.role-label{color:var(--text-muted);transition:var(--transition-fast);font-size:11px;font-weight:500}.role-label.active{color:var(--text-primary);font-weight:600}.toggle-switch{background:var(--bg-tertiary);cursor:pointer;border:none;border-radius:10px;width:36px;height:20px;transition:background .2s;position:relative}.toggle-switch.admin{background:var(--color-info)}.toggle-switch.user{background:var(--color-success)}.toggle-slider{background:#fff;border-radius:50%;width:16px;height:16px;transition:transform .2s;position:absolute;top:2px;left:2px;box-shadow:0 1px 3px #0003}.toggle-switch.user .toggle-slider{transform:translate(16px)}.alert-button-wrapper{position:relative}.alert-button{border:1px solid var(--border-secondary);background:var(--bg-secondary);cursor:pointer;width:36px;height:36px;transition:var(--transition-fast);border-radius:50%;justify-content:center;align-items:center;font-size:16px;display:flex;position:relative}.alert-button:hover,.alert-button.active{background:var(--bg-tertiary);border-color:var(--color-info)}.alert-badge{background:var(--color-error);color:#fff;border-radius:9px;justify-content:center;align-items:center;min-width:18px;height:18px;padding:0 5px;font-size:10px;font-weight:600;display:flex;position:absolute;top:-4px;right:-4px}.alert-center-dropdown{background:var(--bg-primary);border:1px solid var(--border-secondary);z-index:1000;transform-origin:100% 0;border-radius:8px;flex-direction:column;width:360px;max-height:500px;animation:.15s cubic-bezier(.16,1,.3,1) dropdownIn;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;box-shadow:0 8px 32px #00000026}.alert-center-header{border-bottom:1px solid var(--border-tertiary);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.alert-center-title{color:var(--text-primary);font-size:14px;font-weight:600}.alert-center-close{cursor:pointer;width:24px;height:24px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;font-size:14px}.alert-center-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.alert-filter-section{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:10px;padding:8px 16px;display:flex}.filter-label{color:var(--text-muted);text-transform:uppercase;flex-shrink:0;min-width:28px;font-size:10px}.alert-filter-section .filter-tags{flex-wrap:nowrap;gap:6px;display:flex}.alert-filter-section .filter-tag{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;border-radius:12px;padding:4px 10px;font-size:11px}.alert-filter-section .filter-tag:hover{background:var(--bg-secondary)}.alert-filter-section .filter-tag.active{background:var(--text-primary);color:var(--bg-primary)}.alert-filter-section .filter-tag.error.active{background:var(--color-error);color:#fff}.alert-filter-section .filter-tag.warning.active{background:var(--color-warning);color:#333}.alert-filter-section .filter-tag.info.active{background:var(--color-info);color:#fff}.alert-filter-section .filter-tag.success.active{background:var(--color-success);color:#fff}.alert-list{flex:1;max-height:280px;overflow-y:auto}.alert-empty{text-align:center;color:var(--text-muted);padding:40px;font-size:13px}.alert-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;transition:var(--transition-fast);gap:10px;padding:12px 16px;display:flex}.alert-item:hover{background:var(--bg-secondary)}.alert-item.unread{background:#007aff0d}.alert-item.unread:hover{background:#007aff1a}.alert-item-icon{flex-shrink:0;font-size:16px}.alert-item-content{flex:1;min-width:0}.alert-item-title{color:var(--text-primary);margin-bottom:2px;font-size:12px}.alert-device-tag{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:3px;margin-right:6px;padding:1px 6px;font-size:9px;display:inline-block}.alert-item-time{color:var(--text-muted);font-size:10px}.alert-center-footer{border-top:1px solid var(--border-tertiary);background:var(--bg-secondary);justify-content:space-between;align-items:center;padding:10px 16px;display:flex}.alert-demo-btn{border:1px dashed var(--border-secondary);color:var(--text-muted);cursor:pointer;background:0 0;border-radius:4px;padding:4px 10px;font-size:11px}.alert-demo-btn:hover{border-color:var(--color-info);color:var(--color-info)}.alert-view-all{color:var(--color-info);cursor:pointer;font-size:12px}.alert-view-all:hover{text-decoration:underline}.alert-count{color:var(--text-muted);font-size:11px}.alert-load-sentinel{height:1px}.toast-container{z-index:2000;pointer-events:none;flex-direction:column;gap:10px;width:320px;display:flex;position:fixed;top:60px;right:20px}.toast-alert{background:var(--bg-primary);border:1px solid var(--border-secondary);pointer-events:auto;border-radius:8px;gap:12px;padding:14px 16px;animation:.3s ease-out toast-slide-in;display:flex;box-shadow:0 4px 16px #00000026}@keyframes toast-slide-in{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toast-slide-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.toast-alert.exiting{pointer-events:none;animation:.3s ease-in forwards toast-slide-out}.toast-alert.error{border-left:4px solid var(--color-error);background:#ff3b3014}.toast-alert.warning{border-left:4px solid var(--color-warning);background:#ffcc0014}.toast-alert.info{border-left:4px solid var(--color-info);background:#007aff14}.toast-alert.success{border-left:4px solid var(--color-success);background:#34c75914}.toast-icon{flex-shrink:0;font-size:18px}.toast-content{flex:1;min-width:0}.toast-title{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:600}.toast-device{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:3px;margin-right:6px;padding:1px 6px;font-size:10px;font-weight:500}.toast-message{color:var(--text-secondary);margin-bottom:4px;font-size:12px}.toast-time{color:var(--text-muted);font-size:10px}.toast-close{cursor:pointer;width:20px;height:20px;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;font-size:12px}.toast-close:hover{background:var(--bg-tertiary);color:var(--text-primary)}.control-panel{border-right:1px solid var(--border-primary);background:var(--bg-secondary);flex-direction:column;width:160px;min-width:80px;max-width:280px;display:flex;position:relative;overflow-y:auto}.control-panel .resize-handle.right{cursor:col-resize;z-index:10;background:0 0;width:6px;height:100%;position:absolute;top:0;right:-3px}.control-panel .resize-handle.right:hover,.control-panel .resize-handle.right:active{background:#2196f34d}.control-panel .resize-handle.right:after{content:"";background:var(--border-primary);border-radius:1px;width:2px;height:30px;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.control-panel .resize-handle.right:hover:after,.control-panel .resize-handle.right:active:after{background:var(--color-primary)}.system-summary{background:var(--bg-primary);border-bottom:2px solid var(--border-secondary);flex-direction:column;gap:6px;padding:8px 6px;display:flex}.summary-item{align-items:center;gap:4px;display:flex}.summary-label{color:var(--text-secondary);flex-shrink:0;width:32px;font-size:9px}.summary-value{align-items:baseline;gap:1px;min-width:28px;display:flex}.summary-num{color:var(--text-primary);font-size:12px;font-weight:700}.summary-total{color:var(--text-tertiary);font-size:9px}.summary-bar{background:var(--bg-gauge);border-radius:2px;flex:1;height:4px;overflow:hidden}.summary-bar-fill{background:var(--color-primary);border-radius:2px;height:100%}.summary-bar-fill.robot{background:var(--color-success)}.summary-bar-fill.entry{background:#1976d2}.summary-bar-fill.exit{background:var(--color-warning)}.summary-bar-fill.waiting{background:var(--color-purple)}.control-panel.mode-narrow .system-summary{padding:6px 4px}.control-panel.mode-narrow .summary-label{width:auto;font-size:8px}.panel-header{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);padding:10px 8px}.panel-title{font-size:12px;font-weight:700}.panel-toolbar{background:var(--bg-tertiary);border-bottom:1px solid var(--border-secondary);gap:4px;padding:6px;display:flex}.search-input{border:1px solid var(--border-primary);border-radius:2px;flex:1;min-width:0;padding:4px 6px;font-size:10px}.add-btn{background:var(--text-primary);color:var(--bg-primary);cursor:pointer;white-space:nowrap;border:none;border-radius:2px;padding:4px 8px;font-size:9px}.panel-filter{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);flex-wrap:wrap;gap:4px;padding:6px;display:flex}.filter-tag{background:var(--bg-tertiary);border:1px solid var(--border-secondary);cursor:pointer;color:var(--text-secondary);border-radius:10px;padding:2px 6px;font-size:9px}.filter-tag.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.robot-manage-list{flex-direction:column;display:flex}.robot-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.robot-manage-item:hover{background:var(--bg-tertiary)}.robot-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.robot-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.robot-manage-name{font-size:11px;font-weight:600}.robot-manage-sub{align-items:center;gap:6px;display:flex}.robot-manage-serial{color:var(--text-muted);flex:1;font-size:9px}.robot-manage-battery{color:var(--text-secondary);font-size:9px}.control-panel.mode-narrow .robot-manage-item{padding:8px 4px}.control-panel.mode-narrow .robot-manage-name{font-size:9px}.kiosk-manage-list{flex-direction:column;display:flex}.kiosk-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.kiosk-manage-item:hover{background:var(--bg-tertiary)}.kiosk-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.kiosk-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.kiosk-manage-name{flex:1;font-size:11px;font-weight:600}.kiosk-manage-sub{align-items:center;gap:6px;display:flex}.kiosk-manage-location{color:var(--text-secondary);font-size:9px}.kiosk-manage-use{color:var(--color-primary);font-size:9px}.kiosk-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.kiosk-status-icon.on{background:var(--bg-success-light);border:1px solid var(--color-success)}.kiosk-status-icon.on:after{content:"●";color:var(--color-success);font-size:6px}.kiosk-status-icon.error{background:var(--bg-error-light);border:1px solid var(--color-error)}.kiosk-status-icon.error:after{content:"!";color:var(--color-error);font-size:8px;font-weight:700}.control-panel.mode-narrow .kiosk-manage-item{padding:8px 4px}.control-panel.mode-narrow .kiosk-manage-name{font-size:9px}.control-panel.mode-narrow .kiosk-manage-main{margin-bottom:0}.network-manage-list{flex-direction:column;display:flex}.network-section{margin-bottom:12px}.network-section-header{background:var(--bg-secondary);border-radius:4px;align-items:center;gap:6px;margin-bottom:4px;padding:6px 8px;display:flex}.network-section-header .section-icon{font-size:12px}.network-section-header .section-title{color:var(--text-primary);flex:1;font-size:10px;font-weight:600}.network-section-header .section-count{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:8px;padding:1px 6px;font-size:9px}.network-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.network-manage-item:hover{background:var(--bg-tertiary)}.network-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.network-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.network-manage-name{flex:1;font-size:11px;font-weight:600}.network-manage-sub{align-items:center;gap:8px;display:flex}.network-signal{color:var(--text-secondary);font-size:9px}.network-clients{color:var(--color-primary);font-size:9px}.server-stat,.switch-stat{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:2px;padding:1px 4px;font-size:9px}.network-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.network-status-icon.on{background:var(--bg-success-light);border:1px solid var(--color-success)}.network-status-icon.on:after{content:"●";color:var(--color-success);font-size:6px}.network-status-icon.warning{background:var(--bg-warning-light);border:1px solid var(--color-warning)}.network-status-icon.warning:after{content:"!";color:var(--color-warning);font-size:8px;font-weight:700}.network-status-icon.off{background:var(--bg-secondary);border:1px solid var(--text-tertiary)}.network-status-icon.off:after{content:"○";color:var(--text-tertiary);font-size:8px}.control-panel.mode-narrow .network-manage-item{padding:8px 4px}.control-panel.mode-narrow .network-manage-name{font-size:9px}.control-panel.mode-narrow .network-manage-main{margin-bottom:0}.control-panel.mode-narrow .network-section-header{padding:4px 6px}.control-panel.mode-narrow .network-section-header .section-title{font-size:9px}.robot-status-icon.user-control{background:#f3e5f5;border:1px solid #9c27b0;animation:1.5s infinite pulse-user-control}.robot-status-icon.user-control:after{content:"✋";font-size:9px}@keyframes pulse-user-control{0%,to{box-shadow:0 0 #9c27b066}50%{box-shadow:0 0 0 4px #9c27b000}}.compact-signal{color:var(--text-tertiary);font-family:monospace;font-size:9px}.service-status-indicator{background:var(--bg-primary);border-bottom:2px solid var(--border-secondary);align-items:center;gap:6px;padding:8px 10px;display:flex}.service-status-indicator .status-icon{font-size:10px}.service-status-indicator .status-text{font-size:11px;font-weight:600}.service-status-indicator.status-normal .status-icon{color:var(--color-success)}.service-status-indicator.status-warning .status-icon{color:var(--color-warning)}.service-status-indicator.status-error .status-icon{color:var(--color-danger)}.service-status-indicator.status-normal .status-text{color:var(--color-success)}.service-status-indicator.status-warning .status-text{color:var(--color-warning)}.service-status-indicator.status-error .status-text{color:var(--color-danger)}.kpi-row{background:var(--bg-primary);border-bottom:1px solid var(--border-primary);padding:8px 10px}.kpi-row-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.kpi-row-label{color:var(--text-primary);font-size:11px;font-weight:600}.kpi-row-avg,.kpi-row-total{color:var(--text-tertiary);font-size:10px}.kpi-row-avg strong,.kpi-row-total strong{color:var(--text-primary);font-weight:600}.kpi-row-subtitle{color:var(--text-tertiary);margin-bottom:4px;font-size:9px}.kpi-row-times.vertical{background:var(--bg-secondary);border-radius:4px;flex-direction:column;display:flex;overflow:hidden}.kpi-row-times.vertical .time-item-row{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;padding:4px 8px;font-size:10px;display:flex}.kpi-row-times.vertical .time-item-row:last-child{border-bottom:none}.kpi-row-times.vertical .time-item-row.header{background:var(--bg-tertiary)}.kpi-row-times.vertical .time-label{color:var(--text-tertiary);font-size:9px}.kpi-row-times.vertical .time-car{color:var(--text-secondary);min-width:60px}.time-gauge-wrapper{flex:1;align-items:center;gap:6px;display:flex}.time-gauge{background:var(--bg-gauge,#2a2a3e);border-radius:3px;flex:1;height:6px;position:relative;overflow:hidden}.time-gauge:before,.time-gauge:after{content:"";z-index:2;width:2px;position:absolute;top:-2px;bottom:-2px}.time-gauge:before{background:var(--color-success);left:60%}.time-gauge:after{background:#ff9500;left:80%}.time-gauge-fill{border-radius:3px;height:100%;transition:width .3s}.time-gauge-fill.safe{background:var(--color-success)}.time-gauge-fill.caution{background:var(--color-warning)}.time-gauge-fill.warning{background:#ff9500}.time-gauge-fill.danger{background:var(--color-error)}.time-value{text-align:right;min-width:32px;font-size:10px;font-weight:600}.time-value.safe{color:var(--color-success)}.time-value.caution{color:var(--color-warning)}.time-value.warning{color:#ff9500}.time-value.danger{color:var(--color-error)}.kpi-row-avg-section{border-top:1px solid var(--border-primary);background:var(--bg-secondary);border-radius:0 0 4px 4px;align-items:center;margin-top:6px;padding:6px 8px;display:flex}.kpi-row-avg-section .avg-label{color:var(--text-tertiary);width:60px;min-width:60px;font-size:10px}.kpi-row-avg-section .time-gauge-wrapper.avg{flex:1}.kpi-row-avg-section .time-value{min-width:32px;font-size:10px;font-weight:700}.kpi-row-waiting-new{flex-direction:column;gap:8px;display:flex}.waiting-entry-row{background:var(--bg-secondary);border-radius:4px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.waiting-entry-row .waiting-label{color:var(--text-secondary);font-size:11px}.waiting-entry-row .waiting-count{color:var(--text-primary);font-size:18px;font-weight:700}.waiting-entry-row .waiting-count .count-unit{color:var(--text-tertiary);margin-left:2px;font-size:11px;font-weight:400}.waiting-entry-row .waiting-status{border-radius:12px;padding:4px 12px;font-size:13px;font-weight:600}.waiting-entry-row .waiting-status.good{color:var(--color-success);background:#34c75926}.waiting-entry-row .waiting-status.caution{color:var(--color-warning);background:#ffcc0026}.waiting-entry-row .waiting-status.bad{color:var(--color-error);background:#ff3b3026}.waiting-exit-row{background:var(--bg-secondary);border-radius:4px;padding:8px 10px}.waiting-exit-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;display:flex}.waiting-exit-header .waiting-label{color:var(--text-secondary);font-size:11px}.waiting-exit-header .waiting-count{color:var(--text-primary);font-size:16px;font-weight:700}.waiting-exit-header .waiting-count .count-unit{color:var(--text-tertiary);margin-left:2px;font-size:10px;font-weight:400}.waiting-exit-list{flex-direction:column;gap:4px;display:flex}.exit-queue-item{background:var(--bg-primary);border-radius:3px;align-items:center;gap:8px;padding:4px 6px;display:flex}.exit-queue-item .queue-order{background:var(--color-primary);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:600;display:flex}.exit-queue-item .queue-car{color:var(--text-primary);flex:1;font-size:11px}.exit-queue-item .queue-time{color:var(--color-warning);font-size:10px;font-weight:600}.kpi-row-parking{gap:6px;display:flex}.parking-stat{background:var(--bg-secondary);border-radius:4px;flex-direction:column;flex:1;align-items:center;padding:6px 4px;display:flex}.parking-stat .stat-label{color:var(--text-tertiary);margin-bottom:2px;font-size:9px}.parking-stat .stat-value{font-size:16px;font-weight:700;line-height:1}.parking-stat .stat-value.used{color:var(--color-primary)}.parking-stat .stat-value.empty{color:var(--color-success)}.parking-stat .stat-value.reserved{color:var(--color-warning)}.dashboard-panel{border-bottom:1px solid var(--border-primary);padding:8px}.dashboard-panel.disabled{opacity:.4;pointer-events:none}.dashboard-panel-header{align-items:center;gap:4px;margin-bottom:6px;display:flex}.dashboard-panel-header .panel-icon{font-size:12px}.dashboard-panel-header .panel-title{color:var(--text-primary);font-size:11px;font-weight:600}.dashboard-panel-header .panel-total{color:var(--text-tertiary);margin-left:auto;font-size:9px}.dashboard-panel-header .issue-count{color:var(--color-danger);margin-left:auto;font-size:10px;font-weight:600}.dashboard-panel.compact{cursor:pointer;transition:background .15s}.dashboard-panel.compact:hover{background:var(--bg-tertiary)}.dashboard-panel-header .panel-more{color:var(--text-muted);margin-left:auto;font-size:14px}.job-summary{padding:8px 0 0}.job-counts{gap:8px;display:flex}.job-count{text-align:center;background:var(--bg-secondary);border-radius:4px;flex:1;padding:6px 4px}.job-count .count-num{color:var(--text-primary);font-size:16px;font-weight:700;display:block}.job-count .count-label{color:var(--text-tertiary);margin-top:2px;font-size:9px}.job-count.normal .count-num{color:var(--color-success)}.job-count.delayed .count-num{color:var(--color-danger)}.job-count.waiting .count-num{color:var(--text-secondary)}.job-avg-times{justify-content:center;gap:12px;display:flex}.avg-time{align-items:center;gap:4px;font-size:11px;display:flex}.avg-time .avg-label{color:var(--text-tertiary)}.avg-time .avg-value{font-weight:600}.avg-time.status-normal .avg-value{color:var(--color-success)}.avg-time.status-warning .avg-value{color:var(--color-warning)}.avg-time.status-error .avg-value{color:var(--color-danger)}.entry-exit-summary{padding:8px 0 0}.entry-exit-row{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:8px;padding:6px 0;display:flex}.entry-exit-row:last-child{border-bottom:none;padding-bottom:0}.entry-exit-row .row-label{color:var(--text-secondary);min-width:32px;font-size:11px;font-weight:600}.entry-exit-row .row-counts{flex:1;gap:6px;display:flex}.entry-exit-row .count-item{background:var(--bg-secondary);border-radius:4px;flex:1;justify-content:center;align-items:center;gap:4px;padding:4px 6px;display:flex}.entry-exit-row .count-item .count-num{font-size:14px;font-weight:700}.entry-exit-row .count-item .count-label{color:var(--text-muted);font-size:9px}.entry-exit-row .count-item.progress .count-num{color:var(--color-primary)}.entry-exit-row .count-item.request .count-num{color:var(--color-warning)}.robot-summary{padding:8px 0 0}.robot-counts{gap:8px;display:flex}.robot-count{text-align:center;background:var(--bg-secondary);border-radius:4px;flex:1;padding:6px 4px}.robot-count .count-num{color:var(--text-primary);font-size:16px;font-weight:700;display:block}.robot-count .count-label{color:var(--text-tertiary);margin-top:2px;font-size:9px}.robot-count.working .count-num{color:var(--color-success)}.robot-count.error .count-num{color:var(--color-danger)}.robot-count.off .count-num{color:var(--text-muted)}.dropzone-summary{padding:8px 0 0}.dropzone-counts{gap:8px;display:flex}.dropzone-count{text-align:center;background:var(--bg-secondary);border-radius:4px;flex:1;padding:6px 4px}.dropzone-count .count-num{color:var(--text-primary);font-size:16px;font-weight:700;display:block}.dropzone-count .count-label{color:var(--text-tertiary);margin-top:2px;font-size:9px}.dropzone-count.entry .count-num{color:var(--color-primary)}.dropzone-count.exit .count-num{color:var(--color-success)}.dropzone-count.empty .count-num{color:var(--text-secondary)}.dropzone-count.delayed .count-num{color:var(--color-danger)}.robot-battery-bar{align-items:center;gap:6px;display:flex}.robot-battery-bar .battery-label{color:var(--text-tertiary);font-size:9px}.robot-battery-bar .battery-gauge{background:var(--bg-gauge);border-radius:3px;flex:1;height:6px;overflow:hidden}.robot-battery-bar .battery-fill{background:var(--color-primary);border-radius:3px;height:100%}.robot-battery-bar .battery-percent{color:var(--text-secondary);min-width:24px;font-size:10px;font-weight:600}.parking-summary{flex-direction:column;gap:6px;display:flex}.parking-row{align-items:center;gap:6px;display:flex}.parking-row .parking-label{color:var(--text-tertiary);min-width:45px;font-size:9px}.parking-row .parking-bar{background:var(--bg-gauge);border-radius:3px;flex:1;height:6px;overflow:hidden}.parking-row .parking-fill{background:var(--color-primary);border-radius:3px;height:100%}.parking-row .parking-value{color:var(--text-primary);text-align:right;min-width:30px;font-size:10px;font-weight:600}.waiting-row{border-top:1px solid var(--border-primary);justify-content:space-around;margin-top:4px;padding-top:6px;display:flex}.waiting-row .waiting-item{color:var(--text-tertiary);font-size:9px}.waiting-row .waiting-item strong{color:var(--text-primary);font-weight:600}.waiting-row .waiting-item.warning strong{color:var(--color-warning)}.dashboard-panel-header .issue-badge{color:#fff;background:var(--color-danger);text-align:center;border-radius:10px;min-width:18px;margin-left:auto;padding:2px 6px;font-size:11px;font-weight:700}.issue-list-large{grid-template-columns:repeat(2,1fr);gap:6px;display:grid}.issue-card{border-left:3px solid var(--border-primary);background:var(--bg-secondary);border-radius:6px;padding:8px}.issue-card.severity-error{border-left-color:var(--color-danger);background:rgba(var(--color-danger-rgb), .08)}.issue-card.severity-warning{border-left-color:var(--color-warning);background:rgba(var(--color-warning-rgb), .08)}.issue-card-header{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.issue-card-id{color:var(--text-primary);font-size:11px;font-weight:700}.issue-card-type{color:var(--text-tertiary);background:var(--bg-tertiary);border-radius:2px;padding:1px 4px;font-size:9px}.issue-card-body{margin-bottom:4px}.issue-card-desc{color:var(--text-secondary);font-size:11px}.issue-card-footer{justify-content:flex-end;display:flex}.issue-card-time{color:var(--text-muted);font-size:9px}.dropzone-wait-status{border-bottom:1px solid var(--border-tertiary);gap:8px;margin-bottom:6px;padding:6px 0;display:flex}.wait-status-item{background:var(--bg-secondary);border-radius:4px;flex:1;justify-content:space-between;align-items:center;padding:4px 8px;display:flex}.wait-status-item .wait-label{color:var(--text-secondary);font-size:10px}.wait-status-item .wait-value{font-size:12px;font-weight:600}.wait-status-item .wait-value.good{color:var(--color-success)}.wait-status-item .wait-value.warning{color:var(--color-warning)}.wait-status-item .wait-value.bad{color:var(--color-danger)}.panel-infra .infra-summary{padding:4px 0}.infra-row{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;padding:4px 0;display:flex}.infra-row:last-child{border-bottom:none}.infra-label{color:var(--text-secondary);font-size:11px}.infra-status{align-items:center;gap:2px;font-size:10px;display:flex}.infra-status .status-normal{color:var(--color-success)}.infra-status .status-divider{color:var(--text-muted);margin:0 2px}.infra-status .status-error{color:var(--color-danger)}.panel-lift .lift-summary{padding:4px 0}.lift-counts{gap:8px;margin-bottom:8px;display:flex}.lift-count{text-align:center;background:var(--bg-secondary);border-radius:4px;flex:1;padding:6px 4px}.lift-count .count-num{color:var(--text-primary);font-size:16px;font-weight:700;display:block}.lift-count .count-label{color:var(--text-tertiary);margin-top:2px;font-size:9px}.lift-count.operating .count-num{color:var(--color-primary)}.lift-count.idle .count-num{color:var(--color-success)}.lift-count.off .count-num{color:var(--text-muted)}.lift-count.error .count-num{color:var(--color-danger)}.lift-utilization{background:var(--bg-secondary);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;display:flex}.lift-utilization .utilization-label{color:var(--text-tertiary);white-space:nowrap;font-size:10px}.lift-utilization .utilization-bar{background:var(--bg-gauge);border-radius:3px;flex:1;height:6px;overflow:hidden}.lift-utilization .utilization-fill{background:var(--color-primary);border-radius:3px;height:100%;transition:width .3s}.lift-utilization .utilization-value{color:var(--color-primary);text-align:right;min-width:32px;font-size:11px;font-weight:600}.lift-manage-list{flex-direction:column;display:flex}.lift-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.lift-manage-item:hover{background:var(--bg-tertiary)}.lift-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.lift-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.lift-manage-name{flex:1;font-size:11px;font-weight:600}.lift-manage-status{border-radius:10px;padding:2px 6px;font-size:9px}.lift-manage-status.operating{color:var(--color-primary);background:#2196f326}.lift-manage-status.idle{color:var(--color-success);background:#34c75926}.lift-manage-status.off{background:var(--bg-tertiary);color:var(--text-muted)}.lift-manage-status.error{color:var(--color-danger);background:#ff3b3026}.lift-manage-sub{align-items:center;gap:6px;display:flex}.lift-manage-floor{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.lift-manage-util{color:var(--color-primary);font-size:9px}.lift-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.lift-status-icon.operating{background:var(--bg-primary-light);border:1px solid var(--color-primary)}.lift-status-icon.operating:after{content:"▲";color:var(--color-primary);font-size:8px}.lift-status-icon.idle{background:var(--bg-success-light);border:1px solid var(--color-success)}.lift-status-icon.idle:after{content:"●";color:var(--color-success);font-size:6px}.lift-status-icon.off{background:var(--bg-secondary);border:1px solid var(--text-tertiary)}.lift-status-icon.off:after{content:"○";color:var(--text-tertiary);font-size:8px}.lift-status-icon.error{background:var(--bg-error-light);border:1px solid #f44336}.lift-status-icon.error:after{content:"✕";color:#f44336;font-size:9px;font-weight:700}.control-panel.mode-narrow .lift-manage-item{padding:8px 4px}.control-panel.mode-narrow .lift-manage-name{font-size:9px}.control-panel.mode-narrow .lift-manage-main{margin-bottom:0}.donut-chart-container{flex-direction:row;align-items:center;gap:12px;padding:4px 0;display:flex}.donut-chart-container svg{flex-shrink:0}.donut-center-value{fill:var(--text-primary);font-size:14px;font-weight:700}.donut-center-label{fill:var(--text-tertiary);font-size:9px}.donut-legend{flex-direction:column;flex:1;gap:4px;display:flex}.donut-legend .legend-item{align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.donut-legend .legend-item.inuse{color:var(--color-success)}.donut-legend .legend-item.empty{color:var(--color-primary)}.donut-legend .legend-item.reserved{color:var(--color-warning)}.donut-legend .legend-item.working{color:var(--color-success)}.donut-legend .legend-item.idle{color:var(--color-warning)}.donut-legend .legend-item.charging{color:var(--color-primary)}.donut-legend .legend-item.error{color:var(--color-danger)}.semi-gauge-container{flex-direction:column;align-items:center;gap:8px;padding:8px 0;display:flex}.semi-gauge-container svg{flex-shrink:0}.gauge-value{fill:var(--color-primary);font-size:18px;font-weight:700}.gauge-label{fill:var(--text-tertiary);font-size:10px}.lift-status-counts{flex-wrap:wrap;justify-content:center;gap:6px 12px;width:100%;display:flex}.lift-status-counts .status-item{align-items:center;gap:4px;font-size:12px;font-weight:500;display:flex}.lift-status-counts .status-item.operating{color:var(--color-success)}.lift-status-counts .status-item.idle{color:var(--color-warning)}.lift-status-counts .status-item.off{color:var(--text-tertiary)}.lift-status-counts .status-item.error{color:var(--color-danger)}.panel-parking{cursor:pointer;padding:10px;transition:background .15s}.panel-parking:hover{background:var(--bg-hover)}.panel-parking .dashboard-panel-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.panel-parking .panel-total{color:var(--text-secondary);font-size:11px}.panel-dropzone{cursor:pointer;padding:10px}.panel-dropzone:hover{background:var(--bg-hover)}.panel-dropzone .dashboard-panel-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.panel-dropzone .panel-total{color:var(--text-secondary);margin-left:auto;margin-right:4px;font-size:11px}.dropzone-segment-bar{border-radius:6px;height:12px;margin-bottom:8px;display:flex;overflow:hidden}.dropzone-segment-bar .segment{min-width:4px;transition:all .3s}.dropzone-segment-bar .segment-entry{background:var(--color-primary)}.dropzone-segment-bar .segment-exit{background:var(--color-warning)}.dropzone-segment-bar .segment-delayed{background:var(--color-danger)}.dropzone-segment-bar .segment-empty{background:var(--bg-gauge)}.dropzone-legend{flex-wrap:nowrap;justify-content:space-between;gap:6px;display:flex}.dropzone-legend .legend-item{white-space:nowrap;align-items:center;gap:2px;font-size:10px;display:flex}.dropzone-legend .legend-item.entry{color:var(--color-primary)}.dropzone-legend .legend-item.exit{color:var(--color-warning)}.dropzone-legend .legend-item.delayed{color:var(--color-danger)}.dropzone-legend .legend-item.empty{color:var(--text-secondary)}.panel-entry-exit{cursor:pointer;padding:10px}.panel-entry-exit:hover{background:var(--bg-hover)}.entry-exit-visual{flex-direction:column;gap:8px;display:flex}.entry-exit-visual .entry-exit-row{align-items:center;gap:8px;display:flex}.entry-exit-visual .row-label{white-space:nowrap;flex-shrink:0;min-width:56px;font-size:11px;font-weight:600}.entry-exit-visual .row-indicators{flex-wrap:wrap;gap:6px;display:flex}.entry-exit-visual .indicator-item{white-space:nowrap;align-items:center;gap:2px;font-size:11px;display:flex}.entry-exit-visual .indicator-item.progress,.entry-exit-visual .indicator-item.progress .indicator-dot{color:var(--color-success)}.entry-exit-visual .indicator-item.progress .indicator-num{color:var(--color-success);font-weight:700}.entry-exit-visual .indicator-item.waiting{color:var(--text-secondary)}.entry-exit-visual .indicator-item.waiting.level-normal,.entry-exit-visual .indicator-item.waiting.level-normal .indicator-dot{color:var(--text-tertiary)}.entry-exit-visual .indicator-item.waiting.level-normal .indicator-num{font-weight:500}.entry-exit-visual .indicator-item.waiting.level-warning{color:var(--color-warning);background:var(--bg-warning-light);border-radius:4px;padding:2px 6px}.entry-exit-visual .indicator-item.waiting.level-warning .indicator-dot{color:var(--color-warning)}.entry-exit-visual .indicator-item.waiting.level-warning .indicator-num{font-size:13px;font-weight:700}.entry-exit-visual .indicator-item.waiting.level-danger{color:var(--color-danger);background:var(--bg-danger-light);border-radius:4px;padding:2px 6px;animation:1.5s infinite pulse-danger}.entry-exit-visual .indicator-item.waiting.level-danger .indicator-dot{color:var(--color-danger)}.entry-exit-visual .indicator-item.waiting.level-danger .indicator-num{font-size:14px;font-weight:700}@keyframes pulse-danger{0%,to{opacity:1}50%{opacity:.7}}.panel-robot{cursor:pointer;padding:10px}.panel-robot:hover{background:var(--bg-hover)}.panel-robot .dashboard-panel-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.panel-robot .panel-total{color:var(--text-secondary);margin-left:auto;margin-right:4px;font-size:11px}.robot-progress-bars{flex-direction:column;gap:6px;display:flex}.robot-progress-bars .progress-row{align-items:center;gap:8px;display:flex}.robot-progress-bars .progress-label{flex-shrink:0;min-width:32px;font-size:11px;font-weight:500}.robot-progress-bars .progress-track{background:var(--bg-gauge);border-radius:4px;flex:1;height:8px;overflow:hidden}.robot-progress-bars .progress-fill{border-radius:4px;height:100%;transition:width .3s}.robot-progress-bars .progress-value{text-align:right;min-width:24px;font-size:12px;font-weight:600}.robot-progress-bars .progress-row.working .progress-label,.robot-progress-bars .progress-row.working .progress-value{color:var(--color-success)}.robot-progress-bars .progress-row.working .progress-fill{background:var(--color-success)}.robot-progress-bars .progress-row.idle .progress-label,.robot-progress-bars .progress-row.idle .progress-value{color:var(--color-warning)}.robot-progress-bars .progress-row.idle .progress-fill{background:var(--color-warning)}.robot-progress-bars .progress-row.charging .progress-label,.robot-progress-bars .progress-row.charging .progress-value{color:var(--color-primary)}.robot-progress-bars .progress-row.charging .progress-fill{background:var(--color-primary)}.robot-progress-bars .progress-row.user-control .progress-label,.robot-progress-bars .progress-row.user-control .progress-value{color:#9c27b0}.robot-progress-bars .progress-row.user-control .progress-fill{background:#9c27b0}.robot-progress-bars .progress-row.error .progress-label,.robot-progress-bars .progress-row.error .progress-value{color:var(--color-danger)}.robot-progress-bars .progress-row.error .progress-fill{background:var(--color-danger)}.panel-lift{cursor:pointer;padding:10px}.panel-lift:hover{background:var(--bg-hover)}.panel-lift .dashboard-panel-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.panel-lift .panel-total{color:var(--text-secondary);margin-left:auto;margin-right:4px;font-size:11px}.nested-donut-container{flex-direction:row;align-items:center;gap:12px;padding:4px 0;display:flex}.nested-donut-container svg{flex-shrink:0}.nested-donut-value{fill:var(--color-primary);font-size:14px;font-weight:700}.nested-donut-label{fill:var(--text-tertiary);font-size:9px}.nested-donut-legend{flex-direction:column;flex:1;gap:4px;display:flex}.nested-donut-legend .legend-item{white-space:nowrap;align-items:center;gap:2px;font-size:11px;font-weight:500;display:flex}.nested-donut-legend .legend-item.operating{color:var(--color-success)}.nested-donut-legend .legend-item.idle{color:var(--color-warning)}.nested-donut-legend .legend-item.off{color:var(--text-tertiary)}.nested-donut-legend .legend-item.error{color:var(--color-danger)}.panel-infra{cursor:pointer;padding:10px}.panel-infra:hover{background:var(--bg-hover)}.infra-list{flex-direction:column;gap:6px;display:flex}.infra-item{align-items:center;gap:8px;padding:4px 0;display:flex}.infra-item .infra-icon{text-align:center;width:20px;font-size:14px}.infra-item .infra-name{color:var(--text-primary);flex:1;font-size:11px}.infra-item .infra-count{color:var(--text-primary);text-align:right;min-width:20px;font-size:12px;font-weight:600}.infra-item .fault-badge{color:var(--color-danger);background:var(--bg-danger-light);border-radius:10px;padding:2px 6px;font-size:10px;font-weight:600}.infra-item.has-fault .infra-name{color:var(--color-danger)}.segment-bar{background:var(--bg-gauge);border-radius:6px;height:12px;margin:8px 0;display:flex;overflow:hidden}.segment-bar .segment{min-width:4px;transition:all .3s}.parking-total-row{border-bottom:2px solid var(--border-secondary);margin-bottom:10px;padding-bottom:10px}.parking-total-row .segment-bar{height:14px;margin:6px 0 0}.parking-row-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.parking-row-label{color:var(--text-primary);font-size:11px;font-weight:700}.parking-row-stats{align-items:center;gap:8px;display:flex}.parking-row-stats .stat{font-size:10px;font-weight:500}.parking-row-stats .stat.total{color:var(--text-primary);border-right:1px solid var(--border-tertiary);padding-right:6px;font-weight:700}.parking-row-stats .stat.inuse{color:var(--color-success)}.parking-row-stats .stat.empty{color:var(--color-primary)}.parking-row-stats .stat.reserved{color:var(--color-warning)}.parking-floors-toggle{background:var(--bg-tertiary);border:1px solid var(--border-tertiary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;width:100%;margin-top:8px;padding:6px 8px;transition:background .2s;display:flex}.parking-floors-toggle:hover{background:var(--bg-hover)}.parking-floors-toggle .toggle-icon{color:var(--text-tertiary);font-size:8px}.parking-floors-toggle .toggle-text{color:var(--text-secondary);font-size:10px;font-weight:500}.parking-floors-toggle.expanded{border-bottom-right-radius:0;border-bottom-left-radius:0;margin-bottom:0}.parking-floors{border:1px solid var(--border-tertiary);background:var(--bg-secondary);border-top:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:8px}.panel-parking .parking-floors{flex-direction:column;gap:8px;display:flex}.floor-row{flex-direction:column;gap:4px;display:flex}.floor-row .parking-row-header{padding-left:2px}.floor-label{color:var(--text-secondary);min-width:24px;font-size:10px;font-weight:600}.floor-row .segment-bar{height:8px;margin:0}.floor-row .parking-row-stats .stat{font-size:9px}.floor-row .parking-row-stats .stat.total{font-weight:600}.parking-legend{border-top:1px solid var(--border-tertiary);gap:12px;margin-top:10px;padding-top:8px;display:flex}.parking-legend .legend-item{color:var(--text-secondary);align-items:center;gap:5px;font-size:10px;font-weight:500;display:flex}.legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.legend-dot.occupied{background:var(--color-success)}.legend-dot.empty{background:var(--color-primary)}.legend-dot.reserved{background:var(--color-warning)}.dropzone-alerts{flex-flow:wrap;gap:8px;margin-bottom:8px;display:flex}.dropzone-alert-card{background:var(--bg-secondary);border-radius:6px;flex:auto;align-items:center;gap:6px;min-width:0;padding:6px 10px;display:flex}.dropzone-alert-card .alert-label{color:var(--text-secondary);font-size:10px}.dropzone-alert-card .alert-value{color:var(--text-primary);margin-left:auto;font-size:16px;font-weight:700}.dropzone-alert-card.warning{background:var(--bg-warning-light);border:1px solid var(--color-warning)}.dropzone-alert-card.warning .alert-label,.dropzone-alert-card.warning .alert-value{color:var(--color-warning)}.dropzone-alert-card.danger{background:var(--bg-danger-light);border:1px solid var(--color-danger)}.dropzone-alert-card.danger .alert-label,.dropzone-alert-card.danger .alert-value{color:var(--color-danger)}.entry-exit-visual .indicator-item.requested{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:4px;padding:2px 6px;font-weight:600}.entry-exit-visual .indicator-item.requested .indicator-num{font-size:13px;font-weight:700}.entry-exit-visual .indicator-item.requested .indicator-text{margin-left:2px;font-size:9px}.entry-exit-visual .indicator-item.not-started{color:var(--text-tertiary)}.entry-exit-visual .indicator-item.not-started .indicator-dot{color:var(--text-muted)}.entry-exit-visual .indicator-item.not-started .indicator-num{font-weight:500}.entry-exit-visual .indicator-item.not-started .indicator-text{font-size:9px}.entry-exit-visual .indicator-item.delayed{color:var(--color-danger);background:var(--bg-danger-light);border-radius:4px;padding:2px 6px;animation:1.5s infinite pulse-danger}.entry-exit-visual .indicator-item.delayed .indicator-dot{color:var(--color-danger);font-weight:700}.entry-exit-visual .indicator-item.delayed .indicator-num{font-size:13px;font-weight:700}.entry-exit-visual .indicator-item.delayed .indicator-text{font-size:9px}.entry-exit-visual .indicator-item .indicator-text{margin-left:2px}.progress-group{border-bottom:1px solid var(--border-tertiary);margin-bottom:8px;padding-bottom:8px}.progress-group:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.progress-group-label{color:var(--text-tertiary);text-transform:uppercase;margin-bottom:4px;font-size:10px;font-weight:600}.robot-progress-bars .progress-row.charging.low .progress-label,.robot-progress-bars .progress-row.charging.low .progress-value{color:var(--color-primary)}.robot-progress-bars .progress-row.charging.low .progress-fill{background:var(--color-primary)}.robot-progress-bars .progress-row.charging.mid .progress-label,.robot-progress-bars .progress-row.charging.mid .progress-value{color:#17a2b8}.robot-progress-bars .progress-row.charging.mid .progress-fill{background:#17a2b8}.robot-progress-bars .progress-row.charging.high .progress-label,.robot-progress-bars .progress-row.charging.high .progress-value{color:#20c997}.robot-progress-bars .progress-row.charging.high .progress-fill{background:#20c997}.robot-progress-bars .progress-row.charging.abnormal .progress-label,.robot-progress-bars .progress-row.charging.abnormal .progress-value{color:var(--color-warning)}.robot-progress-bars .progress-row.charging.abnormal .progress-fill{background:var(--color-warning)}.robot-progress-bars .progress-row.charging.abnormal{background:var(--bg-warning-light);border-radius:4px;margin:-2px -6px;padding:4px 6px}.robot-status-grid{flex-direction:column;gap:8px;display:flex}.status-group{border-bottom:1px solid var(--border-tertiary);padding-bottom:8px}.status-group:last-child{border-bottom:none;padding-bottom:0}.status-group.warning .status-group-label{color:var(--color-warning)}.status-group-label{color:var(--text-tertiary);text-transform:uppercase;margin-bottom:6px;font-size:10px;font-weight:600}.status-items{flex-wrap:wrap;gap:8px 16px;display:flex}.status-item{align-items:center;gap:6px;display:flex}.status-item .status-label{color:var(--text-secondary);font-size:11px}.status-item .status-value{min-width:20px;font-size:14px;font-weight:600}.status-item.working .status-value{color:var(--color-success)}.status-item.idle .status-value,.status-item.charging .status-value{color:var(--color-primary)}.status-item.charging.abnormal .status-value,.status-item.user-control .status-value{color:var(--color-warning)}.status-item.error .status-value{color:var(--color-danger)}.standby-zones-wrapper{flex-direction:column;gap:8px;display:flex}.standby-row{align-items:center;gap:8px;display:flex}.standby-row-label{min-width:60px;font-size:10px;font-weight:500}.standby-row.entry .standby-row-label{color:var(--color-primary)}.standby-row.exit .standby-row-label{color:var(--color-success)}.standby-row .status-items{gap:6px;display:flex}.status-item.zone{border:1px solid var(--border-secondary);border-radius:4px;padding:4px 8px}.status-item.zone.entry{border-color:var(--color-primary);background:#007bff14}.status-item.zone.entry .status-label,.status-item.zone.entry .status-value{color:var(--color-primary)}.status-item.zone.exit{border-color:var(--color-success);background:#28a74514}.status-item.zone.exit .status-label,.status-item.zone.exit .status-value{color:var(--color-success)}.charging-levels{gap:8px;display:flex}.charging-level{border:1px solid var(--border-tertiary);background:var(--bg-secondary);opacity:.5;border-radius:6px;flex-direction:column;flex:1;align-items:center;padding:8px 4px;display:flex}.charging-level.has-robots{opacity:1}.charging-level .level-range{color:var(--text-tertiary);font-size:10px;font-weight:600}.charging-level .level-value{margin:2px 0;font-size:18px;font-weight:700}.charging-level .level-desc{color:var(--text-tertiary);font-size:9px}.charging-level.critical{border-color:var(--color-danger)}.charging-level.critical.has-robots{background:#dc354514}.charging-level.critical .level-range,.charging-level.critical .level-value{color:var(--color-danger)}.charging-level.medium{border-color:var(--color-warning)}.charging-level.medium.has-robots{background:#ffc10714}.charging-level.medium .level-range,.charging-level.medium .level-value{color:var(--color-warning)}.charging-level.ready{border-color:var(--color-success)}.charging-level.ready.has-robots{background:#28a74514}.charging-level.ready .level-range,.charging-level.ready .level-value{color:var(--color-success)}.lift-cards{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.lift-card{border:1px solid var(--border-secondary);background:var(--bg-secondary);border-radius:6px;flex-direction:column;align-items:center;padding:8px 4px;display:flex}.lift-card-header{align-items:center;gap:4px;margin-bottom:4px;display:flex}.lift-card .lift-name{color:var(--text-secondary);font-size:10px;font-weight:600}.lift-card .lift-error-badge{background:var(--color-danger);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;font-weight:700;display:flex}.lift-card-floor{align-items:center;gap:2px;margin-bottom:4px;display:flex}.lift-card-floor .floor-current{color:var(--text-primary);font-size:14px;font-weight:700}.lift-card-floor .floor-arrow{color:var(--text-tertiary);margin:0 2px;font-size:12px}.lift-card-floor .floor-target{color:var(--color-primary);font-size:14px;font-weight:700}.lift-card-cargo{text-align:center;justify-content:center;align-items:center;min-height:24px;font-size:10px;display:flex}.lift-card-cargo .cargo-empty{color:var(--text-tertiary);font-size:12px}.lift-card-cargo .cargo-robot{color:var(--color-primary);font-size:11px;font-weight:600}.lift-card-cargo .cargo-robot2{color:var(--color-primary);font-size:10px;font-weight:600}.lift-card-cargo .cargo-robot-vehicle{flex-direction:column;align-items:center;gap:1px;display:flex}.lift-card-cargo .cargo-robot-name{color:var(--color-primary);font-size:10px;font-weight:600}.lift-card-cargo .cargo-vehicle-num{color:var(--color-success);font-size:9px;font-weight:500}.lift-card.moving{border-color:var(--color-primary);background:#007bff0d}.lift-card.idle{border-color:var(--border-tertiary);opacity:.7}.lift-card.error{border-color:var(--color-danger);background:#dc354514}.lift-card.robot-vehicle{border-color:var(--color-success);background:#28a74514}.lift-card.robot-vehicle .floor-target{color:var(--color-success)}.lift-direction{border-top:1px solid var(--border-tertiary);gap:12px;margin-top:8px;padding-top:8px;display:flex}.lift-direction .direction-item{align-items:center;gap:4px;font-size:11px;font-weight:600;display:flex}.lift-direction .direction-item.ascending{color:var(--color-primary)}.lift-direction .direction-item.descending{color:var(--color-warning)}.detail-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-tertiary);align-items:center;gap:8px;padding:12px 16px;display:flex}.detail-link-btn{color:var(--color-primary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);background:0 0;border:none;margin-left:auto;padding:4px 8px;font-size:11px}.detail-link-btn:hover{background:var(--bg-primary-light);color:var(--color-primary-dark)}.detail-actions{border-top:1px solid var(--border-tertiary);flex-wrap:wrap;gap:10px;margin-top:20px;padding-top:20px;display:flex}.detail-panel .action-btn{padding:8px 16px;font-size:13px;font-weight:500}.detail-panel .action-btn.secondary{border:1px solid var(--border-primary);color:var(--text-primary);background:0 0}.detail-panel .action-btn.secondary:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.detail-panel .action-btn.control{color:#fff;background:linear-gradient(135deg,#9c27b0 0%,#7b1fa2 100%);border:none}.detail-panel .action-btn.control:hover{background:linear-gradient(135deg,#ab47bc 0%,#9c27b0 100%)}.detail-panel .toggle-btn{padding:4px 10px;font-size:11px}.detail-tabs{border-bottom:1px solid #e0e0e0;margin:-12px -12px 12px;padding:0;display:flex}.detail-tab{background:var(--bg-tertiary);color:var(--text-secondary);cursor:pointer;border:none;border-bottom:2px solid #0000;flex:1;padding:10px 12px;font-size:12px;transition:all .15s}.detail-tab:hover{background:var(--border-tertiary);color:var(--text-primary)}.detail-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary);background:#fff;font-weight:500}.device-log-section{flex-direction:column;gap:12px;display:flex}.log-filter{gap:4px;display:flex}.log-filter-btn{border:1px solid var(--border-light);color:var(--text-secondary);cursor:pointer;background:#fff;border-radius:4px;flex:1;padding:6px 8px;font-size:11px;transition:all .15s}.log-filter-btn:hover{background:var(--bg-tertiary)}.log-filter-btn.active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.log-list{border:1px solid var(--border-light);border-radius:4px;flex-direction:column;max-height:400px;display:flex;overflow-y:auto}.log-item{border-bottom:1px solid var(--border-lighter);align-items:flex-start;gap:8px;padding:8px 10px;font-size:11px;display:flex}.log-item:last-child{border-bottom:none}.log-item.warning{background:var(--bg-warning-light)}.log-item.error{background:var(--bg-error-light)}.log-time{color:var(--text-muted);flex-shrink:0;font-family:monospace;font-size:10px}.log-level{border-radius:2px;flex-shrink:0;padding:1px 4px;font-size:9px;font-weight:600}.log-level.info{background:var(--bg-primary-light);color:var(--color-primary-dark)}.log-level.warning{background:var(--bg-warning-light);color:var(--color-warning)}.log-level.error{background:var(--bg-error-light);color:var(--color-danger-dark)}.log-msg{color:var(--text-primary);word-break:break-word;flex:1}.log-more-btn{border:1px dashed var(--border-primary);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:8px;font-size:11px}.log-more-btn:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.parts-management{flex-direction:column;gap:16px;display:flex}.part-card{background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-tertiary);padding:16px}.part-header{border-bottom:1px solid var(--border-tertiary);cursor:pointer;border-radius:var(--radius-md) var(--radius-md) 0 0;align-items:center;gap:12px;margin:-16px -16px 0;padding:16px;transition:background-color .15s;display:flex}.part-header:hover{background:var(--bg-hover)}.part-card.collapsed .part-header{border-radius:var(--radius-md);border-bottom:none;margin-bottom:0}.part-icon{border-radius:var(--radius-sm);background:var(--bg-tertiary);justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.part-icon.battery{background:var(--bg-success-light)}.part-icon.motor{background:var(--bg-primary-light)}.part-icon.lidar{background:var(--bg-purple-light)}.part-title{flex-direction:column;flex:1;gap:2px;display:flex}.part-name{color:var(--text-primary);font-size:14px;font-weight:600}.part-model{color:var(--text-tertiary);font-size:11px}.part-status{border-radius:var(--radius-full);padding:4px 10px;font-size:11px;font-weight:600}.part-status.good{background:var(--bg-success-light);color:var(--color-success-dark)}.part-status.warning{background:var(--bg-warning-light);color:var(--color-warning)}.part-status.error{background:var(--bg-error-light);color:var(--color-danger-dark)}.part-toggle{color:var(--text-tertiary);margin-left:auto;font-size:12px;transition:transform .2s}.part-toggle.expanded{transform:rotate(180deg)}.part-body{opacity:1;max-height:500px;padding-top:16px;transition:max-height .3s,opacity .2s,padding .3s;overflow:hidden}.part-card.collapsed .part-body{opacity:0;max-height:0;padding-top:0}.part-metrics{flex-direction:column;gap:14px;margin-bottom:16px;display:flex}.metric-item{flex-direction:column;gap:6px;display:flex}.metric-label{color:var(--text-tertiary);font-size:11px;font-weight:500}.metric-value-row{align-items:baseline;gap:4px;display:flex}.metric-value{color:var(--text-primary);font-size:24px;font-weight:700;line-height:1}.metric-value.highlight{color:var(--color-success)}.metric-value.warning{color:var(--color-warning)}.metric-value.error{color:var(--color-danger)}.metric-unit{color:var(--text-tertiary);font-size:12px}.metric-progress{align-items:center;gap:8px;display:flex}.metric-progress .progress-bar{background:var(--bg-gauge);border-radius:var(--radius-full);flex:1;height:6px;overflow:hidden}.metric-progress .progress-bar.warning{background:var(--bg-warning-light)}.metric-progress .progress-fill{background:var(--color-primary);border-radius:var(--radius-full);height:100%;transition:width .3s}.metric-progress .progress-bar.warning .progress-fill{background:var(--color-warning)}.metric-progress .progress-text{color:var(--text-secondary);flex-shrink:0;font-size:11px}.metric-progress .progress-text.warning{color:var(--color-warning)}.metric-desc{color:var(--text-tertiary);font-size:11px}.metric-desc.warning{color:var(--color-warning);font-weight:500}.part-history{background:var(--bg-primary);border-radius:var(--radius-sm);border:1px solid var(--border-tertiary);padding:12px}.history-title{color:var(--text-secondary);justify-content:space-between;align-items:center;margin-bottom:10px;font-size:12px;font-weight:600;display:flex}.history-toggle{color:var(--color-primary);cursor:pointer;border-radius:var(--radius-xs);background:0 0;border:none;padding:2px 6px;font-size:11px}.history-toggle:hover{background:var(--bg-primary-light)}.history-list{flex-direction:column;gap:8px;display:flex}.history-date{color:var(--text-tertiary);flex-shrink:0;font-family:monospace}.history-action{color:var(--text-primary);flex:1;font-weight:500}.history-note{color:var(--text-tertiary);font-size:10px}.parts-actions{border-top:1px solid var(--border-tertiary);gap:10px;margin-top:8px;padding-top:16px;display:flex}.job-overview-list{background:var(--bg-secondary);border-radius:6px;margin-bottom:12px;padding:10px}.overview-list-header{border-bottom:1px solid var(--border-primary);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:6px;display:flex}.overview-list-header .list-title{color:var(--text-primary);font-size:12px;font-weight:600}.overview-list-header .list-counts{gap:8px;display:flex}.overview-list-header .count-item{border-radius:3px;padding:2px 6px;font-size:10px}.overview-list-header .count-item.progress{background:rgba(var(--color-primary-rgb), .15);color:var(--color-primary)}.overview-list-header .count-item.waiting{background:rgba(var(--color-warning-rgb), .15);color:var(--color-warning)}.overview-list-header .count-item.delayed{background:rgba(var(--color-error-rgb), .15);color:var(--color-error)}.delayed-jobs-section{background:rgba(var(--color-error-rgb), .08);border:1px solid rgba(var(--color-error-rgb), .3);border-radius:4px;margin-bottom:8px;padding:6px}.delayed-section-header{border-bottom:1px solid rgba(var(--color-error-rgb), .2);align-items:center;gap:4px;margin-bottom:6px;padding-bottom:4px;display:flex}.delayed-section-header .delayed-icon{font-size:10px}.delayed-section-header .delayed-title{color:var(--color-error);font-size:10px;font-weight:600}.delayed-jobs-items{flex-direction:column;gap:4px;display:flex}.overview-list-item.delayed{border-left-color:var(--color-error);background:#5c2a2a!important}.overview-list-item.delayed:hover{background:#6e3333!important}.overview-list-item.delayed .item-status-dot{background:var(--color-error)}.overview-list-item.delayed .item-id,.overview-list-item.delayed .item-car,.overview-list-item.delayed .item-type,.overview-list-item.delayed .item-robot{color:#fff}.item-delay-info{align-items:center;gap:2px;margin-left:auto;font-size:10px;display:flex}.item-delay-info .delay-elapsed{color:var(--color-error);font-weight:600}.item-delay-info .delay-expected{color:var(--text-tertiary)}.overview-list-items{flex-direction:column;gap:4px;max-height:180px;display:flex;overflow-y:auto}.overview-list-item{background:var(--bg-primary);border-left:3px solid var(--border-primary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:6px 8px;transition:background .15s;display:flex}.overview-list-item:hover{background:var(--bg-tertiary)}.overview-list-item.selected{background:var(--bg-accent)}.overview-list-item.progress{border-left-color:var(--color-primary)}.overview-list-item.waiting{border-left-color:var(--color-warning)}.overview-list-item .item-status-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px}.overview-list-item.progress .item-status-dot{background:var(--color-primary)}.overview-list-item.waiting .item-status-dot{background:var(--color-warning)}.overview-list-item .item-id{color:var(--text-tertiary);min-width:36px;font-size:10px}.overview-list-item .item-car{color:var(--text-primary);min-width:60px;font-size:11px;font-weight:600}.overview-list-item .item-type{color:var(--text-secondary);min-width:28px;font-size:10px}.overview-list-item .item-robot{color:var(--color-primary);min-width:28px;font-size:10px}.overview-list-item .item-progress{align-items:center;gap:4px;margin-left:auto;display:flex}.overview-list-item .progress-bar{background:var(--bg-gauge);border-radius:2px;width:40px;height:4px;overflow:hidden}.overview-list-item .progress-fill{background:var(--color-primary);border-radius:2px;height:100%}.overview-list-item .progress-text{color:var(--text-tertiary);text-align:right;min-width:24px;font-size:9px}.overview-list-item .item-waiting{color:var(--color-warning);margin-left:auto;font-size:9px}.job-detail-section{background:var(--bg-secondary);border-radius:6px;padding:10px}.job-detail-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.robot-overview-list{background:var(--bg-secondary);border-radius:6px;margin-bottom:12px;padding:10px}.robot-overview-list .overview-list-header .count-item.working{background:rgba(var(--color-primary-rgb), .15);color:var(--color-primary)}.robot-overview-list .overview-list-header .count-item.idle{background:rgba(var(--text-secondary-rgb,128, 128, 128), .15);color:var(--text-secondary)}.robot-overview-list .overview-list-header .count-item.charging{background:rgba(var(--color-success-rgb), .15);color:var(--color-success)}.robot-overview-list .overview-list-header .count-item.error{background:rgba(var(--color-error-rgb), .15);color:var(--color-error)}.overview-list-filters{border-bottom:1px solid var(--border-tertiary);align-items:center;padding:6px 12px;display:flex}.filter-toggle{cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:8px;display:flex}.filter-toggle input{display:none}.filter-toggle .toggle-switch{background:var(--bg-tertiary);border-radius:8px;width:32px;height:16px;transition:background .2s;position:relative}.filter-toggle .toggle-switch:after{content:"";background:var(--text-tertiary);border-radius:50%;width:12px;height:12px;transition:transform .2s,background .2s;position:absolute;top:2px;left:2px}.filter-toggle input:checked+.toggle-switch{background:rgba(var(--color-primary-rgb), .3)}.filter-toggle input:checked+.toggle-switch:after{background:var(--color-primary);transform:translate(16px)}.filter-toggle .toggle-label{color:var(--text-secondary);font-size:11px}.robot-overview-list .overview-list-item.working{border-left-color:var(--color-primary)}.robot-overview-list .overview-list-item.idle{border-left-color:var(--text-tertiary)}.robot-overview-list .overview-list-item.charging{border-left-color:var(--color-success)}.robot-overview-list .overview-list-item.error{border-left-color:var(--color-error)}.robot-overview-list .overview-list-item.user-control{border-left-color:#9c27b0}.robot-overview-list .overview-list-item.working .item-status-dot{background:var(--color-primary)}.robot-overview-list .overview-list-item.idle .item-status-dot{background:var(--text-tertiary)}.robot-overview-list .overview-list-item.charging .item-status-dot{background:var(--color-success)}.robot-overview-list .overview-list-item.error .item-status-dot{background:var(--color-error)}.robot-overview-list .overview-list-item.user-control .item-status-dot{background:#9c27b0}.robot-overview-list .item-status-text{min-width:36px;font-size:10px}.robot-overview-list .item-status-text.working{color:var(--color-primary)}.robot-overview-list .item-status-text.idle{color:var(--text-tertiary)}.robot-overview-list .item-status-text.charging{color:var(--color-success)}.robot-overview-list .item-status-text.error{color:var(--color-error)}.robot-overview-list .item-status-text.user-control{color:#9c27b0}.robot-overview-list .item-user-control-badge{color:#fff;background:#9c27b0;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:600;animation:2s infinite pulse-purple}@keyframes pulse-purple{0%,to{opacity:1}50%{opacity:.7}}.robot-overview-list .item-battery{align-items:center;gap:4px;min-width:60px;display:flex}.robot-overview-list .item-battery .battery-mini{background:var(--bg-gauge);border-radius:2px;width:24px;height:8px;overflow:hidden}.robot-overview-list .item-battery .battery-fill{background:var(--color-success);border-radius:2px;height:100%}.robot-overview-list .item-battery span{color:var(--text-tertiary);font-size:9px}.robot-overview-list .item-job{color:var(--color-primary);margin-left:auto;font-size:10px}.robot-overview-list .item-error{color:var(--color-error);background:rgba(var(--color-error-rgb), .15);border-radius:3px;margin-left:auto;padding:2px 6px;font-size:9px}.error-robots-section{background:rgba(var(--color-error-rgb), .08);border:1px solid rgba(var(--color-error-rgb), .3);box-sizing:border-box;border-radius:4px;width:100%;margin-bottom:8px;padding:6px}.error-section-header{border-bottom:1px solid rgba(var(--color-error-rgb), .2);justify-content:flex-start;align-items:center;gap:4px;margin-bottom:6px;padding-bottom:4px;display:flex}.error-section-header .error-icon{font-size:10px}.error-section-header .error-title{color:var(--color-error);font-size:10px;font-weight:600}.error-robots-items{flex-direction:column;gap:4px;display:flex}.error-robots-section .overview-list-item.error{border-left-color:var(--color-error);background:#5c2a2a!important}.error-robots-section .overview-list-item.error:hover{background:#6e3333!important}.error-robots-section .overview-list-item.error .item-id,.error-robots-section .overview-list-item.error .item-status-text,.error-robots-section .overview-list-item.error .item-battery span{color:#fff}.item-error-msg{color:#fff;background:#fff3;border-radius:3px;margin-left:auto;padding:2px 6px;font-size:9px}.robot-detail-section{background:var(--bg-secondary);border-radius:6px;padding:10px}.robot-detail-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.dropzone-overview-list{background:var(--bg-secondary);border-radius:6px;margin-bottom:10px;padding:10px}.dropzone-overview-list .overview-list-header .count-item.entry{color:var(--color-primary)}.dropzone-overview-list .overview-list-header .count-item.exit{color:var(--color-success)}.dropzone-overview-list .overview-list-header .count-item.empty{color:var(--text-secondary)}.dropzone-overview-list .overview-list-header .count-item.delayed{color:var(--color-error)}.delayed-dropzone-section{background:#5c2a2a;border-radius:6px;margin-bottom:8px;padding:8px}.delayed-dropzone-section .delayed-section-header{justify-content:flex-start;align-items:center;gap:6px;width:100%;margin-bottom:8px;display:flex}.delayed-dropzone-section .delayed-icon{font-size:12px}.delayed-dropzone-section .delayed-title{color:#ff6b6b;font-size:11px;font-weight:600}.dropzone-list-items{flex-direction:column;gap:4px;display:flex}.dropzone-list-item{background:var(--bg-tertiary);cursor:pointer;border-left:3px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.dropzone-list-item:hover{background:var(--bg-hover)}.dropzone-list-item.entry{border-left-color:var(--color-primary)}.dropzone-list-item.exit{border-left-color:var(--color-success)}.dropzone-list-item.empty{border-left-color:var(--text-muted)}.dropzone-list-item.delayed{border-left-color:var(--color-error);background:#5c2a2a!important}.dropzone-list-item.delayed:hover{background:#6e3333!important}.dz-id{color:var(--text-primary);min-width:45px;font-size:12px;font-weight:600}.dz-type{text-align:center;border-radius:3px;min-width:50px;padding:2px 6px;font-size:10px}.dz-type.entry{color:var(--color-primary);background:#007aff26}.dz-type.exit{color:var(--color-success);background:#34c75926}.dz-type.empty{background:var(--bg-secondary);color:var(--text-muted)}.dz-vehicle{color:var(--text-secondary);flex:1;font-size:11px}.dz-time{color:var(--text-tertiary);font-size:11px}.dz-time.delayed{color:var(--color-error);font-weight:600}.delayed-dropzone-items .dropzone-list-item.delayed .dz-id,.delayed-dropzone-items .dropzone-list-item.delayed .dz-vehicle{color:#fff}.dropzone-detail-section{background:var(--bg-secondary);border-radius:6px;padding:10px}.dropzone-detail-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.dropzone-detail-section .detail-value.warning{color:var(--color-error);font-weight:600}.dropzone-detail-section .status-badge{border-radius:4px;padding:3px 8px;font-size:10px}.dropzone-detail-section .status-badge.entry{color:var(--color-primary);background:#007aff26}.dropzone-detail-section .status-badge.exit{color:var(--color-success);background:#34c75926}.dropzone-detail-section .status-badge.empty{background:var(--bg-tertiary);color:var(--text-muted)}.kiosk-detail-section{background:var(--bg-secondary);border-radius:6px;margin-bottom:10px;padding:10px}.kiosk-detail-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.kiosk-stats-section{background:var(--bg-secondary);border-radius:6px;margin-bottom:10px;padding:10px}.kiosk-stats-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.stats-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.stat-item{background:var(--bg-tertiary);text-align:center;border-radius:4px;padding:8px}.stat-item .stat-label{color:var(--text-tertiary);margin-bottom:4px;font-size:9px;display:block}.stat-item .stat-value{color:var(--text-primary);font-size:14px;font-weight:600;display:block}.network-detail-section{background:var(--bg-secondary);border-radius:6px;margin-bottom:10px;padding:10px}.network-detail-section .detail-section-title{color:var(--text-primary);border-bottom:1px solid var(--border-primary);margin-bottom:10px;padding-bottom:6px;font-size:12px;font-weight:600}.usage-bar{background:var(--bg-tertiary);border-radius:4px;flex:1;height:8px;margin-right:8px;overflow:hidden}.usage-fill{background:var(--color-primary);border-radius:4px;height:100%}.detail-value .usage-bar{vertical-align:middle;width:60%;display:inline-block}.detail-value .usage-bar+span{color:var(--text-secondary);font-size:11px}.status-badge.on{color:var(--color-success);background:#34c75926;border-radius:4px;padding:3px 8px;font-size:10px}.status-badge.error{color:var(--color-error);background:#ff3b3026;border-radius:4px;padding:3px 8px;font-size:10px}.status-badge.warning{color:var(--color-warning);background:#ffcc0026;border-radius:4px;padding:3px 8px;font-size:10px}.diagnostic-message-box{background:var(--bg-tertiary);border:1px solid var(--border-tertiary);border-radius:4px;max-height:300px;margin-top:6px;overflow-y:auto}.diagnostic-item{border-bottom:1px solid var(--border-tertiary);padding:8px;font-family:Consolas,Monaco,monospace;font-size:9px}.diagnostic-item:last-child{border-bottom:none}.diagnostic-item.error{border-left:3px solid var(--color-error);background:#ff3b3014}.diagnostic-item.warning{border-left:3px solid var(--color-warning);background:#ffcc0014}.diagnostic-item.info{border-left:3px solid var(--color-info);background:#007aff0d}.diagnostic-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:4px;display:flex}.diagnostic-path{color:var(--text-secondary);word-break:break-all;flex:1}.diagnostic-level{background:var(--bg-secondary);color:var(--text-muted);white-space:nowrap;border-radius:2px;padding:1px 4px;font-size:8px}.diagnostic-level.level-1{color:var(--color-warning);background:#fc03}.diagnostic-level.level-2{color:var(--color-error);background:#ff3b3033}.diagnostic-body{padding-left:4px}.diagnostic-hw{color:var(--text-muted);margin-bottom:2px}.diagnostic-msg{color:var(--text-primary);margin-bottom:4px;font-weight:500}.diagnostic-values{flex-wrap:wrap;gap:4px;display:flex}.diag-value{background:var(--bg-secondary);color:var(--text-secondary);border-radius:2px;padding:2px 4px;font-size:8px}.diag-value.error{color:var(--color-error);background:#ff3b3026}.job-category-section{margin-top:8px}.job-category-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-tertiary);border-radius:4px 4px 0 0;align-items:center;gap:6px;padding:6px 8px;display:flex}.category-icon{border-radius:3px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;font-weight:700;display:flex}.category-icon.entry{color:var(--color-success);background:#34c75926}.category-icon.exit{color:var(--color-info);background:#007aff26}.category-title{color:var(--text-primary);font-size:11px;font-weight:600}.category-count{color:var(--text-muted);margin-left:auto;font-size:10px}.job-category-section .overview-list-items{border:1px solid var(--border-tertiary);border-top:none;border-radius:0 0 4px 4px}.item-progress-wrapper{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.item-progress.with-marker{align-items:center;gap:6px;display:flex}.item-progress.with-marker .progress-bar{background:var(--bg-tertiary);border-radius:3px;flex:1;height:6px;position:relative;overflow:visible}.item-progress.with-marker .progress-fill{border-radius:3px;height:100%;transition:width .3s,background .3s}.item-progress.with-marker.ahead .progress-fill{background:var(--color-success)}.item-progress.with-marker.caution .progress-fill{background:var(--color-warning)}.item-progress.with-marker.behind .progress-fill{background:var(--color-error)}.progress-expected-marker{z-index:1;position:absolute;top:-10px;transform:translate(-50%)}.marker-arrow{color:#000;font-size:8px;line-height:1}.item-progress.with-marker .progress-text{color:var(--text-secondary);text-align:right;min-width:28px;font-size:9px}.progress-time{justify-content:flex-end;align-items:center;gap:2px;padding-right:2px;font-size:9px;display:flex}.time-elapsed{color:var(--text-primary);font-weight:500}.time-separator,.time-expected{color:var(--text-muted)}.job-time-progress-section{background:var(--bg-secondary);border:1px solid var(--border-tertiary);border-radius:6px;margin:12px 0;padding:12px}.time-info-row{justify-content:space-between;gap:8px;margin-bottom:12px;display:flex}.time-info-item{background:var(--bg-primary);border-radius:4px;flex-direction:column;flex:1;align-items:center;padding:6px;display:flex}.time-info-label{color:var(--text-muted);margin-bottom:2px;font-size:9px}.time-info-value{color:var(--text-primary);font-size:13px;font-weight:600}.time-info-value.highlight{color:var(--color-info)}.job-progress-detail{border-top:1px solid var(--border-tertiary);padding-top:8px}.progress-label-row{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.progress-label{color:var(--text-secondary);font-size:10px;font-weight:500}.progress-status{border-radius:10px;padding:2px 8px;font-size:10px;font-weight:600}.progress-status.ahead{color:var(--color-success);background:#34c75926}.progress-status.caution{color:var(--color-warning);background:#ffcc0026}.progress-status.behind{color:var(--color-error);background:#ff3b3026}.progress-bar-large{background:var(--bg-tertiary);border-radius:8px;height:16px;margin-bottom:6px;position:relative;overflow:visible}.progress-fill-large{background:var(--color-success);border-radius:8px;height:100%;transition:width .3s}.job-progress-detail:has(.progress-status.caution) .progress-fill-large{background:var(--color-warning)}.job-progress-detail:has(.progress-status.behind) .progress-fill-large{background:var(--color-error)}.progress-marker-large{flex-direction:column;align-items:center;display:flex;position:absolute;top:-4px;bottom:-18px;transform:translate(-50%)}.marker-line{background:#000;width:2px;height:24px}.marker-label{color:var(--text-muted);white-space:nowrap;margin-top:2px;font-size:8px}.progress-info-row{justify-content:space-between;align-items:center;margin-top:16px;display:flex}.progress-actual{color:var(--text-primary);font-size:11px;font-weight:500}.progress-diff{font-size:10px;font-weight:600}.progress-diff.ahead{color:var(--color-success)}.progress-diff.caution{color:var(--color-warning)}.progress-diff.behind{color:var(--color-error)}.job-info-row{gap:8px;margin-bottom:8px;display:flex}.job-info-item{background:var(--bg-secondary);border:1px solid var(--border-tertiary);border-radius:4px;flex-direction:column;flex:1;padding:8px;display:flex}.job-info-label{color:var(--text-muted);margin-bottom:4px;font-size:9px}.job-info-value{color:var(--text-primary);font-size:12px;font-weight:600}.job-info-value.robots{flex-wrap:wrap;gap:4px;display:flex}.robot-tag{color:var(--color-info);background:#007aff1f;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:500}.overview-list-item.delayed{border-left:3px solid #f44;background:#b41e1ee6!important}.overview-list-item.delayed .item-status-dot{background:#fff;box-shadow:0 0 0 2px #ffffff4d}.overview-list-item.delayed .item-id,.overview-list-item.delayed .item-car,.overview-list-item.delayed .item-robot{color:#fff;font-weight:600}.item-progress.with-marker.delayed .progress-bar{background:#ffffff4d}.item-progress.with-marker.delayed .progress-fill{background:#fff}.item-progress.with-marker.delayed .progress-text{color:#fff;font-weight:600}.item-progress.with-marker.delayed .marker-arrow{color:#fff}.overview-list-item.delayed .time-elapsed{color:#fff;font-weight:700}.overview-list-item.delayed .time-separator,.overview-list-item.delayed .time-expected{color:#ffffffb3}.detail-panel.view-only .detail-actions{display:none}.detail-panel.view-only .row-input{pointer-events:none;background:var(--bg-tertiary);color:var(--text-secondary);border-color:#0000}.detail-panel.view-only .toggle-btn{pointer-events:none;opacity:.6}.detail-panel.view-only .action-btn{display:none}.detail-panel.view-only .row-select{pointer-events:none;background:var(--bg-tertiary);color:var(--text-secondary);opacity:.7;appearance:none;border-color:#0000}.dropzone-queue-summary{gap:8px;margin-bottom:10px;display:flex}.queue-summary-item{background:var(--bg-secondary);border-left:3px solid var(--color-primary);border-radius:6px;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:12px;display:flex}.queue-summary-item.exit{border-left-color:var(--color-success)}.queue-summary-label{color:var(--text-secondary);margin-bottom:4px;font-size:11px}.queue-summary-count{color:var(--text-primary);font-size:24px;font-weight:700}.queue-summary-item.entry .queue-summary-count{color:var(--color-primary)}.queue-summary-item.exit .queue-summary-count{color:var(--color-success)}.queue-unit{color:var(--text-muted);margin-left:2px;font-size:12px;font-weight:500}.dropzone-bay-list{background:var(--bg-secondary);border-radius:6px;padding:10px}.bay-list-header{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.bay-list-title{color:var(--text-primary);font-size:12px;font-weight:600}.bay-list-counts{gap:6px;display:flex}.bay-list-counts .count-item{background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-size:9px}.bay-list-counts .count-item.entry{color:var(--color-primary);background:#007aff1f}.bay-list-counts .count-item.exit{color:var(--color-success);background:#34c7591f}.bay-list-counts .count-item.delayed{color:var(--color-error);background:#ff3b301f}.bay-list-counts .count-item.empty{background:var(--bg-tertiary);color:var(--text-muted)}.bay-cards{flex-direction:column;gap:8px;display:flex}.bay-card{background:var(--bg-primary);border:1px solid var(--border-tertiary);border-left:3px solid var(--border-primary);border-radius:6px;padding:10px}.bay-card.entry{border-left-color:var(--color-primary)}.bay-card.exit{border-left-color:var(--color-success)}.bay-card.empty{border-left-color:var(--text-muted);opacity:.7}.bay-card.delayed{border-left-color:var(--color-error);background:#ff3b300d}.bay-card-header{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:8px;margin-bottom:8px;padding-bottom:6px;display:flex}.bay-id{color:var(--text-primary);font-size:13px;font-weight:700}.bay-type-badge{border-radius:10px;padding:2px 8px;font-size:10px}.bay-type-badge.entry{color:var(--color-primary);background:#007aff1f}.bay-type-badge.exit{color:var(--color-success);background:#34c7591f}.bay-type-badge.empty{background:var(--bg-tertiary);color:var(--text-muted)}.bay-delayed-badge{color:var(--color-error);margin-left:auto;font-size:10px;font-weight:600}.bay-card-main{flex-direction:column;gap:6px;margin-bottom:10px;display:flex}.bay-info-row{justify-content:space-between;align-items:center;display:flex}.bay-plate{color:var(--text-primary);font-size:14px;font-weight:700}.bay-vehicle-type{background:var(--bg-tertiary);color:var(--text-secondary);border-radius:10px;padding:2px 8px;font-size:10px}.bay-vehicle-type.small{color:var(--color-success);background:#34c7591f}.bay-vehicle-type.midsize{color:var(--color-primary);background:#007aff1f}.bay-vehicle-type.large{color:var(--color-warning);background:#ff95001f}.bay-vehicle-type.suv{color:#5856d6;background:#5856d61f}.bay-label{color:var(--text-muted);font-size:10px}.bay-value{color:var(--text-primary);font-size:11px}.bay-value.delayed{color:var(--color-error);font-weight:600}.bay-card-status{background:var(--bg-secondary);border-radius:4px;gap:8px;margin-bottom:10px;padding:8px;display:flex}.bay-status-item{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.bay-status-item .status-label{color:var(--text-muted);font-size:9px}.bay-status-item .status-value{font-size:11px;font-weight:600}.bay-status-item .status-value.normal{color:var(--color-success)}.bay-status-item .status-value.warning{color:var(--color-warning)}.bay-card-snapshot{margin-bottom:10px}.snapshot-placeholder{background:var(--bg-tertiary);border:1px dashed var(--border-secondary);height:80px;color:var(--text-muted);border-radius:4px;flex-direction:column;justify-content:center;align-items:center;display:flex}.snapshot-icon{margin-bottom:4px;font-size:24px}.snapshot-label{font-size:10px}.bay-card-actions{gap:8px;display:flex}.bay-action-btn{cursor:pointer;border:none;border-radius:4px;flex:1;padding:8px;font-size:11px;font-weight:600;transition:all .15s}.bay-action-btn.cctv{background:var(--color-primary);color:#fff}.bay-action-btn.cctv:hover{background:var(--color-primary-dark)}.bay-empty-content{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:20px;display:flex}.empty-icon{margin-bottom:4px;font-size:24px}.empty-text{font-size:11px}.bay-simple-list{background:var(--bg-secondary);border-radius:6px;margin-bottom:10px;padding:10px}.bay-simple-list .bay-list-header{border-bottom:1px solid var(--border-tertiary);margin-bottom:8px;padding-bottom:6px}.bay-list-items{flex-direction:column;gap:4px;display:flex}.bay-list-item{background:var(--bg-primary);border-left:3px solid var(--border-primary);cursor:pointer;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.bay-list-item:hover{background:var(--bg-tertiary)}.bay-list-item.selected{background:var(--bg-accent);border-left-color:var(--color-primary)}.bay-list-item.entry{border-left-color:var(--color-primary)}.bay-list-item.exit{border-left-color:var(--color-success)}.bay-list-item.empty{border-left-color:var(--text-muted);opacity:.7}.bay-list-item.delayed{border-left-color:var(--color-error);background:#ff3b3014}.bay-list-item.delayed.selected{background:#ff3b3026}.bay-item-id{color:var(--text-primary);min-width:45px;font-size:12px;font-weight:600}.bay-item-type{text-align:center;border-radius:3px;min-width:36px;padding:2px 6px;font-size:10px}.bay-item-type.entry{color:var(--color-primary);background:#007aff1f}.bay-item-type.exit{color:var(--color-success);background:#34c7591f}.bay-item-type.empty{background:var(--bg-tertiary);color:var(--text-muted)}.bay-item-plate{color:var(--text-secondary);flex:1;font-size:11px}.bay-item-delayed{font-size:12px}.bay-detail-section{background:var(--bg-secondary);border:1px solid var(--border-tertiary);border-radius:6px;padding:12px}.bay-detail-section.empty{text-align:center}.bay-detail-header{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;display:flex}.bay-detail-id{color:var(--text-primary);font-size:16px;font-weight:700}.bay-detail-main{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.bay-detail-row{justify-content:space-between;align-items:center;display:flex}.bay-detail-label{color:var(--text-muted);font-size:11px}.bay-detail-value{color:var(--text-primary);font-size:12px;font-weight:500}.bay-detail-value.delayed{color:var(--color-error);font-weight:600}.bay-detail-status{background:var(--bg-primary);border-radius:4px;gap:8px;margin-bottom:12px;padding:10px;display:flex}.bay-detail-snapshot{margin-bottom:12px}.bay-detail-actions{gap:8px;display:flex}.entry-exit-list{background:var(--bg-secondary);border-radius:6px;padding:10px}.entry-exit-list-header{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;margin-bottom:10px;padding-bottom:8px;display:flex}.entry-exit-list-header .list-title{color:var(--text-primary);font-size:13px;font-weight:600}.status-legend{gap:8px;display:flex}.legend-item{border-radius:3px;padding:2px 8px;font-size:10px}.legend-item.progress{color:var(--color-primary);background:#007aff1f}.legend-item.waiting{color:var(--color-warning);background:#ff95001f}.entry-exit-category{border-radius:6px;margin-bottom:12px;overflow:hidden}.entry-exit-category:last-child{margin-bottom:0}.entry-exit-category .category-header{background:var(--bg-tertiary);align-items:center;gap:6px;padding:8px 10px;display:flex}.entry-exit-category.entry .category-header{border-left:3px solid var(--color-primary)}.entry-exit-category.exit .category-header{border-left:3px solid var(--color-success)}.entry-exit-category .category-icon{border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;font-weight:700;display:flex}.entry-exit-category.entry .category-icon{color:var(--color-primary);background:#007aff26}.entry-exit-category.exit .category-icon{color:var(--color-success);background:#34c75926}.entry-exit-category .category-title{color:var(--text-primary);flex:1;font-size:12px;font-weight:600}.entry-exit-category .category-counts{gap:4px;display:flex}.entry-exit-category .category-counts .count{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.entry-exit-category .category-counts .count.progress{color:var(--color-primary);background:#007aff26}.entry-exit-category .category-counts .count.waiting{color:var(--color-warning);background:#ff950026}.category-items{flex-direction:column;gap:4px;padding-left:8px;display:flex}.entry-exit-item{background:var(--bg-primary);border-left:3px solid var(--border-primary);border-radius:4px;align-items:center;gap:8px;padding:8px 10px;display:flex}.entry-exit-item.progress{border-left-color:var(--color-primary)}.entry-exit-item.waiting{border-left-color:var(--color-warning);background:#ff95000d}.item-status-indicator{border-radius:50%;flex-shrink:0;width:8px;height:8px}.entry-exit-item.progress .item-status-indicator{background:var(--color-primary)}.entry-exit-item.waiting .item-status-indicator{background:var(--color-warning)}.entry-exit-item .item-car{color:var(--text-primary);min-width:65px;font-size:12px;font-weight:600}.entry-exit-item .item-robot{color:var(--color-primary);min-width:32px;font-size:11px}.entry-exit-item .item-progress-bar{background:var(--bg-tertiary);border-radius:3px;flex:1;height:6px;overflow:hidden}.entry-exit-item .item-progress-bar .progress-fill{background:var(--color-primary);border-radius:3px;height:100%}.entry-exit-item .item-progress-text{color:var(--text-secondary);text-align:right;min-width:28px;font-size:10px}.entry-exit-item .item-waiting-label{color:var(--color-warning);background:#ffcc0026;border-radius:3px;padding:2px 6px;font-size:10px}.entry-exit-item .item-time,.entry-exit-item .item-waiting-time{color:var(--text-muted);margin-left:auto;font-size:10px}.entry-exit-item.has-stacking{flex-direction:column;align-items:stretch;gap:8px}.entry-exit-item.has-stacking .item-main{align-items:center;gap:8px;display:flex}.item-target-badge{color:#fff;background:var(--color-primary);border-radius:3px;padding:2px 6px;font-size:9px;font-weight:600}.stacking-tree{border-left:2px solid var(--border-secondary);margin-left:12px;padding-left:12px}.stacking-header{align-items:center;gap:4px;margin-bottom:6px;display:flex}.stacking-icon{color:var(--text-muted);font-family:monospace;font-size:12px}.stacking-label{color:var(--text-secondary);font-size:10px;font-weight:500}.stacking-items{flex-direction:column;gap:4px;display:flex}.stacking-item{background:var(--bg-tertiary);border-radius:4px;align-items:center;gap:6px;padding:6px 8px;font-size:11px;display:flex}.stacking-item.done{opacity:.7}.stacking-connector{color:var(--text-muted);font-family:monospace;font-size:10px}.stacking-car{color:var(--text-primary);min-width:60px;font-weight:500}.stacking-robot{color:var(--color-primary);min-width:28px}.stacking-progress-bar{background:var(--bg-secondary);border-radius:2px;flex:1;height:4px;overflow:hidden}.stacking-progress-bar .progress-fill{background:var(--color-success);border-radius:2px;height:100%}.stacking-progress-text{color:var(--text-muted);text-align:right;min-width:24px;font-size:9px}.stacking-done{color:var(--color-success);margin-left:auto;font-weight:600}.entry-exit-item{cursor:pointer;transition:all .15s}.entry-exit-item:hover{background:var(--bg-secondary)}.entry-exit-item.selected{background:var(--bg-secondary);box-shadow:inset 0 0 0 1px var(--color-primary)}.entry-exit-item.waiting.selected{box-shadow:inset 0 0 0 1px var(--color-warning)}.job-detail-section{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:8px;margin-top:16px;padding:16px}.job-detail-header{border-bottom:1px solid var(--border-primary);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:12px;display:flex}.job-type-badge{border-radius:4px;padding:4px 10px;font-size:11px;font-weight:600}.job-type-badge.entry{color:var(--color-primary);background:#007aff26}.job-type-badge.exit{color:#5856d6;background:#5856d626}.job-status-badge{border-radius:3px;padding:3px 8px;font-size:10px;font-weight:500}.job-status-badge.progress{color:var(--color-success);background:#34c75926}.job-status-badge.waiting{color:var(--color-warning);background:#ff950026}.job-detail-content{flex-direction:column;gap:10px;display:flex}.job-detail-row{justify-content:space-between;align-items:center;display:flex}.job-detail-label{color:var(--text-secondary);font-size:12px}.job-detail-value{color:var(--text-primary);font-size:12px;font-weight:500}.job-detail-progress{flex:1;align-items:center;gap:8px;max-width:150px;display:flex}.job-progress-bar{background:var(--bg-tertiary);border-radius:4px;flex:1;height:8px;overflow:hidden}.job-progress-bar .progress-fill{background:var(--color-primary);border-radius:4px;height:100%}.job-progress-text{color:var(--color-primary);text-align:right;min-width:32px;font-size:11px;font-weight:600}.infra-tabs{border-bottom:1px solid var(--border-secondary);flex-wrap:wrap;gap:4px;margin-bottom:12px;padding:8px 0;display:flex}.infra-tab{border:1px solid var(--border-secondary);background:var(--bg-secondary);cursor:pointer;border-radius:4px;padding:6px 10px;font-size:10px;transition:all .15s}.infra-tab:hover{background:var(--bg-tertiary)}.infra-tab.active{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary)}.infra-device-list{margin-bottom:16px}.device-list-header{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 0;display:flex}.device-list-title{color:var(--text-primary);font-size:12px;font-weight:600}.device-list-count{color:var(--text-tertiary);font-size:10px}.device-list-items{flex-direction:column;gap:4px;display:flex}.device-list-item{background:var(--bg-secondary);cursor:pointer;border-left:3px solid #0000;border-radius:4px;align-items:center;gap:8px;padding:8px 10px;transition:all .15s;display:flex}.device-list-item:hover{background:var(--bg-tertiary)}.device-list-item.selected{background:var(--bg-hover);border-left-color:var(--text-primary)}.device-list-item .device-status-dot{font-size:8px}.device-list-item.normal .device-status-dot{color:var(--color-success)}.device-list-item.error .device-status-dot{color:var(--color-danger)}.device-list-item .device-id{color:var(--text-primary);font-size:11px;font-weight:600}.device-list-item .device-status-text{border-radius:3px;padding:2px 6px;font-size:10px}.device-list-item.normal .device-status-text{color:var(--color-success);background:#34c75926}.device-list-item.error .device-status-text{color:var(--color-danger);background:#ff3b3026}.device-list-item .device-location{color:var(--text-tertiary);margin-left:auto;font-size:10px}.device-list-item .device-state{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-size:10px}.infra-device-detail{background:var(--bg-secondary);border-radius:6px;padding:12px}.device-detail-header{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:10px;display:flex}.device-detail-id{color:var(--text-primary);font-size:14px;font-weight:700}.device-status-badge{border-radius:12px;padding:4px 10px;font-size:11px;font-weight:600}.device-status-badge.normal{color:var(--color-success);background:#34c75926}.device-status-badge.error{color:var(--color-danger);background:#ff3b3026}.device-detail-content{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.device-detail-content .detail-row{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;padding:6px 0;display:flex}.device-detail-content .detail-row:last-child{border-bottom:none}.device-detail-content .detail-label{color:var(--text-tertiary);font-size:11px}.device-detail-content .detail-value{color:var(--text-primary);font-size:12px;font-weight:500}.device-detail-actions{border-top:1px solid var(--border-tertiary);gap:8px;padding-top:12px;display:flex}.device-action-btn{border:1px solid var(--border-secondary);background:var(--bg-primary);cursor:pointer;border-radius:4px;flex:1;padding:8px 12px;font-size:11px;transition:all .15s}.device-action-btn:hover{background:var(--bg-tertiary)}.device-action-btn.restart{background:var(--color-warning);color:#fff;border-color:var(--color-warning)}.device-action-btn.restart:hover{opacity:.9}.lift-list{margin-bottom:16px}.lift-list-header{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;margin-bottom:8px;padding:8px 0;display:flex}.lift-list-title{color:var(--text-primary);font-size:12px;font-weight:600}.lift-list-count{color:var(--text-tertiary);font-size:10px}.lift-list-items{flex-direction:column;gap:6px;display:flex}.lift-list-item{background:var(--bg-secondary);cursor:pointer;border-left:3px solid #0000;border-radius:6px;padding:10px 12px;transition:all .15s}.lift-list-item:hover{background:var(--bg-tertiary)}.lift-list-item.selected{background:var(--bg-hover);border-left-color:var(--text-primary)}.lift-item-main{align-items:center;gap:8px;margin-bottom:6px;display:flex}.lift-list-item .lift-status-dot{font-size:8px}.lift-list-item.operating .lift-status-dot{color:var(--color-primary)}.lift-list-item.idle .lift-status-dot{color:var(--color-success)}.lift-list-item.off .lift-status-dot{color:var(--text-muted)}.lift-list-item.error .lift-status-dot{color:var(--color-danger)}.lift-list-item .lift-id{color:var(--text-primary);font-size:11px;font-weight:600}.lift-list-item .lift-name{color:var(--text-secondary);flex:1;font-size:11px}.lift-status-badge{border-radius:10px;padding:2px 8px;font-size:9px;font-weight:600}.lift-status-badge.operating{color:var(--color-primary);background:#2196f326}.lift-status-badge.idle{color:var(--color-success);background:#34c75926}.lift-status-badge.off{background:var(--bg-tertiary);color:var(--text-muted)}.lift-status-badge.error{color:var(--color-danger);background:#ff3b3026}.lift-item-sub{align-items:center;gap:8px;display:flex}.lift-list-item .lift-floor{color:var(--text-secondary);background:var(--bg-tertiary);text-align:center;border-radius:3px;min-width:28px;padding:2px 6px;font-size:10px;font-weight:600}.lift-util-bar{background:var(--bg-gauge);border-radius:2px;flex:1;height:4px;overflow:hidden}.lift-util-fill{background:var(--color-primary);border-radius:2px;height:100%}.lift-list-item .lift-util-value{color:var(--color-primary);text-align:right;min-width:28px;font-size:10px;font-weight:600}.lift-detail{background:var(--bg-secondary);border-radius:6px;padding:12px}.lift-detail-header{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:10px;display:flex}.lift-detail-id{color:var(--text-primary);font-size:14px;font-weight:700}.lift-detail-name{color:var(--text-secondary);flex:1;font-size:12px}.lift-detail-util{background:var(--bg-primary);border-radius:4px;align-items:center;gap:10px;margin-bottom:12px;padding:10px;display:flex}.lift-detail-util .util-label{color:var(--text-tertiary);white-space:nowrap;font-size:11px}.util-bar-large{background:var(--bg-gauge);border-radius:4px;flex:1;height:8px;overflow:hidden}.util-fill-large{background:var(--color-primary);border-radius:4px;height:100%}.util-value-large{color:var(--color-primary);text-align:right;min-width:40px;font-size:14px;font-weight:700}.lift-current-job{margin-bottom:12px}.job-section-title{color:var(--text-secondary);align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.job-section-title .pending-count{color:#fff;background:var(--color-primary);border-radius:8px;padding:1px 6px;font-size:10px;font-weight:600}.job-card{background:var(--bg-primary);border-left:3px solid #0000;border-radius:6px;padding:10px 12px}.job-card.current{border-left-color:var(--color-primary)}.job-card.pending{border-left-color:var(--color-warning);align-items:flex-start;gap:10px;display:flex}.job-card.empty{text-align:center;color:var(--text-muted);padding:16px}.no-job{color:var(--text-muted);font-size:11px}.job-card-row{align-items:center;gap:6px;margin-bottom:6px;display:flex}.job-card-row:last-child,.job-card-row.small{margin-bottom:0}.job-card .job-label{color:var(--text-tertiary);font-size:10px}.job-card .job-value{color:var(--text-primary);font-size:12px;font-weight:600}.job-card .job-value.robot{color:var(--color-primary)}.job-card .job-value.vehicle{color:var(--color-success)}.job-card .job-arrow{color:var(--text-muted);margin:0 4px;font-size:12px}.job-card .job-info{color:var(--text-secondary);background:var(--bg-tertiary);border-radius:3px;padding:2px 6px;font-size:10px}.lift-pending-jobs{margin-bottom:0}.pending-job-list{flex-direction:column;gap:6px;display:flex}.pending-order{background:var(--color-warning);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:20px;height:20px;font-size:10px;font-weight:600;display:flex}.job-card-content{flex:1}.job-card-content .job-card-row{margin-bottom:4px}.job-card-content .job-card-row:last-child{margin-bottom:0}.detail-view-link{border-top:1px solid var(--border-tertiary);margin-top:12px;padding-top:12px}.detail-link-btn.full{width:100%;color:var(--color-primary);border:1px solid var(--color-primary);cursor:pointer;background:#2196f31a;border-radius:6px;padding:10px 16px;font-size:12px;font-weight:600;transition:all .15s}.detail-link-btn.full:hover{background:#2196f333}.job-history-section{padding:8px 0}.job-history-list{flex-direction:column;gap:8px;display:flex}.job-history-main{align-items:center;gap:12px;margin-bottom:4px;display:flex}.job-history-time{color:var(--text-secondary);min-width:40px;font-size:11px;font-weight:600}.job-history-route{color:var(--text-primary);font-size:12px;font-weight:600}.job-history-sub{align-items:center;gap:8px;padding-left:52px;display:flex}.job-history-robot{color:var(--color-primary);background:#2196f31a;border-radius:3px;padding:2px 8px;font-size:10px}.job-history-vehicle{color:var(--color-success);background:#34c7591a;border-radius:3px;padding:2px 8px;font-size:10px}.parking-detail-wrapper{flex-direction:column;height:100%;min-height:0;display:flex}.parking-spot-list{border-bottom:1px solid var(--border-secondary);flex:1;min-height:0;padding-bottom:12px;overflow-y:auto}.parking-list-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.parking-list-header .list-title{color:var(--text-primary);font-size:11px;font-weight:600}.parking-floor-group{margin-bottom:4px}.parking-floor-header{background:var(--bg-secondary);border:1px solid var(--border-tertiary);cursor:pointer;border-radius:4px;align-items:center;gap:6px;padding:8px;transition:background .2s;display:flex}.parking-floor-header:hover{background:var(--bg-hover)}.parking-floor-header.expanded{border-bottom-right-radius:0;border-bottom-left-radius:0}.parking-floor-header .floor-toggle{color:var(--text-tertiary);width:10px;font-size:8px}.parking-floor-header .floor-name{color:var(--text-primary);min-width:30px;font-size:12px;font-weight:600}.parking-floor-header .floor-stats{gap:8px;margin-left:auto;font-size:10px;display:flex}.parking-floor-header .floor-stats .stat{align-items:center;gap:2px;display:flex}.parking-floor-header .floor-stats .stat.total{color:var(--text-primary);min-width:20px;font-weight:600}.parking-floor-header .floor-stats .stat.occupied{color:var(--color-success)}.parking-floor-header .floor-stats .stat.reserved{color:var(--color-warning)}.parking-floor-header .floor-stats .stat.empty{color:var(--color-primary)}.parking-sections{border:1px solid var(--border-tertiary);background:var(--bg-primary);border-top:none;border-bottom-right-radius:4px;border-bottom-left-radius:4px;padding:8px}.parking-section{margin-bottom:8px}.parking-section:last-child{margin-bottom:0}.section-header{background:var(--bg-tertiary);cursor:pointer;border-radius:3px;align-items:center;gap:6px;padding:6px 8px;transition:background .2s;display:flex}.section-header .section-toggle{color:var(--text-tertiary);width:10px;font-size:8px}.section-header .section-name{color:var(--text-secondary);font-size:10px;font-weight:600}.section-header .section-stats{gap:6px;margin-left:auto;font-size:9px;display:flex}.section-header .section-stats .stat{align-items:center;gap:2px;display:flex}.section-header .section-stats .stat.total{color:var(--text-primary);min-width:16px;font-weight:600}.section-header .section-stats .stat.occupied{color:var(--color-success)}.section-header .section-stats .stat.reserved{color:var(--color-warning)}.section-header .section-stats .stat.empty{color:var(--color-primary)}.parking-spots{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.parking-spot-item{border:1px solid var(--border-secondary);background:var(--bg-secondary);cursor:pointer;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:52px;height:36px;padding:2px 4px;transition:all .2s;display:flex}.parking-spot-item:hover{border-color:var(--color-primary)}.parking-spot-item.selected{border-color:var(--color-primary);background:#007bff1a;box-shadow:0 0 0 2px #007bff33}.parking-spot-item .spot-id{color:var(--text-primary);font-size:9px;font-weight:600}.parking-spot-item .spot-vehicle{color:var(--color-success);white-space:nowrap;text-overflow:ellipsis;max-width:100%;font-size:8px;overflow:hidden}.parking-spot-item .spot-reserved{color:var(--color-warning);font-size:8px}.parking-spot-item.occupied{border-color:var(--color-success);background:#28a7451a}.parking-spot-item.reserved{border-color:var(--color-warning);background:#ffc1071a}.parking-spot-item.empty{background:var(--bg-secondary);border-color:var(--border-tertiary)}.parking-legend{justify-content:center;gap:12px;margin-top:8px;font-size:10px;display:flex}.parking-legend .legend-item{align-items:center;gap:4px;display:flex}.parking-legend .legend-item.occupied{color:var(--color-success)}.parking-legend .legend-item.reserved{color:var(--color-warning)}.parking-legend .legend-item.empty{color:var(--color-primary)}.parking-spot-detail{border-top:1px solid var(--border-secondary);background:var(--bg-primary);flex-direction:column;flex-shrink:0;height:600px;display:flex}.spot-detail-header{border-bottom:1px solid var(--border-tertiary);align-items:center;padding:8px 0;display:flex}.spot-detail-header .spot-id-title{color:var(--text-primary);font-size:12px;font-weight:600}.spot-detail-tabs{border-bottom:1px solid var(--border-tertiary);gap:4px;padding:8px 0;display:flex}.spot-detail-tabs .spot-tab{color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border-tertiary);cursor:pointer;border-radius:3px;padding:4px 12px;font-size:10px;font-weight:500;transition:all .2s}.spot-detail-tabs .spot-tab:hover{background:var(--bg-hover)}.spot-detail-tabs .spot-tab.active{color:var(--color-primary);border-color:var(--color-primary);background:#007bff1a}.spot-detail-content{flex:1;padding-top:8px;overflow-y:auto}.parking-history-list{flex-direction:column;gap:6px;display:flex}.history-item{background:var(--bg-secondary);border-radius:4px;align-items:center;gap:8px;padding:6px 8px;font-size:10px;display:flex}.history-item .history-vehicle{color:var(--text-primary);min-width:60px;font-weight:600}.history-item .history-times{color:var(--text-secondary);flex:1;align-items:center;gap:4px;display:flex}.history-item .history-arrow{color:var(--text-tertiary)}.history-item .history-duration{color:var(--color-primary);font-weight:500}.parking-spot-detail .status-badge{border-radius:3px;padding:2px 8px;font-size:10px;font-weight:500;display:inline-block}.parking-spot-detail .status-badge.occupied{color:var(--color-success);background:#28a74526}.parking-spot-detail .status-badge.reserved{color:var(--color-warning);background:#ffc10726}.parking-spot-detail .status-badge.empty{color:var(--color-primary);background:#007bff26}.map-layer{background:var(--bg-section-header);flex:1;position:relative;overflow:hidden}.unity-map{justify-content:center;align-items:center;width:100%;height:100%;display:flex;overflow:hidden}.map-placeholder{border:2px dashed var(--text-secondary);text-align:center;color:var(--text-secondary);background:var(--bg-hover);padding:40px 80px}.parking-lot-map{justify-content:center;align-items:center;width:100%;height:100%;padding:20px;display:flex}.parking-floor{background:linear-gradient(145deg,#4a4a4a 0%,#3a3a3a 100%);border-radius:8px;width:800px;height:500px;position:relative;overflow:visible;box-shadow:inset 0 2px 10px #0000004d}.road{background:#2a2a2a;position:absolute}.road-main{width:100%;height:60px;top:50%;left:0;transform:translateY(-50%)}.road-marking{position:absolute}.road-marking.center-line{background:repeating-linear-gradient(90deg,gold 0 20px,#0000 20px 40px);height:3px;top:50%;left:0;right:0}.road-arrow{color:#ffffff4d;font-size:24px;position:absolute;top:50%;right:100px;transform:translateY(-50%)}.map-element{cursor:pointer;transition:transform .2s,box-shadow .2s;position:absolute}.map-element:hover{z-index:100;transform:scale(1.1)}.map-element:hover .element-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.map-element.selected{z-index:99}.map-element.selected:after{content:"";border:3px solid var(--color-primary);border-radius:8px;animation:1.5s infinite selection-pulse;position:absolute;inset:-8px}@keyframes selection-pulse{0%,to{opacity:1}50%{opacity:.5}}.element-label{color:#fff;white-space:nowrap;background:#000000b3;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600;position:absolute;bottom:-20px;left:50%;transform:translate(-50%)}.element-tooltip{background:var(--bg-primary);color:var(--text-primary);white-space:nowrap;opacity:0;visibility:hidden;z-index:200;pointer-events:none;border-radius:8px;padding:10px 14px;font-size:12px;line-height:1.5;transition:all .2s;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%)translateY(10px);box-shadow:0 4px 20px #0000004d}.element-tooltip:after{content:"";border:6px solid #0000;border-top-color:var(--bg-primary);position:absolute;top:100%;left:50%;transform:translate(-50%)}.gate{width:60px;height:50px}.gate-entry{top:50%;left:20px;transform:translateY(-50%)}.gate-exit{top:50%;right:20px;transform:translateY(-50%)}.gate-post{background:linear-gradient(#666 0%,#444 100%);border-radius:2px;width:12px;height:30px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.gate-bar{transform-origin:0;background:linear-gradient(90deg,#f44 0%,#c00 100%);border-radius:3px;width:40px;height:6px;transition:transform .3s;position:absolute;top:5px;left:50%}.gate-bar.open{background:linear-gradient(90deg,#4f4 0%,#0c0 100%);transform:rotate(-80deg)}.gate:hover .gate-bar{box-shadow:0 0 10px #ffffff80}.kiosk{top:calc(50% - 80px);left:80px}.kiosk-body{background:linear-gradient(#555 0%,#333 100%);border-radius:4px 4px 2px 2px;justify-content:center;align-items:flex-start;width:30px;height:45px;padding-top:4px;display:flex}.kiosk-screen{background:linear-gradient(#4a90d9 0%,#357abd 100%);border-radius:2px;width:22px;height:28px;box-shadow:0 0 8px #4a90d980}.parking-zone{padding:10px;position:absolute}.zone-a{top:30px;left:120px}.zone-b{bottom:30px;left:120px}.zone-label{color:gold;text-shadow:0 1px 2px #00000080;font-size:11px;font-weight:700;position:absolute;top:-5px;left:10px}.parking-row{gap:8px;display:flex}.parking-spot{cursor:pointer;background:#ffffff0d;border:2px solid #fff3;border-radius:4px;flex-direction:column;justify-content:center;align-items:center;width:70px;height:90px;transition:all .2s;display:flex;position:relative}.parking-spot:hover{background:#ffffff1a;border-color:#fff6}.parking-spot:hover .element-tooltip{opacity:1;visibility:visible;transform:translateY(0)}.parking-spot .element-tooltip{bottom:calc(100% + 5px)}.parking-spot.empty{border-style:dashed}.parking-spot.occupied{background:#64c8641a;border-color:#64c86466}.parking-spot.reserved{background:#ffc8641a;border-color:#ffc86480}.spot-number{color:#ffffff80;font-size:10px;position:absolute;bottom:5px}.vehicle{filter:drop-shadow(0 2px 3px #0000004d);font-size:32px}.reserved-label{color:orange;font-size:9px;font-weight:600;position:absolute;top:5px}.charging-zone{position:absolute;top:30px;right:100px}.charger{position:relative}.charger-body{background:linear-gradient(#2a5a2a 0%,#1a3a1a 100%);border-radius:6px;justify-content:center;align-items:center;width:40px;height:50px;font-size:20px;display:flex;position:relative}.charger-indicator{background:#666;border-radius:50%;width:8px;height:8px;position:absolute;top:5px;right:5px}.charger-indicator.charging{background:#0f0;animation:1s infinite charging-blink;box-shadow:0 0 8px #0f0}@keyframes charging-blink{0%,to{opacity:1}50%{opacity:.5}}.charger-dock{background:#00640033;border:2px dashed #00c80066;border-radius:4px;justify-content:center;align-items:center;width:50px;height:60px;display:flex;position:absolute;top:60px;left:0}.robot-charging{font-size:24px;position:relative}.charging-animation{background:#ff0;border-radius:50%;width:12px;height:12px;animation:.8s infinite charge-pulse;position:absolute;top:-5px;right:-5px}@keyframes charge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.5)}}.robot{z-index:50}.robot-working{top:200px;left:350px}.robot-body{background:linear-gradient(135deg,#4a90d9 0%,#2a5a9a 100%);border-radius:8px;justify-content:center;align-items:center;width:50px;height:50px;font-size:28px;display:flex;position:relative;box-shadow:0 4px 15px #0000004d}.robot-direction{color:#4a90d9;font-size:14px;animation:.8s infinite direction-pulse;position:absolute;top:50%;right:-15px;transform:translateY(-50%)}@keyframes direction-pulse{0%,to{opacity:1;transform:translateY(-50%)translate(0)}50%{opacity:.5;transform:translateY(-50%)translate(5px)}}.robot-path{gap:8px;display:flex;position:absolute;top:50%;left:55px;transform:translateY(-50%)}.path-dot{background:#4a90d9;border-radius:50%;width:6px;height:6px;animation:1s infinite path-move}.path-dot:nth-child(2){animation-delay:.2s}.path-dot:nth-child(3){animation-delay:.4s}@keyframes path-move{0%,to{opacity:.3}50%{opacity:1}}.robot-carrying{position:absolute;top:-35px;left:50%;transform:translate(-50%)}.carried-vehicle{font-size:24px;animation:.5s infinite carry-bounce}@keyframes carry-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.ap{bottom:80px;right:100px}.ap-body{background:linear-gradient(135deg,#666 0%,#444 100%);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;font-size:18px;display:flex;position:relative}.ap-signal{position:absolute;top:-20px;left:50%;transform:translate(-50%)}.signal-wave{border:2px solid #64c8ff80;border-radius:50%;animation:2s infinite wave-expand;position:absolute;left:50%;transform:translate(-50%)}.signal-wave:first-child{width:20px;height:20px;animation-delay:0s}.signal-wave:nth-child(2){width:30px;height:30px;animation-delay:.5s}.signal-wave:nth-child(3){width:40px;height:40px;animation-delay:1s}@keyframes wave-expand{0%{opacity:1;transform:translate(-50%)scale(.5)}to{opacity:0;transform:translate(-50%)scale(1.5)}}.camera{top:10px;left:200px}.camera.camera-2{inset:auto 200px 10px auto}.camera-body{background:linear-gradient(135deg,#555 0%,#333 100%);border-radius:4px;justify-content:center;align-items:center;width:35px;height:25px;font-size:16px;display:flex;position:relative}.camera-fov{border-top:40px solid #ff646426;border-left:30px solid #0000;border-right:30px solid #0000;width:0;height:0;position:absolute;bottom:-40px;left:50%;transform:translate(-50%)}.camera:hover .camera-fov{border-top-color:#ff64644d}.map-legend{color:#fff;background:#000000b3;border-radius:6px;padding:10px 14px;font-size:11px;position:absolute;bottom:10px;left:10px}.legend-title{color:gold;margin-bottom:8px;font-weight:700}.legend-item{align-items:center;gap:8px;margin-bottom:4px;display:flex}.legend-icon{border-radius:3px;width:14px;height:14px}.legend-icon.occupied{background:#64c86466;border:2px solid #64c864cc}.legend-icon.empty{background:#ffffff0d;border:2px dashed #ffffff4d}.legend-icon.reserved{background:#ffc8644d;border:2px solid #ffc86499}.legend-icon.robot{background:linear-gradient(135deg,#4a90d9 0%,#2a5a9a 100%);border-radius:4px}.parking-info{background:#000000b3;border-radius:6px;gap:16px;padding:10px 14px;display:flex;position:absolute;top:10px;right:10px}.info-item{flex-direction:column;align-items:center;gap:2px;display:flex}.info-label{color:#fff9;font-size:10px}.info-value{color:#fff;font-size:18px;font-weight:700}.info-value.highlight{color:#4ade80}.info-value.warning{color:#fbbf24}.alert-panel{border:1px solid var(--text-primary);background:var(--bg-primary);cursor:pointer;min-width:150px;position:absolute;top:16px;left:16px}.alert-header{justify-content:space-between;align-items:center;padding:8px 12px;font-weight:700;display:flex}.alert-badge{color:var(--bg-primary);background:red;border-radius:10px;padding:2px 6px;font-size:10px}.alert-list{border-top:1px solid var(--border-primary);max-height:200px;overflow-y:auto}.alert-item{border-bottom:1px solid var(--border-tertiary);padding:8px 12px;font-size:11px}.alert-item.info{border-left:3px solid #00f}.alert-item.warning{border-left:3px solid orange}.alert-item.error{background:var(--bg-error-light);border-left:3px solid red}.robot-control{flex-direction:column;gap:12px;display:flex;position:absolute;bottom:20px;left:20px}.control-btn{border-radius:var(--radius-md);background:var(--bg-card);width:64px;height:64px;box-shadow:var(--shadow-md);cursor:pointer;text-align:center;color:var(--text-primary);transition:var(--transition-fast);border:none;flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:11px;font-weight:600;line-height:1.3;display:flex}.control-btn:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}.control-btn:active{box-shadow:var(--shadow-sm);transform:translateY(0)}.control-btn.job-create{background:var(--color-primary);color:var(--text-inverse)}.control-btn.job-create:hover{background:var(--color-primary-dark)}.control-btn.job-create.active{background:var(--color-primary-darker);box-shadow:var(--shadow-sm), inset 0 2px 4px #00000026}.control-btn.manual{background:var(--color-primary);color:var(--text-inverse)}.control-btn.manual:hover{background:var(--color-primary-dark)}.control-btn.manual.active{background:var(--bg-card);color:var(--color-primary);box-shadow:var(--shadow-sm), inset 0 0 0 2px var(--color-primary)}.control-btn.mic{background:var(--bg-tertiary);color:var(--text-secondary)}.control-btn.mic:hover{background:var(--bg-hover);color:var(--text-primary)}.control-btn.mic.active{background:var(--color-success);color:var(--text-inverse)}.emergency-btn{border-radius:var(--radius-sm);border:1px solid var(--color-danger);background:var(--bg-error-light,#ef444426);color:var(--color-danger);cursor:pointer;transition:var(--transition-fast);justify-content:center;align-items:center;padding:8px;display:flex}.emergency-btn:hover{background:#ef444440}.emergency-btn.active{background:var(--color-danger);color:var(--text-inverse);border-color:var(--color-danger);animation:1.15s step-end infinite emergency-btn-pulse}@keyframes emergency-btn-pulse{0%,to{box-shadow:var(--shadow-sm)}50%{box-shadow:0 0 0 4px #ef44444d}}.system-control{background:var(--bg-card);border-radius:var(--radius-md);box-shadow:var(--shadow-md);border:none;align-items:center;gap:12px;padding:10px 16px;display:flex;position:absolute;top:20px;right:20px}.system-label{color:var(--text-secondary);font-size:12px;font-weight:500}.system-toggle-btn{background:var(--color-success);color:var(--text-inverse);border-radius:var(--radius-sm);cursor:pointer;transition:var(--transition-fast);border:none;padding:6px 14px;font-size:12px;font-weight:600}.system-toggle-btn:hover{background:var(--color-success-dark)}.system-toggle-btn.off{background:var(--bg-tertiary);color:var(--text-secondary)}.system-toggle-btn.off:hover{background:var(--bg-hover)}.feed-close:hover,.live-dot{color:red}.control-btn.cctv{background:var(--bg-card);color:var(--text-primary);border:2px solid var(--color-info)}.control-btn.cctv:hover{background:var(--color-info);color:#fff}.control-btn.cctv.active{background:var(--bg-card);color:var(--color-info);border:2px solid var(--color-info);box-shadow:var(--shadow-sm), inset 0 0 0 2px var(--color-info)}.floating-cctv-window{background:var(--bg-primary);z-index:1001;border-radius:8px;flex-direction:column;min-width:480px;max-width:700px;max-height:80vh;display:flex;position:fixed;overflow:hidden;box-shadow:0 4px 20px #00000040}.cctv-window-header{background:var(--color-primary);cursor:move;-webkit-user-select:none;user-select:none;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.cctv-window-title-group{align-items:center;gap:10px;display:flex}.cctv-window-title{color:var(--text-inverse);font-size:13px;font-weight:600}.cctv-group-select{color:var(--text-inverse);cursor:pointer;background:#ffffff26;border:1px solid #ffffff4d;border-radius:4px;outline:none;padding:4px 8px;font-size:12px}.cctv-group-select:hover{background:#ffffff40}.cctv-group-select:focus{border-color:#ffffff80}.cctv-window-controls{align-items:center;gap:12px;display:flex}.cctv-layout-toggle{background:var(--bg-tertiary);border-radius:var(--radius-sm);gap:4px;padding:2px;display:flex}.layout-btn{width:28px;height:24px;color:var(--text-inverse);cursor:pointer;transition:var(--transition-fast);background:#ffffff26;border:none;border-radius:4px;justify-content:center;align-items:center;font-size:14px;display:flex}.layout-btn:hover{background:#ffffff40}.layout-btn.active{background:#ffffff59}.cctv-window-close{color:var(--text-inverse);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.cctv-window-close:hover{background:#fff3}.cctv-grid{background:var(--bg-tertiary);gap:8px;padding:12px;display:grid}.cctv-grid.\32 x2{grid-template-rows:repeat(2,1fr);grid-template-columns:repeat(2,1fr)}.cctv-grid.\34 x1{grid-template-rows:1fr;grid-template-columns:repeat(4,1fr)}.cctv-feed-item{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-secondary);transition:var(--transition-fast);overflow:hidden}.cctv-feed-item:hover{border-color:var(--color-primary);box-shadow:var(--shadow-md)}.cctv-feed-placeholder{aspect-ratio:16/9;color:var(--text-muted);background:linear-gradient(145deg,#2a2a2a 0%,#1a1a1a 100%);flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.cctv-grid.\34 x1 .cctv-feed-placeholder{aspect-ratio:4/3}.cctv-feed-icon{opacity:.5;font-size:28px}.cctv-grid.\34 x1 .cctv-feed-icon{font-size:20px}.cctv-feed-id{color:var(--text-secondary);font-size:12px;font-weight:600}.cctv-grid.\34 x1 .cctv-feed-id{font-size:10px}.cctv-feed-label{background:var(--bg-section-header);justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.cctv-grid.\34 x1 .cctv-feed-label{flex-direction:column;align-items:flex-start;gap:2px;padding:6px 8px}.cctv-feed-name{color:var(--text-primary);font-size:12px;font-weight:500}.cctv-grid.\34 x1 .cctv-feed-name{font-size:11px}.cctv-feed-location{color:var(--text-secondary);font-size:11px}.cctv-grid.\34 x1 .cctv-feed-location{font-size:10px}.cctv-pagination{background:var(--bg-section-header);border-top:1px solid var(--border-secondary);justify-content:center;align-items:center;gap:16px;padding:10px 16px;display:flex}.cctv-page-btn{border:1px solid var(--border-secondary);background:var(--bg-card);width:28px;height:28px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);transition:var(--transition-fast);justify-content:center;align-items:center;font-size:12px;display:flex}.cctv-page-btn:hover:not(:disabled){background:var(--color-primary);border-color:var(--color-primary);color:var(--text-inverse)}.cctv-page-btn:disabled{opacity:.4;cursor:not-allowed}.cctv-page-info{color:var(--text-secondary);text-align:center;min-width:50px;font-size:12px}.floating-robot-controller{background:var(--bg-primary);z-index:1001;border-radius:8px;flex-direction:column;width:320px;max-height:80vh;display:flex;position:fixed;box-shadow:0 4px 20px #00000040}.controller-header{background:var(--color-primary);cursor:move;-webkit-user-select:none;user-select:none;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.controller-title{color:var(--text-inverse);font-size:13px;font-weight:600}.controller-close{color:var(--text-inverse);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.controller-close:hover{background:#fff3}.controller-body{flex:1;padding:12px;overflow-y:auto}.control-mode-banner{background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%);border-radius:6px;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;animation:2s infinite pulse-warning;display:flex}@keyframes pulse-warning{0%,to{opacity:1}50%{opacity:.85}}.control-mode-banner .banner-icon{font-size:16px}.control-mode-banner .banner-text{color:var(--bg-primary);font-size:12px;font-weight:700}.control-mode-banner .banner-desc{color:#fffc;margin-left:auto;font-size:10px}.control-mode-section{padding-bottom:16px!important}.control-mode-btn{cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:13px;font-weight:700;transition:all .2s;display:flex}.control-mode-btn .btn-icon{font-size:12px}.control-mode-btn.start{color:var(--bg-primary);background:linear-gradient(135deg,#4caf50 0%,#388e3c 100%)}.control-mode-btn.start:hover{background:linear-gradient(135deg,#66bb6a 0%,#43a047 100%);transform:translateY(-1px);box-shadow:0 4px 12px #4caf504d}.control-mode-btn.stop{color:var(--bg-primary);background:linear-gradient(135deg,#f44336 0%,#d32f2f 100%)}.control-mode-btn.stop:hover{background:linear-gradient(135deg,#ef5350 0%,#e53935 100%);transform:translateY(-1px);box-shadow:0 4px 12px #f443364d}.control-mode-btn.start.slave{background:linear-gradient(135deg,#ff9800 0%,#f57c00 100%)}.control-mode-btn.start.slave:hover{background:linear-gradient(135deg,#ffa726 0%,#ff9800 100%);box-shadow:0 4px 12px #ff98004d}.control-mode-btn.stop.slave{background:linear-gradient(135deg,#ff5722 0%,#e64a19 100%)}.control-mode-btn.stop.slave:hover{background:linear-gradient(135deg,#ff7043 0%,#ff5722 100%);box-shadow:0 4px 12px #ff57224d}.control-mode-section.slave{border-top:1px dashed var(--border-secondary);margin-top:4px;padding-top:12px}.control-mode-hint{color:var(--text-tertiary);text-align:center;margin-top:8px;font-size:10px}.slave-item.control-active{pointer-events:none;background:linear-gradient(135deg,#fff3e0 0%,#ffe0b2 100%);border-color:#ff9800}.slave-control-badge{color:#fff;background:#ff9800;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:600}.robot-status-indicator.manual{background:var(--bg-warning-light);color:#f57c00}.controller-section.disabled{opacity:.4;pointer-events:none}.controller-section.disabled .controller-label{color:var(--text-tertiary)}.controller-select:disabled{background:var(--bg-tertiary);cursor:not-allowed;opacity:.7}.controller-section{border-bottom:1px solid var(--border-tertiary);margin-bottom:16px;padding-bottom:12px}.controller-section:last-child{border-bottom:none;margin-bottom:0;padding-bottom:0}.controller-label{color:var(--text-secondary);text-transform:uppercase;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:600;display:flex}.label-badge{width:18px;height:18px;color:var(--bg-primary);border-radius:4px;justify-content:center;align-items:center;font-size:10px;font-weight:700;display:flex}.label-badge.master{background:var(--color-primary)}.label-badge.slave{background:#ff9800}.controller-select{border:1px solid var(--border-secondary);background:var(--bg-primary);border-radius:4px;width:100%;padding:8px 10px;font-size:12px}.robot-status-indicator{border-radius:4px;align-items:center;gap:6px;margin-top:8px;padding:6px 10px;font-size:11px;display:flex}.robot-status-indicator.connected{background:var(--bg-success-light);color:#2e7d32}.robot-status-indicator.synced{background:var(--bg-warning-light);color:var(--color-warning)}.robot-status-indicator .status-dot{background:currentColor;border-radius:50%;width:8px;height:8px;animation:1.5s infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.slave-list{flex-direction:column;gap:4px;display:flex}.slave-item{background:var(--bg-tertiary);cursor:pointer;border:2px solid #0000;border-radius:4px;justify-content:space-between;align-items:center;padding:8px 10px;display:flex}.slave-item:hover{background:var(--bg-hover)}.slave-item.selected{background:var(--bg-warning-light);border-color:#ff9800}.slave-id{font-size:12px;font-weight:600}.slave-info{color:var(--text-muted);font-size:10px}.slave-placeholder{text-align:center;color:var(--text-tertiary);background:var(--bg-card);border-radius:4px;padding:12px;font-size:11px}.direction-pad{flex-direction:column;align-items:center;gap:4px;padding:8px 0;display:flex}.dir-row{gap:4px;display:flex}.dir-btn{border:1px solid var(--border-secondary);background:var(--bg-tertiary);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;width:44px;height:44px;font-size:16px;transition:all .1s;display:flex}.dir-btn:hover{background:var(--bg-gauge)}.dir-btn:active{background:var(--color-primary);color:var(--bg-primary);border-color:var(--color-primary)}.dir-btn.center{background:var(--text-primary);color:var(--bg-primary);border-color:var(--text-primary);font-size:12px}.control-hint{text-align:center;color:var(--text-tertiary);margin-top:8px;font-size:10px}.speed-slider{appearance:none;background:var(--bg-gauge);border-radius:3px;outline:none;width:100%;height:6px}.speed-slider::-webkit-slider-thumb{appearance:none;background:var(--color-primary);cursor:pointer;border-radius:50%;width:18px;height:18px}.speed-value{color:var(--color-primary);margin-left:auto;font-size:12px;font-weight:700}.speed-labels{color:var(--text-tertiary);justify-content:space-between;margin-top:4px;font-size:9px;display:flex}.controller-buttons{gap:8px;display:flex}.lift-btn{cursor:pointer;background:var(--color-success);color:var(--bg-primary);border:none;border-radius:6px;flex:1;padding:12px;font-size:12px;font-weight:600}.lift-btn:hover{background:#43a047}.lift-btn.up{background:#ff9800}.lift-btn.up:hover{background:#f57c00}.lift-btn:disabled{background:var(--bg-gauge);color:var(--text-tertiary);cursor:not-allowed}.estop-btn{cursor:pointer;background:var(--color-danger);color:var(--bg-primary);border:none;border-radius:6px;flex:1;padding:12px;font-size:12px;font-weight:600}.estop-btn:hover{background:#d32f2f}.lift-status{text-align:center;border-radius:4px;margin-top:8px;padding:6px;font-size:11px;font-weight:600}.lift-status.up{background:var(--bg-warning-light);color:var(--color-warning)}.lift-status.down{background:var(--bg-success-light);color:var(--color-success)}.input-devices{gap:8px;display:flex}.device-item{background:var(--bg-tertiary);color:var(--text-tertiary);border-radius:6px;flex-direction:column;flex:1;align-items:center;gap:4px;padding:8px;font-size:9px;display:flex}.device-item.active{background:var(--bg-primary-light);color:var(--color-primary-dark)}.device-icon{font-size:16px}.controller-resize-handle{background:var(--bg-section-header);border-top:1px solid var(--border-secondary);cursor:ns-resize;flex-shrink:0;justify-content:center;align-items:center;height:8px;display:flex}.controller-resize-handle:after{content:"";background:var(--border-primary);border-radius:2px;width:40px;height:4px}.controller-resize-handle:hover{background:var(--bg-hover)}.controller-resize-handle:hover:after{background:var(--text-tertiary)}.floating-lift-controller{background:var(--bg-primary);z-index:1001;border-radius:8px;flex-direction:column;width:320px;max-height:80vh;display:flex;position:fixed;box-shadow:0 4px 20px #00000040}.floating-lift-controller .controller-body{overflow-y:auto}.lift-select-grid{grid-template-columns:1fr 1fr;gap:8px;display:grid}.lift-select-item{background:var(--bg-tertiary);cursor:pointer;border:2px solid #0000;border-radius:6px;flex-direction:column;gap:4px;padding:10px;display:flex}.lift-select-item:hover{background:var(--bg-hover)}.lift-select-item.selected{border-color:var(--color-primary);background:var(--bg-primary-light)}.lift-select-item.status-error{opacity:.7}.lift-select-name{font-size:12px;font-weight:600}.lift-select-floor{color:var(--color-primary);font-size:14px;font-weight:700}.lift-select-status{border-radius:4px;width:fit-content;padding:2px 6px;font-size:10px}.lift-select-status.operating{background:var(--bg-success-light);color:var(--color-success)}.lift-select-status.idle{background:var(--bg-primary-light);color:var(--color-primary)}.lift-select-status.off{background:var(--bg-gauge);color:var(--text-tertiary)}.lift-select-status.error{background:var(--bg-danger-light);color:var(--color-danger)}.lift-current-status{background:var(--bg-tertiary);border-radius:6px;padding:10px}.lift-current-status .status-row{border-bottom:1px solid var(--border-tertiary);justify-content:space-between;padding:6px 0;display:flex}.lift-current-status .status-row:last-child{border-bottom:none}.lift-current-status .status-key{color:var(--text-secondary);font-size:11px}.lift-current-status .status-value{font-size:12px;font-weight:600}.lift-current-status .status-value.door-open{color:var(--color-warning)}.lift-current-status .status-value.door-closed,.lift-current-status .status-value.status-operating{color:var(--color-success)}.lift-current-status .status-value.status-idle{color:var(--color-primary)}.lift-current-status .status-value.status-off{color:var(--text-tertiary)}.lift-current-status .status-value.status-error{color:var(--color-danger)}.door-control-buttons{gap:8px;display:flex}.door-btn{border:1px solid var(--border-secondary);cursor:pointer;background:var(--bg-primary);border-radius:6px;flex:1;padding:12px;font-size:12px;font-weight:600}.door-btn:hover:not(:disabled){background:var(--bg-hover)}.door-btn.open{border-color:var(--color-success);color:var(--color-success)}.door-btn.open:hover:not(:disabled){background:var(--bg-success-light)}.door-btn.close{border-color:var(--color-primary);color:var(--color-primary)}.door-btn.close:hover:not(:disabled){background:var(--bg-primary-light)}.door-btn:disabled{opacity:.5;cursor:not-allowed}.floor-control{flex-direction:column;gap:10px;display:flex}.floor-buttons{flex-wrap:wrap;gap:6px;display:flex}.floor-btn{border:1px solid var(--border-secondary);cursor:pointer;background:var(--bg-primary);border-radius:6px;min-width:50px;padding:10px 14px;font-size:12px;font-weight:600}.floor-btn:hover:not(:disabled){background:var(--bg-hover)}.floor-btn.selected{background:var(--color-primary);color:var(--bg-primary);border-color:var(--color-primary)}.floor-btn.current{border-color:var(--color-success);color:var(--color-success)}.floor-btn.current:after{content:" ●";font-size:8px}.floor-btn:disabled{opacity:.5;cursor:not-allowed}.move-btn{cursor:pointer;background:var(--color-primary);color:var(--bg-primary);border:none;border-radius:6px;padding:12px;font-size:13px;font-weight:600}.move-btn:hover:not(:disabled){background:var(--color-primary-dark)}.move-btn:disabled{background:var(--bg-gauge);color:var(--text-tertiary);cursor:not-allowed}.emergency-control-buttons{gap:8px;display:flex}.emergency-btn{cursor:pointer;border:none;border-radius:6px;flex:1;padding:12px;font-size:12px;font-weight:600}.emergency-btn.stop{background:var(--color-danger);color:var(--bg-primary)}.emergency-btn.stop:hover{background:#d32f2f}.emergency-btn.reset{background:var(--color-warning);color:var(--bg-primary)}.emergency-btn.reset:hover:not(:disabled){background:#f57c00}.emergency-btn:disabled{background:var(--bg-gauge);color:var(--text-tertiary);cursor:not-allowed}.lift-placeholder{text-align:center;color:var(--text-tertiary);background:var(--bg-card);border-radius:6px;padding:40px 20px;font-size:13px}.control-btn.lift{background:var(--bg-tertiary)}.control-btn.lift.active{background:var(--color-primary);color:var(--bg-primary)}.floating-job-creator{background:var(--bg-primary);z-index:1001;border-radius:8px;flex-direction:column;width:320px;max-height:80vh;display:flex;position:fixed;box-shadow:0 4px 20px #00000040}.job-creator-header{background:var(--color-primary);cursor:move;-webkit-user-select:none;user-select:none;border-radius:8px 8px 0 0;justify-content:space-between;align-items:center;padding:10px 12px;display:flex}.job-creator-title{color:var(--text-inverse);font-size:13px;font-weight:600}.job-creator-close{color:var(--text-inverse);cursor:pointer;background:0 0;border:none;border-radius:3px;padding:2px 6px;font-size:14px}.job-creator-close:hover{background:#fff3}.job-type-tabs{border-bottom:1px solid var(--border-light);background:var(--bg-tertiary);display:flex}.job-type-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 4px;font-size:11px;transition:all .15s}.job-type-tab:hover{background:var(--bg-tertiary);color:var(--text-primary)}.job-type-tab.active{background:var(--bg-primary);color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.job-creator-body{flex:1;max-height:400px;padding:12px;overflow-y:auto}.job-section{margin-bottom:12px}.job-section:last-child{margin-bottom:0}.job-label{color:var(--text-secondary);margin-bottom:6px;font-size:11px;font-weight:500}.job-select{border:1px solid var(--border-secondary);background:var(--bg-primary);border-radius:4px;width:100%;padding:8px 10px;font-size:12px}.job-select:focus{border-color:var(--color-primary);outline:none}.job-search{border:1px solid var(--border-secondary);border-radius:4px;width:100%;margin-bottom:8px;padding:8px 10px;font-size:12px}.job-search:focus{border-color:var(--color-primary);outline:none}.job-node-list{border:1px solid var(--border-light);border-radius:4px;max-height:180px;overflow-y:auto}.job-node-item{border-bottom:1px solid var(--border-lighter);cursor:pointer;align-items:center;gap:8px;padding:8px 10px;font-size:12px;transition:background .1s;display:flex}.job-node-item:last-child{border-bottom:none}.job-node-item:hover{background:var(--bg-tertiary)}.job-node-item.selected{background:var(--color-primary-light)}.job-node-item.disabled{opacity:.5;cursor:not-allowed}.job-node-icon{width:20px;height:20px;color:var(--text-inverse);border-radius:3px;justify-content:center;align-items:center;font-size:10px;font-weight:600;display:flex}.job-node-icon.parking{background:var(--color-success)}.job-node-icon.dropzone{background:var(--color-primary-dark)}.job-node-icon.pickup{background:var(--color-warning)}.job-node-icon.charger{background:var(--color-warning-light);color:var(--text-primary)}.job-node-icon.waiting{background:var(--color-purple)}.job-node-name{color:var(--text-primary);flex:1}.job-node-check{color:var(--color-primary);font-weight:600}.job-node-status{background:var(--bg-hover);color:var(--text-secondary);border-radius:3px;padding:2px 6px;font-size:10px}.job-node-status.empty,.job-node-status.available{background:var(--color-success-light);color:var(--color-success-dark)}.job-node-status.in-use{background:var(--color-danger-light);color:var(--color-danger-darker)}.job-vehicle-plate{color:var(--text-primary);font-weight:500}.job-vehicle-info{color:var(--text-muted);flex:1;font-size:10px}.job-creator-actions{border-top:1px solid var(--border-light);background:var(--bg-secondary);border-radius:0 0 8px 8px;gap:8px;padding:12px;display:flex}.job-cancel-btn{border:1px solid var(--border-secondary);background:var(--bg-primary);cursor:pointer;border-radius:4px;flex:1;padding:10px;font-size:12px}.job-cancel-btn:hover{background:var(--bg-tertiary)}.job-submit-btn{background:var(--color-primary);color:var(--text-inverse);cursor:pointer;border:none;border-radius:4px;flex:1;padding:10px;font-size:12px;font-weight:500}.job-submit-btn:hover:not(:disabled){background:var(--color-primary-dark)}.job-submit-btn:disabled{background:var(--color-disabled-dark);cursor:not-allowed}.robot-job-history{flex-direction:column;gap:12px;display:flex}.job-history-summary{gap:8px;display:flex}.job-summary-item{background:var(--bg-tertiary);text-align:center;border-radius:4px;flex:1;padding:8px}.job-summary-label{color:var(--text-muted);margin-bottom:2px;font-size:10px;display:block}.job-summary-value{color:var(--text-primary);font-size:14px;font-weight:600;display:block}.job-summary-value.success{color:var(--color-success)}.job-history-list{flex-direction:column;gap:8px;max-height:320px;display:flex;overflow-y:auto}.job-history-item{background:var(--bg-secondary);border-left:3px solid var(--color-success);border-radius:6px;padding:10px}.job-history-item.failed{border-left-color:var(--color-danger);background:var(--color-danger-lighter)}.job-history-header{align-items:center;gap:8px;margin-bottom:8px;display:flex}.job-type-badge{color:var(--text-inverse);border-radius:3px;padding:2px 8px;font-size:10px;font-weight:500}.job-type-badge.entry{background:var(--color-primary-dark)}.job-type-badge.exit{background:var(--color-warning)}.job-type-badge.charge{background:var(--color-warning-light);color:var(--text-primary)}.job-type-badge.relocate{background:var(--color-purple)}.job-history-id{color:var(--text-secondary);flex:1;font-size:11px}.job-history-time{color:var(--text-muted);font-size:11px}.job-history-detail{flex-direction:column;gap:4px;display:flex}.job-history-row{font-size:11px;display:flex}.job-row-label{width:40px;color:var(--text-muted);flex-shrink:0}.job-row-value{color:var(--text-primary)}.job-row-value.failed{color:var(--color-danger);font-weight:500}.job-history-more{border:1px dashed var(--border-primary);width:100%;color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:4px;padding:8px;font-size:11px}.job-history-more:hover{background:var(--bg-tertiary);border-color:var(--text-tertiary)}.statistics-panel{background:var(--bg-primary);z-index:1001;flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden;box-shadow:0 4px 20px #00000040}.stats-header{background:var(--text-primary);color:var(--bg-primary);align-items:center;gap:16px;padding:12px 16px;display:flex}.stats-title{font-size:14px;font-weight:600}.stats-period-tabs{gap:4px;margin-left:16px;display:flex}.period-tab{border:1px solid var(--border-dashed);color:var(--border-primary);cursor:pointer;background:0 0;border-radius:4px;padding:6px 12px;font-size:11px}.period-tab:hover{background:var(--bg-active)}.period-tab.active{background:var(--color-primary);border-color:var(--color-primary);color:var(--bg-primary)}.stats-date-range{align-items:center;gap:8px;margin-left:auto;display:flex}.stats-date-range input{border:1px solid var(--border-dashed);background:var(--bg-active);color:var(--bg-primary);border-radius:4px;padding:4px 8px;font-size:11px}.stats-date-range span{color:var(--text-muted)}.stats-close{color:var(--bg-primary);cursor:pointer;background:0 0;border:none;margin-left:16px;padding:4px 8px;font-size:16px}.stats-close:hover{color:var(--color-danger)}.stats-body{background:var(--bg-tertiary);flex:1;padding:16px;overflow-y:auto}.stats-kpi-row{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}.kpi-card{background:var(--bg-primary);text-align:center;border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.kpi-label{color:var(--text-secondary);margin-bottom:8px;font-size:11px}.kpi-value{color:var(--text-primary);margin-bottom:4px;font-size:24px;font-weight:700}.kpi-change{font-size:11px;font-weight:500}.kpi-change.positive{color:var(--color-success)}.kpi-change.negative{color:var(--color-danger)}.stats-charts-row{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px;display:grid}.stats-chart-card{background:var(--bg-primary);border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.chart-title{color:var(--text-primary);margin-bottom:12px;font-size:12px;font-weight:600}.chart-content{min-height:120px}.bar-chart{align-items:flex-end;gap:2px;height:100px;padding-bottom:20px;display:flex;position:relative}.bar-item{flex-direction:column;flex:1;align-items:center;display:flex;position:relative}.bar-item .bar{background:var(--color-primary);border-radius:2px 2px 0 0;width:100%;max-width:12px;transition:height .3s}.bar-item .bar-label{color:var(--text-muted);font-size:9px;position:absolute;bottom:-18px}.pie-chart{align-items:center;gap:24px;display:flex}.pie-visual{width:80px;height:80px}.pie-visual svg{width:100%;height:100%}.pie-legend{flex-direction:column;gap:8px;display:flex}.legend-item{align-items:center;gap:8px;font-size:12px;display:flex}.legend-dot{border-radius:2px;width:12px;height:12px}.legend-dot.entry{background:var(--color-primary)}.legend-dot.exit{background:var(--color-success)}.line-chart{position:relative}.line-chart svg{width:100%;height:80px}.line-labels{color:var(--text-muted);justify-content:space-between;margin-top:8px;font-size:10px;display:flex}.robot-chart{flex-direction:column;gap:8px;display:flex}.robot-bar-row{align-items:center;gap:8px;display:flex}.robot-bar-label{width:36px;color:var(--text-primary);font-size:11px;font-weight:500}.robot-bar-track{background:var(--bg-hover);border-radius:4px;flex:1;height:16px;overflow:hidden}.robot-bar-fill{background:linear-gradient(90deg, var(--color-primary), #64b5f6);border-radius:4px;height:100%;transition:width .3s}.robot-bar-value{width:50px;color:var(--text-secondary);text-align:right;font-size:11px}.stats-error-section{background:var(--bg-primary);border-radius:8px;padding:16px;box-shadow:0 1px 3px #0000001a}.error-section-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.error-section-title{color:var(--text-primary);font-size:12px;font-weight:600}.error-more-btn{color:var(--color-primary);cursor:pointer;background:0 0;border:none;font-size:11px}.error-more-btn:hover{text-decoration:underline}.error-table{font-size:11px}.error-table-header{border-bottom:1px solid var(--border-secondary);color:var(--text-secondary);padding:8px 0;font-weight:600;display:flex}.error-table-row{border-bottom:1px solid var(--border-tertiary);padding:8px 0;display:flex}.error-table-row:hover{background:var(--bg-secondary)}.col-err-time{width:120px;color:var(--text-muted);font-family:monospace}.col-err-robot{width:60px;font-weight:500}.col-err-type{width:80px;color:var(--color-warning)}.col-err-msg{color:var(--text-secondary);flex:1}.panel-stats-button{border-top:1px solid var(--border-secondary);background:var(--bg-primary);margin-top:auto;padding:12px 8px;position:sticky;bottom:0}.stats-btn{width:100%;color:var(--bg-primary);cursor:pointer;background:linear-gradient(135deg,#673ab7 0%,#512da8 100%);border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.stats-btn:hover{background:linear-gradient(135deg,#7c4dff 0%,#673ab7 100%);transform:translateY(-1px);box-shadow:0 4px 12px #673ab74d}.stats-btn.active{background:var(--bg-primary);color:#673ab7;border:2px solid #673ab7}.stats-btn-icon{font-size:16px}.stats-btn-text{font-size:12px}.control-panel.mode-narrow .panel-stats-button{padding:8px 4px}.control-panel.mode-narrow .stats-btn{padding:10px}.control-panel.mode-narrow .stats-btn-icon{font-size:18px}.camera-feed-panel{background:var(--text-primary);border-top:1px solid var(--text-secondary);height:200px;padding:8px;position:absolute;bottom:0;left:0;right:0}.camera-feed{border:1px solid var(--text-secondary);background:#222;flex-direction:column;width:300px;height:100%;display:flex}.feed-header{color:var(--bg-primary);background:#444;align-items:center;gap:8px;padding:4px 8px;font-size:11px;display:flex}.feed-close{color:var(--bg-primary);cursor:pointer;background:0 0;border:none;margin-left:auto;font-size:14px}.feed-close:hover,.live-dot{color:red}.feed-content{color:var(--text-secondary);border:1px dashed #555;flex:1;justify-content:center;align-items:center;margin:8px;display:flex}.feed-controls{gap:8px;padding:4px 8px;display:flex}.feed-controls button{cursor:pointer;padding:2px 8px;font-size:10px}.charger-manage-list{flex-direction:column;display:flex}.charger-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.charger-manage-item:hover{background:var(--bg-tertiary)}.charger-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.charger-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.charger-manage-name{flex:1;font-size:11px;font-weight:600}.charger-manage-sub{align-items:center;gap:6px;display:flex}.charger-manage-robot{color:var(--color-primary);background:var(--bg-primary-light);border-radius:2px;padding:1px 4px;font-size:9px}.charger-manage-power{color:var(--text-secondary);font-size:9px}.charger-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.charger-status-icon.charging{background:var(--bg-warning-light);border:1px solid var(--color-orange)}.charger-status-icon.charging:after{content:"⚡";color:var(--color-orange);font-size:9px}.charger-status-icon.idle{background:var(--bg-success-light);border:1px solid var(--color-success)}.charger-status-icon.idle:after{content:"○";color:var(--color-success);font-size:8px}.charger-status-icon.error{background:var(--bg-error-light);border:1px solid var(--color-error)}.charger-status-icon.error:after{content:"✕";color:var(--color-error);font-size:9px;font-weight:700}.charger-status-icon.offline{background:var(--bg-secondary);border:1px solid var(--text-tertiary)}.charger-status-icon.offline:after{content:"○";color:var(--text-tertiary);font-size:8px}.mini-gauge-fill.charging{background:var(--color-orange)}.control-panel.mode-narrow .charger-manage-item{padding:8px 4px}.control-panel.mode-narrow .charger-manage-name{font-size:9px}.control-panel.mode-narrow .charger-manage-main{margin-bottom:0}.gate-manage-list{flex-direction:column;display:flex}.gate-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.gate-manage-item:hover{background:var(--bg-tertiary)}.gate-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.gate-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.gate-manage-name{flex:1;font-size:11px;font-weight:600}.gate-manage-sub{align-items:center;gap:6px;display:flex}.gate-manage-location{color:var(--text-secondary);flex:1;font-size:9px}.gate-manage-status{border-radius:2px;padding:1px 6px;font-size:9px}.gate-manage-status.open{background:var(--bg-success-light);color:var(--color-success)}.gate-manage-status.closed{background:var(--bg-warning-light);color:var(--color-orange)}.gate-manage-status.error{background:var(--bg-error-light);color:var(--color-error)}.gate-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.gate-status-icon.open{background:var(--bg-success-light);border:1px solid var(--color-success)}.gate-status-icon.open:after{content:"▲";color:var(--color-success);font-size:8px}.gate-status-icon.closed{background:var(--bg-warning-light);border:1px solid var(--color-orange)}.gate-status-icon.closed:after{content:"▬";color:var(--color-orange);font-size:8px}.gate-status-icon.error{background:var(--bg-error-light);border:1px solid var(--color-error)}.gate-status-icon.error:after{content:"✕";color:var(--color-error);font-size:9px;font-weight:700}.control-panel.mode-narrow .gate-manage-item{padding:8px 4px}.control-panel.mode-narrow .gate-manage-name{font-size:9px}.control-panel.mode-narrow .gate-manage-main{margin-bottom:0}.row-select{border:1px solid var(--border-secondary);background:var(--bg-primary);border-radius:2px;flex:1;min-width:0;padding:3px 6px;font-size:10px}.camera-manage-list{flex-direction:column;display:flex}.camera-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.camera-manage-item:hover{background:var(--bg-tertiary)}.camera-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.camera-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.camera-manage-name{flex:1;font-size:11px;font-weight:600}.camera-manage-sub{align-items:center;gap:6px;display:flex}.camera-manage-group{color:var(--color-purple);background:var(--bg-purple-light);border-radius:2px;padding:1px 4px;font-size:9px}.camera-manage-location{color:var(--text-secondary);font-size:9px}.camera-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.camera-status-icon.on{background:var(--bg-success-light);border:1px solid var(--color-success)}.camera-status-icon.on:after{content:"●";color:var(--color-success);font-size:6px}.camera-status-icon.off{background:var(--bg-secondary);border:1px solid var(--text-tertiary)}.camera-status-icon.off:after{content:"○";color:var(--text-tertiary);font-size:8px}.camera-status-icon.recording{background:var(--bg-error-light);border:1px solid var(--color-error)}.camera-status-icon.recording:after{content:"●";color:var(--color-error);font-size:6px}.control-panel.mode-narrow .camera-manage-item{padding:8px 4px}.control-panel.mode-narrow .camera-manage-name{font-size:9px}.control-panel.mode-narrow .camera-manage-main{margin-bottom:0}.camera-preview.large{height:160px;margin-bottom:16px}.video-date-section{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);padding:8px}.video-date-label{color:var(--text-secondary);margin-top:6px;margin-bottom:4px;font-size:9px}.video-date-label:first-child{margin-top:0}.video-date-input,.video-time-input{border:1px solid var(--border-secondary);border-radius:2px;width:100%;padding:4px 6px;font-size:10px}.video-section-header{color:var(--text-primary);background:var(--bg-section-header);justify-content:space-between;align-items:center;padding:8px;font-size:10px;font-weight:600;display:flex}.video-camera-count{color:var(--text-secondary);font-size:9px;font-weight:400}.video-camera-section{border-bottom:1px solid var(--border-secondary)}.video-camera-list{background:var(--bg-primary);padding:4px 8px}.video-camera-item{cursor:pointer;align-items:center;gap:6px;padding:4px 0;font-size:10px;display:flex}.video-camera-item input[type=checkbox]{width:12px;height:12px}.video-camera-name{flex:1}.video-event-section{border-bottom:1px solid var(--border-secondary)}.video-event-list{background:var(--bg-primary);padding:4px 8px}.video-event-item{cursor:pointer;align-items:center;gap:6px;padding:3px 0;font-size:10px;display:flex}.video-event-item input[type=checkbox]{width:12px;height:12px}.video-storage-section{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);padding:8px}.video-storage-bar{background:var(--bg-gauge);border-radius:4px;height:8px;margin:6px 0;overflow:hidden}.video-storage-fill{background:var(--color-primary);border-radius:4px;height:100%}.video-storage-info{color:var(--text-secondary);text-align:right;font-size:9px}.video-events-list{border-bottom:1px solid var(--border-secondary)}.video-event-record{border-bottom:1px solid var(--bg-section-header);cursor:pointer;background:var(--bg-primary);align-items:center;gap:6px;padding:6px 8px;font-size:10px;display:flex}.video-event-record:hover{background:var(--bg-tertiary)}.video-event-time{color:var(--text-secondary);font-family:monospace}.video-event-type{border-radius:2px;padding:1px 6px;font-size:9px}.video-event-type.in{background:var(--bg-primary-light);color:var(--color-primary-dark)}.video-event-type.out{background:var(--bg-warning-light);color:var(--color-warning)}.video-event-car{color:var(--text-primary);text-align:right;flex:1}.video-player-area{background:#1a1a1a;flex-direction:column;width:100%;height:100%;display:flex}.video-grid{background:var(--text-primary);flex:1;gap:2px;padding:2px;display:grid}.video-grid.grid-1{grid-template-columns:1fr}.video-grid.grid-2{grid-template-columns:1fr 1fr}.video-grid.grid-3,.video-grid.grid-4{grid-template-rows:1fr 1fr;grid-template-columns:1fr 1fr}.video-cell{background:#222;flex-direction:column;display:flex;overflow:hidden}.video-cell-header{color:var(--bg-primary);background:#00000080;justify-content:space-between;align-items:center;padding:4px 8px;font-size:11px;display:flex}.video-cell-name{font-weight:500}.video-cell-time{color:#4caf50;font-family:monospace;font-size:10px}.video-cell-content{color:var(--text-secondary);border:1px dashed #444;flex:1;justify-content:center;align-items:center;margin:4px;font-size:12px;display:flex}.video-empty{color:var(--text-secondary);grid-area:1/1/-1/-1;justify-content:center;align-items:center;font-size:14px;display:flex}.video-timeline{background:#2a2a2a;border-top:1px solid #444;padding:12px 16px}.timeline-controls{align-items:center;gap:8px;margin-bottom:12px;display:flex}.timeline-btn{background:var(--text-primary);width:32px;height:32px;color:var(--bg-primary);cursor:pointer;border:1px solid #555;border-radius:4px;font-size:12px}.timeline-btn:hover{background:#444}.timeline-btn.play{background:#4caf50;border-color:#4caf50;width:40px}.timeline-btn.play:hover{background:#43a047}.timeline-current-time{color:var(--bg-primary);margin-left:16px;font-family:monospace;font-size:14px}.timeline-speed{color:var(--text-muted);background:#444;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.timeline-bar{margin-bottom:12px}.timeline-track{background:#444;border-radius:4px;height:24px;position:relative;overflow:visible}.timeline-slider{opacity:0;cursor:pointer;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.timeline-cursor{background:var(--bg-primary);z-index:5;width:2px;height:32px;position:absolute;top:-4px;transform:translate(-50%)}.timeline-cursor:after{content:"";background:var(--bg-primary);border-radius:50%;width:12px;height:12px;position:absolute;top:0;left:50%;transform:translate(-50%)}.timeline-marker{cursor:pointer;z-index:3;border-radius:50%;width:8px;height:8px;position:absolute;top:50%;transform:translate(-50%,-50%)}.timeline-marker.in{background:#2196f3}.timeline-marker.out{background:#ff9800}.timeline-marker.alert{background:#f44336}.timeline-labels{color:var(--text-muted);justify-content:space-between;margin-top:4px;font-size:10px;display:flex}.timeline-actions{gap:8px;display:flex}.timeline-actions .action-btn{border-color:var(--text-time);color:var(--bg-primary);background:#444}.timeline-actions .action-btn:hover{background:#555}.panel-section{border-bottom:1px solid var(--border-primary)}.section-header{cursor:pointer;background:var(--bg-section-header);-webkit-user-select:none;user-select:none;align-items:center;gap:4px;padding:8px 6px;display:flex}.section-header:hover{background:var(--bg-hover)}.fold-icon{color:var(--text-secondary);font-size:8px;transition:transform .2s}.fold-icon.open{transform:rotate(90deg)}.section-icon{font-size:12px}.section-title{flex:1;font-size:10px;font-weight:600}.section-count{color:var(--text-muted);background:var(--border-primary);border-radius:8px;padding:1px 4px;font-size:9px}.item-list{background:var(--bg-primary);flex-direction:column;display:flex}.compact-item{cursor:pointer;border-bottom:1px solid var(--border-lighter);align-items:center;gap:6px;padding:6px 8px;display:flex}.compact-item:hover{background:var(--bg-tertiary)}.compact-item.selected{background:var(--bg-gauge);border-left:2px solid var(--text-primary)}.status-dot{background:var(--text-tertiary);border-radius:50%;width:6px;height:6px}.status-dot.open{background:#4caf50}.status-dot.closed{background:#f44336}.status-dot.on{background:#4caf50}.status-dot.off{background:var(--text-tertiary)}.robot-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.robot-status-icon.idle{background:var(--bg-success-light);border:1px solid #4caf50}.robot-status-icon.idle:after{content:"⏸";color:#4caf50;font-size:8px}.robot-status-icon.working{background:var(--bg-primary-light);border:1px solid #2196f3}.robot-status-icon.working:after{content:"▶";color:#2196f3;font-size:8px}.robot-status-icon.charging{background:var(--bg-warning-light);border:1px solid #ff9800}.robot-status-icon.charging:after{content:"⚡";color:#ff9800;font-size:9px}.robot-status-icon.error{background:var(--bg-error-light);border:1px solid #f44336}.robot-status-icon.error:after{content:"✕";color:#f44336;font-size:9px;font-weight:700}.robot-status-icon.disconnected{background:var(--bg-secondary);border:1px solid var(--text-tertiary)}.robot-status-icon.disconnected:after{content:"○";color:var(--text-tertiary);font-size:8px}.robot-status-icon.initializing{background:#f3e5f5;border:1px solid #9c27b0}.robot-status-icon.initializing:after{content:"↻";color:#9c27b0;font-size:10px}.compact-name{white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:10px;font-weight:500;overflow:hidden}.compact-sub{color:var(--text-muted);white-space:nowrap;font-size:9px}.compact-percent{color:var(--text-secondary);text-align:right;min-width:24px;font-size:9px}.compact-status{color:var(--text-muted);font-size:9px}.control-panel.mode-narrow .section-header{padding:8px 4px}.control-panel.mode-narrow .section-title{font-size:9px}.control-panel.mode-narrow .compact-item{padding:6px 4px}.control-panel.mode-narrow .compact-name{font-size:9px}.control-panel.mode-wide .compact-item{padding:8px 10px}.control-panel.mode-wide .section-header{padding:10px 8px}.mini-gauge{background:var(--border-primary);border-radius:2px;width:24px;height:8px;overflow:hidden}.mini-gauge-fill{background:#4caf50;height:100%;transition:width .3s}.mini-gauge-v{background:var(--border-primary);border-radius:2px;flex-direction:column-reverse;flex-shrink:0;width:6px;height:16px;display:flex;overflow:hidden}.mini-gauge-v-fill{background:#4caf50;width:100%;transition:height .3s}.mini-gauge-v-fill.job{background:#2196f3}.job-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.job-status-icon.waiting{background:var(--bg-tertiary);border:1px solid var(--text-tertiary)}.job-status-icon.waiting:after{content:"◦";color:var(--text-tertiary);font-size:10px}.job-status-icon.pickup{background:var(--bg-warning-light);border:1px solid #ff9800}.job-status-icon.pickup:after{content:"↑";color:#ff9800;font-size:10px;font-weight:700}.job-status-icon.moving{background:var(--bg-primary-light);border:1px solid #2196f3}.job-status-icon.moving:after{content:"→";color:#2196f3;font-size:10px;font-weight:700}.job-timeline{background:var(--bg-card);border-radius:4px;margin:16px 0;padding:12px}.timeline-title{color:var(--text-secondary);text-transform:uppercase;margin-bottom:12px;font-size:10px}.timeline-graph{padding-left:12px;position:relative}.timeline-step{padding-bottom:16px;padding-left:16px;position:relative}.timeline-step:last-child{padding-bottom:0}.step-dot{background:var(--border-primary);border:2px solid var(--bg-primary);width:12px;height:12px;box-shadow:0 0 0 1px var(--border-primary);border-radius:50%;position:absolute;top:2px;left:-6px}.step-line{background:var(--border-primary);width:2px;height:calc(100% - 6px);position:absolute;top:14px;left:-1px}.timeline-step:last-child .step-line{display:none}.timeline-step.done .step-dot{background:#4caf50;box-shadow:0 0 0 1px #4caf50}.timeline-step.done .step-line{background:#4caf50}.timeline-step.active .step-dot{background:#2196f3;box-shadow:0 0 0 1px #2196f3,0 0 0 4px #2196f333}.timeline-step.active .step-line{background:linear-gradient(to bottom, #2196f3, var(--border-primary))}.timeline-step.pending .step-dot{background:var(--bg-primary);border:2px solid var(--border-primary);box-shadow:none}.step-info{flex-direction:column;gap:2px;display:flex}.step-label{color:var(--text-primary);font-size:11px;font-weight:500}.timeline-step.pending .step-label{color:var(--text-tertiary)}.step-time{color:var(--text-muted);font-size:9px}.step-detail{color:#2196f3;font-size:9px;font-weight:500}.detail-box{background:var(--bg-card);border:1px solid var(--border-tertiary);border-radius:4px;margin-top:6px;padding:8px}.detail-row{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:8px;padding:4px 0;display:flex}.detail-row:last-child{border-bottom:none}.row-label{color:var(--text-secondary);flex-shrink:0;width:50px;font-size:10px}.row-value{color:var(--text-primary);align-items:center;gap:4px;font-size:11px;display:flex}.row-input{border:1px solid var(--border-primary);border-radius:2px;flex:1;min-width:0;padding:3px 6px;font-size:10px}.row-input.small{flex:none;width:50px}.row-unit{color:var(--text-muted);font-size:9px}.detail-panel{border-right:1px solid var(--border-primary);background:var(--bg-primary);flex-direction:column;width:240px;min-width:200px;max-width:500px;display:flex;position:relative;box-shadow:2px 0 8px #0000001a}.resize-handle{cursor:col-resize;z-index:10;background:0 0;width:6px;height:100%;position:absolute;top:0;right:-3px}.resize-handle:hover,.resize-handle:active{background:#2196f34d}.resize-handle:after{content:"";background:var(--border-primary);border-radius:1px;width:2px;height:30px;position:absolute;top:50%;right:2px;transform:translateY(-50%)}.resize-handle:hover:after,.resize-handle:active:after{background:#2196f3}.detail-header{border-bottom:1px solid var(--border-primary);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.detail-title{font-size:14px;font-weight:700}.close-btn{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;padding:4px 8px;font-size:16px}.close-btn:hover{color:var(--text-primary)}.detail-content{flex:1;padding:16px;overflow-y:auto}.detail-section{margin-bottom:16px}.detail-label{color:var(--text-muted);text-transform:uppercase;margin-bottom:4px;font-size:10px}.detail-value{align-items:center;gap:8px;font-size:13px;display:flex}.detail-value.success{color:green}.detail-value.error{color:red}.battery-bar{border:1px solid var(--border-primary);background:var(--border-tertiary);width:80px;height:12px}.battery-fill{background:#4caf50;height:100%}.camera-preview{border:1px dashed var(--border-primary);background:var(--bg-section-header);width:100%;height:120px;color:var(--text-muted);justify-content:center;align-items:center;margin:12px 0;display:flex}.filter-select{border:1px solid var(--border-primary);background:var(--bg-primary);border-radius:2px;padding:4px 6px;font-size:10px}.vehicle-tabs{background:var(--bg-tertiary);border-bottom:1px solid var(--border-tertiary);gap:4px;margin:0;padding:8px;display:flex}.vehicle-tab{background:var(--bg-primary);border:1px solid var(--border-secondary);cursor:pointer;color:var(--text-secondary);border-radius:6px;flex:1;padding:8px 12px;font-size:13px;font-weight:500;transition:all .2s;position:relative}.vehicle-tab:hover{background:var(--bg-hover);color:var(--text-primary);border-color:var(--border-primary)}.vehicle-tab.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.vehicle-tab .tab-count{color:inherit;background:#ffffff40;border-radius:10px;margin-left:4px;padding:2px 6px;font-size:10px;display:inline-block}.vehicle-tab:not(.active) .tab-count{background:var(--bg-gauge);color:var(--text-secondary)}.history-date-filter{background:var(--bg-filter);border-bottom:1px solid var(--border-tertiary);align-items:center;gap:6px;padding:8px;display:flex}.date-input{border:1px solid var(--border-secondary);border-radius:4px;flex:1;padding:6px 8px;font-size:12px}.date-separator{color:var(--text-muted);font-size:12px}.search-btn{background:var(--color-primary-dark);color:#fff;cursor:pointer;border:none;border-radius:4px;padding:6px 12px;font-size:12px}.search-btn:hover{background:var(--color-primary-darker)}.vehicle-history-info{flex-direction:column;align-items:flex-end;font-size:11px;display:flex}.history-date{color:var(--text-secondary)}.history-duration{color:var(--color-primary-dark);font-weight:500}.history-pagination{border-top:1px solid var(--border-tertiary);background:var(--bg-filter);justify-content:center;align-items:center;gap:12px;padding:12px;display:flex}.page-btn{border:1px solid var(--border-secondary);cursor:pointer;width:28px;height:28px;color:var(--text-secondary);background:#fff;border-radius:4px;font-size:12px}.page-info{color:var(--text-secondary);font-size:12px}.vehicle-manage-list{flex-direction:column;display:flex}.vehicle-manage-item{border-bottom:1px solid var(--border-tertiary);cursor:pointer;padding:8px}.vehicle-manage-item:hover{background:var(--bg-tertiary)}.vehicle-manage-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.vehicle-manage-item.exited{opacity:.6}.vehicle-manage-main{align-items:center;gap:6px;margin-bottom:4px;display:flex}.vehicle-manage-plate{flex:1;font-size:12px;font-weight:600}.vehicle-manage-sub{align-items:center;gap:8px;font-size:10px;display:flex}.vehicle-manage-spot{color:var(--color-primary);font-weight:500}.vehicle-manage-time{color:var(--text-muted)}.vehicle-manage-exited{color:var(--text-tertiary);font-style:italic}.vehicle-status-icon{border-radius:2px;flex-shrink:0;justify-content:center;align-items:center;width:14px;height:14px;font-size:10px;display:flex}.vehicle-status-icon.parked{background:var(--bg-primary-light);border:1px solid var(--color-primary)}.vehicle-status-icon.parked:after{content:"P";color:var(--color-primary);font-size:9px;font-weight:700}.vehicle-status-icon.exited{background:var(--bg-tertiary);border:1px solid var(--text-tertiary)}.vehicle-status-icon.exited:after{content:"✓";color:var(--text-tertiary);font-size:9px}.control-panel.mode-narrow .vehicle-tabs{gap:2px;padding:6px 4px}.control-panel.mode-narrow .vehicle-tab{border-radius:4px;padding:6px 4px;font-size:11px}.control-panel.mode-narrow .vehicle-tab .tab-count{display:none}.control-panel.mode-narrow .vehicle-manage-item{padding:8px 4px}.control-panel.mode-narrow .vehicle-manage-plate{font-size:10px}.control-panel.mode-narrow .vehicle-manage-main{margin-bottom:0}.vehicle-detail-header{background:var(--bg-filter);border-bottom:1px solid var(--border-tertiary);justify-content:space-between;align-items:center;padding:12px;display:flex}.vehicle-plate-large{color:var(--text-primary);font-size:18px;font-weight:700}.vehicle-status-badge{border-radius:12px;padding:3px 10px;font-size:11px;font-weight:500;display:inline-block}.vehicle-status-badge.parked{background:var(--bg-primary-light);color:var(--color-primary-dark)}.vehicle-status-badge.exited{background:var(--bg-tertiary);color:var(--text-secondary)}.vehicle-record-section{border-bottom:1px solid var(--border-tertiary)}.vehicle-record-section .detail-label{color:var(--text-muted);padding:8px 12px 4px;font-size:11px}.vehicle-record-list{flex-direction:column;gap:6px;padding:0 8px 8px;display:flex;overflow-y:auto}.vehicle-record-card{background:var(--bg-card);border:1px solid var(--bg-gauge);cursor:pointer;border-radius:6px;padding:10px;transition:all .15s}.vehicle-record-card:hover{background:var(--bg-section-header);border-color:var(--border-primary)}.vehicle-record-card.selected{background:var(--bg-primary-light);border-color:var(--color-primary-dark)}.vehicle-record-card.current{border-left:3px solid var(--color-success)}.vehicle-record-card.current.selected{border-left-color:var(--color-success)}.record-card-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.record-current-badge{color:var(--color-success);font-size:12px;font-weight:600}.record-date-label{color:var(--text-primary);font-size:12px;font-weight:500}.record-check{color:var(--color-primary-dark);font-size:14px;font-weight:700}.record-card-info{color:var(--text-secondary);align-items:center;gap:8px;font-size:11px;display:flex}.record-date{color:var(--text-muted)}.record-time{color:var(--text-time)}.record-duration{color:var(--color-primary-dark);font-weight:500}.record-spot{background:var(--bg-hover);color:var(--text-time);border-radius:3px;padding:1px 6px;font-size:10px}.vehicle-record-resize-handle{cursor:ns-resize;background:var(--bg-tertiary);border-top:1px solid var(--bg-gauge);border-bottom:1px solid var(--bg-gauge);justify-content:center;align-items:center;height:12px;display:flex}.vehicle-record-resize-handle:hover{background:var(--border-tertiary)}.resize-handle-bar{background:var(--border-primary);border-radius:2px;width:40px;height:4px}.vehicle-record-resize-handle:hover .resize-handle-bar{background:var(--text-tertiary)}.vehicle-record-detail{flex:1;overflow-y:auto}.timeline-step.exit .step-dot{background:var(--color-orange)!important;border-color:var(--color-orange)!important}.timeline-step.exit .step-line{background:var(--color-orange-light)!important}.vehicle-history-list{flex-direction:column;gap:8px;margin-top:8px;display:flex}.vehicle-history-item{background:var(--bg-card);border-left:3px solid var(--border-secondary);border-radius:4px;padding:8px}.vehicle-history-item:hover{border-left-color:var(--color-primary)}.history-date{color:var(--text-primary);margin-bottom:4px;font-size:11px;font-weight:600}.history-info{color:var(--text-secondary);align-items:center;gap:8px;font-size:10px;display:flex}.history-spot{color:var(--color-primary);font-weight:500}.history-robot{color:var(--color-success);font-weight:500}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0006;justify-content:center;align-items:center;animation:.2s ease-out fadeIn;display:flex;position:fixed;inset:0}.modal-window{background:var(--bg-primary);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);flex-direction:column;max-height:85vh;animation:.25s ease-out modalSlideIn;display:flex}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.settings-modal{width:480px}.account-modal{width:520px}.modal-header{padding:var(--spacing-lg) var(--spacing-lg);border-bottom:1px solid var(--border-secondary);justify-content:space-between;align-items:center;display:flex}.modal-title{color:var(--text-primary);font-size:18px;font-weight:700}.modal-close{background:var(--bg-tertiary);cursor:pointer;color:var(--text-secondary);border-radius:var(--radius-full);width:32px;height:32px;transition:var(--transition-fast);border:none;justify-content:center;align-items:center;padding:8px;font-size:16px;display:flex}.modal-close:hover{background:var(--bg-hover);color:var(--text-primary)}.modal-content{padding:var(--spacing-lg);flex:1;overflow-y:auto}.modal-footer{justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border-secondary);background:var(--bg-secondary);border-radius:0 0 var(--radius-xl) var(--radius-xl);display:flex}.settings-section{margin-bottom:var(--spacing-lg)}.settings-section:last-child{margin-bottom:0}.settings-section-title{color:var(--text-tertiary);margin-bottom:var(--spacing-md);text-transform:uppercase;letter-spacing:.5px;font-size:13px;font-weight:600}.settings-item{padding:var(--spacing-sm) 0;justify-content:space-between;align-items:center;display:flex}.settings-item:last-child{border-bottom:none}.settings-label{color:var(--text-primary);font-size:14px;font-weight:500}.settings-select{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);cursor:pointer;min-width:140px;transition:var(--transition-fast);padding:10px 14px;font-size:14px}.settings-select:hover{border-color:var(--color-primary)}.settings-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--bg-primary-light)}.settings-input{border:1px solid var(--border-primary);border-radius:4px;min-width:200px;padding:10px 14px;font-size:14px}.account-profile{background:var(--bg-tertiary);border-radius:8px;align-items:center;gap:16px;margin-bottom:24px;padding:20px;display:flex}.account-avatar{background:var(--text-primary);width:64px;height:64px;color:var(--text-inverse);border-radius:50%;justify-content:center;align-items:center;font-size:24px;font-weight:700;display:flex}.account-info{flex:1}.account-name{margin-bottom:4px;font-size:18px;font-weight:700}.account-email{color:var(--text-secondary);margin-bottom:4px;font-size:13px}.account-role{color:var(--text-inverse);background:var(--color-primary);border-radius:10px;padding:2px 8px;font-size:11px;display:inline-block}.account-activity{background:var(--bg-secondary);border-radius:4px;padding:8px}.activity-item{border-bottom:1px solid var(--border-tertiary);align-items:center;gap:12px;padding:8px;font-size:11px;display:flex}.activity-item:last-child{border-bottom:none}.activity-time{color:var(--text-muted);width:120px;font-family:monospace}.activity-action{color:var(--text-primary);width:80px;font-weight:500}.activity-detail{color:var(--text-secondary);flex:1}.system-info-modal{width:560px}.system-info-overview{text-align:center;background:linear-gradient(135deg, var(--text-primary) 0%, #555 100%);color:var(--text-inverse);border-radius:8px;margin-bottom:24px;padding:24px}.system-info-logo{letter-spacing:2px;margin-bottom:8px;font-size:32px;font-weight:900}.system-info-name{opacity:.9;margin-bottom:8px;font-size:14px}.system-info-version{background:#fff3;border-radius:20px;padding:4px 16px;font-size:18px;font-weight:700;display:inline-block}.version-item{border-bottom:1px solid var(--border-tertiary);align-items:center;padding:10px 0;display:flex}.version-item:last-child{border-bottom:none}.version-name{color:var(--text-primary);flex:1;font-size:13px}.version-number{width:80px;color:var(--text-secondary);text-align:center;font-family:monospace;font-size:12px}.version-status{text-align:center;border-radius:10px;width:90px;padding:3px 8px;font-size:11px}.version-status.ok{background:var(--bg-success-light);color:var(--color-success-dark)}.version-status.warning{background:var(--bg-warning-light);color:var(--color-warning)}.version-status.error{background:var(--bg-error-light);color:var(--color-danger-darker)}.system-info-footer{background:var(--bg-secondary);border-radius:8px;margin-top:16px;padding:16px}.system-info-row{justify-content:space-between;padding:6px 0;font-size:12px;display:flex}.system-info-row .info-label{color:var(--text-secondary)}.system-info-row .info-value{color:var(--text-primary);font-family:monospace}.robot-add-modal{width:520px}.robot-add-tabs{gap:var(--spacing-xs);padding:0 var(--spacing-lg);border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);display:flex}.robot-add-tab{padding:var(--spacing-md) var(--spacing-lg);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;font-size:14px;font-weight:500}.robot-add-tab:hover{color:var(--text-primary)}.robot-add-tab.active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.robot-discover-section{padding:var(--spacing-lg)}.discover-header{margin-bottom:var(--spacing-md);justify-content:space-between;align-items:center;display:flex}.discover-header span{color:var(--text-secondary);font-size:13px}.discover-list{gap:var(--spacing-sm);flex-direction:column;max-height:240px;display:flex;overflow-y:auto}.discover-item{align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border:2px solid var(--border-secondary);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);display:flex}.discover-item:hover{border-color:var(--border-primary);background:var(--bg-tertiary)}.discover-item.selected{border-color:var(--color-primary);background:var(--bg-primary-light)}.discover-item .robot-icon{background:var(--bg-tertiary);border-radius:var(--radius-sm);justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.discover-item.selected .robot-icon{background:var(--color-primary)}.discover-item .robot-info{flex:1}.discover-item .robot-serial{color:var(--text-primary);margin-bottom:2px;font-size:14px;font-weight:600}.discover-item .robot-ip{color:var(--text-secondary);font-family:monospace;font-size:12px}.discover-item .robot-status{background:var(--bg-warning-light);color:var(--color-warning);border-radius:var(--radius-full);padding:4px 10px;font-size:11px;font-weight:500}.robot-manual-section{padding:var(--spacing-lg)}.manual-input-group{margin-bottom:var(--spacing-lg)}.manual-input-group label{color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-size:13px;font-weight:500;display:block}.manual-input-row{gap:var(--spacing-sm);display:flex}.manual-input-row input{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-primary);color:var(--text-primary);transition:var(--transition-fast);flex:1;padding:12px 14px;font-family:monospace;font-size:14px}.manual-input-row input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--bg-primary-light);outline:none}.manual-input-row input::placeholder{color:var(--text-muted)}.manual-result{margin-top:var(--spacing-md);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-sm);font-size:13px}.manual-result.success{background:var(--bg-success-light);color:var(--color-success-dark)}.manual-result.error{background:var(--bg-error-light);color:var(--color-danger-darker)}.robot-name-input-section{padding:0 var(--spacing-lg) var(--spacing-lg);border-top:1px solid var(--border-secondary);margin-top:var(--spacing-md);padding-top:var(--spacing-lg)}.robot-name-input-section label{color:var(--text-secondary);margin-bottom:var(--spacing-sm);font-size:13px;font-weight:500;display:block}.robot-name-input{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-primary);width:100%;color:var(--text-primary);transition:var(--transition-fast);padding:12px 14px;font-size:14px}.robot-name-input:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--bg-primary-light);outline:none}.robot-name-input::placeholder{color:var(--text-muted)}.robot-name-hint{color:var(--text-muted);margin-top:var(--spacing-xs);font-size:12px}.emergency-modal{width:400px}.modal-header.emergency{border-bottom-color:var(--color-error);background:#ff3b301a}.modal-header.emergency .modal-title{color:var(--color-error)}.emergency-modal-body{text-align:center;padding:var(--spacing-lg) 0}.emergency-icon{margin-bottom:var(--spacing-md);font-size:48px}.emergency-message{color:var(--text-primary);margin-bottom:var(--spacing-sm);font-size:18px;font-weight:600}.emergency-description{color:var(--text-secondary);font-size:14px}.btn-secondary{border:1px solid var(--border-primary);border-radius:var(--radius-sm);background:var(--bg-secondary);color:var(--text-primary);cursor:pointer;transition:var(--transition-fast);padding:10px 20px;font-size:14px;font-weight:500}.btn-secondary:hover{background:var(--bg-tertiary);border-color:var(--border-secondary)}.btn-danger{border-radius:var(--radius-sm);background:var(--color-error);color:#fff;cursor:pointer;transition:var(--transition-fast);border:none;padding:10px 20px;font-size:14px;font-weight:600}.btn-danger:hover{background:#e0342b}.btn-primary{border-radius:var(--radius-sm);background:var(--color-success);color:#fff;cursor:pointer;transition:var(--transition-fast);border:none;padding:10px 20px;font-size:14px;font-weight:600}.btn-primary:hover{background:#28a745}.modal-header.release{border-bottom-color:var(--color-success);background:#34c7591a}.modal-header.release .modal-title{color:var(--color-success)}.checklist-item{border-radius:var(--radius-xs);cursor:pointer;width:100%;color:var(--text-primary);transition:var(--transition-fast);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:10px 12px;font-family:inherit;font-size:13px;display:flex}.checklist-item:hover{background:var(--bg-secondary)}.checklist-item.checked{color:var(--text-muted)}.checklist-number{color:var(--text-muted);min-width:18px;font-size:12px}.checklist-label{flex:1}.checklist-check{border:1.5px solid var(--border-secondary);width:20px;height:20px;color:var(--text-inverse);transition:var(--transition-fast);border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;font-size:12px;display:flex}.checklist-check.on{background:var(--color-primary);border-color:var(--color-primary)}.alert-date-section{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);padding:6px}.alert-date-row{align-items:center;gap:4px;display:flex}.alert-date-input{border:1px solid var(--border-secondary);background:var(--bg-card);color:var(--text-primary);border-radius:2px;flex:1;min-width:0;padding:4px 6px;font-size:10px}.alert-date-input:focus{border-color:var(--color-primary);outline:none}.alert-date-separator{color:var(--text-muted);flex-shrink:0;font-size:10px}.alert-date-presets{gap:4px;margin-top:4px;display:flex}.alert-filter-chips{border-bottom:1px solid var(--border-secondary);padding:6px}.alert-filter-chips-label{color:var(--text-muted);margin-bottom:4px;font-size:9px;font-weight:600;display:block}.alert-filter-chips-row{flex-wrap:wrap;gap:4px;display:flex}.filter-tag-count{opacity:.7;margin-left:2px;font-size:8px}.filter-tag.sev-critical.active{background:var(--color-error,#d32f2f);color:#fff}.filter-tag.sev-warning.active{background:var(--color-warning,#f57c00);color:#fff}.filter-tag.sev-info.active{background:var(--color-primary,#1976d2);color:#fff}.alert-type-badge{border-radius:3px;padding:2px 8px;font-size:10px;font-weight:600}.alert-type-badge.error{background:var(--bg-error-light);color:var(--color-danger-dark)}.alert-type-badge.warning{background:var(--bg-warning-light);color:var(--color-warning)}.alert-type-badge.info{background:var(--bg-primary-light);color:var(--color-primary-dark)}.alert-target-badge{border-radius:3px;padding:2px 6px;font-size:9px;font-weight:500}.alert-target-badge.robot{background:var(--bg-success-light);color:var(--color-success-dark)}.alert-target-badge.charger{background:var(--bg-warning-light);color:var(--color-warning)}.alert-target-badge.gate{color:#c2185b;background:#fce4ec}.alert-target-badge.camera{color:#0288d1;background:#e1f5fe}.alert-target-badge.system{color:#7b1fa2;background:#f3e5f5}.alert-stats-section{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);padding:8px}.alert-stats-grid{grid-template-columns:repeat(3,1fr);gap:6px;display:grid}.alert-stat-item{text-align:center;background:var(--bg-card);border-radius:var(--radius-sm,4px);border:1px solid var(--border-tertiary);padding:10px 4px 8px;transition:border-color .15s}.alert-stat-item:hover{border-color:var(--border-secondary)}.alert-stat-value{margin-bottom:4px;font-size:20px;font-weight:700;line-height:1;display:block}.alert-stat-value.error{color:var(--color-danger-dark)}.alert-stat-value.warning{color:var(--color-warning)}.alert-stat-value.info{color:var(--color-primary-dark)}.alert-stat-label{color:var(--text-secondary);font-size:10px}.alert-refresh-section{margin-top:auto;padding:8px}.alert-refresh-btn{border:1px solid var(--border-secondary);border-radius:var(--radius-xs,3px);background:var(--bg-card);width:100%;color:var(--text-primary);cursor:pointer;padding:8px;font-size:11px;font-weight:500;transition:all .15s}.alert-refresh-btn:hover{background:var(--bg-hover);border-color:var(--color-primary)}.alert-refresh-btn:disabled{opacity:.5;cursor:not-allowed}.alert-recent-section{border-bottom:1px solid var(--border-secondary)}.alert-recent-item{border-bottom:1px solid var(--border-lighter);cursor:pointer;background:var(--bg-primary);align-items:center;gap:6px;padding:8px;font-size:10px;display:flex}.alert-recent-item:hover{background:var(--bg-tertiary)}.alert-recent-item.selected{background:var(--bg-hover);border-left:2px solid var(--text-primary)}.alert-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.alert-dot.error{background:#d32f2f}.alert-dot.warning{background:#f57c00}.alert-dot.info{background:#1976d2}.alert-recent-content{flex:1;min-width:0}.alert-recent-target{font-weight:500;display:block}.alert-recent-msg{color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;font-size:9px;display:block;overflow:hidden}.alert-recent-time{color:var(--text-muted);font-family:monospace;font-size:9px}.alert-log-wrapper{background:var(--bg-primary);width:100%;height:100%;display:flex}.alert-log-area{background:var(--bg-primary);flex-direction:column;flex:1;min-width:0;height:100%;display:flex}.alert-log-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-tertiary);align-items:center;gap:16px;padding:12px 16px;display:flex}.alert-log-title{font-size:14px;font-weight:700}.alert-log-count{color:var(--text-secondary);font-size:12px}.alert-log-actions{gap:8px;margin-left:auto;display:flex}.alert-log-table{flex-direction:column;flex:1;display:flex;overflow:hidden}.alert-table-header{background:var(--bg-card);border-bottom:1px solid var(--border-secondary);color:var(--text-secondary);padding:10px 16px;font-size:11px;font-weight:600;display:flex}.alert-table-body{flex:1;overflow-y:auto}.alert-table-row{border-bottom:1px solid var(--border-tertiary);cursor:pointer;align-items:center;padding:12px 16px;font-size:12px;display:flex}.alert-table-row:hover{background:var(--bg-tertiary)}.alert-table-row.selected{background:var(--bg-primary-light);border-left:3px solid var(--color-primary)}.alert-table-row.unread{background:var(--bg-warning-light);font-weight:500}.alert-table-row.unread:hover{background:var(--bg-warning-light)}.col-time{width:160px;color:var(--text-secondary);flex-shrink:0;font-family:monospace}.col-type{flex-shrink:0;width:60px}.col-target{flex-shrink:0;width:100px}.col-message{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.col-status{text-align:center;flex-shrink:0;width:40px}.unread-dot{background:var(--color-primary);border-radius:50%;width:8px;height:8px;display:inline-block}.alert-pagination{border-top:1px solid var(--border-secondary);background:var(--bg-card);justify-content:center;align-items:center;gap:8px;padding:12px 16px;display:flex}.page-btn{border:1px solid var(--border-secondary);background:var(--bg-primary);cursor:pointer;padding:6px 10px;font-size:10px}.page-btn:hover{background:var(--bg-tertiary)}.page-num{cursor:pointer;padding:6px 10px;font-size:11px}.page-num.active{background:var(--text-primary);color:var(--bg-primary);border-radius:2px}.page-dots{color:var(--text-muted);font-size:11px}.page-info{color:var(--text-muted);margin-left:16px;font-size:10px}.alert-detail-panel{border-left:1px solid var(--border-secondary);background:var(--bg-primary);flex-direction:column;width:360px;min-width:360px;height:100%;display:flex}.alert-detail-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-tertiary);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.alert-detail-title{font-size:14px;font-weight:700}.alert-detail-content{flex:1;padding:16px;overflow-y:auto}.alert-message-box{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:4px;margin-top:6px;padding:12px;font-size:13px;font-weight:500}.alert-detail-box{background:var(--bg-card);border:1px solid var(--border-tertiary);border-radius:4px;margin-top:6px;padding:12px;font-size:11px;line-height:1.6}.alert-detail-box p{color:var(--text-time);margin:0 0 4px}.alert-detail-box p:last-child{margin-bottom:0}.alert-related-list{margin-top:6px}.alert-related-item{border-bottom:1px solid var(--border-lighter);align-items:center;gap:8px;padding:6px 0;font-size:10px;display:flex}.alert-related-item:last-child{border-bottom:none}.related-time{color:var(--text-muted);font-family:monospace}.related-msg{color:var(--text-time)}.alert-action-history{margin-top:6px}.action-history-item{color:var(--text-muted);gap:8px;padding:6px 0;font-size:10px;display:flex}.history-time{font-family:monospace}.control-panel.mode-narrow .alert-date-row{flex-direction:column}.control-panel.mode-narrow .alert-filter-item{padding:3px 0}.loading-spinner{border:2px solid var(--border-secondary);border-top-color:var(--color-primary);border-radius:50%;width:18px;height:18px;animation:.6s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.alert-log-area{position:relative}#root{width:100%;height:100vh;overflow:hidden}
