:root{--bg-primary: #ffffff;--bg-secondary: #f0f2f5;--bg-elevated: #ffffff;--text-primary: rgba(0, 0, 0, .85);--text-secondary: rgba(0, 0, 0, .45);--border-color: #d9d9d9;--shadow-color: rgba(0, 0, 0, .05)}.dark-mode{--bg-primary: #141414;--bg-secondary: #1f1f1f;--bg-elevated: #1f1f1f;--text-primary: rgba(255, 255, 255, .85);--text-secondary: rgba(255, 255, 255, .45);--border-color: #434343;--shadow-color: rgba(0, 0, 0, .45)}.dark-mode{background-color:var(--bg-primary);color:var(--text-primary)}.dark-mode .ant-layout{background:var(--bg-primary)}.dark-mode .ant-layout-header{background:var(--bg-elevated);border-bottom:1px solid var(--border-color)}.dark-mode .ant-layout-sider,.dark-mode .ant-menu{background:var(--bg-elevated)}.dark-mode .ant-card{background:var(--bg-elevated);border-color:var(--border-color);box-shadow:0 2px 8px var(--shadow-color)}.dark-mode .ant-table{background:var(--bg-elevated)}.dark-mode .ant-table-thead>tr>th{background:var(--bg-secondary);border-color:var(--border-color)}.dark-mode .ant-table-tbody>tr>td{border-color:var(--border-color)}.dark-mode .ant-table-tbody>tr:hover>td{background:var(--bg-secondary)}.dark-mode .ant-modal-content{background:var(--bg-elevated)}.dark-mode .ant-form-item-label>label{color:var(--text-primary)}.dark-mode .ant-statistic-title{color:var(--text-secondary)}.dark-mode .ant-statistic-content{color:var(--text-primary)}.dark-mode .recharts-text{fill:var(--text-secondary)}.dark-mode .recharts-cartesian-grid line{stroke:var(--border-color)}.dark-mode .recharts-legend-item-text{color:var(--text-primary)!important}body,.ant-layout,.ant-card,.ant-table,.ant-modal-content{transition:background-color .3s ease,color .3s ease,border-color .3s ease}.logo{height:64px;display:flex;align-items:center;justify-content:center;gap:12px;color:#fff;font-size:20px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.1)}.logo-text{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ant-layout-sider-trigger{background-color:#001529!important}.ant-menu-dark .ant-menu-item,.ant-menu-dark .ant-menu-submenu-title{color:#ffffffd9!important}.ant-menu-dark .ant-menu-item-selected{color:#fff!important;background-color:#1890ff!important}.ant-menu-dark .ant-menu-item .anticon,.ant-menu-dark .ant-menu-submenu-title .anticon{color:#ffffffd9!important}.ant-menu-dark .ant-menu-item-selected .anticon,.ant-menu-dark .ant-menu-item:hover,.ant-menu-dark .ant-menu-submenu-title:hover{color:#fff!important}.company-select-highlighted .ant-select-selector{border:2px solid #52c41a!important;background-color:#f6ffed!important;box-shadow:0 0 8px #52c41a4d!important;font-weight:600!important}.company-select-highlighted .ant-select-selector:hover{border-color:#52c41a!important;box-shadow:0 0 12px #52c41a80!important}.company-select-highlighted.ant-select-focused .ant-select-selector{border-color:#52c41a!important;box-shadow:0 0 0 2px #52c41a33!important}.year-select-highlighted .ant-select-selector{border:2px solid #1890ff!important;background-color:#e6f7ff!important;box-shadow:0 0 8px #1890ff4d!important;font-weight:600!important}.year-select-highlighted .ant-select-selector:hover{border-color:#1890ff!important;box-shadow:0 0 12px #1890ff80!important}.year-select-highlighted.ant-select-focused .ant-select-selector{border-color:#1890ff!important;box-shadow:0 0 0 2px #1890ff33!important}.login-container{min-height:100vh;display:flex;flex-direction:row;background-color:#fff}.login-left-panel{flex:1.2;background:linear-gradient(135deg,#1a3353,#2c5364);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.login-left-panel:after{content:"";position:absolute;width:200%;height:200%;background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 70%);top:-50%;left:-50%}.login-right-panel{flex:1;display:flex;align-items:center;justify-content:center;padding:40px;background-color:#fff}.login-logo-wrapper{z-index:2;text-align:center;animation:fadeIn 1s ease-out}.login-brand-logo{width:320px;height:auto;border-radius:32px;box-shadow:0 20px 50px #0000004d;border:8px solid rgba(255,255,255,.1);transition:transform .3s ease}.login-brand-logo:hover{transform:scale(1.02)}.login-form-wrapper{width:100%;max-width:420px;padding:24px}.login-title-section{margin-bottom:32px}.login-footer-section{text-align:center;padding-top:32px;margin-top:24px;border-top:1px solid #f0f0f0}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 992px){.login-left-panel{display:none}.login-right-panel{flex:1}}.login-loading-overlay{position:absolute;inset:0;background:#fffc;display:flex;align-items:center;justify-content:center;z-index:10}.ant-form-item-label>label{font-weight:500;color:#4a5568}.ant-input-affix-wrapper{padding-top:8px;padding-bottom:8px;border-color:#e2e8f0}.ant-input-affix-wrapper:hover,.ant-input-affix-wrapper-focused{border-color:#1a3353!important}.login-submit-btn{background:#1a3353!important;border-color:#1a3353!important;box-shadow:0 4px 14px #1a33534d}.login-submit-btn:hover{background:#25476a!important;border-color:#25476a!important;transform:translateY(-1px)}.sysadmin-alert{border-radius:12px;border:1px solid #d3adf7;background-color:#f9f0ff}.ant-form-item{margin-bottom:20px}.ant-input-affix-wrapper,.ant-input{border-radius:8px}.ant-btn{border-radius:8px;height:48px;font-size:16px;font-weight:500}html,body{width:100%;height:100%}input::-ms-clear,input::-ms-reveal{display:none}*,*:before,*:after{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%;-ms-overflow-style:scrollbar;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{margin:0}[tabindex="-1"]:focus{outline:none}hr{box-sizing:content-box;height:0;overflow:visible}h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5em;font-weight:500}p{margin-top:0;margin-bottom:1em}abbr[title],abbr[data-original-title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;border-bottom:0;cursor:help}address{margin-bottom:1em;font-style:normal;line-height:inherit}input[type=text],input[type=password],input[type=number],textarea{-webkit-appearance:none}ol,ul,dl{margin-top:0;margin-bottom:1em}ol ol,ul ul,ol ul,ul ol{margin-bottom:0}dt{font-weight:500}dd{margin-bottom:.5em;margin-left:0}blockquote{margin:0 0 1em}dfn{font-style:italic}b,strong{font-weight:bolder}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}pre,code,kbd,samp{font-size:1em;font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,Courier,monospace}pre{margin-top:0;margin-bottom:1em;overflow:auto}figure{margin:0 0 1em}img{vertical-align:middle;border-style:none}a,area,button,[role=button],input:not([type=range]),label,select,summary,textarea{touch-action:manipulation}table{border-collapse:collapse}caption{padding-top:.75em;padding-bottom:.3em;text-align:left;caption-side:bottom}input,button,select,optgroup,textarea{margin:0;color:inherit;font-size:inherit;font-family:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}button,html [type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{padding:0;border-style:none}input[type=radio],input[type=checkbox]{box-sizing:border-box;padding:0}input[type=date],input[type=time],input[type=datetime-local],input[type=month]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}fieldset{min-width:0;margin:0;padding:0;border:0}legend{display:block;width:100%;max-width:100%;margin-bottom:.5em;padding:0;color:inherit;font-size:1.5em;line-height:inherit;white-space:normal}progress{vertical-align:baseline}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-cancel-button,[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}summary{display:list-item}template{display:none}[hidden]{display:none!important}@media (max-width: 575px){h1,.ant-typography h1{font-size:24px!important}h2,.ant-typography h2{font-size:20px!important}h3,.ant-typography h3{font-size:18px!important}h4,.ant-typography h4{font-size:16px!important}.ant-card{margin-bottom:12px}.ant-card-head,.ant-card-body{padding:12px 16px}.ant-card-head-title{font-size:16px}.ant-table{font-size:12px}.ant-table-thead>tr>th{padding:8px 4px}.ant-table-tbody>tr>td{padding:8px 4px}.mobile-hide{display:none!important}.ant-btn{height:36px;padding:4px 12px;font-size:13px}.ant-btn-group .ant-btn{padding:4px 8px}.ant-form-item{margin-bottom:16px}.ant-form-item-label{padding:0 0 4px}.ant-statistic{padding:12px}.ant-statistic-content{font-size:20px!important}.ant-statistic-title{font-size:12px}.ant-modal{max-width:calc(100vw - 32px);margin:16px auto}.ant-modal-body{padding:16px}.ant-space-item{margin-bottom:8px!important}.ant-menu-item{padding:0 12px}.ant-layout-header{padding:0 12px;height:56px;line-height:56px}.ant-layout-content{padding:12px}.ant-drawer-content-wrapper{width:100%!important;max-width:100%}.recharts-wrapper{font-size:10px}.recharts-legend-wrapper{font-size:11px}.ant-picker,.ant-picker-range{width:100%}.ant-select{width:100%!important}.ant-tabs-nav{margin:0 0 12px}.ant-tabs-tab{padding:8px 12px;font-size:13px}}@media (min-width: 576px) and (max-width: 991px){.ant-card-body{padding:16px}.ant-table{font-size:13px}.tablet-hide{display:none!important}.ant-statistic-content{font-size:22px!important}.ant-layout-content{padding:16px}.recharts-wrapper{font-size:11px}}@media (max-width: 991px){.ant-btn,.ant-input,.ant-select-selector,.ant-picker{min-height:40px}.ant-space-horizontal>.ant-space-item{margin-right:12px}.ant-space-vertical>.ant-space-item{margin-bottom:12px}a{padding:4px 0;display:inline-block}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.ant-table-thead>tr>th{position:sticky;top:0;z-index:10}.ant-card{width:100%}.ant-row{flex-direction:column}.ant-col{width:100%;max-width:100%}.ant-pagination{text-align:center}.ant-pagination-options{display:none}.ant-breadcrumb{font-size:12px}.ant-breadcrumb-separator{margin:0 4px}}@media (max-height: 500px) and (orientation: landscape){.ant-layout-header{height:48px;line-height:48px}.ant-card-body{padding:12px}.ant-modal-body{max-height:calc(100vh - 120px);overflow-y:auto}}@media print{.ant-layout-sider,.ant-layout-header,.ant-btn,.ant-pagination{display:none!important}.ant-layout-content{padding:0;width:100%}.ant-table{font-size:10px}.ant-table-thead>tr>th,.ant-table-tbody>tr>td{padding:4px}.ant-card{page-break-inside:avoid}.ant-card,.ant-table{box-shadow:none;border:1px solid #000}}.mobile-only{display:none}@media (max-width: 767px){.mobile-only{display:block}.desktop-only{display:none!important}}.mobile-center{text-align:center}@media (min-width: 768px){.mobile-center{text-align:left}}.mobile-margin-0{margin:0!important}@media (min-width: 768px){.mobile-margin-0{margin:16px!important}}.mobile-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:thin}@supports (padding: max(0px)){.safe-area-padding{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom))}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{width:100%;min-height:100vh}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.ant-btn{font-weight:500}.ant-card{border-radius:8px}.ant-table{font-size:14px}.ant-table-thead>tr>th{font-weight:600;background:#fafafa}.text-center{text-align:center}.flex-center{display:flex;align-items:center;justify-content:center}.full-height{height:100vh}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-in}.ant-input[disabled],.ant-picker-input>input[disabled],.ant-select-disabled.ant-select-single:not(.ant-select-customize-input) .ant-select-selector{color:#000000d9!important;background-color:#f9f9f9!important;opacity:1!important;cursor:default;border-color:#d9d9d9!important}
