:root{--c:#1a73e8;--bg:#f7f9fc;--tx:#1f2937;--bd:#e2e8f0}
*{box-sizing:border-box}body{margin:0;font:16px/1.7 system-ui,"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;color:var(--tx);background:var(--bg)}
a{color:var(--c)}main{max-width:1000px;margin:0 auto;padding:1rem}
.site-header{display:flex;justify-content:space-between;align-items:center;padding:.6rem 1rem;background:#fff;border-bottom:1px solid var(--bd);flex-wrap:wrap}
.site-header nav a{margin-left:1rem;text-decoration:none}.logo{font-weight:700;text-decoration:none}
.site-footer{text-align:center;color:#64748b;font-size:.9rem;padding:2rem 1rem}
.home-hero{text-align:center;padding:2rem 0}.home-hero h1{font-size:clamp(1.6rem,5vw,2.4rem);margin:.2em}
.btn{display:inline-block;background:var(--c);color:#fff;border:0;border-radius:8px;padding:.6rem 1.1rem;font:inherit;text-decoration:none;cursor:pointer}
.btn.alt{background:#fff;color:var(--c);border:1px solid var(--c)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:1rem}
.card{display:block;background:#fff;border:1px solid var(--bd);border-radius:12px;padding:1rem;text-decoration:none;color:inherit}
.card:hover{box-shadow:0 4px 14px #0001}.card h3{margin:.3em 0}.card p{margin:0;color:#475569;font-size:.95rem}
.tag{font-size:.8rem;color:#64748b}.crumbs{font-size:.9rem;color:#64748b}.crumbs a{text-decoration:none}
.toolbar{display:flex;gap:.8rem;flex-wrap:wrap;margin:1rem 0}.toolbar input{flex:1;min-width:200px;padding:.6rem;border:1px solid var(--bd);border-radius:8px;font:inherit}
.chips{display:flex;gap:.4rem;flex-wrap:wrap}.chips button{border:1px solid var(--bd);background:#fff;border-radius:999px;padding:.3rem .9rem;font:inherit;cursor:pointer}.chips button.on{background:var(--c);color:#fff}
.path li{margin:.3rem 0}
/* 廣告：固定高度避免 CLS，低調標示，與內容保持間距 */
.ad-wrap{margin:1.2rem auto;max-width:728px;text-align:center}
.ad-label{display:block;font-size:.7rem;color:#94a3b8;line-height:1.2}
.ad-slot{min-height:100px;background:#eef2f7;border-radius:6px;overflow:hidden}
@media(min-width:768px){.ad-slot{min-height:90px}}
.ad-slot:empty::after{content:"";}
/* 週期表 */
.pt-wrap{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:900px){.pt-wrap{grid-template-columns:1fr 240px}}
#pt{display:grid;grid-template-columns:repeat(18,minmax(0,1fr));gap:3px;overflow-x:auto}
.el{border:1px solid #0002;border-radius:4px;padding:2px;text-align:center;cursor:pointer;font:inherit;min-width:34px;line-height:1.15}
.el small{display:block;font-size:.6rem}.el b{font-size:.95rem}.el.sel{outline:3px solid #111}
.detail{background:#fff;border:1px solid var(--bd);border-radius:12px;padding:1rem;align-self:start}.detail h2{margin:.2em 0}
.c-nonmetal{background:#bbf7d0}.c-noble{background:#e9d5ff}.c-alkali{background:#fecaca}.c-alkaline{background:#fed7aa}.c-metalloid{background:#fef08a}.c-halogen{background:#bae6fd}.c-transition{background:#cbd5e1}.c-post{background:#d9f99d}
.legend-dot{display:inline-block;width:.9em;height:.9em;border-radius:3px;margin-right:.3em;vertical-align:-1px}
/* 學習單 */
fieldset{border:1px solid var(--bd);background:#fff;border-radius:10px;margin:.8rem 0}fieldset label{display:block;padding:.2rem 0}
fieldset.ok{border-color:#16a34a}fieldset.bad{border-color:#dc2626}
@media print{.site-header,.site-footer,.ad-wrap,.btn{display:none}}
/* 新視窗模擬頁：全螢幕 + 底部 50px 可關閉廣告條（不遮擋內容） */
body.run{display:flex;flex-direction:column;height:100vh;height:100dvh;margin:0}
.run-bar{display:flex;justify-content:space-between;padding:.4rem .8rem;background:#fff;border-bottom:1px solid var(--bd)}.run-bar a{margin-left:.6rem}
.run-main{flex:1;overflow:auto;max-width:none;display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;align-items:flex-start;width:100%}
.run-main canvas{max-width:100%;height:auto;background:#fff;border:1px solid var(--bd);border-radius:8px}
.panel{background:#fff;border:1px solid var(--bd);border-radius:10px;padding:1rem;min-width:240px}.panel label{display:block;margin:.5rem 0}.panel input[type=range]{width:100%}
.ph-big{font-size:1.5rem;font-weight:700}
#beaker{width:160px;height:200px;border:3px solid #64748b;border-top:0;border-radius:0 0 24px 24px;background:#7fbf7f;transition:background .2s}
.phview{display:flex;gap:1.5rem;flex-wrap:wrap;align-items:flex-end}
.run-ad{flex:none;height:50px;display:flex;align-items:center;justify-content:center;gap:.5rem;background:#fff;border-top:1px solid var(--bd);position:relative}
.run-ad .ad-slot-bar{min-height:50px;height:50px;width:320px;max-width:calc(100% - 90px)}
.run-ad .ad-label{position:absolute;left:6px;top:2px}.run-ad button{border:0;background:none;font-size:1rem;cursor:pointer;color:#64748b}
.run-ad.hide{display:none}
#consent{position:fixed;left:0;right:0;bottom:0;background:#111;color:#fff;padding:.7rem 1rem;display:flex;gap:.6rem;align-items:center;flex-wrap:wrap;z-index:9;font-size:.9rem}
/* 嵌入式模擬（單檔抽出）在新視窗頁填滿可用區域 */
.run-main:has(>.sim-crt),.run-main:has(>.sim-rf){display:block;padding:0}
