/* ---------- Design tokens: dhakaeconomist tools scheme ---------- */
  .mxp-root{
    --ink:#172033; --ink2:#1f2a42; --ink3:#28344f;
    --red:#c0392b; --red-dk:#962d22; --gold:#d9a441; --gold-soft:#e8c98a;
    --grey:#8b93a3; --grey-dk:#5a6275; --paper:#f4f2ec; --line:#37425e;
    --good:#7fae6e; --bad:#d96a5b;
    --mono:"SFMono-Regular",Consolas,"Liberation Mono",Menlo,monospace;
    --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
    font-family:var(--sans); color:var(--paper); background:var(--ink);
    line-height:1.45; box-sizing:border-box;
    max-width:1280px; margin:0 auto; border-radius:10px; overflow:hidden;
    border:1px solid var(--line); box-shadow:0 18px 50px rgba(0,0,0,.45);
    position:relative;
  }
  .mxp-root *,.mxp-root *::before,.mxp-root *::after{box-sizing:inherit;}
  .mxp-root button{font-family:inherit; cursor:pointer;}
  .mxp-root h1,.mxp-root h2,.mxp-root h3{margin:0; line-height:1.2;}

  /* ---------- Header ---------- */
  .mxp-head{
    display:flex; align-items:center; gap:14px; flex-wrap:wrap;
    padding:12px 18px; background:linear-gradient(180deg,var(--ink2),var(--ink));
    border-bottom:2px solid var(--red);
  }
  .mxp-logo{font-size:1.25rem; font-weight:800; letter-spacing:.04em;}
  .mxp-logo span{color:var(--gold);}
  .mxp-tagline{color:var(--grey); font-size:.78rem; letter-spacing:.06em; text-transform:uppercase;}
  .mxp-head-stats{margin-left:auto; display:flex; gap:18px; flex-wrap:wrap;}
  .mxp-hstat{text-align:right;}
  .mxp-hstat .lab{font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:var(--grey);}
  .mxp-hstat .val{font-family:var(--mono); font-size:1.05rem; color:var(--gold);}

  /* ---------- Layout ---------- */
  .mxp-main{display:grid; grid-template-columns:minmax(0,1.35fr) minmax(330px,1fr); gap:0;}
  @media (max-width:920px){ .mxp-main{grid-template-columns:1fr;} }

  /* ---------- City board ---------- */
  .mxp-board{position:relative; background:radial-gradient(ellipse at 50% 30%, #20305a00 0%, transparent 60%), var(--ink);}
  #mxpCity{display:block; width:100%; height:auto; touch-action:manipulation;}
  .mxp-palette{
    display:flex; flex-wrap:wrap; gap:6px; padding:10px 12px;
    background:var(--ink2); border-top:1px solid var(--line);
  }
  .mxp-tool{
    background:var(--ink3); color:var(--paper); border:1px solid var(--line);
    border-radius:8px; padding:6px 9px; font-size:.78rem; display:flex; gap:6px; align-items:center;
    transition:transform .08s ease, border-color .12s ease;
  }
  .mxp-tool:hover{border-color:var(--gold);}
  .mxp-tool.sel{border-color:var(--red); background:#3a2330; transform:translateY(-1px);}
  .mxp-tool .em{font-size:1rem;}
  .mxp-tool .cost{font-family:var(--mono); color:var(--gold-soft); font-size:.72rem;}
  .mxp-tool:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .mxp-boardhint{position:absolute; top:8px; left:12px; font-size:.72rem; color:var(--grey); background:rgba(23,32,51,.75); padding:3px 8px; border-radius:6px; pointer-events:none;}

  /* ---------- Right panel ---------- */
  .mxp-side{border-left:1px solid var(--line); background:var(--ink2); display:flex; flex-direction:column; min-width:0;}
  @media (max-width:920px){ .mxp-side{border-left:none; border-top:1px solid var(--line);} }
  .mxp-tabs{display:flex; flex-wrap:wrap; border-bottom:1px solid var(--line);}
  .mxp-tab{
    flex:1; min-width:70px; background:transparent; border:none; color:var(--grey);
    padding:9px 4px; font-size:.74rem; letter-spacing:.05em; text-transform:uppercase;
    border-bottom:2px solid transparent;
  }
  .mxp-tab.on{color:var(--gold); border-bottom-color:var(--red);}
  .mxp-tab:focus-visible{outline:2px solid var(--gold); outline-offset:-2px;}
  .mxp-pane{display:none; padding:12px 14px; overflow-y:auto; max-height:460px;}
  .mxp-pane.on{display:block;}

  /* Indicators */
  .mxp-grid2{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
  .mxp-stat{background:var(--ink3); border:1px solid var(--line); border-radius:8px; padding:8px 10px;}
  .mxp-stat .lab{font-size:.64rem; text-transform:uppercase; letter-spacing:.09em; color:var(--grey);}
  .mxp-stat .val{font-family:var(--mono); font-size:1.12rem; margin-top:2px;}
  .mxp-stat .sub{font-size:.68rem; color:var(--grey); font-family:var(--mono);}
  .mxp-up{color:var(--good);} .mxp-dn{color:var(--bad);} .mxp-gold{color:var(--gold);}
  .mxp-adsplit{margin-top:10px; background:var(--ink3); border:1px solid var(--line); border-radius:8px; padding:8px 10px;}
  .mxp-adbar{display:flex; height:18px; border-radius:5px; overflow:hidden; margin:6px 0 4px;}
  .mxp-adbar div{min-width:2px;}
  .mxp-legend{display:flex; flex-wrap:wrap; gap:10px; font-size:.68rem; color:var(--grey);}
  .mxp-legend i{display:inline-block; width:9px; height:9px; border-radius:2px; margin-right:4px;}

  .mxp-chartwrap{background:var(--ink3); border:1px solid var(--line); border-radius:8px; padding:8px;}
  .mxp-chartwrap canvas{display:block; width:100%; height:auto;}
  .mxp-chartnote{font-size:.72rem; color:var(--grey); margin-top:6px;}
  .mxp-minibtns{display:flex; gap:6px; margin-bottom:8px;}
  .mxp-minibtn{background:var(--ink3); border:1px solid var(--line); color:var(--grey); font-size:.7rem; padding:4px 9px; border-radius:6px;}
  .mxp-minibtn.on{color:var(--gold); border-color:var(--gold);}

  /* Econopedia */
  .mxp-ency h3{color:var(--gold); font-size:.9rem; margin:12px 0 4px; border-bottom:1px dashed var(--line); padding-bottom:3px;}
  .mxp-ency p{font-size:.8rem; color:#d8d4c8; margin:4px 0;}
  .mxp-ency em{color:var(--gold-soft); font-style:normal;}

  /* ---------- Policy console ---------- */
  .mxp-console{
    display:grid; grid-template-columns:repeat(4,minmax(150px,1fr)) auto; gap:12px; align-items:end;
    padding:12px 16px; background:var(--ink2); border-top:2px solid var(--red);
  }
  @media (max-width:920px){ .mxp-console{grid-template-columns:1fr 1fr;} }
  .mxp-lever .lab{font-size:.66rem; text-transform:uppercase; letter-spacing:.09em; color:var(--grey); display:flex; justify-content:space-between;}
  .mxp-lever .lab b{font-family:var(--mono); color:var(--gold); font-weight:600;}
  .mxp-lever input[type=range]{width:100%; accent-color:var(--red); margin-top:6px;}
  .mxp-endyear{
    background:var(--red); color:#fff; border:none; border-radius:8px;
    font-size:.95rem; font-weight:700; padding:12px 22px; letter-spacing:.03em;
    box-shadow:0 4px 0 var(--red-dk); transition:transform .07s ease;
  }
  .mxp-endyear:hover{transform:translateY(-1px);}
  .mxp-endyear:active{transform:translateY(2px); box-shadow:0 1px 0 var(--red-dk);}
  .mxp-endyear:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  @media (max-width:920px){ .mxp-endyear{grid-column:1/-1;} }

  /* ---------- Ticker / log ---------- */
  .mxp-ticker{padding:8px 16px; font-size:.76rem; color:var(--grey); background:var(--ink); border-top:1px solid var(--line); max-height:84px; overflow-y:auto;}
  .mxp-ticker p{margin:2px 0;}
  .mxp-ticker .yr{font-family:var(--mono); color:var(--gold); margin-right:6px;}
  .mxp-ticker .ev{color:var(--gold-soft);}

  /* ---------- Modals & toasts ---------- */
  .mxp-overlay{
    position:absolute; inset:0; background:rgba(13,18,30,.86); display:none;
    align-items:center; justify-content:center; z-index:40; padding:18px;
  }
  .mxp-overlay.on{display:flex;}
  .mxp-modal{
    background:var(--ink2); border:1px solid var(--line); border-top:3px solid var(--red);
    border-radius:10px; max-width:560px; width:100%; max-height:88%; overflow-y:auto; padding:20px 22px;
  }
  .mxp-modal h2{color:var(--gold); font-size:1.2rem; margin-bottom:8px;}
  .mxp-modal p{font-size:.86rem; color:#d8d4c8; margin:6px 0;}
  .mxp-modal .econ{background:var(--ink3); border-left:3px solid var(--gold); padding:8px 12px; border-radius:0 6px 6px 0; margin-top:10px;}
  .mxp-modal .econ b{color:var(--gold-soft);}
  .mxp-btn{background:var(--red); color:#fff; border:none; border-radius:7px; padding:9px 16px; font-size:.85rem; font-weight:600; margin-top:12px;}
  .mxp-btn.ghost{background:var(--ink3); color:var(--paper); border:1px solid var(--line);}
  .mxp-btn:focus-visible{outline:2px solid var(--gold); outline-offset:2px;}
  .mxp-scen{display:block; width:100%; text-align:left; background:var(--ink3); border:1px solid var(--line); border-radius:8px; padding:11px 14px; margin:8px 0; color:var(--paper);}
  .mxp-scen:hover{border-color:var(--gold);}
  .mxp-scen b{color:var(--gold);} .mxp-scen small{display:block; color:var(--grey); margin-top:2px; font-size:.74rem;}
  .mxp-toast{
    position:absolute; bottom:14px; left:50%; transform:translateX(-50%) translateY(20px);
    background:var(--ink3); border:1px solid var(--gold); color:var(--gold-soft);
    padding:8px 16px; border-radius:8px; font-size:.78rem; opacity:0; transition:all .3s ease;
    z-index:50; pointer-events:none; max-width:80%; text-align:center;
  }
  .mxp-toast.on{opacity:1; transform:translateX(-50%) translateY(0);}
  @media (prefers-reduced-motion:reduce){ .mxp-root *{transition:none!important; animation:none!important;} }
