
@font-face{font-family:'Manrope';font-style:normal;font-weight:200 800;font-display:swap;src:url(/static/manrope-latin.woff2) format('woff2')}

:root,html[data-theme="dark"]{
  --bg:#0C0E12;--surface:#14171E;--surface-2:#1B1F28;
  --ink:#E9EBF0;--ink-2:#A4ABB8;--ink-3:#6E7686;
  --line:#262B36;--line-strong:#333A48;
  --accent:#F2564A;--accent-hover:#FF6E63;--accent-soft:rgba(242,86,74,.13);--accent-ink:#FF7A70;
  --addr-link:#FF8078;
  --gold:#E0B355;--gold-soft:rgba(224,179,85,.14);
  --good:#3FBF7F;--good-soft:rgba(63,191,127,.13);
  --warn:#E0A93E;--warn-soft:rgba(224,169,62,.13);
  --bad:#F0655A;--bad-soft:rgba(240,101,90,.13);
  --chart:#5B94D6;--chart-soft:rgba(91,148,214,.16);
  --pin-soft:rgba(242,86,74,.06);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 4px 16px rgba(0,0,0,.35);
  --shadow-lift:0 2px 4px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.5);
  
  --panel:var(--surface);--card:var(--surface-2);--card-hi:#222835;
  --line-hi:var(--line-strong);--fg:var(--ink);--fg-soft:var(--ink-2);--muted:var(--ink-3);
  --accent-hi:var(--accent-hover);--up:var(--good);--down:var(--bad);--warn-fg:var(--warn);
  --topbar:rgba(20,23,30,.88);
}
html[data-theme="light"]{
  --bg:#F6F7F9;--surface:#FFFFFF;--surface-2:#F0F2F5;
  --ink:#17191E;--ink-2:#545B69;--ink-3:#8B93A3;
  --line:#E4E7EC;--line-strong:#D3D8E0;
  --accent:#D6362B;--accent-hover:#B52A21;--accent-soft:#FBEDEC;--accent-ink:#B52A21;
  --addr-link:#C23631;
  --gold:#A87508;--gold-soft:#F7EFDB;
  --good:#1B8A50;--good-soft:#E5F4EC;
  --warn:#A96F0B;--warn-soft:#F9F1DE;
  --bad:#C23636;--bad-soft:#FBEBEB;
  --chart:#3D7CC9;--chart-soft:rgba(61,124,201,.12);
  --pin-soft:#FDF6F5;
  --shadow:0 1px 2px rgba(23,25,30,.05),0 4px 16px rgba(23,25,30,.06);
  --shadow-lift:0 2px 4px rgba(23,25,30,.06),0 12px 32px rgba(23,25,30,.10);
  --panel:var(--surface);--card:var(--surface-2);--card-hi:#E9EDF2;
  --line-hi:var(--line-strong);--fg:var(--ink);--fg-soft:var(--ink-2);--muted:var(--ink-3);
  --accent-hi:var(--accent-hover);--up:var(--good);--down:var(--bad);--warn-fg:var(--warn);
  --topbar:rgba(255,255,255,.88);
}

*{box-sizing:border-box}

@media (min-width:1280px){html{zoom:1.1}}
body{margin:0;font:14px/1.6 'Manrope',system-ui,-apple-system,"Segoe UI",Roboto,"PingFang SC","Microsoft YaHei",sans-serif;color:var(--ink);background:var(--bg);font-variant-numeric:tabular-nums;overflow-x:clip;-webkit-font-smoothing:antialiased;transition:background .25s,color .25s}
a{color:var(--accent-ink);text-decoration:none}a:hover{opacity:.85}
h1{font-size:22px;margin:18px 0 6px;letter-spacing:-.01em}h2{font-size:16px;margin:0 0 12px;letter-spacing:-.01em}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:4px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
.mono{font-family:ui-monospace,"Cascadia Code",Consolas,"SF Mono",Menlo,monospace;font-variant-numeric:tabular-nums}

header.topbar{position:sticky;top:0;z-index:50;border-bottom:1px solid var(--line);background:var(--topbar);backdrop-filter:blur(12px)}
.tb-in{max-width:1200px;margin:0 auto;display:flex;align-items:center;gap:22px;height:56px;padding:0 24px}
.logo{display:flex;align-items:center;gap:10px;font-weight:700;font-size:16px;color:var(--ink);white-space:nowrap;flex:none;letter-spacing:-.01em}
.logo:hover{opacity:1}
.logo-mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center;flex:none}
.logo-mark svg{width:16px;height:16px;fill:#fff}
.logo small{display:block;font-size:10px;font-weight:500;color:var(--ink-3);letter-spacing:.04em;line-height:1.1;font-family:ui-monospace,Consolas,monospace}
.tb-nav{display:flex;gap:2px;margin-inline-end:auto}
.tb-nav a{color:var(--ink-2);padding:6px 11px;border-radius:7px;font-size:14px;white-space:nowrap;transition:background .15s,color .15s}
.tb-nav a:hover{background:var(--surface-2);color:var(--ink);opacity:1}
.tb-nav a.active{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.drawer-in a.link.active{color:var(--accent-ink);font-weight:600}
.tb-actions{display:flex;align-items:center;gap:9px;margin-inline-start:auto;flex:none}
.tb-btn{width:34px;height:34px;border-radius:8px;border:1px solid var(--line-strong);background:none;display:grid;place-items:center;color:var(--ink-2);cursor:pointer;padding:0;font-size:14px;line-height:1;transition:border-color .15s,color .15s}
.tb-btn:hover{border-color:var(--ink-3);color:var(--ink);background:none}
.tb-login{font-size:14px;color:var(--ink-2);padding:6px 4px;white-space:nowrap}
.tb-login:hover{color:var(--ink);opacity:1}
.btn-cta{display:inline-flex;align-items:center;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;background:var(--accent);color:#fff!important;white-space:nowrap;transition:background .15s,transform .15s}
.btn-cta:hover{background:var(--accent-hover);transform:translateY(-1px);opacity:1}
.menu-btn{display:none}

.lang-dd{position:relative;flex:none}
.lang-btn{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;border:1px solid var(--line-strong);border-radius:8px;font-size:12.5px;color:var(--ink-2);background:none;cursor:pointer;transition:border-color .15s,color .15s}
.lang-btn:hover{border-color:var(--ink-3);color:var(--ink);background:none}
.chev-dn{width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);flex:none}
.flag{display:inline-block;width:20px;height:14px;border-radius:3px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(0,0,0,.10);flex:none}
.flag svg{display:block;width:100%;height:100%}
.lang-menu{position:absolute;inset-inline-end:0;top:calc(100% + 6px);min-width:186px;max-height:min(62vh,420px);overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-lift);padding:6px;display:none;z-index:60}
.lang-menu.open{display:block}
.lang-menu a{display:flex;align-items:center;gap:9px;width:100%;padding:7px 10px;border-radius:8px;font-size:13px;color:var(--ink-2);transition:background .12s,color .12s}
.lang-menu a:hover{background:var(--surface-2);color:var(--ink);opacity:1}
.lang-menu a.cur{color:var(--ink);font-weight:600}
.lang-menu a.cur::after{content:"✓";margin-inline-start:auto;color:var(--accent-ink);font-size:12px}

.drawer{display:none;border-top:1px solid var(--line);background:var(--surface)}
.drawer.open{display:block}
.drawer-in{padding:10px 24px 18px;display:flex;flex-direction:column;gap:2px}
.drawer-in a.link{padding:11px 6px;font-size:15px;color:var(--ink-2);border-bottom:1px solid var(--line)}
.drawer-in a.link:last-of-type{border-bottom:none}
.drawer-lang{border-bottom:1px solid var(--line)}
.drawer-lang>summary{display:flex;align-items:center;gap:9px;padding:11px 6px;font-size:15px;color:var(--ink-2);cursor:pointer;list-style:none}
.drawer-lang>summary::-webkit-details-marker{display:none}
.drawer-lang>summary::after{content:"";width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg) translateY(-2px);margin-inline-start:auto}
.drawer-lang[open]>summary::after{transform:rotate(-135deg) translateY(-2px)}
.drawer-lang-list{display:grid;grid-template-columns:1fr 1fr;gap:2px 10px;padding:2px 0 10px}
.drawer-lang-list a{display:flex;align-items:center;gap:8px;padding:8px 6px;font-size:13.5px;color:var(--ink-2)}
.drawer-lang-list a.cur{color:var(--ink);font-weight:600}
.drawer-auth{display:flex;gap:10px;margin-top:12px}
.drawer-auth a{flex:1;display:inline-flex;align-items:center;justify-content:center;padding:9px 0;border-radius:8px;font-size:14px;font-weight:600}
.drawer-auth a.ghost{border:1px solid var(--line-strong);color:var(--ink-2)}
main{max-width:1200px;margin:0 auto;padding:20px 24px 40px}

footer.site{border-top:1px solid var(--line);background:var(--surface);margin-top:40px}
.foot-in{max-width:1200px;margin:0 auto;padding:42px 24px 36px}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:36px}
.foot-brand .logo{margin-bottom:14px}
.foot-brand p{margin:0;font-size:12.5px;color:var(--ink-3);max-width:24em;line-height:1.75}
.foot-col h4{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.foot-col a{display:block;padding:5px 0;font-size:13px;color:var(--ink-2);transition:color .15s,transform .15s}
.foot-col a:hover{color:var(--accent-ink);transform:translateX(2px);opacity:1}
.foot-bottom{margin-top:32px;padding-top:18px;border-top:1px solid var(--line)}
.foot-bottom .disclaimer{margin:0;font-size:12px;color:var(--ink-3);max-width:66em;line-height:1.7}
.foot-meta{margin-top:12px;font-size:12px;color:var(--ink-3);display:flex;gap:14px;align-items:center;flex-wrap:wrap}

.overflow{overflow-x:auto;background:var(--panel);border:1px solid var(--line);border-radius:10px}
table{width:100%;border-collapse:collapse;font-size:12.5px}
th,td{padding:8px 10px;text-align:start;border-bottom:1px solid var(--line);white-space:nowrap}
thead th{position:sticky;top:0;font-size:11px;font-weight:600;color:var(--muted);background:var(--surface-2);text-transform:uppercase;letter-spacing:.04em;z-index:1}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover td{background:var(--card)}
tbody tr.pinned td{background:var(--pin-soft)}
tbody tr.pinned:hover td{background:var(--pin-soft)}
tbody tr.pinned td:first-child{box-shadow:inset 3px 0 0 var(--accent)}
.pin-mark{font-size:12px;opacity:.85}
td.num,th.num{text-align:start;font-variant-numeric:tabular-nums}
.rate-hi{color:var(--up)}.rate-lo{color:var(--down)}.rate-mid{color:var(--warn)}
td.em{font-weight:600;color:var(--fg)}
td.en-t2{color:#b7a4f7}td.en-t3{color:var(--chart)}
.addr{font-family:ui-monospace,Consolas,"SF Mono",monospace;font-size:12.5px}

a.addr-link{color:var(--addr-link);border:1px dashed transparent;border-radius:5px;padding:1px 4px;margin:-1px -2px;transition:background .12s,border-color .12s}
a.addr-link:hover{background:var(--accent-soft);border-color:var(--addr-link);opacity:1}

.rank-th{width:34px}
td.rank-no{color:var(--ink-3);font-size:11.5px}
.price-v{font-weight:700;font-size:13px;color:var(--ink)}
.price-v.price-lo{color:var(--good)}
td.score-v{font-weight:700}
.badges-cell .badge{margin-inline-end:4px}
.badges-cell .badge:last-child{margin-inline-end:0}
.lock-chip{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:1.5px 7px;border-radius:999px;vertical-align:1px}
.verified-dot{color:var(--good);font-size:11px;font-weight:700}

.tabs{display:inline-flex;flex-wrap:wrap;gap:3px;margin:16px 0 12px;background:var(--surface-2);border:1px solid var(--line);border-radius:11px;padding:3px}
.tabs a{padding:7px 15px;border-radius:8px;color:var(--ink-2);font-size:13.5px;font-weight:600;white-space:nowrap;transition:color .15s,background .15s,box-shadow .15s}
.tabs a:hover{color:var(--ink);opacity:1}
.tabs a.active{background:var(--surface);color:var(--accent-ink);box-shadow:0 1px 3px rgba(0,0,0,.10)}
.filters{display:flex;gap:12px;align-items:center;margin:12px 0;font-size:13px;color:var(--muted);flex-wrap:wrap}
input[type=text],input[type=email],input[type=password],select,textarea{background:var(--card);border:1px solid var(--line);border-radius:6px;color:var(--fg);padding:7px 10px;font:inherit;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--accent)}
.filters input[type=text]{width:90px}
input[type=checkbox]{accent-color:var(--accent)}
button{background:var(--accent);color:#fff;border:0;border-radius:6px;padding:8px 18px;font:inherit;cursor:pointer}
button:hover{background:var(--accent-hi)}

.badge{display:inline-block;font-size:11.5px;line-height:1.5;padding:1px 8px;border-radius:4px;background:var(--card-hi);color:var(--muted);border:1px solid var(--line)}
.badge-amber{background:var(--gold-soft);color:var(--gold);border-color:transparent}
.badge-violet{background:rgba(139,92,246,.14);color:#b7a4f7;border-color:transparent}
.badge-green{background:var(--good-soft);color:var(--good);border-color:transparent}
.badge-blue{background:var(--chart-soft);color:var(--chart);border-color:transparent}

.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:16px 0}
.card{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;transition:border-color .15s}
.card:hover{border-color:var(--line-hi)}
.card .k{font-size:12px;color:var(--muted)}
.card .v{font-size:20px;font-weight:600;margin-top:3px}

.notice{background:var(--warn-soft);border:1px solid var(--warn);color:var(--warn);border-radius:8px;padding:10px 14px;margin:14px 0;font-size:13.5px}
.notice a{color:var(--warn);text-decoration:underline}
.ok{background:var(--good-soft);border:1px solid var(--good);color:var(--good);border-radius:8px;padding:10px 14px;margin:14px 0;font-size:13.5px}

.notice-tip{margin:14px 0;display:flex;gap:11px;align-items:flex-start;background:var(--chart-soft);border:1px solid var(--chart);border-radius:12px;padding:12px 16px;font-size:13px;color:var(--ink-2)}
.notice-tip .ico{flex:none;line-height:1.7}
.notice-tip p{margin:0;line-height:1.75}

.charts-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.chart-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:16px 16px 10px}
.chart-card h3{font-size:13.5px;margin:0 0 6px;font-weight:600}
.chart-box svg{display:block;width:100%;max-width:520px;height:auto}
.cline{stroke:var(--line);stroke-width:1}
.ctext{fill:var(--ink-3);font-size:10px;font-family:ui-monospace,Consolas,monospace}
.cval{font:600 11px ui-monospace,Consolas,monospace;fill:var(--ink)}

.claim-empty{display:flex;align-items:center;gap:20px;padding:22px 20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.claim-empty .ico{width:52px;height:52px;border-radius:14px;background:var(--surface-2);border:1.5px dashed var(--line-strong);display:grid;place-items:center;font-size:22px;flex:none}
.claim-empty b{font-size:14.5px}
.claim-empty p{margin:4px 0 0;font-size:13px;color:var(--ink-2);max-width:44em}
.claim-empty .acts{margin-inline-start:auto;flex:none}
.pager{display:flex;gap:14px;align-items:center;margin:16px 0;color:var(--muted);font-size:13px;flex-wrap:wrap}
.section{margin-top:28px}
.section h2{padding-inline-start:10px;border-inline-start:3px solid var(--accent)}

form.report{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:18px;}
form.report select,form.report textarea,form.report input{width:100%;margin:6px 0 12px}
.auth-card{max-width:420px;margin:46px auto;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:32px 34px 28px}
.auth-card h1{margin:0 0 16px;font-size:21px}
.auth-card label{font-size:12.5px;font-weight:600;color:var(--ink-2)}
.auth-card input[type=email],.auth-card input[type=password]{width:100%;margin:6px 0 14px;padding:10px 12px;border-radius:8px;background:var(--bg)}
.auth-card input:focus{box-shadow:0 0 0 3px var(--accent-soft)}
.auth-card button{width:100%;padding:10px;margin-top:6px;border-radius:8px;font-weight:600}

.member-card{background:linear-gradient(115deg,var(--accent-soft),transparent 60%),var(--surface);border:1px solid var(--line);border-radius:14px;padding:20px 24px;display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin:16px 0}
.member-card .m-ico{width:44px;height:44px;border-radius:12px;background:var(--accent);color:#fff;display:grid;place-items:center;font-size:20px;flex:none}
.member-card b{font-size:15.5px}
.member-card .until{font-size:12.5px;color:var(--ink-2);margin-top:2px}
.member-card .m-act{margin-inline-start:auto;flex:none}
.copy-line{display:flex;gap:8px;max-width:560px}
.copy-line input{flex:1;font-family:ui-monospace,Consolas,monospace;font-size:12.5px}
.ref-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;max-width:560px}
.ref-stat{background:var(--surface-2);border-radius:10px;padding:12px 14px}
.ref-stat .v{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:19px;font-weight:700}
.ref-stat .k{font-size:11.5px;color:var(--ink-3);margin-top:1px}
.progress{height:8px;border-radius:4px;background:var(--surface-2);border:1px solid var(--line);overflow:hidden;margin-top:12px;max-width:560px}
.progress i{display:block;height:100%;background:var(--accent);border-radius:4px}
.btn-ghost{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;background:none;border:1px solid var(--line-strong);color:var(--ink-2);cursor:pointer}
.btn-ghost:hover{border-color:var(--ink-3);color:var(--ink);background:none}

.verify-cards{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:12px}
.verify-card{border:1px solid var(--line);border-radius:12px;padding:16px 18px;background:var(--surface)}
.verify-card h3{font-size:13.5px;margin:0;display:flex;align-items:center;gap:8px}
.verify-card p{margin:8px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.7}
.flow-steps{display:flex;margin-top:22px}
.flow-step{flex:1;text-align:center;position:relative;padding-top:4px}
.flow-step .dot{width:26px;height:26px;border-radius:50%;background:var(--surface-2);border:1.5px solid var(--line-strong);display:grid;place-items:center;margin:0 auto;font-family:ui-monospace,Consolas,monospace;font-size:12px;font-weight:700;color:var(--ink-2);position:relative;z-index:2}
.flow-step.done .dot{background:var(--accent);border-color:var(--accent);color:#fff}
.flow-step.cur .dot{border-color:var(--accent);color:var(--accent-ink)}
.flow-step.cur .k{color:var(--accent-ink);font-weight:600}
.flow-step::before{content:"";position:absolute;top:16px;inset-inline-start:-50%;width:100%;height:1.5px;background:var(--line-strong);z-index:1}
.flow-step:first-child::before{display:none}
.flow-step .k{font-size:12px;color:var(--ink-2);margin-top:8px}

.plans{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:22px 0}
.plan{position:relative;background:var(--surface);border:1.5px solid var(--line);border-radius:16px;padding:24px 24px 22px;transition:transform .18s,box-shadow .18s}
.plan:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.plan.best{border-color:var(--accent)}
.plan-badge{position:absolute;top:-11px;inset-inline-end:18px;background:var(--accent);color:#fff;font-size:11px;font-weight:700;padding:3px 11px;border-radius:999px;letter-spacing:.04em}
.plan h3{font-size:14px;color:var(--ink-2);font-weight:600;margin:0}
.plan .price{font-family:ui-monospace,Consolas,monospace;font-size:32px;font-weight:700;letter-spacing:-.02em;margin-top:10px}
.plan .price small{font-size:13px;color:var(--ink-3);font-weight:500}
.plan ul{list-style:none;margin:14px 0 0;padding:0}
.plan li{font-size:13px;color:var(--ink-2);padding:4px 0;display:flex;gap:8px;align-items:baseline}
.plan li::before{content:"✓";color:var(--good);font-weight:700;flex:none}
.plan .plan-buy{width:100%;margin-top:18px;border-radius:8px;font-weight:600}

.pay-amount{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums}
.pay-amount .suffix{color:var(--accent-ink)}
.pay-addr{white-space:nowrap;word-break:normal;font-size:clamp(11px,3.4vw,14px)}

.prose{max-width:820px;margin:0 auto;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:28px 32px}
.prose h1{margin-top:0}
.prose h2{margin-top:24px;border-inline-start:3px solid var(--accent);padding-inline-start:10px}
.prose p{color:var(--fg-soft);line-height:1.75}

.addr-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;margin:18px 0 6px}
.addr-badges{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.qr-card{background:#fff;border-radius:10px;padding:8px}
.qr-card svg{display:block;width:128px;height:128px}
.qr-card .muted{color:#555!important}
.btn-mini{background:var(--card);border:1px solid var(--line);border-radius:6px;color:var(--fg);padding:3px 10px;font-size:12.5px;cursor:pointer}
.btn-mini:hover{border-color:var(--accent);color:var(--accent-hi);background:var(--card)}
.copy-cell{background:none;border:0;color:var(--muted);cursor:pointer;font-size:13px;padding:0 4px}
.copy-cell:hover{color:var(--accent-hi);background:none}
.muted{color:var(--muted)}
.desc{white-space:pre-wrap;word-break:break-word}
.icon-btn{background:none;border:1px solid var(--line);border-radius:6px;color:var(--muted);padding:4px 9px;font-size:14px;cursor:pointer;line-height:1}
.icon-btn:hover{background:var(--card);color:var(--fg)}
.crumb{font-size:12.5px;color:var(--muted);margin:14px 0 10px}
.crumb a{color:var(--muted)}.crumb a:hover{color:var(--fg)}

.hero{padding:56px 0 46px}
.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:48px;align-items:center}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;letter-spacing:.08em;color:var(--accent-ink);background:var(--accent-soft);padding:5px 12px;border-radius:999px;margin-bottom:20px}
.pulse{width:8px;height:8px;border-radius:50%;background:var(--good);position:relative;flex:none}
.pulse::after{content:"";position:absolute;inset:-4px;border-radius:50%;border:2px solid var(--good);opacity:.5;animation:erhpulse 2s ease-out infinite}
@keyframes erhpulse{from{transform:scale(.4);opacity:.7}to{transform:scale(1.15);opacity:0}}
.hero-h1{font-size:40px;line-height:1.22;letter-spacing:-.02em;margin:0}
.hero-h1 em{font-style:normal;color:var(--accent)}
.hero-sub{margin:18px 0 26px;font-size:15.5px;color:var(--ink-2);max-width:34em}
.hero-cta{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.btn-lg{padding:12px 26px;font-size:15px;border-radius:9px}
.hero-note{margin-top:22px;font-size:12px;color:var(--ink-3)}
.feed-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden;min-width:0}
.feed-head{display:flex;align-items:center;gap:10px;padding:13px 18px;border-bottom:1px solid var(--line);font-size:13px;font-weight:600;color:var(--ink-2)}
.feed-list{list-style:none;margin:0;padding:4px 0}
.feed-list li{display:grid;grid-template-columns:76px minmax(0,1fr) auto;align-items:center;column-gap:12px;padding:9px 18px;font-size:12.5px;border-bottom:1px dashed var(--line)}
.feed-list li:last-child{border-bottom:none}
.feed-time{color:var(--ink-3);font-size:11.5px;white-space:nowrap}
.feed-route{display:flex;align-items:center;gap:7px;min-width:0;overflow:hidden}
.feed-route .mono{white-space:nowrap}
.f-payer{color:var(--ink-3);font-size:11.5px}
.feed-arrow{color:var(--ink-3);flex:none}
.feed-energy{font-size:11.5px;color:var(--gold);white-space:nowrap}
.feed-price{font-weight:600;white-space:nowrap;text-align:end;font-size:12px}
.feed-foot{padding:10px 18px;border-top:1px solid var(--line);font-size:11.5px;color:var(--ink-3)}
.stats-band{border-block:1px solid var(--line);background:var(--surface);margin:0 -24px}
.stats-grid{max-width:1200px;margin:0 auto;padding:0 24px;display:grid;grid-template-columns:repeat(4,1fr)}
.stat{padding:22px 24px;border-inline-end:1px solid var(--line)}
.stat:last-child{border-inline-end:none}
.stat .v{font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:24px;font-weight:600;letter-spacing:-.02em}
.stat .v small{font-size:13px;color:var(--ink-3);font-weight:500;margin-inline-start:3px}
.stat .k{margin-top:3px;font-size:12px;color:var(--ink-3)}
.l-section{padding:44px 0 0}
.section-head{display:flex;align-items:baseline;gap:14px;margin-bottom:18px;flex-wrap:wrap}
.section-head h2{font-size:22px;margin:0;border:none;padding:0}
.section-head .more{margin-inline-start:auto;font-size:13.5px;color:var(--accent-ink);font-weight:600}
.section-head .more:hover{text-decoration:underline;opacity:1}
.section-sub{font-size:13px;color:var(--ink-3)}
.rank-cta{text-align:center;margin-top:24px}
.rank-cta .hint{margin-top:10px;font-size:12.5px;color:var(--ink-3)}
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.step{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:24px 22px;transition:transform .2s,box-shadow .2s}
.step:hover{transform:translateY(-3px);box-shadow:var(--shadow-lift)}
.step-no{font-family:ui-monospace,Consolas,monospace;font-size:12px;color:var(--accent-ink);font-weight:600;letter-spacing:.08em}
.step h3{font-size:16px;margin:10px 0 8px}
.step p{margin:0;font-size:13px;color:var(--ink-2);line-height:1.7}
.member-strip{background:linear-gradient(120deg,var(--accent-soft),transparent 55%),var(--surface);border:1px solid var(--line);border-radius:16px;padding:32px 36px;display:flex;align-items:center;gap:30px;flex-wrap:wrap}
.member-strip p{margin:8px 0 0;color:var(--ink-2);font-size:13.5px;max-width:40em}
.member-price{margin-inline-start:auto;text-align:end;flex:none}
.member-price .v{font-size:26px;font-weight:700;letter-spacing:-.02em}
.member-price .v small{font-size:12.5px;color:var(--ink-3);font-weight:500}
.member-price .k{font-size:12px;color:var(--ink-3);margin-bottom:8px}

.page-head{padding:18px 0 4px}
.page-head h1{margin:0}
.filter-ctl{display:inline-flex;align-items:center;gap:7px;border:1px solid var(--line-strong);border-radius:8px;padding:5px 11px;font-size:12.5px;color:var(--ink-2);background:var(--surface)}
.filter-ctl input[type=text]{border:none;background:none;padding:2px 0}
.filter-search input[type=text]{width:200px;font-family:ui-monospace,Consolas,monospace;font-size:12px}
.filter-go{padding:7px 16px;border-radius:8px;font-size:13px}

.detail-head{margin:16px 0;background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:26px 28px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.dh-main{min-width:0}
.addr-label{font-size:11.5px;letter-spacing:.07em;color:var(--ink-3);text-transform:uppercase;font-weight:600}
.addr-line{display:flex;align-items:center;gap:10px;margin-top:8px;flex-wrap:wrap}
.addr-full{font-family:ui-monospace,Consolas,"SF Mono",monospace;font-size:20px;font-weight:600;letter-spacing:.01em;white-space:nowrap;margin:0}
.detail-badges{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap;align-items:center}
.detail-meta{font-size:12px;color:var(--ink-3);margin-inline-start:4px}
.detail-actions{display:flex;gap:8px;margin-top:14px;flex-wrap:wrap}
.quota-chip{display:inline-flex;align-items:center;gap:6px;margin-top:12px;padding:4px 12px;border-radius:999px;background:var(--chart-soft);color:var(--chart);font-size:12px;font-weight:600}
.score-ring-box{text-align:center}
.score-ring{position:relative;width:116px;height:116px;margin:0 auto}
.score-ring svg{transform:rotate(-90deg);display:block}
.score-ring .track{stroke:var(--surface-2)}
.score-ring .arc{stroke:var(--ink-3);stroke-linecap:round}
.score-ring .val{position:absolute;inset:0;display:grid;place-items:center;font-family:ui-monospace,Consolas,monospace;font-size:30px;font-weight:700}
/* Reputation score tiers: >=80 good / 50-79 fair / <50 poor; no data falls back to the neutral default above. */
.score-ring.tier-hi .arc{stroke:var(--good)}
.score-ring.tier-hi .val{color:var(--good)}
.score-ring.tier-mid .arc{stroke:var(--warn)}
.score-ring.tier-mid .val{color:var(--warn)}
.score-ring.tier-lo .arc{stroke:var(--bad)}
.score-ring.tier-lo .val{color:var(--bad)}
.score-ring-box .k{margin-top:8px;font-size:12px;color:var(--ink-3)}
.unlock-banner{margin:0 0 14px;border-radius:14px;padding:16px 22px;background:linear-gradient(100deg,var(--accent-soft),transparent 70%),var(--surface);border:1px solid var(--accent);display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.unlock-banner .ico{width:38px;height:38px;border-radius:10px;background:var(--accent-soft);display:grid;place-items:center;color:var(--accent-ink);flex:none;font-size:16px}
.unlock-banner b{font-size:14px;display:block}
.unlock-banner p{margin:2px 0 0;font-size:12.5px;color:var(--ink-2)}
.unlock-banner .btn-cta{margin-inline-start:auto;flex:none}
.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:14px 0 8px}
.metric{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;transition:transform .18s,box-shadow .18s}
.metric:hover{transform:translateY(-2px);box-shadow:var(--shadow)}
.metric .k{font-size:11.5px;color:var(--ink-3)}
.metric .v{margin-top:4px;font-family:ui-monospace,Consolas,monospace;font-variant-numeric:tabular-nums;font-size:19px;font-weight:600}
.metric .v small{font-size:11.5px;color:var(--ink-3);font-weight:500}

.modal{position:fixed;inset:0;z-index:100;display:grid;place-items:center;background:rgba(0,0,0,.45)}
.modal[hidden]{display:none}
.modal-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-lift);padding:24px 28px 20px;text-align:center;position:relative;max-width:300px;width:calc(100vw - 48px)}
.modal-card h3{font-size:14.5px;margin:0 0 14px}
.modal-x{position:absolute;top:8px;inset-inline-end:10px;font-size:20px;color:var(--ink-3);background:none;padding:4px 8px}
.modal-x:hover{color:var(--ink);background:none}
.qr-holder{background:#fff;border:1px solid var(--line);border-radius:12px;padding:12px;display:inline-block}
.qr-holder svg{display:block}
.qr-addr{font-size:11px;color:var(--ink-2);margin-top:12px;word-break:break-all;line-height:1.5}

.doc-layout{display:grid;grid-template-columns:200px 1fr;gap:30px;padding:24px 0 40px;align-items:start}
.doc-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:2px}
.doc-side a{padding:7px 10px;border-radius:7px;font-size:13px;color:var(--ink-2)}
.doc-side a:hover{background:var(--surface-2);color:var(--ink);opacity:1}
.doc-side a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.doc-article{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:36px 42px 42px;min-width:0}
.doc-article h1{font-size:24px;margin:0}
.doc-meta{font-size:12px;color:var(--ink-3);margin-top:8px;padding-bottom:18px;border-bottom:1px solid var(--line)}
.doc-article h2{font-size:16px;margin:26px 0 8px;border:none;padding:0}
.doc-article p{font-size:14px;color:var(--ink-2);line-height:1.85;margin:0 0 10px}

.auth-wrap{max-width:424px;margin:38px auto 64px;padding:0 16px}
.auth-wrap .auth-card{max-width:none;margin:0}
.auth-sub{font-size:13px;color:var(--ink-3);margin:6px 0 0}
.field{margin-top:16px}
.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-2);margin-bottom:6px}
.field input[type=text],.field input[type=email],.field input[type=password],.field textarea{width:100%;padding:10px 12px;border-radius:8px}
.input-hint{font-size:11.5px;color:var(--ink-3);margin-top:5px}
.check-row{display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:var(--ink-2);margin-top:16px;line-height:1.6}
.check-row input{margin-top:3px}
.check-row a{color:var(--accent-ink)}
.ref-chip{display:flex;align-items:center;gap:8px;margin-top:14px;padding:9px 13px;border-radius:9px;background:var(--good-soft);color:var(--good);font-size:12.5px;font-weight:600}
.auth-btn{width:100%;margin-top:18px;padding:10px;border-radius:8px;font-weight:600}
.auth-links{display:flex;justify-content:space-between;margin-top:16px;font-size:13px;color:var(--ink-2)}
.auth-links a:hover{color:var(--accent-ink)}
.auth-foot{text-align:center;margin-top:16px;font-size:12px;color:var(--ink-3)}
.auth-foot a{color:var(--ink-3);text-decoration:underline}

.acct-layout{display:grid;grid-template-columns:200px 1fr;gap:28px;padding:20px 0 40px;align-items:start}
.acct-nav{position:sticky;top:76px;display:flex;flex-direction:column;gap:2px}
.acct-nav a{padding:8px 12px;border-radius:8px;font-size:13.5px;color:var(--ink-2)}
.acct-nav a:hover{background:var(--surface-2);color:var(--ink);opacity:1}
.acct-nav a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}
.acct-main{min-width:0}
/* Account page: per-section pager */
.acct-pager{display:flex;align-items:center;gap:12px;margin-top:10px;font-size:12.5px;flex-wrap:wrap}

/* User star ratings: kept visually distinct from the on-chain reputation score (gold stars vs ink-coloured score). */
.rate-summary{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.rate-stars{font-size:26px;color:var(--gold);letter-spacing:2px;line-height:1}
.rate-avg{font-size:26px;font-weight:700;font-variant-numeric:tabular-nums}
.rate-count{font-size:13px}
.rate-k{font-size:11.5px;color:var(--ink-3);letter-spacing:.04em;margin:16px 0 8px}
.rate-pick{display:flex;flex-direction:column;gap:6px;max-width:340px}
.rate-opt{display:flex;align-items:center;gap:10px;width:100%;text-align:start;padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-2);font-size:13px;cursor:pointer}
.rate-opt:hover{background:var(--surface-2);color:var(--ink)}
.rate-opt.on{border-color:var(--gold);background:var(--warn-soft);color:var(--ink);font-weight:600}
.rate-opt .s{color:var(--gold);letter-spacing:1px;font-size:14px;white-space:nowrap}
/* Native <dialog> error modal for failed async submits (no JS library). */
.erh-dialog{border:1px solid var(--line);border-radius:14px;background:var(--surface);color:var(--ink);padding:22px 24px;max-width:min(90vw,440px);box-shadow:var(--shadow)}
.erh-dialog::backdrop{background:rgba(0,0,0,.45)}
.erh-dialog p{font-size:13.5px;line-height:1.7;color:var(--ink-2)}

/* Favorites list: inline rating, five stars per row, click submits. */
.rate-inline{display:flex;gap:1px}
.rate-inline button{background:none;border:0;padding:0 1px;font-size:15px;line-height:1;color:var(--ink-3);cursor:pointer}
.rate-inline button.on{color:var(--gold)}
.rate-inline button:hover{color:var(--gold)}

.page-narrow{max-width:820px;margin:0 auto}
.panel{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;margin-top:14px}
.panel-body{padding:20px}
.guard-note{margin-top:14px;padding:11px 15px;border-radius:10px;background:var(--warn-soft);font-size:12px;color:var(--warn);line-height:1.7}

.faq{margin-top:32px;max-width:720px}
.faq h2{font-size:18px;margin-bottom:4px;border:none;padding:0}
.faq-item{border-bottom:1px dashed var(--line);padding:13px 0}
.faq-item b{font-size:13.5px}
.faq-item p{margin:5px 0 0;font-size:12.5px;color:var(--ink-2);line-height:1.7}

.pay-wrap{max-width:620px;margin:28px auto 64px}
.pay-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.pay-head{padding:16px 24px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.pay-head h1{font-size:17px}
.pay-body{padding:24px}
.pay-amount-box{text-align:center;padding:4px 0 2px}
.pay-amount-box .pay-amount{font-size:36px;font-weight:700;letter-spacing:-.01em}
.pay-amount-box .pay-amount small{font-size:15px;color:var(--ink-3);font-weight:500}
.pay-amount-k{font-size:12.5px;color:var(--ink-3);margin-top:9px;max-width:36em;margin-inline:auto}
.pay-grid{display:grid;grid-template-columns:150px 1fr;gap:20px;margin-top:20px;align-items:start}
.pay-qr{background:#fff;border:1px solid var(--line);border-radius:12px;padding:10px}
.pay-qr svg{display:block;width:100%;height:auto}
.pay-field{margin-bottom:14px}
.pay-field .k{font-size:11.5px;color:var(--ink-3);letter-spacing:.04em}
.pay-field .v{font-family:ui-monospace,Consolas,monospace;font-size:13.5px;margin-top:4px;line-height:1.5}
.pay-status{margin-top:18px;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:10px;background:var(--warn-soft);font-size:13px;color:var(--warn);font-weight:600}
.spin{width:14px;height:14px;border:2px solid var(--warn);border-top-color:transparent;border-radius:50%;animation:erhspin 1s linear infinite;flex:none}
@keyframes erhspin{to{transform:rotate(360deg)}}
.pay-success{display:flex;align-items:center;gap:12px;padding:16px 18px;border-radius:10px;background:var(--good-soft);font-size:13.5px;color:var(--good)}
.pay-success .big{font-size:20px}
.pay-success b{font-size:14.5px}
.pay-notes{margin:16px 0 0;padding:0;padding-inline-start:18px;font-size:12px;color:var(--ink-3);line-height:1.9}

@media (max-width:960px){
  .acct-layout{grid-template-columns:1fr;gap:14px}
  .acct-nav{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}
  .acct-nav a{border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px}
  .tb-nav{display:none}
  .menu-btn{display:grid}
  .foot-grid{grid-template-columns:1fr 1fr;gap:26px}
  .foot-brand{grid-column:1/-1}
}
@media (max-width:768px){
  main{padding:12px 12px 28px}
  .tb-in{padding:0 12px;height:52px;gap:12px}
  .logo{font-size:15px}
  h1{font-size:18px}
  th,td{padding:8px 10px;font-size:13px}
  .cards{grid-template-columns:repeat(2,1fr);gap:8px}
  .card .v{font-size:17px}
  
  .hero{padding:34px 0 30px}
  .hero-grid{grid-template-columns:1fr;gap:28px}
  .hero-h1{font-size:27px}
  .hero-sub{font-size:14px}
  .feed-list li{grid-template-columns:1fr auto;row-gap:3px;grid-template-areas:"time price" "route route"}
  .feed-time{grid-area:time}
  .feed-price{grid-area:price}
  .feed-route{grid-area:route;flex-wrap:wrap;overflow:visible}
  .stats-band{margin:0 -12px}
  .stats-grid{grid-template-columns:1fr 1fr;padding:0 12px}
  .stat{padding:16px 14px}
  .stat:nth-child(2n){border-inline-end:none}
  .stat .v{font-size:19px}
  .steps{grid-template-columns:1fr}
  .member-strip{padding:22px 20px}
  .member-price{margin-inline-start:0;text-align:start}
  
  .detail-head{grid-template-columns:1fr;padding:18px 16px;gap:16px}
  .dh-main{text-align:center}
  .addr-line,.detail-badges,.detail-actions{justify-content:center}
  .addr-full{letter-spacing:0;font-size:clamp(10px,3.7vw,15.5px)}
  .metric-grid{grid-template-columns:1fr 1fr}
  .doc-layout{grid-template-columns:1fr;gap:14px}
  .doc-side{position:static;flex-direction:row;flex-wrap:wrap;gap:6px}
  .doc-side a{border:1px solid var(--line);border-radius:999px;padding:5px 13px;font-size:12.5px}
  .doc-article{padding:24px 18px 30px}
  .filter-search{width:100%}
  .filter-search input[type=text]{width:100%}
  .pay-grid{grid-template-columns:1fr}
  .pay-qr{max-width:180px;margin:0 auto}
  .pay-body{padding:16px}
  .pay-amount-box .pay-amount{font-size:29px}
  .auth-wrap{margin:20px auto 44px}
  .charts-row{grid-template-columns:1fr}
  .claim-empty .acts{margin-inline-start:0}
  .verify-cards{grid-template-columns:1fr}
  .plans{grid-template-columns:1fr}
  .filters{gap:8px;font-size:12.5px}
  .filters input[type=text]{width:70px}
  
  .tabs{display:grid;grid-template-columns:1fr 1fr;width:100%}
  .tabs a{text-align:center;padding:8px 6px;font-size:13px}
  .auth-card{margin:20px auto;padding:20px 16px}
  .prose{padding:18px 14px}
  .foot-in{padding:36px 12px 30px}
}
@media (max-width:620px){
  .logo small{display:none}
  .tb-login,.tb-actions .btn-cta{display:none}
  .lang-btn .lang-name{display:none}
}

/* Analytics consent banner (GDPR opt-in gate for GA4). Only rendered when GA_MEASUREMENT_ID is
   configured; ships hidden and is revealed by erh.js when no choice is stored yet. Built from
   logical properties only, so it flips correctly in RTL with no override in the block below. */
.consent{position:fixed;inset-inline:0;bottom:0;z-index:80;background:var(--surface);border-top:1px solid var(--line-strong);box-shadow:var(--shadow-lift)}
.consent-in{max-width:1120px;margin:0 auto;padding:14px 20px;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.consent p{flex:1 1 320px;margin:0;font-size:13px;line-height:1.6;color:var(--ink-2)}
.consent a{color:var(--accent-ink);text-decoration:underline}
.consent-btns{display:flex;gap:10px;flex:none}
.consent-btns button{font-family:inherit;cursor:pointer}
.consent-btns .ghost{display:inline-flex;align-items:center;padding:8px 18px;border-radius:8px;font-size:14px;font-weight:600;border:1px solid var(--line-strong);color:var(--ink-2);background:none}
.consent-btns .ghost:hover{background:var(--surface-2)}
.consent-btns .btn-cta{border:0}
@media (max-width:620px){
  .consent-in{padding:12px 14px}
  .consent-btns{width:100%}
  .consent-btns button{flex:1;justify-content:center}
}

/* RTL (fa/ar): the layout is driven by logical properties (margin/padding/border-inline-*,
   text-align:start/end, inset-inline-*) which flip automatically. The rules below cover the
   few cases logical CSS can't express. See CLAUDE.md 2.10. */
/* On-chain strings are ALWAYS left-to-right — a base58 address, the "…" mask, and amounts with a
   highlighted suffix would be visually reordered inside RTL text. Isolate them so the surrounding
   Arabic/Persian flows RTL while the address/number renders LTR and un-mangled. */
[dir="rtl"] .addr,
[dir="rtl"] .addr-full,
[dir="rtl"] .addr-link,
[dir="rtl"] .pay-amount,
[dir="rtl"] .pay-addr,
[dir="rtl"] .mono{direction:ltr;unicode-bidi:isolate}
/* transform has no logical variant: the footer link hover nudge moves "forward" = leftward in RTL. */
[dir="rtl"] .foot-col a:hover{transform:translateX(-2px)}
/* box-shadow has no logical variant: the pinned-row accent bar sits on the leading (inline-start) edge. */
[dir="rtl"] tbody tr.pinned td:first-child{box-shadow:inset -3px 0 0 var(--accent)}
