:root,[data-theme=light]{--color-green-1:#ecf5ec;--color-green-2:#d4ead6;--color-green-3:#9dcea2;--color-green-4:#6bb873;--color-green-5:#4a9b55;--color-green-6:#3d7c47;--color-green-7:#326b3d;--color-green-8:#285a33;--color-green-9:#1e4929;--color-green-10:#14381f;--color-blue-1:#e8f0f8;--color-blue-2:#c5d9f0;--color-blue-3:#7ba8d4;--color-blue-4:#4a8cc7;--color-blue-5:#2d6aa8;--color-blue-6:#1e4d7b;--color-blue-7:#1a3f68;--color-blue-8:#153155;--color-gray-1:#f8fafc;--color-gray-2:#f1f5f9;--color-gray-3:#e2e8f0;--color-gray-4:#cbd5e1;--color-gray-5:#94a3b8;--color-gray-6:#64748b;--color-gray-7:#475569;--color-gray-8:#334155;--color-gray-9:#1e293b;--color-gray-10:#0f172a;--color-success-bg:#dcfce7;--color-success:#16a34a;--color-success-fg:#15803d;--color-warning-bg:#fef3c7;--color-warning:#d97706;--color-warning-fg:#b45309;--color-error-bg:#fee2e2;--color-error:#dc2626;--color-error-fg:#b91c1c;--color-info-bg:#e8f0f8;--color-info:#1e4d7b;--color-info-fg:#153155;--color-muted-bg:#f1f5f9;--color-muted-fg:#94a3b8;--color-muted-border:#e2e8f0;--color-link:#1e4d7b;--color-link-hover:#153155;--color-text-primary:var(--color-gray-10);--color-text-secondary:var(--color-gray-6);--color-text-tertiary:var(--color-gray-5);--color-bg-base:var(--color-gray-1);--color-bg-elevated:#fff;--color-bg-subtle:var(--color-gray-2);--color-border-default:var(--color-gray-4);--color-border-subtle:var(--color-gray-3);--color-segment-fly-bg:#d4ead6;--color-segment-fly:#3d7c47;--color-segment-path-bg:#c5d9f0;--color-segment-path:#1e4d7b;--color-segment-keyframe-bg:#ffedd5;--color-segment-keyframe:#b45309;--color-glass-fill:#d4ead699;--color-flat-green:#6bb873;--color-flat-blue:#4a8cc7;--color-btn-primary:#3d7c47;--color-btn-primary-hover:#326b3d;--color-btn-primary-active:#285a33;--color-btn-secondary:#fff;--color-btn-secondary-border:var(--color-gray-4);--color-btn-secondary-hover:#f8fafc;--color-btn-secondary-active:#f1f5f9;--color-btn-ghost:transparent;--color-btn-ghost-hover:#f1f5f9;--color-btn-danger:#dc2626;--color-btn-danger-border:#dc2626;--color-btn-danger-hover:#b91c1c;--color-btn-disabled:#f1f5f9;--color-input-bg:#fff;--color-input-bg-disabled:#f1f5f9;--color-input-border:var(--color-gray-4);--color-input-border-focus:var(--color-blue-4);--color-input-placeholder:var(--color-gray-5);--color-card-bg:#fff;--color-card-bg-hover:#f8fafc;--color-switch-track-on:var(--color-green-6);--color-switch-track-off:var(--color-gray-4);--color-switch-thumb:#fff;--color-slider-track:var(--color-gray-3);--color-slider-fill:var(--color-green-6);--color-slider-thumb:#fff;--color-tab-default:var(--color-gray-6);--color-tab-active:var(--color-green-6);--color-tooltip-bg:var(--color-gray-9);--color-tooltip-fg:#fff;--spacing-1:4px;--spacing-2:8px;--spacing-3:12px;--spacing-4:16px;--spacing-5:20px;--spacing-6:24px;--spacing-8:32px;--spacing-10:40px;--spacing-12:48px;--spacing-16:64px;--font-sans:"Noto Sans SC","Inter",system-ui,sans-serif;--font-mono:"JetBrains Mono","Fira Code",monospace;--font-size-2xs:9px;--font-size-xs:10px;--font-size-sm:11px;--font-size-md:12px;--font-size-base:14px;--font-size-lg:16px;--font-size-xl:18px;--font-size-2xl:24px;--font-size-3xl:30px;--font-size-4xl:36px;--font-weight-normal:400;--font-weight-medium:500;--font-weight-semibold:600;--font-weight-bold:700;--font-weight-extrabold:800;--line-height-tight:1.25;--line-height-normal:1.5;--line-height-relaxed:1.625;--radius-2:2px;--radius-4:4px;--radius-6:6px;--radius-8:8px;--radius-12:12px;--radius-16:16px;--radius-full:9999px;--layout-topbar-height:48px;--layout-left-width:240px;--layout-right-width:280px;--layout-timeline-height:172px;--timeline-track-height:24px;--timeline-segment-height:20px;--timeline-keyframe-size:14px;--timeline-ruler-height:32px;--toolbar-btn-size:48px;--toolbar-icon-size:24px;--font-size-timeline-label:11px;--font-size-timeline-tick:10px;--btn-height-sm:28px;--btn-height-default:36px;--btn-height-lg:44px;--btn-padding-x-sm:12px;--btn-padding-x-default:20px;--btn-padding-x-lg:24px;--btn-font-size-sm:12px;--btn-font-size-default:13px;--btn-font-size-lg:14px;--btn-icon-size-sm:14px;--btn-icon-size-default:16px;--btn-icon-size-lg:18px;--btn-gap-sm:6px;--btn-gap-default:8px;--btn-gap-lg:10px;--icon-btn-size-sm:28px;--icon-btn-size-default:36px;--icon-btn-size-lg:44px;--icon-btn-icon-sm:14px;--icon-btn-icon-default:18px;--icon-btn-icon-lg:22px;--input-height-sm:28px;--input-height-default:36px;--input-height-lg:44px;--input-padding-x-sm:10px;--input-padding-x-default:12px;--input-padding-x-lg:16px;--input-font-size-sm:12px;--input-font-size-default:13px;--input-font-size-lg:14px;--badge-height-sm:18px;--badge-height-default:24px;--badge-padding-x-sm:6px;--badge-padding-x-default:10px;--badge-font-size-sm:9px;--badge-font-size-default:11px;--checkbox-size-sm:14px;--checkbox-size-default:18px;--checkbox-size-lg:22px;--switch-height-sm:18px;--switch-height-default:22px;--switch-height-lg:26px;--switch-width-sm:30px;--switch-width-default:40px;--switch-width-lg:50px;--switch-thumb-sm:14px;--switch-thumb-default:18px;--switch-thumb-lg:22px;--slider-track-height-sm:4px;--slider-track-height-default:6px;--slider-thumb-size-sm:14px;--slider-thumb-size-default:16px;--slider-thumb-size-lg:20px;--tab-height-sm:32px;--tab-height-default:40px;--tab-height-lg:48px;--tab-padding-x-sm:12px;--tab-padding-x-default:16px;--tab-padding-x-lg:20px;--tab-font-size-sm:12px;--tab-font-size-default:13px;--tab-font-size-lg:14px;--card-padding-sm:12px;--card-padding-default:16px;--card-padding-lg:24px;--modal-max-width-sm:360px;--modal-max-width-default:480px;--modal-max-width-lg:560px;--modal-padding:24px;--modal-header-gap:16px;--tooltip-padding-x:10px;--tooltip-padding-y:6px;--tooltip-font-size:12px;--tooltip-max-width:280px;--list-item-height-sm:28px;--list-item-height-default:36px;--list-item-height-lg:44px;--list-item-padding-x:12px;--avatar-size-xs:24px;--avatar-size-sm:32px;--avatar-size-default:40px;--avatar-size-lg:56px;--progress-height-sm:4px;--progress-height-default:6px;--progress-height-lg:10px;--divider-height:1px;--divider-margin-y:16px;--duration-fast:.15s;--duration-normal:.2s;--duration-slow:.3s;--easing-default:cubic-bezier(.4,0,.2,1);--easing-in-out:cubic-bezier(.4,0,.2,1);--focus-ring-offset:2px;--focus-ring-color:var(--color-blue-4);--focus-ring:0 0 0 var(--focus-ring-offset)var(--focus-ring-color);--shadow-0:none;--shadow-1:none;--shadow-2:none;--shadow-3:none}[data-theme=dark]{--color-gray-1:#0d1117;--color-gray-2:#161b22;--color-gray-3:#21262d;--color-gray-4:#30363d;--color-gray-5:#484f58;--color-gray-6:#8b949e;--color-gray-7:#9ca3af;--color-gray-8:#c9d1d9;--color-gray-9:#e6edf3;--color-gray-10:#e6edf3;--color-success-bg:#238636;--color-success:#3fb950;--color-success-fg:#56d364;--color-warning-bg:#9e6a03;--color-warning:#d29922;--color-warning-fg:#e3b341;--color-error-bg:#da3633;--color-error:#f85149;--color-error-fg:#ff7b72;--color-info-bg:#1e4d7b;--color-info:#58a6ff;--color-info-fg:#79c0ff;--color-muted-bg:#21262d;--color-muted-fg:#8b949e;--color-muted-border:#30363d;--color-link:#58a6ff;--color-link-hover:#79c0ff;--color-text-primary:var(--color-gray-9);--color-text-secondary:var(--color-gray-6);--color-text-tertiary:var(--color-gray-5);--color-bg-base:#0d1117;--color-bg-elevated:#161b22;--color-bg-subtle:#21262d;--color-border-default:#30363d;--color-border-subtle:#21262d;--color-segment-fly-bg:#238636;--color-segment-fly:#3fb950;--color-segment-path-bg:#1e4d7b;--color-segment-path:#58a6ff;--color-segment-keyframe-bg:#9e6a03;--color-segment-keyframe:#d29922;--color-glass-fill:#161b22cc;--color-flat-green:#3fb950;--color-flat-blue:#58a6ff;--color-btn-primary:#3d7c47;--color-btn-primary-hover:#4a9b55;--color-btn-primary-active:#326b3d;--color-btn-secondary:#21262d;--color-btn-secondary-border:#30363d;--color-btn-secondary-hover:#30363d;--color-btn-secondary-active:#484f58;--color-btn-ghost:transparent;--color-btn-ghost-hover:#21262d;--color-btn-danger:#da3633;--color-btn-danger-border:#f85149;--color-btn-danger-hover:#f85149;--color-btn-disabled:#21262d;--color-input-bg:#0d1117;--color-input-bg-disabled:#161b22;--color-input-border:#30363d;--color-input-border-focus:#58a6ff;--color-input-placeholder:#484f58;--color-card-bg:#161b22;--color-card-bg-hover:#21262d;--color-switch-track-on:var(--color-green-6);--color-switch-track-off:#30363d;--color-switch-thumb:#e6edf3;--color-slider-track:#30363d;--color-slider-fill:var(--color-green-6);--color-slider-thumb:#e6edf3;--color-tab-default:#8b949e;--color-tab-active:var(--color-green-6);--color-tooltip-bg:#161b22;--color-tooltip-fg:#e6edf3;--focus-ring-color:#58a6ff}[data-density=condensed]{--layout-topbar-height:36px;--layout-timeline-height:112px;--timeline-track-height:18px;--timeline-segment-height:16px;--timeline-keyframe-size:12px;--timeline-ruler-height:24px;--toolbar-btn-size:36px;--toolbar-icon-size:20px;--spacing-1:2px;--spacing-2:4px;--spacing-3:6px;--spacing-4:8px;--spacing-5:10px;--spacing-6:12px;--spacing-8:16px;--spacing-10:20px;--spacing-12:24px;--spacing-16:32px;--font-size-2xs:8px;--font-size-xs:9px;--font-size-sm:10px;--font-size-md:11px;--font-size-base:12px;--font-size-timeline-label:9px;--font-size-timeline-tick:8px;--line-height-tight:1.2;--line-height-normal:1.35;--btn-height-sm:24px;--btn-height-default:28px;--btn-height-lg:32px;--btn-padding-x-sm:8px;--btn-padding-x-default:12px;--btn-padding-x-lg:16px;--btn-font-size-sm:10px;--btn-font-size-default:11px;--btn-font-size-lg:12px;--btn-icon-size-sm:12px;--btn-icon-size-default:14px;--btn-icon-size-lg:16px;--icon-btn-size-sm:24px;--icon-btn-size-default:28px;--icon-btn-size-lg:32px;--icon-btn-icon-sm:12px;--icon-btn-icon-default:14px;--icon-btn-icon-lg:18px;--input-height-sm:24px;--input-height-default:28px;--input-height-lg:32px;--input-padding-x-sm:8px;--input-padding-x-default:10px;--input-padding-x-lg:12px;--input-font-size-sm:10px;--input-font-size-default:11px;--input-font-size-lg:12px;--badge-height-sm:16px;--badge-height-default:20px;--badge-padding-x-sm:4px;--badge-padding-x-default:8px;--badge-font-size-sm:8px;--badge-font-size-default:10px;--checkbox-size-sm:12px;--checkbox-size-default:16px;--checkbox-size-lg:18px;--switch-height-sm:16px;--switch-height-default:20px;--switch-height-lg:24px;--switch-width-sm:26px;--switch-width-default:36px;--switch-width-lg:44px;--switch-thumb-sm:12px;--switch-thumb-default:16px;--switch-thumb-lg:20px;--slider-track-height-sm:3px;--slider-track-height-default:4px;--slider-thumb-size-sm:12px;--slider-thumb-size-default:14px;--slider-thumb-size-lg:18px;--tab-height-sm:28px;--tab-height-default:32px;--tab-height-lg:40px;--tab-padding-x-sm:8px;--tab-padding-x-default:12px;--tab-padding-x-lg:16px;--tab-font-size-sm:10px;--tab-font-size-default:11px;--tab-font-size-lg:12px;--card-padding-sm:8px;--card-padding-default:12px;--card-padding-lg:16px;--list-item-height-sm:24px;--list-item-height-default:28px;--list-item-height-lg:36px}*{box-sizing:border-box}body{font-family:var(--font-sans,"Noto Sans SC","Inter",system-ui,sans-serif);font-size:var(--font-size-base,14px);line-height:var(--line-height-normal,1.5);color:var(--color-text-primary);background:var(--color-bg-base);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{min-height:100vh}a{color:var(--color-link);text-decoration:none}a:hover{color:var(--color-link-hover)}:focus-visible{box-shadow:var(--focus-ring);outline:none}@keyframes login-fade-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes login-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes login-float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes login-gradient{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}@keyframes login-tab-switch{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}.login-page{min-height:100vh;display:flex}.login-left{background:linear-gradient(135deg,var(--color-green-9)0%,var(--color-green-6)40%,var(--color-blue-6)100%);padding:var(--spacing-12);color:#fff;background-size:200% 200%;flex-direction:column;flex:1;justify-content:center;align-items:center;animation:8s infinite login-gradient;display:flex;position:relative;overflow:hidden}.login-left:before{content:"";background:#ffffff0a;border-radius:50%;width:300px;height:300px;position:absolute;top:-80px;right:-60px}.login-left:after{content:"";background:#ffffff08;border-radius:50%;width:200px;height:200px;position:absolute;bottom:-40px;left:-40px}.login-brand{text-align:center;margin-bottom:var(--spacing-12);animation:login-fade-in .6s var(--easing-default)both}.login-logo{border-radius:var(--radius-16);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:var(--font-size-4xl);margin:0 auto var(--spacing-5);background:#ffffff26;border:2px solid #fff3;justify-content:center;align-items:center;width:80px;height:80px;font-weight:800;animation:4s ease-in-out infinite login-float;display:flex}.login-brand-title{font-size:var(--font-size-3xl);font-weight:var(--font-weight-bold);margin:0 0 var(--spacing-2);letter-spacing:-.5px}.login-brand-desc{font-size:var(--font-size-lg);opacity:.85;margin:0}.login-features{gap:var(--spacing-4);flex-direction:column;display:flex}.login-feature-item{align-items:center;gap:var(--spacing-3);font-size:var(--font-size-base);opacity:0;animation:login-slide-up .5s var(--easing-default)both;display:flex}.login-feature-item:first-child{animation-delay:.3s}.login-feature-item:nth-child(2){animation-delay:.45s}.login-feature-item:nth-child(3){animation-delay:.6s}.login-feature-icon{border-radius:var(--radius-8);background:#ffffff1f;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:18px;display:flex}.login-right{background:var(--color-bg-base);padding:var(--spacing-12);flex:1;justify-content:center;align-items:center;display:flex}.login-card{animation:login-fade-in .5s var(--easing-default).1s both;width:100%;max-width:420px}.login-title{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-2)}.login-subtitle{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--spacing-8)}.login-form-enter{animation:login-tab-switch .25s var(--easing-default)both}.login-form-group{margin-bottom:var(--spacing-5)}.login-label{font-size:var(--font-size-md);font-weight:var(--font-weight-medium);color:var(--color-text-secondary);margin-bottom:var(--spacing-2);display:block}.login-sms-row{gap:var(--spacing-2);align-items:center;display:flex}.login-footer{margin-top:var(--spacing-6);text-align:center;font-size:var(--font-size-md);color:var(--color-text-tertiary)}@media (max-width:768px){.login-page{flex-direction:column}.login-left{padding:var(--spacing-8)var(--spacing-6);flex:none;min-height:220px}.login-logo{font-size:var(--font-size-2xl);width:56px;height:56px}.login-brand-title{font-size:var(--font-size-xl)}.login-brand-desc{font-size:var(--font-size-md)}.login-brand{margin-bottom:var(--spacing-4)}.login-features{display:none}.login-right{padding:var(--spacing-6);padding-top:var(--spacing-8);flex:1;align-items:flex-start}}@keyframes dash-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.dash-content{padding:var(--spacing-8);animation:dash-fade-in .4s var(--easing-default)both}.dash-greeting{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary);margin:0 0 var(--spacing-1)}.dash-greeting-sub{font-size:var(--font-size-base);color:var(--color-text-secondary);margin:0 0 var(--spacing-8)}.dash-stats{gap:var(--spacing-4);margin-bottom:var(--spacing-8);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.dash-stat-card{background:var(--color-card-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-12);padding:var(--card-padding-default);gap:var(--spacing-2);transition:border-color var(--duration-fast)var(--easing-default);flex-direction:column;display:flex}.dash-stat-card:hover{border-color:var(--color-border-default)}.dash-stat-icon{border-radius:var(--radius-8);justify-content:center;align-items:center;width:40px;height:40px;font-size:20px;display:flex}.dash-stat-value{font-size:var(--font-size-2xl);font-weight:var(--font-weight-bold);color:var(--color-text-primary)}.dash-stat-label{font-size:var(--font-size-md);color:var(--color-text-secondary)}.dash-section-title{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin:0 0 var(--spacing-4)}.dash-map-wrap{background:var(--color-card-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-12);margin-bottom:var(--spacing-8);position:relative;overflow:hidden}.dash-map-canvas{width:100%;height:360px;display:block}.dash-map-overlay{padding:var(--spacing-4)var(--spacing-5);color:#fff;background:linear-gradient(#0000,#0000008c);justify-content:space-between;align-items:flex-end;display:flex;position:absolute;bottom:0;left:0;right:0}.dash-map-label{font-size:var(--font-size-lg);font-weight:var(--font-weight-semibold)}.dash-map-sub{font-size:var(--font-size-md);opacity:.8;margin-top:var(--spacing-1)}.dash-recent{gap:var(--spacing-4);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.dash-recent-card{background:var(--color-card-bg);border:1px solid var(--color-border-subtle);border-radius:var(--radius-12);padding:var(--card-padding-default);cursor:pointer;transition:all var(--duration-fast)var(--easing-default)}.dash-recent-card:hover{border-color:var(--color-green-4);transform:translateY(-2px)}.dash-recent-name{font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-primary);margin-bottom:var(--spacing-1)}.dash-recent-meta{font-size:var(--font-size-sm);color:var(--color-text-tertiary)}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{background:var(--color-bg-base);justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--color-border-subtle);border-top-color:var(--color-green-6);border-radius:50%;width:32px;height:32px;animation:.7s linear infinite spin}@media (max-width:768px){.dash-content{padding:var(--spacing-5)}.dash-map-canvas{height:240px}}