:root{color-scheme:light;--bg: #f6f5f2;--surface: #ffffff;--text: #171717;--muted: #6b6b6b;--line: #e7e4dd;--accent: #111111;--accent-soft: #f0efec;--success: #1f6b45;--error: #9b2c2c;--shadow: 0 18px 50px rgba(17, 17, 17, .06);font-family:Segoe UI,system-ui,-apple-system,sans-serif;line-height:1.5;font-weight:400;color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px}button,select{font:inherit}.page{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:3rem 0 4rem}.hero{margin-bottom:2rem}.hero__top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;flex-wrap:wrap}.hero__account{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.role-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;background:var(--accent-soft);color:var(--text);font-size:.78rem;font-weight:600;white-space:nowrap}.user-management-menu{position:relative}.user-management-menu__trigger{display:inline-flex;align-items:center;gap:.35rem;padding:0;border:0;background:transparent;cursor:pointer;color:inherit}.user-management-menu__trigger:hover .role-badge,.user-management-menu__trigger:focus-visible .role-badge{background:#e8e6e0}.user-management-menu__trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:999px}.user-management-menu__caret{font-size:.62rem;color:var(--muted);line-height:1}.user-management-menu__panel{position:absolute;top:calc(100% + .5rem);right:0;z-index:20;width:min(42rem,calc(100vw - 2rem));padding:1rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);box-shadow:var(--shadow)}.users-panel__note{margin:0 0 .75rem;color:var(--muted);font-size:.88rem}.users-panel__table{width:100%;border-collapse:collapse;font-size:.86rem}.users-panel__table th,.users-panel__table td{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left}.users-panel__table th{color:var(--muted);font-weight:600}.hero__email{color:var(--muted);font-size:.9rem}.auth-page .auth-panel{max-width:28rem;margin:0 auto}.auth-form{display:grid;gap:1rem}.auth-toggle{margin:1.25rem 0 0;color:var(--muted);font-size:.92rem}.link-button{padding:0;border:0;background:none;color:var(--accent);cursor:pointer;text-decoration:underline}.secondary-button{padding:.55rem .9rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer}.field input[type=email],.field input[type=password],.password-field input[type=text]{width:100%;padding:.7rem .85rem;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text)}.password-field{position:relative}.password-field input[type=password],.password-field input[type=text]{padding-right:4.25rem}.password-field input::-ms-reveal,.password-field input::-ms-clear{display:none}.password-field__toggle{position:absolute;top:50%;right:.7rem;transform:translateY(-50%);padding:.15rem .35rem;border:0;background:none;color:var(--muted);cursor:pointer;font-size:.82rem;text-decoration:underline}.hero__eyebrow{margin:0 0 .5rem;color:var(--muted);font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.hero h1{margin:0;font-size:clamp(2rem,4vw,3rem);font-weight:500;letter-spacing:-.03em}.hero__lead{max-width:42rem;margin:.75rem 0 0;color:var(--muted);font-size:1.05rem}.layout{display:grid;grid-template-columns:1.6fr .9fr;gap:1.25rem}.panel{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:1.5rem;box-shadow:var(--shadow)}.panel h2{margin:0 0 1rem;font-size:1rem;font-weight:600}.panel--side{align-self:start;position:sticky;top:1.5rem}.upload-grid,.upload-groups{display:grid;gap:1rem}.upload-group{border:1px solid var(--line);border-radius:14px;padding:.75rem 1rem 1rem;background:#fcfbfa}.upload-group__toggle{display:block;width:100%;padding:0;border:0;background:transparent;color:var(--text);font-size:.95rem;font-weight:600;text-align:left;cursor:pointer}.upload-group__description{margin:.35rem 0 .75rem;color:var(--muted);font-size:.88rem}.upload-group .secondary-button.full-width{margin-top:.85rem}.upload-card__header{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.upload-card__label{font-size:.95rem;font-weight:600}.upload-card__badge{padding:.15rem .45rem;border-radius:999px;background:var(--accent-soft);color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.06em}.upload-card__hint{margin:0 0 .75rem;color:var(--muted);font-size:.88rem}.upload-card__columns{margin:-.4rem 0 .75rem;color:var(--muted);font-size:.82rem}.upload-card__error{margin:.45rem 0 0;color:var(--error);font-size:.82rem}.upload-card__dropzone{width:100%;min-height:112px;padding:1rem;border:1px dashed #cfcac0;border-radius:16px;background:#fcfbfa;cursor:pointer;transition:border-color .15s ease,background .15s ease}.upload-card__dropzone:hover,.upload-card__dropzone:focus-visible{border-color:#9f9a90;background:#faf9f7;outline:none}.upload-card__dropzone--filled{border-style:solid;background:#fff}.upload-card__dropzone--error{border-color:var(--error);background:#fdf6f6}.upload-card__input{display:none}.upload-card__placeholder,.upload-card__file{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.35rem;min-height:80px;color:var(--muted);text-align:center}.upload-card__icon{width:2rem;height:2rem;border-radius:999px;display:grid;place-items:center;background:var(--accent-soft);color:var(--text);font-size:1.25rem}.upload-card__filename{color:var(--text);font-weight:600}.upload-card__filesize{font-size:.82rem}.upload-card__clear{margin-top:.35rem;padding:0;border:0;background:none;color:var(--muted);text-decoration:underline;cursor:pointer}.field{display:grid;gap:.4rem;margin-bottom:1rem}.field span,.field>label{font-size:.88rem;color:var(--muted)}.field select{width:100%;padding:.7rem .8rem;border:1px solid var(--line);border-radius:12px;background:#fff}.field--checkbox{display:flex;align-items:flex-start;gap:.6rem;margin-bottom:1rem}.field--checkbox input{margin-top:.2rem}.field--checkbox span{font-size:.88rem;color:var(--muted);line-height:1.4}.field--static{margin-bottom:1rem}.primary-button{width:100%;padding:.9rem 1rem;border:0;border-radius:999px;background:var(--accent);color:#fff;cursor:pointer;transition:opacity .15s ease}.primary-button+.primary-button,.primary-button+.secondary-button.full-width{margin-top:.6rem}.secondary-button.full-width{width:100%;padding:.9rem 1rem;border-radius:999px}.primary-button:disabled,.secondary-button:disabled{opacity:.45;cursor:not-allowed}.status{margin:1rem 0 0;font-size:.9rem}.status--error{color:var(--error)}.status--success{color:var(--success)}.status--muted{color:var(--muted);font-size:.88rem;margin:0 0 .75rem}.status--warning{color:#8a5a00}.hero__status{margin-top:.75rem;font-size:.92rem}.hero__status code{font-size:.82rem}.checklist{margin:1.25rem 0 0;padding-left:1.1rem;color:var(--muted);font-size:.9rem}.checklist li+li{margin-top:.35rem}@media(max-width:900px){.layout{grid-template-columns:1fr}.panel--side{position:static}}.collapsible-section{margin:1rem 0;border-top:1px solid var(--line);padding-top:.75rem}.collapsible-section__toggle{width:100%;padding:.5rem 0;border:0;background:none;color:var(--text);font-size:.92rem;font-weight:600;text-align:left;cursor:pointer;transition:color .15s ease}.collapsible-section__toggle:hover{color:var(--muted)}.collapsible-section__content{padding-top:.5rem}.rules-editor__loading{color:var(--muted);font-size:.88rem;margin:.5rem 0}.rules-editor__error{color:var(--error);font-size:.88rem;margin:.5rem 0}.rules-editor__success{color:var(--success);font-size:.88rem;margin:.5rem 0}.rules-editor__table{width:100%;border-collapse:collapse;font-size:.88rem}.rules-editor__table th{text-align:left;font-weight:600;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.04em;padding:0 .25rem .5rem}.rules-editor__table th:last-child{width:2rem}.rules-editor__table td{padding:.25rem;vertical-align:top}.rules-editor__input{width:100%;padding:.5rem .6rem;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:.88rem;transition:border-color .15s ease}.rules-editor__input:focus{outline:none;border-color:var(--accent)}.rules-editor__input--error{border-color:var(--error)}.rules-editor__field-error{display:block;color:var(--error);font-size:.75rem;margin-top:.2rem;line-height:1.3}.rules-editor__remove-btn{width:1.75rem;height:1.75rem;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--muted);font-size:.82rem;cursor:pointer;display:grid;place-items:center;transition:border-color .15s ease,color .15s ease}.rules-editor__remove-btn:hover:not(:disabled){border-color:var(--error);color:var(--error)}.rules-editor__remove-btn:disabled{opacity:.35;cursor:not-allowed}.rules-editor__actions{display:flex;gap:.5rem;margin-top:.75rem}.rules-editor__add-btn{flex:1;padding:.55rem .75rem;border:1px dashed var(--line);border-radius:10px;background:none;color:var(--muted);font-size:.84rem;cursor:pointer;transition:border-color .15s ease,color .15s ease}.rules-editor__add-btn:hover:not(:disabled){border-color:var(--accent);color:var(--text)}.rules-editor__add-btn:disabled{opacity:.35;cursor:not-allowed}.rules-editor__save-btn{flex:1;padding:.55rem .75rem;border:0;border-radius:10px;background:var(--accent);color:#fff;font-size:.84rem;cursor:pointer;transition:opacity .15s ease}.rules-editor__save-btn:disabled{opacity:.4;cursor:not-allowed}.top-parts{margin-top:1.25rem}.top-parts__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.top-parts__lead{margin:.35rem 0 0;color:var(--muted);max-width:42rem}.top-parts__tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1rem}.top-parts__tab{border:1px solid var(--line);border-radius:999px;padding:.35rem .85rem;background:var(--surface);color:var(--text);cursor:pointer;font-size:.86rem}.top-parts__tab.is-active{border-color:var(--accent);background:var(--accent-soft)}.top-parts__page{border:1px solid var(--line);border-radius:16px;padding:1rem 1.1rem 1.1rem;background:#fcfcfb}.top-parts__card-header{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}.top-parts__card-header h3{margin:0;font-size:1.05rem}.top-parts__card-header p{margin:.35rem 0 0;color:var(--muted)}.top-parts__split{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:.85rem;min-height:0}.top-parts__pane{display:flex;flex-direction:column;min-height:0;max-height:min(36rem,70vh);border:1px solid var(--line);border-radius:12px;background:var(--surface)}.top-parts__pane-header{flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem .9rem .55rem;border-bottom:1px solid var(--line)}.top-parts__pane-header h4{margin:0;font-size:.95rem}.top-parts__pane-header p{margin:.2rem 0 0;color:var(--muted);font-size:.8rem}.top-parts__pane-body{flex:1;min-height:0;overflow:auto;padding:0 .9rem .9rem}.top-parts__pane-body>.status{padding-top:.75rem}.top-parts__pane-limit{min-width:8.5rem;margin:0}.top-parts__card-header .top-parts__pane-limit{display:flex;flex-direction:row;align-items:center;gap:.5rem;min-width:0}.top-parts__pane-limit span{font-size:.78rem;color:var(--muted)}.top-parts__bars{display:grid;gap:.45rem;padding-top:.75rem}.top-parts__bar-row{display:grid;grid-template-columns:minmax(5rem,8rem) 1fr minmax(5rem,7rem);gap:.65rem;align-items:center}.top-parts__bar-label{font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.top-parts__bar-track{height:.65rem;border-radius:999px;background:var(--accent-soft);overflow:hidden}.top-parts__bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,#2f75b5,#5b9bd5)}.top-parts__bar-value{font-size:.82rem;text-align:right;color:var(--muted)}.top-parts__table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}.top-parts__table th,.top-parts__table td{padding:.45rem .5rem;border-bottom:1px solid var(--line);text-align:left}.top-parts__table th{position:sticky;top:0;z-index:2;color:var(--muted);font-weight:600;background:var(--surface);box-shadow:0 1px 0 var(--line)}.top-parts__table td{position:relative;z-index:0;background:var(--surface)}.top-parts__table td:nth-child(3),.top-parts__table td:nth-child(4),.top-parts__table th:nth-child(3),.top-parts__table th:nth-child(4){text-align:right}.top-parts__pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.85rem}.top-parts__pager-status{color:var(--muted);font-size:.85rem}.top-parts__pager-controls{display:flex;align-items:center;gap:.6rem}@media(max-width:900px){.top-parts__header{flex-direction:column}.top-parts__split{grid-template-columns:minmax(0,1fr)}.top-parts__card-header{flex-wrap:wrap;align-items:flex-start}.top-parts__pane-header{flex-wrap:wrap}.top-parts__pane{max-height:min(28rem,60vh)}.top-parts__bar-row{grid-template-columns:1fr;gap:.25rem}.top-parts__bar-value{text-align:left}}.price-movement{margin-top:1.25rem}.price-movement__lead,.price-movement__periods{margin:.35rem 0 0;color:var(--muted)}.price-movement__toolbar{margin:.85rem 0 0}.price-movement__search{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.85rem}.price-movement__search input{min-width:12rem;border:1px solid var(--line);border-radius:8px;padding:.35rem .6rem;background:var(--surface);color:var(--text)}.price-movement__summary{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.price-movement__chip{border:1px solid var(--line);border-radius:999px;padding:.35rem .75rem;background:var(--surface);color:var(--text);cursor:pointer;font-size:.82rem}.price-movement__chip.is-active{border-color:var(--accent);background:var(--accent-soft)}.price-movement__table-wrap{overflow:auto;max-height:min(36rem,70vh)}.price-movement__table{width:100%;border-collapse:separate;border-spacing:0;font-size:.86rem}.price-movement__table th,.price-movement__table td{padding:.45rem .55rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.price-movement__table th{position:sticky;top:0;z-index:2;color:var(--muted);background:var(--surface);box-shadow:0 1px 0 var(--line)}.price-movement__table td{background:var(--surface)}.price-movement__table td:nth-child(n+3):nth-child(-n+6),.price-movement__table th:nth-child(n+3):nth-child(-n+6){text-align:right;white-space:nowrap}.price-movement__empty{color:var(--muted);text-align:center}.price-movement__row--changed td{background:#fff8e6}.price-movement__row--new td{background:#eef8ef}.price-movement__row--missing td{background:#fdeeee}.price-movement__row--source_changed td{background:#edf4fc}.price-movement__pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.85rem}.price-movement__pager--top{margin-top:0;margin-bottom:.75rem}.price-movement__pager-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.price-movement__page-size{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.price-movement__page-size select{border:1px solid var(--line);border-radius:8px;padding:.25rem .45rem;background:var(--surface);color:var(--text)}.price-movement__pager-status,.price-movement__pager-page{color:var(--muted);font-size:.85rem}.price-movement__pager-controls{display:flex;align-items:center;gap:.6rem}.bom-variance{margin-top:1.25rem}.bom-variance__lead,.bom-variance__periods{margin:.35rem 0 0;color:var(--muted)}.bom-variance__metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:.75rem;margin:1rem 0}.bom-variance__metric{padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;background:#fcfbfa}.bom-variance__metric-label{display:block;margin-bottom:.25rem;color:var(--muted);font-size:.82rem}.bom-variance__summary{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.bom-variance__chip{border:1px solid var(--line);border-radius:999px;padding:.35rem .75rem;background:var(--surface);color:var(--text);cursor:pointer;font-size:.82rem}.bom-variance__chip.is-active{border-color:var(--accent);background:var(--accent-soft)}.bom-variance__section{margin-top:1.25rem}.bom-variance__table-wrap{overflow:auto;max-height:min(36rem,70vh)}.bom-variance__table{width:100%;border-collapse:separate;border-spacing:0;font-size:.88rem}.bom-variance__table th,.bom-variance__table td{padding:.55rem .65rem;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.bom-variance__table thead{position:sticky;top:0;z-index:2}.bom-variance__table th{color:var(--muted);font-weight:600;background:var(--surface)}.bom-variance__table td{background:var(--surface)}.bom-variance__table thead tr:first-child th[colspan]{text-align:center;border-bottom:1px solid var(--line)}.bom-variance__table thead tr:last-child th{box-shadow:0 1px 0 var(--line)}.bom-variance__table td:nth-child(n+4):nth-child(-n+11),.bom-variance__table thead tr:nth-child(2) th{text-align:right;white-space:nowrap}.bom-variance__calc{margin-top:.15rem;color:var(--muted);font-size:.75rem;font-weight:400}.bom-variance__empty{color:var(--muted);text-align:center}.bom-variance__row--qty_changed td,.bom-variance__row--rate_changed td,.bom-variance__row--both_changed td{background:#fff8e6}.bom-variance__row--new td{background:#eef8ef}.bom-variance__row--removed td{background:#fdeeee}.bom-variance__pager{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.85rem}.bom-variance__pager--top{margin-top:0;margin-bottom:.75rem}.bom-variance__pager-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.85rem}.bom-variance__page-size{display:flex;align-items:center;gap:.4rem;color:var(--muted);font-size:.85rem}.bom-variance__page-size select{border:1px solid var(--line);border-radius:8px;padding:.25rem .45rem;background:var(--surface);color:var(--text)}.bom-variance__pager-status,.bom-variance__pager-page{color:var(--muted);font-size:.85rem}.bom-variance__pager-controls{display:flex;align-items:center;gap:.6rem}.report-viewer{margin-top:1.25rem}.report-viewer__header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start;margin-bottom:1rem}.report-viewer__lead{margin:.35rem 0 0;color:var(--muted);max-width:42rem}.report-viewer__picker{display:flex;flex-wrap:wrap;gap:.75rem 1rem;align-items:flex-end}.report-viewer__picker .field{flex:1 1 16rem;margin-bottom:0}.report-viewer__delete{padding:.55rem 0;border:0;background:none;color:#b42318;cursor:pointer;font:inherit;font-size:.86rem;text-decoration:underline}.report-viewer__delete:disabled{cursor:wait;opacity:.6}.report-viewer__tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.report-viewer__tab{padding:.4rem .75rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);cursor:pointer;font-size:.84rem}.report-viewer__tab.is-active{border-color:var(--accent);background:var(--accent-soft)}.report-viewer__meta{margin:0 0 .75rem;color:var(--muted);font-size:.84rem}.report-viewer__table-wrap{overflow:auto;max-height:min(70vh,42rem);border:1px solid var(--line);border-radius:12px;background:var(--surface)}.report-viewer__sheet{width:max-content;font-size:.82rem}.report-viewer__sheet-header{display:grid;position:sticky;top:0;z-index:2;box-shadow:inset 0 -1px 0 var(--line)}.report-viewer__sheet-body{position:relative}.report-viewer__sheet-row{display:grid;position:absolute;top:0;left:0;box-sizing:border-box}.report-viewer__sheet-row--empty{position:static}.report-viewer__sheet-cell{display:block;min-width:0;min-height:32px;height:32px;padding:.45rem .55rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.report-viewer__sheet-cell--header{color:var(--muted);font-weight:600;background:#f7f7f5}.report-viewer__table{width:max-content;min-width:100%;border-collapse:collapse;font-size:.82rem}.report-viewer__table th,.report-viewer__table td{padding:.4rem .55rem;border-bottom:1px solid var(--line);border-right:1px solid var(--line);text-align:left;vertical-align:top;white-space:nowrap}.report-viewer__table th{position:sticky;top:0;z-index:1;background:#f7f7f5;color:var(--muted);font-weight:600;box-shadow:inset 0 -1px 0 var(--line)}.users-panel__invite{display:grid;gap:.65rem;margin:0 0 .85rem}.users-panel__temp-password{display:grid;gap:.4rem;margin:0 0 .85rem;padding:.75rem;border:1px solid var(--line);border-radius:10px;background:#f7f7f5;font-size:.86rem}.users-panel__temp-password p{margin:0}.users-panel__temp-password code{font-size:1rem;letter-spacing:.04em}.users-panel__role-select{width:100%;padding:.45rem .55rem;border:1px solid var(--line);border-radius:8px;background:#fff;font:inherit;font-size:.86rem}.users-panel__actions{display:flex;flex-wrap:wrap;gap:.65rem .85rem;justify-content:flex-end}.users-panel__disable{padding:0;border:0;background:none;color:var(--muted);cursor:pointer;font:inherit;font-size:.86rem;text-decoration:underline}.users-panel__disable:disabled{cursor:wait;opacity:.6}.users-panel__delete{padding:0;border:0;background:none;color:#b42318;cursor:pointer;font:inherit;font-size:.86rem;text-decoration:underline}.users-panel__delete:disabled{cursor:wait;opacity:.6}
