@import"https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+SC:wght@400;500;600&family=Manrope:wght@500;600;700&display=swap";:root{font-family:IBM Plex Sans SC,sans-serif;color:#17201d;background:#f6f7f3;font-synthesis:none;--blue:#1769e0;--green:#087c46;--red:#c9342a;--ink:#17201d;--muted:#68736e;--line:#dce1dc;--paper:#fbfcf9}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}.app-shell{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.sidebar{position:sticky;top:0;height:100vh;padding:24px 16px;border-right:1px solid var(--line);background:#ecefe9;display:flex;flex-direction:column}.brand{display:flex;align-items:center;gap:11px;padding:0 7px 28px}.brand-mark{width:37px;height:37px;border-radius:11px;background:#17201d;color:#fff;display:grid;place-items:center}.brand strong,.brand span{display:block}.brand strong{font:700 16px Manrope,sans-serif}.brand span{font-size:12px;color:var(--muted);margin-top:2px}.sidebar nav{display:grid;gap:5px}.nav-item{border:0;background:transparent;padding:11px 12px;border-radius:9px;display:flex;gap:10px;align-items:center;color:#49534f;cursor:pointer;text-align:left}.nav-item:hover,.nav-item.active{background:#fff;color:var(--ink)}.nav-item.active{box-shadow:0 1px #0a140f0d;font-weight:600}.nav-count,.risk-count{margin-left:auto;padding:2px 7px;border-radius:20px;font-size:11px}.nav-count{background:#e6e9e5}.risk-count{background:#f9dfdc;color:var(--red)}.sidebar-foot{margin-top:auto;border-top:1px solid var(--line);padding:18px 8px 0;font-size:12px;color:#46504c}.sidebar-foot small{display:block;color:#87908b;margin:5px 0 0 15px}.dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#a6aea9;margin-right:8px}.dot.online{background:#17a668}main{min-width:0}.topbar{height:88px;padding:0 28px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:#f6f7f3eb;position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}h1,h2,h3,p{margin:0}h1{font:700 23px Manrope,sans-serif;letter-spacing:-.02em;margin-top:3px}.eyebrow{text-transform:uppercase;letter-spacing:.12em;font:600 10px Manrope,sans-serif;color:#7d8782}.top-actions{display:flex;align-items:center;gap:9px}.search{display:flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:9px;padding:0 11px;height:39px}.search input{border:0;outline:0;width:230px;background:transparent;font-size:13px}.top-actions select{height:39px;border:1px solid var(--line);border-radius:9px;background:#fff;padding:0 30px 0 12px;color:#48524e}.avatar{width:36px;height:36px;border-radius:50%;background:#17201d;color:#fff;display:grid;place-items:center;font-size:13px}.content{padding:24px 28px 40px}.status-line{display:grid;grid-template-columns:145px 145px 145px 1fr;border-bottom:1px solid var(--line);padding-bottom:23px;gap:24px}.status-line>div:not(.ai-brief){display:grid;grid-template-columns:auto 1fr;align-items:end}.status-line span{grid-column:1/-1;color:var(--muted);font-size:12px}.status-line strong{font:700 30px Manrope,sans-serif;margin-top:7px}.status-line em{font-style:normal;color:#8a938e;font-size:11px;margin:0 0 5px 8px}.ai-brief{margin-left:auto;max-width:560px;display:flex;gap:12px;background:#e8f0ff;border:1px solid #cfddf7;border-radius:12px;padding:13px 15px;color:#29456f}.ai-brief p{font-size:12px;line-height:1.65}.ai-brief b{display:block;color:#1769e0}.section-heading,.panel-head{display:flex;align-items:flex-end;justify-content:space-between}.section-heading{margin:27px 0 14px}.section-heading h2,.panel-head h2,.detail-head h2{font:700 20px Manrope,IBM Plex Sans SC,sans-serif;letter-spacing:-.02em;margin-top:4px}.legend{display:flex;gap:16px;font-size:11px;color:var(--muted)}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:7px;height:7px;border-radius:50%}.legend .blue{background:var(--blue)}.legend .red{background:var(--red)}.process-strip{display:grid;grid-template-columns:repeat(6,1fr);border:1px solid var(--line);border-radius:12px;background:var(--paper);overflow:hidden}.stage{min-width:0;position:relative;padding:13px 13px 12px;border-right:1px solid var(--line)}.stage:last-child{border-right:0}.stage-top{display:grid;grid-template-columns:1fr auto;align-items:center;margin-bottom:12px}.stage-top span{font:600 10px Manrope;color:#85908b}.stage-top b{grid-column:1;font-size:15px}.stage-top em{grid-column:2;grid-row:1/3;font:700 22px Manrope;color:#d2d8d4;font-style:normal}.stage-ai,.stage-compliance{font-size:10px;display:flex;align-items:center;gap:5px;white-space:nowrap}.stage-ai{color:var(--blue);margin-bottom:6px}.stage-compliance{color:var(--red)}.stage-arrow{position:absolute;right:-10px;top:49px;z-index:2;background:var(--paper);color:#aeb6b1}.workspace-grid{display:grid;grid-template-columns:minmax(650px,1fr) 365px;gap:18px;margin-top:18px}.project-panel,.detail-panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.panel-head{padding:19px 20px 15px}.quiet,.icon-btn{border:1px solid var(--line);background:#fff;border-radius:8px;color:#5e6964;cursor:pointer}.quiet{height:34px;padding:0 11px;display:flex;align-items:center;gap:6px;font-size:12px}.icon-btn{width:34px;height:34px;display:grid;place-items:center}.table-head,.project-row{display:grid;grid-template-columns:1.8fr 1.1fr .8fr .6fr .55fr 20px;gap:12px;align-items:center}.table-head{padding:8px 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f1f3ef;color:#7d8782;font-size:10px}.project-row{width:100%;border:0;border-bottom:1px solid #e5e8e4;background:transparent;padding:13px 20px;text-align:left;color:var(--ink);cursor:pointer}.project-row:hover,.project-row.selected{background:#f1f5f0}.project-row:last-child{border-bottom:0}.project-row span{min-width:0;font-size:12px}.project-row b,.project-row small{display:block}.project-row b{font-weight:500}.project-row small{color:#87918c;margin-top:4px;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.project-name b{font-weight:600}.stage-badge{display:inline-block;padding:4px 7px;background:#eaf0f8;color:#315d91;border-radius:5px;font-size:10px!important}.progress{height:3px;background:#dce2de;margin-top:7px;display:block}.progress i{display:block;height:100%;background:#16875a}.risk{display:inline-block!important;padding:4px 7px;border-radius:5px;font-size:10px!important}.risk-低{background:#e7f4ec;color:#087c46}.risk-中{background:#fff0d9;color:#b86800}.risk-高{background:#f9dedb;color:#b32c24}.detail-panel{padding:20px;align-self:start;position:sticky;top:106px;max-height:calc(100vh - 130px);overflow:auto}.detail-head{display:flex;justify-content:space-between;gap:10px}.detail-head h2{margin:5px 0 7px}.detail-head p{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:11px;line-height:1.5}.mini-meta{display:flex;justify-content:space-between;margin:17px 0;padding:11px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:11px;color:var(--muted)}.mini-meta b{color:var(--ink);margin-left:4px}.text-高{color:var(--red)!important}.text-中{color:#b86800!important}.text-低{color:var(--green)!important}.detail-progress{display:grid;grid-template-columns:repeat(6,1fr);margin:12px 0 18px}.detail-progress div{display:grid;justify-items:center;gap:5px;position:relative}.detail-progress div:before{content:"";height:1px;background:#d8ded9;position:absolute;left:-50%;right:50%;top:11px}.detail-progress div:first-child:before{display:none}.detail-progress i{width:22px;height:22px;border-radius:50%;background:#e3e7e3;display:grid;place-items:center;font:600 10px Manrope;z-index:1;font-style:normal}.detail-progress span{font-size:8px;color:#89928d;white-space:nowrap}.detail-progress .done i{background:#17201d;color:#fff}.detail-progress .done span{color:#17201d}.blocker{display:flex;gap:10px;background:#fff0ee;color:#a82c25;padding:12px;border-radius:9px;margin-bottom:12px}.blocker b,.blocker span{display:block;font-size:11px}.blocker span{margin-top:3px;line-height:1.5}.ai-card{background:#eaf1ff;border:1px solid #d4e0f7;border-radius:10px;padding:14px}.ai-title{display:flex;align-items:center;justify-content:space-between}.ai-title span{display:flex;gap:7px;align-items:center;font-size:13px;font-weight:600;color:#1c5eaf}.ai-title small{font-size:9px;color:#6f7f94}.ai-card p{font-size:11px;line-height:1.65;margin:11px 0;color:#344c69}.ai-card ul{list-style:none;padding:0;margin:0;display:grid;gap:7px}.ai-card li{display:flex;gap:7px;align-items:center;font-size:10px;color:#1769e0}.compliance-list{margin:15px 0}.compliance-list h3{font-size:12px;margin-bottom:9px}.compliance-list div{display:flex;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid #e6e9e5;font-size:10px;color:#565f5b}.compliance-list svg{color:var(--red)}.primary{width:100%;height:42px;border:0;border-radius:9px;background:#17201d;color:#fff;display:flex;gap:8px;align-items:center;justify-content:center;cursor:pointer;font-weight:600;font-size:12px}.primary:hover{background:#28332f}.button-note{display:block;text-align:center;color:#8b948f;font-size:9px;margin-top:8px}.empty{min-height:220px;display:grid;place-content:center;justify-items:center;gap:8px;color:#87918c}.empty b{color:#53605a;font-size:13px}.empty span{font-size:10px}.toast{position:fixed;right:24px;bottom:24px;z-index:20;background:#17201d;color:#fff;border-radius:10px;padding:12px 12px 12px 15px;box-shadow:0 16px 40px #141e1933;display:flex;align-items:center;gap:16px;font-size:12px;animation:toastIn .3s ease-out}.toast button{border:0;background:transparent;color:#cbd2cd;display:grid;place-items:center;cursor:pointer}@keyframes toastIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@media(max-width:1100px){.app-shell{grid-template-columns:76px 1fr}.brand>div:last-child,.nav-item:not(.active){font-size:0}.brand{justify-content:center;padding-left:0;padding-right:0}.nav-item{justify-content:center}.nav-item span,.sidebar-foot{display:none}.workspace-grid{grid-template-columns:1fr}.detail-panel{position:static;max-height:none}.status-line{grid-template-columns:repeat(3,1fr)}.ai-brief{grid-column:1/-1;margin:0}.search input{width:160px}}@media(max-width:760px){.app-shell{display:block}.sidebar{display:none}.topbar{height:auto;padding:14px 16px;align-items:flex-start}.top-actions{flex-wrap:wrap;justify-content:flex-end}.search{display:none}.content{padding:16px}.status-line{grid-template-columns:repeat(3,1fr);gap:10px}.status-line strong{font-size:22px}.status-line em{display:none}.process-strip{overflow-x:auto;grid-template-columns:repeat(6,155px)}.workspace-grid{display:block}.detail-panel{margin-top:14px}.table-head{display:none}.project-row{grid-template-columns:1fr auto auto}.project-row>span:nth-child(2),.project-row>span:nth-child(4),.project-row>span:last-child{display:none}.section-heading{align-items:center}.legend{display:none}}.page-intro{display:flex;justify-content:space-between;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:22px;margin-bottom:18px}.page-intro h2{font:700 25px Manrope,IBM Plex Sans SC,sans-serif;margin:5px 0}.page-intro p{font-size:12px;color:var(--muted)}.primary.auto{width:auto;padding:0 17px}.secondary{height:40px;border:1px solid var(--line);border-radius:9px;background:#fff;color:#46514c;padding:0 15px;display:inline-flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;font-size:12px;font-weight:600}.secondary:hover{background:#f0f3ef}.toolbar{min-height:44px;display:flex;align-items:center;gap:11px;margin-bottom:12px}.toolbar>span{margin-left:auto;font-size:11px;color:var(--muted)}.filter-chips{display:flex;gap:5px;flex-wrap:wrap}.filter-chips button{border:0;border-radius:6px;background:#e9ece8;color:#59635f;padding:6px 9px;font-size:10px;cursor:pointer}.filter-chips button.active{background:#17201d;color:#fff}.review-layout{display:grid;grid-template-columns:340px minmax(520px,1fr);gap:18px}.review-queue,.review-sheet{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}.review-queue button{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;padding:16px;text-align:left;display:grid;grid-template-columns:1fr auto;cursor:pointer;color:var(--ink)}.review-queue button:hover,.review-queue button.selected{background:#eef2ed}.review-queue button>.risk{grid-column:2;grid-row:1/3}.review-queue b{font-size:13px}.review-queue small,.review-queue em{grid-column:1;font-size:10px;color:var(--muted);font-style:normal;margin-top:5px}.review-queue em{color:#a3443d}.review-sheet{padding:22px}.metric-inline{display:flex;align-items:baseline;gap:7px}.metric-inline b{font:700 31px Manrope}.metric-inline span{font-size:11px;color:var(--muted)}.evidence-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:9px;overflow:hidden;margin:18px 0}.evidence-grid div{background:#f3f5f2;padding:13px}.evidence-grid span,.evidence-grid b{display:block}.evidence-grid span{font-size:9px;color:var(--muted)}.evidence-grid b{font-size:13px;margin-top:6px}.field{display:grid;gap:7px;margin-top:15px}.field>span{font-size:11px;font-weight:600;color:#4d5853}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;padding:10px 11px;outline:none;font-size:12px;color:var(--ink)}.field input:focus,.field select:focus,.field textarea:focus{border-color:#7aa7e7;box-shadow:0 0 0 3px #e8f0fd}.field textarea{min-height:98px;resize:vertical}.review-actions,.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:18px}.delivery-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.delivery-grid>section{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:20px;min-height:520px}.module-title{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:15px;border-bottom:1px solid var(--line)}.module-title h2{font:700 18px Manrope,IBM Plex Sans SC,sans-serif;margin-top:4px}.module-title>b{font:700 28px Manrope;color:#cbd2cd}.work-card{margin-top:15px;border:1px solid var(--line);border-radius:10px;padding:15px;background:#fff}.work-card-head{display:flex;justify-content:space-between;gap:12px}.work-card-head span{font-size:9px;color:var(--muted)}.work-card-head h3{font-size:14px;margin-top:4px}.work-card>p{font-size:11px;color:#5e6964;line-height:1.65;margin:14px 0}.due{color:#b86800!important;background:#fff0d9;padding:4px 7px;border-radius:5px;height:max-content}.check-row{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:12px}.check-row button{border:0;background:transparent;padding:0;display:flex;align-items:center;gap:8px;font-size:11px;cursor:pointer}.check-row button>span,.check-row button>svg{width:17px;height:17px;border:1px solid var(--line);border-radius:5px}.check-row button.checked{color:var(--green)}.check-row button.checked>svg{background:#dff3e8;border-color:#83c6a2;padding:2px}.check-row small{font-size:9px;color:var(--red)}.task-list{display:grid;gap:7px}.task-list button{border:0;background:#f2f4f1;border-radius:8px;padding:9px 10px;display:flex;align-items:center;gap:9px;text-align:left;font-size:10px;cursor:pointer;color:#4d5853}.task-list i{width:20px;height:20px;border-radius:50%;background:#dde2de;display:grid;place-items:center;font-style:normal;font-size:9px}.task-list button.done{color:var(--green);text-decoration:line-through}.task-list button.done i{background:#dff3e8}.modal-backdrop{position:fixed;inset:0;background:#0d161261;display:grid;place-items:center;z-index:30;padding:20px}.modal{width:min(540px,100%);background:#fbfcf9;border-radius:14px;padding:22px;box-shadow:0 24px 70px #0f191440;animation:modalIn .25s ease-out}.modal-head{display:flex;justify-content:space-between}.modal-head h2{font:700 22px Manrope,IBM Plex Sans SC;margin-top:5px}.modal-note{display:flex;align-items:center;gap:8px;background:#eaf1ff;color:#315d91;border-radius:8px;padding:10px 12px;font-size:10px;margin-top:17px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}@keyframes modalIn{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:900px){.review-layout,.delivery-grid{grid-template-columns:1fr}.review-queue{max-height:300px;overflow:auto}}@media(max-width:760px){.page-intro{align-items:flex-start;gap:12px}.page-intro h2{font-size:21px}.review-sheet{padding:16px}.evidence-grid,.form-row{grid-template-columns:1fr}.delivery-grid>section{padding:15px}.modal{padding:18px}}.reset-demo{display:flex;align-items:center;gap:6px;border:0;background:transparent;color:#747e79;padding:12px 0 0;cursor:pointer;font-size:10px}.reset-demo:hover{color:#17201d}.role-select{font-weight:600;color:#315d51!important}.permission-banner{display:flex;align-items:center;gap:9px;background:#fff3e0;color:#9d5900;border:1px solid #f0d6ac;border-radius:9px;padding:11px 13px;font-size:11px;margin-bottom:12px}.primary:disabled,.secondary:disabled,.field textarea:disabled,.check-row button:disabled,.task-list button:disabled{opacity:.45;cursor:not-allowed}.activity-log{margin:14px 0}.activity-log h3{display:flex;align-items:center;gap:7px;font-size:12px;margin-bottom:8px}.activity-log>div{display:grid;grid-template-columns:10px 1fr;gap:8px;padding:7px 0}.activity-log>div>i{width:7px;height:7px;border-radius:50%;background:#8e9a94;margin-top:5px}.activity-log span,.activity-log b,.activity-log small{display:block;font-size:10px}.activity-log b{font-size:11px;margin-bottom:2px}.activity-log small{color:#89928d;margin-top:3px}.visit-workspace{margin:16px 0;border:1px solid #bfd1ed;border-radius:12px;background:#f7faff;overflow:hidden;box-shadow:0 8px 22px #30558714}.visit-heading{display:flex;align-items:center;justify-content:space-between;padding:14px 15px;background:linear-gradient(135deg,#173c69,#285a93);color:#fff}.visit-heading span{display:flex;gap:6px;align-items:center;font-size:10px;color:#cfe1fb}.visit-heading h3{font-size:16px;margin-top:3px}.visit-heading button{border:1px solid rgba(255,255,255,.3);background:#ffffff1a;color:#fff;border-radius:7px;padding:6px 8px;display:flex;align-items:center;gap:5px;font-size:9px;cursor:pointer}.visit-section{padding:14px 15px;border-bottom:1px solid #dce6f4}.visit-section h4{display:flex;align-items:center;gap:7px;font-size:11px;color:#263d59}.visit-section h4 em{margin-left:auto;font-style:normal;font-size:9px;color:#55718f;font-weight:500}.visit-section.summary{background:#edf4ff}.visit-section.summary p{font-size:10px;line-height:1.65;color:#465b73;margin:8px 0}.visit-section.summary small{font-size:8px;color:#71859b}.section-purpose{font-size:9px!important;line-height:1.5!important;color:#73869a!important;margin:6px 0 9px!important}.visit-checks{display:grid;gap:6px}.visit-checks button{border:0;background:#fff;border-radius:7px;padding:8px;display:flex;align-items:flex-start;gap:8px;text-align:left;color:#46586c;font-size:9px;line-height:1.45;cursor:pointer;box-shadow:inset 0 0 0 1px #dce5ef}.visit-checks button i{width:16px;height:16px;border:1px solid #aebdcd;border-radius:4px;display:grid;place-items:center;flex:0 0 auto;font-style:normal}.visit-checks button.checked{color:#236344;background:#eef8f2;box-shadow:inset 0 0 0 1px #a8d4b9}.visit-checks button.checked i{background:#248153;border-color:#248153;color:#fff}.visit-checks.compact{grid-template-columns:1fr 1fr}.boundaries>div{display:grid;grid-template-columns:61px 1fr;gap:8px;padding:8px 0;border-top:1px dashed #d6e0ec;font-size:9px;line-height:1.5}.boundaries>div b{color:#315577}.boundaries>div span{color:#5b6c7e}.boundaries>div.forbidden b,.boundaries>div.forbidden span{color:#a1453e}.visit-confirm{margin:13px 15px;width:calc(100% - 30px);border:0;border-radius:8px;background:#1d65ae;color:#fff;min-height:38px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:700;cursor:pointer}.visit-confirm:hover{background:#174f88}.visit-confirm.confirmed{background:#24764d}.visit-message{text-align:center;color:#47627e;font-size:9px;margin:-6px 15px 12px}.visit-upload{margin-top:10px;border:1px dashed #8aa8ca;border-radius:8px;background:#f5f9ff;min-height:54px;padding:10px 12px;display:flex;align-items:center;gap:10px;color:#315d91;cursor:pointer}.visit-upload:hover{background:#eaf3ff}.visit-upload>span{display:grid;gap:2px}.visit-upload b{font-size:11px}.visit-upload small{font-size:9px;color:#71869d}.visit-upload input{position:absolute;width:1px;height:1px;opacity:0}.uploaded-files{display:grid;gap:6px;margin-top:8px}.uploaded-files>div{display:grid;grid-template-columns:28px 1fr 28px;align-items:center;gap:7px;background:#fff;border:1px solid #dce5ef;border-radius:7px;padding:7px}.file-kind{width:27px;height:27px;border-radius:6px;background:#e8f1fc;color:#376b9e;display:grid;place-items:center}.uploaded-files>div>span:nth-child(2){display:grid;min-width:0}.uploaded-files b{font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.uploaded-files small{font-size:8px;color:#758698}.uploaded-files button{border:0;background:transparent;color:#9a514b;cursor:pointer}.archive-entry{margin-top:10px;border:1px solid #d6dfda;background:#f7f9f6;border-radius:8px;padding:8px 9px;display:flex;align-items:center;gap:6px;color:#465b52;font-size:10px;font-weight:600;cursor:pointer}.archive-entry svg:last-child{margin-left:auto}.archive-backdrop{position:fixed;inset:0;background:#0d161259;z-index:40;display:flex;justify-content:flex-end}.archive-drawer{width:min(520px,94vw);height:100%;background:#fafbf8;box-shadow:-20px 0 60px #0e191433;display:flex;flex-direction:column;animation:drawerIn .25s cubic-bezier(.22,1,.36,1)}.archive-drawer>header{padding:22px;display:flex;justify-content:space-between;border-bottom:1px solid #dce2dd}.archive-drawer h2{font:700 22px Manrope,IBM Plex Sans SC;margin:5px 0}.archive-drawer header p{font-size:11px;color:#6c7872}.archive-drawer header>button{border:0;background:#edf0ed;width:34px;height:34px;border-radius:8px;display:grid;place-items:center;cursor:pointer}.archive-timeline{padding:18px 22px;overflow:auto;flex:1}.archive-timeline>section{padding:0 0 18px 36px;position:relative}.archive-stage{display:flex;align-items:center;gap:10px;min-height:28px}.archive-stage>i{position:absolute;left:0;width:27px;height:27px;border-radius:50%;background:#e4e9e5;display:grid;place-items:center;font-style:normal;font-size:10px}.archive-stage>span{display:grid}.archive-stage b{font-size:12px}.archive-stage small{font-size:9px;color:#7a8680}.archive-stage em{margin-left:auto;font-style:normal;font-size:9px;color:#286348;background:#e4f4ea;border-radius:10px;padding:3px 7px}.archive-timeline>section.current .archive-stage>i{background:#255f45;color:#fff}.archive-items{display:grid;gap:7px;margin-top:10px}.archive-items article{display:grid;grid-template-columns:32px 1fr 28px;align-items:center;gap:8px;background:#fff;border:1px solid #dce2dd;border-radius:8px;padding:9px}.archive-items article>span{width:31px;height:31px;border-radius:7px;background:#edf3fb;color:#3d6d9a;display:grid;place-items:center}.archive-items article>div{display:grid}.archive-items b{font-size:11px}.archive-items small,.archive-empty{font-size:9px;color:#748079}.archive-items button{border:0;background:transparent;color:#607069;cursor:pointer}.archive-empty{margin:8px 0}.archive-drawer>footer{padding:14px 22px;border-top:1px solid #dce2dd;display:flex;align-items:center;gap:7px;color:#66746d;font-size:10px}@keyframes drawerIn{0%{transform:translate(40px);opacity:0}to{transform:none;opacity:1}}.stage-record-panel{margin:16px 0;border:1px solid #d7dfda;border-radius:12px;background:#fbfcfa;padding:14px}.stage-record-panel>header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.stage-record-panel>header span{display:flex;align-items:center;gap:6px;color:#567067;font-size:10px}.stage-record-panel>header h3{font-size:15px;margin-top:4px}.stage-record-panel>header em{font-style:normal;font-size:9px;color:#567067;background:#eaf1ed;border-radius:10px;padding:4px 7px}.record-hint{font-size:10px;color:#75817b;line-height:1.5;margin:10px 0}.stage-record-panel>label:not(.stage-upload){display:grid;gap:5px;margin-top:9px}.stage-record-panel>label>span{font-size:10px;font-weight:700;color:#46534d}.stage-record-panel>label>span small{font-weight:400;color:#8b9690}.stage-record-panel textarea{width:100%;min-height:58px;resize:vertical;border:1px solid #d8dfda;border-radius:7px;background:#fff;padding:9px;font:inherit;font-size:10px;line-height:1.5;color:#34423c;outline:none}.stage-record-panel textarea:focus{border-color:#588b72;box-shadow:0 0 0 3px #e8f1ec}.stage-upload{margin-top:10px;border:1px dashed #7da08d;border-radius:8px;background:#f0f6f2;min-height:54px;padding:10px;display:flex;align-items:center;gap:9px;color:#35644d;cursor:pointer}.stage-upload>span{display:grid}.stage-upload b{font-size:10px}.stage-upload small{font-size:9px;color:#718079;font-weight:400}.stage-upload input{position:absolute;width:1px;height:1px;opacity:0}.stage-files{display:grid;gap:5px;margin-top:7px}.stage-files>div{display:grid;grid-template-columns:20px 1fr 24px;align-items:center;background:#fff;border:1px solid #dce2de;border-radius:7px;padding:7px;color:#4a6558}.stage-files span{display:grid}.stage-files b{font-size:9px}.stage-files small{font-size:8px;color:#829087}.stage-files button{border:0;background:transparent;cursor:pointer;color:#95504b}.save-stage-record{width:100%;margin-top:11px;min-height:37px;border:0;border-radius:8px;background:#244f3c;color:#fff;display:flex;align-items:center;justify-content:center;gap:7px;font-size:10px;font-weight:700;cursor:pointer}.save-stage-record:hover{background:#183c2c}.record-success,.record-error{text-align:center;font-size:9px;margin-top:7px}.record-success{color:#28704e}.record-error{color:#a24942}.stage-record-panel.collapsed{padding:0;overflow:hidden}.stage-record-toggle{width:100%;border:0;background:transparent;padding:13px 14px;display:flex;align-items:center;justify-content:space-between;gap:10px;text-align:left;color:#26342e;cursor:pointer}.stage-record-toggle:hover{background:#f1f5f2}.stage-record-toggle>div>span{display:flex;align-items:center;gap:6px;color:#567067;font-size:10px}.stage-record-toggle h3{font-size:14px;margin:4px 0 2px}.stage-record-toggle small{display:block;font-size:9px;color:#83908a}.toggle-action{display:flex;align-items:center;gap:5px;background:#eaf1ed;color:#315e49;border-radius:8px;padding:7px 8px;font-size:9px;font-weight:700;white-space:nowrap}.stage-record-panel.expanded .toggle-action svg{transform:rotate(180deg)}.stage-record-form{border-top:1px solid #e0e5e1;padding-top:2px}.stage-record-form>label:not(.stage-upload){display:grid;gap:5px;margin-top:9px}.stage-record-form>label>span{font-size:10px;font-weight:700;color:#46534d}.stage-record-form>label>span small{font-weight:400;color:#8b9690}.collapsed-success{font-size:9px;color:#28704e;padding:0 14px 10px;margin-top:-4px}.demo-ai-materials{width:100%;margin-top:7px;border:0;background:transparent;color:#34648f;display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;cursor:pointer}.demo-ai-materials small{margin-left:auto;color:#8b9690;background:#edf0ed;border-radius:8px;padding:2px 6px}.material-ai-result{margin-top:10px;border:1px solid #bfd1e8;border-radius:9px;background:#f5f9ff;overflow:hidden}.material-ai-result>header{display:flex;align-items:center;justify-content:space-between;padding:10px 11px;background:#e8f1fd}.material-ai-result>header>div{display:flex;align-items:center;gap:7px;color:#245b91}.material-ai-result>header span{display:grid}.material-ai-result>header b{font-size:10px}.material-ai-result>header small{font-size:8px;color:#71869b}.material-ai-result>header em{font-style:normal;font-size:8px;color:#28704e;background:#ddf0e5;border-radius:8px;padding:3px 6px}.ai-pipeline{display:flex;gap:5px;flex-wrap:wrap;padding:9px 10px;border-bottom:1px solid #dce6f2}.ai-pipeline span{display:flex;align-items:center;gap:3px;background:#fff;border:1px solid #d6e2ef;border-radius:10px;padding:3px 6px;color:#376a57;font-size:8px}.ai-extract{padding:10px;border-bottom:1px solid #dce6f2}.ai-extract h4{display:flex;align-items:center;gap:5px;color:#315d87;font-size:10px;margin:0 0 7px}.ai-extract dl{display:grid;gap:6px;margin:0}.ai-extract dl>div{display:grid;grid-template-columns:54px 1fr;gap:6px;font-size:8px;line-height:1.45}.ai-extract dt{font-weight:700;color:#485c70}.ai-extract dd{margin:0;color:#647688}.ai-extract p{font-size:8px;line-height:1.5;color:#647688;margin-top:7px}.classification-tags{display:flex;gap:5px;flex-wrap:wrap}.classification-tags span{font-size:8px;color:#315d87;background:#e4eef9;border-radius:4px;padding:3px 5px}.completeness-check{padding:10px;border-bottom:1px solid #dce6f2}.completeness-check>div{display:flex;justify-content:space-between;font-size:9px;color:#4a5b6c}.completeness-check>i{height:5px;background:#dce5ed;border-radius:4px;display:block;margin:6px 0}.completeness-check>i em{height:100%;display:block;background:#d38b2d;border-radius:4px}.completeness-check p{display:flex;align-items:center;gap:5px;color:#a15c2a;font-size:8px}.batch-summary{display:flex;align-items:flex-start;gap:7px;padding:10px;color:#315d87}.batch-summary p{font-size:8px;line-height:1.55}.batch-summary b{display:block;font-size:9px;margin-bottom:2px}@media(max-width:760px){.visit-checks.compact{grid-template-columns:1fr}}.dashboard-v2{display:grid;gap:18px}.dashboard-intro{display:flex;align-items:flex-end;justify-content:space-between;padding-bottom:16px;border-bottom:1px solid var(--line)}.dashboard-intro h2{font:700 24px Manrope,IBM Plex Sans SC;margin:5px 0}.dashboard-intro p{font-size:12px;color:var(--muted)}.period-switch{display:flex;background:#e9ece8;border-radius:9px;padding:3px}.period-switch button{border:0;background:transparent;border-radius:7px;padding:7px 12px;color:#68736e;font-size:11px;cursor:pointer}.period-switch button.active{background:#fff;color:#17201d;box-shadow:0 1px 4px #141e191a;font-weight:700}.kpi-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.kpi-grid article{background:var(--paper);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}.kpi-grid article>span,.kpi-grid article>small{display:block;color:var(--muted);font-size:10px}.kpi-grid strong{display:block;font:700 28px Manrope;margin:8px 0 5px}.kpi-grid strong i{font:500 11px IBM Plex Sans SC;font-style:normal;margin-left:3px}.kpi-grid .danger-number{color:#b8362e}.dashboard-grid{display:grid;gap:14px}.primary-charts{grid-template-columns:1.6fr 1fr}.lower-charts{grid-template-columns:1.15fr 1fr 1.05fr}.chart-panel{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:17px;min-width:0}.chart-panel>header{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:14px;border-bottom:1px solid #e4e8e4}.chart-panel h3{font-size:15px;margin-top:4px}.chart-panel header>small{font-size:9px;color:#87918c}.funnel-chart{display:grid;gap:10px;margin-top:16px}.funnel-chart>div{display:grid;grid-template-columns:75px 1fr 34px;align-items:center;gap:9px}.funnel-chart>div>span{font-size:10px;color:#59645f}.funnel-chart>div>div{height:24px;background:#edf0ed;border-radius:5px;position:relative;overflow:hidden}.funnel-chart>div i{display:block;height:100%;background:linear-gradient(90deg,#254f3c,#4b8b6c);border-radius:5px}.funnel-chart>div b{position:absolute;left:8px;top:5px;color:#fff;font-size:10px}.funnel-chart em{font-style:normal;font-size:10px;color:#6f7a75;text-align:right}.risk-visual{display:flex;align-items:center;justify-content:center;gap:32px;min-height:194px}.risk-donut{width:132px;height:132px;border-radius:50%;position:relative;display:grid;place-items:center}.risk-donut:after{content:"";position:absolute;width:82px;height:82px;border-radius:50%;background:var(--paper)}.risk-donut span{z-index:1;display:grid;text-align:center;color:#78827d;font-size:9px}.risk-donut b{font:700 24px Manrope;color:#17201d}.risk-legend{display:grid;gap:12px;min-width:100px}.risk-legend>div{display:grid;grid-template-columns:8px 1fr auto;align-items:center;gap:7px;font-size:10px}.risk-legend i{width:7px;height:7px;border-radius:50%}.risk-legend i.high{background:#c9342a}.risk-legend i.middle{background:#d98b2b}.risk-legend i.low{background:#2d8a5e}.risk-legend b{font:700 14px Manrope}.stage-bars{height:190px;display:grid;grid-template-columns:repeat(6,1fr);align-items:end;gap:8px;padding-top:18px}.stage-bars>div{display:grid;grid-template-rows:18px 100px 28px;justify-items:center;align-items:end}.stage-bars b{font:700 12px Manrope}.stage-bars>div>i{height:100px;width:24px;background:#edf0ed;border-radius:5px 5px 2px 2px;display:flex;align-items:flex-end;overflow:hidden}.stage-bars>div>i span{width:100%;max-height:100%;background:#477963;border-radius:5px 5px 0 0}.stage-bars small{font-size:8px;color:#78837e;text-align:center;line-height:1.3;margin-top:7px}.region-table{display:grid;margin-top:10px}.region-table>div{display:grid;grid-template-columns:1.3fr .55fr .55fr 1.4fr;align-items:center;gap:9px;padding:11px 5px;border-bottom:1px solid #e7eae7;font-size:10px}.region-table .region-head{color:#85908b;font-size:9px}.region-table b{font-size:11px}.region-table .warning{color:#b44a2f;font-weight:700}.region-table>div>span:last-child{display:grid;grid-template-columns:1fr 30px;align-items:center;gap:5px}.region-table span i{height:4px;background:#e3e7e4;display:block}.region-table span em{height:100%;display:block;background:#3f8060}.attention-list{display:grid;margin-top:8px}.attention-list button{border:0;border-bottom:1px solid #e7eae7;background:transparent;padding:10px 2px;display:grid;grid-template-columns:33px 1fr auto;gap:8px;align-items:center;text-align:left;cursor:pointer}.attention-list button:hover{background:#f3f5f2}.attention-list div{min-width:0}.attention-list b,.attention-list small{display:block}.attention-list b{font-size:10px}.attention-list small{font-size:8px;color:#8a554d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.attention-list em{font-style:normal;font-size:9px;color:#7d8782}.attention-list>p{font-size:10px;color:#87918c;padding:22px;text-align:center}.dashboard-note{display:flex;align-items:flex-start;gap:10px;background:#eaf1ff;border:1px solid #d1dff5;border-radius:10px;padding:13px 15px;color:#315b8d}.dashboard-note p{font-size:11px;line-height:1.6}.dashboard-note b{margin-right:8px;color:#174f91}@media(max-width:1200px){.kpi-grid{grid-template-columns:repeat(3,1fr)}.lower-charts{grid-template-columns:1fr 1fr}.attention-panel{grid-column:1/-1}.primary-charts{grid-template-columns:1fr 1fr}}@media(max-width:760px){.dashboard-intro{align-items:flex-start;gap:14px}.kpi-grid,.primary-charts,.lower-charts{grid-template-columns:1fr 1fr}.attention-panel,.funnel-panel{grid-column:1/-1}.risk-visual{gap:18px}.period-switch button{padding:7px 8px}.chart-panel{padding:13px}}@media(max-width:480px){.kpi-grid,.primary-charts,.lower-charts{grid-template-columns:1fr}.attention-panel,.funnel-panel{grid-column:auto}.dashboard-intro{display:grid}.period-switch{width:max-content}}.delivery-grid{grid-template-columns:minmax(620px,1.45fr) minmax(320px,.75fr)}.contract-review-card{margin-top:15px;border:1px solid var(--line);border-radius:11px;background:#fff;overflow:hidden}.contract-review-head{display:flex;align-items:flex-start;justify-content:space-between;padding:15px}.contract-review-head>div>span,.contract-review-head small{font-size:9px;color:#7d8983}.contract-review-head h3{font-size:15px;margin:4px 0}.review-status{display:flex;align-items:center;gap:5px;background:#e7f2ff;color:#27629a;border-radius:14px;padding:5px 8px;font-size:9px}.contract-summary{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #e1e5e2;border-bottom:1px solid #e1e5e2;background:#f5f7f4}.contract-summary>div{padding:11px;border-right:1px solid #e1e5e2}.contract-summary>div:last-child{border:0}.contract-summary span,.contract-summary small{display:block;font-size:8px;color:#7e8984}.contract-summary b{display:block;font:700 18px Manrope;margin:5px 0 2px}.contract-summary .danger-number{color:#b7352e}.contract-summary .ok-number{color:#28704e}.contract-summary .route-text{font:700 12px IBM Plex Sans SC;margin-top:8px}.field-verification{display:flex;gap:6px;flex-wrap:wrap;padding:10px 14px}.field-verification span{display:flex;align-items:center;gap:3px;background:#edf6f1;color:#327255;border-radius:10px;padding:4px 6px;font-size:8px}.diff-toggle{width:calc(100% - 28px);margin:0 14px 10px;border:1px solid #cfdae7;background:#f2f7fc;border-radius:8px;padding:9px;display:grid;grid-template-columns:20px 1fr 16px;align-items:center;text-align:left;color:#315c86;cursor:pointer}.diff-toggle>span{display:grid}.diff-toggle b{font-size:10px}.diff-toggle small{font-size:8px;color:#71869a;margin-top:2px}.contract-diffs{display:grid;gap:9px;padding:0 14px 12px}.contract-diffs>section{border:1px solid #dde2df;border-radius:8px;overflow:hidden}.contract-diffs>section>header{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:8px;padding:8px 9px;background:#f6f7f5}.contract-diffs header>div{display:grid}.contract-diffs header b{font-size:10px}.contract-diffs header small{font-size:8px;color:#8a948f}.diff-type{font-size:8px;text-align:center;border-radius:4px;padding:3px}.type-新增{background:#f8dddd;color:#ab332c}.type-修改{background:#fff0d9;color:#a5610e}.type-删除{background:#e8edf3;color:#53697f}.clause-compare{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#e0e5e2;border-top:1px solid #e0e5e2;border-bottom:1px solid #e0e5e2}.clause-compare>div{background:#fff;padding:9px}.clause-compare span{font-size:8px;color:#78847e;font-weight:700}.clause-compare p{font-size:8px;line-height:1.5;color:#53605a;margin-top:4px}.clause-compare>div:last-child{background:#fff9f2}.diff-analysis{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:9px}.diff-analysis p{display:flex;align-items:flex-start;gap:5px;font-size:8px;line-height:1.45;color:#67736d}.diff-analysis p:first-child{color:#9b4a36}.diff-analysis p:last-child{color:#315f8d}.diff-analysis b{display:block;font-size:8px;margin-bottom:2px}.approval-path{display:flex;align-items:center;gap:6px;margin:0 14px 12px;padding:9px;background:#f4f6f3;border-radius:8px;overflow:auto}.approval-path span{white-space:nowrap;font-size:8px;color:#7d8882}.approval-path span.done{color:#28704e;display:flex;align-items:center;gap:3px}.approval-path span.current{color:#17201d;font-weight:700}.approval-path i{height:1px;min-width:12px;background:#cfd6d1}.contract-note{display:grid;gap:5px;margin:0 14px}.contract-note>span{font-size:9px;font-weight:700}.contract-note textarea{width:100%;min-height:58px;border:1px solid #d8dfda;border-radius:7px;padding:8px;font:inherit;font-size:9px;resize:vertical}.contract-actions{display:flex;justify-content:flex-end;gap:8px;padding:11px 14px}.ai-boundary{display:flex;align-items:center;gap:5px;background:#edf3fa;color:#526d87;padding:8px 14px;font-size:8px!important;margin:0!important}.contract-review-card button:disabled,.contract-review-card textarea:disabled{opacity:.55;cursor:not-allowed}@media(max-width:1100px){.delivery-grid,.clause-compare,.diff-analysis{grid-template-columns:1fr}}@media(max-width:620px){.contract-summary{grid-template-columns:1fr 1fr}.contract-summary>div:nth-child(2){border-right:0}.contract-summary>div:nth-child(-n+2){border-bottom:1px solid #e1e5e2}}.contract-review-head{padding:18px}.contract-review-head>div>span,.contract-review-head small{font-size:11px}.contract-review-head h3{font-size:18px;margin:6px 0}.review-status{font-size:11px;padding:6px 10px}.contract-summary>div{padding:14px}.contract-summary span,.contract-summary small{font-size:10px;line-height:1.45}.contract-summary b{font-size:22px;margin:7px 0 3px}.contract-summary .route-text{font-size:15px}.field-verification{gap:8px;padding:13px 16px}.field-verification span{font-size:10px;padding:5px 8px}.diff-toggle{width:calc(100% - 32px);margin:0 16px 13px;padding:12px;grid-template-columns:22px 1fr 18px}.diff-toggle b{font-size:13px}.diff-toggle small{font-size:10px;line-height:1.45;margin-top:3px}.contract-diffs{gap:12px;padding:0 16px 15px}.contract-diffs>section>header{grid-template-columns:44px 1fr auto;gap:10px;padding:11px 12px}.contract-diffs header b{font-size:13px}.contract-diffs header small{font-size:10px;margin-top:2px}.diff-type{font-size:10px;padding:4px}.clause-compare>div{padding:13px}.clause-compare span{font-size:10px}.clause-compare p{font-size:12px;line-height:1.65;margin-top:6px}.diff-analysis{gap:12px;padding:12px}.diff-analysis p{gap:7px;font-size:11px;line-height:1.6}.diff-analysis b{font-size:11px;margin-bottom:3px}.approval-path{gap:8px;margin:0 16px 15px;padding:12px}.approval-path span{font-size:10px}.contract-note{gap:7px;margin:0 16px}.contract-note>span{font-size:12px}.contract-note textarea{min-height:76px;padding:11px;font-size:12px;line-height:1.5}.contract-actions{padding:14px 16px}.ai-boundary{gap:7px;padding:11px 16px;font-size:10px!important;line-height:1.5}
