/* 由 curriculum.html 內嵌樣式抽出（v7），為了移除 CSP 的 unsafe-inline。順序與原頁面相同。 */
:root{--ink:#16243d;--muted:#65738b;--paper:#f5f8fc;--line:#e0e7f0;--navy:#1d3557;--blue:#2d6cdf;--orange:#f28c28;--teal:#159780;--white:#fff;font-family:"Noto Sans TC","Microsoft JhengHei",sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-size:16px;line-height:1.7}a{color:inherit;text-decoration:none}.wrap{width:min(1180px,calc(100% - 36px));margin:auto}.top{background:var(--navy);color:#dbe8fa;padding:8px 0;font-size:13px}.top .wrap{display:flex;justify-content:space-between}.nav{height:70px;background:#fff;border-bottom:1px solid var(--line)}.nav .wrap{height:100%;display:flex;justify-content:space-between;align-items:center}.brand{display:flex;align-items:center;gap:10px;font-weight:800}.mark{display:grid;place-items:center;width:38px;height:38px;background:var(--orange);border-radius:12px;color:#fff;font-size:20px}.brand small{display:block;color:var(--muted);font-size:12px;font-weight:500;line-height:1.2}.navright{display:flex;align-items:center;gap:19px;font-size:14px}.navright a{color:var(--blue);font-weight:800}.hero{padding:34px 0 26px}.hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:center}.kicker{font-size:13px;color:var(--orange);font-weight:900;letter-spacing:.1em}.hero h1{font-size:clamp(31px,4vw,51px);line-height:1.23;letter-spacing:-.04em;margin:10px 0 12px}.hero p{color:var(--muted);margin:0 0 17px;max-width:620px}.hero img{display:block;width:100%;height:260px;object-fit:cover;border-radius:22px;box-shadow:0 17px 38px #16243d22}.stats{display:flex;gap:10px;flex-wrap:wrap}.stat{background:#fff;border:1px solid var(--line);border-radius:11px;padding:7px 11px;color:#53627a;font-size:14px}.stat b{color:var(--blue);font-size:19px;margin-right:3px}.toolbar{background:#fff;border:1px solid var(--line);padding:17px;border-radius:17px;display:grid;grid-template-columns:1fr 230px;gap:10px;margin-bottom:16px;position:sticky;top:8px;z-index:3;box-shadow:0 5px 15px #16243d08}.toolbar input,.toolbar select{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;font:inherit;background:#fff}.modules{display:flex;gap:7px;overflow:auto;padding-bottom:1px;margin-bottom:22px}.chip{border:1px solid var(--line);background:#fff;border-radius:99px;padding:7px 12px;white-space:nowrap;color:#58677e;cursor:pointer;font:inherit}.chip.active,.chip:hover{background:var(--blue);color:#fff;border-color:var(--blue)}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:19px;min-height:285px;display:flex;flex-direction:column;box-shadow:0 7px 22px #16243d08;position:relative;overflow:hidden}.card:after{content:"";position:absolute;right:-30px;top:-34px;width:100px;height:100px;border-radius:50%;background:var(--tint,#eaf1ff)}.visual{display:flex;justify-content:space-between;align-items:start;position:relative;z-index:1}.number{font-size:28px;color:var(--blue);font-weight:900;line-height:1}.icon{font-size:29px}.tag{display:inline-block;align-self:flex-start;color:var(--blue);background:#eef4ff;border-radius:99px;padding:3px 8px;font-size:12px;margin:16px 0 8px;position:relative;z-index:1}.card h3{font-size:19px;line-height:1.4;margin:0 0 7px;position:relative;z-index:1}.card p{font-size:14px;color:var(--muted);margin:0 0 9px;position:relative;z-index:1}.action{color:#40536f;font-size:14px;margin-top:auto;padding-top:10px;border-top:1px dashed var(--line);position:relative;z-index:1}.action strong{color:var(--ink)}.card button{border:0;background:none;color:var(--blue);font:inherit;font-weight:800;cursor:pointer;padding:8px 0 0;text-align:left;position:relative;z-index:1}.detail-link{display:block;margin-top:8px;padding-top:8px;border-top:1px solid var(--line);color:var(--orange);font-size:14px;font-weight:900;position:relative;z-index:1}.card.done{border-color:#8bd1c2}.card.done button{color:var(--teal)}.empty{background:#fff;border:1px dashed var(--line);border-radius:18px;padding:38px;text-align:center;color:var(--muted);display:none}.pager{display:flex;justify-content:center;align-items:center;gap:13px;padding:27px 0 65px}.pager button{border:1px solid var(--line);background:#fff;border-radius:9px;padding:9px 13px;font:inherit;cursor:pointer;color:var(--blue)}.pager button:disabled{color:#9aa6b8;cursor:not-allowed}.pageinfo{font-size:14px;color:var(--muted)}footer{background:#111d31;color:#aab9ce;padding:24px 0;font-size:13px}footer strong{color:#fff}@media(max-width:850px){.hero-grid{grid-template-columns:1fr}.hero img{height:230px}.grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.wrap{width:calc(100% - 28px)}.top .wrap{display:block}.top span:last-child{display:none}.navright a{display:none}.hero{padding-top:26px}.hero img{height:190px}.toolbar{grid-template-columns:1fr;position:static}.grid{grid-template-columns:1fr}.card{min-height:0}.pager{padding-bottom:45px}}
/* 統一介面驗收：補足操作尺寸、鍵盤焦點與狀態可及性，不改既有版型。 */
.navright a,.chip,.card button,.pager button{min-height:44px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #174ea6;outline-offset:3px}
.hero img{transition:opacity .18s ease}.hero img.is-changing{opacity:.35}
.quality-overview{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0 24px}.quality-item{display:flex;gap:11px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:14px;padding:13px 14px}.quality-item b{display:block;font-size:15px}.quality-item p{font-size:13px;line-height:1.5;margin:2px 0 0;color:var(--muted)}.quality-count{display:grid;place-items:center;flex:0 0 42px;height:42px;border-radius:12px;font-weight:900}.quality-complete .quality-count{background:#e4f7f2;color:#087764}.quality-standard .quality-count{background:#eaf1ff;color:var(--blue)}.quality-pending .quality-count{background:#fff1d8;color:#965700}.toolbar{grid-template-columns:minmax(0,1fr) 210px 190px}.quality-badge{display:inline-flex;align-items:center;gap:5px;align-self:flex-start;border-radius:99px;padding:3px 9px;font-size:12px;font-weight:900;position:relative;z-index:1;margin:16px 0 8px}.quality-badge.complete{background:#e4f7f2;color:#087764}.quality-badge.standard{background:#eaf1ff;color:var(--blue)}.quality-badge.pending{background:#fff1d8;color:#965700}.quality-badge+.tag{margin-top:0}.card.pending{border-color:#efd49f}.quality-note{display:block;color:#7d5a1e;font-size:13px;margin-top:7px}.card.pending .detail-link{color:#965700}@media(max-width:850px){.quality-overview{grid-template-columns:1fr}.toolbar{grid-template-columns:1fr 1fr}}@media(max-width:580px){.toolbar{grid-template-columns:1fr}.quality-item{padding:12px}.quality-overview{margin-top:14px}}
.card h3 a{color:inherit}.card h3 a:hover{color:var(--blue)}.card h3 a::after{content:"";position:absolute;inset:0;z-index:0}.card .detail-link,.card button{position:relative;z-index:2}
.card .concept-snippet{font-size:14px;color:#40536f;margin:0 0 9px;position:relative;z-index:1}
.result-summary{font-size:14px;color:var(--muted);margin:-8px 0 14px}
.chip{min-height:44px}.toolbar input,.toolbar select{min-height:44px}
.guides{margin:4px 0 26px}.guides h2{font-size:22px;margin:0 0 12px}.guide-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.guide{display:flex;flex-direction:column;gap:3px;text-align:left;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 13px;font:inherit;color:var(--ink);cursor:pointer;min-height:44px}.guide:hover,.guide[aria-pressed="true"]{border-color:var(--blue);background:#f3f7ff}.guide b{font-size:15px;line-height:1.4}.guide small{color:var(--muted);font-size:12.5px;line-height:1.45}
.guide-banner{display:flex;justify-content:space-between;gap:12px;align-items:center;background:#eef4ff;border:1px solid #c9d9f5;border-radius:14px;padding:12px 16px;margin-bottom:12px;color:#1f3f7a}.guide-banner[hidden]{display:none}.guide-banner button{border:1px solid #c9d9f5;background:#fff;border-radius:10px;padding:8px 12px;font:inherit;color:var(--blue);cursor:pointer;min-height:44px}
.guide-banner button{white-space:nowrap;flex:0 0 auto}
@media(max-width:1000px){.guide-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:580px){.guide-grid{grid-template-columns:repeat(2,1fr);gap:8px}.guide small{display:none}.guide b{font-size:14px}.guide-banner{flex-wrap:wrap}}
