:root{--bg: #090d12;--surface: #121923;--surface-2: #1b2430;--border: #25303d;--text: #f4f7fb;--muted: #9aa6b2;--accent: var(--tg-button-color, #20d3a2);--accent-text: var(--tg-button-text-color, #04130d);--accent-2: #57b8ff;--danger: #ff5c7a;--radius: 16px;--radius-sm: 12px;--gap: 14px;--maxw: 560px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.4;overscroll-behavior-y:none}#app{max-width:var(--maxw);margin:0 auto;min-height:100vh;min-height:100dvh}.screen{padding:16px 16px calc(28px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:var(--gap)}.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:env(safe-area-inset-top)}.h1{font-size:22px;font-weight:700;margin:0;letter-spacing:-.02em}.h2{font-size:17px;font-weight:650;margin:0}.muted{color:var(--muted);font-size:14px}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:4px 0 2px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:16px}.balance-pill{display:inline-flex;align-items:baseline;gap:6px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;padding:8px 14px;font-weight:600}.balance-pill b{font-size:18px}.btn{appearance:none;border:0;border-radius:var(--radius-sm);padding:14px 18px;font-size:16px;font-weight:650;color:var(--accent-text);background:var(--accent);cursor:pointer;width:100%;transition:transform .06s ease,opacity .15s ease}.btn:active{transform:scale(.985)}.btn[disabled]{opacity:.5;cursor:default}.btn.secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn.ghost{background:transparent;color:var(--text);border:1px solid var(--border)}.btn.danger{background:var(--danger);color:#200811}.btn-row{display:flex;gap:10px}.btn-row .btn{width:auto;flex:1}.chips{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{flex:0 0 auto;padding:9px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);color:var(--text);font-size:14px;font-weight:550;cursor:pointer}.chip.active{background:var(--accent);color:var(--accent-text);border-color:transparent}.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.tile{position:relative;border-radius:var(--radius);overflow:hidden;background:var(--surface);border:1px solid var(--border);cursor:pointer;display:flex;flex-direction:column}.tile .thumb{aspect-ratio:3 / 4;width:100%;object-fit:cover;background:var(--surface-2);display:block}.tile .meta{padding:10px 12px;display:flex;flex-direction:column;gap:4px}.tile .meta .name{font-size:14px;font-weight:600;line-height:1.25}.tile .meta .price{font-size:13px;color:var(--accent);font-weight:650}.hero{border-radius:var(--radius);border:1px solid var(--border);background:linear-gradient(155deg,var(--surface-2),var(--surface));padding:20px;display:flex;flex-direction:column;gap:14px}.hero h2{font-size:20px;margin:0;letter-spacing:-.02em}.list{display:flex;flex-direction:column;gap:10px}.row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer}.row .row-main{display:flex;align-items:center;gap:12px}.row .emoji{font-size:22px}.row .chevron{color:var(--muted)}.preview{width:100%;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface-2);object-fit:cover;display:block}.uploader{border:1px dashed var(--border);border-radius:var(--radius);background:var(--surface);padding:22px;text-align:center;cursor:pointer}.uploader.has-file{padding:0;overflow:hidden;border-style:solid}.uploader input{display:none}.notice{border-radius:var(--radius-sm);padding:12px 14px;font-size:14px;border:1px solid var(--border);background:var(--surface)}.notice.warn{border-color:#5a4218;background:#221a0c;color:#ffd591}.notice.error{border-color:#5a1f2c;background:#24121a;color:#ffb3c1}.progress-wrap{height:10px;border-radius:999px;background:var(--surface-2);overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2));transition:width .5s ease}.center-state{text-align:center;padding:48px 20px;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--muted)}.center-state .icon{font-size:40px}.spinner{width:36px;height:36px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--surface) 25%,var(--surface-2) 37%,var(--surface) 63%);background-size:400% 100%;animation:shimmer 1.3s ease infinite;border-radius:var(--radius-sm)}@keyframes shimmer{0%{background-position:100% 0}to{background-position:-100% 0}}.skeleton.tile-sk{aspect-ratio:3 / 4;border-radius:var(--radius)}.field{display:flex;flex-direction:column;gap:6px}.field label{font-size:13px;color:var(--muted);font-weight:600}.field input,.field select,.field textarea{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);padding:12px 14px;font-size:15px;font-family:inherit}.field input[type=file]{padding:10px}.devbar{background:#2a1d0a;color:#ffce85;font-size:12px;text-align:center;padding:6px 10px;border-bottom:1px solid #5a4218}.dev-back{display:inline-flex;align-items:center;gap:4px;margin:10px 16px 0;padding:7px 14px;background:var(--surface-2);border:1px solid var(--border);border-radius:999px;color:var(--text);font-size:13px;font-weight:600;cursor:pointer}.amounts{display:grid;grid-template-columns:1fr 1fr;gap:10px}.amount-btn{padding:16px;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:17px;font-weight:650;cursor:pointer}.amount-btn:active{border-color:var(--accent)}.spacer{flex:1}.fade-in{animation:fade .25s ease}@keyframes fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
