:root { color-scheme: light; font: 16px/1.55 system-ui, "Microsoft YaHei", sans-serif; color:#20252c; background:#f3f4f6; }
* { box-sizing:border-box; }
[hidden] { display:none!important; }
body { margin:0; }
main { max-width:520px; min-height:100svh; margin:auto; padding:16px 16px max(20px,env(safe-area-inset-bottom)); display:flex; flex-direction:column; }
header { text-align:center; margin:4px 0 17px; }
h1 { font-size:17px; margin:0; }
section { border-radius:18px; background:white; padding:17px; margin:0 0 14px; box-shadow:0 5px 16px #2432520c; }
h2 { color:#606976; font-weight:500; font-size:15px; margin:0 0 9px; }
button,input { font:inherit; }
button { cursor:pointer; }
button:disabled { cursor:default; }
.back { border:0; border-radius:8px; padding:7px 10px; background:#eef1f8; color:#2155a6; font-weight:650; }
.primary { width:100%; min-height:51px; border:0; border-radius:14px; background:#2161d0; color:white; font-weight:650; padding:8px 14px; }
.primary:disabled { background:#d6d8dc; color:#434851; }
.admin-form { display:grid; gap:14px; }
.admin-form label { display:grid; gap:4px; }
.admin-form input,.admin-form textarea { width:100%; border:1px solid #bbc0cc; border-radius:8px; padding:8px; font:inherit; }
.wallet-page { max-width:470px; min-height:100vh; min-height:100svh; padding:12px 16px max(24px,calc(env(safe-area-inset-bottom) + 16px)); }
.wallet-page section { border-radius:20px; padding:18px; margin-bottom:16px; box-shadow:0 5px 18px #23304509; }
.wallet-page h2 { color:#656d7a; font-size:14px; margin-bottom:11px; }
.wallet-page .field { display:block; border-radius:13px; background:#f4f5f7; color:#252c37; padding:14px; overflow-wrap:anywhere; font-size:clamp(13px,3.7vw,16px); }
.amount-row { display:flex; align-items:center; gap:12px; border-bottom:1px solid #e9ecf1; padding:0 0 9px; margin-bottom:15px; }
.amount-row:focus-within { border-bottom-color:#7e9ed5; }
.amount-row input { appearance:none; border:0; outline:none; padding:0; background:transparent; color:#212b3b; caret-color:#2865ce; min-width:0; width:100%; font-size:clamp(34px,10vw,42px); font-weight:400; line-height:1.25; font-variant-numeric:tabular-nums; }
.amount-row input::placeholder { color:#59616e; opacity:1; }
.max { flex:none; border:0; border-radius:9px; padding:8px 11px; background:#eef3ff; color:#215dc1; font-size:13px; font-weight:700; }
.token { display:flex; align-items:center; gap:10px; min-height:57px; padding:11px 13px; border-radius:12px; background:#eef2fc; }
.token-icon { flex:none; width:35px; height:32px; }
.token strong { font-weight:650; }
#balance { margin-left:auto; overflow-wrap:anywhere; text-align:right; color:#596476; font-variant-numeric:tabular-nums; }
.wallet-page footer { margin-top:auto; padding-top:22px; }
#status { color:#4f5966; text-align:center; font-size:14px; margin:0 0 10px; overflow-wrap:anywhere; }
#status:empty { display:none; }
.wallet-page .primary { min-height:54px; border-radius:15px; background:linear-gradient(105deg,#3279ee,#54b9ec); color:#112744; }
.wallet-page .primary:disabled:not([data-working="true"]) { background:#dadee5; color:#545e6d; }
.wallet-page dialog { width:min(272px,calc(100% - 40px)); border:0; border-radius:16px; padding:16px; color:#252c37; box-shadow:0 14px 50px #17253d35; }
.wallet-page dialog::backdrop { background:#15213855; }
.wallet-page dialog p { margin:0 0 13px; text-align:center; white-space:pre-wrap; overflow-wrap:anywhere; font-size:15px; }
.wallet-page dialog .primary { min-height:40px; border-radius:10px; }
.no-select { -webkit-user-select:none; user-select:none; -webkit-touch-callout:none; }

.admin-page { max-width:940px; padding:clamp(20px,5vw,42px) 18px 32px; }
.admin-page.admin-login { max-width:438px; }
.admin-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin:0 0 22px; text-align:left; }
.admin-heading h1 { color:#162843; font-size:clamp(22px,5vw,29px); line-height:1.25; }
.admin-kicker { display:block; margin-bottom:6px; color:#2155a6; font-size:12px; font-weight:700; letter-spacing:.08em; }
.admin-heading button { white-space:nowrap; }
.admin-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:16px; align-items:start; }
.admin-page section { padding:clamp(16px,3vw,22px); margin:0; border:1px solid #e5eaf1; box-shadow:0 4px 18px #24325209; }
.admin-page h2 { margin:0; color:#23344d; font-size:17px; font-weight:650; }
.admin-page .admin-form label { color:#38485e; font-size:14px; font-weight:550; }
.admin-page .admin-form input,.admin-page .admin-form textarea { border-color:#d7e0ed; background:#f9fbff; padding:10px 11px; font-size:16px; font-weight:400; }
.admin-page .primary { min-height:44px; border-radius:10px; }
.admin-field-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.admin-help { color:#5f6c81; font-size:13px; margin:-7px 0 0; }
.admin-qr { display:grid; gap:12px; }
.admin-qr img { width:min(166px,100%); aspect-ratio:1; }
.admin-qr a { color:#2155a6; overflow-wrap:anywhere; }
.admin-key-state,.admin-feedback { margin:0; border-radius:9px; padding:9px 11px; font-size:14px; }
.admin-key-state { background:#eef4ff; color:#314e77; }
.admin-feedback { margin-bottom:12px; background:#e7f5ee; color:#215841; }
.admin-error { background:#fcecee; color:#8a2935; }
@media (max-width:650px) { .admin-grid { grid-template-columns:minmax(0,1fr); } }
