/* TalonEdge KSA site stylesheet, shared by every page. */
:root{
    --bg:#F7F2E9; --ink:#111111; --panel:#FFFDF6; --green:#006C35; --red:#B23A2E;
    --shadow:6px 6px 0 var(--ink);
  }
*{box-sizing:border-box;margin:0;padding:0}
body{-webkit-user-select:none;user-select:none}
input,textarea{-webkit-user-select:text;user-select:text}
body{background:var(--bg);color:var(--ink);font-family:'IBM Plex Sans',sans-serif;line-height:1.65;font-size:17px}
.wrap{max-width:960px;margin:0 auto;padding:32px 20px 80px}
/* top bar */
  .topbar{display:flex;justify-content:space-between;align-items:center;border:3px solid var(--ink);background:var(--panel);padding:10px 24px;box-shadow:var(--shadow);flex-wrap:wrap;gap:12px}
.brand{font-family:'IBM Plex Sans',sans-serif;font-weight:700;font-size:28px;color:var(--ink);letter-spacing:-0.3px;text-decoration:none}
.brand:hover{border-bottom:3px solid var(--green)}
.topnav{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.topnav a{color:var(--ink);text-decoration:none;margin-left:18px;border-bottom:2px solid transparent;padding-bottom:2px;display:inline-flex;align-items:center;min-height:24px}
.topnav a:hover{border-color:var(--green)}
.topnav a.active{border-color:var(--green)}
.topnav details{display:inline-block;position:relative;margin-left:18px}
.topnav summary{cursor:pointer;color:var(--ink);text-decoration:none;border-bottom:2px solid transparent;padding-bottom:2px;display:inline-flex;align-items:center;min-height:24px;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;list-style:none}
.topnav summary::-webkit-details-marker{display:none}
.topnav summary:hover,.topnav details[open] summary{border-color:var(--green)}
.topnav summary::after{content:" \25BE";font-size:10px}
.navmenu{position:absolute;top:calc(100% + 10px);left:0;background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);min-width:220px;z-index:40;display:flex;flex-direction:column;padding:6px 0}
.navmenu a{display:block;margin:0;padding:8px 16px;border-bottom:none;color:var(--ink)}
.navmenu a:hover{border-bottom:none;background:rgba(17,17,17,0.06)}
/* panels */
  .panel{background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);padding:28px;margin-top:28px}
.hero{padding:44px 32px}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;background:var(--green);color:#fff;display:inline-block;padding:4px 10px;border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink)}
h1{font-size:clamp(30px,5vw,44px);font-weight:700;line-height:1.15;margin:18px 0 12px;letter-spacing:-0.5px}
.dek{font-size:19px;font-weight:500;color:#333}
.meta{font-family:'IBM Plex Mono',monospace;font-size:13px;margin-top:14px;color:#444}
h2{font-size:25px;font-weight:700;margin:0 0 14px;padding-bottom:8px;border-bottom:3px solid var(--ink)}
p{margin:0 0 16px}
.num{font-family:'IBM Plex Mono',monospace;font-weight:600}
/* clock bridge */
  .bridge{display:flex;align-items:stretch;gap:0;border:3px solid var(--ink);box-shadow:var(--shadow);margin-top:28px;background:var(--panel)}
.clock-block{flex:1;padding:18px 16px;text-align:center;border-right:3px solid var(--ink)}
.clock-block.right{border-right:none;border-left:3px solid var(--ink)}
.clock-city{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:#444}
.clock-time{font-family:'IBM Plex Mono',monospace;font-size:30px;font-weight:700;margin-top:6px}
.clock-status{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;letter-spacing:1px;margin-top:4px;padding:2px 8px;display:inline-block;border:2px solid var(--ink)}
.clock-status.open{background:var(--green);color:#fff;border-color:var(--ink)}
.clock-status.pre{background:#fff;color:var(--ink)}
.clock-status.closed{background:#fff;color:#444;border-color:#444}
.bridge-mid{flex:0 0 130px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:10px}
.bridge-arrow{font-size:22px;line-height:1}
.bridge-note{font-family:'IBM Plex Mono',monospace;font-size:10px;color:#555;text-align:center;margin-top:6px;line-height:1.4}
/* a11y */
  .skip{position:absolute;left:-9999px;top:8px;background:var(--panel);color:var(--ink);border:3px solid var(--ink);padding:8px 14px;font-family:'IBM Plex Mono',monospace;font-weight:700;z-index:100}
.skip:focus{left:8px}
a:focus-visible,button:focus-visible,input:focus-visible{outline:3px solid var(--green);outline-offset:2px}
@media(prefers-reduced-motion:reduce){*{transform:none !important;transition:none !important}}
@media(max-width:700px){
    .bridge{flex-direction:column}
    .clock-block{border-right:none;border-bottom:3px solid var(--ink)}
    .clock-block.right{border-left:none;border-bottom:none}
    .bridge-mid{flex:0 0 auto;flex-direction:row;gap:10px;padding:8px}
    .bridge-note{margin-top:0}
  }
/* stat strip */
  .statstrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;border:3px solid var(--ink);box-shadow:var(--shadow);margin-top:28px;background:var(--panel)}
.stat{padding:16px 14px;border-right:3px solid var(--ink);text-align:center}
.stat:last-child{border-right:none}
.stat .v{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:22px;color:var(--green)}
.stat .c{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:12px;margin-top:2px}
.stat .c.up{color:var(--green)}
.stat .c.down{color:var(--red)}
.stat .l{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#444;margin-top:4px}
/* index chart */
.ranges,.series{display:flex;gap:8px;flex-wrap:wrap}
/* deliverable cards */
  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:6px}
.card{border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff;padding:18px}
.card .tag{font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;background:var(--ink);color:#fff;display:inline-block;padding:2px 8px}
.card .tag.green{background:var(--green)}
.card h3{font-size:19px;margin:10px 0 6px}
.card p{font-size:15px;margin:0;color:#333}
.card .when{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#555;margin-top:10px}
/* movers panel */
@media(max-width:700px){}
/* article list */
  .postrow{display:block;border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);background:#fff;padding:18px 20px;margin-top:16px;text-decoration:none;color:var(--ink)}
.postrow:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--ink)}
.postrow .pt{font-weight:700;font-size:18px}
.postrow .pd{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#555;margin-top:4px}
.postrow .px{font-size:15px;color:#333;margin-top:6px}
.soon{font-family:'IBM Plex Mono',monospace;font-size:13px;color:#555;margin-top:16px}
/* footer */
  .disclaimer{background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);margin-top:36px;padding:20px}
.disclaimer p{font-size:13px;color:#333;margin:0}
.disclaimer .dt{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:1px;margin-bottom:6px}
.footline{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#555;margin-top:16px}
/* cookie banner */
  .cbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:50;width:min(720px,92vw);background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);padding:16px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.cbar[hidden]{display:none}
.cbar-txt{flex:1 1 320px;font-size:13px;color:#333}
.cbar-btns{display:flex;gap:10px}
.cbtn{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;letter-spacing:1px;border:3px solid var(--ink);background:var(--ink);color:#fff;padding:8px 16px;cursor:pointer;box-shadow:3px 3px 0 var(--ink)}
.cbtn.alt{background:#fff;color:var(--ink)}
.cbtn:hover{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--ink)}
.footline a{color:var(--ink);text-decoration:underline}
.footline a:hover{color:var(--green)}
@media(max-width:700px){
    /* wide data tables scroll inside their panel on a phone instead of widening the page */
    .panel{overflow-x:auto}
    .cards{grid-template-columns:1fr}
    body{font-size:16px}
    .panel{padding:20px}
    .stat .v{font-size:18px}
    .topnav a{margin-left:10px}
    .brand{font-size:22px}
    /* phone: the menu still floats over the page as designed, but it is anchored to the right
       edge of its own nav item and clamped, so it can never widen the viewport */
    .topnav{position:relative}
  /* the menu anchors to the nav, not to the trigger, so a wrapped nav row on a narrow
     Android screen cannot push it off the left edge; on one-line screens the nav edge
     and the trigger edge are the same point, so the phone layout is unchanged */
  .topnav details{position:static}
  .navmenu{left:auto;right:0;max-width:calc(100vw - 32px)}
    /* the strip sits inside a panel that already carries the offset shadow, so its own shadow
       drew a second line inside the panel on the right and bottom edges */
    .statstrip{box-shadow:none;grid-template-columns:1fr 1fr}
    .stat{border-bottom:3px solid var(--ink)}
    .stat:nth-child(2n){border-right:none}
    .stat:nth-last-child(-n+2){border-bottom:none}
  }
.rail-foot{margin:14px 2px 2px;font-family:'IBM Plex Mono',monospace;font-size:11.5px;letter-spacing:.4px;color:#555;text-transform:none}
.rail-foot a{color:var(--ink);text-decoration:none;border-bottom:2px solid var(--green)}
:root{--bg:#F7F2E9;--ink:#111111;--panel:#FFFDF6;--green:#006C35;--red:#B23A2E;--shadow:6px 6px 0 var(--ink)}
.topbar{display:flex;justify-content:space-between;align-items:center;border:3px solid var(--ink);background:var(--panel);padding:10px 24px;box-shadow:var(--shadow);flex-wrap:wrap;gap:12px}
.topnav a{color:var(--ink);text-decoration:none;margin-left:14px;border-bottom:2px solid transparent;padding-bottom:2px}
.topnav details{display:inline-block;position:relative;margin-left:14px}
.topnav summary::marker{content:""}
.topnav summary::after{content:"";display:inline-block;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid currentColor;margin-left:7px;vertical-align:middle}
.topnav details[open] summary::after{transform:rotate(180deg)}
.skip{position:absolute;left:-9999px;top:8px;background:var(--panel);color:var(--ink);border:3px solid var(--ink);padding:8px 14px;font-family:'IBM Plex Mono',monospace;font-weight:700;z-index:100}
a:focus-visible,button:focus-visible{outline:3px solid var(--green);outline-offset:2px}
.panel{background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);padding:28px;margin-top:28px}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;background:var(--green);color:#fff;display:inline-block;padding:4px 10px;margin:0 0 18px}
h1{font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.15;margin:8px 0 16px;letter-spacing:-0.5px}
h2{font-size:20px;font-weight:700;margin:28px 0 10px}
p{font-size:15px;color:#333;margin:0 0 12px}
.meta{font-family:'IBM Plex Mono',monospace;font-size:13px;color:#444}
.asof{margin:-8px 0 18px}
table{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}
th{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;text-align:left;border-bottom:3px solid var(--ink);padding:8px 8px;white-space:nowrap}
td{border-bottom:2px solid #e8e0d0;padding:9px 8px;vertical-align:top}
td.num,th.num{text-align:right;font-family:'IBM Plex Mono',monospace;white-space:nowrap}
td.date,th.date{white-space:nowrap}
.up{color:var(--green)}
.down{color:var(--red)}
.tag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:1px;border:2px solid var(--ink);padding:1px 8px;margin-left:6px;vertical-align:middle}
.tag.verified{background:var(--green);color:#fff;border-color:var(--green)}
.tag.projected{background:#fff;color:#444}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin-top:18px}
.stat{background:var(--panel);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);padding:14px 16px}
.stat .v{font-family:'IBM Plex Mono',monospace;font-size:22px;font-weight:700}
.stat .l{font-size:12px;color:#444;margin-top:2px}
.fistrip{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:3px solid var(--ink);box-shadow:var(--shadow);margin-top:4px;background:var(--panel)}
.fibox{padding:24px 16px;border-right:3px solid var(--ink);text-align:center}
.fibox:last-child{border-right:none}
.fibox .v{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:26px;line-height:1.1;color:var(--green)}
.fibox .l{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#444;margin-top:10px}
.fibox .s{font-family:'IBM Plex Mono',monospace;font-size:12px;color:#666;margin-top:4px}
@media(max-width:700px){
    .fistrip{grid-template-columns:1fr}
    .fibox{border-right:none;border-bottom:3px solid var(--ink)}
    .fibox:last-child{border-bottom:none}
    .fibox .v{font-size:22px}
  }
.barlist{margin-top:18px}
.barrow{display:grid;grid-template-columns:56px 1fr 130px;gap:12px;align-items:center;margin-top:10px;font-size:14px}
.barlabel{font-weight:600}
.bartrack{display:block;background:#EFE7D8;border:2px solid var(--ink);height:22px;overflow:hidden}
.barfill{display:block;background:var(--ink);height:100%}
.ftab th{white-space:normal}
.ftab td{padding-top:6px;padding-bottom:6px}
.ftab-tight td{padding-top:3px;padding-bottom:3px}
.ftab-tight th{padding-top:6px;padding-bottom:6px}
.ftab th .u{display:block;font-size:10px;letter-spacing:.6px;font-weight:700}
.ftab .sub{display:block;font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:.4px;color:#666;margin-top:3px;text-transform:none}
/* the descriptive column wraps: with table-layout:fixed a long instrument name used to run
   out of its cell and print over the coupon value beside it */
.ftab td.wide{white-space:normal;overflow-wrap:anywhere}
@media(min-width:961px){
    .ftab{table-layout:fixed}
    .ftab th,.ftab td{white-space:nowrap}
  }
.barval{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:700;text-align:right}
@media(max-width:700px){.barrow{grid-template-columns:1fr;gap:4px}.barval{text-align:left}.bartrack{height:16px}}
.src{font-size:12px;color:#555;margin-top:14px;font-family:'IBM Plex Mono',monospace}
.src a{color:var(--ink)}
.disclaimer{background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);margin-top:36px;padding:20px}
.cbar{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:50;width:min(720px,92vw);background:var(--panel);border:3px solid var(--ink);box-shadow:var(--shadow);padding:16px 18px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}
@media(max-width:700px){
    .topnav{position:relative}
  /* the menu anchors to the nav, not to the trigger, so a wrapped nav row on a narrow
     Android screen cannot push it off the left edge; on one-line screens the nav edge
     and the trigger edge are the same point, so the phone layout is unchanged */
  .topnav details{position:static}
  .navmenu{left:auto;right:0;max-width:calc(100vw - 32px)}
    .topnav{font-size:11px}.topnav a{margin-left:8px}
    /* phones: no sideways scrolling. Each table row becomes a stacked card, and every value
       carries its column name as a small label, so the page never pans left and right. */
    .tscroll{overflow:visible;margin:0}
    .tscroll table,.tscroll tbody,.tscroll tr,.tscroll td{display:block;width:100%;box-sizing:border-box}
    .tscroll thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
    .tscroll tr{padding:14px 0;border-bottom:2px solid #e8e0d0}
    .tscroll tr:first-child{padding-top:4px}
    .tscroll td{border:0;padding:3px 0;white-space:normal;text-align:left;overflow-wrap:anywhere}
    .tscroll td.date{white-space:nowrap;overflow-wrap:normal}
    .tscroll td.num{text-align:left}
    .tscroll td:first-child{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.6px;color:#444;padding-bottom:4px}
    .tscroll td.wide{font-size:17px;font-weight:600;line-height:1.35;min-width:0;padding-bottom:6px}
    .tscroll td[data-label]:not(.wide):not(:first-child):before{content:attr(data-label);display:inline-block;min-width:112px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#555}
    .tscroll td:empty{display:none}
    .tscroll .tag{display:block;width:max-content;margin:6px 0 0;padding:1px 7px;font-size:11px;letter-spacing:.6px;line-height:1.5}
  }
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.wrap{max-width:960px;margin:0 auto;padding:32px 20px 140px}
h1{font-size:clamp(28px,4vw,38px);font-weight:700;line-height:1.15;margin:10px 0 6px;letter-spacing:-0.5px}
h2{font-size:19px;font-weight:700;margin:26px 0 8px}
p,li{font-size:15px;color:#333;margin:0 0 12px}
ul{margin:0 0 12px 22px}
.meta{font-family:'IBM Plex Mono',monospace;font-size:13px;margin-top:6px;color:#444}
@media(max-width:700px){
    /* wide data tables scroll inside their panel on a phone instead of widening the page */
    .panel{overflow-x:auto}
    /* phone: the menu still floats over the page as designed, but it is anchored to the right
       edge of its own nav item and clamped, so it can never widen the viewport */
    .topnav{position:relative}
  /* the menu anchors to the nav, not to the trigger, so a wrapped nav row on a narrow
     Android screen cannot push it off the left edge; on one-line screens the nav edge
     and the trigger edge are the same point, so the phone layout is unchanged */
  .topnav details{position:static}
  .navmenu{left:auto;right:0;max-width:calc(100vw - 32px)}
  }
@media(max-width:700px){
    /* TKE-MOBILE-TABLES start: phones get stacked cards, never sideways scrolling */
    .tscroll{overflow:visible;margin:0}
    .tscroll table,.tscroll tbody,.tscroll tr,.tscroll td{display:block;width:100%;box-sizing:border-box}
    .tscroll thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
    .tscroll tr[data-header]{display:none}
    .tscroll tr{padding:14px 0;border-bottom:2px solid #e8e0d0}
    .tscroll tr:first-child{padding-top:4px}
    .tscroll td{border:0;padding:3px 0;white-space:normal;text-align:left;overflow-wrap:anywhere}
    .tscroll td.num{text-align:left}
    .tscroll td:first-child{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.6px;color:#444;padding-bottom:4px}
    .tscroll td.wide{font-size:17px;font-weight:600;line-height:1.35;min-width:0;padding-bottom:6px}
    .tscroll td[data-label]:not(.wide):not(:first-child):before{content:attr(data-label);display:inline-block;min-width:112px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#555}
    .tscroll td:empty{display:none}
    .tscroll .tag{display:block;width:max-content;margin:6px 0 0;padding:1px 7px;font-size:11px;letter-spacing:.6px;line-height:1.5}
    /* TKE-MOBILE-TABLES end */

    /* TKE-MOBILE-TABLES: phones get stacked cards, never sideways scrolling */
    .tscroll{overflow:visible;margin:0}
    .tscroll table,.tscroll tbody,.tscroll tr,.tscroll td{display:block;width:100%;box-sizing:border-box}
    .tscroll thead{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
    .tscroll tr{padding:14px 0;border-bottom:2px solid #e8e0d0}
    .tscroll tr:first-child{padding-top:4px}
    .tscroll td{border:0;padding:3px 0;white-space:normal;text-align:left;overflow-wrap:anywhere}
    .tscroll td.num{text-align:left}
    .tscroll td:first-child{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.6px;color:#444;padding-bottom:4px}
    .tscroll td.wide{font-size:17px;font-weight:600;line-height:1.35;min-width:0;padding-bottom:6px}
    .tscroll td[data-label]:not(.wide):not(:first-child):before{content:attr(data-label);display:inline-block;min-width:112px;font-family:'IBM Plex Mono',monospace;font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#555}
    .tscroll td:empty{display:none}
    .tscroll .tag{display:block;width:max-content;margin:6px 0 0;padding:1px 7px;font-size:11px;letter-spacing:.6px;line-height:1.5}

    /* wide data tables scroll inside their panel on a phone instead of widening the page */
    /* phone: the menu still floats over the page as designed, but it is anchored to the right
       edge of its own nav item and clamped, so it can never widen the viewport */
    .topnav{position:relative}
  /* the menu anchors to the nav, not to the trigger, so a wrapped nav row on a narrow
     Android screen cannot push it off the left edge; on one-line screens the nav edge
     and the trigger edge are the same point, so the phone layout is unchanged */
  .topnav details{position:static}
  .navmenu{left:auto;right:0;max-width:calc(100vw - 32px)}
  }
.tke-status{margin:18px 0 26px;border:2px solid var(--ink);background:var(--panel);padding:16px 18px;box-shadow:4px 4px 0 var(--ink)}
.tke-status table{width:100%;border-collapse:collapse;font-size:14px}
.tke-status th{text-align:left;font-family:'IBM Plex Mono',monospace;font-size:11px;text-transform:uppercase;letter-spacing:1px;border-bottom:2px solid var(--ink);padding:6px 8px}
.tke-status td{padding:7px 8px;border-bottom:1px dashed #d9d2c2;vertical-align:top}
.st-pend{font-family:'IBM Plex Mono',monospace;font-size:10px;text-transform:uppercase;letter-spacing:.5px;border:1px solid var(--ink);padding:1px 5px;white-space:nowrap}
@media(max-width:700px){
.tke-status table,.tke-status thead,.tke-status tbody,.tke-status tr,.tke-status td{display:block;width:100%}
.tke-status thead{display:none}
.tke-status tr{border:2px solid var(--ink);background:#fff;padding:10px 12px;margin:0 0 12px}
.tke-status td{border:0;padding:3px 0;white-space:normal;overflow-wrap:anywhere}
.tke-status td:first-child{font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;padding-bottom:6px}
.tke-status td:nth-child(2)::before{content:"Latest data: ";font-weight:700}
.tke-status td:nth-child(3)::before{content:"Last verified: ";font-weight:700}
.tke-status td:nth-child(4)::before{content:"Source: ";font-weight:700}
}
.kicker{font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;letter-spacing:2px;text-transform:uppercase;background:var(--green);color:#fff;display:inline-block;padding:3px 10px;margin-bottom:10px}
.kicker-stack{display:inline-flex;flex-direction:column;align-items:stretch;padding:0;text-align:center;line-height:1.3;letter-spacing:0}
.kicker-stack .kick-label{display:block;padding:6px 16px 4px;letter-spacing:2px}
.kicker-stack .kick-link{display:block;margin:0;padding:5px 16px 6px;background:none;color:#fff;text-decoration:underline;font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:none}
.kicker-stack .kick-link:hover,.kicker-stack .kick-link:focus{background:rgba(255,255,255,.14);color:#fff}
h1{font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.15;margin:6px 0 4px;letter-spacing:-0.5px}
h1{font-size:clamp(26px,4vw,36px);font-weight:700;line-height:1.15;margin:6px 0 10px;letter-spacing:-0.5px}
.lede{margin:14px 0 0}
@media(max-width:700px){
    /* wide data tables scroll inside their panel on a phone instead of widening the page */
    .panel{overflow-x:auto}
    /* phone: the menu still floats over the page as designed, but it is anchored to the right
       edge of its own nav item and clamped, so it can never widen the viewport */
    .topnav{position:relative}
  /* the menu anchors to the nav, not to the trigger, so a wrapped nav row on a narrow
     Android screen cannot push it off the left edge; on one-line screens the nav edge
     and the trigger edge are the same point, so the phone layout is unchanged */
  .topnav details{position:static}
  .navmenu{left:auto;right:0;max-width:calc(100vw - 32px)}
.topnav{font-size:11px}.topnav a{margin-left:8px}}
.faq details{border:3px solid var(--ink);background:#fff;margin:0 0 10px}
.faq summary{cursor:pointer;font-weight:700;padding:12px 14px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:10px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);width:8px;height:8px;transform:rotate(45deg);flex:0 0 auto;margin-top:-4px}
.faq details[open] summary::after{transform:rotate(225deg);margin-top:4px}
.faq details p{padding:0 14px 12px;margin:0}

/* page-level utilities kept from the old standalone template block */
a{color:var(--ink);text-decoration:underline}
.big{font-family:'IBM Plex Mono',monospace;font-weight:700;font-size:64px;color:var(--green)}
a:hover{color:var(--green)}
.va-1{vertical-align:-1px}
.chartbox{height:340px;margin-top:24px}
.mt12{margin-top:12px}
.col-inherit{color:inherit}
.faq-h{border-bottom:3px solid var(--ink);padding-bottom:8px}
.c14{width:14%}
.mt18{margin-top:18px}

/* TKE-BAR-WIDTHS start: bar widths live here because the CSP refuses inline styles */
.barlist .barfill[data-bar="2026"]{width:15.7%}
.barlist .barfill[data-bar="2025"]{width:9.5%}
.barlist .barfill[data-bar="2024"]{width:100.0%}
.barlist .barfill[data-bar="2023"]{width:52.2%}
.barlist .barfill[data-bar="2022"]{width:48.8%}
.barlist .barfill[data-bar="2021"]{width:57.3%}
.barlist .barfill[data-bar="2020"]{width:38.5%}
.barlist .barfill[data-bar="2019"]{width:54.6%}
.barlist .barfill[data-bar="2018"]{width:3.3%}
.barlist .barfill[data-bar="2017"]{width:2.2%}
/* TKE-BAR-WIDTHS end */
