html,body,#root{height:100%;margin:0;background:#f8f9fa;color:#1a1a1a}.d-none{display:none!important}.o_pcb_dfm_manager{overflow:hidden!important;min-height:0!important}.o_pcb_dfm_host{display:flex!important;flex-direction:column!important;height:100%!important;max-height:100%!important;overflow:hidden!important;background:#f8f9fa}.o_pcb_dfm_host>.o_content{display:flex!important;flex-direction:column!important;flex:1 1 auto;min-height:0;overflow:hidden!important;height:auto!important}.o_pcb_dfm{--bg: #f8f9fa;--panel: #ffffff;--panel-2: #f2f2f2;--line: #e6e8ec;--text: #1a1a1a;--muted: #71717a;--blue: #0095ff;--blue-2: #007bff;--orange: #ff7300;--grad-blue: linear-gradient(90deg, #4db8ff 0%, #0095ff 48%, #0070e8 100%);--grad-orange: linear-gradient(90deg, #ff8a1f 0%, #ff7300 100%);--accent: #0095ff;--on-accent: #ffffff;--error: #e11d48;--warning: #ff7300;--pass: #0095ff;--copper: #c25a3c;--shadow: 0 8px 24px rgba(26, 36, 51, .06);position:relative;box-sizing:border-box;display:flex;flex-direction:column;flex:1 1 auto;min-height:0;height:100%;overflow:auto;color:var(--text);background:var(--bg);padding:12px 20px 16px;font-family:Inter,Segoe UI,sans-serif}.o_pcb_dfm__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex:0 0 auto;padding:10px 14px 10px 18px;border-radius:20px;background:var(--grad-blue);color:#fff;box-shadow:var(--shadow)}.o_pcb_dfm__brand{display:flex;gap:12px;align-items:center}.o_pcb_dfm__mark{width:14px;height:14px;border-radius:50%;background:var(--orange);box-shadow:none}.o_pcb_dfm__title{font-weight:800;letter-spacing:.06em;text-transform:uppercase;font-size:13px;color:#fff}.o_pcb_dfm__subtitle{color:#ffffffd1;font-size:12px}.o_pcb_dfm__landing{display:flex;flex-direction:column;align-items:stretch;gap:28px;width:100%;max-width:920px;margin:8px auto 24px}.o_pcb_dfm__upload{display:flex;flex-direction:column;min-width:0}.o_pcb_dfm__hero{text-align:center}.o_pcb_dfm__eyebrow{margin:0 0 8px;font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue)}.o_pcb_dfm__hero h1{display:block;margin:0 0 10px;font-size:28px;font-weight:800;letter-spacing:-.03em;line-height:1.2;color:#1a1a1a;text-transform:none}.o_pcb_dfm__guide{min-height:0;background:transparent;border:0;border-radius:0;overflow:visible}.o_pcb_dfm__guide-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:0 0 12px;border:0}.o_pcb_dfm__guide-head strong{display:block;font-size:16px;font-weight:800;color:#1a1a1a}.o_pcb_dfm__guide-head span{display:block;margin-top:0;font-size:12px;color:#8b95a5}.o_pcb_dfm__guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.o_pcb_dfm__guide-card{background:#fff;border:1px solid #eceff3;border-radius:16px;padding:16px 16px 16px 18px;box-shadow:var(--shadow);min-height:100%}.o_pcb_dfm__guide-card.is-error{box-shadow:inset 3px 0 #e11d48,var(--shadow)}.o_pcb_dfm__guide-card.is-warning{box-shadow:inset 3px 0 #ff7300,var(--shadow)}.o_pcb_dfm__guide-card-top{display:flex;flex-direction:column;align-items:flex-start;gap:8px;margin-bottom:8px}.o_pcb_dfm__guide-card-top strong{font-size:15px;font-weight:800;color:#1a1a1a}.o_pcb_dfm__guide-limit{font-size:12px;font-weight:700;color:#5c6570;margin-bottom:8px}.o_pcb_dfm__guide-card p{margin:0;font-size:13px;line-height:1.45;color:#5c6570}.o_pcb_dfm__guide-tag{display:inline-flex;flex:0 0 auto;margin-top:1px;font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;border-radius:999px;padding:3px 8px}.o_pcb_dfm__guide-tag.is-error{background:#e11d48;color:#fff}.o_pcb_dfm__guide-tag.is-warning{background:#ff7300;color:#fff}.o_pcb_dfm__hero p{color:var(--muted);max-width:560px;margin:0 auto 20px;font-size:15px;line-height:1.5}.o_pcb_dfm__drop{max-width:none;min-height:260px;background:#fff;border:2px dashed #c9d4e3;border-radius:20px;padding:0;text-align:center;cursor:pointer;display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow);transition:box-shadow .15s,border-color .15s,transform .15s}.o_pcb_dfm__drop:hover,.o_pcb_dfm__drop.is-dragging{border-color:var(--blue);box-shadow:0 12px 32px #007bff29;transform:translateY(-1px)}.o_pcb_dfm__drop-body{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;flex:1 1 auto;padding:32px 24px}.o_pcb_dfm__drop-icon{width:72px;height:72px;margin:0;display:grid;place-items:center;color:var(--blue);background:transparent;border-radius:0}.o_pcb_dfm__drop-icon svg{width:64px;height:64px;display:block}.o_pcb_dfm__drop-title{color:#333;font-size:18px;font-weight:600}.o_pcb_dfm__drop-title span{color:var(--orange);font-weight:800}.o_pcb_dfm__drop-types{color:var(--muted);font-size:13px}.o_pcb_dfm__drop-foot{background:var(--grad-blue);color:#fff;font-size:13px;font-weight:600;padding:12px 16px}.o_pcb_dfm__specs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;list-style:none;margin:16px 0 0;padding:0}.o_pcb_dfm__specs li{background:#fff;border:1px solid #eceff3;border-radius:999px;padding:7px 12px;font-size:12px;font-weight:700;color:#5c6570}.o_pcb_dfm__actions{display:flex;align-items:center;justify-content:center;gap:12px;margin:18px 0 0}.o_pcb_dfm__primary,.o_pcb_dfm__ghost{border:0;border-radius:999px;padding:10px 18px;font-weight:600;cursor:pointer}.o_pcb_dfm__primary{background:var(--grad-blue);color:var(--on-accent);box-shadow:var(--shadow)}.o_pcb_dfm__ghost{background:var(--grad-orange);color:#fff;border:0}.o_pcb_dfm__hint{color:var(--muted);font-size:13px;text-align:center;margin:12px 0 0}.o_pcb_dfm__checks{display:flex;flex-wrap:wrap;gap:8px}.o_pcb_dfm__check{border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:12px;color:var(--muted)}.o_pcb_dfm__stage{flex:1 1 auto;min-height:0;overflow-y:auto}.o_pcb_dfm__stage--center{text-align:center;padding:64px 0}.o_pcb_dfm__steps{list-style:none;margin:24px auto 0;padding:0;max-width:320px;text-align:left}.o_pcb_dfm__steps li{display:flex;align-items:center;gap:10px;padding:8px 0;color:#8b95a5;font-weight:600}.o_pcb_dfm__steps li.is-done{color:#1a1a1a}.o_pcb_dfm__steps li.is-active{color:var(--blue)}.o_pcb_dfm__job-progress{width:min(320px,80%);height:6px;margin:18px auto 0;border-radius:999px;background:#eceff3;overflow:hidden}.o_pcb_dfm__job-progress i{display:block;height:100%;background:var(--blue)}.o_pcb_dfm__verdict-row{display:flex;align-items:flex-start;gap:10px}.o_pcb_dfm__verdict-icon{width:28px;height:28px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:800;background:#eef6ff;color:var(--blue);flex:0 0 auto}.o_pcb_dfm__result-banner.is-warning .o_pcb_dfm__verdict-icon{background:#fff4e8;color:var(--orange)}.o_pcb_dfm__result-banner.is-fail .o_pcb_dfm__verdict-icon{background:#fdecec;color:var(--error)}.o_pcb_dfm__summary-strip{display:flex;flex-wrap:wrap;gap:6px;justify-content:flex-end;align-items:center}.o_pcb_dfm__summary-strip button{border:1px solid #eceff3;background:#fff;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;cursor:pointer;color:inherit}.o_pcb_dfm__summary-strip button.is-all{color:#5c6570}.o_pcb_dfm__summary-strip button.is-error{color:var(--error)}.o_pcb_dfm__summary-strip button.is-warning{color:var(--orange)}.o_pcb_dfm__summary-strip button.is-pass{color:var(--pass)}.o_pcb_dfm__summary-strip button.is-active{border-color:currentColor;background:#f7f9fc}.o_pcb_dfm__report-link{border:0;background:none;color:var(--muted);font-size:12px;text-decoration:underline;cursor:pointer;padding:4px 6px}.o_pcb_dfm__rule-icon{display:inline-block;width:1.1em;flex:0 0 auto}.o_pcb_dfm__fix-hint{margin-top:4px;font-size:11px;color:#5c6570;line-height:1.4}.o_pcb_dfm__notes{background:#fff8f2;border-radius:10px;padding:10px 12px;margin-bottom:12px;font-size:12px}.o_pcb_dfm__cta{position:sticky;bottom:0;display:flex;align-items:center;flex-wrap:wrap;gap:12px;padding:10px 0 4px;background:linear-gradient(180deg,#f8f9fa00,#f8f9fa 30%)}.o_pcb_dfm__submit-form--inline{display:flex;flex-wrap:wrap;gap:8px;width:100%}.o_pcb_dfm__submit-form--inline input{flex:1 1 140px}.o_pcb_dfm__cta span{font-size:12px;color:#8b95a5}.o_pcb_dfm__spinner{width:36px;height:36px;margin:0 auto 16px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:pcbspin .8s linear infinite}@keyframes pcbspin{to{transform:rotate(360deg)}}.o_pcb_dfm__steps{list-style:none;padding:0;margin:24px auto 0;max-width:280px;text-align:left;color:var(--muted)}.o_pcb_dfm__steps li.is-done{color:var(--accent)}.o_pcb_dfm__banner{display:flex;justify-content:space-between;align-items:center;border-radius:14px;padding:18px 20px;margin-bottom:16px;border:1px solid var(--line);background:var(--panel)}.o_pcb_dfm__result{flex:0 0 auto}.o_pcb_dfm__result-banner{display:flex;justify-content:space-between;align-items:center;gap:12px;border-radius:12px;padding:10px 14px;margin-bottom:8px;border:1px solid #eceff3;background:#fff;box-shadow:none}.o_pcb_dfm__result-banner.is-fail{border-color:#f4c4cd}.o_pcb_dfm__result-banner.is-warning{border-color:#ffd4b0}.o_pcb_dfm__result-banner.is-pass{border-color:#b9dcff}.o_pcb_dfm__result-banner.is-fail .o_pcb_dfm__verdict{color:#b42318}.o_pcb_dfm__result-banner.is-warning .o_pcb_dfm__verdict{color:var(--orange)}.o_pcb_dfm__result-banner.is-pass .o_pcb_dfm__verdict{color:var(--blue)}.o_pcb_dfm__banner.is-fail{border-color:#d92d4a73}.o_pcb_dfm__banner.is-warning{border-color:#c4841280}.o_pcb_dfm__banner.is-pass{border-color:#0095ff73}.o_pcb_dfm__verdict{font-size:16px;font-weight:800;letter-spacing:.04em;line-height:1.1}.o_pcb_dfm__banner.is-fail .o_pcb_dfm__verdict{color:var(--error)}.o_pcb_dfm__banner.is-warning .o_pcb_dfm__verdict{color:var(--warning)}.o_pcb_dfm__banner.is-pass .o_pcb_dfm__verdict{color:var(--pass)}.o_pcb_dfm__file{color:#9aa3af;font-size:12px;margin-top:2px}.o_pcb_dfm__banner-meta{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:12px;color:#8b95a5;font-size:12px}.o_pcb_dfm__banner-meta strong{color:#1a1a1a;font-weight:800}.o_pcb_dfm__banner-total{padding-left:10px;border-left:1px solid #eceff3}.o_pcb_dfm__kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(176px,1fr));gap:10px;margin-bottom:0}.o_pcb_dfm__kpi{display:flex;flex-direction:column;align-items:flex-start;gap:6px;width:100%;text-align:left;background:#fff;border:1px solid #eceff3;border-radius:16px;padding:14px 16px 13px;box-shadow:none;min-height:0;cursor:pointer;font:inherit;color:inherit;transition:border-color .15s ease,background .15s ease}.o_pcb_dfm__kpi:hover{border-color:#d7dde6;background:#fcfcfd}.o_pcb_dfm__kpi-head{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%}.o_pcb_dfm__kpi-label{display:block;color:#8b929c;font-size:11px;font-weight:500;letter-spacing:0;margin-bottom:0;line-height:1.3}.o_pcb_dfm__kpi-flag{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;font-style:normal;font-size:11px;font-weight:600;letter-spacing:0;text-transform:none;border-radius:0;padding:0;line-height:1;background:none;color:#8b929c}.o_pcb_dfm__kpi-flag:before{content:"";width:6px;height:6px;border-radius:50%;background:#c5cbd3}.o_pcb_dfm__kpi-flag.is-error{color:#e11d48}.o_pcb_dfm__kpi-flag.is-error:before{background:#e11d48}.o_pcb_dfm__kpi-flag.is-warning{color:#e07800}.o_pcb_dfm__kpi-flag.is-warning:before{background:#ff7300}.o_pcb_dfm__kpi-flag.is-ok{color:#3f9a5a}.o_pcb_dfm__kpi-flag.is-ok:before{background:#3f9a5a}.o_pcb_dfm__kpi-flag.is-skip{color:#8b929c}.o_pcb_dfm__rule-badge.is-error{background:var(--error);color:#fff}.o_pcb_dfm__rule-badge.is-warning{background:var(--warning);color:#fff}.o_pcb_dfm__rule-badge.is-pass{background:#16a34a;color:#fff}.o_pcb_dfm__rule-badge.is-skip,.o_pcb_dfm__rule-badge.is-unanalyzed{background:#d4d8de;color:#4b5563}.o_pcb_dfm__kpi strong{font-size:15px;font-weight:600;color:#1a1a1a;letter-spacing:-.03em;line-height:1.25;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.o_pcb_dfm__kpi small{display:block;font-size:11px;font-weight:500;color:#9aa3af;line-height:1.35}.o_pcb_dfm__kpi.is-error{background:#fff;border-color:#f3d0d6;box-shadow:none}.o_pcb_dfm__kpi.is-error strong{color:#e11d48}.o_pcb_dfm__kpi.is-error small{color:#c26b7a}.o_pcb_dfm__kpi.is-warning{background:#fff;border-color:#f5d7bf;box-shadow:none}.o_pcb_dfm__kpi.is-warning strong{color:#d56a00}.o_pcb_dfm__kpi.is-warning small{color:#c08a5a}.o_pcb_dfm__kpi.is-ok{background:#fff;border-color:#eceff3;box-shadow:none}.o_pcb_dfm__kpi.is-ok strong{color:#1a1a1a}.o_pcb_dfm__preview-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.o_pcb_dfm__tabs{display:inline-flex;background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:4px}.o_pcb_dfm__tabs button{border:0;background:transparent;color:var(--muted);border-radius:999px;padding:8px 16px;font-weight:600}.o_pcb_dfm__tabs button.is-active{background:var(--grad-blue);color:var(--on-accent)}.o_pcb_dfm__tabs button:disabled{opacity:.4;cursor:not-allowed}.o_pcb_dfm__layer-toggles{display:flex;flex-direction:column;align-items:flex-start;gap:10px;color:var(--muted);font-size:13px}.o_pcb_dfm__layer-toggles label{display:flex;align-items:center;gap:6px;cursor:pointer}.o_pcb_dfm__cam-list{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin;scrollbar-color:#b7c4d6 transparent}.o_pcb_dfm__cam-cat{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700;margin:10px 0 4px}.o_pcb_dfm__cam-cat.is-top{color:#1565c0}.o_pcb_dfm__cam-cat.is-bottom{color:#ef6c00}.o_pcb_dfm__cam-cat.is-mechanical{color:#7b1fa2}.o_pcb_dfm__cam-row{display:flex;align-items:center;gap:8px;width:100%;border:0;background:transparent;color:var(--text);padding:5px 2px;text-align:left;font-size:13px;cursor:pointer;border-radius:6px}.o_pcb_dfm__cam-row:hover{background:var(--panel-2)}.o_pcb_dfm__cam-row.is-off{opacity:.45}.o_pcb_dfm__cam-swatch{width:10px;height:10px;border-radius:2px;flex:0 0 auto}.o_pcb_dfm__cam-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:flex;flex-direction:column;line-height:1.2}.o_pcb_dfm__cam-name small{display:block;overflow:hidden;text-overflow:ellipsis;color:var(--muted);font-size:10px;font-weight:500}.o_pcb_dfm__cam-eye{flex:0 0 auto;color:var(--muted);font-size:12px}.o_pcb_dfm__previews{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:0;min-height:0;height:100%}.o_pcb_dfm__previews--single{grid-template-columns:1fr}.o_pcb_dfm__previews--single .o_pcb_dfm__svg,.o_pcb_dfm__previews--single .o_pcb_dfm__photo{height:100%}.o_pcb_dfm__grid{display:grid;grid-template-columns:1.4fr .8fr;gap:12px;margin-bottom:12px}.o_pcb_dfm__panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px;margin-bottom:12px}.o_pcb_dfm__panel-title{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:12px}.o_pcb_dfm__svg-wrap{position:relative;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;overflow:hidden;overscroll-behavior:contain}.o_pcb_dfm__svg-wrap.is-panning{cursor:grabbing}.o_pcb_dfm__zoom,.o_pcb_dfm__zoom-bar{display:flex;align-items:center;gap:2px}.o_pcb_dfm__zoom{position:absolute;top:10px;left:10px;right:10px;z-index:5;padding:4px;border-radius:8px;background:#fff;box-shadow:0 1px 4px #1a243329;justify-content:flex-start;flex-wrap:wrap}.o_pcb_dfm__zoom button,.o_pcb_dfm__zoom-bar button{min-width:32px;width:32px;height:32px;padding:0;border:0;border-radius:6px;background:transparent;color:#1a1a1a;display:grid;place-items:center}.o_pcb_dfm__zoom button svg,.o_pcb_dfm__zoom-bar button svg{width:20px;height:20px;display:block}.o_pcb_dfm__zoom button:hover:not(:disabled),.o_pcb_dfm__zoom-bar button:hover:not(:disabled){background:#f0f3f7}.o_pcb_dfm__zoom button:disabled{color:#c8c8c8;cursor:default}.o_pcb_dfm__tool-seg{display:flex;align-items:center;gap:0;margin-right:6px;padding:1px;border-radius:6px;background:#f0f3f7}.o_pcb_dfm__tool-seg button{min-width:0;width:auto;height:28px;padding:0 8px;font-size:11px;font-weight:600;color:#5c6570}.o_pcb_dfm__tool-seg button.is-active{background:#fff;color:#1a1a1a;box-shadow:0 1px 2px #1a24331f}.o_pcb_dfm__zoom>.o_pcb_dfm__tool-seg:last-child{margin-left:auto;margin-right:0;background:transparent}.o_pcb_dfm__layer-float{position:absolute;top:56px;left:10px;z-index:5;max-height:calc(100% - 70px);overflow:auto;padding:8px;border-radius:8px;background:#fff;box-shadow:0 1px 4px #1a243329;min-width:160px}.pcb-mark{pointer-events:none;fill:none}.o_pcb_dfm__marker-legend{position:absolute;right:10px;bottom:12px;z-index:6;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px 12px;max-width:70%;padding:6px 10px;border-radius:999px;background:#fffffff0;box-shadow:0 1px 4px #1a243329;font-size:11px;font-weight:600;color:#4b5563;pointer-events:none}.o_pcb_dfm__marker-legend span{display:inline-flex;align-items:center;gap:6px}.o_pcb_dfm__marker-legend span.is-error{color:#e11d48}.o_pcb_dfm__marker-legend span.is-warning{color:#d56a00}.o_pcb_dfm__marker-legend i{width:10px;height:10px;display:inline-block;box-sizing:border-box;border:1.5px solid currentColor;background:transparent}.o_pcb_dfm__marker-legend i.is-kicad{width:8px;height:8px;border:0;border-radius:50%;background:currentColor;box-shadow:0 -5px 0 -2px currentColor,0 5px 0 -2px currentColor,-5px 0 0 -2px currentColor,5px 0 0 -2px currentColor}.o_pcb_dfm__marker-legend i.is-ring{border-radius:50%;box-shadow:inset 0 0 0 1.5px currentColor}.o_pcb_dfm__marker-legend i.is-trace{width:12px;height:0;border-top-width:2px;border-radius:0}.o_pcb_dfm__marker-legend i.is-gap,.o_pcb_dfm__marker-legend i.is-edge{width:12px;height:0;border-top-width:2px;border-style:dashed;border-radius:0}.o_pcb_dfm__zoom-pct{min-width:48px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;color:var(--muted)}.o_pcb_dfm__empty{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;pointer-events:none}.o_pcb_dfm__muted{color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none}.o_pcb_dfm__svg,.o_pcb_dfm__photo{width:100%;height:420px;background:#0a1018;border-radius:10px}.o_pcb_dfm__photo{background:#c5c5c5;overflow:hidden;box-sizing:border-box;padding:0}.mode-layers .o_pcb_dfm__photo{background:#0a0a0a;padding:0}.o_pcb_dfm__photo svg{width:100%;height:100%;display:block;shape-rendering:geometricPrecision;text-rendering:geometricPrecision}.mode-svg .o_pcb_dfm__svg{background:#c5c5c5}.pcb-outline{fill:#102033;stroke:#6ee7c3;stroke-width:.18}.mode-svg .pcb-outline{fill:#1b5c3a;stroke:#0f3320;stroke-width:.22}.pcb-trace{stroke:var(--copper);stroke-linecap:round;fill:none}.is-bottom .pcb-trace{stroke:#5aa9e6}.mode-svg .pcb-trace,.mode-svg.is-bottom .pcb-trace{stroke:#247a45}.mode-svg .pcb-trace.is-bad{stroke:#c45c2d}.pcb-trace.is-bad{stroke:var(--error)}.pcb-pad{fill:#f0a58a;stroke:none}.is-bottom .pcb-pad{fill:#8ec5f2}.mode-svg .pcb-pad,.mode-svg.is-bottom .pcb-pad{fill:#d7b56a;stroke:#b8943d;stroke-width:.04}.pcb-mask{fill:#2bb673;fill-opacity:.35;stroke:none}.pcb-silk{stroke:#f4e3a1;stroke-linecap:round;fill:none}.mode-svg .pcb-silk{stroke:#f4f1e4;opacity:.75}.pcb-hole{fill:#0b1220;stroke:#c9d6e8;stroke-width:.08}.mode-svg .pcb-hole{fill:#1a1a1a;stroke:#d7b56a;stroke-width:.06}.pcb-mark{fill:none;stroke-width:.22}.pcb-mark.is-error{stroke:var(--error)}.pcb-mark.is-warning{stroke:var(--warning)}.pcb-kicad polygon,.pcb-kicad circle:not(.pcb-kicad-halo){stroke:#fff}.pcb-kicad.is-error polygon,.pcb-kicad.is-error circle:not(.pcb-kicad-halo){fill:#dc2626}.pcb-kicad.is-warning polygon,.pcb-kicad.is-warning circle:not(.pcb-kicad-halo){fill:#eab308}.pcb-kicad-halo{fill:none}.pcb-kicad.is-error .pcb-kicad-halo{stroke:#dc2626;opacity:.4}.pcb-kicad.is-warning .pcb-kicad-halo{stroke:#ca8a04;opacity:.45}.pcb-kicad-link{fill:none;stroke-dasharray:.45 .3}.pcb-kicad-link.is-error{stroke:#dc2626}.pcb-kicad-link.is-warning{stroke:#ca8a04}.pcb-focus{fill:#0095ff14;stroke-width:.28}.pcb-focus.is-error{fill:#ff5d731f;stroke:var(--error)}.pcb-focus.is-warning{fill:#ffb0201f;stroke:var(--warning)}.pcb-focus.is-good{fill:#0095ff1f;stroke:var(--pass)}.pcb-focus-link{fill:none;stroke:var(--accent);stroke-width:.18;stroke-dasharray:.45 .3}.o_pcb_dfm__legend{display:flex;gap:16px;margin-top:10px;color:var(--muted);font-size:12px}.pcb-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}.pcb-dot.copper,.pcb-dot.copper.is-bottom{background:#c93}.pcb-dot.silk{background:#fff}.pcb-dot.hole{background:#c9d6e8}.pcb-dot.mask{background:#004200}.pcb-dot.error{background:var(--error)}.pcb-dot.warning{background:var(--warning)}.o_pcb_dfm__layer-cats{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:8px}.o_pcb_dfm__layer-cat{background:var(--panel-2);border-radius:10px;padding:12px}.o_pcb_dfm__layer-cat-title{font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:12px 0 8px;font-weight:700}.o_pcb_dfm__layer-cat .o_pcb_dfm__layer-cat-title{margin-top:0}.o_pcb_dfm__layer-cat-title.is-top{color:#c25a3c}.o_pcb_dfm__layer-cat-title.is-bottom{color:#1565c0}.o_pcb_dfm__layers{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}.o_pcb_dfm__layers li{display:flex;gap:10px;align-items:flex-start}.o_pcb_dfm__layers small{display:block;color:var(--muted)}.o_pcb_dfm__role{font-size:10px;text-transform:uppercase;border-radius:6px;padding:4px 6px;background:var(--panel-2);min-width:78px;text-align:center}.o_pcb_dfm__role.is-copper{color:#f0a58a}.o_pcb_dfm__role.is-outline{color:var(--accent)}.o_pcb_dfm__role.is-drill{color:#c9d6e8}.o_pcb_dfm__role.is-soldermask{color:#7bed9f}.o_pcb_dfm__role.is-silkscreen{color:#ffeaa7}.o_pcb_dfm__group{font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin:12px 0 8px;color:var(--muted)}.o_pcb_dfm__finding{border-left:3px solid var(--line);padding:10px 12px;margin-bottom:8px;background:var(--panel-2);border-radius:0 8px 8px 0}.o_pcb_dfm__finding.is-error{border-left-color:var(--error)}.o_pcb_dfm__finding.is-warning{border-left-color:var(--warning)}.o_pcb_dfm__finding.is-pass{border-left-color:var(--pass)}.o_pcb_dfm__finding-name{font-weight:600}.o_pcb_dfm__finding-msg{color:var(--muted);font-size:13px}.o_pcb_dfm__workspace{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;min-height:0}.o_pcb_dfm__workgrid{display:grid;grid-template-columns:300px minmax(0,1fr);grid-template-rows:minmax(420px,1fr);gap:16px;align-items:stretch;flex:1 1 auto;min-height:420px}.o_pcb_dfm__workspace.is-quote .o_pcb_dfm__workgrid{grid-template-columns:minmax(380px,460px) minmax(0,1fr)}.o_pcb_dfm__workspace.is-quote .o_pcb_dfm__dfm{overflow-x:hidden;overflow-y:auto}.o_pcb_dfm__dfm,.o_pcb_dfm__viewer,.o_pcb_dfm__controls{background:var(--panel);border:0;border-radius:20px;padding:16px;box-shadow:var(--shadow);min-width:0;min-height:0}.o_pcb_dfm__dfm{position:relative;display:flex;flex-direction:column;min-height:0;overflow:hidden}.o_pcb_dfm__dfm-list{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;padding-right:6px;scrollbar-width:thin;scrollbar-color:#b7c4d6 transparent}.o_pcb_dfm__dfm-list::-webkit-scrollbar{width:6px}.o_pcb_dfm__dfm-list::-webkit-scrollbar-button,.o_pcb_dfm__dfm-list::-webkit-scrollbar-button:start,.o_pcb_dfm__dfm-list::-webkit-scrollbar-button:end,.o_pcb_dfm__dfm-list::-webkit-scrollbar-button:single-button,.o_pcb_dfm__dfm-list::-webkit-scrollbar-button:vertical:start:decrement,.o_pcb_dfm__dfm-list::-webkit-scrollbar-button:vertical:end:increment{display:none;width:0;height:0}.o_pcb_dfm__dfm-list::-webkit-scrollbar-track{background:transparent;margin:4px 0}.o_pcb_dfm__dfm-list::-webkit-scrollbar-thumb{background:#b7c4d6;border-radius:999px}.o_pcb_dfm__dfm-list::-webkit-scrollbar-thumb:hover{background:#8ea0b8}.o_pcb_dfm__dfm-list::-webkit-scrollbar-corner{background:transparent}.o_pcb_dfm__viewer{display:flex;flex-direction:column;padding:8px;overflow:hidden}.o_pcb_dfm__viewer .o_pcb_dfm__panel{background:transparent;border:0;border-radius:0;padding:0;margin:0;height:100%;display:flex;flex-direction:column;min-height:0}.o_pcb_dfm__viewer .o_pcb_dfm__svg-wrap{flex:1 1 auto;min-height:0;border-radius:10px}.o_pcb_dfm__ctrl-label{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px;font-weight:700}.o_pcb_dfm__controls .o_pcb_dfm__tabs{display:flex;width:100%;margin-bottom:16px}.o_pcb_dfm__controls .o_pcb_dfm__tabs button{flex:1}.o_pcb_dfm__side-tabs{display:flex;width:100%;margin-bottom:14px}.o_pcb_dfm__side-tabs button{flex:1}.o_pcb_dfm__dfm-head{flex:0 0 auto;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:12px;font-weight:700}.o_pcb_dfm__dfm-btn{flex:0 0 auto;width:100%;border:0;border-radius:999px;padding:10px 14px;font-weight:700;background:var(--grad-blue);color:#fff;margin-bottom:16px}.o_pcb_dfm__dfm-btn:disabled{opacity:.55}.o_pcb_dfm__rule-cat{display:block;width:100%;border:0;text-align:left;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:transparent;padding:10px 4px 4px;margin:4px 0 2px;font-weight:700}.o_pcb_dfm__rule-wrap{padding:2px 0;border-bottom:1px solid var(--line)}.o_pcb_dfm__rule-wrap:not(.is-unanalyzed){cursor:pointer}.o_pcb_dfm__rule-wrap.is-error,.o_pcb_dfm__rule-wrap.is-warning,.o_pcb_dfm__rule-wrap.is-pass{margin:6px 0;padding:8px;border-bottom:0;border-radius:12px}.o_pcb_dfm__rule-wrap.is-error{background:#fff1f3;border:1px solid rgba(225,29,72,.35);box-shadow:inset 4px 0 0 var(--error)}.o_pcb_dfm__rule-wrap.is-warning{background:#fff6ec;border:1px solid rgba(255,115,0,.35);box-shadow:inset 4px 0 0 var(--warning)}.o_pcb_dfm__rule-wrap.is-pass{background:#f3faf4;border:1px solid rgba(22,163,74,.22);box-shadow:inset 4px 0 #16a34a}.o_pcb_dfm__rule-wrap.is-open{outline:2px solid rgba(0,149,255,.35)}.o_pcb_dfm__rule-wrap.is-open.is-error{box-shadow:inset 4px 0 0 var(--error);background:#ffe4e8}.o_pcb_dfm__rule-wrap.is-open.is-warning{box-shadow:inset 4px 0 0 var(--warning);background:#ffecd6}.o_pcb_dfm__rule-wrap.is-open.is-pass{box-shadow:inset 4px 0 #16a34a;background:#e8f8ed}.o_pcb_dfm__hit-panel{margin-top:4px;padding:8px 4px 2px;border-top:1px solid rgba(26,36,51,.1);cursor:default}.o_pcb_dfm__hit-panel .o_pcb_dfm__rule-card{margin:0 0 8px;padding:8px 10px}.o_pcb_dfm__hit-panel-hint{margin:0 0 8px;color:var(--muted);font-size:11px;line-height:1.4}.o_pcb_dfm__hit-scroll{max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;background:#fff}.o_pcb_dfm__hit-panel .o_pcb_dfm__hit-table th,.o_pcb_dfm__hit-panel .o_pcb_dfm__hit-table td{white-space:normal;padding:6px 8px}.o_pcb_dfm__hit-panel .o_pcb_dfm__dialog-empty{padding:10px 4px;text-align:left;font-size:12px}.o_pcb_dfm__hit-table tbody tr.is-selected td{background:#0095ff1f}.o_pcb_dfm__rule-wrap:not(.is-unanalyzed) .o_pcb_dfm__rule{cursor:pointer}.o_pcb_dfm__rule{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 4px}.o_pcb_dfm__rule-name{display:flex;align-items:flex-start;gap:8px;font-size:13px;overflow-wrap:anywhere}.o_pcb_dfm__rule-badge{display:inline-flex;flex:0 0 auto;align-items:center;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;border-radius:999px;padding:2px 7px;line-height:1.4}.o_pcb_dfm__rule-compare{display:flex;flex-direction:column;gap:2px;margin-top:6px;font-size:12px;color:#4b5563}.o_pcb_dfm__rule-compare strong{font-weight:800;color:#1a1a1a}.o_pcb_dfm__rule-wrap.is-error .o_pcb_dfm__rule-compare strong{color:var(--error)}.o_pcb_dfm__rule-wrap.is-warning .o_pcb_dfm__rule-compare strong{color:#c45a00}.o_pcb_dfm__rule-main{min-width:0;flex:1}.o_pcb_dfm__counts{display:flex;gap:10px;margin-top:2px;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums}.o_pcb_dfm__counts .is-error{color:var(--error)}.o_pcb_dfm__counts .is-warning{color:var(--warning)}.o_pcb_dfm__counts .is-good{color:var(--pass)}.o_pcb_dfm__rule-status{font-size:11px;color:var(--muted);white-space:normal;overflow-wrap:anywhere}.o_pcb_dfm__rule-status.is-error{color:var(--error);font-weight:700}.o_pcb_dfm__rule-status.is-warning{color:var(--warning);font-weight:700}.o_pcb_dfm__rule-status.is-pass{color:var(--pass);font-weight:700}.o_pcb_dfm__rule-status.is-skip{color:#8b95a5;font-weight:600}.o_pcb_dfm__rule-limit{margin-top:2px;font-size:11px;color:#5c6570;line-height:1.35}.o_pcb_dfm__rule-issue{margin-top:2px;font-size:11px;color:#8b95a5}.o_pcb_dfm__rule-wrap.is-error .o_pcb_dfm__rule-status{color:var(--error)}.o_pcb_dfm__rule-wrap.is-warning .o_pcb_dfm__rule-status{color:var(--warning)}.o_pcb_dfm__rule-wrap.is-pass .o_pcb_dfm__rule-status{color:#166534}.o_pcb_dfm__rule-wrap.is-skip .o_pcb_dfm__rule-status,.o_pcb_dfm__rule-wrap.is-skip .o_pcb_dfm__rule-icon{color:#8b95a5}.o_pcb_dfm__details{border:0;border-radius:6px;padding:4px 8px;font-size:11px;background:var(--panel-2);color:var(--muted)}.o_pcb_dfm__rule-wrap.is-error .o_pcb_dfm__details{background:var(--error);color:#fff}.o_pcb_dfm__rule-wrap.is-warning .o_pcb_dfm__details{background:var(--warning);color:#1a1408}.o_pcb_dfm__rule-wrap.is-pass .o_pcb_dfm__details{background:#0095ff2e;color:var(--pass)}.o_pcb_dfm__details:disabled{opacity:.4}.o_pcb_dfm__dfm-wait{position:absolute;top:0;right:0;bottom:0;left:0;background:#ffffffdb;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:14px;text-align:center;padding:24px}.o_pcb_dfm__insight{margin-top:8px;padding:12px;border-radius:10px;border:1px solid var(--line);background:#f8fafc}.o_pcb_dfm__insight.is-error{border-color:#ff5d7373}.o_pcb_dfm__insight.is-warning{border-color:#ffb02073}.o_pcb_dfm__insight.is-pass{border-color:#0095ff66}.o_pcb_dfm__insight-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.o_pcb_dfm__insight-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:var(--panel);color:var(--muted)}.o_pcb_dfm__insight.is-error .o_pcb_dfm__insight-badge{background:var(--error);color:#fff}.o_pcb_dfm__insight.is-warning .o_pcb_dfm__insight-badge{background:var(--warning);color:#1a1408}.o_pcb_dfm__insight.is-pass .o_pcb_dfm__insight-badge{background:var(--pass);color:var(--on-accent)}.o_pcb_dfm__insight-close{border:0;background:transparent;color:var(--muted);font-size:12px;font-weight:700;padding:0}.o_pcb_dfm__insight-msg{margin:10px 0 0;font-size:13px;line-height:1.45;font-weight:600}.o_pcb_dfm__insight-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}.o_pcb_dfm__metric{background:var(--panel);border-radius:8px;padding:8px 10px}.o_pcb_dfm__metric span{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.o_pcb_dfm__metric strong{font-size:15px}.o_pcb_dfm__metric.is-ok strong{color:var(--pass)}.o_pcb_dfm__metric.is-bad strong{color:var(--error)}.o_pcb_dfm__insight.is-warning .o_pcb_dfm__metric.is-bad strong{color:var(--warning)}.o_pcb_dfm__insight-loc{margin-top:10px;font-size:12px;color:var(--muted)}.o_pcb_dfm__insight-why{margin:12px 0 0;font-size:12px;color:var(--muted);line-height:1.4}.o_pcb_dfm__insight-why-label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--text);opacity:.7;margin-bottom:4px}.o_pcb_dfm__viewer-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.o_pcb_dfm__right{display:flex;flex-direction:column;gap:12px;min-width:0;min-height:0;align-self:stretch;overflow:hidden}.o_pcb_dfm__controls{flex:1 1 auto;display:flex;flex-direction:column;overflow:hidden}.o_pcb_dfm__submit-bar{display:flex;flex-direction:column;align-items:stretch;gap:10px;background:var(--panel);border:0;border-radius:20px;padding:12px 16px;box-shadow:var(--shadow)}.o_pcb_dfm__submit{width:100%;border:0;border-radius:999px;padding:10px 20px;font-weight:700;background:var(--grad-orange);color:var(--on-accent)}.o_pcb_dfm__submit:disabled{opacity:.35;cursor:not-allowed}.o_pcb_dfm__submit-hint{color:var(--muted);font-size:13px}.o_pcb_dfm__submit-form{display:flex;flex-direction:column;gap:8px;flex:0 0 auto}.o_pcb_dfm__submit-form input{width:100%;box-sizing:border-box;border:1px solid var(--line);background:#fff;color:var(--text);border-radius:10px;padding:11px 12px;font-size:14px}.o_pcb_dfm__banner{flex:0 0 auto;margin:0 0 12px;padding:10px 14px;border-radius:10px;font-size:13px}.o_pcb_dfm__banner.is-error{background:#ff5d731f;color:var(--error)}.o_pcb_dfm__banner.is-ok{background:#0095ff1f;color:var(--pass)}.o_pcb_dfm__price-dims{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:12px}.o_pcb_dfm__price-dims>div{display:flex;justify-content:space-between;gap:8px;font-size:12px}.o_pcb_dfm__qty{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12px}.o_pcb_dfm__qty span{color:var(--muted)}.o_pcb_dfm__qty input{width:88px;border:1px solid var(--line);background:var(--panel-2);color:var(--text);border-radius:8px;padding:4px 8px}.o_pcb_dfm__order{display:flex;flex-direction:column;gap:16px;min-height:min-content;height:auto}.o_pcb_dfm__qty-block{display:flex;flex-direction:column;gap:8px}.o_pcb_dfm__qty-block>span{font-size:12px;font-weight:700;color:var(--muted)}.o_pcb_dfm__qty-stepper{display:flex;align-items:center;gap:8px}.o_pcb_dfm__qty-stepper button{width:36px;height:36px;border:0;border-radius:10px;background:#eef1f5;font-size:20px;font-weight:700;cursor:pointer}.o_pcb_dfm__qty-stepper input{flex:1;height:36px;border:1px solid var(--line);border-radius:10px;text-align:center;font:inherit;font-weight:800;font-size:18px}.o_pcb_dfm__qty-tiers{display:flex;flex-wrap:wrap;gap:6px}.o_pcb_dfm__qty-tiers button{border:1px solid var(--line);background:#fff;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:700;cursor:pointer}.o_pcb_dfm__qty-tiers button.is-active{border-color:transparent;background:var(--grad-blue);color:#fff}.o_pcb_dfm__quote{flex:0 0 auto;background:#f7f9fc;border:1px solid var(--line);border-radius:14px;padding:14px 16px}.o_pcb_dfm__quote.is-empty{color:var(--muted);font-size:13px}.o_pcb_dfm__quote-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.o_pcb_dfm__quote-head strong{font-size:13px;font-weight:800;color:#1a1a1a}.o_pcb_dfm__quote-head span{border-radius:999px;background:#e8f3ff;color:var(--blue);font-size:11px;font-weight:800;padding:3px 8px}.o_pcb_dfm__quote-group+.o_pcb_dfm__quote-group{margin-top:10px;padding-top:8px;border-top:1px dashed #e6ebf1}.o_pcb_dfm__quote-group-label{font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#8b95a5;margin-bottom:2px}.o_pcb_dfm__quote-line{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;font-size:13px;line-height:1.4;padding:6px 0;color:#5c6570}.o_pcb_dfm__quote-line span{min-width:0}.o_pcb_dfm__quote-total{display:flex;justify-content:space-between;gap:12px;margin-top:8px;padding-top:10px;border-top:1px solid var(--line);font-size:15px;font-weight:800;color:#1a1a1a}.o_pcb_dfm__price-rule{padding:8px 4px;border-bottom:1px solid var(--line)}.o_pcb_dfm__price-rule.is-active{background:#0095ff14;border-radius:8px;padding:8px;border-bottom:0;margin:4px 0}.o_pcb_dfm__modal{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;background:#1a243329;display:flex;align-items:stretch;justify-content:flex-start;padding:88px 24px 24px;pointer-events:auto}.o_pcb_dfm__dialog{width:560px;max-width:100%;max-height:100%;display:flex;flex-direction:column;background:var(--panel);border:1px solid var(--line);border-radius:20px;box-shadow:0 18px 48px #1a243329}.o_pcb_dfm__passed-block{margin-top:14px;padding-top:8px;border-top:1px solid var(--line)}.o_pcb_dfm__passed-toggle,.o_pcb_dfm__hits-toggle{display:block;width:100%;border:0;background:transparent;color:var(--muted);text-align:left;padding:8px 4px;font-size:12px;font-weight:700;cursor:pointer}.o_pcb_dfm__passed-toggle:hover,.o_pcb_dfm__hits-toggle:hover{color:var(--text)}.o_pcb_dfm__hits-toggle{flex:0 0 auto;padding:8px 16px 14px;color:var(--accent)}.o_pcb_dfm__zones{display:flex;flex-direction:column;gap:6px;padding:8px}.o_pcb_dfm__zone{display:flex;align-items:center;gap:10px;width:100%;border:0;border-radius:10px;background:transparent;color:var(--text);text-align:left;padding:8px 10px;cursor:pointer}.o_pcb_dfm__zone:hover,.o_pcb_dfm__zone.is-selected{background:#0095ff14}.o_pcb_dfm__zone-label{flex:1 1 auto;min-width:0;font-size:12px}.o_pcb_dfm__zone-value{flex:0 0 auto;max-width:46%;text-align:right}.o_pcb_dfm__zone-value strong{display:block;font-size:12px;font-variant-numeric:tabular-nums}.o_pcb_dfm__zone-value small,.o_pcb_dfm__hit-hint{display:block;margin-top:2px;font-size:11px;font-weight:500;color:var(--muted)}.o_pcb_dfm__dialog .o_pcb_dfm__scale{padding:14px 16px 0}.o_pcb_dfm__dialog .o_pcb_dfm__explain-why{margin:0;padding:10px 16px 0}.o_pcb_dfm__scale.is-large .o_pcb_dfm__scale-bar{height:32px}.o_pcb_dfm__scale.is-large .o_pcb_dfm__scale-bar span{font-size:12px}.o_pcb_dfm__dialog-head{display:flex;justify-content:space-between;gap:12px;padding:16px 16px 10px;border-bottom:1px solid var(--line)}.o_pcb_dfm__dialog-path{font-size:13px;font-weight:700}.o_pcb_dfm__dialog-path span{color:var(--muted);font-weight:500}.o_pcb_dfm__dialog-msg{margin-top:4px;font-size:12px;color:var(--muted)}.o_pcb_dfm__rule-card{display:grid;gap:10px;margin:12px 16px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}.o_pcb_dfm__rule-card>div{display:grid;gap:2px}.o_pcb_dfm__rule-card span{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.o_pcb_dfm__rule-card strong{font-size:13px;font-weight:650;line-height:1.4;color:var(--text)}.o_pcb_dfm__dialog-x{border:0;background:var(--panel-2);color:var(--text);border-radius:8px;padding:6px 10px;font-size:12px;font-weight:700;flex:0 0 auto}.o_pcb_dfm__dialog-filters{display:flex;gap:8px;padding:10px 16px 0}.o_pcb_dfm__dialog-filters button{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600}.o_pcb_dfm__dialog-filters button.is-active{background:var(--grad-blue);border-color:transparent;color:var(--on-accent)}.o_pcb_dfm__dialog-table-wrap{flex:1 1 auto;min-height:0;overflow-x:hidden;overflow-y:auto;margin:10px 16px 16px;border:1px solid var(--line);border-radius:10px;scrollbar-width:thin;scrollbar-color:#b7c4d6 transparent}.o_pcb_dfm__dialog-table-wrap .o_pcb_dfm__hit-panel-hint{margin:8px 10px 6px}.o_pcb_dfm__dialog-table-wrap::-webkit-scrollbar{width:6px;height:6px}.o_pcb_dfm__dialog-table-wrap::-webkit-scrollbar-button{display:none;width:0;height:0}.o_pcb_dfm__dialog-table-wrap::-webkit-scrollbar-thumb{background:#b7c4d6;border-radius:999px}.o_pcb_dfm__hit-table{width:100%;table-layout:fixed;border-collapse:collapse;font-size:12px}.o_pcb_dfm__hit-table th,.o_pcb_dfm__hit-table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--line);white-space:nowrap}.o_pcb_dfm__hit-table th:last-child,.o_pcb_dfm__hit-table td:last-child{white-space:normal;min-width:0}.o_pcb_dfm__hit-table th{color:var(--muted);font-size:11px;letter-spacing:.06em;text-transform:uppercase;background:var(--panel-2);position:sticky;top:0}.o_pcb_dfm__hit-table tbody tr{cursor:pointer}.o_pcb_dfm__hit-table tbody tr:hover,.o_pcb_dfm__hit-table tbody tr.is-selected{background:#0095ff14}.o_pcb_dfm__hit-stat{display:inline-block;border-radius:999px;padding:2px 8px;font-weight:700;font-size:11px}.o_pcb_dfm__hit-stat.is-error{background:#ff5d732e;color:var(--error)}.o_pcb_dfm__hit-stat.is-warning{background:#ffb0202e;color:var(--warning)}.o_pcb_dfm__hit-stat.is-good{background:#0095ff29;color:var(--pass)}.o_pcb_dfm__hit-desc{display:inline-block;margin-left:8px;color:#5c6570;font-size:12px;line-height:1.4;white-space:normal}.o_pcb_dfm__dialog-empty{padding:18px;color:var(--muted);text-align:center}.o_pcb_dfm__dialog-foot{padding:12px 16px 16px;border-top:1px solid var(--line)}.o_pcb_dfm__explain{display:flex;align-items:stretch;gap:14px}.o_pcb_dfm__explain-copy{flex:1 1 auto;min-width:0}.o_pcb_dfm__explain-why{margin:0 0 10px;color:var(--text);font-size:12px;line-height:1.45}.o_pcb_dfm__scale-caption{font-size:11px;color:var(--muted);margin-bottom:6px}.o_pcb_dfm__scale-track{position:relative}.o_pcb_dfm__scale-here{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;border-radius:2px;background:#1a1a1a;box-shadow:0 0 0 2px #fff;pointer-events:none}.o_pcb_dfm__scale-bar{display:flex;height:22px;border-radius:4px;overflow:hidden}.o_pcb_dfm__scale-bar span{flex:1 1 0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.02em}.o_pcb_dfm__scale-bar .is-danger{background:#f4c4c8;color:#8a2433}.o_pcb_dfm__scale-bar .is-warning{background:#f6d7a6;color:#8a5a10}.o_pcb_dfm__scale-bar .is-good{background:#bfe8d0;color:#1b6b45}.o_pcb_dfm__scale-ticks{position:relative;height:18px;margin-top:4px;font-size:11px;color:var(--muted)}.o_pcb_dfm__scale-bar.is-warning-only+.o_pcb_dfm__scale-ticks .is-left{left:50%}.o_pcb_dfm__scale-ticks .is-left{position:absolute;left:33.333%;transform:translate(-50%)}.o_pcb_dfm__scale-ticks .is-right{position:absolute;left:66.666%;transform:translate(-50%)}.o_pcb_dfm__explain-art{flex:0 0 168px;width:168px;height:112px;border-radius:10px;overflow:hidden;background:#1a2a18}.o_pcb_dfm__explain-svg{display:block;width:168px;height:112px}.pcb-explain-measure,.pcb-explain-pulse{animation:pcb-explain-pulse 1.6s ease-in-out infinite}@keyframes pcb-explain-pulse{0%,to{opacity:.45}50%{opacity:1}}.o_pcb_dfm__dialog-hint{margin-top:8px;color:var(--accent);font-size:12px;font-weight:600}@media(max-width:1100px){.o_pcb_dfm__guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.o_pcb_dfm__grid,.o_pcb_dfm__previews,.o_pcb_dfm__workgrid{grid-template-columns:1fr;grid-template-rows:none;overflow-y:auto}.o_pcb_dfm__kpis{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.o_pcb_dfm__dfm{max-height:70vh}.o_pcb_dfm__right{align-self:stretch}.o_pcb_dfm__guide-head{flex-wrap:wrap}}@media(max-width:720px){.o_pcb_dfm__hero h1{font-size:22px}.o_pcb_dfm__guide-grid{grid-template-columns:1fr}.o_pcb_dfm__actions{flex-direction:column}.o_pcb_dfm__primary,.o_pcb_dfm__ghost{width:100%}}
