/* Athena hosted build: Reports view + finding lifecycle drawer.
   Everything here rides the mockup's own tokens (--bg, --raised, --elev, --line, --t1..3, --accent, --danger, --warn). */

/* ---- reports view ---- */
/* chart hairlines follow the theme's line tokens, so the same chart reads in light and dark */
#view-reports{--rp-high:var(--danger);--rp-med:var(--warn);--rp-low:var(--t3);--rp-grid:var(--line);--rp-axis:var(--line-strong)}
.rp-sel[hidden]{display:none}
.rp-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:-6px 0 20px}
.rp-bar .seg{flex-shrink:0}
.rp-sel{appearance:none;-webkit-appearance:none;background:var(--raised) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238A8F98' stroke-width='2'><path d='M6 9l6 6 6-6' stroke-linecap='round' stroke-linejoin='round'/></svg>") no-repeat right 10px center;
  border:1px solid var(--line-2);color:var(--t1);font:inherit;font-size:12.5px;font-weight:500;padding:7px 30px 7px 11px;border-radius:var(--r-md);min-width:160px;max-width:100%;outline:none}
.rp-sel:focus{border-color:var(--accent)}
.rp-sp{flex:1}
.rp-acts{display:flex;gap:8px;flex-wrap:wrap}
.rp-acts .btn{padding:7px 12px;font-size:12.5px}
.rp-acts .btn svg{flex-shrink:0}
/* what Open / CSV just did, beside the control for a few seconds */
.rp-said{align-self:center;overflow-wrap:anywhere;min-width:0}
.rp-past-row .rp-said{flex:0 1 auto;max-width:45%;text-align:right}
.rp-note{font-size:11.5px;color:var(--t3);font-family:var(--font)}   /* grey sans meta; only clock times inside are mono */
.rp-note .mono{font-family:var(--mono)}
.rp-tiles{margin-bottom:20px}
.rp-tiles .tv .sdots{gap:3px}
.rp-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}
.rp-grid2>.card{min-width:0}
#view-reports .card{min-width:0}
.rp-card{margin-bottom:16px;min-width:0}
.rp-card .card-h{flex-wrap:wrap}
.rp-card .card-h .count{margin-left:0}
.rp-card .card-h .rp-tog{margin-left:auto}
.rp-tog{display:inline-flex;padding:2px;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm)}
.rp-tog button{font-size:11px;font-weight:500;color:var(--t3);padding:3px 9px;border-radius:4px}
.rp-tog button[aria-pressed="true"]{background:var(--elev-2);color:var(--t1)}
.rp-legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin:0 0 10px}
.rp-legend span{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--t2)}
.rp-legend i{width:10px;height:10px;border-radius:2px;flex-shrink:0}
.rp-legend i.line{width:14px;height:2px;border-radius:1px}
.rp-chart{position:relative;min-height:200px}
.rp-chart svg{display:block;width:100%;height:auto;overflow:visible}
.rp-chart text{font-family:var(--mono);font-size:10.5px;fill:var(--t3)}
.rp-chart .rp-hit{fill:transparent;cursor:crosshair}
.rp-chart .rp-seg{transition:filter .12s}
.rp-chart .rp-seg.lift{filter:brightness(1.18)}
.rp-chart .rp-cross{stroke:var(--line-strong);stroke-width:1}
.rp-tip{position:absolute;z-index:5;pointer-events:none;background:var(--raised);border:1px solid var(--line-strong);border-radius:var(--r-md);padding:8px 10px;box-shadow:0 14px 40px -18px rgba(0,0,0,.45);min-width:150px;font-size:12px;color:var(--t1)}
.rp-tip .tt{font-family:var(--font);font-size:10.5px;color:var(--t3);margin-bottom:5px}
.rp-tip .tr{display:flex;align-items:center;gap:7px;padding:1px 0}
.rp-tip .tr i{width:10px;height:2px;border-radius:1px;flex-shrink:0}
.rp-tip .tr b{font-weight:600;font-variant-numeric:tabular-nums;min-width:28px}
.rp-tip .tr span{color:var(--t2)}
.rp-empty{padding:34px 16px;text-align:center;font-size:12.5px;color:var(--t3);line-height:1.6}
.rp-empty b{display:block;color:var(--t2);font-weight:500;margin-bottom:3px}
.rp-scroll{overflow:auto;-webkit-overflow-scrolling:touch;margin:0 -16px;padding:0 16px}
.rp-table{width:100%;border-collapse:collapse;font-size:12.5px;min-width:520px}
.rp-table th{font-size:10.5px;color:var(--t3);letter-spacing:.03em;text-transform:uppercase;font-weight:500;text-align:left;padding:6px 10px 8px;border-bottom:1px solid var(--line);white-space:nowrap}
.rp-table td{padding:9px 10px;border-bottom:1px solid var(--line);vertical-align:middle;color:var(--t1)}
.rp-table tr:last-child td{border-bottom:none}
.rp-table .n{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.rp-table th.n{text-align:right}
.rp-table .mono{font-family:var(--mono);font-size:11.5px;color:var(--t2)}
.rp-table .muted{color:var(--t3)}
.rp-table .tot td{font-weight:600;background:var(--elev)}
.rp-table.rows tbody tr{cursor:pointer;transition:background .12s}
.rp-table.rows tbody tr:hover{background:var(--elev)}
.rp-table.rows tbody tr:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rp-ft{min-width:0}
.rp-ft .t{font-weight:500;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rp-ft .p{font-family:var(--mono);font-size:11px;color:var(--t3);margin-top:2px}
.rp-sev{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:100px;border:1px solid var(--line-2);color:var(--t2);background:var(--elev);white-space:nowrap;text-transform:capitalize}
.rp-sev i{width:6px;height:6px;border-radius:50%;background:var(--line-strong)}
.rp-tiles .tx .tiers{display:block;font-family:var(--mono);font-size:10.5px;color:var(--t3);margin-top:3px;letter-spacing:.03em}
.rp-sev.critical,.rp-sev.high{color:var(--t1);border-color:var(--line-strong)}
.rp-sev.critical i,.rp-sev.high i{background:var(--t1)}   /* neutral dots: dark ink for critical/high, grey below; amber is a decision, never a severity */
.rp-sev.medium{color:var(--t2)}
.rp-sev.medium i{background:var(--t3)}
.rp-sev.low,.rp-sev.info{color:var(--t3)}
/* the legacy .sd severity dots inside the report and the drawer follow the same law */
#view-reports .sd.high,.rp-drawer .sd.high{background:var(--t1)} #view-reports .sd.med,.rp-drawer .sd.med{background:var(--t3)} #view-reports .sd.low,.rp-drawer .sd.low{background:var(--line-strong)}
.rp-when{white-space:nowrap}
.rp-sla{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:500;white-space:nowrap;color:var(--t2)}
.rp-sla i{width:6px;height:6px;border-radius:50%;background:var(--t3)}
.rp-sla.ok i,.rp-sla.met i{background:var(--success)}
.rp-sla.ok,.rp-sla.met{color:var(--success)}
.rp-sla.at_risk{color:var(--warn)}.rp-sla.at_risk i{background:var(--warn)}
.rp-sla.breached{color:var(--danger)}.rp-sla.breached i{background:var(--danger)}
.rp-more{display:block;width:100%;text-align:center;padding:10px;font-size:12px;color:var(--t2);border-top:1px solid var(--line)}
.rp-more:hover{color:var(--t1);background:var(--elev)}
.rp-past{display:flex;flex-direction:column}
.rp-past-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line)}
.rp-past-row:first-child{border-top:none}
.rp-past-row .t{font-size:13px;font-weight:500;min-width:0}
.rp-past-row .s{font-size:11.5px;color:var(--t3);font-family:var(--font);margin-top:2px}
.rp-past-h{font-size:10.5px;color:var(--t3);letter-spacing:.05em;text-transform:uppercase;font-weight:600;padding:14px 0 4px;border-top:1px solid var(--line);margin-top:4px}
.rp-past-h+.rp-past-row{border-top:none}
.rp-past-row .btn{margin-left:auto;padding:5px 10px;font-size:12px;flex-shrink:0}
.rp-status{font-size:12px;color:var(--t2);white-space:nowrap}

/* ---- inside the App page (Report tab): sentence · latest report · charts · aging · past reports ---- */
.rp-sent{margin-bottom:16px}
.rp-sent .rp-num{border-bottom:1.5px solid var(--line-strong);cursor:help;font-variant-numeric:tabular-nums}
.rp-latest{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 14px;margin-bottom:16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--raised)}
.rp-latest-t{display:flex;flex-direction:column;gap:2px;min-width:0;margin-right:auto}
.rp-latest-t b{font-size:13px;font-weight:600;color:var(--t1)}
.rp-latest .rp-win{flex-shrink:0}
.rp-latest .rp-win[hidden]{display:none}
.rp-grid2[hidden],.rp-card[hidden]{display:none}
/* the ⋯ / More menus */
.rp-menu{position:relative;display:inline-block}
.rp-menu-btn{padding:7px 12px;font-size:12.5px;line-height:1}
.rp-menu-btn[aria-expanded="true"]{background:var(--elev-2);color:var(--t1)}
.rp-menu-list{position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:200px;padding:4px;background:var(--raised);border:1px solid var(--line-2);border-radius:var(--r-md);box-shadow:0 14px 40px -18px rgba(0,0,0,.45);display:flex;flex-direction:column}
.rp-menu-list[hidden]{display:none}
.rp-menu-it{display:block;width:100%;text-align:left;font:inherit;font-size:13px;color:var(--t1);background:none;border:0;padding:8px 10px;border-radius:var(--r-sm);cursor:pointer;text-decoration:none;white-space:nowrap}   /* "Open in a new tab ↗" keeps its arrow on the line */
.rp-acts .rp-menu-btn{padding:7px 12px;font-size:12.5px;color:var(--t2)}
.rp-acts .rp-menu-btn:hover,.rp-acts .rp-menu-btn[aria-expanded="true"]{color:var(--t1)}
.rp-menu-it:hover,.rp-menu-it:focus-visible{background:var(--elev);outline:none}
.rp-menu-it.danger{color:var(--t2)} .rp-menu-it.danger:hover{color:var(--danger)}
.rp-dacts .rp-menu-list{bottom:calc(100% + 6px);top:auto;left:0;right:auto}
.rp-tip .rp-tip-t{display:block;max-width:220px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-fixhint{font-size:11.5px;color:var(--t3);line-height:1.5;margin-top:10px}
/* a report shown in place when the browser blocked the new tab */
.rp-inline{padding:0;overflow:hidden}
.rp-inline>summary{cursor:default;list-style:none;padding:14px 16px;margin:0;display:flex;align-items:center}
.rp-inline>summary::-webkit-details-marker{display:none}
.rp-inline-x{margin-left:auto;padding:5px 10px;font-size:12px}
.rp-frame{display:block;width:100%;height:min(80vh,900px);border:0;border-top:1px solid var(--line);background:#fff}
/* the sentence line: the headline and the one primary action of the tab */
.rp-top{display:flex;align-items:flex-start;gap:16px;margin-bottom:16px}
.rp-top .rp-sent{flex:1;margin-bottom:0}
.rp-link{font:inherit;color:var(--t2);background:none;border:0;padding:0;cursor:pointer;text-align:left;text-decoration:none}
.rp-link:hover{color:var(--t1);text-decoration:underline}
a.rp-link{overflow-wrap:anywhere}
.rp-more-link{font-size:14px;line-height:1;padding:0 4px}
/* "13 problems covered ▸": the other problems in the same pull request, one fold, closed by default */
.rp-covers[hidden]{display:none}
.rp-covers-d{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);overflow:hidden}
.rp-covers-d>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;padding:10px 12px;user-select:none}
.rp-covers-d>summary::-webkit-details-marker{display:none}
.rp-covers-t{font-size:12.5px;font-weight:600;color:var(--t1)}
.rp-covers-c{color:var(--t3);font-size:12px;line-height:1}
.rp-covers-c::before{content:"▸"}
.rp-covers-d[open] .rp-covers-c::before{content:"▾"}
.rp-covers-d[open]>summary{border-bottom:1px solid var(--line)}
.rp-covers-d .rp-covers-l{padding:10px 12px}
/* the list has a hanging indent, so a wrapped title's second line sits under its first word */
/* (a <button> is always inline-block in Chromium, so a list marker would sit on its last line: the row is a flex pair) */
.rp-covers-l{margin:0;padding:0;list-style:none;font-size:12.5px;line-height:1.6}
.rp-covers-l li{display:flex;gap:8px;align-items:flex-start}
.rp-covers-l li::before{content:"•";color:var(--t3);flex-shrink:0}
.rp-covers-l .rp-link{display:block;min-width:0;white-space:normal;text-align:left;overflow-wrap:break-word}
.rp-covers-x{font-size:12px;color:var(--t3);margin-top:4px}
.rp-upg{margin:0;padding-left:16px;font-size:12px}
.rp-dacts .hint.rp-hint-wide{flex-basis:100%}
.rp-recheck .m{color:var(--t2)}
@media (max-width:560px){.rp-top{flex-direction:column;gap:10px}}
/* the status chip: grey; amber only beside a primary button; green once resolved */
.rp-st{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:100px;border:1px solid var(--line-2);color:var(--t2);background:var(--elev);white-space:nowrap}
.rp-st i{width:6px;height:6px;border-radius:50%;background:var(--t3)}
/* the amber decision pill is the shell's .btn.decide, reused as-is in the footer */
.rp-dacts .btn.decide{grid-column:auto;grid-row:auto;padding:7px 12px;font-size:12.5px}
/* one grey line of durations under the timeline, and the deadline in words */
.rp-durline{font-size:12.5px;color:var(--t2);line-height:1.6;margin:4px 0 0}
.rp-durline span{cursor:help}
.rp-due{color:var(--t3);margin-top:2px}
/* tap targets on a phone: at least 44 px */
@media (max-width:720px){
  #view-reports .btn,#view-reports .seg button,#view-reports .rp-tog button,.rp-menu-btn,.rp-menu-it,.rp-dacts .btn,.rp-how>summary,.rp-how-tr>summary,.rp-covers-d>summary,.rp-more,.rp-past-row .btn,.rp-dclose{min-height:44px}
  .rp-dclose{min-width:44px}
}
.rp-mounted .rp-grid2{margin-bottom:16px}
#view-reports .card-h .count{font-family:var(--font)}   /* "4 found in the last 30 days", "2 open": prose, not code */
.rp-mounted .rp-card .card-h .count{margin-left:auto}

/* ---- "How I know": the proof inline in the drawer (facts, what was checked, the transcript folded) ---- */
.rp-how{border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg);overflow:hidden}
.rp-how>summary{cursor:pointer;list-style:none;display:flex;align-items:center;gap:6px;padding:10px 12px;user-select:none}
.rp-how>summary::-webkit-details-marker{display:none}
.rp-how-t{font-size:12.5px;font-weight:600;color:var(--t1)}
.rp-how-c{color:var(--t3);font-size:14px;line-height:1;transition:transform .15s}
.rp-how[open] .rp-how-c{transform:rotate(90deg)}
.rp-how-s{margin-left:auto;font-family:var(--font);font-size:11px;color:var(--t3);white-space:nowrap}
.rp-how[open]>summary{border-bottom:1px solid var(--line)}
.rp-how-b{padding:12px;display:flex;flex-direction:column;gap:12px}
.rp-how-b>p{font-size:13px;color:var(--t2);line-height:1.6;margin:0}
.rp-how-sec h5{font-size:10.5px;color:var(--t3);letter-spacing:.05em;text-transform:uppercase;font-weight:600;margin:0 0 6px}
.rp-how-sec p{font-size:12.5px;color:var(--t2);line-height:1.55;margin:0}
.rp-how-steps{margin:0;padding-left:18px;font-size:12.5px;color:var(--t2);line-height:1.6}
.rp-how-tr{border:1px solid var(--line);border-radius:var(--r-md);background:var(--raised);overflow:hidden}
.rp-how-tr>summary{cursor:pointer;font-size:11.5px;color:var(--t2);padding:8px 12px;font-family:var(--mono);list-style:none;user-select:none}
.rp-how-tr>summary::-webkit-details-marker{display:none}
.rp-how-tr>summary::before{content:"▸ ";color:var(--t3)}
.rp-how-tr[open]>summary::before{content:"▾ "}
.rp-how .rp-how-pre{white-space:pre-wrap;word-break:break-word;overflow-wrap:anywhere;padding:10px 12px;max-height:280px;border-top:1px solid var(--line)}
.rp-how-muted{font-size:12px;color:var(--t3);padding:8px 12px;margin:0;border-top:1px solid var(--line)}

/* ---- lifecycle drawer ---- */
.rp-scrim{position:fixed;inset:0;z-index:150;background:rgba(0,0,0,.55);opacity:0;visibility:hidden;transition:opacity .25s var(--ease),visibility .25s}
.rp-scrim.show{opacity:1;visibility:visible}
.rp-drawer{position:fixed;top:0;right:0;bottom:0;z-index:160;width:min(560px,100vw);background:var(--raised);border-left:1px solid var(--line-2);
  box-shadow:-30px 0 80px -30px rgba(0,0,0,.8);transform:translateX(100%);transition:transform .3s var(--ease);display:flex;flex-direction:column;overflow:hidden}
.rp-drawer.show{transform:none}
.rp-dh{display:flex;align-items:flex-start;gap:0;padding:18px 20px 14px;border-bottom:1px solid var(--line);position:relative}
.rp-dh h2{font-size:16px;font-weight:600;letter-spacing:-.015em;line-height:1.35;flex:1;min-width:0;overflow-wrap:break-word;padding-right:44px;text-wrap:balance}   /* 44px = the close button's column; balance = even lines, not a short first one */   /* "(@scope/name)" is kept whole by the nbsp before it */
.rp-dh .icon-btn{position:absolute;top:14px;right:14px;flex-shrink:0}
.rp-dmeta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:12px 20px 0}
.rp-dmeta .mono{font-family:var(--mono);font-size:11.5px;color:var(--t2)}
.rp-dmeta .rp-dproj{font-size:11.5px;color:var(--t2)}
.rp-dbody{flex:1;overflow:auto;padding:0 20px 72px}   /* room under the last row: the action bar never sits on it */
.rp-sec{margin-top:22px;scroll-margin-top:14px}   /* opts.focus scrolls a section to the top: keep its breathing room */
.rp-sec h4{font-size:10.5px;color:var(--t3);letter-spacing:.05em;text-transform:uppercase;font-weight:600;margin-bottom:10px}
.rp-sec p{font-size:13px;color:var(--t2);line-height:1.6}
.rp-sec p b{color:var(--t1);font-weight:500}
/* the WHEN strip: a circle, a two-word caption, its time in grey; the line joins the circles. Narrow drawers wrap it
   to two rows (three nodes a row) instead of shrinking the words. */
.rp-steps{display:flex;align-items:flex-start;gap:0;position:relative;margin:4px 0 4px}
.rp-step{position:relative;text-align:center;padding:0 3px;flex:1 1 0;min-width:0}
.rp-step.small{flex:.75 1 0}
.rp-step.small i{width:11px;height:11px;margin-top:3px;border-width:2px}
.rp-step.small .l{font-weight:500;color:var(--t2)}
.rp-step::before{content:"";position:absolute;top:8px;left:0;right:0;height:1px;background:var(--line-strong)}
.rp-step:first-child::before{left:50%}
.rp-step:last-child::before{right:50%}
.rp-step.todo::before{background:var(--line)}
.rp-step i{position:relative;z-index:1;display:block;width:17px;height:17px;border-radius:50%;margin:0 auto;background:var(--raised);border:2px solid var(--line-strong)}
.rp-step.done i{background:var(--t2);border-color:var(--t2);box-shadow:none}   /* a past step is neutral, not the link colour */
.rp-step.done.resolved i{background:var(--success);border-color:var(--success);box-shadow:0 0 0 3px var(--success-dim)}   /* green = verified fixed */
.rp-step .l{font-size:12px;font-weight:600;color:var(--t1);margin-top:8px;line-height:1.25;letter-spacing:.01em;overflow-wrap:anywhere}
.rp-step.todo .l{color:var(--t2);font-weight:500}
.rp-step .d{font-size:11px;font-family:var(--font);color:var(--t3);margin-top:3px;line-height:1.3;overflow-wrap:anywhere}
.rp-step .src{font-size:10.5px;color:var(--t3);margin-top:2px;opacity:.85;line-height:1.3}
.rp-clocks{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.rp-clock{background:var(--bg);padding:11px 13px}
.rp-clock .k{font-size:10.5px;color:var(--t3);letter-spacing:.03em;text-transform:uppercase}
.rp-clock .v{font-size:18px;font-weight:600;letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:4px}
.rp-clock .x{font-size:11px;color:var(--t2);margin-top:2px}
.rp-slaline{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:12.5px;color:var(--t2);flex-wrap:wrap}
.rp-kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:12.5px}
.rp-kv .k{color:var(--t3)}
.rp-kv .v{color:var(--t1);min-width:0;overflow-wrap:anywhere}
.rp-kv .v.mono{font-family:var(--mono);font-size:12px}
.rp-chips{display:flex;flex-wrap:wrap;gap:6px}
.rp-chip{font-family:var(--mono);font-size:11px;color:var(--t2);background:var(--elev);border:1px solid var(--line);border-radius:5px;padding:2px 7px}
.rp-hist{list-style:none;display:flex;flex-direction:column;gap:0}
.rp-hist li{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;padding:8px 0;border-top:1px solid var(--line);font-size:12.5px}
.rp-hist li:first-child{border-top:none}
.rp-hist .w{font-family:var(--font);font-size:11px;color:var(--t3);white-space:nowrap;padding-top:1px}
.rp-hist .m{color:var(--t1)}
.rp-hist .m span{color:var(--t3)}
.rp-hist .nt{grid-column:2;font-size:12px;color:var(--t2);font-style:italic}
.rp-hist .nt.rp-sup{color:var(--t3);font-style:normal}
.rp-hist li.rp-syn .m{color:var(--t2)}   /* grey: a line the page adds to explain the current state */
.rp-hist-more{margin-top:2px}
.rp-hist-more>summary{cursor:pointer;list-style:none;font-size:12px;color:var(--t3);padding:6px 0;user-select:none}
.rp-hist-more>summary::-webkit-details-marker{display:none}
.rp-hist-more>summary:hover{color:var(--t1)}
.rp-hist-more .rp-hist li:first-child{border-top:1px solid var(--line)}
/* the footer: a consequence line above, the decision row, one line below saying what pressing it means */
.rp-dacts{display:flex;flex-direction:column;gap:8px;padding:12px 20px 14px;border-top:1px solid var(--line);background:var(--raised)}
.rp-dact-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.rp-dacts .btn{padding:7px 12px;font-size:12.5px}
.rp-dacts .btn.danger:hover{color:var(--danger);border-color:rgba(243,78,82,.4)}
.rp-dacts .hint,.rp-dact-pre,.rp-dact-post{font-size:11.5px;color:var(--t3);line-height:1.45}
.rp-dact-pre .rp-dact-lnk{font-size:inherit;color:var(--t2)}
.rp-dacts.confirm{display:block}
.rp-confirm{display:flex;flex-direction:column;gap:9px}
.rp-ct{font-size:12.5px;font-weight:600;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.rp-cf{display:flex;flex-direction:column;gap:8px}
.rp-in{width:100%;padding:9px 11px;border-radius:var(--r-md);border:1px solid var(--line-2);background:var(--bg);color:var(--t1);font:inherit;font-size:13px;outline:none;transition:border-color .16s}
.rp-in:focus{border-color:var(--accent)}
.rp-err{min-height:14px;font-size:12px;color:var(--danger)}
.rp-cb{display:flex;gap:8px;flex-wrap:wrap}
.rp-dload{padding:40px 20px;text-align:center;color:var(--t3);font-size:12.5px}

/* ---- fix draft / pull request (inside the drawer) ---- */
.rp-fixhead{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.rp-fixhead h4{margin-bottom:0}
.rp-fstate{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;padding:2px 8px;border-radius:100px;border:1px solid var(--line-2);background:var(--elev);color:var(--t2);white-space:nowrap}
.rp-fstate i{width:6px;height:6px;border-radius:50%;background:var(--t3)}
.rp-fstate a{color:inherit;text-decoration:none}
.rp-fstate a:hover{text-decoration:underline}
.rp-fstate.untested,.rp-fstate.approved_pending_push{color:var(--t2);background:var(--elev);border-color:var(--line-2)}   /* grey: amber is the decision pill alone */
.rp-fstate.untested i,.rp-fstate.approved_pending_push i{background:var(--t3)}
.rp-fstate.pr_open{color:var(--accent);background:var(--accent-dim);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}   /* open on GitHub = waiting on a person, not verified */
.rp-fstate.pr_open i{background:var(--accent)}
.rp-fstate.merged_by_owner{color:var(--success);background:var(--success-dim);border-color:color-mix(in srgb,var(--success) 35%,transparent)}
.rp-fstate.merged_by_owner i{background:var(--success)}
.rp-fstate.discarded{opacity:.7;text-decoration:line-through}
.rp-diff{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);overflow:hidden;min-width:0}
.rp-diff summary{cursor:pointer;font-size:11.5px;color:var(--t2);padding:8px 12px;font-family:var(--mono);list-style:none;display:flex;align-items:center;gap:8px;user-select:none}
.rp-diff summary::-webkit-details-marker{display:none}
.rp-diff summary::before{content:"";width:0;height:0;border-left:5px solid var(--t3);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .15s;flex-shrink:0}
.rp-diff[open] summary::before{transform:rotate(90deg)}
.rp-diff[open] summary{border-bottom:1px solid var(--line)}
.rp-diff summary .pm{margin-left:auto;font-weight:500}
.rp-diff summary .pm .a{color:var(--t2);font-weight:600}   /* grey, two weights: a diff count is not a verdict and not hostile traffic */
.rp-diff summary .pm .d{color:var(--t3);font-weight:500}
.rp-pre{margin:0;padding:8px 0;font-family:var(--mono);font-size:11.5px;line-height:1.55;white-space:pre;overflow:auto;max-height:360px;color:var(--t2);tab-size:4;-webkit-overflow-scrolling:touch}
.rp-pre:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.rp-pre .ln{display:block;width:max-content;min-width:100%;padding:0 12px;box-sizing:border-box}
.rp-pre .add{color:var(--success);background:var(--success-dim)}
.rp-pre .del{color:var(--danger);background:var(--danger-dim)}
.rp-pre .hunk{color:var(--accent);background:var(--accent-dim)}
.rp-pre .meta{color:var(--t3)}
.rp-fixacts{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:12px}
.rp-fixacts[hidden]{display:none}
.rp-fixacts .btn{padding:7px 12px;font-size:12.5px}
.rp-fixacts .btn svg{flex-shrink:0}
.rp-fixacts .btn.danger:hover{color:var(--danger);border-color:rgba(243,78,82,.4)}
.rp-fixacts .hint{font-size:11.5px;color:var(--t3);flex-basis:100%;line-height:1.5}
.rp-fixconfirm:empty{display:none}
.rp-fixconfirm{margin-top:12px;padding:12px;border:1px solid var(--line-2);border-radius:var(--r-md);background:var(--bg)}
.rp-cp{font-size:12.5px;color:var(--t2);line-height:1.55}
.rp-warnbox{font-size:12.5px;color:var(--t2);line-height:1.55;padding:9px 11px;border-radius:var(--r-md);background:var(--warn-dim);border:1px solid rgba(217,162,59,.3);min-width:0}
.rp-warnbox b{color:var(--warn);font-weight:600}
.rp-warnbox code{font-family:var(--mono);font-size:11.5px;color:var(--t1);overflow-wrap:anywhere}
.rp-ck{display:flex;align-items:flex-start;gap:8px;font-size:12.5px;color:var(--t1);cursor:pointer;line-height:1.45}
.rp-ck input{margin-top:3px;accent-color:var(--accent);flex-shrink:0}
.rp-prlink{font-size:12.5px;overflow-wrap:anywhere}

/* ---- sign-in: SSO ---- */
.ad-sso{margin-bottom:16px}
.ad-or{display:flex;align-items:center;gap:10px;font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.06em;margin:16px 0 14px}
.ad-or::before,.ad-or::after{content:"";flex:1;height:1px;background:var(--line)}
.ad-login.secondary .sso-btn{background:var(--elev);color:var(--t1);border:1px solid var(--line-2);box-shadow:none}
.ad-login.secondary .sso-btn:hover{background:var(--elev-2)}

@media (max-width:980px){
  .rp-grid2{grid-template-columns:1fr}
}
@media (max-width:860px){
  .rp-drawer{width:100vw;border-left:none}
}
@media (max-width:560px){
  /* two rows of three: the words keep their size; the line ends at the row's last circle and restarts at the next row's first */
  .rp-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));row-gap:14px}
  .rp-step,.rp-step.small{flex:none;min-width:0}
  .rp-step::before{left:0;right:0}
  .rp-step:nth-child(3n+1)::before,.rp-step:first-child::before{left:50%}
  .rp-step:nth-child(3n)::before,.rp-step:last-child::before{right:50%}
  .rp-step:nth-child(3n+1):last-child::before{display:none}
}
@media (max-width:560px){
  .rp-bar .rp-sel{min-width:0;flex:1 1 100%}
  .rp-latest{padding:10px 12px}
  .rp-latest-t{flex-basis:100%}
  .rp-latest .rp-menu{margin-left:auto}
  .rp-how-s{display:none}
  .rp-acts{width:100%}
  .rp-clocks{grid-template-columns:1fr 1fr}
  .rp-dh,.rp-dbody,.rp-dacts,.rp-dmeta{padding-left:var(--gutter);padding-right:var(--gutter)}
  .rp-dh .icon-btn{right:calc(var(--gutter) - 6px)}
}
@media print{
  .rp-drawer,.rp-scrim{display:none}
}

/* the legend under the change title: each count with its own label, grey, receipts in the tooltip */
.rp-legend{font-size:11.5px;color:var(--t3);line-height:1.45;margin-top:3px;cursor:help}
/* a drafted fix on the timeline is an event that happened: filled grey ink like every past node (the chip says
   "untested"); hollow is only for a node still to come (.todo, "Fixed — not yet") */
.rp-step.draft i{background:var(--t2);border-color:var(--t2)}
/* GitHub not connected: the grey secondary "Accept now" button; "untested" stays a sub-word on it too */
.rp-dacts .btn.rp-accept-now{color:var(--t1)}
.rp-dacts .btn .sub,.rp-confirm .btn .sub{font-size:10.5px;font-weight:500;color:var(--t3);margin-left:2px}
/* How to fix: the instruction in the open, under the fix (or in its place); a list when the payload gives steps */
.rp-howto-steps{margin:0;padding-left:20px;font-size:13px;color:var(--t2);line-height:1.6}
.rp-howto-steps li+li{margin-top:4px}
.rp-howto-p{margin:0}
.rp-howto .rp-howto-pre{margin-top:10px;padding:8px 12px;white-space:pre-wrap;word-break:break-word;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg);max-height:240px}
/* opts.focus: the section the reader was sent to is tinted for a moment, then fades */
.rp-flash{animation:rpFlash 1.6s var(--ease) both;border-radius:var(--r-md)}
@keyframes rpFlash{0%,25%{box-shadow:0 0 0 6px var(--accent-dim);background:var(--accent-dim)}100%{box-shadow:0 0 0 6px transparent;background:transparent}}
@media (prefers-reduced-motion:reduce){.rp-flash{animation-duration:.6s}}
/* under the title: the grouped row the reader tapped ("Opened from: One update to <repo> that covers N problems") */
.rp-dh{flex-wrap:wrap}
.rp-dfrom{flex-basis:100%;font-size:12px;color:var(--t3);line-height:1.45;margin-top:5px;padding-right:44px;overflow-wrap:anywhere}
/* under the title, when the reader came to see a change that covers other problems too: why the heading names one */
.rp-dalso{flex-basis:100%;font-size:12px;color:var(--t3);line-height:1.45;margin-bottom:2px}
.rp-dalso .rp-link{color:var(--t3);font-size:12px;white-space:normal}
.rp-dalso .rp-link:hover{color:var(--t1)}
.rp-dact-wait{font-size:13px;color:var(--t2);padding:6px 0}

/* r15: touches-data word and the developer's apply-by-hand fold */
.rp-status.rp-data{color:var(--t2)}
.rp-apply{margin:8px 0 0;font-size:12.5px}
.rp-apply summary{cursor:pointer;color:var(--t2);list-style:none;min-height:28px;display:inline-flex;align-items:center}
.rp-apply summary::-webkit-details-marker{display:none}
.rp-apply summary:hover{color:var(--t1)}
.rp-apply-t{margin:6px 0 0;color:var(--t2);line-height:1.5}
.rp-apply-pre{max-height:160px;margin-top:6px}

/* r15: the close button shows a ring only for keyboard focus */
.rp-drawer .rp-close:focus:not(:focus-visible){outline:none;box-shadow:none}

.rp-drawer .rp-lead{margin:0;padding:10px 20px 0;font-size:13px;line-height:1.5;color:var(--t2)}
