*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--primary: #FF8C69;--primary-dark: #e5714f;--secondary: #FFD166;--accent: #06D6A0;--accent2: #118AB2;--bg: #FFF8F0;--card-bg: #ffffff;--text: #3d2b1f;--text-muted: #9b7e6e;--radius: 20px;--radius-sm: 12px;--shadow: 0 4px 20px rgba(0,0,0,.08);--shadow-hover: 0 8px 32px rgba(0,0,0,.14)}html{font-size:18px}body{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;min-height:100vh}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font-family:inherit;font-size:inherit}.app-nav{position:sticky;top:0;z-index:100;background:var(--primary);padding:0 20px;display:flex;align-items:center;gap:8px;height:60px;box-shadow:0 2px 12px #ff8c694d}.app-nav .nav-logo{font-size:1.4rem;font-weight:900;color:#fff;text-decoration:none;margin-right:12px}.app-nav .nav-link{color:#ffffffd9;font-size:1rem;font-weight:600;padding:6px 14px;border-radius:var(--radius-sm);transition:background .2s;text-decoration:none}.app-nav .nav-link:hover,.app-nav .nav-link.router-link-active{background:#ffffff40;color:#fff}.page{max-width:800px;margin:0 auto;padding:28px 20px 60px}.page-title{font-size:1.8rem;font-weight:900;margin-bottom:24px;color:var(--primary-dark)}.card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:20px 24px;transition:box-shadow .2s,transform .2s}.card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.item-list{display:flex;flex-direction:column;gap:14px}.item-card{background:var(--card-bg);border-radius:var(--radius);box-shadow:var(--shadow);padding:18px 22px;cursor:pointer;transition:box-shadow .2s,transform .2s;display:block}.item-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.item-card .item-title{font-size:1.2rem;font-weight:700;color:var(--text)}.item-card .item-sub{font-size:.9rem;color:var(--text-muted);margin-top:4px}.empty{text-align:center;color:var(--text-muted);font-size:1.1rem;padding:48px 0}.btn-back{display:inline-flex;align-items:center;gap:6px;color:var(--primary-dark);font-weight:700;font-size:1rem;margin-bottom:20px;padding:8px 16px;border-radius:var(--radius-sm);background:#ff8c691a;transition:background .2s}.btn-back:hover{background:#ff8c6933}.stats-bar{background:linear-gradient(135deg,var(--primary),var(--primary-dark));color:#fff;border-radius:var(--radius);padding:18px 24px;display:flex;gap:24px;align-items:center;margin-bottom:24px;font-size:1.05rem;font-weight:700;flex-wrap:wrap;box-shadow:var(--shadow)}.stats-bar .stat{display:flex;flex-direction:column;align-items:center;gap:2px}.stats-bar .stat-num{font-size:1.8rem;font-weight:900;line-height:1}.stats-bar .stat-label{font-size:.8rem;opacity:.85;font-weight:600}.group-header{font-size:1rem;font-weight:800;color:var(--accent2);margin:24px 0 10px;padding-left:4px;letter-spacing:.04em}.lesson-row{display:flex;align-items:center;background:var(--card-bg);border-radius:var(--radius-sm);padding:14px 18px;box-shadow:0 2px 10px #0000000f;gap:14px;transition:box-shadow .2s}.lesson-row:hover{box-shadow:var(--shadow)}.lesson-row.done{background:#f0fdf4}.lesson-row .lesson-title{flex:1;font-size:1rem;font-weight:600}.lesson-row.done .lesson-title{color:#16a34a}.lesson-row .lesson-no{font-size:.85rem;color:var(--text-muted);font-weight:600;min-width:30px}.toggle-btn{width:34px;height:34px;border-radius:50%;border:3px solid #d1d5db;background:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s;flex-shrink:0;font-size:1rem}.toggle-btn.done{background:#22c55e;border-color:#22c55e;color:#fff}.toggle-btn:hover{transform:scale(1.1)}.poem-content{font-size:1.5rem;line-height:2.2;white-space:pre-wrap;font-weight:600;letter-spacing:.1em}.poem-pinyin{font-size:.95rem;color:var(--text-muted);line-height:2;white-space:pre-wrap;letter-spacing:.05em;margin-bottom:12px;background:#fff8f0;padding:12px 16px;border-radius:var(--radius-sm)}.poem-meta{font-size:1rem;color:var(--text-muted);margin-bottom:20px}.song-lyrics{font-size:1.3rem;line-height:2.2;white-space:pre-wrap;font-weight:500}.loading{text-align:center;color:var(--text-muted);padding:48px 0;font-size:1.1rem}
