:root{--teal:#218a88;--teal-dark:#1b6f6d;--teal-light:#e4f2f1;--cream:#f5f2e3;--text:#4a4a4a;--text-sub:#6e7a76;--border:#e2dfd2;--white:#fff;--course:#218a88;--done-bg:#e4f2f1;--gold:#fac775;--accent:#ee8a4a;--accent-dark:#b85a1f;--accent-light:#fdf0e6;--gold-bg:#fdf4e4;--gold-ink:#8a6210;--r:14px;--tap:44px;--safe-b:env(safe-area-inset-bottom,0px);color:var(--text);-webkit-text-size-adjust:100%;font-family:Zen Kaku Gothic New,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,sans-serif}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;margin:0;padding:0}body{background:var(--cream);word-break:auto-phrase;line-break:strict;font-size:15px;line-height:1.7}.screen-title,.section-name,.card-label,.item-name,.greet .name,.post-theme,.badge,.btn,.chip,.field label{text-wrap:balance}.screen-sub,.section-purpose,.greet .line,.hint,.notice,.mascot-note,.ro-banner,.goal-row,.err,.row .v{text-wrap:pretty}#root{justify-content:center;height:100%;display:flex}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:none;font-family:inherit}a{color:var(--teal)}.app{background:var(--cream);background-image:linear-gradient(#fff9 1px,#0000 1px),linear-gradient(90deg,#fff9 1px,#0000 1px);background-size:26px 26px;flex-direction:column;width:100%;max-width:420px;min-height:100%;display:flex;position:relative}.appbar{background:var(--teal);color:#fff;z-index:10;flex-shrink:0;align-items:center;gap:10px;padding:12px 16px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000014}.appbar .mark{background:#fff;border-radius:50%;flex-shrink:0;width:34px;height:34px;padding:5px}.appbar .mark img{object-fit:contain;width:100%;height:100%;display:block}.appbar .wordmark{background:#fff;border-radius:5px;height:15px;padding:4px 7px;display:block}.appbar .titles{min-width:0}.appbar .t-row{align-items:center;gap:8px;display:flex}.appbar .t-sub{letter-spacing:.02em;font-size:15px;font-weight:700}.appbar .t-note{opacity:.85;white-space:nowrap;text-overflow:ellipsis;margin-top:1px;font-size:11px;overflow:hidden}.appbar .back{color:#fff;min-height:var(--tap);align-items:center;gap:6px;margin-left:-4px;font-size:15px;font-weight:700;display:flex}.screen{padding:16px 16px calc(84px + var(--safe-b));flex:1}.screen-head{justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.screen-title{color:var(--teal);margin:0;font-size:18px;font-weight:700}.screen-sub{color:var(--text-sub);font-size:13px}.card{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r);margin-bottom:12px;padding:15px 16px;box-shadow:0 2px 6px #218a880d}.card.accent{border-color:var(--teal);box-shadow:0 2px 6px #218a8817}.card-label{color:var(--text-sub);align-items:center;gap:6px;margin-bottom:7px;font-size:12px;font-weight:600;display:flex}.btn{min-height:var(--tap);background:var(--teal);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:15px;font-weight:700;transition:transform .12s;display:inline-flex}.btn:active{transform:scale(.98)}.btn:disabled{cursor:default;background:#b9c4c3}.btn-block{width:100%}.btn-ghost{background:var(--white);color:var(--teal);border:1.5px solid var(--teal)}.btn-quiet{background:var(--white);color:var(--text);border:1.5px solid var(--border);font-weight:600}.btn-sm{border-radius:10px;min-height:38px;padding:0 14px;font-size:13px}.bar{background:#ece9dc;border-radius:999px;height:10px;overflow:hidden}.bar>span{background:var(--course);border-radius:999px;height:100%;transition:width .45s;display:block}.bar.gold>span{background:var(--gold)}.big-num{color:var(--teal);font-size:30px;font-weight:700;line-height:1.15}.unit{color:var(--text-sub);font-size:13px;font-weight:600}.chip{color:var(--course);border:1.5px solid var(--course);background:#fff;border-radius:999px;padding:1px 10px;font-size:11px;font-weight:700;display:inline-block}.level{background:var(--white);border:1.5px solid var(--teal);border-radius:var(--r);margin-bottom:12px;padding:12px 14px 14px;box-shadow:0 2px 6px #218a8817}.level-row{align-items:baseline;gap:10px;margin-bottom:9px;display:flex}.level-now{color:var(--teal);font-size:19px;font-weight:700}.level-next{color:var(--text-sub);white-space:nowrap;margin-left:auto;font-size:12px}.level-track{gap:5px;display:flex}.level-track .seg{background:#ece9dc;border-radius:999px;flex:1;height:9px;overflow:hidden}.level-track .seg.done{background:var(--teal)}.level-track .seg.now b{background:var(--teal);border-radius:999px;height:100%;transition:width .45s;display:block}.celebrate-back{z-index:80;padding:16px;padding-bottom:calc(16px + var(--safe-b));background:#23302c59;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.celebrate{background:var(--white);border:1.5px solid var(--gold);text-align:center;border-radius:18px;width:100%;max-width:388px;padding:18px 18px 16px;animation:.28s ease-out rise;box-shadow:0 10px 30px #0000002e}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.celebrate .sonomaru{width:96px;margin:0 auto 6px}.celebrate-kind{color:var(--gold-ink);background:var(--gold-bg);border:1.5px solid var(--gold);border-radius:999px;margin-bottom:8px;padding:2px 12px;font-size:11px;font-weight:700;display:inline-block}.celebrate-title{color:var(--teal);text-wrap:balance;font-size:20px;font-weight:700}.celebrate-note{color:var(--text-sub);text-wrap:pretty;margin:6px 0 14px;font-size:13px}.sonomaru{width:auto;height:auto;display:block}.greet{align-items:flex-end;gap:10px;margin-bottom:14px;display:flex}.greet .sonomaru{flex-shrink:0;width:74px}.greet .bubble{background:var(--white);border:1.5px solid var(--teal);border-radius:14px;flex:1;padding:10px 13px;position:relative;box-shadow:0 2px 6px #218a8812}.greet .bubble:before,.greet .bubble:after{content:"";border:8px solid #0000;border-right-color:var(--teal);border-left:0;position:absolute;top:22px;left:-8px}.greet .bubble:after{border-right-color:#fff;left:-6px}.greet .bubble{margin-bottom:6px}.greet .name{font-size:15px;font-weight:700;line-height:1.4}.greet .line{color:var(--text-sub);margin-top:2px;font-size:12px}.mascot-note{text-align:left;color:var(--text-sub);justify-content:center;align-items:center;gap:12px;padding:26px 8px;font-size:13.5px;line-height:1.75;display:flex}.mascot-note .sonomaru{flex-shrink:0;width:76px}.daily{background:var(--teal);border-radius:var(--r);margin-bottom:14px;padding:14px 16px 16px;box-shadow:0 2px 8px #218a882e}.daily-head{align-items:center;gap:9px;display:flex}.daily-tag{color:var(--teal-dark);background:#fff;border-radius:999px;flex:none;padding:2px 10px;font-size:11px;font-weight:700}.daily-title{color:#fff;font-size:17px;font-weight:700}.daily-purpose{color:#ffffffeb;text-wrap:pretty;margin:7px 0 12px;font-size:13px;line-height:1.75}.daily .btn{color:var(--teal);background:#fff;text-decoration:none}.daily .btn:active{background:var(--teal-light)}.daily-count{color:#fff;align-items:center;gap:10px;margin:0 0 12px;font-size:13px;font-weight:700;display:flex}.daily-bar{background:#ffffff47;border-radius:999px;flex:1;height:8px;overflow:hidden}.daily-bar b{background:#fff;border-radius:999px;height:100%;transition:width .45s;display:block}.daily-toggle{width:100%;min-height:var(--tap);background:var(--teal-dark);color:#fff;border:1.5px solid #fff9;border-radius:12px;justify-content:center;align-items:center;gap:8px;margin-top:10px;padding:0 14px;font-size:14px;font-weight:700;transition:transform .12s;display:flex}.daily-toggle:active{transform:scale(.98)}.daily-toggle .n{color:var(--teal-dark);background:#fff;border-radius:999px;padding:1px 9px;font-size:12px;font-weight:700}.radio-list{padding:0;overflow:hidden}.radio-season{color:var(--teal);background:var(--teal-light);border-bottom:1px solid #cbe4e2;align-items:baseline;gap:8px;padding:12px 15px 10px;font-size:13px;font-weight:700;display:flex}.radio-season span{color:var(--text-sub);margin-left:auto;font-size:11.5px;font-weight:600}.ep-no{min-width:42px;color:var(--text-sub);margin-right:8px;font-size:12px;font-weight:700;display:inline-block}.radio-list .item.done .ep-no{color:var(--teal)}.section{background:var(--white);border:1.5px solid var(--border);border-radius:var(--r);margin-bottom:12px;overflow:hidden;box-shadow:0 2px 6px #218a880d}.section-head{width:100%;min-height:var(--tap);text-align:left;align-items:flex-start;gap:10px;padding:13px 15px;display:flex}.section-head .chev{color:var(--teal);flex-shrink:0;padding-top:5px;font-size:11px}.section-name{color:var(--teal);font-size:14.5px;font-weight:700;display:block}.section-purpose{color:var(--text);text-wrap:pretty;margin-top:3px;font-size:12.5px;line-height:1.7;display:block}.section-count{color:var(--text-sub);white-space:nowrap;margin-left:auto;padding-top:2px;font-size:12px;font-weight:600}.section.milestone-section{border-color:var(--gold)}.section.milestone-section .section-head{background:var(--gold-bg);border-bottom:1px solid #f2e2c4}.section.milestone-section .section-name,.section.milestone-section .section-head .chev{color:var(--gold-ink)}.items{border-top:1px solid var(--border)}.item{min-height:var(--tap);text-align:left;background:#fff;border-bottom:1px solid #eeebe0;align-items:flex-start;gap:11px;width:100%;padding:11px 15px;transition:background .2s;display:flex}.item:last-child{border-bottom:none}.item.done{background:var(--done-bg)}.item.is-milestone{background:var(--gold-bg)}.item.is-milestone.done{background:var(--done-bg)}.check{color:#fff;background:#fff;border:2px solid #ccd6d5;border-radius:7px;flex:0 0 23px;justify-content:center;align-items:center;width:23px;height:23px;margin-top:1px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.item.done .check{background:var(--teal);border-color:var(--teal)}.item-body{flex:1;min-width:0}.item-name{overflow-wrap:anywhere;font-size:14px}.item.done .item-name{color:var(--teal-dark)}.item-meta{color:var(--text-sub);flex-wrap:wrap;align-items:center;gap:10px;margin-top:2px;font-size:12px;display:flex}.material-link{min-height:var(--tap);border:1.5px solid var(--teal);color:var(--teal);white-space:nowrap;background:#fff;border-radius:999px;flex:none;align-items:center;margin-left:auto;padding:0 14px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.material-link:active{background:var(--teal-light)}.goal-row{background:#fcfbf5;border-bottom:1px solid #eeebe0;gap:8px;padding:11px 15px;font-size:13px;display:flex}.goal-row .tag{flex:none;align-items:center;gap:5px;font-weight:700;display:inline-flex}.goal-row .tag:before{content:"";background:currentColor;border-radius:50%;width:7px;height:7px}.goal-row.must .tag{color:var(--teal)}.goal-row.buffer .tag{color:var(--gold-ink)}.badges{flex-wrap:wrap;gap:8px;display:flex}.badge{background:var(--gold-bg);border:1.5px solid var(--gold);color:var(--gold-ink);border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700}.post{text-align:left;background:var(--white);border:1.5px solid var(--border);border-radius:var(--r);width:100%;margin-bottom:10px;padding:13px 15px;transition:border-color .15s;display:block;box-shadow:0 2px 6px #218a880d}.post:active{border-color:var(--teal)}.post-top{align-items:baseline;gap:8px;display:flex}.post-no{color:var(--teal);font-weight:700}.post-date{color:var(--text-sub);font-size:12px}.post-theme{word-break:break-word;margin-top:2px;font-size:14px}.post-stats{color:var(--text);flex-wrap:wrap;gap:12px;margin-top:7px;font-size:13px;display:flex}.post-stats i{color:var(--text-sub);margin-right:3px;font-style:normal}.post-empty{color:var(--teal);margin-top:5px;font-size:12px;font-weight:600}.milestone-divider{color:var(--gold-ink);align-items:center;gap:10px;margin:18px 0 12px;font-size:12px;font-weight:700;display:flex}.milestone-divider:before,.milestone-divider:after{content:"";background:var(--gold);flex:1;height:1px}.field{margin-bottom:14px}.field label{color:var(--text);margin-bottom:5px;font-size:13px;font-weight:600;display:block}.field input,.field textarea{width:100%;min-height:var(--tap);border:1.5px solid var(--border);background:#fff;border-radius:12px;padding:10px 13px}.field textarea{resize:vertical;min-height:88px}.field input:focus,.field textarea:focus{border-color:var(--teal);box-shadow:0 0 0 3px var(--teal-light);outline:none}.field input:disabled,.field textarea:disabled{color:var(--text-sub);background:#f4f3ec}.grid2{grid-template-columns:1fr 1fr;gap:10px;display:grid}.calc{background:var(--teal-light);border:1.5px solid #cbe4e2;border-radius:12px;justify-content:space-between;gap:12px;margin-bottom:14px;padding:12px 14px;display:flex}.calc div{text-align:center;flex:1}.calc .k{color:var(--text-sub);font-size:11.5px}.calc .v{color:var(--teal);font-size:20px;font-weight:700}.tabbar{z-index:20;border-top:1.5px solid var(--border);padding:6px 8px calc(6px + var(--safe-b));background:#fff;gap:4px;width:100%;max-width:420px;margin:0 auto;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -2px 10px #0000000a}.tab{min-height:52px;color:var(--text-sub);border-radius:12px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10.5px;font-weight:700;transition:background .15s,color .15s;display:flex}.tab .ico{justify-content:center;align-items:center;width:24px;height:24px;font-size:19px;line-height:1;display:flex}.tab .ico img{object-fit:contain;filter:grayscale()opacity(.68);width:100%;height:100%;transition:filter .15s;display:block}.tab.on{background:var(--teal-light);color:var(--teal-dark)}.tab.on .ico img{filter:none}.toast{left:50%;bottom:calc(86px + var(--safe-b));background:var(--text);color:#fff;z-index:60;text-align:center;border-radius:999px;max-width:90vw;padding:10px 16px;font-size:13px;position:fixed;transform:translate(-50%);box-shadow:0 4px 14px #00000026}.login{padding:24px 22px calc(40px + var(--safe-b));flex-direction:column;flex:1;justify-content:center;gap:4px;display:flex}.login-logo{text-align:center;margin-bottom:30px}.login-logo img{width:172px;max-width:55%;height:auto;display:inline-block}.login-logo .sub{color:var(--text-sub);letter-spacing:.08em;margin-top:8px;font-size:13px}.remember{min-height:var(--tap);color:var(--text-sub);align-items:center;gap:8px;font-size:14px;display:flex}.remember input{width:20px;height:20px;accent-color:var(--teal)}.hint{color:var(--text-sub);text-wrap:pretty;margin-top:10px;font-size:12px;line-height:1.8}.err{color:#a4442f;background:#fbeeea;border:1.5px solid #f0d8d1;border-radius:10px;margin-bottom:6px;padding:10px 12px;font-size:13px}.timeline{margin:2px 0 0;padding:0;list-style:none}.tl{gap:12px;padding:0 0 14px;display:flex;position:relative}.tl:last-child{padding-bottom:0}.tl:before{content:"";background:var(--border);width:2px;position:absolute;top:14px;bottom:0;left:5px}.tl:last-child:before{display:none}.tl-dot{border:3px solid var(--teal);z-index:1;background:#fff;border-radius:50%;flex:0 0 12px;width:12px;height:12px;margin-top:4px}.tl-mile .tl-dot{border-color:var(--gold);background:var(--gold-bg)}.tl-body{flex:1;min-width:0}.tl-label{color:var(--text);text-wrap:pretty;font-size:14px;font-weight:600;display:block}.tl-mile .tl-label{color:var(--gold-ink);font-weight:700}.tl-meta{color:var(--text-sub);margin-top:1px;font-size:12px;display:block}.terms{flex-direction:column;display:flex}.term+.term{border-top:1px solid var(--border);margin-top:13px;padding-top:13px}.term-label{color:var(--teal);font-size:14px;font-weight:700}.term-text{color:var(--text);text-wrap:pretty;margin:4px 0 0;font-size:13.5px;line-height:1.8}.btn-logout{background:var(--white);color:var(--text);border:1.5px solid #cdd5d2;font-weight:700}.rows{flex-direction:column;gap:9px;display:flex}.row{justify-content:space-between;gap:12px;font-size:14px;display:flex}.row .k{color:var(--text-sub)}.badge-row .k{color:var(--text);font-weight:600}.badge-row .v{color:var(--text-sub);font-weight:600}.row .v{text-align:right;word-break:break-word;font-weight:600}.notice{color:#6f7b77;border:1px solid var(--border);text-wrap:pretty;background:#fbfaf2;border-radius:10px;padding:11px 13px;font-size:12px;line-height:1.75}.empty{text-align:center;color:var(--text-sub);padding:30px 12px;font-size:14px}.filters{background:#ece9dc;border-radius:12px;margin-bottom:12px;padding:3px;display:flex}.filters button{min-height:38px;color:var(--text-sub);border-radius:9px;flex:1;font-size:13px;font-weight:700}.filters button.on{color:var(--teal);background:#fff;box-shadow:0 1px 3px #00000014}.ro-banner{background:var(--gold-bg);border:1.5px solid var(--gold);color:var(--gold-ink);border-radius:12px;margin-bottom:12px;padding:9px 12px;font-size:12px}.test-head{margin:4px 2px 14px}.test-section{color:var(--teal-dark);font-size:12px;font-weight:700}.test-title{text-wrap:balance;margin:4px 0 8px;font-size:19px;line-height:1.45}.test-meta{color:var(--text);flex-wrap:wrap;align-items:center;gap:6px 12px;font-size:13px;display:flex}.test-passed{color:#fff;background:var(--teal);border-radius:999px;padding:2px 10px;font-size:12px;font-weight:700}.test-result{border-color:var(--teal)}.test-result .mascot-note{color:var(--text);justify-content:flex-start;padding:4px 0 12px}.test-result p{text-wrap:pretty;margin:2px 0 0}.test-score{color:var(--teal-dark);font-size:30px;font-weight:700;line-height:1.2}.test-score small{color:var(--text);font-size:14px}.test-actions{gap:8px;display:grid}.question .q-no{color:var(--teal-dark);align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.q-mark{color:#fff;background:var(--teal);border-radius:999px;padding:1px 9px;font-size:12px}.question.is-wrong{border-color:#e4b9ad}.question.is-wrong .q-mark{background:#b5533c}.q-text{white-space:pre-line;margin:6px 0 12px;font-size:15px;line-height:1.7}.q-hint{color:var(--teal-dark);margin:-6px 0 10px;font-size:13px;font-weight:600}.tf{grid-template-columns:1fr 1fr;gap:8px;display:grid}.choices{gap:8px;display:grid}.opt{border:1.5px solid var(--border);background:var(--white);min-height:48px;color:var(--text);text-align:left;border-radius:12px;align-items:center;gap:10px;padding:10px 12px;font-size:14.5px;font-weight:600;line-height:1.5;display:flex}.tf .opt{justify-content:center;font-size:15px}.opt .sym{border:1.5px solid var(--border);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;display:inline-flex}.tf .opt .sym{width:auto;height:auto;color:var(--teal-dark);border:none;font-size:20px}.opt .sym.box{border-radius:6px}.opt.picked{border-color:var(--teal);background:var(--teal-light);color:var(--teal-dark)}.choices .opt.picked .sym{background:var(--teal);border-color:var(--teal)}.opt:disabled{cursor:default}.opt.answer{border:2.5px solid var(--teal)}.q-expl{color:var(--text);background:#f7f6ef;border-radius:10px;margin-top:12px;padding:10px 12px;font-size:13.5px;line-height:1.7}.q-expl p{white-space:pre-line;text-wrap:pretty;margin:4px 0 0}.test-note{text-align:center;color:var(--text);margin:8px 0 0;font-size:13px}.item.is-test .check{cursor:default}.item.is-test .item-name{color:var(--teal-dark);font-weight:700}a.btn{text-decoration:none}.opt.wrong-pick{color:#8f3a26;background:#fbeeea;border-color:#c9826f}.choices .opt.wrong-pick .sym{background:#b5533c;border-color:#b5533c}.kind{background:var(--teal);color:#fff;vertical-align:2px;border-radius:6px;margin-right:7px;padding:1px 7px;font-size:11px;font-weight:700;line-height:1.6;display:inline-block}.material-link.is-video{background:var(--teal);color:#fff}.material-link.is-video:active{background:var(--teal-dark)}.item.is-test{background:#f7f5ec;border-bottom-color:#ebe7d8;padding-left:38px;position:relative}.item.is-test:before{content:"";border-bottom:2px solid #cfd9d8;border-left:2px solid #cfd9d8;border-bottom-left-radius:6px;width:8px;position:absolute;top:0;bottom:50%;left:26px}.item.is-test.done{background:var(--done-bg)}.item.is-test .item-name{font-size:13.5px}.lesson{background:#fff;border-bottom:1px solid #eeebe0;padding:12px 15px 14px;position:relative}.lesson:last-child{border-bottom:none}.lesson.done{background:var(--done-bg)}.lesson .anchor{position:absolute;top:0}.lesson-head{margin-bottom:9px}.lesson-name{color:var(--text);font-size:14.5px;font-weight:700}.lesson.done .lesson-name{color:var(--teal-dark)}.steps{grid-template-columns:1fr 1fr;gap:8px;display:grid}.step{border:1.5px solid var(--teal);color:var(--teal-dark);background:#fff;border-radius:12px;flex-direction:column;text-decoration:none;display:flex;overflow:hidden}.step-main{min-height:52px;color:inherit;flex:1;align-items:center;gap:8px;padding:9px 10px;text-decoration:none;display:flex}.step-no{background:var(--teal);color:#fff;border-radius:50%;flex:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:13px;font-weight:700;display:inline-flex}.step-text{flex-direction:column;min-width:0;line-height:1.3;display:flex}.step-text b{white-space:nowrap;font-size:14px}.step-text small{color:var(--text);font-size:12px;font-weight:600}.step-check{min-height:36px;color:var(--teal-dark);background:#f4faf9;border-top:1px solid #d6e6e5;justify-content:center;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.step-check .box{color:#fff;background:#fff;border:2px solid #b7cbc9;border-radius:5px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:inline-flex}.step.is-done .step-check .box{background:var(--teal);border-color:var(--teal)}.step.is-done .step-no{background:var(--teal-dark)}.step.is-test{border-color:var(--accent);color:var(--accent-dark)}.step.is-test .step-no{background:var(--accent)}.step.is-test.is-done .step-no{background:var(--accent-dark)}.step.is-test.is-done small{color:var(--accent-dark)}.study-progress{padding-bottom:13px}.sp-top{justify-content:space-between;align-items:baseline;margin-bottom:6px;display:flex}.sp-label{color:var(--text);font-size:13px;font-weight:700}.sp-pct{color:var(--teal-dark);font-size:26px;font-weight:700;line-height:1}.sp-pct small{margin-left:2px;font-size:13px}.sp-parts{grid-template-columns:1fr 1fr;gap:8px;margin-top:10px;display:grid}.sp-part{white-space:nowrap;border-radius:10px;align-items:center;gap:7px;padding:7px 10px;font-size:13.5px;font-weight:700;display:flex}.sp-part i{color:#fff;border-radius:6px;padding:1px 6px;font-size:11px;font-style:normal}.sp-part.video{background:var(--teal-light);color:var(--teal-dark)}.sp-part.video i{background:var(--teal)}.sp-part.test{background:var(--accent-light);color:var(--accent-dark)}.sp-part.test i{background:var(--accent)}.section-bar{background:#ece9dc;border-radius:999px;height:6px;margin-top:8px;display:block;overflow:hidden}.section-bar>span{background:var(--teal);border-radius:999px;height:100%;transition:width .45s;display:block}.section-bar.full>span{background:var(--accent)}.kind.work{background:var(--gold);color:var(--gold-ink)}.material-link.is-work{color:var(--gold-ink);background:var(--gold-bg);border-color:#e0a84a}.item.is-work{background:#fffaf0}.item.is-work.done{background:var(--done-bg)}.sp-parts{grid-template-columns:repeat(3,1fr);gap:6px}.sp-part{flex-direction:column;align-items:flex-start;gap:3px;padding:7px 9px;font-size:13px}.sp-part.work{background:var(--gold-bg);color:var(--gold-ink)}.sp-part.work i{background:#e0a84a}.cw-done{color:var(--gold-ink);background:var(--gold-bg);border:1.5px solid var(--gold);border-radius:999px;padding:1px 10px;font-size:12px;font-weight:700}.cw-picker{margin-bottom:8px}.cw-picker-label{margin-bottom:6px;font-size:13px;font-weight:700}.cw-chips{flex-wrap:wrap;gap:6px;margin-bottom:10px;display:flex}.cw-chips button{border:1.5px solid var(--border);background:var(--white);min-height:38px;color:var(--text);border-radius:999px;padding:0 14px;font-size:13.5px;font-weight:700;position:relative}.cw-chips button.on{border-color:var(--teal);background:var(--teal);color:#fff}.cw-chips.parts button{min-width:48px}.cw-chips .dot{background:#e0a84a;border-radius:50%;width:7px;height:7px;position:absolute;top:3px;right:5px}.cw-card{padding:12px}.cw-body{word-break:normal;overflow-wrap:anywhere;font-size:14px;line-height:1.7;overflow-x:auto}.cw-body table{border-collapse:collapse;margin:6px 0;width:100%!important;height:auto!important}.cw-body col{width:auto!important}.cw-body tr,.cw-body td,.cw-body th{height:auto!important}.cw-body td,.cw-body th{vertical-align:top;border:1px solid #ddd8c6;padding:6px 8px}.cw-body img{max-width:100%!important;height:auto!important}.cw-body p{margin:0 0 6px}.cw-body a{color:var(--teal-dark);font-weight:700}.cw-answer-label{font-size:15px;font-weight:700;display:block}.cw-hint{margin:4px 0 8px;font-size:13px}.cw-answer textarea{border:1.5px solid var(--border);width:100%;font:inherit;resize:vertical;background:#fff;border-radius:12px;margin-bottom:10px;padding:10px 12px;font-size:15px}.cw-answer textarea:focus{border-color:var(--teal);outline:none}.cw-body td:first-child{white-space:nowrap;width:1%}.step{border:1.5px solid var(--teal);background:#fff;border-radius:12px;flex-direction:column;gap:0;display:flex;overflow:hidden}.step-label{color:var(--teal-dark);align-items:center;gap:6px;padding:7px 10px 6px;font-size:13px;font-weight:700;display:flex}.step-label .step-no{width:20px;height:20px;font-size:12px}.step-min{color:var(--text);margin-left:auto;font-size:12px;font-weight:600}.step-go{background:var(--teal);color:#fff;white-space:nowrap;min-height:46px;box-shadow:0 2px 0 var(--teal-dark);border-radius:10px;justify-content:center;align-items:center;gap:7px;margin:0 8px;font-size:14.5px;font-weight:700;text-decoration:none;display:flex}.step-go:active{box-shadow:none;transform:translateY(1px)}.step-go .play{border-top:6px solid #0000;border-bottom:6px solid #0000;border-left:10px solid #fff;width:0;height:0}.step-foot{min-height:40px;color:var(--teal-dark);white-space:nowrap;background:#f4faf9;border-top:1px solid #d6e6e5;justify-content:center;align-items:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:700;display:flex}.step-foot .box{color:#fff;background:#fff;border:2px solid #9fb9b7;border-radius:5px;justify-content:center;align-items:center;width:18px;height:18px;font-size:11px;display:inline-flex}.step.is-done .step-foot .box,.step-foot .box.on{background:var(--teal);border-color:var(--teal)}.step.is-done{background:var(--teal-light)}.step.is-test .step-label{color:var(--accent-dark)}.step.is-test .step-go{background:var(--accent);box-shadow:0 2px 0 var(--accent-dark)}.step.is-test .step-foot{color:var(--accent-dark);background:#fff8f2;border-top-color:#f3d9c6}.step.is-test .step-foot .box.on{background:var(--accent);border-color:var(--accent)}.step.is-test.is-done{background:var(--accent-light)}.side-brand{display:none}@media (width>=1000px){:root{--side:232px}#root{display:block}.app{max-width:none;margin-left:var(--side);width:calc(100% - var(--side));min-height:100vh}.tabbar{width:var(--side);border-top:none;border-right:1.5px solid var(--border);max-width:none;box-shadow:none;flex-direction:column;gap:6px;margin:0;padding:20px 14px;inset:0 auto 0 0}.side-brand{border-bottom:1px solid var(--border);align-items:center;gap:10px;margin-bottom:8px;padding:4px 8px 22px;display:flex}.side-mark{width:40px;height:40px}.side-wordmark{height:14px;display:block}.side-title{color:var(--teal-dark);margin-top:4px;font-size:15px;font-weight:700}.tab{flex-direction:row;flex:none;justify-content:flex-start;gap:12px;min-height:50px;padding:0 14px;font-size:15px}.tab .ico{width:26px;height:26px}.appbar{padding:12px 32px}.appbar .mark,.appbar .wordmark{display:none}.appbar .t-sub{font-size:17px}.screen{width:100%;max-width:1120px;margin:0 auto;padding:28px 32px 48px}.screen.narrow{max-width:780px}.toast{left:calc(50% + var(--side) / 2)}.screen.home{grid-template-columns:1fr 1fr;align-content:start;gap:16px;display:grid}.screen.home>*{margin-bottom:0}.screen.home>.greet,.screen.home>.level,.screen.home>.ro-banner,.screen.home>.notice{grid-column:1/-1}.learn-top{grid-template-columns:1fr 1fr;align-items:start;gap:16px;margin-bottom:16px;display:grid}.learn-top .daily,.learn-top .study-progress{margin-bottom:0}.learn-top .radio-list{max-height:420px;margin-top:12px;overflow-y:auto}.screen.learn .field,.screen.learn .filters{max-width:520px}.items{background:#eeebe0;grid-template-columns:1fr 1fr;gap:1px;display:grid}.items>.lesson,.items>.item,.items>.goal-row{border-bottom:none}.items>.item,.items>.goal-row{grid-column:1/-1}.lesson{padding:16px 18px 18px}.step-go{min-height:50px;font-size:15px}.section-head{padding:16px 20px}.section-name{font-size:16px}.item{padding:12px 20px}.test-title{font-size:24px}.q-text{font-size:16px}.cw-layout{grid-template-columns:minmax(0,1fr) 340px;align-items:start;gap:20px;display:grid}.cw-card{margin-bottom:0;padding:20px 22px}.cw-body{font-size:15px}.cw-answer{margin-bottom:0;position:sticky;top:88px}.cw-answer textarea{min-height:220px}.app.is-login{width:100%;max-width:440px;margin:0 auto}}@media (width<=720px){.cw-card{padding:10px}.cw-body table,.cw-body tbody,.cw-body tr,.cw-body td,.cw-body th{display:block;width:auto!important}.cw-body colgroup{display:none}.cw-body tr{background:#fff;border:1.5px solid #e3ddc9;border-radius:10px;margin-bottom:10px;overflow:hidden}.cw-body td,.cw-body th{border:none;padding:10px 12px}.cw-body td:first-child,.cw-body th:first-child{white-space:normal;background:#f3f0e2;border-bottom:1px solid #e3ddc9;width:auto;padding:7px 12px;font-size:13px;font-weight:700}.cw-body td:empty{display:none}.cw-body{font-size:14.5px;line-height:1.8}}.cw-body img.zoomable{cursor:zoom-in;border:1px solid var(--border);border-radius:8px}.zoom-wrap{z-index:90;background:#1e2826db;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0;overflow:auto}.zoom-wrap img{background:#fff;border-radius:8px;max-width:none;max-height:none;margin:auto}.zoom-hint{left:0;right:0;bottom:calc(14px + var(--safe-b));text-align:center;color:#fff;text-shadow:0 1px 3px #00000080;font-size:12.5px;font-weight:700;position:fixed}.zoom-close{right:14px;top:calc(14px + var(--safe-t,0px));min-height:40px;color:var(--text);background:#fff;border-radius:999px;padding:0 16px;font-size:14px;font-weight:700;position:fixed}@media (width<=999px){.screen{padding:12px 14px calc(80px + var(--safe-b))}.card{margin-bottom:10px;padding:12px 13px}.daily{margin-bottom:10px;padding:11px 13px 12px}.daily-purpose{margin-top:3px;font-size:12.5px;line-height:1.6}.daily-count{margin:8px 0}.daily .btn{min-height:44px}.daily-toggle{min-height:44px;margin-top:7px}.study-progress{padding-bottom:11px}.sp-parts{margin-top:8px}.sp-part{padding:6px 8px;font-size:12.5px}.screen.learn .field{margin-bottom:8px!important}.field input,.field textarea{padding:9px 12px}.filters{margin-bottom:10px}.filters button{min-height:40px}.section{margin-bottom:10px}.section-head{padding:11px 13px}.section-purpose{margin-top:2px;line-height:1.6}.section-bar{margin-top:6px}.item{padding:9px 13px}.lesson{padding:10px 13px 11px}.lesson-head{margin-bottom:7px}.step-label{padding:5px 9px}.step-go{min-height:44px;margin:0 7px}.step-foot{min-height:38px;margin-top:7px}.daily{padding:10px 12px 11px}.daily-head{gap:7px}.daily-title{font-size:15px}.daily-purpose{-webkit-line-clamp:1;-webkit-box-orient:vertical;margin-top:2px;font-size:12px;line-height:1.5;display:-webkit-box;overflow:hidden}.daily-count{margin:6px 0 7px;font-size:12px}.daily-actions{grid-template-columns:.8fr 1.2fr;gap:7px;display:grid}.daily-actions .btn,.daily-actions .daily-toggle{white-space:nowrap;gap:4px;min-height:44px;margin:0;padding:0 7px;font-size:13px}.daily-actions .daily-toggle .n{padding:1px 6px;font-size:11.5px}.study-progress{padding:10px 12px 11px}.sp-top{margin-bottom:4px}.sp-label{font-size:12.5px}.sp-pct{font-size:20px}.bar{height:8px}.sp-parts{gap:5px;margin-top:7px}.sp-part{gap:2px;padding:5px 7px;font-size:12px}.sp-part i{padding:1px 5px;font-size:10.5px}}
