:root{--bg:#f8efe4;--bg-soft:#fff6ee;--bg-soft-2:#fff2e6;--text:#2b1d12;--text-muted:#6d5746;--accent:#cc5f2f;--accent-2:#e17845;--accent-soft:#f6d4c3;--card:#fffdf9;--line:#ead6c4;--success:#3e7b4b;--shadow-soft:0 10px 25px rgb(98 53 26/7%);--shadow-strong:0 18px 40px rgba(98,53,26,.14)}*{box-sizing:border-box}body,html{margin:0;padding:0;min-height:100%;font-family:Nunito,Segoe UI,Tahoma,sans-serif;background:radial-gradient(circle at 15% 10%,#ffe8d8 0,transparent 45%),radial-gradient(circle at 88% 14%,#ffe4ce 0,transparent 38%),linear-gradient(160deg,#fef7ee 0,var(--bg) 50%,#f4e7d8 100%);color:var(--text)}a{color:inherit}.app-shell{max-width:1100px;margin:0 auto;padding:16px}.top-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.nav-links{display:flex;gap:10px;flex-wrap:wrap}.nav-right{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.nav-search-form{display:flex;align-items:center;gap:8px;width:min(520px,100%)}.nav-search-input{min-width:240px;flex:1 1;border:1px solid var(--line);border-radius:999px;padding:8px 12px;background:#fffaf4;color:var(--text)}.nav-search-button{padding:8px 14px;border-radius:999px}.nav-link{border:1px solid var(--line);background:var(--bg-soft);color:var(--text);text-decoration:none;padding:8px 12px;border-radius:999px;font-weight:700;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.nav-link:hover{background:#ffe8d8;box-shadow:0 6px 14px rgba(98,53,26,.1);transform:translateY(-1px)}.panel{border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--card) 0,#fffbf5 100%);padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.panel,.study-card{box-shadow:var(--shadow-soft)}.study-card{border:2px dashed #e1c3aa;background:radial-gradient(circle at 12% 10%,#fffefe 0,transparent 28%),linear-gradient(170deg,#fffaf5,#fff2e8);border-radius:18px;padding:18px;min-height:260px;transition:transform .2s ease,box-shadow .2s ease;animation:cardRise .24s ease;position:relative;overflow:hidden}.study-card:hover{box-shadow:var(--shadow-strong);transform:translateY(-1px)}.study-card:active{transform:scale(.997)}.study-card:after{content:"";position:absolute;inset:0;pointer-events:none;opacity:0}.study-card.weight-flash-decrease:after{background:rgba(120,220,140,.35);animation:weightFlashIn .2s ease;opacity:1}.study-card.weight-flash-same:after{background:rgba(255,220,80,.35);animation:weightFlashIn .2s ease;opacity:1}.study-card.weight-flash-increase:after{background:hsla(0,100%,74%,.35);animation:weightFlashIn .2s ease;opacity:1}.study-main-word{font-size:clamp(30px,6vw,58px);font-weight:800;line-height:1.12;letter-spacing:.02em}.study-pinyin{font-size:20px;color:#8a5f45;margin-top:4px}.study-secondary{margin-top:12px;font-size:clamp(22px,3.8vw,36px);font-weight:700;color:#744d36}.study-sentence-block{margin-top:16px;padding-top:12px;border-top:1px solid var(--line)}.sentence-token-wrap{display:flex;flex-wrap:wrap;gap:8px}.sentence-token-item{display:flex;flex-direction:column;align-items:center;gap:5px}.sentence-token{border:1px solid #d9b89e;background:#fff;border-radius:10px;padding:6px 8px;font-size:22px;min-width:42px;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.sentence-token.clickable{cursor:pointer;background:#fff6ef}.sentence-token.clickable:hover{background:#ffe9d7;transform:translateY(-1px);box-shadow:0 6px 12px rgba(98,53,26,.1)}.char-picker{display:flex;gap:4px;flex-wrap:wrap;justify-content:center}.char-token{border:1px solid #efcdb5;background:#fffbf8;border-radius:8px;font-size:12px;line-height:1;padding:3px 5px;cursor:pointer;transition:transform .12s ease,background .12s ease}.char-token:hover{background:#ffe8d5;transform:translateY(-1px)}.study-translation-sentence{margin-top:12px;color:#61402d;font-size:18px}.study-related-block{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.related-word-list{display:grid;grid-gap:8px;gap:8px}.related-word-item{border:1px solid #e3c6ad;background:#fff8f2;border-radius:12px;padding:10px;text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.related-word-item:hover{background:#ffeedf;transform:translateY(-1px);box-shadow:0 8px 14px rgba(98,53,26,.1)}.related-word-main{display:flex;flex-wrap:wrap;gap:8px;align-items:baseline}.related-word-hanzi{font-size:24px;font-weight:800}.related-word-pinyin{color:#865843;font-weight:700}.related-word-english{color:#5b3d2a}.related-word-meta{margin-top:4px;color:#7a5a45;font-size:13px;font-weight:700}.related-word-meta,.search-form{display:flex;flex-wrap:wrap;gap:10px}.search-input{flex:1 1;min-width:260px}.search-scope-select{width:180px}.search-result-list{display:grid;grid-gap:8px;gap:8px}.search-result-item{border:1px solid #dfc0a7;background:#fff9f2;border-radius:12px;padding:10px;text-align:left;cursor:pointer;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.search-result-item:hover{background:#ffefdf;transform:translateY(-1px);box-shadow:0 8px 14px rgba(98,53,26,.1)}.search-result-main{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.search-result-hanzi{font-size:25px;font-weight:800}.search-result-pinyin{color:#875b43;font-weight:700}.search-result-english{color:#563c2c}.search-result-meta{margin-top:4px;display:flex;gap:12px;flex-wrap:wrap;color:#785641;font-size:13px;font-weight:700}.stat-box{border:1px solid var(--line);border-radius:12px;padding:12px;min-width:150px;background:#fffaf5}.stat-value{font-size:26px;font-weight:800}.calendar-grid{display:grid;grid-template-columns:repeat(14,minmax(0,1fr));grid-gap:6px;gap:6px}.calendar-cell{border:1px solid var(--line);background:#fff;border-radius:8px;padding:8px 0;font-weight:700;cursor:pointer}.calendar-none{background:#f7efe7}.calendar-studied{background:#ffe8ce}.calendar-goal{background:#d4f0d8}.group-details,.level-details{border:1px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;background:#fffbf7}.card-grid{display:grid;grid-gap:6px;gap:6px}.card-row{display:flex;gap:8px;align-items:flex-start;font-size:14px}.nav-link[data-active=true]{background:#ffe3d2;border-color:#ddb79e;box-shadow:inset 0 0 0 1px #f8c9aa}.button{border:0;border-radius:12px;background:linear-gradient(160deg,var(--accent) 0,var(--accent-2) 100%);color:#fff;font-weight:700;padding:10px 14px;cursor:pointer;transition:transform .16s ease,box-shadow .16s ease,opacity .16s ease}.button:hover{transform:translateY(-1px);box-shadow:0 8px 18px rgba(98,53,26,.18)}.button.secondary{background:linear-gradient(160deg,var(--accent-soft) 0,#f2c8b1 100%);color:#4d2f1c}.button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.input,.select,.textarea{width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--text)}.muted{color:var(--text-muted)}.row{display:flex;gap:10px;align-items:center}.wrap{flex-wrap:wrap}.space-top{margin-top:12px}.space-bottom{margin-bottom:12px}.gesture-hints{display:flex;flex-wrap:wrap;gap:8px}.gesture-chip{border:1px solid #e6c5ac;background:linear-gradient(170deg,#fff8f1 0,var(--bg-soft-2) 100%);border-radius:999px;padding:6px 10px;font-size:12px;font-weight:700;color:#72492f}@keyframes cardRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes weightFlashIn{0%{opacity:0}to{opacity:1}}@media (max-width:860px){.app-shell{padding:12px}.top-nav{flex-direction:column}.nav-right,.top-nav{align-items:stretch}.nav-search-form{width:100%}.nav-search-input{min-width:0}.panel{padding:14px}.button{min-height:42px}.calendar-grid{grid-template-columns:repeat(7,minmax(0,1fr))}.gesture-chip{font-size:11px;padding:5px 8px}.search-scope-select{width:100%}}