*,*:before,*:after{box-sizing:border-box}html,body{margin:0;padding:0}img,picture,video,canvas,svg{display:block;max-width:100%}input,button,textarea,select{font:inherit}@font-face{font-family:Archivo;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/archivo-latin.woff2) format("woff2")}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/fonts/inter-latin.woff2) format("woff2")}:root{--font-display: "Archivo", "Helvetica Neue", -apple-system, "Segoe UI", sans-serif;--font-body: "Inter", -apple-system, "Segoe UI", Roboto, sans-serif;--font-mono: ui-monospace, "SF Mono", Menlo, "Cascadia Code", Consolas, monospace;--ground: #f6f7f8;--surface: #ffffff;--ink: #101418;--slate: #5a6572;--line: #e4e7ea;--accent: #3452ff;--accent-strong: #1f3ad1;--accent-soft: #eaefff;--good-bg: #e5f6ea;--good-fg: #1c7a3d;--neutral-bg: #eef0f2;--neutral-fg: #5a6572;--danger-bg: #fdecea;--danger-fg: #9a1c1c;--radius-sm: 4px;--radius-md: 8px;--shadow-card: 0 1px 2px rgba(16, 20, 24, .05), 0 6px 16px rgba(16, 20, 24, .06);--text-2xl: 1.5rem;--text-lg: 1.0625rem;--text-sm: .8125rem;--text-xs: .75rem}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}body{font-family:var(--font-body);font-size:.9375rem;line-height:1.5;color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased}.shell{display:flex;flex-direction:column;min-height:100vh}.topbar{display:flex;align-items:center;gap:2rem;padding:.75rem 1.5rem;background:var(--surface);border-bottom:1px solid var(--line)}.topbar-wordmark{font-family:var(--font-display);font-weight:600;font-size:1.0625rem;color:var(--ink)}.topbar-nav{display:flex;align-items:center;gap:1.25rem;flex:1}.topbar-nav a{color:var(--ink);text-decoration:none;font-weight:500}.topbar-nav a:hover{text-decoration:underline}.topbar-nav-placeholder{color:var(--slate);cursor:default}.topbar-logout{border:1px solid var(--line);background:var(--surface);color:var(--slate);border-radius:4px;padding:.375rem .75rem;cursor:pointer}.topbar-logout:hover{color:var(--ink);border-color:var(--slate)}.shell-content{flex:1;padding:1.5rem}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--ground)}.login-form{display:flex;flex-direction:column;gap:.75rem;width:20rem;padding:2rem;background:var(--surface);border:1px solid var(--line);border-radius:6px}.login-wordmark{font-family:var(--font-display);font-size:1.25rem;margin:0 0 .5rem;color:var(--ink)}.login-form label{font-size:.8125rem;color:var(--slate)}.login-form input{padding:.5rem .625rem;border:1px solid var(--line);border-radius:4px;font-size:.9375rem}.login-form button{margin-top:.5rem;padding:.5rem .75rem;border:none;border-radius:4px;background:var(--ink);color:var(--surface);font-weight:600;cursor:pointer}.login-form button:disabled{opacity:.6;cursor:default}.login-error{margin:0;padding:.5rem .625rem;background:#fdecea;color:#9a1c1c;border-radius:4px;font-size:.875rem}.error-boundary{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:3rem 1.5rem;text-align:center;background:var(--ground);color:var(--ink)}.error-boundary h1{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin:0}.error-boundary p{margin:0;color:var(--slate)}.error-boundary a{color:var(--accent);font-weight:600}.error-boundary pre{margin:.5rem 0 0;width:100%;max-width:42rem;max-height:20rem;overflow:auto;text-align:left;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);font-size:var(--text-sm)}.error-boundary pre code{font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word}.catalog-suppliers{display:flex;flex-direction:column}.page-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin:0 0 1.25rem;color:var(--ink)}.control-bar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:1rem;padding:1rem 1.25rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md);margin-bottom:1.5rem}.field{display:flex;flex-direction:column;gap:.3125rem}.field-search{flex:1 1 16rem;min-width:12rem}.field-label{font-size:var(--text-xs);font-weight:600;color:var(--slate);text-transform:uppercase;letter-spacing:.04em}.field-input{padding:.5rem .625rem;border:1px solid var(--line);border-radius:var(--radius-md);font-size:.9375rem;background:var(--surface);color:var(--ink)}.result-count{margin-left:auto;font-size:var(--text-sm);color:var(--slate);font-variant-numeric:tabular-nums;white-space:nowrap;padding-bottom:.5rem}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .875rem;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;border:1px solid transparent;transition:background-color .12s ease,border-color .12s ease,color .12s ease}.btn:disabled{cursor:default;opacity:.5}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong)}.btn-secondary{background:var(--surface);color:var(--ink);border-color:var(--line)}.btn-secondary:hover:not(:disabled){border-color:var(--slate)}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-md)}.style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}.style-grid.is-loading{opacity:.6}@media(max-width:1100px){.style-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:680px){.style-grid{grid-template-columns:1fr}}.style-card{display:flex;flex-direction:column;text-decoration:none;color:inherit;overflow:hidden;transition:border-color .12s ease,box-shadow .12s ease,transform .12s ease}.style-card:hover{border-color:var(--slate);box-shadow:var(--shadow-card);transform:translateY(-1px)}.style-card-image-wrap{aspect-ratio:1 / 1;background:var(--surface);overflow:hidden}.style-card-image{width:100%;height:100%;object-fit:contain;padding:.75rem}.style-card-body{display:flex;flex-direction:column;gap:.375rem;padding:.875rem 1rem 1rem}.style-card-title{margin:0;font-size:var(--text-lg);font-weight:600;line-height:1.3;color:var(--ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.style-card-brand{margin:0;font-size:var(--text-sm);color:var(--slate)}.style-card-tags{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.125rem}.style-card-skus{margin:.25rem 0 0;font-size:var(--text-xs);color:var(--slate)}.tag{display:inline-flex;align-items:center;padding:.125rem .375rem;border:1px solid var(--line);border-radius:var(--radius-sm);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:.02em;text-transform:uppercase;background:var(--ground)}.tag-supplier{color:var(--ink)}.tag-code{color:var(--slate)}.badge{display:inline-flex;align-items:center;padding:.1875rem .5rem;border-radius:var(--radius-sm);font-size:var(--text-xs);font-weight:600;letter-spacing:.01em}.badge-good{color:var(--good-fg);background:var(--good-bg)}.badge-neutral{color:var(--neutral-fg);background:var(--neutral-bg)}.pagination{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:1.75rem}.pagination-status{font-size:var(--text-sm);color:var(--slate);font-variant-numeric:tabular-nums}.state-block{display:flex;flex-direction:column;align-items:center;gap:.5rem;padding:3rem 1.5rem;text-align:center;color:var(--slate)}.state-block p{margin:0}.state-hint{font-size:var(--text-sm)}.state-error{color:var(--danger-fg)}.spinner{width:1.25rem;height:1.25rem;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.spinner{animation:none}.style-card{transition:none}}.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}.style-detail{display:flex;flex-direction:column;gap:2rem}.style-detail-layout{display:grid;grid-template-columns:minmax(0,22rem) 1fr;gap:2rem;align-items:start}@media(max-width:900px){.style-detail-layout{grid-template-columns:1fr}}.detail-media{display:flex;flex-direction:column;gap:.75rem}.detail-image-wrap{aspect-ratio:1 / 1;background:var(--surface);overflow:hidden;border-radius:var(--radius-md);border:1px solid var(--line)}.detail-image{width:100%;height:100%;object-fit:contain;padding:1rem}.detail-image-placeholder{width:100%;height:100%;object-fit:cover}.detail-swatch-strip{display:flex;flex-wrap:wrap;gap:.5rem}.detail-swatch{width:1.75rem;height:1.75rem;border-radius:50%;border:2px solid var(--line);background:var(--ground);cursor:pointer;padding:0}.detail-swatch.is-active{border-color:var(--accent)}.detail-info{display:flex;flex-direction:column;gap:.75rem}.detail-title{font-family:var(--font-display);font-size:var(--text-2xl);font-weight:600;margin:0;color:var(--ink)}.detail-brand{margin:0;font-size:var(--text-lg);color:var(--slate)}.detail-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem}.detail-categories{display:flex;flex-wrap:wrap;gap:.375rem}.detail-description{margin:0;color:var(--ink)}.detail-availability{display:flex;align-items:center}.detail-cost-line{margin:0;font-size:var(--text-lg);font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.detail-cost-line.is-pending{font-size:var(--text-sm);font-weight:500;color:var(--slate)}.color-size-grid-wrap{overflow-x:auto}.color-size-grid{border-collapse:collapse;width:100%}.color-size-grid th,.color-size-grid td{border:1px solid var(--line);padding:.5rem .625rem;text-align:left;vertical-align:top}.grid-size-heading{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--slate);background:var(--ground)}.grid-color-heading{background:var(--ground);white-space:nowrap}.grid-color-cell{display:flex;align-items:center;gap:.5rem;font-weight:600;color:var(--ink)}.color-swatch{width:1rem;height:1rem;flex:none;border-radius:50%;border:1px solid var(--line)}.grid-cell-empty{background:var(--ground)}.grid-cell-content{display:flex;flex-direction:column;align-items:flex-start;gap:.375rem}.grid-cell-cost{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink)}.grid-cell-cost.is-pending{font-size:var(--text-xs);font-weight:500;font-style:italic;color:var(--slate)}.inventory-popover-trigger{border:1px solid var(--line);border-radius:var(--radius-sm);background:none;color:var(--accent);font-size:var(--text-xs);font-weight:600;padding:.125rem .5rem;cursor:pointer}.inventory-popover-trigger:hover{border-color:var(--accent)}.inventory-popover-list{min-width:12rem;margin:.375rem 0 0;padding:.5rem .625rem;list-style:none;display:flex;flex-direction:column;gap:.375rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm)}.inventory-popover-row{display:flex;justify-content:space-between;gap:.75rem;font-size:var(--text-sm);color:var(--ink)}.inventory-popover-qty{font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}.modal-overlay{position:fixed;inset:0;background:#10141873;display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:100}.modal-panel{width:100%;max-width:26rem;max-height:calc(100vh - 3rem);overflow-y:auto;padding:1.5rem;display:flex;flex-direction:column;gap:1.125rem;box-shadow:var(--shadow-card)}.modal-title{font-family:var(--font-display);font-size:var(--text-lg);font-weight:600;margin:0;color:var(--ink)}.modal-subtitle{margin:0;font-size:var(--text-sm);color:var(--slate)}.target-row{margin:0;padding:.5rem .625rem;background:var(--ground);border:1px solid var(--line);border-radius:var(--radius-md);color:var(--ink);font-weight:500}.option-fieldset{margin:0;border:1px solid var(--line);border-radius:var(--radius-md);padding:.75rem .875rem;display:flex;flex-direction:column;gap:.5rem}.option-fieldset legend{padding:0 .25rem}.option-checkbox{display:flex;align-items:center;gap:.5rem;font-size:var(--text-sm);color:var(--ink);cursor:pointer}.modal-actions{display:flex;justify-content:flex-end;gap:.625rem}.modal-panel .state-block{padding:1.25rem .5rem}.state-success{color:var(--good-fg)}.state-duplicate{color:var(--neutral-fg)}.compliance-notice{margin:0;padding:.625rem .75rem;border:1px solid var(--line);border-left:3px solid var(--ink);border-radius:var(--radius-sm);font-weight:600;color:var(--ink)}
