/* TH Brandenburg Corporate Design Integration */
:root{
  /* TH Brandenburg Farben */
  --th-blue:#004A99;
  --th-blue-light:#0066CC;
  --th-blue-dark:#003366;
  --th-accent:#E30613;
  --th-gray:#4A4A4A;
  --th-gray-light:#F5F5F5;
  --th-gray-medium:#E0E0E0;
  
  /* Angepasste Dashboard-Farben mit TH Brandenburg Identität */
  --background:#FFFFFF;
  --foreground:#1A1A1A;
  --muted:#F7F9FC;
  --muted-foreground:#5A5A5A;
  --accent:var(--th-blue);
  --accent-secondary:var(--th-blue-light);
  --accent-muted:rgba(0,74,153,0.08);
  --accent-light:rgba(0,74,153,0.15);
  --border:#D9E2EC;
  --border-hover:#B8C5D3;
  --card:#FFFFFF;
  --company:#1E40AF;
  --company-light:rgba(30,64,175,0.1);
  
  /* Typografie - Professionell & Akademisch */
  --font-display:"Roboto Slab",Georgia,serif;
  --font-body:"Open Sans","Source Sans 3",system-ui,sans-serif;
  --font-mono:"Roboto Mono","IBM Plex Mono",monospace;
  
  /* Schatten und Abstände */
  --shadow-sm:0 1px 3px rgba(0,0,0,0.08);
  --shadow-md:0 4px 16px rgba(0,74,153,0.12);
  --shadow-lg:0 8px 24px rgba(0,74,153,0.15);
  --section-padding:clamp(3rem,6vw,5rem);
  
  /* TH Brandenburg spezifisch */
  --th-header-height:80px;
  --th-border-radius:4px;
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);font-size:16px;line-height:1.7;color:var(--foreground);background:var(--background);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;padding-top:var(--th-header-height)}
body::before{content:'';position:fixed;inset:0;pointer-events:none;opacity:0.015;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 400 400' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");z-index:9999}
/* TH Brandenburg Accessibility Improvements */
a:focus,button:focus,select:focus{outline:2px solid var(--th-blue);outline-offset:2px}
a:focus:not(:focus-visible),button:focus:not(:focus-visible),select:focus:not(:focus-visible){outline:none}
/* TH Brandenburg Typography */
h1,h2,h3{font-family:var(--font-display);font-weight:700;line-height:1.2;color:var(--th-blue-dark)}
h1{font-size:clamp(2.25rem,4.5vw,3.75rem);letter-spacing:-0.02em}
h2{font-size:clamp(1.75rem,3vw,2.25rem);letter-spacing:-0.01em}
h3{font-size:1.25rem;font-weight:700}
.small-caps{font-family:var(--font-body);font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:var(--th-blue-dark)}
.hero__badge .small-caps{font-family:var(--font-body);font-size:0.75rem;font-weight:700;letter-spacing:0.1em;text-transform:uppercase;color:white}
.container{width:100%;max-width:80rem;margin:0 auto;padding:0 clamp(1rem,3vw,2rem)}
/* TH Brandenburg Header */
.header{position:fixed;top:0;left:0;right:0;z-index:100;background:#FFFFFF;border-bottom:3px solid var(--th-blue);box-shadow:0 2px 8px rgba(0,0,0,0.08)}
.header__inner{display:flex;align-items:center;justify-content:space-between;height:var(--th-header-height);gap:1.5rem}
.header__logo{display:flex;align-items:center;gap:1rem;text-decoration:none;color:var(--th-blue);font-weight:700;transition:opacity 200ms}
.header__logo:hover{opacity:0.8}
.header__logo-icon{width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;background:var(--th-blue);border-radius:var(--th-border-radius)}
.header__logo-icon svg{width:1.5rem;height:1.5rem;color:white}
.header__logo-text{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--th-blue)}
.header__nav{display:none}
@media(min-width:1024px){.header__nav{display:flex;align-items:center;gap:1rem}}
.header__nav a{font-size:0.9375rem;font-weight:600;color:var(--th-gray);text-decoration:none;transition:all 200ms;padding-bottom:0.25rem;border-bottom:2px solid transparent}
.header__nav a:hover{color:var(--th-blue);border-bottom-color:var(--th-blue-light)}
.header__nav a.active{color:var(--th-blue);border-bottom-color:var(--th-blue)}
.header__actions{display:flex;align-items:center;gap:0.75rem}
/* Language Toggle */
.language-toggle{display:inline-flex;align-items:center;gap:0.5rem;padding:0.5rem 0.75rem;background:var(--th-gray-light);border:1px solid var(--border);border-radius:var(--th-border-radius);color:var(--th-blue);font-family:var(--font-body);font-size:0.875rem;font-weight:600;cursor:pointer;transition:all 200ms}
.language-toggle:hover{background:var(--accent-muted);border-color:var(--th-blue)}
.language-toggle svg{width:20px;height:20px}
#language-label{min-width:1.5rem;text-align:center}
/* TH Brandenburg Buttons */
.btn{display:inline-flex;align-items:center;gap:0.5rem;font-family:var(--font-body);font-size:0.875rem;font-weight:600;padding:0.625rem 1.25rem;border-radius:var(--th-border-radius);border:none;cursor:pointer;transition:all 200ms;text-decoration:none;min-height:40px;text-transform:uppercase;letter-spacing:0.5px}
.btn--primary{background:var(--th-blue);color:white;box-shadow:var(--shadow-sm)}
.btn--primary:hover{background:var(--th-blue-dark);box-shadow:var(--shadow-md);transform:translateY(-1px)}
/* TH Brandenburg View Toggle */
.view-toggle{display:flex;gap:0.375rem;padding:0.375rem;background:var(--th-gray-light);border-radius:var(--th-border-radius);border:1px solid var(--border)}
.view-toggle__btn{font-family:var(--font-body);font-size:0.875rem;font-weight:600;padding:0.625rem 1.25rem;border:none;background:transparent;color:var(--th-gray);border-radius:var(--th-border-radius);cursor:pointer;transition:all 200ms;white-space:nowrap}
.view-toggle__btn:hover{color:var(--th-blue);background:rgba(0,74,153,0.05)}
.view-toggle__btn.active{background:var(--th-blue);color:white;box-shadow:var(--shadow-sm)}
/* TH Brandenburg Hero Section */
.hero{padding:calc(var(--section-padding) * 0.8) 0;text-align:center;background:linear-gradient(135deg,#F7F9FC 0%,#FFFFFF 100%);}
.hero__badge{display:inline-flex;align-items:center;gap:0.625rem;padding:0.5rem 1.25rem;background:var(--th-blue);color:white;border-radius:var(--th-border-radius);margin-bottom:1.5rem;font-weight:600;box-shadow:var(--shadow-sm)}
.hero__badge-dot{width:8px;height:8px;background:white;border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.6}}
.hero__title{margin-bottom:1rem;max-width:48rem;margin-left:auto;margin-right:auto;color:var(--th-blue-dark);font-weight:700}
.hero__subtitle{font-size:1.125rem;color:var(--th-gray);max-width:42rem;margin:0 auto 2.5rem;line-height:1.6}
.hero__meta{display:flex;flex-wrap:wrap;justify-content:center;gap:1.5rem 2.5rem;padding-top:1.5rem;border-top:1px solid var(--border);max-width:36rem;margin:0 auto}
.hero__meta-item{text-align:center}
.hero__meta-value{font-family:var(--font-display);font-size:2rem;font-weight:700;color:var(--th-blue);line-height:1;margin-bottom:0.375rem}
.hero__meta-label{font-size:0.75rem;color:var(--muted-foreground)}
.hero__toggle{margin-top:2rem;display:flex;justify-content:center}
.section{padding:var(--section-padding) 0}
.section--alt{background:linear-gradient(180deg,#F7F9FC 0%,#FFFFFF 100%)}
/* TH Brandenburg Section Labels */
.section-label{display:flex;align-items:center;gap:1.5rem;margin-bottom:2.5rem}
.section-label__line{flex:1;height:2px;background:linear-gradient(90deg,transparent,var(--th-blue),transparent)}
.section-header{text-align:center;margin-bottom:2.5rem}
.section-header__title{margin-bottom:0.5rem}
.section-header__subtitle{color:var(--muted-foreground);font-size:0.9375rem}
.grid{display:grid;gap:1.5rem}
.grid--2{grid-template-columns:1fr}
.grid--3{grid-template-columns:1fr}
@media(min-width:768px){.grid--2{grid-template-columns:repeat(2,1fr)}.grid--3{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.grid--3{grid-template-columns:repeat(3,1fr)}}
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--border);border:1px solid var(--border);border-radius:var(--th-border-radius);overflow:hidden;margin-bottom:2rem;box-shadow:var(--shadow-sm)}
@media(min-width:768px){.stats-grid{grid-template-columns:repeat(4,1fr)}}
/* TH Brandenburg Stats */
.stat-card{background:var(--card);padding:1.75rem 1.25rem;text-align:center;transition:all 200ms}
.stat-card:hover{background:var(--accent-muted)}
.stat-card__value{font-family:var(--font-display);font-size:clamp(2.25rem,4vw,3rem);color:var(--th-blue);line-height:1;margin-bottom:0.5rem;font-weight:700}
.stat-card__value span{color:var(--th-blue)}
.stat-card__label{font-size:0.875rem;color:var(--th-gray);font-weight:600}
/* TH Brandenburg Cards */
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--th-border-radius);overflow:hidden;transition:all 200ms;box-shadow:var(--shadow-sm)}
.card:hover{box-shadow:var(--shadow-lg);border-color:var(--th-blue-light);transform:translateY(-2px)}
.card--featured{border-top:4px solid var(--th-blue);box-shadow:var(--shadow-md)}
.card__header{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--border)}
.card__number{font-family:var(--font-mono);font-size:0.6875rem;font-weight:700;letter-spacing:0.1em;color:var(--th-blue);margin-bottom:0.5rem;text-transform:uppercase}
.card__title{font-family:var(--font-display);font-size:1.0625rem;font-weight:600;line-height:1.3;margin-bottom:0.25rem}
.card__subtitle{font-size:0.8125rem;color:var(--muted-foreground)}
.card__body{padding:1.5rem}
.card__footer{padding:0.875rem 1.5rem;background:var(--muted);border-top:1px solid var(--border);display:flex;justify-content:space-between;font-size:0.75rem;color:var(--muted-foreground)}
.card--span-2{grid-column:span 1}
@media(min-width:768px){.card--span-2{grid-column:span 2}}
.bar-chart{display:flex;flex-direction:column;gap:0.875rem}
.bar-chart__item{display:grid;grid-template-columns:1fr;gap:0.5rem}
@media(min-width:640px){.bar-chart__item{grid-template-columns:minmax(100px,150px) 1fr auto;gap:1rem}}
.bar-chart__label{font-size:0.8125rem;color:var(--foreground)}
@media(min-width:640px){.bar-chart__label{text-align:right}}
.bar-chart__track{height:2rem;background:var(--th-gray-light);border-radius:var(--th-border-radius);overflow:hidden;border:1px solid var(--border)}
.bar-chart__fill{height:100%;background:linear-gradient(90deg,var(--th-blue),var(--th-blue-light));border-radius:var(--th-border-radius);transition:width 800ms cubic-bezier(0.4,0,0.2,1);display:flex;align-items:center;justify-content:flex-end;padding-right:0.625rem;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}
.bar-chart__fill-value{font-size:0.6875rem;font-weight:600;color:white}
.bar-chart__value{font-family:var(--font-display);font-size:1rem;font-weight:600;min-width:3rem;text-align:right}
@media(max-width:639px){.bar-chart__value{display:none}}
.donut-wrapper{display:flex;flex-direction:column;align-items:center;gap:1.5rem}
.donut-chart{position:relative;width:160px;height:160px}
.donut-chart--lg{width:180px;height:180px}
.donut-chart__svg{transform:rotate(-90deg)}
.donut-chart__segment{fill:none;stroke-width:20;stroke-linecap:round;transition:stroke-dasharray 800ms cubic-bezier(0.4,0,0.2,1)}
.donut-chart__center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-chart__center-value{font-family:var(--font-display);font-size:2rem;font-weight:600;line-height:1}
.donut-chart__center-label{font-size:0.75rem;color:var(--muted-foreground);margin-top:0.125rem}
.legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;justify-content:center}
.legend--vertical{flex-direction:column;align-items:flex-start;gap:0.625rem}
.legend__item{display:flex;align-items:center;gap:0.5rem;font-size:0.8125rem}
.legend__dot{width:10px;height:10px;border-radius:3px;flex-shrink:0}
.legend__value{font-weight:600;margin-left:0.25rem}
.matrix-chart{display:grid;gap:0.75rem}
.matrix-chart__item{display:flex;justify-content:space-between;padding:0.875rem 1rem;background:var(--muted);border-radius:6px;transition:all 200ms}
.matrix-chart__item:hover{background:var(--accent-muted)}
.matrix-chart__label{font-size:0.875rem}
.matrix-chart__value{font-family:var(--font-display);font-size:1.25rem;font-weight:700;color:var(--th-blue)}
.icon-list{display:grid;gap:0.75rem}
.icon-list__item{display:flex;align-items:flex-start;gap:0.75rem;padding:1rem;background:var(--muted);border-radius:8px;transition:all 200ms}
.icon-list__item:hover{background:var(--accent-muted)}
.icon-list__icon{width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--th-border-radius);flex-shrink:0;font-size:0.875rem;font-weight:700}
.icon-list__content{flex:1}
.icon-list__title{font-size:0.875rem;font-weight:600;margin-bottom:0.125rem}
.icon-list__meta{font-size:0.75rem;color:var(--muted-foreground)}
.table-wrapper{overflow-x:auto}
.comparison-table{width:100%;border-collapse:collapse}
.comparison-table th,.comparison-table td{padding:0.875rem 1rem;text-align:left;border-bottom:1px solid var(--border)}
.comparison-table th{font-family:var(--font-mono);font-size:0.625rem;font-weight:500;letter-spacing:0.15em;text-transform:uppercase;color:var(--muted-foreground);background:var(--muted)}
.comparison-table tbody tr{transition:background 200ms}
.comparison-table tbody tr:hover{background:var(--muted)}
.comparison-table tbody tr:last-child td{border-bottom:none}
.comparison-table__tool{display:flex;align-items:center;gap:0.625rem}
.comparison-table__icon{width:1.75rem;height:1.75rem;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:0.75rem;font-weight:600;color:white}
.comparison-table__bar{width:80px;height:5px;background:var(--muted);border-radius:3px;overflow:hidden}
.comparison-table__bar-fill{height:100%;background:var(--th-blue);border-radius:3px;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}
.scale-chart{display:flex;flex-direction:column;gap:1rem}
.scale-chart__row{display:grid;grid-template-columns:1fr;gap:0.5rem}
@media(min-width:640px){.scale-chart__row{grid-template-columns:100px 1fr;gap:1rem}}
.scale-chart__label{font-size:0.75rem;font-weight:500;color:var(--muted-foreground)}
@media(min-width:640px){.scale-chart__label{text-align:right}}
.scale-chart__bar{display:flex;height:2rem;background:var(--muted);border-radius:4px;overflow:hidden}
.scale-chart__segment{display:flex;align-items:center;justify-content:center;font-size:0.6875rem;font-weight:600;color:white}
.stacked-bar{display:flex;flex-direction:column;gap:1.25rem}
.stacked-bar__row{display:flex;flex-direction:column;gap:0.375rem}
.stacked-bar__label{font-size:0.8125rem;font-weight:500}
.stacked-bar__track{display:flex;height:1.75rem;background:var(--border);border-radius:4px;overflow:hidden}
.stacked-bar__segment{display:flex;align-items:center;justify-content:center;font-size:0.625rem;font-weight:600;color:white;min-width:fit-content;padding:0 0.375rem}
.comparison-view{display:none}
.comparison-view.active{display:block}
.standard-view{display:block}
.standard-view.hidden{display:none}
.company-selector{display:flex;align-items:center;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}
.company-selector__label{font-size:0.875rem;color:var(--muted-foreground)}
.company-selector__select{font-family:var(--font-body);font-size:0.9375rem;padding:0.625rem 2.5rem 0.625rem 1rem;border:1px solid var(--border);border-radius:6px;background:var(--card) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%236B6B6B' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 0.75rem center;appearance:none;cursor:pointer;min-width:200px}
.company-selector__select:focus{outline:none;border-color:var(--th-blue);box-shadow:0 0 0 3px var(--accent-muted)}
.compare-bar{display:flex;flex-direction:column;gap:0.625rem}
.compare-bar__row{display:flex;align-items:center;gap:0.75rem}
.compare-bar__label{font-size:0.75rem;font-weight:500;min-width:60px}
.compare-bar__label--all{color:var(--th-blue);font-weight:600}
.compare-bar__label--company{color:var(--th-accent);font-weight:600}
.compare-bar__track{flex:1;height:1.5rem;background:var(--muted);border-radius:4px;overflow:hidden}
.compare-bar__fill{height:100%;border-radius:4px;display:flex;align-items:center;justify-content:flex-end;padding-right:0.5rem;transition:width 600ms ease-out}
.compare-bar__fill--all{background:linear-gradient(90deg,var(--th-blue),var(--th-blue-light));box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}
.compare-bar__fill--company{background:linear-gradient(90deg,var(--th-accent),#FF4444);box-shadow:inset 0 1px 2px rgba(0,0,0,0.1)}
.compare-bar__value{font-size:0.6875rem;font-weight:600;color:white}
.compare-bar__external{font-family:var(--font-display);font-size:0.9375rem;font-weight:600;min-width:3rem;text-align:right}
.compare-bar__external--all{color:var(--th-blue)}
.compare-bar__external--company{color:var(--th-accent)}
.compare-card{background:var(--card);border:1px solid var(--border);border-radius:10px;overflow:hidden}
.compare-card__header{padding:1.25rem 1.5rem 1rem;border-bottom:1px solid var(--border)}
.compare-card__title{font-family:var(--font-display);font-size:1rem;font-weight:600}
.compare-card__body{padding:1.5rem}
.compare-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}
.compare-stat{text-align:center;padding:1rem;border-radius:8px}
.compare-stat--all{background:var(--accent-muted);border:1px solid var(--accent-light)}
.compare-stat--company{background:rgba(227,6,19,0.08);border:1px solid rgba(227,6,19,0.15)}
.compare-stat__label{font-size:0.6875rem;font-weight:500;letter-spacing:0.1em;text-transform:uppercase;margin-bottom:0.25rem}
.compare-stat__label--all{color:var(--th-blue)}
.compare-stat__label--company{color:var(--th-accent)}
.compare-stat__value{font-family:var(--font-display);font-size:2.25rem;font-weight:700;line-height:1}
.compare-stat__value--all{color:var(--th-blue)}
.compare-stat__value--company{color:var(--th-accent)}
.compare-stat__diff{font-size:0.75rem;font-weight:500;margin-top:0.25rem}
.compare-stat__diff--up{color:#2E7D32}
.compare-stat__diff--down{color:#C62828}
.compare-stat__diff--neutral{color:var(--muted-foreground)}
/* TH Brandenburg Footer */
.footer{padding:3rem 0;border-top:3px solid var(--th-blue);background:var(--th-blue-dark);color:white}
.footer__inner{display:flex;flex-direction:column;gap:1.5rem;align-items:center;text-align:center}
@media(min-width:768px){.footer__inner{flex-direction:row;justify-content:space-between;text-align:left}}
.footer__logo{display:flex;align-items:center;gap:0.625rem;font-family:var(--font-display);font-size:1.125rem;font-weight:700;color:white;text-decoration:none;transition:opacity 200ms}
.footer__logo:hover{opacity:0.8}
.footer__links{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center}
.footer__links a{font-size:0.875rem;color:rgba(255,255,255,0.8);text-decoration:none;transition:color 200ms;font-weight:500}
.footer__links a:hover{color:white;text-decoration:underline}
.footer__copy{font-size:0.8125rem;color:rgba(255,255,255,0.7)}
/* Utility Classes */
.mt-2{margin-top:1rem}
.mb-2{margin-bottom:1rem}
.mb-3{margin-bottom:1.5rem}
.text-center{text-align:center}

/* TH Brandenburg Print Styles */
@media print{
  .header,.footer,.view-toggle,.btn{display:none}
  .card,.compare-card{break-inside:avoid;page-break-inside:avoid}
  body{background:white}
  .section--alt{background:white}
}

/* cyrillic-ext */
@font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iIq129k.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1isq129k.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iAq129k.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1iEq129k.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F63fjptAgt5VM-kVkqdyU8n1i8q1w.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl1FgtIU.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlRFgtIU.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl9FgtIU.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwl5FgtIU.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'IBM Plex Mono';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/ibmplexmono/v20/-F6qfjptAgt5VM-kVkqdyU8n3twJwlBFgg.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTjYgFE_.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTPYgFE_.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTLYgFE_.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Playfair Display';
    font-style: normal;
    font-weight: 700;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/playfairdisplay/v40/nuFiD-vYSZviVYUb_rj3ij__anPXDTzYgA.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+1F00-1FFF;
  }
  /* greek */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 300;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZejZ5HZV8Q.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+1F00-1FFF;
  }
  /* greek */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 400;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZejZ5HZV8Q.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+1F00-1FFF;
  }
  /* greek */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 500;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZejZ5HZV8Q.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }
  /* cyrillic-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wIaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
  }
  /* cyrillic */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wsaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
  }
  /* greek-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wMaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+1F00-1FFF;
  }
  /* greek */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wwaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
  }
  /* vietnamese */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wAaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
  }
  /* latin-ext */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3wEaZejZ5HZV8ZRx.woff2) format('woff2');
    unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
  }
  /* latin */
  @font-face {
    font-family: 'Source Sans 3';
    font-style: normal;
    font-weight: 600;
    font-display: swap;
    src: url(https://fonts.gstatic.com/s/sourcesans3/v19/nwpStKy2OAdR1K-IwhWudF-R3w8aZejZ5HZV8Q.woff2) format('woff2');
    unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
  }

/* Lucide Icons Styling */
i[data-lucide] {
  display: inline-block;
  width: 1.5rem;
  height: 1.5rem;
}

.icon-list__icon svg,
i[data-lucide] svg {
  display: block;
  width: 100%;
  height: 100%;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  fill: none;
}

/* ═══════════════════════════════════════════════════════════════
   PDF Export – Floating button (screen) & Cover page + Print styles
   ═══════════════════════════════════════════════════════════════ */

/* Floating action button (screen only) */
.pdf-fab {
  position: fixed;
  bottom: 2rem;
  right: 2rem;
  z-index: 900;
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 50%;
  border: none;
  background: #004A99;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  box-shadow: 0 4px 16px rgba(0,0,0,0.2);
  transition: background 0.2s, transform 0.2s, box-shadow 0.2s;
}
.pdf-fab:hover {
  background: #003366;
  transform: translateY(-2px);
  box-shadow: 0 6px 20px rgba(0,0,0,0.25);
}

/* Cover page – hidden on screen, shown only in print */
.pdf-cover-page { display: none; }

/* Canvas replacement images – hidden on screen, shown in print */
.pdf-canvas-replacement { display: none !important; }

/* ──────────────────────────────────────────────────────────────
   @media print – comprehensive print / PDF stylesheet
   ────────────────────────────────────────────────────────────── */
@media print {

  /* === Page setup ===
     margin: 0 globally — we handle spacing via padding on content.
     This eliminates the hidden @page margin that clips every page. */
  @page {
    size: A4 portrait;
    margin: 0;
  }

  /* === Hide screen-only elements === */
  .header, #header-placeholder, #footer-placeholder,
  .pdf-fab, [data-no-pdf],
  .hero__badge, .hero__toggle,
  .btn, button,
  #pie-tooltip { display: none !important; }

  /* === Show print-only elements === */
  .pdf-cover-page { display: flex !important; }
  .pdf-canvas-replacement { display: block !important; }
  canvas { display: none !important; }

  /* === Force-show dashboard (JS also does this, belt-and-suspenders) === */
  .pdf-force-shown,
  .dashboard-view { display: block !important; }

  /* === Cover page layout ===
     The body has transform:scale(0.75), but scale is purely visual —
     it does NOT change layout dimensions. So a 396mm element still
     occupies 396mm in document flow and gets clipped at the 297mm
     page boundary. Fix: undo the body scale on the cover so it uses
     real A4 dimensions, then re-scale its inner text to compensate. */
  .pdf-cover-page {
    align-items: center;
    justify-content: center;
    height: 297mm;
    width: 210mm;
    background: #004A99 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
    color: #fff !important;
    text-align: center;
    padding: 2rem;
    page-break-after: always;
    box-sizing: border-box;
    overflow: hidden;
    margin: 0;
    /* Undo body scale(0.75): 1/0.75 = 1.3333 */
    transform: scale(1.3333);
    transform-origin: top left;
  }
  .pdf-cover-page__inner { max-width: 28rem; margin: 0 auto; }
  .pdf-cover-page__logo { width: 5rem; height: 5rem; margin-bottom: 1.5rem; border-radius: 0.5rem; }
  .pdf-cover-page__institution {
    font-family: 'Roboto Slab', serif; font-size: 1rem; font-weight: 500;
    letter-spacing: 0.04em; opacity: 0.85; margin-bottom: 2rem; color: #fff !important;
  }
  .pdf-cover-page__divider {
    width: 4rem; height: 3px; background: rgba(255,255,255,0.4) !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
    margin: 0 auto 2rem; border-radius: 2px;
  }
  .pdf-cover-page__title {
    font-family: 'Roboto Slab', serif; font-size: 2rem; font-weight: 700;
    line-height: 1.3; margin: 0 0 1rem; color: #fff !important;
  }
  .pdf-cover-page__subtitle {
    font-size: 1.125rem; line-height: 1.6; opacity: 0.9; margin: 0 0 0.75rem; color: #fff !important;
  }
  .pdf-cover-page__meta {
    font-size: 0.9375rem; opacity: 0.75; margin: 0 0 2rem; color: #fff !important;
  }
  .pdf-cover-page__date {
    font-size: 0.875rem; opacity: 0.65; margin-top: 2.5rem; color: #fff !important;
  }

  /* === Global scale-down ===
     Uniformly shrink everything to 75% so wide diagrams and grids
     fit on A4 without reflow. Proportions stay identical to screen. */
  body {
    background: #fff !important;
    margin: 0 !important;       /* Kill browser default 8px margin */
    padding: 0 !important;
    transform: scale(0.75);
    transform-origin: top left;
    width: 133.33%;          /* 100% / 0.75 – compensate so layout fills the page */
  }

  /* === General print reset === */
  * { box-shadow: none !important; }
  /* Since @page margin is 0, add padding on containers for content breathing room */
  .container { max-width: 100% !important; padding: 0 1rem !important; }
  main { padding: 8mm 0 !important; }

  /* === Preserve background colors === */
  .card, .card--featured, .section--alt, .stat-card,
  .kpi-card, .hero, .bar-chart__fill, .cmp-bar-row__fill,
  .donut-chart__segment, .scale-chart__segment, .icon-list__icon,
  .legend__dot, .phase-cell, .rank-num,
  [style*="background"] {
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  /* === Layout adjustments === */
  .hero {
    padding: 1.5rem 0 !important;
    min-height: auto !important;
    background: #fff !important;
  }
  .hero__title { font-size: 1.5rem !important; color: #004A99 !important; }
  .hero__subtitle { font-size: 0.9rem !important; }
  .hero__meta { gap: 1rem !important; }
  .section { padding: 1rem 0 !important; }
  .section + .section { padding-top: 0.5rem !important; }

  /* === Cards – avoid breaking INDIVIDUAL cards, but let grids flow === */
  .card, .card--featured, .stat-card, .kpi-card {
    break-inside: avoid;
    page-break-inside: avoid;
    border: 1px solid #E0E0E0 !important;
    margin-bottom: 1rem !important;
  }

  /* === Grids – keep columns, let rows flow across pages === */
  .grid--2 { grid-template-columns: repeat(2, 1fr) !important; gap: 1rem !important; }
  .grid--3 { grid-template-columns: repeat(3, 1fr) !important; gap: 1rem !important; }
  .stats-grid { gap: 0.75rem !important; }

  /* === Inner card spacing === */
  .section-label { margin-bottom: 0.5rem !important; }
  .section-header { margin-bottom: 0.75rem !important; }
  .card__header { padding: 1rem 1.25rem !important; }
  .card__body { padding: 1rem 1.25rem !important; }

  /* === Page breaks === */
  .section-label { page-break-after: avoid; }
  .section-header { page-break-after: avoid; }
  h2, h3 { page-break-after: avoid; }

  /* === Links === */
  a { color: inherit !important; text-decoration: none !important; }
}
  