:root{--ifd-navy: #233E50;--ifd-pink: #DF4C6C;--ifd-cream: #F7F5EF;--ifd-white: #FFFFFF;--gold: #D4AE72;--gold-deep: #997D52;--gold-ink: #836C47;--gold-tint: #FBF6EC;--gold-line: #E8D9BC;--paper: #F6F5F1;--paper-2: #EFECE3;--edge: #E3DED2;--surface: var(--ifd-white);--surface-2: #FBFAF6;--ink: var(--ifd-navy);--ink-2: #233E50CC;--ink-3: #233E5099;--ink-4: #233E5066;--rule: #233E5026;--rule-2: #233E5040;--navy: var(--ifd-navy);--navy-2: #2D4B61;--navy-tint: #233E500D;--pink: var(--ifd-pink);--pink-tint: #DF4C6C1A;--redline: var(--ifd-pink);--redline-2: #C43D5A;--redline-tint: var(--pink-tint);--redline-soft: #FBE9ED;--green: #1F7A57;--green-tint: #1F7A571A;--amber: #A86A1E;--amber-tint: #F4A2611A;--red: var(--ifd-pink);--red-tint: var(--pink-tint);--blue: #2F6E89;--blue-tint: #6BA3BE26;--font-sans: "Manrope", system-ui, -apple-system, sans-serif;--font-mono: "IBM Plex Mono", "SF Mono", Menlo, monospace;--r-xs: 4px;--r-sm: 6px;--r-md: 8px;--r-lg: 12px;--r-xl: 20px;--shadow-card: 0 1px 2px rgba(27, 43, 56, .05), 0 12px 32px rgba(27, 43, 56, .07);--shadow-key: 0 4px 0 var(--gold-deep), 0 10px 20px rgba(158, 123, 69, .25);--shadow-pop: 0 8px 24px rgba(35, 62, 80, .16);--shadow-raised: 0 4px 16px rgba(35, 62, 80, .14), 0 1px 4px rgba(35, 62, 80, .08)}*{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;font-family:var(--font-sans);font-size:14.5px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}#root{height:100%}button{font-family:inherit;font-size:inherit;cursor:pointer;border:none;background:none;color:inherit}input,select{font-family:inherit;font-size:inherit;color:inherit}input:focus,select:focus{outline:none}.window{width:100%;height:100vh;background:var(--paper);display:grid;grid-template-rows:auto auto 1fr auto;overflow:hidden;position:relative}.appbar{background:var(--surface);border-bottom:1px solid var(--rule);display:flex;flex-wrap:wrap;align-items:center;padding:12px 28px;gap:12px 14px}.brand{display:flex;align-items:center;gap:12px}.brand img{display:block;height:26px;width:auto}.brand .tool-name{font-size:14px;font-weight:800;color:var(--ink);letter-spacing:-.01em;padding-left:12px;border-left:1px solid var(--rule-2)}.brand .tool-name em{font-style:normal;color:var(--gold-ink)}.project-chip{display:flex;align-items:center;gap:8px;padding:7px 14px;background:var(--paper);border:1px solid var(--rule);border-radius:999px;font-size:13px;min-width:0}.project-chip .label{color:var(--ink-3);font-size:12.5px}.project-chip .val{color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:320px}.project-chip .ver{color:var(--ink);font-weight:600}.project-chip .live{width:8px;height:8px;border-radius:50%;background:#3faf7e}.appbar-spacer{flex:1}.appbar .icon-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--rule);background:var(--paper);color:var(--ink-2)}.appbar .icon-btn svg{width:18px;height:18px}.icon-btn{width:32px;height:32px;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--ink-3);transition:background .15s,color .15s}.icon-btn:hover{background:var(--navy-tint);color:var(--ink)}.icon-btn svg{width:16px;height:16px}.stepbar{width:100%;max-width:1280px;margin:0 auto;padding:22px 28px 6px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.stepbar ol{list-style:none;flex:1 1 560px;display:flex;flex-wrap:wrap;align-items:center;gap:12px 16px}.stepbar-step{display:flex;align-items:center;gap:12px;padding:4px 6px 4px 4px;border-radius:999px;text-align:left;transition:background .15s}.stepbar-step:hover{background:var(--navy-tint)}.stepbar-step .num{width:36px;height:36px;flex-shrink:0;border-radius:50%;display:grid;place-items:center;border:2px solid var(--rule-2);background:var(--surface);color:var(--ink-3);font-size:14px;font-weight:800}.stepbar-step .num svg{width:16px;height:16px}.stepbar-step .label{display:block;font-size:14px;font-weight:700;color:var(--ink-2)}.stepbar-step .sub{display:block;font-size:12px;color:var(--ink-3)}.stepbar-step.active .num{border:0;background:var(--gold);color:var(--ink);box-shadow:0 3px 0 var(--gold-deep),0 8px 16px #9e7b4540}.stepbar-step.active .label{color:var(--ink)}.stepbar-step.done .num{border:0;background:#e3f1ea;color:var(--green);box-shadow:0 3px #bfdccd}.stepbar-line{flex:1 1 40px;min-width:40px;height:2px;background:var(--rule-2)}.stepbar-line.done{background:#9ccdb5}.stepbar .btn-outline{flex-shrink:0}.main{overflow:hidden;background:var(--paper);display:flex;min-height:0}.workspace{flex:1;overflow-y:auto;padding:20px 28px 40px;position:relative}.workspace>div{max-width:1224px;margin:0 auto}.page-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:24px}.page-eyebrow{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--gold-ink);font-weight:700;margin-bottom:8px}.page-title{font-size:32px;line-height:1.15;font-weight:800;letter-spacing:-.02em;color:var(--ink)}.page-desc{font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:8px;max-width:620px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}.field-full{grid-column:1 / -1}.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px;letter-spacing:-.005em}.field label .req{color:var(--pink);margin-left:2px;display:inline;white-space:nowrap;font-weight:700}.field .hint{font-size:12px;color:var(--ink-3);margin-top:6px}.input,.select{width:100%;min-height:44px;padding:10px 14px;background:var(--surface);border:1px solid var(--rule-2);border-radius:10px;box-shadow:inset 0 1px 2px #1b2b380f;font-size:14px;color:var(--ink);transition:border-color .15s,box-shadow .15s}.input:focus,.select:focus{border-color:var(--navy);box-shadow:0 0 0 3px #233e501f}.input::placeholder{color:var(--ink-4)}.select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23233E50' stroke-width='2'%3e%3cpolyline points='6 9 12 15 18 9'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}.input-with-action{display:flex;gap:8px;align-items:stretch}.input-with-action .input{flex:1}.input-with-action .btn{flex-shrink:0}.card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-xl);box-shadow:var(--shadow-card)}.card-pad{padding:24px;display:flex;flex-direction:column;gap:16px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.card-head h2{font-size:16px;font-weight:800;color:var(--ink)}.card-head .muted{color:var(--ink-3);font-weight:600}.setup-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}.setup-grid>.hero{flex:999 1 540px;min-width:0;overflow:hidden}.setup-side{flex:1 1 360px;min-width:0;display:flex;flex-direction:column;gap:24px}.hero-body{padding:28px 32px 32px;display:flex;flex-direction:column;gap:20px}.dropzone{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:18px 20px;border:1.5px dashed rgba(158,123,69,.45);border-radius:14px;cursor:pointer;background:var(--gold-tint);transition:border-color .15s,background .15s}.dropzone:hover{border-color:var(--gold-deep)}.hero.drag-over .dropzone{border-color:var(--gold-deep);background:#f7eddb}.dropzone-ico{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--surface);border:1px solid var(--gold-line);color:var(--gold-ink);display:grid;place-items:center}.dropzone-text{flex:1 1 220px;display:flex;flex-direction:column;gap:2px;font-size:13px;color:var(--ink-3)}.dropzone-text b{font-size:15px;color:var(--ink)}.stage3d{position:relative;height:300px;perspective:1600px;display:flex;align-items:center;justify-content:center;overflow:hidden;background:var(--paper-2);border-bottom:1px solid var(--rule);cursor:pointer}.stage3d:before{content:"";position:absolute;left:-40%;right:-40%;top:30%;height:160%;background-image:linear-gradient(rgba(35,62,80,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(35,62,80,.08) 1px,transparent 1px);background-size:36px 36px;transform:rotateX(68deg);transform-origin:top center}.stage-chip{position:absolute;top:24px;right:24px;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:#fffffff0;border:1px solid var(--rule);box-shadow:var(--shadow-card);font-size:12px;color:var(--ink-2)}.stage-chip .dot{width:8px;height:8px;border-radius:50%;background:var(--pink)}.stack3d{position:relative;width:280px;height:190px;margin-top:30px;transform-style:preserve-3d;transform:rotateX(58deg) rotate(-36deg);transition:transform .4s ease}.stage3d:hover .stack3d,.hero.drag-over .stack3d{transform:rotateX(52deg) rotate(-30deg) translateZ(12px)}.stack3d .sheet{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:6px}.stack3d .s1{background:#1e3a52;box-shadow:0 0 0 1px #ffffff0f,40px 50px 70px #1b2b3859}.stack3d .s2{background:#2b4e6c;transform:translateZ(22px)}.stack3d .s3{background:#3a6385;transform:translateZ(44px)}.stack3d .paper{background:#fbf9f3;transform:translateZ(66px);overflow:hidden;box-shadow:0 0 0 1px #0000001a}.stack3d .paper i{position:absolute;display:block;box-sizing:border-box}.stack3d .room{border:2px solid #2C4558}.stack3d .cloud{border:3px solid var(--pink);border-radius:50%}.stack3d .strike{height:3px;border-radius:2px;background:var(--pink)}.stack3d .scan{position:absolute;left:-16px;right:-16px;top:20px;height:3px;border-radius:2px;background:var(--gold);box-shadow:0 0 22px 6px #d4ae7280;transform:translateZ(92px);animation:stack-scan 3.2s ease-in-out infinite alternate}@keyframes stack-scan{0%{top:16px}to{top:170px}}@media(prefers-reduced-motion:reduce){.stack3d .scan{animation:none;top:74px}.stack3d{transition:none}}.mass3d{position:relative;width:110px;height:84px;transform-style:preserve-3d;transform:rotateX(58deg) rotate(-38deg)}.mass3d .mass-shadow{position:absolute;top:0;right:0;bottom:0;left:0;background:#00000059;box-shadow:24px 30px 36px #00000080}.mass3d .block{position:absolute;transform-style:preserve-3d}.mass3d .block i{position:absolute;display:block}.mass3d .lower{left:0;top:0;width:110px;height:84px;--h: 56px}.mass3d .upper{left:14px;top:12px;width:60px;height:44px;--h: 30px;transform:translateZ(56px)}.mass3d .wall.front,.mass3d .wall.back{left:0;width:100%;height:var(--h);transform-origin:top center;transform:rotateX(90deg);background:#b8925a}.mass3d .wall.front{top:100%;background-image:repeating-linear-gradient(180deg,transparent 0 10px,rgba(14,31,45,.35) 10px 14px)}.mass3d .wall.back{top:0}.mass3d .wall.left,.mass3d .wall.right{top:0;width:var(--h);height:100%;transform-origin:left center;transform:rotateY(-90deg);background:#8a6b3e}.mass3d .wall.left{left:0}.mass3d .wall.right{left:100%;background-image:repeating-linear-gradient(90deg,transparent 0 10px,rgba(14,31,45,.35) 10px 14px)}.mass3d .roof{top:0;right:0;bottom:0;left:0;transform:translateZ(var(--h));background:#e6c893}.mass3d .upper .wall.front,.mass3d .upper .wall.back{background-color:#c79f64}.mass3d .upper .wall.left,.mass3d .upper .wall.right{background-color:#94744a}.mass3d .upper .roof{background:#f0d9ae}.file-list-head{display:flex;align-items:center;gap:12px;padding:0 12px;font-size:13px;color:var(--ink-3)}.file-list{list-style:none;display:flex;flex-direction:column;gap:8px}.file-row{display:flex;align-items:center;gap:12px;padding:10px 8px 10px 12px;border-radius:12px;background:#fbfaf7;border:1px solid var(--rule)}.file-row.off{background:var(--paper);opacity:.75}.file-row-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;margin-left:4px}.file-row .file-open{font-size:13px;font-weight:600;font-family:var(--font-mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-row .icon-btn{width:36px;height:36px;flex-shrink:0}.pdf-chip{position:relative;flex-shrink:0;width:30px;height:36px;border-radius:4px;background:#fbf9f3;border:1px solid #D9D3C3;box-shadow:3px 3px #3a6385,6px 6px 0 var(--navy)}.pdf-chip span{position:absolute;left:4px;right:4px;bottom:5px;height:10px;border-radius:2px;background:var(--pink);color:#fff;font-size:7px;font-weight:800;display:grid;place-items:center}.file-empty{display:flex;flex-direction:column;gap:4px;padding:20px;border-radius:12px;background:var(--paper);font-size:13px;color:var(--ink-3);text-align:center}.file-empty>b{font-size:14px;color:var(--ink)}.pr{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden;margin-bottom:20px}.pr-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--rule);flex-wrap:wrap}.pr-files{display:flex;gap:6px;flex-wrap:wrap}.pr-file{padding:5px 12px;border-radius:99px;font-size:12px;font-family:var(--font-mono);color:var(--ink-2);background:var(--surface-2);border:1px solid var(--rule);transition:background .15s,color .15s}.pr-file:hover{border-color:var(--rule-2)}.pr-file.active{background:var(--navy);border-color:var(--navy);color:#fff}.pr-legend{display:flex;gap:14px;font-size:11.5px;color:var(--ink-3)}.pr-key{display:inline-flex;align-items:center;gap:6px}.pr-key .dot{width:9px;height:9px;border-radius:2px}.pr-key.add .dot{background:var(--green)}.pr-key.upd .dot{background:var(--blue)}.pr-key.del .dot{background:var(--pink)}.pr-body{display:grid;grid-template-columns:minmax(0,1fr) 280px}.pr-stage{padding:14px 16px;min-width:0}.pr-nav{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pr-page-label{font-size:12px;color:var(--ink-3);font-family:var(--font-mono)}.pr-page{position:relative;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-md);overflow:hidden;min-height:220px}.pr-page img{display:block;width:100%;height:auto;-webkit-user-select:none;user-select:none}.pr-status{padding:48px 16px;text-align:center;color:var(--ink-4);font-size:12.5px}.pr-box{position:absolute;border:2px solid;border-radius:2px;padding:0;min-width:6px;min-height:6px;cursor:pointer;transition:box-shadow .12s,opacity .12s}.pr-box.add{border-color:var(--green);background:#1f7a5724}.pr-box.upd{border-color:var(--blue);background:#2f6e8924}.pr-box.del{border-color:var(--pink);background:#df4c6c24}.pr-box.off{border-style:dashed;opacity:.45}.pr-box.hot{box-shadow:0 0 0 3px #233e5047;z-index:2;opacity:1}.pr-list{border-left:1px solid var(--rule);padding:14px;overflow-y:auto;max-height:560px}.pr-list-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-2);margin-bottom:10px;display:flex;gap:8px;align-items:center}.pr-list-title .count{font-family:var(--font-mono);font-size:11px;font-weight:500;background:var(--navy-tint);color:var(--ink-3);padding:1px 7px;border-radius:99px}.pr-row{display:grid;grid-template-columns:17px 1fr;gap:10px;align-items:start;padding:7px 8px;border-radius:var(--r-sm);border-left:3px solid transparent;font-size:12.5px;margin-bottom:4px}.pr-row.add{border-left-color:var(--green)}.pr-row.upd{border-left-color:var(--blue)}.pr-row.del{border-left-color:var(--pink)}.pr-row.hot{background:var(--surface-2)}.pr-row-text{display:flex;flex-direction:column;gap:4px;color:var(--ink-2);overflow-wrap:anywhere;min-width:0}.pr-kind{align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:1px 8px;border-radius:99px}.pr-kind.add{background:var(--green-tint);color:var(--green)}.pr-kind.upd{background:var(--blue-tint);color:var(--blue)}.pr-kind.del{background:var(--pink-tint);color:var(--pink)}.pr-none,.pr-unplaced{font-size:12px;color:var(--ink-4);padding:6px 2px}.pr-unplaced{margin-top:12px;border-top:1px dashed var(--rule);padding-top:12px}.pr-empty{padding:14px 18px;font-size:12.5px;color:var(--ink-3);background:var(--surface);border:1px dashed var(--rule-2);border-radius:var(--r-md);margin-bottom:20px}@media(max-width:900px){.pr-body{grid-template-columns:1fr}.pr-list{border-left:none;border-top:1px solid var(--rule);max-height:none}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:12px;font-size:14px;font-weight:700;letter-spacing:.005em;transition:filter .15s,box-shadow .15s,background .15s,color .15s,transform .1s;white-space:nowrap}.btn svg{width:16px;height:16px}.btn-primary{background:var(--gold);color:var(--ink);box-shadow:var(--shadow-key)}.btn-primary:hover{filter:brightness(1.04)}.btn-primary:active{transform:translateY(2px);box-shadow:0 2px 0 var(--gold-deep),0 6px 12px #9e7b4533}.btn-primary:disabled{background:var(--paper-2);color:var(--ink-4);cursor:not-allowed;filter:none;box-shadow:0 3px 0 var(--edge);transform:none}.btn-ghost{color:var(--ink-2);background:transparent}.btn-ghost:hover{background:var(--navy-tint)}.btn-outline{background:var(--surface);color:var(--ink);border:1px solid var(--rule-2);box-shadow:0 3px 0 var(--edge)}.btn-outline:hover{background:var(--paper)}.btn-outline:active{transform:translateY(2px);box-shadow:0 1px 0 var(--edge)}.btn-outline:disabled{opacity:.5;cursor:not-allowed;background:var(--surface);color:var(--ink);transform:none}.btn-sm{padding:8px 14px;font-size:13px;border-radius:10px}.section-head{display:flex;justify-content:space-between;align-items:center;margin:28px 0 12px}.section-title{font-size:14.5px;font-weight:700;color:var(--ink);letter-spacing:-.005em;display:flex;align-items:center;gap:10px}.section-title .count{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3);font-weight:500;padding:2px 8px;background:var(--navy-tint);border-radius:99px}.section-tools{display:flex;align-items:center;gap:6px}.search{position:relative}.search input{width:100%;min-height:42px;padding:8px 12px 8px 38px;background:var(--surface);border:1px solid var(--rule-2);border-radius:10px;font-size:14px}.search input:focus{border-color:var(--navy);box-shadow:0 0 0 3px #233e501f}.search svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);width:16px;height:16px;color:var(--ink-3)}.pair-table{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}.pair-row{display:grid;grid-template-columns:40px 1fr 1fr 120px 100px;align-items:center;padding:11px 16px;border-bottom:1px solid var(--rule);font-size:12.5px;transition:background .12s}.pair-row.files{grid-template-columns:40px 1fr 100px 36px}.file-open{font:inherit;color:inherit;text-align:left;padding:0;text-decoration:underline;text-decoration-color:transparent;text-underline-offset:2px;transition:text-decoration-color .15s,color .15s}.file-open:hover{color:var(--pink);text-decoration-color:var(--pink)}.file-open:focus-visible{outline:2px solid var(--pink);outline-offset:2px;border-radius:2px}.pair-row:hover{background:var(--surface-2)}.pair-row.unmatched{opacity:.65;background:var(--pink-tint)}.pair-row.unmatched:hover{background:var(--pink-tint)}.cb.disabled{opacity:.4;cursor:not-allowed!important}.cb.disabled:hover{border-color:var(--rule-2)}.pair-row.head{background:var(--surface-2);font-size:10.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3);font-weight:700;padding-top:9px;padding-bottom:9px}.pair-row.head:hover{background:var(--surface-2)}.file-name{font-family:var(--font-mono);font-size:12px;color:var(--ink);display:flex;align-items:center;gap:8px}.file-name svg{width:14px;height:14px;color:var(--ink-4);flex-shrink:0}.file-name.rlmu svg{color:var(--pink)}.file-name.revit svg{color:var(--navy)}.match-status{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--green);font-weight:600}.match-status .dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.match-status.warn{color:var(--amber)}.match-status.warn .dot{background:var(--amber)}.size-cell{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.cb{width:17px;height:17px;border:1.5px solid var(--rule-2);border-radius:4px;background:var(--surface);display:grid;place-items:center;cursor:pointer;transition:all .15s;flex-shrink:0}.cb:hover{border-color:var(--ink-3)}.cb:focus-visible{outline:2px solid var(--gold-deep);outline-offset:2px}.cb.checked{background:var(--ink);border-color:var(--ink)}.cb.checked:after{content:"";width:4px;height:8px;border:solid #fff;border-width:0 1.5px 1.5px 0;transform:rotate(45deg) translate(-1px,-1px)}.cb.partial{background:var(--ink);border-color:var(--ink)}.cb.partial:after{content:"";width:8px;height:1.5px;background:#fff}.empty-state{text-align:center;padding:64px 20px;background:var(--surface);border:1.5px dashed var(--rule-2);border-radius:var(--r-lg)}.empty-state .ico{width:52px;height:52px;margin:0 auto 16px;background:var(--navy-tint);border-radius:50%;display:grid;place-items:center;color:var(--navy)}.empty-state .ico svg{width:24px;height:24px}.empty-state h3{font-size:15px;font-weight:700;color:var(--ink);margin-bottom:6px}.empty-state p{font-size:13px;color:var(--ink-3);max-width:360px;margin:0 auto}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px}.stat{background:var(--surface);border:1px solid var(--rule);border-radius:16px;box-shadow:0 5px 0 var(--edge),var(--shadow-card);padding:18px 20px;display:flex;align-items:center;gap:16px}.stat-cube{width:44px;height:44px;flex-shrink:0}.stat .v{font-size:28px;font-weight:800;color:var(--ink);letter-spacing:-.02em;line-height:1}.stat .v small{font-size:15px;font-weight:600;color:var(--ink-3);letter-spacing:0}.stat .k{font-size:13px;font-weight:700;margin-top:6px}.stat .sub{font-size:12px;color:var(--ink-3);margin-top:2px}.stat.add .k{color:var(--green)}.stat.upd .k{color:var(--blue)}.stat.del .k{color:var(--redline-2)}.stat.sel .k{color:var(--gold-ink)}.done-pill{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:6px 12px;border-radius:999px;background:#e3f1ea;color:var(--green);font-size:12.5px;font-weight:600}.demo-modal{position:relative;width:960px;max-width:100%;max-height:100%;overflow-y:auto;display:flex;flex-wrap:wrap;background:var(--surface);border:1px solid var(--rule);border-radius:22px;box-shadow:0 8px 0 var(--edge),0 40px 80px #1b2b3840}.demo-close{position:absolute;top:16px;right:16px;z-index:2;width:40px;height:40px;border-radius:10px;border:1px solid var(--rule-2);background:var(--surface);color:var(--ink-2);font-size:20px;display:grid;place-items:center}.demo-close:hover{background:var(--paper)}.demo-main{flex:1 1 440px;min-width:0;padding:32px;display:flex;flex-direction:column;gap:18px}.demo-intro{display:flex;flex-direction:column;gap:10px;padding-right:40px}.demo-eyebrow{display:inline-flex;align-items:center;gap:8px;margin:0}.demo-intro h2{font-size:28px;line-height:1.15;font-weight:800;letter-spacing:-.02em}.demo-intro p{font-size:15px;line-height:1.6;color:var(--ink-2)}.demo-video{display:block;text-decoration:none;color:#eef0ea;border-radius:16px;overflow:hidden;border:1px solid #2C465C;background:#0e2131;box-shadow:0 6px #c9c2b1,0 18px 36px #0e1f2d47}a.demo-video:hover .demo-play{transform:translate(-50%,-50%) scale(1.06)}.demo-poster{position:relative;height:220px;overflow:hidden;perspective:1400px;display:flex;align-items:center;justify-content:center;gap:36px}.demo-poster:before{content:"";position:absolute;left:-40%;right:-40%;top:40%;height:160%;background-image:linear-gradient(rgba(212,174,114,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(212,174,114,.08) 1px,transparent 1px);background-size:30px 30px;transform:rotateX(70deg);transform-origin:top center}.demo-poster .stack3d{width:120px;height:82px;margin-top:0}.demo-poster .stack3d .s2{transform:translateZ(10px)}.demo-poster .stack3d .s3{transform:translateZ(20px)}.demo-poster .stack3d .paper{transform:translateZ(30px)}.demo-poster .stack3d .room{border-width:1.5px}.demo-poster .stack3d .cloud{border-width:2px}.demo-arrow{position:relative;color:var(--gold);flex-shrink:0}.demo-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:50%;background:var(--gold);color:var(--ink);display:grid;place-items:center;box-shadow:0 5px 0 var(--gold-deep),0 16px 32px #00000080;transition:transform .15s}.demo-play svg{margin-left:3px}.demo-tag{position:absolute;top:14px;padding:5px 9px;border-radius:8px;background:#0b1a26db;border:1px solid #2C465C;font-size:11px;font-family:var(--font-mono);color:#b7c2cb}.demo-tag.left{left:14px}.demo-tag.right{right:14px}.demo-video-caption{display:flex;align-items:center;gap:12px;padding:14px 16px;border-top:1px solid #23394C}.demo-video-caption>span{flex:1;display:flex;flex-direction:column;gap:2px}.demo-video-caption b{font-size:14px}.demo-video-caption span span{font-size:12px;color:#a3b2be}.demo-points{list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px;color:var(--ink-2)}.demo-points li{display:flex;gap:10px;align-items:flex-start}.demo-points svg{flex-shrink:0;margin-top:1px;color:var(--green)}.demo-side{flex:1 1 320px;min-width:0;padding:72px 32px 32px;background:#f8f6f1;border-left:1px solid var(--rule);display:flex;flex-direction:column;gap:16px}.demo-side h3{font-size:20px;font-weight:800}.demo-side>div>p{font-size:14px;color:var(--ink-2);margin-top:6px}.demo-summary{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:12px;background:var(--gold-tint);border:1px solid var(--gold-line);font-size:13px;color:var(--ink-2)}.demo-summary .k{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-ink)}.demo-summary b{font-size:14px;color:var(--ink)}.demo-summary .btn{align-self:flex-start;margin:6px 0 0 -10px}.demo-hint{font-size:12.5px;line-height:1.5;color:var(--ink-3)}.demo-cta{text-decoration:none;padding:14px 20px;font-size:15px;font-weight:800}.demo-offices{display:flex;flex-wrap:wrap;gap:6px 16px;margin-top:auto;font-size:12.5px;color:var(--ink-3)}@media(max-width:768px){.demo-main,.demo-side{padding:24px 20px}.demo-side{border-left:none;border-top:1px solid var(--rule)}.demo-poster{gap:20px}}.analysis-list{display:flex;flex-direction:column;gap:10px}.afile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card);transition:box-shadow .15s}.afile.expanded{box-shadow:var(--shadow-raised)}.afile-head{display:grid;grid-template-columns:28px 28px 1fr auto auto;align-items:center;gap:12px;padding:13px 16px;cursor:pointer}.afile-head:hover{background:var(--surface-2)}.caret{width:16px;height:16px;display:grid;place-items:center;color:var(--ink-3);transition:transform .2s}.afile.expanded .caret{transform:rotate(90deg)}.afile-name{font-family:var(--font-mono);font-size:12.5px;color:var(--ink)}.afile-name .sub{font-family:var(--font-sans);font-size:11.5px;color:var(--ink-4);margin-top:1px}.badges{display:flex;gap:6px}.badge{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;font-size:11px;border-radius:99px;font-weight:600;font-family:var(--font-mono);letter-spacing:.01em}.badge.add{background:var(--green-tint);color:var(--green)}.badge.upd{background:var(--blue-tint);color:var(--blue)}.badge.del{background:var(--pink-tint);color:var(--pink)}.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.afile-status{font-size:11.5px;color:var(--ink-3);display:flex;align-items:center;gap:5px;font-family:var(--font-mono)}.afile-status .dot{width:6px;height:6px;border-radius:50%;background:var(--green)}.afile-body{border-top:1px solid var(--rule);display:none;background:var(--surface-2)}.afile.expanded .afile-body{display:block}.change-group{padding:16px 20px;border-bottom:1px solid var(--rule)}.change-group:last-child{border-bottom:none}.change-group-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.change-group-title{font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700;color:var(--ink-2);display:flex;align-items:center;gap:8px}.change-group-title .dot{width:6px;height:6px;border-radius:50%}.change-group-title.add .dot{background:var(--green)}.change-group-title.upd .dot{background:var(--blue)}.change-group-title.del .dot{background:var(--pink)}.change-item{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);padding:12px 14px;display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start}.change-item+.change-item{margin-top:8px}.change-meta{font-size:11px;font-family:var(--font-mono);color:var(--ink-4);text-transform:uppercase;letter-spacing:.05em;margin-bottom:6px}.change-meta .pin{color:var(--ink-3);background:var(--navy-tint);padding:1px 6px;border-radius:3px;margin-right:6px}.value-pair{display:grid;grid-template-columns:80px 1fr;gap:8px 14px;margin-top:8px;font-size:12.5px}.value-pair .vk{font-size:11px;color:var(--ink-4);text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding-top:7px}.value-pair .vv{font-family:var(--font-mono);font-size:12px;color:var(--ink);padding:6px 10px;border-radius:var(--r-xs);background:var(--surface-2);border:1px solid var(--rule);min-height:30px;display:flex;align-items:center}.value-pair .vv.editable{background:var(--surface);cursor:text}.value-pair .vv.editable:focus{outline:2px solid var(--navy);outline-offset:-1px;border-color:var(--navy)}.value-pair .vv.old{background:var(--pink-tint);border-color:#df4c6c4d;color:var(--pink);text-decoration:line-through;text-decoration-color:#df4c6c80}.value-pair .vv.new{background:var(--green-tint);border-color:#1f7a5740;color:var(--green)}.value-pair .vv.added{background:var(--green-tint);border-color:#1f7a5740;color:var(--ink);position:relative}.value-pair .vv.added:before{content:"+";position:absolute;left:-22px;color:var(--green);font-weight:700;font-family:var(--font-mono)}.value-pair .vv.deleted{background:var(--pink-tint);border-color:#df4c6c4d;color:var(--ink-2);text-decoration:line-through;text-decoration-color:#df4c6c73}.progress{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;gap:16px}.progress-bar{flex:1;height:6px;background:var(--navy-tint);border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--navy);border-radius:99px;transition:width .3s ease}.progress-text{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);white-space:nowrap}.progress.done .progress-fill{background:var(--green)}.actionbar{background:#fffffff5;border-top:1px solid var(--rule);display:flex;flex-wrap:wrap;align-items:center;padding:14px 28px;gap:12px 16px}.actionbar .info{font-size:14px;color:var(--ink-2)}.actionbar .info b{color:var(--ink);font-weight:700}.actionbar-spacer{flex:1}.actionbar .btn{padding:13px 22px;font-size:15px}.actionbar .btn-primary{font-weight:800}.result-summary{display:grid;grid-template-columns:1.2fr 1fr 1fr;gap:16px;margin-bottom:28px}.result-card{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-card);padding:20px 22px;position:relative;overflow:hidden}.result-card.big{background:var(--navy);color:#fff;border-color:var(--navy)}.result-card.big .k{color:#ffffffb3}.result-card.big .v{color:#fff}.result-card.big .sub{color:#fff9}.result-card .k{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600;margin-bottom:8px}.result-card .v{font-size:34px;font-weight:800;letter-spacing:-.02em;line-height:1}.result-card .v small{font-size:16px;color:var(--ink-4);font-weight:500}.result-card.big .v small{color:#ffffff80}.result-card .sub{font-size:12px;color:var(--ink-3);margin-top:8px}.result-card.ok .v{color:var(--green)}.result-card.fail .v{color:var(--pink)}.rfile{background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-lg);box-shadow:var(--shadow-card);overflow:hidden}.rfile+.rfile{margin-top:8px}.rfile-head{display:grid;grid-template-columns:28px 1fr auto auto auto;align-items:center;gap:14px;padding:13px 16px;cursor:pointer}.rfile-head:hover{background:var(--surface-2)}.rfile-status{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:99px;font-size:11px;font-weight:600}.rfile-status.ok{background:var(--green-tint);color:var(--green)}.rfile-status.partial{background:var(--amber-tint);color:var(--amber)}.rfile-status.fail{background:var(--pink-tint);color:var(--pink)}.rfile-count{font-family:var(--font-mono);font-size:11.5px;color:var(--ink-3)}.rfile-body{display:none;border-top:1px solid var(--rule);background:var(--surface-2);padding:12px 16px 16px}.rfile.expanded .rfile-body{display:block}.rfile.expanded .caret{transform:rotate(90deg)}.rchange{display:grid;grid-template-columns:20px 90px 1fr auto;align-items:center;gap:12px;padding:8px 12px;font-size:12.5px;border-radius:var(--r-xs)}.rchange+.rchange{margin-top:2px}.rchange .ico{width:16px;height:16px;display:grid;place-items:center}.rchange .ico.ok{color:var(--green)}.rchange .ico.fail{color:var(--pink)}.rchange .type{font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.04em}.rchange .desc{font-size:12.5px;color:var(--ink-2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rchange .reason{font-size:11px;color:var(--pink);font-style:italic}.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:20px}.tab{padding:9px 14px;font-size:12.5px;color:var(--ink-3);font-weight:600;border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}.tab:hover{color:var(--ink)}.tab.active{color:var(--pink);border-bottom-color:var(--pink)}.tab .count{display:inline-block;font-family:var(--font-mono);font-size:10.5px;background:var(--navy-tint);padding:1px 6px;border-radius:99px;margin-left:6px;color:var(--ink-3)}.toast{position:absolute;bottom:84px;right:28px;background:var(--navy);color:#fff;padding:11px 18px;border-radius:var(--r-md);font-size:12.5px;display:flex;align-items:center;gap:8px;box-shadow:var(--shadow-pop);opacity:0;transform:translateY(8px);transition:all .25s;pointer-events:none;z-index:50}.toast.show{opacity:1;transform:translateY(0)}.toast .ico{color:#6bdfb0}.modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#233e508c;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:none;align-items:center;justify-content:center;z-index:100;padding:24px}.modal-backdrop.show{display:flex;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--surface);border-radius:var(--r-xl, var(--r-lg));width:600px;max-width:100%;max-height:100%;display:flex;flex-direction:column;box-shadow:var(--shadow-pop);overflow:hidden}.modal.wide{width:720px}.modal-head{padding:20px 24px 16px;border-bottom:1px solid var(--rule);display:flex;justify-content:space-between;align-items:center}.modal-head h2{font-size:17px;font-weight:700;letter-spacing:-.01em;color:var(--ink)}.modal-head .sub{font-size:12.5px;color:var(--ink-3);margin-top:2px}.modal-close{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--ink-3);font-size:18px;transition:background .15s}.modal-close:hover{background:var(--navy-tint);color:var(--ink)}.modal-body{padding:22px 24px;overflow-y:auto;flex:1}.modal-foot{padding:16px 24px;border-top:1px solid var(--rule);display:flex;justify-content:flex-end;gap:8px;background:var(--surface-2)}.lang-switcher{display:flex;gap:2px;background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:3px}.lang-option{font-size:12px;font-weight:700;padding:6px 10px;border-radius:7px;color:var(--ink-3);cursor:pointer;transition:background .15s,color .15s;-webkit-user-select:none;user-select:none}.lang-option:hover{color:var(--ink);background:var(--navy-tint)}.lang-option.active{background:var(--ink);color:#fff}.export-split{position:relative;display:flex}.export-split .export-main{border-radius:var(--r-sm) 0 0 var(--r-sm);border-right:none}.export-split .export-caret{border-radius:0 var(--r-sm) var(--r-sm) 0;padding:0 8px;border-left:1px solid var(--rule-2)}.export-menu{display:none;position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--rule);border-radius:var(--r-md);box-shadow:var(--shadow-pop);min-width:230px;z-index:200;overflow:hidden}.export-menu.open{display:block}.export-menu-item{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer;transition:background .12s;border-bottom:1px solid var(--rule)}.export-menu-item:last-child{border-bottom:none}.export-menu-item:hover{background:var(--surface-2)}.export-menu-item svg{width:16px;height:16px;flex-shrink:0;color:var(--ink-3)}.export-item-title{font-size:13px;font-weight:600;color:var(--ink)}.export-item-sub{font-size:11px;color:var(--ink-4);margin-top:1px}.help-section+.help-section{margin-top:24px}.help-section .help-h{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:var(--pink);font-weight:700;margin-bottom:12px;padding-bottom:8px;border-bottom:1px dashed var(--rule)}.help-lead{font-size:15px;line-height:1.55;color:var(--ink-2);margin:0}.help-step{display:flex;gap:14px;padding:14px;background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-md);margin-bottom:10px}.help-step:last-child{margin-bottom:0}.help-step-num{flex-shrink:0;width:28px;height:28px;border-radius:999px;background:var(--navy);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.help-step-title{font-weight:700;font-size:14px;color:var(--ink);margin-bottom:4px}.help-step-desc{font-size:13px;line-height:1.5;color:var(--ink-3)}.help-step-desc code{font-family:var(--font-mono);font-size:11.5px;background:var(--surface);border:1px solid var(--rule);padding:1px 6px;border-radius:4px;color:var(--ink-2)}.help-list{margin:0;padding-left:18px;font-size:13.5px;line-height:1.65;color:var(--ink-2)}.help-list li+li{margin-top:6px}.help-list code{font-family:var(--font-mono);font-size:11.5px;background:var(--surface-2);border:1px solid var(--rule);padding:1px 5px;border-radius:4px;color:var(--ink-2)}.help-meta{background:var(--surface-2);border:1px solid var(--rule);border-radius:var(--r-md);padding:12px 16px}.help-meta-row{display:flex;justify-content:space-between;align-items:center;padding:4px 0;font-size:13px}.help-meta-row span{color:var(--ink-3)}.help-meta-row b{color:var(--ink);font-weight:700;font-family:var(--font-mono);font-size:12px}.progress-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#233e50cc;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:none;align-items:center;justify-content:center;z-index:200}.progress-overlay.show{display:flex}.progress-card{background:var(--surface);border-radius:var(--r-lg);padding:30px 32px;width:460px;max-width:92vw;box-shadow:var(--shadow-pop)}.progress-title{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--pink);font-weight:700;margin-bottom:6px}.progress-headline{font-size:19px;font-weight:700;color:var(--ink);margin-bottom:4px;letter-spacing:-.01em}.progress-sub{font-size:13px;color:var(--ink-3);margin-bottom:20px}.progress-track{height:8px;background:var(--navy-tint);border-radius:999px;overflow:hidden}.progress-track .progress-fill{height:100%;background:var(--pink);width:0%;transition:width .3s ease-out;border-radius:999px}.progress-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:12px;font-family:var(--font-mono)}.progress-pct{color:var(--ink);font-weight:700}.progress-status{color:var(--ink-3)}.project-list{display:flex;flex-direction:column;gap:8px}.project-list-item{border:1px solid var(--rule);border-radius:var(--r-md);padding:14px 16px;display:grid;grid-template-columns:1fr auto;gap:12px;align-items:center;cursor:pointer;transition:all .15s;background:var(--surface)}.project-list-item:hover{border-color:var(--pink);background:var(--pink-tint)}.project-list-item .pli-name{font-weight:700;font-size:13.5px;color:var(--ink);margin-bottom:4px;letter-spacing:-.005em}.project-list-item .pli-meta{font-size:11.5px;color:var(--ink-3);font-family:var(--font-mono);display:flex;gap:12px;align-items:center}.project-list-item .pli-meta .dot{width:3px;height:3px;border-radius:50%;background:var(--ink-4)}.project-list-item .pli-stats{text-align:right;font-size:11px;color:var(--ink-3);font-family:var(--font-mono)}.project-list-item .pli-stats .big{display:block;font-size:18px;color:var(--ink);font-weight:700}.project-list-empty{text-align:center;padding:36px 20px;color:var(--ink-4);font-size:12.5px}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--rule-2);border-radius:99px;border:2px solid var(--paper)}::-webkit-scrollbar-thumb:hover{background:var(--ink-4)}@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}.form-grid,.result-summary{grid-template-columns:1fr}}@media(max-width:768px){.appbar{padding:10px 16px}.appbar-spacer{display:none}.stepbar{padding:16px 16px 4px}.stepbar-step .sub,.stepbar-line{display:none}.workspace{padding:16px 16px 24px}.actionbar{padding:12px 16px}.page-title{font-size:26px}}
