*{box-sizing:border-box}:root{font-family:Microsoft YaHei,PingFang SC,Segoe UI,Arial,sans-serif;color:#2d3440;background:#f4f6f9;font-synthesis:none;text-rendering:geometricPrecision;-webkit-font-smoothing:antialiased}body{margin:0;min-width:320px;min-height:100vh;background:#f4f6f9}button,input{font:inherit}button{cursor:pointer}.product-shell{min-height:100vh;background:#f4f6f9}.product-topbar{position:sticky;top:0;z-index:10;height:56px;display:flex;align-items:center;gap:18px;padding:0 16px;border-bottom:1px solid #e7edf5;background:#fff;box-shadow:0 2px 10px #142e5312}.shell-sidebar-toggle{position:relative;width:40px;height:40px;flex:0 0 40px;display:inline-flex;align-items:center;justify-content:center;margin-right:-4px;padding:0;border:1px solid #a9cdfc;border-radius:10px;color:#1479e8;background:linear-gradient(180deg,#fff,#eef7ff);box-shadow:0 8px 20px #1688ff29;transition:color .16s ease,border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .12s ease}.shell-sidebar-toggle svg{width:22px;height:22px;stroke-width:2.5}.shell-sidebar-toggle:hover{color:#fff;border-color:#1688ff;background:#1688ff;box-shadow:0 10px 24px #1688ff4d;transform:translateY(-1px)}.shell-sidebar-toggle:active{transform:translateY(0);box-shadow:0 5px 14px #1688ff33}.shell-sidebar-toggle:focus-visible{outline:3px solid rgba(22,136,255,.22);outline-offset:2px}.brand-text{font-size:19px;font-weight:800;color:#1b1f27;white-space:nowrap}.brand-text b{font-size:14px;font-weight:800}.project-switch,.module-nav button,.plain-btn,.primary-btn,.small-primary,.more-btn,.link-btn,.control-btn,.collapse-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;background:transparent}.project-switch{color:#1688ff;font-size:18px;font-weight:800}.module-nav{display:flex;gap:4px;margin-left:8px;overflow-x:auto}.module-nav button{height:38px;padding:0 12px;border-radius:8px;color:#4c5d70;white-space:nowrap}.module-nav button.active,.module-nav button:hover{color:#1688ff;background:#eef6ff}.topbar-actions{position:relative;display:flex;align-items:center;gap:22px;margin-left:auto;padding-left:14px;border-left:1px solid #e7edf5;color:#333b47;white-space:nowrap}.topbar-actions>button{height:38px;padding:0;border:0;background:transparent;color:#333b47;font-size:15px;font-weight:600}.topbar-actions>button:hover{color:#1688ff}.user-menu-anchor{position:relative;display:flex;align-items:center}.avatar-button{width:40px;height:40px;position:relative;display:inline-flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:50%;background:#eef4fb}.avatar-button.active,.avatar-button:hover{box-shadow:0 0 0 3px #1688ff1f}.avatar-photo{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;color:#fff;background:linear-gradient(135deg,#147cff,#20bdd0);font-weight:900}.user-menu-popover{position:absolute;top:50px;right:0;z-index:60;width:300px;overflow:hidden;border:1px solid #e2e6eb;border-radius:14px;background:#fff;box-shadow:0 18px 48px #10233d29}.user-menu-profile{display:flex;align-items:center;gap:16px;padding:24px 22px;border-bottom:1px solid #edf0f4}.user-menu-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#3e7df8}.user-menu-profile strong{color:#141923;font-size:20px;font-weight:800}.user-menu-section{padding:8px 0;border-bottom:1px solid #edf0f4}.user-menu-section:last-child{border-bottom:0}.user-menu-item{width:100%;min-height:48px;display:flex;align-items:center;gap:12px;padding:0 22px;border:0;background:#fff;color:#171d27;font-size:18px;text-align:left}.user-menu-item:hover{background:#f5f8fc}.user-menu-item span{flex:1}.user-menu-item em{color:#98a1ad;font-style:normal}.user-menu-item svg{flex:0 0 auto;color:#7a8593}.user-menu-item.danger{color:#1f2937}.menu-badge{min-width:32px;height:24px;display:inline-flex;align-items:center;justify-content:center;padding:0 8px;border-radius:999px;background:#e91524;color:#fff;font-size:13px;font-weight:800}.app-qr-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:24px;background:#1118276b}.app-qr-card{position:relative;width:360px;padding:28px 30px 26px;border-radius:18px;background:linear-gradient(180deg,#f7fbff,#fff 42%);box-shadow:0 24px 70px #0a1f3a3d;text-align:center}.app-qr-close{position:absolute;top:14px;right:14px;width:34px;height:34px;display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:#eef4fb;color:#657386}.app-qr-close:hover{color:#1688ff;background:#e2f0ff}.app-qr-brand{display:flex;align-items:center;justify-content:center;gap:14px;margin:4px 0 22px}.app-qr-brand img{width:58px;height:58px;border-radius:14px;box-shadow:0 10px 24px #1088ff29}.app-qr-brand div{display:grid;gap:4px;text-align:left}.app-qr-brand strong{color:#121926;font-size:22px;font-weight:900}.app-qr-brand span{color:#64748b;font-size:14px}.app-qr-code-wrap{width:226px;height:226px;display:grid;place-items:center;margin:0 auto 18px;padding:13px;border:1px solid #dce7f3;border-radius:18px;background:#fff}.app-qr-code-wrap img{width:200px;height:200px;image-rendering:pixelated}.app-qr-card p{margin:0;color:#4f6075;font-size:14px}.home-page{height:calc(100vh - 56px);display:grid;grid-template-columns:320px minmax(0,1fr);transition:grid-template-columns .2s ease}.home-page.tree-collapsed{grid-template-columns:0 minmax(0,1fr)}.workface-tree{min-width:0;height:100%;overflow:hidden;display:flex;flex-direction:column;border-right:1px solid #dfe6ef;background:#fff}.workface-tree.collapsed{border-right-color:transparent;pointer-events:none}.collapse-btn{height:38px;margin:12px;border:1px solid #1688ff;border-radius:6px;color:#1688ff;font-weight:700}.tree-filter{display:flex;align-items:center;gap:8px;height:42px;padding:0 18px;color:#465466;font-size:15px}.tree-filter svg{margin-left:auto}.grid-icon{width:14px;height:14px;display:inline-block;background:linear-gradient(#1688ff 0 0) left top / 5px 5px no-repeat,linear-gradient(#1688ff 0 0) right top / 5px 5px no-repeat,linear-gradient(#1688ff 0 0) left bottom / 5px 5px no-repeat,linear-gradient(#1688ff 0 0) right bottom / 5px 5px no-repeat}.tree-list{min-height:0;overflow-y:auto;padding-bottom:20px}.tree-group{padding:3px 0}.tree-workface{height:42px;display:grid;grid-template-columns:16px 18px minmax(0,1fr) 20px 20px;align-items:center;gap:5px;padding:0 14px 0 22px;color:#2e3a49;font-weight:700}.workface-dot{width:14px;height:14px;border-radius:50%;background:linear-gradient(135deg,#12dcbb 45%,#1688ff 46%)}.tree-segment{width:100%;min-height:40px;display:grid;grid-template-columns:20px minmax(0,1fr) 20px;align-items:center;gap:8px;padding:8px 14px 8px 80px;border:0;color:#5b6470;background:transparent;text-align:left}.tree-segment.active{color:#2e3a49;background:#eaf3ff;font-weight:800}.tree-segment svg{color:#ff9a22}.ledger-area{min-width:0;overflow:auto;padding:10px 12px 24px}.resource-strip{display:grid;grid-template-columns:repeat(5,minmax(180px,1fr));gap:0;margin-bottom:10px;border:1px solid #eef1f5;background:#fff}.resource-unit{min-height:76px;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:14px 18px;border-right:1px solid #eef1f5}.resource-unit:last-child{border-right:0}.resource-unit b{display:block;margin-bottom:8px;padding-left:10px;border-left:4px solid #2f89ff;color:#303642;font-size:16px}.resource-unit span{display:block;color:#686f7a;line-height:1.45}.resource-unit svg{color:#1688ff;flex:0 0 auto}.ledger-card,.page-header,.resource-card-v2,.data-return-panel,.plan-card,.control-ledger,.control-detail,.chart-card,.modal-panel{border:1px solid #eef1f5;background:#fff}.ledger-card{padding:12px 16px 20px}.section-title,.page-header,.plan-card-title,.detail-top,.widget-head{display:flex;align-items:center;justify-content:space-between;gap:14px}.section-title{margin-bottom:16px}.section-title h2,.page-header h1{margin:0;color:#1c2633}.section-title h2{padding-bottom:10px;border-bottom:3px solid #1688ff;font-size:18px}.primary-btn,.small-primary{border-radius:6px;color:#fff;background:#1688ff;box-shadow:0 4px 12px #1688ff38}.primary-btn{min-height:38px;padding:0 18px;font-weight:800}.small-primary{min-height:30px;padding:0 10px}.plain-btn{min-height:38px;padding:0 16px;border:1px solid #e1e6ed;border-radius:6px;color:#465466;background:#fff}.filter-bar{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:12px;padding:10px 0}.filter-bar label{display:inline-flex;align-items:center;gap:8px;color:#293440;font-weight:700}.filter-bar input,.plan-toolbar input{height:38px;min-width:210px;border:1px solid #dfe5ec;border-radius:6px;padding:0 12px;color:#2d3440;outline:none}.filter-bar input:focus,.plan-toolbar input:focus{border-color:#1688ff;box-shadow:0 0 0 3px #1688ff1f}.table-wrap{overflow:auto}.product-table{width:100%;min-width:1480px;border-collapse:collapse;table-layout:fixed;background:#fff}.cycle-col-index{width:56px}.cycle-col-name{width:150px}.cycle-col-bench,.cycle-col-creator{width:110px}.cycle-col-desc{width:260px}.plan-code-cell{color:#1c3b64;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:15px;font-weight:800;line-height:1.45;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cycle-col-time{width:160px}.cycle-col-status{width:130px}.cycle-col-plan-apply{width:160px}.cycle-col-action{width:130px}.cycle-col-more{width:78px}.product-table th,.product-table td{height:54px;padding:10px 12px;border:1px solid #edf1f5;text-align:left;vertical-align:middle}.product-table th{color:#1f2630;background:#fbfcfe;font-weight:900}.product-table td{color:#3c4654;line-height:1.4}.product-table tbody tr:hover,.product-table tbody tr.selected-row{background:#f2f8ff}.link-btn{padding:0;color:#1688ff;font-weight:700;text-align:left}.more-btn{width:36px;height:32px;border-radius:6px;color:#1688ff;background:#edf5ff}.more-btn:hover,.more-btn.active{background:#dfeeff;box-shadow:0 0 0 3px #1688ff1f}.more-cell{position:relative}.cycle-more-menu{position:fixed;z-index:120;width:184px;overflow:hidden;border:1px solid #e3e8ef;border-radius:8px;background:#fff;box-shadow:0 14px 36px #0f203a29}.cycle-more-actions{display:grid;gap:2px;padding:8px 0}.cycle-more-actions button{min-height:36px;display:flex;align-items:center;gap:10px;padding:0 14px;border:0;color:#253041;background:transparent;font-size:15px;font-weight:700;text-align:left}.cycle-more-actions button:hover:not(:disabled){background:#f4f8fd}.cycle-more-actions button.danger{color:#ff4d5c}.cycle-more-actions button:disabled{color:#a4afbf;cursor:not-allowed}.cycle-more-actions button:disabled svg{color:#b8c2d0}.cycle-tech-data{padding:10px 14px 12px;border-top:1px solid #edf1f5}.cycle-tech-data h4{margin:0 0 8px;color:#8c98a8;font-size:13px;font-weight:800}.cycle-tech-row{min-height:28px;display:flex;align-items:center;justify-content:space-between;gap:12px;color:#1f2937;font-size:15px;font-weight:700}.cycle-tech-row b{font-size:14px;font-weight:800;white-space:nowrap}.cycle-tech-row b.success{color:#20a864}.cycle-tech-row b.muted{color:#98a2b3}.cycle-tech-row b.warning{color:#ff8a2a}.control-btn{min-width:62px;min-height:48px;border-radius:6px;color:#fff;background:#ff8059;font-weight:900;line-height:1.1}.control-btn.apply{background:#1688ff}.control-btn.node{background:#ff8059}.control-btn.node:disabled{color:#fff;background:#ff8059;cursor:not-allowed;opacity:1}.control-btn.done{background:#20b76b}.control-btn.disabled,.control-btn:disabled{color:#7c8798;background:#e8edf5;cursor:not-allowed}.plan-apply-cell{display:inline-flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0}.plan-apply-cell.applied-action{flex-direction:row;align-items:center;gap:10px}.plan-apply-btn{min-height:32px;padding:0 12px;border:1px solid transparent;border-radius:6px;font-size:16px;font-weight:800;white-space:nowrap}.plan-apply-btn.apply{color:#fff;background:#1688ff;box-shadow:0 6px 16px #1688ff2e}.plan-apply-status{display:inline-flex;align-items:center;gap:6px;color:#6c7888;font-size:16px;font-weight:800;white-space:nowrap}.plan-apply-status i{width:8px;height:8px;border-radius:50%;background:#b8c2d0}.plan-apply-cell.applied .plan-apply-status,.plan-apply-cell.verified .plan-apply-status,.plan-apply-cell.applied-action .plan-apply-status{color:#16a363}.plan-apply-cell.applied .plan-apply-status i,.plan-apply-cell.verified .plan-apply-status i,.plan-apply-cell.applied-action .plan-apply-status i{background:#20b76b}.plan-apply-cell.locked .plan-apply-status{color:#915d15}.plan-apply-cell.locked .plan-apply-status i{background:#ff982f}.plan-apply-cell.disabled .plan-apply-status{color:#7c8798}.plan-apply-link{min-height:28px;padding:0;border:0;color:#1688ff;background:transparent;font-size:16px;font-weight:800}.plan-apply-link:hover{text-decoration:underline}.status-dot{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}.status-dot i{width:10px;height:10px;border-radius:50%;background:#16c936}.status-dot.inControl i{background:#ff982f}.status-dot.ready i{background:#2f89ff}.status-dot.no-plan i{background:#aeb8c7}.design-workbench{min-width:1180px;height:100vh;overflow:hidden;background:#dcecf8;color:#101820}.design-topbar{height:58px;display:flex;align-items:center;gap:10px;padding:0 18px;border-bottom:1px solid #e2e7ee;background:#fff}.design-home-btn,.design-menu button,.design-apply-btn,.design-export-btn,.design-toolbar button{display:inline-flex;align-items:center;justify-content:center;border:0;background:transparent;font:inherit}.design-home-btn{width:36px;height:36px;flex:0 0 36px;border:1px solid #b8d6ff;border-radius:9px;color:#1688ff;background:#eef7ff;box-shadow:0 5px 14px #1688ff24;transition:color .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}.design-home-btn:hover{color:#fff;border-color:#1688ff;background:#1688ff;box-shadow:0 8px 18px #1688ff47;transform:translateY(-1px)}.design-home-btn:active{transform:translateY(0)}.design-home-btn:focus-visible{outline:3px solid rgba(22,136,255,.24);outline-offset:2px}.design-divider{color:#a7afb9;font-size:22px}.design-plan-code{min-width:360px;max-width:620px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#2a3038;font-size:17px;font-weight:800;letter-spacing:0}.design-menu{height:100%;display:flex;align-items:center;gap:26px;margin-left:24px;padding-left:22px;border-left:1px solid #edf1f5}.design-menu button{color:#0d1520;font-size:18px;font-weight:800}.design-actions{margin-left:auto;display:inline-flex;align-items:center;gap:10px}.design-apply-btn{min-width:74px;height:38px;border-radius:6px;color:#fff;background:#1688ff;font-size:16px;font-weight:800;cursor:pointer;box-shadow:0 6px 14px #1688ff38;transition:background .15s ease,box-shadow .15s ease,transform .12s ease}.design-apply-btn:not(:disabled):hover{background:#0f78ed;box-shadow:0 8px 18px #1688ff4d}.design-apply-btn:not(:disabled):active{background:#0c68d3;box-shadow:0 3px 8px #1688ff38;transform:translateY(1px)}.design-apply-btn:focus-visible{outline:3px solid rgba(22,136,255,.26);outline-offset:2px}.design-apply-btn.locked,.design-apply-btn:disabled{color:#7a8796;background:#eef2f7;cursor:not-allowed;box-shadow:none}.design-update-notice{height:30px;display:inline-flex;align-items:center;padding:0 10px;border:1px solid #bbe8cf;border-radius:999px;color:#12a15b;background:#effbf4;font-size:13px;font-weight:800;white-space:nowrap}.design-export-btn{height:38px;min-width:78px;border:1px solid #dce2e9;border-radius:6px;color:#1f2732;background:#fff;font-size:16px;font-weight:700;box-shadow:0 1px 4px #14202e14}.design-confirm-backdrop{position:fixed;inset:0;z-index:40;display:grid;place-items:center;background:#0f172a47}.design-confirm-dialog{width:430px;border:1px solid #e5ebf2;border-radius:10px;background:#fff;box-shadow:0 22px 60px #0f172a38;overflow:hidden}.design-confirm-head{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid #edf1f5}.design-confirm-head h2{margin:0;color:#111827;font-size:18px;font-weight:900}.design-confirm-head button{width:32px;height:32px;display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:6px;color:#8b96a5;background:transparent;cursor:pointer}.design-confirm-head button:hover{color:#1f2937;background:#f3f6fa}.design-confirm-body{display:grid;gap:10px;padding:20px}.design-confirm-body p{margin:0;color:#172033;font-size:17px;font-weight:900}.design-confirm-body span{color:#5b6b82;font-size:14px;line-height:1.7}.design-confirm-body strong{width:fit-content;padding:7px 10px;border-radius:6px;color:#1769d8;background:#eef6ff;font-size:14px}.design-confirm-actions{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px 18px;border-top:1px solid #edf1f5}.design-confirm-cancel,.design-confirm-primary{height:36px;min-width:86px;border-radius:6px;font-size:15px;font-weight:800;cursor:pointer}.design-confirm-cancel{border:1px solid #dce3ec;color:#263142;background:#fff}.design-confirm-primary{border:1px solid #1688ff;color:#fff;background:#1688ff;box-shadow:0 6px 14px #1688ff38}.design-confirm-primary:hover{background:#0f78ed}.design-toolbar{height:62px;display:flex;align-items:stretch;border-bottom:1px solid #e8eef5;background:#fff}.design-tool-group{display:flex;align-items:center;gap:12px;padding:0 18px;border-right:1px solid #edf1f5}.design-toolbar button{width:58px;flex-direction:column;gap:4px;color:#586677;font-size:12px}.design-toolbar button span{width:28px;height:24px;border-radius:5px;border:2px solid #56a9ff;background:linear-gradient(90deg,transparent 45%,#56a9ff 45% 55%,transparent 55%),linear-gradient(transparent 45%,#56a9ff 45% 55%,transparent 55%)}.design-toolbar button.active{color:#1688ff}.design-toolbar button.active span{background-color:#1688ff;border-color:#1688ff}.design-main{height:calc(100vh - 120px);display:grid;grid-template-columns:minmax(0,1fr) 360px}.design-canvas-panel{position:relative;display:grid;place-items:center;padding:44px 24px 64px;background:#dcecf8}.design-canvas{position:relative;width:min(950px,100%);aspect-ratio:1.55;background:#dff0fc}.design-grid{position:absolute;inset:0;border:2px solid #63b7ff;background-image:linear-gradient(#9bd0ff 1px,transparent 1px),linear-gradient(90deg,#9bd0ff 1px,transparent 1px),linear-gradient(#4ca7ff 2px,transparent 2px),linear-gradient(90deg,#4ca7ff 2px,transparent 2px);background-size:12px 12px,12px 12px,60px 60px,60px 60px}.design-outline{position:absolute;inset:0;overflow:visible}.design-outline path,.design-outline line{fill:none;stroke:#6d7d89;stroke-width:.35;stroke-dasharray:1.2 1.2}.design-outline line{stroke-dasharray:1 .6}.design-canvas i{position:absolute;width:4px;height:4px;border-radius:50%;border:1px solid #fff;background:#1688ff;transform:translate(-50%,50%)}.design-canvas i.orange{background:#f4a000}.design-axis{position:absolute;color:#58636f;font-weight:800}.axis-z{left:49%;bottom:23%}.axis-x{left:65%;bottom:-3%}.axis-o{left:49%;bottom:-3%}.design-scale{position:absolute;left:-28px;bottom:2px;color:#1688ff;font-size:13px}.design-legend{position:absolute;left:24px;bottom:36px;display:grid;gap:7px;padding:10px 12px;border-radius:8px;background:#fff;box-shadow:0 8px 28px #14305029}.design-legend span{display:flex;align-items:center;gap:6px;color:#273241;font-size:13px}.design-legend i{width:18px;height:18px;display:inline-grid;place-items:center;border-radius:50%;color:#fff;font-style:normal;font-size:12px;background:#596270}.design-legend i.blue{background:#1688ff}.design-legend i.orange{background:#f4a000}.design-legend i.red{background:#fb284d}.design-legend i.line{border-radius:2px;border:1px solid #222;color:#222;background:#fff}.design-canvas-foot{position:absolute;left:24px;right:24px;bottom:10px;display:flex;justify-content:space-between;color:#2c3948;font-size:12px}.design-inspector{overflow:auto;border-left:1px solid #e6ebf2;background:#fff}.design-inspector section{position:relative;padding:14px 16px 18px;border-bottom:1px solid #edf1f5}.design-inspector h3{margin:0 0 14px;color:#111821;font-size:18px}.design-inspector h3:before{content:"▸";margin-right:7px;color:#1688ff;font-size:13px}.design-inspector p{display:flex;align-items:center;gap:7px;margin:0 0 18px;color:#111821;font-size:15px}.design-inspector b{font-weight:800}.design-inspector svg{color:#1688ff}.design-small-btn{float:right;min-width:72px;height:36px;border:0;border-radius:7px;color:#fff;background:#1688ff;font-weight:800}.page-pad{padding:18px}.page-header{margin-bottom:16px;padding:18px 20px;border-radius:8px}.page-header p{margin:5px 0 0;color:#657384}.resource-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.resource-card-v2{min-height:150px;padding:18px;border-radius:8px}.resource-card-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:14px}.resource-card-head b{font-size:17px}.resource-card-head span{color:#20b76b;font-weight:800}.resource-card-v2 strong{display:block;color:#1688ff;font-size:20px;line-height:1.35}.resource-card-v2 p,.plan-card p{color:#657384}.data-return-panel{margin-top:16px;padding:18px;border-radius:8px}.return-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.return-grid span{display:inline-flex;align-items:center;gap:8px;min-height:42px;padding:0 12px;border-radius:6px;color:#1f6ed4;background:#eef6ff;font-weight:800}.resource-console{display:flex;flex-direction:column;gap:14px}.resource-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:20px 22px;border:1px solid #dce7f5;border-radius:10px;background:linear-gradient(120deg,#1688ff1f,#24c7ab0f 42%,#fffffff5 72%),#fff}.resource-hero span{color:#1688ff;font-size:13px;font-weight:900;letter-spacing:.08em}.resource-hero h1{margin:6px 0 8px;font-size:28px}.resource-hero p{max-width:760px;margin:0;color:#657384;font-size:15px;line-height:1.7}.resource-hero-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.resource-check-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 14px;border:1px solid #9dccff;border-radius:7px;background:#fff;color:#1688ff;font-weight:900}.resource-check-btn:hover{background:#eef7ff}.resource-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.resource-health-card{padding:16px 18px;border:1px solid #dce7f5;border-radius:9px;background:#fff;box-shadow:inset 4px 0 #1688ff}.resource-health-card.warning{box-shadow:inset 4px 0 #ff9b2f}.resource-health-card.success{box-shadow:inset 4px 0 #1dbf73}.resource-health-card span{color:#657384;font-weight:800}.resource-health-card strong{display:block;margin:5px 0;color:#0f253f;font-size:30px}.resource-health-card p{margin:0;color:#657384;font-size:13px;line-height:1.6}.resource-console-layout{display:grid;grid-template-columns:290px minmax(0,1fr) 360px;gap:14px;min-height:650px}.resource-category-panel,.resource-main-panel,.resource-detail-panel{border:1px solid #dce7f5;border-radius:10px;background:#fff}.resource-category-panel{display:flex;flex-direction:column;gap:10px;padding:14px}.resource-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:4px 4px 8px}.resource-panel-title b{font-size:18px}.resource-panel-title span{color:#657384;font-size:13px}.resource-category-btn{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:78px;padding:12px;border:1px solid #e2ecf7;border-radius:9px;background:#f8fbff;color:#0f253f;text-align:left}.resource-category-btn svg{color:#657384}.resource-category-btn span{display:flex;min-width:0;flex-direction:column;gap:5px}.resource-category-btn b{font-size:15px}.resource-category-btn em{color:#657384;font-style:normal;font-size:12px;line-height:1.4}.resource-category-btn strong{min-width:28px;height:28px;border-radius:999px;background:#edf4ff;color:#1688ff;text-align:center;line-height:28px}.resource-category-btn.active{border-color:#1688ff;background:#eef7ff;box-shadow:0 12px 24px #1688ff1f}.resource-category-btn.active svg,.resource-category-btn.active b{color:#1688ff}.resource-category-btn.cyan.active{border-color:#12b8c8;background:#eefcff}.resource-category-btn.orange.active{border-color:#ff9b2f;background:#fff7ed}.resource-category-btn.green.active{border-color:#1dbf73;background:#f0fff7}.resource-principle-card{margin-top:auto;padding:13px;border-radius:9px;background:#0f253f;color:#fff}.resource-principle-card b{display:block;margin-bottom:8px}.resource-principle-card p{margin:0;color:#ffffffc7;font-size:13px;line-height:1.7}.resource-main-panel{min-width:0;overflow:hidden}.resource-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px 16px;border-bottom:1px solid #e6eef7}.resource-list-toolbar span{color:#1688ff;font-weight:900}.resource-list-toolbar h2{margin:4px 0 0;font-size:18px}.resource-search{display:flex;align-items:center;gap:8px;width:min(420px,48%);height:40px;padding:0 12px;border:1px solid #dce7f5;border-radius:8px;background:#f8fbff;color:#657384}.resource-search input{width:100%;border:0;outline:0;background:transparent;color:#0f253f;font:inherit}.resource-table-wrap{overflow:auto}.resource-table{width:100%;min-width:960px;border-collapse:collapse}.resource-table th{padding:12px 14px;border-bottom:1px solid #e6eef7;background:#f6f9fd;color:#43566f;text-align:left;font-size:13px}.resource-table td{padding:14px;border-bottom:1px solid #edf2f8;color:#23364d;vertical-align:middle}.resource-table tr{cursor:pointer}.resource-table tr:hover,.resource-table tr.selected{background:#eef7ff}.resource-table td b{display:block;margin-bottom:5px}.resource-table td small{color:#657384}.resource-code{display:inline-block;padding:4px 8px;border-radius:6px;background:#edf4ff;color:#1688ff;font-weight:900;white-space:nowrap}.resource-status{display:inline-flex;align-items:center;gap:6px;font-weight:900;white-space:nowrap}.resource-status:before{width:8px;height:8px;border-radius:50%;content:""}.resource-status.ready{color:#18a865}.resource-status.ready:before{background:#20c878}.resource-status.warning{color:#b86d0b}.resource-status.warning:before{background:#ff9b2f}.resource-status.draft{color:#657384}.resource-status.draft:before{background:#9facbd}.resource-empty{padding:28px;color:#657384;text-align:center}.resource-detail-panel{min-width:0;padding:16px}.resource-detail-head{padding-bottom:14px;border-bottom:1px solid #e6eef7}.resource-detail-head span{color:#1688ff;font-weight:900}.resource-detail-head h2{margin:6px 0 10px;font-size:20px;line-height:1.35}.resource-detail-head code{display:inline-block;padding:5px 8px;border-radius:6px;background:#edf4ff;color:#1688ff;font-weight:900}.resource-detail-section{padding:15px 0;border-bottom:1px solid #edf2f8}.resource-detail-section b{display:block;margin-bottom:8px;font-size:15px}.resource-detail-section p{margin:0;color:#657384;line-height:1.7}.resource-param-list{display:grid;gap:8px;margin:0}.resource-param-list div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;padding:8px 10px;border-radius:7px;background:#f8fbff}.resource-param-list dt{color:#657384}.resource-param-list dd{margin:0;font-weight:800}.resource-plan-links{display:grid;gap:8px;margin:0;padding:0;list-style:none}.resource-plan-links li{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:7px;background:#f0fff7;color:#118a54;font-weight:800;word-break:break-all}.resource-issue-box{margin-top:14px;padding:13px;border-radius:9px;background:#f0fff7;color:#118a54}.resource-issue-box.has-issue{background:#fff7ed;color:#b86d0b}.resource-issue-box b{display:block;margin-bottom:7px}.resource-issue-box p{margin:0;line-height:1.65}.resource-modal-backdrop{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:28px;background:#0f253f73}.resource-create-dialog{width:min(720px,96vw);border-radius:12px;background:#fff;box-shadow:0 24px 80px #0f253f38;overflow:hidden}.resource-create-dialog header,.resource-create-dialog footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid #e6eef7}.resource-create-dialog footer{justify-content:flex-end;border-top:1px solid #e6eef7;border-bottom:0}.resource-create-dialog header span{color:#1688ff;font-weight:900}.resource-create-dialog h2{margin:5px 0 0}.resource-create-dialog header button{width:34px;height:34px;border:0;border-radius:8px;background:#f3f7fb}.resource-create-body{display:grid;gap:14px;padding:18px}.resource-create-body label{display:grid;gap:8px;color:#0f253f;font-weight:800}.resource-create-body select,.resource-create-body input{height:42px;border:1px solid #dce7f5;border-radius:8px;padding:0 12px;background:#fff;color:#0f253f;font:inherit}.resource-template-preview{padding:14px;border:1px solid #9dccff;border-radius:10px;background:#eef7ff}.resource-template-preview b{display:block;margin-bottom:6px}.resource-template-preview p{margin:0 0 12px;color:#657384;line-height:1.6}.resource-template-preview dl{display:grid;gap:8px;margin:0}.resource-template-preview dl>div{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px}.resource-template-preview dt{color:#657384}.resource-template-preview dd{margin:0;font-weight:800}.resource-check-dialog{width:min(680px,96vw)}.resource-check-body{display:grid;gap:10px;padding:18px}.resource-check-row{display:grid;grid-template-columns:30px minmax(0,1fr);gap:10px;padding:12px;border:1px solid #dce7f5;border-radius:9px;background:#f8fbff}.resource-check-row>span{width:26px;height:26px;border-radius:50%;background:#edf4ff;color:#1688ff;text-align:center;font-weight:900;line-height:26px}.resource-check-row.ready>span{background:#e7fbf1;color:#18a865}.resource-check-row.warning>span{background:#fff1dd;color:#b86d0b}.resource-check-row b{display:block;margin-bottom:5px}.resource-check-row p{margin:0;color:#657384;line-height:1.6}.resource-visual-console{background:linear-gradient(180deg,#e8f5ffb8,#f5f8fc00 260px),#f3f6fa}.resource-visual-hero{border:1px solid #d9e8f6;background:radial-gradient(circle at 18% 24%,rgba(40,199,177,.16),transparent 26%),radial-gradient(circle at 78% 16%,rgba(24,136,255,.16),transparent 30%),#fff}.resource-visual-layout{grid-template-columns:260px minmax(520px,1fr) 430px;align-items:stretch}.resource-gallery-panel{min-height:760px;overflow:hidden}.resource-visual-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px;overflow:auto}.resource-visual-card{display:grid;grid-template-rows:150px minmax(0,1fr);gap:0;min-height:335px;padding:0;overflow:hidden;text-align:left;border:1px solid #dbe7f5;border-radius:10px;background:#fff;color:#12233a;cursor:pointer;transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease}.resource-visual-card:hover,.resource-visual-card.selected{transform:translateY(-1px);border-color:#1688ff;box-shadow:0 14px 28px #1969be1f}.resource-visual-card-body{display:grid;gap:8px;padding:14px}.resource-visual-card-body b{font-size:20px}.resource-visual-card-body p{min-height:66px;margin:0;color:#5f7188;line-height:1.55}.resource-visual-card-body footer{display:flex;align-items:center;justify-content:space-between;gap:8px}.resource-visual-card-body footer em{font-style:normal;color:#53687f;font-weight:800}.resource-miniature{position:relative;display:grid;place-items:center;min-height:150px;padding:12px;overflow:hidden;background:linear-gradient(135deg,#eff7ff,#f7fbff)}.resource-miniature svg{width:100%;height:112px}.resource-miniature span,.resource-miniature em{position:relative;z-index:1;font-style:normal;color:#4e6a88;font-weight:800}.resource-miniature.route svg path,.resource-miniature.route svg polyline{fill:none;stroke:#1688ff;stroke-width:5;stroke-linecap:round}.resource-miniature.route svg polyline{stroke:#27c2b4;stroke-width:3;opacity:.78}.resource-miniature.route svg circle{fill:#ff9f1a}.resource-miniature.outline svg path,.resource-miniature.outline svg line,.resource-miniature.platform svg path{fill:none;stroke:#1688ff;stroke-width:5;stroke-linecap:round}.resource-miniature.outline svg path:nth-child(2){stroke:#9bb8d6;stroke-dasharray:8 8;stroke-width:3}.resource-miniature.platform svg rect{fill:#27c2b42e;stroke:#27c2b4;stroke-width:3}.resource-miniature.platform svg line{stroke:#ff9f1a;stroke-width:3}.geology-strip-preview{display:grid;grid-template-columns:1.1fr 2.5fr 1.7fr 1fr;width:100%;height:68px;border:1px solid #d7e6f6;border-radius:8px;overflow:hidden}.geology-strip-preview span{display:grid;place-items:center;color:#fff;font-size:18px}.geology-strip-preview .safe{background:#28b978}.geology-strip-preview .warn{background:#f7a627}.geology-strip-preview .danger{background:#f16969}.resource-miniature.capability{align-content:center;gap:6px}.resource-miniature.capability b{font-size:32px;color:#1688ff}.resource-miniature.capability div{display:grid;gap:7px;width:80%;margin-top:8px}.resource-miniature.capability i{height:8px;border-radius:999px;background:linear-gradient(90deg,#1688ff,#27c2b4)}.resource-miniature.material{gap:10px}.material-shape{display:flex;gap:8px}.material-shape span{width:18px;height:78px;border-radius:999px;background:linear-gradient(180deg,#1688ff,#27c2b4)}.resource-miniature.material.detonator .material-shape span{height:54px;background:linear-gradient(180deg,#ff9f1a,#ff6b35)}.resource-miniature.material.cord .material-shape span{height:12px;width:70px;background:#354b62}.resource-miniature.archive{gap:8px;color:#1688ff}.resource-miniature.archive b{font-size:20px}.resource-visual-detail{min-height:760px;overflow:auto}.resource-impact-card{border-radius:10px;background:linear-gradient(135deg,#edf8ff,#f8fbff)}.resource-impact-card small{display:block;margin-top:8px;color:#1688ff;font-weight:800}.resource-viewer-block{padding:0;overflow:hidden;border:1px solid #dce8f5;border-radius:10px}.resource-route-viewer,.resource-outline-viewer,.resource-geology-viewer,.resource-platform-viewer,.resource-spec-viewer{display:grid;gap:12px;padding:12px;background:#fff}.resource-viewer-tables{display:grid;gap:10px}.resource-small-table{overflow:auto;border:1px solid #e3edf7;border-radius:8px}.resource-small-table b{display:block;padding:10px 12px;background:#f2f7fd}.resource-small-table table{width:100%;border-collapse:collapse;font-size:13px}.resource-small-table th,.resource-small-table td{padding:8px 10px;border-top:1px solid #edf2f8;color:#31455c;vertical-align:top}.resource-small-table th{color:#62778e;background:#f8fbff;white-space:nowrap}.resource-outline-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.resource-outline-facts span{padding:10px;border-radius:8px;background:#f2f8ff;color:#1688ff;font-weight:900;text-align:center}.resource-spec-viewer>b{color:#12233a}.resource-spec-viewer dl{display:grid;gap:8px;margin:0}.resource-spec-viewer dl div{display:grid;grid-template-columns:92px 1fr;gap:10px;padding:9px 10px;border-radius:8px;background:#f7fbff}.resource-spec-viewer dt{color:#66788d}.resource-spec-viewer dd{margin:0;font-weight:800}.resource-template-preview.visual{display:grid;grid-template-columns:240px minmax(0,1fr);gap:16px;align-items:stretch}.resource-template-preview.visual .resource-miniature{min-height:210px;border-radius:8px}.resource-template-dialog{width:min(860px,92vw);max-height:88vh}.resource-template-dialog .resource-create-body{max-height:calc(88vh - 146px);overflow:auto}.resource-template-preview.visual>div{display:grid;align-content:start;gap:10px;min-width:0}.resource-template-preview.visual b{margin:0;font-size:18px;line-height:1.35}.resource-template-preview.visual p{margin:0}.resource-template-preview.visual dl{gap:10px}.resource-template-preview.visual dl>div{display:grid;grid-template-columns:84px minmax(0,1fr);align-items:start;gap:12px;padding:10px 12px;border-radius:8px;background:#ffffffad}.resource-template-preview.visual dd{min-width:0;overflow-wrap:anywhere;line-height:1.35}.resource-template-preview.visual dt{white-space:nowrap}.resource-create-tip{margin:0;padding:12px;border:1px solid #d8e9fb;border-radius:8px;background:#f3f9ff;color:#52677f;line-height:1.65}.resource-visual-console{background:#f3f6fa}.resource-visual-layout{grid-template-columns:320px minmax(0,1fr);align-items:stretch;min-height:calc(100vh - 84px)}.resource-accordion-panel{display:flex;flex-direction:column;gap:8px;min-height:calc(100vh - 84px);max-height:calc(100vh - 84px);overflow:auto}.resource-directory-search{box-sizing:border-box;width:100%;margin-bottom:4px;min-height:40px}.resource-directory-search input{min-width:0}.resource-accordion{display:grid;gap:7px}.resource-accordion-header{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;min-height:56px;padding:10px 12px;border:1px solid #e2ecf7;border-radius:8px;background:#f8fbff;color:#0f253f;text-align:left;cursor:pointer;transition:border-color .16s ease,background .16s ease}.resource-accordion-header:hover,.resource-accordion-header.active{border-color:#1688ff;background:#eef7ff}.resource-accordion-header.cyan.active{border-color:#27c2b4;background:#effcf9}.resource-accordion-header.orange.active{border-color:#ff9f1a;background:#fff7ec}.resource-accordion-header.green.active{border-color:#20c878;background:#effcf4}.resource-accordion-header span{display:flex;min-width:0;flex-direction:column;gap:4px}.resource-accordion-header b{color:#12233a;font-size:16px}.resource-accordion-header em{overflow:hidden;color:#6b7c91;font-style:normal;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.resource-accordion-header strong{display:grid;min-width:26px;height:26px;place-items:center;border-radius:999px;background:#edf5ff;color:#1688ff}.resource-directory-list{display:grid;gap:6px;padding-left:10px;border-left:2px solid #e7eef7}.resource-list-item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:10px;width:100%;padding:9px;border:1px solid transparent;border-radius:8px;background:#fff;color:#12233a;text-align:left;cursor:pointer}.resource-list-item:hover,.resource-list-item.selected{border-color:#9dccff;background:#f2f8ff}.resource-list-item .resource-miniature{min-height:54px;padding:4px;border-radius:7px}.resource-list-item .resource-miniature svg{height:44px}.resource-list-item .resource-miniature>span,.resource-list-item .resource-miniature>em,.resource-list-item .resource-miniature>b,.resource-list-item .resource-miniature .material-shape+b,.resource-list-item .resource-miniature.archive svg{display:none}.resource-list-item .resource-miniature.capability b{display:block;font-size:16px}.resource-list-item .resource-miniature.capability div,.resource-list-item .resource-miniature.capability em{display:none}.resource-list-item .resource-miniature.material .material-shape span{width:10px;height:38px}.resource-list-item .resource-miniature.material.cord .material-shape span{width:42px;height:8px}.resource-list-item .geology-strip-preview{height:34px}.resource-list-item .geology-strip-preview span{font-size:11px}.resource-list-item>span{display:grid;min-width:0;gap:4px}.resource-list-item b{font-size:15px}.resource-list-item code{overflow:hidden;color:#1688ff;font-size:12px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.resource-directory-empty{padding:12px;color:#7b8ba0;font-size:13px}.resource-directory-footer{position:sticky;bottom:-1px;z-index:2;margin-top:auto;padding-top:10px;border-top:1px solid #e5edf6;background:linear-gradient(180deg,#ffffffdb,#fff 28%)}.resource-create-footer-btn{width:100%;justify-content:center;min-height:42px}.resource-viewer-shell{min-width:0;min-height:calc(100vh - 84px)}.resource-viewer-shell .resource-visual-detail{min-height:calc(100vh - 84px);height:100%}.resource-viewer-shell .resource-detail-head{padding:22px 24px 18px;border-bottom:1px solid #e4eef8}.resource-viewer-shell .resource-detail-head h2{font-size:28px}.resource-viewer-shell .resource-impact-card,.resource-viewer-shell .resource-viewer-block,.resource-viewer-shell .resource-detail-section,.resource-viewer-shell .resource-issue-box{margin-right:18px;margin-left:18px}.resource-viewer-shell .resource-viewer-block{padding:0}.resource-viewer-shell .resource-route-viewer,.resource-viewer-shell .resource-outline-viewer,.resource-viewer-shell .resource-geology-viewer,.resource-viewer-shell .resource-platform-viewer,.resource-viewer-shell .resource-spec-viewer{padding:18px}.resource-viewer-shell .resource-miniature{min-height:260px}.resource-viewer-shell .resource-miniature svg{height:220px}.resource-viewer-shell .resource-route-viewer{grid-template-columns:minmax(300px,.86fr) minmax(360px,1.14fr);align-items:start}.resource-viewer-shell .resource-outline-viewer,.resource-viewer-shell .resource-platform-viewer{grid-template-columns:minmax(420px,1fr) 240px;align-items:center}.resource-viewer-shell .resource-geology-viewer{grid-template-columns:minmax(380px,.85fr) minmax(480px,1.15fr);align-items:start}.resource-viewer-shell .resource-spec-viewer{grid-template-columns:minmax(380px,.8fr) minmax(420px,1.2fr);align-items:start}.resource-viewer-shell .resource-small-table table{font-size:14px}.resource-viewer-shell .resource-small-table th,.resource-viewer-shell .resource-small-table td{padding:10px 12px}.plan-toolbar,.stats-filter{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:14px}.plan-selection-banner{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;margin-bottom:16px;padding:16px 18px;border:1px solid #9dccff;border-radius:8px;background:#eef7ff;box-shadow:inset 4px 0 #1688ff}.plan-selection-banner span{display:inline-block;margin-bottom:5px;color:#1688ff;font-weight:900}.plan-selection-banner h2{margin:0;color:#162436;font-size:22px}.plan-selection-banner p{margin:6px 0 0;color:#5f7188;font-size:15px}.plan-selection-banner .plain-btn{min-height:40px;white-space:nowrap}.plan-selection-banner .danger{color:#d94848;border-color:#ffd2d2;background:#fff7f7}.plan-toolbar input{flex:1 1 420px}.plan-list{display:grid;gap:14px}.plan-card{padding:18px;border-radius:8px}.plan-card-title h3{margin:5px 0 0;font-size:18px}.plan-code{display:inline-flex;align-items:center;min-height:24px;padding:5px 10px;border-radius:6px;color:#1688ff;background:#eef6ff;font-size:13px;font-weight:900}.plan-code-static{border:0;cursor:default}.plan-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.plan-meta span{padding:7px 10px;border-radius:6px;background:#f4f7fb;color:#526170}.plan-usage-link{min-height:32px;padding:7px 10px;border:1px solid #b9d9ff;border-radius:6px;color:#1688ff;background:#eef6ff;font-weight:900}.plan-usage-link:hover{border-color:#1688ff;background:#e2f0ff;box-shadow:0 0 0 3px #1688ff1a}.plan-preview{display:grid;grid-template-columns:220px minmax(0,1fr);gap:16px;align-items:center}.mini-face{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;padding:18px;border-radius:12px;background:#10243d}.mini-face i{width:9px;height:9px;border-radius:50%;background:#f8c33d}.plan-overview-empty{border:1px solid #e4ebf4;border-radius:8px;background:#fff;box-shadow:0 8px 24px #1826380a}.plan-overview-workspace{height:100vh;min-height:720px;display:grid;grid-template-columns:660px minmax(0,1fr);overflow:hidden;background:#dfeefe}.plan-overview-sidebar{min-width:0;display:grid;grid-template-rows:auto auto minmax(0,1fr);gap:22px;padding:18px 24px;background:#fff;box-shadow:12px 0 22px #21364e0a;z-index:1}.overview-back-btn{width:120px;min-height:42px;justify-content:center;border:1px solid #e1e8f2;border-radius:5px;background:#fff;color:#53657c}.overview-title-block{display:grid;gap:12px}.overview-section-label{position:relative;color:#2e80ff;font-weight:900;text-decoration:underline;text-underline-offset:3px}.overview-section-label:before{content:"";display:inline-block;width:4px;height:18px;margin-right:8px;border-radius:2px;vertical-align:-4px;background:#2e80ff}.overview-title-block strong{display:inline-flex;width:fit-content;max-width:100%;padding:6px 10px;border-radius:5px;color:#1688ff;background:#edf6ff;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.overview-title-block h1{margin:12px 0 0;color:#14263d;font-size:24px;font-weight:900;line-height:1.35}.overview-title-block p{margin:2px 0 0;color:#60718a;font-size:15px;line-height:1.8}.overview-tab-group{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2px}.overview-tab-group button{min-height:48px;border:0;border-radius:4px;color:#2f8bff;background:#eef5fe;font-size:15px;font-weight:900;cursor:pointer}.overview-tab-group button.active{color:#fff;background:linear-gradient(180deg,#36e2d4,#258cff);box-shadow:0 8px 18px #1e8aff47}.overview-tab-group button:focus-visible{outline:2px solid #1688ff;outline-offset:2px}.plan-overview-canvas{position:relative;min-width:0;min-height:0;height:100vh;padding:0;overflow:hidden;background:#dfeefe;box-sizing:border-box}.plan-overview-canvas img{display:block;position:absolute;inset:18px 24px;width:calc(100% - 48px);height:calc(100% - 36px);object-fit:contain;object-position:center center}.overview-table{overflow-x:hidden;overflow-y:auto;border:1px solid #e7edf5;border-radius:0 0 5px 5px;min-height:0}.overview-table table{width:100%;table-layout:fixed;border-collapse:collapse}.overview-table th,.overview-table td{padding:11px 8px;border-bottom:1px solid #edf2f7;color:#27364a;text-align:center;font-size:14px;white-space:normal;word-break:keep-all}.overview-table th{color:#5c6d84;background:#f6f9fd;font-weight:900}.overview-table tr:last-child td{border-bottom:0}.plan-overview-empty{display:grid;justify-items:start;gap:12px;padding:28px}.plan-usage-page{color:#263242}.plan-usage-hero,.usage-kpi,.usage-record-list,.usage-detail-panel,.plan-usage-empty{border:1px solid #eef1f5;border-radius:8px;background:#fff}.plan-usage-hero{display:grid;grid-template-columns:auto minmax(0,1fr);gap:18px;align-items:start;margin-bottom:14px;padding:18px}.plan-usage-hero h1{margin:8px 0 4px;color:#172033;font-size:26px}.plan-usage-hero p{margin:0 0 12px;color:#5a6878;font-size:16px}.plan-usage-meta{display:flex;flex-wrap:wrap;gap:8px}.plan-usage-meta span{padding:6px 10px;border-radius:6px;color:#506173;background:#f4f7fb;font-weight:700}.usage-kpi-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:14px}.usage-kpi{min-height:86px;padding:14px 16px}.usage-kpi span{display:block;color:#718095;font-size:14px;font-weight:800}.usage-kpi b{display:block;margin-top:8px;color:#192334;font-size:24px}.usage-kpi.green b{color:#16a363}.usage-kpi.orange b{color:#ff8a2a}.plan-usage-layout{display:grid;grid-template-columns:292px minmax(0,1fr);gap:14px}.usage-record-list{align-self:start;overflow:hidden}.usage-list-head{padding:14px 16px;border-bottom:1px solid #eef1f5}.usage-list-head b,.usage-section h3{display:block;color:#192334;font-size:17px}.usage-list-head span{display:block;margin-top:4px;color:#7b8998;font-size:13px}.usage-record-list button{width:100%;display:grid;gap:5px;padding:14px 16px;border:0;border-bottom:1px solid #eef1f5;background:#fff;text-align:left}.usage-record-list button:hover,.usage-record-list button.active{background:#f0f7ff}.usage-record-list button.active{box-shadow:inset 4px 0 #1688ff}.usage-record-list strong{color:#172033;font-size:16px}.usage-record-list span{color:#718095}.usage-record-list em,.usage-detail-head strong,.usage-comparison-table span{width:max-content;padding:4px 8px;border-radius:999px;font-style:normal;font-size:13px;font-weight:900}.usage-record-list em.ok,.usage-detail-head strong.ok,.usage-comparison-table span.ok{color:#16a363;background:#eaf9ef}.usage-record-list em.warn,.usage-detail-head strong.warn,.usage-comparison-table span.warn{color:#d56b00;background:#fff2e4}.usage-detail-panel{padding:16px}.usage-detail-head{display:flex;justify-content:space-between;gap:18px;padding:14px 16px;border-radius:8px;background:#f7fbff}.usage-detail-head span{color:#1688ff;font-weight:900}.usage-detail-head h2{margin:6px 0;color:#172033}.usage-detail-head p{margin:0;color:#647386}.usage-section{margin-top:16px}.usage-section h3{margin:0 0 10px;padding-left:10px;border-left:4px solid #1688ff}.usage-comparison-table{overflow:auto;border:1px solid #edf1f5;border-radius:8px}.usage-comparison-table table{width:100%;border-collapse:collapse}.usage-comparison-table th,.usage-comparison-table td{padding:12px 14px;border-bottom:1px solid #edf1f5;text-align:left}.usage-comparison-table th{color:#243145;background:#fbfcfe;font-weight:900}.usage-comparison-table tr:last-child td{border-bottom:0}.resource-evidence-grid,.engineering-data-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.resource-evidence-grid div,.engineering-data-card{min-height:104px;padding:14px;border:1px solid #edf1f5;border-radius:8px;background:#fbfcfe}.resource-evidence-grid b,.engineering-data-card b{display:block;margin-bottom:8px;color:#1b2736;font-size:15px}.resource-evidence-grid p,.engineering-data-card p{margin:0 0 7px;color:#435267;font-weight:800}.resource-evidence-grid span{color:#718095;font-size:13px}.engineering-data-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.plan-usage-empty{padding:40px;color:#718095;text-align:center}.process-page{background:#f4f6f9}.tabs-bar{display:flex;gap:8px;margin-bottom:12px}.tabs-bar button,.stats-filter button{min-height:38px;padding:0 16px;border:1px solid #dfe5ec;border-radius:6px;color:#435163;background:#fff;font-weight:800}.tabs-bar button.active,.stats-filter button.active{color:#1688ff;border-color:#1688ff;background:#eef6ff}.process-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.control-ledger{overflow:auto;border-radius:8px}.control-table{min-width:1600px}.control-table th,.control-table td{height:68px}.control-table small{display:block;margin-top:4px;color:#8290a0}.node-badge{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-width:72px;min-height:34px;border-radius:4px;font-size:13px;font-weight:900}.node-badge.done{color:#16a530;background:#e9f9e8}.node-badge.doing{color:#ff8a21;background:#fff2e6;border:1px solid #ffbf83}.node-badge.todo{color:#9aa4b0;background:#f6f7f9}.control-detail{padding:12px;border-radius:8px}.detail-top{align-items:stretch;margin-bottom:10px}.info-box,.material-box,.detonator-box{padding:16px;border-radius:8px;background:#fff;border:1px solid #eef1f5}.info-box span{display:flex;justify-content:space-between;color:#515f6f;font-weight:800}.info-box em{font-style:normal;color:#18b757}.info-box strong,.detonator-box b{display:block;margin-top:12px;color:#303642;font-size:24px}.info-box small{display:block;margin-top:5px;color:#7f8c9a}.material-box{flex:1}.material-box h3,.detonator-box h3,.evidence-view h3,.control-aside h3,.flow-summary h3,.chart-card h3{margin:0 0 12px}.material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.detonator-box{min-width:260px}.detail-main{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:10px}.evidence-view,.control-aside,.flow-summary{padding:16px;border-radius:8px;background:#fff;border:1px solid #eef1f5}.photo-stage{width:100%;min-height:330px;display:grid;grid-template-rows:1fr auto;padding:0;overflow:hidden;border:0;border-radius:8px;background:#474747}.tunnel-photo{display:grid;place-items:center;color:#fff;background:linear-gradient(120deg,rgba(255,255,255,.08),transparent 45%),radial-gradient(circle at 50% 40%,#8d8d8d,#333 58%)}.photo-stage em{display:block;margin:0 auto 20px;padding:12px 28px;border-radius:999px;color:#475260;background:#ffffffe6;font-style:normal}.thumb-strip{display:grid;grid-template-columns:repeat(8,minmax(100px,1fr));gap:8px;margin-top:10px;overflow-x:auto}.thumb-strip button{min-height:70px;border:1px solid #dfe6ef;border-radius:8px;color:#5d6875;background:#fff}.thumb-strip button.active{border-color:#1688ff;color:#1688ff}.lab-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi-mini{min-height:70px;padding:12px;border-radius:8px;background:#f1f7ff}.kpi-mini span{display:block;color:#607286}.kpi-mini b{display:block;margin-top:6px;color:#182232;font-size:23px}.green-list,.orange-list{margin:0 0 16px;padding:12px 18px 12px 34px;border-radius:8px}.green-list{color:#329551;background:#edfbef}.orange-list{color:#d97922;background:#fff4ea}.green-list li,.orange-list li{margin:8px 0}.flow-summary{margin-top:10px}.flow-steps{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:10px}.flow-step{min-height:110px;display:grid;place-items:center;gap:5px;border-radius:8px;background:#f7fbff}.flow-step b{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#1688ff;font-size:22px}.summary-row,.charts-grid{display:grid;gap:14px}.summary-row{grid-template-columns:repeat(5,minmax(0,1fr));margin-bottom:14px}.charts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.chart-card{min-height:340px;padding:16px;border-radius:8px}.stats-dashboard-page{padding-top:16px}.stats-toolbar{position:relative;z-index:4;min-height:64px;display:flex;align-items:center;gap:14px;margin-bottom:16px;padding:10px 14px;border:1px solid #dfe8f2;border-radius:12px;background:#fff;box-shadow:0 5px 18px #17233d0a}.stats-toolbar label{flex:0 0 auto;color:#1f2c3d;font-size:17px;font-weight:900}.stats-workface-trigger{width:320px;height:42px;display:inline-flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border:1px solid #1688ff;border-radius:9px;color:#17233d;background:#fff;box-shadow:0 0 0 3px #1880ff14;font-weight:800}.stats-workface-trigger span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.stats-toolbar-spacer{flex:1 1 auto}.stats-date-label{color:#71839b!important;font-size:14px!important}.stats-date-range,.stats-period-select{height:42px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #dce5ef;border-radius:8px;color:#33445f;background:#fff;font-weight:800}.stats-date-range{min-width:210px;padding:0 18px}.stats-period-select{width:112px;padding:0 12px;background:#f8fbff}.stats-workface-popover{position:fixed;z-index:1000;width:520px;border:1px solid #dbe7f4;border-radius:12px;background:#fff;box-shadow:0 22px 50px #142c4c38;overflow:hidden}.stats-popover-head{padding:14px;border-bottom:1px solid #edf2f7;background:#fbfdff}.stats-search-box{height:38px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #d9e4ef;border-radius:8px;color:#8ca0b6;font-size:14px}.stats-popover-body{max-height:265px;overflow-y:auto;padding:8px 10px}.stats-popover-body h4{margin:0;padding:9px 8px 5px;color:#7b8da3;font-size:13px}.stats-popover-body button{width:100%;height:38px;display:flex;align-items:center;justify-content:space-between;padding:0 10px;border:0;border-radius:8px;color:#2d3c52;background:transparent;font-size:14px;text-align:left}.stats-popover-body button:hover,.stats-popover-body button.active{color:#1677ff;background:#eef6ff;font-weight:900}.stats-popover-body i{width:16px;height:16px;display:grid;place-items:center;border:1px solid #b8c7d8;border-radius:4px;color:#fff;font-style:normal;font-size:12px}.stats-popover-body button.active i{border-color:#1677ff;background:#1677ff}.stats-popover-foot{height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 14px;border-top:1px solid #edf2f7;color:#71839b;background:#fff;font-size:13px}.stats-popover-foot div{display:inline-flex;gap:8px}.stats-popover-foot .plain-btn,.stats-popover-foot .primary-btn{min-height:34px;padding:0 14px}.stats-kpi-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;margin-bottom:14px}.stats-kpi{min-height:104px;padding:16px;border:1px solid #e1e9f2;border-radius:12px;background:#fff}.stats-kpi span{display:block;color:#60738f;font-size:14px;font-weight:800}.stats-kpi b{display:block;margin-top:10px;color:#14233c;font-size:26px;line-height:1.15}.stats-kpi em{display:block;margin-top:6px;color:#13a66b;font-size:13px;font-style:normal}.stats-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px}.stats-card{min-width:0;border:1px solid #e1e9f2;border-radius:12px;background:#fff;overflow:hidden}.stats-card>header{min-height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 16px;border-bottom:1px solid #edf2f7}.stats-card h3{margin:0;color:#16243a;font-size:18px;font-weight:900}.stats-card>header>span,.stats-card>header>button{border:0;color:#1677ff;background:transparent;font-size:13px;font-weight:800}.stats-segmented{display:inline-flex;overflow:hidden;border:1px solid #dce6f1;border-radius:8px}.stats-segmented button{min-width:42px;height:30px;padding:0 10px;border:0;border-right:1px solid #dce6f1;color:#5c6f87;background:#fff;font-size:13px}.stats-segmented button:last-child{border-right:0}.stats-segmented button.active{color:#fff;background:#1677ff}.stats-progress-card{min-height:320px;padding-bottom:12px}.stats-quality-card{min-height:320px}.quality-layout{display:grid;grid-template-columns:230px minmax(0,1fr) 190px;gap:16px;padding:16px}.quality-score{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;border:1px solid #e6eef7;border-radius:12px;background:linear-gradient(180deg,#f7fbff,#fff);text-align:center}.quality-ring{width:150px;height:150px;display:grid;place-items:center;border-radius:50%;background:conic-gradient(#1684ff 0 var(--score),#e8f1fb var(--score) 100%);position:relative}.quality-ring:after{content:"";position:absolute;width:116px;height:116px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px #edf2f7}.quality-ring strong,.quality-ring span{position:relative;z-index:1;display:block}.quality-ring strong{color:#14233c;font-size:34px;line-height:36px}.quality-ring span{color:#71839b;font-size:13px}.quality-score p{margin:14px 0 0;color:#42556f;font-size:14px;line-height:22px}.quality-score b{color:#13a66b}.quality-metrics{display:grid;align-content:center;gap:11px}.quality-metric{min-height:42px;display:grid;grid-template-columns:94px minmax(0,1fr) 64px 54px;align-items:center;gap:12px}.quality-metric b,.quality-metric strong{color:#25364d;font-weight:900}.quality-metric span{display:block;margin-top:2px;color:#71839b;font-size:12px}.quality-metric i{height:12px;overflow:hidden;border-radius:999px;background:#edf3f9}.quality-metric i em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#31b2ff,#1677ff)}.quality-metric i.warn em{background:linear-gradient(90deg,#ffc56d,#ff8a1c)}.quality-metric strong{text-align:right}.quality-metric small{padding:5px 8px;border-radius:999px;color:#10a565;background:#e9fbf2;text-align:center;font-weight:900}.quality-metric small.warn{color:#ff8a1c;background:#fff2e3}.quality-focus{padding-left:16px;border-left:1px solid #edf2f7}.quality-focus h4{margin:0 0 12px;color:#16243a;font-size:16px}.quality-focus>div{margin-bottom:12px;padding:12px;border:1px solid #ffd9ae;border-radius:10px;background:#fff7ed}.quality-focus b{display:block;margin-bottom:6px;color:#b65b00}.quality-focus p{margin:0;color:#5f6f84;font-size:13px;line-height:20px}.quality-focus dl{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0}.quality-focus dt,.quality-focus dd{margin:0;padding:8px 10px;border:1px solid #e6eef7;background:#f8fbff}.quality-focus dt{border-bottom:0;border-radius:10px 10px 0 0;color:#71839b;font-size:12px}.quality-focus dd{border-top:0;border-radius:0 0 10px 10px;color:#17233d;font-size:18px;font-weight:900}.stats-material-card,.stats-cost-card{min-height:300px}.material-bars{height:246px;display:flex;flex-direction:column;justify-content:space-around;padding:18px}.material-bar-row{display:grid;grid-template-columns:120px minmax(0,1fr) 92px;align-items:center;gap:12px;color:#394a62;font-size:14px}.material-bar-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:800}.material-bar-row i{height:12px;overflow:hidden;border-radius:999px;background:#edf3f9}.material-bar-row i em{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#31b2ff,#1677ff)}.material-bar-row i.warn em{background:linear-gradient(90deg,#ffc56d,#ff8a1c)}.material-bar-row b{color:#17233d;font-size:13px;text-align:right}.cost-list{padding:14px 16px}.cost-row{height:40px;display:grid;grid-template-columns:28px minmax(0,1fr) 82px 54px;align-items:center;gap:10px;border-bottom:1px solid #edf2f7;font-size:14px}.cost-row b{width:22px;height:22px;display:grid;place-items:center;border-radius:6px;color:#1677ff;background:#eef6ff;font-size:12px}.cost-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cost-row em{color:#5f7188;font-style:normal;text-align:right}.cost-row i{display:inline-flex;justify-content:center;padding:5px 9px;border-radius:999px;color:#10a565;background:#e9fbf2;font-size:12px;font-style:normal;font-weight:900}.cost-row i.warn{color:#c46a00;background:#fff2e3}.stats-detail-table{grid-column:1 / span 2}.stats-table-scroll{overflow:auto}.stats-detail-table table{width:100%;min-width:940px;border-collapse:collapse;font-size:14px}.stats-detail-table th{height:42px;padding:0 14px;color:#4e627c;background:#f8fbff;border-bottom:1px solid #e6eef7;text-align:left;white-space:nowrap}.stats-detail-table td{height:46px;padding:0 14px;border-bottom:1px solid #edf2f7;color:#26364d;white-space:nowrap}.modal-backdrop{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:24px;background:#121b286b}.modal-backdrop.dark{background:#000000b8}.modal-panel{position:relative;width:min(760px,100%);max-height:calc(100vh - 48px);overflow:auto;padding:24px;border-radius:10px;box-shadow:0 24px 80px #0000002e}.wide-modal{width:min(1120px,100%)}.modal-close{position:absolute;right:16px;top:16px;width:34px;height:34px;border:0;border-radius:6px;background:#f1f4f8}.create-modal{width:min(900px,calc(100vw - 48px));max-height:min(860px,calc(100vh - 48px));display:grid;grid-template-rows:82px minmax(0,1fr) 78px;padding:0;overflow:hidden;border-radius:12px}.edit-cycle-modal{width:min(780px,calc(100vw - 48px))}.create-modal-head{display:flex;align-items:center;padding:0 28px;border-bottom:1px solid #edf0f4}.create-modal-head h2{margin:0;color:#202632;font-size:25px}.create-modal-head .modal-close{position:static;margin-left:auto;color:#888;background:transparent}.create-modal-body{min-height:0;overflow:auto;padding:28px}.create-form-section{margin-bottom:22px}.create-form-section h3{margin:0 0 16px;color:#1f2630;font-size:19px}.create-form-section p{margin:-4px 0 14px;color:#637285;font-size:16px}.create-field{display:grid;gap:9px;margin-bottom:16px;color:#1f2630;font-size:20px}.create-field span{font-weight:500}.create-field i{color:#ff5b5b;font-style:normal}.create-field input,.create-field select{width:100%;height:54px;padding:0 20px;border:1px solid #d8dce2;border-radius:9px;color:#202632;background:#fff;font-size:20px;outline:0}.create-field input:focus,.create-field select:focus{border-color:#1688ff;box-shadow:0 0 0 3px #1688ff1f}.mileage-input{display:grid;grid-template-columns:72px minmax(0,1fr) 28px minmax(0,1fr);align-items:center;gap:12px}.mileage-input em,.mileage-input strong{color:#202632;font-style:normal;font-weight:500;font-size:21px}.mileage-input strong{text-align:center}.mileage-input em input{width:100%;height:40px;padding:0;border:0;color:#202632;background:transparent;font:inherit;outline:none;text-transform:uppercase}.unit-input{display:grid;grid-template-columns:minmax(0,1fr) 72px;height:56px;overflow:hidden;border:1px solid #d8dce2;border-radius:9px;background:#fff}.unit-input input{height:100%;border:0;border-radius:0;box-shadow:none}.unit-input b{display:grid;place-items:center;border-left:1px solid #d8dce2;color:#202632;background:#fbfbfc;font-size:20px;font-weight:500}.create-options{display:grid;gap:14px}.create-options button{position:relative;display:grid;grid-template-columns:18px minmax(0,1fr);gap:7px 10px;align-items:start;padding:17px 20px;border:1px solid #dfe6ef;border-radius:8px;background:#fff;text-align:left}.create-options button.selected{border-color:#1688ff;background:#f2f8ff;box-shadow:0 0 0 3px #1688ff14}.create-options button i{width:14px;height:14px;margin-top:7px;border:2px solid #b9c5d4;border-radius:50%}.create-options button.selected i{border-color:#1688ff;background:radial-gradient(circle at center,#1688ff 0 45%,transparent 47%)}.create-options b,.create-options span{display:block;grid-column:2}.create-options b{color:#172333;font-size:21px}.create-options span{color:#637285;font-size:18px}.create-modal-foot{display:flex;justify-content:flex-end;align-items:center;gap:14px;padding:0 28px;border-top:1px solid #edf0f4}.create-modal-foot .plain-btn,.create-modal-foot .primary-btn{min-width:96px;min-height:50px;border-radius:9px;font-size:20px}.delete-backdrop{align-items:center}.delete-confirm-modal{width:min(520px,calc(100vw - 48px));padding:34px 38px 28px;border-radius:8px;background:#fff}.delete-confirm-content{display:flex;gap:18px;align-items:flex-start}.delete-warning-icon{width:34px;height:34px;flex:0 0 34px;display:grid;place-items:center;border:2px solid #f5b83d;border-radius:50%;color:#f2a91f;font-size:22px;font-weight:900;line-height:1}.delete-confirm-content h2{margin:0 0 12px;color:#1d2633;font-size:22px;font-weight:900}.delete-confirm-content p{margin:0 0 8px;color:#ff2e32;font-size:18px;font-weight:800}.delete-confirm-content span{color:#67758a;font-size:14px}.delete-confirm-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}.delete-confirm-actions .plain-btn,.delete-confirm-actions .primary-btn{min-width:82px;min-height:42px;font-size:16px}.modal-action{float:right;margin-top:16px}.work-apply-backdrop{align-items:center;justify-items:center;padding:64px 24px;background:#121b2875}.work-apply-modal{width:min(910px,calc(100vw - 48px));height:min(760px,calc(100vh - 96px));display:grid;grid-template-rows:64px minmax(0,1fr) 64px;padding:0;overflow:hidden;border-radius:8px;background:#fff;box-shadow:0 24px 80px #0914233d}.work-apply-head{display:flex;align-items:center;padding:0 24px;border-bottom:1px solid #eef0f4}.work-apply-head h2{margin:0;color:#202632;font-size:18px}.work-apply-head .modal-close{position:static;margin-left:auto;color:#888;background:transparent}.work-apply-body{min-height:0;overflow:auto;padding:28px 24px}.work-apply-foot{display:flex;justify-content:flex-end;gap:14px;align-items:center;padding:0 18px;border-top:1px solid #eef0f4}.work-apply-foot .plain-btn,.work-apply-foot .primary-btn{min-width:72px;min-height:40px;border-radius:8px;font-size:16px}.apply-ticket-form{color:#30343b}.apply-ticket-section{margin-bottom:14px;padding:18px 26px;background:#f7f7f7}.apply-ticket-section.bordered{border:1px solid #e6e8ec;border-radius:4px;background:#fff}.apply-ticket-section.band-only{min-height:74px;display:flex;align-items:flex-start;border-radius:0}.apply-ticket-section h3,.apply-ticket-approval h3{margin:0 0 16px;color:#2a2d33;font-size:18px;font-weight:900}.apply-ticket-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 24px}.apply-ticket-grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.apply-ticket-field{display:grid;gap:8px;color:#222832;font-size:17px;font-weight:800}.apply-ticket-field span i{margin-right:4px;color:#f26868;font-style:normal}.apply-ticket-field em{height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #dfe3e8;border-radius:4px;color:#242933;background:#fff;font-style:normal;font-weight:700}.apply-ticket-select{position:relative;z-index:2}.apply-select-control{height:40px;display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #dfe3e8;border-radius:4px;color:#242933;background:#fff;font:inherit;font-weight:700;text-align:left}.apply-select-control svg{margin-left:auto;color:#b9bec6}.apply-select-control.muted{color:#c1c5cb;font-weight:500}.apply-select-control.focused{border-color:#198dff;box-shadow:0 0 0 2px #198dff1f}.apply-select-menu{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:10;padding:10px 6px;border:1px solid #e5e7eb;border-radius:6px;background:#fff;box-shadow:0 8px 24px #18233029}.apply-select-menu button{width:100%;min-height:42px;padding:0 14px;border:0;border-radius:4px;color:#242933;background:transparent;font-size:18px;text-align:left}.apply-select-menu button.active,.apply-select-menu button:hover{background:#f3f3f3}.apply-ticket-field em.muted{color:#c1c5cb;font-weight:500}.apply-ticket-field em svg,.apply-ticket-field .field-icon{margin-left:auto;color:#b9bec6;font-size:18px}.apply-ticket-field .field-icon.clear{width:18px;height:18px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#bdc2c8;font-size:13px}.apply-person-tag{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 8px;border:1px solid #d8d8d8;border-radius:4px;color:#2a3038;background:#f3f3f3;font-weight:500}.apply-person-tag small{color:#8a8a8a;font-size:18px}.apply-material-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:26px}.apply-material-field{display:grid;gap:8px;color:#242933;font-size:17px;font-weight:900}.apply-material-field em{height:44px;display:grid;grid-template-columns:minmax(0,1fr) 62px;border:1px solid #dfe3e8;border-radius:7px;overflow:hidden;background:#fff;font-style:normal}.apply-material-field b{display:flex;align-items:center;padding:0 16px;font-size:18px;font-weight:500}.apply-material-field i{display:grid;place-items:center;border-left:1px solid #dfe3e8;color:#242933;background:#f3f3f3;font-style:normal;font-weight:500}.plan-code-card{width:100%;display:grid;gap:8px;padding:18px 20px;border:1px solid #b9d9ff;border-radius:8px;color:#1b2b44;background:linear-gradient(180deg,#f8fbff,#eef6ff);text-align:left;box-shadow:0 8px 22px #1688ff14}.plan-code-card:hover{border-color:#1688ff;box-shadow:0 0 0 3px #1688ff1a,0 10px 28px #1688ff1f}.plan-code-card span{width:fit-content;padding:6px 10px;border-radius:6px;color:#1688ff;background:#e8f3ff;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:16px;font-weight:900}.plan-code-card b{color:#16243a;font-size:18px}.plan-code-card small{color:#60718a;font-size:14px;font-weight:700}.plan-code-card.disabled{border-color:#e1e7ef;background:#f8fafc;box-shadow:none}.plan-code-card.disabled span{color:#8a96a6;background:#edf1f5}.plan-code-card.disabled p{margin:0;color:#8a96a6}.apply-plan-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.apply-plan-sketch{position:relative;height:256px;overflow:hidden;background:linear-gradient(#fde8ed 0 24%,transparent 24% 83%,#fde8ed 83%),#fff}.apply-plan-sketch:after{content:"";position:absolute;left:8%;right:8%;bottom:34px;height:1px;border-bottom:2px solid #7cc4f4}.apply-plan-sketch i{position:absolute;width:4px;height:4px;border-radius:50%;background:#2aa0e8}.apply-plan-sketch i.orange{background:#f5a623}.apply-plan-sketch .red-post{position:absolute;bottom:35px;width:4px;height:72px;background:repeating-linear-gradient(to bottom,#ff4b86 0 6px,transparent 6px 11px)}.apply-plan-sketch .red-post.left{left:34%}.apply-plan-sketch .red-post.right{right:34%}.apply-plan-sketch small{position:absolute;left:50%;bottom:52px;transform:translate(-50%);color:#c9c9c9;font-size:12px}.apply-ticket-approval{padding:0 0 18px}.apply-approval-row{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:14px;margin:18px 0;color:#b7b7b7}.apply-approval-row span{width:32px;height:32px;display:grid;place-items:center;border-radius:5px;color:#fff;background:#c8c8c8;font-weight:900}.apply-approval-row b{color:#b5b5b5;font-size:14px}.gallery-panel{position:relative;width:min(1180px,100%)}.gallery-photo{min-height:650px;display:grid;place-items:center;border-radius:12px;color:#fff;background:linear-gradient(120deg,rgba(255,255,255,.1),transparent 45%),radial-gradient(circle at 50% 42%,#888,#252525 60%)}.gallery-photo span{display:block;margin-top:12px;font-size:24px}.gallery-caption{margin-top:12px;padding:12px 16px;border-radius:999px;color:#fff;background:#ffffff29;text-align:center}@media(max-width:1180px){.home-page{grid-template-columns:280px minmax(0,1fr)}.resource-strip{grid-template-columns:repeat(2,minmax(220px,1fr))}.resource-board,.charts-grid,.detail-main{grid-template-columns:1fr}.summary-row,.flow-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:760px){.product-topbar{height:auto;flex-wrap:wrap;padding:10px}.module-nav{order:3;width:100%}.topbar-actions{width:100%;justify-content:flex-end;gap:14px;padding-left:0;border-left:0;overflow-x:auto}.home-page{height:auto;display:block}.workface-tree{height:auto;max-height:360px;border-right:0;border-bottom:1px solid #dfe6ef}.tree-list{max-height:260px}.ledger-area,.page-pad{padding:10px}.resource-strip,.resource-board,.plan-preview,.material-grid,.summary-row,.charts-grid,.flow-steps{grid-template-columns:1fr}.filter-bar{align-items:stretch;flex-direction:column}.filter-bar label,.filter-bar input,.filter-bar button,.plan-toolbar input,.plan-toolbar button{width:100%}.detail-top,.section-title,.page-header{align-items:stretch;flex-direction:column}}.process-page{min-height:calc(100vh - 56px);padding:10px;background:#f5f7fa}.control-filter-bar{display:flex;align-items:center;gap:14px;min-height:58px;padding:10px 12px;margin-bottom:8px;border:1px solid #edf0f5;background:#fff}.control-filter-bar label{display:inline-flex;align-items:center;gap:8px;color:#1e2632;font-weight:800;white-space:nowrap}.control-filter-bar input{width:230px;height:36px;padding:0 12px;border:1px solid #dfe5ec;border-radius:5px;color:#687484;background:#fff}.control-ledger{overflow:auto;border:1px solid #edf0f5;border-radius:6px;background:#fff}.control-table{width:100%;min-width:1970px;border-collapse:collapse;color:#303642;table-layout:fixed}.control-table .col-face,.control-table .col-cycle{width:170px}.control-table .col-time{width:150px}.control-table .col-person{width:120px}.control-table .col-team{width:180px}.control-table .col-progress{width:210px}.control-table .col-node{width:126px}.control-table .col-code{width:220px}.control-table th,.control-table td{min-height:64px;padding:14px 12px;border:1px solid #edf0f4;text-align:left;vertical-align:middle;background:#fff}.control-table th{color:#111926;background:#fbfcfe;font-weight:900}.control-table thead tr:first-child th[colspan]{text-align:center}.control-table tbody tr.selected-row td{background:#eef6ff}.control-table td b{display:block;color:#111926;font-weight:900}.control-table td small{display:block;margin-top:6px;color:#8a97a8}.node-badge{min-width:82px;min-height:42px;display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:1px solid transparent;border-radius:4px;font-size:13px;font-weight:900}.node-badge span{width:13px;height:13px;border-radius:50%}.node-badge.done{color:#20b723;background:#e9fae8}.node-badge.done svg{color:#20c42b}.node-badge.doing{color:#ff8d22;border-color:#ffbd80;background:#fff2e7}.node-badge.doing span{background:#ff9a2f}.node-badge.waiting,.node-badge.todo{color:#a6adb7;background:#f8f8f8}.node-badge.waiting span,.node-badge.todo span{background:#b8bdc4}.node-badge:disabled{cursor:default}.apply-code{border:0;background:transparent;font-weight:800}.apply-code.clickable{color:#1688ff}.apply-code.locked{color:#a2adba;cursor:default}.process-pagination{display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:14px 18px;color:#4d5968}.pager{min-width:28px;height:28px;border:1px solid transparent;border-radius:5px;background:#fff}.pager.active{color:#1688ff;border-color:#1688ff}.drawer-backdrop{position:fixed;inset:0;z-index:28;display:flex;justify-content:flex-end;background:#0a121e2e}.control-drawer{width:min(790px,100vw);height:100vh;display:grid;grid-template-rows:56px minmax(0,1fr) 64px;background:#fff;box-shadow:-12px 0 40px #14223424}.control-drawer.tall{width:min(720px,100vw)}.drawer-head,.drawer-foot{display:flex;align-items:center;padding:0 18px;border-bottom:1px solid #edf0f5}.drawer-head h2{margin:0;font-size:20px}.drawer-head button{margin-left:auto;border:0;background:transparent;color:#8b929b}.drawer-body{min-height:0;overflow:auto;padding:16px}.drawer-foot{justify-content:flex-end;gap:10px;border-top:1px solid #edf0f5;border-bottom:0}.warning-btn{min-height:38px;padding:0 18px;border:0;border-radius:999px;color:#fff;background:#ff8d22;font-weight:800}.drawer-section{margin-bottom:14px;padding:14px;border:1px solid #e4e9f0;border-radius:5px;background:#fff}.drawer-section.shaded,.check-block{background:#f7f7f8;border-color:#f0f1f3}.drawer-section h3,.upload-pair h4{margin:0 0 14px;color:#232a34}.drawer-field-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}.drawer-field-grid label,.material-inline label{display:grid;gap:8px;color:#2a313b;font-weight:800}.drawer-field-grid i{color:#ff5757;font-style:normal}.drawer-field-grid input,.material-inline input{height:38px;min-width:0;padding:0 12px;border:1px solid #d9dee6;border-radius:5px;color:#303642;background:#fff}.material-inline{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.material-inline span{display:grid;grid-template-columns:minmax(0,1fr) 44px}.material-inline em{display:grid;place-items:center;border:1px solid #d9dee6;border-left:0;border-radius:0 5px 5px 0;background:#f5f6f8;font-style:normal}.plan-sketch-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.plan-sketch,.plan-mini{position:relative;overflow:hidden;display:grid;grid-template-columns:repeat(10,1fr);gap:4px;padding:24px 18px 12px;border-radius:2px;background:linear-gradient(#fde8ec 0 18%,transparent 18% 82%,#fde8ec 82%),#fff}.plan-sketch i,.plan-mini:before{width:4px;height:4px;border-radius:50%;background:#1688ff}.plan-sketch i:nth-child(3n){background:#ff9a22}.plan-sketch i:nth-child(11n){background:#ff3d67}.upload-pair{margin-bottom:14px}.upload-list{display:flex;gap:10px}.upload-thumb,.upload-slot{width:126px;height:104px;display:grid;place-items:center;border:1px solid #dfe4eb;border-radius:6px;background:#fff}.upload-slot{color:#8994a2;border-style:dashed}.mock-photo{display:block;background:linear-gradient(120deg,rgba(255,255,255,.18),transparent 45%),radial-gradient(circle at 55% 35%,#a0a0a0,#2e2e2e 68%)}.mock-photo.small{width:100px;height:78px;border-radius:4px}.check-block{margin:12px 0;padding:12px}.check-block b{display:block;margin-bottom:10px}.check-block label{display:block;margin:7px 0;color:#626b76}.add-line{width:38px;height:28px;border:1px solid #9bccff;border-radius:4px;color:#1688ff;background:#fff}.sign-count{float:right;padding:3px 8px;border:1px solid #b9dbff;border-radius:4px;color:#1688ff;font-size:12px}.signature-card{position:relative;margin-top:10px;padding:14px 14px 10px;border:1px solid #e5e9f0;border-radius:5px;background:#fff}.signature-card>span{display:block;color:#707b88}.signature-card i{position:absolute;right:12px;top:12px;padding:4px 8px;color:#18b757;background:#eefbf0;border-radius:4px;font-style:normal}.signature{display:inline-grid;place-items:center;min-width:110px;min-height:46px;margin-top:8px;color:#111;background:#fff;font-family:KaiTi,STKaiti,serif;font-size:32px}.approval-flow{padding:14px 0}.approval-line{display:grid;grid-template-columns:130px minmax(80px,1fr) auto auto auto;gap:10px;align-items:center;margin:18px 0}.approval-line span b{display:block;color:#303642}.approval-line i{border-top:1px dashed #7fd788}.approval-line em{color:#18b757;font-style:normal;font-weight:900}.approval-line strong{color:#18b757}.approval-line button{min-height:30px;padding:0 12px;border:0;border-radius:999px;color:#fff;background:#20c755}.approval-line button.orange{background:#ff8d22}.control-detail-page{min-height:calc(100vh - 56px);padding:10px 12px 18px;background:#f5f9fd}.detail-nav{height:56px;display:grid;grid-template-columns:auto minmax(120px,1fr) auto auto;align-items:center;gap:16px;padding:0 8px;margin-bottom:10px;background:#fff}.detail-nav>button:first-child{width:32px;height:32px;border:0;border-radius:4px;color:#1688ff;background:#eaf3ff}.detail-nav h1{margin:0;font-size:20px}.detail-meta{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;color:#8b95a3}.detail-meta b{display:block;color:#303642}.share-btn{min-height:36px;padding:0 18px;border:0;border-radius:999px;color:#fff;background:#2f89ff;font-weight:800}.detail-grid{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(360px,.55fr);gap:10px}.detail-main-column{grid-column:1}.detail-top-cards{display:grid;grid-template-columns:minmax(190px,.8fr) minmax(380px,1.6fr) minmax(220px,.9fr);gap:10px}.ticket-card,.material-card,.detonator-card,.evidence-card,.closed-loop,.detail-flow{border-radius:8px;background:#fff;border:1px solid #edf1f6}.ticket-card,.material-card,.detonator-card{min-height:150px;padding:20px}.ticket-card span,.detonator-card em,.info-tile span{color:#5d6875;font-style:normal;font-weight:800}.ticket-card b,.detonator-card b{display:block;margin-top:20px;color:#333943;font-size:24px}.material-card h3,.detonator-card h3,.evidence-card h3,.closed-loop h3,.detail-flow h3{margin:0 0 14px}.detonator-card h3{display:flex;justify-content:space-between}.detonator-card h3 button{border:0;color:#1688ff;background:transparent;font-weight:800}.material-stats,.loop-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.loop-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.info-tile{min-height:82px;padding:12px;border:1px solid #b9dbff;border-radius:6px;background:#f2f8ff}.info-tile em{float:right;color:#18b757;font-style:normal}.info-tile b{display:block;margin-top:8px;color:#2f89ff;font-size:25px}.info-tile small{display:block;color:#707b88}.closed-loop{grid-column:2;grid-row:1 / span 3;padding:16px}.evidence-card{grid-column:1;padding:16px}.evidence-stage{position:relative;min-height:390px;overflow:hidden;display:grid;place-items:center;border-radius:6px;background:#444}.mock-photo.tunnel{width:75%;height:390px}.fullscreen-btn{position:absolute;right:18px;top:18px;z-index:2;width:34px;height:34px;border:0;border-radius:4px;color:#6b737c;background:#fff}.photo-info{position:absolute;left:9%;right:9%;bottom:26px;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;min-height:48px;border-radius:999px;color:#7b8490;background:#fffffff2;text-align:center}.photo-info span{border-right:1px solid #e4e8ef}.photo-info span:last-child{border-right:0}.photo-info b{color:#18b757}.evidence-thumbs{display:grid;grid-template-columns:repeat(8,minmax(120px,1fr));gap:8px;margin-top:10px;overflow-x:auto}.evidence-thumbs button{min-height:96px;display:grid;gap:4px;justify-items:start;border:1px solid #dfe5ec;border-radius:6px;background:#fff;color:#6a7480}.evidence-thumbs .mock-photo.small,.evidence-thumbs .plan-mini{width:100%;height:64px}.detail-flow{grid-column:1;padding:16px}.detail-flow-steps{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:16px}.detail-flow-step{position:relative;display:grid;justify-items:center;gap:7px;color:#303642}.detail-flow-step b{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;color:#fff;background:#2f89ff;font-size:22px}.detail-flow-step small,.detail-flow-step em{color:#7f8996;font-style:normal}@media(max-width:1180px){.control-filter-bar{flex-wrap:wrap}.detail-grid,.closed-loop,.evidence-card,.detail-flow{display:block}.detail-grid>.ticket-card,.material-card,.detonator-card{width:auto;margin:0 0 10px}.closed-loop,.evidence-card,.detail-flow{margin-bottom:10px}}@media(max-width:760px){.control-drawer{width:100vw;min-width:0}.drawer-body,.drawer-section,.drawer-field-grid,.material-inline,.material-inline label,.material-inline span,.plan-sketch-row,.plan-sketch,.upload-pair,.upload-box,.approval-flow,.signature-row,.check-block{min-width:0;max-width:100%}.drawer-section{padding:12px}.control-filter-bar,.drawer-field-grid,.material-inline,.plan-sketch-row,.material-stats,.loop-kpis,.detail-meta,.photo-info,.detail-flow-steps{grid-template-columns:1fr}.control-filter-bar{display:grid}.control-filter-bar input,.drawer-field-grid input,.material-inline input{width:100%}.approval-line{grid-template-columns:minmax(0,1fr) auto;gap:8px}.approval-line i{display:none}.approval-line button{min-width:76px}.detail-nav{height:auto;grid-template-columns:auto 1fr;padding:10px}.detail-meta,.share-btn{grid-column:1 / -1}.photo-info{left:12px;right:12px;border-radius:10px}}
