/* === activity.js === */
#activity .tx-card {
    margin: 0 24px;
    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%) border-box;
    border: 1.5px solid transparent;
    border-radius: 14px;
    overflow: hidden;
}
#activity .act-chips { display:flex; flex-wrap:wrap; align-items:center; gap:14px 7px; padding:24px 24px 18px 24px; }
#activity .act-chips-filters { display:flex; gap:7px; flex-shrink:0; }
#activity .act-chip { 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; }
#activity .act-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; }
#activity .act-chip.active { background:#01466F; color:#fff; }
#activity .act-chip.active::before { padding:0; background:transparent; }
#activity .act-chip:not(.active).hover, #activity .act-chip:not(.active):hover { background:#f4f4f4; }
#activity .act-chip.active.hover, #activity .act-chip.active:hover { background:#022D4A; }
#activity .tx-explorer-link { margin-left:auto; flex:0 0 auto; white-space:nowrap; display:inline-flex; align-items:center; gap:5px; font-size:12px; font-weight:600; color:#01466F; cursor:pointer; text-decoration:none; line-height:1; }
#activity .tx-explorer-link i { font-size:11px; }
#activity .act-refresh-row { display:flex; justify-content:flex-end; padding:0 24px 12px 24px; }
#activity .act-refresh { 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; }
#activity .act-refresh i { font-size:12px; }
#activity .act-refresh.hover, #activity .act-refresh:hover, #activity .act-refresh:active { color:#1c1c1e; }
#activity .tx-show-more {
    display: flex; align-items: center; justify-content: center;
    gap: 6px; padding: 16px; cursor: pointer;
    font-size: 12px; color: #01466F; font-weight: 600;
    border-top: 1px solid #e7e7eb;
    transition: 0.2s ease-in-out;
}
#activity .tx-show-more.hover { background:#f4f4f4; color:#022D4A; }
@media (hover: hover) and (pointer: fine) {
    #activity .tx-show-more:hover { background:#f4f4f4; color:#022D4A; }
}

#activity .tx-row { transition: 0.2s ease-in-out; }
#activity .tx-row.hover { background:rgba(0,0,0,0.04); }
@media (hover: hover) and (pointer: fine) {
    #activity .tx-row:hover { background:rgba(0,0,0,0.04); }
}

#activity .act-copy {
    flex:0 0 auto; width:22px; height:22px; border-radius:50%;
    background:#f4f4f4; display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; color:#7d7d80; transition:background .15s ease, color .15s ease;
}
#activity .act-copy i { font-size:10px; }
#activity .act-copy.hover, #activity .act-copy:active,
#activity .act-addr.hover .act-copy, #activity .act-addr:active .act-copy { background:#e7e7eb; color:#1c1c1e; }
@media (hover: hover) and (pointer: fine) {
    #activity .act-copy:hover, #activity .act-addr:hover .act-copy { background:#e7e7eb; color:#1c1c1e; }
}
#activity .tx-loading {
    display: flex; align-items: center; justify-content: center;
    padding: 16px;
}

/* inline → class */
#activity { background:#f4f4f4; min-height:100vh; padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
#activity .tx-nolog { padding:40px 24px; text-align:center; color:#7d7d80; font-size:13px; }
#activity .tx-load-spin { width:18px; height:18px; border-width:2px; }
#activity .tx-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"icon mid amt" ". party party" ". addr addr"; align-items:center; padding:14px 16px; column-gap:11px; cursor:pointer; }
#activity .tx-icon { grid-area:icon; width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; align-self:start; margin-top:2px; }
#activity .tx-icon i { font-size:13px; }
#activity .tx-mid { grid-area:mid; min-width:0; align-self:start; }
#activity .tx-typerow { display:flex; align-items:center; gap:8px; }
#activity .tx-type { font-size:13px; font-weight:600; letter-spacing:-0.2px; color:#1c1c1e; }
#activity .tx-date { font-size:11px; color:#7d7d80; margin-top:4px; font-variant-numeric:tabular-nums; }
#activity .act-party { grid-area:party; margin-top:7px; display:flex; align-items:center; gap:6px; min-width:0; }
#activity .act-dir { font-size:11.5px; font-weight:700; color:#1c1c1e; flex:0 0 auto; }
#activity .act-nick { font-size:11.5px; font-weight:500; color:#1c1c1e; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#activity .act-ptag { font-size:11px; font-weight:500; color:#a0a0a5; flex:0 0 auto; }
#activity .act-addr { grid-area:addr; margin-top:2px; font-size:11px; display:flex; align-items:center; gap:5px; min-width:0; }
#activity .act-addr .wp-addr { flex:0 1 auto; min-width:0; color:#1c1c1e; font-weight:500; cursor:pointer; }
#activity .tx-amtcol { grid-area:amt; display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:6px; align-self:center; }
#activity .tx-amt { font-size:14px; font-weight:500; letter-spacing:-0.3px; white-space:nowrap; }
#activity .tx-detail { cursor:pointer; font-size:11px; color:#01466F; font-weight:600; white-space:nowrap; }
#activity .tx-detail i { font-size:10px; }
#activity .tx-state-ok { font-size:11px; color:#198754; font-weight:600; }
#activity .tx-state-spin { width:11px; height:11px; border-width:1.5px; color:#0d6efd; }
#activity .tx-state-pending { font-size:11px; color:#0d6efd; font-weight:600; }
#activity .tx-state-fail { font-size:11px; color:#dc3545; font-weight:700; }

#activity .tx-skel { pointer-events:none; }
#activity .tx-skel + .tx-skel { border-top:1px solid #d9dce2; }
#activity .tx-skel-line { border-radius:6px; }
#activity .tx-skel-type { width:84px; height:14px; }
#activity .tx-skel-date { width:118px; height:11px; margin-top:6px; }
#activity .tx-skel-amt { width:62px; height:14px; }
#activity .tx-skel-detail { width:38px; height:11px; }

/* === endpoint-sheet.js === */
#eps { padding:6px 6px 4px; }
#eps .eps-title { font-size:16px; font-weight:700; color:#1c1c1e; text-align:center; letter-spacing:-0.3px; padding:6px 16px 4px; }
#eps .eps-sub { font-size:11.5px; color:#7d7d80; text-align:center; line-height:1.45; padding:0 18px 14px; word-break:keep-all; }
#eps .eps-field { padding:0 4px; }
#eps .eps-sel-wrap { position:relative; }
#eps .eps-sel { width:100%; height:50px; border:1.5px solid #e7e7eb; border-radius:12px; background:#f7f8fa; background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 16 16' fill='none' stroke='%237d7d80' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='4 6 8 10 12 6'/></svg>"); background-repeat:no-repeat; background-position:right 16px center; padding:0 40px 0 14px; font-size:14px; font-weight:600; color:#1c1c1e; font-family:inherit; appearance:none; -webkit-appearance:none; cursor:pointer; outline:none; }
#eps .eps-sel:focus { border-color:#01466F; }
#eps .eps-custom { margin-top:10px; }
#eps .eps-custom.hide { display:none; }
#eps .eps-input { width:100%; height:48px; border:1.5px solid #e7e7eb; border-radius:12px; background:#f7f8fa; padding:0 14px; font-size:13px; color:#1c1c1e; font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace; outline:none; transition:border-color .15s ease, background .15s ease; }
#eps .eps-input:focus { border-color:#01466F; background:#fff; }
#eps .eps-hint { font-size:11px; color:#ad3b48; line-height:1.45; margin:8px 4px 0; word-break:keep-all; display:flex; gap:6px; }
#eps .eps-hint i { margin-top:1px; flex-shrink:0; }
#eps .eps-msg { font-size:12px; font-weight:600; color:#198754; text-align:center; margin-top:10px; min-height:0; opacity:0; transition:opacity .2s ease; }
#eps .eps-msg.eps-msg-show { opacity:1; min-height:16px; }
#eps .eps-msg.eps-msg-bad { color:#ad3b48; }
#eps .eps-apply { width:100%; height:50px; margin-top:16px; border-radius:14px; background:#01466F; color:#fff; border:none; font-size:15px; font-weight:700; cursor:pointer; opacity:0.45; transition:background .15s ease, opacity .15s ease; }
#eps .eps-apply.eps-apply-on { opacity:1; }
#eps .eps-apply.eps-apply-on.hover, #eps .eps-apply.eps-apply-on:hover { background:#022D4A; }

/* === setting.js === */
#setting { background:#f4f4f6; min-height:100%; }
#setting .set-pad { padding:18px clamp(14px,4vw,20px) calc(108px + env(safe-area-inset-bottom,0px)); max-width:560px; margin:0 auto; }
#setting .set-sec-title { font-size:16px; font-weight:700; color:#1c1c1e; letter-spacing:-0.2px; padding:18px 6px 8px; }
#setting .set-sec-head { display:flex; align-items:center; }
#setting .set-sec-head .set-sec-title { flex:1; min-width:0; }
#setting .set-sec-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; }
#setting .set-sec-refresh i { font-size:12px; }
#setting .set-sec-refresh.hover, #setting .set-sec-refresh:hover, #setting .set-sec-refresh:active { color:#1c1c1e; }
#setting .set-sec-ver { font-size:11px; font-weight:700; color:#ad3b48; background:rgba(173,59,72,0.10); border-radius:6px; padding:2px 7px; margin-left:8px; letter-spacing:0; vertical-align:middle; }
#setting .set-card { background:#fff; border-radius:14px; overflow:hidden; box-shadow:0 1px 2px rgba(0,0,0,0.04); }
#setting .set-row { display:flex; align-items:center; gap:12px; width:100%; padding:13px 14px; border:none; background:#fff; cursor:pointer; text-align:left; transition:background .15s ease; }
#setting .set-row + .set-row { border-top:1px solid #f0f0f3; }
#setting .set-row.hover, #setting .set-row:hover { background:#f7f8fa; }
#setting .set-row-disabled { opacity:0.45; cursor:default; }
#setting .set-row-ic { flex-shrink:0; width:30px; height:30px; border-radius:8px; background:#f4f4f6; color:#3a4a5c; display:inline-flex; align-items:center; justify-content:center; font-size:13px; }
#setting .set-ic-danger { background:rgba(173,59,72,0.10); color:#ad3b48; }
#setting .set-row-label { flex:1; min-width:0; font-size:14px; font-weight:400; color:#1c1c1e; letter-spacing:-0.2px; }
#setting .set-label-danger { color:#ad3b48; }
#setting .set-row-val { flex-shrink:0; font-size:13px; color:#7d7d80; font-weight:400; max-width:46vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#setting .set-chev { flex-shrink:0; color:#c2c5cc; font-size:14px; }
#setting .set-sw { flex-shrink:0; width:44px; height:26px; border-radius:13px; background:#d9dce2; position:relative; transition:background .2s ease; }
#setting .set-sw-knob { position:absolute; top:3px; left:3px; width:20px; height:20px; border-radius:50%; background:#fff; box-shadow:0 1px 3px rgba(0,0,0,0.25); transition:left .2s ease; }
#setting .set-sw.set-sw-on { background:#01466F; }
#setting .set-sw.set-sw-on .set-sw-knob { left:21px; }
#setting .set-info-row { display:flex; align-items:center; gap:12px; padding:12px 14px; }
#setting .set-info-row + .set-info-row { border-top:1px solid #f0f0f3; }
#setting .set-info-k { flex:1; min-width:0; font-size:14px; color:#1c1c1e; letter-spacing:-0.2px; }
#setting .set-info-v { flex-shrink:0; font-size:13px; color:#7d7d80; font-weight:400; font-variant-numeric:tabular-nums; max-width:48vw; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#setting .set-skel { display:inline-block; width:64px; height:12px; border-radius:6px; vertical-align:middle; }
#setting .set-row-val .set-skel { width:96px; }
#setting .set-lock { width:100%; height:52px; margin-top:24px; border-radius:14px; background:#01466F; color:#fff; border:none; font-size:14px; font-weight:700; cursor:pointer; transition:background .15s ease; }
#setting .set-lock.hover, #setting .set-lock:hover { background:#022D4A; }
#setting .set-foot { text-align:center; padding:22px 0 4px; }
#setting .set-foot span { font-size:10px; color:#9aa0a6; }

/* === wallet.js === */
#wallet { background:#f4f4f4; isolation:isolate; }
#wallet .wp-pad-x { padding-left:clamp(14px, 3.5vw, 28px); padding-right:clamp(14px, 3.5vw, 28px); }
#wallet .wp-banner-gap { padding-top:14px; }
#wallet .wp-banner-card-gap { padding-bottom:10px; }
#wallet .wp-buttons-bottom-gap { padding-bottom:22px; }
@media (min-width: 768px) {
    #wallet .wp-banner-gap { padding-top:28px; }
    #wallet .wp-banner-card-gap { padding-bottom:24px; }
    #wallet .wp-buttons-bottom-gap { padding-bottom:36px; }
}
#wallet .wp-act-copy {
    flex:0 0 auto; width:22px; height:22px; border-radius:50%;
    background:#f4f4f4; display:inline-flex; align-items:center; justify-content:center;
    cursor:pointer; color:#7d7d80; transition:background .15s ease, color .15s ease;
}
#wallet .wp-act-copy i { font-size:10px; }
#wallet .wp-act-copy.hover, #wallet .wp-act-copy:active,
#wallet .wp-act-addr.hover .wp-act-copy, #wallet .wp-act-addr:active .wp-act-copy { background:#e7e7eb; color:#1c1c1e; }
@media (hover: hover) and (pointer: fine) {
    #wallet .wp-act-copy:hover, #wallet .wp-act-addr:hover .wp-act-copy { background:#e7e7eb; color:#1c1c1e; }
}
#wallet .wp-sec-gray { background:#f4f4f4; position:relative; z-index:0; }
#wallet .wp-sec-white {
    background:#ffffff; position:relative; z-index:2;
    box-shadow:0 8px 14px -6px rgba(0,0,0,0.16);
}

#wallet .wallet-banner {
    border-radius:10px;
    box-shadow:0 4px 14px rgba(50,30,90,0.10);
    cursor:pointer;
}

#wallet .hero-card {
    background:linear-gradient(135deg, #1f6b96 0%, #8678a9 100%);
    color:#ffffff; border-radius:12px; padding:18px 18px 22px;
    box-shadow:0 3px 10px rgba(2,45,74,0.10);
}
#wallet .hero-card .hero-head { display:flex; align-items:center; gap:12px; }
#wallet .hero-card .hero-head-text { flex:1; min-width:0; }
#wallet .hero-card .hero-nick {
    display:flex; align-items:center; min-width:0; gap:8px;
    font-size:14px; font-weight:600; letter-spacing:-0.2px; color:#fff;
}
#wallet .hero-card .hero-nick-namebox {
    display:inline-flex; align-items:baseline; gap:4px;
    min-width:100px; max-width:100%;
    overflow:hidden;
}
#wallet .hero-card .hero-nick-namebox > [data-view=nickname] {
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap; min-width:0;
}
#wallet .hero-card .hero-nick-tag { opacity:.7; flex-shrink:0; }
#wallet .hero-imported {
    display:inline-flex; align-items:center; gap:5px;
    padding:3px 9px; border-radius:8px;
    background:rgba(173,59,72,0.12);
    color:#ad3b48;
    font-size:10px; font-weight:800; letter-spacing:0.3px;
}
#wallet .hero-imported i { font-size:9px; }
#wallet .hero-card .hero-label {
    font-size:10px; color:rgba(255,255,255,0.78);
    text-transform:uppercase; letter-spacing:0.7px; font-weight:600;
    margin-top:2px;
}
#wallet .hero-card .hero-actions { display:flex; gap:6px; flex-shrink:0; }
#wallet .hero-btn {
    width:34px; height:34px; border-radius:50%;
    background:rgba(255,255,255,0.18);
    border:1px solid rgba(255,255,255,0.28);
    color:#fff; font-size:13px; cursor:pointer;
    display:inline-flex; align-items:center; justify-content:center;
    transition:0.2s ease-in-out;
}
#wallet .hero-btn.hover { background:rgba(255,255,255,0.32); }
@media (hover: hover) and (pointer: fine) {
    #wallet .hero-btn:hover { background:rgba(255,255,255,0.32); }
}
#wallet .hero-card .hero-balance {
    margin-top:32px; margin-bottom:16px; text-align:center;
}
#wallet .hero-int { font-size:26px; font-weight:500; letter-spacing:-1.2px; line-height:1.1; }
#wallet .hero-dec { font-size:22px; font-weight:400; letter-spacing:-0.6px; opacity:.65; margin-left:4px; }
#wallet .hero-symbol { font-size:14px; font-weight:600; opacity:.85; margin-left:6px; }
#wallet .hero-int, #wallet .hero-dec, #wallet .hero-symbol,
#wallet .wp-asset-int, #wallet .wp-asset-dec, #wallet .wp-asset-sym { word-break:keep-all; }
#wallet .hero-card .hero-meta {
    display:flex; align-items:center; gap:6px;
    justify-content:center;
    margin-top:20px; font-size:11px; color:rgba(255,255,255,0.78);
}
#wallet .hero-copy {
    display:inline-flex; align-items:center; justify-content:center;
    width:22px; height:22px; border-radius:50%;
    background:rgba(255,255,255,0.16);
    color:#fff; font-size:9px; cursor:pointer;
    flex-shrink:0;
    transition:0.2s ease-in-out;
}
#wallet .hero-copy.hover { background:rgba(255,255,255,0.30); }
@media (hover: hover) and (pointer: fine) {
    #wallet .hero-copy:hover { background:rgba(255,255,255,0.30); }
}

#wallet .pill {
    display:inline-flex; align-items:center; justify-content:center; gap:6px;
    width:100%; height:48px; border-radius:24px; border:none;
    font-size:14px; font-weight:600; line-height:1; letter-spacing:-0.2px; cursor:pointer;
    transition:0.2s ease-in-out;
}
#wallet .pill span, #wallet .pill i { line-height:1; display:inline-flex; align-items:center; }
#wallet .pill-primary { background:#01466F; color:#fff; border:none; }
#wallet .pill-primary.hover { background:#022D4A; }
@media (hover: hover) and (pointer: fine) {
    #wallet .pill-primary:hover { background:#022D4A; }
}
#wallet .pill-grad-border {
    position:relative;
    background:#ffffff;
    color:#1c1c1e;
    border:none;
}
#wallet .pill-grad-border::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;
}
#wallet .pill-grad-border.hover { background:#043554; color:#ffffff; }
@media (hover: hover) and (pointer: fine) {
    #wallet .pill-grad-border:hover { background:#043554; color:#ffffff; }
}

#wallet .grad-card-assets {
    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(135deg, #01466F 0%, #8a6a2c 100%) border-box;
    border:1.5px solid transparent;
    border-radius:14px; overflow:hidden;
}
#wallet .grad-card-activity {
    background:
        linear-gradient(#ffffff, #ffffff) padding-box,
        linear-gradient(135deg, #7d83ff 0%, #ff6b5b 100%) border-box;
    border:1.5px solid transparent;
    border-radius:14px; overflow:hidden;
}
#wallet .wp-activity-row { transition:0.2s ease-in-out; }
#wallet .wp-activity-row.hover { background:rgba(0,0,0,0.04); }
@media (hover: hover) and (pointer: fine) {
    #wallet .wp-activity-row:hover { background:rgba(0,0,0,0.04); }
}
#wallet .asset-row {
    display:flex; align-items:center; padding:14px 22px 14px 16px; gap:14px;
    cursor:pointer;
    transition:0.2s ease-in-out;
}
#wallet .asset-row + .asset-row { border-top:1px solid #d9dce2; }
#wallet .asset-row.hover { background:rgba(0,0,0,0.04); }
@media (hover: hover) and (pointer: fine) {
    #wallet .asset-row:hover { background:rgba(0,0,0,0.04); }
}
#wallet .asset-name { font-size:16px; font-weight:500; letter-spacing:-0.2px; color:#1c1c1e; }
#wallet .asset-sub  { font-size:12px; color:#7d7d80; margin-top:2px; }
#wallet .row-action { color:#01466F; font-size:12px; font-weight:600; margin-right:4px; }

#wallet .wp-hero-sec { padding-top:6px; padding-bottom:18px; }
#wallet .wp-imported-wrap { padding:0 4px 8px; }
#wallet .wp-avatar-host { flex-shrink:0; cursor:pointer; }
#wallet .hero-card .hero-head-text { cursor:pointer; }
#wallet .hero-meta .wp-addr { flex:0 1 auto; min-width:0; color:rgba(255,255,255,0.85); cursor:pointer; }
#wallet .wp-lastupdate { margin-top:8px; text-align:right; font-size:11px; color:#7d7d80; padding:0 4px; }
#wallet .wp-btn-row { padding-top:8px; display:grid; grid-template-columns:1fr 1fr; gap:10px; }
#wallet .pill i { font-size:13px; }
#wallet .wp-assets-sec { padding-top:28px; padding-bottom:24px; }
#wallet .wp-activitysec { padding-top:28px; padding-bottom:26px; }
#wallet .wp-sect-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; padding:0 4px; }
#wallet .wp-asset-ic { width:40px; height:40px; flex-shrink:0; }
#wallet .wp-asset-mid { flex:1; min-width:0; }
#wallet .wp-asset-right { text-align:right; }
#wallet .wp-asset-amt { letter-spacing:-0.3px; }
#wallet .wp-asset-int { font-size:16px; font-weight:500; }
#wallet .wp-asset-dec { font-size:14px; font-weight:500; opacity:.6; }
#wallet .wp-asset-sym { font-size:11px; font-weight:600; opacity:.7; margin-left:4px; }
#wallet .wp-asset-actionrow { margin-top:0; line-height:1; }
#wallet .wp-asset-chev { color:#7d7d80; font-size:12px; }
#wallet .wp-msgbox { padding:24px 16px; text-align:center; }
#wallet .wp-msg-text { font-size:13px; color:#7d7d80; }
#wallet .wp-sheet { position:fixed; inset:0; background:rgba(0,0,0,.42); z-index:60; display:flex; align-items:flex-end; justify-content:center; }
#wallet .wp-sheet-panel { width:100%; max-width:768px; background:#fff; border-radius:18px 18px 0 0; padding:8px 0 14px; max-height:82vh; overflow-y:auto; }
#wallet .wp-sheet-grab { width:38px; height:4px; border-radius:2px; background:#e7e7eb; margin:6px auto 8px; }
#wallet .wp-activity-row { display:grid; grid-template-columns:auto minmax(0,1fr) auto; grid-template-areas:"icon mid amt" ". party party" ". addr addr"; align-items:center; padding:14px 16px; column-gap:11px; cursor:pointer; }
#wallet .wallet-activity-row-skel { padding:14px 16px; }
#wallet .wp-act-icon { grid-area:icon; width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center; justify-content:center; flex-shrink:0; align-self:start; margin-top:2px; }
#wallet .wp-act-icon i { font-size:13px; }
#wallet .wp-act-mid { grid-area:mid; min-width:0; align-self:start; }
#wallet .wp-act-typerow { display:flex; align-items:center; gap:8px; }
#wallet .wp-act-type { font-size:13px; font-weight:600; letter-spacing:-0.2px; color:#1c1c1e; }
#wallet .wp-act-date { font-size:11px; color:#7d7d80; margin-top:4px; font-variant-numeric:tabular-nums; }
#wallet .wp-act-party { grid-area:party; margin-top:7px; display:flex; align-items:center; gap:6px; min-width:0; }
#wallet .wp-act-dir { font-size:11.5px; font-weight:700; color:#1c1c1e; flex:0 0 auto; }
#wallet .wp-act-nick { font-size:11.5px; font-weight:500; color:#1c1c1e; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#wallet .wp-act-ptag { font-size:11px; font-weight:500; color:#a0a0a5; flex:0 0 auto; }
#wallet .wp-act-addr { grid-area:addr; margin-top:2px; font-size:11px; display:flex; align-items:center; gap:5px; min-width:0; }
#wallet .wp-act-addr .wp-addr { flex:0 1 auto; min-width:0; color:#1c1c1e; font-weight:500; cursor:pointer; }
#wallet .wp-act-amtcol { grid-area:amt; display:flex; flex-direction:column; justify-content:center; align-items:flex-end; gap:6px; align-self:center; }
#wallet .wp-act-amt { font-size:14px; font-weight:500; letter-spacing:-0.3px; white-space:nowrap; }
#wallet .wp-act-detail { cursor:pointer; font-size:11px; color:#01466F; font-weight:600; white-space:nowrap; }
#wallet .wp-act-detail i { font-size:10px; }
#wallet .wp-state-ok { font-size:11px; color:#198754; font-weight:600; }
#wallet .wp-state-spin { width:11px; height:11px; border-width:1.5px; color:#0d6efd; }
#wallet .wp-state-pending { font-size:11px; color:#0d6efd; font-weight:600; }
#wallet .wp-state-fail { font-size:11px; color:#dc3545; font-weight:700; }

#wallet .sect-title {
    font-size:16px; font-weight:700;
    color:#1c1c1e; letter-spacing:-0.2px;
    padding:0 4px; margin-bottom:0;
}
#wallet .sect-btn {
    position:relative;
    display:inline-flex; align-items:center; gap:6px;
    height:32px; padding:0 14px;
    border-radius:8px;
    background:#ffffff;
    border:none;
    color:#1c1c1e;
    font-size:13px; font-weight:600;
    cursor:pointer; line-height:1.35;
    box-shadow:0 1px 2px rgba(0,0,0,0.04);
    white-space:nowrap;
    transition:0.2s ease-in-out;
}
#wallet .sect-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;
}
#wallet .sect-btn i {
    font-size:13px;
    color:#01466F;
    transition:0.2s ease-in-out;
}

#wallet .sect-btn.hover { background:#043554; color:#ffffff; box-shadow:none; }
#wallet .sect-btn.hover i { color:#ffffff; }
@media (hover: hover) and (pointer: fine) {
    #wallet .sect-btn:hover { background:#043554; color:#ffffff; box-shadow:none; }
    #wallet .sect-btn:hover i { color:#ffffff; }
}

#wallet .skel-overlay { display:inline-block; }
#wallet .skel-overlay.hide { display:none; }
#wallet .hero-card .skeleton {
    background:rgba(255,255,255,0.22) !important;
    border-radius:4px;
    animation:wallet-skel-pulse 1.4s ease-in-out infinite;
}
@keyframes wallet-skel-pulse {
    0%, 100% { opacity:0.55; }
    50% { opacity:0.85; }
}

.w-sheet-item { display:flex;align-items:center;gap:14px;width:100%;border:none;background:none;padding:14px 22px;font-size:14px;font-weight:600;color:#1c1c1e;cursor:pointer;text-align:left;line-height:1.5; }
.w-sheet-item i { width:20px;text-align:center;color:#01466F;font-size:15px;line-height:1.5;flex-shrink:0; }
.w-sheet-item span { line-height:1.5; }
.w-sheet-div { height:1px;background:#f0f1f3;margin:6px 14px; }

/* ===================== #nft (NFT main tab) ===================== */
            #nft .nf-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; }
            #nft .nf-hero { background:transparent; padding:0; }
            #nft .nf-hero-main { display:flex;align-items:center;gap:16px; }
            #nft .nf-avatar { width:72px;height:72px;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center; }
            #nft .nf-avatar.nf-avatar-img { width:96px;height:96px; }
            #nft .nf-avatar img { width:100%;height:100%;object-fit:contain;display:block; }
            #nft .nf-hero-id { flex:1;min-width:0;cursor:pointer; }
            #nft .nf-hero-name { display:flex;align-items:center;gap:8px;color:#1c1c1e;letter-spacing:-0.3px; }
            #nft .nf-name-text { display:flex;align-items:baseline;gap:6px;min-width:0; }
            #nft .nf-name-text > [data-view=nickname] { font-size:20px;font-weight:700;line-height:1.15;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
            #nft .nf-hero-tag { font-size:14px;font-weight:600;color:#7d7d80;font-variant-numeric:tabular-nums;flex-shrink:0;line-height:1.15; }
            #nft .nf-hero-upd { font-size:11px;color:#7d7d80;margin-top:8px;display:flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums; }
            #nft .nf-hero-upd i { font-size:10px;opacity:.7; }
            #nft .nf-addr-pill { display:inline-flex;align-items:center;gap:8px;margin-top:8px;max-width:100%;color:#1c1c1e;font-size:12px;font-weight:500; }
            #nft .nf-addr-pill .wp-addr { font-variant-numeric:tabular-nums;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer; }
            #nft .nf-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; }
            #nft .nf-addr-copy.hover, #nft .nf-addr-copy:hover { background:#e7e7eb; }
            #nft .nf-addr-copy i { font-size:10px; }
            #nft .nf-hero-actions { display:flex;gap:8px;align-items:center;margin-top:18px; }
            #nft .nf-search-ibox { flex:1; min-width:0; position:relative; height:36px; }
            #nft .nf-search-ic { position:absolute; left:12px; top:0; height:36px; display:inline-flex; align-items:center; color:#9aa0a6; font-size:12px; pointer-events:none; line-height:1; }
            #nft .nf-search-input { width:100%; height:36px; line-height:36px; border:1px solid #e7e7eb; border-radius:18px; padding:0 34px 0 32px; font-size:13px; font-weight:500; color:#1c1c1e; background:#f4f4f4; outline:none; -webkit-appearance:none; appearance:none; transition:border-color .15s ease, background .15s ease; box-sizing:border-box; }
            #nft .nf-search-input::placeholder { color:#9aa0a6; font-weight:500; line-height:36px; }
            #nft .nf-search-input:focus { border-color:#01466F; background:#fff; }
            #nft .nf-search-input::-webkit-search-cancel-button, #nft .nf-search-input::-webkit-search-decoration { -webkit-appearance:none; display:none; }
            #nft .nf-search-clear { position:absolute; right:6px; top:50%; transform:translateY(-50%); width:22px; height:22px; border-radius:50%; border:none; background:#e7e7eb; color:#7d7d80; display:inline-flex; align-items:center; justify-content:center; cursor:pointer; font-size:9px; line-height:1; padding:0; transition:background .15s ease, color .15s ease; }
            #nft .nf-search-clear.hover, #nft .nf-search-clear:hover { background:#cdd3da; color:#1c1c1e; }
            #nft .nf-search-hint { padding:8px clamp(14px,3.5vw,28px) 4px; font-size:11px; color:#7d7d80; font-variant-numeric:tabular-nums; font-weight:600; letter-spacing:0.1px; line-height:1.4; }
            #nft .nf-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;flex-shrink:0; }
            #nft .nf-gcirc:active { background:#f4f4f4; }
            #nft .nf-gcirc::before, #nft .nf-chip::before, #nft .nf-fab-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;
            }
            #nft .nf-fab { position:fixed;right:max(24px, calc(50vw - 384px + 24px));bottom:88px;z-index:1;padding:6px;border-radius:28px;background:rgba(255,255,255,.22);backdrop-filter:blur(9px);-webkit-backdrop-filter:blur(9px); }
            #nft .nf-fab-btn { display:inline-flex;align-items:center;line-height:1.5;gap:7px;height:46px;padding:0 20px;border-radius:23px;background:#01466F;color:#fff;border:none;position:relative;font-size:13px;font-weight:700;box-shadow:0 4px 14px rgba(2,45,74,.3);cursor:pointer;white-space:nowrap; }
            #nft .nf-fab-btn i { font-size:12px; }
            #nft .nf-fab-btn:active { background:#022D4A; }
            #nft .nf-body { background:#f4f4f4;padding-top:8px;min-height:60vh; }
            #nft .nf-foot { display:flex;align-items:center;justify-content:center;padding:20px 16px 28px; }
            #nft .nf-more { display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:#01466F;cursor:pointer;transition:color .15s ease; }
            #nft .nf-more.hover, #nft .nf-more:hover { color:#022D4A; }
            #nft .nf-sheet-div { height:1px;background:#f0f1f3;margin:6px 14px; }
            #nft .nf-chips { display:flex;gap:7px;overflow-x:auto;padding:12px clamp(14px,3.5vw,28px) 12px; }
            #nft .nf-fab-btn, #nft .nf-gcirc, #nft .nf-chip, #nft .nf-sheet-item, #nft .nf-cell { transition:background .15s ease, opacity .15s ease; }
            #nft .nf-fab-btn.hover, #nft .nf-fab-btn:hover { background:#022D4A; }
            #nft .nf-gcirc.hover, #nft .nf-gcirc:hover { background:#f4f4f4; }
            #nft .nf-chip:not(.on).hover, #nft .nf-chip:not(.on):hover { background:#f4f4f4; border-color:#e7e7eb; }
            #nft .nf-chip.on.hover, #nft .nf-chip.on:hover { background:#022D4A; }
            #nft .nf-sheet-item.hover, #nft .nf-sheet-item:hover { background:#f4f4f4; }
            #nft .nf-cell.hover, #nft .nf-cell:hover { box-shadow:0 3px 10px rgba(0,0,0,0.08); }
            #nft .nf-chip { 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); }
            #nft .nf-chip.on { background:#01466F;color:#fff;border-color:#01466F; }
            #nft .nf-chip-n { margin-left:6px;font-weight:700;opacity:0.6;line-height:1; }
            #nft .nf-chip.on .nf-chip-n { opacity:1; }
            #nft { background:#f4f4f4; min-height:100vh; padding-bottom:calc(108px + env(safe-area-inset-bottom)); }
            #nft .nf-toppad { padding-top:2px; }
            #nft .nf-sentinel { height:1px; }
            #nft .nf-load-spin { width:18px; height:18px; border-width:2px; }
            #nft .nf-empty { grid-column:1/-1; padding:48px 16px; text-align:center; color:#7d7d80; font-size:13px; }
            #nft .nf-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;padding:8px clamp(8px,2vw,12px); }
            @media (min-width:480px){ #nft .nf-grid { grid-template-columns:repeat(4,minmax(0,1fr)); } }
            @media (min-width:620px){ #nft .nf-grid { grid-template-columns:repeat(5,minmax(0,1fr)); } }
            @media (min-width:740px){ #nft .nf-grid { grid-template-columns:repeat(6,minmax(0,1fr)); } }
            /* z-index isolate */
            #nft .nf-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; }
            #nft .nf-cell-thumb { position:relative;aspect-ratio:1/1;border-radius:8px;overflow:hidden;background:#e9ecef;display:flex;align-items:center;justify-content:center; }
            #nft .nf-cell-meta { padding:5px 3px 1px; }
            #nft .nf-cell-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; }
            #nft .nf-cell-official .nf-cell-tag { color:#01466F; }
            #nft .nf-cell-uid { display:flex;justify-content:center;font-size:12px;font-weight:500;line-height:1.4;color:#7d7d80;font-family:ui-monospace,'SF Mono',Menlo,Consolas,monospace;letter-spacing:-0.2px;margin-top:1px; }
            #nft .nf-empty { grid-column:1/-1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 16px; }
            #nft .nf-empty-ic { font-size:40px;color:#cdd3da; }
            #nft .nf-empty-txt { font-size:13px;color:#7d7d80; }
            #nft .nf-empty-btn { display:inline-flex;align-items:center;line-height:1.5;gap:7px;height:46px;padding:0 22px;margin-top:16px;border-radius:23px;background:#01466F;color:#fff;border:none;font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 14px rgba(2,45,74,.25);transition:background .15s ease; }
            #nft .nf-empty-btn.hover, #nft .nf-empty-btn:hover { background:#022D4A; }
            /* badge z-index */
            #nft .nf-lock { position:absolute;top:5px;right:5px;font-size:13px;line-height:1;z-index:1;text-shadow:0 1px 2px rgba(0,0,0,.4); }
            #nft .nf-badge-recv { position:absolute;top:5px;left:5px;width:20px;height:20px;border-radius:6px;background:rgba(173,59,72,.90);color:#fff;font-size:10px;display:inline-flex;align-items:center;justify-content:center;z-index:1; }
            #nft .nf-caps { position:absolute;bottom:5px;right:5px;display:inline-flex;gap:3px;z-index:1; }
            #nft .nf-cap-ic { width:18px;height:18px;object-fit:contain;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35)); }
            #nft .nf-recv-mask { position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.9);font-size:17px;pointer-events:none;text-shadow:0 1px 3px rgba(0,0,0,.5); }
            #nft .nf-sheet { position:fixed;inset:0;background:rgba(0,0,0,.42);z-index:60;display:flex;align-items:flex-end;justify-content:center; }
            #nft .nf-sheet.hide { display:none; }
            #nft .nf-sheet-panel { width:100%;max-width:768px;background:#fff;border-radius:18px 18px 0 0;padding:8px 0 14px;max-height:82vh;overflow-y:auto;box-shadow:0 -10px 28px rgba(0,0,0,.2); }
            #nft .nf-grab { width:38px;height:4px;border-radius:2px;background:#e7e7eb;margin:6px auto 8px; }
            #nft .nf-sheet-title { font-size:15px;font-weight:700;color:#1c1c1e;text-align:center;padding:4px 16px 10px; }
            #nft .nf-sheet-item { display:flex;align-items:center;gap:14px;width:100%;border:none;background:none;padding:14px 22px;font-size:14px;font-weight:600;color:#1c1c1e;cursor:pointer;text-align:left;line-height:1.5; }
            #nft .nf-sheet-item:active { background:#f4f4f4; }
            #nft .nf-sheet-item i { width:20px;text-align:center;color:#01466F;font-size:15px;line-height:1.5;flex-shrink:0; }
            #nft .nf-sheet-item span { line-height:1.5; }
            #nft .nf-sheet-cnt { margin-left:auto;display:inline-flex;align-items:center;gap:3px;color:#7d7d80;font-size:12px;font-weight:700;font-variant-numeric:tabular-nums; }
            #nft .nf-sheet-cnt i { width:auto;font-size:11px;opacity:.6;color:#7d7d80;line-height:1.5; }
            #nft .nf-fsearch { display:flex;gap:8px;padding:4px 22px 6px; }
            #nft .nf-fsearch-input { flex:1;min-width:0;height:46px;border:1px solid #e7e7eb;border-radius:12px;padding:0 14px;font-size:14px;color:#1c1c1e;background:#f4f4f4;outline:none; }
            #nft .nf-fsearch-input:focus { border-color:#01466F;background:#fff; }
            #nft .nf-fsearch-go { height:46px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0 18px;border:none;border-radius:12px;background:#01466F;color:#fff;font-size:14px;font-weight:700;cursor:pointer;white-space:nowrap;transition:background .15s ease; }
            #nft .nf-fsearch-go.hover, #nft .nf-fsearch-go:hover { background:#022D4A; }
            #nft .nf-fsearch-hint { padding:2px 22px 4px;font-size:11px;color:#7d7d80;line-height:1.5; }
            #nft .nf-fsearch-msg { padding:2px 22px 10px;font-size:12px;color:#ad3b48;min-height:16px; }
            #nft .nf-fsearch-book { display:flex;align-items:center;justify-content:center;gap:7px;width:100%;margin:0 0 4px;padding:10px;border:none;background:none;color:#01466F;font-size:13px;font-weight:600;cursor:pointer;line-height:1.5; }
            #nft .nf-fsearch-book:active { opacity:.6; }
            #nft .nf-fsearch-book i { font-size:13px;opacity:.9; }
