:root {
  color-scheme: dark;
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: #08171a;
  color: #f2f8f5;
  font-synthesis: none;
}

* { box-sizing: border-box; }
body { min-width: 320px; min-height: 100vh; margin: 0; background: #08171a; }
button, input, textarea, select { font: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .58; }
button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible, [tabindex]:focus-visible { outline: 3px solid #f2cc6c; outline-offset: 3px; }

.shell { width: min(1080px, calc(100% - 32px)); margin: 0 auto; padding: 32px 0 64px; }
.topbar { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; border-bottom: 1px solid #254246; padding-bottom: 24px; }
.brand { display: flex; align-items: center; gap: 14px; min-width: 0; border: 0; padding: 0; color: inherit; background: transparent; text-align: left; }
.brand-mark { display: grid; width: 48px; height: 48px; overflow: hidden; place-items: center; border: 1px solid rgba(85, 219, 172, .28); border-radius: 13px; background: #14464b; color: #fff; font-size: 23px; font-weight: 800; }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; }
.brand-copy { display: grid; gap: 3px; }
.brand-copy strong { font-size: 20px; letter-spacing: 0; }
.brand-copy span { color: #9eb2b5; font-size: 14px; }
.wallet-status { display: flex; align-items: center; justify-content: flex-end; gap: 8px; min-height: 42px; }
.operator-link { min-height: 40px; border: 1px solid #3f7a68; border-radius: 999px; padding: 0 14px; color: #aaf4c8; background: #123a36; font-size: 13px; font-weight: 800; cursor: pointer; }
.operator-link:hover { border-color: #76dda8; background: #17483f; }
.wallet-connect-button, .wallet-chip { min-height: 40px; border: 1px solid #326065; border-radius: 999px; color: #dff7ee; background: #102a2e; box-shadow: 0 10px 28px rgba(0, 0, 0, .16); }
.wallet-connect-button { display: inline-flex; align-items: center; gap: 8px; padding: 0 14px; font-size: 13px; font-weight: 800; cursor: pointer; }
.wallet-connect-button::before, .wallet-chip-dot { width: 8px; height: 8px; flex: none; border-radius: 999px; background: #f3c967; box-shadow: 0 0 10px rgba(243, 201, 103, .5); content: ""; }
.wallet-chip { display: inline-flex; align-items: center; gap: 8px; padding: 4px 5px 4px 12px; }
.wallet-chip code { color: #dff7ee; font: 700 13px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.wallet-edit-button { display: inline-grid; width: 30px; height: 30px; flex: none; place-items: center; border: 1px solid #3b6263; border-radius: 50%; color: #dff7ee; background: rgba(255,255,255,.08); font-weight: 800; cursor: pointer; }
.wallet-connect-button:hover, .wallet-edit-button:hover { border-color: #70c7a7; background: #17373a; }
.vote-ready-status { display: inline-flex; min-height: 34px; align-items: center; gap: 5px; border: 1px solid #3e896e; border-radius: 999px; padding: 5px 10px 5px 8px; color: #dff7ee; background: #10362d; box-shadow: 0 10px 28px rgba(0, 0, 0, .12); font-size: 13px; font-weight: 850; white-space: nowrap; }
.vote-ready-status-icon { display: inline-flex; flex: none; align-items: center; justify-content: center; font-size: 16px; line-height: 1; }
.vote-ready-status-count { color: #8be7ba; font-variant-numeric: tabular-nums; }

.btn { display: inline-flex; min-height: 44px; align-items: center; justify-content: center; gap: 8px; border: 1px solid transparent; border-radius: 7px; padding: 9px 14px; color: #f3f9f7; background: #174d54; font-weight: 750; letter-spacing: 0; transition: background .16s ease, border-color .16s ease, transform .16s ease; }
.btn:hover:not(:disabled) { background: #1e6068; }
.btn:active:not(:disabled) { transform: translateY(1px); }
.btn-secondary { border-color: #395359; color: #d7e4e1; background: #17282d; }
.btn-secondary:hover:not(:disabled) { background: #22383e; }
.btn-danger { border-color: #864848; background: #572b2b; }
.btn-danger:hover:not(:disabled) { border-color: #b45d5d; background: #713535; }
.btn-warning { border-color: #8a6b32; color: #fff4d1; background: #5a431d; }
.btn-warning:hover:not(:disabled) { border-color: #bd9140; background: #735524; }
.btn-small { min-height: 34px; padding: 6px 10px; font-size: 13px; }

.main { display: grid; gap: 28px; padding-top: 28px; }
.intro { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 24px; align-items: end; }
.eyebrow { margin: 0 0 8px; color: #65d5a6; font-size: 12px; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { max-width: 650px; margin-bottom: 10px; font-size: clamp(28px, 4vw, 42px); line-height: 1.16; letter-spacing: 0; }
.intro-copy { max-width: 670px; margin-bottom: 0; color: #afc1c1; font-size: 16px; line-height: 1.7; }
.eligibility { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; min-width: min(100%, 260px); padding: 14px; border: 1px solid #2d5358; border-radius: 8px; background: #10262a; }
.eligibility-copy { display: grid; gap: 2px; flex: 1; min-width: 145px; }
.eligibility-copy strong { font-size: 14px; }
.eligibility-copy span { color: #9fb6b4; font-size: 12px; }
.eligibility-state { display: inline-flex; align-items: center; gap: 7px; color: #9fb6b4; font-size: 13px; }
.eligibility-state.ok { color: #61dca8; }
.eligibility-state.warn { color: #f3ca6a; }
.eligibility-state.error { color: #fa968c; }
.eligibility-state::before { width: 8px; height: 8px; border-radius: 50%; background: currentColor; content: ""; }

.section-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; }
.section-head h2 { margin-bottom: 0; font-size: 20px; }
.section-head span { color: #91aaac; font-size: 13px; }
.decision-status-nav { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid #29494e; border-radius: 8px; background: #0c2024; }
.decision-status-tab { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 3px 12px; min-width: 0; border: 0; border-right: 1px solid #29494e; padding: 15px 17px; color: #c8d8d6; background: transparent; text-align: left; transition: background .16s ease; }
.decision-status-tab:last-child { border-right: 0; }
.decision-status-tab:hover:not(:disabled) { background: #142b30; }
.decision-status-tab:disabled { cursor: default; opacity: .55; }
.decision-status-tab > span { display: flex; min-width: 0; align-items: center; gap: 8px; font-size: 13px; font-weight: 800; }
.decision-status-tab > span i, .decision-state i { width: 9px; height: 9px; flex: none; border-radius: 50%; background: currentColor; content: ""; }
.decision-status-tab > strong { grid-row: span 2; align-self: center; color: #f4faf7; font-size: 25px; line-height: 1; }
.decision-status-tab > small { grid-column: 1; color: #839c9e; font-size: 11px; }
.decision-status-tab-active > span { color: #5cdda7; }
.decision-status-tab-scheduled > span { color: #f0bd58; }
.decision-status-tab-closed > span { color: #a9bac2; }
.decision-lane { display: grid; gap: 15px; scroll-margin-top: 20px; border-top: 1px solid #29484d; padding-top: 22px; }
.decision-lane-head { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 12px; align-items: center; }
.decision-lane-head h2 { margin: 0 0 3px; font-size: 21px; }
.decision-lane-head p { margin: 0; color: #91aaac; font-size: 13px; line-height: 1.5; }
.decision-lane-head > strong { min-width: 44px; color: #d6e3e0; font-size: 13px; text-align: right; }
.decision-lane-mark { width: 4px; height: 38px; border-radius: 4px; background: #5cdda7; }
.decision-lane-scheduled .decision-lane-mark { background: #f0bd58; }
.decision-lane-closed .decision-lane-mark { background: #8ea4ae; }
.status-empty { border: 1px dashed #31555a; border-radius: 8px; padding: 24px; color: #8da4a5; background: #0a1c20; text-align: center; }
.decision-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.decision-card { display: grid; gap: 14px; min-height: 248px; min-width: 0; border: 1px solid #35656a; border-radius: 8px; padding: 20px; color: #eef8f5; background: #102c31; text-align: left; box-shadow: 0 12px 30px rgba(0, 0, 0, .14); transition: border-color .16s ease, background .16s ease, transform .16s ease; }
.decision-card:hover { transform: translateY(-2px); }
.decision-card-active { border-color: #3f806a; background: #102f2a; }
.decision-card-active:hover { border-color: #6adeaa; background: #143a32; }
.decision-card-scheduled { border-color: #685a35; background: #282519; }
.decision-card-scheduled:hover { border-color: #c59b45; background: #302b1b; }
.decision-card-closed { border-color: #3d5159; background: #17252a; }
.decision-card-closed:hover { border-color: #718891; background: #1b2c31; }
.decision-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.decision-card-top-meta { display: inline-flex; align-items: center; justify-content: flex-end; gap: 9px; min-width: 0; }
.decision-state { display: inline-flex; align-items: center; gap: 8px; color: #62dfa9; font-size: 12px; font-weight: 850; }
.decision-card-scheduled .decision-state, .decision-hero-scheduled .decision-state { color: #f0bd58; }
.decision-card-closed .decision-state, .decision-hero-closed .decision-state { color: #a9bac2; }
.decision-card-active .decision-state i { animation: status-pulse 1.8s ease-out infinite; box-shadow: 0 0 0 0 rgba(92, 221, 167, .42); }
.decision-card-timing { color: #c8d9d4; font-size: 12px; font-weight: 700; text-align: right; }
.decision-complete-badge { display: inline-flex; align-items: center; gap: 5px; flex: none; border: 1px solid rgba(105, 223, 170, .48); border-radius: 999px; padding: 4px 8px; color: #7bf0bc; background: rgba(49, 151, 110, .18); font-size: 11px; font-weight: 850; white-space: nowrap; }
.decision-card > strong { overflow-wrap: anywhere; font-size: 22px; line-height: 1.35; }
.decision-card-summary { overflow: hidden; display: -webkit-box; color: #b7cdca; line-height: 1.6; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.decision-progress { overflow: hidden; height: 6px; border-radius: 8px; background: #25463e; }
.decision-progress i { display: block; height: 100%; border-radius: inherit; background: #58d7a2; }
.decision-card-bottom { display: flex; align-items: flex-end; justify-content: space-between; gap: 14px; margin-top: auto; border-top: 1px solid rgba(155, 185, 181, .16); padding-top: 14px; }
.decision-card-facts { display: flex; min-width: 0; flex-wrap: wrap; gap: 7px 13px; color: #9bb1b0; font-size: 11px; }
.decision-card-facts b { color: #e6f0ed; font-size: 13px; }
.decision-card-action { display: inline-flex; flex: none; align-items: center; gap: 8px; color: #69dfaa; font-size: 13px; font-weight: 850; }
.decision-card-scheduled .decision-card-action { color: #f1c56b; }
.decision-card-closed .decision-card-action { color: #c4d2d7; }
.decision-card-action i { font-style: normal; font-size: 16px; }
@keyframes status-pulse { 70% { box-shadow: 0 0 0 7px rgba(92, 221, 167, 0); } 100% { box-shadow: 0 0 0 0 rgba(92, 221, 167, 0); } }
.decision-view, .decision-missing { display: grid; gap: 20px; }
.back-link { justify-self: start; border: 0; padding: 0; color: #a9bfbd; background: transparent; font-weight: 750; }
.back-link:hover { color: #78dcb0; }
.decision-hero { border: 1px solid #315b60; border-radius: 8px; padding: 28px; background: #0e292e; }
.decision-hero-active { border-color: #3f806a; background: #102f2a; }
.decision-hero-scheduled { border-color: #685a35; background: #282519; }
.decision-hero-closed { border-color: #3d5159; background: #17252a; }
.decision-hero-status { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 20px; border-bottom: 1px solid rgba(170, 194, 190, .18); padding-bottom: 14px; }
.decision-hero-status > strong { color: #d8e5e1; font-size: 13px; text-align: right; }
.decision-hero h1 { margin-bottom: 12px; font-size: clamp(28px, 4vw, 40px); }
.decision-hero > p:not(.eyebrow) { max-width: 720px; margin-bottom: 0; color: #b6c8c7; line-height: 1.7; }
.decision-hero .decision-description { margin-top: 15px; color: #d6e3df; font-size: 15px; white-space: pre-wrap; }
.description-link { color: #70dfad; font-weight: 750; text-decoration: underline; text-decoration-color: rgba(112, 223, 173, .55); text-underline-offset: 3px; overflow-wrap: anywhere; }
.description-link:hover { color: #b8f5d7; text-decoration-color: currentColor; }
.decision-hero > div { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: 20px; color: #a3bab8; font-size: 13px; }
.decision-hero > div span:last-child { color: #73d9aa; font-weight: 800; }
.proposals { display: grid; gap: 14px; }
.proposal { overflow: clip; border: 1px solid #27464b; border-radius: 8px; background: #0d2024; }
.proposal-open { border-left: 4px solid #55d6a0; }
.proposal-scheduled { border-left: 4px solid #e5b44f; }
.proposal-closed { border-left: 4px solid #8197a0; }
.proposal-head { display: flex; justify-content: space-between; gap: 20px; padding: 22px 22px 17px; }
.proposal-title { min-width: 0; }
.proposal-title h3 { margin-bottom: 8px; font-size: 20px; line-height: 1.35; }
.proposal-title p { margin-bottom: 0; color: #aabdbd; line-height: 1.55; }
.proposal-meta { display: grid; flex: 0 0 auto; justify-items: end; align-content: start; gap: 7px; color: #91aaac; font-size: 12px; text-align: right; white-space: nowrap; }
.status { display: inline-flex; align-items: center; min-height: 25px; border-radius: 999px; padding: 3px 9px; font-size: 12px; font-weight: 800; }
.status.open { color: #71e3af; background: rgba(59, 158, 112, .2); }
.status.scheduled { color: #f3ca6a; background: rgba(191, 142, 42, .18); }
.status.closed { color: #b4c2c2; background: rgba(141, 159, 160, .16); }
.status.draft { color: #f2ce73; background: rgba(191, 142, 42, .18); }
.proposal-detail { margin: 0 22px; color: #b6c8c7; line-height: 1.7; white-space: pre-wrap; }
.vote-list { display: grid; gap: 8px; padding: 18px 22px 22px; }
.vote-option { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 16px; align-items: center; border: 1px solid #315258; border-radius: 7px; padding: 13px 14px; background: #10282d; text-align: left; }
button.vote-option:hover:not(:disabled) { border-color: #57a890; background: #153338; }
.vote-option.selected { border-color: #55c89b; box-shadow: inset 3px 0 0 #55c89b; }
.vote-option.adopted { border-color: #54c998; background: #12352f; box-shadow: inset 4px 0 0 #62dca6; }
.vote-option.adopted .option-main strong { color: #ecfff6; }
.vote-option.adopted .option-result b { color: #7de5b4; }
.tally-method-badge { border: 1px solid #42665f; border-radius: 999px; padding: 3px 8px; color: #add1c6; font-size: 11px; white-space: nowrap; }
.ranked-vote-builder { display: grid; gap: 14px; margin: 0 22px 18px; border: 1px solid #315258; border-radius: 7px; padding: 16px; background: #10282d; }
.ranked-vote-guide { display: grid; gap: 4px; }
.ranked-vote-guide strong { color: #ecf7f3; font-size: 15px; }
.ranked-vote-guide span, .ranked-selection-empty, .ranked-available > span { color: #96adaa; font-size: 12px; line-height: 1.6; }
.ranked-selection { display: grid; gap: 8px; margin: 0; padding: 0; list-style: none; }
.ranked-selection li { display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 10px; min-height: 52px; border: 1px solid #3c7764; border-radius: 7px; padding: 8px 10px; background: #12342d; }
.rank-number { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background: #63dca9; color: #06251d; font-weight: 800; }
.rank-controls { display: flex; gap: 6px; }
.rank-controls .icon-button { width: 34px; height: 34px; min-width: 34px; font-size: 16px; }
.rank-controls .rank-remove { color: #f0a29c; }
.ranked-available { display: grid; gap: 8px; }
.ranked-available > strong { color: #b9cbc7; font-size: 12px; }
.ranked-add { display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; border: 1px solid #35555a; border-radius: 7px; padding: 11px 12px; background: #132328; color: #e6f2ee; text-align: left; }
.ranked-add:hover:not(:disabled) { border-color: #58a98f; background: #173137; }
.ranked-add b { color: #75dcb1; font-size: 11px; }
.vote-review-ranking { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.vote-review-ranking li { display: grid; grid-template-columns: 28px minmax(0, 1fr); align-items: center; gap: 9px; }
.vote-review-ranking li span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #2d5f50; color: #dff9ed; font-size: 12px; font-weight: 800; }
.ranked-rounds { margin: 0 22px 20px; border: 1px solid #344f53; border-radius: 7px; background: #101f23; }
.ranked-rounds summary { cursor: pointer; padding: 13px 15px; color: #cfe0dc; font-weight: 700; }
.ranked-round-list { display: grid; gap: 10px; border-top: 1px solid #2b4448; padding: 12px; }
.ranked-round-list section { display: grid; gap: 8px; padding: 11px; background: #13282d; }
.ranked-round-list header, .ranked-round-list li { display: flex; justify-content: space-between; gap: 12px; }
.ranked-round-list header span, .ranked-round-list p, .ranked-round-list small { color: #92aaa7; font-size: 11px; line-height: 1.5; }
.ranked-round-list ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; }
.option-main { display: grid; gap: 6px; min-width: 0; }
.option-main strong { font-size: 15px; }
.option-main > span { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 7px; color: #8fa8a9; font-size: 12px; }
.adopted-badge { display: inline-flex; align-items: center; min-height: 20px; padding: 1px 7px; border-radius: 999px; color: #73e1ae; background: rgba(70, 182, 128, .18); font-size: 11px; }
.option-result { display: grid; grid-template-columns: minmax(80px, 170px) auto; align-items: center; gap: 10px; color: #b9cdcb; font-size: 13px; }
.bar { overflow: hidden; height: 7px; border-radius: 8px; background: #29454a; }
.bar i { display: block; height: 100%; border-radius: inherit; background: #58cf9c; }
.vote-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 18px; border-top: 1px solid #28454a; padding: 12px 22px; color: #8fa8a9; font-size: 12px; }
.vote-foot strong { color: #d7e7e3; }
.vote-foot-meta { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; }
.vote-foot-outcome { display: inline-flex; align-items: center; justify-content: flex-end; gap: 10px; margin-left: auto; text-align: right; }
.quorum-status { display: inline-flex; min-height: 24px; align-items: center; border-radius: 999px; padding: 3px 9px; font-size: 11px; font-weight: 850; }
.quorum-status.passed { color: #77e1ae; background: rgba(64, 172, 119, .2); }
.quorum-status.failed { color: #f1c96d; background: rgba(184, 133, 36, .2); }
.quorum-status.pending { color: #c9d8d5; background: rgba(143, 168, 164, .18); }
.quorum-pending { color: #bac9c5; font-size: 11px; font-weight: 750; white-space: nowrap; }

.empty { padding: 42px 24px; border: 1px dashed #31555a; border-radius: 8px; color: #aabdbd; text-align: center; }
.notice { display: flex; gap: 11px; align-items: flex-start; border: 1px solid #654f25; border-radius: 8px; padding: 14px 16px; color: #f2d89d; background: #2b2619; line-height: 1.5; }
.notice.error { border-color: #734244; color: #fec2b9; background: #302023; }
.notice.info { border-color: #2b5a60; color: #b6d9d9; background: #112b30; }
.notice-icon { font-weight: 900; }

.operator-page { display: grid; gap: 20px; }
.operator-hero { border-bottom: 1px solid #2d5054; padding: 6px 0 22px; }
.operator-hero h1 { margin-bottom: 10px; font-size: clamp(30px, 4vw, 42px); }
.operator-hero > p:not(.eyebrow) { max-width: 720px; margin-bottom: 0; color: #b5c8c5; line-height: 1.7; }
.operator-period { margin: 12px 0 0; color: #82a6a1; font-size: 13px; }
.operator-list-hero, .operator-detail-hero { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; }
.operator-detail-actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }
.publication-setting { display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #34565a; border-radius: 8px; padding: 16px 18px; background: #0d2024; }
.publication-setting.is-published { border-color: #39735f; background: #102a26; }
.publication-copy { display: grid; gap: 4px; min-width: 0; }
.publication-kicker { color: #819b9c; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.publication-copy strong { display: inline-flex; align-items: center; gap: 8px; color: #dcebe7; font-size: 17px; }
.publication-copy strong i { width: 8px; height: 8px; flex: none; border-radius: 50%; background: #829798; }
.publication-setting.is-published .publication-copy strong { color: #76dfb0; }
.publication-setting.is-published .publication-copy strong i { background: #58d49e; box-shadow: 0 0 0 4px rgba(88, 212, 158, .12); }
.publication-copy small { color: #93aaa9; font-size: 12px; line-height: 1.5; }
.publication-toggle { display: grid; grid-template-columns: 46px minmax(76px, auto); align-items: center; gap: 10px; flex: none; border: 0; padding: 5px; color: #c5d6d3; background: transparent; cursor: pointer; }
.publication-toggle:disabled { cursor: not-allowed; opacity: .58; }
.publication-toggle:focus-visible { outline: 2px solid #6bd4ad; outline-offset: 3px; border-radius: 7px; }
.publication-toggle-track { position: relative; width: 46px; height: 26px; border: 1px solid #52676a; border-radius: 999px; background: #25383c; transition: border-color .16s ease, background .16s ease; }
.publication-toggle:hover:not(:disabled) .publication-toggle-track { border-color: #7b9998; }
.publication-toggle-track i { position: absolute; top: 3px; left: 3px; width: 18px; height: 18px; border-radius: 50%; background: #aab9b8; transition: transform .16s ease, background .16s ease; }
.publication-toggle[aria-checked="true"] .publication-toggle-track { border-color: #4ab688; background: #28694f; }
.publication-toggle[aria-checked="true"] .publication-toggle-track i { transform: translateX(20px); background: #effff8; }
.publication-toggle-label { display: inline-flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 800; white-space: nowrap; }
.operator-description { max-width: 760px; margin: -6px 0 0; color: #aec3c0; line-height: 1.7; white-space: pre-wrap; }
.operator-decisions { display: grid; gap: 14px; border-top: 1px solid #28454a; padding-top: 22px; }
.operator-decision-list { display: grid; border: 1px solid #2c4b50; border-radius: 8px; overflow: clip; }
.operator-decision-row { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 18px; min-width: 0; max-width: 100%; padding: 16px 18px; border-bottom: 1px solid #284348; background: #0d2024; }
.operator-decision-row:last-child { border-bottom: 0; }
.operator-decision-select { width: 100%; border: 0; color: inherit; text-align: left; }
.operator-decision-select:hover { background: #112b30; }
.operator-decision-row strong { display: block; color: #ecf7f3; font-size: 16px; }
.operator-decision-row p { margin: 5px 0 0; color: #9eb5b3; font-size: 13px; line-height: 1.5; }
.operator-decision-row > div:first-child, .operator-decision-select > span:first-child { min-width: 0; overflow: hidden; }
.operator-decision-meta { display: flex; flex: 0 0 auto; flex-wrap: wrap; justify-content: flex-end; gap: 8px; min-width: 0; color: #a6bfbb; font-size: 12px; text-align: right; }
.operator-decision-meta b { align-self: center; color: #75dbaa; font-size: 17px; }
.automatic-close-note { align-self: center; color: #8fa8a4; font-size: 12px; }
.operator-proposal-deadline { display: block; margin-top: 8px; color: #809a9a; font-size: 12px; }
.operator-proposal-description { display: block; width: 100%; max-width: 100%; overflow: hidden; margin-top: 6px; color: #9eb5b3; font-size: 13px; line-height: 1.5; text-overflow: ellipsis; white-space: nowrap; }
.compact { min-height: auto; padding: 18px; }
.form-grid { display: grid; gap: 13px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field { display: grid; gap: 7px; color: #c6d6d5; font-size: 13px; font-weight: 700; }
.field input, .field textarea, .field select { width: 100%; border: 1px solid #3a565c; border-radius: 7px; padding: 10px 11px; color: #f4f9f7; background: #13282e; outline: none; }
.field textarea { min-height: 102px; resize: vertical; line-height: 1.5; }
.field input:focus, .field textarea:focus, .field select:focus { border-color: #5cbd9e; box-shadow: 0 0 0 3px rgba(92,189,158,.13); }
.field-help { color: #91a9aa; font-size: 12px; font-weight: 500; line-height: 1.45; }
.option-editor { display: grid; gap: 10px; }
.option-add-row { display: flex; align-items: center; gap: 10px; }
.option-item-list { display: grid; gap: 7px; margin: 0; padding: 0; list-style: none; }
.option-item-list li { display: flex; align-items: center; justify-content: space-between; gap: 12px; border: 1px solid #315258; border-radius: 7px; padding: 9px 10px 9px 12px; color: #dff0eb; background: #0d2024; line-height: 1.4; }
.option-remove { display: inline-grid; width: 28px; height: 28px; flex: none; place-items: center; border: 1px solid #4b5e61; border-radius: 6px; color: #c9dad7; background: #192d31; font-size: 18px; line-height: 1; cursor: pointer; }
.option-remove:hover:not(:disabled) { border-color: #a95d5c; color: #ffd1ca; background: #49292b; }
.option-empty { margin: 0; }
.publication-form-help { border-left: 3px solid #c69a3e; padding-left: 10px; color: #e2c477; }

.modal { position: fixed; inset: 0; z-index: 20; display: grid; place-items: center; padding: 18px; background: rgba(1, 10, 12, .7); backdrop-filter: blur(8px); }
.modal.hidden { display: none; }
.modal-box { width: min(460px, 100%); max-height: min(690px, calc(100dvh - 36px)); overflow: auto; border: 1px solid #3c6265; border-radius: 8px; padding: 22px; background: #10262a; box-shadow: 0 22px 60px rgba(0,0,0,.35); }
.modal-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; margin-bottom: 18px; }
.modal-head h2 { margin-bottom: 5px; font-size: 22px; }
.modal-head p { margin-bottom: 0; color: #a8bcbc; line-height: 1.5; }
.icon-button { display: inline-grid; width: 34px; height: 34px; place-items: center; border: 1px solid #3b565a; border-radius: 7px; color: #c8d9d7; background: #193338; font-size: 20px; }
.auth-step { display: grid; gap: 14px; }
.auth-actions { display: flex; justify-content: flex-end; gap: 9px; margin-top: 2px; }
.auth-success { color: #69d9a7; font-weight: 800; }
.admin-modal { z-index: 22; }
.admin-modal-box { width: min(620px, 100%); }
.admin-modal-actions { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 9px; margin-top: 4px; }
.confirmation-modal { z-index: 30; }
.confirmation-box { width: min(500px, 100%); }
.confirmation-head { display: grid; grid-template-columns: 42px minmax(0, 1fr) 34px; align-items: start; gap: 13px; }
.confirmation-head h2 { margin: 2px 0 0; font-size: 22px; line-height: 1.3; }
.confirmation-head .eyebrow { margin: 0; }
.confirmation-icon { display: inline-grid; width: 42px; height: 42px; place-items: center; border: 1px solid currentColor; border-radius: 50%; font-size: 22px; font-weight: 850; }
.confirmation-danger .confirmation-icon { color: #ff9d91; background: #452426; }
.confirmation-warning .confirmation-icon { color: #f4c967; background: #443619; }
.confirmation-message { margin: 20px 0; color: #b9cbca; font-size: 15px; line-height: 1.75; }
.confirmation-actions { display: flex; justify-content: flex-end; gap: 9px; }
.confirmation-actions .btn { min-width: 112px; }
.operation-feedback { display: flex; align-items: center; gap: 8px; margin: 0; color: #a7d8c7; font-size: 13px; font-weight: 750; }
.button-spinner { width: 15px; height: 15px; flex: none; border: 2px solid rgba(235, 250, 245, .28); border-top-color: currentColor; border-radius: 50%; animation: button-spin .75s linear infinite; }
@keyframes button-spin { to { transform: rotate(360deg); } }
.settings-list { display: grid; gap: 0; margin: 0; border: 1px solid #315258; border-radius: 7px; overflow: clip; }
.settings-list > div { display: grid; grid-template-columns: 112px minmax(0, 1fr); gap: 14px; padding: 12px 13px; border-bottom: 1px solid #29464b; background: #0d2024; }
.settings-list > div:last-child { border-bottom: 0; }
.settings-list dt { color: #8fa8a9; font-size: 12px; font-weight: 800; }
.settings-list dd { min-width: 0; margin: 0; color: #e3efeb; line-height: 1.55; overflow-wrap: anywhere; }
.settings-list ol { display: grid; gap: 5px; margin: 0; padding-left: 21px; }
.settings-pre { white-space: pre-wrap; }

.wallet-link-modal { position: fixed; inset: 0; z-index: 21; display: grid; place-items: center; padding: 18px; background: rgba(1, 10, 12, .7); backdrop-filter: blur(10px); }
.wallet-link-panel { width: min(460px, 100%); display: grid; gap: 15px; border: 1px solid #3c6265; border-radius: 8px; padding: 22px; background: #10262a; box-shadow: 0 22px 60px rgba(0,0,0,.35); }
.wallet-link-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.wallet-link-head h2 { margin: 0 0 5px; font-size: 22px; }
.wallet-link-head p { margin: 0; color: #a8bcbc; line-height: 1.5; }
.wallet-link-detail { display: grid; gap: 5px; border: 1px solid #315258; border-radius: 7px; padding: 12px; background: #0d2024; }
.wallet-link-detail span { color: #8fa8a9; font-size: 12px; font-weight: 800; }
.wallet-link-detail code { overflow-wrap: anywhere; color: #dff7ee; font: 700 13px ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.wallet-link-status { min-height: 24px; margin: 0; color: #b7ccca; line-height: 1.5; }
.wallet-link-actions { display: grid; gap: 9px; }
.wallet-unlink { justify-self: center; border: 0; padding: 6px 10px; color: #b9cdcb; background: transparent; font-size: 13px; text-decoration: underline; cursor: pointer; }
.wallet-unlink:hover { color: #f2b0a8; }

.footer { display: grid; gap: 6px; border-top: 1px solid #254246; padding-top: 20px; color: #81999b; font-size: 12px; line-height: 1.6; }
.footer strong { color: #b7ccca; }
.app-version { color: #5f777a; font-size: 11px; font-variant-numeric: tabular-nums; letter-spacing: .04em; }

/* Guided voter experience */
.participation-card { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(320px, .9fr); gap: 18px 28px; align-items: center; border: 1px solid #34595e; border-radius: 8px; padding: 20px 22px; background: #0d2327; }
.participation-ready { border-color: #397560; background: #102b27; }
.participation-error { border-color: #77464a; background: #2b2022; }
.participation-copy h2 { margin-bottom: 5px; font-size: 20px; }
.participation-copy p:last-child { margin: 0; color: #a9bfbd; line-height: 1.6; }
.participation-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 5px; margin: 0; padding: 0; list-style: none; }
.participation-steps li { display: grid; justify-items: center; gap: 7px; position: relative; color: #718b8d; font-size: 11px; font-weight: 800; text-align: center; }
.participation-steps li:not(:last-child)::after { position: absolute; top: 15px; left: calc(50% + 20px); right: calc(-50% + 20px); height: 1px; background: #355055; content: ""; }
.participation-steps li > span { display: grid; z-index: 1; width: 30px; height: 30px; place-items: center; border: 1px solid #455e62; border-radius: 50%; color: #91a6a7; background: #14282d; }
.participation-steps li.current { color: #f1c96e; }
.participation-steps li.current > span { border-color: #c39842; color: #ffe59f; background: #3a301d; }
.participation-steps li.complete { color: #68dca9; }
.participation-steps li.complete > span { border-color: #48b584; color: #effff8; background: #226747; }
.participation-steps li.complete:not(:last-child)::after { background: #3c9d73; }
.participation-action, .participation-ready-message { grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: 14px; border-top: 1px solid #29484c; padding-top: 14px; }
.participation-action::before { color: #92aaa9; font-size: 12px; content: "投票するときに必要です"; }
.participation-action-checking::before { content: ""; }
.participation-checking { display: inline-flex; align-items: center; gap: 9px; margin: 0; color: #b9d9ce; font-size: 13px; font-weight: 800; }
.participation-checking .button-spinner { color: #72dfaf; }
.participation-ready-message { justify-content: flex-start; margin: 0; color: #82e4b6; font-size: 13px; font-weight: 800; }
.participation-ready-message > span { display: grid; width: 24px; height: 24px; place-items: center; border-radius: 50%; color: #09251b; background: #65d5a6; }
.decision-vote-ready { display: flex; align-items: center; justify-content: space-between; gap: 22px; border: 1px solid #397560; border-radius: 8px; padding: 16px 18px; background: #102b27; }
.decision-vote-ready-copy { min-width: 0; }
.decision-vote-ready-copy h2 { display: flex; align-items: center; gap: 7px; margin: 4px 0 5px; color: #e8fff4; font-size: 18px; }
.decision-vote-ready-copy h2 span { font-size: 20px; }
.decision-vote-ready-copy p:last-child { margin: 0; color: #a9c9be; font-size: 13px; line-height: 1.55; }
.decision-vote-ready-steps { width: min(390px, 100%); flex: none; }
.vote-guide { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 18px; border: 1px solid #31575c; border-radius: 8px; padding: 15px 18px; background: #0d2227; }
.vote-guide > strong { font-size: 14px; }
.vote-guide ol { display: flex; align-items: center; justify-content: center; gap: 10px; margin: 0; padding: 0; list-style: none; color: #b7c9c7; font-size: 12px; }
.vote-guide li { display: flex; align-items: center; gap: 6px; }
.vote-guide li:not(:last-child)::after { margin-left: 5px; color: #587174; content: "→"; }
.vote-guide li span { display: grid; width: 24px; height: 24px; place-items: center; border: 1px solid #4c7772; border-radius: 50%; color: #79dfb2; font-weight: 850; }
.vote-guide p { margin: 0; color: #f1c96e; font-size: 12px; font-weight: 750; }
.proposal-index { display: inline-block; margin-bottom: 7px; color: #70dcae; font-size: 11px; font-weight: 850; letter-spacing: .06em; }
.vote-choice { position: relative; grid-template-columns: auto minmax(0, 1fr) auto; min-height: 70px; cursor: pointer; }
.vote-choice.results-hidden { grid-template-columns: auto minmax(0, 1fr); }
.vote-result.results-hidden { grid-template-columns: minmax(0, 1fr); }
.vote-choice:hover { border-color: #57a890; background: #153338; }
.vote-choice.pending { border-color: #61d5a5; background: #14352f; box-shadow: inset 3px 0 0 #61d5a5; }
.vote-choice > input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.vote-radio { display: grid; width: 22px; height: 22px; place-items: center; border: 2px solid #6e8587; border-radius: 50%; background: #0d2024; }
.vote-choice.pending .vote-radio { border-color: #67dda9; }
.vote-choice.pending .vote-radio::after { width: 10px; height: 10px; border-radius: 50%; background: #67dda9; content: ""; }
.vote-choice:has(input:focus-visible) { outline: 3px solid #f2cc6c; outline-offset: 3px; }
.vote-result { cursor: default; }
.vote-submit-panel { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin: 0 22px 20px; border: 1px solid #344d52; border-radius: 7px; padding: 14px; background: #101f23; }
.vote-submit-panel.ready { border-color: #3c7764; background: #102a26; }
.vote-submit-panel > div { display: grid; gap: 3px; }
.vote-submit-panel strong { font-size: 14px; }
.vote-submit-panel span { color: #92aaa9; font-size: 12px; line-height: 1.5; }
.vote-complete, .vote-unavailable { display: flex; align-items: center; gap: 12px; margin: 0 22px 20px; border: 1px solid #34735c; border-radius: 7px; padding: 13px 14px; color: #6bdca9; background: #102c27; }
.vote-complete > span { display: grid; width: 28px; height: 28px; flex: none; place-items: center; border-radius: 50%; color: #09251b; background: #62d8a4; font-weight: 900; }
.vote-complete div { display: grid; gap: 2px; }
.vote-complete p { margin: 0; color: #a6beb9; font-size: 12px; }
.vote-unavailable { display: grid; gap: 3px; border-color: #715f34; color: #f1c86a; background: #292519; }
.vote-unavailable span { color: #c8b783; font-size: 12px; }
.results-withheld { display: flex; align-items: center; gap: 12px; margin: 0 22px 20px; border: 1px solid #4e626d; border-radius: 7px; padding: 13px 14px; color: #c7d7de; background: #15262d; }
.results-withheld > span { display: grid; width: 28px; height: 28px; flex: none; place-items: center; border: 1px solid #718891; border-radius: 50%; color: #d4e2e7; }
.results-withheld div { display: grid; gap: 2px; }
.results-withheld p { margin: 0; color: #91a7ae; font-size: 12px; }
.vote-review-box { width: min(560px, 100%); }
.vote-review-summary { display: grid; gap: 0; margin: 0 0 18px; overflow: hidden; border: 1px solid #34565b; border-radius: 7px; }
.vote-review-summary > div { display: grid; gap: 6px; border-bottom: 1px solid #2d4b50; padding: 14px; background: #0d2024; }
.vote-review-summary > div:last-child { border-bottom: 0; }
.vote-review-summary dt { color: #89a2a3; font-size: 11px; font-weight: 850; }
.vote-review-summary dd { margin: 0; color: #eff8f5; font-size: 16px; font-weight: 750; line-height: 1.5; }
.vote-review-summary dd small { margin-left: 8px; color: #8fa7a7; font-size: 11px; font-weight: 600; }
.vote-review-summary .vote-review-choice { border-left: 4px solid #61d7a3; background: #113029; }
.vote-review-choice dd { display: flex; align-items: center; gap: 9px; color: #80e2b4; }
.vote-review-warning { display: grid; gap: 4px; border-left: 3px solid #e1b750; padding-left: 12px; color: #f1d588; }
.vote-review-warning span { color: #b9aaa1; font-size: 12px; line-height: 1.5; }

/* Operator guidance */
.section-head > div p { margin: 4px 0 0; color: #91aaac; font-size: 13px; line-height: 1.5; }
.admin-overview { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); overflow: hidden; border: 1px solid #2e4d52; border-radius: 8px; background: #0d2024; }
.admin-overview > div { display: grid; gap: 5px; border-right: 1px solid #2e4d52; padding: 18px; }
.admin-overview > div:last-child { border-right: 0; }
.admin-overview span { color: #93aaa9; font-size: 12px; font-weight: 750; }
.admin-overview strong { font-size: 28px; }
.admin-workflow, .admin-setup { border: 1px solid #31545a; border-radius: 8px; padding: 18px; background: #0d2024; }
.admin-workflow header h2, .admin-setup header h2 { margin: 0; font-size: 20px; }
.admin-workflow ol, .admin-setup ol { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin: 18px 0 0; padding: 0; list-style: none; }
.admin-workflow li, .admin-setup li { display: flex; gap: 10px; align-items: center; min-width: 0; border: 1px solid #2f4d51; border-radius: 7px; padding: 12px; background: #10262a; }
.admin-workflow li > span, .admin-setup li > span { display: grid; width: 30px; height: 30px; flex: none; place-items: center; border: 1px solid #557073; border-radius: 50%; color: #d7e4e1; font-weight: 850; }
.admin-workflow li div, .admin-setup li div { display: grid; gap: 2px; min-width: 0; }
.admin-workflow small, .admin-setup small { color: #8fa7a7; font-size: 11px; }
.admin-setup header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.admin-setup header > span { color: #efc96d; font-size: 12px; font-weight: 850; }
.admin-setup li.complete { border-color: #36715c; background: #102b27; }
.admin-setup li.complete > span { border-color: #54c996; color: #0b271c; background: #65d7a3; }
.admin-next-step { display: flex; align-items: center; justify-content: space-between; gap: 20px; border: 1px solid #75602f; border-radius: 8px; padding: 17px 18px; background: #2b2619; }
.admin-next-step h2 { margin-bottom: 4px; font-size: 18px; }
.admin-next-step p:last-child { margin: 0; color: #c8bb94; font-size: 13px; line-height: 1.55; }
.admin-next-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px; flex-wrap: wrap; }
.operator-danger-zone { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-top: 18px; border-top: 1px solid #673d40; padding-top: 20px; }
.operator-danger-zone h2 { margin-bottom: 4px; color: #f1b1a9; font-size: 17px; }
.operator-danger-zone p { margin: 0; color: #9f8989; font-size: 12px; }
.result-visibility-setting { display: grid; gap: 14px; border: 1px solid #34565a; border-radius: 8px; padding: 17px 18px; background: #0d2024; }
.result-visibility-setting > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.result-visibility-setting h2 { margin: 4px 0 0; font-size: 17px; }
.result-visibility-setting > p { margin: 0; color: #93aaa9; font-size: 12px; line-height: 1.55; }
.result-visibility-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.result-visibility-option { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: center; gap: 11px; min-height: 68px; border: 1px solid #3b565b; border-radius: 7px; padding: 12px 13px; color: #d7e4e1; background: #13282d; text-align: left; }
.result-visibility-option:hover:not(:disabled) { border-color: #5a8b80; background: #173137; }
.result-visibility-option.selected { border-color: #55c99a; background: #12342d; box-shadow: inset 3px 0 0 #55c99a; }
.result-visibility-option > span:last-child { display: grid; gap: 3px; }
.result-visibility-option strong { font-size: 14px; }
.result-visibility-option small { color: #90a8a7; font-size: 11px; line-height: 1.45; }
.result-radio { display: grid; width: 22px; height: 22px; place-items: center; border: 2px solid #6d8587; border-radius: 50%; }
.result-visibility-option.selected .result-radio { border-color: #67dda9; }
.result-visibility-option.selected .result-radio::after { width: 10px; height: 10px; border-radius: 50%; background: #67dda9; content: ""; }

/* Forms and modal clarity */
.modal-step { margin: 0 0 5px; color: #68d9aa; font-size: 11px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.form-section { display: grid; gap: 13px; margin: 0; border: 1px solid #315157; border-radius: 8px; padding: 16px; background: #0d2024; }
.form-section legend { padding: 0 7px; color: #edf8f4; font-size: 15px; font-weight: 850; }
.form-section > p { margin: -2px 0 2px; color: #8fa6a7; font-size: 12px; line-height: 1.5; }
.tally-method-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.tally-method-option { display: grid; grid-template-columns: auto minmax(0, 1fr); align-items: start; gap: 11px; min-height: 76px; border: 1px solid #3b565b; border-radius: 7px; padding: 13px; background: #13282d; color: #d7e4e1; cursor: pointer; }
.tally-method-option:hover { border-color: #5a8b80; background: #173137; }
.tally-method-option.selected { border-color: #55c99a; background: #12342d; box-shadow: inset 3px 0 0 #55c99a; }
.tally-method-option input { width: 18px; height: 18px; margin: 2px 0 0; accent-color: #67dda9; }
.tally-method-option > span { display: grid; gap: 4px; }
.tally-method-option strong { color: #edf8f4; font-size: 14px; }
.tally-method-option small { color: #90a8a7; font-size: 11px; line-height: 1.5; }
.ranked-choice-draft-note { border-left: 3px solid #c69a3e; padding: 9px 11px; background: #2b2919; color: #e2c477 !important; }
.field span b { margin-left: 4px; color: #f0c96d; font-size: 10px; }
.field span em { color: #849c9d; font-size: 10px; font-style: normal; font-weight: 650; }
.field input:disabled, .field textarea:disabled { color: #91a2a2; background: #102025; }
.form-error { display: grid; gap: 4px; border: 1px solid #8a494c; border-left: 4px solid #ed766d; border-radius: 7px; padding: 12px 14px; color: #ffd1ca; background: #352124; }
.form-error span { font-size: 13px; line-height: 1.5; }
.option-count { margin-left: auto; color: #93aaaa; font-size: 12px; font-weight: 800; }
.option-item-list li > span { display: flex; align-items: center; gap: 9px; min-width: 0; }
.option-item-list li > span b { display: grid; width: 24px; height: 24px; flex: none; place-items: center; border-radius: 50%; color: #77dfb0; background: #183b32; font-size: 11px; }
.inherited-setting { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 4px 14px; border-left: 3px solid #4f8980; padding: 10px 12px; background: #10282c; }
.inherited-setting strong { color: #84a19f; font-size: 11px; }
.inherited-setting span { color: #dbe8e5; font-size: 13px; font-weight: 750; }
.inherited-setting small { grid-column: 2; color: #88a1a1; font-size: 11px; }
.modal-box { overscroll-behavior: contain; }
.admin-modal-box { width: min(680px, 100%); }
.admin-modal-actions { position: sticky; bottom: -22px; margin: 5px -22px -22px; border-top: 1px solid #315157; padding: 14px 22px; background: #10262a; }
.auth-progress { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 0 18px; padding: 0; list-style: none; }
.auth-progress li { display: flex; align-items: center; gap: 7px; color: #768e90; font-size: 12px; font-weight: 750; }
.auth-progress li::after { height: 1px; flex: 1; margin-left: 4px; background: #385155; content: ""; }
.auth-progress li:last-child::after { display: none; }
.auth-progress li span { display: grid; width: 26px; height: 26px; flex: none; place-items: center; border: 1px solid #496266; border-radius: 50%; }
.auth-progress li.complete, .auth-progress li.current { color: #69d9a8; }
.auth-progress li.complete span, .auth-progress li.current span { border-color: #4aaf82; background: #173c31; }
.auth-message { margin: 0; border-radius: 7px; padding: 10px 12px; font-size: 13px; line-height: 1.5; }
.auth-message.info { color: #b8d9d4; background: #102e32; }
.auth-message.error { color: #ffc1ba; background: #352124; }
.text-button { justify-self: start; min-height: 36px; border: 0; padding: 4px 0; color: #85cbb4; background: transparent; font-size: 13px; text-decoration: underline; }
.wallet-steps { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.wallet-steps li { display: flex; gap: 9px; align-items: center; border: 1px solid #315157; border-radius: 7px; padding: 11px; color: #91a8a7; background: #0d2024; }
.wallet-steps li > span { display: grid; width: 28px; height: 28px; flex: none; place-items: center; border: 1px solid #4d6769; border-radius: 50%; font-size: 12px; font-weight: 850; }
.wallet-steps li div { display: grid; gap: 2px; min-width: 0; }
.wallet-steps li strong { color: #dce8e5; font-size: 12px; }
.wallet-steps li small { overflow: hidden; color: #809899; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.wallet-steps li.complete { border-color: #36705c; color: #68dda9; background: #102b26; }
.wallet-steps li.current { border-color: #826d37; color: #f2cb70; background: #2a261b; }
.notice { align-items: center; }
.notice > span:nth-child(2) { flex: 1; }
.notice-close { display: grid; width: 34px; height: 34px; flex: none; place-items: center; border: 0; border-radius: 6px; color: inherit; background: rgba(255,255,255,.08); font-size: 19px; }
.step-up-modal { z-index: 36; }
.step-up-box { width: min(520px, 100%); }
.step-up-options { display: grid; gap: 10px; }
.step-up-option { display: grid; grid-template-columns: 46px minmax(0, 1fr); align-items: center; gap: 13px; width: 100%; min-height: 76px; border: 1px solid #3b5b60; border-radius: 8px; padding: 13px 15px; color: #dce9e6; background: #13282d; text-align: left; }
.step-up-option:hover:not(:disabled) { border-color: #5c9184; background: #173137; }
.step-up-option.primary { border-color: #478b72; background: #12332c; }
.step-up-option:disabled { opacity: .62; cursor: wait; }
.step-up-option-icon { display: grid; width: 46px; height: 46px; place-items: center; border: 1px solid #567377; border-radius: 8px; color: #d7f8eb; background: #1b3c40; font-size: 18px; font-weight: 900; }
.step-up-option.primary .step-up-option-icon { border-color: #55b58d; color: #09251c; background: #65dca9; }
.step-up-option > span:last-child { display: grid; gap: 4px; min-width: 0; }
.step-up-option strong { font-size: 15px; }
.step-up-option small { color: #91aaa8; font-size: 12px; line-height: 1.45; }
.step-up-security { margin: 13px 0 0; border-left: 3px solid #527b73; padding-left: 10px; color: #8fa8a6; font-size: 11px; line-height: 1.55; }

@media (max-width: 680px) {
  .tally-method-options { grid-template-columns: 1fr; }
  .shell { width: min(100% - 24px, 680px); padding-top: 20px; }
  .topbar, .intro, .proposal-head, .operator-list-hero, .operator-detail-hero { align-items: flex-start; flex-direction: column; }
  .intro { grid-template-columns: minmax(0, 1fr); }
  .topbar { gap: 14px; }
  .wallet-status { justify-content: flex-start; }
  .decision-status-nav { grid-template-columns: none; grid-auto-columns: minmax(150px, 1fr); grid-auto-flow: column; overflow-x: auto; overscroll-behavior-inline: contain; }
  .decision-status-tab { border-right: 1px solid #29494e; }
  .decision-status-tab:last-child { border-right: 0; }
  .decision-lane-head { align-items: start; }
  .section-head { align-items: flex-start; flex-direction: column; gap: 5px; }
  .proposal-meta { justify-items: start; text-align: left; white-space: normal; }
  .proposal-head, .vote-list { padding-left: 16px; padding-right: 16px; }
  .decision-hero { padding: 22px 16px; }
  .proposal-detail { margin-left: 16px; margin-right: 16px; }
  .vote-foot { padding-left: 16px; padding-right: 16px; }
  .vote-foot-outcome { width: 100%; border-top: 1px solid rgba(143, 168, 169, .16); padding-top: 9px; }
  .option-result { grid-template-columns: minmax(65px, 1fr) auto; min-width: 138px; }
  .form-grid.two { grid-template-columns: 1fr; }
  .option-add-row { align-items: flex-start; flex-direction: column; }
  .operator-decision-meta { justify-content: flex-start; text-align: left; }
  .operator-decision-row { grid-template-columns: minmax(0, 1fr); }
  .publication-setting { align-items: flex-start; flex-direction: column; }
  .publication-toggle { width: 100%; justify-content: end; }
  .settings-list > div { grid-template-columns: 1fr; gap: 5px; }
  .participation-card { grid-template-columns: 1fr; padding: 17px; }
  .participation-action, .participation-ready-message { grid-column: 1; align-items: stretch; flex-direction: column; }
  .participation-action .btn { width: 100%; }
  .decision-vote-ready { align-items: stretch; flex-direction: column; }
  .decision-vote-ready-steps { width: 100%; }
  .vote-guide { grid-template-columns: 1fr; gap: 11px; }
  .vote-guide ol { justify-content: flex-start; flex-wrap: wrap; }
  .vote-submit-panel { align-items: stretch; flex-direction: column; margin-right: 16px; margin-left: 16px; }
  .vote-submit-panel .btn { width: 100%; }
  .ranked-vote-builder, .ranked-rounds { margin-right: 16px; margin-left: 16px; }
  .ranked-selection li { grid-template-columns: 30px minmax(0, 1fr); }
  .rank-controls { grid-column: 1 / -1; justify-content: flex-end; }
  .ranked-add { align-items: flex-start; flex-direction: column; }
  .vote-complete, .vote-unavailable { margin-right: 16px; margin-left: 16px; }
  .results-withheld { margin-right: 16px; margin-left: 16px; }
  .admin-workflow ol, .admin-setup ol { grid-template-columns: 1fr; }
  .admin-next-step, .operator-danger-zone { align-items: stretch; flex-direction: column; }
  .admin-next-step .btn, .operator-danger-zone .btn { width: 100%; }
  .admin-next-actions { width: 100%; }
  .admin-modal-actions { flex-direction: column-reverse; }
  .admin-modal-actions .btn { width: 100%; }
  .result-visibility-options { grid-template-columns: 1fr; }
}

@media (max-width: 460px) {
  .brand-copy strong { font-size: 18px; }
  h1 { font-size: 29px; }
  .decision-card { min-height: 0; padding: 17px; }
  .decision-card-top, .decision-card-bottom, .decision-hero-status { align-items: flex-start; flex-direction: column; }
  .decision-card-top-meta { align-items: flex-start; flex-wrap: wrap; justify-content: flex-start; }
  .decision-card-timing, .decision-hero-status > strong { text-align: left; }
  .decision-card-action { align-self: stretch; justify-content: space-between; border-top: 1px solid rgba(155, 185, 181, .13); padding-top: 11px; }
  .decision-lane-head { grid-template-columns: auto minmax(0, 1fr); }
  .decision-lane-head > strong { grid-column: 2; text-align: left; }
  .vote-option { gap: 10px; padding: 12px; }
  .vote-choice { grid-template-columns: auto minmax(0, 1fr); }
  .vote-choice .option-result { grid-column: 2; justify-items: start; }
  .vote-result { grid-template-columns: minmax(0, 1fr); }
  .vote-result .option-result { justify-items: start; }
  .option-result { grid-template-columns: 1fr; gap: 4px; justify-items: end; }
  .bar { width: 90px; }
  .confirmation-box { padding: 18px; }
  .confirmation-head { grid-template-columns: 38px minmax(0, 1fr) 34px; gap: 10px; }
  .confirmation-icon { width: 38px; height: 38px; }
  .confirmation-actions { flex-direction: column-reverse; }
  .confirmation-actions .btn { width: 100%; }
  .admin-overview > div { padding: 13px; }
  .admin-overview strong { font-size: 23px; }
  .wallet-steps { grid-template-columns: 1fr; }
  .vote-review-summary dd { font-size: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  .button-spinner { animation-duration: 1.8s; }
  .decision-card-active .decision-state i { animation: none; }
}
