@font-face{font-family:Manrope;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/manrope-latin-400-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/manrope-latin-500-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/manrope-latin-600-normal.woff2) format("woff2")}@font-face{font-family:Manrope;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/manrope-latin-700-normal.woff2) format("woff2")}:root{color-scheme:light;--bg: #f7f5f1;--surface: #ffffff;--border: #e5ded3;--border-soft: #ede8de;--hairline: #f3efe7;--text: #1c1917;--text-mid: #57534e;--text-dim: #a29d95;--ink: #1c1917;--ink-hover: #292524;--flame: #ea580c;--flame-deep: #c2410c;--teal: #0f766e;--primary: var(--flame);--primary-hover: var(--flame-deep);--danger: #dc2626;--success: var(--teal);--ease-ds: cubic-bezier(.22, 1, .36, 1);--ds-paper: #f7f5f1;--ds-ink: #1c1917;--ds-ink-mid: #57534e;--ds-ink-dim: #a29d95;--ds-line: #e5ded3;--ds-flame: #ea580c;--ds-teal: #0f766e;--ds-ease: cubic-bezier(.22, 1, .36, 1)}*{box-sizing:border-box}body{margin:0;font-family:Manrope,Segoe UI,Microsoft YaHei,system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:13px}.container{max-width:1280px;margin:0 auto;padding:20px 24px 48px}.page-head{display:flex;align-items:center;gap:10px;margin-bottom:16px}.page-icon{width:36px;height:36px;border-radius:10px;background:#edeae3;color:var(--text-mid);display:flex;align-items:center;justify-content:center}.page-title{font-size:15px;font-weight:600;margin:0}.step-chip{width:18px;height:18px;border-radius:999px;border:1.5px solid var(--border);color:var(--text-dim);font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.step-chip-active{background:var(--primary);border-color:var(--primary);color:#fff}.step-state{font-size:11px;font-weight:400;color:var(--text-dim);margin-left:2px}.card-active{border-color:color-mix(in srgb,var(--primary) 40%,var(--border))}.card-active .card-title{color:var(--text)}.logs-block{border-top:1px solid color-mix(in srgb,var(--border) 60%,transparent);margin-top:10px;padding-top:8px}.logs-caption{margin:0 0 6px;font-size:11px;font-weight:600;color:var(--text-mid)}.task-list-scroll{flex:1;min-height:0;overflow-y:auto}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;margin-bottom:16px;overflow:hidden}.card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border)}.card-title{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;color:color-mix(in srgb,var(--text) 85%,transparent)}.card-body{padding:10px 16px}button{font:inherit;cursor:pointer;border:none;border-radius:6px;padding:6px 12px;display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:500;white-space:nowrap;flex-shrink:0;transition:background .15s}button:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--ink);color:#fff;font-weight:600;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;box-shadow:0 1px 3px #1c191733}label.btn-primary{cursor:pointer}.btn-primary:hover:not(:disabled){background:var(--ink-hover)}.btn-ghost{background:transparent;color:var(--text-mid);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:#f5f2ec}.btn-danger-ghost{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 30%,transparent)}.btn-danger-ghost:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 7%,transparent)}.btn-icon{background:transparent;color:var(--text-dim);padding:5px;border-radius:6px}.btn-icon:hover:not(:disabled){background:color-mix(in srgb,var(--danger) 8%,transparent);color:var(--danger)}.upload-label{cursor:pointer;flex-shrink:0}.badge{flex-shrink:0;padding:2px 6px;border-radius:4px;font-size:11px;font-weight:500}.badge-drawing{background:color-mix(in srgb,var(--flame) 10%,transparent);color:var(--flame-deep)}.badge-bom{background:color-mix(in srgb,var(--teal) 12%,transparent);color:var(--teal)}.badge-status{display:inline-flex;align-items:center;gap:5px;padding:2px 8px;border-radius:999px;border:1px solid var(--border);font-size:11px;color:var(--text-mid);white-space:nowrap}.badge-status.completed{border-color:color-mix(in srgb,var(--teal) 30%,transparent);color:var(--teal)}.badge-status.failed{border-color:color-mix(in srgb,var(--danger) 30%,transparent);color:var(--danger)}.badge-status.running{border-color:color-mix(in srgb,var(--flame) 35%,transparent);color:var(--flame-deep)}.material-row,.task-row{display:flex;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent)}.material-row:last-child,.task-row:last-child{border-bottom:none}.material-name,.task-title{font-weight:500;color:color-mix(in srgb,var(--text) 85%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.material-meta,.task-meta{margin-top:2px;font-size:11px;color:var(--text-dim)}.task-main{min-width:0;flex:1}.task-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.empty{padding:24px 0;text-align:center;color:var(--text-dim)}.dropzone{border:1.5px dashed color-mix(in srgb,var(--border) 80%,var(--text-dim));border-radius:10px;padding:26px 16px;text-align:center;color:var(--text-dim);cursor:pointer;transition:border-color .15s,background .15s}.dropzone:hover,.dropzone.dropzone-dragover{border-color:var(--primary);background:color-mix(in srgb,var(--primary) 5%,transparent);color:var(--text-mid)}.dropzone .dropzone-hint{font-size:12px}.dropzone .dropzone-formats{margin-top:4px;font-size:11px;opacity:.75}.error-banner{border:1px solid color-mix(in srgb,var(--danger) 20%,transparent);background:color-mix(in srgb,var(--danger) 6%,transparent);color:#b91c1c;border-radius:8px;padding:8px 12px;margin-bottom:12px;font-size:12px}.failure-reason{margin-top:4px;font-size:11px;color:var(--danger)}.progress-note{display:inline-flex;align-items:center;gap:6px;margin-top:8px;padding:3px 10px;border-radius:999px;background:color-mix(in srgb,var(--flame) 6%,transparent);color:var(--flame-deep);font-size:11px}.logs{max-height:240px;overflow-y:auto;font-family:Consolas,Courier New,monospace;font-size:11px;color:var(--text-mid)}.task-list{max-height:300px;overflow-y:auto}.task-list .task-row:last-child{border-bottom:none}.logs ol{margin:0;padding:0 0 0 4px;list-style:none}.logs li{padding:1px 0;word-break:break-all}.log-time{color:var(--text-dim);margin-right:6px}.comparison-table-wrap{overflow-x:auto}table.comparison{border-collapse:collapse;min-width:100%;font-size:12px}table.comparison th,table.comparison td{border-bottom:1px solid var(--border);padding:8px 10px;text-align:left;vertical-align:top}table.comparison thead th{background:#faf8f4;font-weight:600;color:var(--text-mid);border-bottom:1px solid var(--border)}table.comparison th.no,table.comparison td.no{position:sticky;left:0;min-width:40px;color:var(--text-dim);font-size:11px;background:var(--surface);z-index:1}table.comparison thead th.no{background:#faf8f4;z-index:2}table.comparison th.item,table.comparison td.item{position:sticky;left:40px;min-width:180px;font-weight:500;color:color-mix(in srgb,var(--text) 75%,transparent);background:var(--surface);z-index:1}table.comparison thead th.item{background:#faf8f4;z-index:2}table.comparison th.company{min-width:220px;color:color-mix(in srgb,var(--text) 70%,transparent)}table.comparison .company-models{font-weight:400;color:var(--text-dim);margin-left:4px}table.comparison tbody tr:hover td{background:#faf9f5}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1c191773;display:flex;align-items:center;justify-content:center;z-index:50}.modal-card{width:min(520px,calc(100vw - 32px));background:var(--surface);border-radius:12px;box-shadow:0 12px 40px #0000002e;overflow:hidden}.modal-card-wide{width:min(780px,calc(100vw - 32px))}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;font-size:13px;font-weight:600;border-bottom:1px solid var(--border)}.modal-head .btn-icon{border:none}.modal-body{padding:12px 18px;max-height:50vh;overflow-y:auto}.modal-all{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-mid);padding:4px 0 10px;cursor:pointer}.modal-list{border-top:1px solid var(--border)}.modal-row{display:flex;align-items:center;gap:8px;padding:8px 2px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);cursor:pointer}.modal-row:last-child{border-bottom:none}.modal-row:hover{background:#faf9f5}.modal-name{font-size:12px;color:color-mix(in srgb,var(--text) 85%,transparent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modal-foot{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:12px 18px;border-top:1px solid var(--border)}.modal-count{margin-right:auto;font-size:11px;color:var(--text-dim)}.tabs{display:flex;gap:8px}.tab{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:9px;border:1px solid var(--border);background:transparent;color:var(--text-mid);font-size:13px}.tab:hover{background:#f5f2ec}.tab-active{background:color-mix(in srgb,var(--flame) 8%,transparent);border-color:color-mix(in srgb,var(--flame) 45%,transparent);color:var(--flame-deep);font-weight:600}.badge-v1{background:color-mix(in srgb,var(--flame) 12%,transparent);color:var(--flame-deep)}.badge-v2,.badge-doc{background:color-mix(in srgb,var(--teal) 10%,transparent);color:var(--teal)}.material-list{max-height:300px;overflow-y:auto}.kind-badge{display:inline-block;padding:2px 7px;border-radius:4px;font-size:11px;font-weight:500;white-space:nowrap}.kind-add{background:color-mix(in srgb,var(--teal) 12%,transparent);color:var(--teal)}.kind-del{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.kind-mod{background:color-mix(in srgb,var(--flame) 10%,transparent);color:var(--flame-deep)}.kind-word{background:#f1efe9;color:var(--text-mid)}table.poc2-table th,table.poc2-table td{min-width:120px}table.poc2-table td.loc{min-width:170px;font-weight:500;color:color-mix(in srgb,var(--text) 75%,transparent);white-space:pre-line}table.poc2-table td.quote{min-width:260px;max-width:420px;color:var(--text-mid)}table.poc2-table td.note{min-width:140px;color:var(--text-dim);font-size:11px}.impact-title{margin:18px 0 10px;font-size:12px;font-weight:600;color:color-mix(in srgb,var(--text) 80%,transparent)}.run-form{display:flex;align-items:center;gap:8px;padding:4px 0 12px}.vendor-input{font:inherit;font-size:12px;width:220px;padding:6px 9px;border:1px solid var(--border);border-radius:6px;background:var(--surface);color:var(--text)}.vendor-input:focus{outline:1.5px solid color-mix(in srgb,var(--flame) 55%,transparent)}.mode-badge{padding:3px 10px;border-radius:999px;font-size:11px;border:1px solid var(--border);color:var(--text-mid)}.mode-llm{border-color:color-mix(in srgb,var(--teal) 35%,transparent);color:var(--teal)}.mode-rule{border-color:color-mix(in srgb,var(--flame) 35%,transparent);color:var(--flame-deep)}.compare-picker{display:grid;grid-template-columns:1fr 1fr;gap:14px}.picker-col-title{font-size:12px;font-weight:600;color:color-mix(in srgb,var(--text) 80%,transparent);padding:2px 0 8px}.picker-list{border-top:1px solid var(--border);max-height:300px;overflow-y:auto;min-width:0}.picker-row{display:flex;align-items:center;gap:8px;padding:8px 6px;border-bottom:1px solid color-mix(in srgb,var(--border) 60%,transparent);cursor:pointer;font-size:12px;min-width:0}.picker-row:last-child{border-bottom:none}.picker-row:hover:not(.picker-row-disabled){background:#faf9f5}.picker-row-active{background:color-mix(in srgb,var(--flame) 6%,transparent)}.picker-row-disabled{opacity:.4;cursor:not-allowed}.picker-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:color-mix(in srgb,var(--text) 85%,transparent)}.picker-meta{flex-shrink:0;font-size:11px;color:var(--text-dim)}.auth-page{position:relative;min-height:100vh;overflow:hidden;display:flex;flex-direction:column;padding:24px 36px 18px;background:var(--ds-paper);color:var(--ds-ink);font-family:Manrope,Segoe UI,Microsoft YaHei,system-ui,sans-serif}.auth-page *{box-sizing:border-box}.auth-grid{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background-image:linear-gradient(rgba(28,25,23,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(28,25,23,.05) 1px,transparent 1px);background-size:28px 28px;-webkit-mask-image:radial-gradient(80% 80% at 50% 40%,#000 30%,transparent 100%);mask-image:radial-gradient(80% 80% at 50% 40%,#000 30%,transparent 100%);animation:auth-drift 46s linear infinite}@keyframes auth-drift{0%{background-position:0 0,0 0}to{background-position:280px 140px,280px 140px}}.auth-scene{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden}.auth-depth{position:absolute;top:0;right:0;bottom:0;left:0;will-change:transform}.auth-drawing{position:absolute}.auth-drawing .auth-bp-body circle{fill:none;stroke:#1c191721;stroke-width:1.1;stroke-dasharray:1;stroke-dashoffset:1;animation:auth-draw 2.4s var(--ds-ease) .4s forwards}.auth-drawing .auth-bp-dash{stroke:#1c19171a;stroke-width:.9;stroke-dasharray:7 6;fill:none;opacity:0;animation:auth-fade 1.2s ease 2.1s forwards}.auth-flange{left:-140px;top:-60px;width:780px;animation:auth-bob-drift 34s ease-in-out infinite alternate}.auth-bearing{right:-120px;bottom:-100px;width:520px;animation:auth-bob-drift 28s ease-in-out infinite alternate-reverse}@keyframes auth-bob-drift{0%{transform:translate(0)}to{transform:translate(26px,18px)}}@keyframes auth-draw{to{stroke-dashoffset:0}}@keyframes auth-fade{to{opacity:1}}.auth-tag{position:absolute;display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--ds-ink);background:#ffffffc7;border:1px solid rgba(28,25,23,.1);border-radius:8px;padding:7px 12px;box-shadow:0 10px 26px #29252414;opacity:0;animation:auth-tag-in .7s var(--ds-ease) calc(1s + var(--i) * .28s) forwards,auth-bob 8s ease-in-out calc(1.7s + var(--i) * .28s) infinite}.auth-tag:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--ds-flame)}.auth-depth .auth-tag:nth-child(1){left:7%;top:24%}.auth-depth .auth-tag:nth-child(2){right:9%;top:16%}.auth-depth .auth-tag:nth-child(3){left:11%;bottom:20%}.auth-depth .auth-tag:nth-child(4){right:8%;bottom:34%}.auth-depth .auth-tag:nth-child(5){left:27%;top:11%}.auth-depth .auth-tag:nth-child(6){right:26%;bottom:10%}@keyframes auth-tag-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}@keyframes auth-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}.auth-ruler{position:absolute;pointer-events:none;background:#ffffff8c;z-index:3}.auth-ruler-x{top:0;left:0;right:0;height:22px;border-bottom:1px solid rgba(28,25,23,.08);background-image:repeating-linear-gradient(90deg,rgba(28,25,23,.22) 0 1px,transparent 1px 50px),repeating-linear-gradient(90deg,rgba(28,25,23,.1) 0 1px,transparent 1px 10px);background-size:100% 11px,100% 6px;background-position:0 100%,0 100%;background-repeat:repeat-x,repeat-x}.auth-ruler-y{top:22px;left:0;bottom:0;width:22px;border-right:1px solid rgba(28,25,23,.08);background-image:repeating-linear-gradient(180deg,rgba(28,25,23,.22) 0 1px,transparent 1px 50px),repeating-linear-gradient(180deg,rgba(28,25,23,.1) 0 1px,transparent 1px 10px);background-size:11px 100%,6px 100%;background-position:100% 0,100% 0;background-repeat:no-repeat,no-repeat}.auth-ruler-nums{position:relative;height:100%}.auth-ruler-nums span{position:absolute;font-size:11px;color:#1c191761}.auth-ruler-x .auth-ruler-nums span{bottom:3px;transform:translate(-50%)}.auth-ruler-y .auth-ruler-nums span{left:3px;transform:translateY(-50%)}.auth-top{position:relative;z-index:4;display:flex;align-items:center;justify-content:space-between;animation:auth-fade-up .65s var(--ds-ease) both}.auth-brand{display:flex;align-items:center;gap:10px}.auth-logo{width:32px;height:32px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--ds-ink);color:#fafaf9;box-shadow:0 6px 16px #1c191738}.auth-brandname{font-size:13px;font-weight:600;letter-spacing:.04em}.auth-mid{position:relative;z-index:2;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;padding:24px 0}.auth-glass{position:relative;width:400px;max-width:100%;overflow:hidden;border:1px solid rgba(28,25,23,.09);border-radius:18px;background:#ffffffd1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 30px 80px #2925241a,inset 0 1px #ffffffe6;padding:28px 30px 26px;animation:auth-card-in .9s var(--ds-ease) .2s both}@keyframes auth-card-in{0%{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}.auth-scanline{position:absolute;top:0;left:0;height:2px;width:45%;pointer-events:none;background:linear-gradient(90deg,transparent,rgba(234,88,12,.75),transparent);animation:auth-sweep 4.2s var(--ds-ease) infinite}@keyframes auth-sweep{0%{transform:translate(-110%)}60%,to{transform:translate(330%)}}.auth-title{margin:0 0 4px;font-size:20px;font-weight:600;color:var(--ds-ink)}.auth-subtitle{font-size:12px;color:var(--ds-ink-dim);margin:0 0 22px}.auth-field{display:block;margin-bottom:14px}.auth-field>span:first-child{display:block;font-size:12px;color:var(--ds-ink-mid);margin-bottom:6px}.auth-input{position:relative;display:block}.auth-input>svg{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ds-ink-dim);transition:color .3s var(--ds-ease);pointer-events:none}.auth-input input{width:100%;height:40px;border-radius:10px;border:1px solid var(--ds-line);background:#fff;color:var(--ds-ink);font:inherit;font-size:13px;padding:0 38px 0 36px;outline:none;transition:border-color .3s var(--ds-ease),box-shadow .3s var(--ds-ease)}.auth-input input::placeholder{color:var(--ds-ink-dim)}.auth-input input:focus{border-color:var(--ds-flame);box-shadow:0 0 0 3px #ea580c21}.auth-input:focus-within>svg{color:var(--ds-flame)}.auth-eye{position:absolute;right:4px;top:50%;transform:translateY(-50%);width:32px;height:32px;border:0;border-radius:8px;background:transparent;cursor:pointer;color:var(--ds-ink-dim);display:inline-flex;align-items:center;justify-content:center;padding:0}.auth-eye:hover{color:var(--ds-ink-mid)}.auth-eye:focus-visible{outline:2px solid var(--ds-flame);outline-offset:2px}.auth-error{border:1px solid color-mix(in srgb,var(--danger) 20%,transparent);background:color-mix(in srgb,var(--danger) 6%,transparent);color:#b91c1c;border-radius:8px;padding:7px 10px;font-size:12px;margin-bottom:14px}.auth-row{display:flex;align-items:center;justify-content:space-between;margin:2px 0 16px}.auth-check{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ds-ink-mid);cursor:pointer}.auth-check input{accent-color:var(--ds-flame);width:14px;height:14px;margin:0;cursor:pointer}.auth-submit{position:relative;overflow:hidden;width:100%;height:42px;border:0;border-radius:10px;cursor:pointer;font:inherit;font-size:14px;font-weight:600;letter-spacing:.12em;color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--ds-ink);box-shadow:0 12px 26px #1c191738;transition:transform .3s var(--ds-ease),box-shadow .3s var(--ds-ease),background .3s var(--ds-ease)}.auth-submit:hover:not(:disabled){background:#292524;transform:translateY(-1px);box-shadow:0 16px 32px #1c191747}.auth-submit:active:not(:disabled){transform:scale(.98)}.auth-submit:disabled{cursor:not-allowed;opacity:.55;box-shadow:none}.auth-submit:focus-visible{outline:2px solid var(--ds-flame);outline-offset:2px}.auth-submit:after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:36%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent);transform:skew(-18deg);transition:left .55s var(--ds-ease)}.auth-submit:hover:not(:disabled):after{left:130%}.auth-feats{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;animation:auth-fade-up .65s var(--ds-ease) .5s both}.auth-feats span{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--ds-ink-mid);border:1px solid rgba(28,25,23,.08);background:#ffffffb8;border-radius:999px;padding:7px 14px}.auth-feats svg{color:var(--ds-teal)}.auth-foot{position:relative;z-index:2;text-align:center;font-size:12px;color:var(--ds-ink-dim);padding-top:14px;animation:auth-fade-up .65s var(--ds-ease) .6s both}@keyframes auth-fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@media(max-width:720px){.auth-page{padding:20px 20px 14px}.auth-glass{padding:24px 22px 22px}.auth-ruler-y,.auth-depth .auth-tag:nth-child(5),.auth-depth .auth-tag:nth-child(6){display:none}.auth-flange{width:560px}.auth-bearing{width:400px}}@media(prefers-reduced-motion:reduce){.auth-page *,.auth-page *:before,.auth-page *:after{animation:none!important;transition:none!important}.auth-scanline{display:none}.auth-bp-dash,.auth-tag{opacity:1}.auth-bp-body circle{stroke-dashoffset:0}}.app-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.user-area{display:flex;align-items:center;gap:8px}.user-name{font-size:12px;color:var(--text-mid)}.app-shell{display:flex;height:100vh;height:100dvh;overflow:hidden}.sidebar{width:232px;flex-shrink:0;display:flex;flex-direction:column;padding:14px 12px;background:#fff;border-right:1px solid var(--border);color:var(--text-mid)}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:2px 8px 16px}.sidebar-logo{width:34px;height:34px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--ink);color:#fafaf9;box-shadow:0 3px 10px #1c191738}.sidebar-logo svg{width:18px;height:18px}.sidebar-brand-text{display:flex;flex-direction:column;line-height:1.25}.sidebar-brand-text b{font-size:13px;font-weight:600;color:var(--text)}.sidebar-brand-text small{font-size:10px;color:var(--text-dim);letter-spacing:.3px}.sidebar-menu{display:flex;flex-direction:column}.sidebar-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;margin-bottom:4px;border:none;border-radius:8px;background:transparent;font:inherit;font-size:12.5px;text-align:left;color:var(--text-mid);cursor:pointer;position:relative;transition:background .25s var(--ds-ease),color .25s var(--ds-ease)}.sidebar-item svg{width:15px;height:15px;flex-shrink:0}.sidebar-item:hover{background:#f5f2ec}.sidebar-item.is-active{background:color-mix(in srgb,var(--flame) 8%,transparent);color:var(--flame-deep);font-weight:600}.sidebar-item.is-active:before{content:"";position:absolute;left:-12px;top:7px;bottom:7px;width:3px;border-radius:0 3px 3px 0;background:var(--flame)}.sidebar-item span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-badge{font-size:10px;font-style:normal;font-weight:600;padding:1px 7px;border-radius:999px;background:color-mix(in srgb,var(--flame) 12%,transparent);color:var(--flame-deep)}.sidebar-foot{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding-top:12px;border-top:1px solid var(--border-soft)}.dd{position:relative;display:inline-flex}.dd--block,.dd--block .dd-btn{width:100%}.dd-btn{display:inline-flex;align-items:center;gap:7px;max-width:260px;padding:6px 10px;border-radius:8px;border:1px solid var(--border);background:#fff;font:inherit;font-size:12px;color:var(--text-mid);cursor:pointer;transition:border-color .25s var(--ds-ease),background .25s var(--ds-ease),box-shadow .25s var(--ds-ease)}.dd-btn:hover:not(:disabled){border-color:#d5cec1}.dd-btn[aria-expanded=true]{border-color:var(--flame);box-shadow:0 0 0 3px #ea580c1f}.dd-btn:focus-visible{outline:2px solid var(--flame);outline-offset:2px}.dd-btn:disabled{opacity:.45;cursor:not-allowed}.dd-btn>svg{width:13px;height:13px;color:var(--text-dim);flex-shrink:0}.dd-btn>svg:last-child{width:12px;height:12px;opacity:.6;transition:transform .25s var(--ds-ease),color .25s var(--ds-ease)}.dd-btn[aria-expanded=true]>svg:last-child{transform:rotate(180deg);opacity:1;color:var(--flame)}.dd-label{flex:1;min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dd-menu{position:absolute;left:0;top:calc(100% + 6px);min-width:100%;max-width:320px;margin:0;padding:4px;list-style:none;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 12px 32px #29252424;max-height:280px;overflow-y:auto;z-index:40;transform-origin:top left;animation:dd-pop .18s var(--ds-ease)}.dd--up .dd-menu{top:auto;bottom:calc(100% + 6px);transform-origin:bottom left}@keyframes dd-pop{0%{opacity:0;transform:translateY(4px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.dd-menu{animation:none}}.dd-option{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:7px 9px;border:none;border-radius:7px;background:transparent;font:inherit;font-size:12px;color:var(--text-mid);cursor:pointer;white-space:nowrap;transition:background .15s}.dd-option:hover{background:#f5f2ec;color:var(--text)}.dd-option.is-active{color:var(--flame-deep);font-weight:600}.dd-option.is-active svg{color:var(--flame);opacity:1}.dd-option-label{min-width:0;overflow:hidden;text-overflow:ellipsis}.sidebar-user{display:flex;align-items:center;gap:9px;padding:2px 6px}.sidebar-avatar{width:28px;height:28px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,#f97316,#ea580c);box-shadow:inset 0 0 0 1px #ffffff47,0 2px 8px #ea580c4d;color:#fff;font-size:12px;font-weight:600}.sidebar-user-name{font-size:12px;flex:1;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-logout{border:none;background:transparent;color:var(--text-mid);opacity:.7;cursor:pointer;padding:4px;border-radius:6px;display:flex}.sidebar-logout:hover{opacity:1;background:#f5f2ec}.app-workspace{flex:1;min-width:0;background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.workspace-page{flex:1;min-height:0;padding:14px 20px 16px;display:flex;flex-direction:column;gap:14px;overflow:hidden}.subnav{display:flex;align-items:center;justify-content:space-between;gap:12px;border-bottom:1px solid var(--border-soft);margin-bottom:14px}.subnav-tabs{display:flex;gap:2px}.subnav-tab{border:none;background:transparent;cursor:pointer;font:inherit;font-size:13px;color:var(--text-mid);padding:8px 16px 10px;position:relative;border-radius:8px 8px 0 0;transition:color .25s var(--ds-ease),background .25s var(--ds-ease)}.subnav-tab:hover{color:var(--text);background:#1c19170a}.subnav-tab.is-active{color:var(--flame-deep);font-weight:600}.subnav-tab.is-active:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2.5px;border-radius:2px 2px 0 0;background:var(--flame)}.subnav-right{display:flex;align-items:center;gap:8px;padding-bottom:8px}.mode-badge{padding:3px 10px;border-radius:999px;font-size:10.5px;border:1px solid color-mix(in srgb,var(--teal) 30%,transparent);color:var(--teal);background:color-mix(in srgb,var(--teal) 6%,transparent);white-space:nowrap}.pane{flex:1;min-height:0;overflow-y:auto;display:flex;flex-direction:column;gap:14px}.pane[hidden]{display:none}.pane>.panel{flex-shrink:0}.pane>.panel.panel-table{flex:1 1 0%;min-height:0;overflow-y:auto}.pane>.pane-head{position:sticky;top:0;z-index:5;background:var(--bg)}.pane-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.pane-head h2{margin:0;font-size:15px;font-weight:600;color:var(--text)}.pane-tools{display:flex;align-items:center;gap:8px}.panel{background:var(--surface);border:1px solid var(--border-soft);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #2925240f}.panel-head{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--border-soft)}.panel-title{display:flex;align-items:center;gap:8px;font-weight:600;font-size:12.5px;color:var(--text)}.panel-title svg{width:14px;height:14px;color:var(--text-mid)}.panel-tools{margin-left:auto;display:flex;align-items:center;gap:8px}.row-item{display:flex;align-items:center;gap:10px;padding:10px 16px;border-bottom:1px solid var(--hairline);transition:background .12s}.row-item:hover{background:#faf9f5}.row-item:last-child{border-bottom:none}.task-no{flex-shrink:0;width:24px;height:24px;border-radius:50%;border:1px solid var(--border-soft);background:#faf8f4;color:var(--text-mid);font:inherit;font-size:11px;font-weight:600;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.task-no:hover{border-color:var(--flame);color:var(--flame-deep);background:#fff}.digest-doc{padding:2px 0}.digest-doc+.digest-doc{padding-top:6px}.digest-doc-name{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap}.digest-doc-name b{font-size:12px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.digest-sum{font-size:11px;color:var(--text-dim)}.digest-loading{display:flex;align-items:center;gap:7px;font-size:11.5px;color:var(--text-dim);padding:2px 0}.row-main{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.4}.row-main b{font-size:12.5px;font-weight:500;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.row-main small{font-size:10.5px;color:var(--text-dim)}.task-row{cursor:pointer}.task-row.is-open{border-bottom-color:transparent}.task-no{flex-shrink:0;width:24px;height:20px;display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:#fff;font-size:10.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}.task-actions .chev{flex-shrink:0;color:var(--text-dim);transition:transform .15s}.task-actions .chev-open{transform:rotate(180deg)}.task-sources{padding:2px 16px 12px 50px;background:#faf9f5;border-bottom:1px solid var(--hairline);display:flex;flex-direction:column;gap:7px}.task-sources-head{font-size:10.5px;color:var(--text-dim)}.task-source-chips{display:flex;flex-wrap:wrap;gap:6px}.task-source-chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 4px;border:1px solid var(--border);border-radius:999px;background:#fff;font-size:11px;color:var(--text);max-width:260px}.task-source-chip>span:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.task-source-chip .badge{flex-shrink:0}.task-source-chip.is-deleted{border-style:dashed;background:transparent;color:var(--text-dim);padding-left:9px}.badge-doc,.badge-dwg,.badge-bom2{flex-shrink:0;padding:2px 8px;border-radius:5px;font-size:10.5px;font-weight:500;border:1px solid transparent}.badge-doc{background:color-mix(in srgb,var(--teal) 9%,transparent);color:var(--teal);border-color:color-mix(in srgb,var(--teal) 22%,transparent)}.badge-dwg{background:color-mix(in srgb,var(--flame) 9%,transparent);color:var(--flame-deep);border-color:color-mix(in srgb,var(--flame) 22%,transparent)}.badge-bom2{background:color-mix(in srgb,var(--teal) 9%,transparent);color:var(--teal);border-color:color-mix(in srgb,var(--teal) 22%,transparent)}.btn-app{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:8px;padding:7px 13px;font:inherit;font-size:12px;font-weight:500;cursor:pointer;transition:background .25s var(--ds-ease),box-shadow .25s var(--ds-ease),transform .05s}.btn-app:active{transform:translateY(1px)}.btn-app svg{width:13px;height:13px}.btn-primary-app{background:var(--ink);color:#fff;box-shadow:0 1px 3px #1c191738}.btn-primary-app:hover{background:var(--ink-hover);box-shadow:0 2px 6px #1c191747}.btn-ghost-app{background:var(--surface);color:var(--text-mid);border:1px solid #ddd6ca}.btn-ghost-app:hover{background:#f5f2ec;color:var(--text)}.select-lite{display:inline-flex;align-items:center;gap:5px;padding:7px 11px;border:1px solid #ddd6ca;border-radius:8px;background:var(--surface);font-size:11.5px;color:var(--text-mid);white-space:nowrap}.select-lite svg{width:12px;height:12px;color:var(--text-dim)}.dropzone-lite{border:1.5px dashed color-mix(in srgb,var(--flame) 40%,transparent);border-radius:12px;padding:18px;text-align:center;color:var(--text-mid);background:color-mix(in srgb,var(--flame) 3%,transparent);transition:border-color .25s var(--ds-ease),background .25s var(--ds-ease);cursor:pointer}.dropzone-lite:hover{border-color:var(--flame);background:color-mix(in srgb,var(--flame) 6%,transparent)}.dropzone-lite div{display:flex;align-items:center;justify-content:center;gap:7px;font-size:12.5px;font-weight:500;color:var(--text)}.dropzone-lite svg{width:15px;height:15px;color:var(--flame)}.dropzone-lite small{display:block;margin-top:5px;font-size:11px;color:var(--text-dim);font-weight:400}.tbl{width:100%;border-collapse:separate;border-spacing:0;font-size:12px}.tbl th{text-align:left;padding:9px 16px;background:#faf8f4;color:var(--text-mid);font-size:11px;font-weight:600;border-bottom:1px solid var(--border-soft);white-space:nowrap}.panel-table .tbl th{position:sticky;top:0;z-index:1}.tbl td{padding:10px 16px;border-bottom:1px solid var(--hairline);color:#44403c;vertical-align:top}.tbl tbody tr{transition:background .1s}.tbl tbody tr:hover td{background:#faf9f5}.tbl tbody tr:last-child td{border-bottom:none}.kind{padding:2px 9px;border-radius:5px;font-size:10.5px;font-weight:500;white-space:nowrap;border:1px solid transparent}.k-add{background:color-mix(in srgb,var(--teal) 10%,transparent);color:var(--teal);border-color:color-mix(in srgb,var(--teal) 24%,transparent)}.k-del{background:#feecec;color:var(--danger);border-color:#ffd6d6}.k-mod{background:color-mix(in srgb,var(--flame) 10%,transparent);color:var(--flame-deep);border-color:color-mix(in srgb,var(--flame) 24%,transparent)}.k-word{background:#f1efe9;color:var(--text-mid);border-color:#e5dfd5}.st{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:3px 11px;border-radius:999px;font-size:10.5px;border:1px solid color-mix(in srgb,var(--teal) 30%,transparent);color:var(--teal);white-space:nowrap;background:color-mix(in srgb,var(--teal) 5%,transparent)}.st-run{border-color:color-mix(in srgb,var(--flame) 35%,transparent);color:var(--flame-deep);background:color-mix(in srgb,var(--flame) 5%,transparent)}.st-fail{border-color:color-mix(in srgb,var(--danger) 30%,transparent);color:var(--danger);background:color-mix(in srgb,var(--danger) 5%,transparent)}.st-cancel{border-color:var(--border);color:var(--text-dim);background:transparent}.split{flex:1;min-height:0;display:flex;gap:14px;align-items:stretch;overflow:hidden}.split>.panel{flex:1;min-width:0;display:flex;flex-direction:column;height:100%;overflow:hidden}.logs-side{width:360px;flex-shrink:0;height:100%;background:#fff;border:1px solid var(--border-soft);border-radius:12px;padding:0;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px #2925240f}.logs-side .logs-caption{color:var(--text-mid);font-size:11px;font-weight:600;padding:10px 14px 8px;letter-spacing:.3px;flex-shrink:0}.logs-lite{font-family:Consolas,Courier New,monospace;font-size:11px;color:var(--text-mid);padding:0 16px 10px;line-height:1.75;overflow-y:auto;flex:1;min-height:0}.logs-side .logs-lite{padding:0 14px 10px;flex:1;min-height:0}.log-time{color:var(--text-dim);margin-right:8px;font-variant-numeric:tabular-nums}.logs-side .logs-lite::-webkit-scrollbar{width:6px}.logs-side .logs-lite::-webkit-scrollbar-thumb{background:#a8a09473;border-radius:3px}.logs-caption{font-size:11px;font-weight:600;color:var(--text-mid);padding:10px 16px 6px}.run-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.field{flex:1;min-width:0;border:1px solid #ddd6ca;border-radius:8px;padding:8px 11px;font:inherit;font-size:12px;color:var(--text);background:var(--surface);transition:border-color .25s var(--ds-ease),box-shadow .25s var(--ds-ease)}.field:focus{outline:none;border-color:var(--flame);box-shadow:0 0 0 3px #ea580c1a}.field::placeholder{color:var(--text-dim)}.cfd-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;background:#1c191773;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);animation:cfd-fade .18s var(--ds-ease)}.cfd-overlay.cfd-closing{animation:cfd-fade-out .15s ease forwards}.cfd-card{width:min(400px,100%);background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 60px #29252438,0 2px 8px #29252414;padding:22px 22px 18px;animation:cfd-pop .22s var(--ds-ease)}.cfd-overlay.cfd-closing .cfd-card{animation:cfd-pop-out .15s ease forwards}@keyframes cfd-fade{0%{opacity:0}to{opacity:1}}@keyframes cfd-fade-out{0%{opacity:1}to{opacity:0}}@keyframes cfd-pop{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}@keyframes cfd-pop-out{0%{opacity:1;transform:none}to{opacity:0;transform:translateY(6px) scale(.97)}}@media(prefers-reduced-motion:reduce){.cfd-overlay,.cfd-card,.cfd-overlay.cfd-closing,.cfd-overlay.cfd-closing .cfd-card{animation:none}}.cfd-icon{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;margin-bottom:14px}.cfd-icon--danger{background:color-mix(in srgb,var(--danger) 10%,transparent);color:var(--danger)}.cfd-icon--warning{background:color-mix(in srgb,var(--flame) 10%,transparent);color:var(--flame-deep)}.cfd-title{margin:0 0 6px;font-size:14.5px;font-weight:600;color:var(--text)}.cfd-message{margin:0;font-size:12.5px;line-height:1.65;color:var(--text-mid);word-break:break-all}.cfd-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}.cfd-btn{font:inherit;font-size:12.5px;font-weight:500;padding:7px 16px;border-radius:8px;cursor:pointer;transition:background .25s var(--ds-ease),box-shadow .25s var(--ds-ease),transform .05s}.cfd-btn:active{transform:scale(.97)}.cfd-btn-ghost{background:var(--surface);color:var(--text-mid);border:1px solid var(--border)}.cfd-btn-ghost:hover{background:#f5f2ec;color:var(--text)}.cfd-btn-confirm{border:none;color:#fff;font-weight:600}.cfd-btn-confirm--danger{background:var(--danger);box-shadow:0 1px 3px #dc26264d}.cfd-btn-confirm--danger:hover{background:#b91c1c}.cfd-btn-confirm--warning{background:var(--ink);box-shadow:0 1px 3px #1c191740}.cfd-btn-confirm--warning:hover{background:var(--ink-hover)}.cfd-btn:focus-visible{outline:2px solid var(--flame);outline-offset:2px}.app-menu-btn{display:none;position:absolute;top:12px;left:14px;z-index:45;width:36px;height:36px;padding:0;border-radius:10px;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--text-mid);box-shadow:0 2px 8px #29252414;transition:background .25s var(--ds-ease)}.app-menu-btn:hover{background:#f5f2ec}@media(max-width:880px){.sidebar{position:fixed;top:0;bottom:0;left:0;z-index:70;transform:translate(-105%);transition:transform .3s var(--ds-ease);box-shadow:0 0 44px #1c191733}.sidebar.is-open{transform:none}.app-menu-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:65;background:#1c19176b;animation:cfd-fade .18s var(--ds-ease)}.app-menu-btn{display:inline-flex}.app-workspace{position:relative}.workspace-page{padding:58px 14px 16px}.subnav{flex-wrap:wrap;row-gap:4px}.subnav-tabs{overflow-x:auto;max-width:100%;scrollbar-width:none}.subnav-tabs::-webkit-scrollbar{display:none}.subnav-right,.pane-head,.pane-tools{flex-wrap:wrap}.dd-btn{max-width:200px}.split{flex-direction:column;overflow:visible}.split>.panel{flex:none;height:auto;max-height:44vh;overflow-y:auto}.logs-side{width:100%;height:auto;max-height:280px}.run-bar,.run-form{flex-wrap:wrap}.run-form .field{flex:1 1 160px}.vendor-input{width:100%}.pane>.panel.panel-table{overflow-x:auto}.panel-table .tbl{min-width:640px}table.comparison th,table.comparison td{padding:7px 8px}.comparison-table-wrap{margin:0}}@media(max-width:480px){.auth-page{padding:16px 16px 12px}.auth-glass{padding:22px 18px 20px;border-radius:16px}.auth-brandname{font-size:12px}.auth-title{font-size:18px}.auth-feats span{padding:6px 10px;font-size:11px}.auth-flange{width:420px}.auth-bearing{width:320px}.auth-tag{font-size:11px;padding:5px 9px}.auth-ruler-nums span{display:none}.auth-page .dd-btn{max-width:46vw}.workspace-page{padding:56px 10px 12px}.pane>.panel.panel-table{overflow-x:auto}.cfd-card{padding:18px 16px 14px}}
