.proposal-row { width: 100%; border: 0; background: transparent; color: inherit; text-align: left; cursor: pointer; }
.proposal-row:hover { background: #f8f7fc; }
.proposal-total { font-size: 28px; color: var(--purple); }
.proposal-heading-actions { display: flex; align-items: center; gap: 16px; }
.proposal-layout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 18px; align-items: start; }
.proposal-item-form { display: grid; gap: 14px; position: sticky; top: 105px; }
.proposal-item-form h3 { margin: 0; }
.proposal-environment { border-top: 1px solid var(--line); padding: 15px 0; }
.proposal-environment:first-child { border-top: 0; }
.proposal-environment h4 { margin: 0 0 8px; }
.environment-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.environment-heading h4 { margin: 0; }
.environment-actions { display: flex; align-items: center; justify-content: flex-end; gap: 7px; flex-wrap: wrap; }
.environment-actions .button { padding: 7px 10px; font-size: 11px; }
.button.danger { color: #a12620; background: #fde8e7; }
.suggestion-button { padding: 7px 10px; font-size: 11px; color: var(--purple); }
.suggestion-dialog-content { padding: 25px; }
.suggestion-dialog-content > p { color: var(--muted); }
.suggestion-list { display: grid; gap: 10px; margin: 16px 0; }
.suggestion-card { display: flex; justify-content: space-between; align-items: center; gap: 15px; border: 1px solid var(--line); border-radius: 10px; padding: 13px; }
.suggestion-card small { display: block; color: var(--muted); margin-top: 4px; }
.import-preview { color: var(--muted); min-height: 20px; }
.proposal-line { display: grid; grid-template-columns: minmax(0, 1fr) auto 112px; gap: 12px; align-items: center; padding: 11px; border-radius: 9px; }
.proposal-line:nth-child(even) { background: #f7f7fa; }
.proposal-line small { display: block; color: var(--muted); margin-top: 4px; }
.item-description { display: block; color: #555; font-size: 12px; line-height: 1.4; margin-top: 4px; }
.editable-description { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 7px; align-items: end; margin-top: 7px; }
.editable-description textarea { min-height: 54px; resize: vertical; }
.save-description { white-space: nowrap; padding: 9px 11px; font-size: 11px; }
.inline-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.adjustments-bar { display: grid; grid-template-columns: 1fr 140px 140px 140px auto; gap: 15px; align-items: end; margin-bottom: 18px; }
.adjustments-bar span { display: block; color: var(--muted); font-size: 12px; margin-bottom: 6px; }
.adjustments-bar strong { font-size: 20px; }
.adjustments-bar .message { grid-column: 1 / -1; margin: 0; min-height: 0; }
.payment-terms { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 15px; align-items: end; margin-bottom: 18px; }
.payment-terms .message { grid-column: 1 / -1; margin: 0; min-height: 0; }
.price-display { display: grid; grid-template-columns: minmax(260px, 420px) auto 1fr; gap: 15px; align-items: end; margin-bottom: 18px; }
.price-display .message { margin: 0; min-height: 0; align-self: center; }
.remove-item { border: 0; background: transparent; color: #a22; font-size: 20px; cursor: pointer; }
.item-actions { display: flex; align-items: center; justify-content: flex-end; }
.edit-item { border: 0; background: transparent; color: var(--purple); font-size: 18px; cursor: pointer; }
.order-controls { display: inline-flex; align-items: center; }
.order-button { display: inline-grid; place-items: center; width: 25px; height: 25px; padding: 0; border: 1px solid var(--line); background: #fff; color: var(--purple); cursor: pointer; font-size: 15px; line-height: 1; }
.order-button:first-child { border-radius: 6px 0 0 6px; }
.order-button + .order-button { margin-left: -1px; border-radius: 0 6px 6px 0; }
.order-button:disabled { color: #bbb; background: #f4f4f6; cursor: default; }
.empty.compact { padding: 14px !important; margin: 0; }
@media (max-width: 900px) { .proposal-layout { grid-template-columns: 1fr; } .proposal-item-form { position: static; } .adjustments-bar { grid-template-columns: 1fr 1fr; } .payment-terms,.price-display { grid-template-columns: 1fr; } }
.dossier-summary { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }
.dossier-summary article { background:#fff; border:1px solid var(--line); border-radius:14px; padding:17px; }
.dossier-summary span { display:block; color:var(--muted); font-size:11px; text-transform:uppercase; margin-bottom:7px; }
.dossier-summary b,.dossier-summary small { display:block; }
.dossier-summary small { color:var(--muted); margin-top:5px; }
.dossier-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
.dossier-list { display:grid; gap:8px; }
.dossier-card { border:1px solid var(--line); border-radius:10px; padding:12px; display:flex; justify-content:space-between; align-items:center; gap:10px; background:#fafafd; }
.dossier-card small { display:block; color:var(--muted); margin-top:4px; }
.checklist-list { display:grid; gap:8px; }
.checklist-item { display:flex; align-items:center; gap:10px; padding:9px; border-radius:8px; background:#f7f7fa; font-size:13px; font-weight:650; }
.checklist-item input { width:auto; }
.checklist-item.done { color:#558b32; text-decoration:line-through; background:#edf6e8; }
.timeline-list { display:grid; gap:0; }
.timeline-entry { border-left:2px solid #d9d3ec; padding:0 0 16px 15px; position:relative; }
.timeline-entry:before { content:''; position:absolute; left:-6px; top:2px; width:10px; height:10px; border-radius:50%; background:var(--purple); }
.timeline-entry small { display:block; color:var(--muted); margin-top:4px; }
.service-order-line { display:grid; grid-template-columns:minmax(240px, .8fr) minmax(300px, 1.2fr); gap:18px; align-items:end; padding:12px; border-top:1px solid var(--line); }
.service-order-line small { display:block; color:var(--muted); margin-top:6px; }
.service-order-note { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; align-items:end; }
.service-order-note textarea { min-height:54px; }
.service-order-note .button { white-space:nowrap; }
.project-images-panel { margin-bottom:18px; }
.project-images-panel h3 { margin:5px 0; }
.project-images-panel > div > p { color:var(--muted); }
.project-images-panel form { display:grid; grid-template-columns:1fr 1fr auto; gap:12px; align-items:end; margin:16px 0; }
.project-images-panel form .message { grid-column:1/-1; margin:0; min-height:0; }
.project-images-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(180px,1fr)); gap:13px; }
.project-image-card { margin:0; border:1px solid var(--line); border-radius:11px; overflow:hidden; background:#fafafd; position:relative; }
.project-image-card img { width:100%; height:150px; object-fit:contain; background:#eeeef2; display:block; }
.project-image-card figcaption { padding:10px; font-size:12px; color:#555; }
.remove-project-image { position:absolute; top:7px; right:7px; border:0; border-radius:7px; padding:6px 8px; background:#fff; color:#a22; cursor:pointer; box-shadow:0 2px 8px #0002; }
@media (max-width:900px) { .dossier-summary { grid-template-columns:1fr 1fr; } .dossier-grid { grid-template-columns:1fr; } }
@media (max-width:700px) { .service-order-line,.service-order-note,.project-images-panel form { grid-template-columns:1fr; } }
.proposal-event-dates{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(420px,1.5fr) auto;gap:22px;align-items:end;margin-bottom:18px}.proposal-event-dates h3{margin:5px 0}.proposal-event-dates p{margin:0;color:var(--muted);font-size:12px}.proposal-date-actions{display:grid;gap:4px;align-content:end}.proposal-date-actions .message{max-width:220px}@media(max-width:1050px){.proposal-event-dates{grid-template-columns:1fr}.proposal-date-actions{justify-items:start}}
.proposal-current-dates{margin-top:13px;padding:11px;border-radius:9px;background:#f4f2fa;font-size:12px;line-height:1.55}.proposal-current-dates b,.proposal-current-dates span{display:block}.proposal-current-dates span{color:var(--muted)}
#recommendationResults { display: grid; gap: 10px; }
#recommendationResults .suggestion-card > div { min-width: 0; }
#recommendationResults input[type="number"] { width: 110px; display: block; margin-top: 5px; }
#recommendationBriefing { width: 100%; box-sizing: border-box; margin-top: 8px; }
@media (max-width: 600px) {
  #recommendationResults .suggestion-card { flex-direction: column; align-items: stretch; }
}
