@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Manrope:wght@400;500;600;700;800&display=swap');

:root {
  --ink: #152626;
  --muted: #687b7b;
  --paper: #f4f7f5;
  --panel: #ffffff;
  --line: #dce7e1;
  --brand: #167174;
  --brand-dark: #0d5457;
  --brand-pale: #e4f2ef;
  --mint: #ddf3e8;
  --mint-ink: #176448;
  --amber: #fff3cf;
  --amber-ink: #76560b;
  --rose: #ffe4df;
  --rose-ink: #963d32;
  --slate: #edf2f1;
  --nav: #0f3032;
  --nav-line: #2a4d4f;
  --radius: 14px;
  --shadow: 0 10px 30px rgba(21, 55, 51, .055);
}

* { box-sizing: border-box; }

body {
  margin: 0;
  color: var(--ink);
  background: var(--paper);
  font: 14px/1.5 Manrope, Arial, sans-serif;
}

a { color: var(--brand); }

.sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 5;
  display: flex;
  flex-direction: column;
  width: 248px;
  padding: 27px 15px 18px;
  overflow-y: auto;
  color: #e6f0ed;
  background: var(--nav);
  scrollbar-color: #466668 var(--nav);
  scrollbar-width: thin;
}

.brand {
  display: inline-flex;
  align-items: center;
  gap: 9px;
  color: inherit;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .13em;
  text-decoration: none;
}

.brand-mark {
  display: inline-grid;
  width: 28px;
  height: 28px;
  place-items: center;
  border-radius: 8px;
  color: #123d3e;
  background: #a6e1cf;
  font-size: 15px;
  letter-spacing: 0;
}

.workspace-name {
  margin: 19px 7px 15px;
  padding: 0 1px 16px;
  border-bottom: 1px solid var(--nav-line);
  color: #b5cbc7;
  font-size: 11px;
  line-height: 1.55;
}

.sidebar nav { display: grid; gap: 3px; }

.nav-more { margin-top: 4px; }
.nav-more summary {
  padding: 8px 10px;
  border-radius: 7px;
  color: #89aaa5;
  cursor: pointer;
  font: 500 10px/1.2 'DM Mono', monospace;
  letter-spacing: .06em;
  list-style: none;
  text-transform: uppercase;
}
.nav-more summary::-webkit-details-marker { display: none; }
.nav-more summary::after { float: right; content: '+'; font: 500 14px/10px Arial, sans-serif; }
.nav-more[open] summary::after { content: '−'; }
.nav-more summary:hover { color: white; background: #22494b; }
.nav-more a { margin-left: 6px; width: calc(100% - 6px) !important; }

.nav-label {
  margin: 17px 9px 4px;
  color: #89aaa5;
  font: 500 9px/1 'DM Mono', monospace;
  letter-spacing: .13em;
  text-transform: uppercase;
}

.nav-label:first-child { margin-top: 1px; }

.sidebar nav a,
.side-bottom a,
.link-button {
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 0;
  border-radius: 7px;
  color: #b8cfca;
  background: transparent;
  font: inherit;
  font-size: 12px;
  text-align: left;
  text-decoration: none;
  transition: background .15s ease, color .15s ease;
}

.sidebar nav a:hover,
.sidebar nav a.active,
.side-bottom a:hover,
.side-bottom a.active,
.link-button:hover {
  color: white;
  background: #22494b;
}

.side-bottom {
  display: grid;
  gap: 3px;
  margin-top: auto;
  padding-top: 18px;
}

.main {
  max-width: 1460px;
  min-height: 100vh;
  margin-left: 248px;
  padding: 44px 52px 72px;
}

.page-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 26px;
  max-width: 1100px;
  margin-bottom: 28px;
}

.page-header h1 {
  max-width: 760px;
  margin: 4px 0 9px;
  font-size: clamp(28px, 3vw, 35px);
  font-weight: 800;
  letter-spacing: -.05em;
  line-height: 1.16;
}

.eyebrow {
  margin: 0 0 6px;
  color: var(--brand);
  font: 500 10px/1.3 'DM Mono', monospace;
  letter-spacing: .09em;
  text-transform: uppercase;
}

.muted { margin: 0; color: var(--muted); }

.metrics {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  margin-bottom: 22px;
}

.metrics article,
.panel {
  border: 1px solid var(--line);
  border-radius: var(--radius);
  background: var(--panel);
  box-shadow: var(--shadow);
}

.metrics article { min-height: 124px; padding: 18px; }
.metrics p { margin: 0 0 8px; color: var(--muted); font-size: 11px; }
.metrics strong { display: block; font-size: 30px; letter-spacing: -.06em; line-height: 1; }
.metrics span { display: block; margin-top: 7px; color: var(--muted); font-size: 10px; line-height: 1.4; }

.panel { margin-bottom: 18px; padding: 22px; }
.panel:last-child { margin-bottom: 0; }

.panel-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 17px;
}

.panel-heading h2,
.control-card h2 {
  margin: 0;
  font-size: 17px;
  letter-spacing: -.03em;
  line-height: 1.25;
}

.panel-heading a { font-size: 11px; font-weight: 800; text-decoration: none; }

.two-col {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(280px, .85fr);
  gap: 18px;
}

.two-col > .panel { margin-bottom: 0; }

.notice {
  margin: 20px 0;
  padding: 14px 17px;
  border-left: 4px solid var(--brand);
  border-radius: 0 10px 10px 0;
  color: #365658;
  background: var(--brand-pale);
  font-size: 12px;
}

.notice a { color: var(--brand-dark); font-weight: 800; }

.status {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 3px 8px;
  border-radius: 999px;
  color: #486061;
  background: var(--slate);
  font: 500 9px/1 'DM Mono', monospace;
  text-transform: capitalize;
  white-space: nowrap;
}

.status.done,
.status.pass,
.status.observed,
.status.in_scope { color: var(--mint-ink); background: var(--mint); }

.status.review,
.status.in_progress,
.status.due_soon { color: var(--amber-ink); background: var(--amber); }

.status.open,
.status.expired,
.status.out_of_scope { color: var(--rose-ink); background: var(--rose); }

.status.not_assessed { color: #486061; background: var(--slate); }

.action-row {
  display: grid;
  grid-template-columns: 8px minmax(0, 1fr) auto;
  align-items: start;
  gap: 13px;
  padding: 14px 0;
  border-top: 1px solid var(--line);
}

.action-row:first-child { border-top: 0; }
.action-row strong { display: block; font-size: 13px; line-height: 1.35; }
.action-row p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }

.priority {
  display: block;
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-radius: 50%;
  background: #99aaa9;
}

.priority.critical { background: #d55a49; }
.priority.high { background: #e2a125; }

.full { grid-template-columns: 8px minmax(0, 1fr) 205px; padding: 17px 0; }

.button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 39px;
  padding: 9px 13px;
  border: 1px solid transparent;
  border-radius: 8px;
  cursor: pointer;
  font: 800 11px/1.2 Manrope, Arial, sans-serif;
  text-align: center;
  text-decoration: none;
  transition: background .15s ease, border-color .15s ease, transform .15s ease;
}

.button:hover { transform: translateY(-1px); }
.button.primary { color: white; background: var(--brand); }
.button.primary:hover { background: var(--brand-dark); }
.button.secondary { min-height: 33px; padding: 7px 10px; border-color: #cad8d2; color: var(--ink); background: white; }
.button.secondary:hover { border-color: #95b8af; background: #f8fbfa; }

.form-panel { max-width: 930px; }
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.form-grid.compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.form-grid .wide { grid-column: 1 / -1; }

.form-grid label,
.stack label {
  display: grid;
  gap: 6px;
  color: #344b4c;
  font-size: 11px;
  font-weight: 800;
}

.form-help {
  align-self: end;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.55;
}

.form-help strong { color: var(--ink); }

input,
select,
textarea {
  width: 100%;
  border: 1px solid #cbd9d4;
  border-radius: 8px;
  outline: none;
  color: var(--ink);
  background: white;
  font: inherit;
  font-size: 12px;
}

input,
select { min-height: 39px; padding: 8px 10px; }
textarea { min-height: 86px; padding: 10px; resize: vertical; }
input:focus,
select:focus,
textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px rgba(22, 113, 116, .12); }

.stack { display: grid; gap: 14px; margin-top: 22px; }
.stack.compact { width: 205px; gap: 7px; margin: 0; }
.stack.compact input,
.stack.compact select { min-height: 33px; padding: 6px 8px; font-size: 11px; }
.stack.compact textarea { min-height: 62px; font-size: 11px; }

.controls-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.control-card { display: flex; flex-direction: column; min-height: 270px; }
.control-card > p { min-height: 38px; margin: 0 0 14px; color: var(--muted); font-size: 12px; }

.control-card dl { margin: auto 0 16px; border-top: 1px solid var(--line); }
.control-card dl div,
.control-mini {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 9px 0;
  border-bottom: 1px solid var(--line);
  font-size: 11px;
}

.control-card dt { color: var(--muted); }
.control-card dd { margin: 0; text-align: right; }
.control-guidance,
.control-observation { margin: 0 0 12px; padding: 11px 0; border-top: 1px solid var(--line); font-size: 11px; }
.control-guidance p,
.control-observation p { margin: 3px 0 8px; color: var(--muted); }
.control-observation { display: grid; gap: 4px; }
.control-observation small { color: var(--muted); }

.journey-panel { max-width: 1160px; }
.journey-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 10px;
}

.journey-step {
  display: flex;
  min-height: 176px;
  flex-direction: column;
  justify-content: space-between;
  gap: 15px;
  padding: 16px;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}

.journey-step:nth-child(3n) { border-right: 0; }
.journey-step:nth-last-child(-n+3) { border-bottom: 0; }
.journey-step.review { background: #fffdf7; }
.journey-step.not_assessed { background: #fbfcfb; }
.journey-step h3 { margin: 10px 0 5px; font-size: 13px; letter-spacing: -.02em; }
.journey-step p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.journey-step a { font-size: 11px; font-weight: 800; text-decoration: none; }

table { width: 100%; border-collapse: collapse; font-size: 11px; }
th {
  padding: 0 9px 10px;
  color: var(--muted);
  font: 500 9px/1.2 'DM Mono', monospace;
  letter-spacing: .07em;
  text-align: left;
  text-transform: uppercase;
}

td { padding: 12px 9px; border-top: 1px solid var(--line); vertical-align: top; }
td strong { font-size: 12px; }
td .muted { font-size: 10px; }

.panel > table { margin: 0 -4px; width: calc(100% + 8px); }
.empty { margin: 0; padding: 15px 0 4px; color: var(--muted); font-size: 12px; }
.danger { margin: 14px 0; padding: 10px 12px; border-radius: 8px; color: var(--rose-ink); background: var(--rose); font-size: 12px; }

.inline-form { display: flex; flex-direction: column; gap: 7px; }
.page-header > .inline-form { flex-direction: row; flex-wrap: wrap; justify-content: flex-end; max-width: 500px; }
.page-header > .inline-form form { margin: 0; }

.report-fact { display: flex; justify-content: space-between; gap: 16px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 11px; }
.report-fact > span:first-child { color: var(--muted); }
.report-fact strong { color: var(--ink); font-size: 15px; }
.report-disclaimer { margin-top: 18px; }

.score-panel { overflow: hidden; }
.score-number { color: var(--brand); font-size: 31px; letter-spacing: -.07em; }
.score-bar { height: 10px; overflow: hidden; border-radius: 999px; background: #e6eeeb; }
.score-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--brand), #56a58c); transition: width .25s ease; }
.score-key { display: flex; flex-wrap: wrap; gap: 8px 22px; padding: 14px 0 5px; color: var(--muted); font-size: 11px; }
.score-key strong { color: var(--ink); }
.score-priorities { display: flex; flex-wrap: wrap; align-items: center; gap: 7px 10px; margin-top: 16px; padding-top: 15px; border-top: 1px solid var(--line); font-size: 11px; }
.score-priorities > strong { margin-right: 4px; }
.score-priorities a { display: inline-flex; gap: 6px; align-items: center; padding: 5px 8px; border-radius: 6px; color: var(--ink); background: var(--slate); font-weight: 700; text-decoration: none; }
.score-priorities a span { color: var(--muted); font-family: 'DM Mono', monospace; font-size: 10px; }
.assessment-list { padding-top: 4px; padding-bottom: 4px; }
.assessment-item { scroll-margin-top: 24px; }
.item-heading { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
.assessment-signals { display: flex; flex-wrap: wrap; gap: 7px; margin: 12px 0 8px; }
.assessment-signals span { padding: 4px 7px; border-radius: 5px; color: var(--muted); background: var(--slate); font: 500 10px/1.2 'DM Mono', monospace; }
.assessment-signals strong { color: var(--ink); }
.assessment-item label { color: var(--muted); font-size: 10px; font-weight: 700; }

.assessment-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 270px;
  gap: 22px;
  padding: 23px 0;
  border-top: 1px solid var(--line);
  scroll-margin-top: 24px;
}
.assessment-card:first-of-type { border-top: 0; }
.assessment-card h3 { margin: 0; font-size: 17px; letter-spacing: -.03em; line-height: 1.25; }
.assessment-prompt { margin: 10px 0 14px; color: var(--muted); font-size: 12px; }
.draft-box { padding: 13px 14px; border-radius: 9px; background: #f3f8f6; }
.draft-box .eyebrow { margin-bottom: 7px; }
.draft-box > p:last-child { margin: 0; color: #29474a; font-size: 12px; line-height: 1.6; }
.quick-fix { margin: 0 0 12px; padding: 11px 13px; border-left: 3px solid #d69b21; border-radius: 0 8px 8px 0; background: #fffaf0; }
.quick-fix strong { color: #62490f; font-size: 11px; }
.quick-fix p { margin: 3px 0 0; color: #725e30; font-size: 11px; line-height: 1.5; }
.review-request { display: grid; grid-template-columns: minmax(0, 1fr) auto; column-gap: 14px; margin-top: 12px; padding: 12px 0 0; border-top: 1px solid var(--line); }
.review-request strong { font-size: 12px; }
.review-request p { grid-column: 1 / -1; margin: 3px 0 6px; color: var(--muted); font-size: 11px; line-height: 1.5; }
.review-request a { color: var(--brand-dark); font-size: 11px; font-weight: 800; text-decoration: none; }
.assessment-detail { margin-top: 13px; color: var(--muted); font-size: 11px; }
.assessment-detail summary { color: var(--brand-dark); cursor: pointer; font-weight: 800; }
.assessment-detail > p { margin: 8px 0 0; line-height: 1.5; }
.assessment-detail strong { color: var(--ink); }
.assessment-review { display: grid; align-content: start; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: 10px; background: #fbfdfc; }
.assessment-review label { display: grid; gap: 6px; color: #344b4c; font-size: 10px; font-weight: 800; }
.assessment-review textarea { min-height: 132px; font-size: 11px; line-height: 1.5; }
.assessment-review input { font-size: 11px; }
.assessment-review.read-only { display: block; }
.assessment-review.read-only p { margin: 9px 0 0; font-size: 11px; }

.policy-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.policy-grid .panel { margin: 0; }
.policy-card { display: flex; min-height: 254px; flex-direction: column; }
.policy-card h2 { margin: 0 0 9px; font-size: 16px; letter-spacing: -.03em; line-height: 1.28; }
.policy-card > p:not(.eyebrow) { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }
.policy-card ul { margin: 14px 0 18px; padding-left: 17px; color: #496162; font-size: 11px; line-height: 1.7; }
.policy-card .button { margin-top: auto; }

.confirmation-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.confirmation-grid .panel { margin: 0; }
.confirmation-card { display: flex; min-height: 330px; flex-direction: column; }
.confirmation-card .panel-heading { margin-bottom: 10px; }
.confirmation-card h2 { margin: 0; font-size: 16px; letter-spacing: -.03em; line-height: 1.28; }
.confirmation-question { margin: 0 0 5px; color: var(--ink); font-size: 12px; font-weight: 700; line-height: 1.55; }
.confirmation-card > .muted { font-size: 11px; line-height: 1.55; }
.confirmation-form { margin-top: auto; }
.confirmation-form textarea { min-height: 66px; }
.confirmation-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.confirmation-actions a { font-size: 11px; font-weight: 800; }
.confirmation-note { margin: auto 0 0; padding-top: 14px; color: var(--muted); font-size: 11px; }

.assessment-pack-link { display: flex; align-items: center; justify-content: space-between; gap: 18px; }
.assessment-pack-link h2 { margin: 0 0 4px; font-size: 16px; letter-spacing: -.03em; }
.remediation-panel { max-width: 1050px; }
.remediation-row { display: grid; grid-template-columns: 8px minmax(0, 1fr) auto; align-items: start; gap: 13px; padding: 14px 0; border-top: 1px solid var(--line); }
.remediation-row:first-of-type { border-top: 0; }
.remediation-row strong { display: block; font-size: 12px; }
.remediation-row p { margin: 3px 0 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.remediation-controls { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; max-width: 255px; }
.remediation-controls form { margin: 0; }
.pack-item { padding: 17px 0; border-top: 1px solid var(--line); break-inside: avoid; }
.pack-item:first-of-type { border-top: 0; }
.pack-item h3 { margin: 0; font-size: 16px; letter-spacing: -.03em; }
.pack-draft { margin: 11px 0 8px; padding: 11px 13px; border-radius: 8px; background: #f3f8f6; color: #29474a; font-size: 12px; line-height: 1.55; }
.pack-item > .muted { margin: 5px 0 0; font-size: 11px; line-height: 1.5; }
.pack-confirmations { margin-top: 10px; padding: 10px 12px; border-radius: 8px; background: #fbfdfc; font-size: 11px; }
.pack-confirmations > strong { font-size: 11px; }
.pack-confirmations p { display: flex; align-items: center; gap: 7px; margin: 6px 0 0; color: var(--muted); }

.source-coverage-panel { max-width: 1160px; }
.source-coverage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid var(--line); border-radius: 10px; }
.source-coverage-card { display: flex; min-height: 157px; flex-direction: column; justify-content: space-between; gap: 13px; padding: 15px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.source-coverage-card:nth-child(3n) { border-right: 0; }
.source-coverage-card:nth-last-child(-n+3) { border-bottom: 0; }
.source-coverage-card.review { background: #fffdf7; }
.source-coverage-card.open { background: #fffaf8; }
.source-coverage-card h3 { margin: 9px 0 4px; font-size: 13px; letter-spacing: -.02em; }
.source-coverage-card p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.5; }
.source-coverage-card a { color: var(--brand-dark); font-size: 11px; font-weight: 800; text-decoration: none; }

.guide-list { display: grid; gap: 12px; max-width: 1030px; }
.guide-list .panel { margin: 0; }
.guide-step { display: grid; grid-template-columns: 36px minmax(0, 1fr) auto; align-items: center; gap: 17px; padding: 17px 19px; }
.guide-step.review { background: #fffdf7; }
.guide-step.open { background: #fffaf8; }
.guide-number { display: grid; width: 32px; height: 32px; place-items: center; border-radius: 50%; color: var(--brand-dark); background: var(--brand-pale); font: 500 12px/1 'DM Mono', monospace; }
.guide-step.done .guide-number { color: var(--mint-ink); background: var(--mint); }
.guide-step h2 { margin: 7px 0 3px; font-size: 15px; letter-spacing: -.03em; }
.guide-step p { margin: 0; color: var(--muted); font-size: 11px; line-height: 1.55; }

.login-body {
  display: grid;
  min-height: 100vh;
  place-items: center;
  background: radial-gradient(circle at 10% 10%, #d9eee8, transparent 35%), linear-gradient(145deg, #edf5f2, #f7f8f5 60%);
}

.login-card {
  width: min(440px, calc(100vw - 36px));
  padding: 42px;
  border: 1px solid var(--line);
  border-radius: 17px;
  background: white;
  box-shadow: 0 20px 60px rgba(20, 57, 53, .14);
}

.login-card .brand { margin-bottom: 34px; color: var(--brand); }
.login-card h1 { margin: 5px 0 12px; font-size: 31px; letter-spacing: -.05em; line-height: 1.15; }

@media (max-width: 1050px) {
  .main { padding: 36px 32px 60px; }
  .metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .form-grid.compact { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 820px) {
  .sidebar { position: static; width: auto; min-height: 0; padding: 14px 18px; overflow: visible; }
  .workspace-name,
  .side-bottom { display: none; }
  .sidebar nav { display: flex; gap: 4px; margin: 12px -5px -2px; overflow-x: auto; }
  .sidebar nav a { flex: 0 0 auto; padding: 8px 10px; white-space: nowrap; }
  .nav-label { display: none; }
  .main { margin-left: 0; padding: 27px 19px 48px; }
  .page-header { flex-direction: column; gap: 15px; }
  .page-header > .inline-form { justify-content: flex-start; }
  .item-heading { align-items: flex-start; }
  .two-col,
  .controls-grid,
  .policy-grid,
  .confirmation-grid,
  .source-coverage-grid { grid-template-columns: 1fr; }
  .form-grid,
  .form-grid.compact { grid-template-columns: 1fr; }
  .stack.compact { width: auto; }
  .full { grid-template-columns: 8px minmax(0, 1fr); }
  .full > form,
  .full > .status { grid-column: 2; }
  .journey-grid { grid-template-columns: 1fr; }
  .journey-step,
  .journey-step:nth-child(3n) { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .journey-step:last-child { border-bottom: 0; }
  .assessment-card { grid-template-columns: 1fr; gap: 14px; }
  .assessment-pack-link { align-items: flex-start; flex-direction: column; }
  .remediation-row { grid-template-columns: 8px minmax(0, 1fr); }
  .remediation-controls,
  .remediation-row > .status { grid-column: 2; justify-content: flex-start; max-width: none; }
  .source-coverage-card,
  .source-coverage-card:nth-child(3n) { min-height: 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .source-coverage-card:last-child { border-bottom: 0; }
  .guide-step { grid-template-columns: 36px minmax(0, 1fr); }
  .guide-step .button { grid-column: 2; justify-self: start; }
  .main table { display: block; overflow-x: auto; white-space: nowrap; }
  td { white-space: normal; }
}

@media print {
  body { background: white; font-size: 11px; }
  .sidebar,
  .print-button { display: none; }
  .main { max-width: none; margin: 0; padding: 0; }
  .page-header { max-width: none; margin-bottom: 18px; }
  .page-header h1 { font-size: 27px; }
  .panel,
  .metrics article { box-shadow: none; break-inside: avoid; }
  .metrics,
  .report-grid { gap: 10px; }
  .report-metrics { margin-bottom: 16px; }
  .notice { break-inside: avoid; }
  a { color: inherit; text-decoration: none; }
}
