:root { --grad-navy: linear-gradient(135deg, #01466F 0%, #6f5b98 100%); }

/* === account-list.js === */
.al-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.al-wrap { padding: 0 24px; }
.al-headline { font-size:13px; color:#7d7d80; padding:0 4px;
    display:flex; justify-content:space-between; align-items:baseline; }
.al-headline.al-headline-top { padding-top:8px; }
.al-loading-wrap { display:flex; justify-content:center; padding:8px 0 80px; }
.al-loading-spin { width:18px; height:18px; border-width:2px; }
.al-skel.al-skel-nick { width:90px; height:11px; }
.al-skel.al-skel-bal { width:140px; height:22px; }
.al-search {
    display:flex; align-items:center; gap:8px;
    background:#ffffff; border:1px solid #d7d9dc; border-radius:12px;
    padding:9px 12px; margin:14px 0 14px;
    box-shadow:0 1px 3px rgba(0,0,0,0.04);
}
.al-search:focus-within { border-color:#01466F; box-shadow:0 0 0 3px rgba(1,70,111,0.10); }
.al-search i.fa-search { font-size:12px; color:#7d7d80; }
.al-search input {
    flex:1; min-width:0; border:none; background:transparent;
    font-size:14px; color:#1c1c1e; outline:none;
}
.al-search input::placeholder { color:#aaa; }

.al-search-clear {
    width:22px; height:22px; border-radius:50%;
    background:#e7e7eb; color:#7d7d80;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px; line-height:1; cursor:pointer;
    flex-shrink:0; padding:0;
    transition:background .15s ease, color .15s ease;
}
.al-search-clear.hover { background:#cdd3da; color:#1c1c1e; }
@media (hover: hover) and (pointer: fine) {
    .al-search-clear:hover { background:#cdd3da; color:#1c1c1e; }
}

.al-tabs {
    display:flex; flex-wrap:wrap; align-items:center; gap:8px;
    padding:14px 4px 16px;
    border-top:1px solid #d9dce2;
    margin-top:4px;
}
.al-tabs-filters { display:flex; gap:8px; flex-shrink:0; }
.al-filter-chip {
    height:32px; padding:0 14px; border-radius:16px;
    background:#fff; border:1px solid #d7d9dc; color:#3a4a5c;
    font-size:12px; font-weight:600; line-height:1; cursor:pointer;
    display:inline-flex; align-items:center; white-space:nowrap; font-family:inherit;
    box-shadow:0 1px 2px rgba(0,0,0,0.04);
    transition:background .15s ease, color .15s ease, border-color .15s ease;
}
.al-filter-chip.active { background:#01466F; color:#fff; border-color:#01466F; }
.al-chip-n { margin-left:6px; font-weight:700; opacity:0.55; line-height:1; }
.al-filter-chip.active .al-chip-n { opacity:1; }
.al-filter-chip:not(.active).hover { background:#f4f4f4; }
.al-filter-chip.active.hover { background:#022D4A; }
@media (hover:hover) and (pointer:fine) {
    .al-filter-chip:not(.active):hover { background:#f4f4f4; }
    .al-filter-chip.active:hover { background:#022D4A; }
}
.al-refresh {
    margin-left:auto; flex-shrink:0; white-space:nowrap; display:inline-flex; align-items:center; gap:5px;
    background:transparent; border:0; padding:4px 4px; cursor:pointer;
    color:#7d7d80; font-family:inherit; font-size:12px; font-weight:600; line-height:1;
    transition:color .15s ease;
}
.al-refresh i { font-size:12px; }
.al-refresh.hover, .al-refresh:hover, .al-refresh:active { color:#1c1c1e; }

.al-section { margin-bottom:20px; }
.al-section + .al-section { border-top:1px solid #d9dce2; padding-top:18px; }

.al-section-title {
    font-size:16px; color:#1c1c1e; font-weight:700;
    letter-spacing:-0.2px;
    padding:0 4px 12px; display:flex; align-items:center; gap:6px;
}
.al-sort-bar { display:flex; gap:6px; padding:0 4px 12px; overflow-x:auto; }

.al-sort-chip {
    font-size:12px; padding:6px 13px; border-radius:14px; flex:0 0 auto; white-space:nowrap;
    background:#ffffff; border:1px solid #d7d9dc; color:#3a4a5c;
    font-weight:600; line-height:1; cursor:pointer; font-family:inherit;
    transition:0.2s ease-in-out;
}
.al-sort-chip.hover { background:#043554; color:#ffffff; border-color:#043554; }
.al-sort-chip.al-sort-on.hover { background:#022D4A; border-color:#022D4A; }
@media (hover: hover) and (pointer: fine) {
    .al-sort-chip:hover { background:#043554; color:#ffffff; border-color:#043554; }
    .al-sort-chip.al-sort-on:hover { background:#022D4A; border-color:#022D4A; }
}
.al-sort-chip.al-sort-on { background:#01466F; color:#ffffff; border-color:#01466F; }
.al-empty { padding:20px 4px; font-size:12px; color:#7d7d80; text-align:center; }

.al-show-more {
    display:flex; align-items:center; justify-content:center; gap:6px;
    width:100%; margin-top:14px;
    padding:12px 16px;
    background:#ffffff; border:1px solid #d7d9dc; border-radius:12px;
    color:#01466F; font-size:12px; font-weight:600;
    cursor:pointer;
    transition:0.2s ease-in-out;
}
.al-show-more.hover { background:#043554; color:#ffffff; border-color:#043554; }
@media (hover: hover) and (pointer: fine) {
    .al-show-more:hover { background:#043554; color:#ffffff; border-color:#043554; }
}

.al-grid { display:grid; grid-template-columns:1fr; gap:14px; }
@media (min-width: 768px) { .al-grid { grid-template-columns:1fr 1fr; } }
@media (max-width: 767px) { .al-grid-rec .al-card:nth-child(n+2) { display:none; } }

.al-card {
    border-radius:14px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06);
    position:relative;
    cursor:pointer;
    overflow:hidden;
    transition:0.2s ease-in-out;
}
.al-card.hover {
    transform:scale(1.02);
    box-shadow:0 5px 14px rgba(0,0,0,0.14);
}
@media (hover: hover) and (pointer: fine) {
    .al-card:hover {
        transform:scale(1.02);
        box-shadow:0 5px 14px rgba(0,0,0,0.14);
    }
}
.al-card-sel {
    box-shadow:0 4px 14px rgba(255,107,91,0.20);
}
.al-card-sel.hover,
.al-card-sel:hover {
    box-shadow:0 7px 20px rgba(255,107,91,0.28);
}
.al-card-body { padding:18px 18px 14px; }
.al-card-top { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:14px; align-items:start; }
.al-avatar { width:44px; height:44px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    flex-shrink:0; box-sizing:border-box; }
.al-avatar span { font-size:13px; font-weight:700; letter-spacing:-0.3px; }
.al-id { min-width:0; }
.al-id-line { display:flex; align-items:baseline; gap:3px; min-width:0;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.al-nick { font-size:15px; font-weight:600; color:#000000; letter-spacing:-0.2px;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.al-nick-anon { color:#5a5a5a; font-weight:600; }
.al-tag { font-size:13px; color:#7d7d80; font-weight:500; }
.al-addr-line { display:flex; align-items:center; gap:6px;
    margin-top:4px; font-size:11px; color:#7d7d80; min-width:0; }
.al-addr-full { flex:0 1 auto; min-width:0;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
    font-variant-numeric:tabular-nums; cursor:pointer; }
.al-addr-line .wp-addr { font-variant-numeric:tabular-nums; color:#7d7d80; cursor:pointer; }
.al-addr-line .wp-addr:active { color:#1c1c1e; }
.al-chip-wrap { display:inline-flex; align-items:center; gap:6px; align-self:start; }
.al-chip { font-size:10px; padding:2px 8px; border-radius:9px; font-weight:600; white-space:nowrap; }
.al-chip-imp { background:rgba(173,59,72,0.10); color:#ad3b48; }
.al-chip-hid { background:#eaeef2; color:#7d7d80; }

.al-balance { padding:16px 4px 4px; font-variant-numeric:tabular-nums; text-align:center; min-height:38px; }
.al-skel { display:inline-block; border-radius:4px; vertical-align:middle; }

.al-bal-int { font-size:19px; font-weight:500; letter-spacing:-0.5px; color:#1c1c1e; }
.al-bal-dec { font-size:16px; font-weight:500; color:#1c1c1e; opacity:.55; }
.al-bal-sym { font-size:12px; font-weight:600; color:#7d7d80; margin-left:4px; }

.al-card-bottom { display:flex; align-items:center; justify-content:space-between;
    padding:10px 12px 10px 14px;
    border-top:1px solid rgba(0,0,0,0.06); }
.al-card-sel .al-card-bottom { border-top-color:rgba(255,107,91,0.15); }

.al-actions { display:inline-flex; align-items:center; gap:8px; }
.al-act {
    flex-shrink:0; width:32px; height:32px; border-radius:50%;
    background:#eff1f4; color:#5a6b7d; border:0;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:13px; cursor:pointer; transition:0.2s ease-in-out;
}
.al-act.hover, .al-act:hover { background:#e2e5ea; color:#1c1c1e; }
.al-act-pinned { background:rgba(1,70,111,0.12); color:#01466F; }
.al-act-pinned.hover, .al-act-pinned:hover { background:rgba(1,70,111,0.20); color:#01466F; }
.al-act-danger { background:rgba(173,59,72,0.10); color:#ad3b48; }
.al-act-danger.hover, .al-act-danger:hover { background:rgba(173,59,72,0.18); color:#ad3b48; }
.al-pin-off { transform:rotate(40deg); }
.al-card:not(.al-card-sel) .al-act-show { background:rgba(15,155,142,0.12); color:#0f9b8e; }
.al-card:not(.al-card-sel) .al-act-show.hover, .al-card:not(.al-card-sel) .al-act-show:hover { background:rgba(15,155,142,0.20); color:#0f9b8e; }
.al-card-sel .al-act:not(.al-act-pinned):not(.al-act-danger) { background:rgba(255,107,91,0.12); color:#cf5340; }
.al-card-sel .al-act:not(.al-act-pinned):not(.al-act-danger).hover,
.al-card-sel .al-act:not(.al-act-pinned):not(.al-act-danger):hover { background:rgba(255,107,91,0.20); color:#cf5340; }
.al-card-sel .al-act-pinned { background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%); color:#ffffff; }
.al-card-sel .al-act-pinned.hover, .al-card-sel .al-act-pinned:hover { background:linear-gradient(135deg, #6a70f0 0%, #f0594a 100%); color:#ffffff; }

.section-2 .header [data-view="title"] { position:relative; top:1px; }

.al-sel {
    flex-shrink:0; width:28px; height:28px; border-radius:50%;
    background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%);
    color:#ffffff; display:inline-flex; align-items:center; justify-content:center;
    font-size:12px;
}

.al-sec-pin { color:#01466F; font-size:12px; margin-right:2px; }

.al-icon-mini {
    width:24px; height:24px; display:inline-flex; align-items:center; justify-content:center;
    font-size:10px; cursor:pointer; flex:0 0 auto; color:#7d7d80;
    border-radius:50%; background:rgba(0,0,0,0.04); border:1px solid rgba(0,0,0,0.09);
    transition:0.2s ease-in-out;
}
.al-icon-mini.hover, .al-icon-mini:hover { background:rgba(0,0,0,0.09); }

.al-hl { background:#fff7c2; color:inherit; padding:0; border-radius:2px; font-weight:700; }

.al-fab {
    position:fixed;
    right: max(24px, calc(50vw - 384px + 24px));
    bottom: 64px;
    z-index:5; border:none; cursor:pointer;
    padding:6px; border-radius:28px;
    background:rgba(255,255,255,0.22);
    -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px);
}
.al-fab .al-fab-inner {
    display:inline-flex; align-items:center; gap:8px; line-height:1.5;
    height:48px; padding:0 22px; border-radius:24px;
    background:#01466F; color:#ffffff; font-size:14px; font-weight:700;
    box-shadow:0 4px 14px rgba(2,45,74,0.3); white-space:nowrap;
    transition:0.2s ease-in-out;
}
.al-fab .al-fab-inner i { font-size:13px; }
.al-fab.hover .al-fab-inner { background:#022D4A; }
@media (hover: hover) and (pointer: fine) {
    .al-fab:hover .al-fab-inner { background:#022D4A; }
}

/* === address-book.js === */
#ab { background:#f4f4f6; min-height:100%; }
#ab .ab-empty-ic { color:#c7c9cc; margin-right:7px; }
#ab .ab-pad { padding:0 clamp(14px,4vw,20px) calc(88px + env(safe-area-inset-bottom,0px)); max-width:560px; margin:0 auto; }
#ab .ab-search { display:flex; align-items:center; gap:10px; height:48px; background:#fff; border:1.5px solid #e7e7eb; border-radius:14px; padding:0 14px; margin-top:18px; transition:border-color .15s ease; }
#ab .ab-search:focus-within { border-color:#01466F; }
#ab .ab-search i { color:#9aa0a6; font-size:14px; flex-shrink:0; }
#ab .ab-search input { flex:1; min-width:0; border:none; background:transparent; outline:none; font-size:13px; color:#1c1c1e; font-family:inherit; }
#ab .ab-search-btn { flex-shrink:0; width:30px; height:30px; border:none; background:#f4f4f6; border-radius:50%; color:#01466F; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#ab .ab-search-btn.hover, #ab .ab-search-btn:hover { background:#e7e7eb; }
#ab .ab-warn { font-size:12px; color:#ad3b48; font-weight:600; min-height:0; padding:0 4px; opacity:0; transition:opacity .2s ease; }
#ab .ab-warn.fade-in-out { opacity:1; min-height:18px; padding:8px 4px 0; }
#ab .ab-sec-title { font-size:16px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; padding:18px 6px 8px; }

#ab .ab-sec-head { display:flex; flex-wrap:wrap; align-items:center; }
#ab .ab-sec-head .ab-sec-title { flex:1; min-width:0; }
#ab .ab-refresh { display:inline-flex; margin-left:auto; align-items:center; gap:5px; background:transparent; border:0; padding:4px 4px; cursor:pointer; color:#7d7d80; font-family:inherit; font-size:12px; font-weight:600; line-height:1; transition:color .15s ease; }
#ab .ab-refresh i { font-size:12px; }
#ab .ab-refresh.hover, #ab .ab-refresh:hover, #ab .ab-refresh:active { color:#1c1c1e; }
#ab .ab-list { display:flex; flex-direction:column; gap:8px; }

#ab .ab-card { position:relative; display:flex; flex-direction:column; gap:9px; background:#fff; border-radius:14px; padding:11px 12px; box-shadow:0 1px 2px rgba(0,0,0,0.04); }
#ab .ab-top { display:flex; align-items:center; gap:11px; }
#ab .ab-bottom { display:flex; align-items:center; gap:8px; }
#ab .ab-card::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:var(--grad-navy); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
#ab .ab-avatar { flex-shrink:0; width:38px; height:38px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; font-size:11px; font-weight:700; }
#ab .ab-id { flex:1; min-width:0; }
#ab .ab-line { display:flex; align-items:baseline; gap:6px; }
#ab .ab-nick { font-size:13.5px; font-weight:700; color:#1c1c1e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#ab .ab-tag { font-size:12px; color:#7d7d80; flex-shrink:0; }
#ab .ab-date { font-size:10.5px; color:#b0b4ba; flex-shrink:0; margin-left:3px; }

#ab .ab-addr-row { display:flex; align-items:center; gap:6px; margin-top:3px; }
#ab .ab-addr { font-size:11.5px; color:#7d7d80; font-variant-numeric:tabular-nums; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; min-width:0; }
#ab .ab-addr-copy { flex-shrink:0; width:22px; height:22px; border-radius:50%; border:none; background:#f4f4f6; color:#7d7d80; font-size:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease, color .15s ease; }
#ab .ab-addr-copy.hover, #ab .ab-addr-copy:hover { background:#e7e7eb; color:#1c1c1e; }
#ab .ab-acts { flex-shrink:0; margin-left:auto; display:inline-flex; align-items:center; gap:6px; }
#ab .ab-act { flex-shrink:0; width:32px; height:32px; border-radius:50%; border:none; background:#f4f4f6; color:#7d7d80; font-size:12px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#ab .ab-act.hover, #ab .ab-act:hover { background:#e7e7eb; }
#ab .ab-act-del.hover, #ab .ab-act-del:hover { background:rgba(173,59,72,0.12); }
#ab .ab-act i { -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
#ab .ab-ic-send { background-image:linear-gradient(135deg,#01466F 0%,#4a90d9 100%); }
#ab .ab-ic-feed { background-image:linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%); }
#ab .ab-ic-add  { background-image:linear-gradient(135deg,#0f9b8e 0%,#3ec98a 100%); }
#ab .ab-ic-del  { background-image:linear-gradient(135deg,#ad3b48 0%,#ff6b5b 100%); }
#ab .ab-empty { text-align:center; padding:28px 16px; font-size:13px; color:#9aa0a6; }

/* === cnft-detail.js === */
#cd .cd-root { background:#fff; min-height:100%; }
#cd .cd-prev-wrap { position:relative; }
#cd .cd-zoom-img { cursor:zoom-in; }
#cd .cd-pad { padding:16px clamp(18px,4.5vw,28px) 72px; }
#cd .cd-prev { position:relative; border-radius:16px; overflow:visible; background:transparent; border:none; display:flex; align-items:center; justify-content:center; }
#cd .cd-prev img, #cd .cd-prev video, #cd .cd-prev audio { max-width:100%; max-height:62vh; display:block; border-radius:16px; }
#cd .cd-file-card { width:100%; min-height:280px; background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%); border:1px solid #e7e7eb; border-radius:16px; padding:48px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; transition:background .15s ease, border-color .15s ease, transform .08s ease; }
#cd .cd-file-card-clickable { cursor:pointer; }
#cd .cd-file-card-clickable.hover, #cd .cd-file-card-clickable:hover { background:linear-gradient(135deg,#eef2f7 0%,#e1e8f0 100%); border-color:#cdd3da; }
#cd .cd-file-img { width:104px; height:104px; object-fit:contain; margin-bottom:10px; filter:drop-shadow(0 8px 18px rgba(0,0,0,0.12)); }
#cd .cd-file-ext { font-size:14px; font-weight:800; color:#1c1c1e; letter-spacing:0.7px; }
#cd .cd-file-size { font-size:12px; color:#7d7d80; font-variant-numeric:tabular-nums; }
#cd .cd-file-action { display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:7px 14px; border-radius:14px; background:#01466F; color:#fff; font-size:12px; font-weight:700; }
#cd .cd-file-action i { font-size:10px; }
#cd .cd-locked { width:100%; min-height:220px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:48px 16px; }
#cd .cd-lock-ic { font-size:42px; color:#cdd3da; }
#cd .cd-lock-txt { font-size:13px; color:#7d7d80; font-weight:600; text-align:center; }
#cd .cd-audio { width:100%; display:flex; flex-direction:column; align-items:center; gap:18px; padding:36px 16px; }
#cd .cd-audio i { font-size:46px; color:#01466F; opacity:.5; }
#cd .cd-audio audio { width:100%; }
#cd .cd-text { width:100%; max-height:62vh; overflow:auto; margin:0; padding:16px; background:#fff; border:1px solid #e7e7eb; border-radius:12px; font-size:12px; line-height:1.6; color:#1c1c1e; white-space:pre-wrap; word-break:break-word; text-align:left; font-family:ui-monospace,Menlo,Consolas,monospace; }
#cd .cd-prev.cd-recv-blur > * { filter:blur(22px); transform:scale(1.08); pointer-events:none; }
#cd .cd-recv-cover { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:24px 16px; background:rgba(20,24,32,0.35); backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); border-radius:16px; z-index:4; }
#cd .cd-recv-cover.hide { display:none; }
#cd .cd-recv-ic { font-size:32px; color:#fff; opacity:.9; }
#cd .cd-recv-txt { font-size:12px; color:#fff; font-weight:600; text-align:center; max-width:280px; line-height:1.5; }
#cd .cd-recv-btn { display:inline-flex; align-items:center; gap:6px; padding:10px 18px; border-radius:18px; background:#fff; color:#1c1c1e; border:none; font-size:12px; font-weight:700; cursor:pointer; transition:background .15s ease; }
#cd .cd-recv-btn.hover, #cd .cd-recv-btn:hover { background:#f4f4f4; }
#cd .cd-recv-btn i { font-size:10px; }
#cd .cd-title-row { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:16px; }
#cd .cd-title { font-size:19px; font-weight:700; color:#1c1c1e; letter-spacing:-0.3px; word-break:break-word; flex:1; min-width:0; }
#cd .cd-enc-chip { display:inline-flex; align-items:center; gap:5px; padding:3px 8px; border-radius:8px; background:rgba(111,91,152,0.12); color:#6f5b98; font-size:12px; font-weight:700; flex-shrink:0; }
#cd .cd-enc-chip i { font-size:9px; }
#cd .cd-ts { font-size:12px; color:#7d7d80; margin-top:24px; text-align:right; font-variant-numeric:tabular-nums; }
#cd .cd-chips { display:flex; gap:7px; flex-wrap:wrap; margin-top:14px; }
#cd .cd-chip { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:none; position:relative; color:#01466F; font-size:12px; font-weight:600; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease; }
#cd .cd-chip::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#cd .cd-chip i { font-size:10.5px; }
#cd .cd-chip.hover, #cd .cd-chip:hover { background:#043554; color:#fff; }
#cd .cd-sep { height:1px; background:#e7e7eb; margin:22px 0 0; }
#cd .cd-card { background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%) border-box; border:1.5px solid transparent; border-radius:14px; padding:0 14px; margin-top:14px; }
#cd .cd-row { display:flex; align-items:center; gap:6px; padding:10px 0; border-bottom:1px solid #d9dce2; font-size:12px; }
#cd .cd-row:last-child { border-bottom:none; }
#cd .cd-row .k {color:#7d7d80; flex-shrink:0; font-size:12px; }
#cd .cd-row .v { color:#1c1c1e; font-weight:500; flex:1; min-width:0; display:flex; align-items:baseline; justify-content:flex-end; font-variant-numeric:tabular-nums; font-size:12px; }
#cd .cd-copy { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#f4f4f4; border:none; color:#7d7d80; font-size:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#cd .cd-copy.hover, #cd .cd-copy:hover { background:#e7e7eb; }

#cd .cd-chain-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:14px; }
#cd .cd-share-group { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#cd .cd-share-btn { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:15px; background:#f4f4f4; border:none; color:#48484a; font-size:12px; font-weight:600; line-height:1; cursor:pointer; transition:background .15s ease, color .15s ease; }
#cd .cd-share-btn i { font-size:11px; }
#cd .cd-share-btn.hover, #cd .cd-share-btn:hover { background:#e7e7eb; color:#1c1c1e; }
#cd .cd-chain { display:inline-flex; margin-left:auto; align-items:center; gap:5px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12px; font-weight:600; line-height:1; }
#cd .cd-chain i { font-size:11px; }
#cd .cd-chain.hover, #cd .cd-chain:hover { color:#043554; }
#cd .cd-desc { font-size:13px; color:#3a4a5c; margin-top:16px; line-height:1.65; word-break:break-word; }
#cd .cd-cta { width:100%; margin-top:18px; height:54px; border-radius:14px; background:#01466F; color:#fff; border:none; position:relative; font-size:14px; font-weight:700; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; transition:background .15s ease, opacity .15s ease; }
#cd .cd-cta:not(.active) { opacity:0.45; }
#cd .cd-cta .cd-cta-sub { font-size:12px; font-weight:500; opacity:0.85; }
#cd .cd-cta::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#cd .cd-cta.hover, #cd .cd-cta:hover { background:#022D4A; }
#cd .cd-zoom-overlay { position:fixed; inset:0; background:#000; z-index:1000; display:flex; align-items:center; justify-content:center; }
#cd .cd-zoom-overlay.hide { display:none; }
#cd .cd-zoom-close { position:fixed; top:calc(env(safe-area-inset-top,0px) + 14px); right:14px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.2); color:#fff; font-size:18px; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); z-index:1001; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#cd .cd-zoom-close.hover, #cd .cd-zoom-close:hover { background:rgba(255,255,255,0.28); }
#cd .cd-zoom-content { width:100vw; height:100vh; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px); }
#cd .cd-zoom-content img, #cd .cd-zoom-content video { max-width:100%; max-height:100%; object-fit:contain; }

/* === create-account.js === */
.ca-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.ca-wrap { padding:24px 24px 0; }
.ca-card {
    position:relative;
    background:#ffffff;
    border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06);
    padding:32px 24px;
    cursor:pointer;
    display:grid;
    grid-template-columns:auto minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    margin-bottom:18px;
    transition:0.2s ease-in-out;
    color:#1c1c1e;
}
.ca-card::before {
    content:'';
    position:absolute; inset:0;
    border-radius:inherit;
    padding:1.5px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
    transition:0.2s ease-in-out;
}
.ca-card.hover { background:#043554; color:#ffffff; transform:scale(1.01); box-shadow:0 5px 14px rgba(0,0,0,0.16); }
@media (hover: hover) and (pointer: fine) {
    .ca-card:hover { background:#043554; color:#ffffff; transform:scale(1.01); box-shadow:0 5px 14px rgba(0,0,0,0.16); }
}

.ca-icon {
    width:68px; height:68px; border-radius:50%;
    background:var(--grad-navy);
    color:#ffffff;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:26px; flex-shrink:0;
    transition:0.2s ease-in-out;
}
.ca-card.hover .ca-icon,
.ca-card:hover .ca-icon {
    background:#ffffff; color:#043554;
}

.ca-body { min-width:0; line-height:1.4; }
.ca-title { font-size:18px; font-weight:700; color:inherit; letter-spacing:-0.2px; line-height:1.4; }
.ca-desc { font-size:13px; color:#7d7d80; margin-top:6px; line-height:1.5; }
.ca-card.hover .ca-desc,
.ca-card:hover .ca-desc { color:rgba(255,255,255,0.75); }

.ca-chev { color:#01466F; font-size:16px; flex-shrink:0; transition:0.2s ease-in-out; }
.ca-card.hover .ca-chev,
.ca-card:hover .ca-chev { color:#ffffff; transform:translateX(2px); }

/* === event-list.js === */
#evl { background:#f4f4f6; min-height:100%; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
#evl .evl-pad { padding:18px clamp(14px,4vw,20px) 0; max-width:560px; margin:0 auto; }
#evl .evl-sec { font-size:16px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; padding:14px 6px 8px; }
#evl .evl-sec:first-child { padding-top:4px; }
#evl .evl-list { display:flex; flex-direction:column; gap:10px; }
#evl .evl-card { display:flex; align-items:center; gap:13px; width:100%; background:#fff; border:0; border-radius:14px; padding:12px 14px; cursor:pointer; text-align:left; font-family:inherit; box-shadow:0 1px 2px rgba(0,0,0,0.04); transition:background .15s ease; }
#evl .evl-card.hover, #evl .evl-card:hover { background:#f7f8fa; }
#evl .evl-thumb { flex-shrink:0; width:56px; height:56px; border-radius:11px; background-size:cover; background-position:center; background-color:#eceef2; }
#evl .evl-body { flex:1; min-width:0; display:flex; flex-direction:column; gap:3px; }
#evl .evl-title { font-size:14.5px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#evl .evl-desc { font-size:11.5px; color:#7d7d80; line-height:1.45; word-break:keep-all; }
#evl .evl-go { flex-shrink:0; color:#c2c5cc; font-size:15px; }
#evl .evl-badge { flex-shrink:0; font-size:10.5px; font-weight:700; color:#9aa0a6; background:#eceef2; border-radius:7px; padding:4px 8px; }
#evl .evl-ended .evl-thumb { filter:grayscale(0.7); opacity:0.7; }
#evl .evl-ended .evl-title { color:#7d7d80; }

/* === feed-cnft.js === */
#fc .fc-root { background:#fff; min-height:100%; }
#fc .fc-lock-ic-wrap { font-size:44px; color:#cdd3da; line-height:1; }
#fc .fc-zoom-img { cursor:zoom-in; }
#fc .fc-pad { padding:16px clamp(18px,4.5vw,28px) 72px; }
#fc .fc-prev { position:relative; border-radius:16px; overflow:visible; background:transparent; border:none; display:flex; align-items:center; justify-content:center; }
#fc .fc-prev img, #fc .fc-prev video, #fc .fc-prev audio { max-width:100%; max-height:62vh; display:block; border-radius:16px; }
#fc .fc-file-card { width:100%; min-height:280px; background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%); border:1px solid #e7e7eb; border-radius:16px; padding:48px 24px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; transition:background .15s ease, border-color .15s ease; }
#fc .fc-file-card-clickable { cursor:pointer; }
#fc .fc-file-card-clickable.hover, #fc .fc-file-card-clickable:hover { background:linear-gradient(135deg,#eef2f7 0%,#e1e8f0 100%); border-color:#cdd3da; }
#fc .fc-file-img { width:104px; height:104px; object-fit:contain; margin-bottom:10px; filter:drop-shadow(0 8px 18px rgba(0,0,0,0.12)); }
#fc .fc-file-ext { font-size:14px; font-weight:800; color:#1c1c1e; letter-spacing:0.7px; }
#fc .fc-file-size { font-size:12px; color:#7d7d80; font-variant-numeric:tabular-nums; }
#fc .fc-file-action { display:inline-flex; align-items:center; gap:6px; margin-top:6px; padding:7px 14px; border-radius:14px; background:#01466F; color:#fff; font-size:12px; font-weight:700; }
#fc .fc-file-action i { font-size:10px; }
#fc .fc-audio { width:100%; display:flex; flex-direction:column; align-items:center; gap:18px; padding:36px 16px; }
#fc .fc-audio i { font-size:46px; color:#01466F; opacity:.5; }
#fc .fc-audio audio { width:100%; }
#fc .fc-text { width:100%; max-height:62vh; overflow:auto; margin:0; padding:16px; background:#fff; border:1px solid #e7e7eb; border-radius:12px; font-size:12px; line-height:1.6; color:#1c1c1e; white-space:pre-wrap; word-break:break-word; text-align:left; font-family:ui-monospace,Menlo,Consolas,monospace; }
#fc .fc-title { font-size:19px; font-weight:700; color:#1c1c1e; letter-spacing:-0.3px; word-break:break-word; margin-top:16px; }
#fc .fc-ts { font-size:12px; color:#7d7d80; margin-top:24px; text-align:right; font-variant-numeric:tabular-nums; }

#fc .fc-chain-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:14px; }
#fc .fc-share-group { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#fc .fc-chip { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:none; position:relative; color:#01466F; font-size:12px; font-weight:600; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease; }
#fc .fc-chip::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#fc .fc-chip i { font-size:10.5px; }
#fc .fc-chip.hover, #fc .fc-chip:hover { background:#043554; color:#fff; }
#fc .fc-chain { display:inline-flex; margin-left:auto; align-items:center; gap:5px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12px; font-weight:600; line-height:1; }
#fc .fc-chain i { font-size:11px; }
#fc .fc-chain.hover, #fc .fc-chain:hover { color:#043554; }
#fc .fc-sep { height:1px; background:#e7e7eb; margin:22px 0 0; }
#fc .fc-card { background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%) border-box; border:1.5px solid transparent; border-radius:14px; padding:0 14px; margin-top:14px; }
#fc .fc-row { display:flex; align-items:center; gap:6px; padding:10px 0; border-bottom:1px solid #d9dce2; font-size:12px; }
#fc .fc-row:last-child { border-bottom:none; }
#fc .fc-row .k { color:#7d7d80; flex-shrink:0; font-size:12px; }
#fc .fc-row .v { color:#1c1c1e; font-weight:500; flex:1; min-width:0; display:flex; align-items:baseline; justify-content:flex-end; font-variant-numeric:tabular-nums; font-size:12px; }
#fc .fc-copy { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#f4f4f4; border:none; color:#7d7d80; font-size:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#fc .fc-copy.hover, #fc .fc-copy:hover { background:#e7e7eb; }
#fc .fc-desc { font-size:13px; color:#3a4a5c; margin-top:16px; line-height:1.65; word-break:break-word; }
#fc .fc-zoom-overlay { position:fixed; inset:0; background:#000; z-index:1000; display:flex; align-items:center; justify-content:center; }
#fc .fc-zoom-overlay.hide { display:none; }
#fc .fc-zoom-close { position:fixed; top:calc(env(safe-area-inset-top,0px) + 14px); right:14px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.2); color:#fff; font-size:18px; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); z-index:1001; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#fc .fc-zoom-close.hover, #fc .fc-zoom-close:hover { background:rgba(255,255,255,0.28); }
#fc .fc-zoom-content { width:100vw; height:100vh; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px); }
#fc .fc-zoom-content img, #fc .fc-zoom-content video { max-width:100%; max-height:100%; object-fit:contain; }

/* === feed-onft.js === */
#fo .fo-root { background:#fff; min-height:100%; }
#fo .fo-pad { padding:16px clamp(18px,4.5vw,28px) 72px; }
#fo .fo-viewer { position:relative; border-radius:16px; overflow:hidden; background:transparent; border:none; display:flex; align-items:center; justify-content:center; width:min(100%, 56vh); aspect-ratio:1/1; margin:4px auto 0; cursor:zoom-in; }
#fo .fo-viewer .nft-detail-box, #fo .fo-viewer [data-view=3d] { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
#fo .fo-viewer img { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); max-width:82%; max-height:82%; }
#fo .fo-viewer canvas { max-width:100%; max-height:100%; display:block; margin:auto; }
#fo .fo-thumb-loading { filter:blur(8px); opacity:0.92; transform:scale(1.04); transition:opacity .3s ease; }
#fo .fo-cover { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.14); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
#fo .fo-cover-pill { display:inline-flex; align-items:center; gap:10px; padding:11px 18px; border-radius:24px; background:rgba(20,24,32,0.78); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); color:#fff; font-size:13px; font-weight:700; letter-spacing:-0.2px; box-shadow:0 10px 30px rgba(0,0,0,0.38), 0 0 0 1px rgba(255,255,255,0.10); }
#fo .fo-cover-pill .spinner-border { width:18px; height:18px; border-width:2.2px; color:#9da8ff; }
#fo .fo-title { font-size:19px; font-weight:700; color:#1c1c1e; margin-top:16px; letter-spacing:-0.3px; word-break:break-word; }
#fo .fo-ts { font-size:12px; color:#7d7d80; margin-top:24px; text-align:right; font-variant-numeric:tabular-nums; }

#fo .fo-chain-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:14px; }
#fo .fo-share-group { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#fo .fo-chip { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:none; position:relative; color:#01466F; font-size:12px; font-weight:600; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease; }
#fo .fo-chip::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#fo .fo-chip i { font-size:10.5px; }
#fo .fo-chip.hover, #fo .fo-chip:hover { background:#043554; color:#fff; }
#fo .fo-chain { display:inline-flex; margin-left:auto; align-items:center; gap:5px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12px; font-weight:600; line-height:1; }
#fo .fo-chain i { font-size:11px; }
#fo .fo-chain.hover, #fo .fo-chain:hover { color:#043554; }
#fo .fo-sep { height:1px; background:#e7e7eb; margin:22px 0 0; }
#fo .fo-card { background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%) border-box; border:1.5px solid transparent; border-radius:14px; padding:0 14px; margin-top:14px; }
#fo .fo-row { display:flex; align-items:center; gap:6px; padding:10px 0; border-bottom:1px solid #d9dce2; font-size:12px; }
#fo .fo-row:last-child { border-bottom:none; }
#fo .fo-row .k { color:#7d7d80; flex-shrink:0; font-size:12px; }
#fo .fo-row .v { color:#1c1c1e; font-weight:500; flex:1; min-width:0; display:flex; align-items:baseline; justify-content:flex-end; font-variant-numeric:tabular-nums; font-size:12px; }
#fo .fo-copy { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#f4f4f4; border:none; color:#7d7d80; font-size:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#fo .fo-copy.hover, #fo .fo-copy:hover { background:#e7e7eb; }
#fo .fo-desc { font-size:13px; color:#3a4a5c; margin-top:16px; line-height:1.65; word-break:break-word; }
#fo .fo-zoom-overlay { position:fixed; inset:0; background:#000; z-index:1000; display:flex; align-items:center; justify-content:center; }
#fo .fo-zoom-overlay.hide { display:none; }
#fo .fo-zoom-close { position:fixed; top:calc(env(safe-area-inset-top,0px) + 14px); right:14px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.2); color:#fff; font-size:18px; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); z-index:1001; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#fo .fo-zoom-close.hover, #fo .fo-zoom-close:hover { background:rgba(255,255,255,0.28); }
#fo .fo-zoom-content { width:100vw; height:100vh; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px); }
#fo .fo-zoom-content img { max-width:100%; max-height:100%; object-fit:contain; }
#fo .fo-zoom-content canvas { max-width:100%; max-height:100%; display:block; }

/* === mint-cnft.js === */
#mc .mc-root { background:#f4f4f4; min-height:100%; }
#mc .mc-upload-title { font-size:13px; color:#7d7d80; font-weight:600; margin-top:10px; }
#mc .mc-upload-sub { font-size:11px; color:#7d7d80; margin-top:3px; }
#mc .mc-enc-emoji { font-size:20px; }
#mc .mc-enc-title { font-size:13px; font-weight:700; color:#1c1c1e; }
#mc .mc-enc-desc { font-size:11px; color:#7d7d80; margin-top:2px; }
#mc .mc-enc-check { width:20px; height:20px; flex-shrink:0; }
#mc .mc-pad { padding:0 clamp(14px,4vw,24px) 88px; }
#mc .mc-card { background:#fff; border-radius:14px; border:1px solid #e7e7eb; margin-top:14px; }
#mc .mc-upload { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:180px; border-radius:16px; border:1.5px dashed #cdd3da; background:#fff; cursor:pointer; text-align:center; padding:20px; }
#mc .mc-upload.active { border-color:#01466F; background:#f0f5f9; }
#mc .mc-upload img.up-ic { width:42px; opacity:.7; }
#mc .mc-prev { width:100%; border-radius:14px; overflow:hidden; display:flex; align-items:center; justify-content:center; background:#e7e7eb; }
#mc .mc-prev img, #mc .mc-prev video, #mc .mc-prev audio { max-width:100%; max-height:46vh; display:block; }
#mc .mc-prev img.mc-icon { max-width:88px; margin:36px; }
#mc .mc-info { font-size:11px; color:#7d7d80; text-align:center; margin-top:10px; line-height:1.6; }
#mc .mc-field { padding:14px 16px; }
#mc .mc-field + .mc-field { border-top:1px solid #d9dce2; }
#mc .mc-flabel { font-size:12px; font-weight:700; color:#1c1c1e; }
#mc .mc-input { width:100%; border:none; font-size:15px; color:#1c1c1e; padding:8px 0 0; outline:none; background:transparent; }
#mc .mc-textarea { width:100%; border:none; font-size:14px; color:#1c1c1e; padding:8px 0 0; outline:none; background:transparent; resize:none; min-height:72px; line-height:1.5; }
#mc .mc-enc { display:flex; align-items:center; gap:12px; padding:16px; }
#mc .mc-enc-txt { flex:1; min-width:0; }
#mc .mc-cost { display:flex; gap:8px; margin-top:14px; padding:12px 14px; background:rgba(1,70,111,0.06); border-radius:12px; font-size:12px; color:#5a6b7b; line-height:1.5; }
#mc .mc-cost i { margin-top:2px; }
#mc .mc-cta { width:100%; margin-top:16px; height:54px; border-radius:14px; background:#01466F; color:#fff; border:none; font-size:15px; font-weight:700; line-height:1; cursor:pointer; }
#mc .mc-cta:not(.active) { opacity:0.45; }
#mc .mc-cta { transition:background .15s ease, opacity .15s ease; }
#mc .mc-cta.active.hover, #mc .mc-cta.active:hover { background:#022D4A; }
#mc .mc-ticket-bar { display:flex; align-items:center; gap:12px; padding:12px 14px; margin-top:14px; border-radius:12px; background:#fff; border:1px solid #e7e7eb; }
#mc .mc-tb-info { display:flex; align-items:center; gap:8px; flex:1; min-width:0; font-size:13px; color:#1c1c1e; font-weight:600; }
#mc .mc-tb-info i { color:#01466F; font-size:14px; }
#mc .mc-tb-info strong { color:#01466F; font-weight:800; font-variant-numeric:tabular-nums; transition:color .15s ease; }
#mc .mc-tb-info strong.tb-zero { color:#ff6b5b; }
#mc .mc-tb-actions { display:inline-flex; align-items:center; gap:6px; flex-shrink:0; }
#mc .mc-tb-status { display:inline-flex; align-items:center; gap:6px; padding:0 12px; height:34px; border-radius:17px; background:#fff; border:none; position:relative; color:#01466F; font-size:11.5px; font-weight:700; cursor:pointer; transition:background .15s ease, color .15s ease; }
#mc .mc-tb-status::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:var(--grad-navy); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
#mc .mc-tb-status i { font-size:10px; }
#mc .mc-tb-status.hover, #mc .mc-tb-status:hover { background:#043554; color:#fff; }
#mc .mc-tb-buy { display:inline-flex; align-items:center; gap:6px; padding:0 14px; height:34px; border-radius:17px; background:#01466F; color:#fff; border:none; font-size:12px; font-weight:700; cursor:pointer; flex-shrink:0; transition:background .15s ease; }
#mc .mc-tb-buy i { font-size:10px; }
#mc .mc-tb-buy.hover, #mc .mc-tb-buy:hover { background:#022D4A; }
#mc .mc-tb-warn { display:none; font-size:11px; color:#ff6b5b; font-weight:600; margin:6px 4px 0; }
#mc .mc-tb-warn:not(.hide) { display:block; }

/* === mint-onft.js === */
#mo .mo-root { background:#f4f4f4; min-height:100%; }
#mo .mo-pad { padding:16px clamp(14px,4vw,24px) 88px; }
#mo .mo-viewer { border-radius:16px;overflow:hidden;background:transparent;border:none;display:flex;align-items:center;justify-content:center;width:min(100%,50vh);aspect-ratio:1/1;margin:4px auto 0; }
#mo .mo-viewer img { max-width:82%;max-height:82%; }
#mo .mo-card { background:#fff;border-radius:14px;border:1px solid #e7e7eb;margin-top:16px; }
#mo .mo-field { padding:14px 16px; }
#mo .mo-field + .mo-field { border-top:1px solid #d9dce2; }
#mo .mo-label { font-size:12px;font-weight:700;color:#1c1c1e; }
#mo .mo-name { font-size:15px;color:#1c1c1e;margin-top:6px;word-break:break-word; }
#mo .mo-textarea { width:100%;border:none;font-size:14px;color:#1c1c1e;padding:8px 0 0;outline:none;background:transparent;resize:none;min-height:72px;line-height:1.5; }
#mo .mo-cost { display:flex;gap:8px;margin-top:14px;padding:12px 14px;background:rgba(1,70,111,0.06);border-radius:12px;font-size:12px;color:#7d7d80;line-height:1.5; }
#mo .mo-cost i { margin-top:2px; }
#mo .mo-cta { width:100%;margin-top:16px;height:54px;border-radius:14px;background:#01466F;color:#fff;border:none;font-size:14px;font-weight:700; line-height:1;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;transition:background .15s ease, opacity .15s ease; }
#mo .mo-cta:not(.active) { opacity:0.45; }
#mo .mo-cta.active.hover, #mo .mo-cta.active:hover { background:#022D4A; }
#mo .mo-cta .mo-cta-sub { font-size:11px;font-weight:500;opacity:0.85; }

/* === nft-mint.js === */
#nm .nm-root { background:#f4f4f4; min-height:100%; }
#nm .nm-load-wrap { padding:80px 16px; text-align:center; }
#nm .nm-load-spin { width:22px; height:22px; border-width:2.4px; }
#nm .nm-error-msg { padding:24px; text-align:center; color:#7d7d80; font-size:13px; }
#nm .nm-ph-thumb { width:100%; height:100%; display:flex; align-items:center; justify-content:center; color:#c7c9cc; font-size:22px; }
#nm .nm-thumb-img { width:100%; height:100%; object-fit:contain; }
#nm .nm-thumb-img-gray { width:100%; height:100%; object-fit:contain; filter:grayscale(1); opacity:.5; }
#nm .nm-pad { padding:14px clamp(14px,4vw,24px) 88px; }

#nm .nm-tabs { display:flex; gap:7px; margin-bottom:14px; overflow-x:auto; }
#nm .nm-tab { height:32px; padding:0 14px; border-radius:16px; background:#fff; border:none; position:relative; color:#3a4a5c; font-size:12px; font-weight:600; line-height:1; cursor:pointer; white-space:nowrap; flex:0 0 auto; display:inline-flex; align-items:center; box-shadow:0 1px 2px rgba(0,0,0,0.04); transition:background .15s ease, color .15s ease; }
#nm .nm-tab::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:var(--grad-navy); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
#nm .nm-tab-on { background:#01466F; color:#fff; }
#nm .nm-tab-on::before { padding:0; background:transparent; }
#nm .nm-tab:not(.nm-tab-on).hover, #nm .nm-tab:not(.nm-tab-on):hover { background:#f4f4f4; }
#nm .nm-tab-on.hover, #nm .nm-tab-on:hover { background:#022D4A; }

#nm .nm-tab-n { display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; margin-left:6px; padding:0 5px; border-radius:9px; background:rgba(0,0,0,0.08); color:inherit; font-size:11px; font-weight:700; font-variant-numeric:tabular-nums; }
#nm .nm-tab-on .nm-tab-n { background:rgba(255,255,255,0.24); }

#nm .nm-pick-card.nm-on { border-color:#01466F; background:rgba(1,70,111,0.06); }
#nm .nm-pick-card.nm-used { opacity:.55; cursor:default; }
#nm .nm-pick-st { flex-shrink:0; font-size:11px; font-weight:700; padding:3px 8px; border-radius:8px; display:inline-flex; align-items:center; gap:4px; line-height:1; }
#nm .nm-pick-st.nm-ok { color:#198754; background:rgba(25,135,84,0.10); }
#nm .nm-pick-st.nm-on { color:#01466F; background:rgba(1,70,111,0.10); }
#nm .nm-pick-st.nm-used { color:#9aa0a6; background:#f4f4f4; }
#nm .nm-used-btn { display:inline-flex; align-items:center; gap:5px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:1px solid #e7e7eb; color:#7d7d80; font-size:11.5px; font-weight:700; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease, border-color .15s ease; }
#nm .nm-used-btn i { font-size:10px; }
#nm .nm-used-btn.on { background:#f4f4f4; color:#3a4a5c; border-color:#cdd3da; }
#nm .nm-used-btn.hover, #nm .nm-used-btn:hover { background:#f4f4f4; color:#3a4a5c; }
#nm .nm-row-used { font-size:11px; color:#9aa0a6; font-weight:600; margin-left:auto; }
#nm .nm-sec { background:#fff; border-radius:14px; border:1px solid #e7e7eb; padding:16px; margin-bottom:14px; box-shadow:0 1px 2px rgba(0,0,0,0.03); }
#nm .nm-sec-head { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
#nm .nm-sec-title { display:inline-flex; align-items:center; gap:8px; flex:1; min-width:0; font-size:14px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; }

#nm .nm-sec-cnt { display:inline-flex; align-items:center; justify-content:center; min-width:22px; padding:4px 7px; border-radius:10px; background:#01466F; color:#fff; font-size:11px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1; }
#nm .nm-sec-sub { font-size:12px; color:#7d7d80; margin-top:6px; line-height:1.55; }
#nm .nm-sec-ctl { display:inline-flex; gap:6px; }
#nm .nm-auto-btn, #nm .nm-clear-btn, #nm .nm-buy-btn, #nm .nm-history-btn { display:inline-flex; align-items:center; gap:5px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:none; position:relative; color:#01466F; font-size:12px; font-weight:700; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease; }
#nm .nm-auto-btn i, #nm .nm-clear-btn i, #nm .nm-buy-btn i, #nm .nm-history-btn i { font-size:10px; }
#nm .nm-auto-btn::before, #nm .nm-clear-btn::before, #nm .nm-buy-btn::before, #nm .nm-history-btn::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#nm .nm-auto-btn.hover, #nm .nm-auto-btn:hover, #nm .nm-clear-btn.hover, #nm .nm-clear-btn:hover, #nm .nm-buy-btn.hover, #nm .nm-buy-btn:hover, #nm .nm-history-btn.hover, #nm .nm-history-btn:hover { background:#043554; color:#fff; }

#nm .nm-list { display:flex; flex-direction:column; gap:14px; margin-top:14px; }
#nm .nm-row-head { display:flex; align-items:center; gap:6px; margin-bottom:7px; padding:0 2px; }
#nm .nm-row-name { font-size:12px; font-weight:700; color:#1c1c1e; }
#nm .nm-row-cnt-badge { display:inline-flex; align-items:center; justify-content:center; min-width:18px; padding:3px 5px; border-radius:9px; background:#e7e7eb; color:#3a4a5c; font-size:10px; font-weight:800; font-variant-numeric:tabular-nums; line-height:1; }

#nm .nm-row-right { margin-left:auto; display:inline-flex; align-items:center; gap:6px; }
#nm .nm-row-right .nm-row-used { margin-left:0; }
#nm .nm-combine-head { display:flex; align-items:center; gap:10px; overflow-x:auto; padding:0 2px; }
#nm .nm-combine-head > * { flex-shrink:0; }
#nm .nm-combine-head > .nm-sec-title { flex:0 0 auto; }
#nm .nm-combine-head > .nm-sec-ctl { margin-left:auto; }
#nm .nm-combine-sub { font-size:12px; color:#7d7d80; margin:7px 2px 14px; line-height:1.55; }
#nm .nm-type-grid { display:flex; flex-direction:column; gap:12px; }
#nm .nm-type-card { background:#fff; border-radius:14px; border:1px solid #e7e7eb; padding:14px; box-shadow:0 1px 2px rgba(0,0,0,0.03); transition:border-color .15s ease, box-shadow .15s ease; }
#nm .nm-type-card.nm-type-on { border-color:#01466F; box-shadow:0 1px 8px rgba(1,70,111,0.12); }
#nm .nm-type-card .nm-row-head { margin-bottom:0; }
#nm .nm-type-card .nm-x-list { margin-top:10px; }
#nm .nm-type-card .nm-x-card.nm-ok { background:#f7f8fa; }
#nm .nm-type-chk { display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border-radius:50%; background:#01466F; color:#fff; font-size:10px; line-height:1; }
#nm .nm-type-empty { display:flex; align-items:center; gap:12px; margin-top:10px; padding:10px; border-radius:12px; background:#fafafb; border:1px dashed #e7e7eb; }
#nm .nm-type-empty-thumb { width:46px; height:46px; flex-shrink:0; border-radius:8px; overflow:hidden; background:#f4f4f4; display:flex; align-items:center; justify-content:center; }
#nm .nm-type-empty-txt { font-size:12px; font-weight:600; color:#9aa0a6; }
#nm .nm-combine-cta { margin-top:18px; }
#nm .nm-row-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; }
@media (min-width:480px){ #nm .nm-row-grid { grid-template-columns:repeat(4,1fr); } }
@media (min-width:768px){ #nm .nm-row-grid { grid-template-columns:repeat(5,1fr); } }
#nm .nm-cell { position:relative; cursor:pointer; padding:6px 6px 8px; border-radius:10px; background:#fff; border:1px solid #e7e7eb; text-align:center; transition:background .15s ease, border-color .15s ease; }
#nm .nm-cell.nm-ok.hover, #nm .nm-cell.nm-ok:hover { background:#f4f4f4; border-color:#cdd3da; }
#nm .nm-cell.nm-on { border-color:#01466F; background:rgba(1,70,111,0.06); }
#nm .nm-cell.nm-on.hover, #nm .nm-cell.nm-on:hover { background:rgba(1,70,111,0.12); }
#nm .nm-cell:active { background:#e7e7eb; }
#nm .nm-cell.nm-used { cursor:default; background:#f4f4f4; border-color:#e7e7eb; }
#nm .nm-thumb { aspect-ratio:1/1; border-radius:8px; overflow:hidden; background:#fff; }
#nm .nm-check { position:absolute; top:4px; right:4px; width:18px; height:18px; border-radius:50%; background:#01466F; color:#fff; font-size:9px; display:inline-flex; align-items:center; justify-content:center; }

#nm .nm-uid { font-size:12px; color:#3a4a5c; font-weight:600; margin-top:4px; font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; letter-spacing:-0.3px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#nm .nm-st { font-size:12px; font-weight:700; margin-top:1px; }
#nm .nm-cell.nm-ok .nm-st { color:#198754; }
#nm .nm-cell.nm-on .nm-st { color:#01466F; }
#nm .nm-cell.nm-used .nm-st { color:#ad3b48; opacity:.75; }
#nm .nm-empty { grid-column:1/-1; text-align:center; font-size:12px; color:#9aa0a6; padding:18px 0; }
#nm .nm-cta { width:100%; height:48px; margin-top:14px; border-radius:14px; background:#01466F; color:#fff; border:none; font-size:14px; font-weight:700; cursor:pointer; transition:background .15s ease, opacity .15s ease; }
#nm .nm-cta:disabled { opacity:.4; cursor:default; }
#nm .nm-cta:not(:disabled).hover, #nm .nm-cta:not(:disabled):hover { background:#022D4A; }

#nm .nm-x-list { display:flex; flex-direction:column; gap:8px; margin-top:12px; }
#nm .nm-x-card { display:flex; align-items:center; gap:12px; padding:10px; border-radius:12px; background:#fff; border:1px solid #e7e7eb; cursor:pointer; transition:background .15s ease, border-color .15s ease; }
#nm .nm-x-card.hover, #nm .nm-x-card:hover { background:#f9fafb; border-color:#cdd3da; }
#nm .nm-x-thumb { width:48px; height:48px; flex-shrink:0; border-radius:8px; overflow:hidden; background:#f4f4f4; }
#nm .nm-x-body { flex:1; min-width:0; }
#nm .nm-x-name { font-size:13px; font-weight:700; color:#1c1c1e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#nm .nm-x-uuid { font-size:12px; color:#3a4a5c; font-weight:600; font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; letter-spacing:-0.3px; margin-top:2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#nm .nm-x-go { color:#01466F; font-size:14px; flex-shrink:0; }

#nm .nm-tk-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
@media (min-width:480px){ #nm .nm-tk-grid { grid-template-columns:repeat(4,1fr); } }
#nm .nm-tk-cell { cursor:pointer; text-align:center; padding:8px; border-radius:10px; background:#fff; border:1px solid #e7e7eb; transition:background .15s ease, border-color .15s ease; min-width:0; }
#nm .nm-tk-cell.hover, #nm .nm-tk-cell:hover { background:#f4f4f4; border-color:#cdd3da; }
#nm .nm-tk-thumb { aspect-ratio:1/1; border-radius:8px; overflow:hidden; background:#fff; }
#nm .nm-tk-name { font-size:12px; color:#1c1c1e; font-weight:600; margin-top:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
#nm .nm-tk-cnt { font-size:12px; color:#7d7d80; font-variant-numeric:tabular-nums; }
#nm .nm-tk-empty { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:12px; padding:24px 14px; border-radius:10px; background:#fafafa; border:1px dashed #e7e7eb; color:#7d7d80; font-size:12px; }
#nm .nm-tk-empty i { font-size:16px; color:#cdd3da; }

#nm .nm-sec-hiw { background:linear-gradient(#fff,#fff) padding-box,var(--grad-navy) border-box; border:1.5px solid transparent; }
#nm .nm-hiw-ico { color:#01466F; font-size:14px; line-height:1; }
#nm .nm-hiw-list { list-style:none; padding:0; margin:12px 0 0; display:flex; flex-direction:column; gap:8px; }
#nm .nm-hiw-list li { display:flex; align-items:center; gap:10px; font-size:12px; color:#1c1c1e; }
#nm .nm-hiw-n { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#01466F; color:#fff; font-size:11px; font-weight:800; display:inline-flex; align-items:center; justify-content:center; line-height:1; }

#nm .nm-rc-all { display:inline-flex; align-items:center; gap:4px; padding:0; background:none; border:none; color:#01466F; font-size:12px; font-weight:700; cursor:pointer; line-height:1; transition:color .15s ease; }
#nm .nm-rc-all i { font-size:11px; }
#nm .nm-rc-all.hover, #nm .nm-rc-all:hover { color:#022D4A; }
#nm .nm-rc-list { display:flex; flex-direction:column; gap:6px; margin-top:10px; }
#nm .nm-rc-row { display:flex; align-items:center; gap:10px; padding:8px 10px; border-radius:10px; background:#fafafa; border:1px solid #e7e7eb; }

#nm .nm-rc-thumb { flex-shrink:0; width:34px; height:34px; border-radius:8px; overflow:hidden; background:transparent; display:inline-flex; align-items:center; justify-content:center; }
#nm .nm-rc-thumb img { width:100%; height:100%; object-fit:contain; }
#nm .nm-rc-thumb i { color:#cdd3da; font-size:15px; }
#nm .nm-rc-empty { padding:18px 10px; text-align:center; font-size:12px; color:#9aa0a6; }
#nm .nm-rc-body { flex:1; min-width:0; }
#nm .nm-rc-name { font-size:12px; font-weight:600; color:#1c1c1e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#nm .nm-rc-ts { font-size:12px; color:#7d7d80; margin-top:2px; font-variant-numeric:tabular-nums; }
#nm .nm-rc-price { font-size:12px; color:#01466F; font-weight:700; font-variant-numeric:tabular-nums; flex-shrink:0; }


/* === onft-detail.js === */
#od .od-root { background:#fff; min-height:100%; }
#od .od-pad { padding:16px clamp(18px,4.5vw,28px) 72px; }
#od .od-viewer { position:relative; border-radius:16px; overflow:hidden; background:transparent; border:none; display:flex; align-items:center; justify-content:center; width:min(100%, 56vh); aspect-ratio:1/1; margin:4px auto 0; }
#od .od-viewer .nft-detail-box, #od .od-viewer [data-view=3d] { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; }
#od .od-viewer img { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); max-width:82%; max-height:82%; }
#od .od-viewer canvas { max-width:100%; max-height:100%; display:block; margin:auto; }
#od .od-viewer { cursor:zoom-in; }

#od .od-thumb-loading { filter:blur(8px); opacity:0.92; transform:scale(1.04); transition:opacity .3s ease; }
#od .od-cover { position:absolute; inset:0; display:flex; align-items:center; justify-content:center; background:rgba(0,0,0,0.14); backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); }
#od .od-cover-pill { display:inline-flex; align-items:center; gap:10px; padding:11px 18px; border-radius:24px; background:rgba(20,24,32,0.78); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); color:#fff; font-size:13px; font-weight:700; letter-spacing:-0.2px; box-shadow:0 10px 30px rgba(0,0,0,0.38), 0 0 0 1px rgba(255,255,255,0.10); }
#od .od-cover-pill .spinner-border { width:18px; height:18px; border-width:2.2px; color:#9da8ff; }
#od .od-title { font-size:19px; font-weight:700; color:#1c1c1e; margin-top:16px; letter-spacing:-0.3px; word-break:break-word; }
#od .od-ts { font-size:12px; color:#7d7d80; margin-top:24px; text-align:right; font-variant-numeric:tabular-nums; }
#od .od-chips { display:flex; gap:7px; flex-wrap:wrap; margin-top:14px; }
#od .od-chip { display:inline-flex; align-items:center; gap:6px; height:30px; padding:0 12px; border-radius:15px; background:#fff; border:none; position:relative; color:#01466F; font-size:12px; font-weight:600; cursor:pointer; line-height:1; transition:background .15s ease, color .15s ease; }
#od .od-chip::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#od .od-chip i { font-size:10.5px; }
#od .od-chip.hover, #od .od-chip:hover { background:#043554; color:#fff; }
/* divider */
#od .od-sep { height:1px; background:#e7e7eb; margin:22px 0 0; }
#od .od-card { background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%) border-box; border:1.5px solid transparent; border-radius:14px; padding:0 14px; margin-top:14px; }
#od .od-row { display:flex; align-items:center; gap:6px; padding:10px 0; border-bottom:1px solid #d9dce2; font-size:12px; }
#od .od-row:last-child { border-bottom:none; }
#od .od-row .k { color:#7d7d80; flex-shrink:0; font-size:12px; }
#od .od-row .v { color:#1c1c1e; font-weight:500; flex:1; min-width:0; display:flex; align-items:baseline; justify-content:flex-end; font-variant-numeric:tabular-nums; font-size:12px; }
#od .od-copy { flex-shrink:0; width:22px; height:22px; border-radius:50%; background:#f4f4f4; border:none; color:#7d7d80; font-size:9px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#od .od-copy.hover, #od .od-copy:hover { background:#e7e7eb; }

#od .od-chain-row { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-top:14px; }
#od .od-share-group { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#od .od-chain { display:inline-flex; margin-left:auto; align-items:center; gap:5px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12px; font-weight:600; line-height:1; }
#od .od-chain i { font-size:11px; }
#od .od-chain.hover, #od .od-chain:hover { color:#043554; }
#od .od-desc { font-size:13px; color:#3a4a5c; margin-top:16px; line-height:1.65; word-break:break-word; }
#od .od-cta { width:100%; margin-top:18px; height:54px; border-radius:14px; background:#01466F; color:#fff; border:none; position:relative; font-size:14px; font-weight:700; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:1px; }
#od .od-cta:not(.active) { opacity:0.45; }
#od .od-cta .od-cta-sub { font-size:12px; font-weight:500; opacity:0.85; }
#od .od-cta::before { content:'';position:absolute;inset:0;border-radius:inherit;padding:1px;background:var(--grad-navy);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none; }
#od .od-cta { transition:background .15s ease, opacity .15s ease; }
#od .od-cta.hover, #od .od-cta:hover { background:#022D4A; }
/* Zoom overlay */
#od .od-zoom-overlay { position:fixed; inset:0; background:#000; z-index:1000; display:flex; align-items:center; justify-content:center; }
#od .od-zoom-overlay.hide { display:none; }
#od .od-zoom-close { position:fixed; top:calc(env(safe-area-inset-top,0px) + 14px); right:14px; width:44px; height:44px; border-radius:50%; background:rgba(255,255,255,0.14); border:1px solid rgba(255,255,255,0.2); color:#fff; font-size:18px; cursor:pointer; backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); z-index:1001; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
#od .od-zoom-close.hover, #od .od-zoom-close:hover { background:rgba(255,255,255,0.28); }
#od .od-zoom-content { width:100vw; height:100vh; display:flex; align-items:center; justify-content:center; padding:env(safe-area-inset-top,0px) 0 env(safe-area-inset-bottom,0px); }
#od .od-zoom-content img { max-width:100%; max-height:100%; object-fit:contain; }
#od .od-zoom-content canvas { max-width:100%; max-height:100%; display:block; }

/* === password.js === */
#pw { background:#fff; min-height:100%; }
#pw .pw-wrap { padding:72px clamp(20px,5vw,32px) calc(56px + env(safe-area-inset-bottom, 0px)); max-width:480px; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
#pw .pw-icon {
    width:78px; height:78px; border-radius:50%;
    background:var(--grad-navy);
    color:#fff; display:flex; align-items:center; justify-content:center;
    font-size:30px; box-shadow:0 8px 24px rgba(2,45,74,0.22);
    margin-bottom:22px;
}
#pw .pw-icon.pw-icon-nfc { background:linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%); box-shadow:0 8px 24px rgba(125,131,255,0.26); }
#pw .pw-title { font-size:21px; font-weight:700; color:#1c1c1e; letter-spacing:-0.4px; text-align:center; margin:0 0 10px; word-break:keep-all; }
#pw .pw-desc { font-size:13px; color:#3a4a5c; line-height:1.55; text-align:center; margin:0 0 36px; word-break:keep-all; }
#pw .pw-field {
    position:relative; width:100%; max-width:380px;
}
#pw .pw-input {
    width:100%; height:54px;
    border:1.5px solid #e7e7eb; border-radius:14px;
    padding:0 46px;
    font-size:12px; color:#1c1c1e; font-weight:500;
    background:#f7f8fa; outline:none;
    letter-spacing:0.3em; text-align:center;
    font-family: fontello-asterlisk, sans-serif;
    transition:border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
@supports (-webkit-touch-callout: none) {
    #pw .pw-input { font-family: 'Apple SD Gothic Neo', GmarketSans, sans-serif; }
}
#pw .pw-input::placeholder { font-family: GmarketSans, 'Apple SD Gothic Neo', sans-serif; color:#9aa0a6; letter-spacing:0.04em; font-weight:400; font-size:13.5px; transition:opacity .2s ease; }
#pw .pw-input:focus { border-color:#01466F; background:#fff; box-shadow:0 0 0 4px rgba(1,70,111,0.10); }
#pw .pw-input:focus::placeholder { opacity:0; }
#pw .pw-input.pw-shown { font-family: GmarketSans, 'Apple SD Gothic Neo', sans-serif; letter-spacing:0.1em; font-size:13px; font-weight:600; }
#pw .pw-toggle {
    position:absolute; right:8px; top:50%; transform:translateY(-50%);
    width:38px; height:38px; border:none; background:transparent;
    color:#7d7d80; cursor:pointer; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center; font-size:14px;
    transition:color .15s ease, background .15s ease;
}
#pw .pw-toggle.hover, #pw .pw-toggle:hover { color:#1c1c1e; background:rgba(0,0,0,0.05); }
#pw .pw-warn {
    width:100%; max-width:380px; min-height:0; margin-top:4px;
    font-size:12px; color:#ad3b48; font-weight:600; text-align:center;
    line-height:1.4; opacity:0; transition:opacity .25s ease;
}
#pw .pw-warn.pw-warn-show { opacity:1; min-height:18px; }
#pw .pw-confirm {
    width:100%; max-width:380px; height:54px; margin-top:9px;
    background:#01466F; color:#fff;
    border:none; border-radius:14px;
    font-size:15px; font-weight:700; cursor:pointer;
    font-family:inherit;
    transition:background .15s ease;
}
#pw .pw-confirm.hover, #pw .pw-confirm:hover { background:#022D4A; }
#pw .pw-confirm:active { background:#022D4A; }

#pw .pw-info { display:none; width:100%; max-width:380px; margin:32px auto 0; padding:12px 14px 4px; border-radius:14px; background:#fff; position:relative; }
#pw .pw-info.pw-info-show { display:block; }
#pw .pw-info::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:var(--grad-navy); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
#pw .pw-info-h { display:flex; align-items:center; justify-content:center; gap:8px; padding:2px 0 10px; border-bottom:1px solid rgba(1,70,111,0.08); font-size:11.5px; font-weight:700; color:#01466F; letter-spacing:0.15px; }
#pw .pw-info-h i { font-size:11px; }
#pw .pw-info-row { display:flex; align-items:flex-start; gap:10px; padding:10px 2px; }
#pw .pw-info-row + .pw-info-row { border-top:1px solid rgba(0,0,0,0.05); }
#pw .pw-info-ico { flex-shrink:0; width:28px; height:28px; border-radius:50%; background:var(--grad-navy); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:11px; box-shadow:0 2px 6px rgba(2,45,74,0.18); }
#pw .pw-info-body { flex:1; min-width:0; }
#pw .pw-info-title { font-size:12px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; line-height:1.4; }
#pw .pw-info-desc { font-size:10.5px; color:#5a5a5e; line-height:1.55; margin-top:2px; word-break:keep-all; }

#pw .pw-tx { display:none; width:100%; max-width:380px; margin:24px auto 0; padding:14px 16px; border-radius:14px; background:#fff; position:relative; }
#pw .pw-tx.pw-tx-show { display:block; }
#pw .pw-tx::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%); -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
#pw .pw-tx-h { display:flex; align-items:center; justify-content:center; gap:7px; padding:2px 0 10px; border-bottom:1px solid #d9dce2; font-size:11.5px; font-weight:700; color:#01466F; letter-spacing:0.15px; line-height:1.4; }
#pw .pw-tx-h i { font-size:11px; line-height:1.4; }
#pw .pw-tx-meta { padding-top:8px; }
#pw .pw-tx-body { padding-top:6px; border-top:1px solid #d9dce2; margin-top:6px; }
#pw .pw-tx-row { display:grid; grid-template-columns:minmax(96px,auto) minmax(0,1fr); gap:12px; align-items:baseline; padding:6px 2px; font-size:11.5px; line-height:1.4; }
#pw .pw-tx-k { color:#3a4a5c; font-weight:600; font-size:11.5px; white-space:nowrap; }
#pw .pw-tx-v { min-width:0; text-align:right; color:#1c1c1e; font-weight:600; font-size:11.5px; font-variant-numeric:tabular-nums; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#pw .pw-tx-v .wp-addr { justify-content:flex-end; }
#pw .pw-tx-mono { font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; letter-spacing:-0.2px; font-size:11.5px; }

#pw .pw-raw-toggle { display:flex; align-items:center; justify-content:center; gap:6px; width:100%; margin-top:12px; padding:7px; border:none; background:none; color:#7d7d80; font-size:11px; font-weight:700; cursor:pointer; font-family:inherit; }
#pw .pw-raw-toggle i { font-size:9px; transition:transform .18s ease; }
#pw .pw-tx.pw-raw-open .pw-raw-toggle i { transform:rotate(180deg); }
#pw .pw-raw { display:none; margin-top:8px; padding:11px 12px; background:#f7f8fa; border-radius:10px; font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; font-size:10.5px; line-height:1.55; color:#1c1c1e; white-space:pre-wrap; word-break:break-all; max-height:150px; overflow:auto; text-align:left; }
#pw .pw-tx.pw-raw-open .pw-raw { display:block; }

/* === connected-services.js (id csv — avoid #cs clash with the choice-sheet) === */
#csv { background:#f4f4f4; min-height:100%; }
#csv .cs-wrap { padding:16px; }
#csv .cs-desc { font-size:12px; color:#7d7d80; margin:0 4px 10px; line-height:1.5; }
#csv .cs-item { background:#fff; border-radius:12px; padding:11px 13px; margin-bottom:8px; display:flex; align-items:center; gap:11px; }
#csv .cs-logo { position:relative; flex:0 0 auto; width:40px; height:40px; border-radius:10px; background:#f4f4f6; display:inline-flex; align-items:center; justify-content:center; color:#a0a0a5; font-size:16px; overflow:hidden; }
#csv .cs-logo img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
#csv .cs-id { min-width:0; flex:1; }
#csv .cs-domain { font-weight:600; font-size:14px; color:#1c1c1e; word-break:break-all; line-height:1.35; }
#csv .cs-at { font-size:11px; color:#a0a0a5; margin-top:2px; }
#csv .cs-remove { flex:0 0 auto; background:#f4f4f6; border:0; border-radius:8px; padding:8px 12px; font-size:12px; font-weight:600; color:#c0392b; cursor:pointer; transition:background .15s ease; }
#csv .cs-remove.hover, #csv .cs-remove:hover { background:#fbe9ec; }
#csv .cs-empty { text-align:center; color:#a0a0a5; font-size:13px; padding:48px 0; }

/* === bio.js === */
#bio { background:#f4f4f4; min-height:100vh; padding-bottom:calc(56px + env(safe-area-inset-bottom)); }
#bio .bio-wrap { padding:100px clamp(20px,5vw,32px) calc(56px + env(safe-area-inset-bottom,0px)); max-width:480px; margin:0 auto; display:flex; flex-direction:column; align-items:center; }
#bio .bio-icon { width:78px; height:78px; border-radius:50%; background:var(--grad-navy); color:#fff; display:flex; align-items:center; justify-content:center; font-size:32px; box-shadow:0 8px 24px rgba(2,45,74,0.22); margin-bottom:22px; }
#bio .bio-title { font-size:21px; font-weight:700; color:#1c1c1e; letter-spacing:-0.4px; text-align:center; margin:0 0 18px; word-break:keep-all; line-height:1.4; }
#bio .bio-desc { font-size:13px; color:#3a4a5c; line-height:1.55; text-align:center; margin:0 0 34px; word-break:keep-all; }
#bio .bio-note { display:flex; align-items:flex-start; gap:8px; width:100%; background:#ffffff; border-radius:12px; padding:14px 15px; margin:0 0 16px; font-size:12px; color:#5a6b7d; line-height:1.5; word-break:keep-all; box-shadow:0 4px 14px rgba(2,45,74,0.10); }
#bio .bio-note i { flex-shrink:0; margin-top:1px; color:#01466F; }
#bio .bio-confirm { width:100%; height:54px; border-radius:14px; border:0; background:#01466F; color:#fff; font-size:16px; font-weight:700; cursor:pointer; font-family:inherit; transition:background .15s ease; }
#bio .bio-confirm.hover, #bio .bio-confirm:hover { background:#022D4A; }
#bio .bio-later { width:100%; height:54px; margin-top:10px; border-radius:14px; background:transparent; color:#5a6b7d; border:0; font-size:14px; font-weight:600; cursor:pointer; font-family:inherit; text-decoration:underline; }

/* === refine.js === */
.rfn-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(56px + env(safe-area-inset-bottom)); }
.rfn-loading-spin { color:#01466F; }
.rfn-wrap { padding:24px 20px calc(40px + env(safe-area-inset-bottom)); max-width:560px; margin:0 auto; }

.rfn-info-bar { display:flex; justify-content:flex-end; margin-bottom:8px; }
.rfn-info-btn { display:inline-flex; align-items:center; gap:6px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12.5px; font-weight:700; letter-spacing:-0.2px; line-height:1; }
.rfn-info-btn i { font-size:12px; line-height:1; }

.rfn-refresh-bar { display:flex; justify-content:flex-end; margin:6px 0 8px; }
.rfn-refresh { display:inline-flex; align-items:center; gap:5px; background:transparent; border:0; padding:4px 4px; cursor:pointer; color:#7d7d80; font-family:inherit; font-size:12px; font-weight:600; line-height:1; transition:color .15s ease; }
.rfn-refresh i { font-size:12px; }
.rfn-refresh.hover, .rfn-refresh:hover, .rfn-refresh:active { color:#1c1c1e; }
.rfn-card {
    position:relative;
    background:#ffffff;
    border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06);
    padding:20px 18px;
    margin-bottom:14px;
    color:#1c1c1e;
}
.rfn-card::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
}

.rfn-intro {
    display:flex; align-items:center; gap:14px;
    padding:6px 0;
}
.rfn-intro-icon {
    width:44px; height:44px; border-radius:50%;
    background:var(--grad-navy);
    color:#fff;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:18px; flex-shrink:0;
}
.rfn-intro-body { min-width:0; line-height:1.45; }
.rfn-intro-title {
    font-size:15px; font-weight:700; color:#1c1c1e;
    margin-bottom:4px; letter-spacing:-0.2px;
}
.rfn-intro-desc { font-size:12px; color:#7d7d80; line-height:1.5; }

.rfn-intro-info {
    background:transparent; border:0; padding:0;
    color:#01466F; cursor:pointer;
    width:30px; height:30px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:16px; line-height:1;
    margin-left:auto; flex-shrink:0; align-self:center;
    transition:background .15s ease, color .15s ease;
}
.rfn-intro-info:hover { color:#043554; background:rgba(1,70,111,0.06); }

.rfn-card-title {
    display:flex; align-items:center; justify-content:space-between;
    gap:8px;
    font-size:15px; font-weight:700; color:#1c1c1e;
    letter-spacing:-0.2px; line-height:1.3;
    margin-bottom:14px; padding-bottom:12px;
    border-bottom:1px solid #d9dce2;
}
.rfn-card-title-rate { font-size:12px; font-weight:700; color:#01466F; font-variant-numeric:tabular-nums; letter-spacing:0; }
.rfn-title-actions { display:inline-flex; align-items:center; gap:2px; margin-left:auto; flex-shrink:0; }
.rfn-title-info {
    background:transparent; border:0; padding:0;
    color:#01466F; cursor:pointer;
    width:30px; height:30px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:16px; line-height:1;
    flex-shrink:0;
    transition:background .15s ease, color .15s ease;
}
.rfn-title-info.hover, .rfn-title-info:hover { color:#043554; background:rgba(1,70,111,0.06); }

.rfn-resource-num {
    font-size:19px; font-weight:400; color:#1c1c1e;
    text-align:center; letter-spacing:-0.5px;
    font-variant-numeric:tabular-nums;
    line-height:1.2;
    padding:4px 0;
}

.rfn-arrow-row {
    display:flex; justify-content:center;
    padding:0 0 14px;
}
.rfn-arrow {
    width:36px; height:36px; border-radius:50%;
    background:#ffffff; color:#01466F;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:16px;
    box-shadow:0 2px 8px rgba(0,0,0,0.08);
}

.rfn-account-head {
    display:flex; align-items:center; gap:12px; margin-bottom:14px;
}
.rfn-avatar {
    width:48px; height:48px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:13px; font-weight:700; letter-spacing:-0.3px;
    box-sizing:border-box; flex-shrink:0;
}
.rfn-id { min-width:0; }
.rfn-nick { font-size:16px; font-weight:700; color:#1c1c1e; line-height:1.3; }
.rfn-tag  { font-size:13px; font-weight:500; color:#7d7d80; margin-left:2px; }
.rfn-addr {
    font-size:11px; color:#7d7d80; margin-top:2px;
    word-break:break-all; line-height:1.4;
}

.rfn-preview-num {
    text-align:center; line-height:1.1; padding:8px 0 6px;
    font-variant-numeric:tabular-nums;
}
.rfn-prv-int { font-size:26px; font-weight:500; color:#01466F; letter-spacing:-0.7px; }
.rfn-prv-dec { font-size:22px; font-weight:400; color:#7d7d80; }
.rfn-prv-sym { font-size:14px; font-weight:600; color:#7d7d80; margin-left:6px; }

.rfn-footer {
    position:fixed; left:0; right:0; bottom:0;
    max-width:var(--app-max-width); margin:0 auto;
    background:#ffffff;
    box-shadow:0 -4px 12px rgba(0,0,0,0.06);
    z-index:100;
    padding:12px 16px calc(12px + env(safe-area-inset-bottom));
}
.rfn-warn {
    padding:0 4px 10px; margin-top:22px;
    text-align:center;
    font-size:12px; color:#ad3b48; font-weight:500;
    line-height:1.4;
}
.rfn-warn i { margin-right:5px; }
.rfn-confirm {
    position:relative;
    width:100%; height:54px; border-radius:14px;
    background:#01466F; color:#ffffff;
    border:0; cursor:pointer;
    font-size:15px; font-weight:700; line-height:1.35;
    transition:background .15s ease;
    font-family:inherit;
}
.rfn-confirm::before {
    content:''; position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.rfn-confirm.hover, .rfn-confirm:hover { background:#022D4A; }
.rfn-confirm.rfn-disabled {
    background:#DCDCE2; color:#ffffff; pointer-events:none;
}
.rfn-confirm.rfn-disabled::before { display:none; }

/* loading overlay */
.rfn-loading-overlay {
    position:absolute; inset:0;
    background:rgba(255,255,255,0.85);
    display:flex; align-items:center; justify-content:center;
    z-index:200;
}

/* === mining.js (mn — mirrors the refine design) === */
.mn-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(40px + env(safe-area-inset-bottom)); }
.mn-wrap { padding:24px 20px calc(40px + env(safe-area-inset-bottom)); max-width:560px; margin:0 auto; }
.mn-info-bar { display:flex; justify-content:flex-end; margin-bottom:8px; }
.mn-info-btn { display:inline-flex; align-items:center; gap:6px; background:transparent; border:0; padding:4px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12.5px; font-weight:700; letter-spacing:-0.2px; line-height:1; }
.mn-info-btn i { font-size:12px; line-height:1; }
.mn-card { position:relative; background:#ffffff; border-radius:16px; box-shadow:0 1px 4px rgba(0,0,0,0.06); padding:20px 18px; margin-bottom:14px; color:#1c1c1e; }
.mn-card::before { content:''; position:absolute; inset:0; border-radius:inherit; padding:1px; background:var(--grad-navy); -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none; }
.mn-intro { display:flex; align-items:center; gap:14px; padding:6px 0; }
.mn-intro-icon { width:44px; height:44px; border-radius:50%; background:var(--grad-navy); color:#fff; display:inline-flex; align-items:center; justify-content:center; font-size:18px; flex-shrink:0; }
.mn-intro-body { min-width:0; line-height:1.45; }
.mn-intro-title { font-size:15px; font-weight:700; color:#1c1c1e; margin-bottom:4px; letter-spacing:-0.2px; }
.mn-intro-desc { font-size:12px; color:#7d7d80; line-height:1.5; }
.mn-card-title { font-size:15px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; line-height:1.3; margin-bottom:14px; padding-bottom:12px; border-bottom:1px solid #d9dce2; }
.mn-guide-os { font-size:14px; font-weight:600; color:#1c1c1e; border-left:3px solid #01466F; padding-left:10px; }
.mn-guide-sub { font-size:12px; color:#7d7d80; margin:4px 0 14px; padding-left:13px; }
.mn-guide-video { position:relative; width:100%; aspect-ratio:16 / 9; border-radius:12px; overflow:hidden; background:#000; }
.mn-guide-video iframe { position:absolute; inset:0; width:100%; height:100%; border:0; }
.mn-cta { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; height:52px; border:0; border-radius:14px; background:#01466F; color:#fff; font-size:15px; font-weight:700; font-family:inherit; cursor:pointer; box-shadow:0 4px 14px rgba(2,45,74,0.25); transition:background .15s ease; margin-top:4px; }
.mn-cta.hover, .mn-cta:hover { background:#022D4A; }
.mn-cta i { font-size:14px; }

/* === send-2.js === */
.sn2-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.sn2-nft-spin { width:18px; height:18px; border-width:2px; }
.sn2-thumb-img { width:100%; height:100%; background:#fff; }
.sn2-wrap { padding:0 26px; max-width:560px; margin:0 auto; }
.sn2-card {
    position:relative;
    background:#ffffff;
    border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06);
    padding:18px 20px;
    margin-bottom:9px;
    color:#1c1c1e;
}
.sn2-card::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
}

.sn2-nft-card { padding:16px 18px 18px; }

.sn2-facets { display:flex; gap:7px; margin:12px 0 4px; overflow-x:auto; }
.sn2-facet { height:30px; padding:0 13px; border-radius:15px; background:#fff; border:1px solid #e7e7eb; color:#3a4a5c; font-size:12px; font-weight:600; line-height:1; cursor:pointer; font-family:inherit; display:inline-flex; align-items:center; flex-shrink:0; white-space:nowrap; transition:background .15s ease, color .15s ease, border-color .15s ease; }
.sn2-facet.on { background:#01466F; color:#fff; border-color:#01466F; }
@media (hover:hover) and (pointer:fine) { .sn2-facet:not(.on):hover { background:#f4f4f4; } }
.sn2-facet-n { margin-left:6px; font-weight:700; opacity:0.6; font-variant-numeric:tabular-nums; }
.sn2-facet.on .sn2-facet-n { opacity:1; }

.sn2-nft-scroll { max-height:40vh; overflow-y:scroll; scrollbar-gutter:stable; margin-top:6px; -webkit-overflow-scrolling:touch; }
.sn2-nft-scroll::-webkit-scrollbar { width:8px; }
.sn2-nft-scroll::-webkit-scrollbar-track { background:#f0f0f3; border-radius:4px; }
.sn2-nft-scroll::-webkit-scrollbar-thumb { background:#c3c8d0; border-radius:4px; border:2px solid #fff; }
.sn2-nft-scroll:hover::-webkit-scrollbar-thumb { background:#aab1bc; }

.sn2-nft-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; padding:2px; }
@media (min-width:480px) { .sn2-nft-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }

.sn2-nft-cell { position:relative; min-width:0; cursor:pointer; padding:5px; border-radius:12px;
    background:#fff; border:1.5px solid #e7e7eb; text-align:center; isolation:isolate;
    transition:border-color .15s ease, box-shadow .15s ease; }
.sn2-nft-cell.sn2-hide { display:none; }
@media (hover:hover) and (pointer:fine) { .sn2-nft-cell:hover { box-shadow:0 3px 10px rgba(0,0,0,0.08); } }
.sn2-nft-cell.sn2-cell-on { border-color:#01466F; box-shadow:0 4px 12px rgba(1,70,111,0.16); }
.sn2-nft-thumb { position:relative; aspect-ratio:1/1; border-radius:8px; overflow:hidden; background:#e9ecef; display:flex; align-items:center; justify-content:center; }
.sn2-nft-ph { width:100%; height:100%; background:linear-gradient(135deg,#3a4a5c,#1c2530); }
.sn2-nft-thumb img { width:100%; height:100%; object-fit:cover; }

.sn2-cell-check { position:absolute; top:4px; right:4px; width:20px; height:20px; border-radius:50%; background:#01466F; color:#fff; font-size:10px; display:inline-flex; align-items:center; justify-content:center; opacity:0; transform:scale(0.6); transition:0.15s ease-in-out; z-index:1; }
.sn2-nft-cell.sn2-cell-on .sn2-cell-check { opacity:1; transform:scale(1); }
.sn2-nft-meta { padding:5px 3px 1px; min-width:0; }
.sn2-nft-tag { height:16px; line-height:16px; font-size:12px; font-weight:700; color:#1c1c1e; letter-spacing:-0.1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sn2-nft-official .sn2-nft-tag { color:#01466F; }
.sn2-nft-uid { font-size:11px; color:#7d7d80; margin-top:1px; font-variant-numeric:tabular-nums; letter-spacing:0.1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sn2-nft-uid .wp-addr { overflow:hidden; text-overflow:ellipsis; }

.sn2-nft-empty { grid-column:1/-1; padding:36px 12px; text-align:center; font-size:12px; color:#7d7d80; }
.sn2-nft-load { grid-column:1/-1; padding:36px 0; text-align:center; }

/* Recipient card */
.sn2-to {
    display:flex; align-items:center; gap:12px;
    padding:4px 0;
}
.sn2-to-avatar {
    width:40px; height:40px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px; font-weight:700; letter-spacing:-0.3px;
    box-sizing:border-box; flex-shrink:0;
}
.sn2-to-id { min-width:0; flex:1; }
.sn2-to-label {
    font-size:10px; font-weight:600; color:#3a4a5c;
    text-transform:uppercase; letter-spacing:0.7px;
    line-height:1; margin-bottom:5px;
}
.sn2-to-addr {
    font-size:12px; color:#1c1c1e; font-weight:500;
    word-break:break-all; line-height:1.4;
    font-variant-numeric:tabular-nums;
    letter-spacing:-0.1px;
}

.sn2-amount-card { padding:26px 20px 24px; text-align:center; }
.sn2-amount-label {
    font-size:10.5px; font-weight:700; color:#3a4a5c;
    text-transform:uppercase; letter-spacing:0.7px;
    margin-bottom:14px;
}
.sn2-amount-line {
    display:inline-flex; align-items:baseline; justify-content:center;
    gap:7px; max-width:100%;
}
.sn2-amount-display {
    font-size:clamp(22px, 7vw, 30px);
    font-weight:500; color:#1c1c1e;
    letter-spacing:-0.5px; line-height:1.1;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
}
.sn2-amount-display.sn2-empty {
    color:#cbcbd1; font-weight:500;
}
.sn2-amount-symbol {
    font-size:14px; font-weight:600; color:#1c1c1e; opacity:.7;
}
.sn2-info-card { padding:8px 18px; }
.sn2-info-row {
    display:flex; justify-content:space-between; align-items:baseline;
    padding:9px 2px; font-size:12px; line-height:1.3;
}
.sn2-info-row + .sn2-info-row { border-top:1px solid #d9dce2; }
.sn2-info-label { color:#3a4a5c; font-weight:600; }
.sn2-info-val { color:#1c1c1e; font-weight:600; font-variant-numeric:tabular-nums; }
.sn2-info-val .sn2-info-sym { color:#1c1c1e; font-weight:500; opacity:.7; margin-left:3px; }
.sn2-info-val .sn2-max-skel { display:inline-block; width:84px; height:14px; vertical-align:middle; }

.sn2-pad-grid {
    display:grid;
    grid-template-columns:repeat(3, 1fr);
    gap:9px;
    margin-top:8px;
}
.snd-pad {
    position:relative;
    appearance:none; border:0;
    background:#ffffff;
    border-radius:12px;
    padding:15px 4px;
    font-size:15px; font-weight:700; line-height:1;
    color:#1c1c1e; font-family:inherit;
    cursor:pointer;
    box-shadow:0 2px 6px rgba(0,0,0,0.06);
    transition:0.12s ease-in-out;
    font-variant-numeric:tabular-nums;
}

.snd-pad::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
    transition:0.12s ease-in-out;
}
.snd-pad:active { transform:scale(0.96); background:#eef2f6; }
@media (hover: hover) and (pointer: fine) {
    .snd-pad:hover { background:#f6f8fb; transform:translateY(-1px); }
}
.snd-pad span { display:inline-block; line-height:1; }

.snd-pad-fn {
    font-size:11px; font-weight:700;
}

.snd-pad-fn { color:#01466F; background:#eef4f8; }
.snd-pad-fn::before { background:linear-gradient(135deg, #01466F 0%, #4a7c9a 100%); }

.snd-pad-fn.snd-pad-clear { color:#5a5a60; background:#eeeef2; }
.snd-pad-fn.snd-pad-clear::before { background:linear-gradient(135deg, #9a9aa0 0%, #c0c0c5 100%); }
.snd-pad-fn.snd-pad-del { color:#ad3b48; background:#fceef0; }
.snd-pad-fn.snd-pad-del::before { background:linear-gradient(135deg, #ad3b48 0%, #d15261 100%); }

.snd-refresh-bar { display:flex; justify-content:flex-end; margin-bottom:8px; }
.snd-refresh-btn { appearance:none; border:0; background:transparent; color:#7d7d80;
    display:inline-flex; align-items:center; gap:5px; padding:4px 6px; cursor:pointer;
    font-family:inherit; font-size:12px; font-weight:600; line-height:1; transition:color .15s ease; }
.snd-refresh-btn i { font-size:12px; }
@media (hover:hover) and (pointer:fine) { .snd-refresh-btn:hover { color:#1c1c1e; } }
.snd-refresh-btn:active { color:#1c1c1e; }

.sn2-next-inline {
    width:100%; height:54px; margin-top:8px;
    border-radius:14px;
    background:#DCDCE2; color:#ffffff;
    border:0; cursor:default;
    font-size:15px; font-weight:700; line-height:1;
    transition:0.18s ease-in-out;
    font-family:inherit;
    pointer-events:none;
}
.sn2-next-inline.active {
    background:#01466F; cursor:pointer; pointer-events:auto;
}
.sn2-next-inline.active:hover { background:#043554; }

/* === send-3.js / send-nft-2.js === */
.sn3-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.snft2-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.sn3-wrap { padding:0 26px; max-width:560px; margin:0 auto; }

.sn3-receipt {
    position:relative; background:#ffffff; border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06); margin-bottom:14px; padding:20px 22px 30px;
    color:#1c1c1e;
}
.sn3-receipt::before {
    content:''; position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.sn3-rcpt-label { font-size:10px; font-weight:700; color:#3a4a5c; text-transform:uppercase; letter-spacing:0.7px; margin-bottom:6px; }

.sn3-person { display:flex; align-items:center; gap:12px; }
.sn3-avatar {
    width:42px; height:42px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px; font-weight:700; letter-spacing:-0.3px;
    box-sizing:border-box; flex-shrink:0;
}
.sn3-person-id { min-width:0; flex:1; }
.sn3-person-line { display:flex; align-items:baseline; gap:4px; line-height:1.3; }
.sn3-nick { font-size:15px; font-weight:700; color:#1c1c1e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sn3-tag { font-size:13px; font-weight:500; color:#7d7d80; flex-shrink:0; }
.sn3-addr { margin-top:2px; min-width:0; font-size:12px; color:#3a4a5c; font-variant-numeric:tabular-nums; }

.sn3-arrow-row { display:flex; justify-content:center; align-items:center; padding:12px 0; }
.sn3-arrow { color:#b0b4ba; font-size:16px; line-height:1; display:inline-flex; align-items:center; justify-content:center; }

.sn3-amount-block { text-align:center; margin-top:36px; }
.sn3-amount-val { line-height:1.1; font-variant-numeric:tabular-nums; }
.sn3-amount-int { font-size:24px; font-weight:500; color:#1c1c1e; letter-spacing:-0.8px; line-height:1.1; }
.sn3-amount-dec { font-size:20px; font-weight:400; color:#1c1c1e; opacity:.55; letter-spacing:-0.3px; }
.sn3-amount-sym { font-size:14px; font-weight:600; color:#1c1c1e; opacity:.7; margin-left:6px; }
.sn3-nft-thumb { width:128px; height:128px; border-radius:20px; margin:0 auto 13px; background:#f0f0f3; overflow:hidden; display:flex; align-items:center; justify-content:center; color:#b0b3b8; font-size:46px; }
.sn3-nft-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.sn3-nft-name { font-size:22px; font-weight:600; color:#1c1c1e; letter-spacing:-0.4px; line-height:1.25; word-break:break-word; }
.sn3-nft-uuid { font-size:12px; color:#7d7d80; margin-top:8px; font-variant-numeric:tabular-nums; word-break:break-all; line-height:1.4; }
.sn3-nft-kind { display:inline-block; margin-top:13px; padding:4px 12px; border-radius:999px; font-size:11px; font-weight:700; }
.sn3-nft-kind-official { background:rgba(1,70,111,0.08); color:#01466F; }
.sn3-nft-kind-custom { background:#f0f0f3; color:#3a4a5c; }

.sn3-memo-card {
    position:relative; background:#ffffff; border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06); margin-bottom:14px; padding:16px 22px;
    color:#1c1c1e;
}
.sn3-memo-card::before {
    content:''; position:absolute; inset:0; border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
}
.sn3-memo-text { font-size:14px; color:#1c1c1e; line-height:1.5; word-break:break-word; }

.sn3-warn { padding:14px 8px 4px; text-align:center; font-size:12px; color:#ad3b48; font-weight:500; line-height:1.4; }
.sn3-warn i { margin-right:5px; }
.sn3-confirm-btn {
    width:100%; height:58px; margin-top:10px; border-radius:14px;
    background:#01466F; color:#ffffff; border:0; cursor:pointer; font-family:inherit;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    gap:2px; transition:0.18s ease-in-out;
}
.sn3-confirm-btn:hover { background:#043554; }
.sn3-confirm-main { font-size:15px; font-weight:700; line-height:1.3; }
.sn3-confirm-fee  { font-size:11px; opacity:0.85; line-height:1.3; }

/* === send-stepper.js === */
.snst-wrap {
    display:flex;
    align-items:flex-start;
    padding:32px 0;
    width:80%;
    max-width:480px;
    margin:0 auto;
    background:transparent;
}
.snst-item {
    flex:1 1 0;
    display:flex; flex-direction:column;
    align-items:center;
    min-width:0;
}
.snst-conn {
    display:flex; align-items:center;
    width:100%;
    height:32px;
}
.snst-line {
    flex:1; height:2px;
    background:#e3e8ef;
    border-radius:1px;
    transition:0.2s ease-in-out;
}
.snst-line-past { background:#01466F; }
.snst-line-hidden { visibility:hidden; }

.snst-circle {
    width:32px; height:32px;
    border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-weight:700; box-sizing:border-box;
    font-variant-numeric:tabular-nums;
    line-height:1;
    margin:0 6px;
    flex-shrink:0;
    font-size:13px;
    transition:0.2s ease-in-out;
}

.snst-circle > span {
    display:inline-flex; align-items:center; justify-content:center;
    line-height:1;
    padding-top:2px;
}
.snst-circle > i {
    display:inline-flex; align-items:center; justify-content:center;
    line-height:1;
}
.snst-future {
    background:#ffffff;
    border:1.5px solid #d8d8de;
    color:#9a9aa0;
}
.snst-past {
    background:#01466F;
    color:#ffffff;
}
.snst-current {
    background:#01466F;
    color:#ffffff;
    box-shadow:0 4px 10px rgba(1, 70, 111, 0.28);
}

.snst-nft {
    background:linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%);
    color:#ffffff;
    box-shadow:0 4px 10px rgba(255,107,91,0.30);
}
.snst-label {
    margin-top:10px;
    font-size:11px; line-height:1.25;
    color:#9a9aa0;

    white-space:normal;
    font-weight:500;
    letter-spacing:0.1px;
    text-align:center;
    padding:0 2px;
}
.snst-label-current {
    color:#01466F;
    font-weight:700;
}

.snst-uuid {
    display:block;
    margin-top:4px;
    max-width:100%;
    font-size:11px; font-weight:600;
    color:#8a6d72;
    font-variant-numeric:tabular-nums;
    letter-spacing:0.2px;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    text-align:center;
}

/* === send.js === */
.snd-root { background:#f4f4f4; min-height:100vh; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.snd-list-spin { width:18px; height:18px; border-width:2px; }
.snd-wrap { padding:0 26px; max-width:560px; margin:0 auto; }

.snd-card {
    position:relative;
    background:#ffffff;
    border-radius:16px;
    box-shadow:0 1px 4px rgba(0,0,0,0.06);
    padding:18px 18px;
    margin-bottom:14px;
    color:#1c1c1e;
}
.snd-card::before {

    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #1f6b96 0%, #8678a9 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
}

.send-qr-scan-btn {
    position:relative;
    width:100%;
    background:#ffffff;
    color:#1c1c1e;
    border:0; border-radius:12px;
    padding:13px 14px;
    display:flex; align-items:center; justify-content:center; gap:10px;
    font-size:15px; font-weight:600; line-height:1.35;
    cursor:pointer; font-family:inherit;
    box-shadow:0 2px 8px rgba(0, 0, 0, 0.06);
    transition:0.2s ease-in-out;
}
.send-qr-scan-btn::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #1f6b96 0%, #8678a9 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
}
.send-qr-scan-btn i { font-size:17px;
    background-image:linear-gradient(135deg, #6f5b98 0%, #c06c84 100%);
    -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent;
}
.send-nfc-scan-btn { margin-top:8px; }
.send-nfc-scan-btn i { background-image:linear-gradient(135deg, #0f9b8e 0%, #3ec98a 100%); }
@media (hover: hover) and (pointer: fine) {
    .send-qr-scan-btn:hover {
        background:#f6f8fb;
        transform:translateY(-1px);
        box-shadow:0 5px 14px rgba(0, 0, 0, 0.10);
    }
}

.snd-input-wrap {
    position:relative;
    display:flex; align-items:center; gap:8px;
    background:#f7f7f9;
    border-radius:10px;
    padding:11px 14px;
    margin-top:12px;
    transition:0.2s ease-in-out;
}
.snd-input-wrap::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #d8d8de 0%, #c8c8cd 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
    transition:0.2s ease-in-out;
}
.snd-input-wrap:focus-within {
    background:#ffffff;
    box-shadow:0 0 0 3px rgba(1,70,111,0.10);
}
.snd-input-wrap:focus-within::before {
    background:var(--grad-navy);
    padding:1.5px;
}
.snd-input {
    flex:1 1 auto; min-width:0;
    border:0; background:transparent; outline:none;
    font-size:14px; color:#1c1c1e;
    font-family:inherit;
}
.snd-input::placeholder { color:#aaa; }
.snd-input-search {
    flex:0 0 auto;
    background:transparent; border:0; cursor:pointer;
    color:#01466F; font-size:16px;
    padding:4px 6px; line-height:1;
    display:inline-flex; align-items:center; justify-content:center;
    transition:0.15s ease-in-out;
}
.snd-input-search:hover { color:#043554; transform:scale(1.08); }

.snd-tabs {
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:6px;
    margin-bottom:14px;
}
.snd-tab {
    position:relative;
    appearance:none; border:0;
    background:#ffffff; color:#01466F;
    font-size:12px; font-weight:600; line-height:1.25;
    padding:9px 6px; border-radius:10px;
    cursor:pointer; font-family:inherit;
    white-space:normal;
    display:inline-flex; align-items:center; justify-content:center;
    text-align:center;
    min-height:42px;
    transition:0.15s ease-in-out;
}

.snd-tab::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:var(--grad-navy);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
    transition:0.15s ease-in-out;
}
.snd-tab-active {
    background:#01466F; color:#ffffff;
    box-shadow:0 3px 8px rgba(1, 70, 111, 0.25);
}
.snd-tab-active::before { padding:0; background:transparent; }

@media (hover: hover) and (pointer: fine) {

    .snd-tab:not(.snd-tab-active):hover {
        background:#f0f4f8;
        transform:translateY(-1px);
        box-shadow:0 3px 8px rgba(1, 70, 111, 0.10);
    }

    .snd-tab-active:hover {
        background:#043554;
        transform:translateY(-1px);
        box-shadow:0 5px 12px rgba(1, 70, 111, 0.35);
    }
}

.snd-refresh-bar { display:flex; justify-content:flex-end; gap:14px; margin-bottom:8px; }
.snd-refresh-btn { appearance:none; border:0; background:transparent; color:#7d7d80;
    display:inline-flex; align-items:center; gap:5px; padding:4px 6px; cursor:pointer;
    font-family:inherit; font-size:12px; font-weight:600; line-height:1; transition:color .15s ease; }
.snd-refresh-btn i { font-size:12px; }
@media (hover:hover) and (pointer:fine) { .snd-refresh-btn:hover { color:#1c1c1e; } }
.snd-refresh-btn:active { color:#1c1c1e; }

.snd-list { display:flex; flex-direction:column; gap:8px; }

.snd-list:not(:empty) {
    max-height:34vh; overflow-y:auto; -webkit-overflow-scrolling:touch;
    background:#eceef2; border:1px solid #cfd3da; border-radius:14px; padding:8px;
    box-shadow:inset 0 1px 3px rgba(0,0,0,0.08);
    scrollbar-width:thin; scrollbar-color:#9aa2ae #dfe2e8;
}
.snd-list::-webkit-scrollbar { width:10px; -webkit-appearance:none; }
.snd-list:not(:empty)::-webkit-scrollbar-track { background:#dfe2e8; border-radius:5px; margin:6px 0; }
.snd-list::-webkit-scrollbar-thumb { background:#9aa2ae; border-radius:5px; border:2px solid #eceef2; min-height:30px; }
.snd-list:not(:empty):hover::-webkit-scrollbar-thumb { background:#7d8694; }
.snd-list-load { display:flex; justify-content:center; padding:28px 0; }
.snd-msg {
    text-align:center; padding:24px 16px;
    font-size:13px; color:#7d7d80; line-height:1.5;
}

.snd-msg:empty { padding:0; }
.send-acc-card {
    position:relative;
    appearance:none; border:0;
    width:100%;
    background:#ffffff;
    border-radius:14px;
    padding:14px 16px;
    display:flex; align-items:center; gap:14px;
    cursor:pointer; font-family:inherit;
    box-shadow:0 1px 3px rgba(0,0,0,0.05);
    transition:0.2s ease-in-out;
    text-align:left;
}
.send-acc-card::before {
    content:''; position:absolute; inset:0;
    border-radius:inherit; padding:1px;
    background:linear-gradient(135deg, #d8d8de 0%, #c8c8cd 100%);
    -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite:xor; mask-composite:exclude;
    pointer-events:none;
    transition:0.2s ease-in-out;
}

@media (hover: hover) and (pointer: fine) {
    .send-acc-card:hover {
        transform:translateY(-1px);
        box-shadow:0 4px 12px rgba(0,0,0,0.08);
    }
    .send-acc-card:hover::before {
        background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%);
    }
}
.send-acc-card-selected {
    background:#fff5f3;
}
.send-acc-card-selected::before {
    background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%) !important;
    padding:1.5px !important;
}
.send-acc-card-selected .send-acc-check {
    background:linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%);
}
.send-acc-avatar {
    width:44px; height:44px; border-radius:50%;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px; font-weight:700; letter-spacing:-0.3px;
    box-sizing:border-box; flex-shrink:0;
}
.send-acc-id { flex:1; min-width:0; }
.send-acc-line {
    display:flex; align-items:baseline; gap:4px;
    line-height:1.3;
}
.send-acc-nick {
    font-size:15px; font-weight:700; color:#1c1c1e;
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
}
.send-acc-tag {
    font-size:13px; font-weight:500; color:#7d7d80;
    flex-shrink:0;
}
.send-acc-addr {
    font-size:11px; color:#7d7d80; margin-top:2px;
    font-variant-numeric:tabular-nums;
}
.send-acc-check {
    flex-shrink:0;
    width:28px; height:28px; border-radius:50%;
    background:#01466F; color:#ffffff;
    display:inline-flex; align-items:center; justify-content:center;
    font-size:11px;
    opacity:0; transform:scale(0.7);
    transition:0.18s ease-in-out;
}
.send-acc-card-selected .send-acc-check {
    opacity:1; transform:scale(1);
}

.snd-next {
    width:100%; height:54px; margin-top:18px;
    border-radius:14px;
    background:#DCDCE2; color:#ffffff;
    border:0; cursor:default;
    font-size:15px; font-weight:700; line-height:1;
    transition:0.18s ease-in-out;
    font-family:inherit;
    pointer-events:none;
}
.snd-next.active {
    background:#01466F; cursor:pointer; pointer-events:auto;
}
.snd-next.active:hover { background:#043554; }

.send-scan-overlay {
    position:fixed; inset:0; background:#000;
    z-index:1600;
    display:flex; flex-direction:column;
    animation:send-scan-fade 0.18s ease-out;
}
@keyframes send-scan-fade { from { opacity:0; } to { opacity:1; } }
.send-scan-head {
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 18px 14px; color:#ffffff;
}
.send-scan-head-title { font-size:16px; font-weight:700; line-height:1; }
.send-scan-head-close {
    background:rgba(255,255,255,0.16);
    border:0; width:36px; height:36px; border-radius:50%;
    color:#ffffff; font-size:14px; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center;
}
#send-scan-reader { flex:1; min-height:0; overflow:hidden; background:#000; }
#send-scan-reader video { width:100% !important; height:100% !important; object-fit:cover; }
.send-scan-hint {
    color:rgba(255,255,255,0.85); text-align:center;
    padding:18px 24px 30px; font-size:13px; line-height:1.5;
}

/* ===================== #fd (Feed sub view) ===================== */
                #fd .fd-root { background:#f4f4f4; min-height:100%; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
                #fd .fd-sentinel { height:1px; }
                #fd .fd-loading-spin { width:18px; height:18px; border-width:2px; }
                #fd .fd-top { background:#fff; box-shadow:0 8px 14px -6px rgba(0,0,0,0.10); padding:32px clamp(14px,3.5vw,28px) 20px; position:relative; z-index:0; }
                #fd .fd-hero { display:flex; align-items:center; gap:16px; }
                #fd .fd-avatar { width:72px; height:72px; flex-shrink:0; display:flex; align-items:center; justify-content:center; }
                #fd .fd-avatar.fd-avatar-img { width:96px; height:96px; }
                #fd .fd-avatar img { width:100%; height:100%; object-fit:contain; display:block; }
                #fd .fd-id { flex:1; min-width:0; }
                #fd .fd-name { display:flex; align-items:baseline; gap:6px; color:#1c1c1e; letter-spacing:-0.3px; min-width:0; }
                #fd .fd-name [data-view=nickname] { font-size:20px; font-weight:700; line-height:1.15; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
                #fd .fd-tag { font-size:14px; font-weight:600; color:#7d7d80; font-variant-numeric:tabular-nums; flex-shrink:0; line-height:1.15; }
                #fd .fd-upd { font-size:11px; color:#7d7d80; margin-top:8px; display:flex; align-items:center; gap:5px; font-variant-numeric:tabular-nums; }
                #fd .fd-upd i { font-size:10px; opacity:.7; }
                #fd .fd-addr-pill { display:inline-flex; align-items:center; gap:8px; margin-top:8px; max-width:100%; color:#1c1c1e; font-size:12px; font-weight:500; }
                #fd .fd-addr-pill .wp-addr { font-variant-numeric:tabular-nums; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; cursor:pointer; }
                #fd .fd-addr-copy { flex-shrink:0; width:24px; height:24px; border-radius:50%; background:#f4f4f4; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; color:#7d7d80; transition:background .15s ease; }
                #fd .fd-addr-copy.hover, #fd .fd-addr-copy:hover { background:#e7e7eb; }
                #fd .fd-addr-copy i { font-size:10px; }
                #fd .fd-actions { display:flex; gap:8px; justify-content:flex-end; margin-top:18px; flex-wrap:wrap; }
                #fd .fd-gcirc { width:36px; height:36px; border-radius:50%; background:#fff; border:none; position:relative; color:#1c1c1e; font-size:13px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease; }
                #fd .fd-gcirc.hover, #fd .fd-gcirc:hover { background:#f4f4f4; }
                #fd .fd-gcirc:active { background:#e7e7eb; }
                #fd .fd-gcirc::before, #fd .fd-chip::before {
                    content:''; position:absolute; inset:0; border-radius:inherit; padding:1px;
                    background:var(--grad-navy);
                    -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
                    -webkit-mask-composite:xor; mask-composite:exclude; pointer-events:none;
                }
                #fd .fd-body { background:#f4f4f4; padding-top:14px; min-height:60vh; }
                #fd .fd-tabs { display:flex; gap:7px; overflow-x:auto; padding:0 clamp(14px,3.5vw,28px) 12px; }
                #fd .fd-chip { position:relative; flex:0 0 auto; white-space:nowrap; height:32px; padding:0 14px; border-radius:16px; background:#fff; border:none; color:#3a4a5c; font-size:12px; font-weight:600; line-height:1; cursor:pointer; display:inline-flex; align-items:center; box-shadow:0 1px 2px rgba(0,0,0,0.04); transition:background .15s ease, color .15s ease; }
                #fd .fd-chip-on { background:#01466F; color:#fff; }
                #fd .fd-chip-on::before { padding:0; background:transparent; }
                #fd .fd-chip:not(.fd-chip-on).hover, #fd .fd-chip:not(.fd-chip-on):hover { background:#f4f4f4; }
                #fd .fd-feed { display:flex; flex-direction:column; gap:10px; padding:0 clamp(14px,3.5vw,28px) 16px; }
                #fd .fd-card { background:#fff; border:1px solid #e7e7eb; border-radius:14px; overflow:hidden; cursor:pointer; transition:background .15s ease, border-color .15s ease, box-shadow .15s ease; box-shadow:0 1px 2px rgba(0,0,0,0.03); }
                #fd .fd-card.hover, #fd .fd-card:hover { background:#fafbfc; border-color:#cdd3da; box-shadow:0 4px 14px rgba(0,0,0,0.06); }
                #fd .fd-card-hero { position:relative; aspect-ratio:16/10; background:#fff; overflow:hidden; }
                #fd .fd-card-hero img, #fd .fd-card-hero video { width:100%; height:100%; object-fit:cover; display:block; }
                #fd .fd-card-hero-file { background:linear-gradient(135deg,#f8fafc 0%,#eef2f7 100%); }
                #fd .fd-card-hero .fd-card-hero-icon { width:42%; height:42%; max-width:120px; max-height:120px; object-fit:contain; position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); opacity:.85; }
                #fd .fd-card-badge { position:absolute; top:12px; left:12px; padding:3px 9px; border-radius:10px; background:rgba(0,0,0,0.45); color:#fff; font-size:10px; font-weight:600; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
                #fd .fd-card-body { padding:13px 16px 16px; }
                #fd .fd-card-title { font-size:16px; font-weight:700; margin-top:4px; letter-spacing:-0.2px; color:#1c1c1e; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
                #fd .fd-card-excerpt { font-size:13px; color:#555; margin-top:6px; line-height:1.55; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; word-break:break-word; }
                #fd .fd-card-footer { display:flex; gap:12px; align-items:center; margin-top:11px; font-size:12px; color:#7d7d80; }
                #fd .fd-card-footer i { opacity:.6; margin-right:4px; }
                #fd .fd-card-footer .fd-open { display:inline-flex; align-items:center; margin-left:auto; color:#01466F; font-weight:600; }
                #fd .fd-card-footer .fd-open i { opacity:1; margin:0 0 0 5px; font-size:13px; }
                #fd .fd-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:56px 16px; }
                #fd .fd-empty-ic { font-size:40px; color:#cdd3da; }
                #fd .fd-empty-txt { font-size:13px; color:#7d7d80; }

/* === ticket-status.js === */
#tkst { background:#f4f4f4; min-height:100%; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
.th-loading-wrap { display:flex; justify-content:center; padding:28px 0; }
.th-loading-spin { width:18px; height:18px; border-width:2px; }

/* ============ .th-* (Ticket history / status — shared) ============ */
                .th-pad { padding:18px clamp(14px,4vw,24px) 88px; }
                .th-topbar { margin-bottom:12px; }
                .th-note { display:flex; align-items:flex-start; gap:8px; padding:11px 13px; border-radius:10px; background:rgba(255,107,91,0.06); border:1px solid rgba(255,107,91,0.18); color:#ad3b48; font-size:12px; font-weight:500; line-height:1.5; }
                .th-note i { font-size:12px; margin-top:1px; flex-shrink:0; }
                .th-refresh-bar { display:flex; justify-content:flex-end; margin-bottom:12px; }
                .th-refresh { display:inline-flex; align-items:center; gap:5px; background:transparent; border:0; padding:4px 4px; cursor:pointer; color:#7d7d80; font-family:inherit; font-size:12px; font-weight:600; line-height:1; transition:color .15s ease; }
                .th-refresh i { font-size:12px; }
                .th-refresh.hover, .th-refresh:hover, .th-refresh:active { color:#1c1c1e; }
                .th-list { display:flex; flex-direction:column; gap:12px; }
                .th-card { background:linear-gradient(#fff,#fff) padding-box,linear-gradient(135deg,#7d83ff 0%,#ff6b5b 100%) border-box; border:1.5px solid transparent; border-radius:14px; padding:16px; }
                .th-head { display:flex; align-items:center; gap:12px; padding-bottom:12px; border-bottom:1px solid #d9dce2; }
                .th-thumb { width:48px; height:48px; flex-shrink:0; border-radius:10px; overflow:hidden; background:transparent; display:flex; align-items:center; justify-content:center; }
                .th-thumb img { width:100%; height:100%; object-fit:contain; }
                .th-thumb i { color:#cdd3da; font-size:20px; }
                .th-meta { flex:1; min-width:0; }
                .th-name { font-size:14px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
                .th-price { font-size:13px; color:#01466F; font-weight:700; margin-top:3px; font-variant-numeric:tabular-nums; }
                .th-status { display:inline-flex; align-items:center; gap:5px; padding:6px 11px; border-radius:12px; font-size:12px; font-weight:700; flex-shrink:0; line-height:1; }
                .th-status i { font-size:11px; }
                .th-status .th-spin { width:11px; height:11px; border-width:1.5px; vertical-align:middle; }
                .th-status-ok { background:rgba(25,135,84,0.10); color:#198754; }
                .th-status-bad { background:rgba(173,59,72,0.10); color:#ad3b48; }
                .th-status-wait { background:rgba(1,70,111,0.08); color:#01466F; }
                .th-rows { padding-top:6px; }
                .th-tx { padding:11px 0; border-bottom:1px solid #d9dce2; }
                .th-tx-head { display:flex; align-items:center; justify-content:space-between; gap:8px; }
                .th-tx-label { display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:700; line-height:1.3; }
                .th-tx-label i { font-size:11px; }
                .th-tx-neutral { color:#3a4a5c; }
                .th-tx-ok { color:#198754; }
                .th-tx-bad { color:#ad3b48; }
                .th-explorer { flex-shrink:0; display:inline-flex; align-items:center; gap:5px; background:transparent; border:0; padding:2px 2px; cursor:pointer; color:#01466F; font-family:inherit; font-size:12px; font-weight:600; line-height:1.3; white-space:nowrap; }
                .th-explorer i { font-size:11px; }
                .th-explorer.hover, .th-explorer:hover { color:#043554; }
                .th-hash-row { display:flex; align-items:center; gap:8px; margin-top:5px; }
                .th-hash { flex:1; min-width:0; text-align:right; color:#1c1c1e; font-size:12px; font-weight:500; font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; letter-spacing:-0.2px; line-height:1.5; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
                .th-row { display:flex; align-items:center; gap:8px; padding:11px 0; border-bottom:1px solid #d9dce2; font-size:12px; }
                .th-row:last-child, .th-tx:last-child { border-bottom:none; }
                .th-row .k { color:#7d7d80; flex-shrink:0; font-size:12px; font-weight:600; }
                .th-row .v { color:#1c1c1e; font-weight:500; flex:1; min-width:0; display:flex; align-items:baseline; justify-content:flex-end; font-variant-numeric:tabular-nums; font-size:12px; }
                .th-ts { color:#7d7d80; font-weight:600; }
                .th-row-icon { flex-shrink:0; width:24px; height:24px; border-radius:50%; background:#f4f4f4; border:none; color:#7d7d80; font-size:10px; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; transition:background .15s ease, color .15s ease; }
                .th-row-icon.hover, .th-row-icon:hover { background:#e7e7eb; color:#1c1c1e; }
                .th-action { width:100%; height:48px; margin-top:14px; border:none; border-radius:12px; background:#01466F; color:#fff; font-size:14px; font-weight:700; line-height:1; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:7px; transition:background .15s ease; }
                .th-action i { font-size:12px; }
                .th-action.hover, .th-action:hover { background:#022D4A; }
                .th-empty { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; padding:60px 16px; border-radius:14px; background:#fff; border:1px dashed #e7e7eb; color:#7d7d80; font-size:13px; font-weight:500; text-align:center; }
                .th-empty i { font-size:30px; color:#cdd3da; }`;

/* === purchase-history.js === */
#ph { background:#f4f4f4; min-height:100%; padding-bottom:calc(88px + env(safe-area-inset-bottom)); }

/* ---- #ph-only additional rules (migrated from sub/purchase-history.js inline) ---- */
                    #ph .th-thumb i { color:#01466F; }
                    #ph .ph-terms { display:flex; align-items:center; gap:10px; width:100%; padding:11px 12px; margin-bottom:12px; border-radius:10px; background:#fff; border:1px solid #e7e7eb; cursor:pointer; text-align:left; transition:background .15s ease, border-color .15s ease; }
                    #ph .ph-terms.hover, #ph .ph-terms:hover { background:#f9fafb; border-color:#cdd3da; }
                    #ph .ph-terms > i { color:#01466F; font-size:14px; flex-shrink:0; opacity:.85; }
                    #ph .ph-terms-text { flex:1; min-width:0; color:#1c1c1e; font-size:12px; font-weight:700; letter-spacing:-0.1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
                    #ph .ph-terms-action { display:inline-flex; align-items:center; gap:4px; color:#01466F; font-size:12px; font-weight:700; flex-shrink:0; }
                    #ph .ph-terms-action i { font-size:10px; }
                    #ph .ph-more { display:flex; align-items:center; justify-content:center; gap:8px; margin-top:14px; padding:13px; border-radius:12px; background:#fff; border:1px solid #e7e7eb; color:#01466F; font-size:13px; font-weight:700; cursor:pointer; transition:background .15s ease, color .15s ease; }
                    #ph .ph-more.hover, #ph .ph-more:hover { background:#f4f4f4; border-color:#cdd3da; }

/* === sub.js (frame) === */
.col-auto.sub-close-pad { padding-left:20px; padding-right:6px; }
.col-auto.title-wrap-pad { padding-left:8px; padding-right:4px; }
.footer.sub-footer { border-top:1px solid #cdd3da !important; box-shadow:none !important; }
