:root {
  --ink:#15251e; --muted:#65746d; --paper:#f3f0e7; --card:#fffdf7;
  --green:#12372a; --lime:#d8f34b; --orange:#ef784f; --line:#d9d6cc;
  --shadow:0 18px 50px rgba(30,45,37,.1); --radius:22px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;padding-bottom:82px}
a{color:inherit;text-decoration:none}
button,input,select{font:inherit}
.topbar{height:72px;padding:0 max(20px,calc((100vw - 1120px)/2));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(243,240,231,.9);backdrop-filter:blur(16px);position:sticky;top:0;z-index:10}
.brand{display:flex;gap:10px;align-items:center}.brand-mark{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:var(--lime);font-family:Georgia;font-size:24px}.brand b{display:block;letter-spacing:.08em}.brand small{display:block;color:var(--muted);font-size:9px;letter-spacing:.18em}.topbar-actions{display:flex;gap:8px;align-items:center}
main{max-width:1120px;margin:auto;padding:40px 20px 80px}
.bottom-nav{position:fixed;z-index:20;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px;padding:7px;background:rgba(18,55,42,.95);border-radius:20px;box-shadow:0 10px 30px #0004}
.bottom-nav a{min-width:76px;padding:9px 13px;border-radius:14px;color:#dbe6df;text-align:center;font-size:12px}.bottom-nav .nav-icon{display:block;width:28px;height:24px;margin:0 auto 2px;object-fit:contain;filter:invert(92%) sepia(10%) saturate(194%) hue-rotate(95deg) brightness(96%) contrast(89%)}.bottom-nav a.active{background:var(--lime);color:var(--green)}.bottom-nav a.active .nav-icon{filter:invert(17%) sepia(29%) saturate(787%) hue-rotate(105deg) brightness(94%) contrast(92%)}
.hero{min-height:400px;border-radius:34px;background:var(--green);color:#fff;padding:56px;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;overflow:hidden;position:relative}
.hero h1{font:700 clamp(42px,6vw,76px)/.98 Georgia,"Noto Serif SC",serif;max-width:650px;margin:8px 0 20px;letter-spacing:0}.hero p:not(.eyebrow){color:#c6d4cd;font-size:18px;max-width:520px}.eyebrow{font-size:12px!important;text-transform:uppercase;letter-spacing:.18em;font-weight:800;color:#729080;margin:0}.hero .eyebrow{color:var(--lime)}
.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.button,.ghost{border:0;border-radius:999px;padding:13px 20px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.primary{background:var(--lime);color:var(--green)}.secondary{border:1px solid #ffffff55;color:#fff}.ghost{background:#fff;border:1px solid var(--line)}.button:disabled,.ghost:disabled{opacity:.6;cursor:not-allowed}.hidden{display:none!important}
.feedback-dialog{position:fixed;inset:0;z-index:40;display:grid;place-items:center;padding:20px;background:#12372a88}.feedback-form{width:min(460px,100%);display:grid;gap:14px;padding:22px;border:1px solid var(--line);border-radius:18px;background:var(--card);box-shadow:var(--shadow)}.feedback-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.feedback-heading h2{margin:0;font:700 28px Georgia,"Noto Serif SC",serif}.feedback-close{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.feedback-form label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:800}.feedback-form textarea,.feedback-form input{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8f5ec;color:var(--ink);outline:none}.feedback-form textarea{resize:vertical}.feedback-form textarea:focus,.feedback-form input:focus{border-color:var(--green);box-shadow:0 0 0 3px #12372a18}.feedback-trap{position:absolute;left:-9999px}.feedback-status{min-height:20px;margin:0;color:var(--muted);font-size:13px;font-weight:800}
.section-heading{display:flex;justify-content:space-between;align-items:end;margin:32px 0 16px}.section-heading h1,.section-heading h2{font:700 34px Georgia,"Noto Serif SC",serif;margin:5px 0}.section-heading p{color:var(--muted)}
.feature-grid,.library-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.feature-card,.library-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:25px;transition:.2s;position:relative;overflow:hidden}.feature-card:hover,.library-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.feature-card h3,.library-card h3{font:700 28px Georgia;margin:12px 0 6px}.feature-card p,.library-card p{color:var(--muted)}.card-link{display:block}.tag{display:inline-block;font-size:10px;letter-spacing:.13em;font-weight:900;background:#e6eadf;padding:6px 8px;border-radius:6px}.mini-grid{height:64px;margin-top:25px;background:repeating-linear-gradient(90deg,#d5ded8 0 1px,transparent 1px 32px),repeating-linear-gradient(#d5ded8 0 1px,transparent 1px 22px)}
.learning-section{margin-top:56px}.learning-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.learning-card{min-height:230px;background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px;position:relative;transition:.2s}.learning-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.learning-card h3{font:700 24px Georgia,"Noto Serif SC",serif;margin:18px 0 8px}.learning-card p{color:var(--muted);font-size:14px;line-height:1.65}.learning-icon{display:grid;place-items:center;width:54px;height:54px;margin-top:8px;border-radius:50%;background:var(--green);color:var(--lime);font:700 25px Georgia}.culture-mark{position:absolute;right:22px;bottom:76px;color:var(--orange);font:800 28px Georgia;letter-spacing:.08em;transform:rotate(-8deg)}.learning-article{position:relative}.learning-article h2{font:700 25px Georgia,"Noto Serif SC",serif}.learning-article p{color:var(--muted);line-height:1.8}.page-note{margin-top:20px;padding:18px 20px}.completion-button{width:100%;margin-top:20px;border:1px solid var(--green);border-radius:12px;padding:11px 14px;background:transparent;color:var(--green);font-weight:800;cursor:pointer;transition:.15s}.completion-button:hover{background:#e6eadf}.completion-button.completed{background:var(--green);color:#fff}.is-completed{border-color:#86a697;box-shadow:inset 0 0 0 1px #86a697}.is-completed:after{content:"✓";position:absolute;right:16px;top:16px;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--green);color:#fff;font-weight:900}
.song-wave{margin-top:28px;color:var(--orange);font:700 30px/1 Georgia;letter-spacing:.14em}.song-search{display:grid;gap:8px;margin:18px 0 22px;color:var(--muted);font-size:13px;font-weight:700}.song-search input{width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--card);color:var(--ink);outline:none}.song-search input:focus{border-color:var(--green);box-shadow:0 0 0 3px #12372a18}.song-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.song-card{position:relative;padding:25px;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);transition:.2s}.song-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.song-card h3{font:700 28px Georgia,"Noto Serif SC",serif;margin:12px 0 6px}.song-card p{color:var(--muted)}.song-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.song-heading .completion-button{width:auto;min-width:180px;margin:0}.song-practice-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px}.lyrics-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-bottom:18px;border-bottom:1px solid var(--line)}.translation-controls{display:flex;align-items:center;gap:18px;flex-wrap:wrap}.translation-controls label{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13px}.translation-controls input{accent-color:var(--green)}.lyric-legend{display:flex;align-items:center;gap:14px;color:var(--muted);font-size:12px}.lyric-legend span{display:flex;align-items:center;gap:6px}.lyric-legend i{width:10px;height:10px;border-radius:50%}.lead-color{background:var(--orange)}.response-color{background:var(--green)}.lyrics-card{margin:20px 0;border:1px solid var(--line);border-radius:18px;background:#f8f5ec;overflow:hidden}.lyric-row{display:grid;grid-template-columns:6px 1fr;border-bottom:1px solid var(--line)}.lyric-row:last-child{border-bottom:0}.lyric-row:before{content:"";display:block;background:var(--orange)}.lyric-row.response:before{background:var(--green)}.lyric-content{padding:14px 18px}.lyric-row.lead .lyric-pt{color:#b64e2c}.lyric-row.response .lyric-pt{color:var(--green)}.lyric-row.section-line{background:#eee9dc}.lyric-row.section-line .lyric-content{padding-top:10px;padding-bottom:10px}.lyric-row.section-line .lyric-pt{font:800 13px/1.4 Inter,"PingFang SC",sans-serif;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.lyric-row.section-line .lyric-translation{font-size:12px}.lyric-pt{font:700 22px/1.35 Georgia;margin:0 0 5px}.lyric-translation{margin:3px 0;color:var(--muted);font-size:14px}.lyric-zh{color:var(--ink)}.hide-english .lyric-en,.hide-chinese .lyric-zh{display:none}.song-backing-panel{align-self:start;position:sticky;top:92px}.song-backing-panel h2{font:700 28px Georgia,"Noto Serif SC",serif;margin:8px 0 22px}.field-label{display:block;margin:16px 0 7px;color:var(--muted);font-size:13px;font-weight:700}.song-backing-panel select,.song-backing-panel input[type="range"]{width:100%}.song-backing-panel select{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}.song-backing-panel input[type="range"]{accent-color:var(--orange)}.song-play-button{width:100%;margin-top:22px;border:0}.helper-text{color:var(--muted);font-size:12px;line-height:1.6;margin-top:18px}
.filters{display:flex;gap:8px;overflow:auto;padding-bottom:8px}.chip{border:1px solid var(--line);border-radius:999px;background:transparent;padding:9px 15px;white-space:nowrap;cursor:pointer}.chip.active{background:var(--green);color:#fff}
.knowledge-categories{display:flex;gap:8px;overflow:auto;margin:18px 0 22px;padding-bottom:6px}.knowledge-categories span{padding:8px 14px;border:1px solid var(--line);border-radius:999px;background:var(--card);color:var(--muted);font-size:12px;white-space:nowrap}.knowledge-categories span.active{background:var(--green);border-color:var(--green);color:#fff}
.meter-chip{cursor:pointer;padding:3px 8px;border-radius:6px;transition:.15s}.meter-chip:hover{background:var(--lime)}.meter-chip.active{background:var(--green);color:#fff}.eyebrow > span{margin-right:1.2em}.offset-row{margin-top:10px}.library-card .meta{display:flex;gap:8px;flex-wrap:wrap;margin-top:22px}.meta span{font-size:12px;background:#efede5;padding:6px 9px;border-radius:7px}
.detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 310px;gap:22px}.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:24px}.score-toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:20px}.play{width:52px;height:52px;border-radius:50%;border:0;background:var(--orange);color:white;font-size:20px;cursor:pointer}.range-wrap{flex:1;min-width:180px}.range-wrap input{width:100%;accent-color:var(--orange)}.tempo{font:700 24px Georgia}.score-system{--track-name-width:10ch;margin:18px 0 28px;overflow:hidden}.beat-label,.track-row{display:grid;grid-template-columns:var(--score-columns);align-items:center}.beat-label span,.track-row span{min-height:38px;display:grid;place-items:center;border-right:1px solid var(--line);border-bottom:1px solid var(--line);font-family:ui-monospace,Consolas,monospace;min-width:0}.beat-label span{font-size:11px;color:var(--muted);background:#f0eee6}.track-row .track-name,.beat-label .track-name{box-sizing:border-box;width:100%;height:100%;justify-items:start;padding-left:10px;font-family:inherit;font-weight:800;background:#e6eadf;position:sticky;left:0}.track-row .hit{font-weight:800}.track-row .current{background:var(--lime)}.legend{display:flex;gap:8px;flex-wrap:wrap}.legend span{font-size:12px;border:1px solid var(--line);padding:7px 9px;border-radius:8px}.side-list{display:grid;gap:12px}.side-list h3{margin:0}.note{padding:12px 14px;background:#f1eee4;border-left:3px solid var(--orange);font-size:13px;color:var(--muted)}
.track-mixer{display:grid;gap:8px;padding-bottom:8px;border-bottom:1px solid var(--line)}.mixer-row{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 10px;border-radius:10px;background:#f1eee4}.mixer-row label{font-size:13px;font-weight:700}.mixer-row input{accent-color:var(--green)}.solo-button{border:1px solid var(--line);background:var(--card);border-radius:999px;padding:5px 9px;font-size:11px;cursor:pointer}.solo-button:hover{background:var(--lime)}
.audio-credits{font-size:12px;color:var(--muted);border-top:1px solid var(--line);padding-top:10px}.audio-credits summary{cursor:pointer;font-weight:800;color:var(--ink)}.audio-credits p{line-height:1.5}.audio-credits a{text-decoration:underline}
.viewer-badge{position:absolute;left:16px;top:16px;color:#fff;font-size:11px;letter-spacing:.12em;background:#ffffff18;padding:8px 10px;border-radius:8px}
.empty{padding:50px;text-align:center;color:var(--muted)}
.song-resource-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line);font-size:13px;font-weight:800}
.song-filter-panel{margin:18px 0 22px;padding:18px;border:1px solid var(--line);border-radius:18px;background:var(--card)}
.song-filter-panel .song-search{margin:0 0 14px}
.song-filter-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.song-filter-fields label{display:grid;gap:7px;color:var(--muted);font-size:13px;font-weight:700}
.song-filter-fields select{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#f8f5ec;color:var(--ink);outline:none}
.song-filter-fields select:focus{border-color:var(--green);box-shadow:0 0 0 3px #12372a18}
.song-filter-label{display:block;margin-bottom:8px;color:var(--muted);font-size:13px;font-weight:700}
.song-bookmark-row{margin-top:12px}.song-bookmark-toggle{display:inline-flex;align-items:center;gap:8px;cursor:pointer;color:var(--muted);font-size:13px;font-weight:700}.song-bookmark-toggle input{accent-color:var(--green);width:18px;height:18px}
.song-filter-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;color:var(--muted);font-size:12px}
.song-filter-summary button{border:0;background:transparent;color:var(--green);font-weight:800;cursor:pointer}
.song-empty-state{padding-top:32px}
.song-audio-link{color:var(--green)}
.song-audio-link:hover,.song-source-link:hover{text-decoration:underline}
.song-source-link{color:var(--muted)}
.song-audio-missing{color:#9a9588;font-weight:700}
.song-grid{gap:12px}
.song-card{padding:16px 18px;border-radius:14px}
.song-card h3{font-size:22px;line-height:1.12;margin:11px 0 0}
.song-title-zh{margin:5px 0 0;color:var(--muted);font-size:12px;line-height:1.35;font-weight:700}
.song-card-topline{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.song-card .tag{padding:5px 7px;font-size:9px}
.song-card .meta{display:flex;gap:5px;flex-wrap:wrap;margin:0;padding:4px;border:1px solid var(--line);border-radius:9px;background:#f8f5ec}
.song-card .meta span{padding:4px 6px;font-size:10px;background:#efede5;border-radius:6px}
.song-resource-row{margin-top:12px;padding-top:10px;font-size:12px}
.song-card .completion-button{margin-top:12px;padding:9px 12px;border-radius:10px;font-size:12px}
.lyric-pt,.lyric-translation{white-space:pre-line}
.lyrics-pending{padding:28px;text-align:center;color:var(--muted)}
.lyrics-pending strong{display:block;color:var(--ink);font:700 22px Georgia,"Noto Serif SC",serif}
.detail-audio-link{margin-top:4px}
.triplet-brackets{margin:0 0 5px var(--track-name-width);display:grid;grid-template-columns:repeat(2,minmax(90px,1fr));color:var(--orange)}
.triplet-brackets span{position:relative;height:13px;margin:0 3px;border-top:2px solid currentColor;border-left:2px solid currentColor;border-right:2px solid currentColor}
.triplet-brackets b{position:absolute;left:50%;top:-8px;transform:translateX(-50%);padding:0 5px;background:var(--card);font:800 11px/1 ui-monospace,Consolas,monospace}
@media(max-width:900px){.learning-grid{grid-template-columns:repeat(2,1fr)}.song-practice-layout{grid-template-columns:1fr}.song-backing-panel{position:static}}
@media(max-width:520px){.song-filter-fields{grid-template-columns:1fr}}
@media(max-width:760px){main{padding:24px 14px 90px}.topbar{padding:0 12px}.topbar-actions .ghost{padding:10px 12px}.hero{min-height:0;padding:32px 22px;grid-template-columns:1fr}.hero h1{font-size:clamp(38px,12vw,52px);max-width:7em}.hero p:not(.eyebrow){font-size:16px;max-width:92%;position:relative;z-index:1}.feature-grid,.library-grid,.detail-layout,.learning-grid,.song-grid,.action-menu{grid-template-columns:1fr}.learning-card{min-height:210px}.bottom-nav{bottom:8px;width:calc(100% - 16px);justify-content:space-around}.bottom-nav a{min-width:0;flex:1;padding:8px 4px;font-size:11px}.bottom-nav .nav-icon{width:24px;height:22px}.triplet-brackets{margin-left:var(--track-name-width)}.panel{padding:16px}.viewer,.viewer canvas{min-height:420px;height:420px}.song-heading{align-items:stretch;flex-direction:column}.song-heading .completion-button{width:100%}.lyrics-toolbar{align-items:flex-start}.lyric-legend{width:100%;padding-top:4px}.lyric-pt{font-size:20px}.lyric-content{padding:12px 14px}}

.action-grid{display:grid;grid-template-columns:1fr;gap:18px}.action-card h2{font:700 30px Georgia,"Noto Serif SC",serif;margin:4px 0 10px}.action-card p{max-width:820px;color:var(--muted);line-height:1.8}.action-viewer{min-height:300px;max-height:520px;margin-top:22px;border-radius:20px;overflow:hidden;position:relative;display:grid;place-items:center}.action-gif{width:100%;height:auto;max-height:100%;object-fit:contain;display:block}.action-no-gif{display:grid;place-items:center;color:#8baa97;font-size:16px;font-weight:700;padding:60px 30px;text-align:center}.action-loading{position:absolute;inset:0;display:grid;place-items:center;color:#fff;background:#12372a66;font-weight:800}
@media(max-width:760px){.action-viewer{min-height:250px;max-height:430px}}
.action-title-row{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.action-title-row h2{margin-top:8px}
@media(max-width:760px){.action-title-row{display:grid}}
.action-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.action-list-button{text-align:left;cursor:pointer;transition:.2s}.action-list-button:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#86a697}.action-list-button strong{display:block;margin:14px 0 8px;font:700 30px Georgia,"Noto Serif SC",serif;color:var(--ink)}.action-list-button span:not(.tag):not(.action-fav-btn){display:block;color:var(--muted);line-height:1.7}.action-detail-heading{align-items:center}
.action-filter-panel{margin-top:0}.action-card-topline{display:flex;align-items:center;gap:7px;flex-wrap:wrap}.action-form-tag{background:#efe3d4;color:#8b4a28}.action-title-zh{display:block;margin:-3px 0 9px;color:var(--muted);font-size:12px;line-height:1.35;font-weight:800}.action-list-button .action-title-zh{margin-top:-4px}.action-detail-zh{margin:2px 0 8px}.action-card-zh{margin:0 0 8px}.action-card h2+.action-title-zh{margin-top:-6px}.action-source-credit{margin-top:8px;font-size:13px;color:var(--muted)}.action-source-credit a{color:var(--green);text-decoration:underline}.action-fav-btn{display:block;width:100%;margin-top:14px;padding:8px 12px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--muted);font-size:13px;font-weight:700;cursor:pointer;text-align:center;transition:.15s}.action-fav-btn:hover{border-color:var(--green);color:var(--green)}.action-fav-btn.favorited{background:var(--green);border-color:var(--green);color:#ffffff}
.action-category-filters{margin:0 0 14px}.rhythm-filter-panel{margin:18px 0 22px}.rhythm-filter-fields{margin-top:14px;max-width:320px}
@media(max-width:760px){.action-menu{grid-template-columns:1fr}.action-detail-heading{align-items:stretch;flex-direction:column}}
.knowledge-menu{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.knowledge-list-button{text-align:left;cursor:pointer;transition:.2s}.knowledge-card-link{display:block}.knowledge-list-button:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#86a697}.knowledge-list-button strong{display:block;margin:14px 0 8px;font:700 30px Georgia,"Noto Serif SC",serif;color:var(--ink)}.knowledge-list-button span:not(.tag){display:block;color:var(--muted);line-height:1.7}.knowledge-list-button em{display:inline-block;margin-top:18px;color:var(--green);font-style:normal;font-size:12px;font-weight:900}.knowledge-detail-heading{align-items:center}.knowledge-detail-card{max-width:820px}.knowledge-detail-card h2{font:700 30px Georgia,"Noto Serif SC",serif}.chapter-body table{width:100%;border-collapse:collapse;margin-top:16px;font-size:14px}.chapter-body th,.chapter-body td{padding:10px 12px;border:1px solid #d4c9b5;text-align:left;vertical-align:top}.chapter-body th{background:#2d5a3d;color:#fff;font-weight:700;font-size:13px}.chapter-body tr:nth-child(even){background:#f8f4ec}.chapter-body td:first-child{white-space:nowrap;font-family:Georgia,"Noto Serif SC",serif;font-weight:700}
@media(max-width:760px){.knowledge-menu{grid-template-columns:1fr}.knowledge-detail-heading{align-items:stretch;flex-direction:column}}

.tuner-heading{align-items:flex-start}.tuner-heading p{max-width:760px}.tuner-mode-switch{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0 22px}.tuner-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:22px}.tuner-panel h2,.tuner-checks h2{font:700 28px Georgia,"Noto Serif SC",serif;margin:8px 0 12px}.tuner-panel>p,.tuner-note-card p,.tuner-checks li{color:var(--muted);line-height:1.65}.tuner-note-grid{display:grid;gap:12px;margin-top:18px}.tuner-note-card{display:grid;grid-template-columns:minmax(0,1fr) 54px;gap:14px;align-items:center;padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8f5ec}.tuner-note-card h3{font:700 23px Georgia,"Noto Serif SC",serif;margin:10px 0 6px}.tuner-note-card strong{display:block;color:var(--green)}.tuner-checks{align-self:start}.tuner-checks ol{padding-left:20px}.tuner-checks .note{margin-top:18px}
.metronome-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.metronome-panel{min-height:430px;display:grid;align-content:center;justify-items:center;gap:28px}.metronome-readout{display:grid;justify-items:center}.metronome-readout span{font:800 clamp(72px,14vw,150px)/.85 Georgia,"Noto Serif SC",serif;color:var(--green)}.metronome-readout small{font-weight:900;letter-spacing:.18em;color:var(--muted)}.metronome-dots{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.metronome-dot{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:#f0eee6;color:var(--muted);font-weight:900}.metronome-dot.accent{border-color:var(--orange)}.metronome-dot.current{background:var(--lime);color:var(--green);transform:scale(1.08);box-shadow:0 8px 20px #12372a22}.metronome-play{min-width:180px}.metronome-controls{align-self:start;display:grid;gap:18px}.metronome-field{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.metronome-field input[type="range"]{width:100%;accent-color:var(--orange)}.metronome-field select,.metronome-stepper input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}.metronome-stepper{display:grid;grid-template-columns:72px 1fr 72px;gap:8px}.metronome-stepper button{border:1px solid var(--line);border-radius:12px;background:#f1eee4;font-weight:900;cursor:pointer}.metronome-toggle{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:800}.metronome-toggle input{accent-color:var(--green)}@media(max-width:760px){.tuner-layout,.metronome-layout{grid-template-columns:1fr}.metronome-panel{min-height:340px}.metronome-stepper{grid-template-columns:64px 1fr 64px}}

.roda-timer-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:22px}.roda-timer-panel{min-height:430px;display:grid;align-content:center;justify-items:center;gap:28px}.roda-timer-ring{--timer-progress:0deg;width:min(360px,80vw);aspect-ratio:1;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--orange) var(--timer-progress),#e5e1d7 0);padding:14px;transition:background .2s}.roda-timer-ring[data-phase="change"]{background:conic-gradient(var(--lime) var(--timer-progress),#e5e1d7 0)}.roda-timer-ring>div{width:100%;height:100%;border-radius:50%;background:var(--card);display:grid;place-items:center;align-content:center;gap:8px;text-align:center}.roda-timer-ring span{font-size:13px;font-weight:900;letter-spacing:.16em;color:var(--muted);text-transform:uppercase}.roda-timer-ring strong{font:800 clamp(58px,12vw,112px)/.9 Georgia,"Noto Serif SC",serif;color:var(--green)}.roda-timer-ring small{font-weight:900;color:var(--muted)}.roda-timer-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.roda-timer-actions .button,.roda-timer-actions .ghost{min-width:110px}.roda-timer-controls{align-self:start;display:grid;gap:18px}.roda-timer-field{display:grid;gap:8px;color:var(--muted);font-size:13px;font-weight:800}.roda-timer-field select,.roda-timer-field input{width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--card);color:var(--ink)}.roda-timer-pair{display:grid;grid-template-columns:1fr 1fr;gap:8px}.roda-timer-toggle{display:flex;align-items:center;gap:9px;color:var(--muted);font-size:13px;font-weight:800}.roda-timer-toggle input{accent-color:var(--green)}.roda-timer-actions button:disabled{opacity:.45;cursor:not-allowed}@media(max-width:760px){.roda-timer-layout{grid-template-columns:1fr}.roda-timer-panel{min-height:340px}.roda-timer-actions{width:100%}.roda-timer-actions .button,.roda-timer-actions .ghost{flex:1;min-width:0}}

.lesson-heading{align-items:center}.lesson-summary{min-width:130px;padding:14px 16px;border:1px solid var(--line);border-radius:16px;background:var(--card);text-align:center}.lesson-summary strong{display:block;font:800 34px/.9 Georgia,"Noto Serif SC",serif;color:var(--green)}.lesson-summary span,.lesson-summary small{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-top:4px}.lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:22px}.lesson-runner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;margin-bottom:18px;padding:16px;border:1px solid var(--line);border-radius:18px;background:#f8f5ec}.lesson-runner span{display:block;color:var(--muted);font-size:12px;font-weight:900}.lesson-runner strong{display:block;margin-top:4px;font:700 24px Georgia,"Noto Serif SC",serif}.lesson-runner time{font:800 42px/.9 ui-monospace,Consolas,monospace;color:var(--green)}.lesson-run-actions{grid-column:1/-1;display:flex;gap:10px;flex-wrap:wrap}.lesson-toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.lesson-list{display:grid;gap:12px}.lesson-item{display:grid;grid-template-columns:30px 34px minmax(0,1fr) 38px;gap:12px;align-items:start;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f8f5ec;cursor:grab}.lesson-item:active{cursor:grabbing}.lesson-item.is-done{opacity:.7}.lesson-item.is-active{border-color:var(--green);box-shadow:inset 0 0 0 1px var(--green)}.lesson-drag{width:30px;height:34px;border:0;background:transparent;color:var(--muted);font-size:20px;cursor:grab}.lesson-check{padding-top:7px}.lesson-check input{width:22px;height:22px;accent-color:var(--green)}.lesson-item-topline{display:grid;grid-template-columns:minmax(0,1fr) 82px;gap:10px;margin-bottom:8px}.lesson-title,.lesson-note,.lesson-minutes{width:100%;border:1px solid var(--line);border-radius:10px;background:var(--card);color:var(--ink);outline:none}.lesson-title{padding:10px 12px;font-weight:900}.lesson-note{margin-top:8px;padding:10px 12px;resize:vertical;color:var(--muted)}.lesson-minutes{padding:8px;text-align:center;font-weight:900}.lesson-delete{width:34px;height:34px;border:1px solid var(--line);border-radius:50%;background:var(--card);color:var(--muted);font-size:22px;line-height:1;cursor:pointer}.lesson-delete:hover{border-color:var(--orange);color:var(--orange)}.lesson-presets{align-self:start;display:grid;gap:10px}.lesson-presets h2{font:700 24px Georgia,"Noto Serif SC",serif;margin:0 0 8px}.lesson-presets button{padding:12px;border:1px solid var(--line);border-radius:12px;background:#f1eee4;text-align:left;font-weight:800;cursor:pointer}.lesson-presets button:hover{border-color:var(--green);color:var(--green)}@media(max-width:760px){.lesson-heading{align-items:stretch;flex-direction:column}.lesson-layout{grid-template-columns:1fr}.lesson-runner{grid-template-columns:1fr}.lesson-runner time{font-size:36px}.lesson-item{grid-template-columns:26px 30px minmax(0,1fr) 34px;gap:8px}.lesson-item-topline{grid-template-columns:1fr}.lesson-toolbar .button,.lesson-toolbar .ghost,.lesson-run-actions .button,.lesson-run-actions .ghost{flex:1;min-width:0}}

.warmup-heading{align-items:center}.warmup-grid-tool{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(260px,.75fr);gap:22px;align-items:start}.warmup-grid-image{width:100%;border:1px solid var(--line);border-radius:12px;background:#fff;display:block}.warmup-step-list{margin:0;padding-left:24px;display:grid;gap:10px}.warmup-step-list li{padding:10px 0;border-bottom:1px solid var(--line)}.warmup-step-list strong{display:block;font-weight:900;color:var(--ink)}.warmup-step-list span{display:block;margin-top:4px;color:var(--muted);line-height:1.55;font-size:14px}@media(max-width:760px){.warmup-heading{align-items:stretch;flex-direction:column}.warmup-grid-tool{grid-template-columns:1fr;padding:14px}.warmup-step-list{padding-left:20px}}
