:root{
  /* ── Brand constants (fixed across themes) ─────────────────── */
  --kcm-yellow:#F5C500;
  --kcm-navy:#1E2749;
  --kcm-dark:#121A2D;
  --kcm-slate:#394675;

  /* ── Light theme (default) ─────────────────────────────────── */
  --bg-grad:
    radial-gradient(1200px 600px at 15% 0%, rgba(245,197,0,.10), transparent 55%),
    radial-gradient(900px 500px at 85% 10%, rgba(57,70,117,.08), transparent 60%),
    linear-gradient(180deg, #f7f9fd, #eef2f9 70%);
  --panel:#ffffff;
  --text:#1b2233;
  --heading:var(--kcm-navy);
  --muted:#5c6678;
  --border:rgba(30,39,73,.14);
  --link:#2b3a7a;
  --accent:var(--kcm-yellow);

  --header-bg:rgba(255,255,255,.82);
  --page-head-bg:linear-gradient(180deg, #ffffff, #f4f7fc);
  --footer-bg:#f4f7fc;
  --code-bg:rgba(30,39,73,.06);
  --code-border:rgba(30,39,73,.14);
  --pre-bg:#f4f7fc;
  --th-bg:#eef2f9;
  --callout-bg:rgba(245,197,0,.12);
  --soft:rgba(30,39,73,.04);

  --radius:14px;
  --shadow:0 8px 26px rgba(30,39,73,.10);
  --max:1100px;
}

/* Explicit dark (set via the toggle) */
:root[data-theme="dark"]{
  --bg-grad:
    radial-gradient(1200px 600px at 15% 0%, rgba(245,197,0,.12), transparent 55%),
    radial-gradient(900px 500px at 85% 10%, rgba(57,70,117,.22), transparent 60%),
    linear-gradient(180deg, #0f1726, #0b1220 65%);
  --panel:rgba(18,26,45,.75);
  --text:#E9EEF7;
  --heading:#ffffff;
  --muted:#B8C3D6;
  --border:rgba(255,255,255,.12);
  --link:#F5C500;
  --accent:var(--kcm-yellow);

  --header-bg:rgba(18,26,45,.78);
  --page-head-bg:linear-gradient(180deg, rgba(30,39,73,.55), rgba(18,26,45,.70));
  --footer-bg:rgba(18,26,45,.85);
  --code-bg:rgba(255,255,255,.06);
  --code-border:rgba(255,255,255,.10);
  --pre-bg:rgba(0,0,0,.28);
  --th-bg:rgba(30,39,73,.55);
  --callout-bg:rgba(245,197,0,.06);
  --soft:rgba(255,255,255,.04);

  --shadow:0 10px 30px rgba(0,0,0,.28);
}

/* Follow OS dark preference when the visitor hasn't explicitly chosen light */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --bg-grad:
      radial-gradient(1200px 600px at 15% 0%, rgba(245,197,0,.12), transparent 55%),
      radial-gradient(900px 500px at 85% 10%, rgba(57,70,117,.22), transparent 60%),
      linear-gradient(180deg, #0f1726, #0b1220 65%);
    --panel:rgba(18,26,45,.75);
    --text:#E9EEF7;
    --heading:#ffffff;
    --muted:#B8C3D6;
    --border:rgba(255,255,255,.12);
    --link:#F5C500;

    --header-bg:rgba(18,26,45,.78);
    --page-head-bg:linear-gradient(180deg, rgba(30,39,73,.55), rgba(18,26,45,.70));
    --footer-bg:rgba(18,26,45,.85);
    --code-bg:rgba(255,255,255,.06);
    --code-border:rgba(255,255,255,.10);
    --pre-bg:rgba(0,0,0,.28);
    --th-bg:rgba(30,39,73,.55);
    --callout-bg:rgba(245,197,0,.06);
    --soft:rgba(255,255,255,.04);

    --shadow:0 10px 30px rgba(0,0,0,.28);
  }
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  font-family: 'Plus Jakarta Sans', ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Helvetica, Arial, "Apple Color Emoji","Segoe UI Emoji";
  background:var(--bg-grad);
  background-attachment:fixed;
  color:var(--text);
  line-height:1.6;
}

a{color:var(--link);text-decoration:none}
a:hover{text-decoration:underline}

.container{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
}

.skip-link{
  position:absolute;
  left:-999px;top:auto;width:1px;height:1px;overflow:hidden;
}
.skip-link:focus{
  left:20px;top:12px;width:auto;height:auto;
  background:var(--kcm-yellow);color:#000;padding:8px 12px;border-radius:10px;
  z-index:9999;
}

.site-header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  background:var(--header-bg);
  border-bottom:1px solid var(--border);
}
.header-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:14px 0;
}

.brand{
  display:flex;
  align-items:center;
  gap:12px;
  color:var(--text);
}
.brand-logo{
  height:34px;
  width:auto;
  display:block;
}
.brand-text{display:flex;flex-direction:column;line-height:1.15}
.brand-title{font-weight:800;letter-spacing:.2px;color:var(--heading)}
.brand-subtitle{color:var(--muted);font-size:12px}

/* ── Theme toggle ──────────────────────────────────────────── */
.theme-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:38px;height:38px;
  border:1px solid var(--border);
  border-radius:10px;
  background:var(--soft);
  color:var(--text);
  cursor:pointer;
  font-size:17px;
  line-height:1;
  transition:border-color .15s, color .15s, background .15s;
}
.theme-toggle:hover{
  border-color:rgba(245,197,0,.5);
  color:var(--kcm-yellow);
}
.theme-toggle .icon-sun{display:none}
.theme-toggle .icon-moon{display:inline}
:root[data-theme="dark"] .theme-toggle .icon-sun{display:inline}
:root[data-theme="dark"] .theme-toggle .icon-moon{display:none}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .theme-toggle .icon-sun{display:inline}
  :root:not([data-theme="light"]) .theme-toggle .icon-moon{display:none}
}

.back-btn{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-bottom:16px;
  padding:7px 14px;
  border:1px solid var(--border);
  border-radius:10px;
  color:var(--muted);
  font-size:13px;
  background:var(--soft);
  transition:border-color .15s, color .15s;
}
.back-btn:hover{
  border-color:rgba(245,197,0,.4);
  color:var(--kcm-yellow);
  text-decoration:none;
}

.site-main{padding:28px 0 44px}
.page-head{
  margin:0 0 18px;
  padding:18px 18px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--page-head-bg);
  box-shadow:var(--shadow);
}
.page-title{
  margin:0 0 6px;
  font-size:32px;
  letter-spacing:-.3px;
  color:var(--heading);
}
.page-meta{margin:0;color:var(--muted);font-size:13px}

.content{
  padding:22px 22px;
  border:1px solid var(--border);
  border-radius:var(--radius);
  background:var(--panel);
  box-shadow:var(--shadow);
}

.content h1,.content h2,.content h3{line-height:1.25;color:var(--heading)}
.content h2{margin-top:28px;border-bottom:1px solid var(--border);padding-bottom:8px}
.content h2::before{
  content:"";
  display:inline-block;
  width:3px;height:1em;
  margin-right:10px;
  vertical-align:-2px;
  background:var(--accent);
  border-radius:2px;
}
.content h3{margin-top:22px}

.content p{margin:12px 0}
.content ul,.content ol{padding-left:22px}
.content li{margin:6px 0}
.content hr{border:0;border-top:1px solid var(--border);margin:20px 0}

.content blockquote{
  margin:16px 0;
  padding:14px 16px;
  border-left:4px solid rgba(245,197,0,.75);
  background:var(--callout-bg);
  border-radius:12px;
}

.content code{
  background:var(--code-bg);
  padding:2px 6px;
  border-radius:8px;
  border:1px solid var(--code-border);
}
.content pre{
  overflow:auto;
  padding:14px 16px;
  border-radius:14px;
  border:1px solid var(--code-border);
  background:var(--pre-bg);
}
.content pre code{
  background:transparent;
  border:0;
  padding:0;
}

.content table{
  width:100%;
  border-collapse:collapse;
  margin:16px 0;
  overflow:hidden;
  border-radius:14px;
  border:1px solid var(--border);
}
.content th,.content td{
  padding:10px 12px;
  border-bottom:1px solid var(--border);
  vertical-align:top;
}
.content th{
  text-align:left;
  background:var(--th-bg);
  color:var(--heading);
}
.content tr:last-child td{border-bottom:0}

.site-footer{
  border-top:1px solid var(--border);
  background:var(--footer-bg);
  padding:18px 0;
}
.footer-inner{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
}
.footer-title{font-weight:700;color:var(--heading)}
.footer-note{color:var(--muted);font-size:13px;margin-top:2px}
.footer-right a{color:var(--muted);font-size:13px}
.site-footer a{color:var(--muted)}
.site-footer a:hover{color:var(--kcm-yellow);text-decoration:none}

@media (max-width:860px){
  .header-inner{gap:10px}
  .page-title{font-size:26px}
}

/* ── Print / PDF styles ───────────────────────────────────────── */
@media print{
  /* Reset colours to black-on-white */
  *{
    background:transparent !important;
    color:#000 !important;
    box-shadow:none !important;
    text-shadow:none !important;
    -webkit-print-color-adjust:exact;
    print-color-adjust:exact;
  }

  /* Page setup */
  @page{
    size:A4;
    margin:20mm 18mm 20mm 18mm;
  }

  html,body{
    font-size:11pt;
    line-height:1.5;
    background:#fff !important;
    color:#000 !important;
  }

  /* Hide nav chrome */
  .site-header,
  .back-btn,
  .theme-toggle,
  .skip-link{
    display:none !important;
  }

  /* Footer — keep company name but strip background */
  .site-footer{
    border-top:1px solid #ccc;
    padding:8pt 0 0;
    margin-top:16pt;
  }
  .site-footer a{color:#000 !important}

  /* Remove decorative borders/backgrounds from panels */
  .page-head,
  .content{
    border:none !important;
    border-radius:0 !important;
    padding:0 !important;
    background:transparent !important;
  }

  .site-main{padding:0 !important}
  .container{max-width:100% !important; padding:0 !important}

  /* Typography */
  .page-title{
    font-size:18pt;
    margin-bottom:4pt;
    border-bottom:2px solid #000;
    padding-bottom:4pt;
  }
  .page-meta{font-size:9pt; color:#444 !important; margin-bottom:12pt}

  .content h2{
    font-size:13pt;
    margin-top:16pt;
    border-bottom:1px solid #999;
    padding-bottom:3pt;
  }
  .content h2::before{display:none !important}
  .content h3{font-size:11pt; margin-top:12pt}
  .content p{margin:6pt 0}
  .content ul,.content ol{padding-left:16pt}
  .content li{margin:3pt 0}
  .content hr{border-top:1px solid #ccc; margin:10pt 0}

  /* Links — show URL after link text */
  .content a[href]::after{
    content:" (" attr(href) ")";
    font-size:8pt;
    color:#555 !important;
    word-break:break-all;
  }
  /* Suppress URL expansion for relative/internal links and anchors */
  .content a[href^="/"]::after,
  .content a[href^="#"]::after{
    content:"";
  }

  /* Blockquotes */
  .content blockquote{
    border-left:3px solid #999;
    background:transparent !important;
    padding:6pt 10pt;
    margin:8pt 0;
    color:#222 !important;
  }

  /* Tables */
  .content table{
    width:100%;
    border-collapse:collapse;
    border-radius:0 !important;
    font-size:9.5pt;
    page-break-inside:auto;
  }
  .content th,.content td{
    border:1px solid #bbb;
    padding:5pt 7pt;
    vertical-align:top;
  }
  .content th{
    background:#eee !important;
    color:#000 !important;
    font-weight:700;
  }
  .content tr{page-break-inside:avoid}

  /* Code */
  .content code{
    background:#f4f4f4 !important;
    border:1px solid #ccc;
    padding:1pt 3pt;
    font-size:9pt;
    color:#000 !important;
  }

  /* Avoid page breaks after headings or inside sections */
  h1,h2,h3{page-break-after:avoid}
  .content table, .content blockquote{page-break-inside:avoid}
}
