.app-shell{min-height:100vh;background:#eef3f8}.top-header{display:flex;align-items:center;height:56px;padding:0 22px;background:linear-gradient(135deg,#07172a,#001529 54%,#092241)!important;border-bottom:1px solid rgba(36,190,255,.18);box-shadow:0 8px 28px #0511233d;position:sticky;top:0;z-index:20}.brand{border:0;background:transparent;display:inline-flex;align-items:center;gap:10px;color:#fff;height:56px;padding:0;margin-right:28px;cursor:pointer}.brand img{width:34px;height:34px;filter:drop-shadow(0 0 12px rgba(20,200,255,.42))}.brand span{font-size:20px;font-weight:700;letter-spacing:0;background:linear-gradient(135deg,#fff,#2ee7ff 55%,#3c89ff);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.top-menu{flex:1;min-width:0;background:transparent!important;border-bottom:0!important}.top-menu .ant-menu-item,.top-menu .ant-menu-submenu{border-radius:0;margin:0 4px}.header-actions{display:flex;align-items:center;gap:10px;margin-left:18px}.icon-button,.user-chip{border:1px solid rgba(255,255,255,.14);background:#ffffff12;color:#fff;height:34px;border-radius:6px;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.icon-button{width:34px}.user-chip{gap:8px;padding:0 10px}.site-content{min-height:calc(100vh - 56px);padding:24px}.route-loading{min-height:260px;display:flex;align-items:center;justify-content:center}@media(max-width:960px){.top-header{padding:0 12px}.brand span,.user-chip span{display:none}.site-content{padding:14px}}.dashboard-page .ant-card{border-radius:8px}.dashboard-section{margin-top:18px}.module-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.module-tile{min-height:86px;border:1px solid #d9e6f2;border-radius:8px;background:linear-gradient(135deg,#f8fbff,#eef6ff);display:flex;flex-direction:column;justify-content:center;padding:18px}.module-tile span{font-weight:700;color:#10233f}.module-tile small{color:#6c7d90;margin-top:8px}.construction-files-page .summary-row{margin-bottom:14px}.construction-files-page .summary-label{display:block;color:#708198;margin-bottom:6px}.construction-files-page .summary-row strong{color:#10233f;font-size:24px}.directory-card,.file-list-card{border-radius:8px}.directory-card .ant-card-body{max-height:calc(100vh - 160px);min-height:560px;overflow:auto}.directory-actions{width:100%;margin-bottom:12px}.tree-title-button{border:0;background:transparent;padding:0;color:inherit;text-align:left;cursor:pointer;line-height:1.35;display:-webkit-box;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.construction-files-page .ant-tree-treenode{align-items:center;width:100%}.construction-files-page .ant-tree-node-content-wrapper{display:flex;align-items:center;flex:1;min-width:0}.construction-files-page .ant-tree-iconEle{flex:0 0 24px}.construction-files-page .ant-tree-title{flex:1;min-width:0;overflow:hidden}.tree-title-button mark{background:#fff2a8;color:#10233f;padding:0 2px}.directory-empty{color:#7a8899;padding:12px 4px 0}.file-toolbar{margin-bottom:16px}.current-directory-strip,.archive-hint{display:flex;align-items:center;gap:8px;min-width:0;padding:8px 10px;margin-bottom:12px;border:1px solid #d8e1ed;border-radius:6px;background:#f6f9fc}.current-directory-strip span,.archive-hint span{flex:0 0 auto;color:#708198}.current-directory-strip strong,.archive-hint strong{min-width:0;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-name-button{display:inline-block;max-width:520px;border:0;background:transparent;padding:0;color:#172033;font-weight:600;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap;cursor:pointer}.file-name-button:hover{color:#1677ff}.file-archive-path{display:inline-block;max-width:520px;color:#708198;font-size:12px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.file-remark{display:inline-block;max-width:150px;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom;white-space:nowrap}.construction-files-page .ant-tree-title .ant-tag{margin-left:6px}.construction-files-page .ant-btn-sm{padding-inline:6px}.tender-card{border-radius:8px;margin-bottom:16px}.file-check-list{display:block;max-height:180px;overflow:auto;padding:8px 0 16px}.file-check-list .ant-checkbox-wrapper{align-items:flex-start}.generate-button{margin-top:14px}.tender-section-title{align-items:center;display:flex;justify-content:space-between;gap:8px;margin-top:6px}.tender-section-title .ant-typography{margin-bottom:0}.structured-context-box{background:#f8fafc;border:1px solid #d9e6f2;border-radius:8px;display:grid;gap:8px;margin:4px 0 14px;padding:10px 12px}.comparison-list{width:100%}.comparison-item{width:100%;border:1px solid #d9e6f2;background:#fff;border-radius:8px;padding:10px 12px;text-align:left;cursor:pointer}.comparison-item.active{border-color:#1677ff;box-shadow:0 0 0 2px #1677ff1f}.comparison-item span,.comparison-item small{display:block;color:#7a8899;margin-top:4px}.tender-workspace{width:100%}.json-editor{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.conclusion-label{display:block;margin-top:16px}.progress-log{background:#0f172a;border-radius:8px;color:#dbeafe;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px;line-height:1.7;margin-top:12px;max-height:220px;overflow:auto;padding:12px}.structured-inner-tabs,.structured-view{width:100%}.schema-summary{background:#f8fafc;border:1px solid #d9e6f2;border-radius:8px;margin-bottom:12px;padding:14px}.schema-summary .ant-typography{margin-bottom:8px}.schema-category-grid,.requirement-grid{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));width:100%}.schema-category-card,.requirement-card{border:1px solid #d9e6f2;border-radius:8px;background:#fff;padding:12px}.schema-category-head,.requirement-card-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:8px}.schema-category-card p,.requirement-card p{color:#3f4b5b;margin:0 0 10px;white-space:pre-wrap}.requirement-card h4{font-size:15px;margin:0 0 8px}.requirement-card-head span{color:#8a98aa;font-size:12px}.source-box{background:#f6f8fb;border-left:3px solid #1677ff;border-radius:6px;color:#617086;display:grid;gap:4px;margin-top:10px;padding:8px 10px}.source-box strong{color:#263241}.response-card .ant-typography{display:block;margin-bottom:6px}.markdown-preview{background:#fff;border:1px solid #d9e6f2;border-radius:8px;color:#263241;line-height:1.75;min-height:120px;padding:14px 16px;width:100%}.markdown-preview .ant-typography{margin:14px 0 8px}.markdown-preview .ant-typography:first-child{margin-top:0}.markdown-preview p{margin:0 0 10px;white-space:pre-wrap}.markdown-preview ul,.markdown-preview ol{margin:0 0 12px 22px;padding:0}.markdown-preview li{margin-bottom:4px}.markdown-table-wrap{border:1px solid #d9e6f2;border-radius:8px;margin:10px 0 14px;overflow:auto;width:100%}.markdown-table-wrap table{border-collapse:collapse;min-width:640px;width:100%}.markdown-table-wrap th,.markdown-table-wrap td{border-bottom:1px solid #e7edf5;border-right:1px solid #e7edf5;padding:8px 10px;text-align:left;vertical-align:top}.markdown-table-wrap th{background:#f6f8fb;color:#263241;font-weight:600}.markdown-table-wrap tr:last-child td{border-bottom:0}.markdown-table-wrap th:last-child,.markdown-table-wrap td:last-child{border-right:0}.login-page{min-height:100vh;position:relative;overflow:hidden;background:radial-gradient(circle at 20% 18%,rgba(0,212,255,.2),transparent 30%),radial-gradient(circle at 80% 72%,rgba(22,119,255,.24),transparent 32%),linear-gradient(135deg,#061528,#020813 58%,#071d34);display:grid;grid-template-columns:minmax(320px,1fr) 420px;align-items:center;gap:56px;padding:56px 8vw}.login-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(66,176,255,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(66,176,255,.08) 1px,transparent 1px);background-size:42px 42px;-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 88%);mask-image:linear-gradient(to bottom,rgba(0,0,0,.8),transparent 88%)}.login-brand-panel,.login-card{position:relative;z-index:1}.login-brand-panel img{width:86px;height:86px;filter:drop-shadow(0 0 26px rgba(20,200,255,.45))}.login-brand-panel h1{max-width:780px;margin:22px 0 12px;color:#fff;font-size:44px;line-height:1.18;letter-spacing:0}.login-brand-panel p{color:#e2f4ffb8;font-size:18px;letter-spacing:0}.login-card{background:#08182dc7;border:1px solid rgba(121,215,255,.2);box-shadow:0 24px 80px #0000006b;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:8px}.login-card .ant-card-body{padding:34px}.login-card-title h2{margin:0;color:#fff;font-size:24px;letter-spacing:0}.login-card-title span{display:block;color:#ffffff9e;margin:8px 0 26px}.login-form .ant-input-affix-wrapper,.login-form .ant-input{background:#ffffff14;border-color:#ffffff29;color:#fff}.login-form .ant-input::placeholder{color:#ffffff75}.login-form .anticon,.login-options,.login-options .ant-checkbox-wrapper,.login-options .ant-btn-link{color:#ffffffb8}.login-options{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.login-button{height:44px;font-weight:600;box-shadow:0 10px 26px #1677ff57}.login-hint{margin-top:22px;padding-top:18px;border-top:1px solid rgba(255,255,255,.12);display:flex;flex-direction:column;gap:6px;color:#ffffff94;font-size:13px}@media(max-width:960px){.login-page{grid-template-columns:1fr;padding:28px 18px;gap:26px}.login-brand-panel h1{font-size:30px}.login-card{width:100%}}.user-management-page .ant-tabs-nav{margin-bottom:18px}.table-toolbar,.permission-toolbar{margin-bottom:16px}.muted{color:#7a8899}.permission-panel{display:flex;flex-direction:column}.permission-panel .ant-checkbox-group{width:100%}.permission-groups{display:grid;grid-template-columns:1fr;gap:14px}.permission-group .ant-checkbox-wrapper{align-items:flex-start;width:100%}.permission-name{display:block;color:#172033;font-weight:600}.permission-group small{display:block;color:#7a8899;margin-top:2px}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Arial,sans-serif;background:#eef3f8;color:#172033;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}h1,h2,h3,h4,h5,h6{letter-spacing:0}button,input,textarea{font:inherit}.page{max-width:1440px;margin:0 auto}.page-header{min-height:74px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.page-header h1{margin:0;font-size:26px;line-height:1.25;color:#10233f}.page-header p{margin:8px 0 0;color:#65758a}.ant-card{border-radius:8px}@media(max-width:720px){.page-header{align-items:flex-start;flex-direction:column}.page-header h1{font-size:22px}}
