/* shared.css — 所有投影片章節共用 */

.back-btn{position:fixed;top:12px;left:14px;z-index:1000;background:rgba(255,255,255,.92);border:1px solid #e2e8f0;border-radius:6px;padding:.3rem .8rem;font-size:.78rem;color:#64748b;text-decoration:none;font-family:-apple-system,'Noto Sans TC',sans-serif;backdrop-filter:blur(6px);transition:color .15s;}
.back-btn:hover{color:#2563eb;}

.reveal{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI','Noto Sans TC','PingFang TC','Microsoft JhengHei',sans-serif;}
.reveal h1,.reveal h2,.reveal h3,.reveal h4{color:#1e293b;text-transform:none;font-weight:700;}
.reveal h1{font-size:3rem;line-height:1.2;}
.reveal h2{font-size:1.9rem;margin-bottom:.75rem;}
.reveal h3{font-size:1.25rem;margin-bottom:.5rem;}
.reveal section{text-align:left;}
.reveal p{font-size:.95rem;margin:.4rem 0 .7rem;line-height:1.7;}
.reveal ul,.reveal ol{margin-left:1.4rem;font-size:.92rem;}
.reveal li{margin-bottom:.4rem;line-height:1.65;}
.reveal strong{font-weight:700;}

.reveal code{background:#f1f5f9;border:1px solid #cbd5e1;border-radius:4px;padding:.1em .4em;font-size:.82em;color:#be123c;font-family:'Fira Code','Cascadia Code',Consolas,monospace;}
.reveal pre{background:#1e293b;border-radius:8px;width:100%;margin:.6rem auto;box-shadow:none;}
.reveal pre code{background:none;border:none;color:#e2e8f0;font-size:.82rem;padding:1rem 1.25rem;max-height:330px;overflow-y:auto;line-height:1.6;}

.reveal table{width:100%;font-size:.83rem;border-collapse:collapse;}
.reveal table th{background:#f8fafc;padding:.55rem .85rem;border:1px solid #e2e8f0;font-weight:600;}
.reveal table td{padding:.55rem .85rem;border:1px solid #e2e8f0;vertical-align:top;}
.reveal table tr:nth-child(even) td{background:#fafbfc;}

/* Callouts */
.callout{border-left:4px solid;padding:.7rem 1rem;border-radius:0 6px 6px 0;font-size:.85rem;margin:.6rem 0;}
.callout .ct{font-weight:700;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem;}
.callout p{margin:0;font-size:.85rem;}
.callout ul{margin:.25rem 0 0 1.2rem;font-size:.85rem;}
.callout-info{border-color:#2563eb;background:#eff6ff;}.callout-info .ct{color:#1d4ed8;}
.callout-tip{border-color:#16a34a;background:#f0fdf4;}.callout-tip .ct{color:#15803d;}
.callout-warning{border-color:#d97706;background:#fffbeb;}.callout-warning .ct{color:#b45309;}
.callout-danger{border-color:#dc2626;background:#fef2f2;}.callout-danger .ct{color:#991b1b;}

/* Slide tag */
.stag{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:#2563eb;font-weight:700;margin-bottom:.5rem;}

/* Two columns */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:1rem;}
.two-col .col{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.85rem 1rem;}
.two-col .col h4{margin:0 0 .4rem;font-size:.83rem;color:#64748b;}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;}
.three-col .col{background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.75rem .9rem;}
.three-col .col h4{margin:0 0 .35rem;font-size:.8rem;color:#64748b;}

/* Tabs */
.tab-group{margin:.6rem 0;}
.tab-buttons{display:flex;border-bottom:2px solid #e2e8f0;}
.tab-btn{padding:.38rem 1rem;border:none;background:none;cursor:pointer;font-size:.82rem;color:#64748b;border-bottom:2px solid transparent;margin-bottom:-2px;transition:.15s;font-family:inherit;}
.tab-btn.active{color:#2563eb;border-bottom-color:#2563eb;font-weight:600;}
.tab-content{display:none;padding:.6rem 0 0;}
.tab-content.active{display:block;}

/* Steps */
.steps{counter-reset:s;list-style:none;margin:.5rem 0;padding:0;}
.steps li{counter-increment:s;display:flex;gap:.6rem;align-items:flex-start;margin-bottom:.5rem;font-size:.88rem;}
.steps li::before{content:counter(s);min-width:1.5rem;height:1.5rem;background:#2563eb;color:white;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.7rem;flex-shrink:0;margin-top:.1rem;}

/* Cover */
.cover-num{font-size:.85rem;font-weight:600;color:#2563eb;margin-bottom:1rem;letter-spacing:.05em;}
.cover-sub{font-size:1.1rem!important;color:#64748b!important;margin-top:.75rem!important;}

/* End links */
.end-links{display:flex;gap:1rem;margin-top:1.5rem;}
.end-link{padding:.55rem 1.25rem;border-radius:8px;font-weight:600;font-size:.9rem;text-decoration:none;}
.end-link.primary{background:#2563eb;color:white;}.end-link.primary:hover{background:#1d4ed8;}
.end-link.secondary{border:1px solid #e2e8f0;color:#1e293b;}.end-link.secondary:hover{background:#f8fafc;}

/* Reveal overrides */
.reveal .slides section{padding:2rem 2.5rem;}
.reveal .progress{color:#2563eb;}
.reveal .controls{color:#2563eb;}

/* ── Scratch Blocks ── */
.sb{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .9rem;border-radius:6px;font-size:.85rem;font-weight:600;margin:.2rem 0;color:white;white-space:nowrap;}
.sb-looks{background:#9966FF;}
.sb-control{background:#FFAB19;}
.sb-operators{background:#59C059;}
.sb-variables{background:#FF8C1A;}
.sb-sensing{background:#5CB1D6;}
.sb-myblocks{background:#FF6680;}

/* Scratch vs Python comparison */
.cmp{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:center;margin:.75rem 0;background:#f8fafc;border:1px solid #e2e8f0;border-radius:8px;padding:.85rem 1rem;}
.cmp-lbl{font-size:.68rem;text-transform:uppercase;letter-spacing:.08em;color:#64748b;font-weight:600;margin-bottom:.3rem;}
.cmp-arrow{font-size:1.5rem;color:#94a3b8;text-align:center;}

/* Output box */
.output{background:#f8fafc;border:1px solid #e2e8f0;border-radius:6px;padding:.75rem 1rem;font-family:'Fira Code',Consolas,monospace;font-size:.85rem;color:#1e293b;margin:.5rem 0;}
.output::before{content:'輸出：';display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;color:#94a3b8;margin-bottom:.3rem;font-family:inherit;}
