/* The 통제 group of AI 사용 인사이트 (owned by t-agr-ins-control). */
.insights-control-flow { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; }
.insights-control-flow h5, .insights-whatif h5 { margin: 0 0 6px; font-size: var(--ds-fs-sm); }
.insights-panel section { margin: 14px 0; }
.insights-panel section h4 { margin: 0 0 8px; font-size: var(--ds-fs-md); }
.insights-whatif { border: 1px solid var(--ds-line); border-radius: var(--ds-radius); padding: 12px; margin: 10px 0; background: var(--ds-surface); }
.insights-readiness { display: grid; grid-template-columns: max-content 1fr; gap: 2px 12px; margin: 8px 0; font-size: var(--ds-fs-xs); }
.insights-readiness dt { color: var(--ds-text-2); }
.insights-readiness dd { margin: 0; }
.insights-toggle { display: flex; gap: 6px; flex-wrap: wrap; }
.insights-fp { display: inline-flex; gap: 6px; align-items: center; margin-left: 8px; }
.insights-fp select { width: auto; min-width: 150px; }
[data-reason-unlabeled] { border-bottom: 1px dotted var(--ds-text-2); cursor: help; }
[data-ambiguous] { color: var(--ds-unknown-text); font-size: var(--ds-fs-xs); }
[data-not-provided] { color: var(--ds-danger-text); font-weight: 600; }
/* 거절·퍼널: each part in a card, as the 비용·실행 tabs (the shared .ds-card; only its inside is placed here). */
.insights-panel section.ic-part { padding: var(--ds-space-4); margin: 0 0 var(--ds-space-3); min-height: 0; }
.insights-panel section.ic-part > h4 { margin: 0 0 var(--ds-space-2); }
.ic-part > .table-wrap { margin: 0 calc(-1 * var(--ds-space-4)) calc(-1 * var(--ds-space-4)); }
/* The bars of a part (the funnel's steps, the provider's refusals): the names take the width of the longest one, not a
   quarter of the card, so a name stands beside its bar; every row's bar starts and ends on the same line; the bar is
   thick enough to compare; and a count of 0 keeps the bar's place as an empty track. */
.ic-part .insights-bars { grid-template-columns: fit-content(45%) minmax(60px, 1fr) max-content; column-gap: var(--ds-space-3); row-gap: var(--ds-space-2); }
.ic-part .insights-bars > figcaption { grid-column: 1 / -1; }
.ic-part .insights-bar { grid-column: 1 / -1; grid-template-columns: subgrid; font-size: var(--ds-fs-sm); }
.ic-part .insights-bar-track svg { display: block; height: 14px; border-radius: var(--ds-radius-xs); background: var(--ds-surface-2); }
.ic-part .insights-bar-value { text-align: right; }
/* A short cell (a verdict, a class, a count of keys and people) stays on one line; the team list and next step take the rest. */
.insights-table td.ic-keep { white-space: nowrap; }
.ic-reasons td:first-child { min-width: 16ch; }
/* 증거 팩: what the card shows as named values; the items as a table with their state a mark. */
.ic-terms { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, max-content)); gap: var(--ds-space-2) var(--ds-space-5); margin: var(--ds-space-2) 0 var(--ds-space-3); }
.ic-terms dt { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.ic-terms dd { margin: 0; font-size: var(--ds-fs-md); font-weight: 600; }
.ic-terms dd span { white-space: nowrap; }
/* How many items stand in each state, each with its mark and what the word means; a state no item stands in is quiet. */
.ic-tally { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: var(--ds-space-2) var(--ds-space-5); margin: 0 0 var(--ds-space-3); }
.ic-tally > div { display: grid; gap: 2px; align-content: start; }
.ic-tally-n { display: inline-flex; align-items: baseline; gap: 6px; }
.ic-tally-n small { margin-left: -4px; }
.ic-tally b { font-size: var(--ds-fs-xl); font-variant-numeric: tabular-nums; line-height: 1.2; }
.ic-tally small { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.ic-tally [data-zero] b { color: var(--ds-text-3); font-size: var(--ds-fs-lg); font-weight: 500; }
.tag.ic-quiet { background: transparent; color: var(--ds-text-2); outline: 1px solid var(--ds-line-strong); outline-offset: -1px; }
.ic-quiet-text { color: var(--ds-text-3); }
.ic-sections td:last-child, .ic-mappings td:last-child { white-space: normal; color: var(--ds-text-2); }
.ic-sections .tag[data-not-provided] { font-weight: 600; }
[data-evidence-scope] { margin: 0 0 var(--ds-space-3); }
/* On a phone the pack's two tables are as wide as the card: a cell wraps instead of the table running off its side. */
@media (max-width: 760px) { .table-wrap table:is(.ic-sections, .ic-mappings) { min-width: 0; } :is(.ic-sections, .ic-mappings) :is(td, th) { padding-left: var(--ds-space-2); padding-right: var(--ds-space-2); white-space: normal; } }
@media (min-width: 1700px) { .ic-sections, .ic-mappings, .ic-reasons { font-size: var(--ds-fs-md); } .ic-terms dd { font-size: var(--ds-fs-lg); }
  .ic-tally b { font-size: var(--ds-fs-2xl); } .ic-tally [data-zero] b { font-size: var(--ds-fs-xl); } .ic-tally .tag, .ic-tally small, .ic-tally-means { font-size: var(--ds-fs-sm); } }
@media (max-width: 640px) {
  
  
}

[data-purpose-notice] { margin: var(--ds-space-3) 0; }
/* 거절·퍼널's head: the four steps of its title as figures, left to right with an arrow between them -- what was
   tried, let through, turned away (by its four verdicts, each with its count) and answered. A real 0 steps back.
   The class is ic-fstep. */
.ic-funnel { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, 1.6fr) minmax(0, 1fr); gap: var(--ds-space-5); align-items: stretch; }
.ic-fstep { position: relative; display: grid; align-content: start; gap: var(--ds-space-1); min-width: 0; padding: var(--ds-space-3) var(--ds-space-4); border: 1px solid var(--ds-line); border-radius: var(--ds-radius-s); background: var(--ds-surface); }
.ic-fstep + .ic-fstep::before { content: "→"; position: absolute; left: calc(-1 * var(--ds-space-5)); top: 50%; width: var(--ds-space-5); text-align: center; transform: translateY(-50%); color: var(--ds-text-3); }
.ic-fstep > span { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
.ic-fstep > b { font-family: var(--ds-font-num); font-size: var(--ds-fs-2xl); font-variant-numeric: tabular-nums; line-height: 1.2; }
.ic-fstep[data-zero] > b { color: var(--ds-text-3); font-weight: 600; }
.ic-fstep-refused > ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2px var(--ds-space-4); margin: 0; padding: 0; list-style: none; }
.ic-fstep-refused li { display: flex; justify-content: space-between; align-items: baseline; gap: var(--ds-space-2); font-size: var(--ds-fs-sm); }
.ic-fstep-refused li > b { font-family: var(--ds-font-num); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ic-fstep-refused li[data-zero] { color: var(--ds-text-3); }
.ic-fstep-refused li[data-zero] > b { font-weight: 500; }
@media (max-width: 900px) { .ic-funnel { grid-template-columns: 1fr; gap: var(--ds-space-4); } .ic-fstep + .ic-fstep::before { content: "↓"; left: 0; top: calc(-1 * var(--ds-space-4)); width: 100%; height: var(--ds-space-4); line-height: var(--ds-space-4); transform: none; } }
@media (min-width: 1700px) { .ic-fstep > b { font-size: 28px; } .ic-fstep > span, .ic-fstep-refused li { font-size: var(--ds-fs-md); } }
/* A table that a line follows in its card ends above that line, not at the card's edge. */
.ic-part > .table-wrap:not(:last-child) { margin-bottom: var(--ds-space-2); }
.ic-reasons [data-hidden-teams] { white-space: nowrap; }
/* 가드레일: the detectors of the Korean catalog in columns of a few, each on a line; a part's own words keep the
   card's text size. */
.ic-detectors { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: var(--ds-space-1) var(--ds-space-5); margin: 0; padding: 0; list-style: none; font-size: var(--ds-fs-sm); }
.ic-detectors [data-not-carried] { color: var(--ds-text-2); }
.ic-part > p { margin: var(--ds-space-2) 0 0; font-size: var(--ds-fs-md); }
.ic-part > p.insights-hint { font-size: var(--ds-fs-md); }
/* 정책 가정 비교: an item is its head, what would change and for whom, then its four readiness values side by side --
   a card of five lines, not nine. */
.insights-whatif { padding: var(--ds-space-3) var(--ds-space-4); margin: 0 0 var(--ds-space-3); border-radius: var(--ds-radius-s); }
.insights-whatif > h5 { font-size: var(--ds-fs-md); }
.insights-whatif > p { margin: 0 0 2px; font-size: var(--ds-fs-md); }
.insights-whatif > p + p { color: var(--ds-text-2); }
.insights-whatif .insights-readiness { grid-template-columns: none; grid-template-rows: auto auto; grid-auto-flow: column; grid-auto-columns: minmax(112px, max-content); gap: 0 var(--ds-space-5); margin: var(--ds-space-2) 0; }
.insights-whatif .insights-readiness dd { font-size: var(--ds-fs-sm); font-weight: 600; }
.insights-whatif > details > summary { color: var(--ds-text-2); font-size: var(--ds-fs-xs); }
@media (max-width: 760px) { .insights-whatif .insights-readiness { grid-template-columns: max-content 1fr; grid-template-rows: none; grid-auto-flow: row; gap: 2px var(--ds-space-3); } }

/* 목적 제한: what applies now, the form that changes it and its history are three cards. The company's own line
   is said once at the head; a unit that differs is a row, a unit that follows the company is a name in a list. */
.ic-limit-company { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ds-space-1) var(--ds-space-5); margin: 0; font-size: var(--ds-fs-sm); }
.ic-limit-company > dt { font-weight: 700; }
.ic-limit-company > dd { margin: 0; }
.ic-limit-company > dd > small { color: var(--ds-text-2); font-size: var(--ds-fs-xs); margin-right: var(--ds-space-1); }
.ic-part > p.ic-limit-count { margin: var(--ds-space-3) 0 var(--ds-space-2); color: var(--ds-text-2); font-size: var(--ds-fs-xs); font-weight: 600; }
.ic-limit-units { display: flex; flex-wrap: wrap; gap: var(--ds-space-1) var(--ds-space-2); margin: 0; padding: 0; list-style: none; font-size: var(--ds-fs-sm); }
.ic-limit-units > li { padding: 2px var(--ds-space-2); border-radius: var(--ds-radius-xs); background: var(--ds-surface-2); }
.ic-part > details[data-limit-editor] > summary { cursor: pointer; font-size: var(--ds-fs-sm); font-weight: 600; }
.ic-part > details[data-limit-editor][open] > summary { margin-bottom: var(--ds-space-3); }
/* The form lists every unit: it scrolls inside its card under a head that stays, so 근거 and 저장 stay in reach. */
.ic-part > details[data-limit-editor] .table-wrap { margin: 0 calc(-1 * var(--ds-space-4)) var(--ds-space-3); max-height: min(60vh, 520px); border-block: 1px solid var(--ds-line); }
.ic-limit-edit thead th { position: sticky; top: 0; z-index: 1; }
.ic-limit-edit td { padding-block: var(--ds-space-2); line-height: 1.8; max-width: none; }
.ic-limit-edit input[type="checkbox"] { width: auto; margin: 0; padding: 0; }
.table-wrap .ic-limit-edit td:last-child { white-space: normal; }
.ic-limit-save select { width: auto; margin-top: 0; }
.ic-limit-edit label { display: inline-flex; align-items: center; gap: var(--ds-space-1); margin: 0 var(--ds-space-3) 0 0; white-space: nowrap; font-size: var(--ds-fs-sm); color: var(--ds-text); }
.ic-limit-edit td:first-child label { font-weight: 600; }
.ic-limit-save { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-2) var(--ds-space-3); }
.ic-limit-save > label { display: inline-flex; align-items: center; gap: var(--ds-space-2); margin: 0; font-size: var(--ds-fs-sm); }
.ic-limit-history { margin: 0; padding: 0; list-style: none; font-size: var(--ds-fs-sm); }
.ic-limit-history > li { padding: var(--ds-space-2) 0; border-top: 1px solid var(--ds-line); }
.ic-limit-history > li:first-child { border-top: 0; padding-top: 0; }
.ic-limit-history > li:last-child { padding-bottom: 0; }
.insights-notice + section.ic-part { margin-top: var(--ds-space-3); }
/* No revision yet is one quiet line in the history's card, not a frame inside a frame. */
.ic-part[data-ic-part="limit-history"] > .insights-state { display: flex; flex-wrap: wrap; align-items: baseline; gap: var(--ds-space-1) var(--ds-space-2); padding: 0; border: 0; background: none; min-height: 0; }
.ic-part[data-ic-part="limit-history"] > .insights-state > p { margin: 0; }

/* 위험: a row leads with what was judged; the signals not judged sit under it, quieter, once per reason. */
.ic-first-use { display: grid; grid-template-columns: max-content minmax(0, 1fr); gap: var(--ds-space-1) var(--ds-space-4); margin: 0; font-size: var(--ds-fs-sm); }
.ic-first-use > dt { color: var(--ds-text-2); }
.ic-first-use > dd { margin: 0; overflow-wrap: anywhere; }
.ic-first-use [data-risk-unjudged] { color: var(--ds-unknown-text); }
.ic-part[data-ic-part="risk-teams"] > .table-wrap { margin-top: var(--ds-space-3); }
.table-wrap .ic-risk td.ic-signals { max-width: none; white-space: normal; }
.ic-signals > .ic-unjudged { display: block; margin-top: 2px; color: var(--ds-text-2); font-size: var(--ds-fs-sm); }
.ic-signals > .ic-unjudged > b { color: var(--ds-unknown-text); font-weight: 600; margin-right: var(--ds-space-1); }
.ic-signals > .ic-none { color: var(--ds-text-2); }
.ic-risk-evidence { display: flex; flex-wrap: wrap; align-items: center; gap: var(--ds-space-2); }
.ic-risk-evidence > select { width: auto; margin-top: 0; }
.ic-part > [data-risk-detail]:not(:empty) { margin-top: var(--ds-space-3); padding-top: var(--ds-space-3); border-top: 1px solid var(--ds-line); font-size: var(--ds-fs-sm); }
.ic-risk td.ic-signals { min-width: 280px; }
/* What is not needed to read a line stands behind ⓘ (the shared tooltip). */
.insc-info { width: 18px; height: 18px; min-width: 18px; margin-left: 4px; font-family: var(--ds-font); font-style: normal; }
