/* ===== 탭 6개 ===== */
.tabs{grid-template-columns:repeat(6,1fr)!important;gap:4px!important;padding:10px 10px!important}
.tabs button{font-size:12.5px!important;padding:10px 0!important}

/* ===== 민원 놀이 ===== */
.mgtop{padding:16px 16px 0}
.mgq{background:#fffbe6;border:2px dashed #e0c25a;border-radius:12px;padding:10px 12px;font-size:14px;font-weight:800;margin-top:6px}
.mgscore{text-align:center;font-weight:800;color:var(--muted);margin:8px 0}
.mgscore b{color:var(--ink);font-size:18px}
.whack{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.whack button{height:78px;border:0;border-radius:16px;background:linear-gradient(180deg,#d9cdb6,#bfae8e);box-shadow:inset 0 -6px 0 rgba(0,0,0,.12);font-size:38px;line-height:1;touch-action:manipulation;user-select:none}
.whack button.on{background:linear-gradient(180deg,#fff3c4,#ffd25a);animation:popin .15s ease-out}
.whack button.hit{background:linear-gradient(180deg,#bff0d3,#2fbf71)}
@keyframes popin{from{transform:scale(.7)}to{transform:scale(1)}}
.stampbar{position:relative;height:46px;background:#eef0f5;border-radius:12px;margin:12px 0;overflow:hidden;box-shadow:inset 0 2px 0 #dfe3ec}
.stampbar .zone{position:absolute;top:0;bottom:0;background:rgba(47,191,113,.45);border-left:3px solid #1fa463;border-right:3px solid #1fa463}
.stampbar .zone.flash{background:rgba(47,191,113,.9)}
.stampbar .mark{position:absolute;top:4px;bottom:4px;width:6px;margin-left:-3px;background:#e5322d;border-radius:3px;box-shadow:0 0 6px rgba(229,50,45,.6)}
.bubble{display:flex;align-items:center;gap:8px;background:#f2f4f8;border-radius:16px;padding:12px;font-size:16px;font-weight:800;margin-bottom:10px}
.bubble .gi{width:24px;height:32px;flex:0 0 24px}
.bubble .gi svg{width:24px;height:32px}

/* ===== 예산 ===== */
.blist,.devlist{list-style:none;padding:0;margin:0 0 12px;display:flex;flex-direction:column;gap:6px;max-height:56vh;overflow:auto}
.blist li,.devlist li{background:#f4f6fa;border-radius:12px;padding:9px 10px;border-left:5px solid var(--sc,#9aa1b0)}
.blist li.divert{border-left-color:#e5322d;background:#fff0ee}
.bt{display:grid;grid-template-columns:1fr auto;gap:2px 8px}
.bt b{font-size:14px}
.bt small{grid-column:1;font-size:11px;color:var(--muted);font-weight:700}
.bt em{grid-row:1/3;grid-column:2;align-self:center;font-style:normal;font-weight:900;color:var(--sc,#333)}
.bc{display:grid;grid-template-columns:36px 1fr 36px;gap:6px;align-items:center;margin-top:6px}
.bc button{height:32px;border:0;border-radius:10px;background:#fff;font-size:20px;font-weight:900;box-shadow:0 2px 0 #d6dbe6}
.chunks{display:grid;grid-template-columns:repeat(10,1fr);gap:3px}
.chunks i,.chunks u{display:block;height:14px;border-radius:3px;text-decoration:none}
.chunks i{background:var(--sc,#e5322d)}
.divert .chunks i{background:#e5322d}
.chunks u{background:#e1e5ee}
.pline{font-size:12px;font-weight:700;color:#2b6fd6;background:#eef4ff;border-radius:10px;padding:8px}
.devrow{display:flex;flex-wrap:wrap;gap:4px;margin:8px 0 14px}
.devrow span{color:#fff;font-size:12px;font-weight:900;padding:3px 8px;border-radius:10px}
.devlist .dt{display:flex;justify-content:space-between;align-items:center}
.devlist .dt b{font-size:14px}
.devlist .dt em{font-style:normal;font-weight:900;color:var(--sc,#333)}
.devlist small{font-size:11.5px;color:var(--muted);font-weight:700}
.dbar{height:6px;background:#e1e5ee;border-radius:4px;overflow:hidden;margin-top:5px}
.dbar i{display:block;height:100%;background:var(--sc,#2b6fd6)}
.float{animation-duration:1.4s!important}
.float.viral{color:#ffd25a;font-size:24px}
.stage{cursor:default!important}

/* ===== 주간 일정·임무·상점 ===== */
.plan{background:#fff;border-radius:16px;padding:10px 12px;margin:0 0 10px;box-shadow:0 2px 0 #dfe3ec}
.planhead{display:flex;justify-content:space-between;align-items:baseline;gap:8px}
.planhead b{font-size:15px}.planhead span{font-size:11.5px;color:var(--muted);font-weight:700}
.slots{display:grid;grid-template-columns:repeat(auto-fit,minmax(70px,1fr));gap:6px;margin-top:8px}
.slot{border:0;border-radius:12px;background:#eef4ff;padding:8px 4px;display:flex;flex-direction:column;align-items:center;gap:2px;box-shadow:inset 0 -3px 0 #d3def5}
.slot.empty{background:#f4f6fa;color:var(--muted);border:2px dashed #cfd5e2;box-shadow:none}
.slot .si{font-size:22px;line-height:1}.slot b{font-size:11.5px}
.weeklog{font-size:11.5px;color:#2b6fd6;font-weight:700;margin-top:8px}
.actgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;margin-top:10px;max-height:58vh;overflow:auto}
.actgrid button{border:0;border-radius:12px;background:#f4f6fa;padding:8px;text-align:left;display:grid;grid-template-columns:28px 1fr;gap:0 6px;align-items:center}
.actgrid button.on{background:#ffe9a8}
.actgrid span{grid-row:1/3;font-size:22px}.actgrid b{font-size:13px}.actgrid small{font-size:11px;color:var(--muted);font-weight:700}
.missions,.rivallog{background:#fff;border-radius:14px;padding:10px 12px;margin-bottom:10px;box-shadow:0 2px 0 #dfe3ec}
.missions small{display:block;font-size:11px;color:var(--muted);font-weight:700}
.missions ul,.rivallog ul{list-style:none;padding:0;margin:6px 0 0;display:flex;flex-direction:column;gap:4px}
.missions li{display:flex;justify-content:space-between;font-size:13px;gap:6px}
.missions li span{font-weight:900;color:#2b6fd6;white-space:nowrap}
.missions li.done{opacity:.55}
.rivallog b{color:#e5322d}.rivallog li{font-size:12.5px;font-weight:700}
.perks{list-style:none;padding:0;margin:10px 0;display:flex;flex-direction:column;gap:6px}
.perks li{display:flex;justify-content:space-between;align-items:center;gap:8px;background:#f4f6fa;border-radius:12px;padding:9px 10px}
.perks b{font-size:14px}.perks em{font-style:normal;color:var(--muted);font-size:12px}
.perks small{display:block;font-size:11.5px;color:var(--muted);font-weight:700}
.perks button{border:0;border-radius:10px;background:#ffd25a;font-weight:900;padding:8px 10px;white-space:nowrap}
.perks button:disabled{background:#e1e5ee;color:#9aa1b0}
.choice small,.choices small{display:block}
.rivgrow{font-size:12px;font-weight:800;color:#e5322d;background:#fff0ee;border-radius:10px;padding:7px 10px;margin:6px 0}
