:root{--color-primary-50: #e6f2ff;--color-primary-100: #cce5ff;--color-primary-200: #99cbff;--color-primary-300: #66b0ff;--color-primary-400: #3396ff;--color-primary-500: #0070f3;--color-primary-600: #0761d1;--color-primary-700: #0552ad;--color-primary-800: #043e85;--color-primary-900: #032a5c;--color-neutral-0: #ffffff;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #ebebeb;--color-neutral-300: #d9d9d9;--color-neutral-400: #a1a1a1;--color-neutral-500: #888888;--color-neutral-600: #666666;--color-neutral-700: #4d4d4d;--color-neutral-800: #333333;--color-neutral-900: #1c1c1c;--color-neutral-1000: #0a0a0a;--color-success-50: #e6fbf6;--color-success-100: #c2f5e7;--color-success-200: #8fecd4;--color-success-300: #5ce2c0;--color-success-400: #39d1ab;--color-success-500: #29bc9b;--color-success-600: #1f9a80;--color-success-700: #177864;--color-success-800: #0f5648;--color-success-900: #08332c;--color-warning-50: #fff8e9;--color-warning-100: #ffefc7;--color-warning-200: #ffe096;--color-warning-300: #ffd066;--color-warning-400: #f9bd3f;--color-warning-500: #f5a623;--color-warning-600: #cc8714;--color-warning-700: #ab570a;--color-warning-800: #7a3e08;--color-warning-900: #4d2705;--color-error-50: #fde8e8;--color-error-100: #fbd0d0;--color-error-200: #f7a1a1;--color-error-300: #f37272;--color-error-400: #f64545;--color-error-500: #ee0000;--color-error-600: #c50000;--color-error-700: #9c0000;--color-error-800: #730000;--color-error-900: #4a0000;--color-gnss-gps: #0070f3;--color-gnss-glonass: #29bc9b;--color-gnss-galileo: #7928ca;--color-gnss-beidou: #ff7a3d;--color-gnss-qzss: #eb367f;--color-gnss-irnss: #50e3c2;--color-gnss-sbas: #f5a623;--color-quality-excellent: #29bc9b;--color-quality-good: #50e3c2;--color-quality-fair: #f5a623;--color-quality-poor: #ee0000;--color-quality-unknown: #888888;--font-family-sans: "Geist Sans", "Inter", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-family-mono: "Geist Mono", "JetBrains Mono", "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;--font-family-display: "Geist Sans", "Inter", system-ui, sans-serif;--font-family-chinese: "Noto Sans SC", sans-serif;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-size-5xl: 48px;--font-size-6xl: 60px;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--spacing-0: 0px;--spacing-1: 4px;--spacing-2: 8px;--spacing-3: 12px;--spacing-4: 16px;--spacing-5: 20px;--spacing-6: 24px;--spacing-7: 28px;--spacing-8: 32px;--spacing-10: 40px;--spacing-12: 48px;--spacing-16: 64px;--spacing-20: 80px;--spacing-24: 96px;--spacing-32: 128px;--radius-none: 0px;--radius-sm: 6px;--radius-base: 8px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 20px;--radius-3xl: 24px;--radius-full: 9999px;--radius-pill: 100px;--shadow-none: none;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-base: 0 1px 2px 0 rgba(0, 0, 0, .04), 0 2px 4px 0 rgba(0, 0, 0, .03);--shadow-md: 0 2px 4px 0 rgba(0, 0, 0, .04), 0 4px 8px 0 rgba(0, 0, 0, .04);--shadow-lg: 0 4px 8px 0 rgba(0, 0, 0, .04), 0 8px 16px 0 rgba(0, 0, 0, .05);--shadow-xl: 0 8px 16px 0 rgba(0, 0, 0, .04), 0 16px 32px 0 rgba(0, 0, 0, .05);--shadow-2xl: 0 16px 32px 0 rgba(0, 0, 0, .05), 0 32px 64px 0 rgba(0, 0, 0, .05);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .04);--z-hide: -1;--z-auto: auto;--z-base: 0;--z-docked: 10;--z-dropdown: 1000;--z-sticky: 1020;--z-banner: 1030;--z-overlay: 1040;--z-modal: 1050;--z-popover: 1060;--z-skip-link: 1070;--z-toast: 1080;--z-tooltip: 1090;--transition-fast: .15s cubic-bezier(0, 0, .2, 1);--transition-normal: .25s cubic-bezier(0, 0, .2, 1);--transition-slow: .35s cubic-bezier(0, 0, .2, 1);--breakpoint-xs: 0px;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--breakpoint-2xl: 1600px}:root,[data-theme=light]{--color-bg-primary: var(--color-neutral-0);--color-bg-secondary: var(--color-neutral-50);--color-bg-tertiary: var(--color-neutral-100);--color-bg-elevated: var(--color-neutral-0);--color-bg-overlay: rgba(0, 0, 0, .45);--color-text-primary: var(--color-neutral-900);--color-text-secondary: var(--color-neutral-600);--color-text-tertiary: var(--color-neutral-500);--color-text-disabled: var(--color-neutral-400);--color-text-inverse: var(--color-neutral-0);--color-border-primary: var(--color-neutral-300);--color-border-secondary: var(--color-neutral-200);--color-border-focus: var(--color-primary-500);--color-border-error: var(--color-error-500);--color-brand-primary: var(--color-primary-500);--color-brand-success: var(--color-success-500);--color-brand-warning: var(--color-warning-500);--color-brand-error: var(--color-error-500);--color-brand-info: var(--color-primary-500)}[data-theme=dark]{--color-bg-primary: var(--color-neutral-1000);--color-bg-secondary: var(--color-neutral-900);--color-bg-tertiary: var(--color-neutral-800);--color-bg-elevated: var(--color-neutral-900);--color-bg-overlay: rgba(0, 0, 0, .65);--color-text-primary: var(--color-neutral-0);--color-text-secondary: var(--color-neutral-300);--color-text-tertiary: var(--color-neutral-400);--color-text-disabled: var(--color-neutral-600);--color-text-inverse: var(--color-neutral-900);--color-border-primary: var(--color-neutral-700);--color-border-secondary: var(--color-neutral-800);--color-border-focus: var(--color-primary-400);--color-border-error: var(--color-error-400);--color-brand-primary: var(--color-primary-400);--color-brand-success: var(--color-success-400);--color-brand-warning: var(--color-warning-400);--color-brand-error: var(--color-error-400);--color-brand-info: var(--color-primary-400);--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-base: 0 1px 2px 0 rgba(0, 0, 0, .35), 0 2px 4px 0 rgba(0, 0, 0, .3);--shadow-md: 0 2px 4px 0 rgba(0, 0, 0, .35), 0 4px 8px 0 rgba(0, 0, 0, .3);--shadow-lg: 0 4px 8px 0 rgba(0, 0, 0, .35), 0 8px 16px 0 rgba(0, 0, 0, .3);--shadow-xl: 0 8px 16px 0 rgba(0, 0, 0, .35), 0 16px 32px 0 rgba(0, 0, 0, .3);--shadow-2xl: 0 16px 32px 0 rgba(0, 0, 0, .4), 0 32px 64px 0 rgba(0, 0, 0, .35)}body,h1,h2,h3,h4,h5,h6,p,figure,blockquote,dl,dd{margin:0}body{min-height:100vh;line-height:var(--line-height-normal);font-family:var(--font-family-sans);font-size:var(--font-size-base);color:var(--color-text-primary);background-color:var(--color-bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}::-webkit-scrollbar-track{background:var(--color-bg-secondary);border-radius:4px}::-webkit-scrollbar-thumb{background:var(--color-border-primary);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--color-border-focus)}::selection{background:var(--color-brand-primary);color:var(--color-text-inverse)}*:focus-visible{outline:2px solid var(--color-border-focus);outline-offset:2px}ul[role=list],ol[role=list]{list-style:none;padding:0}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms;animation-iteration-count:1;transition-duration:.01ms;scroll-behavior:auto}}.font-light{font-weight:var(--font-weight-light)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-disabled{color:var(--color-text-disabled)}.text-success{color:var(--color-brand-success)}.text-warning{color:var(--color-brand-warning)}.text-error{color:var(--color-brand-error)}.text-info{color:var(--color-brand-info)}.bg-primary{background-color:var(--color-bg-primary)}.bg-secondary{background-color:var(--color-bg-secondary)}.bg-tertiary{background-color:var(--color-bg-tertiary)}.border{border:1px solid var(--color-border-primary)}.border-secondary{border:1px solid var(--color-border-secondary)}.border-t{border-top:1px solid var(--color-border-primary)}.border-r{border-right:1px solid var(--color-border-primary)}.border-b{border-bottom:1px solid var(--color-border-primary)}.border-l{border-left:1px solid var(--color-border-primary)}.rounded-none{border-radius:var(--radius-none)}.rounded{border-radius:var(--radius-base)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-none{box-shadow:var(--shadow-none)}.shadow{box-shadow:var(--shadow-base)}.shadow-xl{box-shadow:var(--shadow-xl)}.m-0{margin:var(--spacing-0)}.m-1{margin:var(--spacing-1)}.m-2{margin:var(--spacing-2)}.m-3{margin:var(--spacing-3)}.m-4{margin:var(--spacing-4)}.m-6{margin:var(--spacing-6)}.m-8{margin:var(--spacing-8)}.mt-0{margin-top:var(--spacing-0)}.mt-1{margin-top:var(--spacing-1)}.mt-2{margin-top:var(--spacing-2)}.mt-3{margin-top:var(--spacing-3)}.mt-4{margin-top:var(--spacing-4)}.mt-6{margin-top:var(--spacing-6)}.mt-8{margin-top:var(--spacing-8)}.mb-0{margin-bottom:var(--spacing-0)}.mb-1{margin-bottom:var(--spacing-1)}.mb-2{margin-bottom:var(--spacing-2)}.mb-3{margin-bottom:var(--spacing-3)}.mb-4{margin-bottom:var(--spacing-4)}.mb-6{margin-bottom:var(--spacing-6)}.mb-8{margin-bottom:var(--spacing-8)}.p-0{padding:var(--spacing-0)}.p-1{padding:var(--spacing-1)}.p-2{padding:var(--spacing-2)}.p-3{padding:var(--spacing-3)}.p-4{padding:var(--spacing-4)}.p-6{padding:var(--spacing-6)}.p-8{padding:var(--spacing-8)}.flex{display:flex}.inline-flex{display:inline-flex}.block{display:block}.inline-block{display:inline-block}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.transition-fast{transition:all var(--transition-fast)}.transition-normal{transition:all var(--transition-normal)}.transition-slow{transition:all var(--transition-slow)}.gnss-gps{color:var(--color-gnss-gps)}.gnss-glonass{color:var(--color-gnss-glonass)}.gnss-galileo{color:var(--color-gnss-galileo)}.gnss-beidou{color:var(--color-gnss-beidou)}.gnss-qzss{color:var(--color-gnss-qzss)}.gnss-irnss{color:var(--color-gnss-irnss)}.gnss-sbas{color:var(--color-gnss-sbas)}.quality-excellent{color:var(--color-quality-excellent)}.quality-good{color:var(--color-quality-good)}.quality-fair{color:var(--color-quality-fair)}.quality-poor{color:var(--color-quality-poor)}.quality-unknown{color:var(--color-quality-unknown)}@media (max-width: 575px){.hidden-xs{display:none}.block-xs{display:block}.flex-xs{display:flex}}@media (min-width: 576px) and (max-width: 767px){.hidden-sm{display:none}.block-sm{display:block}.flex-sm{display:flex}}@media (min-width: 768px) and (max-width: 991px){.hidden-md{display:none}.block-md{display:block}.flex-md{display:flex}}@media (min-width: 992px) and (max-width: 1199px){.hidden-lg{display:none}.block-lg{display:block}.flex-lg{display:flex}}@media (min-width: 1200px){.hidden-xl{display:none}.block-xl{display:block}.flex-xl{display:flex}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideInUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fade-in{animation:fadeIn .3s ease-in-out}.animate-slide-in-up{animation:slideInUp .3s ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}@media print{*{background:transparent;color:#000;box-shadow:none;text-shadow:none}.ant-layout-sider,.ant-layout-header{display:none}.ant-layout-content{margin:0;padding:0}.ant-card{border:1px solid #ccc;page-break-inside:avoid}.ant-btn{display:none}}:root{--pf-ink: #FAFAFA;--pf-deep: #F5F5F5;--pf-panel: #FFFFFF;--pf-ocean: #EBEBEB;--pf-lift: #F5F5F5;--pf-signal: #0070F3;--pf-foam: #0761D1;--pf-fix: #F5A623;--pf-pass: #1F9A80;--pf-watch: #AB570A;--pf-fail: #C50000;--pf-fixed: #7928CA;--pf-t0: #171717;--pf-t1: #4D4D4D;--pf-t2: #888888;--pf-border: #EBEBEB;--pf-border2: #A1A1A1;--header-bg: rgba(255,255,255,.94);--header-border: #EBEBEB;--sidebar-bg: #FAFAFA;--content-bg: #FAFAFA;--card-bg: #FFFFFF;--border-color: #EBEBEB;--text-primary: #171717;--text-secondary:#666666;--brand-signal: #0070F3;--brand-foam: #50E3C2;--brand-fix: #F5A623;--brand-tide: #0761D1}[data-theme=dark]{--pf-ink: #0A0A0A;--pf-deep: #141414;--pf-panel: #1C1C1C;--pf-ocean: #141414;--pf-lift: #262626;--pf-signal: #3396FF;--pf-foam: #50E3C2;--pf-fix: #F5A623;--pf-pass: #29BC9B;--pf-watch: #F5A623;--pf-fail: #EE0000;--pf-fixed: #9D5BD2;--pf-t0: #EDEDED;--pf-t1: #A1A1A1;--pf-t2: #707070;--pf-border: #262626;--pf-border2: #333333;--header-bg: rgba(10,10,10,.9);--header-border: #262626;--sidebar-bg: #0A0A0A;--content-bg: #0A0A0A;--card-bg: #1C1C1C;--border-color: #262626;--text-primary: #EDEDED;--text-secondary:#A1A1A1;--brand-signal: #3396FF;--brand-foam: #50E3C2;--brand-fix: #F5A623;--brand-tide: #50E3C2}@media (prefers-color-scheme: dark){:root:not([data-theme=light]):not([data-theme=dark]){--pf-ink: #0A0A0A;--pf-deep: #141414;--pf-panel: #1C1C1C;--pf-ocean: #141414;--pf-lift: #262626;--pf-signal: #3396FF;--pf-foam: #50E3C2;--pf-fix: #F5A623;--pf-pass: #29BC9B;--pf-watch: #F5A623;--pf-fail: #EE0000;--pf-fixed: #9D5BD2;--pf-t0: #EDEDED;--pf-t1: #A1A1A1;--pf-t2: #707070;--pf-border: #262626;--pf-border2: #333333;--header-bg: rgba(10,10,10,.9);--header-border: #262626;--sidebar-bg: #0A0A0A;--content-bg: #0A0A0A;--card-bg: #1C1C1C;--border-color: #262626;--text-primary: #EDEDED;--text-secondary:#A1A1A1;--brand-foam: #50E3C2;--brand-tide: #50E3C2}}.gnsspilot-header{background:var(--header-bg)!important;border-bottom:1px solid var(--border-color)!important}.gnsspilot-header .collapse-button{color:var(--text-primary)!important}.gnsspilot-header .collapse-button:hover{background:#0000000a!important}[data-theme=dark] .gnsspilot-header .collapse-button:hover{background:#ffffff14!important}.gnsspilot-header .notification-button{color:var(--text-primary)!important}.gnsspilot-header .notification-button:hover{background:#0000000a!important}[data-theme=dark] .gnsspilot-header .notification-button:hover{background:#ffffff14!important}.gnsspilot-header .user-dropdown:hover{background:#0000000a!important}[data-theme=dark] .gnsspilot-header .user-dropdown:hover{background:#ffffff14!important}.gnsspilot-sidebar,.gnsspilot-sidebar .ant-layout-sider-children{background:var(--sidebar-bg)!important}.gnsspilot-sidebar .sidebar-logo{background:#0003!important}[data-theme=dark] .gnsspilot-sidebar .sidebar-logo{background:#0000004d!important}.gnsspilot-menu{background:transparent!important}.gnsspilot-menu .ant-menu-item,.gnsspilot-menu .ant-menu-submenu-title,.gnsspilot-menu .ant-menu-item .anticon,.gnsspilot-menu .ant-menu-submenu-title .anticon,.gnsspilot-menu .ant-menu-item span,.gnsspilot-menu .ant-menu-submenu-title span{color:#ffffffb3!important}.gnsspilot-menu .ant-menu-item:hover,.gnsspilot-menu .ant-menu-submenu-title:hover{color:#fff!important}.gnsspilot-menu .ant-menu-item-selected{background:#50e3c21f!important;color:#50e3c2!important;border-left:2px solid #50E3C2!important}.gnsspilot-menu .ant-menu-item-selected .anticon,.gnsspilot-menu .ant-menu-item-selected span{color:#50e3c2!important}.gnsspilot-menu .ant-menu-item:not(.ant-menu-item-selected):hover{background:#50e3c20f!important;color:#fffffff2!important}.gnsspilot-menu .ant-menu-item-divider{border-color:#50e3c214!important;margin:6px 16px!important}.gnsspilot-content{background:var(--content-bg)!important}.ant-card{background:var(--card-bg)!important;border-color:var(--border-color)!important}.ant-card-head{border-bottom-color:var(--border-color)!important;color:var(--text-primary)!important}.ant-card-body,h1,h2,h3,h4,h5,h6,.ant-typography{color:var(--text-primary)!important}p,span,div{color:var(--text-primary)}.ant-btn-text{color:var(--text-primary)!important}.ant-btn-text:hover{background:#0000000a!important}[data-theme=dark] .ant-btn-text:hover{background:#ffffff14!important}.ant-statistic-title{color:var(--text-secondary)!important}.ant-statistic-content{color:var(--text-primary)!important}.ant-table{background:var(--card-bg)!important;color:var(--text-primary)!important}.ant-table-thead>tr>th{background:var(--card-bg)!important;color:var(--text-primary)!important;border-bottom-color:var(--border-color)!important}.ant-table-tbody>tr>td{border-bottom-color:var(--border-color)!important;color:var(--text-primary)!important}.ant-table-tbody>tr:hover>td{background:#00000005!important}[data-theme=dark] .ant-table-tbody>tr:hover>td{background:#ffffff0a!important}.ant-form-item-label>label{color:var(--text-primary)!important}.ant-input,.ant-input-number,.ant-select-selector{background:var(--card-bg)!important;border-color:var(--border-color)!important;color:var(--text-primary)!important}.ant-input::placeholder,.ant-input-number::placeholder{color:var(--text-secondary)!important}.ant-modal-content{background:var(--card-bg)!important}.ant-modal-header{background:var(--card-bg)!important;border-bottom-color:var(--border-color)!important}.ant-modal-title,.ant-modal-body{color:var(--text-primary)!important}.ant-modal-footer{border-top-color:var(--border-color)!important}.ant-dropdown-menu{background:var(--card-bg)!important}.ant-dropdown-menu-item{color:var(--text-primary)!important}.ant-dropdown-menu-item:hover{background:#0000000a!important}[data-theme=dark] .ant-dropdown-menu-item:hover{background:#ffffff14!important}.ant-badge-count{background:#e00!important;color:#fff!important}.ant-tag{border-color:var(--border-color)!important}.ant-tooltip-inner{background:#000000d9!important;color:#fff!important}[data-theme=dark] .ant-tooltip-inner{background:#ffffffd9!important;color:#000!important}@media (max-width: 768px){.gnsspilot-header{padding:0 16px!important}.gnsspilot-content{padding:16px!important}}.gnsspilot-header,.gnsspilot-sidebar,.gnsspilot-content,.ant-card,.ant-btn-text{transition:background-color .3s ease,color .3s ease,border-color .3s ease!important}[data-theme=dark] .ant-message{color:#ffffffd9!important}[data-theme=dark] .ant-message-notice-content{background:#1c1c1c!important;color:#ffffffd9!important;box-shadow:0 4px 12px #00000080!important}[data-theme=dark] .ant-message-success .anticon{color:#29bc9b}[data-theme=dark] .ant-message-error .anticon{color:#e00}[data-theme=dark] .ant-message-warning .anticon{color:#f5a623}[data-theme=dark] .ant-message-info .anticon{color:#0070f3}[data-theme=dark] .ant-alert{background:#1c1c1c!important;border-color:#262626!important}[data-theme=dark] .ant-alert-message{color:#ffffffd9!important}[data-theme=dark] .ant-alert-description{color:#ffffffa6!important}[data-theme=dark] .ant-alert-info{background:#111b26!important;border-color:#15395b!important}[data-theme=dark] .ant-alert-info .ant-alert-icon{color:#0070f3!important}[data-theme=dark] .ant-alert-info .ant-alert-message{color:#ffffffd9!important}[data-theme=dark] .ant-alert-info .ant-alert-description{color:#ffffffa6!important}[data-theme=dark] .ant-alert-success{background:#0f2922!important;border-color:#1a4a3d!important}[data-theme=dark] .ant-alert-success .ant-alert-icon{color:#29bc9b!important}[data-theme=dark] .ant-alert-success .ant-alert-message{color:#ffffffd9!important}[data-theme=dark] .ant-alert-success .ant-alert-description{color:#ffffffa6!important}[data-theme=dark] .ant-alert-warning{background:#2b2111!important;border-color:#594214!important}[data-theme=dark] .ant-alert-warning .ant-alert-icon{color:#f5a623!important}[data-theme=dark] .ant-alert-warning .ant-alert-message{color:#ffffffd9!important}[data-theme=dark] .ant-alert-warning .ant-alert-description{color:#ffffffa6!important}[data-theme=dark] .ant-alert-error{background:#2a1215!important;border-color:#58181c!important}[data-theme=dark] .ant-alert-error .ant-alert-icon{color:#e00!important}[data-theme=dark] .ant-alert-error .ant-alert-message{color:#ffffffd9!important}[data-theme=dark] .ant-alert-error .ant-alert-description{color:#ffffffa6!important}[data-theme=dark] .ant-modal-content{background:#1c1c1c;color:#ffffffd9}[data-theme=dark] .ant-modal-header{background:#1c1c1c;border-bottom-color:#262626}[data-theme=dark] .ant-modal-title{color:#ffffffd9}[data-theme=dark] .ant-modal-footer{border-top-color:#262626}[data-theme=dark] .ant-modal-close-x{color:#ffffff73}[data-theme=dark] .ant-modal-close-x:hover{color:#ffffffd9}[data-theme=dark] .ant-notification-notice{background:#1c1c1c;color:#ffffffd9;box-shadow:0 4px 12px #00000080}[data-theme=dark] .ant-notification-notice-message{color:#ffffffd9}[data-theme=dark] .ant-notification-notice-description{color:#ffffffa6}[data-theme=dark] .ant-notification-notice-close{color:#ffffff73}[data-theme=dark] .ant-notification-notice-close:hover{color:#ffffffd9}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-sans-latin-400-normal-gapTbOY8.woff2) format("woff2"),url(/assets/fonts/geist-sans-latin-400-normal-BOaIZNA2.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-sans-latin-500-normal-uokXdC-Q.woff2) format("woff2"),url(/assets/fonts/geist-sans-latin-500-normal-CN2lyvyL.woff) format("woff")}@font-face{font-family:Geist Sans;font-style:normal;font-display:swap;font-weight:600;src:url(/assets/fonts/geist-sans-latin-600-normal-DFOURf8L.woff2) format("woff2"),url(/assets/fonts/geist-sans-latin-600-normal-CA1yjETN.woff) format("woff")}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-cyrillic-ext-400-normal-BLwobv06.woff2) format("woff2"),url(/assets/fonts/geist-mono-cyrillic-ext-400-normal-DBbzHm17.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-cyrillic-400-normal-DoshcOXv.woff2) format("woff2"),url(/assets/fonts/geist-mono-cyrillic-400-normal-CeA7eGSt.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-symbols2-400-normal-BCZbPWmY.woff2) format("woff2"),url(/assets/fonts/geist-mono-symbols2-400-normal-B5fXMCGq.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-vietnamese-400-normal-0XzkwOuW.woff2) format("woff2"),url(/assets/fonts/geist-mono-vietnamese-400-normal-CyOwoevh.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-latin-ext-400-normal-C1xxG8eb.woff2) format("woff2"),url(/assets/fonts/geist-mono-latin-ext-400-normal-a1APXIwD.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/fonts/geist-mono-latin-400-normal-DKaoCDn5.woff2) format("woff2"),url(/assets/fonts/geist-mono-latin-400-normal-BXAprPdR.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-cyrillic-ext-500-normal-CNNmFQoa.woff2) format("woff2"),url(/assets/fonts/geist-mono-cyrillic-ext-500-normal-C07zWAFX.woff) format("woff");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-cyrillic-500-normal-BkE2O7RC.woff2) format("woff2"),url(/assets/fonts/geist-mono-cyrillic-500-normal-BgLpzsdg.woff) format("woff");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-symbols2-500-normal-C-JOMCKk.woff2) format("woff2"),url(/assets/fonts/geist-mono-symbols2-500-normal-BYvOiszX.woff) format("woff");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-vietnamese-500-normal-ICAI4fgn.woff2) format("woff2"),url(/assets/fonts/geist-mono-vietnamese-500-normal-Do_laDd2.woff) format("woff");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-latin-ext-500-normal-CDyCFkgU.woff2) format("woff2"),url(/assets/fonts/geist-mono-latin-ext-500-normal-CzSM7th5.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-display:swap;font-weight:500;src:url(/assets/fonts/geist-mono-latin-500-normal-C3sF8Y1B.woff2) format("woff2"),url(/assets/fonts/geist-mono-latin-500-normal-YfPbDI_o.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--font-family-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;--font-family-mono: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, Courier, monospace;--font-size-xs: 12px;--font-size-sm: 14px;--font-size-base: 16px;--font-size-lg: 18px;--font-size-xl: 20px;--font-size-2xl: 24px;--font-size-3xl: 30px;--font-size-4xl: 36px;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--spacing-2xl: 48px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--z-base: 0;--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .35s cubic-bezier(.4, 0, .2, 1)}:root,[data-theme=light]{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-elevated: #ffffff;--bg-overlay: rgba(0, 0, 0, .5);--content-bg: #f8fafc;--card-bg: #ffffff;--header-bg: #001529;--sidebar-bg: #ffffff;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #64748b;--text-disabled: #94a3b8;--text-inverse: #ffffff;--border-primary: #e2e8f0;--border-secondary: #cbd5e1;--border-focus: #0070F3;--hover-bg: #f1f5f9;--selected-bg: #e6f7ff;--active-bg: #bae7ff;--primary-color: #0070F3;--success-color: #10b981;--warning-color: #f59e0b;--error-color: #ef4444;--info-color: #0070F3;--shadow: 0 2px 8px rgba(0, 0, 0, .08);--shadow-hover: 0 4px 16px rgba(0, 0, 0, .12)}[data-theme=dark]{--bg-primary: #0b1117;--bg-secondary: #0f1419;--bg-tertiary: #161b22;--bg-elevated: #0f1419;--bg-overlay: rgba(0, 0, 0, .7);--content-bg: #0b1117;--card-bg: #0f1419;--header-bg: #0b1117;--sidebar-bg: #0f1419;--text-primary: #e6edf3;--text-secondary: #c9d1d9;--text-tertiary: #8b949e;--text-disabled: #6e7681;--text-inverse: #0f172a;--border-primary: #2d333b;--border-secondary: #21262d;--border-focus: #3396FF;--hover-bg: #161b22;--selected-bg: #1f6feb;--active-bg: #388bfd;--primary-color: #3396FF;--success-color: #3fb950;--warning-color: #d29922;--error-color: #f85149;--info-color: #3396FF;--shadow: 0 2px 8px rgba(0, 0, 0, .4);--shadow-hover: 0 4px 16px rgba(0, 0, 0, .6)}*,*:before,*:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{margin:0;padding:0;min-height:100vh;font-family:var(--font-family-sans);font-size:var(--font-size-base);font-weight:var(--font-weight-normal);line-height:var(--line-height-normal);color:var(--text-primary);background-color:var(--content-bg);transition:background-color var(--transition-base),color var(--transition-base)}#root{width:100%;min-height:100vh}h1,h2,h3,h4,h5,h6{margin:0 0 var(--spacing-md) 0;font-weight:var(--font-weight-semibold);line-height:var(--line-height-tight);color:var(--text-primary)}h1{font-size:var(--font-size-4xl)}h2{font-size:var(--font-size-3xl)}h3{font-size:var(--font-size-2xl)}h4{font-size:var(--font-size-xl)}h5{font-size:var(--font-size-lg)}h6{font-size:var(--font-size-base)}p{margin:0 0 var(--spacing-md) 0;color:var(--text-secondary)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--border-focus)}::selection{background:var(--primary-color);color:var(--text-inverse)}*:focus-visible{outline:2px solid var(--border-focus);outline-offset:2px}.ant-layout{background:var(--content-bg)!important;min-height:100vh}.ant-layout-header{background:var(--header-bg)!important;padding:0 var(--spacing-lg);height:64px;line-height:64px;border-bottom:1px solid var(--border-secondary);box-shadow:var(--shadow-sm)}.ant-layout-sider{background:var(--sidebar-bg)!important;border-right:1px solid var(--border-secondary);box-shadow:var(--shadow-md)}.ant-layout-content{background:var(--content-bg)!important;padding:0;margin:0}.ant-menu{background:transparent!important;border:none!important;color:var(--text-primary)!important}.ant-menu-item{margin:var(--spacing-xs) var(--spacing-sm)!important;border-radius:var(--radius-md)!important;height:40px!important;line-height:40px!important;color:var(--text-secondary)!important;font-weight:var(--font-weight-medium);transition:all var(--transition-fast)}.ant-menu-item:hover{background-color:var(--hover-bg)!important;color:var(--primary-color)!important}.ant-menu-item-selected{background-color:var(--selected-bg)!important;color:var(--primary-color)!important;font-weight:var(--font-weight-semibold)}.ant-menu-item-group-title{padding:var(--spacing-sm) var(--spacing-md)!important;font-size:var(--font-size-xs)!important;color:var(--text-tertiary)!important;font-weight:var(--font-weight-semibold)!important;text-transform:uppercase!important;letter-spacing:.5px}.ant-card{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-md)!important;border:1px solid var(--border-secondary)!important;background:var(--card-bg)!important;margin-bottom:var(--spacing-md);transition:all var(--transition-base)}.ant-card:hover{box-shadow:var(--shadow-lg)!important;transform:translateY(-2px)}.ant-card-head{border-bottom:1px solid var(--border-secondary)!important;padding:0 var(--spacing-lg)!important;background:var(--card-bg)!important}.ant-card-head-title{font-size:var(--font-size-base)!important;font-weight:var(--font-weight-semibold)!important;color:var(--text-primary)!important}.ant-card-body{padding:var(--spacing-lg)!important;color:var(--text-primary)!important}.ant-btn{border-radius:var(--radius-md)!important;font-weight:var(--font-weight-medium)!important;transition:all var(--transition-fast)!important;height:32px;padding:0 var(--spacing-md);font-size:var(--font-size-sm)}.ant-btn-primary{background:var(--primary-color)!important;border-color:var(--primary-color)!important;color:var(--text-inverse)!important}.ant-btn-primary:hover{opacity:.9;transform:translateY(-1px);box-shadow:0 4px 12px #1890ff4d!important}.ant-btn-default{background:var(--bg-primary)!important;border-color:var(--border-primary)!important;color:var(--text-secondary)!important}.ant-btn-default:hover{background:var(--hover-bg)!important;border-color:var(--primary-color)!important;color:var(--primary-color)!important}.ant-input,.ant-input-number,.ant-picker{border-radius:var(--radius-md)!important;border:1px solid var(--border-primary)!important;background:var(--bg-primary)!important;color:var(--text-primary)!important;padding:var(--spacing-sm) var(--spacing-md)!important;font-size:var(--font-size-sm);transition:all var(--transition-fast)}.ant-input:focus,.ant-input-focused,.ant-input-number:focus,.ant-picker:focus{border-color:var(--border-focus)!important;box-shadow:0 0 0 2px #1890ff33!important}.ant-input::placeholder{color:var(--text-disabled)!important}.ant-select-selector{border-radius:var(--radius-md)!important;border:1px solid var(--border-primary)!important;background:var(--bg-primary)!important;color:var(--text-primary)!important;transition:all var(--transition-fast)}.ant-select:not(.ant-select-disabled):hover .ant-select-selector{border-color:var(--border-focus)!important}.ant-table{background:var(--card-bg)!important;border-radius:var(--radius-lg)!important}.ant-table-thead>tr>th{background:var(--bg-secondary)!important;border-bottom:2px solid var(--border-primary)!important;font-weight:var(--font-weight-semibold)!important;color:var(--text-primary)!important;font-size:var(--font-size-sm)}.ant-table-tbody>tr>td{border-bottom:1px solid var(--border-secondary)!important;color:var(--text-primary)!important;font-size:var(--font-size-sm)}.ant-table-tbody>tr:hover>td{background:var(--hover-bg)!important}.ant-statistic-title{color:var(--text-secondary)!important;font-weight:var(--font-weight-semibold)!important;font-size:var(--font-size-sm)!important;text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--spacing-xs)}.ant-statistic-content{color:var(--text-primary)!important;font-weight:var(--font-weight-semibold)!important;font-size:var(--font-size-3xl)!important}.ant-modal-content{border-radius:var(--radius-lg)!important;background:var(--card-bg)!important}.ant-modal-header{border-bottom:1px solid var(--border-secondary)!important;border-radius:var(--radius-lg) var(--radius-lg) 0 0!important;background:var(--card-bg)!important}.ant-modal-title{font-size:var(--font-size-lg)!important;font-weight:var(--font-weight-semibold)!important;color:var(--text-primary)!important}.ant-modal-body{background:var(--card-bg)!important;color:var(--text-primary)!important}.ant-modal-footer{border-top:1px solid var(--border-secondary)!important;border-radius:0 0 var(--radius-lg) var(--radius-lg)!important;background:var(--card-bg)!important}.ant-notification{z-index:var(--z-tooltip)!important}.ant-notification-notice{border-radius:var(--radius-lg)!important;box-shadow:var(--shadow-xl)!important;background:var(--card-bg)!important;border:1px solid var(--border-secondary)!important}.ant-notification-notice-message{color:var(--text-primary)!important;font-weight:var(--font-weight-semibold)!important}.ant-notification-notice-description{color:var(--text-secondary)!important}.ant-form-item-label>label{color:var(--text-primary)!important;font-weight:var(--font-weight-semibold)!important;font-size:var(--font-size-sm)!important}.ant-upload-drag{background:var(--card-bg)!important;border:2px dashed var(--border-primary)!important;border-radius:var(--radius-lg)!important;transition:all var(--transition-base)}.ant-upload-drag:hover{border-color:var(--primary-color)!important;background:var(--hover-bg)!important}.ant-upload-drag .ant-upload-text{color:var(--text-primary)!important;font-weight:var(--font-weight-semibold)!important}.ant-upload-drag .ant-upload-hint{color:var(--text-secondary)!important}@media (max-width: 768px){:root{--font-size-base: 14px;--spacing-md: 12px;--spacing-lg: 16px}.ant-layout-header{padding:0 var(--spacing-md)}.ant-card-body{padding:var(--spacing-md)!important}}@media (max-width: 576px){:root{--font-size-base: 14px;--spacing-md: 8px;--spacing-lg: 12px}}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}@media print{*{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}.ant-layout-sider,.ant-layout-header{display:none!important}.ant-card{border:1px solid #ccc!important;page-break-inside:avoid}.ant-btn{display:none!important}}
