:root{--font-ui: "Segoe UI", "Helvetica Neue", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--app-text: #132031;--app-text-strong: #1f3349;--app-text-secondary: #42536a;--app-text-muted: #64748b;--app-text-hint: #8a99ab;--app-primary: #4a7c59;--app-primary-dark: #2d5a3a;--app-primary-hover: #3f6c4d;--app-surface: #edf2f8;--app-surface-input: #e8eef6;--app-surface-raised: #f8fafc;--app-border: #cad5e3;--app-border-divider: #d8e3ee;--app-border-input: #afbccb;--app-border-control: #aebdd0;--status-pass-text: #15803d;--status-pass-bg: #dcfce7;--status-pass-border: #86efac;--status-fail-text: #b91c1c;--status-fail-bg: #fee2e2;--status-fail-border: #fca5a5;--status-warning-text: #9a3412;--status-warning-bg: #fff7ed;--status-warning-border: #fed7aa;--status-info-text: #1d4ed8;--status-info-bg: #dbeafe;--status-info-border: #93c5fd;--status-not-checked-text: #4338ca;--status-not-checked-bg: #e0e7ff;--status-not-checked-border: #c7d2fe;--viz-canvas: var(--app-surface-raised);--viz-axis: #c3cedb;--viz-weld-none: #94a3b8;--viz-weld-ok: var(--status-pass-text);--viz-weld-high: #d97706;--viz-weld-over: var(--status-fail-text);--viz-load: var(--status-info-text);--viz-annotation: var(--app-text-strong);--viz-part-member: #c9d3df;--viz-part-member-edge: #8a99ab;--viz-part-plate: #e3e9f0;--viz-part-plate-edge: #afbccb;--viz-grid: #e4eaf1;--viz-selection: rgba(74, 124, 89, .28);--page-gradient: linear-gradient( 170deg, #d9e4d5 0%, #e2e9de 30%, #e9edf3 70% )}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;font-family:var(--font-ui);color:var(--app-text);background:var(--page-gradient);background-attachment:fixed}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.app-shell{max-width:1360px;margin:0 auto;padding:20px}.app-header{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:20px}.app-header__logo{width:38px;height:38px;border-radius:10px;flex-shrink:0;background:linear-gradient(135deg,var(--app-primary) 0%,var(--app-primary-dark) 100%)}.app-header__titles{flex:1 1 auto;min-width:200px}.app-header__title{font-size:24px;font-weight:700;color:var(--app-text-strong);margin:0}.app-header__subtitle{font-size:13px;color:var(--app-text-secondary);margin:2px 0 0}.app-header__actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.app-grid{display:grid;grid-template-columns:360px 1fr;gap:20px;align-items:start}.app-column{display:flex;flex-direction:column;gap:14px;min-width:0}.mobile-view-tabs{display:none}@media (max-width: 980px){.app-grid{grid-template-columns:1fr}.mobile-view-tabs{display:block;margin-bottom:14px}.app-grid[data-mobile-view=input] .app-column--result,.app-grid[data-mobile-view=result] .app-column--input{display:none}}@media (max-width: 600px){.app-shell{padding:10px}.app-header__titles{flex-basis:0}.app-header__actions{flex-basis:100%}}.card{background:var(--app-surface);border:1px solid var(--app-border);border-radius:12px;box-shadow:0 1px 4px #00000012;overflow:hidden}.card__header{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border-bottom:1px solid var(--app-border-divider)}.card__title{font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--app-primary-dark);margin:0}.card__note{font-family:var(--font-mono);font-size:11px;color:var(--app-text-muted)}.card__body{padding:12px 14px;display:flex;flex-direction:column;gap:12px}.collapsible-card__header{flex-wrap:wrap;cursor:pointer;list-style:none}.collapsible-card__header::-webkit-details-marker{display:none}.collapsible-card:not([open])>.collapsible-card__header{border-bottom-color:transparent}.collapsible-card__header:hover .card__title{color:var(--app-primary)}.collapsible-card__header:focus-visible{outline:2px solid var(--app-primary);outline-offset:-2px}.collapsible-card__heading{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.collapsible-card__heading:before{content:"▸";font-size:11px;color:var(--app-primary-dark)}.collapsible-card[open] .collapsible-card__heading:before{content:"▾"}.collapsible-card__summary{flex-basis:100%;font-family:var(--font-mono);font-size:11px;line-height:1.4;color:var(--app-text-secondary)}.collapsible-card__summary--warning{color:var(--status-warning-text)}.collapsible-card__summary--fail{color:var(--status-fail-text)}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 12px}@media (max-width: 520px){.field-grid{grid-template-columns:1fr}}.field{display:flex;flex-direction:column;gap:4px;min-width:0}.field-grid>*{min-width:0}.field__label{font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-secondary)}.field__control{display:flex;align-items:stretch;background:var(--app-surface-input);border:1.5px solid var(--app-border-input);border-radius:6px;padding:7px 8px;gap:8px}.field__control--invalid{border-color:var(--status-fail-border);background:var(--status-fail-bg)}.field__control:focus-within{border-color:var(--app-primary);box-shadow:0 0 0 2px #4a7c591f}.field__input{flex:1 1 auto;width:100%;min-width:0;border:none;background:transparent;font-family:var(--font-mono);font-size:14px;color:var(--app-text);outline:none}.field__input:disabled,.field__input[readonly]{color:var(--app-text-muted)}.field__unit{font-family:var(--font-mono);font-size:11px;color:var(--app-text-muted);min-width:36px;display:flex;align-items:center;justify-content:flex-end}.field__hint{font-family:var(--font-mono);font-size:10px;color:var(--app-text-hint)}.field__error{font-family:var(--font-mono);font-size:10px;color:var(--status-fail-text)}.stepper{display:flex;flex-direction:column;width:24px;flex-shrink:0}.stepper__button{flex:1 1 auto;border:none;background:transparent;color:var(--app-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:9px;line-height:1;padding:0}.stepper__button:hover{color:var(--app-primary)}.stepper__button:active{transform:translateY(1px)}.select-field select{width:100%;background:var(--app-surface-input);border:1.5px solid var(--app-border-input);border-radius:6px;padding:7px 8px;font-family:var(--font-mono);font-size:14px;color:var(--app-text)}.select-field select:focus{outline:none;border-color:var(--app-primary);box-shadow:0 0 0 2px #4a7c591f}.checkbox-field{display:flex;align-items:center;gap:8px;min-height:44px}.checkbox-field input[type=checkbox]{width:16px;height:16px;accent-color:var(--app-primary);flex-shrink:0}.checkbox-field label{font-family:var(--font-ui);font-size:13px;color:var(--app-text);cursor:pointer}.tool-button{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:8px;border:1.5px solid var(--app-border-control);background:#eef3f9;color:var(--app-text-strong);font-family:var(--font-mono);font-size:12px;font-weight:600;cursor:pointer}.tool-button:hover{background:#e3ecf5;border-color:#95a6bc}.tool-button:focus-visible{outline:2px solid var(--app-primary);outline-offset:1px}.tool-button--primary{background:var(--app-primary);border-color:var(--app-primary);color:#fff}.tool-button--primary:hover{background:var(--app-primary-hover);border-color:var(--app-primary-hover)}.tool-button[aria-pressed=true]{background:var(--status-pass-bg);border-color:var(--app-primary);color:var(--app-primary-dark)}.tool-button--danger{color:var(--status-fail-text);border-color:var(--status-fail-border)}.tool-button--danger:hover{background:var(--status-fail-bg);border-color:var(--status-fail-text)}.tabs{display:flex;gap:6px;flex-wrap:wrap}.tabs--mode .tabs__tab{padding:8px 14px;border-radius:8px;border:1.5px solid var(--app-border-control);background:#eef3f9;color:var(--app-text-strong);font-family:var(--font-mono);font-size:12px;font-weight:600;cursor:pointer}.tabs--mode .tabs__tab[aria-selected=true]{background:var(--app-primary);border-color:var(--app-primary);color:#fff}.tabs--panel{border-bottom:1px solid var(--app-border-divider)}.tabs--panel .tabs__tab{padding:8px 4px;border:none;border-bottom:2px solid transparent;background:transparent;color:var(--app-text-secondary);font-family:var(--font-mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;cursor:pointer}.tabs--panel .tabs__tab[aria-selected=true]{color:var(--app-primary-dark);border-bottom-color:var(--app-primary)}.tabs__tab:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.data-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:12px}.data-table th{text-align:right;font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted);padding:6px 8px;border-bottom:1px solid var(--app-border-divider)}.data-table--symbols th{text-transform:none;font-size:11px}.data-table th:first-child,.data-table td:first-child{text-align:left}.data-table td{padding:6px 8px;border-bottom:1px solid var(--app-border-divider);text-align:right;font-variant-numeric:tabular-nums}.data-table tr.governing-row td{background:var(--status-pass-bg);color:var(--status-pass-text);font-weight:700}.data-table-wrap{overflow-x:auto}.data-table__input{width:60px;text-align:right;border:1px solid var(--app-border-input);border-radius:4px;padding:4px 5px;background:var(--app-surface-input);font-family:var(--font-mono);font-size:12px;color:var(--app-text)}.data-table__input:focus{outline:none;border-color:var(--app-primary);box-shadow:0 0 0 2px #4a7c591f}.data-table__input--invalid{border-color:var(--status-fail-border);background:var(--status-fail-bg);color:var(--status-fail-text)}.data-table td.data-table__text{text-align:left}.data-table__status{font-weight:700}.data-table__status--pass{color:var(--status-pass-text)}.data-table__status--fail{color:var(--status-fail-text)}.data-table tr.governing-row--fail td{background:var(--status-fail-bg);color:var(--status-fail-text)}.icon-button{width:28px;height:28px;border-radius:6px;border:1.5px solid var(--app-border-control);background:var(--app-surface-raised);color:var(--app-text-secondary);font-size:12px;cursor:pointer}.icon-button:hover:not(:disabled){color:var(--status-fail-text);border-color:var(--status-fail-border)}.icon-button:disabled{opacity:.4;cursor:not-allowed}.icon-button:focus-visible,.stepper__button:focus-visible,.checkbox-field input[type=checkbox]:focus-visible{outline:2px solid var(--app-primary);outline-offset:1px}.tool-button:disabled{opacity:.5;cursor:not-allowed}.button-row{display:flex;flex-wrap:wrap;gap:8px}.inline-action{display:flex;align-items:flex-end;gap:8px}.inline-action>.field{flex:1 1 auto;min-width:0}.sign-toggle{display:none;flex-shrink:0;align-items:center;justify-content:center;min-width:32px;border:1px solid var(--app-border-control);border-radius:5px;background:var(--app-surface-raised);color:var(--app-text-strong);font-family:var(--font-mono);font-size:15px;font-weight:700;line-height:1;cursor:pointer}.sign-toggle:focus-visible{outline:2px solid var(--app-primary);outline-offset:1px}.sign-toggle:disabled{opacity:.4}@media (any-pointer: coarse){.sign-toggle{display:inline-flex}}.cell-input{display:flex;align-items:stretch;gap:4px}.cell-input .data-table__input{flex:1 1 auto;min-width:0}.status-chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-family:var(--font-mono);font-size:13px;font-weight:700;border:1px solid transparent;white-space:nowrap}.status-chip--pass{color:var(--status-pass-text);background:var(--status-pass-bg);border-color:var(--status-pass-border)}.status-chip--fail{color:var(--status-fail-text);background:var(--status-fail-bg);border-color:var(--status-fail-border)}.status-chip--warning{color:var(--status-warning-text);background:var(--status-warning-bg);border-color:var(--status-warning-border)}.status-chip--info{color:var(--status-info-text);background:var(--status-info-bg);border-color:var(--status-info-border)}.status-chip--not-checked{color:var(--status-not-checked-text);background:var(--status-not-checked-bg);border-color:var(--status-not-checked-border)}.poc-banner{font-family:var(--font-ui);font-size:13px;color:var(--status-warning-text);background:var(--status-warning-bg);border:1px solid var(--status-warning-border);border-radius:10px;padding:10px 14px}.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media (max-width: 700px){.summary-grid{grid-template-columns:repeat(2,1fr)}}.summary-card{border-top:3px solid var(--app-primary);background:var(--app-surface-raised);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:4px}.summary-card--fail{border-top-color:var(--status-fail-text)}.summary-card--pass{border-top-color:var(--status-pass-text)}.summary-card--warning{border-top-color:var(--status-warning-text)}.summary-card--info{border-top-color:var(--status-info-text)}.summary-card--not-checked{border-top-color:var(--status-not-checked-text)}.summary-card__label{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted)}.summary-card__value{font-family:var(--font-mono);font-size:25px;font-weight:800;color:var(--app-text-strong);font-variant-numeric:tabular-nums}.summary-card__value--compact{font-size:15px;line-height:1.3;overflow-wrap:anywhere;min-height:32px;display:flex;align-items:center}.summary-card__unit{font-family:var(--font-mono);font-size:11px;color:var(--app-text-muted)}.summary-card__bar{height:6px;border-radius:3px;background:var(--app-border-divider);overflow:hidden}.summary-card__bar-fill{height:100%;background:var(--app-primary)}.summary-card--fail .summary-card__bar-fill{background:var(--status-fail-text)}.summary-card--pass .summary-card__bar-fill{background:var(--status-pass-text)}.check-row{display:flex;align-items:flex-start;gap:10px;padding:8px 0;border-bottom:1px solid var(--app-border-divider)}.check-row:last-child{border-bottom:none}.check-row__symbol{flex-shrink:0;width:20px;height:20px;border-radius:999px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.check-row__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:2px}.check-row__name{font-family:var(--font-ui);font-size:13px;color:var(--app-text);font-weight:600}.check-row__meta{font-family:var(--font-mono);font-size:11px;color:var(--app-text-muted);display:flex;gap:10px;flex-wrap:wrap}.check-row__warning{font-family:var(--font-ui);font-size:12px;color:var(--status-warning-text)}.unchecked-list{margin:0;padding-left:18px;font-family:var(--font-ui);font-size:12px;color:var(--app-text-secondary)}.unchecked-list li{margin-bottom:4px}.check-row__status{margin-left:8px;font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.04em;padding:1px 6px;border-radius:999px;border:1px solid transparent;white-space:nowrap}.check-row__status--pass{color:var(--status-pass-text);background:var(--status-pass-bg);border-color:var(--status-pass-border)}.check-row__status--fail{color:var(--status-fail-text);background:var(--status-fail-bg);border-color:var(--status-fail-border)}.check-row__status--warning{color:var(--status-warning-text);background:var(--status-warning-bg);border-color:var(--status-warning-border)}.check-row__status--info{color:var(--status-info-text);background:var(--status-info-bg);border-color:var(--status-info-border)}.check-row__status--not-checked{color:var(--status-not-checked-text);background:var(--status-not-checked-bg);border-color:var(--status-not-checked-border)}.kv-table{width:100%;border-collapse:collapse;font-family:var(--font-mono);font-size:12px}.kv-table caption{text-align:left;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted);padding:4px 0}.kv-table th{text-align:left;font-weight:400;color:var(--app-text-secondary);padding:4px 8px 4px 0;border-bottom:1px solid var(--app-border-divider);vertical-align:top}.kv-table td{text-align:right;color:var(--app-text);padding:4px 0 4px 8px;border-bottom:1px solid var(--app-border-divider);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.kv-table__unit{color:var(--app-text-muted);font-size:11px}.chip-row{display:flex;flex-wrap:wrap;gap:8px}.card-note{margin:0;font-family:var(--font-ui);font-size:12px;line-height:1.45;color:var(--app-text-secondary)}.card-note--fail{color:var(--status-fail-text)}.notice{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:0 0 14px;padding:10px 14px;border-radius:10px;border:1px solid transparent;font-family:var(--font-ui);font-size:13px}.notice ul{margin:6px 0 0;padding-left:18px;font-family:var(--font-mono);font-size:11px}.notice--fail{color:var(--status-fail-text);background:var(--status-fail-bg);border-color:var(--status-fail-border)}.inline-notice{margin:0;padding:8px 10px;border-radius:8px;border:1px solid transparent;font-family:var(--font-ui);font-size:12px;line-height:1.45}.inline-notice__text{margin:0 0 8px}.inline-notice--warning{color:var(--status-warning-text);background:var(--status-warning-bg);border-color:var(--status-warning-border)}.notice--info{color:var(--status-info-text);background:var(--status-info-bg);border-color:var(--status-info-border)}.issue-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}.issue-list__item{display:flex;flex-direction:column;gap:2px;padding:6px 10px;border-left:3px solid transparent;border-radius:4px;font-family:var(--font-ui);font-size:12px}.issue-list__item--fail{color:var(--status-fail-text);background:var(--status-fail-bg);border-left-color:var(--status-fail-text)}.issue-list__item--warning{color:var(--status-warning-text);background:var(--status-warning-bg);border-left-color:var(--status-warning-text)}.issue-list__item--info{color:var(--status-info-text);background:var(--status-info-bg);border-left-color:var(--status-info-text)}.issue-list__detail{display:block;font-family:var(--font-mono);font-size:10px;color:var(--app-text-muted);overflow-wrap:anywhere}.check-list{margin:6px 0 0;padding:0;list-style:none;font-family:var(--font-ui);font-size:12px}.check-list__item{display:flex;gap:8px;padding:3px 0}.check-list__item>span:first-child{width:14px;flex-shrink:0;font-weight:700;text-align:center}.check-list__item--pass>span:first-child{color:var(--status-pass-text)}.check-list__item--warning{color:var(--status-warning-text)}.check-list__item--fail{color:var(--status-fail-text)}.plain-list{margin:0;padding-left:18px;font-family:var(--font-ui);font-size:12px;line-height:1.45;color:var(--app-text-secondary)}.plain-list li{margin-bottom:4px}.print-only{display:none}@media print{body{background:#fff}.app-grid{display:block}.no-print,.app-column--input,.app-header__actions,.mobile-view-tabs,.notice,.tabs--mode{display:none!important}.app-column--result{display:flex!important}.print-only{display:block}.card{box-shadow:none;break-inside:avoid}.app-column--result{width:100%}}.segment-table th,.segment-table td{padding:4px 3px}.segment-table .data-table__input{width:100%;min-width:48px}.segment-table tr.segment-table__row--selected td{background:var(--viz-selection)}.segment-table .data-table__input--id{text-align:left;min-width:52px}@media (max-width: 600px){.segment-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.segment-table,.segment-table tbody{display:block}.segment-table tr{display:grid;grid-template-columns:1fr 1fr auto;gap:6px 8px;padding:8px 0;border-bottom:1px solid var(--app-border-divider)}.segment-table td{display:block;padding:0;border:none;text-align:left}.segment-table td[data-label]:before{content:attr(data-label);display:block;margin-bottom:2px;font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted)}.segment-table td:nth-child(1){grid-column:1 / 3;grid-row:1}.segment-table td.segment-table__remove{grid-column:3;grid-row:1;align-self:end}.segment-table td:nth-child(2){grid-column:1;grid-row:2}.segment-table td:nth-child(3){grid-column:2;grid-row:2}.segment-table td:nth-child(4){grid-column:1;grid-row:3}.segment-table td:nth-child(5){grid-column:2;grid-row:3}.segment-table .data-table__input{font-size:16px;padding:6px 8px}}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media (max-width: 700px){.two-column{grid-template-columns:1fr}}.formula{display:flex;flex-direction:column;gap:6px;font-family:var(--font-mono);font-size:12px;color:var(--app-text)}.formula__row{display:grid;grid-template-columns:92px 1fr auto;gap:10px;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--app-border-divider)}.formula__label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-muted)}.formula__expr{overflow-wrap:anywhere;font-variant-numeric:tabular-nums}.formula__value{font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}.formula__result{margin-top:4px;padding:8px 10px;border-radius:8px;font-weight:700;border:1px solid transparent}.formula__result--pass{color:var(--status-pass-text);background:var(--status-pass-bg);border-color:var(--status-pass-border)}.formula__result--fail{color:var(--status-fail-text);background:var(--status-fail-bg);border-color:var(--status-fail-border)}@media (max-width: 520px){.formula__row{grid-template-columns:1fr;gap:2px}}.rule-details{margin-top:6px;font-family:var(--font-ui);font-size:12px}.rule-details>summary{cursor:pointer;font-family:var(--font-mono);font-size:11px;font-weight:600;color:var(--app-primary-dark);padding:2px 0}.rule-details>summary:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.rule-details .kv-table{margin-top:6px}.checksum{font-family:var(--font-mono);font-size:10px;overflow-wrap:anywhere}.app-footer{margin-top:20px;font-family:var(--font-mono);font-size:10px;color:var(--app-text-muted);text-align:center}.weld-view{width:100%;display:flex;flex-direction:column;gap:8px}.weld-view--empty{padding:24px;text-align:center;font-family:var(--font-ui);font-size:12px;color:var(--app-text-muted);background:var(--viz-canvas);border-radius:8px}.weld-view__canvas{display:block;max-width:100%;background:var(--viz-canvas);border:1px solid var(--app-border-divider);border-radius:8px;font-family:var(--font-mono);font-size:11px}.weld-view__axis-line{stroke:var(--viz-axis);stroke-width:1;stroke-dasharray:4 4}.weld-view__triad line{stroke:var(--app-text-muted);stroke-width:1.5}.weld-view__triad circle{fill:none;stroke:var(--app-text-muted);stroke-width:1.2}.weld-view__triad .weld-view__triad-dot{fill:var(--app-text-muted)}.weld-view__triad text{fill:var(--app-text-muted);font-size:10px}.weld-view__axis-arrowhead{fill:var(--app-text-muted)}.weld-view__arrowhead{fill:var(--viz-load)}.weld-view__weld{stroke-width:7;stroke-linecap:round}.weld-view__weld--none{stroke:var(--viz-weld-none)}.weld-view__weld--ok{stroke:var(--viz-weld-ok)}.weld-view__weld--high{stroke:var(--viz-weld-high)}.weld-view__weld--over{stroke:var(--viz-weld-over)}.weld-view__endpoint{stroke:var(--viz-canvas);stroke-width:1.5}.weld-view__endpoint--none{fill:var(--viz-weld-none)}.weld-view__endpoint--ok{fill:var(--viz-weld-ok)}.weld-view__endpoint--high{fill:var(--viz-weld-high)}.weld-view__endpoint--over{fill:var(--viz-weld-over)}.weld-view__label{fill:var(--viz-annotation);font-weight:700;paint-order:stroke;stroke:var(--viz-canvas);stroke-width:3}.weld-view__governing{fill:none;stroke-width:2}.weld-view__governing--ok,.weld-view__governing--none{stroke:var(--viz-weld-ok)}.weld-view__governing--high{stroke:var(--viz-weld-high)}.weld-view__governing--over{stroke:var(--viz-weld-over)}.weld-view__governing-label{fill:var(--viz-annotation);font-weight:700;paint-order:stroke;stroke:var(--viz-canvas);stroke-width:3}.weld-view__eccentricity{stroke:var(--app-text-muted);stroke-width:1;stroke-dasharray:5 4}.weld-view__centroid circle{fill:var(--viz-canvas);stroke:var(--viz-annotation);stroke-width:1.5}.weld-view__centroid line{stroke:var(--viz-annotation);stroke-width:1.2}.weld-view__centroid text{fill:var(--viz-annotation);font-weight:700}.weld-view__load line,.weld-view__moment{stroke:var(--viz-load);stroke-width:2;fill:none}.weld-view__load text{fill:var(--viz-load);font-weight:700;paint-order:stroke;stroke:var(--viz-canvas);stroke-width:3}.weld-view__application{fill:var(--viz-load)}.weld-view__force-z circle{fill:var(--viz-canvas);stroke:var(--viz-load);stroke-width:1.8}.weld-view__force-z line{stroke-width:1.8}.weld-view__load-summary{fill:var(--viz-load);font-weight:700;paint-order:stroke;stroke:var(--viz-canvas);stroke-width:3}.weld-view__legend{margin:0;padding:0;list-style:none;display:flex;flex-wrap:wrap;gap:6px 14px;font-family:var(--font-mono);font-size:10px;color:var(--app-text-secondary)}.weld-view__legend li{display:inline-flex;align-items:center;gap:6px}.weld-view__swatch{width:18px;height:5px;border-radius:3px}.weld-view__swatch--ok{background:var(--viz-weld-ok)}.weld-view__swatch--high{background:var(--viz-weld-high)}.weld-view__swatch--over{background:var(--viz-weld-over)}.weld-view__swatch--none{background:var(--viz-weld-none)}.weld-view__toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}.weld-view__snap{margin-left:auto;min-width:96px}.weld-view__canvas:focus-visible{outline:2px solid var(--app-primary);outline-offset:2px}.weld-view__canvas--draw{cursor:crosshair;touch-action:none}.weld-view__grid{stroke:var(--viz-grid);stroke-width:1}.weld-view__part{stroke-width:1}.weld-view__part--plate{fill:var(--viz-part-plate);stroke:var(--viz-part-plate-edge);stroke-dasharray:6 4}.weld-view__part--member{fill:var(--viz-part-member);stroke:var(--viz-part-member-edge)}.weld-view__weld-selected{stroke:var(--viz-selection);stroke-width:18;stroke-linecap:round}.weld-view__hit{stroke:transparent;stroke-width:16;cursor:pointer}.weld-view__handle{fill:transparent;cursor:move;touch-action:none}.weld-view__handle:hover{fill:var(--viz-selection)}.weld-view__reference rect{fill:var(--viz-canvas);stroke:var(--viz-load);stroke-width:1.5}.weld-view__draft line{stroke:var(--app-primary);stroke-width:3;stroke-dasharray:6 4}.weld-view__draft circle,.weld-view__cursor circle{fill:var(--app-primary)}.weld-view__cursor text{fill:var(--app-primary-dark);font-weight:700;paint-order:stroke;stroke:var(--viz-canvas);stroke-width:3}.weld-view__help{margin:0;font-family:var(--font-ui);font-size:12px;color:var(--app-text-secondary)}.template-panel{display:flex;flex-direction:column;gap:12px}.template-gallery__title,.subsection-title{margin:0 0 6px;font-family:var(--font-mono);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--app-text-secondary)}.template-gallery__list{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.template-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;gap:4px;padding:6px;border-radius:8px;border:1.5px solid var(--app-border-control);background:var(--app-surface-raised);color:var(--app-text-strong);cursor:pointer}.template-card:hover{border-color:var(--app-primary)}.template-card:focus-visible{outline:2px solid var(--app-primary);outline-offset:1px}.template-card[aria-pressed=true]{border-color:var(--app-primary);background:var(--status-pass-bg);box-shadow:inset 0 0 0 1px var(--app-primary)}.template-card__picture{display:block;width:100%;height:56px}.template-card__part{vector-effect:non-scaling-stroke;stroke-width:1}.template-card__part--plate{fill:var(--viz-part-plate);stroke:var(--viz-part-plate-edge)}.template-card__part--member{fill:var(--viz-part-member);stroke:var(--viz-part-member-edge)}.template-card__weld{stroke:var(--app-primary);stroke-width:3;stroke-linecap:round;vector-effect:non-scaling-stroke}.template-card__label{font-family:var(--font-mono);font-size:10px;font-weight:600;line-height:1.25;text-align:center}@media (max-width: 360px){.template-gallery__list{grid-template-columns:repeat(2,minmax(0,1fr))}}@media print{.weld-view__canvas{border:none}.weld-view__toolbar,.weld-view__help,.weld-view__grid,.weld-view__handle{display:none}}
