:root{--bg: #000000;--surface: #0a0a0a;--border: rgba(255, 255, 255, .1);--border-strong: rgba(255, 255, 255, .2);--text: #ffffff;--dim: rgba(255, 255, 255, .5);--accent: #ff0066;--accent-hover: #ff3385;--accent-glow: rgba(255, 0, 102, .4);--accent-bg: rgba(255, 0, 102, .1);--cyan: #00ffff;--purple: #9900ff;--success: #00ff88;--warn: #ffaa00;--error: #ff3333;--aye: #00ff88;--nay: #ff3333;--abstain: rgba(255, 255, 255, .5);--radius: .5rem}*{box-sizing:border-box;margin:0;padding:0}body{font-family:ui-monospace,SFMono-Regular,SF Mono,Segoe UI Mono,Menlo,Consolas,monospace;background:var(--bg);color:var(--text);line-height:1.6;letter-spacing:.02em}.app{max-width:720px;margin:0 auto;padding:24px 16px}header{display:flex;align-items:baseline;flex-wrap:wrap;gap:12px;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--border)}header h1{font-size:1.5rem;font-weight:700;letter-spacing:.08em;color:var(--accent);text-transform:uppercase}.subtitle{color:var(--dim);font-size:.8rem;letter-spacing:.1em;text-transform:uppercase}.connect-wallet{display:flex;align-items:stretch;flex-wrap:wrap;justify-content:center;gap:8px;margin-left:auto}.connect-wallet button,.connect-wallet select,.connect-wallet .address{height:32px;box-sizing:border-box;font-family:inherit;font-size:.8rem;padding:0 10px;border-radius:var(--radius);border:1px solid var(--border);white-space:nowrap;margin:0;width:auto}.connect-wallet select{display:inline-block;background:var(--bg);color:var(--text);cursor:pointer}.connector-btn{display:inline-flex;align-items:center;gap:6px}.connector-icon{width:16px;height:16px;border-radius:3px;flex-shrink:0}.address{display:flex;align-items:center;background:var(--surface);color:var(--text)}nav{display:flex;gap:4px;margin-bottom:20px}nav button{flex:1;padding:10px;background:transparent;border:1px solid var(--border);color:var(--dim);border-radius:var(--radius);cursor:pointer;font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;transition:all .2s}nav button:hover{border-color:var(--accent);color:var(--accent)}nav button.active{color:var(--text);border-color:var(--accent);background:var(--accent-bg)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card h3{font-size:1rem;font-weight:700;margin-bottom:12px;letter-spacing:.04em}.card h4{font-size:.85rem;font-weight:500;margin-bottom:8px;color:var(--dim);letter-spacing:.04em}button{padding:8px 16px;border-radius:var(--radius);border:1px solid var(--border-strong);background:transparent;color:var(--text);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:500;letter-spacing:.06em;transition:all .2s}button:hover:not(:disabled){border-color:var(--accent);color:var(--accent);background:var(--accent-bg)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--accent);border-color:var(--accent);color:#000;font-weight:700;letter-spacing:.08em;text-transform:uppercase;position:relative}button.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover);color:#000;box-shadow:0 0 20px var(--accent-glow)}button.back{margin-bottom:12px;font-size:.75rem;padding:4px 12px;letter-spacing:.06em}label{display:block;margin-bottom:12px;font-size:.8rem;color:var(--dim);letter-spacing:.04em}input[type=text],input[type=number],textarea,select{display:block;width:100%;margin-top:4px;padding:8px 12px;background:var(--bg);border:1px solid var(--border-strong);border-radius:var(--radius);color:var(--text);font-family:inherit;font-size:.8rem;letter-spacing:.02em;transition:border-color .2s}input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 1px var(--accent-bg)}textarea{resize:vertical}select{cursor:pointer}.checkbox-label{display:flex;align-items:center;gap:8px;color:var(--text)}.checkbox-label input{width:auto;margin:0;accent-color:var(--accent)}.row{display:flex;gap:12px}.row label{flex:1}.dim{color:var(--dim);font-size:.8rem}.mono{font-family:inherit;font-size:.78rem;word-break:break-all}.success{color:var(--success)}.warn{color:var(--warn)}.error{color:var(--error);margin-top:8px;font-size:.8rem}.badge{display:inline-block;padding:2px 10px;border-radius:2px;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-right:6px}.phase-0{background:var(--accent-bg);color:var(--accent);border:1px solid rgba(255,0,102,.3)}.phase-1{background:#ffaa001a;color:var(--warn);border:1px solid rgba(255,170,0,.3)}.phase-2{background:#00ff881a;color:var(--success);border:1px solid rgba(0,255,136,.3)}.public{background:#00ffff14;color:var(--cyan);border:1px solid rgba(0,255,255,.2)}.voter-select{list-style:none;margin-bottom:12px}.voter-option{padding:4px 0}.voter-option .checkbox-label{font-size:.8rem}.proposal-list{list-style:none}.proposal-list li{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--radius);margin-bottom:6px;cursor:pointer;transition:all .2s}.proposal-list li:hover{border-color:var(--accent);background:var(--accent-bg)}.proposal-id{font-weight:700;min-width:36px;color:var(--accent)}.proposer{margin-left:auto}.proposals-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.5rem}.proposals-header h3{margin:0}.filter-toggle{font-size:.85rem;white-space:nowrap}.loading{color:var(--dim);padding:8px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:.9em;height:.9em;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;vertical-align:middle;margin-right:.4em}.info-table{width:100%;border-collapse:collapse;margin-bottom:16px}.info-table td,.info-table th{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;font-size:.8rem}.info-table td:first-child,.info-table th:first-child{color:var(--dim);white-space:nowrap;width:140px}.vote-buttons{display:flex;gap:8px;margin-bottom:12px}.vote-buttons button{flex:1;padding:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;font-size:.8rem}.vote-buttons button.selected{border-color:var(--accent);background:var(--accent);color:#000;box-shadow:0 0 12px var(--accent-glow)}tr.voter-me td{background:#ff00660d}.salt-backup{margin-top:12px;padding:12px;background:#ffaa000f;border:1px solid rgba(255,170,0,.3);border-radius:var(--radius)}.salt-backup code{display:block;margin-top:6px;word-break:break-all;font-size:.78rem;-webkit-user-select:all;user-select:all}.salt-section{margin-bottom:16px}.tally{display:flex;gap:12px;margin:12px 0;flex-wrap:wrap}.tally-row{padding:6px 16px;border-radius:2px;font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase}.tally-row.aye{background:#00ff881a;color:var(--aye);border:1px solid rgba(0,255,136,.3)}.tally-row.nay{background:#ff33331a;color:var(--nay);border:1px solid rgba(255,51,51,.3)}.tally-row.abstain{background:#ffffff0d;color:var(--abstain);border:1px solid var(--border)}.tally-row.unknown{background:#ffffff08;color:var(--dim);border:1px solid var(--border)}.vote-table{margin-top:8px}.action-section{padding:16px 0;border-top:1px solid var(--border)}.action-section:first-of-type{border-top:none}.onboarding{padding:40px 0}.onboarding h2{font-size:1.4rem;font-weight:700;margin-bottom:8px;letter-spacing:.06em}.onboarding-intro{color:var(--dim);font-size:.85rem;margin-bottom:24px;max-width:540px}.security-notice{border:1px solid rgba(255,170,0,.3);border-radius:var(--radius);padding:16px 20px;margin-bottom:28px;background:#ffaa000a}.security-notice h4{color:var(--warn);font-size:.85rem;font-weight:700;margin-bottom:8px;letter-spacing:.06em;text-transform:uppercase}.security-notice ul{list-style:none;padding:0;margin:0 0 12px}.security-notice li{position:relative;padding-left:16px;font-size:.8rem;color:#ffffffb3;line-height:1.8}.security-notice li:before{content:">";position:absolute;left:0;color:var(--warn);font-weight:700}.url-copy{padding:6px 14px;font-size:.75rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--warn);color:var(--warn);background:transparent;border-radius:var(--radius);cursor:pointer;transition:all .2s;font-family:inherit}.url-copy:hover{background:#ffaa001a;box-shadow:0 0 12px #fa03}.steps{display:flex;flex-direction:column;gap:2px}.step{display:flex;align-items:flex-start;gap:14px;padding:12px 0}.step-number{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:2px;border:1px solid var(--border-strong);font-size:.75rem;font-weight:700;color:var(--dim);flex-shrink:0}.step strong{display:block;font-size:.85rem;margin-bottom:2px;letter-spacing:.04em}.step p{color:var(--dim);font-size:.78rem}.step.done .step-number{background:var(--success);border-color:var(--success);color:#000}.step.done strong{color:var(--success)}.key-status{margin-bottom:20px}.key-status h3{margin-bottom:8px}.seed-details{margin:8px 0}.seed-details summary{cursor:pointer;color:var(--dim);font-size:.8rem;transition:color .2s}.seed-details summary:hover{color:var(--accent)}.seed-value{display:block;margin-top:6px;word-break:break-all;font-size:.78rem;-webkit-user-select:all;user-select:all;color:var(--warn)}.key-status-ok h3{margin-bottom:4px}.key-steps{display:flex;flex-direction:column;gap:6px;margin-bottom:8px}.key-step{display:flex;align-items:center;gap:10px;font-size:.8rem;color:var(--dim)}.key-step-num{display:flex;align-items:center;justify-content:center;width:22px;height:22px;border-radius:2px;border:1px solid var(--border-strong);font-size:.7rem;font-weight:700;color:var(--dim);flex-shrink:0}.key-step.done .key-step-num{background:var(--success);border-color:var(--success);color:#000}.key-step.done span:last-child{color:var(--text);opacity:.5}.contact-list{list-style:none;padding:0;margin:.75rem 0;display:flex;flex-direction:column;gap:.5rem}.contact-list li{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.contact-list .contact-name{flex:1}.contact-add{display:flex;gap:.5rem;margin:.75rem 0}.contact-add input:first-child{flex:2}.contact-add input:nth-child(2){flex:1}.contact-actions{display:flex;gap:.5rem;margin:.5rem 0}.contact-import{margin-top:.75rem}.contact-import textarea{width:100%;font-family:inherit;margin-bottom:.5rem}button.small{padding:.25rem .75rem;font-size:.8rem}button.danger{background:transparent;border-color:var(--error);color:var(--error)}button.danger:hover{background:#ff333326}.address-label{display:inline}.address-label .contact-name{color:var(--cyan)}
