:root{--color-bg:#f7f8fa;--color-surface:#fff;--color-border:#e2e5ea;--color-border-strong:#c9ced8;--color-text:#1a1d23;--color-text-secondary:#4c525d;--color-text-muted:#666d7a;--color-text-faint:#9aa1ad;--color-accent:#2f5fdb;--color-accent-hover:#2650bd;--color-accent-soft:#eaf0ff;--color-success:#157a4a;--color-success-soft:#e6f5ed;--color-warning:#93650a;--color-warning-soft:#fbf1dc;--color-danger:#a3271f;--color-danger-soft:#fbeae8;--color-neutral-soft:#eef0f3;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"IBM Plex Mono", "SF Mono", Menlo, Consolas, monospace;--radius:8px;--shadow-card:0 1px 2px #14161e0d, 0 4px 16px #14161e0e}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}#root{flex-direction:column;min-height:100vh;display:flex}button{font-family:inherit}a{color:var(--color-accent)}code,.mono{font-family:var(--font-mono)}.app-shell{flex-direction:column;min-height:100vh;display:flex}.app-header{background:var(--color-surface);border-bottom:1px solid var(--color-border);justify-content:space-between;align-items:center;padding:22px 40px;display:flex}.app-header__brand{align-items:baseline;gap:11px;display:flex}.app-header__logo{letter-spacing:-.01em;font-size:22px;font-weight:700}.app-header__tagline{color:var(--color-text-secondary);font-size:14px}.privacy-chip{color:var(--color-success);background:var(--color-success-soft);border-radius:999px;padding:7px 14px;font-size:12.5px;font-weight:500}.app-main{flex-direction:column;flex:1;align-items:center;gap:32px;padding:56px 40px 96px;display:flex}.step-indicator{gap:8px;width:100%;max-width:820px;margin:0;padding:0;list-style:none;display:flex}.step-indicator__item{color:var(--color-text-faint);flex:1;align-items:center;gap:9px;font-size:14.5px;display:flex}.step-indicator__marker{border:1.5px solid var(--color-border-strong);width:24px;height:24px;color:var(--color-text-faint);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:12.5px;display:flex}.step-indicator__item--current .step-indicator__marker{border-color:var(--color-accent);color:var(--color-accent);font-weight:600}.step-indicator__item--current .step-indicator__label{color:var(--color-text);font-weight:600}.step-indicator__item--done .step-indicator__marker{background:var(--color-accent);border-color:var(--color-accent);color:#fff}.step-indicator__item--done .step-indicator__label{color:var(--color-text-muted)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);width:100%;max-width:680px;padding:40px}.card--wide{max-width:1200px}.card--center{text-align:center;padding:72px 40px}.card__title{letter-spacing:-.01em;margin:0 0 8px;font-size:23px;font-weight:700}.card__description{color:var(--color-text-secondary);margin:0 0 26px;font-size:15px}.card__actions{justify-content:flex-end;gap:14px;margin-top:28px;display:flex}.analyzing-text{color:var(--color-text-muted);font-size:15px}.activity-indicator{justify-content:center;gap:6px;margin:0 0 18px;display:flex}.activity-indicator__dot{background:var(--color-accent);opacity:.3;border-radius:50%;width:8px;height:8px;animation:1.1s ease-in-out infinite activity-indicator-pulse}.activity-indicator__dot:nth-child(2){animation-delay:.15s}.activity-indicator__dot:nth-child(3){animation-delay:.3s}@keyframes activity-indicator-pulse{0%,80%,to{opacity:.3;transform:scale(.85)}40%{opacity:1;transform:scale(1)}}@media (prefers-reduced-motion:reduce){.activity-indicator__dot{opacity:.7;animation:none}}.button{cursor:pointer;border:1px solid #0000;border-radius:7px;padding:12px 22px;font-size:14px;font-weight:600;transition:background-color .12s,border-color .12s}.button--primary{background:var(--color-accent);color:#fff}.button--primary:hover:not(:disabled){background:var(--color-accent-hover)}.button--primary:disabled{background:var(--color-neutral-soft);color:var(--color-text-faint);cursor:not-allowed}.button--ghost{background:var(--color-surface);border-color:var(--color-border-strong);color:var(--color-text)}.button--ghost:hover{border-color:var(--color-text-muted)}.button:disabled{cursor:not-allowed}.button--ghost:disabled,.button--danger:disabled{opacity:.5}.button--ghost:disabled:hover{border-color:var(--color-border-strong)}.button--danger:disabled:hover{opacity:.5}.dropzone{border:1.5px dashed var(--color-border-strong);border-radius:var(--radius);text-align:center;cursor:pointer;padding:56px 32px;transition:border-color .12s,background-color .12s}.dropzone:hover,.dropzone--active{border-color:var(--color-accent);background:var(--color-accent-soft)}.dropzone--disabled{cursor:not-allowed;opacity:.5}.dropzone--disabled:hover{border-color:var(--color-border-strong);background:0 0}.dropzone__icon{margin-bottom:10px;font-size:30px}.dropzone__title{margin:0;font-size:15px;font-weight:600}.dropzone__subtitle{color:var(--color-text-muted);margin:5px 0 18px;font-size:13.5px}.dropzone__button{background:var(--color-surface);border:1px solid var(--color-border-strong);border-radius:7px;padding:10px 18px;font-size:13.5px;font-weight:600;display:inline-block}.dropzone__error{color:var(--color-danger);margin:14px 0 0;font-size:13px}.privacy-note{color:var(--color-text-muted);margin:18px 0 0;font-size:12.5px}.large-file-advisory{color:var(--color-text-muted);margin:0 0 16px;font-size:12.5px}.sheet-choice-list{flex-direction:column;gap:8px;display:flex}.mapping-fields{gap:20px;margin-bottom:26px;display:grid}.mapping-field{flex-direction:column;gap:5px;display:flex}.mapping-field__label{font-size:13.5px;font-weight:600}.mapping-field select{border:1px solid var(--color-border-strong);background:var(--color-surface);border-radius:7px;padding:11px 14px;font-size:14px}.mapping-field__hint{color:var(--color-text-faint);font-size:12px}.inline-error{color:var(--color-danger);margin:0 0 16px;font-size:13px}.inline-error--page{background:var(--color-danger-soft);border-radius:6px;width:100%;max-width:680px;padding:12px 16px}.table-preview__label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.02em;margin:0 0 8px;font-size:12px}.table-scroll{border:1px solid var(--color-border);border-radius:6px;overflow-x:auto}.table-preview .table-scroll table th,.table-preview .table-scroll table td,.table-scroll--results table th,.table-scroll--results table td{padding:10px 14px;font-size:13.5px}.table-preview .table-scroll table th,.table-scroll--results table th{font-size:12.5px}.table-scroll--results table th{white-space:normal;line-height:1.3}.table-scroll--results table th:nth-child(6){overflow-wrap:anywhere}table{border-collapse:collapse;width:100%;font-size:13px}th,td{text-align:left;border-bottom:1px solid var(--color-border);white-space:nowrap;padding:8px 12px}th{background:var(--color-neutral-soft);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.02em;font-size:12px;font-weight:600}td{color:var(--color-text)}.results-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:24px;display:flex}.results-header__title{min-width:0}.results-header__actions{flex-wrap:wrap;flex:0 auto;justify-content:flex-end;gap:12px;min-width:0;max-width:100%;margin-left:auto;display:flex}.summary-strip{flex-wrap:wrap;gap:10px;margin-bottom:24px;display:flex}.results-search-row{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:24px;display:flex}.results-search{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;max-width:360px;color:var(--color-text);box-sizing:border-box;border-radius:8px;padding:8px 14px;font-size:13.5px}.results-search:focus{border-color:var(--color-accent);outline:none}.results-sort{border:1px solid var(--color-border-strong);background:var(--color-surface);min-width:0;max-width:100%;color:var(--color-text);box-sizing:border-box;border-radius:8px;flex:0 auto;padding:8px 14px;font-size:13.5px}.results-sort:focus{border-color:var(--color-accent);outline:none}.results-empty-state{color:var(--color-text-muted);padding:24px 0}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.summary-pill{border:1px solid var(--color-border-strong);background:var(--color-surface);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:13.5px;display:flex}.summary-pill--active{border-color:var(--color-accent);background:var(--color-accent-soft)}.table-scroll--results{max-height:640px;overflow-y:auto}.results-row td{white-space:normal}.results-row--expandable{cursor:pointer}.results-row--expandable:hover{background:var(--color-neutral-soft)}.results-row-detail td{background:var(--color-bg);white-space:normal}.conflict-warning{color:var(--color-danger);margin:0 0 10px;font-size:13.5px;font-weight:500}.candidates-label{color:var(--color-text-faint);text-transform:uppercase;letter-spacing:.02em;margin:0 0 8px;font-size:12.5px}.candidates-list{flex-direction:column;gap:6px;margin:0;padding:0;font-size:13.5px;list-style:none;display:flex}.candidates-list__reasons{color:var(--color-text-faint);margin-top:2px;font-size:12px;display:block}.results-table--virtualized{table-layout:fixed}.table-scroll--results-virtualized{overflow-anchor:none}.results-table--virtualized col:first-child{width:10%}.results-table--virtualized col:nth-child(2){width:32%}.results-table--virtualized col:nth-child(3){width:10%}.results-table--virtualized col:nth-child(4){width:26%}.results-table--virtualized col:nth-child(5){width:14%}.results-table--virtualized col:nth-child(6){width:8%}.results-table--virtualized .results-row td,.results-table--virtualized .results-row-detail td{overflow-wrap:anywhere}.badge{border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:600;display:inline-block}.badge--success{background:var(--color-success-soft);color:var(--color-success)}.badge--warning{background:var(--color-warning-soft);color:var(--color-warning)}.badge--neutral{background:var(--color-neutral-soft);color:var(--color-text-muted)}.confidence-pill{color:var(--color-text-muted);font-size:12.5px}.confidence-pill[data-level=high]{color:var(--color-success)}.confidence-pill[data-level=medium]{color:var(--color-warning)}.confidence-pill[data-level=low]{color:var(--color-text-faint)}@media (width<=640px){.app-header{flex-direction:column;align-items:flex-start;gap:8px}.card{padding:20px}}.app-header__actions{align-items:center;gap:14px;min-width:0;display:flex}.active-catalog-chip{min-width:0;max-width:320px;color:var(--color-text-secondary);white-space:nowrap;text-overflow:ellipsis;flex-shrink:1;align-items:baseline;font-size:12.5px;display:inline-flex;overflow:hidden}.active-catalog-chip__filename{text-overflow:ellipsis;white-space:nowrap;font-weight:500;overflow:hidden}.active-catalog-chip__meta{white-space:nowrap;flex-shrink:0}@media (width<=900px){.active-catalog-chip{max-width:160px}}@media (width<=640px){.active-catalog-chip{max-width:100%}}.origin-pill{color:var(--color-text-faint);margin-top:4px;font-size:11px;display:block}.supplier-select{flex-direction:column;gap:12px;margin-bottom:8px;display:flex}.supplier-select__option{cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.supplier-select__dropdown,.supplier-select__name-input{border:1px solid var(--color-border-strong);border-radius:7px;max-width:380px;margin-left:24px;padding:10px 12px;font-size:14px}.row-action-panel{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:flex-end;gap:20px;margin-top:20px;padding-top:20px;display:flex}.row-action-panel__pick{flex-direction:column;gap:8px;display:flex}.row-action-panel__label{color:var(--color-text-muted);flex-direction:column;gap:5px;font-size:12.5px;font-weight:600;display:flex}.row-action-panel__label .master-combobox{min-width:320px}.row-action-panel__label .master-combobox__input{padding:10px 12px;font-size:14px}.row-action-panel__remember{color:var(--color-text-muted);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.row-action-panel__buttons{gap:8px;display:flex}.button--small{padding:6px 12px;font-size:13px}.button--danger{background:var(--color-danger);color:#fff}.button--danger:hover{opacity:.9}.undo-banner{background:var(--color-text);color:#fff;z-index:50;border-radius:8px;align-items:center;gap:16px;padding:14px 20px;font-size:13.5px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 4px 16px #0003}.undo-banner .button--ghost{color:#fff;background:0 0;border-color:#fff6}.undo-banner__actions{align-items:center;gap:4px;display:flex}.undo-banner__dismiss{color:#ffffffb3;cursor:pointer;background:0 0;border:none;padding:4px;font-size:14px}.rules-view{flex-direction:column;gap:32px;width:100%;max-width:1200px;display:flex}.rules-view__header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.rules-section{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:28px}.rules-section__title{letter-spacing:-.005em;margin:0 0 18px;font-size:17px;font-weight:700}.rules-empty{color:var(--color-text-secondary);margin:0;font-size:14.5px}.rules-row-actions{white-space:nowrap;align-items:center;gap:6px;display:flex}.rules-row-actions__confirm{color:var(--color-text-muted);margin-right:4px;font-size:12.5px}.diff-summary{flex-wrap:wrap;gap:12px;margin-bottom:18px;display:flex}.diff-summary__row{background:var(--color-neutral-soft);border:none;border-radius:8px;align-items:center;gap:8px;padding:11px 16px;font-family:inherit;font-size:14px;display:flex}.diff-summary__row--clickable{cursor:pointer}.diff-summary__row--clickable:hover{background:var(--color-accent-soft)}.diff-summary__row--warning{background:var(--color-warning-soft);color:var(--color-warning)}.diff-summary__count{font-size:16px;font-weight:700}.diff-warnings{margin-bottom:12px}.diff-detail{background:var(--color-bg);border:1px solid var(--color-border);border-radius:8px;max-height:360px;margin-bottom:20px;padding:16px 20px;overflow-y:auto}.diff-detail__list{flex-direction:column;gap:8px;margin:0;padding:0;font-size:14px;list-style:none;display:flex}.diff-detail__reason{color:var(--color-text-faint);margin-top:2px;font-size:12px;display:block}.diff-detail-paginated{margin-bottom:20px}.diff-detail-paginated .diff-detail{min-height:360px;margin-bottom:8px}.diff-detail__pagination{color:var(--color-text-faint);justify-content:space-between;align-items:center;gap:10px;font-size:12px;display:flex}.rules-row--broken{background:var(--color-danger-soft)}.rules-attention-summary{background:var(--color-warning-soft);color:var(--color-warning);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;padding:10px 16px;font-size:13.5px;display:flex}.rules-attention-summary__count{font-weight:700}.rules-attention-summary__filter{cursor:pointer;align-items:center;gap:6px;font-weight:500;display:flex}.master-combobox{min-width:260px;position:relative}.master-combobox__input{border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;font-size:13.5px;font-family:var(--font-sans);box-sizing:border-box;border-radius:6px;padding:8px 10px}.master-combobox__input:focus{outline:2px solid var(--color-accent);outline-offset:1px}.master-combobox__listbox{z-index:20;background:var(--color-surface);border:1px solid var(--color-border-strong);max-height:260px;box-shadow:var(--shadow-card);border-radius:8px;margin:0;padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;right:0;overflow-y:auto}.master-combobox__option{cursor:pointer;border-radius:6px;align-items:baseline;gap:8px;padding:6px 8px;font-size:13px;display:flex}.master-combobox__option-name{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}.master-combobox__option-sku{color:var(--color-text-faint);flex-shrink:0;font-size:12px}.master-combobox__option-tag{color:var(--color-accent);background:var(--color-accent-soft);border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:11px;font-weight:600}.master-combobox__option--highlighted{background:var(--color-accent-soft)}.master-combobox__option--selected{font-weight:600}.master-combobox__empty,.master-combobox__hint{color:var(--color-text-faint);padding:6px 8px;font-size:12px}.rules-row__warning{color:var(--color-danger);font-size:12.5px;font-weight:600}.rules-row__canonical{flex-direction:column;gap:2px;display:flex}.update-consequences-banner{background:var(--color-success-soft);border:1px solid var(--color-success);border-radius:8px;max-width:680px;margin-bottom:20px;padding:16px 20px;font-size:14px}.update-consequences-banner ul{margin:8px 0 0;padding-left:20px}.backup-actions{gap:12px;display:flex}.backup-actions__import-label{cursor:pointer;align-items:center;display:inline-flex}.how-it-works__overlay{z-index:60;background:#14161e66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.how-it-works__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);width:100%;max-width:480px;max-height:calc(100vh - 48px);padding:28px 28px 24px;overflow-y:auto}.how-it-works__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:18px;display:flex}.how-it-works__title{letter-spacing:-.01em;margin:0;font-size:19px;font-weight:700}.how-it-works__close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 4px;font-size:22px;line-height:1}.how-it-works__close:hover{color:var(--color-text);background:var(--color-neutral-soft)}.how-it-works__steps{flex-direction:column;gap:16px;margin:0 0 20px;padding:0;list-style:none;display:flex}.how-it-works__step{align-items:flex-start;gap:12px;display:flex}.how-it-works__step-number{border:1.5px solid var(--color-border-strong);width:22px;height:22px;color:var(--color-text-muted);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;margin-top:1px;font-size:12px;font-weight:600;display:flex}.how-it-works__step-text{min-width:0}.how-it-works__step-title{color:var(--color-text);margin:0 0 3px;font-size:14.5px;font-weight:600}.how-it-works__step-body{color:var(--color-text-secondary);margin:0;font-size:13.5px;line-height:1.45}.how-it-works__privacy{border-top:1px solid var(--color-border);color:var(--color-success);margin:0 0 20px;padding-top:16px;font-size:12.5px;font-weight:500}.how-it-works__footer{justify-content:flex-end;display:flex}.upgrade-dialog__overlay{z-index:60;background:#14161e66;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.upgrade-dialog__panel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);box-shadow:var(--shadow-card);width:100%;max-width:440px;max-height:calc(100vh - 48px);padding:28px 28px 24px;overflow-y:auto}.upgrade-dialog__header{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:14px;display:flex}.upgrade-dialog__title{letter-spacing:-.01em;margin:0;font-size:18px;font-weight:700}.upgrade-dialog__close{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;padding:2px 4px;font-size:22px;line-height:1}.upgrade-dialog__close:hover{color:var(--color-text);background:var(--color-neutral-soft)}.upgrade-dialog__price{color:var(--color-text);margin:0 0 12px;font-size:20px;font-weight:700}.upgrade-dialog__included{color:var(--color-text-secondary);margin:0 0 14px;padding-left:20px;font-size:13.5px;line-height:1.5}.upgrade-dialog__note{color:var(--color-text-faint);margin:0 0 18px;font-size:12px;line-height:1.45}.upgrade-dialog__label{color:var(--color-text);margin-bottom:6px;font-size:12.5px;font-weight:600;display:block}.upgrade-dialog__input{box-sizing:border-box;border:1px solid var(--color-border-strong);background:var(--color-surface);width:100%;color:var(--color-text);border-radius:6px;margin-bottom:6px;padding:9px 12px;font-size:14px}.upgrade-dialog__buy-hint{color:var(--color-text-faint);margin:4px 0 0;font-size:12px}.upgrade-dialog__success{color:var(--color-success);margin:0 0 18px;font-size:14px;font-weight:500}.upgrade-dialog__footer{justify-content:flex-end;gap:10px;margin-top:16px;display:flex}
