:root{--bg: #0f1117;--card: #1a1d28;--card-hover: #1f2233;--border: #2a2d3a;--accent: #8b5cf6;--accent-hover: #a78bfa;--danger: #ef4444;--danger-hover: #f87171;--success: #22c55e;--warning: #f59e0b;--text: #e2e8f0;--text-dim: #94a3b8;--text-muted: #64748b;--radius: 12px;--radius-sm: 8px}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;min-height:100vh;min-height:100dvh;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}#app{max-width:640px;margin:0 auto;padding:16px}.auth-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:80vh;text-align:center;padding:24px}.auth-logo{width:80px;height:80px;background:var(--accent);border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:40px;font-weight:700;color:#fff;margin-bottom:24px}.auth-title{font-size:28px;font-weight:700;margin-bottom:8px}.auth-subtitle{color:var(--text-dim);font-size:15px;margin-bottom:32px}.auth-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;width:100%;max-width:360px}.app-header{display:flex;align-items:center;gap:12px;margin-bottom:20px;padding-bottom:16px;border-bottom:1px solid var(--border)}.header-logo{width:36px;height:36px;background:var(--accent);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}.app-header h1{font-size:20px;font-weight:700;flex:1}.network-badge{font-size:11px;padding:4px 10px;background:#1e3a5f;color:#60a5fa;border-radius:20px;font-weight:500;flex-shrink:0}.info-banner{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:12px 16px;margin-bottom:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:13px}.info-banner a{color:var(--accent);text-decoration:none}.info-banner a:hover{text-decoration:underline}.header-actions{margin-left:auto;display:flex;gap:6px}.btn{padding:10px 18px;border:none;border-radius:var(--radius-sm);cursor:pointer;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex;align-items:center;justify-content:center;gap:6px}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.btn-secondary{background:transparent;border:1px solid var(--border);color:var(--text-dim)}.btn-secondary:hover{border-color:var(--text-dim);color:var(--text)}.btn-wallet{background:#0052ff;color:#fff}.btn-wallet:hover{background:#2563eb}.btn-approve{background:#166534;color:#bbf7d0}.btn-approve:hover{background:#15803d}.btn-reject{background:#7f1d1d;color:#fecaca}.btn-reject:hover{background:#991b1b}.btn-full{width:100%}.btn-icon{background:transparent;border:1px solid var(--border);color:var(--text-dim);width:36px;height:36px;padding:0;border-radius:var(--radius-sm);font-size:16px;display:flex;align-items:center;justify-content:center}.btn-icon:hover{border-color:var(--text-dim);color:var(--text)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:20px;margin-bottom:16px}.card h2{font-size:15px;font-weight:600;margin-bottom:16px;display:flex;align-items:center;gap:8px}input[type=text],input[type=password],textarea{width:100%;padding:10px 12px;background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:var(--radius-sm);font-size:13px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;transition:border-color .2s;margin-bottom:8px;box-sizing:border-box}input:focus,textarea:focus{outline:none;border-color:var(--accent)}input::placeholder,textarea::placeholder{color:var(--text-muted)}textarea{resize:vertical;min-height:60px;font-family:SF Mono,Cascadia Code,Consolas,monospace;font-size:12px}.hint{font-size:11px;color:var(--text-muted);margin-top:2px;margin-bottom:8px}.divider{display:flex;align-items:center;gap:12px;margin:16px 0;color:var(--text-muted);font-size:12px}.divider:before,.divider:after{content:"";flex:1;height:1px;background:var(--border)}.stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:20px}.stat{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);padding:14px;text-align:center}.stat-value{font-size:24px;font-weight:700;color:var(--accent)}.stat-label{font-size:11px;color:var(--text-muted);text-transform:uppercase;margin-top:2px}.section{margin-bottom:24px}.section h2{font-size:15px;font-weight:600;margin-bottom:12px;display:flex;align-items:center;gap:8px}.badge{font-size:11px;padding:2px 8px;border-radius:10px;background:var(--accent);color:#fff;font-weight:500}.empty-state{color:var(--text-muted);font-size:14px;text-align:center;padding:32px 16px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius)}.action-id{font-weight:700;font-size:14px;color:var(--text);white-space:nowrap}.action-type{color:var(--accent);font-weight:500;font-size:13px}.action-proposer{font-size:12px;color:var(--text-muted);font-family:monospace}.status{display:inline-block;padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600;flex-shrink:0}.status-pending{background:#422006;color:#fbbf24}.status-executed{background:#052e16;color:#4ade80}.status-rejected{background:#450a0a;color:#fca5a5}.status-approved{background:#0c2d3e;color:#67e8f9}.encrypted-badge{display:inline-block;padding:1px 6px;background:#4c1d95;color:#c4b5fd;border-radius:6px;font-size:10px;font-weight:600}.mode-badge{display:inline-block;padding:3px 10px;border-radius:10px;font-size:11px;font-weight:600;flex-shrink:0}.mode-badge.encrypted{background:#4c1d95;color:#c4b5fd}.mode-badge.open{background:#1e3a5f;color:#60a5fa}.role-badge{padding:2px 8px;border-radius:10px;font-size:11px;font-weight:600}.role-badge.owner{background:#052e16;color:#4ade80}.role-badge.sub-user{background:#422006;color:#fbbf24}.action-body{padding:12px 16px}.detail-row{display:flex;gap:10px;padding:4px 0;font-size:13px;border-bottom:1px solid rgba(42,45,58,.3)}.detail-row:last-child{border-bottom:none}.detail-label{color:var(--text-muted);text-transform:uppercase;font-size:10px;font-weight:600;letter-spacing:.3px;min-width:72px;padding-top:3px;flex-shrink:0}.detail-value{word-break:break-all;flex:1}.detail-value.decrypted{color:var(--text)}.detail-value.encrypted{color:var(--text-muted);font-family:monospace;font-size:11px}.detail-value.expired{color:var(--danger)}.detail-value.payload-text{font-family:SF Mono,Cascadia Code,monospace;font-size:12px}.action-buttons{display:flex;gap:8px;padding:10px 14px;border-top:1px solid var(--border)}.action-buttons .btn{flex:1;min-height:38px;font-size:13px;font-weight:500}.key-display{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 12px;font-size:11px;word-break:break-all}.key-display code{color:var(--accent);font-family:SF Mono,Cascadia Code,monospace}.key-label{color:var(--text-muted);font-size:10px;text-transform:uppercase;display:block;margin-bottom:4px}.success-box{background:#052e16;border:1px solid #1a4a2c;border-radius:var(--radius-sm);padding:14px;color:var(--success);font-size:13px}.warning-box{background:#422006;border:1px solid #92400e;border-radius:var(--radius-sm);padding:14px;color:var(--warning);font-size:13px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;gap:16px;color:var(--text-dim)}.spinner{width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.error-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:40vh;gap:16px;padding:24px;text-align:center}.error-text{color:var(--danger);font-size:14px}#overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0f1117d9;z-index:100;align-items:center;justify-content:center}.overlay-content{display:flex;flex-direction:column;align-items:center;gap:16px;color:var(--text);font-size:14px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%) translateY(100px);padding:12px 20px;border-radius:var(--radius-sm);font-size:13px;font-weight:500;opacity:0;transition:all .3s;z-index:1000;max-width:360px;text-align:center}.toast.show{transform:translate(-50%) translateY(0);opacity:1}.toast.success{background:#052e16;color:var(--success);border:1px solid #1a4a2c}.toast.error{background:#450a0a;color:var(--danger);border:1px solid #5c1a1a}@media(max-width:480px){#app{padding:12px}.stats-row{gap:8px}.stat{padding:10px}.stat-value{font-size:20px}.action-body{padding:10px 12px}.detail-row{flex-direction:column;gap:2px}.detail-label{min-width:auto}.action-row-header{padding:8px 10px;gap:6px}.action-desc-preview{display:none}.create-buttons-row{flex-direction:column}}.connect-container{max-width:480px;margin:0 auto}.contract-link{font-family:monospace;font-size:12px}.copyable{display:inline-flex;align-items:center;gap:4px;cursor:pointer;padding:2px 6px;border-radius:6px;transition:background .15s;font-size:12px;font-family:monospace}.copyable:hover{background:var(--card-hover)}.copyable:active{background:var(--border)}.copyable-label{color:var(--text-muted);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:11px}.copyable-value{color:var(--text)}.copy-icon{color:var(--text-muted);font-size:11px;opacity:.5;transition:opacity .15s}.copyable:hover .copy-icon{opacity:1}.btn-icon-link{color:var(--text-muted);text-decoration:none;font-size:14px;padding:2px;transition:color .15s}.btn-icon-link:hover{color:var(--accent)}.policy-list{margin-top:8px}.policy-item{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;transition:border-color .15s}.policy-item:hover{border-color:var(--accent)}.policy-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.policy-name{font-size:14px;font-weight:600;color:var(--text)}.policy-addr{font-size:11px;font-family:monospace;color:var(--text-muted)}.btn-sm{padding:6px 14px;font-size:12px;flex-shrink:0;margin-left:12px}.create-policy-row{display:flex;flex-direction:column;gap:8px}.create-buttons-row{display:flex;gap:8px}.create-buttons-row .btn{flex:1}.loading-inline{display:flex;align-items:center;gap:10px;padding:12px 0;color:var(--text-dim);font-size:13px}.loading-inline .spinner{width:20px;height:20px;border-width:2px}.policy-section-title{font-size:12px;font-weight:600;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:16px;margin-bottom:6px}.action-row{background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:8px;overflow:hidden;transition:border-color .2s}.action-row.pending-glow{border-color:#92400e}.action-row-header{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;transition:background .15s;-webkit-user-select:none;user-select:none}.action-row-header:hover{background:var(--card-hover)}.action-row .action-id{font-weight:700;font-size:13px;color:var(--text);white-space:nowrap;flex-shrink:0}.action-row .action-type{color:var(--accent);font-weight:500;font-size:12px;flex-shrink:0}.action-desc-preview{color:var(--text-dim);font-size:12px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-row .action-proposer{margin-left:auto;font-size:11px;color:var(--text-muted);font-family:monospace;flex-shrink:0}.expand-icon{font-size:10px;color:var(--text-muted);transition:transform .2s;flex-shrink:0}.action-row.expanded .expand-icon{transform:rotate(90deg)}.action-details{display:none!important;border-top:1px solid var(--border)}.action-row.expanded>.action-details{display:block!important}.action-row .action-body{padding:10px 14px}.action-row .action-buttons{padding:8px 14px}.action-row .action-buttons .btn{min-height:36px;font-size:13px;font-weight:500}.propose-tabs{display:flex;margin-bottom:12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden;padding:3px;gap:3px}.propose-tab{flex:1;padding:8px 14px;border:none;background:transparent;color:var(--text-muted);font-size:13px;font-weight:500;cursor:pointer;transition:all .15s;border-radius:6px}.propose-tab.active{background:var(--accent);color:#fff}.propose-tab:hover:not(.active){background:var(--card);color:var(--text)}.propose-form{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.propose-form .btn{margin-top:4px}.subuser-list{margin-bottom:12px}.subuser-item{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:6px}.subuser-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.subuser-label{font-size:13px;font-weight:500;color:var(--text)}.subuser-addr{font-size:11px;font-family:monospace;color:var(--text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subuser-item .btn-sm{padding:4px 10px;font-size:12px;margin-left:0}.add-subuser-row{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.pagination{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:16px;padding:12px 0}.page-info{font-size:13px;color:var(--text-dim);min-width:100px;text-align:center}.page-btn:disabled{opacity:.3;cursor:not-allowed}
