:root { --bg:#0b1020; --card:#141b34; --line:#27325f; --muted:#9aa6d1; --text:#e8ecff; }
* { box-sizing: border-box; }
body { font-family: "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Noto Sans SC", "Source Han Sans SC", -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; background:var(--bg); color:var(--text); margin:0; }
a { color:#8bb4ff; }
.wrap { max-width: 1180px; margin: 24px auto; padding: 0 16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:14px; padding:12px; }
.muted { color:var(--muted); font-size:13px; }
.err { color:#ffb8a1; white-space:pre-wrap; margin-top:10px; line-height:1.7; }
.warn-banner { display:none; margin-top:16px; padding:12px 14px; border-radius:12px; border:1px solid #6b4d16; background:linear-gradient(180deg,#33250d,#22190b); color:#ffd89a; line-height:1.6; }
.warn-banner.show { display:block; }
.warn-banner strong { color:#ffe7ba; }
.empty-state { padding:24px 18px; text-align:center; color:var(--muted); background:var(--card); border:1px dashed #42508d; border-radius:14px; }
.empty-state .emoji { font-size:28px; margin-bottom:8px; }
.empty-state .title { font-weight:700; color:var(--text); margin-bottom:6px; }
.empty-state .desc { font-size:13px; line-height:1.6; }
