/*
 * Data Security Platform — Design Token System
 * ================================================
 * THEME 03 — Sapphire Gold (DEFAULT)
 *   Nav/header:       #0A2E5C  deep royal blue
 *   Gold accent:      #FFC533  vivid G1 gold
 *   Page background:  #F4F7FC  cool ivory
 *   Panel/card:       #FFFFFF  white
 *   Text primary:     #1A2340
 *   Text secondary:   #3D4E6B
 *   Border:           #CBD5E1
 *   Success:          #1E6B45
 *   Caution:          #8A5A00
 *   Danger:           #7A1F2B
 *
 * THEME 04 — Obsidian Copper (HIGH-CONTRAST ALTERNATE)
 *   Nav/header:       #0F1117  near-black graphite
 *   Copper accent:    #E8720C  vivid burnt copper
 *   Page background:  #F0F2F5  cool neutral grey
 *   Panel/card:       #FFFFFF  white
 *   Text primary:     #0D0F14  almost black
 *   Text secondary:   #3C4255  cool slate
 *   Border:           #C4C9D6  blue-grey
 *
 * DO NOT MODIFY TOKEN VALUES WITHOUT USER APPROVAL
 */

/* ─── Reset ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { font-size: 16px; scroll-behavior: smooth; }

/* ─── Theme 03 — Sapphire Gold (default) ────────────── */
:root,
[data-theme="sapphire"] {
  --nav-bg:         #512888;
  --nav-text:       #FFFFFF;
  --nav-border:     #00A3AD;
  --accent:         #00A3AD;
  --accent-dark:    #007A82;
  --accent-text:    #FFFFFF;
  --page-bg:        #F4F7FC;
  --panel-bg:       #FFFFFF;
  --panel-alt:      #EEF4FA;
  --text-primary:   #1A1A2E;
  --text-secondary: #3D3A5C;
  --border:         #CBD5E1;
  --success:        #1E6B45;
  --caution:        #8A5A00;
  --danger:         #7A1F2B;
  --tag-public:     #1E6B45;
  --tag-internal:   #0F4C81;
  --tag-secure:     #5B4A8A;
  --tag-conf:       #8A5A00;
  --tag-ac:         #7A1F2B;
  --tag-restrict:   #2C2F3A;
  --shadow-sm:      0 1px 4px rgba(81,40,136,.12);
  --shadow-md:      0 3px 12px rgba(81,40,136,.16);
  --radius:         6px;
  --radius-lg:      10px;
  --font-stack:     'Calibri', 'Segoe UI', Arial, sans-serif;
  --transition:     .18s ease;
}

/* ─── Theme 04 — Obsidian Copper (alternate) ─────────── */
[data-theme="slate"] {
  --nav-bg:         #0F1117;
  --nav-text:       #FFFFFF;
  --nav-border:     #00A3AD;
  --accent:         #00A3AD;
  --accent-dark:    #007A82;
  --accent-text:    #FFFFFF;
  --page-bg:        #F0F2F5;
  --panel-bg:       #FFFFFF;
  --panel-alt:      #E6E9F0;
  --text-primary:   #0D0F14;
  --text-secondary: #3C4255;
  --border:         #C4C9D6;
  --success:        #0A6133;
  --caution:        #764500;
  --danger:         #8B1A1A;
  --tag-public:     #0A6133;
  --tag-internal:   #1A3F7A;
  --tag-secure:     #42307A;
  --tag-conf:       #764500;
  --tag-ac:         #8B1A1A;
  --tag-restrict:   #0F1117;
  --shadow-sm:      0 1px 4px rgba(0,0,0,.14);
  --shadow-md:      0 3px 14px rgba(0,0,0,.22);
  --font-stack:     'Calibri', 'Segoe UI', Arial, sans-serif;
  --transition:     .18s ease;
  --radius:         6px;
  --radius-lg:      10px;
}

/* ─── Base ───────────────────────────────────────────── */
body {
  font-family: var(--font-stack);
  background: var(--page-bg);
  color: var(--text-primary);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
a { color: var(--nav-bg); text-decoration: none; }
a:hover { text-decoration: underline; }

/* ─── Navigation ─────────────────────────────────────── */
.g1-nav {
  background: var(--nav-bg);
  border-bottom: 3px solid var(--nav-border);
  position: sticky;
  top: 0;
  z-index: 200;
  box-shadow: 0 2px 8px rgba(0,0,0,.25);
}
.g1-nav__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
  display: flex;
  align-items: center;
  gap: 0;
  height: 56px;
}
.g1-nav__logo {
  height: 36px;
  width: auto;
  max-width: 180px;
  margin-right: 20px;
  flex-shrink: 0;
  object-fit: contain;
  background: white;
  padding: 3px 8px;
  border-radius: 3px;
}
.g1-nav__links {
  display: flex;
  list-style: none;
  gap: 2px;
  flex: 1;
}
.g1-nav__links a {
  display: block;
  padding: 6px 14px;
  color: var(--nav-text);
  font-size: .9rem;
  font-weight: 500;
  border-radius: var(--radius);
  transition: background var(--transition);
  opacity: .85;
}
.g1-nav__links a:hover,
.g1-nav__links a.active {
  background: rgba(255,255,255,.15);
  opacity: 1;
  text-decoration: none;
}
.g1-nav__links a.active {
  border-bottom: 2px solid var(--accent);
  border-radius: 0;
}
.g1-nav__controls {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-left: auto;
}
.g1-nav-btn {
  background: rgba(255,255,255,.1);
  border: 1px solid rgba(255,255,255,.2);
  color: var(--nav-text);
  padding: 5px 12px;
  border-radius: var(--radius);
  font-size: .85rem;
  font-weight: 600;
  cursor: pointer;
  transition: background var(--transition);
  white-space: nowrap;
}
.g1-nav-btn:hover { background: rgba(255,255,255,.22); }
.g1-nav-btn.gold {
  background: var(--accent);
  color: var(--accent-text);
  border-color: var(--accent);
}
.g1-nav-btn.gold:hover { background: var(--accent-dark); border-color: var(--accent-dark); }

/* Version badge — static, no interaction */
.g1-nav__version {
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .06em;
  color: rgba(255,255,255,.45);
  white-space: nowrap;
  padding: 0 4px;
  border-left: 1px solid rgba(255,255,255,.15);
  margin-left: 4px;
  user-select: none;
  pointer-events: none;
}
@media print { .g1-nav__version { display: none; } }

/* ── Nav dropdown groups ───────────────────────────────────────────────────── */
.g1-nav__links li.g1-nav-group {
  position: relative;
  display: flex;            /* keep flex context consistent across Edge/Chrome/FF */
  align-items: stretch;
}

/* Trigger button — <button> gives Edge reliable click + focus events */
.g1-nav-group__trigger {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-align: center;
  align-items: center;
  gap: 5px;
  padding: 6px 14px;
  background: transparent;
  border: none;
  color: var(--nav-text);
  font-size: .9rem;
  font-weight: 500;
  font-family: inherit;
  border-radius: var(--radius);
  cursor: pointer;
  opacity: .85;
  -webkit-user-select: none;
  -ms-user-select: none;
  user-select: none;
  white-space: nowrap;
  -webkit-transition: background var(--transition);
  transition: background var(--transition);
  line-height: 1;
  /* remove default button outline; restore via focus-visible */
  outline: none;
}
.g1-nav-group__trigger:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}
.g1-nav-group__trigger:hover {
  background: rgba(255,255,255,.15);
  opacity: 1;
}
.g1-nav-group.open .g1-nav-group__trigger {
  background: rgba(255,255,255,.15);
  opacity: 1;
}
.g1-nav-group__trigger.has-active {
  border-bottom: 2px solid var(--accent);
  border-radius: 0;
  opacity: 1;
}

/* Caret — CSS triangle, no character rendering quirks */
.g1-nav-group__caret {
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  opacity: .7;
  -webkit-transition: -webkit-transform .18s ease;
  transition: transform .18s ease;
  flex-shrink: 0;
  margin-top: 1px;
}
.g1-nav-group.open .g1-nav-group__caret {
  -webkit-transform: rotate(180deg);
  -ms-transform: rotate(180deg);
  transform: rotate(180deg);
}

/* Dropdown panel */
.g1-nav-group__dropdown {
  /* visibility+opacity instead of display:none — Edge renders positioned
     elements more reliably; JS still controls .open class */
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 190px;
  background: var(--nav-bg);
  border: 1px solid rgba(255,255,255,.15);
  border-top: 3px solid var(--accent);
  -webkit-box-shadow: 0 8px 24px rgba(0,0,0,.4);
  box-shadow: 0 8px 24px rgba(0,0,0,.4);
  z-index: 9999;
  padding: 6px 0;
  margin-top: 0;
  /* smooth fade */
  -webkit-transition: opacity .15s ease, visibility .15s ease;
  transition: opacity .15s ease, visibility .15s ease;
}
.g1-nav-group.open > .g1-nav-group__dropdown {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}

.g1-nav-group__dropdown a {
  display: block;
  padding: 9px 18px;
  color: var(--nav-text);
  font-size: .85rem;
  font-weight: 500;
  opacity: .85;
  white-space: nowrap;
  -webkit-transition: background var(--transition);
  transition: background var(--transition);
  text-decoration: none;
  border-left: 3px solid transparent;
}
.g1-nav-group__dropdown a:hover {
  background: rgba(255,255,255,.12);
  opacity: 1;
  text-decoration: none;
}
.g1-nav-group__dropdown a.active {
  background: rgba(255,255,255,.12);
  border-left-color: var(--accent);
  padding-left: 15px;
  opacity: 1;
}
.g1-nav-group__dropdown hr {
  border: none;
  border-top: 1px solid rgba(255,255,255,.1);
  margin: 4px 0;
}

/* ── Nav sub-menu (3rd level flyout) ─────────────────────────────────────── */
/* Items that have a sub-menu get .g1-nav-sub wrapper */
.g1-nav-sub {
  position: relative;
}
.g1-nav-sub > a {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
/* Right-pointing caret for sub-items */
.g1-nav-sub__caret {
  width: 0;
  height: 0;
  border-top: 4px solid transparent;
  border-bottom: 4px solid transparent;
  border-left: 5px solid currentColor;
  opacity: .65;
  flex-shrink: 0;
  transition: opacity .15s;
}
.g1-nav-sub:hover .g1-nav-sub__caret,
.g1-nav-sub.open .g1-nav-sub__caret { opacity: 1; }

/* Sub-panel */
.g1-nav-sub__panel {
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  position: absolute;
  top: 0;             /* JS will nudge upward if panel overflows viewport */
  left: 100%;
  min-width: 190px;
  max-height: calc(100vh - 72px); /* never taller than viewport minus nav bar */
  overflow-y: auto;
  overflow-x: hidden;
  background: var(--nav-bg);
  border: 1px solid rgba(255,255,255,.15);
  border-top: 3px solid var(--accent);
  box-shadow: 6px 8px 24px rgba(0,0,0,.45);
  z-index: 10000;
  padding: 6px 0;
  transition: opacity .14s ease, visibility .14s ease;
  /* Slim custom scrollbar */
  scrollbar-width: thin;
  scrollbar-color: rgba(255,197,51,.5) rgba(255,255,255,.08);
}
.g1-nav-sub__panel::-webkit-scrollbar { width: 5px; }
.g1-nav-sub__panel::-webkit-scrollbar-track { background: rgba(255,255,255,.06); }
.g1-nav-sub__panel::-webkit-scrollbar-thumb { background: rgba(255,197,51,.45); border-radius: 3px; }
.g1-nav-sub:hover > .g1-nav-sub__panel,
.g1-nav-sub.open  > .g1-nav-sub__panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
}
.g1-nav-sub__panel a {
  display: block;
  padding: 9px 18px;
  color: var(--nav-text);
  font-size: .83rem;
  font-weight: 500;
  opacity: .85;
  white-space: nowrap;
  transition: background var(--transition);
  text-decoration: none;
  border-left: 3px solid transparent;
}
.g1-nav-sub__panel a:hover {
  background: rgba(255,255,255,.12);
  opacity: 1;
  text-decoration: none;
}
.g1-nav-sub__panel a.active {
  background: rgba(255,255,255,.12);
  border-left-color: var(--accent);
  padding-left: 15px;
  opacity: 1;
}

/* ── Nav category label (section header inside dropdown) ─────────────────── */
.g1-nav-group__category {
  font-size: .58rem;
  font-weight: 700;
  letter-spacing: 1.8px;
  text-transform: uppercase;
  color: var(--accent);
  padding: 10px 18px 4px;
  opacity: 1;
  pointer-events: none;
  white-space: nowrap;
}

/* ─── Page header ────────────────────────────────────── */
.g1-page-header {
  background: var(--nav-bg);
  color: var(--nav-text);
  padding: 32px 20px 28px;
}
.g1-page-header__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.g1-page-header__label {
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--accent);
  margin-bottom: 6px;
}
.g1-page-header h1 {
  font-size: 1.9rem;
  font-weight: 700;
  margin-bottom: 6px;
}
.g1-page-header__sub {
  font-size: 1rem;
  opacity: .8;
}

/* ─── Main content ───────────────────────────────────── */
.g1-main {
  max-width: 1200px;
  margin: 0 auto;
  padding: 32px 20px 60px;
}

/* ─── Section headings ───────────────────────────────── */
.g1-section { margin-bottom: 40px; }
.g1-section-title {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--nav-bg);
  border-bottom: 2px solid var(--accent);
  padding-bottom: 6px;
  margin-bottom: 16px;
}

/* ─── Cards ──────────────────────────────────────────── */
.g1-grid {
  display: grid;
  gap: 16px;
}
.g1-grid--2 { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
.g1-grid--3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
.g1-grid--4 { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }

.g1-card {
  background: var(--panel-bg);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 20px;
  box-shadow: var(--shadow-sm);
  transition: box-shadow var(--transition), transform var(--transition);
  position: relative;
}
.g1-card:hover {
  box-shadow: var(--shadow-md);
  transform: translateY(-2px);
}
.g1-card--link {
  cursor: pointer;
  text-decoration: none;
  color: inherit;
  display: block;
}
.g1-card--link:hover { text-decoration: none; }
.g1-card__icon {
  font-size: 1.6rem;
  margin-bottom: 10px;
  display: block;
}
.g1-card__title {
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 6px;
  color: var(--text-primary);
}
.g1-card__desc {
  font-size: .88rem;
  color: var(--text-secondary);
  line-height: 1.5;
}
.g1-card__arrow {
  position: absolute;
  top: 18px;
  right: 18px;
  font-size: .9rem;
  color: var(--accent-dark);
  opacity: .6;
}
.g1-card--link:hover .g1-card__arrow { opacity: 1; }

/* Card accent variants */
.g1-card--accent { border-left: 4px solid var(--accent); }
.g1-card--success { border-left: 4px solid var(--success); }
.g1-card--caution { border-left: 4px solid var(--caution); }
.g1-card--danger  { border-left: 4px solid var(--danger); }
.g1-card--info    { border-left: 4px solid var(--tag-internal); }

/* ─── Category header ────────────────────────────────── */
.g1-category {
  margin-bottom: 8px;
  margin-top: 32px;
}
.g1-category:first-of-type { margin-top: 0; }
.g1-category__label {
  font-size: .72rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--text-secondary);
  border-left: 3px solid var(--accent);
  padding-left: 8px;
  margin-bottom: 12px;
}

/* ─── Start-here row ─────────────────────────────────── */
.g1-start-row {
  background: var(--panel-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius-lg);
  padding: 16px 20px;
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 28px;
  flex-wrap: wrap;
}
.g1-start-row__label {
  font-weight: 700;
  font-size: .9rem;
  white-space: nowrap;
}
.g1-start-row__links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.g1-start-row__links a {
  background: var(--nav-bg);
  color: #fff;
  padding: 5px 14px;
  border-radius: 20px;
  font-size: .85rem;
  font-weight: 600;
  transition: background var(--transition);
}
.g1-start-row__links a:hover {
  background: var(--accent-dark);
  text-decoration: none;
  color: var(--accent-text);
}

/* ─── Export help note ───────────────────────────────── */
.g1-export-note {
  background: var(--panel-alt);
  border: 1px solid var(--border);
  border-radius: var(--radius);
  padding: 12px 16px;
  font-size: .85rem;
  color: var(--text-secondary);
  margin-bottom: 24px;
}
.g1-export-note strong { color: var(--text-primary); }

/* ─── Tables ─────────────────────────────────────────── */
.g1-table-wrap { overflow-x: auto; margin: 16px 0; }
.g1-table {
  width: 100%;
  border-collapse: collapse;
  font-size: .9rem;
}
.g1-table th {
  background: var(--nav-bg);
  color: var(--nav-text);
  padding: 10px 14px;
  text-align: left;
  font-weight: 600;
  font-size: .85rem;
}
.g1-table td {
  padding: 9px 14px;
  border-bottom: 1px solid var(--border);
  vertical-align: top;
}
.g1-table tr:nth-child(even) td { background: var(--panel-alt); }
.g1-table tr:hover td { background: var(--panel-alt); }

/* ─── Label tags ─────────────────────────────────────── */
.g1-label {
  display: inline-block;
  padding: 3px 10px;
  border-radius: 20px;
  font-size: .78rem;
  font-weight: 700;
  letter-spacing: .03em;
  color: #fff;
  white-space: nowrap;
}
.g1-label--public     { background: var(--tag-public); }
.g1-label--secure     { background: var(--tag-secure); }
.g1-label--internal   { background: var(--tag-internal); }
.g1-label--conf       { background: var(--tag-conf); }
.g1-label--ac         { background: var(--tag-ac); }
.g1-label--restrict   { background: var(--tag-restrict); }

/* ─── Accordion ──────────────────────────────────────── */
.g1-accordion { border: 1px solid var(--border); border-radius: var(--radius-lg); overflow: hidden; margin-bottom: 12px; }
.g1-accordion__trigger {
  width: 100%;
  background: var(--panel-bg);
  border: none;
  padding: 14px 18px;
  text-align: left;
  font-size: .95rem;
  font-weight: 600;
  cursor: pointer;
  display: flex;
  justify-content: space-between;
  align-items: center;
  color: var(--text-primary);
  transition: background var(--transition);
}
.g1-accordion__trigger:hover { background: var(--panel-alt); }
.g1-accordion__trigger::after { content: '▸'; font-size: .85rem; color: var(--accent-dark); transition: transform var(--transition); }
.g1-accordion__trigger[aria-expanded="true"]::after { transform: rotate(90deg); }
.g1-accordion__panel { display: none; padding: 16px 18px; background: var(--panel-alt); border-top: 1px solid var(--border); font-size: .9rem; color: var(--text-secondary); }
.g1-accordion__panel.open { display: block; }

/* ─── Info boxes ─────────────────────────────────────── */
.g1-callout {
  border-radius: var(--radius);
  padding: 14px 18px;
  margin: 14px 0;
  font-size: .9rem;
  line-height: 1.55;
}
.g1-callout--info    { background: #E8F0FB; border-left: 4px solid var(--tag-internal); color: #1A3060; }
.g1-callout--warning { background: #FFF5D9; border-left: 4px solid var(--caution); color: var(--caution); }
.g1-callout--danger  { background: #FDECEA; border-left: 4px solid var(--danger); color: var(--danger); }
.g1-callout--success { background: #E6F4EC; border-left: 4px solid var(--success); color: #1A4A2A; }
.g1-callout strong { font-weight: 700; }

/* ─── Prose ──────────────────────────────────────────── */
.g1-prose p { margin-bottom: 12px; font-size: .95rem; color: var(--text-secondary); }
.g1-prose ul, .g1-prose ol { padding-left: 22px; margin-bottom: 12px; font-size: .92rem; color: var(--text-secondary); }
.g1-prose li { margin-bottom: 5px; }
.g1-prose h3 { font-size: 1rem; font-weight: 700; color: var(--text-primary); margin: 16px 0 8px; }
.g1-prose strong { color: var(--text-primary); }


/* ─── Toast ──────────────────────────────────────────── */
.g1-toast {
  position: fixed;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%) translateY(16px);
  background: var(--nav-bg);
  color: #fff;
  padding: 10px 22px;
  border-radius: 24px;
  font-size: .88rem;
  font-weight: 600;
  z-index: 9999;
  opacity: 0;
  transition: opacity .25s, transform .25s;
  pointer-events: none;
  white-space: nowrap;
  box-shadow: 0 4px 16px rgba(0,0,0,.25);
}
.g1-toast.show { opacity: 1; transform: translateX(-50%) translateY(0); }

/* ─── Footer ─────────────────────────────────────────── */
.g1-footer {
  background: var(--nav-bg);
  color: rgba(255,255,255,.6);
  text-align: center;
  padding: 20px;
  font-size: .82rem;
  border-top: 3px solid var(--nav-border);
  margin-top: 40px;
}

/* ─── Responsive ─────────────────────────────────────── */
@media (max-width: 768px) {
  .g1-nav__links { display: none; }
  .g1-grid--3, .g1-grid--4 { grid-template-columns: 1fr 1fr; }
  .g1-page-header h1 { font-size: 1.4rem; }
}
@media (max-width: 480px) {
  .g1-grid--2, .g1-grid--3, .g1-grid--4 { grid-template-columns: 1fr; }
}

/* ─── Print / PDF infographic layout ────────────────────
 * When JS adds .printing-pdf to body:
 *   - screen content hides
 *   - .g1-print-view shows and prints as A4 infographic
 */
@media screen {
  .g1-print-view { display: none; }
}

body.printing-pdf .g1-nav,
body.printing-pdf .g1-page-header,
body.printing-pdf .g1-main,
body.printing-pdf .g1-footer { display: none !important; }

body.printing-pdf .g1-print-view { display: block !important; }

@media print {
  @page {
    size: A4 portrait;
    margin: 0;
  }
  html, body {
    margin: 0 !important;
    padding: 0 !important;
    background: #fff !important;
  }
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Hide every screen element — belt + suspenders */
  body > *:not(.g1-print-view) { display: none !important; }
  .g1-nav, .g1-page-header, .g1-main, .g1-footer,
  #g1-toast, #dsp-announcement { display: none !important; }
  .g1-print-view { display: block !important; }

  /* ── Grid → Flex for print pagination ──────────────────
     CSS Grid columns cannot split across page breaks.
     Flex wraps columns into rows that paginate naturally.  */
  .pv-row {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 10px !important;
    break-inside: auto !important;
    overflow: visible !important;
  }
  .pv-row > .pv-block {
    flex: 1 1 45% !important;
    min-width: 180px !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  /* 3-col rows: each block takes ~30% */
  .pv-row--3 > .pv-block {
    flex: 1 1 28% !important;
    min-width: 120px !important;
  }
  /* Inline 4-col override rows: each block ~22% */
  .pv-row[style*="grid-template-columns"] > .pv-block {
    flex: 1 1 22% !important;
    min-width: 100px !important;
  }

  /* Section titles — keep with following content */
  .pv-section-title {
    break-after: avoid !important;
    page-break-after: avoid !important;
  }

  /* Cover block — keep together on first page */
  .pv-cover {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  /* pv-body flows naturally — allow page breaks between rows */
  .pv-body {
    overflow: visible !important;
  }

  /* References — keep together */
  .pv-refs {
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }
}

/* Print view styles */
.g1-print-view {
  font-family: 'Calibri', 'Segoe UI', Arial, sans-serif;
  color: #1A2340;
  line-height: 1.5;
  background: #fff;
  /* Compensate for @page margin:0 — inner padding gives the 12/14mm breathing room */
  padding: 12mm 14mm;
  box-sizing: border-box;
}
.pv-cover {
  background: #0A2E5C;
  color: #fff;
  padding: 32px 36px 24px;
  border-bottom: 6px solid #FFC533;
}
.pv-cover__label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: #FFC533;
  margin-bottom: 6px;
}
.pv-cover h1 { font-size: 24px; font-weight: 700; margin-bottom: 4px; }
.pv-cover__sub { font-size: 13px; opacity: .8; }
.pv-body { padding: 24px 36px; }
.pv-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 16px; }
.pv-row--3 { grid-template-columns: 1fr 1fr 1fr; }
.pv-block {
  background: #F4F7FC;
  border-left: 4px solid #0A2E5C;
  border-radius: 4px;
  padding: 12px 14px;
}
.pv-block--gold { border-left-color: #FFC533; }
.pv-block--green { border-left-color: #1E6B45; }
.pv-block--red   { border-left-color: #7A1F2B; }
.pv-block h3 { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: #0A2E5C; margin-bottom: 6px; }
.pv-block p, .pv-block li { font-size: 10.5px; color: #3D4E6B; margin-bottom: 3px; }
.pv-block ul { padding-left: 14px; }
.pv-section-title {
  font-size: 13px;
  font-weight: 700;
  color: #0A2E5C;
  border-bottom: 2px solid #FFC533;
  padding-bottom: 4px;
  margin: 20px 0 10px;
}
.pv-refs {
  margin-top: 20px;
  padding-top: 12px;
  border-top: 1px solid #CBD5E1;
  font-size: 9.5px;
  color: #6B7A9A;
}
.pv-refs a { color: #0A2E5C; }
.pv-label-tag {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 12px;
  font-size: 9px;
  font-weight: 700;
  color: #fff;
  margin-right: 4px;
  margin-bottom: 4px;
}
