:root{--ink:#102331;--muted:#62727b;--paper:#f4f7f5;--card:#fff;--line:#d8e3df;--teal:#159a91;--teal-soft:#dff3ef;--amber:#d9852a;--amber-soft:#fff0d9;--navy:#153a50;--shadow:0 10px 28px rgba(16,35,49,.07)}*{box-sizing:border-box}html,body{margin:0;background:var(--paper);color:var(--ink);font-family:"Microsoft YaHei","Noto Sans SC",sans-serif}body{min-height:100vh}.wrap{max-width:1480px;margin:0 auto;padding:30px 28px 44px}.mast{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;border-bottom:1px solid var(--line);padding-bottom:22px}.eyebrow{font-size:12px;letter-spacing:.12em;color:var(--teal);font-weight:800}.mast h1{font-family:Georgia,"Songti SC",serif;font-size:38px;line-height:1.15;margin:8px 0 7px;letter-spacing:-.02em}.mast p{margin:0;color:var(--muted);font-size:14px}.rule-note{font-size:12px;color:var(--muted);text-align:right;line-height:1.7}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:20px 0}.metric{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:12px;padding:14px 16px}.metric b{font-size:25px;display:block;color:var(--navy)}.metric span{font-size:12px;color:var(--muted)}.board{background:var(--card);border:1px solid var(--line);box-shadow:var(--shadow);border-radius:16px;overflow:hidden}.board-head{display:grid;grid-template-columns:88px minmax(210px,1.2fr) minmax(100px,.5fr) 94px 116px minmax(250px,1.6fr) 92px;gap:12px;padding:12px 18px;background:#edf5f2;color:#557079;font-size:11px;font-weight:800;letter-spacing:.04em}.project{display:grid;grid-template-columns:88px minmax(210px,1.2fr) minmax(100px,.5fr) 94px 116px minmax(250px,1.6fr) 92px;gap:12px;align-items:start;padding:18px;border-top:1px solid var(--line);background:#fff}.project:first-of-type{border-top:0}.province{font-weight:800;color:var(--navy);font-size:13px}.province:before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--teal);margin:0 7px 1px 0}.school{font-weight:800;font-size:14px;line-height:1.45}.project-name a{color:var(--ink);font-weight:800;text-decoration:none;line-height:1.45}.project-name a:hover{text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:3px}.project-name small{display:block;margin-top:4px;color:var(--muted);font-size:11px}.status{display:inline-block;border-radius:999px;padding:4px 9px;font-size:11px;font-weight:800;white-space:nowrap}.status.tender{background:var(--amber-soft);color:#9a5c16}.status.award{background:var(--teal-soft);color:#08766f}.date{font-size:12px;color:var(--muted);line-height:1.4}.amount strong{font-size:20px;color:var(--navy);white-space:nowrap}.amount small{display:block;font-size:10px;color:var(--muted);margin-top:2px}.summary{font-size:12px;line-height:1.6;color:#314852}.summary .chip{display:inline-block;background:#eef4f1;border:1px solid #dbe8e3;color:#416069;border-radius:999px;padding:2px 7px;margin:2px 3px 2px 0;font-size:10px}.detail-btn{border:1px solid var(--navy);background:transparent;color:var(--navy);border-radius:8px;padding:7px 9px;cursor:pointer;font-size:11px;font-weight:800}.detail-btn:hover,.detail-btn:focus{background:var(--navy);color:#fff;outline:none}.detail-btn[aria-expanded=true]{background:var(--navy);color:#fff}.detail{display:none;border-top:1px dashed var(--line);background:#fbfdfc;padding:16px 18px 18px}.detail.open{display:block}.detail-top{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:10px}.detail h3{margin:0;font-size:14px}.detail-note{font-size:11px;color:var(--muted);line-height:1.6;max-width:680px;text-align:right}.item-table{width:100%;border-collapse:collapse;font-size:12px}.item-table th,.item-table td{padding:8px 9px;border-bottom:1px solid #e3ece8;text-align:left;vertical-align:top}.item-table th{font-size:11px;color:#557079;background:#f0f6f3}.item-table td:last-child{color:var(--muted);font-size:11px}.type{display:inline-block;padding:3px 7px;border-radius:999px;font-size:10px;font-weight:800}.type.core{background:#e1f1f3;color:#176c78}.type.platform{background:#dff3ef;color:#08766f}.type.course{background:#fff0d9;color:#95601d}.type.software{background:#e9e5f8;color:#5b4a93}.type.support{background:#edf0f1;color:#5d6a70}.empty{padding:14px;color:var(--muted);font-size:12px}.footer{padding-top:16px;color:var(--muted);font-size:11px;text-align:right}@media(max-width:1100px){.board-head{display:none}.project{grid-template-columns:88px 1fr 105px 92px;gap:10px}.project .project-name{grid-column:2/4}.project .summary{grid-column:2/4}.project .detail-btn{grid-column:4;grid-row:1}.project .date{grid-column:2}.project .amount{grid-column:3}.project .status{grid-column:4;grid-row:2;justify-self:start}}@media(max-width:680px){.wrap{padding:20px 12px 30px}.mast{display:block}.mast h1{font-size:30px}.rule-note{text-align:left;margin-top:10px}.metrics{grid-template-columns:repeat(2,1fr)}.project{grid-template-columns:78px 1fr 84px;gap:9px;padding:14px}.project .project-name{grid-column:2/4}.project .summary{grid-column:1/4}.project .date{grid-column:1/2}.project .amount{grid-column:2/3}.project .status{grid-column:3;grid-row:3}.project .detail-btn{grid-column:3;grid-row:1}.detail-top{display:block}.detail-note{text-align:left;margin-top:5px}.item-table{min-width:700px}.detail{overflow:auto}}
