:root{
  --bg:#0e1217; --panel:#171e26; --panel2:#1d2632; --border:#2a3644;
  --text:#e6edf3; --muted:#8b98a5; --accent:#4da3ff; --teal:#3fd0a8;
  --red:#f0524f; --amber:#f2b13d; --purple:#9d7bff;
}
*{box-sizing:border-box;margin:0;padding:0}
body{background:var(--bg);color:var(--text);font-family:"Microsoft YaHei","PingFang SC","Segoe UI",sans-serif;line-height:1.8;padding-bottom:60px}
.wrap{max-width:880px;margin:0 auto;padding:28px 20px}
header{margin-bottom:18px}
.kicker{color:var(--accent);font-size:12px;letter-spacing:4px;font-weight:600}
h1{font-size:30px;margin:6px 0 4px}
.date{color:var(--muted);font-size:14px}
.ttsbar{position:sticky;top:8px;z-index:10;background:rgba(23,30,38,.96);border:1px solid var(--border);border-radius:12px;padding:10px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;box-shadow:0 6px 24px rgba(0,0,0,.35);margin-bottom:22px}
.ttsbar button{background:var(--accent);color:#04121f;border:none;border-radius:8px;padding:7px 16px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit}
.ttsbar button:hover{filter:brightness(1.12)}
.ttsbar button.gray{background:var(--panel2);color:var(--text);border:1px solid var(--border)}
.ttsbar button.warn{background:rgba(240,82,79,.16);color:#ffb4b2;border:1px solid rgba(240,82,79,.48)}
.ttsbar label{color:var(--muted);font-size:13px;display:flex;align-items:center;gap:6px}
.ttsbar select{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:4px 6px;font-family:inherit}
h2{font-size:20px;margin:34px 0 14px;padding-left:12px;border-left:4px solid var(--accent)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:14px 16px}
.kpi .v{font-size:24px;font-weight:700;color:var(--accent)}
.kpi .v.up{color:var(--red)}
.kpi .v.teal{color:var(--teal)}
.kpi .t{font-size:12px;color:var(--muted);margin-top:2px}
.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.chip{display:inline-block;font-size:11px;padding:1px 9px;border-radius:99px;margin-right:8px;font-weight:600}
.chip.reg{background:rgba(240,82,79,.15);color:var(--red)}
.chip.data{background:rgba(77,163,255,.15);color:var(--accent)}
.chip.co{background:rgba(61,208,168,.15);color:var(--teal)}
.chip.pay{background:rgba(242,177,61,.15);color:var(--amber)}
.news-title{font-size:16px;font-weight:700;margin:6px 0 4px}
.src{color:var(--muted);font-size:12px;margin-top:6px}
p[data-tts],div[data-tts]{padding:8px 12px;border-left:3px solid transparent;border-radius:8px;transition:background .3s}
.reading{background:rgba(77,163,255,.10)!important;border-left-color:var(--accent)!important}
.chartbox{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;margin-bottom:14px}
.chartbox h3{font-size:15px;margin-bottom:4px}
.chartbox .cap{color:var(--muted);font-size:12px;margin-bottom:8px}
svg{width:100%;height:auto;display:block}
footer{margin-top:40px;padding-top:16px;border-top:1px solid var(--border);color:var(--muted);font-size:12px;line-height:1.9}
.note{background:var(--panel2);border:1px dashed var(--border);border-radius:10px;padding:12px 16px;font-size:13px;color:var(--muted);margin-top:14px}
ol.watch{list-style:none;counter-reset:w}
ol.watch li{background:var(--panel);border:1px solid var(--border);border-radius:10px;padding:12px 16px;margin-bottom:10px;counter-increment:w;display:flex;gap:12px}
ol.watch li::before{content:counter(w);flex:0 0 26px;height:26px;background:var(--accent);color:#04121f;border-radius:8px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}
ol.watch p{flex:1}
#g4f-cake-panel{display:none}
.provider-config{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px 0 16px;margin-bottom:16px;border-bottom:1px solid var(--border)}
.provider-config label{display:flex;flex-direction:column;gap:3px;color:var(--muted);font-size:12px;min-width:130px}
.provider-config label[hidden]{display:none}
.provider-config select,.provider-config input{background:var(--panel2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:6px 8px;font:inherit;font-size:14px;min-height:36px;max-width:100%}
.provider-config button{background:var(--accent);color:#04121f;border:0;border-radius:6px;padding:6px 14px;min-height:36px;font:inherit;font-size:14px;font-weight:600;cursor:pointer}
.provider-config button:disabled{opacity:.55;cursor:default}
#configStatus{color:var(--muted);font-size:12px;align-self:center;min-width:0;width:100%;display:flex;flex-wrap:wrap;gap:4px 14px;overflow-wrap:anywhere}
#configStatus .statItem{min-width:0}
@media(max-width:600px){.provider-config label{flex:1 1 140px}.provider-config select,.provider-config input{width:100%}}