/* PromptCode 请求半月报 · 样式
 * 非必要且没有明确要求时，不要读取或修改本文件：它是已验收的静态样式，图表数据在 data.js，文案与表格里的数字在 index.html。
 */
body{margin:0} /* Artifact 外壳自带；独立打开时补齐 */
[hidden]{display:none!important} /* 面板用了 display:grid，不加这条 hidden 属性失效；Artifact 外壳自带这条，独立打开时靠这里 */
:root{
  --bg:#f6f7f4;--surface:#ffffff;--ink:#1c2321;--muted:#66706b;--line:#dfe3de;
  --accent:#1f6f5f;--accent-soft:#d7ebe4;--weekend:#eef1ec;--up:#1f6f5f;--down:#b4552d;
  --mono:"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"PingFang SC","Noto Sans SC",sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#141917;--surface:#1c2320;--ink:#e6ebe8;--muted:#92a09a;--line:#2d3733;
  --accent:#5fbfa6;--accent-soft:#1f3a33;--weekend:#1a211e;--up:#5fbfa6;--down:#e08a5f;}}
:root[data-theme="dark"]{
  --bg:#141917;--surface:#1c2320;--ink:#e6ebe8;--muted:#92a09a;--line:#2d3733;
  --accent:#5fbfa6;--accent-soft:#1f3a33;--weekend:#1a211e;--up:#5fbfa6;--down:#e08a5f;}
body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-size:14px;line-height:1.5;padding-inline:16px;padding-block:24px 40px}
.wrap{max-width:960px;margin:0 auto;display:grid;gap:20px}
h1{font-size:20px;font-weight:600;margin:0;text-wrap:balance}
.sub{color:var(--muted);margin:2px 0 0;font-size:13px}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:12px 14px}
.kpi .l{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.kpi .v{font-family:var(--mono);font-size:22px;font-weight:500;margin-top:4px;font-variant-numeric:tabular-nums}
.kpi .d{font-size:12px;color:var(--muted)}
section{background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:16px}
section h2{font-size:14px;font-weight:600;margin:0 0 10px}
.chart{width:100%;height:auto;display:block}
.chart text{font-family:var(--mono);font-size:11px;fill:var(--muted)}
.chart .grid{stroke:var(--line);stroke-width:1}
.chart .wk{fill:var(--weekend)}
.chart .line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round}
.chart .area{fill:var(--accent);opacity:.12}
.chart .pt{fill:var(--accent);cursor:pointer;stroke:var(--surface);stroke-width:2}
.chart .pt.sel{r:6;fill:var(--ink)}
.chart .sel-line{stroke:var(--ink);stroke-dasharray:3 3;stroke-width:1}
.chart .lbl{fill:var(--ink);font-weight:500}
.days{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.days button{font:500 12px var(--mono);padding:5px 9px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:4px;cursor:pointer}
.days button.wk{color:var(--muted)}
.days button.sel{background:var(--accent);border-color:var(--accent);color:#fff}
.days button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.tbl{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}
th,td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}
th{font-size:11px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);font-weight:500}
td.c,th.c{text-align:left;font-family:var(--mono);font-size:12.5px}
td.n{font-family:var(--mono)}
td.rk{color:var(--muted);width:2ch}
.bar{display:inline-block;height:8px;background:var(--accent-soft);vertical-align:middle;border-radius:2px;margin-left:6px}
.bar i{display:block;height:100%;background:var(--accent);border-radius:2px}
.up{color:var(--up)}.down{color:var(--down)}.new{color:var(--muted);font-size:11px}
.foot{color:var(--muted);font-size:12px}
@media (max-width:520px){.kpi .v{font-size:18px}}
:root{--c1:#2a78d6;--c2:#eb6834;--c3:#1baf7a;--c4:#eda100;--c5:#e87ba4;--c6:#008300;--c7:#4a3aa7;--c8:#e34948;--oth:#c3cac5;--ink2:#3d4541}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--c8:#e66767;--oth:#46514c;--ink2:#c4cdc8}}
:root[data-theme="dark"]{--c1:#3987e5;--c2:#d95926;--c3:#199e70;--c4:#c98500;--c5:#d55181;--c6:#008300;--c7:#9085e9;--c8:#e66767;--oth:#46514c;--ink2:#c4cdc8}
.tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}
.tabs button{font:500 14px var(--sans);background:none;border:0;border-bottom:2px solid transparent;padding:9px 12px;color:var(--muted);cursor:pointer;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tabs button:hover{color:var(--ink)}
.tabs button:focus-visible,.chips button:focus-visible,.showall:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.panel{display:grid;gap:20px;min-width:0}
.wrap>*,.panel>*{min-width:0}
.brief{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px;padding:14px 18px}
.brief h2{font-size:14px;margin:0 0 8px}
.pts{margin:0;padding-left:18px;display:grid;gap:7px;color:var(--ink2);font-size:13.5px;line-height:1.65}
.pts b{color:var(--ink);font-weight:600}
.pts code,.sub code,.foot code{font-family:var(--mono);font-size:12px}
.tl,.sm{width:100%;max-width:100%;height:auto;display:block}
.tl text,.sm text{font-family:var(--sans)}
.tl-ax{stroke:var(--muted);stroke-width:2}.tl-ar{fill:var(--muted)}.tl-tk{stroke:var(--muted)}
.tl-d{font:10.5px var(--mono)!important;fill:var(--muted)}
.tl-k{font-size:12px;font-weight:600}.tl-t{font-size:11.5px;fill:var(--ink2)}
.tl-ln{stroke-width:1;stroke-dasharray:3 3}
.sm .wk{fill:var(--weekend)}.sm .grid{stroke:var(--line)}
.sm .ax{font:10.5px var(--mono)!important;fill:var(--muted)}
.sm .pt-t{font-size:12.5px;font-weight:600;fill:var(--ink)}
.sm .lg-t{font-size:11px;fill:var(--ink2)}
.sm .end{font-size:10.5px;font-weight:500}
.sm .nt{font:500 10.5px var(--mono)!important;fill:var(--ink)}
.sm .ms{stroke-width:1.2;stroke-dasharray:4 3}
.sm .ms-t{font:600 11px var(--mono)!important}
.sm .xh{stroke:var(--ink);stroke-width:1;stroke-dasharray:2 2}
.tip{position:fixed;pointer-events:none;background:var(--surface);border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:12px/1.5 var(--sans);color:var(--ink);box-shadow:0 6px 18px rgba(0,0,0,.14);z-index:30;max-width:300px}
.tip .tp{margin-top:6px;color:var(--muted);font-size:11px}
.tip .tm{font-weight:600;margin-top:2px}
.tip i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:5px}
.tip b{font-family:var(--mono);font-weight:500}
i.sw{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:7px;vertical-align:0}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}
.chips button{font:500 12px var(--sans);padding:5px 10px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:999px;cursor:pointer}
.chips button.sel{background:var(--accent);border-color:var(--accent);color:#fff}
.gp{display:inline-block;font:500 11.5px var(--sans);padding:1px 8px;border-radius:999px;background:var(--weekend);color:var(--ink)}
.gp.same{background:var(--accent-soft);color:var(--accent)}
.showall{font:500 12px var(--sans);margin-top:10px;padding:6px 12px;border:1px solid var(--line);background:transparent;color:var(--ink);border-radius:4px;cursor:pointer}
.sub a,.foot a{color:var(--accent)}
td.pc{color:var(--muted)}
.hint{font-size:12px;color:var(--muted);margin:6px 0 0}
