*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #111;--bg-surface: #1a1a1a;--text: #e0e0e0;--text-muted: #888;--accent: #5b9aff;--border: #333}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--text);line-height:1.5}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}code{background:var(--bg-surface);padding:.15em .4em;border-radius:3px;font-size:.9em;word-break:break-all}.app{min-height:100vh;display:flex;flex-direction:column}header{border-bottom:1px solid var(--border);padding:.75rem 1.5rem}header nav{display:flex;align-items:center;gap:1.5rem;max-width:960px;margin:0 auto}.logo{font-weight:700;font-size:1.1rem;color:var(--text)}.logo:hover{text-decoration:none}.nav-links{display:flex;gap:1rem}header nav appkit-button{margin-left:auto}main{flex:1;max-width:960px;margin:0 auto;padding:2rem 1.5rem;width:100%}footer{border-top:1px solid var(--border);padding:1rem 1.5rem;text-align:center;color:var(--text-muted);font-size:.85rem}.page h1{margin-bottom:.75rem}.home{text-align:center;padding-top:4rem}.home p{color:var(--text-muted);font-size:1.1rem;margin-bottom:2rem}.home-actions{display:flex;gap:1rem;justify-content:center}.btn{display:inline-block;padding:.6rem 1.5rem;border:1px solid var(--accent);border-radius:6px;color:var(--accent);font-size:1rem;cursor:pointer}.btn:hover{background:var(--accent);color:var(--bg);text-decoration:none}.btn-secondary{border-color:var(--border);color:var(--text-muted)}.btn-secondary:hover{background:var(--bg-surface);color:var(--text)}.swap-status-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:1.5rem}.status-badge{display:inline-block;padding:.2rem .6rem;border-radius:4px;font-size:.8rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.status-open{background:#1a3a1a;color:#4c4}.status-filled{background:#1a2a3a;color:var(--accent)}.status-cancelled{background:#3a1a1a;color:#c44}.status-none{background:var(--bg-surface);color:var(--text-muted)}.status-loading{color:var(--text-muted);font-size:.85rem}.swap-parties{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:start;margin-bottom:1.5rem}@media(max-width:640px){.swap-parties{grid-template-columns:1fr}.swap-arrow{text-align:center}}.swap-party{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1rem}.swap-party h3{font-size:.9rem;color:var(--text-muted);margin-bottom:.5rem}.party-address{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem;font-size:.85rem}.party-address code{font-size:.8rem}.you-badge{display:inline-block;padding:.1rem .4rem;border-radius:3px;font-size:.7rem;font-weight:600;background:var(--accent);color:var(--bg);text-transform:uppercase}.swap-arrow{font-size:1.5rem;color:var(--text-muted);padding-top:2.5rem;text-align:center}.asset-list{display:flex;flex-direction:column;gap:.5rem}.asset-detail{color:var(--text)}.asset-missing{font-size:.75rem;color:#e55;margin:.2rem 0 .4rem .5rem}.asset-card{display:flex;align-items:center;gap:.75rem;padding:.5rem;background:var(--bg);border-radius:6px}.asset-card-image{width:48px;height:48px;flex-shrink:0;border-radius:4px;overflow:hidden;background:var(--bg-surface);display:flex;align-items:center;justify-content:center}.asset-card-image img{width:100%;height:100%;object-fit:cover}.asset-card-placeholder{color:var(--text-muted);font-size:1.2rem}.asset-card-info{display:flex;flex-direction:column;gap:.1rem;min-width:0}.asset-card-name{font-size:.85rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.asset-card-address{font-size:.75rem}.asset-card-meta{display:flex;gap:.5rem;align-items:center}.asset-card-tokenid{color:var(--text-muted);font-size:.75rem}.asset-card-address{font-size:.7rem;font-family:monospace;color:var(--text-muted);word-break:break-all;text-decoration:none}.asset-card-address:hover{color:var(--accent);text-decoration:underline}.verification-badge{margin-right:.3rem;font-size:.85rem}.verification-msg{font-size:.75rem;line-height:1.3;margin-top:.3rem;padding:.3rem .5rem;border-radius:4px}.verification-unverified{background:#3a2a1a;color:#ca4}.verification-suspicious{background:#3a1a1a;color:#e55}.asset-card-suspicious{border-color:#c44}.asset-card-unverified{border-color:#a84}.asset-card-verified{border-color:var(--border)}.warning-banner{background:#2a2210;border:1px solid #a84;border-radius:6px;padding:.75rem 1rem;margin-bottom:1.5rem;font-size:.85rem;color:#dba;line-height:1.5}.warning-banner strong{color:#eca}.address-display{text-decoration:none;color:var(--text)}.address-display:hover{color:var(--accent);text-decoration:underline}.address-display code{font-size:inherit}.ens-name{font-weight:600;color:var(--accent)}.ens-hint{display:block;font-size:.8rem;color:var(--accent);margin-top:.25rem}.asset-type{margin-left:auto;color:var(--text-muted);font-size:.75rem}.swap-meta{margin-bottom:1.5rem;font-size:.85rem;color:var(--text-muted)}.swap-meta p{margin-bottom:.3rem}.meta-label{color:var(--text-muted)}.btn-cancel{display:inline-block;padding:.6rem 1.5rem;border:1px solid #c44;border-radius:6px;background:none;color:#c44;font-size:1rem;cursor:pointer;font-family:inherit}.btn-cancel:hover{background:#c44;color:var(--bg)}.btn-cancel:disabled{opacity:.5;cursor:not-allowed}.create form{margin-top:1rem}.create-columns{display:grid;grid-template-columns:1fr 1fr;gap:2rem;margin-bottom:1.5rem}@media(max-width:640px){.create-columns{grid-template-columns:1fr}}.create-column h2{font-size:1rem;margin-bottom:.75rem;color:var(--text-muted)}.create-options{display:flex;gap:1.5rem;margin-bottom:1.5rem;flex-wrap:wrap}.form-field{flex:1;min-width:200px}.form-field label{display:block;font-size:.85rem;color:var(--text-muted);margin-bottom:.3rem}.form-field input,.form-field select{width:100%}.form-error{color:#e55;margin-bottom:1rem;font-size:.9rem}.form-status{color:var(--accent);margin-bottom:1rem;font-size:.9rem}.text-muted{color:var(--text-muted)}.btn-primary{background:var(--accent);color:var(--bg);border-color:var(--accent);font-weight:600}.btn-primary:hover{opacity:.9}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-sm{padding:.35rem .75rem;font-size:.85rem}.asset-input{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:.75rem;margin-bottom:.5rem}.asset-input-row{display:flex;gap:.5rem;margin-bottom:.4rem}.asset-input-row:last-child{margin-bottom:0}.asset-input input,.asset-input select{background:var(--bg);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:.4rem .5rem;font-size:.85rem;font-family:inherit}.asset-input input:focus,.asset-input select:focus{outline:none;border-color:var(--accent)}.asset-input input[placeholder*=Contract]{flex:3}.asset-input input[placeholder*="Token ID"],.asset-input input[placeholder*=Amount],.asset-input select{flex:1}.btn-remove{background:none;border:1px solid var(--border);border-radius:4px;color:var(--text-muted);cursor:pointer;padding:.4rem .6rem;font-size:1rem;line-height:1}.btn-remove:hover{color:#e55;border-color:#e55}.asset-input-preview{margin-top:.5rem;border-top:1px solid var(--border);padding-top:.5rem}.create-column-actions{display:flex;gap:.5rem}.nft-picker-overlay{position:fixed;inset:0;background:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000}.nft-picker-modal{background:var(--bg);border:1px solid var(--border);border-radius:10px;width:90%;max-width:560px;max-height:80vh;display:flex;flex-direction:column;overflow:hidden}.nft-picker-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom:1px solid var(--border)}.nft-picker-header h3{font-size:1rem;margin:0}.nft-picker-status{padding:2rem 1rem;text-align:center}.nft-picker-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.5rem;padding:1rem;overflow-y:auto}.nft-picker-item{background:var(--bg-surface);border:1px solid var(--border);border-radius:6px;padding:0;cursor:pointer;text-align:left;font-family:inherit;color:var(--text);display:flex;flex-direction:column}.nft-picker-item:hover{border-color:var(--accent)}.nft-picker-image{width:100%;aspect-ratio:1;background:var(--bg);display:flex;align-items:center;justify-content:center;overflow:hidden;border-radius:6px 6px 0 0;flex-shrink:0}.nft-picker-image img{width:100%;height:100%;object-fit:cover}.nft-picker-label{padding:.4rem;display:flex;flex-direction:column;gap:.15rem;min-height:0;overflow:hidden}.nft-picker-name{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nft-picker-collection{font-size:.65rem;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nft-picker-meta{display:flex;gap:.3rem;font-size:.65rem}.nft-picker-id{color:var(--text-muted);font-family:monospace}.nft-picker-balance{color:var(--accent);font-weight:600}.nft-picker-address{font-size:.6rem;font-family:monospace;color:var(--text-muted);opacity:.7}.nft-picker-load-more{margin:0 1rem 1rem}.nft-picker-quantity{padding:1rem}.nft-picker-quantity-preview{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.nft-picker-image-sm{width:64px;height:64px;flex-shrink:0}.nft-picker-quantity-input{display:flex;align-items:center;gap:.5rem}.nft-picker-quantity-input label{font-size:.85rem;color:var(--text-muted);white-space:nowrap}.nft-picker-quantity-input input{width:80px;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;color:var(--text);padding:.4rem .5rem;font-size:.85rem;font-family:inherit}.nft-picker-quantity-input input:focus{outline:none;border-color:var(--accent)}.offers-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem}.tab{padding:.4rem 1rem;border:1px solid var(--border);border-radius:6px;background:none;color:var(--text-muted);cursor:pointer;font-size:.9rem;font-family:inherit}.tab.active{border-color:var(--accent);color:var(--accent)}.tab:hover:not(.active){border-color:var(--text-muted)}.offers-list{display:flex;flex-direction:column;gap:.75rem}.offer-card{display:grid;grid-template-columns:1fr auto 1fr auto;gap:1rem;align-items:center;padding:1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;text-decoration:none;color:var(--text)}.offer-card:hover{border-color:var(--accent);text-decoration:none}.offer-card-invalid{opacity:.5}.offer-card-invalid:hover{border-color:var(--border)}.offer-card-warning{display:block;font-size:.7rem;color:#e55;margin-top:.3rem}@media(max-width:640px){.offer-card{grid-template-columns:1fr;gap:.5rem}.offer-card-arrow{text-align:center}}.offer-label{display:block;font-size:.75rem;color:var(--text-muted);margin-bottom:.2rem}.offer-card-side code{font-size:.8rem}.offer-card-arrow{font-size:1.2rem;color:var(--text-muted)}.offer-card-meta{text-align:right}.offer-assets{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.4rem}.offer-asset-tag{display:inline-block;padding:.15rem .4rem;background:var(--bg);border-radius:3px;font-size:.75rem;font-family:monospace;color:var(--text-muted)}.status-expired{background:#3a2a1a;color:#ca4}.tx-checklist{display:flex;flex-direction:column;gap:.4rem;margin:1rem 0;padding:.75rem 1rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:8px}.tx-step{display:flex;align-items:center;gap:.5rem;font-size:.85rem;padding:.3rem 0}.tx-step-icon{width:1.2rem;text-align:center;flex-shrink:0}.tx-step-label{flex:1;font-family:monospace;font-size:.8rem}.tx-step-status{font-size:.75rem;color:var(--text-muted)}.tx-step-pending .tx-step-icon{color:var(--text-muted)}.tx-step-signing .tx-step-icon{color:var(--accent);animation:pulse 1.5s infinite}.tx-step-confirming .tx-step-icon{color:#ca4;animation:pulse 1.5s infinite}.tx-step-done .tx-step-icon{color:#4c4}.tx-step-failed .tx-step-icon{color:#c44}.tx-step-error{display:block;font-size:.75rem;color:#c44}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}
