:root{
  --paper:#F6F4EF;
  --paper-2:#EFECE3;
  --ink:#121316;
  --red:#D7261E;
  --line:#DDD9CF;
  --muted:#6B6862;
  --olive:#4F5B3A;
  --mast-h:82px;
  --dock-h:124px;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html,body{margin:0;padding:0}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'IBM Plex Sans Arabic',system-ui,-apple-system,'Segoe UI',Tahoma,sans-serif;
  font-size:15px;line-height:1.55;
  overscroll-behavior-y:none;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,h4{font-family:'Noto Kufi Arabic','IBM Plex Sans Arabic',system-ui,sans-serif;margin:0;line-height:1.3;font-weight:700}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
button{font-family:inherit;font-size:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;user-select:none;-webkit-user-select:none}
input,select,textarea{font-family:inherit;font-size:16px;color:inherit}
[hidden]{display:none !important}
.num{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1;font-family:'IBM Plex Sans Arabic',monospace}
.kicker{font-size:10.5px;color:var(--muted);font-weight:600;letter-spacing:0}
.kicker::before{content:"";display:inline-block;width:12px;height:1px;background:var(--muted);vertical-align:middle;margin-inline-end:6px}

/* ---------- boot ---------- */
.boot{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;text-align:center}
.boot__t{font-family:'Noto Kufi Arabic',sans-serif;font-weight:900;font-size:26px}
.boot__s{color:var(--muted);font-size:14px}

/* ---------- setup ---------- */
.setup{min-height:100vh;padding:28px 16px 40px;max-width:720px;margin:0 auto}
.setup__kicker{font-size:11px;color:var(--red);font-weight:700}
.setup__title{font-size:34px;font-weight:900;margin-top:6px;line-height:1.15}
.setup__lede{color:var(--muted);font-size:14px;margin-top:8px;max-width:52ch}
.setup__rule{height:1px;background:var(--ink);margin:18px 0 4px}
.setup__list{border-top:1px solid var(--line)}
.crow{display:flex;align-items:center;gap:10px;width:100%;text-align:start;padding:11px 2px;border-bottom:1px solid var(--line);transition:background .12s}
.crow:active{background:var(--paper-2)}
.crow__flag{font-size:20px;width:28px;text-align:center;flex:0 0 28px;line-height:1}
.crow__name{font-weight:600;font-size:14.5px;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.crow__meta{font-size:11.5px;color:var(--muted);flex:0 0 auto;text-align:end;line-height:1.3}
.setup__field{margin-top:20px}
.setup__label{font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px;display:block}
.setup__input{width:100%;background:transparent;border:1px solid var(--ink);border-radius:2px;padding:11px 12px;outline:none}
.setup__input:focus{border-color:var(--red);box-shadow:0 0 0 2px rgba(215,38,30,.16)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}
.chip{border:1px solid var(--line);border-radius:2px;padding:8px 12px;font-size:13px;font-weight:600;color:var(--ink);background:var(--paper)}
.chip[aria-pressed="true"]{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.variants{display:flex;gap:10px;margin-top:8px}
.variant{width:74px;border:1px solid var(--line);border-radius:2px;padding:3px;background:var(--paper)}
.variant[aria-pressed="true"]{border-color:var(--red);border-width:2px;padding:2px}

/* ---------- buttons ---------- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:10px 14px;border:1px solid var(--ink);border-radius:2px;font-weight:600;font-size:13.5px;background:var(--paper);color:var(--ink);transition:background .12s,color .12s}
.btn:active{background:var(--ink);color:var(--paper)}
.btn--red{background:var(--red);border-color:var(--red);color:#fff}
.btn--red:active{background:#a91d17;border-color:#a91d17}
.btn--ghost{border-color:var(--line);color:var(--muted)}
.btn--ghost:active{background:var(--paper-2);color:var(--ink)}
.btn--sm{min-height:36px;padding:6px 10px;font-size:12.5px}
.btn--wide{width:100%}
.btn:disabled{opacity:.4;cursor:not-allowed}
.btn--danger{color:var(--red);border-color:var(--red)}
.btn--danger:active{background:var(--red);color:#fff}
.xbtn{width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--line);border-radius:2px;font-size:15px;color:var(--muted)}
.xbtn:active{background:var(--paper-2)}

/* ---------- masthead ---------- */
.mast{position:fixed;left:0;right:0;top:0;z-index:40;background:var(--paper);border-bottom:1px solid var(--ink);padding:7px 16px 0}
.mast__top{display:flex;align-items:center;gap:9px}
.mast__flag{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--ink);border-radius:2px;font-size:17px;line-height:1;background:var(--paper);flex:0 0 auto;overflow:hidden}
.mast__name{font-family:'Noto Kufi Arabic',sans-serif;font-weight:900;font-size:15px;flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mast__day{flex:0 0 auto;font-size:11px;font-weight:700;color:var(--paper);background:var(--ink);padding:3px 7px;border-radius:2px}
.mast__meta{display:flex;justify-content:space-between;gap:8px;font-size:10.5px;color:var(--muted);padding:4px 0 5px;border-top:1px solid var(--line);margin-top:6px}
.mast__meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ---------- view ---------- */
.view{padding:calc(var(--mast-h) + 10px) 16px calc(var(--dock-h) + 16px);max-width:820px;margin:0 auto}
.sec{margin-top:20px}
.sec__head{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--ink);padding-bottom:5px;margin-bottom:2px}
.sec__title{font-family:'Noto Kufi Arabic',sans-serif;font-size:14px;font-weight:700}
.sec__note{font-size:10.5px;color:var(--muted);white-space:nowrap}

/* ---------- rows ---------- */
.rows{border-top:1px solid var(--line)}
.rows:first-child{border-top:0}
.row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 2px;border-bottom:1px solid var(--line);min-height:38px}
.row__k{font-size:13px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row__v{font-size:13.5px;font-weight:600;white-space:nowrap;flex:0 0 auto}
.row--sub .row__k{font-size:11.5px;color:var(--muted);padding-inline-start:12px}
.row--total{border-bottom:1px solid var(--ink);border-top:1px solid var(--ink);font-weight:700}
.neg{color:var(--red)}
.pos{color:var(--olive)}

/* ---------- hero / president ---------- */
.hero{display:flex;gap:14px;align-items:flex-start;padding-top:4px}
.hero__pic{width:96px;flex:0 0 96px;border:1px solid var(--ink);border-radius:2px;overflow:hidden;background:#fff}
.hero__pic svg{display:block;width:100%;height:auto}
.hero__body{flex:1 1 auto;min-width:0}
.hero__role{font-size:10.5px;color:var(--red);font-weight:700}
.hero__name{font-family:'Noto Kufi Arabic',sans-serif;font-size:18px;font-weight:900;margin:2px 0 2px;line-height:1.25}
.hero__sub{font-size:11.5px;color:var(--muted)}
.quote{border-inline-start:2px solid var(--red);padding-inline-start:10px;margin-top:4px;font-size:12.5px;color:var(--ink)}

/* ---------- stat grid ---------- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:0;border-top:1px solid var(--line)}
.stat{padding:9px 0;border-bottom:1px solid var(--line)}
.stat:nth-child(odd){padding-inline-end:12px}
.stat:nth-child(even){border-inline-start:1px solid var(--line);padding-inline-start:12px}
.stat__k{font-size:10.5px;color:var(--muted);font-weight:600}
.stat__v{font-family:'Noto Kufi Arabic',sans-serif;font-size:19px;font-weight:700;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.stat__d{font-size:10.5px;color:var(--muted)}
.spark{display:block;width:100%;height:24px;margin-top:2px;color:var(--muted)}

/* ---------- meters ---------- */
.meter{height:4px;background:var(--line);border-radius:2px;overflow:hidden;margin-top:5px}
.meter__f{height:100%;background:var(--ink);border-radius:2px;transition:width .3s}
.meter__f--red{background:var(--red)}
.meter__f--olive{background:var(--olive)}

/* ---------- seals ---------- */
.seal{width:44px;height:44px;flex:0 0 44px;border-radius:50%;border:1px solid var(--ink);display:grid;place-items:center;font-family:'Noto Kufi Arabic',sans-serif;font-weight:700;font-size:13px;background:var(--paper);position:relative;overflow:hidden}
.seal--empty{border-style:dashed;color:var(--muted);font-size:16px}
.seal--bad::after{content:"";position:absolute;inset-inline:0;bottom:0;height:2px;background:var(--red)}
.sq{width:34px;height:34px;flex:0 0 34px;border-radius:2px;display:grid;place-items:center;font-family:'Noto Kufi Arabic',sans-serif;font-weight:900;font-size:14px;color:#fff}
.sq--red{background:var(--red)}
.sq--ink{background:var(--ink)}
.sq--olive{background:var(--olive)}
.marks{display:flex;gap:3px;margin-top:4px}
.marks i{display:block;width:12px;height:3px;background:var(--line);border-radius:1px}
.marks i.on{background:var(--ink)}

/* ---------- cabinet item ---------- */
.min{display:flex;gap:11px;align-items:flex-start;padding:11px 2px;border-bottom:1px solid var(--line)}
.min__body{flex:1 1 auto;min-width:0}
.min__title{display:flex;align-items:baseline;gap:6px;justify-content:space-between}
.min__name{font-weight:700;font-size:13.5px}
.min__budget{font-size:11.5px;color:var(--muted);white-space:nowrap}
.min__holder{font-size:12px;color:var(--muted);margin-top:1px}
.min__acts{display:flex;gap:6px;margin-top:7px;flex-wrap:wrap}
.cand{border:1px solid var(--line);border-radius:2px;padding:8px;margin-top:7px;background:var(--paper)}
.cand__row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.cand__name{font-size:13px;font-weight:600}
.cand__attrs{display:flex;gap:10px;font-size:10.5px;color:var(--muted);margin-top:5px}
.cand__attrs b{color:var(--ink);font-weight:700}

/* ---------- events ---------- */
.ev{border-top:1px solid var(--line);padding:11px 0}
.ev:first-child{border-top:0}
.ev__tag{display:inline-block;font-size:10px;font-weight:700;color:var(--paper);background:var(--ink);padding:2px 6px;border-radius:2px;margin-bottom:5px}
.ev__tag--red{background:var(--red)}
.ev__title{font-family:'Noto Kufi Arabic',sans-serif;font-size:14px;font-weight:700;line-height:1.35}
.ev__body{font-size:12.5px;color:var(--muted);margin-top:3px;line-height:1.6}
.ev__choices{margin-top:8px;display:flex;flex-direction:column;gap:0;border-top:1px solid var(--line)}
.choice{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 2px;border-bottom:1px solid var(--line);text-align:start;font-size:12.5px;font-weight:600;width:100%;min-height:44px}
.choice:active{background:var(--paper-2)}
.choice__h{font-size:10.5px;color:var(--muted);font-weight:400;flex:0 0 auto}
.choice--done{color:var(--olive);font-weight:500}
.answered{border-inline-start:2px solid var(--olive);padding-inline-start:9px;margin-top:6px;font-size:12px;color:var(--olive)}

/* ---------- news ---------- */
.news{border-top:1px solid var(--line)}
.news__i{padding:8px 2px;border-bottom:1px solid var(--line)}
.news__src{font-size:10px;color:var(--red);font-weight:700}
.news__src--opp{color:var(--ink)}
.news__t{font-size:12.5px;line-height:1.5;margin-top:1px}

/* ---------- parties ---------- */
.seatbar{display:flex;height:14px;border:1px solid var(--ink);border-radius:2px;overflow:hidden;margin:8px 0 4px}
.seatbar div{height:100%}
.party{display:flex;gap:9px;align-items:center;padding:9px 2px;border-bottom:1px solid var(--line)}
.party__body{flex:1 1 auto;min-width:0}
.party__name{font-size:13px;font-weight:600}
.party__meta{font-size:10.5px;color:var(--muted)}
.party__seats{font-family:'Noto Kufi Arabic',sans-serif;font-weight:700;font-size:15px;flex:0 0 auto}

/* ---------- decrees ---------- */
.dec{display:flex;gap:10px;align-items:flex-start;padding:10px 2px;border-bottom:1px solid var(--line)}
.dec__body{flex:1 1 auto}
.dec__t{font-size:13px;font-weight:600}
.dec__d{font-size:11.5px;color:var(--muted);line-height:1.45}
.dec__c{font-size:10.5px;font-weight:700;color:var(--red);white-space:nowrap;flex:0 0 auto}

/* ---------- map ---------- */
.map{border:1px solid var(--line);border-radius:2px;background:var(--paper-2);padding:6px}
.map svg{display:block;width:100%;height:auto}
.legend{display:flex;gap:14px;font-size:10.5px;color:var(--muted);margin-top:6px;flex-wrap:wrap}
.legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-inline-end:4px;vertical-align:middle}

/* ---------- dock ---------- */
.dock{position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--paper);border-top:1px solid var(--ink)}
.dock__advance{display:flex;align-items:center;justify-content:center;gap:8px;width:calc(100% - 20px);margin:8px 10px;height:50px;background:var(--red);color:#fff;border-radius:2px;font-family:'Noto Kufi Arabic',sans-serif;font-weight:700;font-size:15px;transition:background .12s,transform .08s}
.dock__advance:active{background:#a91d17;transform:scale(.99)}
.dock__advance small{font-family:'IBM Plex Sans Arabic',sans-serif;font-weight:500;font-size:11px;opacity:.85}
.dock__tabs{display:flex;border-top:1px solid var(--line)}
.tabb{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:7px 0 8px;min-height:56px;color:var(--muted);font-size:10.5px;font-weight:600;position:relative}
.tabb svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.tabb[aria-selected="true"]{color:var(--ink)}
.tabb[aria-selected="true"]::before{content:"";position:absolute;top:-1px;inset-inline:14px;height:2px;background:var(--red)}
.tabb:active{background:var(--paper-2)}

/* ---------- sheet ---------- */
.sheet{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;background:rgba(18,19,22,.46)}
.sheet__panel{width:100%;max-height:88vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--paper);border-top:2px solid var(--ink);padding:0 16px 26px;border-radius:2px 2px 0 0}
.sheet__head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:14px 0 8px;position:sticky;top:0;background:var(--paper);border-bottom:1px solid var(--ink);z-index:2}
.sheet__title{font-family:'Noto Kufi Arabic',sans-serif;font-size:17px;font-weight:900}
.sheet__sub{font-size:11px;color:var(--muted)}

/* ---------- game over ---------- */
.over{position:fixed;inset:0;z-index:90;background:var(--paper);overflow-y:auto;padding:40px 20px;display:flex;flex-direction:column;justify-content:center;max-width:560px;margin:0 auto}
.over__tag{font-size:11px;font-weight:700;color:var(--red)}
.over__title{font-family:'Noto Kufi Arabic',sans-serif;font-size:30px;font-weight:900;line-height:1.2;margin-top:6px}
.over__body{color:var(--muted);font-size:13.5px;margin-top:8px;line-height:1.6}
.over__stats{border-top:1px solid var(--ink);margin-top:18px}
.over__acts{display:flex;flex-direction:column;gap:8px;margin-top:22px}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--dock-h) + 14px);z-index:95;background:var(--ink);color:var(--paper);font-size:12.5px;font-weight:600;padding:9px 16px;border-radius:2px;max-width:88vw;text-align:center;animation:tin .2s ease-out}
@keyframes tin{from{opacity:0;transform:translateX(-50%) translateY(6px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}

/* ---------- misc ---------- */
.note{font-size:11.5px;color:var(--muted);line-height:1.55;margin-top:6px}
.empty{padding:18px 2px;font-size:12.5px;color:var(--muted);text-align:center;border-bottom:1px solid var(--line)}
.duo{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}
.duo>*{flex:1 1 auto}
.bar-row{display:flex;align-items:center;gap:8px;padding:7px 2px;border-bottom:1px solid var(--line)}
.bar-row__k{font-size:12.5px;flex:0 0 92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.bar-row__track{flex:1 1 auto;height:6px;background:var(--line);border-radius:1px;overflow:hidden}
.bar-row__track i{display:block;height:100%;background:var(--ink)}
.bar-row__v{font-size:11.5px;font-weight:600;flex:0 0 auto;min-width:44px;text-align:end}
.stepbtns{display:flex;align-items:center;gap:0;border:1px solid var(--line);border-radius:2px;flex:0 0 auto}
.stepbtns button{width:30px;height:28px;display:grid;place-items:center;font-size:15px;font-weight:700;color:var(--ink)}
.stepbtns button:active{background:var(--paper-2)}
.stepbtns span{min-width:46px;text-align:center;font-size:11.5px;font-weight:600;border-inline:1px solid var(--line);height:28px;display:grid;place-items:center;padding:0 4px}

@media (max-width:400px){
  .view{padding-inline:13px}
  .mast{padding-inline:13px}
  .setup__title{font-size:29px}
  .stat__v{font-size:17px}
  .hero__pic{width:82px;flex-basis:82px}
}
@media (max-height:520px){
  :root{--mast-h:64px}
  .mast__meta{display:none}
  .dock__advance{height:44px;margin:6px 10px;font-size:14px}
  .tabb{min-height:46px;padding:4px 0 5px}
  :root{--dock-h:104px}
}
@media (min-width:900px){
  .view{padding-top:calc(var(--mast-h) + 20px)}
  .grid2{grid-template-columns:repeat(4,1fr)}
  .stat:nth-child(even){border-inline-start:0}
  .stat:not(:nth-child(4n)){border-inline-end:1px solid var(--line);padding-inline-end:12px}
  .stat:not(:nth-child(4n+1)){padding-inline-start:12px}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important}
}