:root{font-family:Inter,"Noto Sans Thai",Tahoma,sans-serif;color:#132238;background:#f4f7fb;--navy:#10253f;--blue:#1e63d6;--line:#dbe3ee;--muted:#6c7b90;--ok:#16865a;--danger:#c53b44;--warn:#b27606;--card:#fff}*{box-sizing:border-box}body{margin:0;background:#f4f7fb}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}.login-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#0c1c32,#173d6e)}.login-card{width:min(430px,92vw);background:white;border-radius:18px;padding:30px;box-shadow:0 24px 60px #0005}.brand{font-weight:900;font-size:28px;color:#d6262f}.brand small{display:block;color:#243b58;font-size:12px;letter-spacing:2px}.login-card h1{margin:24px 0 6px}.sub{color:var(--muted);font-size:13px}.field{display:grid;gap:6px;margin:14px 0}.field label{font-weight:700;font-size:13px}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:10px;padding:10px 12px;background:#fff}.textarea{min-height:76px;resize:vertical}.btn{border:0;border-radius:10px;padding:10px 14px;background:#edf2f8;color:#223750;font-weight:700}.btn.primary{background:var(--blue);color:white}.btn.danger{background:#fff0f0;color:var(--danger)}.btn.ok{background:#e8f7f0;color:var(--ok)}.btn.small{padding:6px 10px;font-size:12px}.login-card .btn.primary{width:100%;margin-top:8px}.error{background:#fff1f1;border:1px solid #ffc9c9;color:#9b1c25;padding:9px;border-radius:9px;margin-top:10px}.shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh}.sidebar{background:var(--navy);color:#fff;padding:18px 12px;position:sticky;top:0;height:100vh;overflow:auto}.side-brand{padding:5px 10px 18px;font-weight:900;font-size:22px}.side-brand span{color:#ff444c}.side-brand small{display:block;font-size:10px;letter-spacing:1.5px;color:#a9bbd1}.navbtn{width:100%;text-align:left;border:0;background:transparent;color:#cdd9e8;padding:10px 12px;border-radius:9px;margin:2px 0}.navbtn:hover,.navbtn.active{background:#1a3b62;color:white}.main{min-width:0}.topbar{height:60px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 20px;position:sticky;top:0;z-index:3}.top-title{font-weight:800}.content{padding:20px}.page{display:none}.page.active{display:block}.page-head{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}.page-head h2{margin:0}.toolbar{display:flex;gap:8px;flex-wrap:wrap}.cards{display:grid;grid-template-columns:repeat(5,minmax(150px,1fr));gap:12px}.card{background:var(--card);border:1px solid var(--line);border-radius:13px;padding:15px;box-shadow:0 2px 8px #2538580b}.kpi .label{font-size:12px;color:var(--muted)}.kpi .value{font-size:26px;font-weight:900;margin-top:5px}.kpi .unit{font-size:11px;color:var(--muted)}.panel{background:#fff;border:1px solid var(--line);border-radius:13px;padding:14px;margin-top:14px}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:10px}table{width:100%;border-collapse:collapse;min-width:760px;background:white}th,td{padding:9px 10px;border-bottom:1px solid #edf1f6;text-align:left;font-size:13px;vertical-align:top}th{position:sticky;top:0;background:#f8fafc;color:#43536a;white-space:nowrap}tr:hover td{background:#fbfdff}.badge{display:inline-block;padding:3px 7px;border-radius:20px;background:#e9eff7;font-size:11px;font-weight:800}.badge.ok{background:#e5f6ee;color:#137247}.badge.warn{background:#fff4da;color:#8b5e00}.badge.danger{background:#ffe9ea;color:#a12931}.modal-back{position:fixed;inset:0;background:#0c1a2d99;display:grid;place-items:center;z-index:20;padding:20px}.modal{background:white;border-radius:15px;width:min(860px,96vw);max-height:92vh;overflow:auto;padding:18px}.modal-head{display:flex;justify-content:space-between;align-items:center}.modal h3{margin:0}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px}.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 14px}.span2{grid-column:span 2}.line-items{margin-top:12px}.line-row{display:grid;grid-template-columns:2fr .7fr 1fr auto;gap:8px;margin:6px 0}.muted{color:var(--muted)}.right{text-align:right}.mono{font-family:ui-monospace,Consolas,monospace}.toast{position:fixed;right:18px;bottom:18px;background:#10253f;color:white;padding:11px 14px;border-radius:10px;z-index:40;box-shadow:0 10px 30px #0003}.empty{padding:25px;text-align:center;color:var(--muted)}.source-a{border-left:4px solid #7a4be8}.source-b{border-left:4px solid #1186b8}@media(max-width:900px){.shell{grid-template-columns:1fr}.sidebar{height:auto;position:relative;display:flex;gap:4px;overflow:auto}.side-brand{display:none}.navbtn{white-space:nowrap;width:auto}.cards{grid-template-columns:repeat(2,1fr)}.grid3{grid-template-columns:1fr 1fr}}@media(max-width:600px){.content{padding:12px}.cards{grid-template-columns:1fr 1fr}.grid2,.grid3{grid-template-columns:1fr}.span2{grid-column:auto}.line-row{grid-template-columns:1fr 80px}.line-row>*:nth-child(3){grid-column:1}.topbar{padding:0 12px}}
.modal.wide-modal{width:min(1180px,98vw)}.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:8px 12px}.span3{grid-column:span 3}.span4{grid-column:span 4}.partner-section{border:1px solid var(--line);border-radius:12px;padding:12px 14px;margin-top:12px;background:#fbfdff}.partner-section h4{margin:0 0 6px;color:#173d6e}.section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.partner-subrow{background:white;border:1px solid #e4eaf2;border-radius:10px;padding:10px;margin:8px 0}.role-box{display:flex;gap:20px;flex-wrap:wrap;padding:8px 0}.checks{display:flex;align-items:center;justify-content:space-between;gap:8px}.checks label{font-weight:600}@media(max-width:1000px){.grid4{grid-template-columns:repeat(2,1fr)}.span3,.span4{grid-column:span 2}}@media(max-width:620px){.grid4{grid-template-columns:1fr}.span3,.span4{grid-column:auto}}
.address-tools{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:8px;margin-bottom:8px;align-items:center}.field small{font-size:11px;line-height:1.35}@media(max-width:620px){.address-tools{grid-template-columns:1fr}}

.contact-mini{margin-top:6px;padding:10px 12px;border:1px dashed var(--line);border-radius:10px;background:#f8fbff}.contact-mini-title{font-weight:800;color:#173d6e;margin-bottom:2px}

/* REV139 - Compact Customer Master form */
.modal.wide-modal{width:min(1280px,98vw);max-height:96vh;padding:14px 16px}
.modal-head{margin-bottom:4px}
.partner-section{padding:9px 12px;margin-top:8px;border-radius:10px}
.partner-section h4{margin:0 0 4px}
.partner-subrow{padding:8px;margin:6px 0}
.grid4{gap:4px 10px}
.grid2{gap:4px 10px}
.field{gap:3px;margin:5px 0}
.field label{font-size:12px;line-height:1.2}
.field small{font-size:10px;line-height:1.2}
.input,.select,.textarea{padding:7px 10px;border-radius:8px;min-height:34px}
.textarea{min-height:50px}
.section-head{min-height:32px}
.address-tools{gap:6px;margin-bottom:4px}
.contact-mini{margin-top:3px;padding-top:7px;border-top:1px dashed #dbe3ee}
.contact-mini-title{font-size:12px;font-weight:800;color:#173d6e;margin-bottom:2px}
.checks.role-checks{justify-content:flex-start;gap:26px;flex-wrap:wrap;padding:2px 0}
.checks.role-checks label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.checks.role-checks input{margin:0}
.partner-section>.muted,.partner-section p.muted{margin:2px 0 5px;font-size:11px;line-height:1.25}
.modal .btn.small{padding:5px 9px}
@media(max-width:1000px){.modal.wide-modal{width:min(1120px,98vw)}.checks.role-checks{gap:18px}}

/* REV140 - Compact input typography for Customer Master */
.modal.wide-modal .input,
.modal.wide-modal .select,
.modal.wide-modal .textarea,
.modal.wide-modal input,
.modal.wide-modal select,
.modal.wide-modal textarea{font-size:12px;line-height:1.25}
.modal.wide-modal input::placeholder,
.modal.wide-modal textarea::placeholder{font-size:12px}
/* REV146 customer list pagination */
.compact-inline{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12px}
.compact-select{width:auto;min-width:74px;height:36px;padding:4px 26px 4px 10px;font-size:12px}
.pager{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 2px 0;font-size:12px}
.pager button:disabled{opacity:.45;cursor:not-allowed}

/* REV147 numbered customer pagination */
.pager{flex-wrap:wrap;gap:6px}
.pager-page{min-width:32px;padding-left:8px;padding-right:8px}
.pager-page.active{background:var(--blue);color:#fff;box-shadow:0 2px 6px #1e63d633}
.pager-nav{min-width:32px}
.pager-ellipsis{padding:0 3px;color:var(--muted);font-weight:700}
.pager-total{margin-left:6px;color:var(--muted);white-space:nowrap}

/* REV148 customer search + top/bottom pagination + auto code */
.customer-page-head{align-items:flex-start;gap:12px}
.customer-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px;max-width:920px}
.customer-search{display:flex;align-items:center;gap:6px;flex:0 1 430px;min-width:300px}
.customer-search .input{width:340px;max-width:52vw}
.partner-list-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 8px;min-height:38px}
.partner-list-meta .sub{margin:0}
.pager-top{padding:0;justify-content:flex-end}
.auto-code{background:#f3f6fa;color:#64748b;cursor:not-allowed}
@media(max-width:900px){.customer-toolbar{justify-content:flex-start;max-width:none}.customer-search{flex:1 1 100%}.customer-search .input{width:min(420px,70vw);max-width:none}.partner-list-meta{align-items:flex-start;flex-direction:column}.pager-top{justify-content:flex-start}}

/* REV151 customer toolbar: all controls on one row, right aligned */
.customer-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.customer-toolbar{display:flex;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:8px;max-width:none;margin-left:auto;white-space:nowrap}
.customer-search{display:flex;align-items:center;gap:6px;flex:0 0 auto;min-width:0}
.customer-search .input{width:360px;max-width:none}
.customer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:nowrap;white-space:nowrap}
@media(max-width:1200px){.customer-page-head{align-items:flex-start;flex-direction:column}.customer-toolbar{width:100%;overflow-x:auto;justify-content:flex-end}.customer-search .input{width:320px}}

/* REV152: search stays on first row; customer action buttons on second row */
.customer-page-head{align-items:flex-start}
.customer-toolbar{display:flex;flex-direction:column;align-items:flex-end;gap:8px;margin-left:auto;white-space:nowrap}
.customer-search-row{display:flex;align-items:center;justify-content:flex-end;gap:12px;width:100%}
.customer-search{display:flex;align-items:center;gap:6px}
.customer-search .input{width:360px;max-width:none}
.customer-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%;white-space:nowrap}
@media(max-width:900px){.customer-toolbar{width:100%;align-items:stretch}.customer-search-row{justify-content:flex-start;flex-wrap:wrap}.customer-actions{justify-content:flex-end;overflow-x:auto}.customer-search .input{width:min(360px,65vw)}}

/* REV153 Product Master */
.product-page-head{align-items:flex-start}.product-toolbar{align-items:center;justify-content:flex-end}.product-search{width:320px}.product-section{border:1px solid var(--line);border-radius:12px;background:#fbfdff;padding:10px 12px;margin-top:9px}.product-section h4{margin:0 0 5px;color:#173d6e;font-size:14px}.product-checks{display:flex;gap:18px;flex-wrap:wrap;margin-top:6px;padding:7px 4px;border-top:1px solid #e8edf4}.product-checks label{font-size:12px;font-weight:700;white-space:nowrap}.product-modal .field{margin:4px 0}.product-modal .textarea.compact-textarea{min-height:48px}.product-modal .modal-head{position:sticky;top:-14px;background:white;z-index:4;padding:6px 0 8px;border-bottom:1px solid #edf1f6}@media(max-width:1000px){.product-page-head{flex-direction:column}.product-toolbar{width:100%;justify-content:flex-start}.product-search{width:min(420px,70vw)}}
/* REV154 */
.spec-help{font-size:12px;color:#52657b;background:#f3f7fc;border:1px solid #dce7f3;border-radius:8px;padding:7px 10px;margin:6px 0}.quote-spec-row{border:1px solid #e1e8f0;border-radius:9px;padding:7px;margin:6px 0;background:#fff}.quote-main-row{display:grid;grid-template-columns:2fr .55fr .75fr .9fr auto auto;gap:6px;align-items:center}.quote-spec-row>.lDesc{margin-top:5px}@media(max-width:1000px){.quote-main-row{grid-template-columns:1fr 1fr}}

/* REV155 Product form hierarchy */
.product-classification{background:#f6f9fd;border-color:#cfdaea}
.product-classification .grid4{grid-template-columns:1.15fr 1fr 1fr .8fr}
.product-control .product-checks.no-top-border{border-top:0;margin-top:0;padding-top:3px}
.product-modal .product-section{padding:9px 12px;margin-top:7px}
.product-modal .grid4{gap:4px 10px}
.product-modal .field{margin:3px 0}
.product-modal .input,.product-modal .select,.product-modal .textarea{font-size:12px;min-height:32px;padding:6px 9px}
@media(max-width:1000px){.product-classification .grid4{grid-template-columns:repeat(2,1fr)}}
/* REV156 compact Product Master */
.product-modal{width:min(1220px,96vw);max-height:94vh}
.product-modal .product-section{padding:7px 10px;margin-top:6px}
.product-modal .section-head{margin-bottom:4px}
.product-modal .section-head h4{font-size:14px;margin:0}
.product-modal .field{margin:2px 0}
.product-modal .field label{font-size:12px;margin-bottom:3px}
.product-modal .input,.product-modal .select,.product-modal .textarea{font-size:12px;min-height:30px;padding:5px 8px}
.product-modal .compact-textarea{min-height:46px;max-height:64px}
.product-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:3px 8px;align-items:end}
.product-grid .span2{grid-column:span 2}
.classify-grid{grid-template-columns:220px 220px}
.product-main-grid .span2{grid-column:span 2}
.transformer-grid{grid-template-columns:repeat(7,minmax(110px,1fr))}
.note-grid{margin-top:5px;grid-template-columns:repeat(4,minmax(0,1fr))}
.product-control .product-checks{padding:2px 0 4px;gap:12px}
@media(max-width:1100px){.product-grid,.transformer-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.classify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.product-grid,.transformer-grid,.classify-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.product-grid .span2{grid-column:span 2}}
/* REV158 Product list tools / pagination */
.product-page-head{align-items:flex-start;gap:14px}
.product-toolbar-wrap{margin-left:auto;display:flex;flex-direction:column;gap:7px;align-items:flex-end;min-width:min(760px,68vw)}
.product-search-row,.product-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.product-search-box{display:flex;gap:8px;align-items:center}
.product-search{width:340px}
.product-actions .btn{white-space:nowrap}
@media(max-width:1050px){.product-page-head{flex-direction:column}.product-toolbar-wrap{width:100%;min-width:0;align-items:stretch}.product-search-row,.product-actions{justify-content:flex-start}.product-search{width:min(420px,65vw)}}

/* REV161 editable Product dropdown masters */
.managed-select{display:flex;align-items:center;gap:5px}.managed-select .select{flex:1;min-width:0}.lookup-manage-btn{height:30px;padding:4px 8px;white-space:nowrap;font-size:11px}.lookup-manager-modal{width:min(720px,94vw);max-height:86vh;overflow:auto}.lookup-add-row{display:grid;grid-template-columns:1fr auto;gap:8px;margin:12px 0}.lookup-list{display:flex;flex-direction:column;gap:6px}.lookup-row{display:grid;grid-template-columns:1fr 1fr auto auto;gap:6px;align-items:center}.lookup-row .input{min-width:0}@media(max-width:700px){.lookup-row{grid-template-columns:1fr 1fr}.lookup-row .btn{width:100%}}

/* REV167: Hz uses editable text + dropdown list; no numeric spinner */
#trFreq::-webkit-outer-spin-button,
#trFreq::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
#trFreq { appearance: auto; }


/* REV170: Product Master numeric fields are typed directly; hide browser +/- spinner controls. */
.product-modal input[type="number"]::-webkit-outer-spin-button,
.product-modal input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}
.product-modal input[type="number"] {
  -moz-appearance: textfield;
  appearance: textfield;
}
/* REV171 - Quotation: compact Today-inspired flow using SEC Customer/Product masters */
.quotation-modal{max-width:1380px;width:96vw}.quotation-modal .modal-body{max-height:78vh;overflow:auto}
.quote-form .product-section{margin-bottom:10px}.compact-textarea{min-height:58px}.quote-line-head{display:grid;grid-template-columns:minmax(260px,2.4fr) 90px 90px 120px 100px 110px 130px;gap:8px;padding:0 4px 5px;font-size:12px;font-weight:700;color:#475569}.quote-main-row{display:grid;grid-template-columns:minmax(260px,2.4fr) 90px 90px 120px 100px 110px 58px 52px;gap:8px;align-items:center}.quote-spec-row{padding:8px 0;border-bottom:1px solid #e2e8f0}.quote-line-total{text-align:right;font-weight:700}.quote-summary{padding:8px 14px;border:1px solid #dbe4ef;border-radius:12px;background:#f8fafc}.quote-summary>div{display:flex;justify-content:space-between;gap:20px;padding:5px 0}.quote-summary .grand{border-top:1px solid #cbd5e1;margin-top:4px;padding-top:9px;font-size:17px}.quote-vat{width:44px;border:1px solid #cbd5e1;border-radius:6px;padding:2px 4px;text-align:center}.quotation-modal input[inputmode="decimal"],.quotation-modal input[inputmode="numeric"]{-moz-appearance:textfield}.quotation-modal input[inputmode="decimal"]::-webkit-inner-spin-button,.quotation-modal input[inputmode="decimal"]::-webkit-outer-spin-button,.quotation-modal input[inputmode="numeric"]::-webkit-inner-spin-button,.quotation-modal input[inputmode="numeric"]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media(max-width:1000px){.quote-line-head{display:none}.quote-main-row{grid-template-columns:2fr 80px 80px 100px}.quote-main-row>*{min-width:0}}


/* REV172: searchable Customer/Product master selectors in Quotation */
.quotation-modal input[list] { width:100%; }


/* REV173: structured Quotation line for reporting: Product ID + code + name stay on one row. */
.quotation-modal .quote-line-head-v2,
.quotation-modal .quote-main-row-v2{
  grid-template-columns:minmax(125px,1.05fr) minmax(230px,2.1fr) 82px 90px 115px 105px 105px 145px;
  gap:8px;
  align-items:center;
}
.quotation-modal .quote-line-actions{display:flex;gap:6px;justify-content:flex-end}
.quotation-modal .quote-main-row-v2 .lProductCode,
.quotation-modal .quote-main-row-v2 .lProductName{min-width:0}


/* REV174: searchable sales selectors + faster quotation opening */
.sales-autocomplete-wrap,.sales-ac-cell{position:relative;min-width:0}
.sales-autocomplete-list{
  position:absolute;left:0;right:0;top:calc(100% + 3px);z-index:10050;
  max-height:260px;overflow:auto;background:#fff;border:1px solid #cbd7e6;
  border-radius:9px;box-shadow:0 10px 26px rgba(16,42,67,.16);padding:4px;
}
.sales-autocomplete-item{
  display:block;width:100%;border:0;background:#fff;text-align:left;padding:8px 10px;
  border-radius:6px;cursor:pointer;font:inherit;color:inherit;
}
.sales-autocomplete-item:hover,.sales-autocomplete-item:focus{background:#eef5ff;outline:none}
.sales-loading{padding:28px;text-align:center;color:#60758f}
.quotation-modal .quote-main-row-v2{overflow:visible}
.quotation-modal .quote-spec-row{overflow:visible}


/* REV175: compact expanded quotation header */
.quotation-modal .product-section .grid4{align-items:end}

/* REV176: compact quotation form based on useful Today field layout */
.quotation-modal .quote-form{font-size:13px}
.quotation-modal .product-section{padding:10px 12px;margin-bottom:8px}
.quotation-modal .section-head{margin-bottom:7px}
.quotation-modal .field{gap:3px}
.quotation-modal .field label{font-size:12px}
.quotation-modal .input,.quotation-modal .select{min-height:34px;padding:5px 9px}
.quotation-modal .grid4{gap:7px 10px}
.quotation-modal .salesperson-field{min-width:0}
.quotation-modal .salesperson-pair{display:grid;grid-template-columns:92px minmax(145px,1fr);gap:6px}
.quotation-modal .compact-textarea{min-height:48px}
@media(min-width:1200px){
 .quotation-modal .grid4{grid-template-columns:1.15fr .9fr 1fr 1fr}
}

/* REV177: quotation header arranged in Today-style logical rows, not equal-width boxes */
.quotation-modal .quote-header-today{
 display:grid;
 grid-template-columns:1.45fr 1.05fr 1.25fr 1.25fr;
 grid-template-areas:
   "salesgroup date docgroup no"
   "salesperson salesperson ref valid"
   "work customertype channel .";
 gap:7px 12px;align-items:end;
}
.quotation-modal .qh-sales-group{grid-area:salesgroup}
.quotation-modal .qh-date{grid-area:date}
.quotation-modal .qh-docgroup{grid-area:docgroup}
.quotation-modal .qh-no{grid-area:no}
.quotation-modal .qh-salesperson{grid-area:salesperson}
.quotation-modal .qh-ref{grid-area:ref}
.quotation-modal .qh-valid{grid-area:valid}
.quotation-modal .qh-work{grid-area:work;max-width:230px}
.quotation-modal .qh-customer-type{grid-area:customertype;max-width:230px}
.quotation-modal .qh-channel{grid-area:channel;max-width:260px}
.quotation-modal .qh-salesperson .salesperson-pair{grid-template-columns:100px minmax(210px,1fr)}
.quotation-modal .quote-header-section{padding-bottom:9px}
@media(max-width:1050px){
 .quotation-modal .quote-header-today{
  grid-template-columns:1fr 1fr;
  grid-template-areas:"salesgroup date" "docgroup no" "salesperson salesperson" "ref valid" "work customertype" "channel channel";
 }
}


/* REV178: restore visible combo/dropdown control without changing REV177 layout */
.quotation-modal .sales-autocomplete-wrap,
.quotation-modal .sales-ac-cell{position:relative}
.quotation-modal .sales-combo-input{padding-right:34px!important}
.quotation-modal .sales-autocomplete-arrow{
 position:absolute;right:4px;top:50%;transform:translateY(-50%);
 width:28px;height:28px;border:0;border-radius:6px;background:transparent;
 cursor:pointer;font-size:16px;line-height:1;color:#172b4d;z-index:3
}
.quotation-modal .field.sales-autocomplete-wrap>.sales-autocomplete-arrow{
 top:auto;bottom:3px;transform:none
}
.quotation-modal .sales-autocomplete-arrow:hover{background:#eef3f8}
.quotation-modal .sales-autocomplete-list{z-index:12000}


/* REV180: quotation list only */
.quote-list-table th,.quote-list-table td{vertical-align:middle}
.quote-list-table th:nth-last-child(-n+2),
.quote-list-table td:nth-last-child(-n+2){text-align:center;white-space:nowrap}

/* REV181: quotation delete only in edit form */
.quotation-modal .quote-edit-delete-row{display:flex;justify-content:flex-start;padding:0 6px 8px}


/* REV182: Today-style quotation item lines */
.quote-list-table .quote-items-cell{white-space:normal;line-height:1.35}
.quote-list-table .quote-items-cell>div+div{margin-top:2px}


/* REV183: audit trail shown only in quotation edit form */
.quotation-modal .quote-audit-bar{
 display:flex;flex-wrap:wrap;gap:7px 18px;
 margin:4px 6px 8px;padding:8px 10px;
 border:1px solid #d6dee9;border-radius:7px;background:#f7f9fc;
 font-size:12px;line-height:1.35;color:#26384a;
}
.quotation-modal .quote-audit-bar>div{white-space:nowrap}
.quotation-modal .quote-audit-bar b{margin-right:4px}

/* REV184: login self-registration */
.login-actions{display:flex;gap:8px;margin-top:10px}
.login-actions .btn{flex:1}
.login-message{margin-top:10px;padding:9px 10px;border-radius:8px;font-size:13px}
.login-message.success{background:#eaf7ee;color:#176638;border:1px solid #b9e1c5}
.login-message.error{background:#fff0f0;color:#a32323;border:1px solid #f0c4c4}
/* REV184: quote print/delete action row */
.quotation-modal .quote-edit-delete-row{display:flex;align-items:center;gap:8px}
.quotation-modal .quote-action-spacer{flex:1}

/* REV185: admin user approval */
.user-status-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}
.user-status-tabs .btn.active{background:#1f66d8;color:#fff;border-color:#1f66d8}
.admin-users-table .user-action-cell{white-space:nowrap}
.admin-users-table .user-action-cell .btn+.btn{margin-left:5px}

/* REV186: Today-style sales print toolbar at top of edit form */
.quotation-modal .quote-print-toolbar{
 display:flex;gap:6px;flex-wrap:wrap;align-items:center;
 margin:0 0 8px;padding:6px 8px;border:1px solid #cbd7e6;border-radius:8px;
 background:#eef4fb;position:sticky;top:0;z-index:15;
}
.quotation-modal .quote-print-toolbar .btn{min-height:32px;padding:5px 10px;font-size:12px;white-space:nowrap}

/* REV188: admin users visible load/error state */
.user-load-error{padding:16px;border:1px solid #efc1c1;border-radius:8px;background:#fff5f5;color:#9b1c1c;line-height:1.5}
.user-load-error .btn{margin-top:8px}

/* REV188 — one sales form for Sale/Rental/Repair + order confirmation */
.quotation-modal .quote-header-today{
 grid-template-columns:1.35fr 1fr 1.15fr 1.15fr;
 grid-template-areas:
   "salesgroup date docgroup no"
   "salesperson salesperson ref valid"
   "transaction work customertype channel";
}
.quotation-modal .qh-transaction{grid-area:transaction;max-width:230px}
.quotation-modal .quote-line-head-v2,
.quotation-modal .quote-main-row-v2{
 grid-template-columns:minmax(120px,1fr) minmax(210px,1.8fr) 92px 72px 82px 105px 92px 98px 150px;
 gap:6px;align-items:center;
}
.quotation-modal .quote-order-strip{display:flex;align-items:center;gap:10px;justify-content:space-between;margin:0 0 8px;padding:7px 10px;border:1px solid #cbd7e6;border-radius:8px;background:#fff}
.quotation-modal .order-chip{display:inline-block;margin:1px 4px 1px 0;padding:3px 7px;border-radius:999px;background:#eaf2ff;color:#154c9f;font-size:12px}
.quotation-modal .compact-panel{padding:8px 10px;margin-top:8px}
@media(max-width:1200px){.quotation-modal .quote-main-row-v2,.quotation-modal .quote-line-head-v2{grid-template-columns:minmax(110px,1fr) minmax(180px,1.5fr) 85px 68px 78px 95px 85px 90px 135px}}

/* REV189: rental fleet register */
.compact-select{min-width:150px;min-height:34px;padding:5px 8px}
.rental-summary{display:flex;gap:18px;flex-wrap:wrap;align-items:center;margin-bottom:8px}
.rental-summary span{color:#60758f}
.rental-asset-form .field{min-width:0}
.rental-history{margin-top:7px;max-height:150px;overflow:auto;border-top:1px solid #e0e7f0}
.rental-history>div{padding:7px 2px;border-bottom:1px solid #e8edf4;font-size:12px;line-height:1.35}
.rental-history span{color:#60758f}

/* REV190: distinct rental/repair sales detail */
.field-hint{font-size:11px;color:#64748b;margin-top:4px}.rental-selected-info{background:#eef6ff;border:1px solid #cfe1f5;border-radius:8px;padding:9px 11px;color:#183b66}.repair-box-title{display:flex;gap:10px;align-items:center;background:#fff7ed;border:1px solid #fed7aa;border-radius:8px;padding:8px 10px}.repair-box-title span{font-size:12px;color:#7c4a16}.quote-line-actions{display:flex;gap:4px;align-items:center}.quote-line-actions .lSpec{white-space:nowrap}

/* REV191: transaction-specific quotation UI is visible without opening Spec modal */
.quotation-modal .transaction-guide{border:1px solid #c9d8ea;background:#f5f9ff;border-radius:8px;padding:8px 10px;margin-bottom:8px;font-size:12px;color:#294765}
.quotation-modal .process-inline-panel{margin:6px 0 3px;padding:9px 10px;border:1px solid #cfdbea;border-radius:9px;background:#f8fbff}
.quotation-modal .process-inline-panel.hidden{display:none}
.quotation-modal .process-panel-title{display:flex;gap:10px;align-items:baseline;margin-bottom:7px;color:#174b82}.quotation-modal .process-panel-title.repair{color:#7a4315}.quotation-modal .process-panel-title span{font-size:11px;color:#66788c}
.quotation-modal .process-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px 9px}.quotation-modal .process-grid .span2{grid-column:span 2}.quotation-modal .asset-stock-note{align-self:end;padding:7px 9px;border-radius:7px;background:#eaf6ed;color:#25613a;font-size:11px}
.quotation-modal .repair-inline-grid{background:#fffaf3;padding:7px;border-radius:7px}.quotation-modal .rental-inline-grid{background:#f4faff;padding:7px;border-radius:7px}
.quotation-modal .quote-spec-row{padding-bottom:4px;border-bottom:1px dashed #d8e1ec}.quotation-modal .quote-spec-row:last-child{border-bottom:0}
@media(max-width:1100px){.quotation-modal .process-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* REV192: sales list transaction filter + clearer rental registry entry */
.sales-list-tools{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.sales-list-tools .quote-search{width:260px;min-height:38px}.sales-list-tools .compact-select{width:160px}
.quote-list-table .line-type{display:inline-block;font-size:10px;font-weight:700;padding:1px 5px;border-radius:10px;background:#eef3f8;margin-right:3px}
.asset-stock-note{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.asset-stock-note .btn{margin-left:auto}

/* REV196 Production Control */
.production-toolbar{gap:6px;flex-wrap:wrap}
.production-toolbar .compact-select{min-width:150px}
.production-search{min-width:300px}
.production-help{margin-bottom:10px}
.production-jobs-table,.production-units-table{font-size:12px}
.production-jobs-table th,.production-jobs-table td,
.production-units-table th,.production-units-table td{vertical-align:middle}
.production-jobs-table .c,.production-units-table .c{text-align:center}
.production-product-summary{white-space:pre-line;min-width:220px;line-height:1.35}
.production-units-table td:nth-child(4){min-width:180px}
.production-unit-form{align-items:end}
@media(max-width:1150px){.production-search{min-width:220px}.production-jobs-table{font-size:11px}}

/* REV197 QS115 Read-only bridge */
.qs115-search{min-width:290px}
.qs115-panel{margin-bottom:10px}
.qs115-table{font-size:12px}
.qs115-table th,.qs115-table td{vertical-align:middle}
.qs115-table .c{text-align:center}
.qs-item-summary{white-space:pre-line;line-height:1.35;min-width:180px}
.compact-head{margin-bottom:6px}

/* REV198 Unified Production Intake */
.intake-source-panel{margin-bottom:12px}
.intake-source-title{font-weight:700;margin-bottom:7px}
.intake-source-tabs{display:flex;gap:7px;margin-bottom:10px}
.intake-source-body{border-top:1px solid var(--line,#ddd);padding-top:10px}
.intake-search-row{display:flex;gap:7px;margin-top:8px;max-width:700px}
.intake-search-row .input{flex:1}
.po-found-card{margin-top:10px;border:1px solid var(--line,#ddd);border-radius:8px;padding:10px}
.po-found-head{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px}
.po-customer-map{margin-bottom:8px}
.mapping-note{margin:6px 0 8px}
.po-map-table{font-size:12px}
.po-map-table th,.po-map-table td{vertical-align:middle}
.po-map-table td:nth-child(2){min-width:260px}
.po-map-table td:last-child{min-width:300px}
.po-import-actions{display:flex;justify-content:flex-end;margin-top:8px}
.intake-center-table,.intake-mini-table{font-size:12px}
.intake-center-table .c,.intake-mini-table .c{text-align:center}
.error-text{color:#a00}
@media(max-width:900px){.intake-source-tabs,.intake-search-row{flex-wrap:wrap}.intake-search-row .input{min-width:100%}}

/* REV199 compact Production Intake / Today-inspired edit form */
.intake-page{padding-top:4px}
.intake-page-head{margin-bottom:6px;align-items:center}
.intake-page-head h2{margin-bottom:1px}
.intake-quick-panel{padding:8px 10px;margin-bottom:8px}
.intake-quick-top{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.compact-tabs{display:flex;gap:5px;margin:0}
.intake-source-inline{display:flex;align-items:center;gap:5px;flex:1;min-width:360px}
.intake-source-inline .input{max-width:360px;height:36px}
.intake-source-inline .btn{height:36px}
.compact-po-card{margin-top:7px;padding:8px}
.compact-po-map{display:grid;grid-template-columns:105px minmax(300px,1fr);align-items:center;gap:6px;margin:5px 0}
.compact-po-map label{font-weight:700;font-size:12px}
.po-map-table td:nth-child(2){min-width:300px}
.po-map-table td:last-child{min-width:300px}
.po-import-actions{display:flex;justify-content:space-between;align-items:center}
.intake-list-panel{padding:9px 10px}
.intake-list-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.intake-list-toolbar h3{margin:0 0 1px}
.intake-list-search{width:300px}
.intake-center-table{font-size:12px}
.intake-center-table th,.intake-center-table td{padding:7px 8px;vertical-align:middle}
.intake-item-summary{white-space:pre-line;line-height:1.3;min-width:150px}
.intake-action-cell{white-space:nowrap}
.compact-source-note,.compact-loading,.compact-error{padding:6px 8px;margin-top:6px;border-radius:6px;background:#f6f8fb}
.compact-error{color:#a00;background:#fff3f3}

.intake-modal{width:min(1280px,96vw);max-height:94vh;overflow:auto}
.intake-modal .modal-head{position:sticky;top:0;background:white;z-index:5;padding-bottom:6px}
.intake-edit-form{display:flex;flex-direction:column;gap:7px}
.intake-form-section{border:1px solid #d9e2ee;border-radius:8px;padding:8px 10px;background:#fff}
.intake-form-section h4{margin:0 0 6px;color:#0e3766;font-size:14px}
.compact-grid{gap:6px 8px}
.compact-grid .field label{font-size:11px;margin-bottom:2px}
.compact-grid .input,.compact-grid .select{min-height:34px;height:34px;font-size:12px}
.section-title-row{display:flex;align-items:center;justify-content:space-between;gap:10px}
.intake-edit-items{display:flex;flex-direction:column;gap:6px}
.intake-edit-item{border:1px solid #e2e8f0;border-radius:7px;padding:6px;background:#fafcff}
.intake-edit-item-main{display:grid;grid-template-columns:28px minmax(260px,1fr) 115px 145px;gap:6px;align-items:end}
.item-no{font-weight:700;text-align:center;padding-bottom:8px}
.item-name{padding-bottom:7px}
.field.mini label{font-size:10px;margin-bottom:1px}
.field.mini .input{height:32px;min-height:32px}
.intake-spec-strip{display:grid;grid-template-columns:repeat(7,minmax(80px,1fr));gap:4px;margin-top:5px}
.intake-spec-strip>div{border:1px solid #dce5ef;border-radius:5px;padding:3px 5px;background:white}
.intake-spec-strip span{display:block;color:#64748b;font-size:9px}
.intake-spec-strip b{font-size:11px}
.source-snapshot{font-size:10px;color:#64748b;margin-top:4px;white-space:normal}
.intake-audit-strip{display:flex;gap:20px;flex-wrap:wrap;font-size:11px;background:#f7f9fc}
.intake-modal .right{position:sticky;bottom:0;background:white;padding:8px 0 2px;z-index:5}
.intake-delete-btn{float:left;margin-right:auto}
@media(max-width:1000px){
 .intake-list-toolbar{align-items:flex-start;flex-direction:column}
 .intake-list-search{width:min(100%,420px)}
 .intake-edit-item-main{grid-template-columns:28px 1fr 100px 130px}
 .intake-spec-strip{grid-template-columns:repeat(4,1fr)}
}

/* REV205: PO customer commercial review only */
.commercial-review{font-size:11px}.commercial-review th,.commercial-review td{padding:5px;vertical-align:middle}
.commercial-review .input,.commercial-review .select{height:32px;min-height:32px;font-size:11px}
.commercial-review .poAdjust{width:75px}.commercial-review .poSecPrice{width:115px}.commercial-review .num{text-align:right;white-space:nowrap}
.commercial-summary{display:flex;align-items:center;gap:18px;flex-wrap:wrap;padding:7px 2px;font-size:12px}
.commercial-summary label{display:flex;align-items:center;gap:6px;flex:1;min-width:350px}.commercial-summary .input{flex:1}

/* REV209 - PO customer UAT input + commercial visibility */
.uat-po-form{display:flex;flex-direction:column;gap:8px}
.uat-note{padding:7px 9px;border:1px solid #d8e2ef;border-radius:7px;background:#f7faff;font-size:12px}
.uat-generated-preview{padding:7px 9px;border-radius:6px;background:#eef5ff;font-size:13px}
.uat-items-head{display:flex;justify-content:space-between;align-items:center;margin-top:2px}
.uat-po-columns,.uat-po-item-row{display:grid;grid-template-columns:60px 145px minmax(280px,1fr) 90px 90px 135px 52px;gap:5px;align-items:center}
.uat-po-columns{font-size:10px;font-weight:700;color:#52657a;padding:0 2px}
.uat-po-item-row{margin-bottom:5px}
.uat-po-item-row .input{height:32px;min-height:32px;font-size:11px}
.uat-po-modal{width:min(1250px,96vw)}
.intake-price-strip{display:grid;grid-template-columns:repeat(5,minmax(110px,1fr));gap:5px;margin-top:5px}
.intake-price-strip>div{border:1px solid #dce5ef;border-radius:5px;padding:4px 6px;background:#fffdf5}
.intake-price-strip span{display:block;color:#64748b;font-size:9px}
.intake-price-strip b{font-size:11px}
@media(max-width:1000px){.uat-po-columns{display:none}.uat-po-item-row{grid-template-columns:1fr 1fr}.intake-price-strip{grid-template-columns:repeat(2,1fr)}}

/* REV210 - source customer + visible unit planning rows */
.source-customer-row{grid-template-columns:135px 1fr}
.source-customer-value{min-height:34px;display:flex;align-items:center;padding:0 10px;border:1px solid #d9e2ee;border-radius:7px;background:#f8fafc;font-size:12px}
.price-missing{background:#fff7ed}.price-warn{font-size:9px;color:#b45309;margin-top:2px}
.production-unit-main-table{font-size:11px}
.production-unit-main-table th,.production-unit-main-table td{padding:6px 7px;vertical-align:middle}
.production-unit-main-table td:nth-child(6){min-width:180px}

/* REV211 — SYSTEM-WIDE COMPACT UI ONLY
   Presentation/layout changes only. No workflow, calculations, auth, DB, numbering or business logic changes. */
:root{--ui-font:13px;--ui-small:11px;--ui-control-h:32px}
body{font-size:var(--ui-font)}
.content{padding:10px 12px}
.topbar{height:52px;padding:0 14px}
.topbar .sub{font-size:11px}
.sidebar{padding:12px 8px}
.side-brand{padding:3px 8px 10px;font-size:20px}
.navbtn{padding:7px 9px;margin:1px 0;border-radius:7px;font-size:13px;line-height:1.25}

/* Page title is already shown in top bar: remove duplicate page headings/subtitles. */
.page>.page-head{min-height:0;margin:0 0 6px;justify-content:flex-end;gap:6px}
.page>.page-head>h2,
.page>.page-head>div:first-child>h2,
.page>.page-head>div:first-child>.sub{display:none}
.page>.page-head>div:first-child:has(h2){display:none}
.page>.page-head .toolbar{margin-left:auto}
.intake-page>.intake-page-head{margin:0 0 5px}
.intake-page>.intake-page-head>div{display:none}

/* Controls: readable but space-efficient. */
.btn{min-height:var(--ui-control-h);padding:5px 10px;border-radius:8px;font-size:12px;line-height:1.2}
.btn.small{min-height:28px;padding:4px 8px;font-size:11px}
.input,.select,.textarea{min-height:var(--ui-control-h);padding:5px 8px;border-radius:7px;font-size:12px;line-height:1.25}
.select,.compact-select{height:var(--ui-control-h);min-height:var(--ui-control-h);min-width:110px;padding:4px 26px 4px 8px}
.textarea{min-height:48px}
.toolbar{gap:5px;align-items:center;flex-wrap:nowrap}
.field{gap:2px;margin:4px 0}
.field label{font-size:11px;line-height:1.15}
.field small,.sub{font-size:11px;line-height:1.25}

/* Cards/panels/forms use less vertical space. */
.panel{padding:8px 9px;margin-top:7px;border-radius:9px}
.card{padding:10px;border-radius:9px}
.cards{gap:7px}
.kpi .value{font-size:21px;margin-top:2px}
.partner-section{padding:7px 9px;margin-top:6px}
.partner-subrow{padding:6px;margin:4px 0}
.grid2,.grid3,.grid4{gap:4px 8px}
.modal-back{padding:10px}
.modal{width:min(980px,98vw);max-height:96vh;padding:11px 12px;border-radius:11px}
.modal.wide-modal,.intake-modal,.uat-po-modal{width:min(1380px,98vw);max-height:96vh;padding:10px 12px}
.modal-head{min-height:30px;margin-bottom:3px}
.modal-head h3{font-size:17px}
.modal .right{padding-top:5px}

/* Tables: maximize visible rows and keep normal business data on one line. */
.table-wrap{border-radius:7px}
table{min-width:0;table-layout:auto}
th,td{padding:5px 6px;font-size:11px;line-height:1.2;vertical-align:middle}
th{font-size:10.5px}
td{white-space:nowrap}
th{white-space:nowrap}
tr:hover td{background:#fbfdff}
.badge{padding:2px 6px;font-size:10px}
.empty{padding:14px}
.mono{white-space:nowrap}

/* Long descriptive columns may truncate instead of making every row taller. */
.quote-list-table .quote-items-cell,
.qs-item-summary,
.intake-item-summary,
.production-product-summary{white-space:nowrap;line-height:1.2;max-width:340px;overflow:hidden;text-overflow:ellipsis;min-width:0}
.production-jobs-table,.production-units-table,.production-unit-main-table,.intake-center-table,.intake-mini-table,.qs115-table{font-size:11px}
.production-jobs-table th,.production-jobs-table td,
.production-units-table th,.production-units-table td,
.production-unit-main-table th,.production-unit-main-table td,
.intake-center-table th,.intake-center-table td{padding:4px 6px;line-height:1.15}
.production-unit-main-table td:nth-child(6){min-width:0}

/* List/search bars stay in a single compact row on desktop. */
.customer-page-head,.product-page-head,.intake-list-toolbar{gap:6px;margin-bottom:5px;align-items:center}
.customer-toolbar,.product-toolbar,.sales-list-tools,.production-toolbar{gap:5px;flex-wrap:nowrap}
.customer-search,.product-search-wrap{min-width:0}
.customer-search .input,.product-search,.quote-search,.sales-list-tools .quote-search,.production-search,.intake-list-search,.qs115-search{height:32px;min-height:32px;font-size:12px}
.sales-list-tools .quote-search{width:220px}
.production-search{min-width:240px}
.intake-list-search{width:260px}
.qs115-search{min-width:240px}
.partner-list-meta{min-height:28px;margin:0 0 4px}
.pager{padding-top:5px;gap:4px}

/* Intake: remove wasted space while retaining all existing controls and logic. */
.intake-page{padding-top:0}
.intake-quick-panel{padding:6px 8px;margin:0 0 6px}
.intake-quick-top{gap:5px;flex-wrap:nowrap}
.intake-source-tabs{gap:4px;margin:0;flex:none}
.intake-source-inline{gap:4px;min-width:0;flex:1}
.intake-source-inline .input{max-width:330px;height:32px}
.intake-source-inline .btn{height:32px}
.intake-list-panel{padding:6px 8px;margin-top:0}
.intake-list-toolbar{margin-bottom:4px}
.intake-list-toolbar>div:first-child h3{display:none}
.intake-list-toolbar>div:first-child .sub{display:none}
.compact-po-card,.po-found-card{padding:6px;margin-top:5px}
.po-found-head{margin-bottom:4px}
.po-map-table th,.po-map-table td{padding:4px 5px}
.commercial-review th,.commercial-review td{padding:4px}
.commercial-summary{padding:4px 2px;gap:10px}

/* Edit/input forms: compact sections and fit more fields in the first screen. */
.intake-edit-form,.uat-po-form{gap:5px}
.intake-form-section{padding:6px 8px}
.intake-form-section h4{font-size:12px;margin:0 0 4px}
.compact-grid{gap:3px 6px}
.compact-grid .input,.compact-grid .select{height:31px;min-height:31px;font-size:11.5px}
.intake-edit-items{gap:4px}
.intake-edit-item{padding:4px}
.intake-edit-item-main{gap:4px}
.item-no{padding-bottom:6px}
.item-name{padding-bottom:5px}
.field.mini .input{height:29px;min-height:29px}
.intake-spec-strip,.intake-price-strip{gap:3px;margin-top:3px}
.intake-spec-strip>div,.intake-price-strip>div{padding:2px 4px}
.intake-audit-strip{gap:12px;font-size:10px}
.uat-note,.uat-generated-preview{padding:5px 7px}
.uat-po-item-row{margin-bottom:3px}
.uat-po-item-row .input{height:30px;min-height:30px}

/* Keep responsive fallback usable; compact one-row rule is desktop-first. */
@media(max-width:1050px){
 .toolbar,.customer-toolbar,.product-toolbar,.sales-list-tools,.production-toolbar,.intake-quick-top{flex-wrap:wrap}
 table{min-width:760px}
 td{white-space:normal}
 .content{padding:9px}
}

/* REV212 — UI density pass only. No workflow/data/auth logic changes. */
@media (min-width:1051px){
  /* One-line list toolbars */
  .customer-page-head,.product-page-head{display:flex;justify-content:flex-end;align-items:center;width:100%}
  .customer-toolbar,.product-toolbar-wrap{display:flex;align-items:center;justify-content:flex-end;gap:5px;flex-wrap:nowrap;width:100%;min-width:0}
  .customer-search-row,.customer-actions,.product-search-row,.product-actions,.product-search-box{display:flex;align-items:center;gap:5px;flex-wrap:nowrap;margin:0}
  .customer-search-row,.product-search-row{min-width:0}
  .customer-search{display:flex;align-items:center;gap:5px;min-width:0}
  .customer-search .input{width:330px}
  .product-search-box .product-search{width:330px}
  .customer-actions .btn,.product-actions .btn{white-space:nowrap}
  .product-toolbar-wrap{margin-left:auto}
  .sales-list-tools{width:100%;justify-content:flex-end}
  .intake-quick-top{align-items:center}
  .intake-list-toolbar{justify-content:flex-end}
  .intake-list-toolbar>.toolbar{margin-left:auto}
}

/* One pager is enough on dense desktop lists. */
.pager-top{display:none!important}
.partner-list-meta{min-height:18px;margin:1px 0 3px}
#partnerPermissionNote{margin:0 0 3px!important;line-height:1.1}

/* Form density: clear sections, compact controls, less scrolling. */
.modal{overflow:auto}
.modal-head{padding:2px 0 5px!important;margin:0 0 4px!important}
.modal-head h3{margin:0;font-size:16px;line-height:1.2}
.modal .grid2,.modal .grid3,.modal .grid4{column-gap:8px;row-gap:2px}
.modal .field{margin:2px 0;gap:2px}
.modal .field label{font-size:11px;line-height:1.05;margin:0}
.modal .input,.modal .select{height:30px;min-height:30px;padding-top:3px;padding-bottom:3px}
.modal .textarea{min-height:42px;max-height:64px;padding-top:4px;padding-bottom:4px}
.modal .partner-section,.modal .product-section,.modal .intake-form-section{padding:6px 8px;margin-top:5px;border-radius:8px}
.modal .partner-section h4,.modal .product-section h4,.modal .intake-form-section h4{font-size:12px;margin:0 0 3px;line-height:1.15}
.modal .section-head{margin:0 0 3px;min-height:22px}
.modal .right{padding-top:4px;margin-top:2px}
.modal .right .btn{min-height:30px}
.product-modal .product-checks{gap:10px;margin-top:3px;padding:4px 2px}
.product-modal .product-checks label{font-size:11px}
.quotation-modal .product-section{margin-bottom:5px}
.quotation-modal .quote-header-today{gap:4px!important}
.quotation-modal .compact-panel{padding:5px 7px;margin-top:5px}
.quotation-modal .process-inline-panel{margin:4px 0 2px;padding:5px 7px}
.quotation-modal .process-grid{gap:3px 7px}
.quotation-modal .quote-order-strip{margin:0 0 4px;padding:4px 7px}
.quotation-modal .quote-spec-row{padding:3px 0}
.quotation-modal .transaction-guide{padding:5px 7px;margin-bottom:4px}

/* Tables: preserve one-record-per-line whenever possible. */
.table-wrap{overflow-x:auto;overflow-y:visible}
th,td{padding:4px 6px}
tbody tr{height:30px}
#partnersTable td,#productsTable td,#quotesTable td,#intakesTable td,#jobsTable td{white-space:nowrap}

/* Remove excess top whitespace before the working area. */
.page{padding-top:0}
.page>.panel:first-child{margin-top:0}
.content{padding-top:8px}

@media(max-width:1050px){
  .customer-search-row,.customer-actions,.product-search-row,.product-actions,.product-search-box{display:flex;gap:5px;flex-wrap:wrap}
}

/* REV213 - Toolbar alignment only; no workflow logic changes */

/* Customer/Product: all controls in one desktop row */
.customer-toolbar,
.product-toolbar-wrap{
  display:flex!important;
  flex-direction:row!important;
  align-items:center!important;
  justify-content:flex-end!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  min-width:0!important;
}
.customer-search-row,
.customer-actions,
.product-search-row,
.product-actions{
  display:contents!important;
}
.customer-search,
.product-search-box{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
}
#partnerSearch{width:360px!important;min-width:220px!important}
#productSearch{width:390px!important;min-width:240px!important}

/* General compact top toolbars */
.page-head>.toolbar,
.sales-list-tools,
.production-toolbar{
  display:flex!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
}
.customer-toolbar .btn,
.product-toolbar-wrap .btn,
.page-head>.toolbar .btn,
.sales-list-tools .btn,
.production-toolbar .btn{
  height:31px!important;
  min-height:31px!important;
  padding:0 9px!important;
  font-size:12px!important;
  white-space:nowrap!important;
}
.customer-toolbar .input,.customer-toolbar .select,
.product-toolbar-wrap .input,.product-toolbar-wrap .select,
.page-head>.toolbar .input,.page-head>.toolbar .select,
.sales-list-tools .input,.sales-list-tools .select,
.production-toolbar .input,.production-toolbar .select{
  height:31px!important;
  min-height:31px!important;
  font-size:12px!important;
}
.compact-inline{white-space:nowrap!important;font-size:11px!important}
.quote-search{width:290px!important}
.production-search{width:315px!important}

/* Production Intake: one desktop toolbar row */
.intake-toolbar-panel{padding:7px 9px!important;margin:0 0 7px!important}
.intake-toolbar-line{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  white-space:nowrap!important;
  min-width:0!important;
}
.intake-toolbar-line .intake-source-tabs{
  display:flex!important;
  gap:4px!important;
  flex:0 0 auto!important;
}
.intake-toolbar-line .intake-source-inline{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
}
.intake-toolbar-line .btn,
.intake-toolbar-line .input,
.intake-toolbar-line .select{
  height:31px!important;
  min-height:31px!important;
  font-size:12px!important;
}
.intake-toolbar-line .btn{padding:0 9px!important;white-space:nowrap!important}
#customerPoNo{width:230px!important;min-width:150px!important}
.intake-toolbar-fill{flex:1 1 auto!important;min-width:4px!important}
#intakeSourceFilter{width:140px!important;flex:0 0 140px!important}
#intakeSearch{width:235px!important;flex:0 1 235px!important}
.compact-intake-list-panel{padding:0!important;margin-top:0!important}

/* Keep only the bottom pager on compact list screens */
.pager-top{display:none!important}

/* Prevent ordinary list data wrapping */
#companiesTable td,#partnersTable td,#productsTable td,#quotesTable td,
#intakesTable td,#jobsTable td,#inventoryTable td,#rentalAssetsTable td,
#shipmentsTable td,#usersTable td{
  white-space:nowrap;
}

/* Narrow screens only: allow wrapping */
@media(max-width:1180px){
  .customer-toolbar,.product-toolbar-wrap,.page-head>.toolbar,
  .sales-list-tools,.production-toolbar,.intake-toolbar-line{
    flex-wrap:wrap!important
  }
  #partnerSearch,#productSearch,#intakeSearch,.quote-search,.production-search{
    width:auto!important;flex:1 1 210px!important
  }
}

/* REV214 - Clear form sections only */
.modal .partner-section,
.modal .product-section,
.modal .intake-form-section,
.quotation-modal .product-section,
.quotation-modal .process-inline-panel,
.quotation-modal .compact-panel,
.modal .compact-panel,
.modal .panel{
  border:2px solid #aebdce!important;
  border-radius:8px!important;
  background:#fff!important;
  box-shadow:0 1px 2px rgba(31,55,82,.05);
}
.modal .source-snapshot,
.modal .transaction-guide,
.modal .asset-stock-note{
  border:1px solid #c8d4e1!important;
  border-radius:6px!important;
}
.modal .section-head,
.modal .section-title-row{
  padding-bottom:4px!important;
  margin-bottom:5px!important;
  border-bottom:1px solid #c6d2df;
}
.modal .partner-section>h4,
.modal .product-section>h4,
.modal .intake-form-section>h4,
.modal .section-head h4,
.modal .section-title-row h4{
  color:#123e70!important;
  font-weight:800!important;
}
.modal .input,
.modal .select,
.modal .textarea{
  border-width:1px!important;
  border-color:#cfdae6!important;
  background:#fff!important;
}
.modal .partner-section + .partner-section,
.modal .product-section + .product-section,
.modal .intake-form-section + .intake-form-section{
  margin-top:7px!important;
}
.quotation-modal .product-section{margin-top:7px!important}

/* Future planning page scaffold only */
.planning-next-step{
  padding:7px 9px;
  margin-bottom:7px;
  border:1px solid #c7d4e2;
  border-left:4px solid #1e63d6;
  border-radius:7px;
  background:#fff;
}
.planning-next-title{
  font-size:14px;
  font-weight:800;
  color:#123e70;
}
.planning-placeholder{
  margin-top:0!important;
  border:1px dashed #aebdce!important;
  background:#fbfcfe!important;
}

/* REV215: Production Intake - test PO control retired from normal UI.
   No intake/import/job logic changed. */
button[data-action="test-po"],
button[data-action="add-test-po"],
#btnTestPo, #btnTestPO, #btnAddTestPo, #btnAddTestPO { display:none!important; }

/* REV216 - Sales history import */
.sales-history-panel{margin-top:8px!important;padding:8px!important}
.sales-history-toolbar{display:flex;align-items:center;gap:6px;white-space:nowrap;margin-bottom:5px}
.sales-history-toolbar>b{margin-right:4px;color:#123e70}
.sales-history-toolbar .select{height:31px;min-height:31px;font-size:12px;width:155px}
.sales-history-toolbar .input{height:31px;min-height:31px;font-size:12px;width:290px}
.sales-history-table{font-size:11px}
.sales-history-table th,.sales-history-table td{padding:4px 6px!important;white-space:nowrap!important}
.import-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:9px}
.import-choice-card{appearance:none;border:2px solid #aebdce;border-radius:8px;background:#fff;padding:14px;text-align:left;cursor:pointer}
.import-choice-card:hover{border-color:#1e63d6;background:#f7faff}
.import-choice-card b{display:block;color:#123e70;font-size:14px;margin-bottom:4px}
.import-choice-card span{display:block;font-size:12px;color:#5d6b7a;line-height:1.4}

/* REV217 - Sales import progress/status only */
.sales-import-progress{padding:10px 4px 4px}
.sales-import-progress-head{display:flex;justify-content:space-between;align-items:center;font-size:13px;margin-bottom:7px}
.sales-import-progress-track{height:18px;border:1px solid #b8c6d5;border-radius:9px;overflow:hidden;background:#edf2f7}
.sales-import-progress-bar{height:100%;background:#2468d8;transition:width .2s ease}
.sales-import-progress-status{margin-top:8px;font-weight:700;color:#123e70}
.sales-import-progress-detail{margin-top:4px;font-size:12px;color:#5a6a7b;white-space:pre-line}
.sales-import-result{padding:14px;border:2px solid #aebdce;border-radius:8px;background:#fff}
.sales-import-result.is-success{border-color:#70ad83;background:#f4fbf6}
.sales-import-result.is-error{border-color:#d09a9a;background:#fff7f7}
.sales-import-result-title{font-size:15px;font-weight:800;margin-bottom:7px}
.sales-import-result-summary{font-size:13px;font-weight:700}
.sales-import-result-detail{margin-top:8px;font-size:12px;white-space:pre-line}

/* REV218 - Sales imported-history top row */
.sales-page-head{margin-bottom:7px!important}
.sales-master-toolbar{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  flex-wrap:nowrap!important;
  width:100%!important;
}
.sales-view-switch{display:flex;gap:4px;flex:0 0 auto}
.sales-view-tools{display:flex;align-items:center;gap:5px;min-width:0}
.sales-toolbar-fill{flex:1 1 auto;min-width:4px}
.sales-history-search{width:290px!important}
.sales-history-summary-inline{font-size:11px;color:#5d6b7a;white-space:nowrap}
#salesHistoryView{margin-top:0}
#salesHistoryView .table-wrap{margin-top:0}
.sales-history-table{font-size:11px}
.sales-history-table th,.sales-history-table td{padding:5px 6px!important;white-space:nowrap!important}
.error-box{color:#a61b1b;background:#fff5f5;border:1px solid #efc2c2;border-radius:6px;padding:8px!important}

/* REV219 - Real history-backed PO intake */
.history-completed-note{margin:6px 0;padding:6px 8px;border:1px solid #ead7a4;border-radius:6px;background:#fff9e9;font-size:11px;color:#735a16}
.po-source-company{display:inline-block!important;width:150px!important;height:28px!important;min-height:28px!important;font-size:11px!important;margin:0 3px}

/* REV220 - Keep list headers visible while scrolling long tables */
.page > .panel .table-wrap{
  max-height:calc(100vh - 210px);
  overflow:auto;
}
.page > .panel .table-wrap thead th{
  position:sticky;
  top:0;
  z-index:6;
  background:#f8fafc;
  box-shadow:0 1px 0 #dbe3ee;
}
/* Do not constrain tables inside edit/detail modals. */
.modal .table-wrap{
  max-height:none;
}

/* REV221 - Historical PO detail */
.po-history-detail-table{font-size:11px;width:100%}
.po-history-detail-table th,.po-history-detail-table td{padding:5px 6px!important;white-space:nowrap}
.po-history-detail-table th{position:sticky;top:0;z-index:5;background:#f8fafc}
.history-po-summary{display:flex;gap:22px;align-items:center;padding:6px 4px 2px;font-size:11px}
.history-po-summary b{color:#102f55;font-size:12px}
/* REV224 Planning / PEA */
.planning-head{margin-bottom:8px}.planning-filterbar{display:grid;grid-template-columns:minmax(260px,1fr) 150px 180px;gap:8px;align-items:center}.planning-board-table{font-size:11px;white-space:nowrap}.planning-board-table th,.planning-board-table td{padding:6px 7px}.planning-board-table td:nth-child(3),.planning-board-table td:nth-child(5){max-width:210px;overflow:hidden;text-overflow:ellipsis}.pea-user-create{margin-top:12px;padding-top:10px;border-top:1px solid var(--line,#dfe5ea)}.pea-user-create h4{margin:0 0 8px}.intake-edit-item-main{grid-template-columns:32px minmax(220px,1fr) 100px 130px 130px!important}@media(max-width:1000px){.planning-filterbar{grid-template-columns:1fr 1fr}.planning-filterbar input{grid-column:1/-1}}

/* REV225 Planning Core */
.planning-board-table td:nth-child(5){max-width:230px}
.planning-modal{max-width:1180px!important}
.planning-detail{display:flex;flex-direction:column;gap:7px}
.planning-section{border:1px solid #dfe5ec;border-radius:8px;padding:8px 10px;background:#fff}
.planning-section h4{margin:0 0 7px;font-size:13px}
.planning-section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.planning-section-title h4{margin:0}
.planning-summary-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.planning-summary-grid>div{border:1px solid #e7ebf0;border-radius:6px;padding:5px 7px;min-width:0}
.planning-summary-grid span{display:block;font-size:10px;color:#64748b;margin-bottom:2px}.planning-summary-grid b{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.planning-items{display:flex;flex-direction:column;gap:5px}.planning-item-card{border:1px solid #e4e9ef;border-radius:6px;padding:6px 8px;background:#fafcff}.planning-item-title,.planning-item-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.planning-item-actions{margin-top:4px}.pea-required-note{font-size:11px;font-weight:700;color:#8a4b08}
.planning-material-table{margin-top:6px}.planning-material-table table{font-size:11px}.planning-material-table th,.planning-material-table td{padding:4px 6px}.small-empty{padding:8px!important}
.planning-release{display:flex;align-items:center;justify-content:space-between;gap:10px}.planning-release h4{margin-bottom:2px}
.bom-copy-actions{margin:7px 0}.job-bom-head{display:grid;grid-template-columns:auto minmax(280px,1fr) auto;gap:7px;align-items:center;border-top:1px solid #e3e8ee;margin-top:8px;padding-top:8px}.job-bom-list{display:flex;flex-direction:column;gap:4px;margin-top:5px}.job-bom-row{display:grid;grid-template-columns:minmax(260px,2fr) 110px 95px minmax(180px,1fr) 54px;gap:5px;align-items:center}
.material-check-head,.material-check-row{display:grid;grid-template-columns:minmax(300px,2fr) 110px 130px 130px;gap:6px;align-items:center}.material-check-head{font-size:10px;color:#64748b;font-weight:700;padding:0 5px 4px}.material-check-list{display:flex;flex-direction:column;gap:4px}.material-check-row{border-top:1px solid #edf0f3;padding:4px 5px}.material-check-row>div:first-child{display:flex;flex-direction:column}.material-check-row span{font-size:10px;color:#64748b}
@media(max-width:1000px){.planning-summary-grid{grid-template-columns:repeat(3,1fr)}.job-bom-row{grid-template-columns:1fr 90px 80px 1fr 54px}.material-check-head,.material-check-row{grid-template-columns:1fr 90px 100px 100px}}
/* REV226 Standard BOM Master */
.row-actions{display:flex;gap:4px;white-space:nowrap;align-items:center}.std-bom-row{grid-template-columns:minmax(260px,2.3fr) minmax(95px,.7fr) minmax(85px,.6fr) minmax(58px,.45fr) auto}.sbmUnit{align-self:center;white-space:nowrap;text-align:center}

/* REV227 - Production routing / process tracking */
.bom-master-toolbar{display:flex;justify-content:flex-end;gap:7px;margin-bottom:8px}
.bom-definition-section{border:1px solid #dfe5ec;border-radius:8px;padding:8px;margin-top:8px;background:#fff}
.routing-head,.routing-row{display:grid;grid-template-columns:68px minmax(210px,1.5fr) minmax(180px,1fr) 82px 82px 72px 52px;gap:6px;align-items:center}
.routing-head{font-size:10px;color:#64748b;font-weight:700;padding:2px 4px 4px}
.routing-list{display:flex;flex-direction:column;gap:5px}
.routing-row{border:1px solid #e7ebf0;border-radius:6px;padding:5px;background:#fafcff}
.routing-row .input,.routing-row .select{min-width:0;font-size:11px;padding:5px 6px}
.routing-required{font-size:10px;display:flex;align-items:center;gap:4px;white-space:nowrap}
.master-split{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(320px,.8fr);gap:10px}
.master-split section{border:1px solid #dfe5ec;border-radius:8px;padding:8px;min-width:0}
.master-table table{font-size:11px}.master-table th,.master-table td{padding:5px 6px}
.unit-routing-section{border-top:1px solid #dfe5ec;margin-top:10px;padding-top:9px}
.unit-process-list{display:flex;flex-direction:column;gap:5px}
.unit-process-row{display:grid;grid-template-columns:82px minmax(220px,1fr) 110px 220px;gap:7px;align-items:center;border:1px solid #e3e8ef;border-radius:7px;padding:6px 8px;background:#fafcff}
.unit-process-row.factory-test-step{border-width:2px}
.process-step b,.process-name b{display:block;font-size:11px}.process-step span,.process-name span{display:block;font-size:10px;color:#64748b;margin-top:1px}
.unit-process-actions{text-align:right;white-space:nowrap}.unit-process-actions .btn{padding:4px 7px;font-size:10px}
@media(max-width:1050px){.routing-head{display:none}.routing-row{grid-template-columns:60px 1fr 1fr 70px 70px 65px 48px}.master-split{grid-template-columns:1fr}.unit-process-row{grid-template-columns:70px 1fr 100px}.unit-process-actions{grid-column:1/-1;text-align:left}}

/* REV228 Planning / Production navigation */
.nav-group{margin:5px 0 6px;padding:5px 5px 6px;border:1px solid rgba(255,255,255,.08);border-radius:9px;background:rgba(255,255,255,.025)}
.nav-group-title{padding:4px 7px 5px;color:#8fa9c7;font-size:11px;font-weight:800;letter-spacing:.2px}
.navbtn.navsub{padding-left:18px;font-size:12.5px}
.production-setup-toolbar{display:flex;gap:8px;align-items:center;margin-bottom:10px}
.production-setup-toolbar .input{max-width:440px}
.production-setup-table th:last-child,.production-setup-table td:last-child{width:1%;white-space:nowrap}
@media(max-width:900px){.nav-group{display:flex;gap:3px;align-items:center;margin:0;padding:0;border:0;background:transparent}.nav-group-title{display:none}.navbtn.navsub{padding-left:9px}.production-setup-toolbar{flex-wrap:wrap}.production-setup-toolbar .input{max-width:none;min-width:260px;flex:1}}
/* REV230 material/process and visual production tracking */
.rev230-material-row{grid-template-columns:minmax(260px,2.2fr) 110px 95px minmax(190px,1.4fr) 70px 50px!important}
.process-timeline{display:flex;align-items:stretch;gap:4px;overflow-x:auto;padding:8px 2px 12px;margin-bottom:8px}.timeline-step{min-width:105px;max-width:150px;border:1px solid #d9e1ea;border-radius:8px;padding:7px 8px;background:#f8fafc;display:flex;flex-direction:column;gap:2px}.timeline-step b{font-size:11px;line-height:1.25}.timeline-step small{font-size:10px;color:#64748b}.timeline-step.completed{background:#f1f5f9}.timeline-step.in_progress{border-width:2px}.timeline-step.failed{border-width:2px}.timeline-no{font-size:9px;color:#64748b}.timeline-arrow{align-self:center;font-size:18px;color:#94a3b8}.product-classification .classify-grid{grid-template-columns:1fr 1fr 1fr}
@media(max-width:1000px){.rev230-material-row{grid-template-columns:1fr 100px 90px 1fr 60px 50px!important}.product-classification .classify-grid{grid-template-columns:1fr}}
.rev230-job-material-row{grid-template-columns:minmax(240px,2fr) 100px 90px minmax(180px,1.3fr) minmax(160px,1fr) 50px!important}

/* REV235 - standard action column: first column + compact icons */
.action-col{width:1%;min-width:38px;white-space:nowrap;text-align:center!important}
.action-cell{width:1%;white-space:nowrap;text-align:center!important;padding-left:5px!important;padding-right:5px!important}
.action-icon{width:28px;height:28px;min-width:28px;padding:0!important;border:1px solid #d8e1eb;border-radius:7px;background:#f5f8fb;color:#18324f;display:inline-flex;align-items:center;justify-content:center;font-size:14px;line-height:1;cursor:pointer;vertical-align:middle}
.action-icon:hover{background:#eaf1f8;border-color:#b9c9da}
.action-icon.primary{background:#eaf2ff;border-color:#bfd4f5;color:#1557a6}
.action-icon.ok{background:#eef8f1;border-color:#c5e4ce;color:#21733b}
.action-done{display:inline-flex;width:28px;height:28px;align-items:center;justify-content:center;border-radius:7px;background:#eef5ef;color:#2e7040;font-weight:800}
.row-actions{display:flex;gap:3px;white-space:nowrap;align-items:center;justify-content:center}

/* REV236 - tracking readiness / repair planning */
.tracking-summary{display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;margin:8px 0 10px}
.tracking-kpi{background:#fff;border:1px solid #dbe4ef;border-radius:10px;padding:8px 10px;min-height:58px}
.tracking-kpi span{display:block;font-size:11px;color:#64748b;margin-bottom:3px}.tracking-kpi b{font-size:18px;color:#172b46}.tracking-kpi small{display:block;font-size:10px;color:#7b8798;margin-top:2px}
.tracking-empty-guide{border:1px dashed #b8c7db;border-radius:12px;background:#f8fbff;padding:20px;text-align:center;color:#42566f}.tracking-empty-guide h3{margin:0 0 6px;color:#172b46}.tracking-empty-actions{display:flex;justify-content:center;gap:8px;margin-top:12px;flex-wrap:wrap}
.repair-plan-box{display:grid;gap:10px}.repair-route-table select,.repair-route-table input{min-width:90px}.repair-plan-note{background:#fff8e8;border:1px solid #f0d79a;border-radius:8px;padding:8px 10px;font-size:12px;color:#715718}
@media(max-width:1000px){.tracking-summary{grid-template-columns:repeat(2,minmax(120px,1fr))}}
/* REV237 production/repair work views */
#page-production-work .tracking-summary,#page-repair-work .tracking-summary{margin:8px 0 10px}
#page-production-work .planning-filterbar,#page-repair-work .planning-filterbar{display:grid;grid-template-columns:minmax(320px,1fr) 220px;gap:8px;align-items:center}
#page-production-work .planning-board-table,#page-repair-work .planning-board-table{font-size:12px}
#page-production-work .planning-board-table td,#page-repair-work .planning-board-table td{white-space:nowrap}
@media(max-width:900px){#page-production-work .planning-filterbar,#page-repair-work .planning-filterbar{grid-template-columns:1fr}}

/* REV240 - compact repair summary: table/work list keeps priority over dashboard */
#page-repair-work .tracking-summary{display:flex;align-items:center;gap:7px;min-height:34px;margin:6px 0 8px;padding:6px 10px;background:#fff;border:1px solid #dbe4ef;border-radius:8px;overflow-x:auto;white-space:nowrap}
#page-repair-work .repair-summary-item{font-size:11px;color:#536273;line-height:1.2}
#page-repair-work .repair-summary-item b{font-size:11px;color:#172b46;margin-right:3px}
#page-repair-work .repair-summary-sep{font-size:10px;color:#c3ccd7}
/* REV242 flow-completion compact helpers */
.intake-ready{display:flex;gap:4px;flex-wrap:nowrap;white-space:nowrap;font-size:10px}.intake-ready span{padding:2px 5px;border-radius:999px;background:#eef3f8}.intake-ready span.ok{color:#17653a}.intake-ready span.warn{color:#9a5a00;background:#fff4d8}.unit-transaction-bar{display:flex;gap:6px;justify-content:flex-end;margin-top:8px}.mini-history{margin-top:10px;max-height:260px;overflow:auto}.production-process-search{max-width:210px}.repair-only-plan .planning-section{margin-bottom:8px}
/* REV253 Accounting */
.accounting-tabs{gap:6px;flex-wrap:wrap}.readonly-box{min-height:34px;border:1px solid #dbe2ea;background:#f8fafc;border-radius:6px;padding:7px 9px;font-size:11px;line-height:1.5;color:#334155}.billing-pick-list{max-height:260px;overflow:auto;border:1px solid #dbe2ea;border-radius:6px;padding:4px;background:#fff}.check-row{display:flex;align-items:center;gap:8px;padding:6px 7px;border-bottom:1px solid #eef2f6;font-size:11px}.check-row:last-child{border-bottom:0}.check-row input{width:15px;height:15px}
/* REV258 report usability */
.report-search-row{display:grid;grid-template-columns:minmax(160px,220px) 140px 140px minmax(260px,1fr) auto;gap:6px;align-items:center}.report-search-row .input,.report-search-row .select{min-width:0}
@media(max-width:1050px){.report-search-row{grid-template-columns:1fr 1fr}.report-search-row #reportSearch{grid-column:1/-1}}

/* REV259 Purchase + permissions */
.purchase-lines{display:grid;gap:7px}.purchase-line{display:grid;grid-template-columns:minmax(260px,1.8fr) 130px 150px 36px;gap:7px;align-items:center}.permission-help{font-size:12px;color:#5d6878;margin-bottom:10px}.permission-table th,.permission-table td{white-space:nowrap}.permission-table input[type=checkbox]{width:16px;height:16px}.purchase-tabs{gap:6px}
@media(max-width:900px){.purchase-line{grid-template-columns:1fr 110px}.purchase-line [data-p-date]{grid-column:1/2}.purchase-line [data-remove-p-line]{grid-column:2/3}}
