:root{--bg:var(--tg-theme-bg-color,#fff);--text:var(--tg-theme-text-color,#111);--hint:var(--tg-theme-hint-color,#8a8a8a);--accent:var(--tg-theme-button-color,#2481cc);--accent-text:var(--tg-theme-button-text-color,#fff);--card:var(--tg-theme-secondary-bg-color,#f2f2f5);--danger:#d9534f}*{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0;font:15px/1.4 -apple-system,system-ui,Segoe UI,Roboto,sans-serif}.app{max-width:560px;margin:0 auto;padding:12px}header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}main{flex-direction:column;gap:10px;display:flex}h3{margin:12px 0 0;font-size:16px}button{background:var(--card);color:var(--text);cursor:pointer;border:0;border-radius:10px;padding:12px;font-size:15px}button:disabled{opacity:.5;cursor:default}button.primary{background:var(--accent);color:var(--accent-text);font-weight:600}button.link{color:var(--accent);text-align:left;background:0 0;padding:4px 0}button.chip.active{background:var(--accent);color:var(--accent-text)}button.list-item{text-align:left;justify-content:space-between;display:flex}input,textarea{border:1px solid var(--card);background:var(--card);width:100%;color:var(--text);border-radius:10px;padding:11px;font-family:inherit;font-size:15px}.row{gap:8px;display:flex}.row>*{flex:1;min-width:0}.grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px;display:grid}.nft{background:var(--card);border:2px solid #0000;border-radius:12px;padding:6px;font-size:12px}.nft.clickable{cursor:pointer}.nft.selected{border-color:var(--accent)}.nft img,.nft .img-stub{aspect-ratio:1;object-fit:cover;background:var(--bg);border-radius:8px;width:100%;display:block}.nft-name{text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-weight:600;overflow:hidden}.nft-col{color:var(--hint);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.nft-col.warn{color:var(--danger)}.nft-state{color:var(--hint)}.nft-state.ok{color:#3a9d5d}.side{background:var(--card);border-radius:14px;padding:10px}.side h3{margin:0 0 8px}.amount{margin-top:6px;font-size:18px;font-weight:600}.summary{background:var(--card);border-radius:12px;padding:10px}.status{background:var(--card);border-radius:12px;padding:10px;font-weight:600}.status.s1{color:#3a9d5d;background:#3a9d5d22}.status.s2,.hint,.muted{color:var(--hint)}.small{font-size:12px}.error{color:var(--danger)}a{color:var(--accent)}
