/* CRM_QUOTATION_WIDE_LAYOUT_HOTFIX_V1 */
.quote-metrics{
  grid-template-columns:repeat(5,minmax(150px,1fr))
}
.quote-filter{
  display:grid;
  grid-template-columns:1fr 220px auto;
  gap:10px;
  margin:14px 0
}
.quote-status{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  background:#eef2f7;
  color:#52606d
}
.quote-status.DRAFT{background:#eef2f7}
.quote-status.READY{background:#eaf2ff;color:#245ba7}
.quote-status.SENT{background:#fff3d8;color:#8b5b00}
.quote-status.ACCEPTED{background:#e8f8f1;color:#257a59}
.quote-status.REJECTED,
.quote-status.CANCELLED{background:#fdebec;color:#b42318}

/* The base application dialog is 650px. Quotation needs a true workspace. */
.quote-dialog{
  width:min(1180px,calc(100vw - 24px));
  max-width:none
}
.quote-dialog.quote-wide{
  width:min(1480px,calc(100vw - 24px));
  max-width:none
}
.quote-dialog .modal-card{
  width:100%;
  max-height:calc(100vh - 24px);
  overflow:auto;
  padding-bottom:0
}
.quote-dialog #modalBody{
  min-width:0
}

.quote-form{
  display:grid;
  gap:14px
}
.quote-form>.form-grid{
  grid-template-columns:repeat(3,minmax(0,1fr))
}
.quote-form>.form-grid .span-2{
  grid-column:span 2
}

.quote-items .qi-price{
  min-width:0
}

.quote-footer{
  position:sticky;
  bottom:0;
  z-index:10;
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin:0 -23px;
  padding:14px 23px;
  border-top:1px solid var(--line);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px)
}
.quote-head{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding-right:30px
}
.quote-head h3{margin:5px 0}
.quote-totals{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:10px;
  margin:16px 0
}
.quote-totals>div{
  border:1px solid var(--line);
  border-radius:12px;
  padding:12px
}
.quote-totals small{
  display:block;
  color:var(--muted);
  margin-bottom:6px
}
.quote-totals strong{font-size:20px}
.quote-actions{
  position:sticky;
  bottom:0;
  z-index:9;
  justify-content:flex-end;
  margin:14px -23px -23px;
  padding:14px 23px;
  border-top:1px solid var(--line);
  background:rgba(255,255,255,.97);
  backdrop-filter:blur(12px)
}
.quote-dialog .table-wrap>.table{
  min-width:900px
}
.table td small{
  display:block;
  color:var(--muted);
  margin-top:4px
}

@media(max-width:1100px){
  .quote-form>.form-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))
  }
  .quote-form>.form-grid .span-2{
    grid-column:1/-1
  }
}

@media(max-width:900px){
  .quote-metrics{grid-template-columns:repeat(2,1fr)}
  .quote-filter{grid-template-columns:1fr}
  .quote-totals{grid-template-columns:repeat(2,1fr)}
  .quote-dialog,
  .quote-dialog.quote-wide{
    width:calc(100vw - 12px)
  }
  .quote-dialog .modal-card{
    max-height:calc(100vh - 12px);
    border-radius:16px
  }
}

/* Mobile: each product becomes a readable card rather than a crushed table row. */
@media(max-width:720px){
  .quote-form>.form-grid{
    grid-template-columns:1fr
  }
  .quote-form>.form-grid .span-2{
    grid-column:auto
  }
  .quote-head{
    flex-direction:column;
    padding-right:32px
  }
  .quote-totals{
    grid-template-columns:1fr 1fr
  }
  .quote-footer{
    flex-wrap:wrap;
    margin:0 -23px;
    padding-bottom:max(14px,env(safe-area-inset-bottom))
  }
  .quote-footer button{
    flex:1
  }
  .quote-actions{
    flex-wrap:wrap
  }
  .quote-actions button{
    flex:1 1 145px
  }
}

/* CRM_QUOTATION_DISCOUNT_APPROVAL_UI_V1 */
.quote-head-statuses{
  display:flex;
  align-items:flex-end;
  gap:8px;
  flex-direction:column
}
.quote-approval{
  display:inline-flex;
  align-items:center;
  width:max-content;
  padding:5px 9px;
  border-radius:999px;
  font-size:11px;
  font-weight:800;
  background:#edf2f7;
  color:#52606d;
  white-space:nowrap
}
.quote-approval.REQUIRED{background:#fff3d8;color:#8b5b00}
.quote-approval.PENDING{background:#eaf2ff;color:#245ba7}
.quote-approval.APPROVED{background:#e8f8f1;color:#257a59}
.quote-approval.REJECTED{background:#fdebec;color:#b42318}
.quote-approval.NOT_REQUIRED{background:#edf2f7;color:#64748b}
.quote-approval-panel{
  display:flex;
  justify-content:space-between;
  gap:16px;
  align-items:center;
  margin:14px 0;
  padding:14px 16px;
  border:1px solid var(--line);
  border-radius:14px;
  background:#f8fafc
}
.quote-approval-panel>div{
  display:grid;
  gap:5px
}
.quote-approval-panel small,
.quote-approval-panel span{color:var(--muted)}
.quote-approval-panel.REQUIRED,
.quote-approval-panel.PENDING{border-color:#f1d39b;background:#fffaf0}
.quote-approval-panel.APPROVED{border-color:#b7e5d2;background:#f2fbf7}
.quote-approval-panel.REJECTED{border-color:#efb7bd;background:#fff7f7}
.quote-list-table{min-width:1250px}
.quote-list-table td small{display:block;margin-top:5px;color:var(--muted)}
.quote-metrics{grid-template-columns:repeat(6,minmax(140px,1fr))}
.quote-metrics .risk{border-color:#f1d39b;background:#fffaf0}
.quote-actions button[disabled]{opacity:.55;cursor:not-allowed}

@media(max-width:1200px){
  .quote-metrics{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:720px){
  .quote-head-statuses{align-items:flex-start}
  .quote-approval-panel{align-items:flex-start;flex-direction:column}
  .quote-metrics{grid-template-columns:repeat(2,1fr)}
}
