/* 내 국회(js/asm-ui.js) · 총선 대결(js/asm-duel.js) · 계정(js/account.js) */
.asm-sum { margin: 0 0 6px; font-size: 14px; } .asm-sum small { color: var(--muted); }
.asm-hemi { display: block; width: 100%; max-width: 420px; height: auto; margin: 0 auto 10px; }
.asm h4 { margin: 14px 0 6px; font-size: 13px; color: var(--muted); }
.asm-parties, .asm-fams, .asm-hist { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; font-size: 13px; }
.asm-parties li { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.asm-parties li i, .asm-top li i, .asm-rank li i, .asm-slot b i { width: 10px; height: 10px; border-radius: 50%; flex: none; display: inline-block; }
.asm-parties em { font-style: normal; font-size: 11px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: var(--soft); }
.asm-parties small, .asm-fams small, .asm-hist small { color: var(--muted); font-size: 12px; }
.asm-parties small { flex-basis: 100%; padding-left: 16px; }
.asm-top, .asm-rank { list-style: none; margin: 0; padding: 0; }
.asm-top li, .asm-rank li { display: flex; align-items: center; gap: 8px; padding: 7px 0; border-bottom: 1px dashed var(--line); font-size: 13px; min-width: 0; }
.asm-top .rank, .asm-rank .rank { width: 22px; font-weight: 800; color: var(--muted); }
.asm-top b, .asm-rank b { flex: none; } .asm-top small { flex: 1; min-width: 0; color: var(--muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.asm-top em, .asm-rank em { font-style: normal; font-weight: 800; margin-left: auto; }
.asm-app { padding: 12px; border-radius: 12px; background: var(--soft); margin: 8px 0; } .asm-app p { margin: 0 0 8px; font-size: 13px; }
.asm-law { font-size: 13px; padding: 8px 10px; border-radius: 10px; background: var(--soft); } .asm-law small { display: block; color: var(--muted); }
.asm-end p, .asm-bill p { margin: 0 0 8px; } .asm-bill b.up { color: var(--good); } .asm-bill b.down { color: var(--bad); }
/* 대결 판 */
.asm-board { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin: 8px 0 10px; }
.asm-slot { display: grid; gap: 2px; text-align: left; padding: 8px; border-radius: 10px; border: 1px solid var(--line); background: var(--card); color: var(--ink); min-width: 0; cursor: pointer; font: inherit; }
.asm-slot small { font-size: 10.5px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.asm-slot b { font-size: 13px; display: flex; align-items: center; gap: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .asm-slot b.none { color: var(--muted); }
.asm-slot span { font-size: 10.5px; color: var(--muted); line-height: 1.3; }
.asm-tags { display: inline-flex; gap: 4px; margin-left: 6px; } .asm-tags em { font-style: normal; font-size: 10.5px; font-weight: 800; padding: 1px 6px; border-radius: 999px; background: var(--soft); }
.choice.off { opacity: .45; }
/* 개표 */
.asm-count { list-style: none; margin: 8px 0 12px; padding: 0; display: grid; gap: 6px; }
.asm-count li { display: grid; grid-template-columns: 64px 1fr 1.3fr 1fr; align-items: center; gap: 6px; font-size: 12.5px; animation: asmIn .35s both; }
.asm-count li.win .me, .asm-count li.lose .them { font-weight: 800; }
.asm-count li.win .asm-reg { color: var(--good); } .asm-count li.lose .asm-reg { color: var(--bad); }
.asm-reg { display: grid; font-weight: 800; } .asm-reg small { font-weight: 400; font-size: 10px; color: var(--muted); }
.asm-c { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .asm-c.them { text-align: right; } .asm-c em { font-style: normal; color: var(--muted); }
.asm-bar { position: relative; height: 18px; border-radius: 999px; background: var(--soft); overflow: hidden; }
.asm-bar i { position: absolute; inset: 0 auto 0 0; border-radius: inherit; opacity: .85; }
.asm-bar b { position: relative; display: block; text-align: center; font-size: 11px; line-height: 18px; }
@keyframes asmIn { from { opacity: 0; transform: translateY(4px); } }
@media (prefers-reduced-motion: reduce) { .asm-count li { animation: none; } }
/* 계정 */
.acct-code { font: var(--hw) 20px var(--head); letter-spacing: .12em; } .acct-code.big { font-size: 34px; text-align: center; margin: 10px 0; }
@media (max-width: 420px) { .asm-count li { grid-template-columns: 52px 1fr 1.2fr 1fr; font-size: 12px; } .asm-board { gap: 4px; } }
.acct-in { display: block; width: 100%; box-sizing: border-box; margin: 6px 0 4px; padding: 12px; border-radius: 12px; border: 2px solid var(--line); background: var(--card); color: var(--ink); font: var(--hw) 26px var(--head); letter-spacing: .2em; text-align: center; text-transform: uppercase; }
a.btn[data-v="go"] { text-decoration: none; }
.acct-age { margin-top: 8px; font-size: 12px; } .acct-age a { color: inherit; text-decoration: underline; }
/* 로그인 버튼: 각 회사 안내 규정의 색과 로고 */
.sso-list { display: grid; gap: 8px; margin: 10px 0 8px; }
.sso { display: flex; align-items: center; justify-content: center; gap: 10px; width: 100%; min-height: 48px; padding: 0 16px; border-radius: 12px; border: 1px solid transparent; font: 700 15px/1 var(--body, inherit); cursor: pointer; }
.sso svg { width: 20px; height: 20px; flex: none; }
.sso-kakao { background: #FEE500; color: rgba(0, 0, 0, .85); }
.sso-google { background: #fff; color: #1f1f1f; border-color: #747775; }
.sso-apple { background: #000; color: #fff; }
:root[data-theme="dark"] .sso-apple { border-color: #fff; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .sso-apple { border-color: #fff; } }
.sso:focus-visible { outline: 3px solid var(--acc, #E8553E); outline-offset: 2px; }
/* 타이틀: 내 국회 버튼 · 살아 있는 한 줄(js/title-live.js) */
.ts-btn.asm-title { position: relative; }
.ts-btn.asm-title small { margin-left: 6px; }
.asm-dot { position: absolute; top: 8px; right: 10px; width: 9px; height: 9px; border-radius: 50%; background: #E8553E; box-shadow: 0 0 0 2px var(--paper, #FFF8EC); }
.ts-live { display: inline-block; transition: opacity .25s, transform .25s; }
.ts-live.out { opacity: 0; transform: translateY(4px); }
.ts-live a { color: inherit; text-decoration: underline; text-underline-offset: 2px; }
@media (max-width: 520px) { .ts-live-wrap { display: block; margin-top: 2px; } .ts-sep { display: none; } }
@media (prefers-reduced-motion: reduce) { .ts-live { transition: none; } }
.ts-btn.sm.asm-title { display: flex; align-items: center; justify-content: center; gap: 6px; flex-direction: row; }
.ts-btn.sm.asm-title small { margin: 0; }
/* 개표 한 지역씩(js/asm-duel.js asmDuelRun) */
.asm-tally { display: flex; justify-content: center; align-items: baseline; gap: 10px; margin: 0 0 6px; font: var(--hw) 34px var(--head); }
.asm-tally .me { color: var(--good); } .asm-tally .them { color: var(--bad); } .asm-tally span { font-size: 22px; color: var(--muted); }
.asm-count li.wait { opacity: .25; animation: none; } .asm-count li.wait .asm-bar i, .asm-count li.wait .asm-c.them, .asm-count li.wait .asm-bar b { visibility: hidden; }
.asm-count li.open { animation: asmIn .35s both; }
.asm-count li.open.win .asm-reg, .asm-count li.open.lose .asm-reg { transition: color .3s; }
.asm-count li.wait.win .asm-reg, .asm-count li.wait.lose .asm-reg { color: inherit; }
/* 대결판: 다음 상대·민심 */
.asm-peek { margin: 0 0 6px; font-size: 13px; padding: 8px 10px; border-radius: 10px; background: var(--soft); }
.asm-slot.hot { border-color: var(--bad); }
.asm-lean { font-style: normal; font-size: 10px; font-weight: 800; color: var(--muted); }
.asm-lean.l-2, .asm-lean.l-1 { color: #6D4FD1; } .asm-lean.l1, .asm-lean.l2 { color: #C27A12; }
.acct-who svg { width: 13px; height: 13px; vertical-align: -2px; margin-right: 4px; }
/* 법안 발의·표결 */
.asm-bill h4 { margin: 0 0 4px; }
.asm-bill-pick { display: flex; flex-wrap: wrap; gap: 6px; margin: 8px 0; }
.asm-bill-pick .btn.on { outline: 3px solid var(--acc, #E8553E); }
.asm-bill .asm-hemi circle { transition: fill .25s; }
.asm-bill-res { min-height: 1.4em; margin: 6px 0 0; } .asm-bill-res b.up { color: var(--good); } .asm-bill-res b.down { color: var(--bad); }
.asm-law-band { display: flex; align-items: center; gap: 6px; font-size: 13px; padding: 10px 12px; }
.asm-after[hidden] { display: none !important; }   /* .choices의 display가 hidden을 덮어 개표 중에 버튼이 보였다 */
/* 대결 연출(js/asm-show.js): 한 줄 중계 · 도장 */
.asm-tally { position: relative; }
.asm-live { min-height: 2.6em; margin: 0 0 6px; padding: 6px 10px; border-radius: 10px; background: var(--soft); font-size: 13px; line-height: 1.35; text-align: center; }
.asm-live:empty { visibility: hidden; }
.asm-live small { display: inline-block; margin-right: 6px; padding: 0 6px; border-radius: 999px; font-size: 10.5px; font-weight: 800; color: #fff; background: var(--good); vertical-align: 1px; }
.asm-live.them small { background: var(--bad); }
.asm-live.in { animation: asmIn .35s both; }
.asm-stamp { position: absolute; right: 4px; top: -6px; font: var(--hw) 22px var(--head); color: #D8321F; border: 3px solid currentColor; border-radius: 10px; padding: 0 10px; background: rgba(255,250,240,.9); transform: rotate(-12deg); animation: stampSlam .45s cubic-bezier(.2,.9,.3,1.2) both; pointer-events: none; }
.asm-stamp.big { font-size: 28px; border-width: 4px; }
.asm-stamp.bad { color: #4A4A55; }
@media (prefers-reduced-motion: reduce) { .asm-live.in, .asm-stamp { animation: none; } }
/* 대수 마감(js/asm-season.js): 대표 의원 · 칭호 */
.asm-mvp { display: flex; align-items: center; gap: 12px; margin: 8px 0; padding: 10px 12px; border-radius: 12px; background: var(--soft); }
.asm-mvp .chibi { flex: none; }
.asm-mvp p { display: grid; gap: 2px; margin: 0; } .asm-mvp small, .asm-mvp span { font-size: 12px; color: var(--muted); } .asm-mvp b { font: var(--hw) 20px var(--head); }
.hon .hon-asm { background: #FFF1C2; color: #6A4A00; }
.asm-fill { margin: 0 0 6px; font-size: 12.5px; color: var(--muted); }
/* 의사당 머리 그림 · 단체사진(js/asm-photo.js) */
.asm-heads-btn { display: block; width: 100%; max-width: 420px; margin: 0 auto 10px; padding: 0; border: 0; background: none; cursor: zoom-in; position: relative; }
.asm-heads { display: block; width: 100%; height: auto; image-rendering: pixelated; }
.asm-heads-btn small { display: flex; justify-content: flex-end; align-items: center; gap: 3px; margin-top: 2px; font-size: 11px; color: var(--muted); }
.asm-heads-btn small svg { width: 12px; height: 12px; }
.asm-zoom { overflow-x: auto; margin: 0 -4px 6px; -webkit-overflow-scrolling: touch; } .asm-zoom img { display: block; width: 960px; max-width: none; height: auto; image-rendering: pixelated; }
.asm-photo { display: block; width: 100%; height: auto; border-radius: 10px; margin: 8px 0; image-rendering: pixelated; }
.asm-links { margin: 4px 0 2px; }
.asm-top em.asm-hon { font-style: normal; color: #C8901A; margin-left: 2px; }   /* 대표 의원이었던 사람(js/asm-season.js) */
.asm-dev { margin: 10px 0; padding: 10px 12px; border-radius: 12px; border: 2px dashed #C8901A; background: #FFF6DE; }   /* 시험 도구(js/asm-dev.js, 시험 주소에서만) */
.asm-dev b { font-size: 13px; } .asm-dev small { margin-left: 6px; font-size: 11.5px; color: var(--muted); } .asm-dev .chips { margin-top: 6px; }
