.app-shell .contracting-panel h2 { margin-bottom: 20px; }
.app-shell .contract-reference { display:flex; flex-wrap:wrap; align-items:center; gap:20px; padding:18px; border:1px solid #dde7eb; background:#f6f9fa; border-radius:12px; margin-bottom:22px; }
.app-shell .contract-reference > div {display:grid;gap:4px;flex:1 1 190px;}
.app-shell .contract-reference span,.app-shell .contract-accepted > span {font-size:.82rem;color:var(--muted,#536f80);}
.app-shell .contract-reference strong {font-variant-numeric:tabular-nums;}
.app-shell .contract-close-form,.app-shell .contract-upload,.app-shell .contract-reuse {display:flex;align-items:end;flex-wrap:wrap;gap:12px;}
.app-shell .contract-close-form > label,.app-shell .contract-upload > label,.app-shell .contract-reuse > label {flex:1 1 260px;min-width:0;}
.app-shell .contract-state {display:inline-flex;width:max-content;max-width:100%;padding:5px 9px;border-radius:8px;background:#edf3f6;color:#244555;font-size:.78rem;line-height:1.35;}
.app-shell .contract-state--generated,.app-shell .contract-state--verified {background:#e9f6f0;color:#08765a;}
.app-shell .contract-state--approval_pending,.app-shell .contract-state--received {background:#fff4d5;color:#885b00;}
.app-shell .contract-state--failed,.app-shell .contract-state--rejected {background:#fff0ec;color:#aa3a23;}
.app-shell .contract-feedback {padding:14px 18px;background:#eaf5ef;border-radius:10px;}
.app-shell .contract-feedback.is-error {background:#fff0ec;color:#9b2c20;}
.app-shell .contract-accepted {display:grid;gap:10px;padding:20px;background:#f3f8f5;border:1px solid #dae9df;border-radius:12px;margin-bottom:22px;}
.app-shell .contract-accepted strong {font-size:1.2rem;line-height:1.4;}
.app-shell .contract-accepted .btn {justify-self:start;}
.app-shell .contract-document {padding:22px 0;border-top:1px solid #dde7eb;}
.app-shell .contract-document header {display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px;}
.app-shell .contract-document h3 {font-size:1rem;margin:0;}
.app-shell .contract-document-file {display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;padding:14px 0;}
.app-shell .contract-document-file > div:first-child {flex:1 1 230px;min-width:0;}
.app-shell .contract-document-file small {display:block;margin-top:4px;color:var(--muted,#536f80);}
.app-shell .contract-document-file a {overflow-wrap:anywhere;}
.app-shell .contract-document details[open] {padding:12px;border:1px solid #dce6eb;border-radius:10px;min-width:220px;}
.app-shell .contract-approval {width:100%;min-width:0;max-width:22rem;box-sizing:border-box;text-align:left;white-space:normal;}
.app-shell .contract-approval[open] {padding:12px;border:1px solid #dce6eb;border-radius:10px;}
.app-shell .contract-approval > summary {min-height:44px;align-content:center;cursor:pointer;overflow-wrap:break-word;}
.app-shell .contract-approval > label {display:grid;gap:8px;min-width:0;margin:12px 0;text-align:left;white-space:normal;}
.app-shell .contract-approval textarea {display:block;box-sizing:border-box;width:100%;min-width:0;max-width:100%;min-height:88px;resize:vertical;}
.app-shell .contract-approval > .btn {width:100%;min-width:0;max-width:100%;min-height:44px;white-space:normal;overflow-wrap:break-word;}
.app-shell [data-table-id="commercial-offers"] .cell-action {min-width:180px;}
@media(max-width:767px){
  .app-shell [data-table-id="commercial-offers"] td.cell-action {grid-template-columns:minmax(0,1fr);min-width:0;white-space:normal;}
  .app-shell [data-table-id="commercial-offers"] td.cell-action > * {grid-column:1/-1;min-width:0;}
  .app-shell [data-table-id="commercial-offers"] .contract-approval {max-width:100%;}
}
.app-shell [data-table-id="commercial-offers"] small {display:block;color:var(--muted,#536f80);margin-top:4px;}
@media (max-width:600px) {.app-shell .contract-close-form > button,.app-shell .contract-upload > button,.app-shell .contract-reuse > button {width:100%;}.app-shell .contract-document header {align-items:start;}.app-shell .contract-document-file .table-actions {width:100%;}}
.app-shell .contract-history-list > div {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:14px 0;border-bottom:1px solid #dce6eb;}
/* Read-only pricing context stays next to the negotiated price. */
.offer-price-preview{padding:16px;border:1px solid #dbe5eb;border-radius:12px;background:#f4f8fa;min-width:0}
.offer-price-band{display:flex;align-items:center;gap:8px;color:#246276}
.offer-price-preview--ok .offer-price-band{color:#08765b}
.offer-price-preview--approval .offer-price-band,.offer-price-preview--attention .offer-price-band{color:#8b5b09}
.offer-price-preview--blocked .offer-price-band{color:#b1322d}
.offer-price-preview dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}
.offer-price-preview dl>div{display:grid;gap:6px;min-width:0}
.offer-price-preview dt{font-size:.8rem;color:#586d7d}
.offer-price-preview dd{margin:0;font-size:1rem;font-weight:650;font-variant-numeric:tabular-nums;overflow-wrap:normal}
.offer-price-preview p{font-size:.8rem;line-height:1.6;margin:8px 0 0}
@media(max-width:767px){.offer-price-preview dl{grid-template-columns:1fr;gap:12px}.offer-price-preview dl>div{display:flex;align-items:center;justify-content:space-between;gap:16px}.offer-price-preview dd{text-align:right}}
.contract-document-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:20px;padding:18px 0;border-bottom:1px solid #dce6eb}
.contract-document-row h3{font-size:1rem;margin:0 0 5px}.contract-document-row p{font-size:.8rem;color:#586d7d;margin:0}
.document-review-dialog{width:min(860px,calc(100vw - 32px));max-width:100%;max-height:calc(100dvh - 32px);padding:0;border:1px solid #dce6eb;border-radius:18px;background:#fff;color:#143544;box-shadow:0 24px 80px #06233340;overflow:hidden}
.document-review-dialog[open]{display:flex;flex-direction:column}.document-review-dialog::backdrop{background:#061d2a80}
.document-review-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid #dce6eb;flex:none}
.document-review-dialog h2{font-size:1.1rem;margin:0}.document-review-body{padding:24px;overflow:auto;min-height:0;overscroll-behavior:contain}
.document-review-status{display:flex;align-items:center;gap:12px;margin-bottom:20px}.document-review-file{border-bottom:1px solid #dce6eb;padding:0 0 24px;margin-bottom:24px;min-width:0}
.document-review-file h3{font-size:1rem;overflow-wrap:anywhere;margin:0 0 8px}.document-review-file p,.document-review-body>p{font-size:.85rem;line-height:1.6}
.document-review-preview{display:block;width:100%;height:360px;object-fit:contain;border:1px solid #dce6eb;border-radius:10px;margin:16px 0;background:#f4f8fa}
.document-review-actions{display:grid;gap:14px;margin:20px 0}.document-review-actions>.btn{justify-self:start}.document-review-body details{margin-top:18px}.document-review-body summary{min-height:44px;cursor:pointer;display:flex;align-items:center}
.document-review-history li{padding:12px 0;overflow-wrap:anywhere}.document-review-history li>span{display:block;font-size:.8rem;margin-top:4px}
.document-review-dialog>.contract-feedback,.document-review-leave{margin:0;padding:16px 24px;flex:none;font-size:.85rem;border-top:1px solid #dce6eb;border-radius:0}
.document-review-leave{background:#fff6df}.document-review-leave p{margin:0 0 12px}.document-review-dialog [hidden]{display:none!important}
@media(max-width:600px){.contract-document-row{grid-template-columns:minmax(0,1fr) auto;gap:12px}.contract-document-row>.btn{grid-column:1/-1;justify-self:start}.document-review-dialog{width:100vw;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.document-review-dialog>header{padding:14px 16px}.document-review-body{padding:16px}.document-review-preview{height:280px}.document-review-dialog>.contract-feedback,.document-review-leave{padding:12px 16px}}

.document-review-mobile-pdf{display:none}
@media(max-width:600px){object.document-review-preview{display:none}.document-review-mobile-pdf{display:block}}
