
#page-risk .rk-kpi[data-pop]:focus-visible { outline: 2px solid rgba(201,168,76,0.6); outline-offset: 2px; }
#page-risk .rk-kpi.rk-pop-open { border-color: rgba(201,168,76,0.32); box-shadow: 0 22px 44px -26px #000, 0 0 0 1px rgba(201,168,76,0.22), 0 0 30px -10px rgba(201,168,76,0.5); }
#page-risk .rko-kpi[data-pop]:focus-visible { outline: 2px solid rgba(201,168,76,0.6); outline-offset: 2px; }
#page-risk .rko-kpi.rko-pop-open { border-color: rgba(201,168,76,0.32); box-shadow: 0 22px 44px -26px #000, 0 0 0 1px rgba(201,168,76,0.22), 0 0 30px -10px rgba(201,168,76,0.5); }

/* ── FIX_RISK_LANDING_REBUILD_2026_06_29 — Risk matrix DOM CSS-grid heat-map (rebuild from
   design_samples/risk/risk_landing_command.html L187-279; ports the sample .matrix-board / .mx-*
   heat-map, re-prefixed rko-*, REPLACING the prior inline-SVG scatter host). The board
   min-height is CAPPED to ~380px (vs the sample standalone 500px) to fit the in-app #risk-content
   1.5fr matrix panel. Honest-empty: on a real account buildRiskMatrixHero plots NO chips (the empty
   axes+cells+legend skeleton still draws). ASCII-only comments (L18.8 lesson). */
#page-risk .rko-matrix-board {
  display: grid;
  grid-template-columns: 20px 60px 1fr;
  grid-template-rows: 1fr 22px 18px;
  column-gap: 9px; row-gap: 6px;
  min-height: 300px; height: 380px; max-height: 380px;
}
#page-risk .rko-mx-impact-title {
  grid-column: 1; grid-row: 1;
  display: flex; align-items: center; justify-content: center;
  font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: #8A857D;
  writing-mode: vertical-rl; transform: rotate(180deg); white-space: nowrap;
}
#page-risk .rko-mx-rowlabels {
  grid-column: 2; grid-row: 1;
  display: grid; grid-template-rows: repeat(3, 1fr); gap: 9px;
}
#page-risk .rko-mx-rowlabels .rko-rl {
  display: flex; align-items: center; justify-content: flex-end; text-align: right;
  font-size: 10.5px; font-weight: 600; color: #C4BFB6; line-height: 1.15; padding-right: 1px;
}
#page-risk .rko-mx-cells {
  grid-column: 3; grid-row: 1;
  display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(3, 1fr);
  gap: 9px;
}
#page-risk .rko-mx-cell {
  position: relative; border-radius: 11px;
  border: 1px solid rgba(255,255,255,0.05);
  display: flex; flex-direction: column; gap: 6px;
  padding: 9px 8px; min-height: 0; overflow: hidden;
  transition: opacity .4s cubic-bezier(0.4,0,0.2,1), transform .4s cubic-bezier(0.4,0,0.2,1);
}
#page-risk .rko-mx-cell.rko-mx-empty { align-items: flex-end; justify-content: flex-end; }
#page-risk .rko-mx-cell .rko-cell-tag {
  position: absolute; right: 8px; bottom: 7px;
  font-family: 'Montserrat', sans-serif; font-size: 8px; font-weight: 700; letter-spacing: .1em;
  text-transform: uppercase; opacity: .32; pointer-events: none;
}
#page-risk .rko-mx-chip {
  display: flex; align-items: center; gap: 7px;
  border-radius: 8px; padding: 6px 10px;
  font-size: 12px; font-weight: 600; line-height: 1.15;
  color: #F0EBE2; cursor: pointer; position: relative; z-index: 1;
  border: 1px solid var(--rko-chip-bd, rgba(255,255,255,0.14));
  background: var(--rko-chip-bg, rgba(255,255,255,0.05));
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
  transition: transform .16s cubic-bezier(0.4,0,0.2,1), box-shadow .16s cubic-bezier(0.4,0,0.2,1), border-color .16s cubic-bezier(0.4,0,0.2,1);
}
#page-risk .rko-mx-chip .rko-chip-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; background: var(--rko-chip-ac, #C9A84C); box-shadow: 0 0 8px var(--rko-chip-ac, #C9A84C); }
#page-risk .rko-mx-chip .rko-chip-name { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-risk .rko-mx-collabels {
  grid-column: 3; grid-row: 2;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px;
}
#page-risk .rko-mx-collabels .rko-cl {
  text-align: center; font-size: 10.5px; font-weight: 600; color: #C4BFB6;
}
#page-risk .rko-mx-lik-title {
  grid-column: 3; grid-row: 3;
  text-align: center;
  font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .18em;
  text-transform: uppercase; color: #8A857D;
}
@media (prefers-reduced-motion: reduce) {
  #page-risk .rko-mx-cell { transition: none !important; }
  #page-risk .rko-mx-chip { transition: none !important; }
}

/* ── Coverage Gaps tool surface (S1, FIX_RISK_COVERAGE_GAPS_S1_2026_06_17) ──────────────
   Built TO design_samples/risk/risk_coverage_gaps.html (L166-402), re-prefixed rk-cg-* and
   nested under #page-risk. REUSES the SHIPPED .rk-modal / .rk-mod-* family verbatim for the
   broker-prep packet modal (only the packet-BODY rules rk-cg-pkt-* / rk-cg-prov / rk-cg-cmp
   etc. are new). ASCII-only comments (a non-ASCII char silently drops the rule from the
   CSSOM - the L18.8 lesson the sales popover block above also notes). */
/* mini KPI strip (3 non-interactive tiles, sample L168-183) */
#page-risk .rk-cg-kpis { display: grid; grid-template-columns: repeat(3, 1fr); gap: 13px; margin: 0 0 22px; }
#page-risk .rk-cg-gk { position: relative; overflow: hidden; background: linear-gradient(165deg, #262320, #1f1c19); border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 15px 17px 14px; box-shadow: 0 16px 34px -28px #000, inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-cg-gk .rk-cg-gkl { font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-bottom: 8px; }
#page-risk .rk-cg-gk .rk-cg-gkv { font-family: 'Montserrat', sans-serif; font-size: 22px; font-weight: 800; color: #F0EBE2; line-height: 1; }
#page-risk .rk-cg-gk .rk-cg-gks { font-size: 11px; margin-top: 7px; color: #8A857D; }
/* layout: gap stack (main) + detection explainer (rail) (sample L185-195) */
#page-risk .rk-cg-grid { display: grid; grid-template-columns: 1.62fr 1fr; gap: 18px; align-items: start; }
#page-risk .rk-cg-panel { background: linear-gradient(170deg, #252220, #1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px; box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-cg-panel-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3px; }
#page-risk .rk-cg-panel-sub { font-size: 11.5px; color: #8A857D; margin: 2px 0 14px; }
#page-risk .rk-cg-gaps-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
#page-risk .rk-cg-gaps-head h3 .rk-cg-glyph { width: 26px; height: 26px; border-radius: 8px; background: linear-gradient(150deg, rgba(232,148,58,0.26), rgba(201,168,76,0.10)); display: grid; place-items: center; box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); }
#page-risk .rk-cg-gaps-head .rk-cg-count-b { font-family: 'Montserrat', sans-serif; font-size: 10.5px; font-weight: 700; color: #F0EBE2; background: rgba(232,148,58,0.16); border: 1px solid rgba(232,148,58,0.36); border-radius: 999px; padding: 3px 11px; letter-spacing: .03em; }
#page-risk .rk-cg-stack { display: flex; flex-direction: column; gap: 16px; }
/* the gap card - the centrepiece (sample L205-288) */
#page-risk .rk-cg-card { position: relative; overflow: hidden; background: linear-gradient(168deg, #262320, #1e1b18); border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px 17px; box-shadow: 0 22px 50px -38px #000, inset 0 1px 0 rgba(255,255,255,0.05); transition: border-color .2s cubic-bezier(0.4,0,0.2,1), box-shadow .2s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rk-cg-card.rk-cg-high { border-color: rgba(224,85,85,0.28); }
#page-risk .rk-cg-top { display: flex; align-items: flex-start; gap: 13px; }
#page-risk .rk-cg-ic { width: 40px; height: 40px; border-radius: 11px; flex: none; display: grid; place-items: center; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-cg-ic.red { background: linear-gradient(150deg, rgba(224,85,85,0.24), rgba(224,85,85,0.06)); }
#page-risk .rk-cg-tw { flex: 1; min-width: 0; }
#page-risk .rk-cg-title { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 15px; color: #F0EBE2; letter-spacing: -.005em; line-height: 1.2; }
#page-risk .rk-cg-tagrow { display: flex; align-items: center; gap: 8px; margin-top: 7px; flex-wrap: wrap; }
#page-risk .rk-cg-sev { font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 2px 8px; border-radius: 999px; }
#page-risk .rk-cg-sev.red { color: #E05555; background: rgba(224,85,85,0.13); border: 1px solid rgba(224,85,85,0.32); }
/* provenance chip - "computed from: CRM" (sample L231-237) */
#page-risk .rk-cg-prov { display: inline-flex; align-items: center; gap: 6px; font-size: 9.5px; font-weight: 600; letter-spacing: .02em; color: #C4BFB6; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.13); border-radius: 999px; padding: 3px 9px 3px 7px; }
#page-risk .rk-cg-prov .rk-cg-pvk { color: #8A857D; font-weight: 600; }
#page-risk .rk-cg-prov .rk-cg-pvs { font-family: 'Montserrat', sans-serif; font-weight: 700; color: var(--pc, #C4BFB6); }
#page-risk .rk-cg-prov.crm { --pc: #5B9BD5; } #page-risk .rk-cg-prov.financial { --pc: #4CAF7D; } #page-risk .rk-cg-prov.assets { --pc: #C9A84C; }
/* policy-says vs live-data comparison - the hero idea (sample L239-258) */
#page-risk .rk-cg-cmp { display: grid; grid-template-columns: 1fr auto 1fr; gap: 0; align-items: stretch; margin: 16px 0 13px; border: 1px solid rgba(255,255,255,0.07); border-radius: 13px; overflow: hidden; background: rgba(255,255,255,0.012); }
#page-risk .rk-cg-cell { padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; }
#page-risk .rk-cg-cell.policy { background: linear-gradient(180deg, rgba(255,255,255,0.015), transparent); }
#page-risk .rk-cg-cell.live { background: linear-gradient(180deg, rgba(91,155,213,0.07), rgba(91,155,213,0.02)); }
#page-risk .rk-cg-cell .rk-cg-cck { font-size: 9px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: #8A857D; display: flex; align-items: center; gap: 6px; }
#page-risk .rk-cg-cell.live .rk-cg-cck { color: #5B9BD5; }
#page-risk .rk-cg-cell .rk-cg-cck .rk-cg-blip { width: 6px; height: 6px; border-radius: 50%; background: #5B9BD5; box-shadow: 0 0 8px #5B9BD5; position: relative; }
#page-risk .rk-cg-cell .rk-cg-ccv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 27px; color: #F0EBE2; line-height: 1; }
#page-risk .rk-cg-cell.live .rk-cg-ccv { color: #dceaf8; }
#page-risk .rk-cg-cell .rk-cg-ccd { font-size: 10.5px; color: #8A857D; }
#page-risk .rk-cg-delta { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 0 16px; background: rgba(232,148,58,0.06); border-left: 1px solid rgba(255,255,255,0.07); border-right: 1px solid rgba(255,255,255,0.07); min-width: 108px; }
#page-risk .rk-cg-delta .rk-cg-cda { font-size: 13px; color: #E8943A; line-height: 1; }
#page-risk .rk-cg-delta .rk-cg-cdv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 21px; line-height: 1; }
#page-risk .rk-cg-delta .rk-cg-cdv.amber { color: #E8943A; } #page-risk .rk-cg-delta .rk-cg-cdv.blue { color: #5B9BD5; }
#page-risk .rk-cg-delta .rk-cg-cdl { font-size: 8.5px; letter-spacing: .08em; text-transform: uppercase; color: #8A857D; font-weight: 700; text-align: center; }
/* drift bar - animated policy baseline vs live overshoot (sample L260-268) */
#page-risk .rk-cg-drift { margin: 0 0 12px; }
#page-risk .rk-cg-drift .rk-cg-dbt { position: relative; height: 9px; border-radius: 6px; background: rgba(255,255,255,0.06); overflow: hidden; }
#page-risk .rk-cg-drift .rk-cg-dbase { position: absolute; left: 0; top: 0; height: 100%; border-radius: 6px; background: linear-gradient(90deg, rgba(201,168,76,0.5), rgba(201,168,76,0.32)); width: 0; transition: width 1.1s cubic-bezier(.2,.7,.2,1); }
#page-risk .rk-cg-drift .rk-cg-dlive { position: absolute; left: 0; top: 0; height: 100%; border-radius: 6px; background: linear-gradient(90deg, #5B9BD5, #8fc0ec); width: 0; transition: width 1.1s cubic-bezier(.2,.7,.2,1) .15s; box-shadow: 0 0 12px -2px rgba(91,155,213,0.6); }
#page-risk .rk-cg-drift .rk-cg-dmark { position: absolute; top: -3px; height: 15px; width: 2px; background: #C9A84C; border-radius: 2px; box-shadow: 0 0 7px rgba(201,168,76,0.28); opacity: 0; transition: opacity .4s ease .9s; }
#page-risk .rk-cg-drift .rk-cg-dleg { display: flex; gap: 16px; margin-top: 8px; font-size: 10px; color: #8A857D; }
/* why this matters (sample L270-275) */
#page-risk .rk-cg-why { display: flex; gap: 10px; padding: 11px 13px; border-radius: 11px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.07); margin-bottom: 14px; }
#page-risk .rk-cg-why .rk-cg-wyic { width: 20px; height: 20px; flex: none; display: grid; place-items: center; margin-top: 1px; }
#page-risk .rk-cg-foot { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
#page-risk .rk-cg-detected { font-size: 10.5px; color: #8A857D; display: flex; align-items: center; gap: 7px; }
#page-risk .rk-cg-actions { display: flex; align-items: center; gap: 9px; }
#page-risk .rk-cg-btn-ghost { font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; cursor: pointer; border-radius: 9px; padding: 9px 14px; border: 1px solid rgba(255,255,255,0.13); background: rgba(255,255,255,0.04); color: #C4BFB6; transition: all .18s cubic-bezier(0.4,0,0.2,1); white-space: nowrap; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-cg-btn-prep { display: inline-flex; align-items: center; gap: 8px; font-family: 'Montserrat', sans-serif; font-size: 11.5px; font-weight: 700; color: #16140F; background: linear-gradient(180deg, #C9A84C, #9c7f33); border: none; border-radius: 9px; padding: 10px 16px; cursor: pointer; box-shadow: 0 8px 22px -8px rgba(201,168,76,0.55), inset 0 1px 0 rgba(255,255,255,0.3); transition: transform .16s cubic-bezier(0.4,0,0.2,1), box-shadow .16s cubic-bezier(0.4,0,0.2,1); white-space: nowrap; }
/* detection explainer rail (sample L290-321) */
#page-risk .rk-cg-flow { display: flex; flex-direction: column; gap: 0; margin: 6px 0 4px; }
#page-risk .rk-cg-step { display: flex; gap: 13px; position: relative; padding-bottom: 18px; }
#page-risk .rk-cg-step .rk-cg-srail { position: absolute; left: 17px; top: 36px; bottom: -2px; width: 2px; background: linear-gradient(180deg, rgba(201,168,76,0.4), rgba(201,168,76,0.08)); }
#page-risk .rk-cg-step:last-child .rk-cg-srail { display: none; }
#page-risk .rk-cg-num { width: 36px; height: 36px; border-radius: 11px; flex: none; display: grid; place-items: center; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 14px; color: #C9A84C; background: linear-gradient(150deg, rgba(201,168,76,0.18), rgba(201,168,76,0.04)); border: 1px solid rgba(201,168,76,0.28); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); z-index: 1; }
#page-risk .rk-cg-step.detect .rk-cg-num { color: #E8943A; background: linear-gradient(150deg, rgba(232,148,58,0.2), rgba(232,148,58,0.05)); border-color: rgba(232,148,58,0.32); }
#page-risk .rk-cg-sb { flex: 1; padding-top: 1px; }
#page-risk .rk-cg-sb .rk-cg-st { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px; color: #F0EBE2; }
#page-risk .rk-cg-sb .rk-cg-sd { font-size: 11px; color: #8A857D; margin-top: 3px; line-height: 1.5; }
#page-risk .rk-cg-srcs { display: flex; gap: 6px; margin-top: 8px; flex-wrap: wrap; }
#page-risk .rk-cg-srcs .rk-cg-srcchip { font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .03em; padding: 2px 8px; border-radius: 999px; border: 1px solid rgba(255,255,255,0.13); color: #C4BFB6; background: rgba(255,255,255,0.03); }
#page-risk .rk-cg-checks { margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.07); }
#page-risk .rk-cg-checks .rk-cg-exch { font-size: 9.5px; letter-spacing: .1em; text-transform: uppercase; font-weight: 700; color: #8A857D; margin-bottom: 9px; display: flex; align-items: center; gap: 7px; }
#page-risk .rk-cg-excrow { display: flex; align-items: center; gap: 9px; padding: 5px 0; font-size: 11px; border-bottom: 1px solid rgba(255,255,255,0.04); }
#page-risk .rk-cg-excd { width: 6px; height: 6px; border-radius: 50%; flex: none; }
/* FIX_ICAUDIT_RISKCG_DOT_2026_09_01 — honest-neutral dot state, mirrors .rk-cg-excv.unk's color
   exactly so the dot and the adjacent value chip read as one honest neutral signal. */
#page-risk .rk-cg-excd.unk { background: #8B93A5; box-shadow: 0 0 7px rgba(139,147,165,0.4); }
#page-risk .rk-cg-excl { flex: 1; color: #C4BFB6; }
#page-risk .rk-cg-excv { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 10px; }
#page-risk .rk-cg-excv.unk { color: #8B93A5; }
#page-risk .rk-cg-exnote { margin-top: 14px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,0.07); font-size: 10.5px; color: #8A857D; display: flex; gap: 8px; line-height: 1.5; }
/* gate banner under stack (sample L323-329) */
#page-risk .rk-cg-gate { display: flex; align-items: center; gap: 11px; margin-top: 18px; padding: 13px 16px; border-radius: 13px; background: linear-gradient(100deg, rgba(201,168,76,0.07), rgba(255,255,255,0.012)); border: 1px solid rgba(201,168,76,0.2); }
#page-risk .rk-cg-gate .rk-cg-gaic { width: 30px; height: 30px; border-radius: 9px; flex: none; display: grid; place-items: center; background: rgba(201,168,76,0.12); }
#page-risk .rk-cg-footnote { font-size: 10px; color: #8A857D; margin-top: 20px; text-align: center; opacity: .7; }
@media (max-width: 1080px) { #page-risk .rk-cg-grid { grid-template-columns: 1fr; } #page-risk .rk-cg-kpis { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { #page-risk .rk-cg-drift .rk-cg-dbase, #page-risk .rk-cg-drift .rk-cg-dlive, #page-risk .rk-cg-drift .rk-cg-dmark { transition: none !important; } }
/* === end FIX_ACCT_PRACTICE_SETTINGS_2026_06_26 practice-settings CSS === */

/* === Concentration tool (S1, FIX_RISK_CONCENTRATION_S1_2026_06_17) net-new classes =========
   Built TO design_samples/risk/risk_concentration.html (radar hero + axis legend + conc-status +
   dep cards + explainer measures). REUSE: the 6-KPI band reuses the SHIPPED .rk-kpi family
   (L8431+); the hover-peek reuses the SHIPPED .rk-popover / .rk-radar-row / .rk-rn family
   (L7882+); the click-modal reuses the SHIPPED .rk-modal / .rk-mstat / .rk-mod-bars / .rk-mbar
   shell (L7996+). Only the genuinely-new surfaces get .rk-conc-* classes here (radar hero, axis
   legend, conc-status callout, section heads, dependency cards, explainer, in-modal mit-steps +
   broker-note). Hex literals scoped to #page-risk, mirror of the .rk-cg convention. ASCII-only
   comments (a non-ASCII char silently drops the rule from the CSSOM). */
#page-risk .rk-conc-hero { display: grid; grid-template-columns: 1.05fr 1fr; gap: 22px; align-items: center; margin-top: 4px; }
#page-risk .rk-conc-radarw { position: relative; width: 100%; max-width: 380px; margin: 0 auto; aspect-ratio: 1 / 1; }
#page-risk .rk-conc-radarw svg { width: 100%; height: 100%; display: block; }
#page-risk .rk-conc-radarcap { position: absolute; left: 50%; bottom: -2px; transform: translateX(-50%); font-size: 9.5px; letter-spacing: .06em; text-transform: uppercase; color: #8A857D; font-weight: 700; pointer-events: none; }
#page-risk .rk-conc-axes { display: flex; flex-direction: column; gap: 11px; }
#page-risk .rk-conc-axrow { position: relative; display: flex; align-items: center; gap: 13px; padding: 11px 14px 11px 18px; border-radius: 12px; background: rgba(255,255,255,0.022); border: 1px solid rgba(255,255,255,0.07); cursor: pointer; transition: background .18s, border-color .18s, transform .18s; }
#page-risk .rk-conc-axrow::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 12px 0 0 12px; background: var(--rk-axc, #C9A84C); }
#page-risk .rk-conc-axrow:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.14); transform: translateX(2px); }
#page-risk .rk-conc-axrow:focus-visible { outline: 2px solid rgba(201,168,76,0.6); outline-offset: 2px; }
#page-risk .rk-conc-axsw { width: 30px; height: 30px; border-radius: 9px; flex: none; display: grid; place-items: center; }
#page-risk .rk-conc-axsw svg { width: 16px; height: 16px; }
#page-risk .rk-conc-axb { flex: 1; min-width: 0; }
#page-risk .rk-conc-axname { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px; color: #F0EBE2; }
#page-risk .rk-conc-axd { font-size: 11px; color: #8A857D; margin-top: 2px; }
#page-risk .rk-conc-axd b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-conc-axbar { margin-top: 7px; height: 5px; border-radius: 3px; background: rgba(255,255,255,0.06); overflow: hidden; }
#page-risk .rk-conc-axbar i { display: block; height: 100%; border-radius: 3px; width: 0; transition: width 1.1s cubic-bezier(.2,.7,.2,1); }
#page-risk .rk-conc-axv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 18px; color: #F0EBE2; flex: none; width: 34px; text-align: right; }
#page-risk .rk-conc-axv small { display: block; font-size: 8px; font-weight: 700; letter-spacing: .5px; color: #8A857D; text-transform: uppercase; margin-top: 1px; }
#page-risk .rk-conc-status { display: flex; align-items: flex-start; gap: 13px; margin-top: 18px; padding: 14px 16px; border-radius: 13px; background: linear-gradient(135deg, rgba(232,148,58,0.08), rgba(232,148,58,0.02)); border: 1px solid rgba(232,148,58,0.2); }
#page-risk .rk-conc-status .rk-conc-csg { width: 34px; height: 34px; border-radius: 10px; flex: none; display: grid; place-items: center; background: rgba(232,148,58,0.13); }
#page-risk .rk-conc-status .rk-conc-csg svg { width: 18px; height: 18px; stroke: #E8943A; }
#page-risk .rk-conc-status .rk-conc-cst { font-size: 13.5px; color: #C4BFB6; line-height: 1.5; }
#page-risk .rk-conc-status .rk-conc-cst b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-conc-status .rk-conc-cst .rk-conc-sharp { color: #E8943A; font-weight: 700; }
#page-risk .rk-conc-sech { display: flex; align-items: flex-end; justify-content: space-between; margin: 24px 0 13px; }
#page-risk .rk-conc-sech h2 { font-family: 'Montserrat', sans-serif; font-size: 16px; font-weight: 800; letter-spacing: -.01em; color: #F0EBE2; margin: 0; }
#page-risk .rk-conc-sech .rk-conc-secsub { font-size: 11.5px; color: #8A857D; }
#page-risk .rk-conc-depgrid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
#page-risk .rk-conc-dep { position: relative; padding: 16px 18px 16px 20px; border-radius: 15px; background: rgba(255,255,255,0.022); border: 1px solid rgba(255,255,255,0.07); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); overflow: hidden; transition: transform .2s, border-color .2s, box-shadow .2s; cursor: pointer; }
#page-risk .rk-conc-dep::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--rk-depc, #C9A84C); }
#page-risk .rk-conc-dep.rk-lvl-high { --rk-depc: #E05555; }
#page-risk .rk-conc-dep.rk-lvl-mod { --rk-depc: #E8943A; }
#page-risk .rk-conc-dep.rk-lvl-low { --rk-depc: #4CAF7D; }
#page-risk .rk-conc-dep.rk-lvl-high::after { content: ""; position: absolute; inset: 0; background: radial-gradient(420px 160px at 0% 0%, rgba(224,85,85,0.08), transparent 64%); pointer-events: none; }
#page-risk .rk-conc-dep:hover { transform: translateY(-3px); border-color: rgba(255,255,255,0.14); box-shadow: 0 18px 38px -22px #000, inset 0 1px 0 rgba(255,255,255,0.07); }
#page-risk .rk-conc-dep:focus-visible { outline: 2px solid rgba(201,168,76,0.6); outline-offset: 2px; }
#page-risk .rk-conc-deptop { display: flex; align-items: flex-start; gap: 13px; position: relative; z-index: 1; }
#page-risk .rk-conc-depic { width: 42px; height: 42px; border-radius: 12px; flex: none; display: grid; place-items: center; box-shadow: inset 0 1px 0 rgba(255,255,255,0.1); }
#page-risk .rk-conc-depic svg { width: 21px; height: 21px; }
#page-risk .rk-conc-dephd { flex: 1; min-width: 0; }
#page-risk .rk-conc-depax { font-size: 9px; letter-spacing: 1.1px; text-transform: uppercase; font-weight: 700; color: #8A857D; }
#page-risk .rk-conc-depname { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 16px; color: #F0EBE2; line-height: 1.1; margin-top: 2px; }
#page-risk .rk-conc-deptag { font-size: 10px; font-weight: 700; font-family: 'Montserrat', sans-serif; padding: 2px 8px; border-radius: 999px; letter-spacing: .04em; white-space: nowrap; }
#page-risk .rk-conc-deptag.rk-high { color: #E05555; background: rgba(224,85,85,0.14); border: 1px solid rgba(224,85,85,0.32); }
#page-risk .rk-conc-deptag.rk-mod { color: #E8943A; background: rgba(232,148,58,0.14); border: 1px solid rgba(232,148,58,0.32); }
#page-risk .rk-conc-deptag.rk-low { color: #4CAF7D; background: rgba(76,175,125,0.14); border: 1px solid rgba(76,175,125,0.32); }
#page-risk .rk-conc-depscore { display: flex; align-items: center; gap: 12px; margin: 15px 0 13px; position: relative; z-index: 1; }
#page-risk .rk-conc-depscore .rk-conc-dsv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 26px; color: #F0EBE2; line-height: 1; flex: none; }
#page-risk .rk-conc-depscore .rk-conc-dsv small { font-size: 11px; color: #8A857D; font-weight: 600; }
#page-risk .rk-conc-depscore .rk-conc-dstrack { flex: 1; height: 9px; border-radius: 6px; background: rgba(255,255,255,0.06); overflow: hidden; }
#page-risk .rk-conc-depscore .rk-conc-dstrack i { display: block; height: 100%; border-radius: 6px; width: 0; transition: width 1.1s cubic-bezier(.2,.7,.2,1); }
#page-risk .rk-conc-depline { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,0.07); position: relative; z-index: 1; }
#page-risk .rk-conc-depline .rk-conc-dlic { width: 24px; height: 24px; border-radius: 7px; flex: none; display: grid; place-items: center; background: rgba(255,255,255,0.04); }
#page-risk .rk-conc-depline .rk-conc-dlic svg { width: 13px; height: 13px; stroke: #8A857D; }
#page-risk .rk-conc-depline .rk-conc-dlb { flex: 1; min-width: 0; }
#page-risk .rk-conc-depline .rk-conc-dll { font-size: 9px; letter-spacing: .9px; text-transform: uppercase; font-weight: 700; color: #8A857D; margin-bottom: 2px; }
#page-risk .rk-conc-depline .rk-conc-dlt { font-size: 12px; color: #C4BFB6; line-height: 1.45; }
#page-risk .rk-conc-depline .rk-conc-dlt b { color: #F0EBE2; font-weight: 600; }
#page-risk .rk-conc-prov { display: inline-flex; align-items: center; gap: 6px; flex-wrap: wrap; }
#page-risk .rk-conc-pchip { display: inline-flex; align-items: center; gap: 5px; font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; letter-spacing: .02em; color: #5B9BD5; background: rgba(91,155,213,0.1); border: 1px solid rgba(91,155,213,0.26); border-radius: 999px; padding: 2px 9px; }
#page-risk .rk-conc-pchip svg { width: 11px; height: 11px; stroke: #5B9BD5; }
#page-risk .rk-conc-pplus { color: #8A857D; font-size: 11px; }
#page-risk .rk-conc-depfoot { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 14px; padding-top: 14px; border-top: 1px solid rgba(255,255,255,0.07); position: relative; z-index: 1; }
#page-risk .rk-conc-depfoot .rk-conc-mitl { font-size: 10.5px; color: #8A857D; line-height: 1.4; flex: 1; }
#page-risk .rk-conc-depfoot .rk-conc-mitl b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-conc-depact { font-family: 'Montserrat', sans-serif; font-size: 11.5px; font-weight: 700; cursor: pointer; border-radius: 9px; padding: 9px 15px; white-space: nowrap; flex: none; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); color: #C4BFB6; transition: background .18s, color .18s, transform .18s, border-color .18s; }
#page-risk .rk-conc-depact:hover { background: rgba(255,255,255,0.09); color: #F0EBE2; transform: translateY(-1px); border-color: #C9A84C; }
#page-risk .rk-conc-dep.rk-lvl-high .rk-conc-depact { background: linear-gradient(180deg, #E05555, #b94545); border-color: transparent; color: #fff; box-shadow: 0 6px 18px -7px rgba(224,85,85,0.5); }
#page-risk .rk-conc-dep.rk-lvl-high .rk-conc-depact:hover { color: #fff; box-shadow: 0 8px 22px -6px rgba(224,85,85,0.62); }
#page-risk .rk-conc-explain { display: grid; grid-template-columns: 1.15fr 1fr; gap: 16px; }
#page-risk .rk-conc-exbody { font-size: 12.5px; color: #C4BFB6; line-height: 1.6; }
#page-risk .rk-conc-exbody p { margin-bottom: 11px; }
#page-risk .rk-conc-exbody b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-conc-exlead { font-size: 13.5px; color: #F0EBE2; font-family: 'Montserrat', sans-serif; font-weight: 600; margin-bottom: 13px; line-height: 1.5; }
#page-risk .rk-conc-cnote { display: flex; align-items: flex-start; gap: 9px; margin-top: 14px; padding: 12px 14px; border-radius: 12px; background: rgba(76,175,125,0.06); border: 1px solid rgba(76,175,125,0.2); font-size: 11.5px; color: #8A857D; line-height: 1.5; }
#page-risk .rk-conc-cnote svg { width: 15px; height: 15px; stroke: #4CAF7D; flex: none; margin-top: 1px; }
#page-risk .rk-conc-cnote b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-conc-measures { display: flex; flex-direction: column; gap: 11px; }
#page-risk .rk-conc-measure { display: flex; gap: 12px; align-items: flex-start; }
#page-risk .rk-conc-measure .rk-conc-mnum { width: 26px; height: 26px; border-radius: 8px; flex: none; display: grid; place-items: center; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12px; color: #C9A84C; background: rgba(201,168,76,0.12); border: 1px solid rgba(201,168,76,0.28); }
#page-risk .rk-conc-measure .rk-conc-mb { flex: 1; }
#page-risk .rk-conc-measure .rk-conc-mt { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 12px; color: #F0EBE2; }
#page-risk .rk-conc-measure .rk-conc-md { font-size: 11px; color: #8A857D; margin-top: 2px; line-height: 1.45; }

/* ── Continuity tool CSS (S1, FIX_RISK_CONTINUITY_S1_2026_06_23) ─────────────────────────────
   Built TO design_samples/risk/risk_continuity.html section-by-section. REUSE: the head/status
   line (.rk-head-row / .rk-statusline / .rk-when / .rk-dot / .rk-fix), the KPI tile body
   (.rk-kpi family), the .rk-panel + .rk-panel-h/.rk-panel-sub shells, the section headers
   (.rk-conc-sech/.rk-conc-secsub), the .rk-conc-cnote / .rk-conc-explain / .rk-conc-measures
   explainer family, and the .rk-cg-footnote are all the SHIPPED shared Risk-tool tokens (NOT
   re-declared). Only the Continuity-specific structures get new rules: the 5-tile KPI band, the
   readiness-ring hero (SVG arc), the plan checklist rows, and the SPOF dependency-feed cards.
   ASCII-only comments (a non-ASCII char silently drops the rule from the CSSOM, L18.8 lesson). */
#page-risk .rk-cont-kpis { display: grid; grid-template-columns: repeat(5, 1fr); gap: 13px; margin-bottom: 18px; }
/* per-tile accent rails (the .rk-kpi base + ::before already exist; these add Continuity hues) */
#page-risk .rk-kpi.rk-k-ready::before { background: #5B9BD5; }
#page-risk .rk-kpi.rk-k-done::before { background: #4CAF7D; }
#page-risk .rk-kpi.rk-k-miss::before { background: #E8943A; }
#page-risk .rk-kpi.rk-k-spof::before { background: #E8943A; }
#page-risk .rk-kpi.rk-k-stale::before { background: #C9A84C; }
#page-risk .rk-kpi .rk-val small { font-size: 13px; color: #8A857D; font-weight: 600; }

/* readiness ring hero (sample L172-195 / L316-337) */
#page-risk .rk-cont-hero { display: grid; grid-template-columns: 300px 1fr; gap: 24px; align-items: center; margin-top: 6px; }
#page-risk .rk-cont-ringw { position: relative; width: 240px; height: 240px; margin: 0 auto; }
#page-risk .rk-cont-ringw svg { width: 100%; height: 100%; transform: rotate(-90deg); }
#page-risk .rk-cont-ring-bg { fill: none; stroke: rgba(255,255,255,0.07); stroke-width: 14; }
#page-risk .rk-cont-ring-fg { fill: none; stroke: url(#rkContGrad); stroke-width: 14; stroke-linecap: round; transition: stroke-dashoffset 1.1s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rk-cont-ringcap { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
#page-risk .rk-cont-ringcap .rk-cont-rcv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 46px; color: #F0EBE2; line-height: 1; }
#page-risk .rk-cont-ringcap .rk-cont-rcv small { font-size: 20px; color: #5B9BD5; }
#page-risk .rk-cont-ringcap .rk-cont-rcl { font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-top: 6px; }
#page-risk .rk-cont-ringcap .rk-cont-rcband { font-size: 11px; color: #5B9BD5; font-weight: 600; margin-top: 3px; }
#page-risk .rk-cont-herocopy .rk-cont-chlead { font-size: 13.5px; color: #C4BFB6; line-height: 1.55; }
#page-risk .rk-cont-herocopy .rk-cont-chlead b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-cont-status { display: flex; align-items: flex-start; gap: 12px; margin-top: 16px; padding: 14px 16px; border-radius: 13px; background: linear-gradient(108deg, rgba(91,155,213,0.10), rgba(255,255,255,0.018) 50%); border: 1px solid rgba(91,155,213,0.26); }
#page-risk .rk-cont-status .rk-cont-csg { width: 34px; height: 34px; border-radius: 10px; flex: none; display: grid; place-items: center; background: linear-gradient(150deg, rgba(91,155,213,0.24), rgba(91,155,213,0.08)); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-cont-status .rk-cont-csg svg { width: 18px; height: 18px; stroke: #5B9BD5; }
#page-risk .rk-cont-status .rk-cont-cst { font-size: 12.5px; color: #C4BFB6; line-height: 1.5; }
#page-risk .rk-cont-status .rk-cont-cst b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-cont-status .rk-cont-cst .rk-cont-sharp { color: #5B9BD5; font-weight: 700; }

/* continuity-plan checklist (sample L197-224 / L339-362) */
#page-risk .rk-cont-cklist { display: flex; flex-direction: column; gap: 10px; }
#page-risk .rk-cont-ckrow { display: grid; grid-template-columns: 38px 1fr auto; align-items: center; gap: 14px; background: linear-gradient(168deg, #262320, #1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 13px; padding: 14px 18px; position: relative; overflow: hidden; transition: .18s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rk-cont-ckrow::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--rk-ckc, #8A857D); }
#page-risk .rk-cont-ckrow.rk-cont-done { --rk-ckc: #4CAF7D; }
#page-risk .rk-cont-ckrow.rk-cont-miss { --rk-ckc: #E8943A; }
#page-risk .rk-cont-ckic { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; flex: none; }
#page-risk .rk-cont-ckrow.rk-cont-done .rk-cont-ckic { background: rgba(76,175,125,0.16); }
#page-risk .rk-cont-ckrow.rk-cont-miss .rk-cont-ckic { background: rgba(232,148,58,0.16); }
#page-risk .rk-cont-ckic svg { width: 18px; height: 18px; }
#page-risk .rk-cont-ckrow.rk-cont-done .rk-cont-ckic svg { stroke: #4CAF7D; }
#page-risk .rk-cont-ckrow.rk-cont-miss .rk-cont-ckic svg { stroke: #E8943A; }
#page-risk .rk-cont-ckb .rk-cont-ckt { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .rk-cont-ckb .rk-cont-ckd { font-size: 11.5px; color: #8A857D; margin-top: 2px; line-height: 1.45; }
#page-risk .rk-cont-ckb .rk-cont-ckd b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-cont-ckmeta { display: flex; align-items: center; gap: 14px; flex: none; }
#page-risk .rk-cont-ckwt { font-size: 10px; color: #8A857D; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
#page-risk .rk-cont-cks { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 10px; letter-spacing: .08em; padding: 4px 10px; border-radius: 999px; }
#page-risk .rk-cont-ckrow.rk-cont-done .rk-cont-cks { color: #4CAF7D; background: rgba(76,175,125,0.12); border: 1px solid rgba(76,175,125,0.3); }
#page-risk .rk-cont-ckrow.rk-cont-miss .rk-cont-cks { color: #E8943A; background: rgba(232,148,58,0.12); border: 1px solid rgba(232,148,58,0.3); }

/* dependency feed (Concentration link) (sample L226-244 / L364-386) */
#page-risk .rk-cont-feedgrid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
#page-risk .rk-cont-fcard { background: linear-gradient(168deg, #262320, #1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 15px 16px; position: relative; overflow: hidden; }
#page-risk .rk-cont-fcard::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #E8943A; }
#page-risk .rk-cont-fck { display: flex; align-items: center; gap: 8px; font-size: 10px; letter-spacing: .1em; text-transform: uppercase; color: #8A857D; font-weight: 700; }
#page-risk .rk-cont-fck svg { width: 15px; height: 15px; stroke: #E8943A; opacity: .85; }
#page-risk .rk-cont-fcv { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 15px; color: #F0EBE2; margin-top: 8px; }
#page-risk .rk-cont-fcd { font-size: 11.5px; color: #8A857D; margin-top: 4px; line-height: 1.45; }
#page-risk .rk-cont-flink { display: inline-flex; align-items: center; gap: 6px; margin-top: 10px; font-size: 11px; color: #5B9BD5; font-weight: 600; cursor: pointer; }
#page-risk .rk-cont-flink svg { width: 13px; height: 13px; stroke: #5B9BD5; }
#page-risk .rk-cont-fbanner { display: flex; align-items: center; gap: 11px; margin-top: 14px; padding: 12px 16px; border-radius: 12px; background: rgba(91,155,213,0.07); border: 1px solid rgba(91,155,213,0.22); font-size: 11.5px; color: #C4BFB6; }
#page-risk .rk-cont-fbanner svg { width: 18px; height: 18px; stroke: #5B9BD5; flex: none; }
#page-risk .rk-cont-fbanner b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-cont-exlead { font-size: 13.5px; color: #F0EBE2; font-family: 'Montserrat', sans-serif; font-weight: 600; margin-bottom: 9px; line-height: 1.5; }


/* ════════════════════════════════════════════════════════════════════════════
   FIX_RISK_COMMAND_CENTRE_S1_2026_06_17 — Risk Command Centre (Overview) styles, scoped
   under #page-risk. Built TO design_samples/risk/risk_landing_command.html at ultra-HD
   fidelity (the founder sample is the spec). Literal hex values mirror the sample's :root
   tokens (the platform's own :root names differ; inlining the sample's exact palette
   preserves the sample aesthetic). ASCII-only comments throughout (a non-ASCII char
   silently drops the rule from the CSSOM - the established L18.8 lesson). MIRRORS the
   shipped page-operations rk-* /op-* CSS structure (same sample family) re-prefixed rk-*,
   FIX_CSS_COMMENT_GLOB_SWALLOW_2026_07_29 - glob slashes spaced so this comment cannot self-close.
   with the SVG likelihood x impact risk-matrix + dot-tooltip (mtip) replacing the
   capacity heatmap. S1 (landing): KPI band + risk-matrix hero + needs-attention. The KPI
   expand-chevron + hover-hint affordances render for VISUAL FIDELITY but their click/hover
   handlers are UNWIRED (the hover-peek popovers + click-expand modals are Risk S2 - their
   CSS lands with S2 too). The matrix dot hover-tooltip is intrinsic to the hero visual and
   IS in S1.
   ════════════════════════════════════════════════════════════════════════════ */
#page-risk .rk-head-row { display: flex; align-items: flex-end; gap: 16px; }
#page-risk .rk-head-row h1 {
  font-family: 'Montserrat', sans-serif; font-size: 26px; font-weight: 800;
  letter-spacing: -.01em; line-height: 1; color: #F0EBE2; margin: 0;
}
#page-risk .rk-head-row .rk-when { font-size: 11.5px; color: #8A857D; padding-bottom: 2px; }
#page-risk .rk-statusline {
  display: flex; align-items: center; gap: 10px; margin: 10px 0 18px;
  font-size: 13.5px; color: #C4BFB6;
}
#page-risk .rk-statusline .rk-dot {
  width: 10px; height: 10px; border-radius: 50%; background: #E8943A;
  box-shadow: 0 0 11px #E8943A; position: relative; flex: 0 0 auto;
}
#page-risk .rk-statusline .rk-dot::after {
  content: ""; position: absolute; inset: -5px; border-radius: 50%;
  border: 1px solid rgba(232,148,58,0.4); animation: rkPulse 2.6s ease-out infinite;
}
#page-risk .rk-statusline b { color: #F0EBE2; font-weight: 700; }
#page-risk .rk-statusline .rk-fix { color: #4CAF7D; font-weight: 600; }
/* broker-gate posture line (Risk spine, parallel to Legal counsel-gate) */
#page-risk .rk-statusline .rk-posture { color: #8A857D; font-size: 12px; font-style: italic; }

/* KPI band - 6 tiles */
#page-risk .rk-kpis { display: grid; grid-template-columns: repeat(6, 1fr); gap: 13px; margin-bottom: 18px; }
#page-risk .rk-kpi {
  position: relative; overflow: hidden;
  background: linear-gradient(165deg, #262320, #1f1c19);
  border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 15px 16px 14px;
  box-shadow: 0 16px 34px -28px #000, inset 0 1px 0 rgba(255,255,255,0.05);
  transition: transform .2s cubic-bezier(0.4,0,0.2,1), box-shadow .2s cubic-bezier(0.4,0,0.2,1), border-color .2s cubic-bezier(0.4,0,0.2,1);
}
#page-risk .rk-kpi::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px;
  background: #C9A84C; opacity: .55;
}
#page-risk .rk-kpi.rk-k-score::before { background: #C9A84C; }
#page-risk .rk-kpi.rk-k-gaps::before { background: #E8943A; }
#page-risk .rk-kpi.rk-k-renewal::before { background: #5B9BD5; }
#page-risk .rk-kpi.rk-k-claims::before { background: #4CAF7D; }
#page-risk .rk-kpi.rk-k-conc::before { background: #E8943A; }
#page-risk .rk-kpi.rk-k-cont::before { background: #5B9BD5; }
#page-risk .rk-kpi:hover {
  transform: translateY(-3px); border-color: rgba(255,255,255,0.13);
  box-shadow: 0 22px 44px -26px #000, 0 0 0 1px rgba(201,168,76,0.14), 0 0 26px -12px rgba(201,168,76,0.45);
}
#page-risk .rk-kpi .rk-lbl {
  font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: #8A857D;
  font-weight: 700; margin-bottom: 7px;
}
#page-risk .rk-kpi .rk-val {
  font-family: 'Montserrat', sans-serif; font-size: 23px; font-weight: 800;
  color: #F0EBE2; line-height: 1; font-variant-numeric: tabular-nums;
}
#page-risk .rk-kpi .rk-sub {
  font-size: 11.5px; margin-top: 7px; color: #8A857D; display: flex; align-items: center; gap: 5px;
}
#page-risk .rk-kpi .rk-sub .rk-delta { font-weight: 700; }
#page-risk .rk-kpi .rk-sub .rk-pos { color: #4CAF7D; }
#page-risk .rk-kpi .rk-sub .rk-warn { color: #E8943A; }
#page-risk .rk-kpi .rk-sub .rk-neg { color: #E05555; }
#page-risk .rk-kpi .rk-sub .rk-blue { color: #5B9BD5; }
/* expand affordance chevron (S1 inert - visual fidelity only; click/hover wiring is S2) */
#page-risk .rk-kpi .rk-expand {
  position: absolute; right: 11px; bottom: 11px; width: 16px; height: 16px;
  opacity: .38; transition: opacity .2s cubic-bezier(0.4,0,0.2,1), transform .2s cubic-bezier(0.4,0,0.2,1);
}
#page-risk .rk-kpi:hover .rk-expand { opacity: .9; transform: scale(1.12); }
#page-risk .rk-kpi .rk-expand svg { width: 16px; height: 16px; stroke: #C9A84C; }
#page-risk .rk-kpi .rk-hint-i {
  position: absolute; left: 16px; bottom: 11px; font-size: 8.5px; letter-spacing: .04em;
  color: #8A857D; opacity: 0; transition: opacity .2s cubic-bezier(0.4,0,0.2,1);
  font-weight: 600; white-space: nowrap; pointer-events: none;
}
#page-risk .rk-kpi:hover .rk-hint-i { opacity: .7; }
#page-risk .rk-kpi .rk-hint-i b { color: #C9A84C; font-weight: 700; }

/* layout: matrix hero + attention */
#page-risk .rk-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; }
#page-risk .rk-panel {
  background: linear-gradient(170deg, #252220, #1e1b19);
  border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px;
  box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05);
}
#page-risk .rk-panel-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3px; }
#page-risk .rk-panel-h h3 {
  font-family: 'Montserrat', sans-serif; font-size: 14px; letter-spacing: .4px;
  color: #F0EBE2; font-weight: 700; margin: 0;
}
#page-risk .rk-panel-h .rk-hint { font-size: 11px; color: #8A857D; }
#page-risk .rk-panel-sub { font-size: 11.5px; color: #8A857D; margin: 2px 0 14px; }

/* risk-matrix (likelihood x impact) key visual */
#page-risk .rk-matrix-wrap { position: relative; padding: 4px 2px 2px; }
/* FIX_RISK_LANDING_REBUILD_2026_06_29 — the inline-SVG matrix host CSS rule was removed (its
   element is replaced by the .rko-matrix-board DOM heat-map; CSS at the rko-* matrix block). */
#page-risk .rk-matrix-legend { display: flex; gap: 18px; margin-top: 12px; font-size: 10.5px; color: #8A857D; flex-wrap: wrap; }
#page-risk .rk-matrix-legend span { display: inline-flex; align-items: center; gap: 6px; }
#page-risk .rk-matrix-legend .rk-sw { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
#page-risk .rk-matrix-legend b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-mdot { cursor: pointer; }

/* needs-attention list */
#page-risk .rk-att-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; }
#page-risk .rk-att-head h3 {
  font-family: 'Montserrat', sans-serif; font-size: 14px; letter-spacing: .4px;
  display: flex; align-items: center; gap: 9px; color: #F0EBE2; font-weight: 700; margin: 0;
}
#page-risk .rk-att-head h3 .rk-glyph {
  width: 24px; height: 24px; border-radius: 8px;
  background: linear-gradient(150deg, rgba(224,85,85,0.24), rgba(232,148,58,0.12));
  display: grid; place-items: center; box-shadow: inset 0 1px 0 rgba(255,255,255,0.1);
}
#page-risk .rk-att-head h3 .rk-glyph svg { width: 14px; height: 14px; }
#page-risk .rk-att-head .rk-count {
  font-family: 'Montserrat', sans-serif; font-size: 10.5px; font-weight: 700; color: #F0EBE2;
  background: rgba(232,148,58,0.16); border: 1px solid rgba(232,148,58,0.36);
  border-radius: 999px; padding: 3px 11px; letter-spacing: .03em;
}
#page-risk .rk-att-list { display: flex; flex-direction: column; gap: 9px; }
#page-risk .rk-att {
  display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 12px;
  background: rgba(255,255,255,0.018); border: 1px solid rgba(255,255,255,0.07);
  transition: .18s cubic-bezier(0.4,0,0.2,1); position: relative; overflow: hidden;
}
#page-risk .rk-att::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  border-radius: 12px 0 0 12px; background: var(--rk-lvl, #C9A84C);
}
#page-risk .rk-att:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.13); transform: translateX(2px); }
#page-risk .rk-att.rk-p1 {
  --rk-lvl: #E05555; border-color: rgba(224,85,85,0.36);
  background: linear-gradient(108deg, rgba(224,85,85,0.12), rgba(255,255,255,0.018) 46%); padding: 14px 15px;
}
#page-risk .rk-att.rk-p1::before { box-shadow: 0 0 18px rgba(224,85,85,0.5); }
#page-risk .rk-att.rk-p1::after {
  content: ""; position: absolute; inset: 0;
  background: radial-gradient(360px 140px at 0% 50%, rgba(224,85,85,0.10), transparent 70%); pointer-events: none;
}
#page-risk .rk-att.rk-amber { --rk-lvl: #E8943A; }
#page-risk .rk-att.rk-red { --rk-lvl: #E05555; }
#page-risk .rk-att.rk-blue { --rk-lvl: #5B9BD5; }
#page-risk .rk-att .rk-rank {
  font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12px; color: #8A857D;
  width: 16px; text-align: center; flex-shrink: 0; z-index: 1;
}
#page-risk .rk-att.rk-p1 .rk-rank { font-size: 17px; color: #E05555; width: 20px; }
#page-risk .rk-att .rk-ico {
  width: 32px; height: 32px; border-radius: 9px; flex: none;
  display: flex; align-items: center; justify-content: center; z-index: 1;
}
#page-risk .rk-att.rk-p1 .rk-ico { width: 40px; height: 40px; border-radius: 11px; box-shadow: 0 0 18px -4px rgba(224,85,85,0.45); }
#page-risk .rk-att .rk-ico svg { width: 16px; height: 16px; }
#page-risk .rk-att.rk-p1 .rk-ico svg { width: 20px; height: 20px; }
#page-risk .rk-att .rk-ic-amber { background: rgba(232,148,58,0.14); } #page-risk .rk-att .rk-ic-amber svg { stroke: #E8943A; }
#page-risk .rk-att .rk-ic-gold { background: rgba(201,168,76,0.14); } #page-risk .rk-att .rk-ic-gold svg { stroke: #C9A84C; }
#page-risk .rk-att .rk-ic-red { background: rgba(224,85,85,0.14); } #page-risk .rk-att .rk-ic-red svg { stroke: #E05555; }
#page-risk .rk-att .rk-ic-blue { background: rgba(91,155,213,0.14); } #page-risk .rk-att .rk-ic-blue svg { stroke: #5B9BD5; }
#page-risk .rk-att-body { flex: 1; min-width: 0; z-index: 1; }
#page-risk .rk-att-top { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
#page-risk .rk-att-top .rk-tt { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px; color: #F0EBE2; }
#page-risk .rk-att.rk-p1 .rk-att-top .rk-tt { font-size: 14.5px; }
#page-risk .rk-att-top .rk-amt { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12.5px; }
#page-risk .rk-att .rk-desc { font-size: 11.5px; color: #8A857D; margin-top: 3px; line-height: 1.4; }
#page-risk .rk-att.rk-p1 .rk-desc { font-size: 12px; color: #C4BFB6; }
#page-risk .rk-att .rk-desc b { color: #C4BFB6; font-weight: 600; }
#page-risk .rk-att .rk-att-act { flex: none; z-index: 1; }
#page-risk .rk-att .rk-att-act .rk-btn {
  font-family: 'Montserrat', sans-serif; font-size: 11px; font-weight: 600; cursor: pointer;
  border-radius: 8px; padding: 7px 14px; border: 1px solid rgba(255,255,255,0.13);
  background: rgba(255,255,255,0.04); color: #C4BFB6; transition: all .18s cubic-bezier(0.4,0,0.2,1);
  white-space: nowrap; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05);
}
#page-risk .rk-att .rk-att-act .rk-btn:hover { background: rgba(255,255,255,0.09); color: #F0EBE2; transform: translateY(-1px); border-color: #C9A84C; }
#page-risk .rk-att.rk-p1 .rk-att-act .rk-btn {
  background: linear-gradient(180deg, #E05555, #b94545); border-color: transparent; color: #fff;
  font-weight: 700; padding: 9px 18px; box-shadow: 0 4px 16px -5px rgba(224,85,85,0.5);
}

/* FIX_HONEST_EMPTY_PRESERVE_STRUCTURE_S2_2026_06_20 — honest-empty needs-attention skeleton
   (Risk-scoped mirror of the Sales skeleton at symbol anchor renderSalesAttention).
   ⛔ FIX_RISK_DEMOGATE_SWEEP_S2M3_2026_09_08 — THIS RULESET IS NO LONGER EMITTED BY ANY JS PATH.
   The original note's claim about what a real account renders is SUPERSEDED and is paraphrased
   rather than quoted here so a sweep for the retired wording does not match the note correcting it:
   it described a five-row loading skeleton for real accounts, and the code that emitted it was
   removed by FIX_RISK_DEMOGATE_SWEEP_S1_2026_09_07 — a real account now reaches two genuinely
   derived attention rows (symbol anchor __riskAttentionItems). The rules below are RETAINED, not
   deleted: they are the styling a future honest-empty skeleton would reuse, and removing live CSS
   on the strength of a grep is the class of change no mechanical gate in this project can check.
   Sibling: the Operations mirror (#page-operations .op-att-skel) is in the SAME state — emitted by
   no JS path — and is deliberately left as found here, flagged rather than swept, because that
   surface's own history was not read on this pass. */
#page-risk .rk-att-skel {
  display: flex; align-items: center; gap: 12px; position: relative;
  padding: 12px 14px; border-radius: 12px; border: 1px solid rgba(255,255,255,0.07);
  background: rgba(255,255,255,0.02);
}
#page-risk .rk-att-skel::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 12px 0 0 12px; background: rgba(255,255,255,0.06); }
#page-risk .rk-att-skel .rk-skel-rank { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 12px; color: #8A857D; opacity: .45; width: 16px; text-align: center; flex: none; }
#page-risk .rk-att-skel .rk-skel-ico { width: 32px; height: 32px; border-radius: 9px; flex: none; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); }
#page-risk .rk-att-skel .rk-skel-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 7px; }
#page-risk .rk-att-skel .rk-skel-line { height: 9px; border-radius: 5px; background: rgba(255,255,255,0.05); }
#page-risk .rk-att-skel .rk-skel-line.w1 { width: 62%; } #page-risk .rk-att-skel .rk-skel-line.w2 { width: 84%; }
#page-risk .rk-att-skel .rk-skel-act { flex: none; }
#page-risk .rk-att-empty-note { font-size: 11.5px; color: #8A857D; line-height: 1.5; margin-top: 4px; padding: 2px 4px; }
#page-risk .rk-att-empty-note b { color: #C4BFB6; font-weight: 600; }

#page-risk .rk-footnote { font-size: 10px; color: #8A857D; margin-top: 18px; text-align: center; opacity: .7; }

@media (prefers-reduced-motion: reduce) {
  #page-risk .rk-statusline .rk-dot::after { animation: none !important; }
}

/* ════════════════════════════════════════════════════════════════════════════
   FIX_RISK_INSURANCE_S1_2026_06_22 — Insurance tool (policy register + renewal calendar +
   premium summary + coverage-adequacy seam) styles, scoped under #page-risk. Built TO
   design_samples/risk/risk_insurance.html section-by-section. The sample's unscoped .ins-* /
   .pol-* / .cal-* / .prem-* / .adq* / .add-pol classes are re-scoped #page-risk here (the
   platform's existing risk surface convention); the sample's var(--token) values are inlined
   to the literal hex the shipped #page-risk rk-* block already uses (same palette). ASCII-only
   comments (a non-ASCII char silently drops the rule from the CSSOM). The .fm-state honest-empty
   class + .rk-head-row / .rk-statusline / .rk-fix are REUSED from the shipped Risk block above.
   ════════════════════════════════════════════════════════════════════════════ */
/* SECTION 1 — coverage summary KPI strip (4 tiles) */
#page-risk .ins-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-bottom: 24px; }
#page-risk .ins-gk { background: #232120; border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 16px 16px 15px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); position: relative; overflow: hidden; }
#page-risk .ins-gk::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; }
#page-risk .ins-gk.k-pol::before { background: #C9A84C; }
#page-risk .ins-gk.k-renew::before { background: #5B9BD5; }
#page-risk .ins-gk.k-gap::before { background: #E8943A; }
#page-risk .ins-gk.k-claims::before { background: #4CAF7D; }
#page-risk .ins-gkl { color: #8A857D; font-size: 11px; text-transform: uppercase; letter-spacing: .6px; font-weight: 600; margin-bottom: 7px; }
#page-risk .ins-gkv { font-family: 'Montserrat', sans-serif; color: #F0EBE2; font-size: 23px; font-weight: 700; line-height: 1.1; }
#page-risk .ins-gks { color: #8A857D; font-size: 11.5px; margin-top: 6px; }
#page-risk .ins-gks b { color: #C4BFB6; }

/* 2-col grid: register (main) + rail */
#page-risk .ins-grid { display: grid; grid-template-columns: 1fr 340px; gap: 20px; align-items: start; }
@media (max-width: 980px) { #page-risk .ins-grid { grid-template-columns: 1fr; } #page-risk .ins-kpis { grid-template-columns: repeat(2, 1fr); } }
#page-risk .ins-sec-head { display: flex; align-items: center; justify-content: space-between; margin: 2px 0 12px; }
#page-risk .ins-sec-head h3 { font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; color: #F0EBE2; display: flex; align-items: center; gap: 8px; margin: 0; }
#page-risk .ins-sec-glyph { color: #C9A84C; display: inline-flex; }
#page-risk .ins-sec-glyph svg { width: 18px; height: 18px; stroke: currentColor; }
#page-risk .ins-sec-count { background: rgba(201,168,76,0.13); color: #C9A84C; font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; border: 1px solid rgba(201,168,76,0.22); }

/* SECTION 2 — policy register cards */
#page-risk .ins-stack { display: flex; flex-direction: column; gap: 14px; }
#page-risk .pol-card { background: #232120; border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 16px 17px 15px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .pol-card.renew-soon { border-color: rgba(232,148,58,0.34); }
#page-risk .pc-top { display: flex; align-items: flex-start; gap: 12px; }
#page-risk .pc-ic { width: 38px; height: 38px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex: none; background: rgba(201,168,76,0.1); color: #C9A84C; border: 1px solid rgba(201,168,76,0.2); }
#page-risk .pc-ic svg { width: 18px; height: 18px; stroke: currentColor; }
#page-risk .pc-ic.blue { background: rgba(91,155,213,0.1); color: #5B9BD5; border-color: rgba(91,155,213,0.2); }
#page-risk .pc-tw { flex: 1; min-width: 0; }
#page-risk .pc-title { color: #F0EBE2; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 14.5px; }
#page-risk .pc-desc { color: #8A857D; font-size: 12px; margin-top: 2px; }
#page-risk .pc-renew { text-align: right; flex: none; }
#page-risk .pc-rv { font-family: 'Montserrat', sans-serif; font-weight: 700; color: #F0EBE2; font-size: 14px; }
#page-risk .pc-rv.warn { color: #E8943A; }
#page-risk .pc-rd { color: #8A857D; font-size: 11px; margin-top: 2px; }
#page-risk .pc-facts { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1px; margin-top: 14px; background: rgba(255,255,255,0.07); border-radius: 9px; overflow: hidden; border: 1px solid rgba(255,255,255,0.07); }
#page-risk .pc-f { background: #232120; padding: 9px 11px; }
#page-risk .pc-fl { color: #8A857D; font-size: 10px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; }
#page-risk .pc-fv { color: #F0EBE2; font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 13px; margin-top: 3px; }
#page-risk .pc-prov { display: inline-flex; align-items: center; gap: 5px; margin-top: 11px; color: #8A857D; font-size: 10.5px; }
#page-risk .pc-prov .pp-k { color: #9c7f33; font-weight: 600; }
#page-risk .pc-prov svg { width: 13px; height: 13px; stroke: currentColor; }
/* FIX_INS_SOV_S1_2026_09_05 — declared-values block (§3.8). New selector NAMES only; every colour
   token below is the SAME one already used elsewhere on .pol-card (#8A857D label / #F0EBE2 value /
   the 0.07-alpha border) — a variable-length list of declared-value lines does not fit the fixed
   4-column .pc-facts grid above, so this is a genuinely new layout, not new colour. */
#page-risk .pc-sov { margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,0.07); }
#page-risk .pc-sov-h { color: #8A857D; font-size: 10px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; margin-bottom: 6px; }
#page-risk .pc-sov-h .pc-sov-asof { text-transform: none; letter-spacing: 0; font-weight: 500; }
#page-risk .pc-sov-row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; font-size: 12px; color: #F0EBE2; padding: 3px 0; }
#page-risk .pc-sov-loc { color: #8A857D; flex: 1; }
#page-risk .pc-sov-cls { color: #F0EBE2; }
#page-risk .pc-sov-amt { color: #F0EBE2; font-weight: 600; text-align: right; min-width: 70px; }
#page-risk .pc-sov-cite { color: #8A857D; font-size: 10px; margin: -1px 0 3px; opacity: 0.8; }
#page-risk .pc-sov-src { color: #8A857D; font-size: 10.5px; margin-top: 6px; }

/* SECTION 3 — renewal calendar / timeline (rail) */
#page-risk .ins-panel { background: #232120; border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 17px 17px 16px; box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); margin-bottom: 18px; }
#page-risk .ins-panel-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 4px; }
#page-risk .ins-panel-h h3 { font-family: 'Montserrat', sans-serif; font-size: 14px; font-weight: 700; color: #F0EBE2; margin: 0; }
#page-risk .ins-panel-sub { color: #8A857D; font-size: 11.5px; margin-bottom: 14px; }
#page-risk .cal-row { display: flex; align-items: center; gap: 11px; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,0.07); }
#page-risk .cal-row:last-child { border-bottom: none; }
#page-risk .cal-mark { width: 9px; height: 9px; border-radius: 50%; flex: none; background: #5B9BD5; }
#page-risk .cal-mark.soon { background: #E8943A; box-shadow: 0 0 9px rgba(232,148,58,0.4); }
#page-risk .cal-b { flex: 1; min-width: 0; }
#page-risk .cal-t { color: #F0EBE2; font-weight: 600; font-size: 12.5px; }
#page-risk .cal-d { color: #8A857D; font-size: 11px; margin-top: 1px; }
#page-risk .cal-days { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 12.5px; color: #C4BFB6; text-align: right; flex: none; }
#page-risk .cal-days.warn { color: #E8943A; }
#page-risk .prep-h { font-family: 'Montserrat', sans-serif; color: #F0EBE2; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; margin: 16px 0 10px; }
#page-risk .prep-item { display: flex; align-items: center; gap: 9px; padding: 7px 0; color: #C4BFB6; font-size: 12px; }
#page-risk .prep-item svg { width: 15px; height: 15px; stroke: #5B9BD5; flex: none; }
#page-risk .prep-item .pi-v { margin-left: auto; color: #C9A84C; font-weight: 600; font-size: 11.5px; }

/* SECTION 4 — premium summary + adequacy seam (rail) */
#page-risk .prem-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 11px; margin-bottom: 4px; }
#page-risk .prem-cell { background: #232120; border: 1px solid rgba(255,255,255,0.07); border-radius: 9px; padding: 11px 12px; }
#page-risk .prem-l { color: #8A857D; font-size: 10.5px; text-transform: uppercase; letter-spacing: .5px; font-weight: 600; }
#page-risk .prem-v { font-family: 'Montserrat', sans-serif; color: #F0EBE2; font-weight: 700; font-size: 17px; margin-top: 4px; }
#page-risk .prem-d { color: #8A857D; font-size: 10.5px; margin-top: 2px; }
#page-risk .adq { display: flex; align-items: center; gap: 11px; background: rgba(232,148,58,0.08); border: 1px solid rgba(232,148,58,0.22); border-radius: 10px; padding: 13px 14px; margin-top: 4px; }
#page-risk .adq.clean { background: rgba(76,175,125,0.08); border-color: rgba(76,175,125,0.22); }
#page-risk .adq-ic { width: 30px; height: 30px; border-radius: 8px; flex: none; display: flex; align-items: center; justify-content: center; background: rgba(232,148,58,0.14); color: #E8943A; }
#page-risk .adq-ic svg { width: 17px; height: 17px; stroke: currentColor; }
#page-risk .adq.clean .adq-ic { background: rgba(76,175,125,0.14); color: #4CAF7D; }
#page-risk .adq-b { flex: 1; }
#page-risk .adq-t { color: #F0EBE2; font-weight: 600; font-size: 12.5px; }
#page-risk .adq-d { color: #8A857D; font-size: 11px; margin-top: 1px; }
#page-risk .adq-link { color: #C9A84C; font-size: 11.5px; font-weight: 600; text-decoration: none; white-space: nowrap; cursor: pointer; }

/* broker-gate banner + footnote + deferred write-side affordance */
#page-risk .ins-gate { display: flex; align-items: flex-start; gap: 11px; background: rgba(201,168,76,0.06); border: 1px solid rgba(201,168,76,0.18); border-radius: 10px; padding: 14px 15px; margin-top: 18px; }
#page-risk .ins-gate svg { color: #C9A84C; width: 21px; height: 21px; flex: none; margin-top: 1px; stroke: currentColor; }
#page-risk .ins-gate p { color: #C4BFB6; font-size: 12px; line-height: 1.55; margin: 0; }
#page-risk .ins-gate b { color: #F0EBE2; }
#page-risk .ins-footnote { color: #8A857D; font-size: 11px; margin-top: 26px; line-height: 1.6; border-top: 1px solid rgba(255,255,255,0.07); padding-top: 14px; }
#page-risk .add-pol { display: inline-flex; align-items: center; gap: 7px; background: transparent; border: 1px dashed rgba(255,255,255,0.13); color: #8A857D; font-size: 12px; font-weight: 600; padding: 9px 14px; border-radius: 9px; cursor: default; margin-top: 14px; font-family: 'Montserrat', sans-serif; }
#page-risk .add-pol svg { width: 15px; height: 15px; stroke: currentColor; }
/* FIX_RISK_REGISTER_REAL_2026_07_21 — the "Add a policy" affordance is now a WORKING button that
   opens the policy composer (below); active styling (gold, pointer) distinguishes it from the prior
   inert dashed placeholder. Plus a self-contained composer form-field style set (rk-pol-*). */
#page-risk button.add-pol { cursor: pointer; border-color: rgba(201,168,76,0.4); color: #C9A84C; transition: background .15s, border-color .15s; }
#page-risk button.add-pol:hover { background: rgba(201,168,76,0.08); border-color: rgba(201,168,76,0.7); }
#page-risk .rk-pol-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px 16px; }
#page-risk .rk-pol-f { display: flex; flex-direction: column; gap: 5px; }
#page-risk .rk-pol-f.wide { grid-column: 1 / -1; }
#page-risk .rk-pol-f label { font-size: 11px; font-weight: 600; color: #8A857D; letter-spacing: .02em; }
#page-risk .rk-pol-f input, #page-risk .rk-pol-f select { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.12); border-radius: 8px; padding: 9px 11px; color: #F0EBE2; font-size: 13px; font-family: 'Open Sans', sans-serif; width: 100%; box-sizing: border-box; }
#page-risk .rk-pol-f input:focus, #page-risk .rk-pol-f select:focus { outline: none; border-color: rgba(201,168,76,0.6); }
#page-risk .rk-pol-err { color: #E05555; font-size: 11.5px; margin-top: 10px; min-height: 14px; }
#page-risk .rk-pol-save { display: inline-flex; align-items: center; gap: 7px; background: linear-gradient(135deg,#C9A84C,#e0c878); color: #1a160c; border: none; border-radius: 9px; padding: 10px 18px; font-size: 13px; font-weight: 700; cursor: pointer; font-family: 'Montserrat', sans-serif; }
#page-risk .rk-pol-cancel { background: transparent; border: 1px solid rgba(255,255,255,0.14); color: #C4BFB6; border-radius: 9px; padding: 10px 16px; font-size: 13px; font-weight: 600; cursor: pointer; font-family: 'Montserrat', sans-serif; }

/* ════════════════════════════════════════════════════════════════════════════
   FIX_RISK_CLAIMS_S1_2026_06_22 — Claims tool (claims-history + status pipeline + claims list +
   history analytics + incident->claim seam) styles, scoped under #page-risk. Built TO
   design_samples/risk/risk_claims.html section-by-section. The sample's unscoped .kpi* / .pipe* /
   .clist / .claim* / .clean* / .ha* / .freq* / .seam* / .gate classes are re-scoped #page-risk and
   prefixed rkcl-* (Risk-CLaims) to avoid collision with the shipped .rk-cg-* / .ins-* / .sa-*
   families; the sample's var(--token) values are inlined to the literal hex the shipped #page-risk
   rk-* block already uses (same palette). ASCII-only comments (a non-ASCII char silently drops the
   rule from the CSSOM - the established lesson). REUSED from the shipped Risk block: .rk-head-row /
   .rk-statusline / .rk-fix / .rk-posture (head + status line), the top-level .rk-modal / .rk-mstat /
   .rk-mod-* family (the click-expand history modal), and .fm-state (honest-empty).
   ════════════════════════════════════════════════════════════════════════════ */
/* SECTION 1 — 4-KPI band (clickable; opens the history modal) */
#page-risk .rkcl-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 18px; }
#page-risk .rkcl-kpi { position: relative; overflow: hidden; background: linear-gradient(165deg, #262320, #1f1c19); border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 15px 16px 14px; box-shadow: 0 16px 34px -28px #000, inset 0 1px 0 rgba(255,255,255,0.05); transition: transform .2s cubic-bezier(0.4,0,0.2,1), box-shadow .2s cubic-bezier(0.4,0,0.2,1), border-color .2s cubic-bezier(0.4,0,0.2,1); cursor: pointer; outline: none; }
#page-risk .rkcl-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #C9A84C; opacity: .55; }
#page-risk .rkcl-kpi.k-open::before { background: #E8943A; }
#page-risk .rkcl-kpi.k-closed::before { background: #4CAF7D; }
#page-risk .rkcl-kpi.k-value::before { background: #5B9BD5; }
#page-risk .rkcl-kpi.k-loss::before { background: #4CAF7D; }
#page-risk .rkcl-kpi:hover, #page-risk .rkcl-kpi:focus-visible { transform: translateY(-3px); border-color: rgba(255,255,255,0.13); box-shadow: 0 22px 44px -26px #000, 0 0 0 1px rgba(201,168,76,0.14), 0 0 26px -12px rgba(201,168,76,0.45); }
#page-risk .rkcl-kpi .rkcl-lbl { font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-bottom: 7px; }
#page-risk .rkcl-kpi .rkcl-val { font-family: 'Montserrat', sans-serif; font-size: 23px; font-weight: 800; color: #F0EBE2; line-height: 1; }
#page-risk .rkcl-kpi .rkcl-val small { font-size: 13px; color: #8A857D; font-weight: 600; }
#page-risk .rkcl-kpi .rkcl-sub { font-size: 11.5px; margin-top: 7px; color: #8A857D; }
#page-risk .rkcl-kpi .rkcl-sub .rkcl-delta { font-weight: 700; }
#page-risk .rkcl-kpi .rkcl-sub .rkcl-pos { color: #4CAF7D; }
#page-risk .rkcl-kpi .rkcl-expand { position: absolute; right: 11px; bottom: 11px; width: 16px; height: 16px; opacity: .38; transition: opacity .2s cubic-bezier(0.4,0,0.2,1), transform .2s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rkcl-kpi:hover .rkcl-expand, #page-risk .rkcl-kpi:focus-visible .rkcl-expand { opacity: .9; transform: scale(1.12); }
#page-risk .rkcl-kpi .rkcl-expand svg { width: 16px; height: 16px; stroke: #C9A84C; }

/* SECTION 2 — 2-col grid: pipeline + claims list (main) / history analytics + seam (rail) */
#page-risk .rkcl-grid { display: grid; grid-template-columns: 1.6fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 980px) { #page-risk .rkcl-grid { grid-template-columns: 1fr; } #page-risk .rkcl-kpis { grid-template-columns: repeat(2, 1fr); } }
#page-risk .rkcl-panel { background: linear-gradient(170deg, #252220, #1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px; box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05); margin-bottom: 18px; }
#page-risk .rkcl-panel-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3px; }
#page-risk .rkcl-panel-h h3 { font-family: 'Montserrat', sans-serif; font-size: 14px; letter-spacing: .4px; color: #F0EBE2; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 9px; }
#page-risk .rkcl-panel-h h3 .rkcl-glyph { width: 24px; height: 24px; border-radius: 8px; background: linear-gradient(150deg, rgba(201,168,76,0.22), rgba(201,168,76,0.06)); display: grid; place-items: center; }
#page-risk .rkcl-panel-h h3 .rkcl-glyph svg { width: 14px; height: 14px; stroke: #C9A84C; }
#page-risk .rkcl-panel-h .rkcl-hint { font-size: 11px; color: #8A857D; }
#page-risk .rkcl-panel-sub { font-size: 11.5px; color: #8A857D; margin: 2px 0 14px; }
#page-risk .rkcl-panel-sub b { color: #C4BFB6; }
#page-risk .rkcl-count-b { font-size: 10.5px; font-weight: 700; color: #F0EBE2; background: rgba(201,168,76,0.16); border: 1px solid rgba(201,168,76,0.36); border-radius: 999px; padding: 3px 11px; letter-spacing: .03em; font-family: 'Montserrat', sans-serif; }

/* SECTION 3 — claims status pipeline (5-stage horizontal flow) */
#page-risk .rkcl-pipe { display: flex; gap: 8px; }
#page-risk .rkcl-pipe-stage { flex: 1; background: rgba(255,255,255,0.018); border: 1px solid rgba(255,255,255,0.07); border-radius: 12px; padding: 12px 11px; position: relative; text-align: center; }
#page-risk .rkcl-pipe-stage::after { content: ""; position: absolute; right: -8px; top: 50%; width: 8px; height: 2px; background: rgba(255,255,255,0.13); }
#page-risk .rkcl-pipe-stage:last-child::after { display: none; }
#page-risk .rkcl-pipe-stage .rkcl-ps-n { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 22px; color: #F0EBE2; line-height: 1; }
#page-risk .rkcl-pipe-stage .rkcl-ps-l { font-size: 9.5px; letter-spacing: .5px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-top: 6px; }
#page-risk .rkcl-pipe-stage.active { border-color: rgba(232,148,58,0.4); background: linear-gradient(165deg, rgba(232,148,58,0.10), rgba(255,255,255,0.018)); }
#page-risk .rkcl-pipe-stage.active .rkcl-ps-n { color: #E8943A; }
#page-risk .rkcl-pipe-stage.done .rkcl-ps-n { color: #4CAF7D; }

/* SECTION 4 — claims list (cards) + honest-empty clean-history hero */
#page-risk .rkcl-clist { display: flex; flex-direction: column; gap: 11px; }
#page-risk .rkcl-claim { display: flex; gap: 13px; padding: 14px 15px; border-radius: 13px; background: rgba(255,255,255,0.018); border: 1px solid rgba(255,255,255,0.07); position: relative; overflow: hidden; transition: .18s cubic-bezier(0.4,0,0.2,1); cursor: pointer; }
#page-risk .rkcl-claim::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 13px 0 0 13px; background: #C9A84C; }
#page-risk .rkcl-claim:hover { background: rgba(255,255,255,0.04); border-color: rgba(255,255,255,0.13); transform: translateX(2px); }
#page-risk .rkcl-claim.st-open::before { background: #E8943A; } #page-risk .rkcl-claim.st-review::before { background: #5B9BD5; }
#page-risk .rkcl-claim.st-approved::before { background: #4CAF7D; } #page-risk .rkcl-claim.st-denied::before { background: #E05555; } #page-risk .rkcl-claim.st-closed::before { background: #8A857D; }
#page-risk .rkcl-claim .rkcl-c-ic { width: 38px; height: 38px; border-radius: 10px; flex: none; display: grid; place-items: center; }
#page-risk .rkcl-claim .rkcl-c-ic svg { width: 18px; height: 18px; }
#page-risk .rkcl-claim .rkcl-c-body { flex: 1; min-width: 0; }
#page-risk .rkcl-claim .rkcl-c-top { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
#page-risk .rkcl-claim .rkcl-c-tt { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .rkcl-claim .rkcl-c-id { font-size: 10px; color: #8A857D; font-family: 'Montserrat', sans-serif; letter-spacing: .04em; }
#page-risk .rkcl-claim .rkcl-c-meta { font-size: 11px; color: #8A857D; margin-top: 4px; line-height: 1.45; }
#page-risk .rkcl-claim .rkcl-c-meta b { color: #C4BFB6; font-weight: 600; }
#page-risk .rkcl-claim .rkcl-c-right { flex: none; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 6px; }
#page-risk .rkcl-claim .rkcl-c-amt { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 14px; color: #F0EBE2; }
#page-risk .rkcl-pill { font-family: 'Montserrat', sans-serif; font-size: 9.5px; font-weight: 700; letter-spacing: .04em; padding: 3px 9px; border-radius: 999px; white-space: nowrap; }
#page-risk .rkcl-pill.open { color: #E8943A; background: rgba(232,148,58,0.14); border: 1px solid rgba(232,148,58,0.3); }
#page-risk .rkcl-pill.review { color: #5B9BD5; background: rgba(91,155,213,0.14); border: 1px solid rgba(91,155,213,0.3); }
#page-risk .rkcl-pill.approved { color: #4CAF7D; background: rgba(76,175,125,0.14); border: 1px solid rgba(76,175,125,0.3); }
#page-risk .rkcl-pill.denied { color: #E05555; background: rgba(224,85,85,0.14); border: 1px solid rgba(224,85,85,0.3); }
#page-risk .rkcl-pill.closed { color: #8A857D; background: rgba(138,133,125,0.14); border: 1px solid rgba(138,133,125,0.3); }
/* honest-empty (clean-history) hero for the no-claims case */
#page-risk .rkcl-clean { display: flex; align-items: center; gap: 16px; padding: 8px 2px 14px; }
#page-risk .rkcl-clean .rkcl-ring { width: 84px; height: 84px; border-radius: 50%; flex: none; display: grid; place-items: center; background: radial-gradient(circle at 50% 38%, rgba(76,175,125,0.22), rgba(76,175,125,0.04)); border: 1px solid rgba(76,175,125,0.4); box-shadow: 0 0 28px -10px rgba(76,175,125,0.6), inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rkcl-clean .rkcl-ring .rkcl-rn { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 30px; color: #F0EBE2; line-height: 1; }
#page-risk .rkcl-clean .rkcl-ring .rkcl-ru { font-size: 8px; color: #4CAF7D; letter-spacing: .6px; text-transform: uppercase; margin-top: 1px; }
#page-risk .rkcl-clean .rkcl-ct b { display: block; font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 15px; color: #F0EBE2; }
#page-risk .rkcl-clean .rkcl-ct span { font-size: 12px; color: #8A857D; }

/* SECTION 5 — claims-history analytics (rail): 5-year frequency bars + stat rows */
#page-risk .rkcl-ha { display: flex; flex-direction: column; gap: 11px; }
#page-risk .rkcl-ha-row { display: flex; align-items: baseline; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,0.07); font-size: 12px; }
#page-risk .rkcl-ha-row:last-child { border-bottom: none; }
#page-risk .rkcl-ha-row .rkcl-ha-l { color: #8A857D; }
#page-risk .rkcl-ha-row .rkcl-ha-v { font-family: 'Montserrat', sans-serif; font-weight: 700; color: #F0EBE2; font-size: 13px; }
#page-risk .rkcl-ha-row .rkcl-ha-v.rkcl-pos { color: #4CAF7D; }
#page-risk .rkcl-freq { display: flex; align-items: flex-end; gap: 7px; height: 78px; margin: 6px 0 4px; }
#page-risk .rkcl-freq .rkcl-fy { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 5px; }
#page-risk .rkcl-freq .rkcl-fy .rkcl-bar { width: 100%; border-radius: 5px 5px 0 0; background: linear-gradient(180deg, #4CAF7D, #327a57); min-height: 3px; transition: height .8s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rkcl-freq .rkcl-fy .rkcl-bar.has { background: linear-gradient(180deg, #E8943A, #b96f23); }
#page-risk .rkcl-freq .rkcl-fy .rkcl-yl { font-size: 9px; color: #8A857D; font-family: 'Montserrat', sans-serif; }
#page-risk .rkcl-freq .rkcl-fy .rkcl-yc { font-size: 9.5px; color: #C4BFB6; font-weight: 700; font-family: 'Montserrat', sans-serif; }
#page-risk .rkcl-lossnote { font-size: 10.5px; color: #8A857D; line-height: 1.45; margin-top: 8px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.07); }
#page-risk .rkcl-lossnote b { color: #C4BFB6; font-weight: 600; }

/* SECTION 6 — incident -> claim seam (rail) */
#page-risk .rkcl-seam { display: flex; flex-direction: column; gap: 9px; }
#page-risk .rkcl-seam-item { display: flex; gap: 10px; padding: 11px 12px; border-radius: 11px; background: rgba(91,155,213,0.04); border: 1px solid rgba(91,155,213,0.16); }
#page-risk .rkcl-seam-item .rkcl-si-ic { width: 30px; height: 30px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(91,155,213,0.14); }
#page-risk .rkcl-seam-item .rkcl-si-ic svg { width: 15px; height: 15px; stroke: #5B9BD5; }
#page-risk .rkcl-seam-item .rkcl-si-b { flex: 1; min-width: 0; }
#page-risk .rkcl-seam-item .rkcl-si-t { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 11.5px; color: #F0EBE2; }
#page-risk .rkcl-seam-item .rkcl-si-d { font-size: 10.5px; color: #8A857D; margin-top: 2px; line-height: 1.4; }
#page-risk .rkcl-seam-item .rkcl-si-act { flex: none; align-self: center; }
#page-risk .rkcl-seam-item .rkcl-si-act .rkcl-lk { font-family: 'Montserrat', sans-serif; font-size: 10px; font-weight: 700; color: #5B9BD5; background: rgba(91,155,213,0.1); border: 1px solid rgba(91,155,213,0.3); border-radius: 8px; padding: 6px 11px; cursor: pointer; white-space: nowrap; }
#page-risk .rkcl-seam-empty { font-size: 10.5px; color: #8A857D; line-height: 1.45; padding: 4px 2px; }
#page-risk .rkcl-seam-foot { font-size: 10px; color: #8A857D; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.07); line-height: 1.45; }
#page-risk .rkcl-seam-foot b { color: #C4BFB6; font-weight: 600; }

/* SECTION 7 — broker-gate banner + footnote */
#page-risk .rkcl-gate { display: flex; gap: 12px; align-items: flex-start; margin-top: 4px; padding: 13px 15px; border-radius: 13px; background: linear-gradient(108deg, rgba(201,168,76,0.08), rgba(255,255,255,0.018) 60%); border: 1px solid rgba(201,168,76,0.22); }
#page-risk .rkcl-gate .rkcl-gaic { width: 30px; height: 30px; border-radius: 9px; flex: none; display: grid; place-items: center; background: rgba(201,168,76,0.14); }
#page-risk .rkcl-gate .rkcl-gaic svg { width: 16px; height: 16px; stroke: #C9A84C; }
#page-risk .rkcl-gate p { font-size: 11.5px; color: #C4BFB6; line-height: 1.5; margin: 0; }
#page-risk .rkcl-gate p b { color: #F0EBE2; font-weight: 600; }
#page-risk .rkcl-footnote { font-size: 10px; color: #8A857D; margin-top: 18px; text-align: center; opacity: .7; }

/* ── Fraud Watch tool CSS (S1, FIX_RISK_FRAUD_WATCH_S1_2026_06_22) ────────────────────────────
   Built TO design_samples/risk/risk_fraud_watch.html section-by-section, scoped under #page-risk
   + re-prefixed rk-fw-* to avoid colliding with the sample's bare class names (.flag / .kpi /
   .gate / .ref-*). The sample's var(--token) values are inlined to the literal hex the shipped
   #page-risk rk-* block already uses (same palette). REUSED from the shipped Risk block (NOT
   re-declared): .rk-head-row / .rk-when / .rk-statusline / .rk-dot / .rk-fix (head + status line),
   and .fm-state (honest-empty). ASCII-only comments (a non-ASCII char silently drops the rule
   from the CSSOM - the established L18.8 lesson). */
/* the pattern-not-verdict posture sub-line under the status line */
#page-risk .rk-fw-posture { display: block; font-size: 11px; color: #8A857D; margin-top: 3px; }
/* KPI band (4 tiles) */
#page-risk .rk-fw-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 13px; margin-bottom: 18px; }
#page-risk .rk-fw-kpi { position: relative; overflow: hidden; background: linear-gradient(165deg, #262320, #1f1c19); border: 1px solid rgba(255,255,255,0.07); border-radius: 14px; padding: 15px 16px 14px; box-shadow: 0 16px 34px -28px #000, inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-fw-kpi::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: #C9A84C; opacity: .55; }
#page-risk .rk-fw-kpi.k-open::before { background: #E8943A; }
#page-risk .rk-fw-kpi.k-rev::before { background: #4CAF7D; }
#page-risk .rk-fw-kpi.k-dis::before { background: #8A857D; }
#page-risk .rk-fw-kpi.k-cov::before { background: #5B9BD5; }
#page-risk .rk-fw-kpi .rk-fw-klbl { font-size: 9.5px; letter-spacing: 1.2px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-bottom: 7px; }
#page-risk .rk-fw-kpi .rk-fw-kval { font-family: 'Montserrat', sans-serif; font-size: 23px; font-weight: 800; color: #F0EBE2; line-height: 1; }
#page-risk .rk-fw-kpi .rk-fw-ksub { font-size: 11.5px; margin-top: 7px; color: #8A857D; }
#page-risk .rk-fw-kpi .rk-fw-ksub .rk-fw-kdelta { font-weight: 700; }
#page-risk .rk-fw-kpi .rk-fw-ksub .rk-fw-kdelta.warn { color: #E8943A; }
#page-risk .rk-fw-kpi .rk-fw-ksub .rk-fw-kdelta.pos { color: #4CAF7D; }
#page-risk .rk-fw-kpi .rk-fw-ksub b { color: #C4BFB6; font-weight: 600; }
/* 2-col grid: flagged feed (main) + signal-rule reference (rail) */
#page-risk .rk-fw-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: 18px; align-items: start; }
@media (max-width: 980px) { #page-risk .rk-fw-grid { grid-template-columns: 1fr; } #page-risk .rk-fw-kpis { grid-template-columns: repeat(2, 1fr); } }
#page-risk .rk-fw-panel { background: linear-gradient(170deg, #252220, #1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px; box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .rk-fw-panel-h { display: flex; align-items: center; justify-content: space-between; margin-bottom: 3px; }
#page-risk .rk-fw-panel-h h3 { font-family: 'Montserrat', sans-serif; font-size: 14px; letter-spacing: .4px; color: #F0EBE2; font-weight: 700; margin: 0; display: flex; align-items: center; gap: 9px; }
#page-risk .rk-fw-panel-h h3 .rk-fw-glyph { width: 24px; height: 24px; border-radius: 8px; background: linear-gradient(150deg, rgba(232,148,58,0.24), rgba(224,85,85,0.12)); display: grid; place-items: center; }
#page-risk .rk-fw-panel-h h3 .rk-fw-glyph svg { width: 14px; height: 14px; stroke: #E8943A; }
#page-risk .rk-fw-count-b { font-size: 10.5px; font-weight: 700; color: #F0EBE2; background: rgba(232,148,58,0.16); border: 1px solid rgba(232,148,58,0.36); border-radius: 999px; padding: 3px 11px; letter-spacing: .03em; font-family: 'Montserrat', sans-serif; }
#page-risk .rk-fw-panel-sub { font-size: 11.5px; color: #8A857D; margin: 2px 0 14px; }
/* flagged-item cards */
#page-risk .rk-fw-stack { display: flex; flex-direction: column; gap: 11px; }
#page-risk .rk-fw-flag { position: relative; overflow: hidden; border-radius: 13px; padding: 14px 15px; background: rgba(255,255,255,0.018); border: 1px solid rgba(255,255,255,0.07); transition: .18s cubic-bezier(0.4,0,0.2,1); }
#page-risk .rk-fw-flag::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; border-radius: 13px 0 0 13px; background: #E8943A; }
#page-risk .rk-fw-flag.high { border-color: rgba(224,85,85,0.3); background: linear-gradient(108deg, rgba(224,85,85,0.09), rgba(255,255,255,0.018) 46%); }
#page-risk .rk-fw-flag.high::before { background: #E05555; }
#page-risk .rk-fw-flag.med::before { background: #E8943A; }
#page-risk .rk-fw-flag.low::before { background: #5B9BD5; }
#page-risk .rk-fw-flag-top { display: flex; align-items: flex-start; gap: 12px; }
#page-risk .rk-fw-flag-ico { width: 34px; height: 34px; border-radius: 9px; flex: none; display: grid; place-items: center; }
#page-risk .rk-fw-flag-ico svg { width: 17px; height: 17px; }
#page-risk .rk-fw-flag-ico.ic-red { background: rgba(224,85,85,0.14); } #page-risk .rk-fw-flag-ico.ic-red svg { stroke: #E05555; }
#page-risk .rk-fw-flag-ico.ic-amber { background: rgba(232,148,58,0.14); } #page-risk .rk-fw-flag-ico.ic-amber svg { stroke: #E8943A; }
#page-risk .rk-fw-flag-ico.ic-blue { background: rgba(91,155,213,0.14); } #page-risk .rk-fw-flag-ico.ic-blue svg { stroke: #5B9BD5; }
#page-risk .rk-fw-flag-b { flex: 1; min-width: 0; }
#page-risk .rk-fw-tt-row { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
#page-risk .rk-fw-tt { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .rk-fw-sevtag { font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; }
#page-risk .rk-fw-sevtag.high { color: #E05555; background: rgba(224,85,85,0.14); border: 1px solid rgba(224,85,85,0.32); }
#page-risk .rk-fw-sevtag.med { color: #E8943A; background: rgba(232,148,58,0.14); border: 1px solid rgba(232,148,58,0.32); }
#page-risk .rk-fw-sevtag.low { color: #5B9BD5; background: rgba(91,155,213,0.14); border: 1px solid rgba(91,155,213,0.32); }
#page-risk .rk-fw-amt { margin-left: auto; font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 13px; color: #F0EBE2; }
#page-risk .rk-fw-desc { font-size: 11.5px; color: #C4BFB6; margin-top: 5px; line-height: 1.45; }
#page-risk .rk-fw-desc b { color: #F0EBE2; font-weight: 600; }
/* the "why this flagged" transparency block */
#page-risk .rk-fw-why { margin-top: 10px; padding: 9px 11px; border-radius: 9px; background: rgba(0,0,0,0.18); border: 1px solid rgba(255,255,255,0.07); }
#page-risk .rk-fw-why .rk-fw-why-l { font-size: 9px; letter-spacing: .9px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-bottom: 4px; display: flex; align-items: center; gap: 6px; }
#page-risk .rk-fw-why .rk-fw-why-l svg { width: 11px; height: 11px; stroke: #C9A84C; opacity: .85; }
#page-risk .rk-fw-why .rk-fw-why-rule { font-size: 11px; color: #C4BFB6; line-height: 1.5; }
#page-risk .rk-fw-why .rk-fw-why-rule code { font-family: 'Montserrat', sans-serif; font-size: 10.5px; color: #C9A84C; background: rgba(201,168,76,0.1); border-radius: 4px; padding: 1px 5px; }
#page-risk .rk-fw-meta { display: flex; align-items: center; gap: 14px; margin-top: 10px; font-size: 10.5px; color: #8A857D; flex-wrap: wrap; }
#page-risk .rk-fw-src-chip { display: inline-flex; align-items: center; gap: 5px; background: rgba(91,155,213,0.1); border: 1px solid rgba(91,155,213,0.24); border-radius: 999px; padding: 2px 9px; color: #5B9BD5; font-weight: 600; font-size: 10px; }
#page-risk .rk-fw-src-chip svg { width: 12px; height: 12px; }
#page-risk .rk-fw-acts { display: flex; gap: 8px; margin-top: 11px; }
#page-risk .rk-fw-acts .rk-fw-btn { font-family: 'Montserrat', sans-serif; font-size: 10.5px; font-weight: 600; cursor: default; border-radius: 8px; padding: 7px 13px; border: 1px solid rgba(255,255,255,0.13); background: rgba(255,255,255,0.04); color: #C4BFB6; opacity: .6; }
#page-risk .rk-fw-acts .rk-fw-btn.dismiss { border-color: rgba(255,255,255,0.07); color: #8A857D; }
/* pattern-not-verdict footer microcopy on each flag */
#page-risk .rk-fw-note { margin-top: 9px; font-size: 10px; color: #8A857D; font-style: italic; opacity: .85; }
/* pattern-not-verdict gate banner */
#page-risk .rk-fw-gate { display: flex; align-items: flex-start; gap: 11px; margin-top: 13px; padding: 12px 14px; border-radius: 12px; background: rgba(91,155,213,0.06); border: 1px solid rgba(91,155,213,0.22); }
#page-risk .rk-fw-gate .rk-fw-gaic { width: 30px; height: 30px; border-radius: 9px; flex: none; display: grid; place-items: center; background: rgba(91,155,213,0.12); }
#page-risk .rk-fw-gate .rk-fw-gaic svg { width: 16px; height: 16px; stroke: #5B9BD5; }
#page-risk .rk-fw-gate p { font-size: 11px; color: #C4BFB6; line-height: 1.5; margin: 0; }
#page-risk .rk-fw-gate p b { color: #F0EBE2; font-weight: 600; }
/* signal-rule reference rail */
#page-risk .rk-fw-ref-h { font-family: 'Montserrat', sans-serif; font-size: 14px; letter-spacing: .4px; color: #F0EBE2; font-weight: 700; margin: 0 0 3px; }
#page-risk .rk-fw-ref-sub { font-size: 11.5px; color: #8A857D; margin: 2px 0 14px; }
#page-risk .rk-fw-ref-rule { display: flex; gap: 11px; padding: 11px 0; border-bottom: 1px solid rgba(255,255,255,0.07); }
#page-risk .rk-fw-ref-rule:last-of-type { border-bottom: none; }
#page-risk .rk-fw-rr-ic { width: 28px; height: 28px; border-radius: 8px; flex: none; display: grid; place-items: center; background: rgba(255,255,255,0.04); }
#page-risk .rk-fw-rr-ic svg { width: 15px; height: 15px; stroke: #C9A84C; opacity: .85; }
#page-risk .rk-fw-rr-b { flex: 1; }
#page-risk .rk-fw-rr-t { font-family: 'Montserrat', sans-serif; font-weight: 600; font-size: 11.5px; color: #F0EBE2; }
#page-risk .rk-fw-rr-d { font-size: 10.5px; color: #8A857D; margin-top: 3px; line-height: 1.45; }
#page-risk .rk-fw-rr-d code { font-family: 'Montserrat', sans-serif; color: #C4BFB6; font-size: 10px; }
#page-risk .rk-fw-rr-state { margin-left: auto; font-family: 'Montserrat', sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; align-self: flex-start; padding: 2px 7px; border-radius: 999px; white-space: nowrap; }
#page-risk .rk-fw-rr-state.on { color: #4CAF7D; background: rgba(76,175,125,0.14); border: 1px solid rgba(76,175,125,0.3); }
#page-risk .rk-fw-rr-state.watch { color: #E8943A; background: rgba(232,148,58,0.14); border: 1px solid rgba(232,148,58,0.3); }
/* last-run check strip in the rail */
#page-risk .rk-fw-checks { margin-top: 14px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,0.07); }
#page-risk .rk-fw-exch { font-size: 10px; letter-spacing: .6px; text-transform: uppercase; color: #8A857D; font-weight: 700; margin-bottom: 9px; }
#page-risk .rk-fw-excrow { display: flex; align-items: center; gap: 9px; padding: 6px 0; font-size: 11px; }
#page-risk .rk-fw-excd { width: 7px; height: 7px; border-radius: 50%; flex: none; }
#page-risk .rk-fw-excd.pass { background: #E8943A; box-shadow: 0 0 8px rgba(232,148,58,0.6); }
#page-risk .rk-fw-excd.ok { background: #4CAF7D; }
#page-risk .rk-fw-excl { flex: 1; color: #C4BFB6; }
#page-risk .rk-fw-excv { font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: 10.5px; }
#page-risk .rk-fw-excv.warn { color: #E8943A; } #page-risk .rk-fw-excv.ok { color: #4CAF7D; }
#page-risk .rk-fw-exnote { display: flex; gap: 8px; align-items: flex-start; margin-top: 12px; font-size: 10.5px; color: #8A857D; line-height: 1.5; }
#page-risk .rk-fw-exnote svg { width: 13px; height: 13px; flex: none; margin-top: 1px; stroke: #C9A84C; opacity: .8; }
#page-risk .rk-fw-exnote b { color: #C4BFB6; }
#page-risk .rk-fw-footnote { font-size: 10px; color: #8A857D; margin-top: 18px; text-align: center; opacity: .7; }

/* ════════════════════════════════════════════════════════════════════════════
   FIX_RISK_INTELLIGENCE_S1_2026_06_23 — Risk Intelligence (synthesis / DERIVE surface) styles,
   scoped under #page-risk. TRANSPLANTED VERBATIM from design_samples/risk/risk_intelligence.html
   <style> .ri-* rules (sample L104-235), each selector prefixed "#page-risk " to scope it (mirror
   of how the shipped .rk-cg-* / .rk-fw-* rules are written). Literal hex values mirror the sample's
   :root tokens. ASCII-only comments (a non-ASCII char silently drops the rule from the CSSOM - the
   established L18.8 lesson). The .ri-good/.ri-warn/.ri-bad narration spans + the gauge/signal-bar +
   findings-feed + recommended-actions + honest-empty rules all carry over so the sample CSS
   transplants cleanly onto renderRiskIntelligence's emitted markup.
   ════════════════════════════════════════════════════════════════════════════ */
/* ---- HERO (AI Risk Manager + deterministic narration) ---- */
#page-risk .ri-hero { background: linear-gradient(168deg,#262320,#1d1a18); border: 1px solid rgba(255,255,255,0.07); border-radius: 18px; padding: 22px 24px 20px; box-shadow: 0 24px 56px -38px #000, inset 0 1px 0 rgba(255,255,255,0.05); position: relative; overflow: hidden; margin-bottom: 22px; }
#page-risk .ri-hero::after { content: ""; position: absolute; right: -60px; top: -60px; width: 260px; height: 260px; border-radius: 50%; background: radial-gradient(circle,rgba(201,168,76,0.10),transparent 68%); pointer-events: none; }
#page-risk .ri-hero-top { display: flex; align-items: center; gap: 13px; margin-bottom: 13px; position: relative; z-index: 1; }
#page-risk .ri-avatar { width: 42px; height: 42px; border-radius: 12px; flex: none; background: linear-gradient(150deg,#C9A84C,#9c7f33); display: grid; place-items: center; box-shadow: 0 6px 20px -6px rgba(201,168,76,0.28), inset 0 1px 0 rgba(255,255,255,0.3); }
#page-risk .ri-avatar svg { width: 22px; height: 22px; }
#page-risk .ri-who { display: flex; flex-direction: column; gap: 2px; }
#page-risk .ri-who .ri-name { font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .ri-who .ri-role { font-size: 10.5px; color: #C9A84C; letter-spacing: .06em; text-transform: uppercase; font-weight: 700; }
#page-risk .ri-live { margin-left: auto; display: flex; align-items: center; gap: 7px; font-size: 10.5px; color: #8A857D; border: 1px solid rgba(255,255,255,0.07); border-radius: 999px; padding: 4px 11px; }
#page-risk .ri-live i { width: 7px; height: 7px; border-radius: 50%; background: #4CAF7D; box-shadow: 0 0 9px #4CAF7D; }
#page-risk .ri-hero h1 { font-family: 'Montserrat',sans-serif; color: #F0EBE2; font-size: 26px; font-weight: 800; letter-spacing: -.01em; line-height: 1; position: relative; z-index: 1; }
#page-risk .ri-hsub { font-size: 11.5px; color: #8A857D; margin: 8px 0 0; position: relative; z-index: 1; }
#page-risk .ri-narration { font-size: 14px; line-height: 1.6; color: #C4BFB6; margin-top: 14px; max-width: 760px; position: relative; z-index: 1; }
#page-risk .ri-narration b { color: #F0EBE2; font-weight: 700; }
#page-risk .ri-good { color: #4CAF7D; font-weight: 600; } #page-risk .ri-warn { color: #E8943A; font-weight: 600; } #page-risk .ri-bad { color: #E05555; font-weight: 600; }
#page-risk .ri-narration .ri-close { display: block; margin-top: 8px; color: #F0EBE2; font-weight: 700; }
/* ---- section heads ---- */
#page-risk .ri-sec { margin-top: 28px; }
#page-risk .ri-sec-head { display: flex; align-items: center; gap: 11px; margin-bottom: 14px; }
#page-risk .ri-sec-head h2 { font-family: 'Montserrat',sans-serif; color: #F0EBE2; font-size: 16px; font-weight: 800; letter-spacing: -.005em; }
#page-risk .ri-tag { font-family: 'Montserrat',sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #C9A84C; background: rgba(201,168,76,0.12); border: 1px solid rgba(201,168,76,0.3); border-radius: 999px; padding: 3px 9px; }
#page-risk .ri-tag.det { color: #6fd0a0; background: rgba(76,175,125,0.13); border-color: rgba(76,175,125,0.32); }
#page-risk .ri-note { font-size: 11px; color: #8A857D; margin-left: auto; }
#page-risk .ri-panel { background: linear-gradient(170deg,#252220,#1e1b19); border: 1px solid rgba(255,255,255,0.07); border-radius: 16px; padding: 18px 20px; box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05); }
/* ---- COMPOSITE POSTURE (gauge + 5 weighted signal bars) ---- */
#page-risk .ri-posture-grid { display: grid; grid-template-columns: 1fr 1.35fr; gap: 18px; align-items: stretch; }
#page-risk .ri-gauge-card { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 13px; }
#page-risk .ri-gauge-wrap { position: relative; width: 168px; height: 168px; }
#page-risk .ri-gauge-cv { width: 168px; height: 168px; }
#page-risk .ri-gauge-center { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; pointer-events: none; }
#page-risk .ri-gauge-center .gv { font-family: 'Montserrat',sans-serif; font-weight: 800; font-size: 46px; color: #F0EBE2; line-height: 1; }
#page-risk .ri-gauge-center .gm { font-size: 10px; color: #8A857D; margin-top: 2px; }
#page-risk .ri-gauge-center .gt { margin-top: 7px; font-size: 9px; letter-spacing: 1.2px; text-transform: uppercase; color: #E8943A; font-weight: 700; border: 1px solid rgba(232,148,58,0.4); border-radius: 20px; padding: 3px 11px; }
#page-risk .ri-gauge-cap { font-size: 11px; color: #8A857D; text-align: center; max-width: 220px; }
#page-risk .ri-gauge-cap b { color: #C4BFB6; font-weight: 600; }
#page-risk .ri-signals { display: flex; flex-direction: column; gap: 13px; justify-content: center; }
#page-risk .ri-sig { display: flex; align-items: center; gap: 12px; }
#page-risk .ri-sig .s-l { width: 142px; flex: none; font-size: 12px; color: #C4BFB6; display: flex; align-items: center; gap: 7px; }
#page-risk .ri-sig .s-l .s-wt { font-size: 9px; color: #8A857D; font-family: 'Montserrat',sans-serif; font-weight: 700; border: 1px solid rgba(255,255,255,0.07); border-radius: 5px; padding: 0 5px; }
#page-risk .ri-sig .s-bar { flex: 1; height: 8px; border-radius: 5px; background: rgba(255,255,255,0.06); overflow: hidden; }
#page-risk .ri-sig .s-bar i { display: block; height: 100%; border-radius: 5px; width: 0; transition: width 1.1s cubic-bezier(.2,.7,.2,1); }
#page-risk .ri-sig .s-v { width: 32px; text-align: right; font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .ri-calc-line { margin-top: 15px; padding-top: 13px; border-top: 1px solid rgba(255,255,255,0.07); font-size: 10.5px; color: #8A857D; display: flex; align-items: flex-start; gap: 8px; line-height: 1.5; }
#page-risk .ri-calc-line svg { width: 13px; height: 13px; stroke: #C9A84C; flex: none; margin-top: 2px; }
#page-risk .ri-calc-line b { color: #C4BFB6; font-weight: 600; }
/* ---- FIRST THING I'D FIX (single highest-leverage finding) ---- */
#page-risk .ri-ftf { background: linear-gradient(108deg,rgba(224,85,85,0.14),rgba(255,255,255,0.02) 52%); border: 1px solid rgba(224,85,85,0.36); border-radius: 16px; padding: 20px 22px; box-shadow: 0 22px 50px -36px #000, inset 0 1px 0 rgba(255,255,255,0.05); position: relative; overflow: hidden; }
#page-risk .ri-ftf::after { content: ""; position: absolute; inset: 0; background: radial-gradient(420px 160px at 0% 50%,rgba(224,85,85,0.10),transparent 70%); pointer-events: none; }
#page-risk .ri-ftf-top { display: flex; align-items: center; gap: 11px; margin-bottom: 11px; position: relative; z-index: 1; }
#page-risk .ri-ftf-ic { width: 44px; height: 44px; border-radius: 12px; flex: none; display: grid; place-items: center; background: linear-gradient(150deg,rgba(224,85,85,0.26),rgba(224,85,85,0.06)); box-shadow: 0 0 20px -4px rgba(224,85,85,0.45); }
#page-risk .ri-ftf-ic svg { width: 22px; height: 22px; stroke: #E05555; }
#page-risk .ri-ftf-lbl { font-family: 'Montserrat',sans-serif; font-size: 9.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #E05555; }
#page-risk .ri-ftf-top h3 { font-family: 'Montserrat',sans-serif; color: #F0EBE2; font-size: 18px; font-weight: 800; margin-top: 2px; }
#page-risk .ri-ftf-prio { margin-left: auto; text-align: right; }
#page-risk .ri-ftf-prio .p-v { font-family: 'Montserrat',sans-serif; font-weight: 800; font-size: 24px; color: #F0EBE2; line-height: 1; }
#page-risk .ri-ftf-prio .p-l { font-size: 9px; color: #8A857D; letter-spacing: .08em; text-transform: uppercase; margin-top: 3px; }
#page-risk .ri-ftf-body { font-size: 13.5px; line-height: 1.6; color: #C4BFB6; position: relative; z-index: 1; max-width: 680px; }
#page-risk .ri-ftf-body b { color: #F0EBE2; font-weight: 700; }
#page-risk .ri-ftf-trace { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 13px; position: relative; z-index: 1; }
#page-risk .ri-trace-chip { display: inline-flex; align-items: center; gap: 6px; font-size: 10.5px; color: #C4BFB6; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; padding: 5px 10px; }
#page-risk .ri-trace-chip svg { width: 11px; height: 11px; stroke: #C9A84C; }
#page-risk .ri-trace-chip .tc-arrow { color: #8A857D; }
#page-risk .ri-ftf-act { margin-top: 16px; position: relative; z-index: 1; }
#page-risk .ri-ftf-btn { font-family: 'Montserrat',sans-serif; font-size: 12.5px; font-weight: 700; cursor: pointer; border-radius: 10px; padding: 11px 20px; border: none; background: linear-gradient(180deg,#E05555,#b94545); color: #fff; box-shadow: 0 6px 20px -6px rgba(224,85,85,0.55); transition: transform .16s cubic-bezier(0.4,0,0.2,1), box-shadow .16s cubic-bezier(0.4,0,0.2,1); }
#page-risk .ri-ftf-btn:hover { transform: translateY(-1px); box-shadow: 0 10px 28px -6px rgba(224,85,85,0.7); }
/* ---- PRIORITIZED RISK FINDINGS FEED ---- */
#page-risk .ri-feed { display: flex; flex-direction: column; gap: 11px; }
#page-risk .ri-finding { display: flex; gap: 14px; padding: 15px 17px; border-radius: 14px; background: rgba(255,255,255,0.018); border: 1px solid rgba(255,255,255,0.07); position: relative; overflow: hidden; transition: .18s cubic-bezier(0.4,0,0.2,1); cursor: default; }
#page-risk .ri-finding::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--lvl,#C9A84C); }
#page-risk .ri-finding:hover { background: rgba(255,255,255,0.035); border-color: rgba(255,255,255,0.13); }
#page-risk .ri-finding.lvl-high { --lvl: #E05555; } #page-risk .ri-finding.lvl-med { --lvl: #E8943A; } #page-risk .ri-finding.lvl-low { --lvl: #4CAF7D; } #page-risk .ri-finding.lvl-info { --lvl: #5B9BD5; }
#page-risk .ri-f-rank { font-family: 'Montserrat',sans-serif; font-weight: 800; font-size: 15px; color: #8A857D; width: 22px; text-align: center; flex: none; padding-top: 1px; }
#page-risk .ri-f-ic { width: 36px; height: 36px; border-radius: 10px; flex: none; display: grid; place-items: center; }
#page-risk .ri-f-ic svg { width: 18px; height: 18px; }
#page-risk .ri-f-ic.high { background: rgba(224,85,85,0.14); } #page-risk .ri-f-ic.high svg { stroke: #E05555; }
#page-risk .ri-f-ic.med { background: rgba(232,148,58,0.14); } #page-risk .ri-f-ic.med svg { stroke: #E8943A; }
#page-risk .ri-f-ic.low { background: rgba(76,175,125,0.14); } #page-risk .ri-f-ic.low svg { stroke: #4CAF7D; }
#page-risk .ri-f-ic.info { background: rgba(91,155,213,0.14); } #page-risk .ri-f-ic.info svg { stroke: #5B9BD5; }
#page-risk .ri-f-body { flex: 1; min-width: 0; }
#page-risk .ri-f-top { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
#page-risk .ri-f-t { font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; }
#page-risk .ri-f-sev { font-family: 'Montserrat',sans-serif; font-size: 8.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 2px 7px; border-radius: 999px; }
#page-risk .ri-f-sev.high { color: #E05555; background: rgba(224,85,85,0.14); border: 1px solid rgba(224,85,85,0.34); }
#page-risk .ri-f-sev.med { color: #E8943A; background: rgba(232,148,58,0.14); border: 1px solid rgba(232,148,58,0.34); }
#page-risk .ri-f-sev.low { color: #4CAF7D; background: rgba(76,175,125,0.14); border: 1px solid rgba(76,175,125,0.34); }
#page-risk .ri-f-sev.info { color: #5B9BD5; background: rgba(91,155,213,0.14); border: 1px solid rgba(91,155,213,0.34); }
#page-risk .ri-f-d { font-size: 11.5px; color: #8A857D; margin-top: 4px; line-height: 1.45; }
#page-risk .ri-f-d b { color: #C4BFB6; font-weight: 600; }
#page-risk .ri-f-meta { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
#page-risk .ri-f-src { display: inline-flex; align-items: center; gap: 5px; font-size: 9.5px; color: #8A857D; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); border-radius: 7px; padding: 3px 8px; }
#page-risk .ri-f-src svg { width: 10px; height: 10px; stroke: #C9A84C; }
#page-risk .ri-f-src b { color: #C4BFB6; font-weight: 600; }
#page-risk .ri-f-prio { flex: none; text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 2px; padding-top: 1px; }
#page-risk .ri-f-prio .fp-v { font-family: 'Montserrat',sans-serif; font-weight: 800; font-size: 17px; color: #F0EBE2; line-height: 1; }
#page-risk .ri-f-prio .fp-l { font-size: 8px; color: #8A857D; letter-spacing: .07em; text-transform: uppercase; }
#page-risk .ri-f-prio .fp-bar { width: 48px; height: 4px; border-radius: 3px; background: rgba(255,255,255,0.07); overflow: hidden; margin-top: 4px; }
#page-risk .ri-f-prio .fp-bar i { display: block; height: 100%; border-radius: 3px; background: var(--lvl,#C9A84C); }
/* ---- RECOMMENDED ACTIONS (PREP / RAISE / GATHER / PLAN) ---- */
#page-risk .ri-acts { display: grid; grid-template-columns: repeat(2,1fr); gap: 13px; }
#page-risk .ri-act { display: flex; gap: 13px; padding: 16px 17px; border-radius: 14px; background: linear-gradient(168deg,#262320,#1e1b18); border: 1px solid rgba(255,255,255,0.07); box-shadow: inset 0 1px 0 rgba(255,255,255,0.05); }
#page-risk .ri-act-ic { width: 38px; height: 38px; border-radius: 10px; flex: none; display: grid; place-items: center; background: linear-gradient(150deg,rgba(201,168,76,0.2),rgba(201,168,76,0.05)); }
#page-risk .ri-act-ic svg { width: 19px; height: 19px; stroke: #C9A84C; }
#page-risk .ri-act-b { flex: 1; min-width: 0; }
#page-risk .ri-act-verb { font-family: 'Montserrat',sans-serif; font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #C9A84C; }
#page-risk .ri-act-t { font-family: 'Montserrat',sans-serif; font-weight: 700; font-size: 13px; color: #F0EBE2; margin-top: 3px; }
#page-risk .ri-act-d { font-size: 11px; color: #8A857D; margin-top: 5px; line-height: 1.45; }
#page-risk .ri-act-foot { display: flex; align-items: center; gap: 8px; margin-top: 11px; }
#page-risk .ri-act-btn { font-family: 'Montserrat',sans-serif; font-size: 10.5px; font-weight: 600; cursor: pointer; border-radius: 8px; padding: 7px 13px; border: 1px solid rgba(255,255,255,0.13); background: rgba(255,255,255,0.04); color: #C4BFB6; transition: .16s cubic-bezier(0.4,0,0.2,1); }
#page-risk .ri-act-btn:hover { background: rgba(255,255,255,0.09); color: #F0EBE2; border-color: #C9A84C; }
#page-risk .ri-act-coming { font-size: 9px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: #8A857D; border: 1px dashed rgba(255,255,255,0.13); border-radius: 999px; padding: 3px 9px; }
/* ---- HONEST-EMPTY (real account, no substrate) ---- */
#page-risk .ri-empty { display: flex; flex-direction: column; align-items: center; gap: 11px; padding: 34px 22px; text-align: center; color: #8A857D; font-size: 12.5px; line-height: 1.55; }
#page-risk .ri-empty .ri-empty-ic { font-size: 30px; opacity: .7; }
#page-risk .ri-empty b { color: #C4BFB6; font-weight: 600; }
#page-risk .ri-foot { font-size: 10.5px; color: #8A857D; margin-top: 24px; text-align: center; opacity: .75; line-height: 1.55; }
#page-risk .ri-foot b { color: #C4BFB6; font-weight: 600; }
@media (prefers-reduced-motion:reduce) { #page-risk .ri-sig .s-bar i { transition: none !important; } }