:root{--cream:#f9f6f0;--jade:#1f8a70;--jade-dark:#16634f;--verm:#e04a36;--charcoal:#232931;--muted:#66706d;--border:#dedfd8;--soft:#eaf3ee;--font:Outfit,system-ui,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--charcoal);font-family:var(--font);font-size:16px;line-height:1.5}button,input,select{font:inherit}button,a,input,select{touch-action:manipulation}a{color:var(--jade-dark);text-decoration:none}a:hover{text-decoration:underline}button{cursor:pointer}button:disabled{cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,.table-scroll:focus-visible{outline:3px solid var(--verm);outline-offset:3px}.header{background:#fff;border-bottom:1px solid var(--border)}.header-inner{max-width:1560px;margin:auto;min-height:89px;padding:15px 42px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center}.brand img{object-fit:contain}.header-right{display:flex;gap:28px;align-items:center}.resource-label,.eyebrow{font-size:.75rem;letter-spacing:.14em;font-weight:700}.resource-label{color:var(--muted)}.home-link{font-size:.9rem;font-weight:600;border:1px solid var(--border);padding:10px 17px;border-radius:8px}main{max-width:1560px;margin:auto;padding:35px 42px 0}.intro{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px;gap:24px}.eyebrow{color:var(--jade-dark)}h1{font-size:clamp(2rem,3.2vw,3.2rem);letter-spacing:-.045em;line-height:1.1;margin:8px 0 12px;font-weight:700}h1 span{color:var(--jade)}.intro p{margin:0;color:var(--muted);font-size:1.06rem}.intro-note{display:flex;gap:18px;align-items:center;border-left:1px solid #cfd8ce;padding-left:24px;color:var(--muted);font-size:.9rem}.intro-note>span{font-family:'Noto Sans SC',sans-serif;font-size:2.65rem;color:var(--jade);font-weight:500;letter-spacing:.07em}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 302px;gap:24px;align-items:start}.chart-card{background:white;border:1px solid var(--border);border-radius:15px;overflow:hidden}.chart-toolbar{display:flex;gap:20px;justify-content:space-between;align-items:center;padding:22px 24px 16px}h2{font-size:1.15rem;letter-spacing:-.02em;margin:0}.chart-toolbar p{font-size:.88rem;color:var(--muted);margin:3px 0 0}.search-wrap{position:relative;width:245px;flex-shrink:0}.search-wrap svg{position:absolute;left:13px;top:13px;stroke:var(--muted);stroke-width:1.7;fill:none;width:18px;height:18px}.search-wrap input{width:100%;height:44px;padding:10px 30px 10px 39px;border:1px solid var(--border);background:#fbfcfa;border-radius:8px;font-size:.9rem;color:var(--charcoal)}.search-wrap button{position:absolute;right:7px;top:6px;background:transparent;border:0;font-size:22px;color:var(--muted);width:30px;height:32px}.groups{padding:0 24px 17px;display:flex;gap:8px;flex-wrap:wrap}.groups button{font-size:.9rem;font-weight:500;background:white;color:var(--muted);border:1px solid var(--border);border-radius:7px;padding:6px 14px;min-height:36px}.groups button[aria-pressed=true]{background:var(--jade-dark);border-color:var(--jade-dark);color:white}.chart-meta{display:flex;justify-content:space-between;gap:12px;border-top:1px solid #e9ece5;padding:12px 24px;background:#fbfcfa;font-size:.8rem;color:var(--muted)}.scroll-hint{font-size:.75rem}.table-scroll{max-height:560px;overflow:auto;overscroll-behavior-x:contain;scrollbar-color:#adc6b7 #f2f5f0;scrollbar-width:thin}table{border-collapse:separate;border-spacing:0;table-layout:fixed;width:max-content;min-width:100%;font-family:'Noto Sans SC',sans-serif}th,td{min-width:52px;width:52px;height:43px;text-align:center;border-right:1px solid #edf0e9;border-bottom:1px solid #edf0e9;padding:0}thead th{position:sticky;top:0;background:#edf4ef;color:var(--jade-dark);font-weight:600;z-index:2;font-size:.88rem;height:44px}thead th:first-child{z-index:4}tbody th{position:sticky;left:0;background:#f1f6f1;font-size:.88rem;color:var(--jade-dark);font-weight:600;z-index:1}th:first-child{position:sticky;left:0;width:71px;min-width:71px}td{background:#fff}tr:nth-child(even) td{background:#fcfdfb}td.blank{background:#f6f7f3;color:#c9cdc4;font-size:.65rem}td button{width:100%;height:100%;border:0;background:transparent;font-family:inherit;color:#414e45;font-size:.84rem;border-radius:0;padding:0 2px;min-height:43px}td button:hover{background:#e6f2ec;color:var(--jade-dark)}td button[aria-pressed=true]{background:var(--jade);color:#fff;font-weight:600;box-shadow:inset 0 0 0 2px var(--jade-dark)}td button:focus-visible{outline-offset:-3px}.chart-bottom{border-top:1px solid var(--border);display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;padding:13px 24px;font-size:.75rem;color:var(--muted)}.legend-swatch{display:inline-block;width:9px;height:9px;border-radius:2px;background:var(--jade);margin-right:5px}.sound-card{position:sticky;top:22px;padding:23px;background:white;border:1px solid var(--border);border-top:4px solid var(--jade);border-radius:15px}.sound-top{display:flex;align-items:center;justify-content:space-between}.sound-top .eyebrow{font-size:.75rem}.sound-icon svg{width:22px;height:22px;fill:none;stroke:var(--jade);stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.sound-card h2{font-family:'Noto Sans SC',sans-serif;font-size:4.7rem;line-height:1.4;color:var(--jade-dark);font-weight:500;text-align:center;margin:12px 0 0;letter-spacing:-.025em}.parts{display:flex;align-items:center;justify-content:center;gap:8px;font-size:.85rem;color:var(--muted);margin-bottom:20px}.parts .part{padding:4px 10px;border:1px solid #dce6dc;border-radius:6px;background:#f6f8f3}.tone-intro{font-size:.87rem;color:var(--muted);margin:0 0 10px}.tone-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.tone-button{border:1px solid #dfe5dc;padding:12px 11px;border-radius:9px;background:white;text-align:left;color:var(--charcoal);display:grid;grid-template-columns:1fr 30px;gap:2px;align-items:center}.tone-button.active{border:2px solid var(--jade);background:#edf6f0;padding:11px 10px}.tone-word{font-family:'Noto Sans SC',sans-serif;font-size:1.5rem;font-weight:500;line-height:1.5}.tone-label{grid-column:1/-1;font-size:.78rem;color:#5c6b60}.tone-curve{width:29px;height:24px;fill:none;stroke:var(--jade);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}.tone-button:nth-child(2) .tone-curve{stroke:#b9851f}.tone-button:nth-child(3) .tone-curve{stroke:#497eac}.tone-button:nth-child(4) .tone-curve{stroke:var(--verm)}.tone-button:disabled{opacity:.5}.tone-button.playing{box-shadow:0 0 0 3px #1f8a702a}.sequence-button{width:100%;background:var(--jade-dark);color:white;padding:12px 10px;border:0;border-radius:8px;margin-top:15px;display:flex;align-items:center;justify-content:center;gap:7px;font-size:.9rem;font-weight:500;min-height:45px}.sequence-button svg{width:16px;height:16px;fill:currentColor}.sequence-button:hover{background:var(--jade)}.speed{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:.78rem;gap:6px}.speed select{font-size:.8rem;background:#fff;color:var(--charcoal);border:1px solid var(--border);border-radius:6px;padding:6px;max-width:120px}.audio-status{font-size:.75rem;color:var(--jade-dark);min-height:38px;margin:12px 0 0}.pronunciation-note{padding:13px;border-radius:8px;background:var(--cream);font-size:.83rem;line-height:1.6}.pronunciation-note strong{color:var(--jade-dark)}.recording-note{font-size:.75rem;color:var(--muted);line-height:1.55;margin:14px 0 0}.guide{padding:36px 0 30px}.guide-intro{display:flex;align-items:center;gap:22px;margin-bottom:20px}.guide-intro h2{font-size:1.35rem}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.guide-grid article{border-top:1px solid #d9ded4;padding-top:18px}.guide-number{font-size:.8rem;color:var(--verm);font-weight:700}.guide-grid h3{font-size:1.05rem;margin:5px 0 8px;font-weight:600}.guide-grid p{margin:0;color:#5d665f;font-size:.94rem;line-height:1.7}.pinyin{color:var(--jade-dark);font-family:'Noto Sans SC',sans-serif;font-weight:500}footer{padding:20px 0 25px;border-top:1px solid #d9ded4;display:flex;flex-wrap:wrap;align-items:start;gap:16px;font-size:.82rem;color:var(--muted)}footer>a{font-weight:600;color:var(--charcoal)}footer details{margin-left:auto;font-size:.75rem;max-width:360px}summary{cursor:pointer}footer details p{margin-top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.empty{padding:48px 24px;text-align:center;color:var(--muted)}[hidden]{display:none!important}@media(min-width:1500px){.table-scroll{max-height:590px}}@media(max-width:1100px){main{padding:27px 24px 0}.header-inner{padding:15px 24px}.workspace{gap:17px;grid-template-columns:minmax(0,1fr) 278px}.chart-toolbar{flex-wrap:wrap;padding:18px}.search-wrap{width:100%}.groups{padding-left:18px;padding-right:18px}.chart-meta{padding-left:18px;padding-right:18px}.sound-card{padding:18px}.guide-grid{gap:20px}}@media(max-width:760px){main{padding:23px 16px 0}.header-inner{min-height:77px;padding:12px 16px}.brand img{width:140px;height:auto}.resource-label{display:none}.home-link{padding:8px 11px;font-size:.8rem}.intro{margin-bottom:20px}.intro-note{display:none}h1{font-size:2.5rem}.intro p{font-size:.95rem}.workspace{display:flex;flex-direction:column;gap:17px}.chart-card{width:100%}.table-scroll{max-height:390px}.chart-toolbar{padding:17px 16px 13px}.groups{gap:6px;padding:0 16px 13px}.groups button{padding:5px 12px}.chart-meta{padding:10px 16px;flex-direction:column;gap:3px}.chart-bottom{padding:11px 16px}.sound-card{position:static;width:100%;padding:19px}.sound-card h2{font-size:3.5rem;margin:0;line-height:1.5}.parts{margin-bottom:13px}.tone-grid{grid-template-columns:repeat(4,1fr);gap:7px}.tone-button{padding:9px 7px;grid-template-columns:1fr;justify-items:center;text-align:center}.tone-button.active{padding:8px 6px}.tone-word{font-size:1.5rem}.tone-curve{height:18px;width:26px}.tone-label{font-size:.75rem}.sequence-button{max-width:100%}.speed{font-size:.85rem}.audio-status{min-height:24px;margin-bottom:10px}.recording-note{font-size:.75rem}.guide{padding-top:28px}.guide-intro{display:block}.guide-intro h2{font-size:1.3rem;margin-top:5px}.guide-grid{grid-template-columns:1fr;gap:20px}footer{gap:6px;flex-direction:column}footer details{margin-left:0;margin-top:7px}.sound-top .eyebrow{font-size:.75rem}}@media(prefers-reduced-motion:no-preference){button{transition:background .15s,border-color .15s,box-shadow .15s}}@media(forced-colors:active){td button[aria-pressed=true],.tone-button.active{outline:2px solid Highlight}}
body>footer.global-footer{margin-top:24px}.groups button{min-height:44px}.chart-meta,.chart-bottom,.tone-label,.audio-status,.recording-note{font-size:14px}.chart-card td button{min-height:44px}footer.global-footer .footer-links a{font-size:14px}

/* Keep the page title compact; retain large syllables for teaching. */
@media(max-width:650px){.intro h1{font-size:1.875rem;line-height:1.2}.intro p{font-size:1rem;line-height:1.55}}
