:root{font-family:Inter,Segoe UI,Microsoft YaHei,PingFang SC,sans-serif;color:#2a3a32;background:#f8faf7;font-synthesis:none;font-weight:400;--green:#153d34;--muted:#879087;--line:#e2e8e0;--soft:#f0f4ed;--amber:#ad7932}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{cursor:default;opacity:.45}button{color:inherit}button:focus-visible,a:focus-visible,select:focus-visible,[role=button]:focus-visible{outline:2px solid #76a58c;outline-offset:3px}input:focus{outline:none}a{color:inherit;text-decoration:none}button{border:0;background:transparent}h1,h2,h3,p{margin:0}button svg{flex-shrink:0}input[type=checkbox],input[type=radio]{accent-color:var(--green)}.app{min-height:100dvh}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-header{height:78px;display:flex;align-items:center;padding:0 34px;background:#fff;border-bottom:1px solid var(--line);gap:25px}.brand{display:flex;align-items:center;gap:11px;font-size:21px;font-weight:700;letter-spacing:-.5px}.brand-light{font-weight:400}.brand small{display:block;font-size:10px;letter-spacing:1.9px;margin-top:2px;color:#8e968d;font-weight:400}.brand-mark{display:flex;align-items:center;justify-content:center;width:42px;height:44px;background:var(--green);color:#fff;border-radius:12px 12px 12px 3px}.header-divider{height:24px;width:1px;background:var(--line)}.header-context{font-size:12px;color:#8a948c;letter-spacing:.5px}.header-actions{display:flex;gap:17px;align-items:center;margin-left:auto}.local-status{font-size:11px;color:#7d8d80;display:flex;align-items:center;gap:7px}.status-dot{width:6px;height:6px;border-radius:50%;background:#77a987}.button{display:inline-flex;align-items:center;justify-content:center;gap:9px;padding:12px 18px;font-size:12px;font-weight:500;border-radius:7px;white-space:nowrap;transition:.15s}.button.primary{background:var(--green);color:#fff;box-shadow:0 2px 2px #153d3410}.button.primary:hover{background:#255345}.button.outline{border:1px solid #d7dfd5;background:#fff}.button.outline:hover{background:#f2f6ef}.button.compact{padding:9px 13px}.icon-button{width:30px;height:30px;display:inline-flex;align-items:center;justify-content:center;color:#7b8c80;border-radius:6px}.icon-button:hover{background:#edf3eb;color:#214f3e}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:600;color:#64806a;display:flex;align-items:center;gap:8px}.eyebrow>span{width:20px;height:1px;background:#83a88d}.small-muted{font-size:10px;color:#929a91}.welcome{max-width:1240px;padding:94px 50px 0;margin:auto;display:grid;grid-template-columns:1.1fr 1fr;gap:75px;align-items:center;min-height:calc(100dvh - 78px);position:relative}.welcome-copy{padding-bottom:45px}.welcome h1{font-family:Microsoft YaHei,PingFang SC,sans-serif;font-size:43px;line-height:1.5;font-weight:600;letter-spacing:-1.9px;color:#193c2e;margin-top:24px;margin-bottom:22px}.welcome-copy>p{font-size:13px;line-height:2.15;color:#7d897e}.welcome-tags{display:flex;flex-wrap:wrap;gap:20px;font-size:10px;color:#697e6b;margin-top:28px}.welcome-tags span{display:flex;align-items:center;gap:5px}.welcome-tags svg{color:#75977a}.mini-flow{display:flex;align-items:center;margin-top:66px}.mini-node{border:1px solid #dbe4d7;background:#fff;display:flex;align-items:center;gap:10px;font-size:12px;padding:17px 16px;border-radius:8px;color:#64826a;box-shadow:0 5px 18px #233f1c03}.mini-node.dark{color:#e7efe7;background:#20463a;border-color:#20463a}.mini-node.pale{background:#eff4e9}.mini-connector{height:1px;width:28px;background:#bbcdb6;position:relative}.mini-connector:after{content:"";position:absolute;width:4px;height:4px;border-right:1px solid #a1b99c;border-top:1px solid #a1b99c;transform:rotate(45deg);right:0;top:-2px}.import-card{background:#fff;border:1px solid #e0e6db;padding:25px;border-radius:15px;box-shadow:0 14px 65px #39492b05;margin-bottom:40px}.import-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:23px}.step-tag{font-size:10px;letter-spacing:1px;color:#5e7c60}.upload-zone{border:1px dashed #b8cbb0;border-radius:10px;background:linear-gradient(135deg,#f9fbf6,#f3f7ef);display:flex;flex-direction:column;align-items:center;padding:35px 16px 27px;cursor:pointer;transition:.2s}.upload-zone:hover{border-color:#698f65;background:#eff5e8}.upload-symbol{width:69px;height:69px;display:flex;align-items:center;justify-content:center;background:#e6eedc;color:#567550;border-radius:19px;margin-bottom:23px;box-shadow:0 0 0 8px #edf3e6}.upload-zone h2{font-size:16px;font-weight:500;letter-spacing:.5px}.upload-zone>p{font-size:11px;color:#8d9786;margin:9px 0 23px}.upload-zone .button{padding:12px 23px;font-size:11px}.upload-note{font-size:10px;color:#95a08e;margin-top:18px}.import-bottom{display:flex;gap:10px;align-items:center;padding:21px 3px;color:#799074}.import-bottom p{font-size:10px;line-height:1.8;color:#6d7e66}.import-bottom p span{color:#a0a899;font-size:9px}.demo-button{border-top:1px solid #edf0e9;width:100%;display:flex;align-items:center;gap:9px;padding:18px 3px 0;font-size:11px;color:#76826e}.demo-button svg:last-child{margin-left:auto}.demo-button:hover{color:#1f5137}.welcome-footer{grid-column:1/-1;display:flex;justify-content:space-between;font-size:10px;letter-spacing:.4px;color:#a4ab9f;width:100%;align-self:end;border-top:1px solid var(--line);padding:22px 0;margin-top:12px}.welcome-footer>span:last-child{display:flex;align-items:center;gap:12px}.project-bar{height:72px;background:#f6f8f3;display:flex;align-items:center;gap:24px;padding:0 28px;border-bottom:1px solid var(--line)}.source-file{display:flex;gap:10px;align-items:center;min-width:0;max-width:330px}.source-file>svg{color:#6c8e69}.source-file strong{font-size:11px;font-weight:500;display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.source-file>div{min-width:0}.source-file span{display:flex;align-items:center;gap:7px;font-size:9px;color:#8e998a;margin-top:4px}.source-file i{display:block;width:2px;height:2px;border-radius:50%;background:#a7b1a1}.project-metrics{display:flex;gap:22px;padding-left:22px;border-left:1px solid #dfe6d9;font-size:10px;color:#8b9685;white-space:nowrap}.project-metrics b{font-size:13px;font-weight:600;color:#3e5840;margin-right:4px;font-variant-numeric:tabular-nums}.issue-summary{display:flex;align-items:center;gap:6px;margin-left:auto;font-size:10px;color:#7a8b74;white-space:nowrap}.issue-summary.has-issues{color:#a07831}.issue-summary:hover{text-decoration:underline}.remember-control{display:flex;align-items:center;font-size:10px;color:#819079;gap:6px;white-space:nowrap}.remember-control input{width:12px;height:12px}.workspace{display:grid;grid-template-columns:252px minmax(0,1fr) 275px;height:calc(100dvh - 150px);min-height:530px}.product-sidebar{border-right:1px solid var(--line);background:#fff;display:flex;flex-direction:column;min-height:0}.sidebar-heading{display:flex;justify-content:space-between;align-items:center;font-size:12px;padding:24px 20px 18px;font-weight:500}.sidebar-heading b{font-size:10px;background:#eff3e9;border-radius:4px;padding:2px 6px;margin-left:6px;color:#8a9780;font-weight:400}.search-field{display:flex;align-items:center;gap:7px;border:1px solid #e1e7dc;background:#f9faf7;border-radius:6px;color:#9ba594;padding:9px 10px}.search-field:focus-within{border-color:#8fae8c;box-shadow:0 0 0 2px #8fae8c10}.product-sidebar>.search-field{margin:0 17px}.search-field input{font-size:11px;background:none;border:0;min-width:0;width:100%;color:#435640}.search-field input::placeholder{color:#a1a99a;font-size:10px}.search-field button{display:flex;padding:0;color:#83917b}.list-caption{font-size:9px;color:#a3ac9b;padding:15px 20px 10px}.product-list{overflow-y:auto;flex:1;padding:0 9px}.product-item{display:flex;width:100%;text-align:left;gap:9px;padding:15px 10px;border-radius:7px;align-items:flex-start;border:1px solid transparent;margin-bottom:5px;transition:.15s}.product-item:hover{background:#f6f8f2}.product-item.active{background:#edf3e8;border-color:#e0e8d8}.product-icon{color:#91a185;padding-top:2px}.product-item.active .product-icon{color:#4e7250}.product-item-body{min-width:0;flex:1}.product-item-body>strong{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:11px;font-weight:500;line-height:1.8;color:#46573d}.code-label{font-family:Consolas,monospace;display:block;overflow-wrap:anywhere;font-size:9px;color:#9aa58e;margin-top:3px}.product-item-meta{display:flex;gap:6px;font-size:9px;color:#9ba48f;margin-top:8px;align-items:center}.tiny-issue{margin-left:auto;font-size:8px;color:#ac8b51}.product-arrow{color:#8c9d7c;align-self:center;opacity:0}.active .product-arrow{opacity:1}.sidebar-footer{display:flex;align-items:center;gap:7px;border-top:1px solid var(--line);font-size:9px;color:#98a08f;padding:17px 20px}.canvas-panel{min-width:0;display:flex;flex-direction:column;background:#f9fbf7;min-height:0}.canvas-heading{padding:25px 27px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff;border-bottom:1px solid #edf0e8}.canvas-kicker{display:flex;align-items:center;gap:8px;color:#9da694;font-size:9px;letter-spacing:.2px}.canvas-kicker span:last-child{font-family:Consolas,monospace}.canvas-heading h1{font-size:19px;line-height:1.6;font-weight:500;color:#2d4a35;margin-top:9px;overflow-wrap:anywhere}.canvas-heading p{font-size:10px;color:#9aa28f;margin-top:5px;display:flex;gap:9px;flex-wrap:wrap}.root-badge{color:#8b9d7d;font-size:8px;background:#f3f6ed;border:1px solid #e7eddd;display:flex;align-items:center;gap:5px;border-radius:4px;padding:6px 8px;white-space:nowrap}.root-badge>span{height:4px;width:4px;border-radius:50%;background:#91aa7b}.canvas-toolbar{background:#fff;display:flex;align-items:center;gap:14px;padding:12px 23px;border-bottom:1px solid var(--line);flex-wrap:wrap}.view-tabs{display:flex;background:#f2f5ed;padding:3px;border-radius:6px;gap:2px}.view-tabs button{display:flex;align-items:center;gap:6px;font-size:10px;padding:7px 10px;color:#93a184;border-radius:4px}.view-tabs button.active{background:#fff;box-shadow:0 1px 4px #29401b12;color:#4b6e47}.toolbar-divider{height:16px;width:1px;background:#e5eadf}.depth-select{font-size:10px;max-width:108px;border:0;background:none;color:#7e9070;outline:none;cursor:pointer}.material-search{margin-left:auto;width:220px;padding:7px 9px;gap:5px}.search-count{font-size:9px;color:#b4842d}.canvas-body{flex:1;min-height:0;position:relative;overflow:hidden;background-color:#f8faf5;background-image:radial-gradient(#dce5d3 .7px,transparent .7px);background-size:19px 19px}.graph-viewport{overflow:auto;width:100%;height:100%}.graph-viewport>div{min-height:100%;min-width:100%}.zoom-controls{position:absolute;bottom:35px;right:23px;display:flex;padding:4px;background:#fff;border:1px solid #dfe6d7;border-radius:7px;box-shadow:0 5px 15px #354d2010;z-index:2}.zoom-controls button{width:31px;height:30px;display:flex;align-items:center;justify-content:center;color:#7a8d69;border-radius:4px}.zoom-controls button:hover{background:#f0f5e8}.zoom-controls button+button{border-left:1px solid #edf0e8}.canvas-hint{position:absolute;bottom:10px;left:20px;pointer-events:none;font-size:8px;color:#a1ad94;background:#f8faf5c9;padding:4px;border-radius:3px}.canvas-footer{display:flex;justify-content:space-between;align-items:center;padding:13px 24px;border-top:1px solid var(--line);font-size:9px;color:#9ca88f;background:#fff;gap:8px}.canvas-footer>div{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.legend-dot{width:6px;height:6px;border-radius:2px;display:inline-block;margin-left:12px}.legend-dot:first-child{margin-left:0}.legend-dot.root{background:#315d46}.legend-dot.branch{background:#a5b995}.legend-dot.leaf{background:#dde6d4;border:1px solid #bacaaf}.detail-panel{border-left:1px solid var(--line);background:#fff;overflow-y:auto;display:flex;flex-direction:column}.detail-heading{display:flex;align-items:center;justify-content:space-between;font-size:11px;padding:24px 20px 20px;border-bottom:1px solid #f0f3ec;color:#64775a}.detail-main{padding:23px 21px 20px}.type-badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;padding:5px 7px;border:1px solid #e3e9da;background:#f6f8f0;border-radius:4px;color:#839473}.type-badge.green{background:#edf4e9;border-color:#dfe8d5;color:#5b7e54}.type-badge.warning{color:#a5792d;background:#fcf6e7;border-color:#eee0bd}.detail-main h2{font-size:16px;font-weight:500;line-height:1.65;margin-top:12px;overflow-wrap:anywhere;color:#365236}.detail-main>p{font-size:10px;line-height:1.7;color:#98a28d;margin-top:7px;overflow-wrap:anywhere}.detail-fields{margin:0;padding:0 21px}.detail-fields>div{padding:13px 0;border-top:1px solid #edf1e5}.detail-fields dt{font-size:9px;color:#9ca88e;margin-bottom:8px}.detail-fields dd{margin:0;font-size:11px;line-height:1.8;color:#59704b;overflow-wrap:anywhere}.detail-fields dd>svg{vertical-align:middle;margin-right:5px}.detail-fields dd small{display:block;font-size:9px;color:#a4ad97;margin-top:3px;font-weight:400}.code-value{font-family:Consolas,monospace;font-size:10px!important;color:#859478!important}.level-token{background:#f1f5e9;border-radius:3px;padding:3px 7px;font-family:Consolas,monospace;font-size:10px;letter-spacing:1px}.quantity-value{font-size:20px!important;font-weight:500}.quantity-value.missing{font-size:14px!important;color:var(--amber)!important}.text-action{display:inline-flex;align-items:center;gap:4px;color:#7f9b69;font-size:9px;padding:0}.detail-fields .text-action{float:right;margin-top:4px}.detail-notice{margin:10px 17px 2px;padding:11px;display:flex;gap:8px;background:#f3f7ee;color:#71865f;border:1px solid #e6edde;border-radius:6px;font-size:10px;line-height:1.9}.detail-notice svg{margin-top:2px;flex-shrink:0}.detail-notice small{font-size:9px;color:#99a78c}.detail-notice.amber{background:#fcf8ec;border-color:#f0e6ca;color:#a68a45}.detail-notice.amber small{color:#b1a079}.path-section,.children-section{padding:21px 21px 0}.path-section h3,.children-section h3{font-size:10px;color:#9aa78d;font-weight:400;margin-bottom:14px}.node-path>div{display:flex;align-items:flex-start;position:relative;font-size:10px;gap:8px;padding-bottom:16px;color:#8b9d7c;line-height:1.5}.node-path>div:before{content:"";position:absolute;left:3px;top:8px;bottom:0;width:1px;background:#dfe8d4}.node-path>div:last-child:before{display:none}.path-dot{width:7px;height:7px;border:1px solid #bccdae;background:#fff;border-radius:50%;flex-shrink:0;margin-top:4px;z-index:1}.path-dot.active{background:#76966b;border-color:#76966b}.node-path button{text-align:left;padding:0;color:inherit}.node-path button:hover{color:#234b30;text-decoration:underline}.children-section>button{display:flex;justify-content:space-between;width:100%;padding:9px 0;font-size:10px;text-align:left;color:#809672;gap:7px}.children-section>button:hover{color:#3b653b}.children-section h3 span{margin-left:5px}.quantity-note{margin:25px 20px 20px;padding:15px 0 0;border-top:1px solid #eaf0e0;color:#a4ae97;display:flex;gap:7px;align-items:flex-start;font-size:8px;line-height:1.9}.quantity-note svg{flex-shrink:0;margin-top:2px}.outline-view{padding:19px 17px 55px;height:100%;overflow:auto}.outline-row{display:flex;align-items:center;gap:4px;min-height:61px;border-bottom:1px solid #e9efe0;border-radius:4px}.outline-row.selected{background:#eaf2e3}.outline-row.match{box-shadow:inset 3px 0 #d8bb65}.outline-toggle{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:22px;color:#90a178}.outline-toggle:disabled{opacity:1}.leaf-dot{width:4px;height:4px;border-radius:50%;background:#b7c8a4}.outline-content{flex:1;display:flex;align-items:center;gap:9px;text-align:left;min-width:0;padding:10px 12px 10px 0}.outline-node-icon{color:#9eb08b;background:#f1f6e8;padding:6px;display:flex;border-radius:5px}.outline-node-icon.root{background:#32583e;color:#eef5e7}.outline-content>span:nth-child(2){min-width:0}.outline-content strong{font-size:11px;font-weight:500;display:block;color:#527044;line-height:1.7}.outline-content small{font-size:9px;color:#9cab8c;display:block;overflow-wrap:anywhere;line-height:1.8}.outline-qty{font-size:11px;color:#7a9067;margin-left:auto;white-space:nowrap;padding-left:12px}.outline-qty.missing{color:#b39148;font-size:10px}.modal-backdrop{position:fixed;inset:0;z-index:20;background:#20372a6b;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:24px}.modal{background:#fff;border:1px solid #d8e1ce;border-radius:13px;box-shadow:0 25px 80px #132a2630;width:100%;max-height:90dvh;overflow:auto}.modal-header{padding:27px 29px 23px;display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #edf1e6}.modal-header .eyebrow{font-size:9px;color:#8a9e75}.modal-header h2{font-size:20px;line-height:1.6;color:#315438;font-weight:500;margin-top:8px}.modal-header p{font-size:10px;color:#9da990;margin-top:7px;overflow-wrap:anywhere}.import-modal{max-width:840px}.import-config{padding:23px 28px;display:flex;align-items:center;gap:17px}.import-config label,.mapping-grid label{display:block;font-size:10px;color:#80936d}.import-config select,.mapping-grid select{display:block;width:100%;margin-top:8px;padding:10px;border:1px solid #dfe8d3;border-radius:5px;background:#fcfdf9;color:#607b4e;font-size:11px}.import-config>label:first-child{flex:1}.import-config>label:nth-child(2){width:140px}.sheet-size{padding-left:19px;border-left:1px solid #e6eddc;display:flex;flex-direction:column}.sheet-size b{font-size:21px;font-weight:500;color:#688652}.sheet-size span{font-size:9px;color:#a3b18e;margin-top:5px}.mapping-heading{padding:0 28px;display:flex;justify-content:space-between;align-items:center}.mapping-heading strong{font-size:11px;color:#718959;font-weight:500}.mapping-heading span{font-size:9px;color:#a5b394}.mapping-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px 13px;padding:17px 28px 25px}.mapping-grid em{color:#ac9a58;font-style:normal}.mapping-grid select{font-size:10px;padding:9px}.preview-table-wrap{overflow:auto;margin:0 28px;border:1px solid #e5ecd9;border-radius:5px;max-height:180px}.preview-table{border-collapse:collapse;width:100%;white-space:nowrap;font-size:9px;text-align:left}.preview-table th{font-weight:500;background:#f1f6e8;color:#80946a;padding:11px 12px;border-bottom:1px solid #e5ecd9}.preview-table td{padding:10px 12px;color:#9cae83;border-bottom:1px solid #edf2e5;max-width:175px;overflow:hidden;text-overflow:ellipsis}.import-rule{display:flex;align-items:flex-start;gap:10px;background:#f6f9ef;border:1px solid #eaf0df;border-radius:5px;margin:22px 28px;padding:12px;color:#9eaf86}.import-rule svg{flex-shrink:0;margin-top:3px}.import-rule p{font-size:10px;line-height:1.9}.modal-footer{border-top:1px solid #edf2e3;padding:17px 28px;display:flex;justify-content:space-between;align-items:center;gap:14px}.inline-error{font-size:11px;color:#b66045;line-height:1.8;margin:0 28px 15px}.export-modal{max-width:510px}.export-scope{display:flex;align-items:center;gap:14px;font-size:10px;color:#859b70;padding:22px 29px;flex-wrap:wrap}.export-scope>span{margin-right:auto;color:#a2b18f}.export-scope label{display:flex;align-items:center;gap:4px}.export-options{padding:0 23px 20px;display:grid;gap:8px}.export-options>button{border:1px solid #e8eedf;border-radius:7px;padding:16px;display:flex;align-items:center;gap:13px;text-align:left;transition:.15s}.export-options>button:hover{background:#f5f9ed;border-color:#c3d3ae}.export-icon{display:flex;background:#edf4e3;border-radius:6px;padding:10px;color:#72985a}.export-options strong{font-size:12px;color:#64864a;font-weight:500;display:block}.export-options div>span{font-size:9px;color:#a5b28e;display:block;margin-top:5px}.export-options>button>svg{margin-left:auto;color:#abc197}.modal-note{display:flex;gap:8px;padding:16px 28px;border-top:1px solid #edf3e2;font-size:9px;color:#a1b18b}.issues-modal{max-width:650px}.issue-filter{display:flex;align-items:center;justify-content:space-between;padding:17px 27px}.issue-filter>span{font-size:10px;color:#98ac7d}.issues-list{padding:0 25px 23px;max-height:50dvh;overflow:auto}.issues-list>button{display:flex;align-items:flex-start;gap:12px;width:100%;text-align:left;padding:17px 7px;border-top:1px solid #edf2e4}.issues-list>button:hover{background:#f8faef}.issues-list>button>svg{margin-top:2px;flex-shrink:0}.issues-list>button>svg:last-child{margin-left:auto;color:#a5b893;align-self:center}.issues-list strong{font-size:11px;color:#718c54;font-weight:500}.issues-list strong span{font-size:8px;color:#afba9d;margin-left:7px}.issues-list p{font-size:10px;line-height:1.9;color:#97a97c;margin-top:6px}.issues-list small{font-size:9px;color:#b5bfa3;display:block;margin-top:5px}.amber-text{color:#b99d5b}.red{color:#b36c55}.help-modal{max-width:570px}.help-content{padding:6px 29px 24px}.help-content h3{font-size:12px;color:#64834b;font-weight:500;margin-top:24px;margin-bottom:8px}.help-content p{font-size:11px;line-height:2;color:#8fa077}.rule-example{background:#f3f7eb;border-left:2px solid #94ad76;border-radius:4px;padding:13px;font-size:13px;color:#7b9660;margin-top:16px;letter-spacing:1px}.rule-example small{display:block;font-size:9px;color:#adba98;letter-spacing:0;margin-top:8px}.help-privacy{display:flex;align-items:flex-start;gap:8px;border-top:1px solid #e6edd9;padding-top:18px;margin-top:23px;font-size:9px!important}.help-privacy svg{flex-shrink:0;margin-top:2px}.empty-small{padding:35px 10px;text-align:center;color:#a0b18b;display:flex;flex-direction:column;align-items:center;font-size:11px;gap:12px}.empty-small button{font-size:10px;color:#71965b;text-decoration:underline}.list-footnote{font-size:9px;padding:15px;color:#a4b191;line-height:1.8}.error-banner{position:fixed;bottom:23px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:10px;z-index:40;background:#fff7ef;color:#a7674e;border:1px solid #e9cdb8;border-radius:8px;padding:14px 18px;box-shadow:0 6px 22px #633b2915;font-size:11px;max-width:calc(100vw - 35px)}.error-banner button{display:flex;color:#ad866e}.error-banner svg{flex-shrink:0}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:9px;z-index:45;background:#254936;color:#e5f1d8;border:1px solid #375e44;border-radius:8px;padding:14px 21px;box-shadow:0 8px 24px #203b2625;font-size:11px;max-width:calc(100vw - 30px)}.drop-overlay{position:fixed;inset:13px;border:2px dashed #9fb47d;border-radius:13px;z-index:60;background:#f4f9ebf5;color:#5c7f42;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.drop-overlay h2{font-size:24px;margin:19px 0 12px;font-weight:500}.drop-overlay p{font-size:13px;color:#99af7b}.busy-overlay{position:fixed;inset:0;background:#f7faf1a8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:55}.busy-overlay>div{display:flex;flex-direction:column;align-items:center;gap:16px;background:#fff;border:1px solid #dce7cf;border-radius:12px;padding:34px 45px;box-shadow:0 8px 32px #2b482917;color:#719455;max-width:calc(100vw - 30px)}.busy-overlay strong{font-size:14px;font-weight:500}.busy-overlay span{font-size:10px;color:#a8b794}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.mobile-action,.mobile-close{display:none}::-webkit-scrollbar{width:7px;height:7px}::-webkit-scrollbar-thumb{background:#d6dfcd;border-radius:9px}::-webkit-scrollbar-track{background:transparent}@media(min-width:1600px){.workspace{grid-template-columns:280px minmax(0,1fr) 300px}.canvas-heading{padding:29px 32px}.product-item{padding:17px 13px}.detail-main,.detail-fields{padding-left:25px;padding-right:25px}.welcome{padding-top:120px}}@media(max-width:1250px){.workspace{grid-template-columns:225px minmax(0,1fr) 250px}.app-header{padding:0 24px}.header-context{display:none}.project-bar{padding:0 20px;gap:17px}.project-metrics{gap:14px;padding-left:16px}.source-file{max-width:250px}.remember-control{font-size:9px}.root-badge{display:none}.canvas-toolbar{gap:9px;padding:10px 17px}.material-search{width:170px}.view-tabs button{padding:6px 8px}.canvas-heading{padding:21px}.detail-heading{padding:24px 17px 20px}.desktop-only{display:none}.welcome{gap:50px;padding:65px 45px 0}.welcome h1{font-size:37px}.welcome-tags{gap:13px}.mini-node{padding:15px 13px}.mini-connector{width:20px}}@media(max-width:1024px){.workspace{grid-template-columns:220px minmax(0,1fr)}.detail-panel{display:none}.detail-panel.mobile-open{position:fixed;right:0;top:0;bottom:0;width:310px;z-index:15;box-shadow:-15px 0 50px #18351f24;display:flex}.mobile-close{display:flex}.canvas-heading>.mobile-action{display:flex}.project-metrics{gap:12px}.project-metrics>span:last-child{display:none}.project-bar>.remember-control{display:none}.source-file{max-width:260px}.welcome{gap:30px;padding:55px 35px 0}.welcome h1{font-size:33px}.welcome-copy>p{font-size:11px}.welcome-tags{gap:11px;font-size:9px}.mini-node{padding:13px 10px;font-size:10px;gap:6px}.mini-node svg{width:16px}.mini-connector{width:16px}.import-card{padding:19px}.upload-zone{padding:30px 10px 25px}.upload-zone h2{font-size:14px}.upload-note{font-size:9px}.welcome-footer{margin-top:35px}}@media(max-width:720px){.app-header{height:67px;padding:0 17px;gap:12px}.brand{font-size:18px;gap:8px}.brand small{font-size:8px;letter-spacing:1.3px}.brand-mark{width:35px;height:38px;border-radius:9px 9px 9px 3px}.brand-mark svg{width:20px}.header-divider,.local-status{display:none}.header-actions{gap:8px}.header-actions .button{font-size:10px;padding:10px 12px;gap:5px}.help-button{width:26px}.welcome{display:flex;flex-direction:column;gap:0;padding:42px 22px 0;min-height:calc(100dvh - 67px)}.welcome-copy{padding-bottom:30px;align-self:stretch}.welcome-copy .eyebrow{font-size:8px;letter-spacing:1.5px}.welcome h1{font-size:32px;line-height:1.55;margin-top:15px;margin-bottom:16px}.welcome-copy>p{font-size:11px;line-height:2}.welcome-tags{margin-top:20px;font-size:9px;gap:15px}.mini-flow{display:none}.import-card{width:100%;max-width:450px;margin-bottom:20px;padding:18px}.import-card-top{margin-bottom:16px}.step-tag,.import-card-top .small-muted{font-size:9px}.upload-zone{padding:24px 10px 21px}.upload-symbol{height:54px;width:54px;border-radius:14px;margin-bottom:18px;box-shadow:0 0 0 6px #edf3e6}.upload-symbol svg{width:26px}.upload-zone h2{font-size:14px}.upload-zone>p{margin-bottom:18px}.upload-note{margin-top:14px}.import-bottom{padding:16px 3px}.welcome-footer{padding:16px 0;align-self:stretch;margin-top:auto;font-size:8px;gap:8px}.welcome-footer>span:first-child{display:none}.welcome-footer>span:last-child{width:100%;justify-content:space-between;gap:5px}.project-bar{height:64px;gap:9px;padding:0 15px}.source-file{max-width:calc(100vw - 155px);gap:7px;flex:1}.source-file strong{font-size:10px}.source-file span{font-size:8px;gap:5px}.project-metrics{display:none}.project-bar>.issue-summary{margin-left:auto;font-size:9px;width:26px;overflow:hidden;white-space:nowrap;gap:15px}.project-bar>.issue-summary>svg{flex-shrink:0}.project-bar>.button{font-size:10px;padding:8px 10px;gap:5px}.project-bar>.button svg:last-child{display:none}.workspace{display:flex;height:calc(100dvh - 131px);min-height:460px}.product-sidebar{display:none}.product-sidebar.mobile-open{display:flex;position:fixed;left:0;top:0;bottom:0;width:290px;z-index:15;box-shadow:15px 0 50px #18351f24}.canvas-panel{width:100%}.canvas-heading{padding:17px 19px 15px;gap:8px}.canvas-kicker{font-size:9px;gap:6px}.canvas-kicker>.mobile-action{display:flex;width:22px;height:22px;margin-left:-3px;color:#78936d}.canvas-heading h1{font-size:17px;margin-top:5px;line-height:1.55}.canvas-heading p{font-size:9px;gap:6px}.canvas-toolbar{padding:10px 15px;gap:9px}.toolbar-divider{display:none}.view-tabs button{padding:6px 9px;font-size:9px;gap:5px}.depth-select{font-size:9px;max-width:85px;margin-left:auto}.material-search{width:100%;margin-top:2px}.material-search input{font-size:11px}.material-search input::placeholder{font-size:10px}.canvas-footer{font-size:8px;padding:11px 15px}.canvas-footer>div{gap:4px}.legend-dot{margin-left:6px;width:5px;height:5px}.canvas-hint{font-size:8px;left:12px;max-width:70%}.zoom-controls{bottom:30px;right:15px}.zoom-controls button{width:28px;height:28px}.outline-view{padding:10px 8px 45px}.outline-content strong{font-size:10px}.outline-content small{font-size:8px}.outline-content{gap:5px}.outline-node-icon{padding:4px}.outline-qty{font-size:9px;padding-left:5px}.modal-backdrop{padding:12px;align-items:center}.modal{max-height:94dvh;border-radius:9px}.modal-header{padding:21px 19px 18px;gap:10px}.modal-header h2{font-size:18px}.modal-header p{font-size:9px;line-height:1.8}.import-config{padding:18px;gap:10px;flex-wrap:wrap}.import-config>label:first-child{flex:1;min-width:150px}.import-config>label:nth-child(2){width:100px}.sheet-size{width:100%;flex-direction:row;align-items:center;gap:10px;border:0;padding:0}.sheet-size b{font-size:15px}.sheet-size span{margin:0}.mapping-heading{padding:0 18px}.mapping-heading span{font-size:8px}.mapping-grid{grid-template-columns:repeat(2,1fr);gap:13px;padding:15px 18px 20px}.mapping-grid select{font-size:9px;padding:8px}.preview-table-wrap{margin:0 18px;max-height:145px}.import-rule{margin:16px 18px;padding:10px}.import-rule p{font-size:9px}.modal-footer{padding:14px 18px;gap:6px}.modal-footer .remember-control{font-size:8px;gap:3px}.modal-footer .button{font-size:10px;padding:11px 12px}.export-scope{padding:18px;gap:10px;font-size:9px}.export-options{padding:0 15px 17px}.export-options>button{padding:13px;gap:10px}.export-icon{padding:8px}.export-options strong{font-size:11px}.export-options div>span{font-size:8px}.issue-filter{padding:15px 19px}.issues-list{padding:0 18px 18px}.issues-list p{font-size:9px}.help-content{padding:0 19px 20px}.help-content p{font-size:10px}.toast{font-size:10px;width:max-content;max-width:calc(100vw - 28px);padding:13px 16px}.busy-overlay>div{padding:28px}.detail-panel.mobile-open{width:min(310px,95vw)}.detail-panel.mobile-open .desktop-only{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media(min-width:721px){.header-context,.button{font-size:13px}.local-status,.source-file strong{font-size:12px}.source-file span{font-size:10px}.project-metrics,.issue-summary,.remember-control{font-size:11px}.sidebar-heading{font-size:13px}.search-field input{font-size:12px}.search-field input::placeholder{font-size:11px}.list-caption{font-size:10px}.product-item-body>strong{font-size:13px}.code-label,.product-item-meta{font-size:10px}.tiny-issue{font-size:9px}.sidebar-footer{font-size:10px}.canvas-kicker,.canvas-heading p{font-size:11px}.canvas-heading h1{font-size:21px}.root-badge{font-size:10px}.view-tabs button,.depth-select{font-size:12px}.canvas-footer,.canvas-hint{font-size:10px}.detail-heading{font-size:13px}.detail-heading .small-muted,.type-badge{font-size:10px}.detail-main h2{font-size:18px}.detail-main>p{font-size:12px}.detail-fields dt{font-size:11px}.detail-fields dd{font-size:13px}.code-value{font-size:12px!important}.detail-fields dd small{font-size:10px}.text-action{font-size:11px}.path-section h3,.children-section h3{font-size:12px}.node-path>div,.children-section>button{font-size:12px}.detail-notice{font-size:11px}.detail-notice small,.quantity-note{font-size:10px}.outline-content strong{font-size:13px}.outline-content small{font-size:11px}.outline-qty,.import-config label,.mapping-grid label,.mapping-heading strong{font-size:12px}.mapping-grid select,.preview-table{font-size:11px}.modal-header p,.import-rule p{font-size:12px}.modal-note{font-size:11px}.export-options strong{font-size:14px}.export-options div>span{font-size:11px}.help-content p{font-size:13px}.help-content h3{font-size:14px}.issues-list strong{font-size:13px}.issues-list p{font-size:12px}.issues-list small{font-size:10px}.welcome-copy>p{font-size:14px}.welcome-tags{font-size:11px}.upload-zone h2{font-size:18px}.upload-zone>p{font-size:12px}.upload-note,.import-bottom p{font-size:11px}.import-bottom p span,.welcome-footer{font-size:10px}.demo-button{font-size:12px}}
