.council-screen { flex: 1; display: flex; flex-direction: column; gap: 16px; padding: 20px; max-width: 560px; margin: 0 auto; width: 100%; overflow-y: auto; font-family: var(--font-ui); } .council-screen h2 { font-family: var(--font-doc-title); margin: 0; } .council-screen h3 { font-size: 13px; margin: 0 0 8px; opacity: 0.75; font-family: var(--font-typewriter); } .council-audit { background: var(--color-surface); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 8px; padding: 14px; } .council-audit-row { display: flex; justify-content: space-between; /* 규약 델타까지 붙으면 좁은 화면에서 오른쪽이 잘린다 — 줄바꿈을 허용한다. */ flex-wrap: wrap; gap: 4px 10px; font-family: var(--font-typewriter); font-size: 14px; font-weight: 700; } .audit-met { color: var(--color-coin); } .audit-short { color: var(--color-risk-critical); } .council-audit-breakdown { font-size: 11px; opacity: 0.6; margin: 6px 0 12px; } .council-coin-pay { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-family: var(--font-typewriter); font-size: 12px; background: rgba(255, 255, 255, 0.04); padding: 6px 10px; border-radius: 5px; } .council-coin-pay button { background: rgba(255, 255, 255, 0.1); border: none; color: var(--color-text); width: 22px; height: 22px; border-radius: 4px; cursor: pointer; } .council-coin-pay button:disabled { opacity: 0.3; cursor: not-allowed; } .council-coin-committed { min-width: 14px; text-align: center; color: var(--color-coin); } .council-coin-note { opacity: 0.5; font-size: 11px; } .council-penalties { display: flex; flex-direction: column; gap: 6px; } .council-penalty-chip { font-size: 12px; padding: 6px 10px; background: rgba(255, 68, 68, 0.08); border: 1px solid rgba(255, 68, 68, 0.25); border-radius: 5px; color: var(--color-risk-critical); } .council-penalty-chip.targetable { cursor: pointer; outline: 1px dashed var(--color-risk-critical); } .council-penalty-more { align-self: flex-start; background: transparent; border: none; color: var(--color-text); opacity: 0.6; font-size: 11px; font-family: var(--font-typewriter); cursor: pointer; padding: 2px 0; text-decoration: underline; } .council-justifications { display: flex; flex-direction: column; gap: 8px; } .council-empty { font-size: 12px; opacity: 0.5; } .council-justification-item { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; background: rgba(255, 255, 255, 0.03); padding: 8px; border-radius: 6px; } .justification-badge { font-family: var(--font-typewriter); font-size: 12px; font-weight: 700; padding: 2px 8px; border-radius: 10px; background: rgba(255, 255, 255, 0.08); } .justification-partial { font-size: 10px; opacity: 0.5; } .council-justification-item button { font-family: var(--font-typewriter); font-size: 11px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.2); color: var(--color-text); border-radius: 4px; padding: 4px 8px; cursor: pointer; } .council-justification-item button:hover { border-color: var(--color-coin); } .council-justification-item button:disabled { opacity: 0.35; cursor: not-allowed; } .council-pending-hint { font-size: 11px; color: var(--color-risk-critical); } .council-cancel-btn { margin-left: 8px; background: transparent; border: 1px solid rgba(255, 255, 255, 0.25); color: var(--color-text); border-radius: 4px; padding: 2px 8px; font-size: 10px; cursor: pointer; font-family: var(--font-typewriter); } .council-candidates { display: flex; flex-direction: column; gap: 8px; } .council-pool { display: flex; flex-direction: column; gap: 8px; } .council-candidate { background: var(--color-surface); border: 1px solid rgba(255, 255, 255, 0.1); border-radius: 6px; padding: 10px 12px; } .council-candidate.targetable { cursor: pointer; outline: 1px dashed var(--color-token-info); } .council-candidate.removed { opacity: 0.4; text-decoration: line-through; } .council-candidate.forced { border-color: var(--color-coin); } .candidate-name { font-size: 13px; font-weight: 700; } .candidate-flavor { font-size: 11px; opacity: 0.6; margin-top: 3px; } .council-deferred-note { font-size: 12px; opacity: 0.7; } .council-confirm-btn { font-family: var(--font-typewriter); background: var(--color-token-info); color: #fff; border: none; border-radius: 6px; padding: 12px; font-weight: 700; cursor: pointer; font-size: 14px; margin-top: 4px; } /* ── 2026-09-17: 13석 표결 표시 + 툴팁 배치 ── */ .council-required-delta { font-size: 11px; color: var(--color-coin); font-weight: 400; } .council-margin { font-size: 11px; font-weight: 400; opacity: 0.7; } .council-margin-hint { color: var(--color-risk-critical); opacity: 1; } .council-penalty-list, .council-pool-list { display: flex; flex-wrap: wrap; gap: 6px; } .council-penalty-slot.targetable, .council-pool-slot.targetable { outline: 1px dashed var(--color-risk-critical); outline-offset: 2px; border-radius: 10px; cursor: pointer; } .candidate-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; flex-wrap: wrap; } .candidate-votes { font-family: var(--font-typewriter); font-size: 12px; opacity: 0.7; white-space: nowrap; } .candidate-votes.lead { opacity: 1; color: var(--color-coin); font-weight: 700; } .candidate-state { font-size: 11px; opacity: 0.65; margin-top: 5px; } .council-candidate.winning { border-color: var(--color-coin); } .council-candidate.added { border-style: dashed; } .council-confirm-sub { font-weight: 400; font-size: 11px; opacity: 0.85; } .council-margin-hint-weak { opacity: 0.55; }