/* Opportunities owns its foreground/surface pairs, including mixed Branding.
   No changes to pipeline data, aging borders, layout or other portal modules. */
.kanbanRecovery{grid-column:1/-1;min-width:0}
.kanbanRecoveryCards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:12px}
@media screen {
#tab-opportunities {
  --opp-surface: var(--surface-primary, #f5f8fc);
  --opp-ink: var(--text-primary, #0b172a);
  color: var(--opp-ink);
}
#tab-opportunities :is(.riPageHeader, .panel, .kanbanCol, .oppForecastGrid > article, .oppIntelSplit > div),
body[data-active-tab="opportunities"] #opsDetailBackdrop .opsDetailModal {
  --opp-surface: var(--card-background, var(--surface-secondary, #fff));
  --opp-ink: var(--card-text, var(--text-primary, #0b172a));
  background: var(--opp-surface) !important;
  color: var(--opp-ink) !important;
}
#tab-opportunities :is(.riKpiCard, .kanbanCard, .oppSummaryCards > article, .duplicateAlertList article),
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(.checklistIntro, .oppCommentsList article) {
  --opp-surface: var(--vcard-background, var(--card-background, var(--surface-secondary, #fff)));
  --opp-ink: var(--vcard-text, var(--card-text, var(--text-primary, #0b172a)));
  background: var(--opp-surface) !important;
  color: var(--opp-ink) !important;
}
#tab-opportunities :is(h2, h3, h4, p, label, span, strong, b, em, small, th, td,
  .eyebrow, .notice, .kanbanEmpty, .kanbanDrag, .kanbanProducts, .kanbanAging),
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(h3, h4, p, label, span, strong, b, em, small, time, .notice, .opsAllGood) {
  color: var(--opp-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}
#tab-opportunities .riPageHeader :is(h2, p, .eyebrow) { text-shadow: none !important; }
#tab-opportunities :is(small, .kanbanClient, .kanbanProducts),
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(small, time) {
  color: color-mix(in srgb, var(--opp-ink) 85%, var(--opp-surface)) !important;
  opacity: 1 !important;
}
#tab-opportunities :is(.notice, .riStagePill, .riDays, .productPill, .kanbanPrice, .kanbanNext, .kanbanStatus, .kanbanEmpty, .kanbanMeta > span),
#tab-opportunities .riOppTable tr:hover td,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(.notice, .opsAllGood, .opportunityChecklist > label) {
  background: var(--opp-surface) !important;
  color: var(--opp-ink) !important;
}
/* Explicit status pairs remain distinguishable by both text and hue. */
#tab-opportunities :is(.riHeaderBadge, .riScorePill, .kanbanSource, .kanbanApproval, .kanbanAging, .kanbanColHead > span, .quoteDone, .kanbanNext .warn, .kanbanMissing) {
  --opp-surface: #e8f1ff; --opp-ink: #0759c7;
  background: var(--opp-surface) !important;
  color: var(--opp-ink) !important;
  -webkit-text-fill-color: currentColor !important;
}
#tab-opportunities :is(.riScorePill.high, .kanbanAging.green, .kanbanSource.manual, .kanbanApproval.approved, .quoteDone) {
  --opp-surface: #dcfce7; --opp-ink: #166534;
}
#tab-opportunities :is(.riScorePill.mid, .kanbanAging.yellow, .kanbanApproval.pending, .kanbanNext .warn, .kanbanMissing) {
  --opp-surface: #fef3c7; --opp-ink: #854d0e;
}
#tab-opportunities :is(.riScorePill.low, .kanbanAging.red) {
  --opp-surface: #fee2e2; --opp-ink: #991b1b;
}
#tab-opportunities :is(input, select, textarea),
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(input, select, textarea) {
  background: var(--input-background, #fff) !important;
  color: var(--input-text, #0b172a) !important;
  -webkit-text-fill-color: currentColor !important;
}
#tab-opportunities :is(input, textarea)::placeholder,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(input, textarea)::placeholder {
  color: var(--input-text, #0b172a) !important;
  -webkit-text-fill-color: var(--input-text, #0b172a) !important;
  opacity: .75 !important;
}
#tab-opportunities :is(input, select, textarea):disabled,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(input, select, textarea):disabled {
  opacity: .8 !important; cursor: not-allowed;
}
#tab-opportunities :is(button, .btn),
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(button, .btn) {
  background: #fff !important; color: #0759c7 !important;
  -webkit-text-fill-color: currentColor !important; border-color: #7296c9 !important;
}
#tab-opportunities :is(button, .btn).primary,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(button, .btn).primary {
  background: #0759c7 !important; color: #fff !important;
}
#tab-opportunities :is(button, .btn).danger,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(button, .btn).danger {
  background: #fee2e2 !important; color: #991b1b !important;
}
#tab-opportunities .kanbanWatch.active { background: #0b172a !important; color: #ffd566 !important; }
#tab-opportunities button :is(span, strong, small),
body[data-active-tab="opportunities"] #opsDetailBackdrop button :is(span, strong, small) { color: inherit !important; }
#tab-opportunities :is(button, input, select, textarea):focus-visible,
body[data-active-tab="opportunities"] #opsDetailBackdrop :is(button, input, select, textarea):focus-visible {
  outline: 2px solid currentColor !important; outline-offset: 3px;
}

.opportunityOutcomeFilters{display:grid;grid-template-columns:repeat(5,minmax(135px,1fr));gap:10px;align-items:end;margin-bottom:14px}.opportunityOutcomeFilters :is(#outcomeSearch,#applyOutcomeFilters){grid-column:span 2}
.opportunityOutcomeSummary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.opportunityOutcomeSummary span{padding:7px 10px;border:1px solid #b7c9df;border-radius:999px;background:#fff;color:#173454}
.opportunityOutcomes{min-width:0}.opportunityOutcomeTableWrap{max-height:620px;overflow:auto;border:1px solid #c5d5e8;border-radius:16px;background:#fff;box-shadow:0 12px 30px rgba(20,52,88,.08)}.opportunityOutcomeTable{width:100%;min-width:1120px;border-collapse:separate;border-spacing:0;table-layout:fixed;color:#173454}.opportunityOutcomeTable th,.opportunityOutcomeTable td{padding:12px 14px;border-bottom:1px solid #d8e3f0;text-align:left;vertical-align:middle}.opportunityOutcomeTable thead th{position:sticky;top:0;z-index:2;background:#0d3159;color:#fff!important;-webkit-text-fill-color:#fff!important;font-size:.76rem;line-height:1.2;text-transform:uppercase;letter-spacing:.045em}.opportunityOutcomeTable thead th:first-child{border-radius:14px 0 0}.opportunityOutcomeTable thead th:last-child{border-radius:0 14px 0 0}.opportunityOutcomeTable tbody tr{background:#fff}.opportunityOutcomeTable tbody tr:nth-child(even){background:#f4f8fd}.opportunityOutcomeTable tbody tr:hover{background:#eaf3ff}.opportunityOutcomeTable tbody tr:last-child td{border-bottom:0}.opportunityOutcomeTable th:nth-child(1){width:145px}.opportunityOutcomeTable th:nth-child(2){width:190px}.opportunityOutcomeTable th:nth-child(3){width:170px}.opportunityOutcomeTable th:nth-child(4){width:170px}.opportunityOutcomeTable th:nth-child(5){width:160px}.opportunityOutcomeTable th:nth-child(6){width:145px}.opportunityOutcomeTable th:nth-child(7){width:190px}.opportunityOutcomeTable th:nth-child(8){width:190px}.opportunityOutcomeStatus{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;font-size:.74rem;font-weight:900;line-height:1.15;white-space:normal}.opportunityOutcomeStatus.won{background:#dcfce7;color:#166534!important;-webkit-text-fill-color:#166534!important}.opportunityOutcomeStatus.lost{background:#fee2e2;color:#991b1b!important;-webkit-text-fill-color:#991b1b!important}.opportunityOutcomeStatus.abandoned{background:#fef3c7;color:#854d0e!important;-webkit-text-fill-color:#854d0e!important}.opportunityOutcomeText{display:block;overflow-wrap:anywhere;word-break:normal;line-height:1.35}.opportunityOutcomeAmount{white-space:nowrap}.opportunityOutcomeActions{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.opportunityOutcomeActions .btn{min-height:36px;padding:7px 10px;white-space:nowrap}
@media(max-width:900px){.opportunityOutcomeFilters{grid-template-columns:1fr 1fr}.opportunityOutcomeFilters :is(input[type=search],button){grid-column:1/-1}}
@media(max-width:760px){.opportunityOutcomeTableWrap{max-height:none;overflow:visible;border:0;background:transparent;box-shadow:none}.opportunityOutcomeTable{display:block;min-width:0}.opportunityOutcomeTable thead{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.opportunityOutcomeTable tbody{display:grid;gap:12px}.opportunityOutcomeTable tbody tr,.opportunityOutcomeTable tbody tr:nth-child(even){display:grid;gap:0;padding:5px 14px;border:1px solid #c5d5e8;border-left:5px solid #63758b;border-radius:15px;background:#fff;box-shadow:0 8px 24px rgba(20,52,88,.08)}.opportunityOutcomeTable tbody tr.won{border-left-color:#168454}.opportunityOutcomeTable tbody tr.lost{border-left-color:#c23847}.opportunityOutcomeTable tbody tr.abandoned{border-left-color:#c48a17}.opportunityOutcomeTable td{display:grid;grid-template-columns:minmax(108px,34%) minmax(0,1fr);gap:10px;align-items:start;padding:9px 0;border-bottom:1px solid #e2eaf3;overflow-wrap:anywhere}.opportunityOutcomeTable td::before{content:attr(data-label);font-size:.72rem;font-weight:900;letter-spacing:.035em;text-transform:uppercase;color:#536b87}.opportunityOutcomeTable td:last-child{border-bottom:0}.opportunityOutcomeActions{display:grid;grid-template-columns:minmax(108px,34%) minmax(0,1fr)}.opportunityOutcomeActions::before{grid-row:1/-1}.opportunityOutcomeActions .btn{width:100%;white-space:normal}}

.opportunityDocumentModal[hidden]{display:none}.opportunityDocumentModal{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;padding:24px;background:rgba(4,18,38,.72);backdrop-filter:blur(5px)}.opportunityDocumentModal>section{width:min(1180px,100%);max-height:calc(100vh - 48px);overflow:auto;border:1px solid #b8cce5;border-radius:22px;background:#f6f9fd;color:#10243f;box-shadow:0 28px 80px rgba(1,17,40,.35)}.opportunityDocumentModal header{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid #cad8e9;background:#0d3159;color:#fff}.opportunityDocumentModal header p{margin:0 0 3px;font-size:.72rem;font-weight:800;letter-spacing:.16em}.opportunityDocumentModal header h2{margin:0;color:#fff}.opportunityDocumentClose{width:42px;height:42px;border:1px solid #8fb4dc;border-radius:12px;background:#fff;color:#0d3159;font-size:1.6rem}.opportunityDocumentUpload,.opportunityDocumentFilters{margin:18px 22px;padding:16px;border:1px solid #c7d8eb;border-radius:16px;background:#fff}.opportunityDocumentUpload h3{margin:0 0 12px}.opportunityDocumentUploadGrid,.opportunityDocumentFilters{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:12px;align-items:end}.opportunityDocumentUploadGrid label,.opportunityDocumentFilters label{display:grid;gap:6px;font-weight:700}.opportunityDocumentUploadGrid input,.opportunityDocumentUploadGrid select,.opportunityDocumentFilters input,.opportunityDocumentFilters select{width:100%;min-height:42px;border:1px solid #9eb4ce;border-radius:10px;padding:8px;background:#fff;color:#10243f}.opportunityDocumentUpload>.btn{margin-top:12px}.opportunityDocumentFeedback{margin:16px 22px 0;padding:12px 14px;border-radius:12px;font-weight:700}.opportunityDocumentFeedback.success{background:#dcfce7;color:#166534}.opportunityDocumentFeedback.error{background:#fee2e2;color:#991b1b}.opportunityDocumentTableWrap{margin:0 22px 22px;overflow:auto;border:1px solid #c7d8eb;border-radius:16px;background:#fff}.opportunityDocumentTable{width:100%;border-collapse:collapse;min-width:920px}.opportunityDocumentTable th,.opportunityDocumentTable td{padding:12px 14px;border-bottom:1px solid #dbe5f0;text-align:left;vertical-align:middle}.opportunityDocumentTable th{background:#eaf2fb;color:#173c66;font-size:.78rem;text-transform:uppercase;letter-spacing:.04em}.opportunityDocumentTable tr:last-child td{border-bottom:0}.opportunityDocumentTable .opportunityDocumentHistory{background:#f8fbff}.opportunityDocumentName{min-width:190px}.opportunityDocumentName strong{display:block;margin-top:6px}.opportunityDocumentIcon{display:inline-grid;place-items:center;min-width:42px;height:32px;padding:0 8px;border-radius:9px;background:color-mix(in srgb,var(--document-color) 15%,white);color:var(--document-color);font-size:.72rem;font-weight:900}.opportunityDocumentStatus{display:inline-flex;padding:5px 9px;border-radius:999px;background:#dcfce7;color:#166534;font-weight:800;font-size:.75rem}.opportunityDocumentStatus.annulled{background:#fee2e2;color:#991b1b}.opportunityDocumentStatus.superseded{background:#e8eef6;color:#425b78}.opportunityDocumentTable td small{display:block;margin-top:5px}.opportunityDocumentActions{display:flex;gap:6px;flex-wrap:wrap}.opportunityDocumentActions .btn{padding:7px 10px}.documentsKanbanBtn [data-document-count]{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:#0d3159;color:#fff}.opportunityDocumentModal #opportunityDocumentEmpty{margin:0 22px 22px}body.opportunityDocumentModalOpen{overflow:hidden}
@media(max-width:760px){.opportunityDocumentModal{padding:0;place-items:stretch}.opportunityDocumentModal>section{max-height:100vh;border-radius:0}.opportunityDocumentUploadGrid,.opportunityDocumentFilters{grid-template-columns:1fr}.opportunityDocumentModal header{padding:16px}.opportunityDocumentUpload,.opportunityDocumentFilters,.opportunityDocumentTableWrap{margin-left:12px;margin-right:12px}.opportunityDocumentTable{min-width:760px}}
}
