*{box-sizing:border-box}body{color:#fafafa;background:#0a0a0a;min-height:100vh;margin:0;padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.container{max-width:800px;margin:0 auto}h1{margin-bottom:8px;font-size:1.8rem}h2{color:#888;margin-top:0;font-size:1.2rem;font-weight:400}.card{background:#1a1a1a;border:1px solid #333;border-radius:12px;margin-bottom:16px;padding:20px}.card h3{color:#fff;margin-top:0;margin-bottom:16px;font-size:1rem}.button-group{flex-wrap:wrap;gap:12px;display:flex}button{color:#fff;cursor:pointer;background:#3b82f6;border:none;border-radius:8px;padding:12px 24px;font-size:.9rem;transition:background .2s}button:hover:not(:disabled){background:#2563eb}button:disabled{color:#666;cursor:not-allowed;background:#333}button.secondary{background:#27272a;border:1px solid #3f3f46}button.secondary:hover:not(:disabled){background:#3f3f46}button.danger{background:#dc2626}button.danger:hover:not(:disabled){background:#b91c1c}.info-box{word-break:break-all;background:#18181b;border:1px solid #27272a;border-radius:8px;margin-top:12px;padding:12px;font-family:monospace;font-size:.85rem}.info-box .label{color:#71717a;margin-bottom:4px;font-family:-apple-system,sans-serif}.info-box .value{color:#a1a1aa}.status{border-radius:20px;align-items:center;gap:8px;padding:4px 12px;font-size:.85rem;display:inline-flex}.status.connected{color:#4ade80;background:#052e16}.status.disconnected{color:#71717a;background:#27272a}.form-group{margin-bottom:16px}.form-group label{color:#a1a1aa;margin-bottom:6px;font-size:.9rem;display:block}.form-group input{color:#fafafa;background:#18181b;border:1px solid #3f3f46;border-radius:8px;width:100%;padding:12px;font-size:.9rem}.form-group input:focus{border-color:#3b82f6;outline:none}.log-box{background:#0a0a0a;border:1px solid #27272a;border-radius:8px;max-height:200px;margin-top:12px;padding:12px;font-family:monospace;font-size:.8rem;overflow-y:auto}.log-entry{color:#71717a;border-bottom:1px solid #27272a;padding:4px 0}.log-entry:last-child{border-bottom:none}.log-entry.success{color:#4ade80}.log-entry.error{color:#f87171}.log-entry.info{color:#60a5fa}.credentials-list{margin-top:12px}.credential-item{background:#18181b;border:1px solid #27272a;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px;display:flex}.credential-info{flex:1}.credential-info .nickname{margin-bottom:4px;font-weight:500}.credential-info .id{color:#71717a;font-family:monospace;font-size:.75rem}.credential-item .primary-badge{color:#fff;background:#3b82f6;border-radius:4px;margin-left:8px;padding:2px 8px;font-size:.75rem}.credential-item .status-badge{border-radius:4px;margin-left:8px;padding:2px 8px;font-size:.75rem}.credential-item .status-badge.deployed{color:#4ade80;background:#052e16}.credential-item .status-badge.pending{color:#fbbf24;background:#422006}.credential-item .status-badge.failed{color:#f87171;background:#450a0a}.credential-item.pending{opacity:.8;border-color:#422006}.credential-info .error-text{color:#f87171;margin-top:4px;font-size:.75rem}.credential-details{margin-top:12px}.detail-row{border-top:1px solid #27272a;flex-direction:column;padding:8px 0;display:flex}.detail-row:first-child{border-top:none;padding-top:0}.detail-label{color:#71717a;margin-bottom:4px;font-size:.75rem}.detail-value{color:#a1a1aa;word-break:break-all;font-family:monospace;font-size:.8rem}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.tabs{border-bottom:1px solid #27272a;margin-bottom:16px;display:flex}.tab{color:#71717a;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 16px}.tab.active{color:#fafafa;border-bottom-color:#3b82f6}.network-badge{color:#a1a1aa;background:#27272a;border-radius:20px;padding:4px 12px;font-size:.8rem}.spinner{border:2px solid #3f3f46;border-top-color:#3b82f6;border-radius:50%;width:16px;height:16px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.pending-credentials-card{border-color:#422006}.pending-description{color:#a1a1aa;margin-top:0;margin-bottom:16px;font-size:.85rem}.credential-date{color:#71717a;margin-top:4px;font-size:.75rem}.credential-actions{flex-shrink:0;gap:8px;display:flex}button.small{padding:6px 12px;font-size:.8rem}button.small .spinner{width:12px;height:12px}.wallet-info{flex-direction:column;gap:12px;display:flex}.wallet-info .info-box{margin-top:0}.wallet-info-row{gap:12px;display:flex}.balance-display{text-align:center;background:#18181b;border:1px solid #27272a;border-radius:8px;flex:none;padding:16px 24px}.balance-label{color:#71717a;margin-bottom:4px;font-size:.85rem}.balance-value{color:#4ade80;font-size:1.5rem;font-weight:600}.panel-description{color:#a1a1aa;margin-top:0;margin-bottom:16px;font-size:.85rem}.loading-state,.empty-state{text-align:center;color:#71717a;padding:24px;font-size:.9rem}.loading-state .spinner{margin-right:8px}.active-signer-display{background:#18181b;border:1px solid #27272a;border-radius:8px;margin-top:16px;padding:12px}.active-signer-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.active-signer-label{color:#71717a;font-size:.85rem}.active-signer-badge{color:#22c55e;background:#22c55e20;border-radius:4px;padding:2px 8px;font-size:.75rem}.active-signer-details .detail-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.active-signer-details .detail-label{color:#71717a;font-size:.8rem}.active-signer-details .detail-value{color:#a1a1aa;font-size:.8rem}.active-signer-details .detail-value.monospace{font-family:monospace}.signer-item.active{background:#22c55e10;border-color:#22c55e}.active-badge{color:#22c55e;background:#22c55e20;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:.7rem}.signer-item.connected{background:#3b82f610;border-color:#3b82f6}.connected-badge{color:#3b82f6;background:#3b82f620;border-radius:3px;margin-left:6px;padding:1px 6px;font-size:.7rem}.connected-wallet-row{align-items:center}.connected-wallet-info{flex:1;align-items:center;gap:8px;display:flex}.wallet-badge{color:#fff;background:#3b82f6;border-radius:4px;padding:2px 8px;font-size:.75rem;font-weight:500}.context-rules-list{flex-direction:column;gap:8px;display:flex}.context-rule-item{background:#18181b;border:1px solid #27272a;border-radius:8px;overflow:hidden}.context-rule-item[open]{border-color:#3b82f6}.rule-header{width:100%;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;justify-content:space-between;align-items:center;padding:12px;list-style:none;transition:background .2s;display:flex}.rule-header:hover{background:#1f1f23}.rule-header:focus-visible{outline-offset:-2px;outline:2px solid #3b82f6}.rule-header::-webkit-details-marker{display:none}.context-rule-item[open] .expand-icon{transform:rotate(45deg)}.rule-main{flex:1}.rule-name{margin-bottom:4px;font-weight:500}.rule-id{color:#3b82f6;margin-right:8px;font-size:.85rem}.rule-type{color:#71717a;font-size:.8rem}.rule-summary{align-items:center;gap:8px;display:flex}.summary-badge{color:#a1a1aa;background:#27272a;border-radius:4px;padding:2px 8px;font-size:.75rem}.summary-badge.expiry{color:#fbbf24;background:#422006}.expand-icon{color:#71717a;text-align:center;width:20px;font-size:1.2rem;transition:transform .2s}.rule-details{background:#0f0f11;border-top:1px solid #27272a;padding:12px}.detail-section{margin-bottom:16px}.detail-section:last-child{margin-bottom:0}.detail-section-header{text-transform:uppercase;color:#71717a;letter-spacing:.05em;margin-bottom:8px;font-size:.75rem}.detail-empty{color:#52525b;font-size:.85rem;font-style:italic}.signers-grid{flex-wrap:wrap;gap:8px;display:flex}.signer-chip{background:#27272a;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:.8rem;display:flex}.signer-type{color:#3b82f6}.signer-id{color:#a1a1aa;font-family:monospace}.signer-chip.connected{background:#3b82f610;border:1px solid #3b82f6}.signer-connected-badge{color:#3b82f6;background:#3b82f620;border-radius:3px;margin-left:4px;padding:1px 5px;font-size:.65rem}.policies-list{flex-direction:column;gap:8px;display:flex}.policy-item{background:#27272a;border-radius:6px;align-items:center;gap:8px;padding:6px 10px;font-size:.8rem;display:flex}.policy-icon{color:#fff;background:#3b82f6;border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-size:.7rem;font-weight:700;display:flex}.policy-address{color:#a1a1aa;font-family:monospace}.rule-actions{border-top:1px solid #27272a;gap:8px;margin-top:16px;padding-top:12px;display:flex}.modal-overlay{z-index:1000;background:#000c;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-content{background:#1a1a1a;border:1px solid #333;border-radius:12px;flex-direction:column;width:100%;max-width:600px;max-height:90vh;display:flex;overflow:hidden}.modal-header{border-bottom:1px solid #27272a;flex-shrink:0;justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h3{margin:0;font-size:1.1rem}.modal-close{color:#71717a;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.modal-close:hover{color:#fafafa}.modal-body{flex:1;min-height:0;padding:20px;overflow-y:auto}.modal-footer{background:#1a1a1a;border-top:1px solid #27272a;flex-shrink:0;justify-content:flex-end;gap:12px;padding:16px 20px;display:flex}.error-banner{color:#f87171;background:#450a0a;border:1px solid #dc2626;border-radius:8px;margin-bottom:16px;padding:12px;font-size:.9rem}.form-hint{color:#71717a;margin-top:4px;margin-bottom:8px;font-size:.8rem}.radio-group{flex-direction:column;gap:8px;display:flex}.radio-label,.checkbox-label{cursor:pointer;align-items:center;gap:8px;display:flex}.radio-label input,.checkbox-label input{width:auto;margin:0 8px 0 0}.signer-list{flex-direction:column;gap:8px;margin-bottom:12px;display:flex}.signer-item{background:#27272a;border-radius:6px;align-items:center;gap:8px;padding:8px 12px;display:flex}.signer-type-badge{color:#fff;background:#3b82f6;border-radius:4px;padding:2px 8px;font-size:.75rem}.signer-value{color:#a1a1aa;flex:1;font-family:monospace;font-size:.85rem}.remove-btn{color:#f87171;cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem;line-height:1}.remove-btn:hover{color:#dc2626}.add-signer-row{gap:8px;display:flex}.add-signer-row select{color:#fafafa;background:#18181b;border:1px solid #3f3f46;border-radius:8px;padding:8px 12px;font-size:.9rem}.add-signer-row input{flex:1}.policy-config{background:#18181b;border:1px solid #27272a;border-radius:8px;margin-bottom:8px;padding:12px}.policy-params{border-top:1px solid #27272a;margin-top:12px;padding-top:12px}.policy-params label{color:#a1a1aa;align-items:center;font-size:.9rem;display:flex}.policy-params input{color:#fafafa;background:#27272a;border:1px solid #3f3f46;border-radius:4px;padding:4px 8px;font-size:.85rem}.add-signer-section{background:#18181b;border:1px solid #27272a;border-radius:8px;overflow:hidden}.signer-mode-tabs{border-bottom:1px solid #27272a;display:flex}.mode-tab{color:#71717a;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;padding:8px 12px;font-size:.8rem;transition:all .2s}.mode-tab:hover:not(:disabled){color:#a1a1aa;background:#1f1f23}.mode-tab.active{color:#fafafa;border-bottom-color:#3b82f6}.mode-tab:disabled{opacity:.5;cursor:not-allowed}.signer-mode-content{padding:12px}.no-credentials{color:#71717a;font-size:.85rem;font-style:italic}.discover-hint{color:#a1a1aa;flex:1;font-size:.85rem}.policy-list{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.policy-checkbox{cursor:pointer;background:#18181b;border:1px solid #27272a;border-radius:8px;align-items:flex-start;gap:12px;padding:12px;transition:border-color .2s;display:flex}.policy-checkbox:hover{border-color:#3f3f46}.policy-checkbox.custom{cursor:default;flex-direction:row;justify-content:space-between;align-items:center}.policy-checkbox input[type=checkbox]{width:auto;margin-top:2px}.policy-info{flex-direction:column;flex:1;gap:4px;display:flex}.policy-name{color:#fafafa;font-weight:500}.policy-description{color:#71717a;font-size:.85rem}.policy-address{color:#52525b;word-break:break-all;font-family:monospace;font-size:.75rem}.add-custom-policy{border-top:1px solid #27272a;margin-top:16px;padding-top:16px}.selected-policies-list{flex-direction:column;gap:12px;margin-bottom:12px;display:flex}.selected-policy-item{background:#18181b;border:1px solid #27272a;border-radius:8px;padding:12px}.selected-policy-header{align-items:center;gap:8px;margin-bottom:4px;display:flex}.policy-type-badge{color:#fff;text-transform:uppercase;background:#3b82f6;border-radius:4px;padding:2px 8px;font-size:.7rem}.policy-type-badge:has(+.policy-name:contains("custom")){background:#8b5cf6}.selected-policy-header .policy-name{color:#fafafa;flex:1;font-weight:500}.policy-address-small{color:#52525b;word-break:break-all;margin-bottom:8px;font-family:monospace;font-size:.7rem;display:block}.add-policy-section{background:#18181b;border:1px solid #27272a;border-radius:8px;padding:12px}.signer-item.active{background:#14532d20;border:1px solid #22c55e}.active-badge{color:#052e16;text-transform:uppercase;background:#22c55e;border-radius:4px;margin-left:8px;padding:1px 6px;font-size:.65rem;font-weight:600}.active-signer-display{background:#18181b;border:1px solid #27272a;border-radius:8px;flex:1;margin-top:0;padding:16px}.active-signer-header{border-bottom:1px solid #27272a;align-items:center;gap:12px;margin-bottom:12px;padding-bottom:12px;display:flex}.active-signer-label{text-transform:uppercase;color:#71717a;letter-spacing:.05em;font-size:.8rem}.active-signer-badge{color:#052e16;background:#22c55e;border-radius:4px;padding:4px 10px;font-size:.75rem;font-weight:600}.active-signer-details{flex-direction:column;gap:8px;display:flex}.detail-row{flex-direction:column;gap:2px;display:flex}.detail-label{color:#71717a;text-transform:uppercase;letter-spacing:.03em;font-size:.75rem}.detail-value{color:#fafafa;font-size:.9rem}.detail-value.monospace{word-break:break-all;font-family:monospace;font-size:.85rem}.signer-picker .modal-body{max-height:60vh;overflow-y:auto}.signer-picker .description{color:#a1a1aa;margin-bottom:16px;font-size:.9rem}.signer-picker .signer-section{margin-bottom:20px}.signer-picker .signer-section h4{color:#fafafa;margin:0 0 12px;font-size:.95rem;font-weight:500}.signer-picker .signer-list{flex-direction:column;gap:8px;display:flex}.signer-picker .signer-item{cursor:pointer;background:#27272a;border:1px solid #3f3f46;border-radius:8px;align-items:center;gap:12px;padding:12px 16px;transition:all .15s;display:flex}.signer-picker .signer-item:hover{border-color:#52525b}.signer-picker .signer-item.selected{background:#1e3a5f;border-color:#3b82f6}.signer-picker .signer-item.active{border-color:#22c55e}.signer-picker .signer-item.disabled{cursor:not-allowed}.signer-picker .signer-item.disabled>input[type=checkbox],.signer-picker .signer-item.disabled>.signer-info{opacity:.5}.signer-picker .signer-item input[type=checkbox]{cursor:pointer;width:18px;height:18px;margin:0}.signer-picker .signer-item.disabled input[type=checkbox]{cursor:not-allowed}.signer-picker .signer-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.signer-picker .signer-label{color:#fafafa;align-items:center;gap:8px;font-size:.9rem;display:flex}.signer-picker .signer-type{color:#71717a;font-size:.8rem}.signer-picker .badge{border-radius:4px;padding:2px 6px;font-size:.7rem;font-weight:600}.signer-picker .badge.active{color:#052e16;background:#22c55e}.signer-picker .badge.connected{color:#fff;background:#3b82f6}.signer-picker .connect-wallet-section{text-align:center;background:#18181b;border:1px solid #27272a;border-radius:8px;margin-top:12px;padding:12px}.signer-picker .connect-wallet-section .hint{color:#71717a;margin:0 0 12px;font-size:.85rem}.signer-picker .no-signers{color:#71717a;text-align:center;padding:24px}.signer-picker .delegated-signer-wrapper{flex-direction:column;gap:8px;display:flex}.signer-picker .secret-key-btn{white-space:nowrap;flex-shrink:0;padding:4px 8px;font-size:.75rem}.signer-picker .secret-key-input-form{background:#18181b;border:1px solid #3b82f6;border-radius:8px;margin-top:4px;padding:12px}.signer-picker .secret-key-header{color:#a1a1aa;justify-content:space-between;align-items:center;margin-bottom:8px;font-size:.85rem;display:flex}.signer-picker .secret-key-header .close-btn{padding:2px 6px;font-size:.9rem;line-height:1}.signer-picker .secret-key-input{color:#fafafa;background:#27272a;border:1px solid #3f3f46;border-radius:6px;width:100%;margin-bottom:8px;padding:8px 12px;font-family:monospace;font-size:.85rem}.signer-picker .secret-key-input:focus{border-color:#3b82f6;outline:none}.signer-picker .secret-key-input::placeholder{color:#52525b}.signer-picker .secret-key-error{color:#ef4444;margin-bottom:8px;font-size:.8rem}.signer-picker .secret-key-actions{justify-content:flex-end;gap:8px;display:flex}.signer-picker .secret-key-warning{color:#f59e0b;background:#f59e0b1a;border-radius:4px;margin:8px 0 0;padding:6px 8px;font-size:.75rem}.close-button{color:#71717a;cursor:pointer;background:0 0;border:none;padding:0;font-size:1.5rem;line-height:1}.close-button:hover{color:#fafafa}.connected-wallet-banner{background:#18181b;border:1px solid #27272a;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:16px;padding:12px 16px;display:flex}.connected-wallet-info{align-items:center;gap:12px;display:flex}.wallet-icon{border-radius:50%;width:32px;height:32px}.wallet-details{flex-direction:column;gap:2px;display:flex}.wallet-name{color:#fafafa;font-size:.9rem;font-weight:500}.wallet-address{color:#71717a;font-family:monospace;font-size:.8rem}.disconnect-btn{padding:6px 12px;font-size:.8rem}.connected-wallets-list-section{flex-direction:column;gap:8px;margin-bottom:0;display:flex}.connected-wallets-list-section .connected-wallet-banner{margin-bottom:0}.connected-wallets-list-section .disconnect-btn.small{min-width:32px;padding:4px 10px;font-size:1rem}.connected-wallets-list{flex-direction:column;gap:8px;display:flex}.connected-wallet-item{background:#18181b;border:1px solid #27272a;border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;display:flex}.connected-wallet-item .wallet-info{flex-direction:row;flex:1;align-items:center;gap:10px;min-width:0;display:flex}.connected-wallet-item .wallet-badge{color:#fff;white-space:nowrap;background:#3b82f6;border-radius:4px;flex-shrink:0;padding:3px 8px;font-size:.75rem;font-weight:500}.connected-wallet-item .wallet-name{color:#fafafa;white-space:nowrap;flex-shrink:0;font-size:.85rem;font-weight:500}.connected-wallet-item .wallet-address{color:#a1a1aa;text-overflow:ellipsis;font-family:monospace;font-size:.8rem;overflow:hidden}.connected-wallet-item .badge{white-space:nowrap;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:.7rem}.connected-wallet-item .badge.signer-match{color:#22c55e;background:#22c55e20}.connected-wallet-item .badge.no-match{color:#71717a;background:#71717a20}.connected-wallet-item.matches-signer{border-color:#22c55e40}.connected-wallet-item button.remove-wallet,.connected-wallet-item button.small{flex-shrink:0}.connected-wallets-section{border-top:1px solid #27272a;margin-top:8px;padding-top:16px}.connected-wallets-section h4{color:#a1a1aa;margin-bottom:12px;font-size:.9rem}.connected-wallets-add-section{flex-direction:column;gap:8px;display:flex}.connected-wallets-add-section .no-wallets-message{text-align:center;color:#71717a;padding:16px}.connected-wallets-add-section .connect-more-btn{align-self:flex-start}.stellar-wallets-kit{z-index:2000!important}.contract-picker-modal{width:90%;max-width:500px}.contract-picker-modal .modal-header p{color:#a1a1aa;margin-top:8px;font-size:.9rem}.contract-list{flex-direction:column;gap:12px;max-height:400px;padding:4px;display:flex;overflow-y:auto}.contract-option{cursor:pointer;background:#18181b;border:1px solid #27272a;border-radius:8px;padding:16px;transition:all .2s}.contract-option:hover{background:#1f1f23;border-color:#3b82f6}.contract-option-header{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.contract-option-header code{color:#e4e4e7;word-break:break-all;font-family:monospace;font-size:.85rem}.contract-option-header .contract-label{color:#71717a;text-transform:uppercase;letter-spacing:.05em;font-size:.75rem}.contract-option-stats{flex-wrap:wrap;gap:8px;display:flex}.contract-option-stats .stat{color:#a1a1aa;background:#27272a;border-radius:4px;padding:4px 10px;font-size:.75rem}.contract-option-stats .stat strong{color:#e4e4e7;margin-right:4px;font-weight:600}.contract-option-stats .stat.ledger{background:0 0;border:1px solid #27272a}.contract-picker-modal .modal-footer{border-top:1px solid #27272a;margin-top:16px;padding-top:16px}.contract-picker-modal .modal-footer button{width:100%}
