/* Scoped to the tutorial source-analysis component. */
#source-analysis { padding-top:24px; padding-bottom:8px; clear:both; scroll-margin-top:90px; }
#source-analysis, #source-analysis * { box-sizing:border-box; }
.tutorial-site #source-analysis { padding-left:0; padding-right:0; width:100%; }
#source-analysis .source-analysis-disclosure { border:1px solid #cedcde; border-top:3px solid #2fc1ac; border-radius:4px; background:#fff; color:#243a43; text-align:left; }
#source-analysis summary { display:flex; align-items:center; justify-content:space-between; gap:20px; padding:22px 24px; cursor:pointer; list-style:none; }
#source-analysis summary::-webkit-details-marker { display:none; }
#source-analysis summary::marker { content:""; }
#source-analysis summary:hover { background:#f4fbf9; }
#source-analysis summary:focus-visible, #source-analysis pre:focus-visible, #source-analysis a:focus-visible { outline:3px solid #247a6e; outline-offset:4px; }
#source-analysis .source-analysis-heading { display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 20px; }
#source-analysis .source-analysis-title { font-size:24px; font-weight:600; line-height:1.45; }
#source-analysis .source-analysis-subtitle { color:#53656d; font-size:14px; line-height:1.6; }
#source-analysis .source-analysis-toggle { display:flex; align-items:center; flex-shrink:0; gap:10px; color:#176b5d; font-size:14px; }
#source-analysis .source-analysis-toggle::after { content:""; display:inline-block; width:8px; height:8px; border-right:2px solid currentColor; border-bottom:2px solid currentColor; transform:rotate(45deg); margin-top:-4px; }
#source-analysis .source-analysis-collapse { display:none; }
#source-analysis details[open] .source-analysis-expand { display:none; }
#source-analysis details[open] .source-analysis-collapse { display:inline; }
#source-analysis details[open] .source-analysis-toggle::after { transform:rotate(225deg); margin-top:4px; }
#source-analysis details[open] summary { border-bottom:1px solid #e0e8e9; }
#source-analysis .source-analysis-content { padding:22px 24px 18px; min-width:0; }
#source-analysis .source-analysis-intro, #source-analysis .source-analysis-explanation, #source-analysis .source-analysis-credit { font-size:14px; line-height:1.85; text-align:left; }
#source-analysis .source-analysis-intro { margin:0 0 20px; }
#source-analysis .source-analysis-code-title { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 16px; padding:10px 16px; border:1px solid #dae3e6; border-bottom:0; background:#edf3f5; color:#53656d; font-size:12px; overflow-wrap:anywhere; }
#source-analysis .source-analysis-code { margin:0 0 18px; padding:18px; border:1px solid #dae3e6; border-radius:0; background:#f5f8fa; color:#243a43; font-size:14px; line-height:1.85; text-align:left; overflow:auto; white-space:pre; tab-size:4; max-width:100%; max-height:680px; max-height:min(680px, 72vh); }
#source-analysis .source-analysis-code, #source-analysis .source-analysis-code * { font-family:Consolas, "Microsoft YaHei", monospace; }
#source-analysis .source-analysis-code code { font-size:inherit; color:inherit; padding:0; background:transparent; white-space:pre; }
#source-analysis .sa-comment { color:#627278; }
#source-analysis .sa-keyword { color:#74479b; font-weight:600; }
#source-analysis .sa-number { color:#805214; }
#source-analysis .sa-string { color:#156650; }
#source-analysis .source-analysis-explanation { color:#53656d; margin:0 0 12px; }
#source-analysis .source-analysis-reading { margin:0 0 24px; padding-left:22px; color:#53656d; font-size:14px; line-height:1.8; list-style:decimal; text-align:left; }
#source-analysis .source-analysis-reading li { display:list-item; margin:0 0 10px; padding-left:3px; list-style:decimal; text-align:left; }
#source-analysis .source-analysis-reading strong { display:block; color:#243a43; font-weight:600; }
#source-analysis .source-analysis-output { margin:16px 0; color:#53656d; font-size:13px; }
#source-analysis .source-analysis-output pre { margin:8px 0 0; padding:12px 16px; border:1px solid #dae3e6; background:#f5f8fa; color:#243a43; font:13px/1.8 Consolas,monospace; text-align:left; overflow:auto; white-space:pre; }
#source-analysis .source-analysis-credit { margin:0; padding-top:14px; border-top:1px solid #e0e8e9; }
#source-analysis .source-analysis-credit a { color:#176b5d; text-decoration:underline; text-underline-offset:3px; }
@media (max-width:600px) {
  #source-analysis summary { align-items:flex-start; gap:12px; padding:18px 16px; }
  #source-analysis .source-analysis-heading { display:block; }
  #source-analysis .source-analysis-title { display:block; font-size:21px; }
  #source-analysis .source-analysis-subtitle { display:block; margin-top:6px; font-size:13px; }
  #source-analysis .source-analysis-toggle { font-size:13px; padding-top:5px; }
  #source-analysis .source-analysis-content { padding:18px 16px; }
  #source-analysis .source-analysis-code { padding:14px; font-size:13px; }
  #source-analysis .source-analysis-code-title { padding:10px 14px; }
}
