:root{font-family:"Segoe UI","Microsoft YaHei",sans-serif;color:#17334a;background:#f3f5f8;font-synthesis:none;--navy:#142f46;--gold:#b58d48;--muted:#73818f;--line:#dde4ec}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);border-radius:7px;background:white;color:var(--navy);padding:9px 14px;transition:.15s}button:hover{background:#ecf2f6;border-color:#aebdcb}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:var(--navy);color:white;border-color:var(--navy)}.primary:hover{background:#254b69;color:white}.gold{background:#b58d48;color:white}.danger{color:#a22e27}.small{padding:5px 10px;font-size:12px}input,select,textarea{border:1px solid #cfd9e3;border-radius:6px;background:white;color:#17334a;padding:9px 10px;max-width:100%}input:focus,select:focus,textarea:focus{outline:2px solid #a8bacb}input[type=checkbox]{accent-color:var(--navy);width:16px;height:16px}textarea{resize:vertical;min-height:80px}h1,h2,h3,p{margin-top:0}h1{font-size:27px;letter-spacing:-.8px}h2{font-size:20px}h3{font-size:16px}a{color:#285e88}header{background:var(--navy);color:white;padding:0 30px;display:flex;align-items:center;justify-content:space-between;height:72px;gap:20px}.brand{display:flex;align-items:center;gap:16px}.brand strong{font-size:22px;letter-spacing:2px}.brand small{border-left:1px solid #476075;padding-left:16px;font-size:13px;letter-spacing:1px}.header-actions{display:flex;align-items:center;gap:9px}.header-actions button{color:white;border-color:#486074;background:transparent}nav{padding:0 30px;background:white;display:flex;gap:25px;border-bottom:1px solid var(--line);overflow-x:auto}nav button{border:0;border-radius:0;padding:17px 3px;color:#73818f;white-space:nowrap}nav button.active{color:var(--navy);border-bottom:3px solid var(--gold);font-weight:700}main{padding:27px 30px;max-width:1760px;margin:auto}.title{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:22px}.eyebrow{font-size:11px;letter-spacing:2px;color:var(--gold);margin-bottom:8px;font-weight:700}.subtitle{font-size:13px;color:var(--muted);margin-bottom:0;line-height:1.7}.actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:22px}.card{background:white;border:1px solid var(--line);border-radius:10px;padding:19px 21px}.card .label{font-size:12px;color:var(--muted);margin-bottom:10px}.card .value{font-size:25px;font-weight:650;letter-spacing:-.5px}.card .value small{font-size:12px;color:var(--muted);margin-left:8px;font-weight:400}.panel{background:white;border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:20px}.panel-head{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px}.panel-head h3{margin:0}.filters{padding:17px 20px;display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.filters input[type=search]{flex:1;min-width:220px}.table-wrap{overflow-x:auto;max-height:62vh}table{border-collapse:collapse;width:100%;font-size:13px}th{background:#f7f9fb;color:#667b8d;font-weight:500;white-space:nowrap;text-align:left;position:sticky;top:0;z-index:1}th,td{padding:13px 14px;border-bottom:1px solid #eaf0f5;vertical-align:middle}tr:hover td{background:#fafcfe}td.num,th.num{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.name{font-weight:600;max-width:260px;min-width:180px}.name small{display:block;font-weight:400;color:var(--muted);font-size:11px;margin-top:4px}.badge{display:inline-block;border-radius:20px;padding:4px 8px;font-size:11px;background:#eaf4ef;color:#397758;white-space:nowrap}.badge.warn{background:#fff2d9;color:#8c6c26}.badge.off{background:#edf0f4;color:#7a8490}.panel-foot{padding:13px 20px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap}.announce{background:#fff8e9;border-bottom:1px solid #ead7ad;padding:12px 30px;display:flex;align-items:center;justify-content:space-between;gap:18px;font-size:13px}.announce p{margin:3px 0 0;color:#7c6842;white-space:pre-wrap}.announce strong{color:#805d26}.empty{padding:45px;text-align:center;color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}.field{display:flex;flex-direction:column;gap:7px;font-size:12px;color:#617487}.field.wide{grid-column:1/-1}.field input,.field select,.field textarea{width:100%}.section{padding:20px}.help{color:#7a8895;font-size:12px;line-height:1.7}.notice{padding:13px;background:#f2f6fa;border-left:3px solid var(--gold);font-size:12px;line-height:1.8;margin-bottom:18px}.quote-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:20px}.totals{padding:22px}.total-row{display:flex;justify-content:space-between;padding:10px 0;font-size:14px}.total-row.big{font-size:22px;font-weight:700;border-top:1px solid var(--line);margin-top:12px;padding-top:20px}.money-input{width:125px;text-align:right}.qty-input{width:75px}.disc-input{width:80px}.quote-row-name{min-width:180px}.words{font-size:12px;line-height:1.7;color:var(--muted);margin-top:13px}.switch{display:inline-flex;border:1px solid var(--line);border-radius:8px;overflow:hidden}.switch button{border:0;border-radius:0}.switch button.on{background:var(--navy);color:white}.login{min-height:100vh;display:grid;grid-template-columns:1fr 1fr}.login-art{background:var(--navy);color:white;padding:10vw 6vw;display:flex;flex-direction:column;justify-content:center}.login-art h1{font-size:45px;line-height:1.4;max-width:500px}.login-art p{color:#abbac7;line-height:1.9}.login-form{display:flex;align-items:center;justify-content:center;padding:40px}.login-form form{width:360px}.login-form .field{margin:20px 0}.login-form button{width:100%;margin-top:15px}.logo-large{font-size:20px;letter-spacing:5px;color:#c9a96c;margin-bottom:50px}dialog{border:0;border-radius:12px;padding:0;max-width:900px;width:90vw;max-height:88vh;box-shadow:0 20px 70px #152c4b40}dialog::backdrop{background:#0c203878}dialog .dialog-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between}dialog .dialog-head h2{margin:0}dialog .dialog-body{padding:22px 24px}dialog .dialog-foot{padding:16px 24px;border-top:1px solid var(--line);display:flex;justify-content:flex-end;gap:9px;position:sticky;bottom:0;background:white}#toast{position:fixed;right:24px;top:20px;z-index:100;max-width:520px;background:#17384f;color:white;border-radius:8px;padding:14px 20px;display:none;box-shadow:0 5px 20px #0002}#toast.visible{display:block}pre{white-space:pre-wrap;word-break:break-word;font:12px/1.8 "Segoe UI","Microsoft YaHei",sans-serif}.contact-row{display:grid;grid-template-columns:1fr 1fr 1.5fr auto;gap:8px;margin-bottom:8px}.footnote{margin-top:26px;color:#91a0af;font-size:11px;display:flex;justify-content:space-between}.toolbar-space{margin-bottom:16px}.linklike{border:0;background:transparent;color:#38698e;padding:0}.error{color:#b34236;white-space:pre-wrap}.approval{padding:15px;background:#fff8e8;margin-top:15px;border-radius:7px}.approval h3{color:#8e6a2e}.check{display:flex;align-items:center;gap:8px;font-size:13px}.audit-value{font-size:12px;color:#7a8795}.hidden{display:none!important}@media(max-width:1000px){.cards{grid-template-columns:repeat(2,1fr)}.quote-grid{grid-template-columns:1fr}.login{grid-template-columns:1fr}.login-art{display:none}}@media(max-width:600px){header{padding:0 16px}.brand small{display:none}header .username{display:none}nav{padding:0 16px;gap:18px}main{padding:20px 14px}.title{align-items:flex-start;flex-direction:column}.cards{gap:9px}.card{padding:15px}.card .value{font-size:21px}.grid{grid-template-columns:1fr}.field.wide{grid-column:auto}.announce{padding:12px 14px;align-items:flex-start}.contact-row{grid-template-columns:1fr}.filters{padding:12px}.table-wrap{max-height:65vh}dialog{width:96vw}.login-form{padding:25px}.footnote{gap:20px}h1{font-size:24px}}

.catalog th,.catalog td{padding:6px 10px}.catalog .name small{margin-top:1px}.catalog .badge{padding:2px 6px}.product-notes{min-width:170px;max-width:280px;white-space:pre-wrap;overflow-wrap:anywhere}.announce{padding:7px 30px;font-size:12px}.announce strong,.announce p,.duplicate-warning{color:#bb2020}.announce p{margin-top:2px}.duplicate-warning{font-weight:600;margin:0}.duplicate-warning:empty{display:none}

.customer-sheet{background:white;border:1px solid #cbd5df;padding:22px;max-width:1000px;margin:auto;overflow-x:auto}.sheet-brand{display:flex;justify-content:space-between;gap:24px;align-items:center;font-size:12px;line-height:1.8}.sheet-brand strong{display:block;font-size:24px}.sheet-brand img{width:80px}.sheet-details,.sheet-bottom{display:grid;grid-template-columns:3fr 2fr;gap:18px;font-size:12px;line-height:1.9}.sheet-title{text-align:center;margin:14px 0 0;padding:8px;background:#15334f;color:white}.customer-sheet th{position:static}.customer-sheet td,.customer-sheet th{padding:9px 8px}.sheet-bottom{margin-top:10px}.sheet-signatures{display:flex;justify-content:space-between;gap:24px;margin-top:40px;font-size:12px}.customer-sheet h3{margin-top:10px}

.quote-grid{display:block}.quotation-editor .table-wrap{max-height:none}.quote-form-table{table-layout:fixed;min-width:680px}.quote-form-table .description-col{width:50%}.quote-form-table .quantity-col{width:13%}.quote-form-table .unit-col{width:17%}.quote-form-table .amount-col{width:20%}.quote-form-table th,.quote-form-table td{border:1px solid #abb6c0;padding:14px 12px}.quote-form-table th{text-align:center;font-size:15px;font-weight:600;background:white;color:#17334a;position:static}.quote-form-table td{text-align:center}.quote-form-table td.num{text-align:right}.quote-description>div:first-child{font-size:15px;line-height:1.7}.quote-form-table input{width:100%;max-width:160px;text-align:right;padding:8px}.quote-form-table .qty-input{max-width:85px;text-align:center}.quote-form-table .line-tools{display:flex;justify-content:center;align-items:flex-start;gap:12px;margin-top:10px}.line-tools details{text-align:left;font-size:12px}.line-tools summary{cursor:pointer;color:#617487}.adjust-fields{display:flex;gap:10px;margin-top:8px;flex-wrap:wrap}.adjust-fields label{display:flex;flex-direction:column;gap:5px}.quote-form-table .adjust-fields input{text-align:left}.quote-form-table .amount-words{text-align:left;vertical-align:top;font-size:16px}.amount-words .words{font-size:16px;color:#17334a;line-height:1.9}.quote-form-table .summary-row td{padding:11px 14px}.quote-form-table .grand-total td{font-size:21px;font-weight:700;padding-top:18px;padding-bottom:18px}.quote-form-table .extra-row td:first-child{text-align:left}
.quote-form-table th,.quote-form-table td{padding:6px 10px}.quote-description>div:first-child{font-size:14px;line-height:1.4}.quote-form-table .line-tools{margin-top:3px;gap:8px}.quote-form-table input{padding:5px 8px}.quote-form-table .summary-row td{padding:7px 12px}.quote-form-table .grand-total td{padding:10px 12px}.line-tools .small{padding:2px 7px}

.stock-negative{color:#c62828;font-weight:700} [data-stock-history]{min-width:180px;max-width:420px} [data-stock-history] p{border-bottom:1px solid #dde4ec;padding:8px 0;font-size:13px}

.column-filter{display:block;margin-top:6px;padding:5px 7px;min-width:108px;width:100%;font-size:12px;font-weight:400}.stock-stepper{display:flex;align-items:stretch;gap:6px}.stock-stepper input{min-width:0;flex:1;appearance:textfield;-moz-appearance:textfield}.stock-stepper input::-webkit-inner-spin-button,.stock-stepper input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.stock-step-buttons{display:flex;flex-direction:column;gap:2px}.stock-step-buttons button{padding:2px 12px;min-height:23px;line-height:1.1}

.stock-summary{display:flex;align-items:center;flex-wrap:wrap;gap:12px 24px;padding:12px 18px;background:#f2f6fa;border-top:1px solid #e1e8ef;border-bottom:1px solid #e1e8ef;font-size:14px}.stock-summary span{font-weight:600}.stock-summary small{color:#637588;font-weight:400}

.stock-inline{min-width:125px;max-width:170px}.stock-inline input{width:88px;padding:8px}.stock-inline .stock-step-buttons button{padding:2px 8px}
