:root{--ink:#172b4d;--muted:#64748b;--line:#e5eaf0;--blue:#1d66d1;--blue-dark:#1556b4;--bg:#f4f7fb;--green:#087443;--red:#bd3434}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif}.top{height:66px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 clamp(16px,2.4vw,44px);gap:34px}.brand{font-size:19px;font-weight:750;color:var(--ink);text-decoration:none;white-space:nowrap}.brand small{display:block;color:#8190a5;font-size:10px;letter-spacing:1.3px;font-weight:600;margin-top:-3px}.top nav{display:flex;gap:24px;flex:1}.top nav a,.link-button{color:#40536c;text-decoration:none;font:inherit}.top nav a:hover,.link-button:hover{color:var(--blue)}.top form{margin:0}.link-button{border:0;background:none;cursor:pointer}.wrap{width:100%;max-width:none;margin:30px auto;padding:0 clamp(16px,2.4vw,44px)}.page-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:0 0 24px}.page-head h1{margin:3px 0;font-size:29px;letter-spacing:-.4px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:1.2px;color:#7788a0}.muted{color:var(--muted);margin:3px 0}.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:22px;margin-bottom:20px;box-shadow:0 2px 5px #1c33510a}.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:20px}.stat{display:flex;flex-direction:column;gap:9px}.stat span{color:var(--muted);font-size:13px}.stat strong{font-size:27px}.stat small{font-size:14px;color:var(--muted);font-weight:500}.text-stat{font-size:18px!important}.section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:14px}.section-head h2,.card h2{font-size:17px;margin:0 0 3px}.section-head p{font-size:13px}.section-head a,.card a,.wrap>a{color:var(--blue);text-decoration:none}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;color:#738198;font-size:12px;font-weight:650;background:#f8fafc}td,th{padding:12px 11px;border-bottom:1px solid #edf0f4}td{font-size:13.5px}tbody tr:last-child td{border-bottom:0}td a{font-weight:650}.number{font-size:20px}.positive{color:var(--green)}.negative{color:var(--red)}.button,button{font:inherit}.button{display:inline-flex;align-items:center;justify-content:center;text-decoration:none!important}.primary,.secondary{border:0;border-radius:7px;padding:10px 15px;font-weight:650;cursor:pointer}.primary{background:var(--blue);color:white!important}.primary:hover{background:var(--blue-dark)}.secondary{background:#eef3f9;color:#314863!important}.tabs{display:flex;gap:8px;margin-bottom:14px}.tabs a{padding:8px 14px;border-radius:7px;color:#53647a;text-decoration:none}.tabs a.selected{background:#e5efff;color:var(--blue);font-weight:700}.pill{display:inline-block;background:#edf2f7;border-radius:999px;padding:3px 9px;font-size:12px;color:#52647b}.pill.planned{background:#fff1d5;color:#8d5b00}.pill.completed{background:#dcf5e9;color:#087443}.pill.cancelled{background:#f0f1f3;color:#697586}.empty{padding:26px 8px;color:#7b899c;text-align:center}.notice{background:#edf5ff;color:#24558f;border:1px solid #d6e7fc;border-radius:8px;padding:12px 15px;margin-bottom:16px}.form-card{max-width:none}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-grid label,.stack label,.bom-row label,.inline-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:13px;color:#42556d}.form-grid input,.form-grid select,.stack input,.bom-row input,.bom-row select,.inline-form input{height:42px;border:1px solid #cfd8e4;border-radius:7px;padding:0 11px;font:inherit;background:#fff;color:var(--ink)}input:focus,select:focus{outline:2px solid #c8dcfa;border-color:#77a5e8}.wide{grid-column:1/-1}.form-actions{grid-column:1/-1;display:flex;gap:10px;margin-top:7px}.bom-row{display:grid;grid-template-columns:minmax(220px,2fr) minmax(130px,1fr) auto;gap:12px;align-items:end;margin-bottom:13px}.remove{border:0;background:transparent;color:var(--red);padding:8px 4px;cursor:pointer;font:inherit}.order-summary{display:flex;gap:24px;border-top:1px solid var(--line);padding-top:15px;margin-top:12px}.inline-form{display:flex;align-items:end;gap:12px}.inline-form label{min-width:190px}.cancel-form{margin-top:18px}.login{max-width:420px;margin:72px auto;padding:30px}.login h1{margin:5px 0;font-size:25px}.stack{display:grid;gap:16px;margin-top:20px}.stack .primary{height:44px;margin-top:3px}footer{text-align:center;color:#98a3b1;font-size:12px;padding:24px 0 8px}.actions{display:flex;gap:8px}@media(max-width:760px){.top{padding:0 16px;gap:16px}.top nav{gap:12px;overflow:auto}.top nav a{font-size:13px;white-space:nowrap}.wrap{padding:0 14px;margin-top:22px}.page-head{align-items:flex-start;flex-direction:column}.stats{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.wide,.form-actions{grid-column:auto}.bom-row{grid-template-columns:1fr 1fr}.bom-row .remove{grid-column:2;justify-self:end}.inline-form{align-items:stretch;flex-direction:column}.order-summary{flex-direction:column;gap:7px}}
.account-actions{display:flex;align-items:center;gap:8px}.account-actions form{margin:0}.reset-form{display:flex;gap:6px;align-items:center}.reset-form input{height:36px;width:200px;border:1px solid #cfd8e4;border-radius:7px;padding:0 9px}.reset-form button{white-space:nowrap}@media(max-width:760px){.account-actions,.reset-form{align-items:stretch;flex-direction:column}.reset-form input{width:100%}}
.bom-editor-card{max-width:none;padding:26px}
.bom-section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:0 2px 18px;margin-bottom:16px;border-bottom:1px solid var(--line)}
.bom-section-head h2{margin:0;font-size:18px}
.bom-section-head p{margin:4px 0 0;color:var(--muted);font-size:13px}
.bom-section-tag{flex:none;padding:6px 11px;border:1px solid #dbe8f8;border-radius:999px;background:#f2f7ff;color:#3c6698;font-size:12px;font-weight:650}
#bom-rows{display:grid;gap:14px}
.component-row{display:grid;grid-template-columns:minmax(220px,1.5fr) minmax(160px,1.1fr) minmax(100px,.65fr) minmax(150px,1fr) 118px;gap:14px;align-items:end;min-width:0;padding:18px;margin:0;border:1px solid #e1e8f1;border-radius:10px;background:#fbfcfe}
.component-row label{display:flex;flex-direction:column;gap:7px;min-width:0;font-weight:650;font-size:13px;color:#42556d}
.component-row input:not([type=checkbox]){width:100%;height:42px;min-width:0;border:1px solid #cfd8e4;border-radius:7px;padding:0 11px;font:inherit;background:#fff;color:var(--ink)}
.component-row .component-active{display:flex;flex-direction:row;align-items:center;gap:8px;min-height:42px;white-space:nowrap}
.component-code{grid-column:1/-1;color:var(--muted);font-size:12px}
.component-active input{width:16px;height:16px;margin:0;accent-color:var(--blue)}
.component-remove{display:inline-flex;align-items:center;justify-content:center;width:118px;min-width:118px;height:42px;padding:0 10px;border:1px solid #f1dada;border-radius:7px;background:#fff7f7;color:var(--red);font-size:13px;white-space:nowrap;cursor:pointer}
.component-remove:hover{background:#fff0f0}
.bom-add-row{padding-top:16px}
.stock-quantity{width:130px;height:36px;border:1px solid #cfd8e4;border-radius:7px;padding:0 9px;font:inherit}
.receipt-meta{margin-bottom:18px}
@media(max-width:980px){.component-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:13px}.component-row .component-active,.component-row .component-remove{grid-column:1/-1;justify-self:start}.component-row .component-remove{width:auto;min-width:118px;padding:0 16px}}
@media(max-width:760px){.bom-editor-card{padding:18px}.bom-section-head{align-items:flex-start;flex-direction:column}.component-row{grid-template-columns:minmax(0,1fr);padding:15px}.component-row .component-code,.component-row .component-active,.component-row .component-remove{grid-column:1}.component-row .component-remove{justify-self:stretch;width:100%}.stock-quantity{width:100px}}

/* Product and component images, plus the expanded BOM fields. */
.product-image-label{display:flex;flex-direction:column;gap:8px;font-size:13px;font-weight:600;color:#42556d}
.product-image-editor{display:flex;align-items:center;gap:18px;padding:14px;border:1px solid var(--line);border-radius:10px;background:#fbfcfe}
.product-image-preview{display:flex;align-items:center;justify-content:center;flex:none;width:160px;height:120px;overflow:hidden;border:1px dashed #cbd6e4;border-radius:9px;background:#f4f7fb;color:#8a97a8;font-size:12px}
.product-image-preview img{width:100%;height:100%;object-fit:contain}
.product-image-actions{display:flex;flex-direction:column;align-items:flex-start;gap:9px}
.product-image-actions input[type=file]{max-width:100%;font:inherit;font-size:13px}
.field-hint{color:var(--muted);font-size:12px;font-weight:400}
.remove-product-image{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:500;color:var(--red)}
.remove-product-image input{margin:0;accent-color:var(--red)}
.product-heading{display:flex;align-items:center;gap:18px;min-width:0}
.product-heading-image{display:flex;align-items:center;justify-content:center;flex:none;width:92px;height:92px;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;color:#9aa5b3;font-size:11px}
.product-heading-image img{width:100%;height:100%;object-fit:contain}
.table-thumbnail{display:inline-flex;align-items:center;justify-content:center;width:54px;height:46px;overflow:hidden;border:1px solid #e4eaf1;border-radius:7px;background:#f8fafc;color:#a0a9b5;font-size:12px;vertical-align:middle}
.table-thumbnail img{width:100%;height:100%;object-fit:contain}
.component-row{display:block;padding:18px 20px;background:#fff}
.component-row-top{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:16px;padding-bottom:15px;margin-bottom:16px;border-bottom:1px solid #edf0f4}
.component-number-field{display:grid;grid-template-columns:auto minmax(150px,250px);align-items:center;gap:9px;min-width:0;color:var(--muted);font-size:12px;font-weight:650}
.component-number-field input{width:100%;height:36px;border:1px solid #cfd8e4;border-radius:7px;padding:0 10px;font:inherit;font-size:13px;background:#fff;color:var(--ink)}
.component-row-top .component-active{display:flex;flex-direction:row;align-items:center;gap:7px;min-height:36px;white-space:nowrap}
.component-fields{display:grid;grid-template-columns:140px minmax(320px,1.45fr) minmax(190px,.7fr) minmax(260px,1.1fr);gap:16px;align-items:start}
.component-fields>label{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:13px;font-weight:650;color:#42556d}
.component-fields textarea{width:100%;min-height:86px;resize:vertical;border:1px solid #cfd8e4;border-radius:7px;padding:9px 11px;font:inherit;font-weight:400;background:#fff;color:var(--ink)}
.component-fields input:not([type=file]){width:100%;height:42px;border:1px solid #cfd8e4;border-radius:7px;padding:0 11px;font:inherit;background:#fff;color:var(--ink)}
.component-fields input[name=quantity]{max-width:190px}
.component-fields .field-hint{margin-top:-3px}
.component-image-field{grid-row:auto;align-items:flex-start!important}
.component-image-preview{position:relative;display:flex;align-items:center;justify-content:center;flex:none;width:116px;height:116px;overflow:hidden;border:1px dashed #cbd6e4;border-radius:9px;background:#f6f8fb;color:#9aa5b3;font-size:12px;font-weight:400;cursor:pointer}
.component-image-preview:hover{border-color:#77a5e8;background:#f2f7ff}
.component-image-preview:focus-within{outline:2px solid #c8dcfa}
.component-image-preview img{width:100%;height:100%;padding:6px;object-fit:contain}
.image-change-hint{position:absolute;z-index:1;right:6px;bottom:6px;left:6px;padding:4px;border-radius:5px;background:#ffffffeb;color:#40536c;text-align:center;font-size:11px;pointer-events:none}
.component-image-input{position:absolute;z-index:2;inset:0;width:100%;min-width:0;height:100%!important;padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;font-size:12px!important;font-weight:400!important;opacity:0;cursor:pointer}
.component-remove{width:auto;min-width:100px;height:36px;padding:0 11px;white-space:nowrap}
.component-row-top .component-active input{flex:none}
@media(max-width:980px){.component-fields{grid-template-columns:minmax(140px,.8fr) minmax(0,1.4fr)}.product-heading-image{width:82px;height:82px}}
@media(max-width:760px){.product-image-editor{align-items:flex-start;flex-direction:column}.product-image-preview{width:100%;max-width:260px}.product-heading{align-items:flex-start;gap:12px}.product-heading-image{width:68px;height:68px}.component-row{padding:15px}.component-row-top{grid-template-columns:minmax(0,1fr) auto;gap:9px}.component-number-field{grid-template-columns:auto minmax(0,1fr)}.component-row-top .component-active{grid-column:1/-1;grid-row:2;justify-self:start}.component-row-top .component-remove{grid-column:2;grid-row:1}.component-fields{grid-template-columns:minmax(0,1fr)}.component-image-field{grid-row:auto}.component-image-preview{width:116px;max-width:116px;height:116px}}
textarea:focus{outline:2px solid #c8dcfa;border-color:#77a5e8}
.product-search-picker{display:grid;grid-template-columns:minmax(240px,.8fr) minmax(0,2fr);gap:10px;width:100%}
.product-search-picker input,.product-search-picker select{width:100%;min-width:0}
button:disabled{opacity:.55;cursor:not-allowed}
@media(max-width:760px){.product-search-picker{grid-template-columns:minmax(0,1fr)}}
