/* v0263 — offerter. Redigeringen följer portalens mönster; utskriftsvyn är
   ett dokument och ska se ut som ett dokument, även på skärmen. */
.quote-new-panel{padding:14px 16px;margin-bottom:12px}
.quote-new-panel h2{margin:0 0 10px;font-size:18px}
.quote-new-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr)) auto;gap:10px;align-items:end;margin:0}
.quote-new-form label{display:grid;gap:4px;font-size:12.5px;font-weight:600}
.quote-new-form input{min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff}
.quote-new-form .quote-currency{max-width:110px}
.quote-new-form .button{min-height:40px}
.quote-status{display:inline-block;padding:3px 10px;border-radius:999px;font-size:11.5px;font-weight:700;background:#eef3ee;color:#3b4a42}
.quote-status.is-sent{background:#eaf1f9;color:#24598f}
.quote-status.is-accepted{background:#e8f5ec;color:#1f7a4d}
.quote-status.is-declined{background:#fdf0ec;color:#a4432a}
.quote-roles-panel{padding:14px 16px;margin-top:12px}
.quote-roles-panel h2{margin:0 0 6px;font-size:17px}
.quote-roles-lead{margin:0 0 10px;color:#68756d;font-size:12.5px;max-width:70ch}
.quote-roles-table td{padding:4px 0;border:0}
.quote-roles-table form{display:flex;gap:8px;align-items:center;margin:0;flex-wrap:wrap}
.quote-roles-table input{min-height:38px;padding:6px 10px;border:1px solid #cfd8d2;border-radius:8px;font:inherit;background:#fff}
.quote-roles-table input[name=day_rate]{max-width:120px;text-align:right;font-variant-numeric:tabular-nums}

.quote-toolbar .quote-toolbar-meta{color:#68756d;font-size:12px}
.quote-toolbar .quote-toolbar-meta b{color:#14241b;font-size:15px}
.quote-toolbar select{min-height:36px;padding:5px 9px;border:1px solid #cfd8d2;border-radius:8px;font:inherit;background:#fff}
.quote-layout{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.85fr);gap:12px;align-items:start}
.quote-lines-panel,.quote-meta-panel{padding:14px 16px}
.quote-lines-panel h2,.quote-meta-panel h2{margin:0 0 10px;font-size:18px}
.quote-lines{display:grid;gap:6px}
.quote-line{display:grid;grid-template-columns:minmax(0,1fr) 74px 74px 96px 120px 92px 34px;
  gap:8px;align-items:center;margin:0;padding:8px;border:1px solid var(--line);border-radius:10px;background:#fff}
.quote-line-head{border:1px solid transparent;background:none;padding:0 8px;font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:#68756d}
.quote-line-head .num{text-align:right}
.quote-line input{min-width:0;width:100%;min-height:38px;padding:6px 9px;border:1px solid #cfd8d2;border-radius:8px;font:inherit;background:#fff}
.quote-line input.num{text-align:right;font-variant-numeric:tabular-nums}
.quote-line-main{display:grid;gap:4px;min-width:0}
.quote-line-kind{width:100%;min-height:30px;padding:3px 8px;border:1px solid #dfe6e0;border-radius:8px;
  font:inherit;font-size:11.5px;color:#68756d;background:#fbfcfb}
.quote-line .quote-amount{text-align:right;font-weight:700;white-space:nowrap;font-variant-numeric:tabular-nums}
.quote-line .button-small{min-height:38px;padding:0 12px}
.quote-line .link-button{justify-self:center;border:0;background:none;color:#a4432a;font-size:18px;line-height:1;cursor:pointer;padding:6px 4px}
.quote-lines-empty{margin:0;padding:16px;color:var(--muted);font-size:13px;text-align:center;
  border:1px dashed var(--line);border-radius:10px;background:#fbfcfb}
@media(max-width:1100px){
  .quote-line{grid-template-columns:minmax(0,1fr) 64px 64px 88px;grid-auto-rows:auto}
  .quote-line-head{display:none}
  .quote-line .quote-amount{grid-column:1 / -1;text-align:left}
  .quote-line .button-small{grid-column:1 / span 2}
}
.quote-line-new{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;align-items:end;margin:14px 0 0;padding-top:14px;border-top:1px solid var(--line)}
.quote-line-new label{display:grid;gap:4px;min-width:0;font-size:12px;font-weight:600}
.quote-line-new input,.quote-line-new select{width:100%;min-width:0;min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff}
.quote-totals{display:grid;gap:6px;margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}
.quote-totals div{display:flex;justify-content:space-between;gap:14px;font-size:13px}
.quote-totals b{font-variant-numeric:tabular-nums}
.quote-totals .is-total{padding-top:6px;border-top:1px solid var(--line);font-size:16px}
.quote-meta-form{display:grid;gap:10px;margin:0}
.quote-meta-form label{display:grid;gap:4px;font-size:12.5px;font-weight:600}
.quote-meta-form input,.quote-meta-form textarea{min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff}
.quote-meta-form textarea{min-height:70px;font-size:13px}
.quote-meta-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:1000px){.quote-layout{grid-template-columns:1fr}}

/* ---- Dokumentet ---- */
.quote-doc{max-width:820px;margin:0 auto 40px;padding:40px 44px;background:#fff;border:1px solid var(--line);border-radius:6px;
  font:400 13.5px/1.55 Georgia,'Times New Roman',serif;color:#1b2a22}
.quote-doc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;padding-bottom:18px;border-bottom:2px solid #173f2b}
.quote-doc-logo{height:52px;width:auto}
.quote-doc-meta{display:grid;gap:2px;text-align:right;font-size:12px;color:#4a5a51}
.quote-doc-meta strong{font-size:15px;color:#173f2b;letter-spacing:.08em;text-transform:uppercase}
.quote-doc-title{margin:26px 0 18px;font-size:26px;line-height:1.2;color:#173f2b}
.quote-doc-to{margin-bottom:20px;font-size:13.5px}
.quote-doc-to span{display:block;color:#78867d;font-size:11px;letter-spacing:.09em;text-transform:uppercase}
.quote-doc-text{margin-bottom:20px}
.quote-doc-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:0 0 24px;padding:14px 16px;background:#f6f8f5;border-radius:6px}
.quote-doc-facts span{display:block;color:#78867d;font-size:10.5px;letter-spacing:.07em;text-transform:uppercase}
.quote-doc-facts strong{font-size:15px}
.quote-doc-table{width:100%;border-collapse:collapse;margin-bottom:22px}
.quote-doc-table th{padding:8px 10px;border-bottom:1px solid #173f2b;font-size:11px;letter-spacing:.06em;text-transform:uppercase;text-align:left;color:#4a5a51}
.quote-doc-table td{padding:9px 10px;border-bottom:1px solid #e6ebe6}
.quote-doc-table .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.quote-doc-table tfoot .is-total td{padding-top:12px;border-top:2px solid #173f2b;border-bottom:0;font-size:16px;font-weight:700}
.quote-doc-installment,.quote-doc-block{margin-bottom:18px}
.quote-doc-installment strong,.quote-doc-block strong{display:block;margin-bottom:4px;color:#173f2b;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase}
.quote-doc-installment p,.quote-doc-block p{margin:0}
.quote-doc-foot{display:flex;justify-content:space-between;gap:16px;margin-top:30px;padding-top:14px;border-top:1px solid #e6ebe6;color:#78867d;font-size:11px}
.quote-doc-actions{display:flex;gap:10px;margin-top:24px}
@media print{
  .topbar,.top-nav,.user-dropdown,.flash,.quote-doc-actions,.no-print{display:none!important}
  .app-shell,.main-content{padding:0!important;margin:0!important;background:#fff!important}
  .quote-doc{max-width:none;margin:0;padding:0;border:0;border-radius:0;font-size:11.5pt}
  .quote-doc-table{page-break-inside:auto}
  .quote-doc-table tr{page-break-inside:avoid}
  @page{margin:18mm 16mm}
}
@media(max-width:700px){
  .quote-doc{padding:22px 18px}
  .quote-doc-head{flex-direction:column}
  .quote-doc-meta{text-align:left}
}

/* v0264 — kund, enhet och kontaktperson ur registret, samt valutaväljaren. */
.party-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;grid-column:1 / -1}
.party-picker label{display:grid;gap:4px;font-size:12.5px;font-weight:600}
.party-picker select{min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff;width:100%}
.currency-picker{display:grid;gap:4px;font-size:12.5px;font-weight:600;max-width:150px}
.currency-picker select,.currency-picker input{min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff}
.currency-picker input[hidden]{display:none}
.quote-new-form{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
.quote-new-form>.button{grid-column:1 / -1;justify-self:start;min-width:140px}
.quote-meta-form .party-picker{grid-template-columns:1fr}
.quote-meta-form .currency-picker{max-width:none}

/* v0266 — planeringen bakom priset. */
.quote-plan-panel{padding:14px 16px;margin-bottom:12px}
.quote-plan-panel h2{margin:0 0 4px;font-size:18px}
.quote-plan-lead{margin:0 0 12px;color:#68756d;font-size:12.5px;max-width:80ch}
.quote-plan-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(0,1fr));gap:10px 12px;align-items:end;margin:0}
.quote-plan-form label{display:grid;gap:4px;min-width:0;font-size:12px;font-weight:600}
.quote-plan-form label>span{display:block;min-width:0;font-size:11.5px;line-height:1.25;overflow-wrap:anywhere;hyphens:auto}
.quote-plan-form input{min-height:40px;padding:8px 10px;border:1px solid #cfd8d2;border-radius:9px;font:inherit;background:#fff;text-align:right;font-variant-numeric:tabular-nums}
.quote-plan-result{display:grid;gap:2px;padding:8px 12px;border-radius:10px;background:#f2f7f3;text-align:center}
.quote-plan-result span{color:#68756d;font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}
.quote-plan-result b{font-size:24px;line-height:1.1}
.quote-plan-result small{color:#68756d;font-size:11.5px}
.quote-plan-actions{grid-column:1 / -1;display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}

/* v0267 — typen ska gå att ändra på en befintlig rad, och tilläggsformuläret
   ska inte brytas mitt i ett fält. */
.quote-line-main{min-width:220px}
.quote-line-main input{margin-bottom:4px}
.quote-line-kind{width:100%;min-height:32px;padding:4px 8px;border:1px solid #dfe6e0;border-radius:8px;
  font:inherit;font-size:11.5px;color:#68756d;background:#fbfcfb}
.quote-line-new{grid-template-columns:minmax(0,.8fr) minmax(0,.9fr) minmax(0,1.7fr) 78px 78px 104px}
.quote-line-new .button{grid-column:1 / -1;justify-self:start;min-width:150px}
@media(max-width:900px){
  .quote-line-new{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
}

/* v0268 — planeringen på egen rad över tvåkolumnslayouten. */
.quote-plan-panel{margin-bottom:12px}
.quote-plan-form{grid-template-columns:repeat(6,minmax(0,1fr)) minmax(130px,auto)}
@media(max-width:900px){.quote-plan-form{grid-template-columns:repeat(3,minmax(0,1fr))}.quote-plan-result{grid-column:1 / -1}}
