:root{--ink:#20231f;--muted:#777d75;--line:#dde1db;--soft:#f2f4f0;--dark:#30362f;--safe:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#eef0ec;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"PingFang SC",sans-serif}body{overscroll-behavior:none}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell,.screen{width:100%;max-width:480px;min-height:100dvh;margin:auto;background:#fff;position:relative;overflow:hidden}.main-header{height:calc(60px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 20px 0;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}h1{font-size:21px;margin:0}.icon-button,.sub-header button{border:0;background:transparent;width:42px;height:42px;font-size:20px}.page{padding:26px 20px calc(160px + var(--safe));min-height:calc(100dvh - 60px)}.page section{margin-bottom:31px}.page section h2{font-size:14px;margin:0 0 11px}.segmented{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:4px;background:var(--soft);border-radius:13px}.segmented button{height:48px;border:0;border-radius:10px;background:transparent;color:#666}.segmented button.active{background:#fff;color:#171a17;font-weight:650;box-shadow:0 1px 6px #17201613}.supporting{font-size:12px;color:var(--muted);margin:10px 3px 0}.picker-button{width:100%;height:52px;border:1px solid var(--line);border-radius:13px;background:#fff;padding:0 16px;display:flex;justify-content:space-between;align-items:center}.fixed-primary{position:absolute;left:20px;right:20px;bottom:calc(91px + var(--safe))}.primary,.secondary{width:100%;height:54px;border-radius:14px;font-size:16px;font-weight:650}.primary{border:0;background:var(--dark);color:#fff}.primary:disabled{background:#c4c8c2}.secondary{border:1px solid var(--line);background:#fff}.tabs{height:calc(72px + var(--safe));padding-bottom:var(--safe);position:absolute;bottom:0;left:0;right:0;border-top:1px solid var(--line);background:#fff;display:grid;grid-template-columns:1fr 1fr;z-index:5}.tabs button{border:0;background:transparent;color:#8b9089;font-size:11px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:3px}.tabs span{font-size:20px}.tabs .active{color:var(--ink);font-weight:650}.word-row{min-height:78px;border-bottom:1px solid var(--line);padding:14px 2px;display:flex;align-items:center;gap:12px}.word-copy{flex:1;min-width:0}.word-copy strong{font-family:"Yu Mincho","Songti SC",serif;font-size:18px;display:block;overflow-wrap:anywhere}.word-copy small{font-size:13px;color:var(--muted);display:block;margin-top:3px}.row-favorite{width:42px;height:42px;border:0;border-radius:50%;background:var(--dark);color:#fff;font-size:18px}.floating{position:absolute;right:22px;bottom:calc(94px + var(--safe));width:62px;height:62px;border:0;border-radius:20px;background:var(--dark);color:white;font-size:30px;box-shadow:0 8px 22px #1e251d35}.empty-state{text-align:center;padding:150px 28px 0;color:var(--muted)}.empty-state h2{color:var(--ink);font-size:19px;margin:15px 0 7px}.empty-state p{font-size:13px;margin:0 0 23px}.empty-state .secondary{width:auto;padding:0 25px}.empty-icon{width:58px;height:58px;border-radius:50%;margin:auto;background:var(--soft);display:grid;place-items:center;font-size:25px}.screen{position:fixed;inset:0;z-index:20}.study{background:#fbfcfa;touch-action:pan-y}.study-header{height:calc(92px + env(safe-area-inset-top,0px));padding:calc(12px + env(safe-area-inset-top,0px)) 16px 0;display:grid;grid-template-columns:44px 1fr 44px;gap:12px;align-items:start}.round{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:white;font-size:21px}.round.active{background:var(--dark);color:white}.progress{text-align:center;padding-top:10px}.progress>div{height:4px;background:#e4e7e1;border-radius:5px;overflow:hidden;margin-bottom:8px}.progress i{display:block;height:100%;background:var(--dark)}.progress span{font-size:12px;color:var(--muted)}.flashcard{position:absolute;top:calc(92px + env(safe-area-inset-top,0px));bottom:54px;left:0;width:100%;border:0;background:transparent;padding:30px 34px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;transition:.16s}.flashcard.slide-left{transform:translateX(-28%);opacity:0}.flashcard.slide-right{transform:translateX(28%);opacity:0}.card-pos{font-size:12px;font-weight:650;color:#5e655c;background:var(--soft);border-radius:999px;padding:5px 11px;margin-bottom:14px}.card-hint{font-size:12px;color:#969b94;margin-bottom:22px}.card-content{font-family:"Yu Mincho","Songti SC",serif;font-size:clamp(34px,10vw,48px);line-height:1.55;overflow-wrap:anywhere}.card-content.long{font-size:28px}.card-reading{min-height:22px;color:var(--muted);font-size:15px;margin-top:15px}.card-dictionary{min-height:22px;color:#5f665d;font-size:14px;margin-top:7px}.gesture{position:absolute;bottom:calc(26px + var(--safe));left:0;right:0;text-align:center;font-size:11px;color:#999}.complete{text-align:center;padding:calc(145px + env(safe-area-inset-top,0px)) 28px 35px}.complete-icon{width:72px;height:72px;border-radius:50%;background:#e9ede7;margin:auto;display:grid;place-items:center;font-size:31px}.complete h1{font-size:28px;margin:28px 0 8px}.complete p{color:var(--muted)}.complete-actions{position:absolute;left:20px;right:20px;bottom:calc(30px + var(--safe));display:grid;gap:11px}.sub-header{height:calc(61px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 12px 0;display:grid;grid-template-columns:44px 1fr 44px;align-items:center;border-bottom:1px solid var(--line);text-align:center}.sub-header span{width:44px}.entry-form{padding:10px 20px}.entry-form label{display:block;font-size:13px;font-weight:650;margin:24px 0}.entry-form input{display:block;width:100%;height:53px;border:1px solid var(--line);border-radius:13px;margin-top:8px;padding:0 14px;font-size:16px}.entry-form p,.progress-page p{font-size:12px;color:var(--muted)}.sub-action{position:absolute;left:20px;right:20px;bottom:calc(28px + var(--safe))}.settings-list{padding:12px 20px}.settings-list button{width:100%;height:78px;border:0;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;gap:14px;text-align:left}.settings-list i{font-style:normal;width:43px;height:43px;border-radius:12px;background:var(--soft);display:grid;place-items:center;font-size:19px}.settings-list strong{flex:1}.settings-list span{font-size:13px;color:var(--muted)}.sub-list{padding:0 20px;height:calc(100dvh - 61px);overflow:auto}.progress-page{padding:22px 20px}.course-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.course-grid button{aspect-ratio:1;border:1px solid var(--line);border-radius:11px;background:#fff}.course-grid .active{background:var(--dark);color:#fff}.overlay{position:fixed;inset:0;z-index:50;max-width:480px;margin:auto;background:#20252066}.picker-sheet{position:absolute;left:0;right:0;bottom:0;background:#fff;border-radius:24px 24px 0 0;padding:14px 20px calc(25px + var(--safe));max-height:75dvh}.handle{width:42px;height:5px;border-radius:9px;background:#d1d5cf;margin:0 auto 18px}.picker-sheet h2{text-align:center;font-size:16px}.course-options{height:min(390px,48dvh);overflow-y:auto;border-block:1px solid var(--line)}.course-options button{width:100%;height:52px;border:0;border-bottom:1px solid #eef0ed;background:#fff}.course-options .active{background:var(--soft);font-weight:700;font-size:17px}.sheet-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:16px}#toast{position:fixed;z-index:99;left:50%;bottom:calc(25px + var(--safe));transform:translate(-50%,18px);opacity:0;background:#252a24;color:white;border-radius:10px;padding:11px 18px;font-size:13px;transition:.2s;pointer-events:none}#toast.show{transform:translate(-50%,0);opacity:1}[hidden]{display:none!important}@media(min-width:481px){body{padding:20px 0}.app-shell,.screen{min-height:calc(100dvh - 40px);border-radius:26px;box-shadow:0 12px 45px #232a2220}.screen{top:20px;bottom:20px;min-height:0}.overlay{top:20px;bottom:20px}}
