:root{--primary-color: #1890ff;--primary-hover: #40a9ff;--background: #f0f2f5;--header-bg: #096dd9;--sidebar-bg: #001529;--text-color: rgba(0, 0, 0, .85);--text-secondary: rgba(0, 0, 0, .45)}html,body{margin:0;padding:0;height:100%;overflow:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;background-color:var(--background)}.main-layout{min-height:100vh;background:var(--background);display:flex;flex-direction:column}.header{height:64px;padding:0 24px;background:var(--header-bg);display:flex;justify-content:space-between;align-items:center;box-shadow:0 1px 4px #0000001a;z-index:100}.header-title{color:#fff;font-size:20px;font-weight:600;margin:0}.header-user{display:flex;align-items:center;gap:16px;color:#fff}.header-user span{font-weight:500}.sider{height:100vh;overflow-y:auto;background:var(--sidebar-bg);padding:16px 0;position:fixed;left:0;top:64px;z-index:99}.menu{background:transparent;border-right:none;height:100%}.menu .ant-menu-item-selected,.menu .ant-menu-item:hover{background:#ffffff1a!important}.page-content{min-height:calc(100vh - 128px);padding:24px;max-width:1200px;margin:0 auto}.breadcrumb{margin-bottom:24px;padding:8px 16px;background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000000d}.breadcrumb .ant-breadcrumb-separator{color:var(--text-secondary)}.breadcrumb .ant-breadcrumb-link{color:var(--text-color)}.breadcrumb .ant-breadcrumb-link:hover{color:var(--primary-color)}.ant-btn{border-radius:4px!important;padding:8px 16px!important;font-weight:500!important}.ant-btn-primary{background:var(--primary-color)!important;border-color:var(--primary-color)!important}.ant-btn-primary:hover{background:var(--primary-hover)!important;border-color:var(--primary-hover)!important}.ant-card{border-radius:4px!important;box-shadow:0 1px 4px #00152914!important}.ant-table{background:#fff!important}.ant-table-thead>tr>th{background:#fafafa!important;border-bottom:1px solid #f0f0f0!important}.ant-table-tbody>tr:hover{background:#fafafa!important}.ant-form-item-label{color:var(--text-color)!important}.ant-form-item-control{line-height:1.5715!important}.ant-input,.ant-select-selector{border-radius:4px!important;border:1px solid #d9d9d9!important}.ant-modal-content{border-radius:4px!important}.ant-modal-header{border-bottom:1px solid #f0f0f0!important}.ant-modal-body{padding:24px!important}.ant-upload-list-item{border-radius:4px!important;margin-bottom:8px!important}@media (max-width: 768px){.header{padding:0 16px}.header-user{gap:8px}.sider{width:200px;padding:8px 0}.content-wrapper{padding:16px 16px 16px 200px}.content-wrapper.no-sidebar{padding-left:0}}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(135deg,#f0f2f5,#e6e9ec);padding:20px;position:relative;overflow:hidden}.login-container:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background:url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320"><path fill="%231890ff" fill-opacity="0.1" d="M0,128L48,133.3C96,139,192,149,288,144C384,139,480,117,576,106.7C672,96,768,96,864,112C960,128,1056,160,1152,154.7C1248,149,1344,107,1392,85.3L1440,64L1440,320L1392,320C1344,320,1248,320,1152,320C1056,320,960,320,864,320C768,320,672,320,576,320C480,320,384,320,288,320C192,320,96,320,48,320L0,320Z"></path></svg>') no-repeat center center;opacity:.1;z-index:0}.login-card{width:100%;max-width:360px;background:#fff;border-radius:16px;box-shadow:0 10px 30px #0000001a;padding:32px;margin:20px;position:relative;z-index:1;transition:transform .3s ease}.login-card:hover{transform:translateY(-5px)}.login-header{text-align:center;margin-bottom:32px}.login-title{color:#1890ff;font-size:28px;font-weight:600;margin-bottom:8px;-webkit-background-clip:text;-webkit-text-fill-color:transparent;background:linear-gradient(135deg,#1890ff,#40a9ff)}.login-subtitle{color:#00000073;font-size:14px;margin:0}.login-form{width:100%;display:flex;flex-direction:column;gap:24px}.login-form-item{width:100%;margin:0}.login-form-item .ant-form-item-label{width:100%;margin-bottom:8px}.login-form-item .ant-form-item-control{width:100%}.login-input{width:100%;height:48px!important;border-radius:8px;font-size:16px;border:1px solid #f0f0f0;background:#fff;transition:all .2s ease;position:relative}.login-input .ant-input-prefix{color:#00000040;font-size:18px;margin-right:8px}.login-input:focus .ant-input-prefix,.login-input:focus .ant-input-suffix{color:#1890ff}.login-input:hover .ant-input-prefix,.login-input:hover .ant-input-suffix{color:#00000073}.login-input .ant-input-suffix{color:#00000040;font-size:18px;margin-left:8px;cursor:pointer;position:absolute;right:16px;top:50%;transform:translateY(-50%);transition:all .2s ease}.login-input .ant-input-suffix:hover{color:#000000a6}.login-input .ant-input-suffix:active{color:#1890ff}.login-input .ant-input-clear-icon{color:#00000040;font-size:18px;cursor:pointer;position:absolute;right:40px;top:50%;transform:translateY(-50%);transition:all .2s ease}.login-input .ant-input-clear-icon:hover{color:#000000a6}.login-input .ant-input-clear-icon:active{color:#1890ff}.login-input.ant-input-password-icon{padding-right:64px}.login-input .ant-input-password-icon{color:#00000040;font-size:18px;transition:all .2s ease;cursor:pointer;position:absolute;right:16px;top:50%;transform:translateY(-50%)}.login-input:hover .ant-input-password-icon{color:#00000073}.login-input:focus .ant-input-password-icon{color:#1890ff}.login-input .ant-input-password-icon:hover{color:#000000a6}.login-input .ant-input-password-icon:active{color:#1890ff}.login-input:focus{border-color:#1890ff;box-shadow:0 0 0 2px #1890ff33;background:#fff}.login-input:hover{border-color:#e6e6e6}.login-input::placeholder{color:#00000073;font-size:15px}.login-actions{display:flex;justify-content:space-between;align-items:center;gap:16px;width:100%;margin-top:16px}.forgot-password{color:#1890ff;font-size:14px;transition:color .2s ease;min-width:120px;text-align:right}.forgot-password:hover{color:#40a9ff;text-decoration:underline}.login-button{width:100%;height:48px;background:linear-gradient(135deg,#1890ff,#40a9ff);border:none;font-weight:600;font-size:16px;transition:all .2s ease}.login-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #1890ff33}.login-button:active{transform:translateY(0)}.register-link{text-align:center;margin-top:24px;color:#00000073;font-size:14px;width:100%}.register-link a{color:#1890ff;font-weight:600;text-decoration:none;transition:color .2s ease}.register-link a:hover{color:#40a9ff;text-decoration:underline}.login-error{color:#ff4d4f;font-size:14px;margin-bottom:16px;text-align:center;padding:8px 16px;border-radius:8px;background:#ff4d4f0d;width:100%}@media (max-width: 768px){.login-container{padding:10px}.login-card{margin:10px;padding:24px}.login-title{font-size:24px}.login-subtitle{font-size:13px}.login-input,.login-button{height:44px}.login-form{gap:16px}}.loading-container{display:flex;align-items:center;justify-content:center;min-height:100vh;background-color:#f5f5f5}.loading-content{background-color:#fff;padding:2rem;border-radius:12px;box-shadow:0 4px 6px #0000001a;text-align:center}.loading-spinner{margin:0 auto 1.5rem}.loading-text{color:#666;font-size:1.1rem;font-weight:500}.loading-text p{margin:0;animation:fadeIn .5s ease-in}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.file-access-tracker{padding:24px}.chart-container{margin-top:16px;padding:16px;background:#fff;border-radius:8px;box-shadow:0 2px 8px #0000001a}.ant-table-wrapper{overflow-x:auto}.ant-table{min-width:100%}.ant-table-cell{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}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)}@-ms-viewport{width:device-width}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}mark{padding:.2em;background-color:#feffe6}
