.ui-btn[data-v-91f5f40f]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--control-px-md);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--control-text);font-family:inherit;font-size:var(--text-base);font-weight:500;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast),box-shadow var(--motion-fast);-webkit-user-select:none;user-select:none}.ui-btn[data-v-91f5f40f]:hover:not(:disabled):not(.is-loading){background:var(--control-bg-hover);border-color:var(--color-accent)}.ui-btn[data-v-91f5f40f]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-btn[data-v-91f5f40f]:disabled,.ui-btn.is-loading[data-v-91f5f40f]{opacity:.55;cursor:not-allowed}.ui-btn--sm[data-v-91f5f40f]{height:var(--control-h-sm);padding:0 var(--control-px-sm);font-size:var(--text-sm)}.ui-btn--lg[data-v-91f5f40f]{height:var(--control-h-lg);padding:0 var(--control-px-lg);font-size:var(--text-md)}.ui-btn--block[data-v-91f5f40f]{width:100%}.ui-btn--primary[data-v-91f5f40f]{background:var(--color-accent);border-color:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.ui-btn--primary[data-v-91f5f40f]:hover:not(:disabled):not(.is-loading){background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.ui-btn--ghost[data-v-91f5f40f]{background:transparent;border-color:transparent;color:var(--color-text-muted)}.ui-btn--ghost[data-v-91f5f40f]:hover:not(:disabled):not(.is-loading){background:var(--color-surface-hover);border-color:transparent;color:var(--color-text)}.ui-btn--subtle[data-v-91f5f40f]{background:var(--color-surface);border-color:var(--color-border);color:var(--color-text-muted)}.ui-btn--subtle[data-v-91f5f40f]:hover:not(:disabled):not(.is-loading){color:var(--color-text);border-color:var(--color-accent);background:var(--color-surface-raised)}.ui-btn--danger[data-v-91f5f40f]{background:var(--color-danger);border-color:var(--color-danger);color:#fff;font-weight:600}.ui-btn--danger[data-v-91f5f40f]:hover:not(:disabled):not(.is-loading){filter:brightness(1.1)}.ui-btn__icon[data-v-91f5f40f]{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.ui-btn__icon[data-v-91f5f40f] svg{width:1.1em;height:1.1em}.ui-btn__spinner[data-v-91f5f40f]{width:.9em;height:.9em;border-radius:var(--radius-full);border:2px solid currentColor;border-right-color:transparent;animation:ui-btn-spin-91f5f40f .7s linear infinite;flex-shrink:0}@keyframes ui-btn-spin-91f5f40f{to{transform:rotate(360deg)}}.ui-card[data-v-ac43e553]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background-color var(--motion-fast)}.ui-card--tone-raised[data-v-ac43e553]{background:var(--color-surface-raised)}.ui-card--pad-none[data-v-ac43e553]{padding:0}.ui-card--pad-sm[data-v-ac43e553]{padding:var(--space-3)}.ui-card--pad-md[data-v-ac43e553]{padding:var(--space-4)}.ui-card--pad-lg[data-v-ac43e553]{padding:var(--space-5)}.ui-card--interactive[data-v-ac43e553]{cursor:pointer}.ui-card--interactive[data-v-ac43e553]:hover{border-color:var(--color-accent)}.ui-card--interactive[data-v-ac43e553]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-panel[data-v-8145e34f]{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);display:flex;flex-direction:column;gap:var(--space-3)}.ui-panel[data-padding=sm][data-v-8145e34f]{padding:var(--space-3)}.ui-panel[data-padding=md][data-v-8145e34f]{padding:var(--space-5)}.ui-panel[data-padding=lg][data-v-8145e34f]{padding:var(--space-6)}.ui-panel__head[data-v-8145e34f]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.ui-panel__titles[data-v-8145e34f]{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ui-panel__title[data-v-8145e34f]{margin:0;font-size:var(--text-md);font-weight:700;line-height:var(--leading-tight);color:var(--color-text)}.ui-panel__subtitle[data-v-8145e34f]{margin:0;font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.ui-panel__actions[data-v-8145e34f]{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.ui-panel__body[data-v-8145e34f]{display:flex;flex-direction:column;gap:var(--space-3);min-width:0}.ui-panel__footer[data-v-8145e34f]{margin-top:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--color-border);display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);flex-wrap:wrap}.ui-modal[data-v-6f91f875]{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.ui-modal__backdrop[data-v-6f91f875]{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.ui-modal__dialog[data-v-6f91f875]{position:relative;z-index:1;width:min(440px,100%);max-height:min(90vh,720px);display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal);overflow:hidden}.ui-modal__dialog[data-size=sm][data-v-6f91f875]{width:min(360px,100%)}.ui-modal__dialog[data-size=lg][data-v-6f91f875]{width:min(720px,100%);max-height:min(92vh,840px)}.ui-modal__dialog[data-size=xl][data-v-6f91f875]{width:min(1040px,calc(100vw - 2rem));max-height:min(94vh,980px)}.ui-modal__head[data-v-6f91f875]{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.ui-modal__titles[data-v-6f91f875]{display:flex;flex-direction:column;gap:var(--space-1);min-width:0}.ui-modal__title[data-v-6f91f875]{margin:0;font-size:var(--text-lg);font-weight:700;line-height:var(--leading-tight)}.ui-modal__close[data-v-6f91f875]{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-md);height:var(--control-h-md);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text-muted);border:1px solid transparent;cursor:pointer;padding:0;flex-shrink:0;transition:background-color var(--motion-fast),color var(--motion-fast)}.ui-modal__close[data-v-6f91f875]:hover{background:var(--color-surface-hover);color:var(--color-text)}.ui-modal__close[data-v-6f91f875]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-modal__body[data-v-6f91f875]{padding:var(--space-5);overflow:auto;flex:1;min-height:0}.ui-modal__footer[data-v-6f91f875]{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-2);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border);flex-wrap:wrap}.ui-modal-fade-enter-active[data-v-6f91f875],.ui-modal-fade-leave-active[data-v-6f91f875]{transition:opacity var(--motion-base)}.ui-modal-fade-enter-from[data-v-6f91f875],.ui-modal-fade-leave-to[data-v-6f91f875]{opacity:0}.ui-field[data-v-c5757d96]{display:inline-flex;flex-direction:column;gap:var(--space-1);color:var(--color-text)}.ui-field.is-block[data-v-c5757d96]{display:flex;width:100%}.ui-field__label[data-v-c5757d96]{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.ui-field__req[data-v-c5757d96]{color:var(--color-danger);margin-left:.2em}.ui-field__input[data-v-c5757d96]{width:100%;height:var(--control-h-md);padding:0 var(--control-px-sm);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;font-size:var(--text-base);transition:border-color var(--motion-fast),box-shadow var(--motion-fast),background-color var(--motion-fast)}.ui-field[data-size=sm] .ui-field__input[data-v-c5757d96]{height:var(--control-h-sm);font-size:var(--text-sm)}.ui-field[data-size=lg] .ui-field__input[data-v-c5757d96]{height:var(--control-h-lg);font-size:var(--text-md);padding:0 var(--control-px-md)}.ui-field__input.is-mono[data-v-c5757d96]{font-family:var(--font-mono)}.ui-field__input[data-v-c5757d96]:hover:not(:disabled){border-color:var(--color-border-strong)}.ui-field__input[data-v-c5757d96]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}.ui-field__input[data-v-c5757d96]::placeholder{color:var(--color-text-subtle)}.ui-field__input[data-v-c5757d96]:disabled{opacity:.6;cursor:not-allowed}.ui-field__input.has-error[data-v-c5757d96]{border-color:var(--color-danger)}.ui-field__input.has-error[data-v-c5757d96]:focus{box-shadow:0 0 0 3px var(--color-danger-dim)}.ui-field__hint[data-v-c5757d96]{font-size:var(--text-xs);color:var(--color-text-subtle);line-height:var(--leading-normal)}.ui-field__error[data-v-c5757d96]{font-size:var(--text-xs);color:var(--color-danger);line-height:var(--leading-normal)}.ui-field[data-v-2e6e90e4]{display:inline-flex;flex-direction:column;gap:var(--space-1);color:var(--color-text)}.ui-field.is-block[data-v-2e6e90e4]{display:flex;width:100%}.ui-field__label[data-v-2e6e90e4]{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.ui-field__req[data-v-2e6e90e4]{color:var(--color-danger);margin-left:.2em}.ui-field__textarea[data-v-2e6e90e4]{width:100%;min-height:5rem;padding:.6rem .75rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;font-size:var(--text-base);line-height:var(--leading-normal);resize:vertical;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.ui-field__textarea[data-v-2e6e90e4]:hover:not(:disabled){border-color:var(--color-border-strong)}.ui-field__textarea[data-v-2e6e90e4]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}.ui-field__textarea[data-v-2e6e90e4]::placeholder{color:var(--color-text-subtle)}.ui-field__textarea[data-v-2e6e90e4]:disabled{opacity:.6;cursor:not-allowed}.ui-field__textarea.has-error[data-v-2e6e90e4]{border-color:var(--color-danger)}.ui-field__hint[data-v-2e6e90e4]{font-size:var(--text-xs);color:var(--color-text-subtle)}.ui-field__error[data-v-2e6e90e4]{font-size:var(--text-xs);color:var(--color-danger)}.ui-select[data-v-dc69ba08]{display:inline-flex;flex-direction:column;gap:var(--space-1);color:var(--color-text)}.ui-select.is-block[data-v-dc69ba08]{display:flex;width:100%}.ui-select__label[data-v-dc69ba08]{font-size:var(--text-sm);font-weight:500;color:var(--color-text-muted)}.ui-select__control[data-v-dc69ba08]{position:relative;width:100%}.ui-select__native[data-v-dc69ba08]{width:100%;height:var(--control-h-md);padding:0 2.2rem 0 var(--control-px-sm);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;font-size:var(--text-base);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer;transition:border-color var(--motion-fast),box-shadow var(--motion-fast)}.ui-select[data-size=sm] .ui-select__native[data-v-dc69ba08]{height:var(--control-h-sm);font-size:var(--text-sm)}.ui-select[data-size=lg] .ui-select__native[data-v-dc69ba08]{height:var(--control-h-lg);font-size:var(--text-md)}.ui-select__native[data-v-dc69ba08]:hover:not(:disabled){border-color:var(--color-border-strong)}.ui-select__native[data-v-dc69ba08]:focus{outline:none;border-color:var(--color-accent);box-shadow:0 0 0 3px var(--color-accent-dim)}.ui-select__native[data-v-dc69ba08]:disabled{opacity:.6;cursor:not-allowed}.ui-select__chevron[data-v-dc69ba08]{position:absolute;right:.75rem;top:50%;transform:translateY(-50%);pointer-events:none;color:var(--color-text-muted);display:inline-flex}.ui-select__hint[data-v-dc69ba08]{font-size:var(--text-xs);color:var(--color-text-subtle)}.ui-badge[data-v-0e753a6d]{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .45rem;border-radius:var(--radius-xs);font-size:.65rem;font-weight:700;line-height:1.2;letter-spacing:.04em;border:1px solid transparent;white-space:nowrap}.ui-badge--md[data-v-0e753a6d]{font-size:var(--text-xs);padding:.2rem .55rem}.ui-badge--pill[data-v-0e753a6d]{border-radius:var(--radius-full)}.ui-badge--uppercase[data-v-0e753a6d]{text-transform:uppercase}.ui-badge--neutral[data-v-0e753a6d]{background:var(--color-surface-raised);color:var(--color-text-muted);border-color:var(--color-border)}.ui-badge--accent[data-v-0e753a6d]{background:var(--color-accent-dim);color:var(--color-accent)}.ui-badge--part[data-v-0e753a6d]{background:#4a9eff2e;color:var(--color-part)}.ui-badge--assembly[data-v-0e753a6d]{background:#ff7a4a2e;color:var(--color-assembly)}.ui-badge--success[data-v-0e753a6d]{background:var(--color-success-dim);color:var(--color-success)}.ui-badge--warning[data-v-0e753a6d]{background:var(--color-warning-dim);color:var(--color-warning)}.ui-badge--danger[data-v-0e753a6d]{background:var(--color-danger-dim);color:var(--color-danger)}.ui-badge--info[data-v-0e753a6d]{background:#b478ff33;color:#c9a8ff}.ui-empty[data-v-fd25a679]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-6) var(--space-4);text-align:center;color:var(--color-text-muted);border:1px dashed var(--color-border);border-radius:var(--radius-md);background:var(--color-surface)}.ui-empty--compact[data-v-fd25a679]{padding:var(--space-4);gap:var(--space-2)}.ui-empty__icon[data-v-fd25a679]{color:var(--color-text-subtle);display:inline-flex}.ui-empty__icon[data-v-fd25a679] svg{width:2rem;height:2rem}.ui-empty__copy[data-v-fd25a679]{display:flex;flex-direction:column;gap:var(--space-1);align-items:center;max-width:32rem}.ui-empty__title[data-v-fd25a679]{margin:0;font-size:var(--text-md);font-weight:600;color:var(--color-text)}.ui-empty__desc[data-v-fd25a679]{margin:0;font-size:var(--text-sm);color:var(--color-text-muted);line-height:var(--leading-normal)}.ui-empty__actions[data-v-fd25a679]{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:center}.ui-tabs[data-v-67e4671e]{display:inline-flex;gap:var(--space-1);background:var(--color-surface);padding:.25rem;border-radius:var(--radius-md);border:1px solid var(--color-border)}.ui-tabs__tab[data-v-67e4671e]{display:inline-flex;align-items:center;gap:var(--space-2);padding:.5rem 1rem;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:inherit;font-size:var(--text-base);font-weight:500;cursor:pointer;transition:background-color var(--motion-fast),color var(--motion-fast);border:none}.ui-tabs__tab[data-v-67e4671e]:hover:not(:disabled):not(.is-active){color:var(--color-text);background:var(--color-surface-hover)}.ui-tabs__tab[data-v-67e4671e]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.ui-tabs__tab.is-active[data-v-67e4671e]{background:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.ui-tabs__tab[data-v-67e4671e]:disabled{opacity:.5;cursor:not-allowed}.ui-drop[data-v-1fa8a83e]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-7) var(--space-6);text-align:center;background:var(--color-surface);border:2px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);cursor:pointer;transition:border-color var(--motion-base),background-color var(--motion-base),color var(--motion-base)}.ui-drop[data-v-1fa8a83e]:hover,.ui-drop[data-v-1fa8a83e]:focus-visible,.ui-drop.is-dragover[data-v-1fa8a83e]{border-color:var(--color-accent);background:var(--color-accent-dim);color:var(--color-text);outline:none}.ui-drop.is-disabled[data-v-1fa8a83e]{opacity:.6;cursor:not-allowed}.ui-drop__icon[data-v-1fa8a83e]{width:72px;height:72px;background:var(--color-surface-raised);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--color-text-muted)}.ui-drop__copy[data-v-1fa8a83e]{display:flex;flex-direction:column;gap:var(--space-1)}.ui-drop__label[data-v-1fa8a83e]{margin:0;font-size:var(--text-lg);font-weight:700;color:var(--color-text)}.ui-drop__hint[data-v-1fa8a83e]{margin:0;font-size:var(--text-sm);color:var(--color-text-muted)}.ui-drop__input[data-v-1fa8a83e]{display:none}.ui-theme-toggle[data-v-09b60d65]{display:inline-flex;align-items:center;justify-content:center;width:var(--control-h-md);height:var(--control-h-md);border-radius:var(--radius-sm);background:var(--control-bg);border:1px solid var(--control-border);color:var(--color-text-muted);cursor:pointer;padding:0;flex-shrink:0;transition:background-color var(--motion-fast),color var(--motion-fast),border-color var(--motion-fast)}.ui-theme-toggle[data-v-09b60d65]:hover{background:var(--control-bg-hover);color:var(--color-accent);border-color:var(--color-accent)}.ui-theme-toggle[data-v-09b60d65]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-header[data-v-c910d0b9]{display:flex;align-items:center;justify-content:flex-start;gap:var(--space-4);flex-wrap:wrap;padding:var(--space-3) var(--space-6);background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:100}.app-logo[data-v-c910d0b9]{display:inline-flex;align-items:center;gap:var(--space-3);text-decoration:none;color:var(--color-text);flex-shrink:0}.app-logo__badge[data-v-c910d0b9]{width:36px;height:36px;border-radius:var(--radius-sm);background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:var(--color-accent-contrast);display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--text-sm);letter-spacing:.04em}.app-logo__text[data-v-c910d0b9]{font-weight:700;font-size:var(--text-lg)}.app-logo__text[data-v-c910d0b9] span{color:var(--color-accent)}.app-nav[data-v-c910d0b9]{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap}.app-nav[data-v-c910d0b9] a{display:inline-flex;align-items:center;height:var(--control-h-sm);padding:0 .8rem;border-radius:var(--radius-sm);color:var(--color-text-muted);text-decoration:none;font-size:var(--text-base);transition:background-color var(--motion-fast),color var(--motion-fast)}.app-nav[data-v-c910d0b9] a:hover{color:var(--color-accent);background:var(--color-surface-raised)}.app-nav[data-v-c910d0b9] a.router-link-active{color:var(--color-accent);font-weight:600;background:var(--color-accent-dim)}.app-nav[data-v-c910d0b9] a.app-nav__primary{background:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.app-nav[data-v-c910d0b9] a.app-nav__primary:hover,.app-nav[data-v-c910d0b9] a.app-nav__primary.router-link-active{background:var(--color-accent-hover);color:var(--color-accent-contrast)}.app-nav[data-v-c910d0b9] a.app-nav__my-reviews{display:inline-flex;align-items:center;gap:var(--space-2)}.app-nav__badge[data-v-c910d0b9]{margin-left:.1rem}.app-header__actions[data-v-c910d0b9]{margin-left:auto;display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.app-auth-chip[data-v-c910d0b9]{display:grid;gap:.08rem;padding:.35rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--text-xs);color:var(--color-text-muted);line-height:1.25;max-width:16rem;text-decoration:none}.app-auth-chip strong[data-v-c910d0b9]{color:var(--color-text);font-size:var(--text-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-auth-chip span[data-v-c910d0b9]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-signin[data-v-c910d0b9]{display:inline-flex;align-items:center;justify-content:center;height:var(--control-h-sm);padding:0 var(--control-px-sm);border-radius:var(--control-radius);background:var(--color-accent);color:var(--color-accent-contrast);font-size:var(--text-sm);font-weight:600;text-decoration:none;transition:background-color var(--motion-fast)}.app-signin[data-v-c910d0b9]:hover{background:var(--color-accent-hover)}.app-signin[data-v-c910d0b9]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.app-shell--auth[data-v-c910d0b9]{min-height:100vh}.app-page--auth[data-v-c910d0b9]{min-height:100vh;display:grid;place-items:center;padding:var(--space-6)}.app-auth-tools[data-v-c910d0b9]{position:fixed;top:var(--space-4);right:var(--space-4);z-index:20}:root{color-scheme:dark;--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-tertiary: #1a1a25;--bg-hover: #22222f;--border: #2a2a3a;--text-primary: #e8e8ed;--text-secondary: #9898a8;--text-muted: #686878;--accent: #00d4aa;--accent-dim: rgba(0, 212, 170, .15);--accent-glow: rgba(0, 212, 170, .4);--part-color: #4a9eff;--assembly-color: #ff7a4a;--color-bg: var(--bg-primary);--color-surface: var(--bg-secondary);--color-surface-raised: var(--bg-tertiary);--color-surface-hover: var(--bg-hover);--color-border: var(--border);--color-border-strong: #3a3a4a;--color-text: var(--text-primary);--color-text-muted: var(--text-secondary);--color-text-subtle: var(--text-muted);--color-accent: var(--accent);--color-accent-hover: #00b392;--color-accent-dim: var(--accent-dim);--color-accent-contrast: var(--bg-primary);--color-danger: #ef4444;--color-danger-dim: rgba(239, 68, 68, .15);--color-warning: #f59e0b;--color-warning-dim: rgba(245, 158, 11, .15);--color-success: #22c55e;--color-success-dim: rgba(34, 197, 94, .15);--color-part: var(--part-color);--color-assembly: var(--assembly-color);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 2rem;--space-8: 3rem;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 6px 20px rgba(0, 0, 0, .35);--shadow-lg: 0 16px 48px rgba(0, 0, 0, .5);--shadow-modal: 0 24px 80px rgba(0, 0, 0, .55);--font-sans: "Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, "SF Mono", Consolas, "Liberation Mono", Menlo, monospace;--text-xs: .72rem;--text-sm: .82rem;--text-base: .92rem;--text-md: 1rem;--text-lg: 1.15rem;--text-xl: 1.35rem;--text-2xl: 1.65rem;--leading-tight: 1.25;--leading-normal: 1.45;--leading-relaxed: 1.6;--control-h-sm: 28px;--control-h-md: 36px;--control-h-lg: 44px;--control-px-sm: .65rem;--control-px-md: .95rem;--control-px-lg: 1.1rem;--control-radius: var(--radius-sm);--control-border: var(--color-border);--control-bg: var(--color-surface-raised);--control-bg-hover: var(--color-surface-hover);--control-text: var(--color-text);--focus-ring: 0 0 0 2px var(--color-bg), 0 0 0 4px var(--color-accent);--focus-ring-inset: inset 0 0 0 2px var(--color-accent);--motion-fast: .12s ease;--motion-base: .18s ease;--motion-slow: .26s ease;--header-h: 64px}:root[data-theme=light]{color-scheme:light;--bg-primary: #f4f5f9;--bg-secondary: #ffffff;--bg-tertiary: #eef1f6;--bg-hover: #e1e5ee;--border: #d3d8e2;--text-primary: #161828;--text-secondary: #4b4f62;--text-muted: #747788;--accent: #0b9e80;--accent-dim: rgba(11, 158, 128, .12);--accent-glow: rgba(11, 158, 128, .3);--part-color: #2563eb;--assembly-color: #ea580c;--color-border-strong: #b7bdcc;--color-accent-hover: #0a8a70;--color-accent-contrast: #ffffff;--color-danger: #dc2626;--color-danger-dim: rgba(220, 38, 38, .1);--color-warning: #b45309;--color-warning-dim: rgba(180, 83, 9, .1);--color-success: #15803d;--color-success-dim: rgba(21, 128, 61, .1);--shadow-sm: 0 1px 2px rgba(16, 24, 40, .08);--shadow-md: 0 6px 20px rgba(16, 24, 40, .1);--shadow-lg: 0 16px 48px rgba(16, 24, 40, .16);--shadow-modal: 0 24px 80px rgba(16, 24, 40, .2)}*,*:before,*:after{box-sizing:border-box}*{margin:0;padding:0}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color var(--motion-base),color var(--motion-base)}a{color:inherit}button,input,select,textarea{font-family:inherit;color:inherit}button{background:none;border:none;cursor:pointer}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}button:focus,input:focus,select:focus,textarea:focus{outline:none}code,kbd,samp,pre,.mono{font-family:var(--font-mono)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:var(--leading-tight);color:var(--color-text)}img,svg,video,canvas{max-width:100%;display:block}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-xs)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-strong)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.header{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:var(--space-4) var(--space-7);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);position:sticky;top:0;z-index:100}.header-left{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.header-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.logo{display:flex;align-items:center;gap:var(--space-3)}.logo-icon{width:36px;height:36px;background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:var(--color-accent-contrast);font-weight:700}.logo-text{font-weight:700;font-size:var(--text-lg)}.logo-text span{color:var(--color-accent)}.drop-zone{border:2px dashed var(--color-border);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-7);text-align:center;margin:var(--space-7);transition:border-color var(--motion-base),background-color var(--motion-base);background:var(--color-surface);cursor:pointer}.drop-zone:hover,.drop-zone.dragover{border-color:var(--color-accent);background:var(--color-accent-dim)}.drop-zone-icon{width:80px;height:80px;margin:0 auto var(--space-5);background:var(--color-surface-raised);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.drop-zone-icon svg{width:2.75rem;height:2.75rem;color:var(--color-text-muted)}.drop-zone h2{font-size:var(--text-xl);margin-bottom:var(--space-2)}.drop-zone p{color:var(--color-text-muted)}.drop-zone input{display:none}.main-content{display:none;padding:var(--space-6) var(--space-7)}.main-content.active{display:block}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4)}.stat-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin-bottom:var(--space-1)}.stat-value{font-size:var(--text-2xl);font-weight:700;font-family:var(--font-mono)}.stat-value.parts{color:var(--color-part)}.stat-value.assemblies{color:var(--color-assembly)}.stat-value.accent{color:var(--color-accent)}.toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end;margin-bottom:var(--space-5)}.meta-info{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-4);margin-bottom:var(--space-5);display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-4)}.meta-item{display:flex;flex-direction:column;gap:var(--space-1)}.meta-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted)}.meta-value{font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-word}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);height:var(--control-h-md);padding:0 var(--control-px-md);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--control-text);font-size:var(--text-base);font-family:inherit;line-height:1;cursor:pointer;text-decoration:none;white-space:nowrap;transition:background-color var(--motion-fast),border-color var(--motion-fast),color var(--motion-fast)}.btn:hover{background:var(--control-bg-hover);border-color:var(--color-accent)}.btn:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.btn:disabled,.btn[disabled]{opacity:.5;cursor:not-allowed}.btn.primary{background:var(--color-accent);color:var(--color-accent-contrast);border-color:var(--color-accent);font-weight:600}.btn.primary:hover{background:var(--color-accent-hover);border-color:var(--color-accent-hover)}.ui-icon{width:1.1em;height:1.1em;flex-shrink:0}.search-box{flex:1;min-width:240px;position:relative}.search-box:not(.search-token-box) input{width:100%;height:var(--control-h-md);padding:0 var(--control-px-md) 0 2.65rem;background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius);color:var(--control-text);font-family:inherit;font-size:var(--text-base)}.search-box:not(.search-token-box) input:focus{border-color:var(--color-accent)}.search-box:before{content:"";position:absolute;left:.9rem;top:50%;transform:translateY(-50%);width:1rem;height:1rem;opacity:.55;pointer-events:none;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-4.3-4.3'/%3E%3C/svg%3E") center / contain no-repeat;color:var(--color-text-subtle)}.search-box.search-token-box .search-token-inner{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1);width:100%;padding:.35rem .75rem .35rem 2.65rem;min-height:var(--control-h-md);background:var(--control-bg);border:1px solid var(--control-border);border-radius:var(--control-radius)}.search-box.search-token-box:focus-within .search-token-inner{border-color:var(--color-accent)}.search-tokens-host{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.search-token-chip{display:inline-flex;align-items:center;gap:.15rem;padding:.2rem .35rem .2rem .55rem;background:var(--color-accent-dim);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-sm);font-weight:500;color:var(--color-accent);max-width:100%}.search-token-chip span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:14rem}.search-token-chip button{cursor:pointer;color:var(--color-text-subtle);padding:.1rem .35rem;line-height:1;border-radius:var(--radius-xs);font-size:1rem}.search-token-chip button:hover{color:var(--color-text);background:var(--color-surface-hover)}.search-box.search-token-box input,.search-box.search-token-box input[type=text],.search-box.search-token-box input[type=search]{flex:1;min-width:140px;width:3rem;padding:.4rem .25rem;background:transparent;border:none;border-radius:var(--radius-xs);color:var(--color-text);font-size:var(--text-base);font-family:inherit;-moz-appearance:none;appearance:none;-webkit-appearance:none}.search-box.search-token-box input:focus{outline:none}.search-box.search-token-box input::-webkit-search-decoration,.search-box.search-token-box input::-webkit-search-cancel-button,.search-box.search-token-box input::-webkit-search-results-button,.search-box.search-token-box input::-webkit-search-results-decoration{-webkit-appearance:none;-moz-appearance:none;appearance:none}.search-tier-sep,.search-or-sep{font-size:var(--text-xs);font-weight:700;color:var(--color-text-subtle);-webkit-user-select:none;user-select:none;padding:0 .1rem;letter-spacing:.02em}.search-or-sep{color:var(--color-accent);opacity:.85}.filter-group{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.filter-group-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.filter-pills{display:flex;gap:var(--space-1);background:var(--color-surface);padding:.25rem;border-radius:var(--radius-sm);border:1px solid var(--color-border)}.filter-pill{padding:.4rem .8rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-size:var(--text-sm);font-family:inherit;cursor:pointer;white-space:nowrap}.filter-pill:hover{color:var(--color-text);background:var(--color-surface-hover)}.filter-pill.active{background:var(--color-accent-dim);color:var(--color-accent);font-weight:600}.tabs{display:flex;gap:var(--space-1);background:var(--color-surface);padding:.25rem;border-radius:var(--radius-md);margin-bottom:var(--space-5);border:1px solid var(--color-border)}.tab{padding:.55rem 1.1rem;background:transparent;border:none;border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:inline-flex;align-items:center;gap:var(--space-2);font-family:inherit;font-size:var(--text-base)}.tab:hover{color:var(--color-text)}.tab.active{background:var(--color-accent);color:var(--color-accent-contrast);font-weight:600}.badge-pcba,.badge-cots,.badge-added,.badge-reject,.type-badge{display:inline-flex;align-items:center;font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:.15rem .4rem;border-radius:var(--radius-xs);vertical-align:middle}.badge-pcba{background:#b478ff33;color:#c9a8ff;margin-left:.35rem}.badge-cots{background:#4a9eff38;color:var(--color-part);margin-left:.35rem}.badge-added{background:#a08cff33;color:#c4b5fd;margin-left:.35rem;font-size:.58rem}.badge-reject{background:var(--color-danger-dim);color:#ff8a8a}.type-badge.part{background:#4a9eff26;color:var(--color-part)}.type-badge.assembly{background:#ff7a4a26;color:var(--color-assembly)}.warn-banner{background:var(--color-warning-dim);border:1px solid rgba(245,158,11,.35);color:var(--color-warning);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin-bottom:var(--space-4);font-size:var(--text-sm)}.panel{display:none}.panel.active{display:block}.panel-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-5);margin-bottom:var(--space-5)}.panel-card h3{font-size:var(--text-md);margin-bottom:var(--space-3)}.panel-card p.hint{color:var(--color-text-muted);font-size:var(--text-sm);margin-bottom:var(--space-3)}.panel-title{font-size:var(--text-md);font-weight:700;color:var(--color-text);margin-bottom:var(--space-3)}.step-nav{display:flex;gap:var(--space-1);flex-wrap:wrap;margin-bottom:var(--space-5);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.35rem}.step-nav button{padding:.5rem .95rem;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--color-text-muted);font-family:inherit;font-size:var(--text-sm);cursor:pointer;font-weight:500}.step-nav button:hover{color:var(--color-text);background:var(--color-surface-hover)}.step-nav button.active{background:var(--color-accent-dim);color:var(--color-accent);font-weight:700}.tree-container,.table-container{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:hidden}.table-container{display:none}.table-container.active{display:block}.tree-header{display:grid;grid-template-columns:70px 1fr 70px 90px 1fr;padding:var(--space-3) var(--space-4);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);font-weight:600}.tree-body{max-height:calc(100vh - 380px);overflow-y:auto}.tree-node{border-bottom:1px solid var(--color-border)}.tree-node:hover>.tree-row{background:var(--color-surface-hover)}.tree-node.highlighted>.tree-row{background:var(--color-accent-dim)}.tree-row{display:grid;grid-template-columns:70px 1fr 70px 90px 1fr;padding:.4rem var(--space-4);align-items:center;cursor:pointer}.tree-thumb,.table-thumb{background:var(--color-surface-raised);border-radius:var(--radius-sm);overflow:hidden;display:flex;align-items:center;justify-content:center;border:1px solid var(--color-border)}.tree-thumb{width:54px;height:54px;cursor:pointer}.table-thumb{width:40px;height:40px}.tree-thumb img,.table-thumb img{width:100%;height:100%;object-fit:contain}.tree-thumb-placeholder{display:flex;align-items:center;justify-content:center;opacity:.55}.tree-thumb-placeholder svg{width:22px;height:22px;color:var(--color-text-subtle)}.th-inc-icon{width:14px;height:14px;display:block;margin:0 auto;opacity:.75;color:var(--color-text-subtle)}.tree-name{display:flex;align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-sm)}.tree-toggle{width:18px;height:18px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-xs);background:var(--color-surface-raised);flex-shrink:0;color:var(--color-text-muted);transition:transform var(--motion-fast)}.tree-toggle svg{width:10px;height:10px}.tree-toggle.expanded{transform:rotate(90deg)}.tree-toggle.empty{visibility:hidden}.tree-qty{font-family:var(--font-mono);font-weight:600;color:var(--color-accent)}.tree-revision{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-muted)}.tree-description{font-size:var(--text-sm);color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tree-children{display:none;padding-left:var(--space-5);background:#00000014}.tree-children.expanded{display:block}.flat-view{display:none}.flat-view.active{display:block}.flat-table{width:100%;border-collapse:collapse}.flat-table th{padding:var(--space-3) var(--space-4);background:var(--color-surface-raised);text-align:left;font-size:var(--text-xs);text-transform:uppercase;color:var(--color-text-muted);font-weight:600;border-bottom:1px solid var(--color-border);position:sticky;top:0}.flat-table td{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-sm);vertical-align:middle}.flat-table tr:hover{background:var(--color-surface-hover)}.flat-table .part-number{font-family:var(--font-mono);color:var(--color-accent)}.table-scroll{max-height:calc(100vh - 380px);overflow-y:auto}.flat-lvl-merged{font-family:var(--font-mono);font-size:var(--text-sm);color:var(--color-text-subtle);cursor:help;border-bottom:1px dotted var(--color-text-subtle)}.detail-panel{position:fixed;right:-500px;top:0;width:500px;height:100vh;background:var(--color-surface);border-left:1px solid var(--color-border);z-index:200;transition:right var(--motion-slow);overflow-y:auto}.detail-panel.open{right:0}.detail-header{padding:var(--space-4);background:var(--color-surface-raised);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:10}.detail-title{font-family:var(--font-mono);font-size:var(--text-md);font-weight:600}.detail-close{width:var(--control-h-md);height:var(--control-h-md);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-muted);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.25rem;line-height:1}.detail-close:hover{color:var(--color-text);border-color:var(--color-accent)}.detail-content{padding:var(--space-4)}.detail-thumbnail{width:100%;height:280px;background:var(--color-surface-raised);border-radius:var(--radius-md);overflow:hidden;display:flex;align-items:center;justify-content:center;margin-bottom:var(--space-5);border:1px solid var(--color-border);cursor:pointer}.detail-thumbnail img{max-width:100%;max-height:100%;object-fit:contain}.detail-thumbnail-placeholder{padding:var(--space-7);color:var(--color-text-subtle);font-size:var(--text-sm)}.detail-section{margin-bottom:var(--space-5)}.detail-section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.05em;color:var(--color-accent);margin-bottom:var(--space-2);padding-bottom:.4rem;border-bottom:1px solid var(--color-border)}.detail-note{color:var(--color-text-subtle);font-size:var(--text-sm);line-height:var(--leading-relaxed)}.prop-grid{display:grid;gap:var(--space-1)}.prop-row{display:grid;grid-template-columns:130px 1fr;gap:var(--space-3);font-size:var(--text-sm);padding:.3rem 0}.prop-key{color:var(--color-text-muted)}.prop-value{font-family:var(--font-mono);word-break:break-word}.used-in-list{display:grid;gap:var(--space-3)}.used-in-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:.85rem .95rem}.used-in-pn{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;margin-bottom:.35rem;word-break:break-word}.used-in-desc,.used-in-meta{color:var(--color-text-muted);font-size:var(--text-sm);line-height:var(--leading-normal);word-break:break-word}.used-in-meta{margin-top:.45rem}.used-in-chain-block{margin-top:.65rem}.used-in-chain-title{color:var(--color-text-muted);font-size:var(--text-xs);margin-bottom:.3rem;text-transform:uppercase;letter-spacing:.04em}.used-in-chain-list{display:grid;gap:.3rem}.used-in-chain-item{display:grid;grid-template-columns:auto 1fr;gap:.45rem;align-items:start;line-height:var(--leading-normal)}.used-in-chain-index{color:var(--color-text-subtle);min-width:1.2rem;text-align:right}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:150;opacity:0;pointer-events:none;transition:opacity var(--motion-slow)}.overlay.active{opacity:1;pointer-events:auto}.image-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000eb;z-index:300;display:none;align-items:center;justify-content:center;cursor:zoom-out}.image-modal.active{display:flex}.image-modal img{max-width:90%;max-height:90%;object-fit:contain;border-radius:var(--radius-sm)}.actor-field{display:flex;flex-direction:column;gap:.15rem;font-size:var(--text-xs);color:var(--color-text-subtle);text-transform:uppercase;letter-spacing:.04em}.actor-field input{height:var(--control-h-md);padding:0 var(--control-px-sm);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;min-width:8rem}.actor-field input:focus{outline:none;border-color:var(--color-accent)}.kanban-boards-root{display:flex;flex-direction:column;gap:var(--space-5)}.kanban-main-and-bin{display:flex;flex-direction:column;align-items:stretch;gap:var(--space-3)}.kanban-section-title{font-size:var(--text-sm);font-weight:700;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--space-2)}.kanban-wrap{overflow-x:auto;padding-bottom:.35rem;margin:0 -.25rem}.kanban-board{display:flex;gap:.65rem;min-height:180px;padding:.2rem}.kanban-col{flex:1 1 0;min-width:200px;max-width:340px;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;flex-direction:column;max-height:min(52vh,520px)}.kanban-col-head{padding:.45rem .55rem;border-bottom:1px solid var(--color-border);font-size:var(--text-xs);line-height:1.2;background:var(--color-surface);border-radius:var(--radius-md) var(--radius-md) 0 0;display:flex;flex-direction:column;gap:.35rem}.kanban-col-head-top{display:flex;justify-content:space-between;align-items:flex-start;gap:.35rem}.kanban-col-stage-name{font-weight:700;flex:1;min-width:0}.kanban-col-count{font-family:var(--font-mono);color:var(--color-accent);font-size:.65rem;white-space:nowrap}.kanban-col-search{width:100%;padding:.3rem .45rem;font-size:.7rem;font-family:inherit;border-radius:var(--radius-sm);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text)}.kanban-col-search::placeholder{color:var(--color-text-subtle)}.kanban-col-search:focus{outline:none;border-color:var(--color-accent)}.kanban-col-empty,.kanban-col-no-matches{font-size:var(--text-xs);color:var(--color-text-subtle);padding:var(--space-3) var(--space-2);text-align:center;line-height:var(--leading-normal)}.kanban-col-no-matches{display:none}.kanban-col-body{flex:1;overflow-y:auto;padding:.35rem;display:flex;flex-direction:column;gap:.35rem}.kanban-col-add,.kanban-col-export-row{padding:.25rem 0 0}.kanban-col-add .btn,.kanban-col-csv-btn{width:100%;justify-content:center;font-size:.65rem;height:auto;padding:.35rem .5rem}.kanban-comments-bin{width:100%;background:var(--color-surface-raised);border:1px solid rgba(200,80,80,.4);border-radius:var(--radius-md);display:flex;flex-direction:column;max-height:min(42vh,440px)}.kanban-comments-bin .kanban-col-body{flex-direction:row;flex-wrap:wrap;align-content:flex-start;align-items:stretch;gap:.4rem}.kanban-comments-bin .kanban-col-body>.k-card{flex:1 1 200px;max-width:320px;min-width:180px}.kanban-comments-bin .kanban-col-body>.kanban-col-empty,.kanban-comments-bin .kanban-col-body>.kanban-col-no-matches{flex:1 1 100%;width:100%}.kanban-comments-bin .kanban-col-head{border-bottom-color:#c8505040;background:#501e1e33}.kanban-comments-bin .kanban-col-stage-name{color:#f0a8a8}.kanban-comments-bin-hint{font-size:.62rem;color:var(--color-text-subtle);line-height:1.3;padding:0 .35rem .35rem}.k-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.4rem .5rem;font-size:var(--text-xs)}.k-card .k-card-head{display:flex;justify-content:space-between;align-items:center;gap:.35rem;flex-wrap:wrap}.k-card .k-card-head-main{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;min-width:0}.k-card .k-card-head-main .badge-cots,.k-card .k-card-head-main .badge-pcba,.k-card-head-actions .badge-cots,.k-card-head-actions .badge-pcba{margin-left:0}.k-card .pn{font-family:var(--font-mono);font-weight:600;color:var(--color-accent);font-size:var(--text-sm);line-height:1.2}.k-card .desc{color:var(--color-text-muted);margin:.2rem 0 0;line-height:1.25;font-size:.7rem;display:-webkit-box;-webkit-line-clamp:1;line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.k-card .meta{color:var(--color-text-subtle);font-size:.65rem;margin-top:.15rem}.k-card-bom-ref,.staging-bom-ref{font-family:var(--font-mono);font-size:.65rem;color:var(--color-text-subtle);margin-top:.12rem;line-height:1.2}.k-card-pdf-thumb-wrap{margin-top:.3rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg)}.k-card-pdf-thumb{display:block;width:100%;max-height:120px;object-fit:cover}.k-card-pdf-meta{display:flex;justify-content:space-between;gap:.4rem;padding:.28rem .4rem;font-size:.6rem;color:var(--color-text-subtle);line-height:1.2}.k-card-pdf-meta strong{color:var(--color-text-muted);font-weight:600}.k-card .row-actions{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.3rem;align-items:center}.k-card .row-actions.nav-row{margin-top:.25rem}.k-card select{flex:1;min-width:0;min-height:1.8rem;padding:.2rem .35rem;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text);font-size:.7rem}.k-card.k-card-clickable{cursor:pointer}.k-card.k-card-clickable:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.k-card .btn.k-btn-tight{height:auto;padding:.28rem .45rem;font-size:.65rem;white-space:nowrap}.k-card .btn.k-btn-unreject{border-color:#00d4aa73;color:var(--color-accent)}.k-card .btn.k-btn-unreject:hover{background:var(--color-accent-dim)}.k-card-head-actions{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.k-card-feedback{width:.85rem;height:.85rem;min-width:.85rem;min-height:.85rem;border-radius:var(--radius-full);border:1px solid var(--color-border);padding:0;cursor:pointer;flex-shrink:0;transition:background var(--motion-fast),box-shadow var(--motion-fast)}.k-card-feedback:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.k-card-feedback--none{background:#8c96aa59;box-shadow:inset 0 0 0 1px #00000040}.k-card-feedback--pending{background:var(--color-danger);border-color:#ff787880}.k-card-feedback--done{background:var(--color-success);border-color:#64c88c73}.k-card .move-row{display:flex;gap:.3rem;align-items:center;flex-wrap:wrap}.k-card .move-row select{flex:1 1 160px;min-width:140px}.k-card-bin-hint{font-size:.62rem;color:var(--color-text-subtle);margin-top:.25rem;line-height:1.25}.k-card-drawing-indicator{width:0;height:0;border-left:.38rem solid transparent;border-right:.38rem solid transparent;border-bottom:.7rem solid #f0c541;filter:drop-shadow(0 0 1px rgba(0,0,0,.45));flex-shrink:0}.release-dash-wrap{margin-bottom:var(--space-4)}.release-dash{display:grid;grid-template-columns:1fr;gap:var(--space-3)}.release-dash-track{background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-3)}.release-dash-track.drawing{border-left:3px solid var(--color-part)}.release-dash-head{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-2);margin-bottom:.45rem}.release-dash-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-muted)}.release-dash-total{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-subtle);white-space:nowrap}.release-dash-bar{display:flex;height:2rem;border-radius:var(--radius-sm);overflow:hidden;background:var(--color-bg);border:1px solid var(--color-border);margin-bottom:.45rem}.release-dash-seg{display:flex;align-items:center;justify-content:center;flex:0 0 auto;min-width:0;border-right:1px solid rgba(0,0,0,.35);font-family:var(--font-mono);font-size:.68rem;font-weight:600;color:#f4faf8;text-shadow:0 1px 2px rgba(0,0,0,.45);transition:width var(--motion-slow);width:var(--segment-width, 0%)}.release-dash-seg:last-child{border-right:none}.release-dash-seg-draw-0{background:linear-gradient(180deg,#ef4444,#b91c1c)}.release-dash-seg-draw-1{background:linear-gradient(180deg,#f97316,#c2410c)}.release-dash-seg-draw-2{background:linear-gradient(180deg,#eab308,#a16207)}.release-dash-seg-draw-3{background:linear-gradient(180deg,#84cc16,#4d7c0f)}.release-dash-seg-draw-4{background:linear-gradient(180deg,#22c55e,#15803d)}.release-dash-seg-draw-5{background:linear-gradient(180deg,#14b8a6,#0f766e)}.release-dash-seg-comments-bin{background:linear-gradient(180deg,#b91c1c,#450a0a);border-left:1px solid rgba(0,0,0,.35)}.release-dash-bar-empty .release-dash-seg{background:var(--color-surface-hover);color:var(--color-text-subtle);font-weight:500;text-shadow:none;border-right:1px solid var(--color-border)}.release-dash-legend{display:flex;flex-wrap:wrap;gap:.35rem .65rem;font-size:.68rem;color:var(--color-text-subtle);line-height:1.35}.release-dash-legend-item strong{font-family:var(--font-mono);font-weight:600}.release-dash-legend-draw-0 strong{color:#fca5a5}.release-dash-legend-draw-1 strong{color:#fdba74}.release-dash-legend-draw-2 strong{color:#fde047}.release-dash-legend-draw-3 strong{color:#bef264}.release-dash-legend-draw-4 strong{color:#86efac}.release-dash-legend-draw-5 strong{color:#5eead4}.release-dash-legend-comments-bin strong{color:#f87171}.asm-list-wrap,.export-staging-table-wrap,.staging-table-wrap{max-height:min(52vh,540px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.asm-list-wrap{max-height:min(42vh,420px)}.asm-table,.export-staging-table,.staging-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.asm-table th,.asm-table td,.export-staging-table th,.export-staging-table td,.staging-table th,.staging-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--color-border);vertical-align:top}.asm-table th,.export-staging-table th,.staging-table th{background:var(--color-surface-raised);color:var(--color-text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}.asm-table tr:hover td,.export-staging-table tr:hover td,.staging-table tr:hover td{background:var(--color-surface-hover)}.export-staging-table .mono,.staging-table .mono{font-family:var(--font-mono)}.export-staging-table .mono{color:var(--color-accent)}.export-staging-table input[type=checkbox]{width:1.1rem;height:1.1rem;cursor:pointer}tr.staging-row-cots td,tr.staging-row-cots .mono{color:var(--color-text-subtle)}.staging-table td:nth-child(2){color:var(--color-text)}.staging-table td:nth-child(3),.staging-table td:nth-child(4){color:var(--color-accent);font-weight:600}.staging-used-in{font-size:var(--text-xs);color:var(--color-text-muted)}.asm-search{width:min(420px,100%);height:var(--control-h-md);padding:0 var(--control-px-sm);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);-moz-appearance:none;appearance:none;-webkit-appearance:none}.asm-search:focus{outline:none;border-color:var(--color-accent)}.asm-search::placeholder{color:var(--color-text-subtle)}.export-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;align-items:center;justify-content:center;padding:var(--space-4)}.export-modal.active{display:flex}.export-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6}.export-modal-dialog{position:relative;width:min(920px,100%);max-height:min(90vh,900px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-modal)}.bolt-analyzer-modal .export-modal-dialog{width:min(960px,100%);max-height:min(92vh,920px)}.export-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--color-border)}.export-modal-header h2{font-size:var(--text-lg);font-weight:700}.export-modal-close{width:var(--control-h-md);height:var(--control-h-md);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);font-size:1.25rem;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center}.export-modal-close:hover{background:var(--color-surface-hover)}.export-modal-body{padding:var(--space-4) var(--space-5);overflow:auto;flex:1;display:flex;flex-direction:column;gap:var(--space-4)}.export-modal-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:flex-end}.export-modal-toolbar .search-box{min-width:200px;flex:1}.export-modal-actions{display:flex;gap:var(--space-2);flex-wrap:wrap}.export-modal-footer{display:flex;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--color-border)}.export-modal-summary{font-size:var(--text-sm);color:var(--color-text-muted)}.export-qty-mult{display:flex;flex-direction:column;gap:var(--space-1)}.export-qty-mult label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.export-qty-mult input{width:5rem;height:var(--control-h-md);padding:0 var(--control-px-sm);background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:var(--font-mono)}.bolt-analyzer-summary{font-size:var(--text-sm);color:var(--color-text-muted);margin:0;padding:var(--space-2) var(--space-3);background:var(--color-surface-raised);border-radius:var(--radius-sm);border:1px solid var(--color-border)}.bolt-analyzer-summary strong{color:var(--color-accent)}.bolt-analyzer-table-wrap{border:1px solid var(--color-border);border-radius:var(--radius-md);overflow:auto;max-height:280px}.bolt-analyzer-table{width:100%;border-collapse:collapse;font-size:var(--text-sm)}.bolt-analyzer-table th,.bolt-analyzer-table td{padding:.5rem .65rem;text-align:left;border-bottom:1px solid var(--color-border)}.bolt-analyzer-table th{background:var(--color-surface-raised);color:var(--color-text-muted);font-size:.7rem;text-transform:uppercase;letter-spacing:.04em}.bolt-analyzer-table td.mono{font-family:var(--font-mono);color:var(--color-accent);font-weight:600}.bolt-analyzer-section-title{font-size:var(--text-xs);font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--color-text-muted);margin:var(--space-4) 0 var(--space-2)}.bolt-analyzer-nominal-block{margin-bottom:var(--space-4);padding:var(--space-3);background:#0000001f;border:1px solid var(--color-border);border-radius:var(--radius-md)}.bolt-analyzer-nominal-block h4{margin:0 0 .65rem;font-size:var(--text-base);color:var(--color-text);cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;gap:var(--space-2)}.bolt-analyzer-nominal-block h4:after{content:"BOM lines";font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);border:1px solid var(--color-border);padding:.15rem .4rem;border-radius:var(--radius-xs)}.bolt-analyzer-nominal-block h4:hover:after{color:var(--color-accent);border-color:var(--color-accent)}.bolt-analyzer-bar-row{display:flex;align-items:center;gap:.65rem;margin-bottom:.4rem;cursor:pointer;border-radius:var(--radius-sm);padding:.15rem .25rem;margin-left:-.25rem;margin-right:-.25rem}.bolt-analyzer-bar-row:hover{background:#4a9eff1a}.bolt-analyzer-bar-row:hover .bolt-analyzer-bar-track{border-color:var(--color-accent)}.bolt-analyzer-bar-label{min-width:5.5rem;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-text-muted)}.bolt-analyzer-bar-track{flex:1;height:1.05rem;background:var(--color-surface-raised);border-radius:var(--radius-sm);overflow:hidden;border:1px solid var(--color-border)}.bolt-analyzer-bar-fill{height:100%;background:linear-gradient(90deg,var(--color-accent-dim),var(--color-accent));border-radius:5px;min-width:2px;width:var(--bar-width, 0%);transition:width var(--motion-base)}.bolt-analyzer-bar-qty{min-width:3rem;text-align:right;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--color-accent);font-weight:600}.bolt-analyzer-drilldown{margin-top:var(--space-4);padding:var(--space-3) var(--space-4);border:1px solid var(--color-accent);border-radius:var(--radius-md);background:#4a9eff12}.bolt-analyzer-drilldown[hidden]{display:none!important}.bolt-analyzer-drilldown:not([hidden]){display:block}.bolt-analyzer-drilldown-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-2)}.bolt-analyzer-drilldown-header span{font-weight:700;font-size:.88rem;color:var(--color-text)}.bolt-analyzer-drilldown-body-wrap{max-height:min(42vh,360px);overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface)}.bolt-analyzer-drilldown table{width:100%;border-collapse:collapse;font-size:var(--text-xs)}.bolt-analyzer-drilldown th,.bolt-analyzer-drilldown td{padding:.4rem .55rem;text-align:left;border-bottom:1px solid var(--color-border)}.bolt-analyzer-drilldown th{background:var(--color-surface-raised);color:var(--color-text-muted);font-size:.68rem;text-transform:uppercase;letter-spacing:.04em;position:sticky;top:0;z-index:1}.bolt-analyzer-drilldown tr:hover td{background:var(--color-surface-hover)}.bolt-analyzer-drilldown td.mono{font-family:var(--font-mono);font-size:.72rem}.bolt-subasm-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;display:flex;align-items:center;justify-content:center;padding:var(--space-4);background:#00000073}.bolt-subasm-overlay[hidden]{display:none!important}.bolt-subasm-panel{width:min(420px,100%);max-height:min(72vh,520px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);display:flex;flex-direction:column;overflow:hidden}.bolt-subasm-panel-header{display:flex;align-items:center;justify-content:space-between;padding:.65rem var(--space-4);border-bottom:1px solid var(--color-border);gap:var(--space-2)}.bolt-subasm-panel-header h3{margin:0;font-size:.95rem;font-weight:700}.bolt-subasm-list{margin:0;padding:var(--space-2) 0;overflow:auto;list-style:none}.bolt-subasm-list li{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--color-border);font-size:var(--text-xs)}.bolt-subasm-list li:last-child{border-bottom:none}.bolt-subasm-list .sub-pn{font-family:var(--font-mono);font-size:.72rem;color:var(--color-accent);margin-bottom:.2rem}.bolt-subasm-list .sub-desc{color:var(--color-text-subtle);line-height:1.35}.bolt-analyzer-unparsed{margin-top:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:.35rem var(--space-3);background:var(--color-surface-raised)}.bolt-analyzer-unparsed summary{cursor:pointer;font-size:var(--text-sm);color:var(--color-text-muted)}.bolt-analyzer-unparsed table{width:100%;font-size:var(--text-xs);margin-top:var(--space-2)}.bolt-analyzer-unparsed th,.bolt-analyzer-unparsed td{padding:.25rem .35rem;text-align:left;border-bottom:1px solid var(--color-border)}.bolt-drilldown-subasm-block{margin-top:0;margin-bottom:var(--space-3)}.bolt-drilldown-subasm-block h4{margin-bottom:.35rem}.bolt-drilldown-subasm-block h4:after{content:none!important}.bolt-drilldown-subasm-badge{font-size:.65rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);border:1px solid var(--color-border);padding:.15rem .4rem;border-radius:var(--radius-xs)}.bolt-drilldown-subasm-hint{font-size:.72rem;color:var(--color-text-subtle);margin:0 0 var(--space-2);line-height:1.35}.bolt-drilldown-subasm-label{min-width:5.5rem;max-width:11rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bolt-drilldown-bomlines-title{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle);margin:var(--space-2) 0 .35rem}.history-wrap{margin-top:var(--space-5)}.history-table-wrap{max-height:220px;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md)}.history-table{width:100%;border-collapse:collapse;font-size:.72rem}.history-table th,.history-table td{padding:.35rem .5rem;text-align:left;border-bottom:1px solid var(--color-border)}.history-table th{background:var(--color-surface-raised);color:var(--color-text-muted);position:sticky;top:0}.release-metrics-root{margin-top:.25rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(168px,1fr));gap:.65rem;margin-bottom:var(--space-4)}.metrics-stat{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.55rem .75rem;background:var(--color-surface-raised)}.metrics-stat-label{font-size:.65rem;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-subtle);margin-bottom:.25rem;line-height:1.25}.metrics-stat-value{font-size:1.05rem;font-weight:700;color:var(--color-accent);font-variant-numeric:tabular-nums}.metrics-stat-sub{font-size:.68rem;color:var(--color-text-muted);margin-top:.2rem}.metrics-section-title{font-size:.78rem;font-weight:600;color:var(--color-text-muted);margin:var(--space-4) 0 .45rem}.metrics-edge-table-wrap,.metrics-table-wrap{overflow:auto;margin-bottom:var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md)}.metrics-table-wrap{max-height:min(480px,55vh)}.metrics-edge-table,.metrics-table{width:100%;border-collapse:collapse;font-size:.72rem}.metrics-edge-table th,.metrics-edge-table td,.metrics-table th,.metrics-table td{padding:.4rem .55rem;text-align:left;border-bottom:1px solid var(--color-border)}.metrics-edge-table th,.metrics-table th{background:var(--color-surface-raised);color:var(--color-text-muted);font-weight:600}.metrics-table th{position:sticky;top:0;z-index:1}.metrics-edge-table tr:last-child td{border-bottom:none}.metrics-table .mono{font-family:var(--font-mono);font-size:.72rem}.metrics-wip{color:var(--color-warning)}.metrics-dur{color:var(--color-accent);font-weight:600}.metrics-note{color:var(--color-text-subtle);font-size:.68rem;font-weight:400}.metrics-empty{color:var(--color-text-subtle)}.metrics-chart-wrap{margin:var(--space-3) 0 var(--space-5);padding:.75rem var(--space-4) var(--space-4);border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised)}.metrics-chart-head{display:flex;flex-direction:column;gap:.2rem;margin-bottom:var(--space-2)}.metrics-chart-head .metrics-section-title{margin:0}.metrics-chart-sub{font-size:.72rem;color:var(--color-text-subtle);line-height:1.35}.metrics-chart-svg-inner{width:100%;max-width:100%;overflow:hidden}.metrics-chart-svg-inner svg{display:block;width:100%;height:auto;max-height:320px}.metrics-chart-empty{margin:0;padding:.5rem 0}.metrics-edge-charts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-3);margin-bottom:var(--space-4)}.metrics-mini-chart{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.5rem .65rem .6rem;background:var(--color-surface-raised)}.metrics-mini-chart--empty{min-height:5.5rem;display:flex;flex-direction:column;justify-content:center}.metrics-mini-chart-head{margin-bottom:.35rem}.metrics-mini-chart-title{font-size:.74rem;font-weight:600;color:var(--color-text);line-height:1.3}.metrics-mini-chart-meta{font-size:.64rem;color:var(--color-text-subtle);margin-top:.15rem;line-height:1.35}.metrics-mini-chart .metrics-chart-svg-inner svg{max-height:200px}.metrics-mini-chart .metrics-chart-wrap{margin:0;padding:0;border:none;background:transparent}.metrics-mini-chart .metrics-chart-head{margin-bottom:.25rem}.metrics-mini-chart .metrics-section-title{font-size:.7rem!important}.metrics-mini-chart .metrics-chart-sub{font-size:.65rem!important}#importFile{display:none}.part-modal,.add-manual-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:250;align-items:center;justify-content:center;padding:var(--space-4)}.part-modal.active,.add-manual-modal.active{display:flex}.part-modal-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000a6}.part-modal-dialog{position:relative;width:min(440px,100%);max-height:min(88vh,560px);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;flex-direction:column;box-shadow:var(--shadow-modal)}.part-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--color-border)}.part-modal-title-row{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;min-width:0}.part-modal-title-row h2{margin:0;font-size:var(--text-md);font-weight:700;font-family:var(--font-mono);color:var(--color-accent)}.part-modal-pills{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem}.part-modal-pills .badge-cots,.part-modal-pills .badge-pcba{margin-left:0}.part-modal-close{width:var(--control-h-md);height:var(--control-h-md);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);font-size:1.2rem;cursor:pointer;line-height:1;display:inline-flex;align-items:center;justify-content:center}.part-modal-close:hover{background:var(--color-surface-hover)}.part-modal-body{padding:var(--space-4);overflow:auto;display:flex;flex-direction:column;gap:.65rem}.part-modal-body label{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-subtle)}.part-modal-meta{font-size:var(--text-sm);color:var(--color-text-muted)}.part-modal-stage{font-size:var(--text-sm);color:var(--color-accent);font-weight:600}.part-modal-body input[type=text],.part-modal-body textarea{width:100%;padding:.55rem .65rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);resize:vertical}.part-modal-body input[type=text]{min-height:var(--control-h-md)}.part-modal-body textarea{min-height:5rem}.part-modal-body input[type=text]:focus,.part-modal-body textarea:focus{outline:none;border-color:var(--color-accent)}.part-modal-copy-msg{font-size:.72rem;color:var(--color-text-subtle);margin-right:auto;align-self:center}.part-modal-footer{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);display:flex;justify-content:flex-end;gap:var(--space-2)}.part-modal-screenshot-zone{border:1px dashed var(--color-border);border-radius:var(--radius-md);padding:var(--space-3);text-align:center;font-size:.72rem;color:var(--color-text-subtle);cursor:pointer;background:var(--color-surface-raised);margin-bottom:var(--space-2)}.part-modal-screenshot-zone:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.part-modal-screenshot-zone:hover{border-color:#00d4aa59;color:var(--color-text-muted)}.part-modal-pdf-zone{border:1px dashed rgba(74,158,255,.35);border-radius:var(--radius-md);padding:.85rem;text-align:center;font-size:.74rem;color:var(--color-text-subtle);cursor:pointer;background:#4a9eff0f;margin-bottom:var(--space-2);transition:border-color var(--motion-fast),background var(--motion-fast),color var(--motion-fast)}.part-modal-pdf-zone:hover{border-color:#4a9eff99;color:var(--color-text-muted)}.part-modal-pdf-zone:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.part-modal-pdf-preview{display:grid;gap:.45rem}.part-modal-pdf-thumb{display:block;width:100%;max-width:360px;max-height:240px;object-fit:contain;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm)}.part-modal-pdf-meta{display:flex;flex-wrap:wrap;gap:.4rem .75rem;font-size:.72rem;color:var(--color-text-muted);line-height:1.35}.part-modal-dialog.pdf-drop-active{box-shadow:0 0 0 2px #4a9eff59,var(--shadow-modal)}.part-modal-dialog.pdf-drop-active .part-modal-pdf-zone{border-color:#4a9effb8;background:#4a9eff1f;color:var(--color-text)}.part-modal-screenshot-preview img{display:block;max-width:100%;max-height:200px;margin:0 auto;border-radius:var(--radius-sm);border:1px solid var(--color-border);cursor:zoom-in}#partModal .part-modal-dialog{width:min(920px,calc(100vw - 2rem));max-height:min(94vh,980px)}#partModal .part-modal-header,#partModal .part-modal-footer{padding-left:var(--space-5);padding-right:var(--space-5)}#partModal .part-modal-body{padding:var(--space-5);gap:var(--space-3)}#partModal .part-modal-body label{display:flex;flex-direction:column;gap:.35rem}#partModal .part-modal-row{display:grid;grid-template-columns:minmax(6.5rem,8rem) minmax(0,1fr);gap:.9rem;align-items:start}#partModal .part-modal-rev-field input{width:100%;max-width:8rem;font-family:var(--font-mono)}#partModal .part-modal-altpn-field input{width:100%}#partModal .part-modal-desc{min-height:3.5rem;max-height:5rem}#partModal .part-modal-note{min-height:6rem}#partModal .part-modal-pdf-meta-line{margin-top:.35rem;color:var(--color-text-muted);font-size:.78rem}#partModal .part-modal-pdf-actions{margin-top:.6rem}#partModal .part-modal-file-card{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.85rem;background:#4a9eff0a}#partModal .part-modal-file-name{color:var(--color-text);font-family:var(--font-mono);font-size:var(--text-sm);word-break:break-word}#partModal .part-modal-pdf-wrap--disabled{opacity:.78}#partModal .part-modal-pdf-zone--disabled{cursor:not-allowed;border-color:#8c96aa3d;background:#8c96aa0f;color:var(--color-text-subtle)}#partModal .part-modal-pdf-zone--disabled:hover{border-color:#8c96aa3d;color:var(--color-text-subtle)}#partModal .part-modal-pdf-warning{margin-bottom:0}@media(max-width:640px){#partModal .part-modal-row{grid-template-columns:1fr;gap:var(--space-3)}#partModal .part-modal-rev-field input{max-width:100%}}.part-comments-section{display:grid;gap:.85rem;margin-top:.35rem}.part-modal-section-toggle{display:inline-flex;align-items:center;gap:.45rem;align-self:flex-start;padding:.45rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface-raised);color:var(--color-text);font-family:inherit;font-size:var(--text-sm);cursor:pointer}.part-modal-section-toggle:hover,.part-modal-section-toggle:focus-visible{border-color:var(--color-accent);outline:none}.part-modal-section-toggle-caret{display:inline-block;transition:transform var(--motion-fast);color:var(--color-text-muted)}.part-modal-section-toggle-caret.open{transform:rotate(90deg)}.part-modal-more-info{display:grid;gap:.85rem}.part-comments-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem}.part-comments-head h3{margin:0;font-size:.95rem}.part-comments-count{color:var(--color-text-subtle);font-size:var(--text-xs)}.part-comments-composer,.part-comment-card{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);padding:.85rem}.part-comments-list{display:grid;gap:.85rem}.part-comments-compose-text,.part-comment-reply-input{width:100%;padding:.7rem .8rem;background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit;resize:vertical}.part-comments-compose-text:focus,.part-comment-reply-input:focus,.annotator-text-input:focus{outline:none;border-color:var(--color-accent)}.part-comments-compose-actions{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:.65rem}.part-comment-head{display:flex;justify-content:space-between;gap:.75rem;align-items:flex-start;margin-bottom:.6rem}.part-comment-author{font-weight:600;color:var(--color-text)}.part-comment-meta,.part-comment-message-meta,.part-comment-resolved{color:var(--color-text-subtle);font-size:.72rem}.part-comment-status{border-radius:var(--radius-full);padding:.2rem .55rem;font-size:.72rem;font-weight:600}.part-comment-status.open{background:var(--color-danger-dim);color:#ff8a8c}.part-comment-status.resolved{background:var(--color-success-dim);color:#7be0a0}.part-comment-screenshot{display:block;max-width:100%;max-height:320px;border-radius:var(--radius-md);border:1px solid var(--color-border);margin-bottom:.75rem;cursor:zoom-in}.part-comment-screenshot-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem;margin-bottom:.75rem}.part-comment-screenshot-grid--thread{margin-top:.65rem;margin-bottom:0}.part-comment-thread{display:grid;gap:.55rem}.part-comment-message{border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);padding:.65rem .75rem}.part-comment-message-body{white-space:pre-wrap;line-height:1.45;color:var(--color-text)}.part-comment-actions{margin-top:.75rem}.part-comment-actions-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-top:.65rem}.part-comment-actions-right{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap;margin-left:auto}.part-modal-pdf-open{display:inline-flex;padding:0;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);overflow:hidden;cursor:pointer}.part-modal-pdf-open:hover,.part-modal-pdf-open:focus-visible{border-color:var(--color-accent);outline:none}.part-modal-pdf-open img{display:block}.part-modal-pdf-name{display:inline-flex;align-self:flex-start;margin-top:.55rem;padding:0;border:none;background:transparent;color:var(--color-text);font-size:var(--text-md);font-family:inherit;cursor:pointer;text-align:left}.part-modal-pdf-name:hover,.part-modal-pdf-name:focus-visible{color:var(--color-accent);outline:none}.screenshot-lightbox{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:500;align-items:center;justify-content:center;padding:var(--space-4)}.screenshot-lightbox.active{display:flex}.screenshot-lightbox-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000e0;cursor:zoom-out}.screenshot-lightbox-content{position:relative;z-index:1;display:flex;flex-direction:column;align-items:flex-end;gap:.4rem;width:fit-content;max-width:96vw;max-height:96vh;pointer-events:none}.screenshot-lightbox-content .screenshot-lightbox-close,.screenshot-lightbox-content .screenshot-lightbox-img{pointer-events:auto}.screenshot-lightbox-img{max-width:96vw;max-height:calc(96vh - 4rem);width:auto;height:auto;object-fit:contain;border-radius:var(--radius-sm);box-shadow:var(--shadow-lg);align-self:center}.screenshot-lightbox-close{width:2rem;height:2rem;border:1px solid rgba(255,255,255,.25);border-radius:var(--radius-sm);background:#1e232df2;color:var(--color-text);font-size:1.25rem;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0}.screenshot-lightbox-close:hover{background:#323a48fa;color:var(--color-accent)}.screenshot-lightbox-hint{font-size:.72rem;color:#ffffff80;align-self:center;pointer-events:none}.annotator-modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:420;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.annotator-backdrop{position:absolute;top:0;right:0;bottom:0;left:0;background:#000000c7}.annotator-panel{position:relative;z-index:1;width:min(1100px,96vw);max-height:94vh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:.85rem;padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-modal)}.annotator-header,.annotator-footer,.annotator-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.annotator-header h3{margin:0}.annotator-text-input{min-width:12rem;height:var(--control-h-md);padding:0 var(--control-px-sm);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--control-radius);color:var(--color-text);font-family:inherit}.annotator-hint{margin:0}.annotator-canvas-wrap{min-height:0;overflow:auto;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-bg);padding:.75rem}.annotator-canvas{display:block;max-width:100%;height:auto;margin:0 auto;background:var(--color-bg);cursor:crosshair}.detail-file-path{font-size:var(--text-xs);word-break:break-all}.detail-level-depth{color:var(--color-text-subtle);font-size:.85em}.detail-note--spaced{margin-bottom:var(--space-3)}.detail-placements-table{width:100%;font-size:var(--text-xs);border-collapse:collapse;margin-top:var(--space-2)}.detail-placements-table thead tr{color:var(--color-text-subtle);text-align:left}.detail-placements-table th,.detail-placements-table td{padding:.25rem}.detail-placements-qty{color:var(--color-accent)}.detail-placements-file{word-break:break-all}.bolt-analyzer-section-title--first{margin-top:0}.bolt-analyzer-empty,.bolt-drilldown-empty{color:var(--color-text-subtle);padding:var(--space-3)}.bolt-analyzer-sample-desc{font-size:var(--text-xs);color:var(--color-text-subtle)}.bolt-drilldown-sub-cell{max-width:14rem;vertical-align:middle}.bolt-drilldown-desc-cell{font-size:var(--text-xs);color:var(--color-text-subtle)}.bolt-drilldown-empty-cell{font-size:.68rem;color:var(--color-text-subtle)}.bolt-subasm-preview{font-size:.68rem}.bolt-sub-open-btn{font-size:.65rem;padding:.15rem .4rem}.app-shell{min-height:100vh;display:flex;flex-direction:column;background:var(--color-bg);color:var(--color-text)}.app-nav{display:flex;align-items:center;gap:var(--space-1);margin-left:var(--space-5);flex-wrap:wrap}.app-nav a{color:var(--color-text-muted);text-decoration:none;font-size:var(--text-base);padding:.4rem .7rem;border-radius:var(--radius-sm);transition:background-color var(--motion-fast),color var(--motion-fast)}.app-nav a:hover{color:var(--color-accent);background:var(--color-surface-raised)}.app-nav a.router-link-active{color:var(--color-accent);font-weight:600;background:var(--color-accent-dim)}.app-page{flex:1;min-height:0}.app-auth{margin-left:auto;display:flex;align-items:center;gap:var(--space-2)}.app-auth-chip{display:grid;gap:.08rem;padding:.35rem .7rem;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface-raised);font-size:var(--text-xs);color:var(--color-text-muted)}.app-auth-chip strong{color:var(--color-text);font-size:var(--text-sm)}.auth-panel,.sessions-page{max-width:1100px;margin:0 auto;padding:var(--space-6) var(--space-7)}.sessions-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap;margin-bottom:var(--space-5)}.sessions-header-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.sessions-grid,.cloud-session-grid{display:grid;gap:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-bottom:var(--space-4)}.sessions-list,.cloud-session-list{display:grid;gap:var(--space-3)}.sessions-list-item,.cloud-session-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:.8rem .9rem;background:var(--color-surface-raised);transition:border-color var(--motion-fast),background-color var(--motion-fast)}.sessions-list-item:hover,.cloud-session-list-item:hover{border-color:var(--color-accent)}.sessions-list-title,.cloud-session-title{font-size:var(--text-md);font-weight:700;color:var(--color-text)}.sessions-list-meta,.cloud-session-meta,.cloud-session-list-meta{font-size:var(--text-xs);color:var(--color-text-muted)}.cloud-session-shell{display:grid;gap:var(--space-4);margin-bottom:var(--space-4)}.cloud-session-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.cloud-session-actions{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}
