:root{--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans", "Liberation Sans", system-ui, sans-serif;--font-mono:ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, "Liberation Mono", monospace;--fs-xs:.75rem;--fs-sm:.8125rem;--fs-base:1rem;--fs-md:1.125rem;--fs-lg:1.375rem;--fs-xl:1.875rem;--fs-2xl:2.75rem;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--container-w:900px;--container-w-narrow:480px;--dur-fast:.14s;--dur-med:.24s;--dur-slow:.42s;--ease:cubic-bezier(.2, .7, .2, 1);--bg:#f3efe3;--bg-raised:#fffdf8;--bg-sunken:#eae2cd;--ink:#201c15;--ink-muted:#5c5545;--ink-faint:#8c8371;--border:#ddd2b4;--border-strong:#c4b48a;--accent:#8a4b0f;--accent-strong:#6e3c0b;--accent-ink:#fffaf0;--accent-soft:#f0dcb4;--focus-ring:#8a4b0f;--tier-high:#1f6f5c;--tier-high-soft:#dcece4;--tier-medium:#93600a;--tier-medium-soft:#f2e3bd;--tier-low:#a13a24;--tier-low-soft:#f5ddd2;--tier-neutral:#6b6455;--tier-neutral-soft:#e7ddc6;--shadow-sm:0 1px 2px #20180814;--shadow-md:0 6px 20px #2018081a, 0 1px 3px #20180814;--dot-color:#2018080e;--scrim:#18130a80}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16140e;--bg-raised:#211e15;--bg-sunken:#100e09;--ink:#f2ecdb;--ink-muted:#b6ac93;--ink-faint:#837a64;--border:#3a3526;--border-strong:#4e4730;--accent:#e2a13f;--accent-strong:#f0b458;--accent-ink:#1c1204;--accent-soft:#3c2c10;--focus-ring:#e2a13f;--tier-high:#5cc4a8;--tier-high-soft:#17352b;--tier-medium:#e2a13f;--tier-medium-soft:#3a2c10;--tier-low:#e2795d;--tier-low-soft:#3a1e15;--tier-neutral:#a89e84;--tier-neutral-soft:#2a2618;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 10px 28px #00000073, 0 1px 3px #0006;--dot-color:#f2ecdb0b;--scrim:#060502a6}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%}body{background-color:var(--bg);background-image:radial-gradient(var(--dot-color) 1px, transparent 1px);color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-base);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;background-size:22px 22px;margin:0;line-height:1.5}h1,h2,h3,p,figure{margin:0}button,input,textarea,select{font:inherit;color:inherit}a{color:var(--accent);text-underline-offset:2px;text-decoration-thickness:1.5px}a:hover{color:var(--accent-strong)}::selection{background:var(--accent-soft);color:var(--ink)}:focus{outline:none}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:var(--radius-sm)}.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}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.muted{color:var(--ink-muted)}.eyebrow{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);font-weight:700;display:inline-block}.app-shell{flex-direction:column;min-height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg-raised);position:relative}.app-header__inner{max-width:var(--container-w);padding:var(--sp-4) var(--sp-5);justify-content:space-between;align-items:center;gap:var(--sp-4);margin:0 auto;display:flex}.app-header:after{content:"";background-image:repeating-linear-gradient(90deg, var(--border-strong) 0 3px, transparent 3px 9px);opacity:.65;height:5px;position:absolute;bottom:-1px;left:0;right:0}.brand{align-items:baseline;gap:var(--sp-3);color:var(--ink);text-decoration:none;display:flex}.brand:hover{color:var(--ink)}.brand__mark{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-md);letter-spacing:.04em;background:var(--ink);color:var(--bg-raised);border-radius:var(--radius-sm);padding:2px 7px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .brand__mark{background:var(--accent);color:var(--accent-ink)}}.brand__tag{font-size:var(--fs-sm);color:var(--ink-faint);display:none}@media (width>=560px){.brand__tag{display:inline}}.nav{gap:var(--sp-5);font-size:var(--fs-sm);font-weight:600;display:flex}.nav a{color:var(--ink-muted);text-decoration:none}.nav a:hover{color:var(--accent)}.app-main{flex:1;width:100%}.container{max-width:var(--container-w);padding:var(--sp-6) var(--sp-5) var(--sp-8);margin:0 auto}.container--narrow{max-width:var(--container-w-narrow)}.view{animation:fade-up var(--dur-slow) var(--ease) both}.btn{appearance:none;border:1px solid var(--border-strong);background:var(--bg-raised);color:var(--ink);font-weight:600;font-size:var(--fs-sm);border-radius:var(--radius-md);cursor:pointer;align-items:center;gap:var(--sp-2);transition:transform var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), opacity var(--dur-fast) var(--ease);padding:10px 18px;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--accent);transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn--primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.btn--ghost{color:var(--ink-muted);background:0 0;border-color:#0000}.btn--ghost:hover:not(:disabled){color:var(--accent);border-color:#0000;transform:none}.btn--block{justify-content:center;width:100%}.btn--sm{font-size:var(--fs-xs);padding:6px 12px}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field__label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-muted);font-weight:700}.field__hint{font-size:var(--fs-sm);color:var(--ink-faint)}.input,.textarea,.select{background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:var(--radius-md);width:100%;font-size:var(--fs-base);color:var(--ink);transition:border-color var(--dur-fast) var(--ease);padding:11px 14px}.input::placeholder,.textarea::placeholder{color:var(--ink-faint)}.input:focus,.textarea:focus,.select:focus{border-color:var(--accent)}.textarea{resize:vertical;min-height:160px;font-family:var(--font-mono);font-size:var(--fs-sm);line-height:1.6}.select{cursor:pointer}.input--underline{border:none;border-bottom:2px solid var(--border-strong);font-size:var(--fs-lg);font-family:var(--font-mono);background:0 0;border-radius:0;padding:12px 2px}.input--underline:focus{border-bottom-color:var(--accent)}.search-row{gap:var(--sp-3);align-items:flex-end;display:flex}.search-row .field{flex:1}.tag{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.04em;text-transform:uppercase;background:var(--tier-neutral-soft);color:var(--tier-neutral);clip-path:polygon(0 0,100% 0,100% 100%,9px 100%,0 calc(100% - 9px));align-items:center;gap:5px;padding:4px 10px 4px 8px;font-weight:700;display:inline-flex}.tag--high{background:var(--tier-high-soft);color:var(--tier-high)}.tag--medium{background:var(--tier-medium-soft);color:var(--tier-medium)}.tag--low{background:var(--tier-low-soft);color:var(--tier-low)}.tag--neutral{background:var(--tier-neutral-soft);color:var(--tier-neutral)}.status-pill{font-family:var(--font-mono);font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;background:var(--tier-neutral-soft);color:var(--tier-neutral);border-radius:999px;align-items:center;gap:6px;padding:5px 12px 5px 10px;font-weight:700;display:inline-flex}.status-pill:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.status-pill--running:before{animation:pulse 1.6s var(--ease) infinite}.status-pill--done{background:var(--tier-high-soft);color:var(--tier-high)}.status-pill--failed{background:var(--tier-low-soft);color:var(--tier-low)}.status-pill--running{background:var(--tier-medium-soft);color:var(--tier-medium)}.confidence{align-items:center;gap:var(--sp-3);display:flex}.confidence__track{background:var(--bg-sunken);border-radius:999px;flex:1;height:8px;overflow:hidden}.confidence__fill{background:var(--tier-neutral);height:100%;animation:bar-fill var(--dur-slow) var(--ease) both;border-radius:999px;animation-delay:60ms}.confidence--high .confidence__fill{background:var(--tier-high)}.confidence--medium .confidence__fill{background:var(--tier-medium)}.confidence--low .confidence__fill{background:var(--tier-low)}.confidence__value{font-family:var(--font-mono);font-size:var(--fs-sm);text-align:right;min-width:3.2em;font-weight:700}.confidence--sm .confidence__track{height:6px}.progress-track{background:var(--bg-sunken);border:1px solid var(--border);border-radius:999px;height:10px;overflow:hidden}.progress-fill{background:var(--accent);height:100%;transition:width var(--dur-med) var(--ease);border-radius:999px}.card{background:var(--bg-raised);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.hero{padding:var(--sp-7) 0 var(--sp-6)}.hero h1{font-size:var(--fs-2xl);letter-spacing:-.02em;margin-top:var(--sp-3);max-width:16ch;font-weight:800;line-height:1.08}.hero p{margin-top:var(--sp-4);font-size:var(--fs-md);color:var(--ink-muted);max-width:46ch}.hero form{margin-top:var(--sp-6);max-width:640px}.hero__hint{margin-top:var(--sp-2);font-size:var(--fs-sm);color:var(--ink-faint)}.result-list{gap:var(--sp-4);margin-top:var(--sp-6);flex-direction:column;display:flex}.candidate-card{padding:var(--sp-5);border-left-style:solid;border-left-width:5px;border-left-color:var(--tier-neutral);animation:fade-up var(--dur-slow) var(--ease) both}.candidate-card--high{border-left-color:var(--tier-high)}.candidate-card--medium{border-left-color:var(--tier-medium)}.candidate-card--low{border-left-color:var(--tier-low)}.candidate-card__head{justify-content:space-between;align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;display:flex}.candidate-card__nsn{font-family:var(--font-mono);font-size:var(--fs-md);letter-spacing:.02em;font-weight:700}.candidate-card__price{font-family:var(--font-mono);font-size:var(--fs-md);color:var(--accent);font-weight:700}.nsn-copy{font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-user-select:text;user-select:text;background:0 0;border:0;padding:0;position:relative}.nsn-copy:hover,.nsn-copy:focus-visible{color:var(--accent)}.nsn-copy__badge{background:var(--accent);color:var(--accent-ink);font-family:var(--font-mono);font-size:var(--fs-xs);opacity:0;pointer-events:none;border-radius:3px;padding:1px 6px;font-weight:600;transition:opacity .12s;position:absolute;bottom:calc(100% + 2px);left:0}.nsn-copy__badge--on{opacity:1}.record-link{font-size:var(--fs-sm);color:var(--accent);white-space:nowrap;margin-left:auto;font-weight:600;text-decoration:none}.record-link:hover,.record-link:focus-visible{color:var(--accent-strong);text-decoration:underline}.candidate-card__name{margin-top:var(--sp-1);font-size:var(--fs-base);font-weight:600}.candidate-card__meta{font-size:var(--fs-sm);color:var(--ink-muted);margin-top:2px}.candidate-card__confidence{margin-top:var(--sp-4)}.evidence-list{margin:var(--sp-3) 0 0;flex-direction:column;gap:6px;padding:0;list-style:none;display:flex}.evidence-list li{padding-left:var(--sp-4);font-size:var(--fs-sm);color:var(--ink-muted);font-family:var(--font-mono);position:relative}.evidence-list li:before{content:"";background:var(--border-strong);border-radius:1px;width:5px;height:5px;position:absolute;top:.6em;left:2px;transform:rotate(45deg)}.no-match-panel{margin-top:var(--sp-6);padding:var(--sp-5);animation:fade-up var(--dur-slow) var(--ease) both}.no-match-panel p{margin-top:var(--sp-2);color:var(--ink-muted);max-width:60ch}.data-footer{margin-top:var(--sp-6);padding-top:var(--sp-4);border-top:1px dashed var(--border-strong);justify-content:space-between;gap:var(--sp-2);font-size:var(--fs-xs);color:var(--ink-faint);flex-wrap:wrap;display:flex}.data-footer strong{color:var(--ink-muted);font-family:var(--font-mono)}.upload-cta{margin-top:var(--sp-8);padding:var(--sp-5);justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.upload-cta h2{font-size:var(--fs-md);font-weight:700}.upload-cta p{color:var(--ink-muted);font-size:var(--fs-sm);margin-top:4px}.tabs{border:1px solid var(--border-strong);border-radius:var(--radius-md);background:var(--bg-sunken);gap:2px;padding:3px;display:inline-flex}.tabs__btn{appearance:none;font-size:var(--fs-sm);color:var(--ink-muted);border-radius:calc(var(--radius-md) - 3px);cursor:pointer;background:0 0;border:none;padding:8px 18px;font-weight:600}.tabs__btn--active{background:var(--bg-raised);color:var(--ink);box-shadow:var(--shadow-sm)}.upload-panel{margin-top:var(--sp-5);padding:var(--sp-6)}.dropzone{margin-top:var(--sp-5);border:2px dashed var(--border-strong);border-radius:var(--radius-md);padding:var(--sp-7) var(--sp-5);text-align:center;cursor:pointer;transition:border-color var(--dur-fast) var(--ease), background var(--dur-fast) var(--ease);background:var(--bg-sunken);display:block}.dropzone__icon{width:28px;height:28px;margin-bottom:var(--sp-2);color:var(--ink-faint)}.dropzone:hover,.dropzone--active{border-color:var(--accent);background:var(--accent-soft)}.dropzone:has(input:focus-visible){border-color:var(--accent);outline:2px solid var(--focus-ring);outline-offset:2px}.dropzone__filename{margin-top:var(--sp-2);font-family:var(--font-mono);font-size:var(--fs-sm);color:var(--ink);font-weight:600}.upload-meta{margin-top:var(--sp-5);gap:var(--sp-4);animation:fade-up var(--dur-med) var(--ease) both;flex-direction:column;display:flex}.upload-meta__row{gap:var(--sp-4);flex-wrap:wrap;display:flex}.upload-meta__row .field{flex:1;min-width:220px}.row-count{font-size:var(--fs-sm);color:var(--ink-muted)}.row-count strong{font-family:var(--font-mono);color:var(--ink)}.row-count--over strong{color:var(--tier-low)}.upload-actions{margin-top:var(--sp-6);align-items:center;gap:var(--sp-4);display:flex}.error-panel{margin-top:var(--sp-4);padding:var(--sp-4) var(--sp-4);border:1px solid var(--tier-low);background:var(--tier-low-soft);border-radius:var(--radius-md);color:var(--tier-low);font-size:var(--fs-sm);gap:var(--sp-2);align-items:flex-start;display:flex}.error-panel .icon{flex-shrink:0;margin-top:2px}.error-panel .btn{flex-shrink:0;margin-left:auto}.job-empty{margin-top:var(--sp-5)}.load-more{justify-content:center;align-items:center;gap:var(--sp-2);display:flex}.connection-banner{margin-bottom:var(--sp-4);padding:var(--sp-4);border:1px solid var(--tier-medium);background:var(--tier-medium-soft);border-radius:var(--radius-md);color:var(--tier-medium);font-size:var(--fs-sm);align-items:center;gap:var(--sp-3);flex-wrap:wrap;font-weight:600;display:flex}.connection-banner .btn{color:var(--tier-medium);border-color:var(--tier-medium);margin-left:auto}.job-header{padding:var(--sp-5) var(--sp-6);gap:var(--sp-4);flex-direction:column;display:flex}.job-header__top{justify-content:space-between;align-items:center;gap:var(--sp-4);flex-wrap:wrap;display:flex}.job-header__title{align-items:center;gap:var(--sp-3);display:flex}.job-header__title h1{font-size:var(--fs-lg);font-weight:700}.job-header__stats{gap:var(--sp-6);flex-wrap:wrap;display:flex}.stat{flex-direction:column;gap:2px;display:flex}.stat__value{font-family:var(--font-mono);font-size:var(--fs-lg);font-weight:700}.stat__value--error{color:var(--tier-low)}.stat__label{font-size:var(--fs-xs);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint)}.job-header__meta{font-size:var(--fs-xs);color:var(--ink-faint);gap:var(--sp-4);flex-wrap:wrap;display:flex}.row-list{margin-top:var(--sp-5);gap:var(--sp-3);max-height:68vh;padding-right:var(--sp-2);flex-direction:column;display:flex;overflow-y:auto}.row-card{background:var(--bg-raised);border:1px solid var(--border);border-left-style:solid;border-left-width:4px;border-left-color:var(--border-strong);border-radius:var(--radius-md);animation:fade-up var(--dur-med) var(--ease) both}.row-card--pending{border-left-color:var(--border-strong);opacity:.7}.row-card--high{border-left-color:var(--tier-high)}.row-card--medium{border-left-color:var(--tier-medium)}.row-card--low{border-left-color:var(--tier-low)}.row-card--nomatch{border-left-color:var(--tier-neutral);border-left-style:dashed}.row-card--error{border-left-color:var(--tier-low);background:color-mix(in srgb, var(--tier-low-soft) 45%, var(--bg-raised))}.row-card--none{border-left-color:var(--tier-neutral)}.row-card__summary{align-items:center;gap:var(--sp-4);width:100%;padding:var(--sp-3) var(--sp-4);cursor:pointer;text-align:left;background:0 0;border:none;display:flex}.row-card__idx{font-family:var(--font-mono);font-size:var(--fs-xs);color:var(--ink-faint);flex-shrink:0;width:2.4em}.row-card__body{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.row-card__input{font-size:var(--fs-sm);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row-card__pick{align-items:baseline;gap:var(--sp-2);flex-wrap:wrap;display:flex}.row-card__nsn{font-family:var(--font-mono);font-weight:700;font-size:var(--fs-sm)}.row-card__name{font-size:var(--fs-sm);color:var(--ink-muted);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.row-card__confidence{flex-shrink:0;width:120px}.row-card__toggle{width:20px;height:20px;color:var(--ink-faint);transition:transform var(--dur-fast) var(--ease);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.row-card__toggle--open{transform:rotate(180deg)}.row-card__reason,.row-card__error-text{font-size:var(--fs-sm);color:var(--ink-muted)}.row-card__error-text{color:var(--tier-low)}.expand-region{transition:grid-template-rows var(--dur-med) var(--ease);grid-template-rows:0fr;display:grid}.expand-region--open{grid-template-rows:1fr}.expand-region__inner{overflow:hidden}.candidate-options{padding:0 var(--sp-4) var(--sp-4);border-top:1px solid var(--border);flex-direction:column;margin-top:2px;display:flex}.candidate-option{gap:var(--sp-3);padding:var(--sp-3) 0;border-bottom:1px solid var(--border);cursor:pointer;display:flex}.candidate-option:last-child{border-bottom:none}.candidate-option__radio{width:16px;height:16px;accent-color:var(--accent);cursor:pointer;flex-shrink:0;margin-top:3px}.candidate-option__body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.candidate-option__head{align-items:baseline;gap:var(--sp-3);flex-wrap:wrap;justify-content:space-between;display:flex}.candidate-option__nsn{letter-spacing:.02em;font-weight:700}.candidate-option__name{font-size:var(--fs-sm);font-weight:600}.candidate-option__meta{font-size:var(--fs-xs);color:var(--ink-faint)}.candidate-option .evidence-list{margin-top:var(--sp-2)}.candidate-option .evidence-list li{font-size:var(--fs-xs)}.candidate-option--none{color:var(--ink-muted);font-style:italic}.load-more{padding:var(--sp-4);text-align:center;font-size:var(--fs-sm);color:var(--ink-faint)}.spinner{border:2px solid var(--border-strong);border-top-color:var(--accent);border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}.gate-overlay{background:var(--scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);padding:var(--sp-5);z-index:100;animation:fade-up var(--dur-fast) var(--ease) both;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.gate-card{width:100%;max-width:380px;padding:var(--sp-6);box-shadow:var(--shadow-md);animation:gate-in var(--dur-med) var(--ease) both}.gate-card h1{margin-top:var(--sp-2);font-size:var(--fs-xl);letter-spacing:-.01em;font-weight:800}.gate-card p{margin-top:var(--sp-2);color:var(--ink-muted);font-size:var(--fs-sm)}.gate-card form{margin-top:var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.gate-card__actions{justify-content:space-between;align-items:center;gap:var(--sp-3);display:flex}.gate-card__error{font-size:var(--fs-sm);color:var(--tier-low)}.icon{flex-shrink:0;width:1em;height:1em}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes gate-in{0%{opacity:0;transform:translateY(4px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes bar-fill{0%{width:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@media (width<=640px){.hero h1{font-size:var(--fs-xl)}.search-row{flex-direction:column;align-items:stretch}.candidate-card__head{flex-direction:column;gap:4px}.row-card__summary{flex-wrap:wrap}.row-card__confidence{order:5;width:100%}.job-header__stats{gap:var(--sp-4)}}
