:root{
  --ink:#111111; --paper:#f4efe1; --card:#ffffff;
  --yellow:#ffd23f; --mint:#7ee787; --sky:#79c0ff; --coral:#ff6b57;
  --lav:#c3a6ff; --lime:#c9f24d; --pink:#ff9ecb; --orange:#ffa94d;
  --shadow:6px 6px 0 var(--ink);
  --shadow-lg:10px 10px 0 var(--ink);
}
*{box-sizing:border-box;margin:0;padding:0;}
body{font-family:'Space Grotesk',system-ui,sans-serif;background:var(--paper);color:var(--ink);
     background-image:radial-gradient(var(--ink) 1.1px, transparent 1.1px);background-size:26px 26px;}
.wrap{max-width:1180px;margin:0 auto;padding:22px 20px 60px;}
a{color:inherit;}

/* ===== nav ===== */
nav{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;
    border:4px solid var(--ink);background:var(--card);box-shadow:var(--shadow);padding:12px 16px;margin-bottom:22px;}
nav .logo{font-family:'Archivo Black';font-size:16px;text-transform:uppercase;letter-spacing:.5px;}
nav .logo span{background:var(--yellow);padding:2px 8px;border:3px solid var(--ink);margin-right:6px;display:inline-block;}
nav .links{display:flex;gap:10px;flex-wrap:wrap;}
nav .links a{font-family:'Space Mono',monospace;font-weight:700;font-size:12px;text-transform:uppercase;
    text-decoration:none;border:3px solid var(--ink);padding:7px 13px;background:var(--card);box-shadow:3px 3px 0 var(--ink);transition:all .1s;}
nav .links a:hover{transform:translate(-2px,-2px);box-shadow:5px 5px 0 var(--ink);}
nav .links a.active{background:var(--ink);color:var(--paper);}

/* ===== header hero ===== */
header.hero{border:4px solid var(--ink);background:var(--yellow);box-shadow:var(--shadow-lg);
       padding:26px 26px 22px;position:relative;overflow:hidden;margin-bottom:24px;}
header.hero h1{font-family:'Archivo Black',sans-serif;font-size:clamp(26px,5vw,48px);line-height:.98;letter-spacing:-1px;text-transform:uppercase;}
header.hero p{font-size:clamp(14px,2vw,17px);margin-top:12px;max-width:760px;font-weight:500;}
.badge{position:absolute;top:18px;right:-52px;background:var(--coral);color:#fff;font-family:'Archivo Black';
       font-size:13px;letter-spacing:1px;padding:8px 60px;transform:rotate(35deg);border:3px solid var(--ink);text-transform:uppercase;}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px;}
.chip{background:var(--card);border:3px solid var(--ink);padding:6px 12px;font-family:'Space Mono',monospace;
      font-size:12px;font-weight:700;box-shadow:3px 3px 0 var(--ink);}

/* ===== canvas grid ===== */
.canvas{display:grid;gap:16px;
  grid-template-columns:repeat(5,1fr);
  grid-template-areas:
    "kp ka vp cr cs"
    "kp kr vp ch cs"
    "cost cost cost rev rev";}
.cell{background:var(--card);border:4px solid var(--ink);box-shadow:var(--shadow);
      display:flex;flex-direction:column;transition:transform .12s ease, box-shadow .12s ease;cursor:pointer;}
.cell:hover{transform:translate(-4px,-4px);box-shadow:var(--shadow-lg);}
.cell .head{font-family:'Archivo Black',sans-serif;font-size:15px;text-transform:uppercase;letter-spacing:.5px;
      padding:11px 14px;border-bottom:4px solid var(--ink);display:flex;align-items:center;justify-content:space-between;gap:8px;}
.cell .num{font-family:'Space Mono',monospace;font-size:12px;background:var(--ink);color:#fff;min-width:24px;height:24px;
      display:flex;align-items:center;justify-content:center;border-radius:50%;}
.cell ul{list-style:none;padding:13px 15px;display:flex;flex-direction:column;gap:8px;}
.cell li{font-size:13.5px;line-height:1.4;font-weight:500;padding-left:16px;position:relative;}
.cell li::before{content:"■";position:absolute;left:0;top:1px;font-size:9px;}
.cell .more{margin:auto 15px 12px;font-family:'Space Mono',monospace;font-size:10.5px;font-weight:700;
      text-transform:uppercase;color:#555;}
.kp{grid-area:kp;background:var(--lav);}  .kp .head{background:var(--lav);}
.ka{grid-area:ka;} .ka .head{background:var(--sky);}
.kr{grid-area:kr;} .kr .head{background:var(--mint);}
.vp{grid-area:vp;border-width:5px;} .vp .head{background:var(--coral);color:#fff;font-size:17px;}
.cr{grid-area:cr;} .cr .head{background:var(--pink);}
.ch{grid-area:ch;} .ch .head{background:var(--pink);}
.cs{grid-area:cs;background:var(--lime);} .cs .head{background:var(--lime);}
.cost{grid-area:cost;} .cost .head{background:var(--orange);}
.rev{grid-area:rev;} .rev .head{background:var(--yellow);}

/* dimming filter */
.cell.dim{opacity:.25;filter:grayscale(1);}

/* ===== filter bar ===== */
.filterbar{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 18px;align-items:center;}
.filterbar .fl{font-family:'Space Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;}
.fbtn{font-family:'Space Mono',monospace;font-size:11px;font-weight:700;text-transform:uppercase;
  border:3px solid var(--ink);background:var(--card);padding:6px 12px;cursor:pointer;box-shadow:3px 3px 0 var(--ink);}
.fbtn.on{background:var(--ink);color:var(--paper);}
.fbtn:active{transform:translate(3px,3px);box-shadow:none;}

/* ===== modal ===== */
.modal-bg{position:fixed;inset:0;background:rgba(17,17,17,.55);display:none;align-items:center;justify-content:center;z-index:50;padding:18px;}
.modal-bg.open{display:flex;}
.modal{background:var(--card);border:4px solid var(--ink);box-shadow:var(--shadow-lg);max-width:640px;width:100%;
  max-height:86vh;overflow:auto;}
.modal .mhead{font-family:'Archivo Black';text-transform:uppercase;font-size:18px;padding:14px 18px;border-bottom:4px solid var(--ink);
  display:flex;justify-content:space-between;align-items:center;gap:10px;}
.modal .mbody{padding:16px 18px;}
.modal .mbody p{font-size:14px;line-height:1.55;margin-bottom:10px;}
.modal .mbody ul{margin:0 0 12px 18px;}
.modal .mbody li{font-size:13.5px;margin-bottom:6px;line-height:1.45;}
.inote{border:3px solid var(--ink);background:var(--yellow);padding:12px 14px;margin-top:6px;box-shadow:4px 4px 0 var(--ink);}
.inote .il{font-family:'Archivo Black';font-size:11px;text-transform:uppercase;letter-spacing:1px;margin-bottom:5px;}
.inote p{font-size:13px;margin:0;}
.xbtn{border:3px solid var(--ink);background:var(--coral);color:#fff;font-family:'Archivo Black';font-size:13px;
  width:34px;height:34px;cursor:pointer;box-shadow:3px 3px 0 var(--ink);line-height:1;}
.xbtn:active{transform:translate(3px,3px);box-shadow:none;}

/* ===== stat tiles / dashboard ===== */
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:14px;margin:18px 0;}
.tile{background:var(--card);border:4px solid var(--ink);box-shadow:var(--shadow);padding:16px 16px 14px;position:relative;overflow:hidden;}
.tile::before{content:"";position:absolute;top:0;left:0;width:100%;height:6px;background:var(--yellow);}
.tile.mintt::before{background:var(--mint);} .tile.lavt::before{background:var(--lav);}
.tile.coralt::before{background:var(--coral);} .tile.skyt::before{background:var(--sky);}
.tile .n{font-family:'Archivo Black';font-size:clamp(22px,3vw,30px);line-height:1;margin-top:4px;}
.tile .l{font-family:'Space Mono',monospace;font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:#555;margin-top:8px;}

.yearbar{display:flex;gap:10px;margin:6px 0 4px;flex-wrap:wrap;}
.ybtn{font-family:'Archivo Black';font-size:14px;text-transform:uppercase;border:4px solid var(--ink);
  background:var(--card);padding:10px 22px;cursor:pointer;box-shadow:4px 4px 0 var(--ink);}
.ybtn.on{background:var(--ink);color:var(--paper);}
.ybtn:active{transform:translate(3px,3px);box-shadow:none;}

.panelbox{background:var(--card);border:4px solid var(--ink);box-shadow:var(--shadow);padding:18px;margin-bottom:20px;}
.panelbox h2{font-family:'Archivo Black';font-size:18px;text-transform:uppercase;margin-bottom:12px;
  display:inline-block;background:var(--mint);border:3px solid var(--ink);padding:4px 12px;box-shadow:3px 3px 0 var(--ink);}
.panelbox.alt h2{background:var(--lav);}
.panelbox.warn h2{background:var(--coral);color:#fff;}
.chartwrap{position:relative;height:300px;}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:820px){.grid2{grid-template-columns:1fr;}}

table.brut{width:100%;border-collapse:collapse;font-size:13px;}
table.brut th,table.brut td{border:3px solid var(--ink);padding:9px 11px;text-align:right;}
table.brut th:first-child,table.brut td:first-child{text-align:left;}
table.brut thead th{background:var(--ink);color:var(--paper);font-family:'Space Mono',monospace;font-size:11px;text-transform:uppercase;}
table.brut .tot{background:var(--yellow);font-weight:700;}

/* accordion */
.acc{border:4px solid var(--ink);box-shadow:var(--shadow);background:var(--card);margin-bottom:14px;}
.acc summary{font-family:'Archivo Black';font-size:14px;text-transform:uppercase;padding:13px 16px;cursor:pointer;list-style:none;
  display:flex;justify-content:space-between;align-items:center;}
.acc summary::after{content:"+";font-size:20px;}
.acc[open] summary::after{content:"–";}
.acc[open] summary{border-bottom:4px solid var(--ink);background:var(--paper);}
.acc .abody{padding:14px 16px;font-size:13.5px;line-height:1.55;}
.acc .abody p{margin-bottom:8px;}

.usefunds .row{display:flex;align-items:center;gap:12px;margin-bottom:12px;}
.usefunds .lbl{flex:0 0 300px;font-size:13px;font-weight:700;}
.usefunds .track{flex:1;height:26px;border:3px solid var(--ink);background:var(--card);position:relative;}
.usefunds .fill{height:100%;display:flex;align-items:center;justify-content:flex-end;padding-right:8px;
  font-family:'Space Mono',monospace;font-size:11px;font-weight:700;}
@media(max-width:700px){.usefunds .lbl{flex-basis:100%;}.usefunds .row{flex-wrap:wrap;}}

footer.site{margin-top:26px;border:4px solid var(--ink);background:var(--ink);color:var(--paper);
       padding:18px 22px;box-shadow:var(--shadow);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:center;}
footer.site .fmono{font-family:'Space Mono',monospace;font-size:11px;}
.btn{background:var(--lime);color:var(--ink);border:3px solid var(--ink);font-family:'Archivo Black';
     font-size:12px;text-transform:uppercase;padding:10px 18px;cursor:pointer;box-shadow:4px 4px 0 var(--ink);text-decoration:none;display:inline-block;}
.btn:active{transform:translate(3px,3px);box-shadow:none;}
.btn.dark{background:var(--ink);color:var(--paper);border-color:var(--paper);box-shadow:4px 4px 0 rgba(0,0,0,.35);}

.disclaimer{font-family:'Space Mono',monospace;font-size:10.5px;color:#555;margin-top:14px;line-height:1.5;}

@media(max-width:900px){
  .canvas{grid-template-columns:1fr 1fr;
    grid-template-areas:
      "vp vp" "kp cs" "ka kr" "cr ch" "cost cost" "rev rev";}
}
@media(max-width:560px){
  .canvas{grid-template-columns:1fr;
    grid-template-areas:"vp" "cs" "kp" "ka" "kr" "cr" "ch" "cost" "rev";}
  .badge{display:none;}
}
