:root{
  --tull-orange:#f58220;
  --tull-orange-dark:#d96b08;
  --tull-orange-soft:#fff2e7;
  --tull-charcoal:#262626;
  --tull-charcoal-2:#343434;
  --tull-slate:#5f6368;
  --tull-bg:#f3f4f4;
  --tull-border:#d9dcdf;
  --tull-white:#fff;
  --success:#267447;
  --warning:#a66a00;
  --danger:#b62f2f;
  --shadow:0 8px 28px rgba(22,25,28,.07);
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-height:100vh;font-family:Arial,Helvetica,sans-serif;background:linear-gradient(180deg,#f7f7f6 0,#f2f3f3 260px);color:#252a2e;display:flex;flex-direction:column}
a{color:#c85f05;text-decoration-color:rgba(200,95,5,.35)}a:hover{color:#9f4900}
.topbar{min-height:78px;background:var(--tull-charcoal);color:#fff;display:flex;align-items:center;justify-content:space-between;padding:9px 28px;gap:26px;box-shadow:0 3px 12px rgba(0,0,0,.12)}
.brand-shell{flex:0 0 auto}.brand{display:flex;align-items:center;gap:14px;color:#fff;text-decoration:none}.brand:hover{color:#fff}
.brand-logo-card{height:58px;width:190px;background:#fff;border-radius:3px;display:flex;align-items:center;padding:5px 10px;overflow:hidden}.brand-logo-card img{max-width:100%;max-height:100%;object-fit:contain;display:block}
.app-identity{display:flex;flex-direction:column;line-height:1}.app-identity strong{font-size:24px;letter-spacing:1.2px}.app-identity small{font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:#c7c7c7;margin-top:6px}
.topbar nav{display:flex;gap:7px;align-items:center;flex-wrap:wrap;justify-content:flex-end}.topbar nav a,.link-button{color:#eee;text-decoration:none;background:none;border:0;font:inherit;cursor:pointer;padding:9px 10px;border-radius:5px;font-size:14px}.topbar nav a:hover,.link-button:hover{background:rgba(255,255,255,.08);color:#fff}.topbar nav a:focus-visible,.link-button:focus-visible{outline:2px solid var(--tull-orange);outline-offset:2px}
.brand-stripe{height:5px;background:linear-gradient(90deg,var(--tull-orange) 0 36%,#ffad66 36% 44%,#d8d8d8 44% 100%)}
.container{width:100%;max-width:1320px;margin:30px auto;padding:0 24px;flex:1}.page-head{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;padding-bottom:14px;border-bottom:1px solid #dedede}.page-head h1,.page-head h2{margin:0;color:var(--tull-charcoal);font-weight:700}.page-head h1:after,.page-head h2:after{content:"";display:block;width:46px;height:4px;background:var(--tull-orange);margin-top:9px}.page-head p{margin:7px 0 0;color:#6f7478}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;border:1px solid #c9cdd0;border-radius:5px;padding:9px 14px;background:#fff;color:#303438;text-decoration:none;cursor:pointer;font-size:14px;font-weight:600;transition:.15s ease}.btn:hover{border-color:#9fa4a8;background:#fafafa;color:#1f2326;transform:translateY(-1px)}.btn.primary{background:var(--tull-orange);color:#fff;border-color:var(--tull-orange)}.btn.primary:hover{background:var(--tull-orange-dark);border-color:var(--tull-orange-dark);color:#fff}.btn.wide{width:100%}
.panel,.card,.login-card{background:#fff;border:1px solid var(--tull-border);border-radius:7px;box-shadow:var(--shadow)}.panel{padding:21px;margin-bottom:20px;overflow-x:auto}.panel.narrow{max-width:760px;margin:30px auto;padding:27px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:22px}.card{padding:20px;position:relative;overflow:hidden}.card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--tull-orange)}.card span{display:block;color:#6e7479;font-size:13px;text-transform:uppercase;letter-spacing:.35px}.card strong{font-size:30px;margin-top:8px;display:block;color:var(--tull-charcoal)}
table{width:100%;border-collapse:collapse;background:#fff}th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #e7e8e9;vertical-align:top}th{font-size:12px;color:#fff;background:var(--tull-charcoal-2);text-transform:uppercase;letter-spacing:.35px}td{font-size:14px}tbody tr:hover td{background:#fffaf6}.pill{display:inline-block;padding:4px 8px;background:#f0f1f2;border-radius:999px;font-size:12px;font-weight:600}.form-control,input[type=file],input[type=text],input[type=password],input[type=email],input[type=number],input[type=url],input[type=date],input[type=search],select,textarea{width:100%;padding:10px 11px;border:1px solid #c8cccf;border-radius:5px;background:#fff;color:#24282c;font:inherit;box-sizing:border-box}.form-control:focus,input:focus,select:focus,textarea:focus{outline:none;border-color:var(--tull-orange);box-shadow:0 0 0 3px rgba(245,130,32,.14)}textarea.form-control{resize:vertical}form p label{display:block;font-weight:600;margin-bottom:5px;color:#383c40}form p{margin-bottom:16px}.search{display:flex;gap:8px;margin-bottom:16px}.search input{max-width:600px}.actions{display:flex;gap:8px;align-items:center}.inline{display:inline}.message{padding:12px 15px;border-left:4px solid var(--success);border-radius:5px;margin-bottom:15px;background:#edf7f1}.message.error{border-left-color:var(--danger);background:#fff0f0}.quote-meta{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:18px}.quote-meta>div{background:#fff;border:1px solid var(--tull-border);border-top:3px solid var(--tull-orange);border-radius:5px;padding:14px;box-shadow:0 3px 12px rgba(0,0,0,.035)}.totals{margin-left:auto;margin-top:18px;max-width:350px;background:#fff;padding:12px 16px;border-left:4px solid var(--tull-orange)}.totals div{display:flex;justify-content:space-between;padding:7px 0}.totals .grand{font-size:20px;border-top:2px solid var(--tull-charcoal);margin-top:4px;padding-top:12px;font-weight:700}.danger-link{background:none;border:0;color:var(--danger);cursor:pointer}.pagination{display:flex;gap:14px;justify-content:center;align-items:center}.error-line{font-size:13px;color:#a11;padding:3px 0}code{background:#eee;padding:2px 4px;border-radius:4px}
.cards.four{grid-template-columns:repeat(4,1fr)}.cards.five{grid-template-columns:repeat(5,1fr)}.muted{color:#7a8085}.nowrap{white-space:nowrap}.compact{max-width:240px}.part-thumb{width:54px;height:54px;object-fit:contain;border:1px solid #e3e7eb;border-radius:5px;background:#fff}
.no-image-badge{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;width:54px;height:54px;border:1px solid #e3e7eb;border-radius:5px;background:#fafbfc;color:#8992a0;text-decoration:none;font-size:9px;font-weight:700;text-align:center;text-transform:uppercase;letter-spacing:.2px}
.no-image-badge:hover{background:#f0f2f4;color:#5f6b78}
.no-image-badge svg{width:20px;height:20px}.candidate-product{display:flex;gap:10px;min-width:360px}.candidate-desc{margin-top:5px;color:#626970;max-width:620px}.product-preview{display:flex;gap:22px;align-items:flex-start}.product-preview>img{width:180px;height:180px;object-fit:contain;border:1px solid #e3e7eb;border-radius:6px;background:#fff}.approved-box{border-left:5px solid var(--success)}.score{display:inline-block;font-weight:700;padding:5px 8px;border-radius:5px;background:#eef1f4}.score-high{background:#e6f4ea;color:#225d39}.score-mid{background:#fff2d5;color:#765000}.score-low{background:#fdecec;color:#8f2222}.status-approved,.status-auto_approved,.status-complete,.status-found{background:#e6f4ea}.status-review,.status-running,.status-scanning,.status-checking{background:#fff2d5}.status-not_found,.status-failed{background:#fdecec}.status-queued{background:#fff0e4;color:#9b4e0c}.small-strong{font-size:18px!important}.actions form{margin:0}.actions .btn{white-space:nowrap}
.field-group{margin-bottom:16px}.field-group>label{display:block;font-weight:600;margin-bottom:5px}.field-help{font-size:12px;color:#74808b;margin-top:5px}.form-row.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}.line-type-fields[hidden]{display:none}.autocomplete-wrap{position:relative}.part-search-results{position:absolute;z-index:50;left:0;right:0;top:calc(100% - 1px);max-height:min(68vh,720px);overflow-y:auto;background:#fff;border:1px solid #cbd3da;border-radius:5px;box-shadow:0 12px 30px rgba(20,30,40,.16)}.part-search-result{width:100%;display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 12px;border:0;border-bottom:1px solid #edf0f2;background:#fff;text-align:left;cursor:pointer;color:inherit}.part-search-result:last-child{border-bottom:0}.part-search-result:hover,.part-search-result:focus{background:var(--tull-orange-soft);outline:none}.part-search-result img,.part-result-placeholder{width:46px;height:46px;border:1px solid #e1e6eb;border-radius:5px;object-fit:contain;background:#fff}.part-result-placeholder{display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:#89939d}.part-result-copy{display:flex;flex-direction:column;min-width:0}.part-result-copy strong{font-size:14px}.part-result-copy>span{font-size:13px;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-result-copy small{color:#74808b;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.part-result-price{font-weight:700;white-space:nowrap;color:#b65300}.part-search-message{padding:13px;color:#667}.selected-part{display:flex;align-items:center;gap:12px;padding:12px;border:1px solid #f0b47e;border-left:4px solid var(--tull-orange);background:#fff8f2;border-radius:5px;margin-bottom:16px}.selected-part-image-wrap img{width:58px;height:58px;object-fit:contain;background:#fff;border:1px solid #dde5df;border-radius:5px}.selected-part-copy{flex:1;min-width:0}.selected-part-copy>div{margin-top:3px;font-size:13px}.autocomplete-wrap.has-selection>input{border-color:var(--tull-orange);background:#fffaf6}.file-dropzone{border:2px dashed #cbd3da;border-radius:8px;padding:28px 16px;text-align:center;color:#667;cursor:pointer;transition:border-color .15s,background .15s}.file-dropzone:hover{border-color:var(--tull-orange)}.file-dropzone.drag-over{border-color:var(--tull-orange);background:var(--tull-orange-soft)}.file-picker-actions{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:12px}.file-picker-list{margin-top:14px;border:1px solid #e1e6eb;border-radius:6px;max-height:320px;overflow-y:auto}.file-picker-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 12px;border-bottom:1px solid #edf0f2;background:#fff;font-size:13px}.file-picker-row:last-child{border-bottom:0}.file-picker-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-picker-row-size{color:#74808b;white-space:nowrap;margin-left:10px}.file-picker-remove{background:none;border:0;color:#8f2222;cursor:pointer;font-size:13px;padding:2px 4px;flex-shrink:0}.file-picker-remove:hover{text-decoration:underline}.file-picker-summary{margin-top:10px;font-size:13px;color:#4f565b}.file-picker-summary.over-limit{color:#8f2222;font-weight:600}
.completion-attachment-box{margin-top:14px;border:1px solid var(--tull-border);border-radius:6px;background:#fafafa}
.completion-attachment-box summary{cursor:pointer;font-weight:700;padding:13px 15px;color:var(--tull-charcoal)}
.completion-attachment-box .completion-attachment-list{margin:0 15px 14px}
.completion-attachment-box form{padding:0 15px 16px;max-width:780px}
.completion-attachment-list{list-style:none;padding:0;margin:0 0 14px;border:1px solid #e1e6eb;border-radius:6px}
.completion-attachment-row{display:flex;align-items:center;gap:14px;padding:12px 14px;border-bottom:1px solid #edf0f2}
.completion-attachment-row:last-child{border-bottom:0}
.completion-attachment-thumb-link,.completion-attachment-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:110px;height:110px;border-radius:6px;overflow:hidden;background:#f5f6f7;border:1px solid #e1e6eb;position:relative}
.completion-attachment-thumb-link{padding:0;margin:0;font:inherit;cursor:zoom-in}
.completion-attachment-thumb-link:hover,.completion-attachment-thumb-link:focus-visible{border-color:var(--tull-orange,#F58220)}
.completion-attachment-thumb{width:100%;height:100%;object-fit:cover;display:block}
.completion-attachment-icon{color:#89939d;font-size:36px}
.completion-attachment-icon[hidden]{display:none}
.completion-attachment-icon-link{cursor:pointer}
.completion-attachment-icon svg{width:1em;height:1em}
.completion-attachment-zoom-badge{position:absolute;right:6px;bottom:6px;width:26px;height:26px;border-radius:50%;background:rgba(20,23,26,.72);color:#fff;display:flex;align-items:center;justify-content:center;font-size:14px;pointer-events:none}
.completion-attachment-zoom-badge svg{width:14px;height:14px}
.completion-attachment-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.completion-attachment-title{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.completion-attachment-filename-btn{background:none;border:0;padding:0;margin:0;font:inherit;color:var(--tull-orange,#F58220);text-decoration:underline;cursor:pointer}
.completion-attachment-meta{font-size:12px;white-space:nowrap}

.completion-attachment-preview-modal{position:fixed;inset:0;background:rgba(15,17,19,.7);display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}
.completion-attachment-preview-modal[hidden]{display:none}
.completion-attachment-preview-box{background:#fff;border-radius:8px;box-shadow:0 20px 50px rgba(0,0,0,.35);width:100%;max-width:900px;height:90vh;display:flex;flex-direction:column;overflow:hidden}
.completion-attachment-preview-head{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid #e1e6eb}
.completion-attachment-preview-filename{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600}
.completion-attachment-preview-close{background:none;border:0;font-size:24px;line-height:1;cursor:pointer;padding:2px 8px;color:#666}
.completion-attachment-preview-close:hover{color:#111}
.completion-attachment-preview-body{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;background:#33383d;overflow:auto}
.completion-attachment-preview-body img{max-width:100%;max-height:100%;object-fit:contain}
.completion-attachment-preview-body iframe{width:100%;height:100%;border:0;background:#fff}

.delivery-card-list{display:flex;flex-direction:column;gap:10px}
.delivery-card{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid #e1e6eb;border-radius:8px;background:#fff}
.delivery-card-main{display:flex;flex-direction:column;gap:3px}
.delivery-card-meta{font-size:12px}
.delivery-items-table{width:100%;border-collapse:collapse}
.delivery-items-table th,.delivery-items-table td{padding:8px 10px;border-bottom:1px solid #edf0f2;text-align:left;font-size:13px}
.delivery-items-table th{color:#74808b;font-weight:600}
.delivery-line-picker{border:1px solid #e1e6eb;border-radius:6px;overflow:hidden}
.delivery-line-picker-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border-bottom:1px solid #edf0f2}
.delivery-line-picker-row:last-child{border-bottom:0}
.delivery-line-picker-desc{font-size:13px}
.delivery-line-picker-qty{max-width:110px}
.delivery-mini-list{list-style:none;padding:0;margin:0;border:1px solid #e1e6eb;border-radius:6px}
.delivery-mini-row{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid #edf0f2;font-size:13px}
.delivery-mini-row:last-child{border-bottom:0}
.signature-pad-wrap{border:1px solid #cbd3da;border-radius:8px;background:#fff;touch-action:none}
.signature-pad{width:100%;height:220px;display:block;cursor:crosshair;touch-action:none}
.photo-preview-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.photo-preview-thumb{width:90px;height:90px;object-fit:cover;border-radius:6px;border:1px solid #e1e6eb}
.delivery-signature-preview{max-width:320px;border:1px solid #e1e6eb;border-radius:6px;background:#fff;margin-top:10px}

.site-footer{background:#2c2c2c;color:#cfcfcf;border-top:4px solid var(--tull-orange);padding:18px 28px;text-align:center;font-size:12px;line-height:1.7}.site-footer strong{color:#fff;letter-spacing:1px}.site-footer span{color:#777;margin:0 4px}.footer-contact{color:#aaa}
.login-wrap{max-width:980px;margin:54px auto;display:grid;grid-template-columns:1.05fr .95fr;box-shadow:0 16px 44px rgba(0,0,0,.10);border-radius:8px;overflow:hidden;border:1px solid #d8d8d8;background:#fff}.login-brand-panel{background:var(--tull-charcoal);padding:46px;display:flex;flex-direction:column;justify-content:center;min-height:480px;border-bottom:6px solid var(--tull-orange)}.login-brand-panel>img{width:min(330px,100%);max-height:100px;object-fit:contain;background:#fff;padding:10px;border-radius:4px}.login-brand-copy{margin-top:40px;color:#fff}.eyebrow{font-size:11px;font-weight:700;letter-spacing:2.2px;color:#d2d2d2}.eyebrow.orange{color:var(--tull-orange)}.login-brand-copy h1{font-size:58px;letter-spacing:3px;margin:11px 0 5px}.login-brand-copy p{color:#c4c4c4;margin:0}.login-card{box-shadow:none;border:0;border-radius:0;padding:54px 44px;margin:0;display:flex;flex-direction:column;justify-content:center}.login-card h2{font-size:29px;margin:8px 0 26px;color:var(--tull-charcoal)}
@media(max-width:1060px){.topbar{align-items:flex-start;flex-direction:column}.topbar nav{justify-content:flex-start}.cards.four,.cards.five{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.topbar{height:auto;padding:14px 16px}.brand-logo-card{width:160px;height:52px}.app-identity{display:none}.topbar nav{margin-top:4px;gap:2px}.container{margin-top:22px;padding:0 15px}.cards,.cards.four,.cards.five,.quote-meta{grid-template-columns:1fr}.page-head{align-items:flex-start;flex-direction:column}th,td{white-space:nowrap}.product-preview{display:block}.product-preview>img{margin-bottom:14px}.login-wrap{grid-template-columns:1fr;margin:22px auto}.login-brand-panel{min-height:auto;padding:30px}.login-brand-copy{margin-top:22px}.login-brand-copy h1{font-size:42px}.login-card{padding:34px 28px}.form-row.two-col{grid-template-columns:1fr}.part-search-result{grid-template-columns:38px minmax(0,1fr)}.part-search-result img,.part-result-placeholder{width:38px;height:38px}.part-result-price{grid-column:2}.selected-part{align-items:flex-start;flex-wrap:wrap}.site-footer{padding:16px 12px}}
.pricing-box{border:1px solid #efc39d;background:#fff9f4;border-left:4px solid var(--tull-orange);border-radius:6px;padding:15px;margin:18px 0}.pricing-head{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:12px}.pricing-head span{font-size:12px;color:#7a695c}.pricing-grid{grid-template-columns:.75fr 1fr 1fr 1fr!important}.pricing-box input[readonly]{background:#f4f2ef;color:#4d4d4d;font-weight:700}.supplier-note{margin:-6px 0 16px}.line-type-label{font-size:11px;color:#81878c;margin-top:4px}.line-actions{white-space:nowrap}.line-actions form{display:inline;margin-left:8px}.quote-lines-table td:nth-child(4),.quote-lines-table td:nth-child(5),.quote-lines-table td:nth-child(6),.quote-lines-table td:nth-child(7),.quote-lines-table td:nth-child(8){white-space:nowrap}.quote-meta{grid-template-columns:repeat(5,1fr)}
@media(max-width:1000px){.pricing-grid{grid-template-columns:1fr 1fr!important}.quote-meta{grid-template-columns:repeat(2,1fr)}}
@media(max-width:700px){.pricing-grid{grid-template-columns:1fr!important}.pricing-head{align-items:flex-start;flex-direction:column}.quote-meta{grid-template-columns:1fr}}

/* v2.3 supplier price-list import summary */
.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;margin:14px 0 20px}.detail-grid>div{border:1px solid #ddd;background:#fafafa;border-radius:8px;padding:10px 12px}.detail-grid span{display:block;color:#666;font-size:.82rem;margin-bottom:3px}.detail-grid strong{display:block;color:#222}

/* v2.7 dual quotation documents and reusable conditions */
.btn.confidential{background:#5b2626;border-color:#5b2626;color:#fff}.btn.confidential:hover{background:#461d1d;border-color:#461d1d;color:#fff}.quote-doc-actions{flex-wrap:wrap;justify-content:flex-end}.quote-lines-table th small{font-size:9px;color:#d0d0d0;font-weight:400;text-transform:none;letter-spacing:0}.quote-summary-grid{display:grid;grid-template-columns:minmax(240px,1fr) minmax(320px,420px);gap:24px;align-items:start;margin-top:18px}.cost-summary{border-left:4px solid #5b2626;background:#fbf6f6;padding:13px 16px;display:grid;grid-template-columns:1fr auto;gap:8px 16px}.cost-summary span{color:#666}.cost-summary strong{text-align:right}.totals{margin:0;max-width:none}.totals .net-value{font-weight:700;background:var(--tull-orange-soft);margin:2px -8px;padding:9px 8px;border-top:1px solid #f0c39c;border-bottom:1px solid #f0c39c}.condition-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.condition-columns h3{margin:3px 0 12px;color:var(--tull-charcoal)}.condition-row{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid #e7e8e9}.condition-row>div:first-child{min-width:0}.condition-row p{margin:5px 0 0;line-height:1.45;color:#4f565b}.condition-actions{white-space:nowrap;font-size:13px;display:flex;gap:8px;align-items:flex-start}.condition-actions form{margin:0}.quote-note-block{border:1px solid #f1c9a6;background:#fff8f2;border-left:4px solid var(--tull-orange);padding:13px 15px;margin-bottom:18px}.quote-note-block p{margin:8px 0 0}.condition-heading{display:flex;justify-content:space-between;gap:10px}.add-condition-box{margin-top:20px;border:1px solid var(--tull-border);border-radius:6px;background:#fafafa}.add-condition-box summary{cursor:pointer;font-weight:700;padding:13px 15px;color:var(--tull-charcoal)}.add-condition-box form{padding:0 15px 16px;max-width:780px}.template-copy{max-width:650px;white-space:normal;line-height:1.4}.quote-conditions-panel code{white-space:nowrap}
.drag-handle{width:24px;color:#9aa1a8;cursor:grab;text-align:center}
.drag-handle svg{width:18px;height:18px}
.reorder-table tr.dragging{opacity:.4}
.reorder-table tbody tr:hover .drag-handle{color:var(--tull-orange,#ef7d00)}
@media(max-width:900px){.quote-summary-grid,.condition-columns{grid-template-columns:1fr}.quote-doc-actions{justify-content:flex-start}.condition-row{flex-direction:column}.condition-actions{align-self:flex-start}}


/* v2.8 user profiles and customer-PDF signatures */
.user-chip{display:inline-flex!important;align-items:center;gap:7px!important;padding:5px 8px!important;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045)!important}.user-chip img,.user-avatar-fallback{width:30px;height:30px;border-radius:50%;object-fit:cover;background:#fff;border:2px solid rgba(245,130,32,.85);display:flex;align-items:center;justify-content:center}.user-avatar-fallback{background:var(--tull-orange);color:#fff;font-weight:700;font-size:12px}.user-chip-name{max-width:120px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px;align-items:start}.profile-main h2,.profile-preview h2{margin:0 0 16px;color:var(--tull-charcoal)}.profile-main h2:not(:first-child){margin-top:28px;padding-top:20px;border-top:1px solid #e6e7e8}.profile-photo-preview{width:116px;height:116px;border-radius:50%;overflow:hidden;border:4px solid #fff;box-shadow:0 0 0 2px var(--tull-orange),0 7px 20px rgba(0,0,0,.10);display:flex;align-items:center;justify-content:center;background:var(--tull-orange-soft);margin:4px auto 14px}.profile-photo-preview img{width:100%;height:100%;object-fit:cover}.profile-photo-preview span{font-size:42px;font-weight:700;color:var(--tull-orange-dark)}.profile-preview{text-align:center}.profile-preview-name{font-size:18px;display:block;margin-bottom:4px}.signature-preview-card{text-align:left;margin-top:24px;padding-top:18px;border-top:1px solid #e3e5e6}.signature-preview-card>span{display:block;font-size:12px;font-weight:700;text-transform:uppercase;color:#73797d;letter-spacing:.35px;margin-bottom:10px}.signature-preview-card img{display:block;max-width:100%;max-height:95px;object-fit:contain;object-position:left center;background:#fff;border:1px solid #e6e6e6;border-radius:5px;padding:8px;margin-bottom:8px}.signature-empty{border:1px dashed #c9cdd0;border-radius:5px;padding:24px 10px;text-align:center;color:#888;background:#fafafa;margin-bottom:8px}.signature-preview-card small{display:block;color:#777;line-height:1.45}.profile-main input[type=file]{padding:8px;background:#fafafa}
@media(max-width:900px){.profile-layout{grid-template-columns:1fr}.profile-preview{order:-1}.user-chip-name{display:none}}

.part-search-limit-note{position:sticky;bottom:0;background:#f7f8f9;border-top:1px solid #dde3e8;font-size:12px;color:#66717c;box-shadow:0 -3px 8px rgba(0,0,0,.04)}

/* ========================================================================
   TULL5 v3.0 application shell
   The application UI is now branded as TULL5; T.F. Tull letterhead remains
   confined to customer-facing PDF output.
   ======================================================================== */
:root{
  --v3-black:#050607;
  --v3-black-2:#0b0e12;
  --v3-sidebar:#10161d;
  --v3-sidebar-2:#17202a;
  --v3-orange:#ff7900;
  --v3-orange-dark:#df6500;
  --v3-orange-soft:#fff0e2;
  --v3-page:#f7f8fa;
  --v3-card:#ffffff;
  --v3-border:#dfe3e7;
  --v3-text:#171a1d;
  --v3-muted:#69737d;
  --v3-green:#258c53;
  --v3-red:#d14b54;
  --v3-blue:#268bd2;
}
html,body{min-height:100%}
body.v3-body{font-family:"Segoe UI",Arial,Helvetica,sans-serif;background:var(--v3-page);color:var(--v3-text);display:block;min-height:100vh}
.app-topbar{height:92px;background:var(--v3-black);color:#fff;display:grid;grid-template-columns:290px minmax(520px,1fr) auto;align-items:stretch;padding:0 24px;position:sticky;top:0;z-index:400;box-shadow:0 1px 0 rgba(255,255,255,.04)}
.tull5-header-brand{display:flex;align-items:center;height:100%;width:235px;text-decoration:none;overflow:hidden}.tull5-header-brand:hover{opacity:.94}
.tull5-wordmark{display:inline-flex;align-items:center;line-height:0}
.tull5-wordmark img{display:block;height:38px;width:auto;object-fit:contain}
.login-brand .tull5-wordmark img{height:56px}
.tull5-five{transform-style:preserve-3d;backface-visibility:hidden}
@keyframes tull5-five-spin{0%{transform:rotateY(0)}100%{transform:rotateY(360deg)}}
.tull5-five.is-spinning{animation:tull5-five-spin .9s cubic-bezier(.45,.05,.15,1)}
@media(prefers-reduced-motion:reduce){.tull5-five.is-spinning{animation:none}}
.primary-nav{display:flex;align-items:stretch;justify-content:flex-start;gap:14px;min-width:0}.primary-nav a{height:100%;padding:0 14px;display:flex;align-items:center;gap:9px;color:#f2f2f2;text-decoration:none;font-size:15px;font-weight:600;position:relative;white-space:nowrap}.primary-nav a:hover{color:#fff;background:rgba(255,255,255,.035)}.primary-nav a.active{color:var(--v3-orange)}.primary-nav a.active:after{content:"";position:absolute;left:10px;right:10px;bottom:0;height:4px;border-radius:3px 3px 0 0;background:var(--v3-orange)}.nav-glyph{font-size:23px;line-height:1;color:#d6d9dc}.primary-nav a.active .nav-glyph{color:var(--v3-orange)}.nav-glyph svg,.side-icon svg{width:1em;height:1em;display:block}
.topbar-account{display:flex;align-items:center;gap:16px;justify-self:end}.notification-bell{position:relative;display:flex;width:42px;height:42px;align-items:center;justify-content:center;color:#fff;text-decoration:none;font-size:22px;border-radius:50%;background:transparent;border:0;cursor:pointer}.notification-bell:hover{background:#171a1e;color:#fff}.notification-bell b{position:absolute;right:0;top:0;min-width:19px;height:19px;padding:0 5px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--v3-orange);color:#fff;border:2px solid var(--v3-black);font-size:10px}
.notification-bell b[hidden]{display:none}
.account-menu{position:relative}.account-menu summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:11px;color:#fff;min-width:190px;padding:8px 6px;border-radius:8px}.account-menu summary::-webkit-details-marker{display:none}.account-menu summary:hover{background:#101216}.topbar-avatar{width:42px;height:42px;border-radius:50%;object-fit:cover;background:#24282d;border:1px solid #32363c;display:flex;align-items:center;justify-content:center}.topbar-avatar.fallback{font-weight:700;color:#fff}.account-copy{display:flex;flex-direction:column;min-width:0;line-height:1.25}.account-copy strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account-copy small{font-size:11px;color:#bfc4c9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.account-caret{margin-left:auto;color:#c2c7cc}.account-dropdown{position:absolute;right:0;top:58px;width:220px;padding:7px;background:#15191e;border:1px solid #2b3036;border-radius:8px;box-shadow:0 18px 40px rgba(0,0,0,.28);z-index:500}.account-dropdown a,.account-dropdown button{display:block;width:100%;padding:10px 11px;border:0;border-radius:5px;background:none;color:#ecedef;text-align:left;text-decoration:none;font:inherit;font-size:13px;cursor:pointer}.account-dropdown a:hover,.account-dropdown button:hover{background:#222830;color:#fff}.account-dropdown form{margin:4px 0 0;padding-top:4px;border-top:1px solid #2b3036}
.app-orange-rule{height:4px;background:var(--v3-orange);position:sticky;top:92px;z-index:399}.app-shell{display:grid;grid-template-columns:310px minmax(0,1fr);min-height:calc(100vh - 96px)}.side-nav{background:linear-gradient(180deg,var(--v3-sidebar-2),var(--v3-sidebar));color:#e9edf0;display:flex;flex-direction:column;min-height:calc(100vh - 96px);position:sticky;top:96px;height:calc(100vh - 96px);align-self:start}.side-nav-scroll{padding:18px 15px 24px;overflow-y:auto;flex:1}.side-nav-group{display:flex;flex-direction:column;gap:5px}.side-link{min-height:50px;display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;padding:8px 14px;color:#eef1f4;text-decoration:none;border-radius:6px;font-size:15px;font-weight:500;transition:.14s ease}.side-link:hover{background:rgba(255,255,255,.055);color:#fff}.side-link.active{background:linear-gradient(90deg,#29313b,#242b33);color:var(--v3-orange);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025)}.side-link.active-soft{color:#fff}.side-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;font-size:24px;color:#e2e7eb}.side-link.active .side-icon{color:var(--v3-orange)}.nav-count{font-size:11px;min-width:23px;height:23px;border-radius:12px;background:var(--v3-orange);color:#fff;display:flex;align-items:center;justify-content:center;padding:0 6px}.nav-count.nav-count-danger{background:var(--danger)}.nav-count-group{display:flex;gap:4px}.side-link-row{display:flex;align-items:center;gap:0}.side-link-row .side-link{flex:1;min-width:0}.nav-count-form{margin:0;flex-shrink:0;margin-right:14px}.nav-count-dismiss{border:0;cursor:pointer;font:inherit}.nav-count-dismiss:hover{filter:brightness(1.12)}.side-divider{height:1px;background:#323a43;margin:20px 10px 22px}.side-heading{font-size:16px;margin:0 11px 12px;color:#fff}.quick-actions .side-link{min-height:48px}.side-footer{padding:18px 26px 26px;color:#c2c7cb;font-size:12px;line-height:1.45;border-top:1px solid rgba(255,255,255,.04)}.side-footer span{color:#7f8993;font-size:11px}
.app-content{min-width:0;background:var(--v3-page)}.content-wrap{padding:25px 25px 38px;max-width:1700px;margin:0 auto}.v3-body .page-head{margin:0 0 20px;padding:0 0 15px;border-bottom:1px solid var(--v3-border)}.v3-body .page-head h1,.v3-body .page-head h2{font-size:25px;color:#181b1f}.v3-body .page-head h1:after,.v3-body .page-head h2:after{display:none}.v3-body .page-head p{color:var(--v3-muted)}
.v3-body .panel,.v3-body .card{border:1px solid var(--v3-border);border-radius:7px;box-shadow:none;background:#fff}.v3-body .panel{padding:18px}.v3-body .card:before{display:none}.v3-body .btn{border-radius:5px;box-shadow:none}.v3-body .btn.primary{background:var(--v3-orange);border-color:var(--v3-orange)}.v3-body .btn.primary:hover{background:var(--v3-orange-dark);border-color:var(--v3-orange-dark)}
.v3-body table th{background:#f7f8f9;color:#59626b;border-top:1px solid #e7e9eb;border-bottom:1px solid #dfe3e7;font-weight:600;text-transform:none;letter-spacing:0}.v3-body table td{border-bottom:1px solid #e5e8eb;color:#25292d}.v3-body tbody tr:hover td{background:#fffaf5}.v3-body input[type=text],.v3-body input[type=password],.v3-body input[type=email],.v3-body input[type=number],.v3-body input[type=url],.v3-body input[type=search],.v3-body input[type=file],.v3-body select,.v3-body textarea{border-color:#d2d8de;border-radius:5px;min-height:40px}.v3-body input:focus,.v3-body select:focus,.v3-body textarea:focus{border-color:var(--v3-orange);box-shadow:0 0 0 3px rgba(255,121,0,.12)}

/* v3 dashboard */
.v3-dashboard{display:flex;flex-direction:column;gap:20px}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.metric-card{min-height:140px;background:#fff;border:1px solid var(--v3-border);border-radius:7px;padding:26px 25px;display:flex;align-items:flex-start;justify-content:space-between;gap:18px;box-shadow:0 1px 2px rgba(0,0,0,.02)}.metric-label{display:block;font-size:13px;color:#333a41;margin-bottom:7px}.metric-value-row{display:flex;align-items:center;gap:11px}.metric-value-row strong{font-size:29px;line-height:1.15;color:#101214;letter-spacing:-.5px}.metric-card small{display:block;color:#75808a;font-size:12px;margin-top:12px}.trend{display:inline-block;color:var(--v3-green);font-size:12px;font-weight:700;margin-top:5px}.metric-value-row .trend{margin:0}.trend.down{color:var(--v3-red)}.metric-icon{width:53px;height:53px;flex:0 0 53px;border-radius:8px;background:#ffe8d3;color:var(--v3-orange);font-size:29px;display:flex;align-items:center;justify-content:center;font-weight:400}.metric-icon.pound{font-family:Georgia,serif;font-size:31px}
.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.72fr) minmax(330px,.7fr);gap:20px}.dash-panel{background:#fff;border:1px solid var(--v3-border);border-radius:7px;box-shadow:0 1px 2px rgba(0,0,0,.02);min-width:0}.dash-panel-head{height:55px;display:flex;align-items:center;justify-content:space-between;padding:0 20px;border-bottom:1px solid var(--v3-border);gap:18px}.dash-panel-head h2{font-size:16px;margin:0;color:#15181b}.dash-panel-head a{font-size:12px;color:var(--v3-orange);text-decoration:none;font-weight:600}.dash-panel-head a:hover{text-decoration:underline}.outline-action{border:1px solid #cfd5da;border-radius:4px;padding:7px 18px;color:var(--v3-orange)!important;background:#fff}.outline-action:hover{background:#fff8f2;text-decoration:none!important}.dashboard-table-wrap{overflow-x:auto}.dashboard-table{min-width:820px}.dashboard-table th{padding:11px 8px!important;font-size:11px!important}.dashboard-table td{padding:10px 8px!important;font-size:12px!important;vertical-align:middle}.dashboard-table th:first-child,.dashboard-table td:first-child{width:34px;text-align:center}.quote-doc-icon{color:var(--v3-orange);font-size:19px}.quote-number-link{font-weight:600;color:#30363b;text-decoration:none}.quote-number-link:hover{color:var(--v3-orange)}.money{font-weight:600;white-space:nowrap}.status-chip{display:inline-flex;align-items:center;border-radius:4px;padding:4px 8px;font-size:10px;font-weight:600;white-space:nowrap}.status-chip.status-sent{background:#dff1ff;color:#1f79b8}.status-chip.status-draft{background:#edf0f2;color:#59626b}.status-chip.status-accepted{background:#ddf5e6;color:#237343}.status-chip.status-rejected{background:#ffe0e3;color:#b53640}.status-chip.status-open{background:#fff2d5;color:#765000}.status-chip.status-in_progress{background:#dff1ff;color:#1f79b8}.status-chip.status-resolved{background:#ddf5e6;color:#237343}.status-chip.status-declined{background:#edf0f2;color:#59626b}.status-chip.status-error{background:#ffe0e3;color:#b53640}.status-chip.status-warning{background:#fff2d5;color:#765000}.status-chip.status-investigating{background:#dff1ff;color:#1f79b8}.status-chip.status-corrective_action{background:#fff2d5;color:#765000}.status-chip.status-closed{background:#ddf5e6;color:#237343}

/* v3 dashboard ticker */
.dash-ticker-bar{position:relative;display:flex;align-items:center;gap:14px;background:var(--v3-card);border:1px solid var(--v3-border);border-radius:7px;padding:0 8px 0 16px;height:44px;box-shadow:0 1px 2px rgba(0,0,0,.02)}
.dash-ticker-live{flex:none;display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#c0392b}
.dash-ticker-live b{width:7px;height:7px;border-radius:50%;background:#c0392b;display:inline-block;animation:dashTickerPulse 1.6s ease-in-out infinite}
.dash-ticker-viewport{flex:1;min-width:0;overflow:hidden;height:100%;position:relative;-webkit-mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent);mask-image:linear-gradient(90deg,transparent,#000 18px,#000 calc(100% - 18px),transparent)}
.dash-ticker-track{display:flex;align-items:center;gap:28px;height:100%;width:max-content;white-space:nowrap;will-change:transform}
.dash-ticker-track.is-scrolling{animation:dashTickerScroll var(--ticker-duration,55s) linear infinite}
.dash-ticker-viewport:hover .dash-ticker-track{animation-play-state:paused}
.dash-ticker-item{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--v3-text);text-decoration:none}
a.dash-ticker-item:hover{color:var(--v3-orange)}
.dash-ticker-item.muted{color:var(--v3-muted,#75808a)}
.dash-ticker-icon{flex:none;display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;font-size:10px;background:#eef1f4;color:#59626b}
.dash-ticker-icon-quote{background:#dff1ff;color:#1f79b8}
.dash-ticker-icon-delivery{background:#fff0e2;color:var(--v3-orange-dark,#df6500)}
.dash-ticker-icon-price{background:#ddf5e6;color:#237343}
.dash-ticker-icon-opportunity{background:#f3ecff;color:#6f42c1}
.dash-ticker-icon-fun{background:#fff2d5;color:#a66a00}
.dash-ticker-time{color:var(--v3-muted,#8a929a);font-size:11px;flex:none}
.dash-ticker-remove{flex:none;border:0;background:none;color:var(--v3-muted,#8a929a);cursor:pointer;font-size:14px;line-height:1;padding:0 2px;margin-left:-16px}
.dash-ticker-remove:hover{color:#c0392b}
.dash-ticker-add-btn{flex:none;border:1px solid var(--v3-border);border-radius:5px;background:none;color:var(--v3-orange);font-size:12px;font-weight:700;padding:6px 11px;cursor:pointer;white-space:nowrap}
.dash-ticker-add-btn:hover{background:var(--v3-orange-soft,#fff0e2)}
.dash-ticker-add-form{position:absolute;top:52px;right:0;z-index:60;display:flex;gap:6px;background:var(--v3-card);border:1px solid var(--v3-border);border-radius:7px;padding:10px;box-shadow:0 10px 28px rgba(0,0,0,.16)}
.dash-ticker-add-form[hidden]{display:none}
.dash-ticker-add-form input{width:300px;max-width:60vw;padding:8px 10px;border:1px solid var(--v3-border);border-radius:5px;background:var(--v3-card);color:var(--v3-text);font:inherit;font-size:13px}
.dash-ticker-add-form select{padding:8px 10px;border:1px solid var(--v3-border);border-radius:5px;background:var(--v3-card);color:var(--v3-text);font:inherit;font-size:13px}
.dash-ticker-add-error{flex-basis:100%;color:#c0392b;font-size:12px}
.dash-ticker-manage-panel{position:absolute;top:52px;right:0;z-index:60;background:var(--v3-card);border:1px solid var(--v3-border);border-radius:7px;padding:12px 14px;box-shadow:0 10px 28px rgba(0,0,0,.16);width:340px;max-width:80vw;max-height:320px;overflow-y:auto}
.dash-ticker-manage-panel[hidden]{display:none}
.dash-ticker-manage-panel h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--v3-muted,#75808a)}
.dash-ticker-manage-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dash-ticker-manage-list li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--v3-text)}
.dash-ticker-manage-list li.muted{color:var(--v3-muted,#75808a)}
.dash-ticker-manage-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@keyframes dashTickerScroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes dashTickerPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
@media(prefers-reduced-motion:reduce){.dash-ticker-track.is-scrolling{animation:none}.dash-ticker-live b{animation:none}}
@media(max-width:780px){.dash-ticker-bar{flex-wrap:wrap;height:auto;padding:8px 12px;gap:8px}.dash-ticker-add-form{position:static;width:100%;flex-wrap:wrap}.dash-ticker-add-form input{width:100%;max-width:none}.dash-ticker-add-form select{width:100%}.dash-ticker-manage-panel{position:static;width:100%;max-width:none}}

/* v3 dashboard motion polish */
.metric-card,.dash-panel{animation:dashFadeUp .45s ease both;transition:transform .18s ease,box-shadow .18s ease}
.metric-card:hover,.dash-panel:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(20,25,30,.08)}
.metric-grid .metric-card:nth-child(1){animation-delay:0s}.metric-grid .metric-card:nth-child(2){animation-delay:.05s}.metric-grid .metric-card:nth-child(3){animation-delay:.1s}.metric-grid .metric-card:nth-child(4){animation-delay:.15s}
.dashboard-main-grid .dash-panel:nth-child(1){animation-delay:.08s}.dashboard-main-grid .dash-panel:nth-child(2){animation-delay:.14s}
.dashboard-charts-grid .dash-panel:nth-child(1){animation-delay:.16s}.dashboard-charts-grid .dash-panel:nth-child(2){animation-delay:.2s}
.dashboard-bottom-grid .dash-panel:nth-child(1){animation-delay:.22s}.dashboard-bottom-grid .dash-panel:nth-child(2){animation-delay:.26s}
@keyframes dashFadeUp{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.trend-line{stroke-dasharray:500;stroke-dashoffset:500;animation:dashDrawLine 1.1s .2s ease forwards}
.pipeline-row-bar{transform-origin:left;animation:dashGrowBar .7s .1s ease both}
@keyframes dashDrawLine{to{stroke-dashoffset:0}}
@keyframes dashGrowBar{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){.metric-card,.dash-panel,.trend-line,.pipeline-row-bar{animation:none}}
.feedback-thread{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}
.feedback-message{background:#f7f8fa;border:1px solid var(--v3-border,#dfe3e7);border-radius:7px;padding:12px 14px}
.feedback-message-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:5px;font-size:12px}
.feedback-message-body{font-size:14px;line-height:1.5;white-space:pre-wrap}
.feedback-reply-form textarea{width:100%;resize:vertical}
.feedback-message{display:flex;gap:10px}
.chat-avatar{width:32px;height:32px;border-radius:50%;background:#24282d;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.feedback-message-main{flex:1;min-width:0}
.feedback-quote{display:block;font-size:12px;color:#69727d;background:#eef0f2;border-left:3px solid var(--v3-orange,#ff7900);border-radius:3px;padding:4px 8px;margin-bottom:6px;text-decoration:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feedback-quote:hover{background:#e5e8eb}
.feedback-message-actions{margin-top:6px;display:flex;gap:14px;align-items:center}
.feedback-message-actions form{margin:0}
.feedback-reply-btn,.feedback-delete-btn{background:none;border:0;padding:0;font-size:12px;color:var(--v3-orange,#ff7900);cursor:pointer;font-weight:600}
.feedback-delete-btn{color:#b53640}
.feedback-reply-context{background:#fff3e8;border:1px solid #f0c39c;border-radius:6px;padding:8px 10px;margin-bottom:8px;font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:10px}
.feedback-reply-context[hidden]{display:none}
.feedback-reply-context button{background:none;border:0;cursor:pointer;font-size:14px;color:#69727d}
.feedback-new-banner{display:block;width:100%;background:var(--v3-orange,#ff7900);color:#fff;border:0;border-radius:6px;padding:10px;font-weight:600;cursor:pointer;margin-bottom:14px}

.dm-status-dot{display:inline-block;width:10px;height:10px;border-radius:50%;vertical-align:middle}
.dm-online{background:#2fa84f;box-shadow:0 0 0 2px rgba(47,168,79,.2)}
.dm-offline{background:#b7bcc2}
h1 .dm-status-dot{margin-right:8px}
.dm-thread{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;max-height:60vh;overflow-y:auto}
.dm-message{display:flex}
.dm-message.dm-mine{justify-content:flex-end}
.dm-bubble{max-width:70%;background:#f7f8fa;border:1px solid var(--v3-border,#dfe3e7);border-radius:12px;padding:9px 13px}
.dm-mine .dm-bubble{background:#fff3e8;border-color:#f0c39c}
.dm-bubble-body{font-size:14px;line-height:1.5;white-space:pre-wrap}
.dm-bubble-meta{font-size:11px;color:#8a929a;margin-top:4px}
.dm-bubble-sender{font-size:11px;font-weight:700;color:var(--v3-orange,#ff7900);margin-bottom:3px}
.dm-bubble-image{display:block;max-width:min(260px,100%);max-height:260px;border-radius:8px;margin-top:6px;object-fit:cover}
.dm-bubble-file{display:inline-flex;align-items:center;gap:6px;margin-top:6px;padding:7px 11px;background:rgba(0,0,0,.04);border-radius:6px;font-size:13px;color:inherit;text-decoration:none}
.dm-bubble-file:hover{background:rgba(0,0,0,.08)}
.dm-attach-btn{cursor:pointer;font-size:16px;display:flex;align-items:center;gap:6px}
.dm-recipient-list{display:flex;flex-direction:column;gap:2px;max-height:280px;overflow-y:auto;border:1px solid var(--v3-border,#dfe3e7);border-radius:6px;padding:6px;margin-top:6px}
.dm-recipient-row{display:flex;align-items:center;gap:8px;padding:7px 8px;border-radius:5px;cursor:pointer;font-weight:400}
.dm-recipient-row:hover{background:#f7f8fa}
.dm-recipient-row input{margin:0}

[data-theme="dark"] .dm-bubble-file{background:rgba(255,255,255,.06)}
[data-theme="dark"] .dm-bubble-file:hover{background:rgba(255,255,255,.1)}
[data-theme="dark"] .dm-recipient-row:hover{background:#1a2029}
[data-theme="dark"] .dm-recipient-list{border-color:var(--v3-border)}
.dm-notice-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.dm-notice-list li{background:#fff3e8;border:1px solid #f0c39c;border-radius:6px;padding:10px 13px;color:#5a3418}
.dm-notice-list a{color:inherit;text-decoration:none;font-weight:600}
.dm-notice-list a:hover{text-decoration:underline}
[data-theme="dark"] .dm-notice-list li{background:rgba(255,121,0,.14);border-color:rgba(255,121,0,.4);color:var(--v3-text)}

.dm-conv-list{display:flex;flex-direction:column}
.dm-conv-row{display:flex;align-items:center;gap:12px;padding:12px 4px;text-decoration:none;color:inherit;border-bottom:1px solid #f0f1f3}
.dm-conv-row .dm-online-row-avatar,.dm-conv-row .nav-count{flex-shrink:0}
.dm-conv-row:last-child{border-bottom:0}
.dm-conv-row:hover{background:#f7f8fa}
.dm-conv-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.dm-conv-row-top{display:flex;align-items:center;gap:8px;justify-content:space-between}
.dm-conv-row-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.dm-conv-row-time{font-size:11px;color:#8a929a;flex-shrink:0;white-space:nowrap}
.dm-conv-row-snippet{font-size:13px;color:#59626b;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
[data-theme="dark"] .dm-conv-row{border-color:var(--v3-border)}
[data-theme="dark"] .dm-conv-row:hover{background:#1a2029}
[data-theme="dark"] .dm-conv-row-snippet{color:#9aa3ab}
[data-theme="dark"] .dm-conv-row-time{color:#7f8993}

@media(max-width:600px){
  .dm-bubble{max-width:85%}
  .dm-online-panel{width:280px}
}

.dm-online-backdrop{position:fixed;inset:0;background:rgba(10,12,15,.28);z-index:490;opacity:0;pointer-events:none;transition:opacity .18s ease}
.dm-online-backdrop.is-open{opacity:1;pointer-events:auto}
.dm-online-panel{position:fixed;top:0;right:0;bottom:0;width:300px;max-width:88vw;background:#fff;color:#1c2126;border-left:1px solid var(--v3-border,#dfe3e7);box-shadow:-8px 0 24px rgba(0,0,0,.14);z-index:500;display:flex;flex-direction:column;transform:translateX(100%);transition:transform .2s ease}
.dm-online-panel.is-open{transform:translateX(0)}
.dm-online-panel-head{display:flex;align-items:center;justify-content:space-between;padding:16px 18px;border-bottom:1px solid var(--v3-border,#dfe3e7);flex-shrink:0}
.dm-online-panel-head h2{margin:0;font-size:16px}
.dm-online-panel-head button{background:none;border:0;cursor:pointer;font-size:16px;color:#69727d;padding:4px}
.dm-online-panel-body{overflow-y:auto;flex:1}
.dm-online-row{display:flex;align-items:center;gap:10px;padding:11px 18px;text-decoration:none;color:inherit;border-bottom:1px solid #f0f1f3}
.dm-online-row:hover{background:#f7f8fa}
.dm-online-row-avatar{position:relative;width:34px;height:34px;border-radius:50%;background:#24282d;color:#fff;font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-online-row-avatar .dm-status-dot{position:absolute;right:-1px;bottom:-1px;border:2px solid #fff}
.dm-online-row-name{flex:1;min-width:0;font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

[data-theme="dark"] .dm-online-panel{background:var(--v3-card);border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] .dm-online-panel-head{border-color:var(--v3-border)}
[data-theme="dark"] .dm-online-row{border-color:var(--v3-border)}
[data-theme="dark"] .dm-online-row:hover{background:#1a2029}
[data-theme="dark"] .dm-online-row-avatar .dm-status-dot{border-color:var(--v3-card)}
.feedback-new-banner[hidden]{display:none}.row-menu{font-size:20px;color:#3e454c;text-decoration:none;padding:2px 5px}.dash-panel-foot{height:49px;padding:0 20px;display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#6f7a84}.dash-panel-foot a{color:var(--v3-orange);text-decoration:none;font-weight:600}.empty-dashboard{padding:28px!important;text-align:center;color:#7a838b!important}
.parts-search-panel{padding-bottom:8px}.dash-parts-search{padding:14px 18px 6px}.dashboard-search-input{position:relative}.dashboard-search-input input{width:100%;height:40px;padding:9px 39px 9px 12px;border:1px solid #d6dce1}.dashboard-search-input span{position:absolute;right:13px;top:7px;font-size:21px;color:#3a4650}.dash-filter-row{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:11px}.dash-filter-row select{height:37px;min-height:37px;padding:6px 9px;font-size:12px}.recent-parts-title{font-size:13px;margin:12px 18px 8px}.recent-parts-list{padding:0 18px}.recent-part-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto;gap:11px;align-items:center;padding:10px 2px;border-bottom:1px solid #e5e8eb;color:inherit;text-decoration:none}.recent-part-row:last-child{border-bottom:0}.recent-part-row:hover{background:#fffaf5;color:inherit}.recent-part-image{width:43px;height:43px;display:flex;align-items:center;justify-content:center;border-radius:5px;background:#f5f6f7;overflow:hidden}.recent-part-image img{width:100%;height:100%;object-fit:contain;background:#fff}.recent-part-image>span{font-size:8px;color:#88919a;font-weight:700}.recent-part-copy{min-width:0;display:flex;flex-direction:column}.recent-part-copy strong{font-size:12px;color:#1d2023;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.recent-part-copy small{font-size:10px;color:#747d85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:3px}.recent-part-price{text-align:right;font-size:12px;color:#151719;font-weight:700;white-space:nowrap}.recent-part-price small{display:block;color:#747d85;font-weight:400;font-size:10px;margin-top:3px}.parts-search-panel .part-search-message{padding:20px 0}
.dashboard-charts-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:20px}
.chart-panel-sub{font-size:12px;color:#75808a;font-weight:600}
.trend-chart-wrap{padding:18px 20px 0}
.trend-chart{width:100%;height:140px;display:block;overflow:visible}
.trend-area{fill:rgba(255,121,0,.12);stroke:none}
.trend-line{fill:none;stroke:var(--v3-orange);stroke-width:2.2;vector-effect:non-scaling-stroke}
.trend-dot{fill:#fff;stroke:var(--v3-orange);stroke-width:2}
.trend-chart-labels{display:grid;grid-template-columns:repeat(6,1fr);gap:4px;padding:8px 16px 18px;text-align:center}
.trend-chart-label{display:flex;flex-direction:column;gap:2px}
.trend-chart-label span{font-size:11px;color:#75808a}
.trend-chart-label strong{font-size:12px;color:#1d2023}
.pipeline-panel{padding-bottom:16px}
.pipeline-bars{padding:16px 20px 4px;display:flex;flex-direction:column;gap:11px}
.pipeline-row{display:grid;grid-template-columns:110px 1fr 30px;align-items:center;gap:10px}
.pipeline-row-label{font-size:12px;color:#41474d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pipeline-row-track{height:10px;background:#f0f1f2;border-radius:999px;overflow:hidden}
.pipeline-row-bar{height:100%;background:linear-gradient(90deg,var(--v3-orange),#ffb066);border-radius:999px;transition:width .3s ease}
.pipeline-row-count{font-size:12px;font-weight:700;color:#1d2023;text-align:right}
.pipeline-footnote{padding:4px 20px 18px;font-size:11px;color:#75808a}
@media(max-width:1120px){.dashboard-charts-grid{grid-template-columns:1fr}}
@media(max-width:780px){.trend-chart-labels{grid-template-columns:repeat(3,1fr)}.pipeline-row{grid-template-columns:90px 1fr 26px}}
.dashboard-bottom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.mini-summary-panel{min-height:145px;padding:0 20px 18px}.mini-summary-panel>header{height:52px;display:flex;align-items:center;justify-content:space-between;gap:12px}.mini-summary-panel>header h2{font-size:15px;margin:0;display:flex;align-items:center;gap:8px}.mini-summary-panel>header h2 em{font-size:13px;color:#68727b;font-style:normal;font-weight:400}.mini-summary-panel>header a{font-size:11px;color:var(--v3-orange);font-weight:600;text-decoration:none}.mini-summary-body{display:grid;grid-template-columns:1fr 1fr;align-items:end;min-height:70px}.mini-summary-body>div:first-child{padding-right:18px}.mini-summary-body>div:first-child strong{display:block;font-size:29px}.mini-summary-body small{display:block;font-size:10px;color:#75808a;margin-top:3px}.summary-value{border-left:1px solid #dfe3e7;padding-left:28px}.summary-value strong{font-size:15px;display:block;margin-top:6px}.top-customer-list{margin:3px 0 0;padding-left:26px}.top-customer-list li{padding:4px 0 4px 4px;font-size:12px}.top-customer-list li span{display:inline-block;max-width:68%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.top-customer-list li strong{float:right}.top-customer-list .empty-list{color:#7a838b;list-style:none;margin-left:-22px}

/* v3 quote list filter bar */
.v3-filter-chips{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 14px}.filter-chip{display:inline-flex;padding:6px 10px;border:1px solid #d4d9de;border-radius:999px;color:#626c75;background:#fff;text-decoration:none;font-size:12px}.filter-chip:hover,.filter-chip.active{border-color:#ffad68;background:#fff4e9;color:#c75900}.v3-list-status{display:inline-block;margin-left:4px;color:#74808a;font-size:12px}

/* login */
body.v3-auth-body{background:radial-gradient(circle at 30% 20%,#202933 0,#11161c 40%,#080a0d 100%)}.v3-auth-body .app-topbar{grid-template-columns:1fr;height:92px;position:relative}.v3-auth-body .app-orange-rule{position:relative;top:auto}.auth-content{min-height:calc(100vh - 96px);display:flex;align-items:center;justify-content:center;padding:38px 20px}.v3-login-card{width:min(440px,100%);padding:35px 38px!important;border:1px solid #343b43!important;border-radius:10px!important;box-shadow:0 25px 70px rgba(0,0,0,.36)!important}.login-brand{background:#050607;border-radius:7px;padding:13px 18px;margin:-8px -8px 26px}.v3-login-card h1{margin:0 0 7px}.v3-login-card .muted{margin:0 0 22px}
.auth-content{position:relative;overflow:hidden}#tull5-network-bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;display:block}.v3-login-card{position:relative;z-index:1}

@media(max-width:1360px){.app-topbar{grid-template-columns:245px minmax(470px,1fr) auto;padding:0 16px}.tull5-header-brand{width:205px}.primary-nav{gap:4px}.primary-nav a{padding:0 10px;font-size:14px}.app-shell{grid-template-columns:270px minmax(0,1fr)}.side-nav-scroll{padding-left:11px;padding-right:11px}.dashboard-main-grid{grid-template-columns:minmax(0,1.55fr) minmax(320px,.7fr)}.tull5-palette-trigger span{display:none}.tull5-palette-trigger{padding:0 9px}}
@media(max-width:1120px){.app-topbar{grid-template-columns:220px 1fr auto}.primary-nav a span:last-child{display:none}.primary-nav a{padding:0 14px}.nav-glyph{font-size:24px}.account-copy{display:none}.account-menu summary{min-width:auto}.app-shell{grid-template-columns:235px minmax(0,1fr)}.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-main-grid{grid-template-columns:1fr}.parts-search-panel{min-height:0}.tull5-bug-fab{left:255px}}
@media(max-width:780px){.app-topbar{height:72px;grid-template-columns:160px 1fr auto;padding:0 10px}.app-orange-rule{top:72px}.tull5-header-brand{width:150px}.tull5-wordmark img{height:30px}.primary-nav{justify-content:flex-end}.primary-nav a{padding:0 7px}.primary-nav a:nth-child(n+4){display:none}.topbar-account{gap:3px}.notification-bell{width:36px;height:36px}.topbar-avatar{width:36px;height:36px}.account-caret{display:none}.app-shell{display:block}.side-nav{position:relative;top:auto;height:auto;min-height:auto}.side-nav-scroll{padding:8px;overflow-x:auto;display:flex;gap:10px}.side-nav-group{flex-direction:row;min-width:max-content}.side-divider,.side-heading,.quick-actions,.side-footer{display:none}.side-link{min-height:42px;grid-template-columns:25px auto auto;padding:6px 10px;font-size:13px}.side-icon{width:22px;height:22px;font-size:19px}.app-content{min-height:calc(100vh - 120px)}.content-wrap{padding:16px 12px 28px}.metric-grid{grid-template-columns:1fr}.metric-card{min-height:112px;padding:20px}.dashboard-bottom-grid{grid-template-columns:1fr}.dash-filter-row{grid-template-columns:1fr}.v3-body .page-head{align-items:flex-start}.v3-body .search{flex-wrap:wrap}.quote-meta{grid-template-columns:1fr}.account-dropdown{right:-3px}}
.import-progress-track{width:100%;height:18px;background:#e9ecef;border-radius:999px;overflow:hidden;border:1px solid #d9dde1;margin:12px 0 8px}.import-progress-bar{height:100%;min-width:2%;background:var(--brand,#ef7d00);transition:width .35s ease}

/* v3.4 quotation-template writing assistant */
.writing-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(340px,.75fr);gap:20px;align-items:start}.writing-editor-panel textarea{min-height:220px;line-height:1.55;font-size:15px}.writing-toolbar{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin:2px 0 18px;padding:12px 0;border-top:1px solid #e6e9ec;border-bottom:1px solid #e6e9ec}.writing-check-btn{border-color:#ef7d00!important;color:#c85d00!important;background:#fff8f1!important;font-weight:700}.writing-check-btn:hover{background:#ffead8!important}.writing-assistant-panel{position:sticky;top:104px;padding:0!important;overflow:hidden}.writing-panel-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;padding:19px 20px 15px;border-bottom:1px solid #e2e6e9}.writing-panel-head h2{font-size:17px;margin:0 0 5px}.writing-panel-head p{margin:0;font-size:12px}.writing-score{display:flex;width:36px;height:36px;align-items:center;justify-content:center;border-radius:50%;background:#fff1e5;color:#d96500;font-size:14px;font-weight:800}.writing-suggestions{max-height:560px;overflow:auto}.writing-suggestion-card{padding:16px 18px;border-bottom:1px solid #e7eaed}.writing-suggestion-top{display:flex;align-items:center;gap:8px;font-size:12px;color:#454d55}.writing-kind{display:inline-flex;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.03em}.kind-spelling{background:#ffe6e7;color:#a82f38}.kind-grammar{background:#e4efff;color:#2c5eaa}.kind-punctuation{background:#e9f5e8;color:#37723a}.writing-change{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:12px 0;font-size:14px}.writing-change del{background:#fff0f0;color:#932e35;padding:4px 6px;border-radius:4px}.writing-change ins{background:#eaf7ed;color:#27663a;padding:4px 6px;border-radius:4px;text-decoration:none;font-weight:700}.writing-change em{font-size:12px;color:#78818a}.writing-suggestion-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.btn.mini{padding:5px 9px;font-size:11px;min-height:auto}.add-dictionary{padding:5px 7px!important;color:#c85d00!important;font-size:11px!important}.writing-good{padding:22px 20px;background:#f1faf3;color:#27663a}.writing-good strong{font-size:15px}.writing-good p{margin:5px 0 0;font-size:12px}.writing-note{padding:16px 20px;background:#fafbfc;border-top:1px solid #e7eaed;font-size:11px;color:#68727b;display:flex;flex-direction:column;gap:4px}.writing-note strong{color:#434b52}.writing-assistant-panel .message{margin:14px}.writing-suggestion-card .link-button:hover{background:#fff3e8!important}
@media(max-width:1000px){.writing-layout{grid-template-columns:1fr}.writing-assistant-panel{position:relative;top:auto}}

/* v3.5 OpenAI quotation-template rewrite */
.ai-rewrite-btn{border-color:#6f63d9!important;color:#5649c4!important;background:#f6f4ff!important;font-weight:700}.ai-rewrite-btn:hover:not(:disabled){background:#ebe8ff!important}.ai-rewrite-btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.ai-config-note{margin:-8px 0 18px;font-size:12px;color:#68727b}.ai-config-note code{background:#f3f4f5;padding:2px 5px;border-radius:4px}.warning-text{color:#8a5a00}.ai-rewrite-result{padding:17px 18px 18px;border-bottom:1px solid #e4e7eb;background:linear-gradient(180deg,#fbfaff,#fff)}.ai-rewrite-result-head{display:flex;align-items:center;gap:9px;margin-bottom:7px}.kind-ai{background:#ece9ff;color:#5649c4}.ai-rewrite-result .muted{margin:0 0 10px;font-size:11px}.ai-rewrite-preview{min-height:190px;max-height:390px;resize:vertical;line-height:1.5;font-size:13px;background:#fff;border-color:#d8d3f8;margin-bottom:11px}.ai-rewrite-preview:focus{border-color:#7a6fe0;box-shadow:0 0 0 3px rgba(111,99,217,.12)}

/* v3.6 quotation catalogue filters */
.catalogue-filter-row { margin-bottom: 4px; }
.catalogue-filter-help { margin: -2px 0 14px; }

/* v3.8 UK customer address lookup */
.address-lookup-card{margin:18px 0 20px;padding:16px;border:1px solid #dfe3e7;border-left:4px solid var(--tull-orange,#f58220);border-radius:7px;background:#fbfcfd;position:relative;overflow:visible}.address-lookup-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:13px}.address-lookup-head strong{display:block;font-size:15px;color:#252a2e}.address-lookup-head span:not(.address-lookup-badge){display:block;margin-top:4px;color:#6b747c;font-size:12px;line-height:1.4}.address-lookup-badge{display:inline-flex;align-items:center;justify-content:center;background:#252a2e;color:#fff;border-radius:999px;padding:4px 8px;font-size:10px;font-weight:800;letter-spacing:.06em}.address-lookup-label{display:block;font-size:12px;font-weight:700;margin-bottom:6px}.address-lookup-input-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}.address-lookup-status{min-height:20px;margin-top:7px;font-size:11px;color:#67727c}.address-lookup-status.loading{color:#9a5b00}.address-lookup-status.success{color:#267447;font-weight:700}.address-lookup-status.error{color:#b62f2f}.address-lookup-results{position:absolute;left:16px;right:16px;top:126px;z-index:30;background:#fff;border:1px solid #cfd5da;border-radius:6px;box-shadow:0 12px 30px rgba(20,25,30,.16);max-height:310px;overflow:auto}.address-lookup-result{display:block;width:100%;padding:11px 13px;text-align:left;background:#fff;border:0;border-bottom:1px solid #edf0f2;color:#252a2e;font:inherit;font-size:13px;cursor:pointer}.address-lookup-result:last-child{border-bottom:0}.address-lookup-result:hover,.address-lookup-result:focus{background:#fff5eb;outline:none;color:#a94f00}.address-lookup-manual{margin:5px 0 0;color:#7a838b;font-size:11px}.address-lookup-unconfigured{padding:10px 12px;border-radius:5px;background:#fff7e8;color:#78510a;font-size:12px;line-height:1.45}.address-lookup-unconfigured code{background:rgba(255,255,255,.7);padding:2px 4px;border-radius:3px}.customer-form-panel{overflow:visible}
@media(max-width:650px){.address-lookup-input-row{grid-template-columns:1fr}.address-lookup-results{top:164px}}

/* v3.11 dark mode */
:root[data-theme="dark"]{
  color-scheme:dark;
  --v3-page:#0d1117;
  --v3-card:#161b22;
  --v3-border:#2a313a;
  --v3-text:#e6e8eb;
  --v3-muted:#9aa4ae;
  --tull-bg:#0d1117;
  --tull-border:#2a313a;
  --tull-charcoal:#e6e8eb;
  --tull-charcoal-2:#e6e8eb;
  --shadow:0 8px 28px rgba(0,0,0,.45);
}
[data-theme="dark"] html,[data-theme="dark"] body.v3-body{background:var(--v3-page);color:var(--v3-text)}
[data-theme="dark"] .app-content{background:var(--v3-page)}
[data-theme="dark"] .v3-body .page-head{border-color:var(--v3-border)}
[data-theme="dark"] .v3-body .page-head h1,[data-theme="dark"] .v3-body .page-head h2{color:var(--v3-text)}
[data-theme="dark"] .v3-body .page-head p{color:var(--v3-muted)}
[data-theme="dark"] .v3-body .panel,[data-theme="dark"] .v3-body .card,[data-theme="dark"] .login-card,
[data-theme="dark"] .dash-panel,[data-theme="dark"] .metric-card,[data-theme="dark"] .mini-summary-panel,
[data-theme="dark"] .quote-meta>div,[data-theme="dark"] .totals{
  background:var(--v3-card);border-color:var(--v3-border);color:var(--v3-text)
}
[data-theme="dark"] .card strong,[data-theme="dark"] .metric-value-row strong,[data-theme="dark"] .totals .grand{color:var(--v3-text)}
[data-theme="dark"] .totals .grand{border-top-color:var(--v3-border)}
[data-theme="dark"] .dash-panel-head,[data-theme="dark"] .dash-panel-foot{border-color:var(--v3-border)}
[data-theme="dark"] .dash-panel-head h2{color:var(--v3-text)}
[data-theme="dark"] .dash-panel-foot{color:var(--v3-muted)}
[data-theme="dark"] .metric-icon{background:#2a2118}
[data-theme="dark"] .dash-ticker-icon{background:#20262e;color:#c3cad1}
[data-theme="dark"] .dash-ticker-icon-quote{background:rgba(31,121,184,.22);color:#7ec3f2}
[data-theme="dark"] .dash-ticker-icon-delivery{background:rgba(255,121,0,.18);color:#ffb066}
[data-theme="dark"] .dash-ticker-icon-price{background:rgba(35,115,67,.25);color:#7fd6a0}
[data-theme="dark"] .dash-ticker-icon-opportunity{background:rgba(111,66,193,.25);color:#c6a9ff}
[data-theme="dark"] .dash-ticker-icon-fun{background:rgba(166,106,0,.25);color:#ffcb6b}
[data-theme="dark"] table{background:var(--v3-card);color:var(--v3-text)}
[data-theme="dark"] th{background:#1a2029;color:#c3cad1;border-color:var(--v3-border)}
[data-theme="dark"] td{border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] tbody tr:hover td{background:#1a2029}
[data-theme="dark"] .v3-body table th{background:#1a2029;color:#c3cad1;border-color:var(--v3-border)}
[data-theme="dark"] .v3-body table td{border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] .v3-body tbody tr:hover td{background:#1a2029}
[data-theme="dark"] .quote-number-link{color:var(--v3-text)}
[data-theme="dark"] .quote-number-link:hover{color:var(--v3-orange)}
[data-theme="dark"] code{background:#1c222b;color:#e6e8eb}
[data-theme="dark"] .pill{background:#1c222b;color:#c3cad1}
[data-theme="dark"] .v3-body input[type=text],[data-theme="dark"] .v3-body input[type=password],
[data-theme="dark"] .v3-body input[type=email],[data-theme="dark"] .v3-body input[type=number],
[data-theme="dark"] .v3-body input[type=url],[data-theme="dark"] .v3-body input[type=search],
[data-theme="dark"] .v3-body input[type=date],[data-theme="dark"] .v3-body input[type=file],
[data-theme="dark"] .v3-body select,[data-theme="dark"] .v3-body textarea,
[data-theme="dark"] .form-control{
  background:#0d1117;border-color:#333b44;color:var(--v3-text)
}
[data-theme="dark"] .v3-body input::placeholder,[data-theme="dark"] .v3-body textarea::placeholder{color:#6b747d}
[data-theme="dark"] .btn{background:#161b22;border-color:#333b44;color:var(--v3-text)}
[data-theme="dark"] .btn:hover{background:#1c222b;border-color:#454f5a;color:#fff}
[data-theme="dark"] .btn.primary{background:var(--v3-orange);border-color:var(--v3-orange);color:#fff}
[data-theme="dark"] .btn.primary:hover{background:var(--v3-orange-dark);border-color:var(--v3-orange-dark)}
[data-theme="dark"] .outline-action{background:#161b22;border-color:#333b44}
[data-theme="dark"] .message{background:#152a1f;color:#bfe8cf}
[data-theme="dark"] .message.error{background:#2b1717;color:#f3c1c1}
[data-theme="dark"] .empty-state{color:#8b95a0}
[data-theme="dark"] .empty-state strong{color:#d7dbe0}
[data-theme="dark"] .empty-state svg{color:#4b5560}
[data-theme="dark"] .filter-chip{background:#161b22;border-color:#333b44;color:#aeb6bd}
[data-theme="dark"] .filter-chip:hover,[data-theme="dark"] .filter-chip.active{background:#2a1f14;border-color:var(--v3-orange);color:#ffb066}
[data-theme="dark"] .tull5-toast{background:#161b22;color:var(--v3-text);box-shadow:0 10px 28px rgba(0,0,0,.45)}
[data-theme="dark"] .tull5-toast-close{color:#8b95a0}
[data-theme="dark"] .tull5-toast-close:hover{color:#fff}
[data-theme="dark"] .tull5-palette{background:#161b22;color:var(--v3-text)}
[data-theme="dark"] .tull5-palette-input-row{border-color:var(--v3-border)}
[data-theme="dark"] .tull5-palette-input{color:var(--v3-text)}
[data-theme="dark"] .tull5-palette-input-row kbd{background:#1c222b;border-color:#333b44;color:#9aa4ae}
[data-theme="dark"] .tull5-palette-item{color:var(--v3-text)}
[data-theme="dark"] .po-mismatch-modal-box{background:#161b22;color:var(--v3-text)}
[data-theme="dark"] .po-candidate{background:#161b22;border-color:#333b44;color:var(--v3-text)}
[data-theme="dark"] .trend-chart-label strong{color:var(--v3-text)}
[data-theme="dark"] .pipeline-row-label{color:#c3cad1}
[data-theme="dark"] .pipeline-row-count{color:var(--v3-text)}
[data-theme="dark"] .pipeline-row-track{background:#1c222b}
[data-theme="dark"] .top-customer-list .empty-list{color:#8b95a0}
[data-theme="dark"] .part-thumb,[data-theme="dark"] .no-image-badge{background:#0d1117;border-color:#333b44}
[data-theme="dark"] .part-search-results,[data-theme="dark"] .address-lookup-results{background:#161b22;border-color:#333b44}
[data-theme="dark"] .part-search-result{background:#161b22;border-color:#2a313a;color:var(--v3-text)}
[data-theme="dark"] .part-search-result:hover,[data-theme="dark"] .part-search-result:focus{background:#241a10}
[data-theme="dark"] .part-result-copy strong{color:var(--v3-text)}
[data-theme="dark"] .address-lookup-result{background:#161b22;border-color:#2a313a;color:var(--v3-text)}
[data-theme="dark"] .address-lookup-result:hover,[data-theme="dark"] .address-lookup-result:focus{background:#241a10;color:#ffb066}
[data-theme="dark"] .selected-part{background:#241a10;border-color:#4a3320}
[data-theme="dark"] .file-dropzone{border-color:#333b44;color:#9aa4ae}
[data-theme="dark"] .file-dropzone.drag-over{background:#241a10;border-color:var(--tull-orange)}
[data-theme="dark"] .file-picker-list{background:#161b22;border-color:#333b44}
[data-theme="dark"] .file-picker-row{background:#161b22;border-color:#2a313a;color:var(--v3-text)}
[data-theme="dark"] .file-picker-row-size{color:#9aa4ae}
[data-theme="dark"] .file-picker-summary{color:#c3cad1}
[data-theme="dark"] .address-lookup-card{background:#161b22;border-color:#333b44}
[data-theme="dark"] .address-lookup-head strong{color:var(--v3-text)}
[data-theme="dark"] .address-lookup-head span:not(.address-lookup-badge){color:#9aa4ae}
[data-theme="dark"] .address-lookup-unconfigured{background:#2a2118;color:#e8c88a}
[data-theme="dark"] .address-lookup-unconfigured code{background:rgba(255,255,255,.08)}
[data-theme="dark"] .address-lookup-status{color:#9aa4ae}
[data-theme="dark"] .theme-toggle-switch{background:var(--v3-orange,#ff7900)}
[data-theme="dark"] .theme-toggle-switch:before{transform:translateX(15px)}
[data-theme="dark"]{scrollbar-color:#454f5a #0d1117}
[data-theme="dark"] ::-webkit-scrollbar{width:12px;height:12px}
[data-theme="dark"] ::-webkit-scrollbar-track{background:#0d1117}
[data-theme="dark"] ::-webkit-scrollbar-thumb{background:#333b44;border-radius:6px;border:3px solid #0d1117}
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover{background:#454f5a}
/* v3.11.30 dark mode: quote screen + shared pastel badges left unguarded elsewhere in the file */
[data-theme="dark"] .quote-note-block{background:rgba(255,121,0,.1);border-color:rgba(255,121,0,.35);color:var(--v3-text)}
[data-theme="dark"] .pricing-box{background:rgba(255,121,0,.08);border-color:rgba(255,121,0,.3);color:var(--v3-text)}
[data-theme="dark"] .pricing-box input[readonly]{background:#1a2029;color:var(--v3-text)}
[data-theme="dark"] .cost-summary{background:rgba(181,47,47,.14);color:var(--v3-text)}
[data-theme="dark"] .cost-summary span{color:#9aa4ae}
[data-theme="dark"] .add-condition-box{background:#161b22;border-color:var(--v3-border)}
[data-theme="dark"] .net-value{background:rgba(255,121,0,.14)}
[data-theme="dark"] .revision-badge{background:rgba(255,121,0,.16);color:#e3903c}
[data-theme="dark"] .feedback-reply-context{background:rgba(255,121,0,.12);border-color:rgba(255,121,0,.35);color:var(--v3-text)}
[data-theme="dark"] .feedback-reply-context button{color:#9aa4ae}
[data-theme="dark"] .part-result-placeholder{background:#161b22;border-color:#333b44;color:#9aa4ae}
[data-theme="dark"] .completion-attachment-box{background:#161b22;border-color:var(--v3-border)}
[data-theme="dark"] .completion-attachment-box summary{color:var(--v3-text)}
[data-theme="dark"] .completion-attachment-list{border-color:var(--v3-border)}
[data-theme="dark"] .completion-attachment-row{border-color:#2a313a}
[data-theme="dark"] .completion-attachment-thumb-link,[data-theme="dark"] .completion-attachment-icon{background:#161b22;border-color:#333b44;color:#9aa4ae}
[data-theme="dark"] .completion-attachment-preview-box{background:#161b22}
[data-theme="dark"] .completion-attachment-preview-head{border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] .completion-attachment-preview-close{color:#9aa4ae}
[data-theme="dark"] .completion-attachment-preview-close:hover{color:#fff}
[data-theme="dark"] .completion-attachment-preview-body{background:#0d1013}
[data-theme="dark"] .delivery-card{background:#161b22;border-color:var(--v3-border)}
[data-theme="dark"] .delivery-items-table th,[data-theme="dark"] .delivery-items-table td{border-color:#2a313a}
[data-theme="dark"] .delivery-items-table th{color:#9aa4ae}
[data-theme="dark"] .delivery-line-picker{border-color:var(--v3-border)}
[data-theme="dark"] .delivery-line-picker-row{border-color:#2a313a}
[data-theme="dark"] .delivery-mini-list{border-color:var(--v3-border)}
[data-theme="dark"] .delivery-mini-row{border-color:#2a313a}
[data-theme="dark"] .signature-pad-wrap{background:#fff}
[data-theme="dark"] .photo-preview-thumb{border-color:#333b44}
[data-theme="dark"] .delivery-signature-preview{border-color:#333b44}
[data-theme="dark"] .ai-rewrite-preview{background:#161b22;border-color:#333b44;color:var(--v3-text)}
[data-theme="dark"] .writing-check-btn{background:rgba(239,125,0,.16)!important;color:#e3903c!important}
[data-theme="dark"] .writing-check-btn:hover{background:rgba(239,125,0,.26)!important}
[data-theme="dark"] .writing-score{background:rgba(217,101,0,.22);color:#e3903c}
[data-theme="dark"] .profile-photo-preview{background:rgba(255,121,0,.14)}
[data-theme="dark"] .bulk-buyer-bar{background:#161b22;border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] .reprice-box{background:#161b22;border-color:var(--v3-border);color:var(--v3-text)}
[data-theme="dark"] .ai-rewrite-btn{background:rgba(111,99,217,.18)!important;color:#b8b0f5!important}
[data-theme="dark"] .ai-rewrite-btn:hover:not(:disabled){background:rgba(111,99,217,.3)!important}
[data-theme="dark"] .manual-image-box{background:#161b22;border-color:var(--v3-border)}
[data-theme="dark"] .manual-image-box summary{color:var(--v3-text)}
[data-theme="dark"] .signature-empty{background:#161b22;border-color:#333b44;color:#9aa4ae}
[data-theme="dark"] .score-mid,[data-theme="dark"] .status-review,[data-theme="dark"] .status-running,[data-theme="dark"] .status-scanning,[data-theme="dark"] .status-checking{background:rgba(150,100,0,.22);color:#e0b34d}
[data-theme="dark"] .score-high,[data-theme="dark"] .status-approved,[data-theme="dark"] .status-auto_approved,[data-theme="dark"] .status-complete,[data-theme="dark"] .status-found{background:rgba(35,115,67,.22);color:#7fd9a0}
[data-theme="dark"] .score-low,[data-theme="dark"] .status-not_found,[data-theme="dark"] .status-failed{background:rgba(181,54,64,.22);color:#ff9a9a}
[data-theme="dark"] .status-queued{background:rgba(155,78,12,.22);color:#e3a86c}
[data-theme="dark"] .status-chip.status-sent,[data-theme="dark"] .status-chip.status-in_progress,[data-theme="dark"] .status-chip.status-investigating{background:rgba(31,121,184,.22);color:#7cc3ee}
[data-theme="dark"] .status-chip.status-draft,[data-theme="dark"] .status-chip.status-declined{background:rgba(120,130,140,.22);color:#c3cad1}
[data-theme="dark"] .status-chip.status-accepted,[data-theme="dark"] .status-chip.status-resolved,[data-theme="dark"] .status-chip.status-closed{background:rgba(35,115,67,.22);color:#7fd9a0}
[data-theme="dark"] .status-chip.status-rejected,[data-theme="dark"] .status-chip.status-error{background:rgba(181,54,64,.22);color:#ff9a9a}
[data-theme="dark"] .status-chip.status-open,[data-theme="dark"] .status-chip.status-warning,[data-theme="dark"] .status-chip.status-corrective_action{background:rgba(150,100,0,.22);color:#e0b34d}
.theme-toggle-btn{display:flex!important;align-items:center;justify-content:space-between;gap:10px}
.theme-toggle-switch{position:relative;flex:none;width:34px;height:19px;border-radius:999px;background:#4a5158;transition:.15s ease}
.theme-toggle-switch:before{content:"";position:absolute;top:2px;left:2px;width:15px;height:15px;border-radius:50%;background:#fff;transition:transform .15s ease}


/* v3.10.1 parts icon refresh */
.nav-glyph-img,.side-icon-img{display:flex;align-items:center;justify-content:center}
.nav-glyph-img img{width:23px;height:23px;display:block;object-fit:contain;opacity:.92}
.side-icon-img img{width:23px;height:23px;display:block;object-fit:contain;opacity:.92}
.primary-nav a.active .nav-glyph-img img{opacity:1;filter:brightness(0) saturate(100%) invert(57%) sepia(87%) saturate(1438%) hue-rotate(358deg) brightness(101%) contrast(102%)}
.side-link.active .side-icon-img img{opacity:1;filter:brightness(0) saturate(100%) invert(57%) sepia(87%) saturate(1438%) hue-rotate(358deg) brightness(101%) contrast(102%)}
.side-link.active-soft .side-icon-img img{opacity:1}
@media(max-width:1120px){.nav-glyph-img img{width:24px;height:24px}}
@media(max-width:780px){.side-icon-img img{width:19px;height:19px}}
.tull5-idle-warning{position:fixed;right:20px;bottom:20px;z-index:900;width:260px;background:var(--v3-black,#050607);color:#fff;border:1px solid var(--v3-orange,#ff7900);border-radius:8px;padding:16px 18px;box-shadow:0 12px 32px rgba(0,0,0,.35)}
.tull5-idle-warning p{margin:0 0 8px;font-size:13px;color:#d8dadd}
.tull5-idle-warning .tull5-idle-countdown{font-size:19px;font-weight:700;color:var(--v3-orange,#ff7900)}
.tull5-idle-warning .tull5-idle-actions{margin-top:10px}
.tull5-idle-warning .tull5-idle-actions .btn{width:100%}
@media(max-width:780px){.tull5-idle-warning{right:12px;left:12px;bottom:12px;width:auto}}
.tull5-bug-fab{position:fixed;left:330px;bottom:20px;z-index:850;width:48px;height:48px;border-radius:50%;background:var(--v3-black,#050607);border:1px solid var(--v3-orange,#ff7900);color:var(--v3-orange,#ff7900);display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px rgba(0,0,0,.3);text-decoration:none;transition:.15s ease}
.tull5-bug-fab svg{width:24px;height:24px}
.tull5-bug-fab:hover{background:var(--v3-orange,#ff7900);color:#050607;transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.4)}
@media(max-width:780px){.tull5-bug-fab{left:12px;bottom:12px;width:44px;height:44px}.tull5-bug-fab svg{width:21px;height:21px}}
.tull5-progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--v3-orange,#ff7900),#ffb066);z-index:9999;opacity:0;transition:width .2s ease,opacity .2s ease;pointer-events:none;box-shadow:0 0 8px rgba(255,121,0,.6)}
.tull5-toast-container{position:fixed;top:108px;right:16px;z-index:9998;display:flex;flex-direction:column;gap:10px;width:340px;max-width:calc(100vw - 32px);pointer-events:none}
.v3-auth-body .tull5-toast-container{top:16px}
.tull5-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;padding:13px 14px;border-radius:7px;background:#fff;border-left:4px solid var(--success,#267447);box-shadow:0 10px 28px rgba(0,0,0,.18);font-size:14px;color:#24282c;opacity:0;transform:translateX(18px);transition:opacity .22s ease,transform .22s ease}
.tull5-toast.is-in{opacity:1;transform:translateX(0)}
.tull5-toast.is-out{opacity:0;transform:translateX(18px)}
.tull5-toast-error{border-left-color:var(--danger,#b62f2f)}
.tull5-toast-warning{border-left-color:var(--warning,#a66a00)}
.tull5-toast-success{border-left-color:var(--success,#267447)}
.tull5-toast-info{border-left-color:var(--v3-orange,#ff7900)}
.tull5-toast-message{border-left-color:#2c5eaa}
.tull5-toast-text{flex:1;line-height:1.4}
a.tull5-toast-text{color:inherit;text-decoration:none}
a.tull5-toast-text:hover{text-decoration:underline}
.tull5-toast-close{flex:none;border:0;background:none;color:#8a9096;cursor:pointer;font-size:18px;line-height:1;padding:0 0 0 4px}
.tull5-toast-close:hover{color:#24282c}
@media(max-width:780px){.tull5-toast-container{top:84px;right:8px;left:8px;width:auto}.v3-auth-body .tull5-toast-container{top:8px}}
.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:52px 20px;text-align:center;color:#8992a0}
.empty-state svg{width:38px;height:38px;color:#c3c9ce;margin-bottom:2px}
.empty-state strong{font-size:15px;color:#454d55;font-weight:700}
.empty-state span{font-size:13px;max-width:380px;line-height:1.5}
.empty-state .btn{margin-top:8px}
td .empty-state{padding:40px 16px}
.tull5-palette-trigger{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:6px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:#c7ccd1;cursor:pointer;font-size:13px}
.tull5-palette-trigger svg{width:16px;height:16px;flex:none}
.tull5-palette-trigger span{white-space:nowrap}
.tull5-palette-trigger kbd{font-size:11px;padding:2px 6px;border-radius:4px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#9aa0a6;font-family:inherit}
.tull5-palette-trigger:hover{background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.24)}
@media(max-width:780px){.tull5-palette-trigger{display:none}}
.tull5-palette-overlay{position:fixed;inset:0;background:rgba(10,12,14,.55);z-index:10000;display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px}
.tull5-palette-overlay.is-open{display:flex}
.tull5-palette{width:100%;max-width:600px;background:#fff;border-radius:10px;box-shadow:0 24px 64px rgba(0,0,0,.35);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}
.tull5-palette-input-row{display:flex;align-items:center;gap:10px;padding:14px 16px;border-bottom:1px solid #eceef0}
.tull5-palette-input-icon{flex:none;width:20px;height:20px;color:#9aa0a6}
.tull5-palette-input-icon svg{width:20px;height:20px}
.tull5-palette-input{flex:1;border:0;outline:none;font-size:16px;color:#1f2326;background:transparent}
.tull5-palette-input-row kbd{flex:none;font-size:11px;padding:2px 7px;border-radius:4px;background:#f0f1f2;color:#74808b;border:1px solid #dfe2e4}
.tull5-palette-results{overflow-y:auto;padding:8px}
.tull5-palette-empty{padding:26px 16px;text-align:center;color:#8992a0;font-size:13px}
.tull5-palette-group{padding:9px 10px 5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#9aa0a6}
.tull5-palette-item{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border-radius:6px;text-decoration:none;color:#24282c}
.tull5-palette-item-title{font-weight:600;font-size:14px}
.tull5-palette-item-subtitle{font-size:12px;color:#74808b}
.tull5-palette-item.is-active{background:var(--v3-orange,#ff7900)}
.tull5-palette-item.is-active .tull5-palette-item-title,.tull5-palette-item.is-active .tull5-palette-item-subtitle{color:#fff}

/* v3.10.4 product-image finder fallback */
.manual-image-box{margin-top:16px;padding:12px 14px;border:1px solid #dfe3e7;border-radius:6px;background:#fafbfc}.manual-image-box summary{cursor:pointer;font-weight:700;color:#343a40}.manual-image-box form{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;gap:10px;align-items:end;margin-top:12px}.manual-image-box label{font-size:12px}.manual-image-box .form-control{margin-top:5px}.manual-image-box .btn{height:40px}@media(max-width:900px){.manual-image-box form{grid-template-columns:1fr}}

/* v3.10.15 live Parts Catalogue search */
.part-search-summary { display:flex; gap:12px; align-items:center; justify-content:space-between; margin:10px 0; }
.parts-search-busy #parts-results { opacity:.68; transition:opacity .12s ease; }
#parts-search-state { min-width:90px; }

/* v3.10.16 — quotation parts basket */
.quote-basket-banner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 16px;
  border-left: 4px solid var(--accent, #667085);
}
.quote-basket-banner .actions { margin: 0; }
.catalogue-basket-shortcut { margin-top: 10px; }
.basket-added { white-space: nowrap; }
.table-scroll{overflow-x:auto}
.order-request-table{table-layout:fixed;width:100%}
.order-request-table td{vertical-align:top}
.order-request-table .col-description{width:220px;white-space:normal;word-break:break-word;overflow-wrap:break-word}
.order-request-table th:nth-child(1),.order-request-table td:nth-child(1){width:100px}
.order-request-table th:nth-child(3),.order-request-table td:nth-child(3){width:150px}
.order-request-table th:nth-child(4),.order-request-table td:nth-child(4){width:70px}
.order-request-table th:nth-child(5),.order-request-table td:nth-child(5){width:140px}
.order-request-table th:nth-child(6),.order-request-table td:nth-child(6){width:90px}
.order-request-table th:nth-child(7),.order-request-table td:nth-child(7){width:160px}
.order-request-table th:nth-child(8),.order-request-table td:nth-child(8){width:170px}
.quote-basket-table { min-width: 820px; }
.quote-basket-table .basket-quantity { width: 90px; min-width: 90px; }
.basket-actions { margin-top: 16px; }
.basket-transfer-box {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  margin-top: 22px;
  padding: 18px;
  border: 1px solid var(--border, #d0d5dd);
  border-radius: 10px;
  background: var(--panel-soft, rgba(127,127,127,.06));
}
.empty-basket-state { text-align: center; padding: 32px 16px; }
@media (max-width: 800px) {
  .quote-basket-banner, .basket-transfer-box { align-items: stretch; flex-direction: column; }
}
.revision-badge{display:inline-block;vertical-align:middle;margin-left:7px;padding:4px 8px;border-radius:999px;background:var(--tull-orange-soft);border:1px solid #f0c39c;color:#8a4a14;font-size:12px;font-weight:700}.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn.danger:hover{filter:brightness(.9);color:#fff}.danger-panel{border-left:4px solid var(--danger)}.internal-notes-panel{border-left:4px solid #5b2626}

/* v3.10.21 subcontract quotation import */
.subcontract-import-box {
  margin: .5rem 0 1rem;
  padding: .9rem 1rem;
  border: 1px solid #d9d9d9;
  border-radius: 8px;
  background: #fafafa;
}
.subcontract-import-box .btn { margin-top: .25rem; }
#subcontract-import-status { margin-top: .55rem; }

/* v3.10.22 price-updates list */
.price-changed { font-weight: 700; color: var(--tull-orange); }

/* v3.10.23 buyer parts-request order status */
.status-requested { background: #eef1f4; }
.status-in_stock { background: #e3f0fb; color: #1c5a85; }
.status-ordered { background: #fff2d5; }
.status-in_transit { background: #fff0e4; color: #9b4e0c; }
.status-received { background: #e6f4ea; }
.status-not_sent { background: #fdecec; color: #8f2222; }
.status-self_sourced { background: #f0f1f2; color: #55595d; }
.send-buyer-box { margin-top: 18px; border-top: 1px solid #e3e7eb; padding-top: 14px; }
.send-buyer-box summary { cursor: pointer; font-weight: 600; }
.send-buyer-box form label { display: block; margin-top: 10px; }
.send-buyer-box form label > strong { display: block; margin-bottom: 4px; font-size: 13px; }
.buyer-send-list { margin: 6px 0 12px; padding-left: 20px; font-size: 13px; color: #7a8085; }
.sourcing-cost-cell { display: flex; align-items: center; gap: 6px; white-space: nowrap; }
.sourcing-cost-cell input[type=number] { width: 90px; }
tr.row-overdue td { background: #fff0f0; }
.delivery-date-form { display: flex; gap: 6px; align-items: center; }
.delivery-date-form input[type=date] { width: auto; min-width: 140px; }
.bulk-buyer-bar { display: flex; gap: 10px; align-items: center; margin-bottom: 10px; padding: 9px 12px; background: #f7f8f9; border: 1px solid var(--tull-border); border-radius: 5px; }
.bulk-buyer-bar select { width: auto; }
.quote-lines-table td form.inline select { min-width: 140px; }
.po-mismatch-banner { display: flex; align-items: center; flex-wrap: wrap; gap: 4px; }
.po-mismatch-modal { position: fixed; inset: 0; background: rgba(15,17,19,.55); display: flex; align-items: center; justify-content: center; z-index: 1000; padding: 16px; }
.po-mismatch-modal[hidden] { display: none; }
.po-mismatch-modal-box { background: #fff; border-radius: 8px; border-top: 5px solid var(--danger); box-shadow: 0 20px 50px rgba(0,0,0,.3); max-width: 460px; width: 100%; padding: 22px 24px; }
.po-mismatch-modal-box h3 { margin: 0 0 10px; }
.po-mismatch-modal-box p { margin: 0 0 10px; font-size: 14px; }
.po-mismatch-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 14px; }
.po-candidate { display: block; width: 100%; text-align: left; padding: 10px 12px; margin-bottom: 8px; border: 1px solid var(--tull-border); border-radius: 5px; background: #fff; cursor: pointer; font: inherit; }
.po-candidate:hover { border-color: var(--tull-orange); }
.po-candidate.selected { border-color: var(--tull-orange); background: var(--tull-orange-soft); border-width: 2px; }
.reprice-box { margin-top: 22px; padding: 16px 18px; border: 1px solid var(--tull-border); border-left: 4px solid var(--tull-orange); border-radius: 5px; background: #fff; }
.reprice-box h3 { margin: 0 0 4px; }
.reprice-forms { display: flex; gap: 24px; flex-wrap: wrap; margin-top: 12px; }
.reprice-forms form { display: flex; align-items: flex-end; gap: 10px; }
.reprice-forms .field-group { margin-bottom: 0; }
.reprice-forms input[type=number] { width: 140px; }
.quote-lines-table .reprice-markup-input,.quote-lines-table .reprice-price-input,.quote-lines-table .reprice-cost-input { width: 96px; }
.quote-lines-table .reprice-qty-input { width: 64px; padding-left: 6px; padding-right: 2px; }
.line-reprice-form { display: none; }
@media (max-width: 700px) { .reprice-forms { flex-direction: column; align-items: stretch; } .reprice-forms form { flex-direction: column; align-items: stretch; } }
.quote-number-input{display:flex;align-items:stretch;max-width:220px}.quote-number-prefix{display:flex;align-items:center;padding:0 12px;border:1px solid #c8cccf;border-right:0;border-radius:5px 0 0 5px;background:#f3f4f5;font-weight:700;color:#383c40;letter-spacing:.5px}.quote-number-input .form-control{border-radius:0 5px 5px 0;font-weight:700;letter-spacing:.5px}
[data-theme="dark"] .quote-number-prefix{background:#161b22;border-color:#333b44;color:var(--v3-text)}
.driver-offline-banner{margin:0 0 16px;padding:12px 15px;border:1px solid #f0c48f;border-left:4px solid var(--tull-orange);border-radius:6px;background:#fff7ee;line-height:1.5}.driver-offline-banner>div+div{margin-top:8px}.driver-offline-banner .btn.mini{margin-left:6px}.driver-offline-failed{color:#8f2222}.driver-offline-saved{padding:12px 14px;border-left:4px solid var(--tull-orange);background:#fff7ee;border-radius:5px}.driver-offline-saved p{margin:0 0 8px}.driver-offline-saved p:last-child{margin-bottom:0}.account-dropdown .pwa-install-btn{font-weight:600}
[data-theme="dark"] .driver-offline-banner,[data-theme="dark"] .driver-offline-saved{background:rgba(245,130,32,.10);border-color:rgba(245,130,32,.35);border-left-color:var(--tull-orange)}[data-theme="dark"] .driver-offline-failed{color:#ff9a9a}
.account-dropdown [hidden],.driver-offline-banner[hidden]{display:none}
/* Quote lines: section headings, subtotals, drag and drop, parts drawer */
.quote-lines-table .line-handle-cell{white-space:nowrap}.drag-handle{display:inline-block;cursor:grab;color:#9aa1a7;font-size:15px;line-height:1;padding:2px 4px;margin-right:2px;user-select:none}.drag-handle:hover{color:var(--tull-orange)}
.quote-section-heading td{background:#fff4ea;border-top:2px solid var(--tull-orange)}.quote-section-title{font-size:15px;color:var(--tull-charcoal)}
.quote-section-subtotal td{background:#f6f7f8;font-weight:600;border-bottom:2px solid #d6dadd}.quote-section-cost{color:#5d646a;font-weight:500;font-size:13px}
.quote-lines-table tr.drop-above td{box-shadow:inset 0 3px 0 var(--tull-orange)}.quote-lines-table tr.drop-below td{box-shadow:inset 0 -3px 0 var(--tull-orange)}.quote-lines-table tr.is-being-dragged{opacity:.45}
body.is-dragging-parts .quote-lines-table{outline:2px dashed rgba(245,130,32,.55);outline-offset:4px}
.link-button{background:none;border:0;padding:0;color:var(--tull-orange-dark,#c45f0a);cursor:pointer;font:inherit;text-decoration:underline}
.quote-heading-form{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 14px;padding:12px;border:1px solid #f0c48f;border-radius:6px;background:#fff7ee}.quote-heading-form[hidden]{display:none}.quote-heading-form label{font-weight:600}.quote-heading-form .form-control{max-width:320px}
.parts-drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:100%;z-index:900;background:#fff;border-left:1px solid var(--tull-border);box-shadow:-12px 0 32px rgba(0,0,0,.14);display:flex;flex-direction:column;padding:16px;box-sizing:border-box;gap:10px}.parts-drawer[hidden]{display:none}
.parts-drawer-head{display:flex;justify-content:space-between;align-items:center}.parts-drawer-head h2{margin:0;font-size:19px}.parts-drawer-close{background:none;border:0;font-size:26px;line-height:1;cursor:pointer;color:#6e7479}.parts-drawer-tip{margin:0;font-size:13px}
.parts-drawer-options{display:grid;grid-template-columns:90px 1fr;gap:8px}.parts-drawer-options label{font-size:12px;font-weight:600;color:#4b5156}.parts-drawer-options .form-control{margin-top:3px}
.parts-drawer-results{flex:1;overflow-y:auto;border:1px solid #e3e6e8;border-radius:6px}.parts-drawer-results>p{padding:12px;margin:0}.parts-drawer-results.is-loading{opacity:.55}
.parts-drawer-item{display:flex;gap:9px;align-items:flex-start;padding:9px 10px;border-bottom:1px solid #eef0f1;cursor:grab;background:#fff}.parts-drawer-item:hover{background:#fffaf6}.parts-drawer-item:active{cursor:grabbing}.parts-drawer-check{margin-top:3px}
.parts-drawer-item-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:13px}.parts-drawer-desc{color:#3a3f44;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.parts-drawer-item-main .muted{font-size:12px}
.parts-drawer-item-side{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.parts-drawer-cost{font-weight:700;font-size:13px;white-space:nowrap}.parts-drawer-foot{display:flex;justify-content:flex-end}
@media (min-width:1300px){body.parts-drawer-open .app-content{margin-right:400px}}
@media (max-width:700px){.parts-drawer{width:100%}}
[data-theme="dark"] .quote-section-heading td{background:rgba(245,130,32,.12)}[data-theme="dark"] .quote-section-title{color:#f2f3f4}[data-theme="dark"] .quote-section-subtotal td{background:#161b22;border-bottom-color:#333b44}[data-theme="dark"] .quote-section-cost{color:#9aa3ab}
[data-theme="dark"] .quote-heading-form{background:rgba(245,130,32,.08);border-color:rgba(245,130,32,.35)}
[data-theme="dark"] .parts-drawer{background:#0f1317;border-left-color:#2b3036}[data-theme="dark"] .parts-drawer-results{border-color:#2b3036}[data-theme="dark"] .parts-drawer-item{background:#0f1317;border-bottom-color:#20262c}[data-theme="dark"] .parts-drawer-item:hover{background:#161c22}[data-theme="dark"] .parts-drawer-desc{color:#d0d4d8}[data-theme="dark"] .parts-drawer-options label{color:#aab1b7}
@media (min-width:701px){body.parts-drawer-open .tull5-toast-container{right:416px}}
.field-group-checkbox label{display:flex;align-items:center;gap:9px;font-weight:600;cursor:pointer}.field-group-checkbox input[type=checkbox]{width:18px;height:18px;margin:0;padding:0;flex:none;accent-color:var(--tull-orange)}
/* Composites */
.panel.narrow-left{max-width:760px}
.composite-add-part{margin:0 0 16px;padding:12px;border:1px solid #e3e6e8;border-radius:6px;background:#fafbfc}.composite-add-row{display:grid;grid-template-columns:1fr 110px;gap:8px;margin-top:6px}
.composite-part-results{margin-top:8px;max-height:320px;overflow-y:auto;border:1px solid #e3e6e8;border-radius:6px;background:#fff}.composite-part-results>p{margin:0;padding:10px}
.composite-part-result{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 10px;border-bottom:1px solid #eef0f1;font-size:13px}.composite-part-result:hover{background:#fffaf6}
.composite-items-table .composite-qty-input{max-width:110px}.composite-items-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:12px;flex-wrap:wrap}
.parts-drawer-tabs{display:flex;gap:4px;border-bottom:1px solid #e3e6e8}.parts-drawer-tab{background:none;border:0;border-bottom:3px solid transparent;padding:8px 12px;font:inherit;font-weight:600;color:#6e7479;cursor:pointer}.parts-drawer-tab.is-active{color:var(--tull-charcoal);border-bottom-color:var(--tull-orange)}
.composite-parts-list{list-style:none;margin:4px 0 0;padding:0;font-size:11.5px;line-height:1.35;color:#5d646a}.composite-parts-list li{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.composite-parts-list b{color:#3a3f44;font-weight:600}.composite-part-qty{display:inline-block;min-width:30px;color:#7a8187}.composite-parts-list li.is-missing{color:#a11;text-decoration:line-through}
[data-theme="dark"] .composite-parts-list{color:#9aa3ab}[data-theme="dark"] .composite-parts-list b{color:#d0d4d8}[data-theme="dark"] .composite-part-qty{color:#7f8890}
[data-theme="dark"] .composite-add-part{background:#12171c;border-color:#2b3036}[data-theme="dark"] .composite-part-results{background:#0f1317;border-color:#2b3036}[data-theme="dark"] .composite-part-result{border-bottom-color:#20262c}[data-theme="dark"] .composite-part-result:hover{background:#161c22}[data-theme="dark"] .parts-drawer-tabs{border-bottom-color:#2b3036}[data-theme="dark"] .parts-drawer-tab.is-active{color:#f2f3f4}
.composite-import-steps{margin:0 0 16px;padding-left:20px;line-height:1.6}
.composite-paste-zone{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:18px;border:2px dashed #cfd4d8;border-radius:8px;background:#fafbfc}.composite-paste-zone:focus{outline:none;border-color:var(--tull-orange)}
.composite-paste-previews{display:flex;flex-wrap:wrap;gap:10px;width:100%}.composite-paste-previews:empty{display:none}.composite-paste-previews figure{position:relative;margin:0}.composite-paste-previews img{display:block;max-width:220px;max-height:150px;border:1px solid #d6dadd;border-radius:5px;background:#fff}
.composite-paste-remove{position:absolute;top:4px;right:4px;width:24px;height:24px;border:0;border-radius:50%;background:rgba(0,0,0,.65);color:#fff;font-size:16px;line-height:24px;cursor:pointer}
.composite-import-table td{vertical-align:top}.composite-import-table tr.needs-check td{background:#fffaf2}.composite-row-search{margin-top:6px;max-width:420px}.composite-row-search .composite-part-results{position:relative;z-index:5}
button.composite-part-result{width:100%;border:0;border-bottom:1px solid #eef0f1;background:none;text-align:left;font:inherit;cursor:pointer}
[data-theme="dark"] .composite-paste-zone{background:#12171c;border-color:#333b44}[data-theme="dark"] .composite-import-table tr.needs-check td{background:rgba(245,130,32,.07)}
/* Quote guide for new users */
.quote-guide{position:fixed;right:20px;bottom:20px;z-index:800;width:330px;max-width:calc(100vw - 32px);background:#fff;border:1px solid var(--tull-border);border-top:4px solid var(--tull-orange);border-radius:8px;box-shadow:0 14px 36px rgba(0,0,0,.18);font-size:13.5px}
.quote-guide-head{display:flex;align-items:center;gap:8px;width:100%;padding:11px 14px;border:0;background:none;font:inherit;cursor:pointer;text-align:left}.quote-guide-title{font-weight:700;font-size:15px;color:var(--tull-charcoal)}.quote-guide-progress{margin-left:auto;color:#6e7479;font-size:12.5px;font-weight:600}.quote-guide-caret{color:#9aa1a7;transition:transform .15s}
.quote-guide.is-collapsed .quote-guide-body{display:none}.quote-guide.is-collapsed .quote-guide-caret{transform:rotate(180deg)}
.quote-guide-body{padding:0 14px 12px;max-height:min(62vh,560px);overflow-y:auto}.quote-guide-bar{height:5px;border-radius:3px;background:#eceef0;margin-bottom:10px;overflow:hidden}.quote-guide-bar span{display:block;height:100%;background:var(--tull-orange);border-radius:3px}
.quote-guide-steps{list-style:none;margin:0;padding:0}.quote-guide-steps li{border-bottom:1px solid #f0f1f2}.quote-guide-steps summary{list-style:none;display:flex;align-items:center;gap:9px;padding:8px 0;cursor:pointer;font-weight:600;color:#30353a}.quote-guide-steps summary::-webkit-details-marker{display:none}.quote-guide-steps summary em{font-weight:500;color:#8a9095;font-size:12px}
.quote-guide-mark{flex:none;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:50%;background:#eceef0;color:#5d646a;font-size:12px;font-weight:700}
.quote-guide-steps li.is-done summary{color:#7a8187}.quote-guide-steps li.is-done .quote-guide-mark{background:#e6f4ea;color:#225d39}.quote-guide-steps li.is-next .quote-guide-mark{background:var(--tull-orange);color:#fff}.quote-guide-steps li.is-next summary{color:var(--tull-charcoal)}
.quote-guide-steps details p{margin:0 0 8px 31px;color:#4b5156;line-height:1.45}.quote-guide-steps details .btn{margin:0 0 10px 31px}
.quote-guide-done{margin:10px 0 0;color:#225d39;font-weight:600}.quote-guide-off{display:block;margin-top:10px;font-size:12.5px;color:#6e7479}
.quote-guide-form .quote-guide-body p{margin:0 0 9px;line-height:1.45;color:#4b5156}.quote-guide-field-name{font-weight:700;color:var(--tull-charcoal)!important}.quote-guide-then{padding-top:9px;border-top:1px solid #f0f1f2}
.guide-field-active{background:#fff7ee;box-shadow:0 0 0 8px #fff7ee;border-radius:3px}
@keyframes guidePulse{0%,100%{box-shadow:0 0 0 0 rgba(245,130,32,.0)}30%{box-shadow:0 0 0 6px rgba(245,130,32,.55)}60%{box-shadow:0 0 0 2px rgba(245,130,32,.35)}}
.guide-highlight{animation:guidePulse 1.3s ease-in-out 3;outline:2px solid var(--tull-orange);outline-offset:2px}
body.parts-drawer-open .quote-guide{display:none}
@media (max-width:700px){.quote-guide{right:8px;left:8px;bottom:8px;width:auto}}
[data-theme="dark"] .quote-guide{background:#0f1317;border-color:#2b3036;border-top-color:var(--tull-orange)}[data-theme="dark"] .quote-guide-title,[data-theme="dark"] .quote-guide-field-name,[data-theme="dark"] .quote-guide-steps li.is-next summary{color:#f2f3f4!important}[data-theme="dark"] .quote-guide-steps summary{color:#d0d4d8}[data-theme="dark"] .quote-guide-steps li{border-bottom-color:#20262c}[data-theme="dark"] .quote-guide-mark,[data-theme="dark"] .quote-guide-bar{background:#20262c;color:#aab1b7}[data-theme="dark"] .quote-guide-steps details p,[data-theme="dark"] .quote-guide-form .quote-guide-body p{color:#b8bec3}[data-theme="dark"] .guide-field-active{background:rgba(245,130,32,.10);box-shadow:0 0 0 8px rgba(245,130,32,.10)}
#quote-lines-panel>.page-head{flex-wrap:wrap;gap:12px}#quote-lines-panel>.page-head>div:first-child{flex:1 1 320px;min-width:0}#quote-lines-panel>.page-head>.actions{flex-wrap:wrap}
.quote-email-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.quote-email-layout textarea{font-family:inherit;line-height:1.5}.quote-email-side h2{font-size:16px;margin:0 0 8px}.quote-email-side ul{padding-left:18px;margin:0;line-height:1.5;font-size:13px}.quote-email-attachment{font-weight:600;word-break:break-all}
.quote-emails-table td{vertical-align:top}.quote-email-failed{color:#a11}
@media (max-width:900px){.quote-email-layout{grid-template-columns:1fr}}
.email-sending-panel .actions{flex-wrap:wrap;margin:8px 0}.email-sending-panel form{margin:0}
/* Email styles */
.email-style-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(420px,1fr));gap:16px;margin-bottom:12px}
.email-style-card{display:flex;flex-direction:column;gap:12px;margin:0}.email-style-card.is-inactive{opacity:.65}
.email-style-card-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.email-style-card-head h2{margin:0 0 4px}.email-style-card-head p{margin:0}
.email-style-badges{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.email-style-preview{border:1px solid var(--tull-border,#e3e7eb);border-radius:6px;background:#fafbfc;padding:12px 14px;font-size:14px;line-height:1.5}
.email-style-subject{font-weight:600;padding-bottom:8px;margin-bottom:8px;border-bottom:1px solid #e7e8e9}.email-style-subject .muted{font-weight:400;margin-right:6px}
.email-style-body{white-space:pre-wrap}.email-style-side h2{font-size:16px;margin:0 0 8px}.email-style-side h2+p{margin-top:0}.email-style-side .email-style-preview{margin-bottom:8px}
.email-style-card .actions{margin-top:auto}
.email-style-layout{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(280px,1fr);gap:16px;align-items:start}
.email-style-chips{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 12px}
.email-style-chip{border:1px solid #f0c39c;background:var(--tull-orange-soft,#fff3e8);color:#8a4a14;border-radius:999px;padding:5px 10px;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.email-style-chip:hover{border-color:var(--tull-orange)}
[data-theme="dark"] .email-style-preview{background:rgba(255,255,255,.04);border-color:rgba(255,255,255,.12)}
[data-theme="dark"] .email-style-subject{border-bottom-color:rgba(255,255,255,.12)}
[data-theme="dark"] .email-style-chip{background:rgba(245,130,32,.14);border-color:rgba(245,130,32,.4);color:#ffb877}
@media (max-width:900px){.email-style-layout{grid-template-columns:1fr}.email-style-grid{grid-template-columns:1fr}}
/* Sidebar sections and pop-out menus */
.side-section-label{margin:18px 14px 6px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a949e}
.side-flyout{position:static}
.side-flyout>summary{list-style:none;cursor:pointer;user-select:none}
.side-flyout>summary::-webkit-details-marker{display:none}
.side-flyout-caret{display:flex;align-items:center;justify-content:center;width:18px;height:18px;color:#8a949e;transition:transform .15s ease}
.side-flyout-caret svg{width:16px;height:16px}
.side-flyout[open]>summary .side-flyout-caret{transform:rotate(90deg);color:var(--v3-orange)}
.side-flyout[open]>summary.side-link{background:rgba(255,255,255,.07);color:#fff}
.side-flyout>summary.side-link .nav-count-group{align-items:center}
.side-new-btn{display:grid;grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:9px;min-height:48px;padding:8px 14px;border-radius:8px;background:var(--v3-orange);color:#fff;font-size:15px;font-weight:700;box-shadow:0 6px 16px rgba(245,130,32,.22)}
.side-new-btn .side-icon{color:#fff}
.side-new-btn .side-flyout-caret{color:rgba(255,255,255,.85)}
.side-flyout-new[open]>summary .side-flyout-caret{color:#fff}
.side-new-btn:hover{filter:brightness(1.06)}
.side-flyout-panel{position:fixed;z-index:620;width:330px;overflow-y:auto;padding:8px;border-radius:10px;background:#1c252f;border:1px solid rgba(255,255,255,.08);box-shadow:0 18px 44px rgba(0,0,0,.38);color:#eef1f4;animation:side-flyout-in .14s ease-out}
@keyframes side-flyout-in{from{opacity:0;transform:translateX(-4px)}to{opacity:1;transform:none}}
.side-flyout-title{margin:4px 10px 8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a949e}
.side-flyout-panel a{display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;padding:9px 10px;border-radius:7px;color:#eef1f4;text-decoration:none}
.side-flyout-panel a:hover,.side-flyout-panel a:focus-visible{background:rgba(255,255,255,.07);color:#fff;outline:none}
.side-flyout-panel a.is-current{background:rgba(245,130,32,.12)}
.side-flyout-panel a.is-current b{color:var(--v3-orange)}
.side-flyout-panel b{display:block;font-size:14px;font-weight:600}
.side-flyout-panel small{display:block;margin-top:2px;font-size:12px;color:#9aa4ad;line-height:1.35}
.side-flyout-icon{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;background:rgba(255,255,255,.06);font-size:17px;color:#e2e7eb}
.side-flyout-icon svg{width:1em;height:1em}
.side-flyout-icon.side-icon-img img{width:18px;height:18px}
.side-flyout-row{display:flex;align-items:center}
.side-flyout-row>a{flex:1;min-width:0}
.side-flyout-row .nav-count-form{margin-right:10px}
.side-nav-group+.side-flyout-new,.side-flyout-new{margin-bottom:4px}
@media(max-width:780px){
  .side-section-label{display:none}
  .side-nav-scroll>.side-flyout-new{flex-shrink:0}
  .side-new-btn{min-height:42px;grid-template-columns:22px auto auto;padding:6px 12px;font-size:13px}
  .side-new-btn .side-icon{width:22px;height:22px;font-size:19px}
  .side-flyout>summary.side-link{grid-template-columns:25px auto auto}
  .side-flyout-panel{width:auto}
}
@media(prefers-reduced-motion:reduce){.side-flyout-panel{animation:none}.side-flyout-caret{transition:none}}
.nav-count.nav-count-warning{background:#b7791f}
.side-nav-main{margin-top:6px}
.app-shell>.side-nav{z-index:40}
@media(max-width:1500px){.app-topbar{grid-template-columns:260px minmax(0,1fr) auto}.primary-nav{gap:4px}.primary-nav a{padding:0 10px}.tull5-palette-trigger span,.tull5-palette-trigger kbd{display:none}.tull5-palette-trigger{padding:0 10px}}
@media(max-width:1300px){.account-copy{display:none}.account-menu summary{min-width:auto}}
/* Quote page summary strip */
.quote-meta-strip{display:flex;flex-wrap:wrap;align-items:stretch;margin-bottom:16px;background:#fff;border:1px solid var(--tull-border);border-top:3px solid var(--tull-orange);border-radius:6px;box-shadow:0 3px 12px rgba(0,0,0,.035)}
.qm-item{display:flex;flex-direction:column;justify-content:center;gap:2px;padding:8px 16px;min-width:0;border-right:1px solid var(--tull-border)}
.qm-item:last-child{border-right:0}
.qm-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#7a8085;white-space:nowrap}
.qm-value{font-size:14px;font-weight:600;white-space:nowrap}
.qm-status select.form-control{height:30px;padding:2px 28px 2px 8px;font-size:13px;min-width:0;width:auto}
.qm-site{flex:1 1 220px}
.qm-site .qm-value{overflow:hidden;text-overflow:ellipsis;font-weight:500}
[data-theme="dark"] .quote-meta-strip{background:var(--v3-card);border-color:var(--v3-border);border-top-color:var(--tull-orange);color:var(--v3-text)}
[data-theme="dark"] .qm-item{border-right-color:var(--v3-border)}
[data-theme="dark"] .qm-label{color:var(--v3-muted)}
@media(max-width:780px){.qm-item{flex:1 1 45%;border-right:0;border-bottom:1px solid var(--tull-border)}.qm-site{flex-basis:100%}.qm-value{white-space:normal}}
/* Parts drawer: Labour & delivery tab */
.parts-drawer-options.has-unit{grid-template-columns:76px 104px 1fr}
.parts-drawer-group{margin:0;padding:8px 12px 6px;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#7a8085;background:#f6f7f8;border-bottom:1px solid #e7e8e9;position:sticky;top:0;z-index:1}
.parts-drawer-results>.parts-drawer-group~p.muted{padding:8px 12px;margin:0}
[data-theme="dark"] .parts-drawer-group{background:#161c22;border-bottom-color:#20262c;color:#8a949e}
.quote-meta-strip .qm-status select.form-control{height:30px;min-height:0;padding-top:2px;padding-bottom:2px;font-size:13px;margin:0}.quote-meta-strip .quote-status-form{margin:0}

/* Compact quote lines - while the Picker is open, or switched on */
body.parts-drawer-open .quote-lines-table .col-buyer,body.parts-drawer-open .quote-lines-table .col-status,
body.lines-compact .quote-lines-table .col-buyer,body.lines-compact .quote-lines-table .col-status{display:none}
body.parts-drawer-open .quote-lines-table th,body.parts-drawer-open .quote-lines-table td,
body.lines-compact .quote-lines-table th,body.lines-compact .quote-lines-table td{padding:7px 6px}
body.parts-drawer-open .quote-lines-table .reprice-cost-input,body.parts-drawer-open .quote-lines-table .reprice-price-input,
body.lines-compact .quote-lines-table .reprice-cost-input,body.lines-compact .quote-lines-table .reprice-price-input{width:82px;padding-left:6px;padding-right:2px}
body.parts-drawer-open .quote-lines-table .reprice-markup-input,body.lines-compact .quote-lines-table .reprice-markup-input{width:64px;padding-left:6px;padding-right:2px}
body.parts-drawer-open .quote-lines-table .reprice-qty-input,body.lines-compact .quote-lines-table .reprice-qty-input{width:54px}
body.parts-drawer-open .quote-lines-table th small,body.lines-compact .quote-lines-table th small{display:none}
body.parts-drawer-open .quote-lines-table .line-actions,body.lines-compact .quote-lines-table .line-actions{font-size:13px}
body.lines-compact [data-toggle-compact-lines]{background:var(--tull-orange-soft,#fff3e8);border-color:var(--tull-orange);color:#8a4a14}
/* While the Picker is open, or when collapsed with the button at its foot, the sidebar shrinks to icons */
@media(min-width:781px){
  body.parts-drawer-open .app-shell,html.side-collapsed body .app-shell{grid-template-columns:76px minmax(0,1fr)}
  body.parts-drawer-open .side-nav-scroll,html.side-collapsed body .side-nav-scroll{padding:12px 8px;overflow-x:hidden}
  body.parts-drawer-open .side-link,body.parts-drawer-open .side-new-btn,html.side-collapsed body .side-link,html.side-collapsed body .side-new-btn{grid-template-columns:1fr;justify-items:center;padding:8px 0;min-height:46px;position:relative}
  body.parts-drawer-open .side-link>span:not(.side-icon),body.parts-drawer-open .side-new-btn>span:not(.side-icon),html.side-collapsed body .side-link>span:not(.side-icon),html.side-collapsed body .side-new-btn>span:not(.side-icon),
  body.parts-drawer-open .side-section-label,body.parts-drawer-open .side-footer,html.side-collapsed body .side-section-label,html.side-collapsed body .side-footer{display:none}
  body.parts-drawer-open .side-link .nav-count-group,body.parts-drawer-open .side-link>.nav-count,html.side-collapsed body .side-link .nav-count-group,html.side-collapsed body .side-link>.nav-count{position:absolute;top:2px;right:2px;display:flex}
  body.parts-drawer-open .side-link .nav-count-group .side-flyout-caret,html.side-collapsed body .side-link .nav-count-group .side-flyout-caret{display:none}
  body.parts-drawer-open .side-link .nav-count,html.side-collapsed body .side-link .nav-count{min-width:18px;height:18px;font-size:10px;padding:0 4px}
  body.parts-drawer-open .side-nav-group,html.side-collapsed body .side-nav-group{gap:3px;margin-top:6px}
  body.parts-drawer-open .tull5-bug-fab,html.side-collapsed body .tull5-bug-fab{left:20px}
}
body.parts-drawer-open .quote-lines-table .line-actions,body.lines-compact .quote-lines-table .line-actions{display:flex;flex-direction:column;align-items:flex-start;gap:2px}
body.parts-drawer-open .quote-lines-table .line-actions form,body.lines-compact .quote-lines-table .line-actions form{margin-left:0}
body.parts-drawer-open .quote-lines-table .line-actions .danger-link,body.lines-compact .quote-lines-table .line-actions .danger-link{padding-left:0}
/* Inbox */
.inbox-tabs{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 14px;border-bottom:1px solid var(--tull-border)}
.inbox-tab,.inbox-status{display:inline-flex;align-items:center;gap:6px;padding:9px 12px;color:#5d6368;text-decoration:none;font-weight:600;border-bottom:3px solid transparent;margin-bottom:-1px}
.inbox-tab.is-active{color:var(--tull-charcoal);border-bottom-color:var(--tull-orange)}
.inbox-tabs-spacer{flex:1}
.inbox-status{font-size:13px;padding:6px 10px;border:0;border-radius:999px;margin:0}
.inbox-status.is-active{background:var(--tull-orange-soft,#fff3e8);color:#8a4a14}
.inbox-item{border-left:4px solid #c8cccf}
.inbox-item.inbox-po{border-left-color:var(--success,#2f855a)}
.inbox-item.inbox-quote_request{border-left-color:var(--tull-orange)}
.inbox-item.inbox-quote_reply{border-left-color:#5a7ea6}
.inbox-item-head{display:flex;gap:12px;align-items:flex-start}
.inbox-item-head h2{margin:0 0 2px;font-size:17px}
.inbox-item-head p{margin:0;font-size:13px}
.inbox-kind{white-space:nowrap;margin-top:2px}
.inbox-po .inbox-kind{background:#e6f4ea;color:#225d39}
.inbox-quote_request .inbox-kind{background:#fff0e4;color:#9b4e0c}
.inbox-quote_reply .inbox-kind{background:#e3f0fb;color:#1c5a85}
.inbox-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:10px 0;font-size:14px}
.inbox-body summary{cursor:pointer;color:#4b5156;font-size:14px;line-height:1.45}
.inbox-body-full{margin-top:8px;padding:10px 12px;background:#fafbfc;border:1px solid #e7e8e9;border-radius:6px;font-size:14px;max-height:420px;overflow:auto}
.inbox-attachments{list-style:none;padding:0;margin:10px 0;display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px}
.inbox-actions{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:12px;padding-top:12px;border-top:1px solid #eef0f2}
.inbox-po-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px}
.inbox-po-form label{display:flex;flex-direction:column;gap:3px;font-size:12px;font-weight:600;color:#4b5156}
.inbox-po-form .form-control{min-width:0;width:150px}
.inbox-po-form select.form-control{width:200px}
.quote-inbox-banner{display:flex;align-items:center;gap:10px;margin-bottom:14px;padding:10px 14px;border-radius:6px;background:#e6f4ea;border:1px solid #b9dfc6;color:#225d39}
.quote-inbox-banner a{font-weight:700}
[data-theme="dark"] .inbox-tab{color:#aab1b7}[data-theme="dark"] .inbox-tab.is-active{color:#f2f3f4}
[data-theme="dark"] .inbox-body-full{background:#12171c;border-color:#2b3036}
[data-theme="dark"] .inbox-actions{border-top-color:#2b3036}
[data-theme="dark"] .inbox-po-form label,[data-theme="dark"] .inbox-body summary{color:#c2c7cb}
[data-theme="dark"] .quote-inbox-banner{background:rgba(35,115,67,.18);border-color:rgba(35,115,67,.45);color:#7fd9a0}
/* Quote type choice on the new/edit quote form */
#id_quote_type{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:4px}
#id_quote_type>div{margin:0}
#id_quote_type label{display:flex;align-items:center;gap:10px;padding:12px 14px;border:2px solid #d9dde1;border-radius:8px;cursor:pointer;font-weight:700;color:#383c40;margin:0}
#id_quote_type label.is-chosen{border-color:var(--tull-orange);background:var(--tull-orange-soft,#fff3e8)}
#id_quote_type input{width:auto;margin:0;accent-color:var(--tull-orange)}
p.contract-field{padding-left:12px;border-left:3px solid var(--tull-orange)}
[data-theme="dark"] #id_quote_type label{border-color:#2b3036;color:#e2e7eb}
[data-theme="dark"] #id_quote_type label.is-chosen{background:rgba(245,130,32,.14);border-color:var(--tull-orange)}
@media(max-width:600px){#id_quote_type{grid-template-columns:1fr}}
/* Maintenance contract quotes */
.maintenance-badge{display:inline-block;vertical-align:middle;margin-left:6px;padding:4px 9px;border-radius:999px;background:#e3f0fb;border:1px solid #b6d4ee;color:#1c5a85;font-size:12px;font-weight:700}
.contract-summary{margin:18px 0;padding:14px 16px;border:1px solid var(--tull-border);border-left:4px solid #5a7ea6;border-radius:6px;background:#fff}
.contract-summary-head{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:8px}
.contract-summary-head h3{margin:0}
.contract-summary-head p{margin:0}
.contract-years td,.contract-years th{padding:7px 10px}
.contract-years tfoot td{border-top:2px solid var(--tull-charcoal);font-weight:700}
[data-theme="dark"] .maintenance-badge{background:rgba(90,126,166,.2);border-color:rgba(90,126,166,.5);color:#9cc3ea}
[data-theme="dark"] .contract-summary{background:var(--v3-card);border-color:var(--v3-border);border-left-color:#5a7ea6}
/* New customer, added from the New quote page */
.new-customer-open{margin-left:10px;vertical-align:middle}
.new-customer-panel{margin:-4px 0 18px;padding:14px 16px;border:1px solid #f0c39c;border-left:4px solid var(--tull-orange);border-radius:6px;background:#fffaf5}
.new-customer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.new-customer-head h2{margin:0;font-size:17px}
.new-customer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 14px}
.new-customer-field label{display:block;font-weight:600;font-size:13px;margin:6px 0 4px;color:#383c40}
.nc-field-name,.nc-field-address_line1,.nc-field-address_line2{grid-column:1/-1}
.new-customer-lookup{margin-bottom:6px;position:relative}
.new-customer-lookup label{display:block;font-weight:600;font-size:13px;margin-bottom:4px}
.new-customer-lookup .address-lookup-results{position:static;margin-top:4px}
.new-customer-panel .actions{margin-top:12px}
.new-customer-added{display:block;margin-top:4px;color:var(--success,#2f855a);font-weight:600}
[data-theme="dark"] .new-customer-panel{background:rgba(245,130,32,.06);border-color:rgba(245,130,32,.35)}
[data-theme="dark"] .new-customer-field label,[data-theme="dark"] .new-customer-lookup label{color:#c2c7cb}
@media(max-width:600px){.new-customer-grid{grid-template-columns:1fr}}
.has-new-customer>label{display:inline-block}.has-new-customer .new-customer-open{margin:0 0 6px 10px}
/* Maintenance visit schedule (diary) */
.schedule-app{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.schedule-palette{position:sticky;top:110px;max-height:calc(100vh - 130px);overflow:auto;margin:0}
.schedule-palette h2{margin:0 0 4px;font-size:18px}.schedule-palette h3{margin:16px 0 6px;font-size:14px}
.schedule-palette>p{margin:0 0 10px;font-size:13px}
.schedule-days-input{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;margin-bottom:10px}
.schedule-days-input .form-control{width:80px}
.schedule-rates{display:flex;flex-direction:column;gap:6px}
.schedule-source{display:flex;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--tull-border);border-radius:7px;background:#fff;cursor:grab}
.schedule-source:hover{border-color:var(--tull-orange)}
.schedule-source b{display:block;font-size:13px}.schedule-source small{display:block;color:#7a8085;font-size:12px}
.schedule-grip{color:#9aa0a6}
.schedule-lines{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px;font-size:13px}
.schedule-lines small{display:block;color:#7a8085}.schedule-lines .btn{margin-top:4px}
.schedule-total{margin:0 0 10px}
.schedule-months{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px}
.schedule-month{background:#fff;border:1px solid var(--tull-border);border-top:3px solid #5a7ea6;border-radius:6px;padding:10px 12px}
.schedule-month header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.schedule-month h3{margin:0;font-size:15px}
.schedule-month-total{font-size:12px;font-weight:700;color:#1c5a85;background:#e3f0fb;border-radius:999px;padding:2px 8px}
.schedule-anytime{border:1px dashed #b6c2cc;border-radius:6px;padding:7px;text-align:center;font-size:12px;color:#5d6368;margin-bottom:6px}
.schedule-calendar{width:100%;border-collapse:collapse;table-layout:fixed}
.schedule-calendar th{background:none;color:#9aa0a6;font-size:10px;padding:2px 0;text-align:center;font-weight:600;text-transform:none;letter-spacing:0}
.schedule-calendar td{text-align:center;font-size:11px;padding:3px 0;border:0;border-radius:4px;color:#383c40}
.schedule-calendar td.is-weekend{color:#b0b5ba}
.schedule-calendar td.has-visit{background:#5a7ea6;color:#fff;font-weight:700}
.schedule-app.is-dragging [data-drop]{outline:1px dashed transparent}
.schedule-app.is-dragging .schedule-anytime{border-color:var(--tull-orange);color:#8a4a14}
[data-drop].is-drop-target{background:var(--tull-orange)!important;color:#fff!important;border-color:var(--tull-orange)!important}
.schedule-visits{list-style:none;padding:0;margin:8px 0 0;display:flex;flex-direction:column;gap:5px}
.schedule-visit{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 6px;align-items:center;padding:6px 8px;border-radius:6px;background:#f2f6fa;border:1px solid #d6e2ec;cursor:grab;font-size:12px}
.schedule-visit-main b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.schedule-visit-main small{color:#5d6368}
.schedule-visit-days{display:flex;align-items:center;gap:3px;white-space:nowrap}
.schedule-visit-days button{width:20px;height:20px;border-radius:4px;border:1px solid #c8cccf;background:#fff;cursor:pointer;line-height:1;padding:0}
.schedule-visit-tools{grid-column:1/-1;display:flex;justify-content:space-between}
.schedule-visit-tools button{border:0;background:none;color:#5a7ea6;cursor:pointer;font-size:12px;padding:0}
.schedule-visit-tools [data-remove]{color:var(--danger);font-size:16px;line-height:1}
.line-schedule{display:inline-flex;align-items:center;gap:4px;margin-top:3px;font-size:12px;color:#1c5a85;text-decoration:none}
.line-schedule svg{width:13px;height:13px;flex:none}
.line-schedule:hover{text-decoration:underline}
.line-schedule.is-unscheduled{color:#9a5b12}
[data-theme="dark"] .line-schedule{color:#8fbbe0}[data-theme="dark"] .line-schedule.is-unscheduled{color:#e0a35c}
.schedule-adhoc{border-top-color:#8a6d3b;margin-bottom:14px}
.schedule-adhoc .schedule-anytime{padding:14px 10px}
.schedule-adhoc .schedule-visits{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr))}
.schedule-lines .is-unscheduled{display:flex;gap:8px;align-items:flex-start;cursor:grab}
.schedule-lines .is-unscheduled small{display:block}
.schedule-lines .is-unscheduled .btn{margin-top:4px}
.schedule-copy-dialog{border:1px solid var(--tull-border);border-radius:10px;padding:18px 20px;width:min(520px,calc(100vw - 32px));box-shadow:0 18px 50px rgba(0,0,0,.25)}
.schedule-copy-dialog::backdrop{background:rgba(15,20,25,.45)}
.schedule-copy-dialog h2{margin:0 0 4px;font-size:18px}
.schedule-copy-presets{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0}
.schedule-copy-months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px 10px}
.schedule-copy-months label{display:flex;align-items:center;gap:6px;font-size:13px;padding:5px 8px;border:1px solid var(--tull-border);border-radius:6px;cursor:pointer}
.schedule-copy-months label.is-own,.schedule-copy-months label.is-taken{opacity:.6;cursor:default}
.schedule-copy-note{font-size:12px;margin:10px 0 0}
.schedule-copy-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
@media (max-width:520px){.schedule-copy-months{grid-template-columns:repeat(2,minmax(0,1fr))}}
.schedule-summary{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:4px;margin:10px 0}
.schedule-summary span{text-align:center;padding:5px 2px;border-radius:5px;background:#f2f6fa;font-size:11px;color:#5d6368}
.schedule-summary span b{display:block;font-size:13px;color:#1c5a85}
.schedule-summary .is-ad-hoc{background:#f6efe3}.schedule-summary .is-ad-hoc b{color:#8a6d3b}
[data-theme="dark"] .schedule-source,[data-theme="dark"] .schedule-month{background:var(--v3-card);border-color:var(--v3-border)}
[data-theme="dark"] .schedule-month{border-top-color:#5a7ea6}
[data-theme="dark"] .schedule-calendar td{color:#d0d4d8}[data-theme="dark"] .schedule-calendar td.is-weekend{color:#6b737b}
[data-theme="dark"] .schedule-visit,[data-theme="dark"] .schedule-summary span{background:rgba(90,126,166,.15);border-color:rgba(90,126,166,.35);color:#c2c7cb}
[data-theme="dark"] .schedule-copy-dialog{background:var(--v3-card);border-color:var(--v3-border);color:#e2e7eb}
[data-theme="dark"] .schedule-copy-months label{border-color:var(--v3-border)}
[data-theme="dark"] .schedule-visit-days button{background:#12171c;border-color:#2b3036;color:#e2e7eb}
@media(max-width:900px){.schedule-app{grid-template-columns:1fr}.schedule-palette{position:static;max-height:none}.schedule-summary{grid-auto-flow:row;grid-template-columns:repeat(6,minmax(0,1fr))}}
.contract-schedule-head{display:flex;justify-content:space-between;align-items:center;margin-top:12px}.contract-schedule-head h4{margin:0}

/* Quotation templates: project quotes / maintenance contracts tabs */
.template-type-tabs{display:flex;gap:6px;margin:0 0 14px;border-bottom:1px solid var(--tull-border)}
.template-type-tabs a{padding:9px 16px;border:1px solid transparent;border-bottom:none;border-radius:8px 8px 0 0;color:#5d6368;text-decoration:none;font-weight:600;margin-bottom:-1px}
.template-type-tabs a:hover{color:var(--tull-orange)}
.template-type-tabs a.is-active{background:#fff;border-color:var(--tull-border);color:#1f2328;border-bottom:1px solid #fff}
.template-type-tabs small{font-weight:500;color:#7a8085;margin-left:4px}
.template-row-actions{white-space:nowrap}
.template-row-actions form{display:inline;margin-left:10px}
[data-theme="dark"] .template-type-tabs a{color:#aab2b9}
[data-theme="dark"] .template-type-tabs a.is-active{background:var(--v3-card);border-color:var(--v3-border);border-bottom-color:var(--v3-card);color:#e2e7eb}
.template-row-actions .link-button{color:#c85d00;padding:0;font-size:inherit}.template-row-actions .link-button:hover{background:none;text-decoration:underline;color:#c85d00}

/* Collapse / expand the sidebar (button at the top: the bug-report button sits at the foot) */
.side-collapse-btn{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;margin:10px 15px 0;padding:4px 14px;min-height:34px;background:none;border:0;border-radius:6px;color:#aab2b9;font:inherit;font-size:13px;text-align:left;cursor:pointer}
.side-collapse-btn:hover{background:rgba(255,255,255,.055);color:#fff}
.side-collapse-btn:focus-visible{outline:2px solid var(--tull-orange);outline-offset:2px}
.side-collapse-btn .side-icon{font-size:18px;transform:rotate(180deg);transition:transform .15s ease}
.side-collapse-btn .side-icon svg{width:18px;height:18px}
@media(min-width:781px){
  html.side-collapsed .side-collapse-btn,body.parts-drawer-open .side-collapse-btn{grid-template-columns:1fr;justify-items:center;margin:10px 8px 0;padding:4px 0}
  html.side-collapsed .side-collapse-btn>span:not(.side-icon),body.parts-drawer-open .side-collapse-btn>span:not(.side-icon){display:none}
  html.side-collapsed .side-collapse-btn .side-icon{transform:none}
}
@media(max-width:780px){.side-collapse-btn{display:none}}
.quote-lines-table .labour-no-markup,.quote-lines-table .labour-sell-price{white-space:nowrap;font-size:14px}.quote-lines-table .labour-sell-price{font-weight:600;padding-left:12px}
.quote-lines-table .labour-markup-remove{color:#c85d00;padding:0;font-size:12px}.quote-lines-table .labour-markup-remove:hover{background:none;text-decoration:underline;color:#c85d00}

/* Quotation intro preview */
.quote-intro-panel .intro-preview{background:#fff;border:1px solid var(--tull-border);border-left:4px solid var(--tull-orange);border-radius:6px;padding:14px 18px;font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1.5;color:#1f2328}
.quote-intro-panel .intro-preview p{margin:0 0 8px}.quote-intro-panel .intro-preview p:last-child{margin-bottom:0}
.quote-intro-panel .intro-preview-re{font-weight:700}
.quote-intro-panel .intro-source{margin:8px 0 0;font-size:13px}
.quote-intro-panel .intro-source form{display:inline}
.quote-intro-panel .intro-link{color:#c85d00;padding:0;font-size:13px}.quote-intro-panel .intro-link:hover{background:none;text-decoration:underline;color:#c85d00}
.quote-intro-panel .intro-suggestion{margin-top:14px;padding:12px;border-radius:8px;background:#f2f6fa;border:1px solid #d6e2ec}
.quote-intro-panel .intro-suggestion .intro-preview{border-left-color:#5a7ea6}
.quote-intro-panel .intro-suggestion-label{margin:0 0 8px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#1c5a85}
.quote-intro-panel .intro-suggestion .actions,.quote-intro-panel .intro-edit-form .actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap}
.quote-intro-panel .intro-edit-form{margin-top:14px}
.quote-intro-panel .intro-edit-form textarea{margin-top:6px;font-size:15px;line-height:1.5}
[data-theme="dark"] .quote-intro-panel .intro-preview{background:#12171c;border-color:var(--v3-border);color:#e2e7eb}
[data-theme="dark"] .quote-intro-panel .intro-suggestion{background:rgba(90,126,166,.12);border-color:rgba(90,126,166,.35)}
[data-theme="dark"] .quote-intro-panel .intro-suggestion-label{color:#8fbbe0}

/* Picker on a maintenance contract: only labour */
.parts-drawer-tab:disabled{opacity:.45;cursor:not-allowed}
.parts-drawer-item.is-unavailable{opacity:.5;cursor:default}
.parts-drawer-group.is-unavailable{opacity:.6}
.parts-drawer-group small{font-weight:500;font-size:11px;margin-left:4px}

/* Visit schedule: weekly visits */
.schedule-weekly{border-top-color:#3c8a5a;margin-bottom:14px}
.schedule-weekly-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px 14px}
.schedule-weekly-form>label{display:flex;flex-direction:column;gap:4px;font-size:13px;font-weight:600}
.schedule-weekly-form select{min-width:180px}
.schedule-weekdays{display:flex;flex-wrap:wrap;gap:4px;border:0;padding:0;margin:0}
.schedule-weekdays legend{font-size:13px;font-weight:600;padding:0;margin-bottom:4px;width:100%}
.schedule-weekdays label{display:inline-flex;align-items:center;gap:4px;padding:6px 9px;border:1px solid var(--tull-border);border-radius:6px;font-size:13px;cursor:pointer}
.schedule-weekdays label:has(input:checked){border-color:#3c8a5a;background:#e8f4ec}
.schedule-weekly-note{margin:10px 0 0;font-size:12px}
.schedule-weekly.is-drop-target{outline:2px dashed #3c8a5a;outline-offset:2px}
.schedule-visit.is-weekly{background:#eef7f1;border-color:#cfe6d7;cursor:default}
[data-theme="dark"] .schedule-visit.is-weekly{background:rgba(60,138,90,.15);border-color:rgba(60,138,90,.4)}
[data-theme="dark"] .schedule-weekdays label:has(input:checked){background:rgba(60,138,90,.2)}
.schedule-weekly-form .schedule-days-per-week{width:90px}
.schedule-weekly-form input:disabled{opacity:.5}
.schedule-weekdays legend .muted{font-weight:400}
.schedule-weekly-form>label[hidden]{display:none}
.quote-intro-panel .intro-suggestion-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}
.quote-intro-panel .intro-suggestion-head .intro-suggestion-label{margin:0}
.quote-intro-panel .intro-options{display:grid;gap:12px}
.quote-intro-panel .intro-option-label{margin:0 0 6px;font-size:13px;font-weight:700;color:#1f2328}
.quote-intro-panel .intro-option .actions{margin-top:8px;display:flex;gap:8px}
[data-theme="dark"] .quote-intro-panel .intro-option-label{color:#e2e7eb}

/* Dashboard work panels: Needs my attention, Inbox, Jobs in progress */
.attention-count{min-width:22px;height:22px;padding:0 7px;border-radius:999px;background:var(--v3-orange);color:#fff;font-size:12px;font-weight:700;display:inline-flex;align-items:center;justify-content:center}
.attention-list,.glance-list,.jobs-list,.jobs-deliveries{list-style:none;margin:0;padding:6px 0}
.attention-item,.glance-list li,.jobs-list li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 20px;border-bottom:1px solid #f0f2f4}
.attention-item:last-child,.glance-list li:last-child,.jobs-list li:last-child{border-bottom:0}
.attention-tag,.glance-kind{display:inline-flex;justify-content:center;min-width:52px;padding:3px 7px;border-radius:5px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#eef1f4;color:#4b5258}
.attention-po .attention-tag,.glance-po{background:#e6f4ea;color:#1f6b3a}
.attention-chase .attention-tag{background:#fff1e3;color:#a14f00}
.attention-visits .attention-tag{background:#e3f0fb;color:#1c5a85}
.glance-quote_request{background:#f1e8fb;color:#5b2d8a}
.glance-urgent{background:#fde7e7;color:#a82f38}
.attention-copy,.glance-copy,.jobs-copy{min-width:0;font-size:13px;line-height:1.35}
.attention-copy a,.jobs-copy a{color:inherit;text-decoration:none}.attention-copy a:hover,.jobs-copy a:hover{text-decoration:underline}
.attention-copy small,.glance-copy small,.jobs-copy small{display:block;color:#6b7278;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.glance-copy b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.glance-actions{display:flex;align-items:center;gap:8px}
.glance-actions form{margin:0}
.glance-dismiss{color:#6b7278;padding:0;font-size:12px}.glance-dismiss:hover{background:none;color:#a82f38;text-decoration:underline}
.dash-empty-note{margin:0;padding:18px 20px;color:#6b7278;font-size:13px}
.dashboard-work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.dashboard-work-grid.is-single{grid-template-columns:1fr}
.jobs-list li{grid-template-columns:minmax(0,1fr) minmax(150px,auto)}
.jobs-progress{display:flex;flex-direction:column;gap:4px;min-width:150px}
.jobs-progress small,.jobs-progress-text{font-size:12px;color:#6b7278}
.jobs-bar{height:7px;border-radius:999px;background:#eef1f4;overflow:hidden}
.jobs-bar span{display:block;height:100%;background:#3c8a5a;border-radius:999px}
.jobs-subhead{margin:0;padding:12px 20px 4px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6b7278;border-top:1px solid var(--v3-border)}
.jobs-deliveries li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:7px 20px;font-size:13px}
.jobs-deliveries a{color:inherit;font-weight:600;text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.jobs-deliveries small{color:#6b7278;font-size:12px}
@media(max-width:1120px){.dashboard-work-grid{grid-template-columns:1fr}}
[data-theme="dark"] .attention-item,[data-theme="dark"] .glance-list li,[data-theme="dark"] .jobs-list li{border-bottom-color:rgba(255,255,255,.06)}
[data-theme="dark"] .attention-tag,[data-theme="dark"] .glance-kind,[data-theme="dark"] .jobs-bar{background:rgba(255,255,255,.08);color:#c2c7cb}
[data-theme="dark"] .attention-po .attention-tag,[data-theme="dark"] .glance-po{background:rgba(60,138,90,.2);color:#8fd0a5}
[data-theme="dark"] .attention-chase .attention-tag{background:rgba(239,125,0,.18);color:#f0a35c}
[data-theme="dark"] .attention-visits .attention-tag{background:rgba(90,126,166,.2);color:#8fbbe0}
[data-theme="dark"] .glance-quote_request{background:rgba(140,90,200,.2);color:#c7a6ec}
[data-theme="dark"] .glance-urgent{background:rgba(200,60,70,.2);color:#f0a0a6}
[data-theme="dark"] .attention-copy small,[data-theme="dark"] .glance-copy small,[data-theme="dark"] .jobs-copy small,[data-theme="dark"] .dash-empty-note,[data-theme="dark"] .jobs-progress small,[data-theme="dark"] .jobs-progress-text,[data-theme="dark"] .jobs-deliveries small,[data-theme="dark"] .jobs-subhead{color:#9aa2a9}

/* TULL5's own confirm box (static/tull5_confirm.js) */
.tull5-confirm{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(14,18,22,0);backdrop-filter:blur(0);transition:background .2s ease,backdrop-filter .2s ease}
.tull5-confirm.is-open{background:rgba(14,18,22,.5);backdrop-filter:blur(3px)}
.tull5-confirm.is-leaving{background:rgba(14,18,22,0);backdrop-filter:blur(0)}
.tull5-confirm-card{width:min(420px,100%);background:#fff;border-radius:14px;padding:26px 26px 20px;text-align:center;box-shadow:0 24px 60px rgba(0,0,0,.3);border-top:5px solid var(--tull-orange,#ef7d00);opacity:0;transform:scale(.6) translateY(30px)}
.tull5-confirm.is-open .tull5-confirm-card{animation:tull5-bounce-in .55s cubic-bezier(.2,1.4,.4,1) forwards}
.tull5-confirm.is-leaving .tull5-confirm-card{animation:tull5-pop-out .18s ease-in forwards}
@keyframes tull5-bounce-in{0%{opacity:0;transform:scale(.6) translateY(30px)}55%{opacity:1;transform:scale(1.06) translateY(-6px)}75%{transform:scale(.97) translateY(2px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes tull5-pop-out{from{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.85)}}
.tull5-confirm-icon{width:54px;height:54px;margin:0 auto 12px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;background:#fff1e3;color:#ef7d00}
.tull5-confirm.is-open .tull5-confirm-icon{animation:tull5-icon-wobble .7s .35s ease both}
@keyframes tull5-icon-wobble{0%,100%{transform:rotate(0)}25%{transform:rotate(-12deg)}50%{transform:rotate(9deg)}75%{transform:rotate(-4deg)}}
.tull5-confirm.is-danger .tull5-confirm-card{border-top-color:#d64545}
.tull5-confirm.is-danger .tull5-confirm-icon{background:#fde7e7;color:#c03b3b}
.tull5-confirm-card h2{margin:0 0 6px;font-size:19px;color:#15181b}
.tull5-confirm-card p{margin:0 0 20px;font-size:15px;line-height:1.5;color:#4b5258}
.tull5-confirm-actions{display:flex;justify-content:center;gap:10px}
.tull5-confirm-actions .btn{min-width:110px}
.tull5-confirm.is-danger [data-tull5-confirm-ok]{background:#d64545;border-color:#d64545;color:#fff}
.tull5-confirm.is-danger [data-tull5-confirm-ok]:hover{background:#b93636;border-color:#b93636}
[data-theme="dark"] .tull5-confirm-card{background:var(--v3-card,#1b2026);box-shadow:0 24px 60px rgba(0,0,0,.6)}
[data-theme="dark"] .tull5-confirm-card h2{color:#eef1f4}
[data-theme="dark"] .tull5-confirm-card p{color:#b9c0c6}
[data-theme="dark"] .tull5-confirm-icon{background:rgba(239,125,0,.18)}
[data-theme="dark"] .tull5-confirm.is-danger .tull5-confirm-icon{background:rgba(214,69,69,.2);color:#f0a0a6}
@media (prefers-reduced-motion: reduce){.tull5-confirm.is-open .tull5-confirm-card{animation:none;opacity:1;transform:none}.tull5-confirm.is-open .tull5-confirm-icon{animation:none}}

/* Dashboard: Maintenance contracts */
.maintenance-panel .maint-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-bottom:1px solid var(--v3-border)}
.maint-stat{padding:16px 20px;border-right:1px solid var(--v3-border)}
.maint-stat:last-child{border-right:0}
.maint-stat strong{display:block;font-size:24px;line-height:1.1;color:#15181b}
.maint-stat small{display:block;margin-top:4px;font-size:12px;color:#6b7278}
.maint-lists{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.maint-lists>div{padding:12px 20px 14px}
.maint-lists>div+div{border-left:1px solid var(--v3-border)}
.maint-lists h3{margin:0 0 6px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:#6b7278}
.maint-lists ul{list-style:none;margin:0;padding:0}
.maint-lists li{display:flex;justify-content:space-between;gap:12px;padding:5px 0;font-size:13px}
.maint-lists li a{color:inherit;font-weight:600;text-decoration:none;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.maint-lists li a:hover{text-decoration:underline}
.maint-lists li span{color:#6b7278;white-space:nowrap}
.maint-lists .dash-empty-note{padding:4px 0}
@media(max-width:1120px){.maintenance-panel .maint-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.maint-stat:nth-child(2){border-right:0}.maint-stat:nth-child(-n+2){border-bottom:1px solid var(--v3-border)}}
@media(max-width:700px){.maint-lists{grid-template-columns:1fr}.maint-lists>div+div{border-left:0;border-top:1px solid var(--v3-border)}}
[data-theme="dark"] .maint-stat strong{color:#eef1f4}
[data-theme="dark"] .maint-stat small,[data-theme="dark"] .maint-lists h3,[data-theme="dark"] .maint-lists li span{color:#9aa2a9}
