:root{--ink:#203b34;--green:#174d3e;--muted:#748078;--line:#e2e7df;--paper:#f5f6f0;--accent:#d9f080}*{box-sizing:border-box}body{margin:0;color:var(--ink);font:14px/1.55 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--paper)}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}header{height:96px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 5%;gap:30px}.brand{display:flex;align-items:center;gap:12px;font-size:21px;font-weight:750;letter-spacing:-.5px}.logo{display:grid;place-items:center;background:var(--green);color:var(--accent);height:44px;width:44px;border-radius:12px;letter-spacing:-3px;padding-right:3px}.brand small{font-size:9px;letter-spacing:1.8px;color:var(--muted);font-weight:600}small{display:block;color:var(--muted);font-size:12px}nav{display:flex;gap:10px}nav a{padding:10px 22px;border-radius:7px;color:var(--muted);font-weight:600}nav a[aria-current]{background:#edf3e7;color:var(--green)}.account{display:flex;align-items:center;gap:20px}.account>span{text-align:right;font-size:12px;font-weight:600}main{max-width:1440px;margin:0 auto;padding:48px 5% 72px;min-height:calc(100vh - 165px)}.heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:30px}.eyebrow{font-size:10px;letter-spacing:1.7px;font-weight:750;color:#6c806d}h1{font-size:34px;line-height:1.2;letter-spacing:-1.1px;margin:10px 0}h2{font-size:17px;letter-spacing:-.3px;margin:0}h3{font-size:17px;margin:16px 0 8px}.muted{color:var(--muted);margin-top:10px}.card{background:white;border:1px solid var(--line);border-radius:12px;overflow:hidden}.search{padding:24px;margin-bottom:26px}.searchform label{font-weight:650;margin-bottom:9px}.inline{display:flex;align-items:center;gap:10px}.inline input{flex:1;min-width:100px}button,.button{font:600 13px/1.4 system-ui;cursor:pointer;border-radius:7px;padding:12px 17px;border:1px solid transparent;display:inline-block;white-space:nowrap;text-align:center}button:disabled{opacity:.45;cursor:default}.primary{background:var(--green);color:white}.secondary{background:#eff4e9;color:var(--green);border-color:#dce6d4}.quiet{background:transparent;border-color:var(--line);color:var(--ink)}button:hover,.button:hover{filter:brightness(.96);text-decoration:none}input,select{font:inherit;color:var(--ink);border:1px solid #d9e0d6;border-radius:7px;background:#fff;padding:11px 12px;width:100%}input:focus,select:focus{outline:2px solid #88a96b;outline-offset:2px}input[type=checkbox]{width:auto}label{display:block}input[type=search]{background:#fafbf7}.results{margin-top:20px}.result{display:flex;justify-content:space-between;align-items:center;padding:16px 0;border-top:1px solid var(--line);gap:20px}.code{font-size:10px;letter-spacing:.7px;color:#819080;display:block;margin-bottom:4px}.result strong,td strong{display:block}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 306px;gap:24px;align-items:start}.sectiontitle{display:flex;justify-content:space-between;align-items:center;padding:22px 24px;border-bottom:1px solid var(--line)}.pill{font-size:10px;font-weight:650;padding:5px 10px;background:#eff3e8;color:#56724d;border-radius:20px;white-space:nowrap}.pill.warning{background:#fff0cf;color:#85662e}.empty{text-align:center;padding:72px 15px 90px;color:var(--muted)}.empty h3{color:var(--ink)}.empty p{font-size:13px}.emptyicon{width:50px;height:50px;display:grid;place-items:center;font-size:28px;border-radius:12px;margin:auto;color:#6f8d60;background:#f0f4e9}.summary{background:var(--green);border-radius:12px;padding:26px;color:white}.summary .eyebrow{color:#c4d7b5}.summary p{margin:23px 0 5px;color:#e0ebdc}.total{font-size:37px;letter-spacing:-1.3px;font-weight:650;white-space:nowrap}.total[aria-busy=true]{opacity:.5}.summary small{color:#a7c4b3}.print{display:block;width:100%;margin-top:28px;background:var(--accent);color:var(--green)}.save{margin-top:20px;padding:24px}.save label{font-size:12px;margin-bottom:8px}.save button{width:100%;margin-top:12px}.save>small{margin-top:14px;font-size:11px}.tablewrap{overflow:auto}table{border-collapse:collapse;width:100%;font-size:13px}th{text-align:left;font-size:10px;letter-spacing:.6px;color:var(--muted);background:#fafbf8;text-transform:uppercase;font-weight:600;padding:15px 20px}td{padding:20px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border:0}td:first-child{min-width:210px}td small{margin-top:4px}.textbutton{background:none;border:0;padding:5px 0;color:#577754;font-weight:600;font-size:11px;white-space:normal}.qty,select{width:94px}.quantityform .update{display:block}.nowrap{white-space:nowrap}.line-total{font-weight:700}.remove{padding:0 4px;background:none;font-size:24px;color:#8c958e}.notice{border:1px solid #cbd9bc;background:#edf4e7;border-radius:7px;padding:14px 18px;margin-bottom:20px}.error,.errorlist{color:#a1372f}.notice.error{background:#fff0ec;border-color:#eac6bd}#edit-error{padding:15px}.editor{padding:28px;max-width:840px;margin-bottom:24px}.editor p{margin:0 0 20px}.editor label{font-size:12px;font-weight:650;margin-bottom:6px}.editor .helptext{font-size:11px}.login{max-width:440px;margin:35px auto;padding:35px}.login p{margin:22px 0}.login label{font-size:12px;font-weight:600;margin-bottom:7px}.login button{width:100%}.login h1{font-size:32px}.back{font-size:12px;color:var(--muted)}footer{border-top:1px solid var(--line);padding:22px 5%;display:flex;justify-content:space-between;color:#8a958b;font-size:11px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}@media(max-width:1100px){header{padding:0 3%;gap:15px}nav a{padding:10px 12px}main{padding:32px 3%}.workspace{grid-template-columns:minmax(0,1fr) 270px;gap:16px}td,th{padding:16px 12px}.total{font-size:32px}}@media(max-width:800px){header{height:auto;min-height:100px;flex-wrap:wrap;padding:18px 5%;gap:16px}nav{order:3;width:100%;justify-content:center;border-top:1px solid var(--line);padding-top:10px}.account{gap:10px}.workspace{grid-template-columns:1fr}aside{display:grid;grid-template-columns:1fr 1fr;gap:16px}.save{margin:0}.heading{align-items:start;flex-direction:column}h1{font-size:29px}.heading .inline{flex-wrap:wrap}main{padding:28px 5%}.search{padding:18px}footer{gap:20px}}@media(max-width:480px){aside{grid-template-columns:1fr}.account>span{display:none}.brand{font-size:18px}.result{gap:10px}.result button{padding:10px}.empty{padding:50px 15px}.searchform .inline{gap:7px}}
@media(max-width:600px){.lines thead{display:none}.lines tbody{display:block}.lines tr{position:relative;display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);padding:8px 0 16px}.lines tr:last-child{border:0}.lines td{border:0;padding:8px 20px}.lines td:first-child{grid-column:1/-1;min-width:0;padding-right:45px}.lines td:nth-child(2){grid-column:1;grid-row:2/4}.lines td:nth-child(3),.lines td:nth-child(4){grid-column:2;text-align:right}.lines td[data-label]:before{content:attr(data-label);display:block;font-size:10px;font-weight:500;color:var(--muted)}.lines td:last-child{position:absolute;top:4px;right:0;padding-right:18px}}
.search{position:relative;overflow:visible}.suggestions{position:absolute;left:24px;right:24px;top:100px;z-index:10;max-height:340px;overflow:auto;background:white;border:1px solid var(--line);border-radius:8px;box-shadow:0 14px 30px #203b3420}.suggestion{display:block;width:100%;border-radius:0;text-align:left;white-space:normal;background:white;padding:14px 18px;border-bottom:1px solid var(--line)}.suggestion:hover,.suggestion[aria-selected=true]{background:#edf4e7}.suggestion strong{display:block}.suggestion small{margin-top:4px}#search-status:empty{display:none}#undo-form{margin-left:auto;margin-right:12px}#undo-form button{padding:8px 12px}.sectiontitle{flex-wrap:wrap;gap:8px}
.catalog{margin-bottom:26px}.catalog-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px}.catalog-heading p{margin-bottom:0}.catalog-filter{padding:0 24px 18px}.catalog-filter label{font-size:12px;font-weight:600;margin-bottom:6px}.catalog-list{max-height:330px;overflow-y:auto;overscroll-behavior:contain;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.catalog-item{display:flex;align-items:center;gap:16px;padding:16px 24px;border-bottom:1px solid var(--line);cursor:pointer}.catalog-item:last-child{border-bottom:0}.catalog-item:has(input:checked){background:#f0f5e9}.catalog-item:has(input:disabled){cursor:default}.catalog-item input{width:19px;height:19px;flex:none;accent-color:var(--green)}.catalog-description{flex:1;min-width:0}.catalog-description strong{display:block}.catalog-price{text-align:right;white-space:nowrap;font-size:13px}.catalog-price .pill{display:block;margin-top:5px}.catalog-actions{display:flex;align-items:center;gap:12px;padding:18px 24px}.catalog-actions>span{margin-right:auto;color:var(--muted);font-size:12px}.catalog-empty{padding:12px 24px}.catalog-item[hidden]{display:none}@media(max-width:600px){.catalog-heading{align-items:start;flex-direction:column}.catalog-item{padding:14px 16px;gap:10px}.catalog-actions{flex-wrap:wrap;padding:16px}.catalog-actions>span{width:100%}.catalog-price{font-size:12px}.catalog-filter{padding-left:16px;padding-right:16px}}
[hidden]{display:none!important}

/* Give the work area the available desktop width, with a readable catalogue. */
.commessa-main {
  max-width: 1920px;
  padding: 32px 24px 64px;
}
.commessa-layout {
  display: grid;
  grid-template-columns: 380px minmax(0, 1fr);
  gap: 24px;
  align-items: start;
}
.commessa-layout > .catalog {
  position: sticky;
  top: 20px;
  height: calc(100dvh - 40px);
  max-height: 1100px;
  min-height: 560px;
  margin-bottom: 0;
  display: flex;
  flex-direction: column;
}
.commessa-layout .catalog-heading {
  align-items: start;
  flex-direction: column;
  gap: 12px;
  padding: 20px;
}
.commessa-layout .catalog-heading p { font-size: 13px; }
.commessa-layout .catalog-filter { padding: 0 20px 16px; }
.commessa-layout #catalog-form {
  display: flex;
  flex-direction: column;
  flex: 1;
  min-height: 0;
}
.commessa-layout .catalog-list {
  flex: 1;
  min-height: 0;
  max-height: none;
  scrollbar-gutter: stable;
}
.commessa-layout .catalog-item {
  padding: 8px 16px;
  gap: 10px;
  align-items: start;
}
.commessa-layout .catalog-item input { margin-top: 12px; }
.commessa-layout .catalog-description strong { line-height: 1.4; }
.commessa-layout .catalog-price { font-size: 12px; }
.commessa-layout .catalog-price .pill { padding: 4px 6px; }
.commessa-layout .catalog-actions {
  flex-wrap: wrap;
  gap: 10px;
  padding: 16px 20px;
  border-top: 1px solid var(--line);
}
.commessa-layout .catalog-actions > span { width: 100%; }
.commessa-layout #catalog-add { flex: 1; }
.commessa-layout .workspace { grid-template-columns: minmax(0, 1fr); }
.commessa-layout .workspace > aside {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  align-items: start;
}
.commessa-layout .save { margin-top: 0; }
@media (min-width: 1600px) {
  .commessa-layout .workspace { grid-template-columns: minmax(0, 1fr) 280px; }
  .commessa-layout .workspace > aside { display: block; }
  .commessa-layout .save { margin-top: 20px; }
}
@media (max-width: 1100px) {
  .commessa-main { padding: 28px 20px 48px; }
  .commessa-layout { grid-template-columns: minmax(0, 1fr); }
  .commessa-layout > .catalog {
    position: static;
    height: auto;
    max-height: none;
    min-height: 0;
  }
  .commessa-layout .catalog-list { flex: auto; max-height: 420px; }
}
@media (max-width: 600px) {
  .commessa-main { padding: 24px 16px 40px; }
  .commessa-layout .workspace > aside { grid-template-columns: minmax(0, 1fr); }
}
.commessa-content { min-width: 0; }
@media (max-width: 1100px) {
  .commessa-content { display: contents; }
  .commessa-layout > .catalog { order: 1; }
  .commessa-content > .search { order: 0; margin-bottom: 0; }
  .commessa-content > .workspace { order: 2; }
}
.job-filter { padding: 18px 24px; border-bottom: 1px solid var(--line); }
.job-filter label { font-size: 12px; font-weight: 650; margin-bottom: 7px; }
.job-filter small { margin-top: 8px; }
.job-no-matches { padding: 18px 24px; color: var(--muted); }
@media (max-width: 600px) {
  .job-filter { padding: 16px; }
  .job-filter .inline { flex-wrap: wrap; }
}

/* Keep readable names and click targets, while removing redundant vertical rows. */
.catalog-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 3px 7px;
  margin-bottom: 2px;
}
.catalog-meta .code { display: inline; margin: 0; }
.catalog-meta small { font-size: 11px; }
.catalog-meta .pill { margin-left: auto; padding: 1px 5px; }
.catalog-title-row { display: flex; align-items: baseline; gap: 10px; }
.catalog-title-row strong { flex: 1; min-width: 0; }
.catalog-title-row .catalog-price { flex: none; }
.catalog-sizes { display: flex; flex-wrap: wrap; gap: 1px 10px; margin-top: 3px; }
.catalog-sizes small { font-size: 11px; white-space: nowrap; }

/* Compact job rows without truncating descriptions or hiding editing controls. */
.lines th { padding: 11px 16px; }
.lines td { padding: 10px 16px; }
.lines .line-meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; margin-bottom: 2px; }
.lines .line-meta .code { display: inline; margin: 0; }
.lines .line-meta small { display: inline; margin: 0; font-size: 11px; }
.lines td strong { line-height: 1.4; }
.lines .textbutton { padding: 2px 0; }
.lines .quantityform .qty,
.lines .quantityform select { min-height: 36px; padding: 6px 9px; }
.lines .remove { min-width: 32px; min-height: 36px; line-height: 1; }
@media (max-width: 600px) {
  .lines tr { padding: 6px 0 10px; }
  .lines td { padding: 6px 16px; }
  .lines td:first-child { padding-right: 48px; }
  .lines td:last-child { padding: 4px 12px 0 0; }
}
.tariff-notes { max-width: 600px; font-size: 11px; color: var(--muted); }
.tariff-notes summary { cursor: pointer; }
.tariff-notes p { margin: 5px 0; white-space: pre-line; }
