@charset "utf-8";
/* RA7 보고서 -- this track's one stylesheet of the redesign (GOAL-redesign-wave 4절 CSS). Its parts are
   redesign-rf1.css's (prefix lx-); index.html links it after them. Only this track writes here.
   What it draws (리디자인 명세 8.12, 8.16, 9.5): the four report screens' places (.pr-main), the document (.pr-doc),
   프레임워크 점검's list and detail (.pr-fw), the panels' forms, and the printed sheet. Colours are tokens only; a state
   colour on words is its -text token. */

/* ---------- 자리 ---------- */
.pr-main{min-width:0}
/* This track writes a name and its value as one <div> a row; RF1's .lx-kv lays dt and dd out as its own children. */
:is(.pr-main,[data-proof-panel],[data-proof-legacy-panel],[data-pc-panel],[data-proof-area-panel]) .lx-kv>div{display:contents}
.pr-main :where(p,h2,h3,h4,dl,dd,ul,ol){margin:0}
.pr-main :where(.lx-lede,.lx-sub,.lx-cell,td,th,dd){word-break:keep-all;overflow-wrap:break-word}
.pr-first{align-items:flex-start;gap:12px 16px}
.pr-first .lx-lede{min-width:min(100%,420px)}
.pr-chips{gap:8px}
.pr-actions{flex-wrap:nowrap;justify-content:flex-end;gap:6px}
.pr-main .lx-card-h .lx-sub{font-size:13px}
.pr-period{display:inline-flex;flex-wrap:wrap;column-gap:4px;white-space:nowrap}
.pr-period>span{white-space:nowrap}
table.lx-t.pr-kept tbody td:first-child{max-width:340px}
/* The name takes what the other cells leave and is cut with … where a panel stands beside the table. */
table.lx-t.pr-frameworks{width:100%}
table.lx-t.pr-frameworks td:first-child{width:100%;max-width:0}
table.lx-t.pr-frameworks td:not(:first-child){white-space:nowrap}
/* Where that leaves it narrow (1440 and under, a panel beside) the name says itself in up to three lines, not one cut
   with … (R5 10-20 FB-008: four of five names cut at 1440 and 1536; at 1440 OWASP Top 10 for Agentic Applications 2026
   needs three in its 167px, u115c4 d61 20:00). */
table.lx-t.pr-frameworks .lx-nm.lx-ell{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:normal;overflow-wrap:anywhere}
/* Over 1440px the name keeps a third of the row and the other cells share the rest (PC3 big-screen, 10-13: at 1920
   and 2560 the name took 65% of the table -- 1121px for a longest name of 382px -- and every figure stood at the far
   right). At 1440 and under the table is as it was. */
@media (min-width:1441px){table.lx-t.pr-frameworks td:first-child{width:34%}}
table.lx-t .lx-cell .lx-ell{max-width:100%}
.pr-last{gap:6px;min-width:150px}
.pr-last .lx-spec{max-width:160px}
.pr-quick-t td{height:52px}
.pr-legacy-seg{margin-top:12px}
#proof-kept-legacy:empty{display:none}
#proof-list{margin-top:12px}
.pr-pc-purpose[hidden],[data-pc-body][hidden]{display:none}
.pr-kind{display:inline;margin-left:4px;font-size:13px}
.pr-strong{font-weight:650}
.pr-field-error{display:block;min-height:0;color:var(--ds-danger-text);font-size:13px}
.pr-field-error:empty{display:none}
.pr-create .lx-field select[multiple]{height:auto;min-height:96px;padding:6px 8px}
.pr-days{align-items:flex-start;flex-wrap:nowrap}
.pr-inline-field{display:inline-flex;align-items:center;gap:6px;margin:0;color:var(--ds-text-3);font-size:13px;font-weight:500}
.pr-inline-field .lx-in{width:auto;height:30px;padding:0 8px;font-size:13px}
.pr-verify{margin-top:8px;color:var(--ds-text-3);font-size:13px}
.pr-verify summary{cursor:pointer;color:var(--ds-text-3)}
.pr-verify small{display:block;overflow-wrap:anywhere;font-family:var(--ds-font-mono);font-size:var(--ds-fs-xs);line-height:1.6}
.pr-raw{max-height:420px;overflow:auto;margin:8px 0 0;padding:12px;border-radius:8px;background:var(--ds-surface-2);font-size:var(--ds-fs-xs);white-space:pre-wrap;overflow-wrap:anywhere}
.pc-framework{gap:6px 10px}
.pc-fw-name{min-width:min(100%,220px);font-weight:650}
.pc-chip-off{color:var(--ds-muted);cursor:default}
.pc-chip-off:hover{border-color:var(--ds-line);color:var(--ds-muted)}
.pc-basis{gap:4px 16px;margin:0 0 12px}
.pc-chips{margin-bottom:12px}
table.lx-t tr.pc-group th{padding:0;background:transparent}
table.lx-t tr.pc-more td{border-top:0}
.pc-pair{white-space:nowrap}
.pc-also{display:block;margin-top:2px}

/* ---------- 문서 (명세 8.12의 문서 화면) ---------- */
.pr-doc{display:flex;flex-direction:column;gap:20px;min-width:0}
.pr-doc-line{gap:10px;padding-bottom:16px;border-bottom:1px solid var(--ds-line)}
.pr-doc-line .lx-h2{font-size:18px;min-width:min(100%,280px)}
.pr-inline{display:inline;margin-left:6px}
.pr-doc[data-proof-stale] .pr-doc-body{opacity:.45;pointer-events:none;user-select:none}
.pr-doc-body{display:flex;flex-direction:column;gap:24px;min-width:0}
.pr-summary{display:flex;flex-direction:column;gap:4px}
.pr-terms{grid-template-columns:96px minmax(0,1fr)}
.pr-back{align-self:flex-start;margin-bottom:-8px}
.pr-fw-place>.pr-back{margin:0 0 12px}
.pr-statement{max-width:72ch}
.pr-sec{display:flex;flex-direction:column;gap:14px;min-width:0;padding-top:20px;border-top:1px solid var(--ds-line)}
.pr-sec-h{gap:6px 12px}
.pr-left-out{color:var(--ds-text-3)}
.pr-stats{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px}
.pr-stat{padding:10px 12px 10px 0}
.pr-stat .lx-fig-s .lx-na,.pr-stat .lx-fig-s.lx-na{color:var(--ds-text-3)}
.pr-marks{display:flex;flex-wrap:wrap;gap:2px 6px}
.pr-marks .pr-kind{margin-left:0}
.pr-facts{grid-template-columns:minmax(120px,240px) minmax(0,1fr);row-gap:6px}
.pr-facts dd b{font-weight:650}
.pr-facts dd b.lx-na{font-weight:500}
.pr-items{display:flex;flex-wrap:wrap;gap:4px 16px}
.pr-item{white-space:nowrap}
.pr-sums{margin-top:4px}
.pr-zero summary{cursor:pointer;color:var(--ds-text-3);font-size:13px}
.pr-zero[open] summary{margin-bottom:6px}
.pr-table{display:flex;flex-direction:column;gap:6px;min-width:0}
.pr-table-h{gap:6px 10px}
.pr-rows{min-width:0;overflow-x:auto}
.pr-rows table.lx-t{min-width:100%}
.pr-rows td.pr-long{min-width:240px}
.pr-rows td.pr-token{overflow-wrap:anywhere}
.pr-none{padding:6px 0}
.pr-notes{display:flex;flex-direction:column;gap:4px}
.pr-from{font-size:13px;white-space:nowrap}
.pr-basis{display:flex;flex-direction:column;gap:6px;padding-top:16px;border-top:1px solid var(--ds-line)}
.pr-score{color:var(--ds-text-2);font-size:14px}
.pr-score b{color:var(--ds-text);font-weight:650}
.pr-result{display:flex;flex-direction:column;gap:8px;max-width:520px}
.pr-legend{gap:4px 14px}
.pr-item h4,.pr-item .lx-h3{font-size:15px}
.pr-framework .pr-item{display:flex;flex-direction:column;gap:8px;padding:14px 0;border-top:1px solid var(--ds-line)}
.pr-desc{color:var(--ds-text-2)}
.pr-cond{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;padding:8px 0}
.pr-counts{display:flex;gap:16px;margin:0}
.pr-counts>div{display:flex;gap:6px}
.pr-counts dt{color:var(--ds-text-3);font-size:13px}
.pr-counts dd{margin:0}
/* (The document's lines of targets; the framework screen's tables of the same names stay tables.) */
div.pr-targets,div.pr-units{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:4px 12px;font-size:13px}
.pr-names{display:flex;flex-wrap:wrap;gap:4px 14px;margin:0;padding:0;list-style:none}
.pr-target{font-size:14px}

/* ---------- 프레임워크 점검 (명세 8.16: 왼쪽 목록 + 오른쪽 상세) ---------- */
.pr-fw-place{display:block;min-width:0}
.pr-fw{display:flex;flex-direction:column;min-width:0}
/* The frame's <main> gives the page its margin (24/28/40, RF1 .lx-page); the screen adds none of its own beside it. */
.pr-fw-top{display:flex;flex-direction:column;gap:6px;padding:0 0 16px;border-bottom:1px solid var(--ds-line)}
.pr-fw-top>.lx-row{gap:8px 10px}
.pr-fw-top .lx-lede{min-width:min(100%,360px)}
/* .lx-sub is a block (redesign-rf1.css), set after .lx-row: a line of spans that is both stays a row. */
.pr-fw-terms,.pr-fw-reasons,.pc-basis{display:flex;flex-wrap:wrap}
.pr-fw-terms{gap:4px 16px;align-items:center}
.pr-fw-version{width:auto;height:34px}
.pr-fw-v{color:var(--ds-text-2)}
.pr-fw-split{align-items:stretch}
.pr-fw-split>.pr-fw-list{padding:16px 12px 0 0}
/* (The detail is an .lx-page of its own beside the list: it keeps the side that parts it from the list, whatever a
   nested .lx-page is given.) */
.pr-fw .pr-fw-split>.pr-fw-detail{padding:24px 0 0 28px}
.pr-fw-list .lx-mi{align-items:flex-start}
.pr-fw-list .lx-mi .lx-st{color:inherit}
.pr-fw-list .lx-mi-n.lx-na{color:var(--ds-text-3);font-weight:500}
.pr-fw-list .lx-grp{padding:14px 12px 4px}
.pr-fw-legend{display:flex;flex-direction:column;gap:8px;padding:0 4px 12px}
/* The legend as the design draws it: a mark and its count, no box until it is the one pressed. */
.pr-fw-chip{height:28px;padding:0 8px}
.pr-fw-chip:not([aria-pressed="true"]){border-color:transparent;background:transparent}
.pr-fw-chip:disabled{color:var(--ds-muted);cursor:default}
.pr-fw-off{margin-top:10px;color:var(--ds-text-3);font-size:13px}
.pr-fw-off summary{padding:6px 12px;cursor:pointer}
.pr-fw-unjudged{margin-top:12px}
.pr-fw-add{margin-top:12px;padding:12px;border-top:1px solid var(--ds-line)}
.pr-fw-detail{gap:20px}
.pr-fw-item{gap:8px}
.pr-fw-number{font-size:15px;font-weight:500}
.pr-fw-conds table.lx-t td:nth-child(2){width:140px}
.pr-fw-conds table.lx-t td:nth-child(2) .lx-spec{display:flex;width:120px}
.pr-fw-conds table.lx-t td:last-child{white-space:nowrap}
.pr-fw-targets .lx-card-h{gap:6px 12px}
.pr-fw-reasons{gap:4px 14px;margin-bottom:10px}
.pr-fw-cond-edit{gap:10px}
.pr-fw-bar{margin:16px 0 0}
.pr-bar-in{width:200px;height:32px;font-size:13px}
.pr-fw-status{padding:12px 0 0}
.pr-fw-status:empty{display:none}
.pr-pack-piece{min-width:0}
.pr-pack-confirm{gap:8px 12px}

/* ---------- 좁은 화면 ---------- */
@media(max-width:900px){
  .pr-fw-split>.pr-fw-list{padding-right:0}
  .pr-fw .pr-fw-split>.pr-fw-detail{padding:20px 0 0}
  .pr-days{flex-wrap:wrap}
  /* A table of the framework screen under 900px: each row a stack -- its first cell a line of its own, the others
     under it with their column's name before them (6.6: nothing leaves, nothing scrolls sideways). */
  table.lx-t.pr-stack-t,table.lx-t.pr-stack-t tbody{display:block;width:100%}
  table.lx-t.pr-stack-t thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
  table.lx-t.pr-stack-t tr{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;padding:10px 0;border-top:1px solid var(--ds-line)}
  table.lx-t.pr-stack-t tbody tr:first-child{border-top:0}
  table.lx-t.pr-stack-t td{display:block;width:auto;min-width:0;max-width:100%;height:auto;padding:0;border:0;text-align:left;white-space:normal}
  table.lx-t.pr-stack-t td:first-child{flex:1 0 100%}
  table.lx-t.pr-stack-t td[data-label]:not([data-label=""])::before{content:attr(data-label) " ";color:var(--ds-text-3);font-size:13px}
  table.lx-t.pr-stack-t td.lx-drop{display:block}
  table.lx-t.pr-stack-t .lx-dropsum{display:none}
  table.lx-t.pr-frameworks.pr-stack-t td:first-child,table.lx-t.pr-kept.pr-stack-t tbody td:first-child{width:auto;max-width:100%}
  table.lx-t.pr-frameworks.pr-stack-t td:not(:first-child){white-space:normal}
  table.lx-t.pr-frameworks.pr-stack-t td:last-child{margin-left:auto}
  .pr-fw-conds table.lx-t.pr-stack-t td:nth-child(2){width:auto}
  .pr-fw-conds table.lx-t.pr-stack-t td:last-child{margin-left:auto}
  .pr-facts{grid-template-columns:minmax(0,1fr)}
  .pr-terms{grid-template-columns:minmax(0,1fr)}
  .pr-bar-in{width:100%}
}

/* ---------- 인쇄 · PDF로 저장: the document alone (html.pr-printing; nothing on screen changes) ---------- */
.pr-print-sheet{display:none}
@media print{
  html.pr-printing,html.pr-printing body{height:auto!important;min-height:0!important;overflow:visible!important;background:#fff!important}
  html.pr-printing body>:not(.pr-print-sheet){display:none!important}
  html.pr-printing .pr-print-sheet{display:block}
  .pr-print-sheet .pr-doc{gap:14px}
  .pr-print-sheet .pr-doc-body{opacity:1!important}
  .pr-print-sheet :is(button,summary,[data-proof-screen],.lx-bdg){display:none!important}
  .pr-print-sheet .pr-target{display:inline!important;padding:0;border:0;background:none;color:inherit;font:inherit}
  .pr-print-sheet .pr-rows{overflow:visible}
  .pr-print-sheet table.lx-t :is(th,td){height:auto;padding:4px 6px;font-size:12px}
  .pr-print-sheet [data-proof-wide] thead{display:none}
  .pr-print-sheet [data-proof-wide] :is(table,tbody){display:block;width:100%}
  .pr-print-sheet [data-proof-wide] tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px 12px;padding:6px 0;border-top:1px solid var(--ds-line-strong)}
  .pr-print-sheet [data-proof-wide] td{display:block;min-width:0;padding:0;border:0;text-align:left}
  .pr-print-sheet [data-proof-wide] td::before{content:attr(data-label);display:block;color:var(--ds-text-2);font-size:10px}
  /* The pages break where the document runs out: no section or item is moved whole to the next page (that left a
     page with a section's short tail, a framework's legend or a group's name over a large blank). What must not stand
     alone keeps with what follows it -- a heading with its first lines -- and a small unit (a row, a figure, a
     condition's counts) is not cut. */
  .pr-print-sheet :is(h2,h3,h4,.pr-doc-line,.pr-sec-h,.pr-table-h,.lx-grp,.pr-item>.lx-row,.pr-cond>.lx-cell){break-after:avoid}
  .pr-print-sheet :is(tr,.pr-stat,.pr-summary,.pr-result,.pr-counts,.pr-desc){break-inside:avoid}
}
