/* WEBXPAY Merchant Risk reference palette
   Canvas #22272D | Card #2A2F35 | Elevated card #2F363F
   Stellar yellow #F1FF5C | White #FFFFFF | Border #48515B */
:root {
    --bg: #22272d;
    --panel: #2a2f35;
    --panel-2: #2f363f;
    --panel-3: #303740;
    --ink: #ffffff;
    --muted: #b8c2d1;
    --line: #48515b;
    --line-strong: #59636e;
    --yellow: #f1ff5c;
    --yellow-soft: rgba(241, 255, 92, .10);
    --red: #ff746d;
    --orange: #ffb15e;
    --green: #78d8a3;
    --blue: #8cb1ff;
    --shadow: 0 24px 70px rgba(4, 8, 12, .18);
    --radius: 22px;
    --radius-sm: 13px;
    --max: 1740px;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--ink);
    background: var(--bg);
    font: 15px/1.55 Arial, Helvetica, sans-serif;
    min-width: 320px;
    -webkit-font-smoothing: antialiased;
}
button, input, select, textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
[hidden] { display: none !important; }

.page-shell { min-height: 100vh; overflow: hidden; }
.topbar {
    height: 86px;
    padding: 0 max(54px, calc((100vw - var(--max)) / 2));
    display: flex;
    align-items: center;
    justify-content: space-between;
    position: sticky;
    top: 0;
    z-index: 40;
    background: rgba(34, 39, 45, .96);
    backdrop-filter: blur(18px);
}
.brand { display: inline-flex; gap: 14px; align-items: center; }
.brand-mark {
    width: 47px;
    height: 47px;
    border-radius: 12px;
    display: grid;
    place-items: center;
    background: var(--yellow);
    color: #101317;
    font-weight: 900;
    font-size: 22px;
    letter-spacing: -.05em;
}
.brand > span:last-child { display: flex; flex-direction: column; align-items: flex-start; line-height: 1; gap: 7px; }
.brand strong { letter-spacing: .22em; font-size: 18px; font-weight: 800; }
.brand small { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .24em; }
.topbar-actions { display: flex; align-items: center; gap: 12px; }
.confidential { color: var(--muted); font-size: 13px; margin-right: 12px; letter-spacing: .13em; text-transform: uppercase; }

.btn {
    border: 1px solid transparent;
    border-radius: 13px;
    padding: 13px 20px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--ink);
    background: var(--panel-3);
    font-weight: 800;
    transition: transform .2s ease, border-color .2s ease, background .2s ease;
}
.btn:hover { transform: translateY(-1px); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn-outline { border-color: var(--line-strong); background: transparent; }
.btn-outline:hover, .btn-ghost:hover { border-color: var(--yellow); color: var(--yellow); }
.btn-dark { background: #111519; color: var(--ink); }
.btn-light { background: #f6ede5; color: #111519; }
.btn-yellow { background: var(--yellow); color: #101317; }
.btn-ghost { background: transparent; border-color: var(--line-strong); }
.btn-small { padding: 7px 12px; min-height: 34px; font-size: 12px; border-radius: 9px; }
.text-link { color: var(--ink); background: transparent; border: 0; font-weight: 700; padding: 10px 0; }
.text-link:hover { color: var(--yellow); }
.topbar-upload { min-width: 265px; }

.section-pad { max-width: var(--max); margin: 0 auto; padding: 76px 36px; }
.hero {
    position: relative;
    padding-top: 78px;
    padding-bottom: 88px;
}
.hero-orbit {
    position: absolute;
    width: 335px;
    height: 335px;
    right: -188px;
    top: 0;
    border: 105px solid rgba(241, 255, 92, .065);
    border-radius: 50%;
    pointer-events: none;
}
.hero-layout {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: minmax(0, 1fr) 438px;
    gap: 88px;
    align-items: start;
}
.hero-left { min-width: 0; }
.eyebrow-row {
    display: flex;
    align-items: center;
    gap: 16px;
    margin-bottom: 25px;
}
.eyebrow {
    display: inline-flex;
    align-items: center;
    min-height: 37px;
    padding: 0 14px;
    border-radius: 999px;
    color: #111519;
    background: var(--yellow);
    text-transform: uppercase;
    letter-spacing: .15em;
    font-size: 11px;
    font-weight: 900;
}
.small-label {
    color: var(--yellow);
    text-transform: uppercase;
    letter-spacing: .14em;
    font-size: 11px;
    font-weight: 900;
}
.cutoff { color: var(--muted); font-size: 13px; }
.hero h1 {
    margin: 0;
    max-width: 1050px;
    font-family: Arial, Helvetica, sans-serif;
    font-size: clamp(62px, 5.25vw, 101px);
    line-height: .91;
    font-weight: 900;
    letter-spacing: -.065em;
    color: #fffefa;
}
.hero-intro {
    max-width: 940px;
    color: #eef0f3;
    font-size: clamp(22px, 1.78vw, 33px);
    line-height: 1.3;
    margin: 34px 0 26px;
    letter-spacing: -.025em;
}
.hero-tags { display: flex; flex-wrap: wrap; gap: 10px; }
.hero-tags span {
    border: 1px solid var(--line);
    border-radius: 9px;
    padding: 9px 13px;
    color: #d6dde7;
    font-size: 13px;
    background: rgba(19, 24, 29, .10);
}
.hero-tags strong { color: var(--ink); }
.posture-card {
    max-width: 1090px;
    margin-top: 40px;
    background: rgba(42, 47, 53, .78);
    border: 1px solid var(--line);
    border-left: 3px solid var(--yellow);
    border-radius: 18px;
    padding: 22px 24px 20px 20px;
    display: grid;
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 18px;
    align-items: start;
}
.posture-icon {
    width: 43px;
    height: 43px;
    border-radius: 50%;
    background: var(--yellow);
    color: #111519;
    display: grid;
    place-items: center;
    font-size: 20px;
    font-weight: 900;
}
.posture-card h2 { margin: 5px 0 8px; font-size: 21px; line-height: 1.22; font-weight: 900; letter-spacing: -.02em; }
.posture-card p { color: var(--muted); margin: 0; font-size: 15px; line-height: 1.52; }
.hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 17px; }

.risk-overview-card {
    margin-top: 154px;
    min-height: 505px;
    padding: 31px 32px 24px;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--panel-2);
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}
.score-ring-large {
    --score: 0;
    width: 193px;
    height: 193px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: conic-gradient(from -90deg, var(--yellow) calc(var(--score) * 1%), #48535e 0);
    margin-bottom: 24px;
}
.score-ring-centre {
    width: 150px;
    height: 150px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--bg);
}
.score-ring-centre strong { font-size: 58px; line-height: 1; font-weight: 900; letter-spacing: -.05em; }
.score-ring-centre span { color: var(--muted); font-size: 15px; margin: 24px 0 0 2px; }
.risk-card-label { color: var(--muted); text-transform: uppercase; letter-spacing: .17em; font-size: 11px; }
.risk-overview-card h2 { color: var(--yellow); margin: 9px 0 7px; font-size: 31px; line-height: 1.15; }
.risk-overview-card > p { max-width: 310px; color: var(--muted); margin: 0; font-size: 15px; line-height: 1.42; }
.risk-summary-stats {
    width: 100%;
    margin-top: auto;
    padding-top: 20px;
    border-top: 1px solid var(--line);
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}
.risk-summary-stats div { min-width: 0; padding: 0 8px; border-right: 1px solid var(--line); }
.risk-summary-stats div:last-child { border-right: 0; }
.risk-summary-stats strong { display: block; font-size: 21px; line-height: 1.2; }
.risk-summary-stats span { display: block; color: var(--muted); text-transform: uppercase; letter-spacing: .12em; font-size: 10px; margin-top: 7px; }

.portfolio-layout { display: grid; grid-template-columns: 390px minmax(0, 1fr); gap: 26px; align-items: start; }
.portfolio-sidebar, .merchant-workspace { border: 1px solid var(--line); border-radius: var(--radius); background: rgba(17,17,20,.87); box-shadow: var(--shadow); }
.portfolio-sidebar { position: sticky; top: 96px; overflow: hidden; }
.section-heading { margin-bottom: 26px; }
.section-heading h2 { font: 900 clamp(30px, 4vw, 54px)/1 Arial, Helvetica, sans-serif; letter-spacing: -.04em; margin: 9px 0 12px; }
.section-heading p { color: var(--muted); max-width: 900px; font-size: 17px; }
.section-heading.compact { padding: 24px 24px 0; margin-bottom: 18px; }
.section-heading.compact h2 { font-size: 25px; }
.search-box { margin: 0 20px 14px; height: 44px; border: 1px solid var(--line); border-radius: 12px; display: flex; align-items: center; gap: 9px; padding: 0 12px; background: #222930; }
.search-box span { color: var(--muted); font-size: 19px; }
.search-box input { border: 0; outline: 0; color: var(--ink); background: transparent; width: 100%; }
.filter-row { display: flex; gap: 6px; flex-wrap: wrap; padding: 0 20px 18px; border-bottom: 1px solid var(--line); }
.filter-chip { background: transparent; color: var(--muted); border: 1px solid var(--line); border-radius: 999px; padding: 6px 9px; font-size: 11px; }
.filter-chip.active { background: var(--yellow); color: #090909; border-color: var(--yellow); font-weight: 800; }
.merchant-list { max-height: calc(100vh - 290px); overflow: auto; padding: 10px; }
.merchant-list::-webkit-scrollbar { width: 8px; }
.merchant-list::-webkit-scrollbar-thumb { background: var(--panel-3); border-radius: 8px; }
.merchant-card { width: 100%; border: 1px solid transparent; border-radius: 15px; background: transparent; color: var(--ink); padding: 15px; text-align: left; margin-bottom: 5px; }
.merchant-card:hover { background: rgba(255,255,255,.035); }
.merchant-card.active { border-color: rgba(241,255,92,.45); background: var(--yellow-soft); }
.merchant-card-top { display: flex; justify-content: space-between; gap: 12px; }
.merchant-card h3 { margin: 0 0 4px; font: 800 15px/1.25 Arial, Helvetica, sans-serif; }
.merchant-card .meta { color: var(--muted); font-size: 11px; }
.merchant-card .signal { margin-top: 12px; color: #d5dce5; font-size: 12px; }
.merchant-card .owner-row { margin-top: 10px; display: flex; justify-content: space-between; color: var(--muted); font-size: 11px; }
.risk-pill, .status-pill { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; padding: 5px 9px; font-weight: 800; font-size: 10px; white-space: nowrap; }
.risk-Critical { background: rgba(255,94,87,.15); color: #ff8a84; border: 1px solid rgba(255,94,87,.3); }
.risk-High { background: rgba(255,156,69,.14); color: #ffb472; border: 1px solid rgba(255,156,69,.28); }
.risk-Moderate { background: rgba(241,255,92,.12); color: var(--yellow); border: 1px solid rgba(241,255,92,.25); }
.risk-Low { background: rgba(115,214,158,.12); color: var(--green); border: 1px solid rgba(115,214,158,.25); }
.risk-Pending { background: rgba(126,168,255,.12); color: var(--blue); border: 1px solid rgba(126,168,255,.25); }

.merchant-workspace { min-height: 780px; overflow: hidden; }
.loading-state { min-height: 500px; display: grid; place-items: center; align-content: center; gap: 14px; color: var(--muted); }
.spinner { width: 34px; height: 34px; border: 3px solid var(--line); border-top-color: var(--yellow); border-radius: 50%; animation: spin .8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
.merchant-header { padding: 28px 30px 0; background: linear-gradient(180deg, rgba(241,255,92,.055), transparent); }
.merchant-header-top { display: flex; justify-content: space-between; gap: 24px; align-items: flex-start; }
.merchant-kicker { color: var(--muted); font-size: 12px; }
.merchant-header h2 { font: 900 clamp(30px, 4vw, 50px)/1 Arial, Helvetica, sans-serif; letter-spacing: -.045em; margin: 8px 0 10px; }
.merchant-subtitle { color: var(--muted); }
.score-lockup { display: flex; gap: 14px; align-items: center; }
.score-ring { --score: 44; width: 86px; height: 86px; border-radius: 50%; display: grid; place-items: center; background: conic-gradient(var(--yellow) calc(var(--score) * 1%), var(--panel-3) 0); position: relative; }
.score-ring::before { content: ""; position: absolute; inset: 8px; background: var(--panel); border-radius: 50%; }
.score-ring strong { position: relative; z-index: 1; font: 900 22px Arial, Helvetica, sans-serif; }
.score-meta { display: flex; flex-direction: column; gap: 4px; }
.score-meta strong { font: 900 16px Arial, Helvetica, sans-serif; }
.score-meta span { color: var(--muted); font-size: 12px; }
.identity-strip { display: flex; gap: 18px; flex-wrap: wrap; border-top: 1px solid var(--line); margin-top: 24px; padding: 18px 0; color: #d5dce5; font-size: 12px; }
.tabs { display: flex; gap: 4px; padding: 0 30px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow-x: auto; }
.tab-btn { color: var(--muted); border: 0; background: transparent; padding: 15px 12px; white-space: nowrap; border-bottom: 2px solid transparent; font-weight: 700; }
.tab-btn.active { color: var(--yellow); border-bottom-color: var(--yellow); }
.tab-panel { padding: 28px 30px 34px; }

.recommendation-card { display: grid; grid-template-columns: 1.35fr .65fr; gap: 24px; background: var(--panel-2); border: 1px solid var(--line); border-radius: 18px; padding: 24px; margin-bottom: 24px; }
.recommendation-card h3 { margin: 5px 0 8px; font: 900 24px/1.2 Arial, Helvetica, sans-serif; }
.recommendation-card p { color: #d5dce5; margin: 0; }
.decision-box { padding-left: 22px; border-left: 1px solid var(--line); display: flex; flex-direction: column; justify-content: space-between; gap: 14px; }
.decision-box strong { font: 900 20px Arial, Helvetica, sans-serif; }
.summary-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.summary-card { border: 1px solid var(--line); border-radius: 17px; padding: 20px; background: rgba(255,255,255,.018); }
.summary-card h3 { margin: 0 0 14px; font: 800 16px Arial, Helvetica, sans-serif; }
.summary-card ul { margin: 0; padding: 0; list-style: none; }
.summary-card li { position: relative; padding: 0 0 11px 18px; color: #d5dce5; }
.summary-card li::before { content: ""; width: 7px; height: 7px; border-radius: 50%; position: absolute; left: 0; top: 8px; background: var(--yellow); }
.summary-card.blockers li::before { background: var(--orange); }
.summary-card.controls li::before { background: var(--blue); }
.dimension-grid { margin-top: 24px; display: grid; gap: 12px; }
.dimension { border: 1px solid var(--line); border-radius: 14px; padding: 15px 17px; }
.dimension-head { display: flex; justify-content: space-between; gap: 18px; margin-bottom: 9px; }
.dimension-head strong { font-family: Arial, Helvetica, sans-serif; }
.dimension-head span { color: var(--muted); font-size: 12px; }
.progress { height: 8px; border-radius: 999px; background: var(--panel-3); overflow: hidden; }
.progress span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--yellow), #fff67c); }
.dimension p { color: var(--muted); font-size: 12px; margin: 8px 0 0; }

.toolbar { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 18px; }
.toolbar h3 { margin: 0; font: 900 22px Arial, Helvetica, sans-serif; }
.toolbar-actions { display: flex; gap: 8px; }
.findings-list { display: grid; gap: 14px; }
.finding { border: 1px solid var(--line); border-radius: 17px; overflow: hidden; background: rgba(255,255,255,.018); }
.finding summary { list-style: none; cursor: pointer; padding: 18px 20px; display: grid; grid-template-columns: auto 1fr auto; gap: 13px; align-items: center; }
.finding summary::-webkit-details-marker { display: none; }
.finding-title strong { display: block; font: 800 16px Arial, Helvetica, sans-serif; }
.finding-title span { color: var(--muted); font-size: 12px; }
.finding-chevron { color: var(--muted); transition: .2s; }
.finding[open] .finding-chevron { transform: rotate(180deg); }
.finding-body { border-top: 1px solid var(--line); padding: 20px; }
.finding-body > p { color: #d5dce5; margin-top: 0; }
.comparison-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin: 18px 0; }
.comparison-item { background: #222930; border: 1px solid var(--line); border-radius: 12px; padding: 14px; }
.comparison-item span { display: block; color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .1em; margin-bottom: 5px; }
.comparison-item strong { font-size: 13px; }
.recommendation { border-left: 3px solid var(--yellow); padding: 11px 14px; background: var(--yellow-soft); border-radius: 0 10px 10px 0; }
.recommendation strong { display: block; font-size: 11px; color: var(--yellow); text-transform: uppercase; letter-spacing: .1em; margin-bottom: 3px; }
.finding-footer { display: flex; gap: 20px; flex-wrap: wrap; color: var(--muted); font-size: 11px; margin-top: 14px; }

.table-wrap { overflow-x: auto; border: 1px solid var(--line); border-radius: 15px; }
table { width: 100%; border-collapse: collapse; min-width: 760px; }
th, td { padding: 13px 15px; text-align: left; border-bottom: 1px solid var(--line); font-size: 12px; }
th { color: var(--muted); text-transform: uppercase; letter-spacing: .08em; font-size: 10px; background: #242b32; }
tbody tr:last-child td { border-bottom: 0; }
tbody tr:hover td { background: rgba(255,255,255,.018); }
.doc-name { font-weight: 700; color: var(--ink); }
.doc-sub { color: var(--muted); font-size: 10px; }
.status-Verified, .status-Closed, .status-Matched, .status-Reachable { background: rgba(115,214,158,.12); color: var(--green); }
.status-Review, .status-In-progress, .status-Partial { background: rgba(126,168,255,.12); color: var(--blue); }
.status-Insufficient, .status-Mismatch, .status-Missing, .status-Unsupported, .status-Open { background: rgba(255,156,69,.13); color: var(--orange); }
.status-Pending-review, .status-Evidence-submitted, .status-Weak { background: rgba(241,255,92,.12); color: var(--yellow); }

.footprint-overview { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; margin-bottom: 20px; }
.mini-stat { border: 1px solid var(--line); border-radius: 14px; padding: 15px; }
.mini-stat strong { display: block; font: 900 24px Arial, Helvetica, sans-serif; }
.mini-stat span { color: var(--muted); font-size: 11px; }
.signal-list { display: grid; gap: 10px; margin-bottom: 24px; }
.signal-row { border: 1px solid var(--line); border-radius: 13px; padding: 14px 16px; display: grid; grid-template-columns: minmax(160px,.5fr) auto 1fr; gap: 14px; align-items: center; }
.signal-row strong { font-family: Arial, Helvetica, sans-serif; }
.signal-row p { margin: 0; color: var(--muted); font-size: 12px; }

.control-list { display: grid; gap: 10px; }
.control-row { border: 1px solid var(--line); border-radius: 14px; padding: 16px; display: grid; grid-template-columns: 1.2fr .7fr .55fr .65fr; gap: 14px; align-items: center; }
.control-row h4 { margin: 0 0 4px; font: 700 14px Manrope; }
.control-row small { color: var(--muted); }
.control-row select { width: 100%; border: 1px solid var(--line); background: #222930; color: var(--ink); border-radius: 9px; padding: 8px; }
.history { margin-top: 24px; border-top: 1px solid var(--line); padding-top: 20px; }
.history-item { display: grid; grid-template-columns: 11px 1fr; gap: 13px; margin-bottom: 16px; }
.history-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--yellow); margin-top: 7px; box-shadow: 0 0 0 5px var(--yellow-soft); }
.history-item strong { display: block; }
.history-item p { color: var(--muted); margin: 4px 0; }
.history-item small { color: #77766f; }

.operating-model { padding-top: 100px; }
.pattern-card { border: 1px solid var(--line); border-radius: var(--radius); padding: 30px; display: grid; grid-template-columns: 1fr 1fr; gap: 36px; background: linear-gradient(145deg, rgba(241,255,92,.07), rgba(255,255,255,.018)); }
.pattern-card h3 { font: 900 29px/1.16 Arial, Helvetica, sans-serif; margin: 8px 0 10px; }
.pattern-card p { color: var(--muted); }
.pattern-stats { display: grid; grid-template-columns: repeat(2,1fr); border-left: 1px solid var(--line); }
.pattern-stats div { padding: 20px; border-bottom: 1px solid var(--line); }
.pattern-stats div:nth-last-child(-n+2) { border-bottom: 0; }
.pattern-stats strong { display: block; font: 900 27px Arial, Helvetica, sans-serif; color: var(--yellow); }
.pattern-stats span { color: var(--muted); font-size: 11px; }
.rollout-grid { margin: 24px 0 90px; display: grid; grid-template-columns: repeat(5,1fr); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.rollout-grid article { padding: 23px; min-height: 245px; border-right: 1px solid var(--line); }
.rollout-grid article:last-child { border-right: 0; }
.rollout-grid article > span { color: var(--yellow); font: 900 22px Arial, Helvetica, sans-serif; }
.rollout-grid h3 { font: 800 18px/1.25 Arial, Helvetica, sans-serif; margin: 35px 0 9px; }
.rollout-grid p { color: var(--muted); font-size: 13px; }
.architecture-grid { display: grid; grid-template-columns: .8fr 1.2fr; gap: 60px; align-items: start; }
.architecture-intro h2 { font: 900 44px/1.05 Arial, Helvetica, sans-serif; letter-spacing: -.04em; }
.architecture-intro p { color: var(--muted); font-size: 16px; }
.architecture-flow { border-top: 1px solid var(--line); }
.architecture-flow article { display: grid; grid-template-columns: 50px 1fr; gap: 16px; padding: 20px 0; border-bottom: 1px solid var(--line); }
.architecture-flow article > span { color: var(--yellow); font: 900 18px Arial, Helvetica, sans-serif; }
.architecture-flow strong { font: 800 17px Arial, Helvetica, sans-serif; }
.architecture-flow p { margin: 4px 0 0; color: var(--muted); }
.trigger-section { margin-top: 90px; border-top: 1px solid var(--line); padding-top: 50px; }
.trigger-cloud { display: flex; gap: 10px; flex-wrap: wrap; }
.trigger-cloud span { border: 1px solid var(--line); background: rgba(255,255,255,.02); border-radius: 999px; padding: 10px 14px; color: #d5dce5; }
footer { max-width: var(--max); margin: 30px auto 0; padding: 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 11px; }
footer strong { color: var(--ink); }

.modal { position: fixed; inset: 0; z-index: 100; display: grid; place-items: center; padding: 22px; opacity: 0; visibility: hidden; transition: .2s ease; }
.modal.open { opacity: 1; visibility: visible; }
.modal-backdrop { position: absolute; inset: 0; background: rgba(0,0,0,.78); backdrop-filter: blur(8px); }
.modal-panel { position: relative; z-index: 1; width: min(720px, 100%); max-height: 90vh; overflow: auto; border: 1px solid var(--line-strong); border-radius: 22px; background: var(--panel); padding: 30px; box-shadow: 0 30px 100px rgba(0,0,0,.65); transform: translateY(15px); transition: .2s ease; }
.modal.open .modal-panel { transform: translateY(0); }
.modal-panel.small { width: min(560px, 100%); }
.modal-panel h2 { font: 900 30px Arial, Helvetica, sans-serif; margin: 7px 0 8px; }
.modal-panel > p { color: var(--muted); margin-top: 0; }
.modal-close { position: absolute; right: 18px; top: 14px; background: transparent; color: var(--muted); border: 0; font-size: 26px; }
.modal form { display: grid; gap: 15px; margin-top: 22px; }
.modal label { color: #e3e7ec; font-size: 12px; font-weight: 700; display: grid; gap: 7px; }
.modal input, .modal select, .modal textarea { width: 100%; border: 1px solid var(--line); border-radius: 11px; background: #222930; color: var(--ink); padding: 11px 12px; outline: none; }
.modal input:focus, .modal select:focus, .modal textarea:focus { border-color: rgba(241,255,92,.6); box-shadow: 0 0 0 3px rgba(241,255,92,.06); }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 13px; }
.drop-zone { border: 1px dashed rgba(241,255,92,.45) !important; border-radius: 16px; padding: 28px !important; display: flex !important; align-items: center; text-align: center; background: var(--yellow-soft); cursor: pointer; }
.drop-zone.dragover { background: rgba(241,255,92,.19); border-color: var(--yellow) !important; }
.drop-zone input { display: none; }
.drop-icon { font-size: 32px; color: var(--yellow); }
.drop-zone small { color: var(--muted); font-weight: 400; }
#fileSelection { color: var(--yellow); font-weight: 700; }
.modal-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 6px; }
.toast-region { position: fixed; right: 22px; bottom: 22px; z-index: 150; display: grid; gap: 9px; }
.toast { min-width: 280px; max-width: 430px; padding: 13px 15px; border: 1px solid var(--line-strong); border-radius: 12px; background: var(--panel-2); box-shadow: var(--shadow); animation: toastIn .25s ease; }
.toast.success { border-color: rgba(115,214,158,.4); }
.toast.error { border-color: rgba(255,94,87,.45); }
.toast strong { display: block; margin-bottom: 2px; }
.toast span { color: var(--muted); font-size: 12px; }
@keyframes toastIn { from { opacity: 0; transform: translateY(8px); } }
.empty-state { padding: 44px 20px; text-align: center; color: var(--muted); }


/* WEBXPAY visual language applied to the full application */
.portfolio-layout { padding-top: 58px; }
.portfolio-sidebar, .merchant-workspace { background: rgba(39, 46, 53, .96); box-shadow: none; }
.portfolio-sidebar { border-radius: 18px; }
.merchant-workspace { border-radius: 20px; }
.section-heading h2, .merchant-header h2, .recommendation-card h3, .toolbar h3,
.pattern-card h3, .architecture-intro h2, .modal-panel h2 { font-family: Arial, Helvetica, sans-serif; font-weight: 900; }
.search-box, .comparison-item, .control-row select, .modal input, .modal select, .modal textarea { background: #222930; }
.merchant-card { border-radius: 12px; }
.merchant-card.active { border-color: var(--yellow); background: var(--yellow-soft); }
.risk-pill, .status-pill { border-radius: 7px; }
.merchant-header { background: linear-gradient(180deg, rgba(241,255,92,.045), transparent); }
.tabs { background: rgba(31, 37, 43, .35); }
.recommendation-card, .summary-card, .dimension, .finding, .mini-stat, .signal-row, .control-row,
.pattern-card, .rollout-grid { box-shadow: none; }
.progress span { background: var(--yellow); }
.modal-panel { background: var(--panel); }
.toast { background: var(--panel-2); }
footer { color: var(--muted); }

@media (max-width: 1180px) {
    .hero-grid { grid-template-columns: 1fr; gap: 35px; }
    .portfolio-layout { grid-template-columns: 330px minmax(0,1fr); }
    .summary-grid { grid-template-columns: 1fr; }
    .recommendation-card { grid-template-columns: 1fr; }
    .decision-box { padding: 18px 0 0; border-left: 0; border-top: 1px solid var(--line); }
    .rollout-grid { grid-template-columns: repeat(2,1fr); }
    .rollout-grid article { border-bottom: 1px solid var(--line); }
    .rollout-grid article:nth-child(2n) { border-right: 0; }
    .rollout-grid article:last-child { grid-column: 1 / -1; border-bottom: 0; }
}

@media (max-width: 900px) {
    .topbar { padding: 0 16px; }
    .confidential, .topbar .btn-outline { display: none; }
    .section-pad { padding-left: 18px; padding-right: 18px; }
    .metrics-strip { grid-template-columns: repeat(2, 1fr); }
    .metric { border-bottom: 1px solid var(--line); }
    .metric-score { grid-column: 1 / -1; }
    .portfolio-layout { grid-template-columns: 1fr; }
    .portfolio-sidebar { position: static; }
    .merchant-list { max-height: 360px; }
    .pattern-card, .architecture-grid { grid-template-columns: 1fr; }
    .pattern-stats { border-left: 0; border-top: 1px solid var(--line); }
    .footprint-overview { grid-template-columns: repeat(2,1fr); }
    .control-row { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 650px) {
    .brand > span:last-child small { display: none; }
    .topbar .btn-dark { padding: 8px 12px; font-size: 12px; }
    .hero-copy h1 { font-size: 49px; }
    .hero-grid { padding-top: 34px; }
    .posture-card { grid-template-columns: 1fr; }
    .metric { min-height: 104px; padding: 17px; }
    .metric strong { font-size: 28px; }
    .metric-score strong { font-size: 37px; }
    .merchant-header, .tab-panel { padding-left: 18px; padding-right: 18px; }
    .merchant-header-top { flex-direction: column; }
    .tabs { padding: 0 14px; }
    .comparison-grid { grid-template-columns: 1fr; }
    .finding summary { grid-template-columns: auto 1fr; }
    .finding-chevron { display: none; }
    .signal-row { grid-template-columns: 1fr auto; }
    .signal-row p { grid-column: 1 / -1; }
    .form-grid, .pattern-stats { grid-template-columns: 1fr; }
    .pattern-stats div { border-bottom: 1px solid var(--line) !important; }
    .pattern-stats div:last-child { border-bottom: 0 !important; }
    .rollout-grid { grid-template-columns: 1fr; }
    .rollout-grid article { border-right: 0; }
    .rollout-grid article:last-child { grid-column: auto; }
    .architecture-intro h2 { font-size: 35px; }
    .control-row { grid-template-columns: 1fr; }
    footer { flex-direction: column; }
}

@media print {
    body { background: #fff; color: #111; }
    .topbar, .portfolio-sidebar, .operating-model, footer, .btn, .text-link, .tabs, .toast-region { display: none !important; }
    .section-pad { max-width: none; padding: 0; }
    .hero { display: none; }
    .portfolio-layout { display: block; padding: 0; }
    .merchant-workspace { border: 0; box-shadow: none; background: #fff; }
    .merchant-header { background: #fff; color: #111; padding: 0 0 18px; }
    .merchant-header h2, .score-meta strong, .identity-strip { color: #111; }
    .score-ring { background: #ddd; border: 2px solid #111; }
    .score-ring::before { background: #fff; }
    .tab-panel { display: block !important; padding: 20px 0; color: #111; page-break-inside: avoid; }
    .tab-panel[hidden] { display: block !important; }
    .recommendation-card, .summary-card, .dimension, .finding, .table-wrap, .signal-row, .control-row { background: #fff; color: #111; border-color: #bbb; box-shadow: none; }
    p, li, small, .merchant-subtitle, .dimension p, .finding-body > p, .signal-row p { color: #333 !important; }
    .risk-pill, .status-pill { border: 1px solid #666; color: #111; background: #eee; }
}


@media (max-width: 1280px) {
    .topbar { padding-left: 28px; padding-right: 28px; }
    .hero-layout { grid-template-columns: minmax(0, 1fr) 390px; gap: 44px; }
    .risk-overview-card { margin-top: 125px; }
    .hero h1 { font-size: clamp(58px, 6.4vw, 90px); }
}

@media (max-width: 1000px) {
    .topbar { height: 78px; padding: 0 20px; }
    .confidential { display: none; }
    .topbar-upload { min-width: auto; }
    .section-pad { padding-left: 20px; padding-right: 20px; }
    .hero { padding-top: 48px; }
    .hero-layout { grid-template-columns: 1fr; }
    .risk-overview-card { width: min(520px, 100%); margin: 8px 0 0; }
    .hero h1 { max-width: 900px; }
    .desktop-break { display: none; }
}

@media (max-width: 680px) {
    .brand strong { font-size: 15px; }
    .brand small { font-size: 9px; }
    .brand-mark { width: 42px; height: 42px; }
    .topbar-actions .topbar-upload { display: none; }
    .topbar .btn-light { min-height: 42px; padding: 9px 13px; font-size: 12px; }
    .hero { padding-top: 38px; }
    .eyebrow-row { align-items: flex-start; flex-direction: column; gap: 10px; }
    .hero h1 { font-size: clamp(46px, 15vw, 68px); line-height: .92; }
    .hero-intro { font-size: 20px; }
    .posture-card { grid-template-columns: 1fr; }
    .risk-overview-card { padding: 26px 20px 22px; }
    .score-ring-large { width: 170px; height: 170px; }
    .score-ring-centre { width: 132px; height: 132px; }
    .score-ring-centre strong { font-size: 50px; }
    .hero-actions .btn { width: 100%; }
}

/* API + MySQL portfolio extensions */
.setup-warning { padding-top: 0; padding-bottom: 10px; }
.setup-card { max-width: none; margin-top: 0; }
.setup-card code { color: var(--yellow); }
.setup-card .btn { margin-top: 14px; }
.sync-panel { padding: 0 20px 16px; border-bottom: 1px solid var(--line); display: grid; gap: 10px; }
.sync-panel-row { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
.compact-link { padding: 5px; font-size: 12px; margin-left: auto; }
.analyze-selected { width: 100%; justify-content: space-between; border: 1px solid var(--line-strong); }
.analyze-selected span { min-width: 25px; height: 25px; border-radius: 999px; display: grid; place-items: center; background: var(--yellow); color: #111519; }
.sync-progress { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--yellow-soft); border: 1px solid rgba(241,255,92,.25); border-radius: 11px; }
.sync-progress strong, .sync-progress small { display: block; }
.sync-progress small { color: var(--muted); }
.spinner.small { width: 20px; height: 20px; border-width: 2px; }
.merchant-card-wrap { position: relative; display: grid; grid-template-columns: 34px minmax(0,1fr); align-items: stretch; border: 1px solid transparent; border-radius: 13px; margin-bottom: 6px; }
.merchant-card-wrap:hover { background: rgba(255,255,255,.025); }
.merchant-card-wrap.active { border-color: rgba(241,255,92,.45); background: var(--yellow-soft); }
.merchant-selector { display: grid; place-items: start center; padding-top: 19px; }
.merchant-selector input { width: 17px; height: 17px; accent-color: var(--yellow); }
.merchant-card-wrap .merchant-card { margin: 0; padding-left: 2px; }
.merchant-card-wrap.active .merchant-card { border: 0; background: transparent; }
.analysis-chip { display: inline-flex; align-items: center; gap: 5px; margin-top: 7px; padding: 4px 7px; border-radius: 7px; border: 1px solid var(--line); color: var(--muted); font-size: 10px; text-transform: uppercase; letter-spacing: .08em; }
.analysis-chip.done { color: var(--green); border-color: rgba(120,216,163,.35); }
.workspace-empty { min-height: 640px; display: grid; place-items: center; text-align: center; padding: 50px; }
.workspace-empty-inner { max-width: 580px; }
.workspace-empty h2 { font-size: 38px; margin: 18px 0 10px; }
.workspace-empty p { color: var(--muted); font-size: 16px; }
.workspace-empty .hero-actions { justify-content: center; }
.source-json { max-height: 620px; overflow: auto; border: 1px solid var(--line); border-radius: 14px; background: #161b20; color: #d7e0ea; padding: 18px; font: 12px/1.55 Consolas, Monaco, monospace; white-space: pre-wrap; word-break: break-word; }
.api-document-link { color: var(--yellow); font-weight: 800; }
.api-document-link:hover { text-decoration: underline; }
.batch-result-list { margin-top: 12px; display: grid; gap: 8px; }
.batch-result { display: flex; justify-content: space-between; gap: 12px; padding: 9px 11px; border: 1px solid var(--line); border-radius: 9px; color: var(--muted); }
.batch-result strong { color: var(--ink); }
.section-status { display: flex; align-items: center; gap: 8px; color: var(--muted); font-size: 12px; }
.section-status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--green); }
.analysis-meta { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.analysis-meta span { padding: 6px 9px; border: 1px solid var(--line); border-radius: 8px; color: var(--muted); font-size: 11px; }
.document-summary-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 10px; margin-bottom: 18px; }
.document-summary-grid article { border: 1px solid var(--line); border-radius: 12px; padding: 15px; background: rgba(255,255,255,.02); }
.document-summary-grid strong { display: block; font-size: 24px; color: var(--yellow); }
.document-summary-grid span { color: var(--muted); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; }
.architecture-flow-horizontal { display: grid; grid-template-columns: repeat(5,1fr); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; }
.architecture-flow-horizontal article { border-bottom: 0; border-right: 1px solid var(--line); }
.architecture-flow-horizontal article:last-child { border-right: 0; }
.installer { width: min(720px, calc(100% - 36px)); margin: 80px auto; border: 1px solid var(--line); border-radius: 22px; background: var(--panel); padding: 40px; }
.installer .brand-mark { margin-bottom: 24px; }
.installer h1 { font-size: 48px; margin: 15px 0 8px; }
.installer p { color: var(--muted); }
.installer form { display: flex; gap: 10px; margin-top: 24px; }
.install-message { border-radius: 12px; padding: 13px 15px; margin-top: 18px; }
.install-message.success { background: rgba(120,216,163,.1); border: 1px solid rgba(120,216,163,.4); }
.install-message.error { background: rgba(255,116,109,.1); border: 1px solid rgba(255,116,109,.4); }

@media (max-width: 1250px) {
    .architecture-flow-horizontal { grid-template-columns: 1fr 1fr; }
    .architecture-flow-horizontal article { border-bottom: 1px solid var(--line); }
    .architecture-flow-horizontal article:nth-child(2n) { border-right: 0; }
    .architecture-flow-horizontal article:last-child { grid-column: 1 / -1; border-bottom: 0; }
}
@media (max-width: 900px) {
    .document-summary-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 650px) {
    .sync-panel-row .btn { flex: 1; }
    .document-summary-grid { grid-template-columns: 1fr; }
    .architecture-flow-horizontal { grid-template-columns: 1fr; }
    .architecture-flow-horizontal article { border-right: 0; }
    .architecture-flow-horizontal article:last-child { grid-column: auto; }
    .installer { padding: 25px; margin-top: 30px; }
    .installer h1 { font-size: 38px; }
    .installer form { flex-direction: column; }
}

/* Reference-site feature parity additions */
.reference-operating-model { padding-top: 40px; padding-bottom: 36px; }
.portfolio-bench { padding-top: 30px; padding-bottom: 26px; }
.bench-heading { display: flex; justify-content: space-between; align-items: end; gap: 28px; }
.bench-heading > div { min-width: 0; }
.bench-heading .btn { flex: 0 0 auto; }
.portfolio-table-wrap { background: rgba(39, 46, 53, .72); border-radius: 18px; }
.portfolio-table { min-width: 1040px; }
.portfolio-table th { font-size: 10px; letter-spacing: .13em; text-transform: uppercase; color: var(--muted); }
.portfolio-table td { vertical-align: middle; }
.portfolio-table td:nth-child(1) { width: 29%; }
.portfolio-table td:nth-child(2) { width: 13%; }
.portfolio-table td:nth-child(3) { width: 34%; color: #d5dce5; }
.portfolio-table td:nth-child(4) { width: 12%; }
.portfolio-table td:nth-child(5) { width: 12%; }
.portfolio-table td small { display: block; margin-top: 6px; color: var(--muted); font-size: 10px; line-height: 1.4; }
.portfolio-row { transition: background .18s ease; cursor: pointer; }
.portfolio-row:hover, .portfolio-row.active { background: rgba(241,255,92,.055); }
.portfolio-row.active td:first-child { box-shadow: inset 3px 0 0 var(--yellow); }
.portfolio-merchant-link { display: grid; gap: 4px; width: 100%; border: 0; padding: 0; color: var(--ink); background: transparent; text-align: left; }
.portfolio-merchant-link strong { font-size: 14px; }
.table-empty { text-align: center; color: var(--muted); padding: 42px !important; }

.summary-card.strengths li::before { background: var(--green); }
.review-summary-grid { margin-bottom: 16px; }
.profile-summary-grid { margin-top: 16px; }
.profile-summary-grid .summary-card { background: rgba(255,255,255,.012); }

.document-checklist { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 25px; }
.checklist-item { display: grid; grid-template-columns: 34px minmax(0, 1fr); align-items: center; gap: 10px; min-height: 83px; padding: 13px; border: 1px solid var(--line); border-radius: 13px; background: rgba(255,255,255,.018); }
.checklist-item > span { width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; font-weight: 900; }
.checklist-item.present > span { color: #102019; background: var(--green); }
.checklist-item.missing > span { color: #251500; background: var(--orange); }
.checklist-item strong, .checklist-item small { display: block; }
.checklist-item strong { font-size: 12px; line-height: 1.3; }
.checklist-item small { color: var(--muted); font-size: 10px; margin-top: 3px; }
.documents-toolbar { margin-top: 30px; }

.footprint-recommendation .footprint-url { color: var(--yellow); font-weight: 900; overflow-wrap: anywhere; }
.footprint-recommendation .decision-box > span:last-child { color: var(--muted); font-size: 11px; }
.footprint-detail-grid { margin-top: 22px; }
.social-toolbar { margin-top: 26px; }
.social-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.social-link-grid a { min-width: 0; border: 1px solid var(--line); border-radius: 13px; padding: 14px; background: rgba(255,255,255,.018); transition: border-color .18s ease, transform .18s ease; }
.social-link-grid a:hover { border-color: var(--yellow); transform: translateY(-1px); }
.social-link-grid strong, .social-link-grid span { display: block; }
.social-link-grid strong { color: var(--yellow); margin-bottom: 5px; }
.social-link-grid span { color: var(--muted); font-size: 10px; overflow-wrap: anywhere; }
.compact-empty { padding: 24px; }

.reference-section { padding-top: 82px; padding-bottom: 42px; }
.reference-section + .reference-section { border-top: 1px solid rgba(72,81,91,.55); }
.migration-grid { margin-bottom: 0; }
.master-record-grid { padding: 34px; border: 1px solid var(--line); border-radius: var(--radius); background: linear-gradient(145deg, rgba(241,255,92,.045), rgba(255,255,255,.012)); }
.record-chip-grid { display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); gap: 9px; }
.record-chip-grid span { display: grid; place-items: center start; min-height: 52px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; color: #d5dce5; background: rgba(255,255,255,.018); font-size: 12px; }
.reference-list { list-style: none; padding: 0; margin: 24px 0 0; display: grid; gap: 10px; }
.reference-list li { position: relative; padding-left: 18px; color: #d5dce5; }
.reference-list li::before { content: ''; position: absolute; left: 0; top: 9px; width: 7px; height: 7px; border-radius: 50%; background: var(--yellow); }
.target-architecture-flow { margin-top: 20px; }
.role-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.role-grid article { min-height: 150px; padding: 22px; border: 1px solid var(--line); border-radius: 15px; background: rgba(255,255,255,.018); }
.role-grid strong { display: block; color: var(--yellow); font-size: 16px; margin-bottom: 10px; }
.role-grid p { color: var(--muted); margin: 0; }
.trigger-section h2 { font: 900 clamp(30px, 4vw, 48px)/1.05 Arial, Helvetica, sans-serif; letter-spacing: -.04em; margin: 18px 0 24px; }
.practical-rollout .rollout-grid { margin-bottom: 0; }

@media (max-width: 1180px) {
    .document-checklist { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .record-chip-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .role-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
    .bench-heading { align-items: flex-start; flex-direction: column; }
    .social-link-grid { grid-template-columns: 1fr 1fr; }
    .master-record-grid { padding: 24px; }
    .record-chip-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 650px) {
    .reference-operating-model, .portfolio-bench, .reference-section { padding-top: 48px; padding-bottom: 28px; }
    .pattern-card { padding: 22px; }
    .document-checklist, .social-link-grid, .record-chip-grid, .role-grid { grid-template-columns: 1fr; }
    .checklist-item { min-height: 72px; }
    .master-record-grid { padding: 18px; }
}

@media print {
    .portfolio-bench, .reference-section { display: none !important; }
    .document-checklist, .social-link-grid, .role-grid { grid-template-columns: repeat(2, 1fr); }
    .source-json { max-height: none; overflow: visible; }
}
.status-Available, .status-Ready-for-validation { background: rgba(115,214,158,.12); color: var(--green); }
.status-Evidence-gap, .status-Missing { background: rgba(255,156,69,.13); color: var(--orange); }
.status-Partial-evidence { background: rgba(241,255,92,.12); color: var(--yellow); }

/* Merchant register disclosure */
.portfolio-register-panel {
    margin-top: 22px;
    scroll-margin-top: 92px;
}
.portfolio-register-panel:not([hidden]) {
    animation: merchantRegisterReveal .24s ease-out;
}
@keyframes merchantRegisterReveal {
    from { opacity: 0; transform: translateY(-8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* v5 database-only analysis states */
.workspace-analyze-button { margin-top: 8px; white-space: nowrap; }
.analysis-empty {
    max-width: 760px;
    margin: 38px auto;
    padding: 30px;
    border: 1px solid var(--border, #48515b);
    border-radius: 18px;
    background: rgba(255,255,255,.025);
    text-align: center;
}
.analysis-empty h3 { margin: 8px 0 10px; font-size: clamp(22px, 3vw, 32px); }
.analysis-empty p { max-width: 650px; margin: 0 auto 20px; color: var(--muted, #b9c1cc); line-height: 1.65; }
.analysis-empty.analysis-success { border-color: rgba(114, 224, 167, .45); background: rgba(63, 155, 109, .08); }
.analysis-empty.analysis-error { border-color: rgba(255, 113, 113, .55); background: rgba(160, 48, 48, .10); }
.analysis-empty-meta { display: flex; flex-wrap: wrap; justify-content: center; gap: 8px; margin: 0 0 20px; }
.analysis-empty-meta span { border: 1px solid var(--border, #48515b); border-radius: 999px; padding: 6px 10px; font-size: 12px; color: var(--muted, #b9c1cc); }
.toolbar-actions { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 760px) {
    .score-lockup { align-items: flex-start; }
    .workspace-analyze-button { width: 100%; }
    .toolbar-actions { width: 100%; }
    .toolbar-actions .btn { flex: 1; }
}

/* v6 AI document-review evidence */
.evidence-source-list{margin:8px 0 0;padding-left:20px;color:var(--muted)}
.evidence-source-list li{margin:5px 0}
.document-issues{display:block;margin-top:6px;color:#ffb6a9;max-width:520px}
.analysis-run-meta{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 22px}
.analysis-run-meta span{border:1px solid var(--border);border-radius:999px;padding:8px 11px;color:var(--muted);font-size:.82rem}
.source-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:12px;margin-bottom:22px}
.source-card{border:1px solid var(--border);border-radius:16px;padding:16px;background:rgba(255,255,255,.018)}
.source-card>span{display:block;color:var(--yellow);font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;margin-bottom:8px}
.source-card strong{display:block;margin-bottom:8px}
.source-card p{color:var(--muted);font-size:.88rem;line-height:1.55}
.source-card a{display:inline-block;margin-top:9px;color:var(--yellow);font-weight:700;font-size:.84rem}


/* v6.1 complete merchant register pagination */
.portfolio-pager {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid var(--border);
    border-top: 0;
    border-radius: 0 0 16px 16px;
    color: var(--muted);
    background: rgba(255,255,255,.018);
}
.portfolio-pager-actions { display: flex; align-items: center; gap: 10px; }
.portfolio-pager-actions span { min-width: 92px; text-align: center; font-size: .86rem; }
.portfolio-pager .btn:disabled { opacity: .4; cursor: not-allowed; }
@media (max-width: 700px) {
    .portfolio-pager { align-items: stretch; flex-direction: column; }
    .portfolio-pager-actions { justify-content: space-between; }
}

/* v6.3 expiring onboarding-document link handling */
.documents-toolbar + .table-wrap td > small,
.table-wrap td > small { display:block; margin-top:6px; color:var(--muted); font-size:10px; line-height:1.45; }
.document-link-note { max-width:150px; }

/* v6.5 readable onboarding document labels */
.document-readable-label {
    display: block;
    color: var(--white, #fff);
    font-size: .94rem;
    line-height: 1.35;
}
.document-file-name {
    display: block;
    margin-top: 7px;
    color: var(--muted, #b9c1cc);
    font-size: .72rem;
    line-height: 1.35;
}
.document-source-name {
    display: block;
    color: var(--white, #fff);
    font-size: .84rem;
    line-height: 1.35;
}

/* v6.6 approval-view document Excel export and status-aligned AI review colours */
.documents-toolbar-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
.document-export-button {
    min-height: 38px;
    padding: 9px 15px;
    white-space: nowrap;
}
.ai-review-cell {
    --review-accent: var(--line-strong);
    --review-bg: rgba(255,255,255,.025);
    background: var(--review-bg);
    box-shadow: inset 4px 0 0 var(--review-accent);
}
.document-review {
    display: grid;
    align-items: start;
    gap: 7px;
    max-width: 620px;
}
.document-review .status-pill {
    width: max-content;
    max-width: 100%;
    margin: 0;
    border: 1px solid color-mix(in srgb, var(--review-accent) 62%, transparent);
    background: color-mix(in srgb, var(--review-accent) 15%, transparent);
    color: var(--review-accent);
}
.document-review-summary {
    color: var(--ink) !important;
    font-size: .78rem !important;
    line-height: 1.55 !important;
}
.document-review .document-issues {
    color: var(--review-accent) !important;
    font-weight: 700;
    line-height: 1.55;
}
.review-pending { --review-accent: #c9d1da; --review-bg: rgba(201,209,218,.055); }
.review-unreadable { --review-accent: #ff746d; --review-bg: rgba(255,116,109,.075); }
.review-poor { --review-accent: #ffb15e; --review-bg: rgba(255,177,94,.075); }
.review-fair { --review-accent: #f1ff5c; --review-bg: rgba(241,255,92,.06); }
.review-good { --review-accent: #78d8a3; --review-bg: rgba(120,216,163,.065); }
.review-verified { --review-accent: #4ee39a; --review-bg: rgba(78,227,154,.09); }
.status-pill.review-pending,
.status-pill.review-unreadable,
.status-pill.review-poor,
.status-pill.review-fair,
.status-pill.review-good,
.status-pill.review-verified {
    border-color: color-mix(in srgb, var(--review-accent) 62%, transparent);
    background: color-mix(in srgb, var(--review-accent) 15%, transparent);
    color: var(--review-accent);
}
@media (max-width: 760px) {
    .documents-toolbar-actions { width: 100%; justify-content: flex-start; }
    .document-export-button { width: 100%; }
}

/* v6.7 comprehensive merchant report and document-issue export */
.comprehensive-report-panel {
    background: rgba(15, 19, 23, .16);
}
.comprehensive-report {
    display: grid;
    gap: 22px;
}
.comprehensive-report-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(241,255,92,.07), rgba(255,255,255,.018));
}
.comprehensive-report-header h2 {
    margin: 7px 0 5px;
    font-size: clamp(30px, 4vw, 48px);
    line-height: 1;
    letter-spacing: -.04em;
}
.comprehensive-report-header p {
    margin: 0;
    color: var(--muted);
}
.comprehensive-report-actions {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 9px;
}
.report-score-grid,
.report-document-summary {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}
.report-score-grid article,
.report-document-summary article {
    min-width: 0;
    padding: 17px;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: rgba(255,255,255,.022);
}
.report-score-grid strong,
.report-document-summary strong {
    display: block;
    color: var(--yellow);
    font-size: 22px;
    line-height: 1.2;
    overflow-wrap: anywhere;
}
.report-score-grid span,
.report-document-summary span {
    display: block;
    margin-top: 6px;
    color: var(--muted);
    font-size: 10px;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.report-section {
    padding: 24px;
    border: 1px solid var(--line);
    border-radius: 17px;
    background: rgba(255,255,255,.015);
}
.report-section-heading {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 18px;
}
.report-section-heading > span {
    width: 39px;
    height: 39px;
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    border-radius: 50%;
    color: #111519;
    background: var(--yellow);
    font-weight: 900;
}
.report-section-heading small,
.report-section-heading h3 {
    display: block;
    margin: 0;
}
.report-section-heading small {
    color: var(--yellow);
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}
.report-section-heading h3 {
    margin-top: 2px;
    font-size: 20px;
}
.report-lead {
    max-width: 1180px;
    margin: 0;
    color: #e1e7ee;
    font-size: 15px;
    line-height: 1.75;
}
.report-key-value-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
    margin-top: 18px;
}
.report-key-value-grid article {
    min-width: 0;
    padding: 14px;
    border: 1px solid var(--line);
    border-radius: 11px;
    background: rgba(255,255,255,.018);
}
.report-key-value-grid small,
.report-key-value-grid strong {
    display: block;
}
.report-key-value-grid small {
    margin-bottom: 6px;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .08em;
}
.report-key-value-grid strong {
    overflow-wrap: anywhere;
}
.report-finding-list,
.report-control-list {
    display: grid;
    gap: 10px;
}
.report-finding-list article,
.report-control-list article {
    padding: 15px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: rgba(255,255,255,.018);
}
.report-finding-list article > div,
.report-control-list article {
    display: grid;
    gap: 8px;
}
.report-finding-list article > div {
    grid-template-columns: auto minmax(0, 1fr);
    align-items: center;
}
.report-finding-list p,
.report-control-list p {
    margin: 7px 0 0;
    color: var(--muted);
}
.report-finding-list small {
    display: block;
    margin-top: 7px;
    color: #d8dfe8;
}
.report-control-list article > span {
    width: max-content;
    padding: 4px 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    color: var(--yellow);
    font-size: 10px;
}
.report-document-summary {
    margin-bottom: 16px;
}
.report-document-table {
    min-width: 1320px;
}
.report-document-table th {
    font-size: 9px;
    letter-spacing: .1em;
    text-transform: uppercase;
}
.report-document-table td {
    vertical-align: top;
    font-size: 11px;
    line-height: 1.5;
}
.report-document-table td:nth-child(1) { width: 14%; }
.report-document-table td:nth-child(2) { width: 14%; }
.report-document-table td:nth-child(3) { width: 12%; }
.report-document-table td:nth-child(4) { width: 10%; }
.report-document-table td:nth-child(5) { width: 19%; }
.report-document-table td:nth-child(6) { width: 11%; }
.report-document-table td:nth-child(7) { width: 20%; }
.report-document-table td small,
.report-document-table td strong {
    display: block;
}
.report-document-table td small {
    margin-top: 6px;
    color: var(--muted);
}
.report-document-table ul {
    margin: 0;
    padding-left: 17px;
    color: #ffb6a9;
}
.report-document-table li + li {
    margin-top: 5px;
}
.blank-status {
    display: inline-flex !important;
    width: max-content;
    max-width: 100%;
    padding: 5px 8px;
    border-radius: 999px;
    border: 1px solid var(--line);
    font-size: 10px;
}
.blank-status.clear {
    color: var(--green);
    border-color: rgba(120,216,163,.45);
    background: rgba(120,216,163,.08);
}
.blank-status.issue {
    color: var(--red);
    border-color: rgba(255,116,109,.48);
    background: rgba(255,116,109,.09);
}
.blank-status.pending {
    color: #c9d1da;
    background: rgba(201,209,218,.055);
}
.no-document-issues {
    color: var(--green);
}
.report-export-note,
.report-empty {
    margin-top: 14px;
    padding: 13px 15px;
    border: 1px dashed var(--line-strong);
    border-radius: 11px;
    color: var(--muted);
}
.report-export-note strong {
    color: var(--yellow);
}
.comprehensive-report-footer {
    padding: 15px 0 2px;
    border-top: 1px solid var(--line);
    color: var(--muted);
    font-size: 10px;
    letter-spacing: .06em;
    text-transform: uppercase;
}

@media (max-width: 980px) {
    .comprehensive-report-header { flex-direction: column; }
    .comprehensive-report-actions { justify-content: flex-start; }
    .report-score-grid,
    .report-document-summary,
    .report-key-value-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .report-score-grid,
    .report-document-summary,
    .report-key-value-grid { grid-template-columns: 1fr; }
    .comprehensive-report-header,
    .report-section { padding: 18px; }
    .comprehensive-report-actions .btn { width: 100%; }
}

@media print {
    body.printing-comprehensive-report {
        background: #fff !important;
        color: #111 !important;
        font-size: 10px;
    }
    body.printing-comprehensive-report .topbar,
    body.printing-comprehensive-report main > section:not(.portfolio-layout),
    body.printing-comprehensive-report .portfolio-sidebar,
    body.printing-comprehensive-report .merchant-header,
    body.printing-comprehensive-report .tabs,
    body.printing-comprehensive-report .tab-panel:not([data-tab-panel="report"]),
    body.printing-comprehensive-report .no-print,
    body.printing-comprehensive-report .toast-region {
        display: none !important;
    }
    body.printing-comprehensive-report .page-shell,
    body.printing-comprehensive-report main,
    body.printing-comprehensive-report .portfolio-layout,
    body.printing-comprehensive-report .merchant-workspace,
    body.printing-comprehensive-report #merchantWorkspace,
    body.printing-comprehensive-report [data-tab-panel="report"] {
        display: block !important;
        width: 100% !important;
        max-width: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: #fff !important;
        color: #111 !important;
    }
    body.printing-comprehensive-report .comprehensive-report {
        gap: 12px;
    }
    body.printing-comprehensive-report .comprehensive-report-header,
    body.printing-comprehensive-report .report-section,
    body.printing-comprehensive-report .report-score-grid article,
    body.printing-comprehensive-report .report-document-summary article,
    body.printing-comprehensive-report .report-key-value-grid article,
    body.printing-comprehensive-report .report-finding-list article,
    body.printing-comprehensive-report .report-control-list article,
    body.printing-comprehensive-report .report-document-table-wrap {
        color: #111 !important;
        background: #fff !important;
        border-color: #9ca3aa !important;
        box-shadow: none !important;
    }
    body.printing-comprehensive-report .comprehensive-report-header {
        padding: 0 0 15px;
        border: 0;
        border-bottom: 2px solid #111 !important;
        border-radius: 0;
    }
    body.printing-comprehensive-report .comprehensive-report-header h2 {
        color: #111 !important;
        font-size: 30px;
    }
    body.printing-comprehensive-report .small-label,
    body.printing-comprehensive-report .report-section-heading small,
    body.printing-comprehensive-report .report-score-grid strong,
    body.printing-comprehensive-report .report-document-summary strong {
        color: #111 !important;
    }
    body.printing-comprehensive-report .report-section {
        padding: 12px;
        border-radius: 0;
        page-break-inside: auto;
    }
    body.printing-comprehensive-report .report-section-heading > span {
        color: #111 !important;
        background: #e8eb90 !important;
    }
    body.printing-comprehensive-report .report-lead,
    body.printing-comprehensive-report .comprehensive-report-header p,
    body.printing-comprehensive-report .report-finding-list p,
    body.printing-comprehensive-report .report-control-list p,
    body.printing-comprehensive-report .report-document-table td small,
    body.printing-comprehensive-report .comprehensive-report-footer {
        color: #333 !important;
    }
    body.printing-comprehensive-report .report-document-table-wrap {
        overflow: visible !important;
    }
    body.printing-comprehensive-report .report-document-table {
        min-width: 0 !important;
        width: 100% !important;
        table-layout: fixed;
    }
    body.printing-comprehensive-report .report-document-table th,
    body.printing-comprehensive-report .report-document-table td {
        padding: 6px !important;
        border-color: #aab0b5 !important;
        color: #111 !important;
        font-size: 7.5px;
        overflow-wrap: anywhere;
    }
    body.printing-comprehensive-report .report-document-table ul {
        color: #111 !important;
        padding-left: 12px;
    }
    body.printing-comprehensive-report .risk-pill,
    body.printing-comprehensive-report .status-pill,
    body.printing-comprehensive-report .blank-status {
        color: #111 !important;
        background: #eee !important;
        border-color: #777 !important;
    }
    body.printing-comprehensive-report .report-document-table tr,
    body.printing-comprehensive-report .report-finding-list article,
    body.printing-comprehensive-report .report-control-list article {
        break-inside: avoid;
    }
    @page {
        size: A4 landscape;
        margin: 10mm;
    }
}

/* Deep researched report v7 */
.deep-research-report a { color: var(--accent, #f1ff5c); font-weight: 750; }
.deep-decision-card {
    margin-top: 18px;
    padding: 18px 20px;
    border: 1px solid rgba(241,255,92,.35);
    border-left: 4px solid var(--accent, #f1ff5c);
    border-radius: 14px;
    background: rgba(241,255,92,.055);
}
.deep-decision-card small,
.deep-subsection h4,
.deep-finding-card h5 { text-transform: uppercase; letter-spacing: .1em; color: #f1ff5c; font-weight: 800; }
.deep-decision-card p { margin: 8px 0 0; color: #e8edf2; line-height: 1.7; }
.deep-profile-grid article { min-height: 108px; }
.deep-profile-grid article a { overflow-wrap: anywhere; }
.deep-subsection { margin-top: 20px; }
.deep-subsection h4 { margin: 0 0 10px; font-size: 12px; }
.deep-report-list { margin: 0; padding-left: 22px; display: grid; gap: 9px; color: #dbe3eb; line-height: 1.55; }
.deep-report-list li::marker { color: #f1ff5c; font-weight: 800; }
.deep-finding-list { display: grid; gap: 16px; }
.deep-finding-card {
    border: 1px solid #46515b;
    border-radius: 16px;
    background: #272e35;
    overflow: hidden;
}
.deep-finding-card > header {
    display: grid;
    grid-template-columns: auto auto minmax(0,1fr);
    align-items: center;
    gap: 12px;
    padding: 16px 18px;
    border-bottom: 1px solid #46515b;
}
.deep-finding-card.severity-CRITICAL { border-left: 4px solid #ff6b6b; }
.deep-finding-card.severity-HIGH { border-left: 4px solid #ff9d57; }
.deep-finding-card.severity-MEDIUM { border-left: 4px solid #f1ff5c; }
.deep-finding-card.severity-LOW,
.deep-finding-card.severity-INFO { border-left: 4px solid #70d6a5; }
.finding-number { color: #8f9ba7; font-weight: 800; }
.deep-finding-card header small { display: block; color: #aeb9c4; text-transform: uppercase; letter-spacing: .08em; font-size: 10px; }
.deep-finding-card header h4 { margin: 4px 0 0; font-size: 18px; color: #fff; }
.deep-finding-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
.deep-finding-grid section { padding: 17px 18px; min-width: 0; }
.deep-finding-grid section:nth-child(odd) { border-right: 1px solid #46515b; }
.deep-finding-grid section:nth-child(-n+2) { border-bottom: 1px solid #46515b; }
.deep-finding-card h5 { margin: 0 0 9px; font-size: 10px; }
.deep-finding-card p { margin: 0; color: #d7dfe7; line-height: 1.62; }
.deep-document-table { min-width: 1180px; }
.deep-document-table th:nth-child(1) { width: 18%; }
.deep-document-table th:nth-child(2) { width: 13%; }
.deep-document-table th:nth-child(3) { width: 20%; }
.deep-document-table th:nth-child(4) { width: 20%; }
.deep-document-table th:nth-child(5) { width: 22%; }
.deep-document-table th:nth-child(6) { width: 7%; }
.deep-document-table td small { display: block; margin-top: 6px; color: #b9c5d0; line-height: 1.45; }
.deep-document-table .document-link { white-space: nowrap; }
.two-column-deep-section { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 26px; }
.two-column-deep-section > div { min-width: 0; }
.web-check-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.web-check-grid article { border: 1px solid #46515b; border-radius: 14px; padding: 17px; background: #272e35; }
.web-check-grid strong { display: block; color: #fff; margin-bottom: 8px; }
.web-check-grid p { color: #d5dde5; line-height: 1.6; margin: 0 0 10px; }
.web-check-grid small { color: #9da8b3; }
.risk-pill.risk-CRITICAL { background: rgba(255,107,107,.18); color: #ffaaaa; border-color: rgba(255,107,107,.5); }
.risk-pill.risk-HIGH { background: rgba(255,157,87,.18); color: #ffc08f; border-color: rgba(255,157,87,.5); }
.risk-pill.risk-MEDIUM { background: rgba(241,255,92,.13); color: #f1ff5c; border-color: rgba(241,255,92,.4); }
.risk-pill.risk-LOW,
.risk-pill.risk-INFO { background: rgba(112,214,165,.13); color: #8ae7bc; border-color: rgba(112,214,165,.4); }

@media (max-width: 920px) {
    .deep-finding-grid,
    .two-column-deep-section,
    .web-check-grid { grid-template-columns: 1fr; }
    .deep-finding-grid section { border-right: 0 !important; border-bottom: 1px solid #46515b; }
    .deep-finding-grid section:last-child { border-bottom: 0; }
}

@media print {
    body.printing-comprehensive-report .deep-finding-card,
    body.printing-comprehensive-report .web-check-grid article,
    body.printing-comprehensive-report .deep-decision-card {
        background: #fff !important;
        color: #111 !important;
        border-color: #777 !important;
        break-inside: avoid;
    }
    body.printing-comprehensive-report .deep-finding-card p,
    body.printing-comprehensive-report .deep-decision-card p,
    body.printing-comprehensive-report .web-check-grid p,
    body.printing-comprehensive-report .deep-report-list { color: #222 !important; }
    body.printing-comprehensive-report .deep-finding-card h4,
    body.printing-comprehensive-report .deep-finding-card h5,
    body.printing-comprehensive-report .deep-subsection h4,
    body.printing-comprehensive-report .deep-decision-card small,
    body.printing-comprehensive-report .web-check-grid strong { color: #111 !important; }
    body.printing-comprehensive-report .two-column-deep-section { grid-template-columns: 1fr 1fr; }
}
