:root{--frame:#001935;--frame-ink:#fff;--frame-muted:#9fb3c8;--frame-hover:#0b2848;--ground:#fff;--surface:#fff;--raised:#f4f6f9;--active:#38bdf8;--active-ink:#001935;--border:#d0dae6;--rule:#e6ecf2;--control:#c3cfdc;--text:#001935;--muted:#4a5b72;--faint:#5d6e84;--primary:#38bdf8;--primary-ink:#001935;--primary-press:#0ea5e9;--accent:#38bdf8;--tint:#e6f6fe;--positive:#15803d;--pill-positive-bg:#dcf5e4;--pill-positive-ink:#0b3d1e;--negative:#b91c1c;--pill-negative-bg:#fdecec;--pill-negative-ink:#7a1610;--pill-warning-bg:#fff7e6;--pill-warning-ink:#8a4b00;--radius-sheet:22px;--radius-card:14px;--radius-control:10px;--radius-pill:999px;--gap:24px;--pad:24px;--font:"IBM Plex Sans", ui-sans-serif, system-ui, sans-serif;--font-head:"IBM Plex Sans Condensed", ui-sans-serif, system-ui, sans-serif;--font-data:"IBM Plex Mono", ui-monospace, Menlo, monospace;--fs-title:24px;--fs-section:16px;--fs-body:13.5px;--fs-small:13px}*,:before,:after{box-sizing:border-box}html,body{margin:0}body{background:var(--frame);color:var(--text);font:var(--fs-body) / 1.5 var(--font);-webkit-font-smoothing:antialiased}h1,h2,h3,p,dl,dd,ul,ol{margin:0}ul,ol{padding:0;list-style:none}a{color:inherit}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}input[type=checkbox],input[type=radio]{accent-color:var(--primary)}.muted{color:var(--muted)}.small{font-size:var(--fs-small)}.num,.nums{font-variant-numeric:tabular-nums lining-nums}.table td.num,.table th.num,td.num,th.num{text-align:right}.btn{border-radius:var(--radius-pill);cursor:pointer;white-space:nowrap;border:1px solid #0000;justify-content:center;align-items:center;gap:6px;height:38px;padding:0 16px;font-weight:600;text-decoration:none;transition:background-color .15s,transform .12s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:default}.btn-primary{background:var(--primary);color:var(--primary-ink)}.btn-primary:hover:not(:disabled){background:var(--primary-press)}.btn-secondary{background:var(--surface);color:var(--text);border-color:var(--control)}.btn-secondary:hover:not(:disabled){background:var(--raised)}.btn-small{height:30px;font-size:var(--fs-small);padding:0 10px}.btn-text{cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:4px 0;text-decoration:underline}.btn-text.danger{color:var(--negative)}.frame{color:var(--frame-ink);grid-template-rows:48px 1fr;grid-template-columns:228px 1fr;min-height:100vh;display:grid}.sidebar{flex-direction:column;grid-row:1/-1;height:100vh;padding:12px 10px 16px;display:flex;position:sticky;top:0}.product{letter-spacing:-.01em;align-items:center;gap:10px;padding:6px 8px 20px;font-size:16px;font-weight:700;line-height:1.2;text-decoration:none;display:flex}.product small{font-weight:400;font-size:var(--fs-small);color:var(--frame-muted);display:block}.sidebar nav a{border-radius:var(--radius-pill);height:36px;color:var(--frame-muted);align-items:center;margin-bottom:3px;padding:0 14px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.sidebar nav a:hover{background:var(--frame-hover);color:var(--frame-ink)}.sidebar nav a.is-active{background:var(--active);color:var(--active-ink);font-weight:600}.account{font-size:var(--fs-small);margin-top:auto;padding:0 10px}.account p:first-child{color:var(--frame-ink);font-weight:600}.account .muted{color:var(--frame-muted)}.account .btn-text{color:var(--frame-ink)}.topbar{justify-content:flex-end;align-items:center;gap:12px;padding:0 8px 0 0;display:flex}.topbar-title,.menu-button{display:none}.sheet{color:var(--text);background:var(--ground);border:1px solid var(--border);border-radius:var(--radius-sheet);grid-column:2;min-width:0;margin:0 8px 8px 0}.page{padding:var(--pad);max-width:1320px}.crumb{font-size:var(--fs-small);margin-bottom:6px}.crumb a{color:var(--muted)}.title-row{margin-bottom:var(--gap);justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.page-title{font-size:var(--fs-title);letter-spacing:-.01em;font-weight:600;line-height:1.2}.page-line{color:var(--muted);font-size:var(--fs-body);margin-top:4px}.title-actions{align-items:center;gap:8px;display:flex}.with-rail{gap:var(--gap);grid-template-columns:minmax(0,1fr) 384px;align-items:start;display:grid}.main-col{gap:16px;display:grid}.rail{gap:8px;display:grid}.two-col{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;margin-bottom:16px;display:grid}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);padding:20px}.panel-head{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:12px;display:flex}.panel-title{font-size:var(--fs-section);font-weight:600}.note{font-size:var(--fs-small);color:var(--pill-warning-ink);margin-top:12px}.empty{border:1px dashed var(--control);border-radius:var(--radius-card);color:var(--muted);padding:12px 14px}.error-note{border-radius:var(--radius-control);background:var(--pill-negative-bg);color:var(--pill-negative-ink);margin-bottom:16px;padding:10px 12px}.table{border-collapse:collapse;width:100%}.table th{text-align:left;font-weight:400;font-size:var(--fs-small);color:var(--muted);padding:0 12px 8px 0}.table td{border-top:1px solid var(--rule);vertical-align:top;padding:10px 12px 10px 0}.table th:last-child,.table td:last-child{padding-right:0}.table .sub{font-size:var(--fs-small);color:var(--muted);margin-top:2px;display:block}.row-link{font-weight:600;text-decoration:none}.row-link:hover{text-decoration:underline}.table-page td{padding-top:12px;padding-bottom:12px}.list li{border-top:1px solid var(--rule);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:4px 12px;min-width:0;padding:10px 0;display:flex}.list li:first-child{border-top:0;padding-top:0}.list li>*{overflow-wrap:anywhere;min-width:0}.list .sub{font-size:var(--fs-small);color:var(--muted)}.kv div{border-top:1px solid var(--rule);justify-content:space-between;gap:16px;padding:6px 0;display:flex}.kv div:first-child{border-top:0}.kv dt{color:var(--muted)}.kv dd{text-align:right;overflow-wrap:anywhere}.toolbar{justify-content:space-between;align-items:center;gap:16px;margin-bottom:16px;display:flex}.search{border:1px solid var(--control);border-radius:var(--radius-control);background:#fff;width:300px;max-width:100%;height:34px;padding:0 12px}.pill{white-space:nowrap;background:var(--rule);height:22px;color:var(--muted);border-radius:999px;flex:none;align-items:center;padding:0 8px;font-size:12px;font-weight:600;display:inline-flex}.pill-positive{background:var(--pill-positive-bg);color:var(--pill-positive-ink)}.pill-negative{background:var(--pill-negative-bg);color:var(--pill-negative-ink)}.pill-warning{background:var(--pill-warning-bg);color:var(--pill-warning-ink);border:1px solid #fde68a}.editor{max-width:1152px;padding-bottom:96px}.form-section{border-top:1px solid var(--border);grid-template-columns:minmax(0,360px) minmax(0,1fr);gap:32px;padding:32px 0;display:grid}.form-section:first-of-type{border-top:0;padding-top:0}.form-label h2{font-size:var(--fs-section);margin-top:6px;font-weight:600}.form-label .hint{margin-top:4px}.form-panel{background:var(--raised);border-radius:var(--radius-sheet);align-content:start;gap:16px;padding:16px;display:grid}.field{gap:6px;min-width:0;display:grid}.field>label,.field>span,.field legend{font-size:14px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--border);background:#fff;border-radius:10px;width:100%;min-height:40px;padding:8px 10px}.field textarea{resize:vertical;line-height:1.5}.field input[aria-invalid=true],.field textarea[aria-invalid=true]{border-color:var(--negative)}.hint{font-size:var(--fs-small);color:var(--muted)}.error{font-size:var(--fs-small);color:var(--negative);font-weight:600}.field-row{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:16px;display:grid}.checks{border:0;margin:0;padding:0}.check-row{flex-wrap:wrap;gap:8px 20px;display:flex}.check{align-items:center;gap:6px;display:inline-flex}.toggle-row{justify-content:space-between;align-items:center;gap:16px;display:flex}.toggle-title{font-size:14px;font-weight:600;display:block}.toggle{appearance:none;background:var(--control);cursor:pointer;border-radius:999px;flex:none;width:32px;height:18px;transition:background-color .15s;position:relative}.toggle:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px}.toggle:checked{background:var(--primary)}.toggle:checked:after{transform:translate(14px)}.day{border:1px solid var(--border);border-radius:var(--radius-card);background:#fff;justify-items:start;gap:10px;padding:12px;display:grid}.day .field{width:100%}.editor-bar{border:1px solid var(--border);border-radius:var(--radius-card);background:#fff;justify-content:flex-end;align-items:center;gap:16px;margin-top:16px;padding:12px 16px;display:flex;position:sticky;bottom:8px;box-shadow:0 4px 16px #3900001a}.editor-status{margin-right:auto}.login{background:var(--frame);place-items:center;min-height:100vh;padding:16px;display:grid}.login-card{border:1px solid var(--border);border-radius:var(--radius-sheet);background:#fff;gap:12px;width:min(420px,100%);padding:32px;display:grid}.brand{align-items:center;gap:10px;font-weight:700;display:flex}.brand .logo{width:auto;height:44px}.login .title{font-size:var(--fs-title);margin-top:12px;font-weight:700}.stack{gap:14px;margin-top:8px;display:grid}.stack .btn{height:40px}.login .otp{font-family:var(--font-data);letter-spacing:.4em;text-align:center;font-size:1.5rem}@media (width<=1100px){.with-rail{grid-template-columns:1fr}.form-section{grid-template-columns:1fr;gap:12px}}@media (width<=860px){.frame{grid-template-rows:48px 1fr;grid-template-columns:1fr}.sidebar{display:none}.sidebar.is-open{z-index:30;background:var(--frame);height:auto;padding:16px;display:flex;position:fixed;inset:48px 0 0}.sidebar.is-open nav a{height:44px;font-size:17px}.topbar{justify-content:space-between;padding:0 16px}.menu-button{cursor:pointer;background:0 0;border:0;padding:8px 0;text-decoration:underline;display:inline-flex}.topbar-title{align-items:center;gap:8px;font-weight:600;display:inline-flex}.sheet{border-width:1px 0 0;border-radius:0;grid-column:1;margin:0}.page{padding:16px}.two-col,.field-row,.field-row.three{grid-template-columns:1fr}.title-row{flex-direction:column;align-items:stretch}.table thead{display:none}.table,.table tbody,.table tr,.table td{width:100%;display:block}.table tr{border-top:1px solid var(--rule);padding:10px 0}.table td{text-align:left;border:0;padding:2px 0}.table td.num{text-align:left}.toolbar{flex-direction:column;align-items:stretch}.search{width:100%}}.sidebar nav a{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.nav-count{border-radius:var(--radius-pill);background:var(--active);min-width:1.5rem;color:var(--active-ink);font-size:var(--fs-small);text-align:center;padding:0 .45rem;font-weight:600}.stat-row{grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));gap:16px;margin-bottom:16px;display:grid}.stat{border:1px solid var(--border);border-radius:var(--radius-card);padding:1rem 1.1rem}.stat dt{color:var(--muted);font-size:var(--fs-small)}.stat dd{font-variant-numeric:tabular-nums;margin:.15rem 0 0;font-size:1.75rem;font-weight:600}.stock-in_stock{color:var(--positive);font-weight:600}.stock-indent{color:var(--negative);font-weight:600}.stock-discontinued{color:var(--muted)}.part-no{font-variant-numeric:tabular-nums;font-weight:600}.cell-input{border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);width:100%;min-width:4.5rem;min-height:2rem;font:inherit;padding:.25rem .45rem}.cell-input.num{text-align:right}tr.is-dirty td{background:var(--tint)}.chart-editor{border:1px solid var(--border);border-radius:var(--radius-card);gap:.75rem;padding:1rem;display:grid}.chart-editor-head{grid-template-columns:minmax(0,3fr) repeat(3,minmax(0,1fr)) auto;align-items:end;gap:.5rem;display:grid}.ref{letter-spacing:.04em;font-variant-numeric:tabular-nums;font-weight:700}.big-ref{font-size:1.5rem}.filters{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.filters select{border:1px solid var(--control);border-radius:var(--radius-control);background:var(--surface);min-height:2.5rem;font:inherit;padding:0 .6rem}.chart-editor .table td:first-child .cell-input{min-width:8.5rem}.chart-editor .table td:nth-child(2) .cell-input{min-width:5.5rem}.part-no,.ref{font-family:var(--font-data)}.page-title,.panel-title,.form-label h2,.product,.login .title,.stat dd{font-family:var(--font-head)}.page-title{text-transform:uppercase;letter-spacing:.01em}.table-scroll{min-width:0;overflow-x:auto}.form-panel,.form-section,.chart-editor{min-width:0}@media (width<=860px){.stock-table tr{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) minmax(0,1fr);gap:4px 8px;padding:12px 0;display:grid}.stock-table td:first-child{grid-column:1/2}.stock-table td:nth-child(2){text-align:right;grid-column:2/4}.stock-table td:nth-child(3){grid-column:1/-1;padding-bottom:6px}.stock-table td:nth-child(7){display:none}.stock-table .cell-input{min-width:0}.chart-editor-head{grid-template-columns:1fr 1fr}.chart-editor-head>:first-child{grid-column:1/-1}.chart-table,.chart-table tbody{width:max-content;display:table}.chart-table thead{display:table-header-group}.chart-table tr{border:0;padding:0;display:table-row}.chart-table td,.chart-table th{width:auto;padding:4px;display:table-cell}}.drawing-list{gap:.75rem;padding:0;list-style:none;display:grid}.drawing-list li{border:1px solid var(--border);border-radius:var(--radius-card);grid-template-columns:160px minmax(0,1fr);align-items:start;gap:1rem;padding:.75rem;display:grid}.drawing-thumb img{aspect-ratio:4/3;object-fit:contain;background:#fff;border-radius:6px;width:100%;display:block}.drawing-body{gap:.35rem;min-width:0;display:grid}.drawing-actions{flex-wrap:wrap;gap:.25rem 1rem;display:flex}@media (width<=560px){.drawing-list li{grid-template-columns:minmax(0,1fr)}}.page.product-editor{max-width:1600px}.product-editor .form-section{grid-template-columns:minmax(0,1fr);gap:16px}.product-editor .form-label .hint{max-width:72ch}.row-actions{white-space:nowrap;align-items:center;gap:6px;display:flex}.icon-btn{border:1px solid var(--control);width:34px;height:34px;color:var(--text);cursor:pointer;background:#fff;border-radius:10px;place-items:center;padding:0;transition:background-color .14s,border-color .14s,color .14s;display:inline-grid}.icon-btn:hover{background:var(--raised)}.icon-btn-go{color:var(--positive);border-color:color-mix(in srgb, var(--positive) 45%, white)}.icon-btn-go:hover{background:#e6f5ec}.icon-btn-danger{color:var(--negative);border-color:color-mix(in srgb, var(--negative) 35%, white)}.icon-btn-danger:hover{background:#fdecec}.unsaved{font-size:var(--fs-small);color:var(--muted);font-weight:400;display:block}.chart-table td[class^=stock-]{white-space:nowrap}.enquiry-list{padding:0;list-style:none;display:grid}.enquiry-list li{border-top:1px solid var(--rule);gap:8px;padding:14px 0;display:grid}.enquiry-list li:first-child{border-top:0;padding-top:0}.enquiry-head{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.enquiry-head .when{margin-left:auto}.enquiry-actions{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.enquiry-list .note{color:var(--text);font-size:var(--fs-body);white-space:pre-wrap;overflow-wrap:anywhere;margin-top:0}.chart-editor .table td{vertical-align:middle}.staff-add{grid-template-columns:minmax(0,2fr) minmax(0,1.5fr) auto;align-items:end;gap:12px;display:grid}.page>.panel+.panel{margin-top:16px}@media (width<=720px){.staff-add{grid-template-columns:minmax(0,1fr)}}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;margin:4px 0 24px;display:flex}.tab{color:var(--muted);border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 14px;font-weight:600;text-decoration:none}.tab:hover{color:var(--text)}.tab.is-active{color:var(--text);border-bottom-color:var(--primary)}.tab-intro{color:var(--muted);font-size:var(--fs-body);margin-bottom:20px}.tab-panels>.panel+.panel{margin-top:16px}.rule-list{gap:8px;padding:0;list-style:none;display:grid}.rule-list li{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr) auto;align-items:center;gap:8px;display:grid}.rule-label{color:var(--muted);font-size:var(--fs-small);white-space:nowrap}@media (width<=720px){.rule-list li{grid-template-columns:minmax(0,1fr) auto}.rule-label{grid-column:1/-1}}
