*{box-sizing:border-box}
:root{--fg:#1f2328;--muted:#667085;--line:#e4e7ec;--bg:#f6f7fb;--card:#fff;--pri:#ff9d00;--pri2:#e07b00;--link:#0b57d0;--danger:#d92d20}
html{-webkit-text-size-adjust:100%}
body{margin:0;font:16px/1.65 -apple-system,BlinkMacSystemFont,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans CJK SC",sans-serif;color:var(--fg);background:var(--bg)}
a{color:var(--link);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:640px;margin:0 auto;padding:20px 16px 8px}.wrap.narrow{max-width:520px;padding-top:48px}.wrap.wide{max-width:1200px}
.hero{text-align:center;padding:28px 4px 10px}
.hero h1{font-size:30px;line-height:1.25;margin:12px 0 10px;letter-spacing:.5px}
.lead{color:var(--muted);margin:0 0 6px;font-size:17px}
.badge{display:inline-block;background:#fff4e0;color:#a35a00;border:1px solid #ffd79a;border-radius:999px;padding:2px 12px;font-size:13px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px 20px;margin:16px 0;box-shadow:0 1px 2px rgba(16,24,40,.04)}
.card.hl{border-color:#ffd79a;background:#fffaf0}
.card h2{margin:0 0 8px;font-size:21px}.card h3{margin:4px 0 12px;font-size:18px}
.feats{list-style:none;margin:0;padding:0}.feats li{padding:9px 0;border-bottom:1px dashed var(--line);display:flex;flex-direction:column}
.feats li:last-child{border-bottom:none}.feats b{font-size:16px}.feats span{color:var(--muted);font-size:14.5px}
.latest{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line)}
label{display:block;font-size:14px;color:#344054;margin:12px 0 6px}
input,select,textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #d0d5dd;border-radius:10px;background:#fff;color:var(--fg)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--pri);box-shadow:0 0 0 3px rgba(255,157,0,.18)}
#invite,#code,code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:1px}
#code{font-size:22px;letter-spacing:6px;text-align:center}
button,.btn{display:inline-block;font:inherit;font-weight:600;border:none;border-radius:10px;padding:11px 18px;background:var(--pri);color:#fff;cursor:pointer;margin-top:14px;text-align:center}
form#f-email button,form#f-code button[type=submit]{width:100%}
button:hover,.btn:hover{background:var(--pri2);text-decoration:none}
button:disabled{opacity:.55;cursor:not-allowed}
button.ghost,.btn.ghost{background:#fff;color:var(--fg);border:1px solid #d0d5dd}button.ghost:hover,.btn.ghost:hover{background:#f2f4f7}
button.danger{background:var(--danger)}button.danger:hover{background:#b42318}
button.link{background:none;color:var(--link);padding:6px 4px;font-weight:500;margin-top:8px}
button.sm{padding:5px 10px;margin:0;font-size:13px}
.row{display:flex;justify-content:space-between;gap:12px;align-items:center;flex-wrap:wrap}
.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}
.hidden,.hidden-ta{display:none}
.msg{min-height:1.4em;margin:12px 0 0;font-size:14.5px}.msg.err{color:var(--danger)}.msg.ok{color:#067647}
.muted{color:var(--muted)}.small{font-size:13px}.center{text-align:center}
.done{text-align:center}.done .big{font-size:44px}
.foot{text-align:center;color:var(--muted);font-size:13px;padding:18px 12px 30px}
.codes{list-style:none;padding:0;margin:10px 0}.codes li{display:flex;flex-direction:column;padding:8px 0;border-bottom:1px dashed var(--line)}
.codes code{font-size:19px;font-weight:700}
.copybox{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px;margin-top:8px}
.tblwrap{overflow-x:auto}
.tbl{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}.tbl th,.tbl td{border-bottom:1px solid var(--line);padding:7px 8px;text-align:left;vertical-align:middle;white-space:nowrap}
.tbl th{background:#f9fafb;font-weight:600;color:#475467}
tr.st-used td,tr.st-revoked td,tr.st-expired td{color:#98a2b3}
.anav{background:#101828;color:#fff}.anav-in{max-width:1200px;margin:0 auto;padding:10px 16px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.anav a{color:#d0d5dd}.anav .brand{color:#fff;font-weight:700;margin-right:8px}.anav nav{display:flex;gap:14px;flex-wrap:wrap;flex:1}
.anav nav a.on{color:#ffb84d;font-weight:600}.anav button.link{color:#d0d5dd;margin:0}
.inline{display:inline}
.flash{max-width:1200px;margin:12px auto 0;padding:10px 14px;border-radius:10px;font-size:14px}.flash.ok{background:#ecfdf3;color:#067647;border:1px solid #abefc6}.flash.err{background:#fef3f2;color:#b42318;border:1px solid #fecdca}
.wrap .flash{margin:0 0 10px}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin:16px 0}
.stat{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.stat b{display:block;font-size:26px}.stat span{color:var(--muted);font-size:13px}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:4px 14px;align-items:end}
.grid button{margin-top:0;height:46px}
input.num{width:80px;padding:5px 8px;display:inline-block}
@media (max-width:480px){.hero h1{font-size:25px}.card{padding:16px 14px}}
.tabs{display:flex;gap:6px;margin:16px 0 0;flex-wrap:wrap}.tabs a{padding:7px 14px;border:1px solid var(--line);border-radius:10px 10px 0 0;background:#f2f4f7;color:#344054}.tabs a.on{background:#fff;font-weight:600;border-bottom-color:#fff}
.tabs+.card{margin-top:0;border-top-left-radius:0}
.pill{display:inline-block;padding:0 8px;border-radius:999px;font-size:12px;line-height:20px;background:#f2f4f7;color:#344054}
.pill.st-active,.pill.st-sent{background:#ecfdf3;color:#067647}.pill.st-failed,.pill.st-blocked{background:#fef3f2;color:#b42318}
.pill.st-unsubscribed,.pill.st-revoked{background:#f2f4f7;color:#667085}.pill.st-sending,.pill.st-pending{background:#fffaeb;color:#b54708}
.tree,.tree ul{list-style:none;margin:0;padding-left:18px}.tree{padding-left:0}.tree li{position:relative;padding:3px 0 3px 14px;border-left:1px solid #d0d5dd}
.tree li::before{content:"";position:absolute;left:0;top:14px;width:10px;border-top:1px solid #d0d5dd}
.kv{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:6px 18px;margin:8px 0 12px;font-size:14px}.kv span{color:var(--muted);margin-right:8px}
.acts{gap:8px}.acts form{margin-right:6px}.acts button{margin-top:6px}
.inline-check{display:inline;margin:0 8px 0 0;font-size:13px}.inline-check input{width:auto;display:inline}
.danger-zone{margin-top:14px;border:1px dashed #fecdca;border-radius:10px;padding:8px 12px}.danger-zone summary{cursor:pointer;color:#b42318}
td.bad{color:var(--danger);font-weight:600}.err-txt{color:#b42318;white-space:normal;max-width:360px}
tr.total td{font-weight:700;background:#fffaf0}tr.sel-row td{background:#fffaf0}
.num-tbl td:not(:first-child),.num-tbl th:not(:first-child){text-align:right}
