:root{font-family:Inter,HarmonyOS Sans,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;line-height:1.5;font-weight:400;color:#1f2933;background-color:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--ds-primary: #2663ff;--ds-primary-dark: #1b45c1;--ds-secondary: #111827;--ds-surface: #ffffff;--ds-surface-muted: #f0f3fa;--ds-border: #e5e7f2;--ds-text-secondary: #5f6b7c;--ds-success: #11b981;--ds-danger: #ef4f4f;--ds-warning: #f59f00;--ds-radius-lg: 20px;--ds-radius-md: 14px;--ds-radius-sm: 10px;--ds-shadow-soft: 0 12px 40px rgba(15, 23, 42, .2);--ds-shadow-card: 0 10px 30px rgba(37, 56, 117, .1)}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;background:#f5f7fb;color:#1f2933}a{color:var(--ds-primary);transition:color .2s ease}a:hover{color:var(--ds-primary-dark)}button,input,textarea{font:inherit}.scrollbar-wrapper::-webkit-scrollbar{width:8px}.scrollbar-wrapper::-webkit-scrollbar-thumb{background-color:#0f172a33;border-radius:4px}.scrollbar-wrapper::-webkit-scrollbar-track{background-color:transparent}.page-shell{display:flex;flex-direction:column;gap:24px}.page-header{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px}.page-header__title{margin:0;font-size:24px;font-weight:600}.page-header__description{margin-top:6px;color:var(--ds-text-secondary);font-size:14px}.login-container{display:flex;justify-content:center;align-items:center;min-height:100vh;background:linear-gradient(to bottom,#eee,#d3d3d3);position:relative;overflow:hidden}.login-container:after{content:"";position:absolute;top:0;left:0;width:100%;height:100%;background-image:url(/assets/login-bg-sHFz890H.png);background-position:right bottom;background-repeat:no-repeat;background-size:auto;pointer-events:none}.login-card-wrapper{position:relative;z-index:2;transition:transform .1s ease-out;will-change:transform;transform:perspective(900px) rotateX(var(--rotate-x)) rotateY(var(--rotate-y))}.login-card{width:400px;background:#fffffff2;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 8px 32px #0000001a;border-radius:16px;border:1px solid rgba(255,255,255,.2)}.login-card .ant-card-head{border-bottom:1px solid rgba(0,0,0,.06);background:transparent}.login-card .ant-card-head-title{font-size:24px;font-weight:600;text-align:center;color:#333}.login-card .ant-form-item-label>label{font-weight:500;color:#555}.login-card .ant-input,.login-card .ant-input-password{border-radius:8px;border:1px solid #e0e0e0;transition:all .3s ease}.login-card .ant-input:hover,.login-card .ant-input-password:hover{border-color:#667eea}.login-card .ant-input:focus,.login-card .ant-input-password:focus-within{border-color:#667eea;box-shadow:0 0 0 2px #667eea1a}#root .login-card .ant-btn-primary{position:relative;border:none;border-radius:8px;height:40px;font-weight:500;transition:all .6s ease;overflow:hidden;background:linear-gradient(135deg,#667eea,#764ba2)}.login-card .ant-btn-primary:before{content:"";display:block;z-index:-1;position:absolute;top:0;left:0;width:100%;height:100%;background:linear-gradient(135deg,#5568d3,#653a8f);background:linear-gradient(135deg,#44eb6e,#4ca9d4);opacity:0;transition:inherit}.login-card .ant-btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px 3px #667eea80}.login-card .ant-btn-primary:active{transform:translateY(0)}.login-card .ant-btn-primary:hover:before{opacity:1}.dashboard-page h2{margin-bottom:0;font-size:28px;font-weight:600}.dashboard-page .ant-card{border-radius:var(--ds-radius-md);border:none;box-shadow:var(--ds-shadow-card)}.dashboard-page .ant-card-head{border-bottom:1px solid rgba(229,231,243,.7)}.dashboard-page .ant-statistic-title{font-size:13px;color:var(--ds-text-secondary);text-transform:uppercase;letter-spacing:.4px}.dashboard-page .ant-statistic-content{font-size:26px;font-weight:600;color:var(--ds-secondary)}.dashboard-page .ant-table-small{font-size:14px}.dashboard-page .recharts-default-tooltip{border-radius:12px;border:1px solid var(--ds-border);box-shadow:var(--ds-shadow-card)}.visual-detection-page .overview-card{flex:1;border-radius:var(--ds-radius-lg);background:linear-gradient(135deg,#f8fbff,#eef2ff);box-shadow:var(--ds-shadow-card)}.visual-detection-overview{display:flex}.overview-metric{display:flex;flex-direction:column;gap:8px}.overview-label{font-size:13px;color:var(--ds-text-secondary);letter-spacing:.4px}.overview-value{font-size:32px;font-weight:700;color:var(--ds-secondary)}.overview-value--success{color:var(--ds-success)}.overview-value--muted{color:var(--ds-text-secondary)}.visual-detection-grid .ant-card{height:100%}.visual-detection-card{border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-card);transition:transform .2s ease,box-shadow .2s ease;height:100%;display:flex;flex-direction:column;gap:12px}.visual-detection-card:hover{transform:translateY(-4px);box-shadow:0 18px 35px #25387526}.visual-detection-card--disabled{opacity:.5;filter:grayscale(100%);pointer-events:none;cursor:not-allowed}.visual-detection-card--disabled:hover{transform:none;box-shadow:var(--ds-shadow-card)}.visual-detection-card__title{display:flex;align-items:center;justify-content:space-between;gap:12px;font-weight:600;font-size:16px}.visual-detection-card__status{border-radius:999px;border:none;padding:0 12px;height:24px;display:inline-flex;align-items:center;font-size:12px;color:#fff}.visual-detection-card__description{min-height:60px;color:var(--ds-text-secondary)}.visual-detection-card__meta{font-size:13px;color:var(--ds-text-secondary)}.visual-detection-card__actions{margin-top:auto;display:flex;gap:12px}.visual-detection-card__actions .ant-btn{flex:1;height:40px;border-radius:12px}.visual-detection-loading,.visual-detection-empty{padding:60px 0;text-align:center;border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-card);background:var(--ds-surface)}@media(max-width:768px){.visual-detection-card__actions{flex-direction:column}}.ant-upload-drag-icon{font-size:48px;color:#1890ff}.ant-upload-text{font-size:16px;font-weight:500;margin-top:8px}.ant-upload-hint{font-size:14px;color:#666}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;padding:12px;margin-left:-12px;margin-right:-12px;max-height:50vh;overflow-y:auto}.file-card{overflow:hidden;transition:all .2s;border-radius:4px;font-size:12px}.file-card:hover{box-shadow:0 2px 8px #0000001a;transform:translateY(-2px)}.file-card .ant-card-body{padding:6px 8px}.file-preview-wrapper{position:relative;width:100%;height:100px;overflow:hidden;background-color:#f5f5f5;cursor:pointer}.file-preview-image{width:100%;height:100%;object-fit:cover;transition:transform .2s}.file-preview-wrapper:hover .file-preview-image{transform:scale(1.05)}.file-preview-mask{position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0006;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s}.file-preview-wrapper:hover .file-preview-mask{opacity:1}.file-preview-mask .anticon{font-size:20px;color:#fff}.file-icon-wrapper{height:80px;display:flex;align-items:center;justify-content:center}.file-icon{font-size:70px;line-height:80px;text-align:center;color:#667eea}.file-info{display:flex;align-items:center;justify-content:space-between;gap:4px;font-size:12px;line-height:1.4}.file-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:#333}.file-size{flex-shrink:0;font-size:11px;color:#999}.file-btn{width:24px;height:24px;display:flex;align-items:center;justify-content:center;color:#fff;border-radius:50%;cursor:pointer;opacity:0;transition:all .2s;z-index:10;background-color:#1890ff}.del-btn{position:absolute;top:4px;right:4px}.file-btn.del-btn{background-color:#ff4d4fe6}.file-btn.del-btn:hover{background-color:#ff4d4f}.file-btn:hover{transform:scale(1.1)}.file-preview-wrapper:hover .file-btn,.file-icon-wrapper:hover .file-btn{opacity:1}.file-btn .anticon{font-size:14px}@media(max-width:1200px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}@media(max-width:768px){.file-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:6px}.file-preview-wrapper,.file-icon-wrapper{height:80px}.file-icon{font-size:32px}.file-card .ant-card-body{padding:6px}}.file-btn-wrap{position:absolute;bottom:4px;right:4px;display:flex;align-items:center;justify-content:center;gap:4px}.file-card.batch-selected{border-color:#1890ff!important;box-shadow:0 0 0 2px #1890ff33}.file-select-checkbox{position:absolute;top:8px;left:8px;z-index:5;background:#ffffffe6;padding:2px 6px;border-radius:4px}.ant-space-item:has(.p-flex-1){flex:1}.ant-space-item:has(.p-align-self-start){align-self:flex-start}.fixed-height-card{height:280px;overflow:hidden;position:relative}.fixed-height-card>div{height:100%;min-height:280px;margin-bottom:-12px}.fixed-height-card:hover{overflow:visible;z-index:999}.fixed-height-card:hover>div{width:100%;position:absolute;box-shadow:0 0 10px #0000001a;height:auto;z-index:999}.fixed-height-card>div:after{content:"";display:block;position:sticky;bottom:0;width:100%;height:0;padding-top:24px;margin-top:-12px;box-sizing:border-box;z-index:12;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);pointer-events:none}.fixed-height-card:hover>div:after{display:none}.project-description{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.fixed-height-card:hover .project-description{-webkit-line-clamp:unset}.editing-mode .fixed-height-card{height:auto}.editing-mode .fixed-height-card>div{margin-bottom:0;min-height:initial}.editing-mode .fixed-height-card>div:after{display:none}.editing-mode .fixed-height-card:hover>div{box-shadow:none;height:auto;position:relative}.project-detail-row-wrapper{flex:1}.result-items{display:flex;flex-direction:column;gap:16px}.result-item-card .ant-card-head{position:sticky;top:-24px;z-index:10;background-color:#fff}.markdown-content{font-size:14px;line-height:1.8}.markdown-content h1,.markdown-content h2,.markdown-content h3,.markdown-content h4{margin-top:16px;margin-bottom:8px;font-weight:600}.markdown-content h1{font-size:24px;border-bottom:2px solid #eee;padding-bottom:8px}.markdown-content h2{font-size:20px;border-bottom:1px solid #eee;padding-bottom:6px}.markdown-content h3{font-size:18px}.markdown-content h4{font-size:16px}.markdown-content table{width:100%;border-collapse:collapse;margin:16px 0}.markdown-content table th,.markdown-content table td{border:1px solid #ddd;padding:8px 12px;text-align:left}.markdown-content table th{background-color:#f0f0f0;font-weight:600}.markdown-content table tr:nth-child(2n){background-color:#fafafa}.markdown-content ul,.markdown-content ol{padding-left:24px;margin:12px 0}.markdown-content li{margin:4px 0}.markdown-content code{background-color:#f5f5f5;padding:2px 6px;border-radius:3px;font-family:Courier New,monospace;font-size:13px}.markdown-content pre{background-color:#f5f5f5;padding:12px;border-radius:4px;overflow-x:auto}.markdown-content pre code{background:none;padding:0}.markdown-content blockquote{border-left:4px solid #ddd;padding-left:16px;margin:12px 0;color:#666}.markdown-content hr{border:none;border-top:1px solid #ddd;margin:16px 0}.bottom-card:hover{box-shadow:0 0 10px #0000001a}.ocr-image-wrapper{position:relative;display:inline-block;width:100%}.ocr-image-wrapper .ocr-image{display:block;width:100%;height:auto}.ocr-overlay{position:absolute;left:0;top:0;right:0;bottom:0;pointer-events:none}.ocr-box{position:absolute;border:2px solid rgba(24,144,255,.9);background-color:#1890ff26;box-shadow:0 0 0 1px #1890ff4d;border-radius:2px}.ocr-box:hover{border-color:#f5222d;box-shadow:0 0 0 1px #f5222d66}.analysis-result-detail-menu{overflow-y:auto}.analysis-result-detail-menu.ant-menu-inline .ant-menu-item{height:24px;line-height:24px;font-size:12px}.analysis-result-detail-menu.ant-menu-inline .ant-menu-item:first-of-type{position:sticky;top:0;z-index:10;margin-top:0}.analysis-result-detail-menu.ant-menu-inline .ant-menu-item:first-of-type:not(.ant-menu-item-selected){background-color:#e6f4ff}.analysis-result-detail-menu-item-label{width:0;flex:1;overflow:hidden;text-overflow:ellipsis}.image-container{position:relative;background-color:#0003;border-radius:4px}.image-container.image-loading{aspect-ratio:16/9}.image-container>canvas{opacity:1;transition:opacity .2s}.image-container.image-loading>canvas{opacity:0}.image-container.image-loading:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:30px;height:30px;border:3px solid rgba(0,0,0,.4);border-top:3px solid #1677FF;border-radius:50%;z-index:10;animation:loading 1s infinite}@keyframes loading{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.visual-collapse-wrapper.ant-collapse>.ant-collapse-item .ant-collapse-header{position:sticky;top:0;z-index:10;background-color:#fafafa}.visual-collapse-wrapper .section-row-wrapper .ant-select-single,.visual-collapse-wrapper .section-row-wrapper .ant-input-number{width:100%}.field-advanced-number-wrapper{display:flex}.profile-page .profile-card{border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-card);margin-bottom:24px}.profile-card--hero{min-height:320px;display:flex}.profile-card--metrics .profile-metric{background:var(--ds-surface-muted);border-radius:var(--ds-radius-sm);padding:16px}.profile-card__title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:16px;margin-bottom:16px}.profile-card__loading{min-height:140px;display:flex;align-items:center;justify-content:center}.profile-metric{display:flex;gap:12px;align-items:center}.profile-metric__icon{width:40px;height:40px;border-radius:12px;background:#fff;box-shadow:inset 0 0 0 1px #0f172a0d;display:flex;align-items:center;justify-content:center;color:var(--ds-primary);font-size:18px}.profile-metric__label{font-size:13px;color:var(--ds-text-secondary)}.profile-metric__value{font-size:15px;font-weight:600}.profile-tag{border-radius:999px;border:none;padding:4px 14px;font-size:13px;background:#2663ff1a;color:var(--ds-primary)}.profile-tag--role{background:#11b98126;color:var(--ds-success)}.profile-tag--badge{background:#f59f0026;color:var(--ds-warning)}.profile-group{display:flex;justify-content:space-between;align-items:center;padding:16px;border-radius:var(--ds-radius-sm);border:1px dashed var(--ds-border)}.profile-group__name{font-weight:600;font-size:15px}.profile-group__meta{font-size:13px;color:var(--ds-text-secondary);margin-top:4px}.main-layout{min-height:100vh;background:linear-gradient(135deg,#f4f6fb,#eef2ff)}.layout-sider{background:var(--ds-secondary);border-right:1px solid rgba(255,255,255,.08);box-shadow:8px 0 30px #0f172a40}.layout-sider .ant-layout-sider-children{display:flex;flex-direction:column}.logo{height:72px;display:flex;align-items:center;gap:12px;padding:0 20px;font-weight:600;color:#fff;letter-spacing:.4px}.logo-badge{width:42px;height:42px;border-radius:14px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:20px}.logo-text{font-size:16px;white-space:nowrap}.logo-img{width:75%;height:75%;object-fit:contain}.layout-sider .ant-menu{background:transparent;border-inline-end:none;flex:1}.layout-sider .ant-menu-item-selected,.layout-sider .ant-menu-submenu-selected{background:#ffffff14}.layout-sider .ant-menu-item,.layout-sider .ant-menu-submenu-title{border-radius:10px;margin:4px 14px}.layout-header{background:#ffffffe6;border-bottom:1px solid rgba(229,231,243,.7);padding:0 32px;display:flex;justify-content:space-between;align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:72px;position:sticky;top:0;z-index:10}.header-left{display:flex;align-items:center;gap:12px}.trigger{width:40px;height:40px;border-radius:12px;border:1px solid var(--ds-border);display:flex;align-items:center;justify-content:center;font-size:18px;cursor:pointer;transition:all .2s ease;color:var(--ds-secondary);background:#fff;box-shadow:var(--ds-shadow-card)}.trigger:hover{color:#fff;background:var(--ds-secondary);border-color:transparent}.header-right{display:flex;align-items:center;gap:16px}.user-info{display:flex;align-items:center;gap:10px;cursor:pointer;padding:8px 14px;border-radius:14px;border:1px solid var(--ds-border);background:#fff;box-shadow:var(--ds-shadow-card);transition:transform .2s ease,box-shadow .2s ease}.user-info:hover{transform:translateY(-1px);box-shadow:0 12px 25px #25387526}.username{font-size:14px;color:var(--ds-secondary);max-width:150px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:500;line-height:1}.layout-content{margin:0;padding:0;min-height:calc(100vh - 72px);background:linear-gradient(145deg,#fffc,#fff0),url(/assets/mian-bg-DaIda8qS.jpg) no-repeat right bottom/auto 40%;overflow-y:auto;overflow-x:hidden;height:100%}.layout-content:before{content:"©2025 成都啄数鸟数据服务有限公司";position:absolute;bottom:0;left:0;width:100%;color:#0003;font-size:12px;text-align:center;padding:10px 0;pointer-events:none;-webkit-user-select:none;user-select:none}.content-wrapper{position:relative;padding:32px;box-sizing:border-box;max-width:1400px;margin:0 auto}@media(max-width:992px){.layout-header{padding:0 20px}.content-wrapper{padding:24px}}@media(max-width:768px){.username,.logo-text{display:none}.content-wrapper{padding:20px}}#root{min-height:100vh;background:#f5f7fb}body{font-family:Inter,HarmonyOS Sans,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
