:root{--bg:#faf9fe;--paper:#fff;--ink:#25213c;--muted:#9995ad;--line:#eeeaf7;--violet:#765bc9;--violet-dark:#6347b9;--lavender:#f1ecff;--lavender-2:#e9e0ff;--rose:#fbe8f0;--green:#4caf88;--shadow:0 12px 32px rgba(74,56,124,.055);--r:22px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei','Noto Sans CJK SC',Arial,sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #c4b3ff;outline-offset:3px}.ko{font-family:'Apple SD Gothic Neo','Noto Sans KR','Malgun Gothic',-apple-system,sans-serif;word-break:keep-all}.shell{display:grid;grid-template-columns:242px minmax(0,1fr);min-height:100vh;max-width:1620px;margin:auto}.sidebar{border-right:1px solid #ebe8f5;background:#fff;min-height:100vh;position:sticky;top:0;height:100vh;padding:35px 21px 25px;display:flex;flex-direction:column;z-index:4}.brand{display:flex;align-items:center;gap:11px;padding:4px 12px 36px}.brand-mark{height:42px;width:42px;display:grid;place-items:center;border-radius:15px;background:var(--violet);color:#fff;font-size:24px;font-weight:800;box-shadow:0 6px 16px rgba(118,91,201,.2)}.brand-name{font-size:20px;font-weight:850;letter-spacing:.4px}.brand-note{font-size:10px;letter-spacing:2px;color:var(--muted);margin-top:2px}.menu-heading{font-size:10px;letter-spacing:2px;color:#aaa5bb;font-weight:800;padding:13px 18px}.nav{display:flex;flex-direction:column;gap:6px}.nav-button{border:0;background:transparent;color:#858096;border-radius:12px;padding:14px 16px;text-align:left;font-weight:640;display:flex;align-items:center;gap:15px;transition:.18s}.nav-button:hover{background:#f7f5ff;color:var(--violet)}.nav-button.active{background:#f0ebff;color:var(--violet);font-weight:800}.nav-icon{font-size:18px;width:20px;text-align:center}.sidebar-bottom{margin-top:auto}.mini-profile{background:#f7f5fc;border:1px solid #f0edfa;padding:15px;border-radius:18px;display:flex;gap:10px;align-items:center}.avatar{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:linear-gradient(135deg,#d9c6fb,#f7d5e7);color:#6447b6;font-weight:900;font-size:18px;flex:none}.profile-label{font-weight:800;font-size:13px}.profile-desc{font-size:11px;color:var(--muted);margin-top:5px}.sidebar-foot{font-size:10px;color:#b8b2c6;padding:16px 10px 0}.workspace{padding:32px clamp(22px,3.4vw,55px) 70px;min-width:0}.page-wrap{max-width:1130px;margin:0 auto}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.breadcrumbs{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:13px}.breadcrumbs b{color:#6f688c;font-weight:750}.top-right{display:flex;align-items:center;gap:11px}.date-pill,.top-avatar{background:#fff;border:1px solid #ece8f8;box-shadow:var(--shadow);padding:10px 13px;border-radius:50px;color:#77718d;font-size:12px}.top-avatar{font-size:14px;color:var(--violet);font-weight:900;padding:9px 12px;min-width:38px;text-align:center}.page-kicker{font-size:12px;color:var(--violet);font-weight:800;letter-spacing:2px;text-transform:uppercase}.page-title{font-size:clamp(27px,3vw,37px);line-height:1.3;letter-spacing:-1px;font-weight:850;margin:9px 0 7px}.page-subtitle{font-size:13px;color:#938da6;line-height:1.9;margin:0}.home-columns{display:grid;grid-template-columns:minmax(0,1fr) 268px;gap:25px;margin-top:25px;align-items:start}.main-stack,.aside-stack{display:flex;flex-direction:column;gap:23px;min-width:0}.hero{overflow:hidden;border-radius:28px;background:linear-gradient(115deg,#8465d7 0%,#ad8ddd 72%,#c2aae8 100%);color:#fff;min-height:257px;position:relative;box-shadow:0 14px 36px #7358c822}.hero-content{position:relative;z-index:1;padding:37px 38px;max-width:490px}.hero-tag{display:inline-flex;gap:7px;align-items:center;border:1px solid #ffffff6a;background:#ffffff24;border-radius:30px;padding:7px 12px;font-size:11px;font-weight:700;letter-spacing:.4px}.hero h2{font-size:30px;letter-spacing:-.5px;margin:15px 0 11px;line-height:1.35}.hero p{font-size:13px;line-height:1.8;color:#f6eeff;margin:0 0 21px}.hero-art{position:absolute;right:-11px;bottom:-18px;width:260px;height:230px}.orb{position:absolute;border-radius:50%;border:1px solid #ffffff38}.orb.a{width:210px;height:210px;right:15px;top:3px;background:#ffffff16}.orb.b{width:155px;height:155px;right:42px;top:31px;background:#ffffff18}.orb.c{width:100px;height:100px;right:69px;top:58px;background:#ffffff30}.hero-hangul{position:absolute;top:65px;right:87px;font-size:78px;font-weight:700;transform:rotate(-9deg);text-shadow:0 8px 18px #6851aa35}.hero-spark{position:absolute;color:#ffffffb5;font-size:28px}.hero-spark.a{top:28px;right:205px}.hero-spark.b{bottom:36px;right:30px}.btn{border:0;border-radius:12px;padding:12px 18px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;gap:9px;transition:.18s;min-height:42px}.btn:hover{transform:translateY(-1px)}.btn-white{background:#fff;color:#7154c4;box-shadow:0 5px 18px #4631762a}.btn-primary{background:var(--violet);color:#fff;box-shadow:0 6px 18px #7358c82d}.btn-primary:hover{background:var(--violet-dark)}.btn-ghost{background:#f4efff;color:var(--violet)}.btn-outline{background:#fff;color:#786f90;border:1px solid #ebe6f5}.btn-sm{padding:9px 13px;min-height:35px;font-size:12px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.stat-card,.panel{background:var(--paper);border:1px solid #f0edf7;border-radius:var(--r);box-shadow:var(--shadow)}.stat-card{padding:21px 22px}.stat-icon{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:#faf0ff;font-size:20px;margin-bottom:16px}.stat-value{font-size:27px;font-weight:900;letter-spacing:-1px}.stat-label{font-size:12px;color:#a09bae;margin-top:4px}.panel{padding:23px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:18px}.section-heading h3{font-size:17px;letter-spacing:-.3px;margin:0}.section-heading span{color:#a6a1b3;font-size:11px}.link-btn{background:none;border:none;color:var(--violet);font-weight:800;font-size:12px}.daily-panel{padding:25px 21px}.daily-top{display:flex;justify-content:space-between;align-items:center}.small-upper{font-size:10px;color:#9b92b2;letter-spacing:1.5px;font-weight:800}.daily-top .flower{font-size:21px}.circle-progress{width:154px;height:154px;border-radius:50%;display:grid;place-items:center;margin:20px auto 15px;background:conic-gradient(var(--violet) var(--pct),#f0edf8 0);position:relative}.circle-progress:before{content:'';width:130px;height:130px;border-radius:50%;background:#fff;position:absolute}.circle-inner{position:relative;text-align:center}.circle-value{font-size:37px;font-weight:900}.circle-unit{color:#a7a0ba;font-size:11px}.center-note{text-align:center;color:#a09aaf;font-size:12px;line-height:1.8}.daily-panel .btn{width:100%;margin-top:12px}.tip-panel{background:linear-gradient(160deg,#fff9ed,#fff5f1);border-color:#fff1e6}.tip-emoji{font-size:26px}.tip-title{font-size:15px;font-weight:850;margin:13px 0 7px}.tip-panel p{font-size:12px;color:#9d8a85;line-height:2;margin:0}.lesson-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.lesson-card{border-radius:17px;padding:18px;background:#fff;border:1px solid #eeebf7;display:flex;flex-direction:column;gap:16px;text-align:left;transition:.18s;width:100%;min-height:170px}.lesson-card:hover{box-shadow:0 12px 25px #6b519218;transform:translateY(-2px);border-color:#d9cdf8}.lesson-top{display:flex;justify-content:space-between;align-items:flex-start}.lesson-symbol{width:43px;height:43px;display:grid;place-items:center;border-radius:14px;font-size:23px}.theme-pink{background:#fbedf5;color:#e07fa8}.theme-orange{background:#fff0e1;color:#e8a058}.theme-blue{background:#e8f3ff;color:#77a8db}.theme-purple{background:#f2ebff;color:#9f80dd}.theme-green{background:#eaf8ed;color:#76b997}.theme-rose{background:#ffedf0;color:#eb8bab}.theme-teal{background:#e5f8f7;color:#68bcbc}.theme-yellow{background:#fff6df;color:#d4ae57}.lesson-num{font-weight:900;color:#c1b9d3;font-size:12px;letter-spacing:1px}.lesson-title{font-size:16px;font-weight:850;margin-bottom:5px}.lesson-desc{color:#a49db2;font-size:11px;line-height:1.6}.progress-track{height:6px;border-radius:10px;background:#f1edf8;overflow:hidden}.progress-fill{height:100%;background:var(--violet);border-radius:10px}.lesson-bottom{display:flex;justify-content:space-between;color:#a6a0b7;font-size:11px;margin-top:9px}.lesson-bottom b{color:var(--violet);font-weight:700}.activity{display:flex;flex-direction:column;gap:12px}.activity-item{display:flex;align-items:center;gap:10px;font-size:12px;color:#746e88}.activity-dot{height:8px;width:8px;border-radius:50%;background:var(--lavender-2);flex:none}.two-col{display:grid;grid-template-columns:minmax(0,1fr) 270px;gap:24px;margin-top:26px}.course-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.course-tile{padding:20px;min-height:235px}.course-tile .lesson-symbol{height:54px;width:54px;font-size:26px}.tile-kicker{font-size:10px;color:#a09bb1;font-weight:750;margin-top:18px}.course-tile .lesson-title{margin:8px 0 6px}.course-tile .lesson-desc{min-height:39px}.tile-foot{margin-top:16px}.list-heading{margin:26px 0 15px;display:flex;align-items:center;justify-content:space-between;gap:12px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:22px 0 20px}.search-input,.field-input,.field-select{background:#fff;border:1px solid #e9e5f4;padding:13px 15px;border-radius:12px;color:var(--ink);outline:none;min-width:0}.search-input{width:min(370px,100%)}.search-input:focus,.field-input:focus,.field-select:focus{border-color:#b1a1e9}.chip-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.chip{border-radius:28px;padding:9px 13px;border:1px solid #e7e2f2;background:#fff;color:#918aab;font-size:12px;font-weight:740}.chip.active{color:var(--violet);background:#eee8ff;border-color:#ddd2fc}.words-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.word-card{background:#fff;border:1px solid #efebf8;border-radius:20px;padding:20px;min-height:205px;display:flex;flex-direction:column;gap:5px;transition:.2s}.word-card:hover{box-shadow:0 12px 27px #6d538616;transform:translateY(-2px)}.word-card-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.word-index{font-size:10px;font-weight:800;color:#beb8ce}.icon-btn{border:0;background:#f7f5fd;color:var(--violet);width:34px;height:34px;display:grid;place-items:center;border-radius:11px;font-size:17px}.icon-btn:hover{background:#ebe2ff}.icon-btn.faved{color:#e487a8;background:#ffedf3}.word-ko{font-size:28px;font-weight:800;line-height:1.4;margin:4px 0 1px;letter-spacing:-.6px}.word-rom{font-size:12px;color:#afa6c5}.word-cn{font-size:14px;color:#625d78;font-weight:680;margin:7px 0 9px}.word-actions{display:flex;justify-content:space-between;gap:10px;margin-top:auto;align-items:center}.word-status{color:#b8b2c5;font-size:10px}.word-status.learned{color:#4eb58b}.word-play{border:0;border-radius:12px;color:#7253c9;background:#f0eaff;padding:9px 12px;font-weight:800;font-size:12px;white-space:nowrap}.word-play:hover{background:#e5dcff}.lesson-hero{display:flex;align-items:center;gap:24px;background:#fff;border:1px solid #f0ebf8;padding:26px 29px;border-radius:24px;margin:21px 0 21px}.lesson-hero .lesson-symbol{width:80px;height:80px;font-size:38px;border-radius:22px}.lesson-hero h2{font-size:24px;margin:5px 0 5px}.lesson-hero p{color:#9b95ad;line-height:1.8;margin:0}.lesson-hero-actions{margin-left:auto;display:flex;flex-direction:column;gap:8px}.grammar-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:17px 0 25px}.grammar-card{padding:20px}.grammar-label{font-size:10px;color:var(--violet);font-weight:900;letter-spacing:1px}.grammar-card h3{font-size:16px;margin:8px 0}.grammar-card p{font-size:12px;line-height:1.8;color:#918aa1;margin:0 0 13px}.grammar-example{padding:10px;background:#f9f7ff;border-radius:12px;margin:8px 0}.grammar-example .ko{font-size:15px;font-weight:760}.grammar-example button{border:0;background:none;color:var(--violet);float:right;font-size:16px}.grammar-example small{display:block;color:#aaa2bd;margin-top:6px}.back-link{border:0;background:none;color:var(--violet);font-weight:800;padding:5px 0}.review-wrap{max-width:750px;margin:25px auto}.review-empty{text-align:center;padding:70px 30px}.empty-visual{font-size:53px;background:#f6f1ff;width:100px;height:100px;display:grid;place-items:center;border-radius:33px;margin:0 auto 23px}.review-empty h3{font-size:21px;margin:10px 0}.review-empty p{color:#9992ad;line-height:1.9;margin-bottom:23px}.study-toolbar{display:flex;align-items:center;justify-content:space-between;color:#aaa4b8;font-size:12px;margin-bottom:16px;gap:10px}.flash-stage{margin:0 auto;max-width:720px}.flash-progress{background:#ebe7f4;border-radius:10px;height:8px;overflow:hidden;margin:0 0 24px}.flash-progress div{height:100%;background:#9277dc;transition:width .2s;border-radius:10px}.flash-card{background:#fff;border:1px solid #eee8fb;border-radius:31px;box-shadow:0 20px 54px #6b50a716;min-height:364px;text-align:center;padding:43px 22px 30px;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center}.flash-watermark{font-size:11px;color:#b8b0cc;letter-spacing:2px;font-weight:850}.flash-ko{font-size:clamp(42px,6vw,72px);font-weight:780;line-height:1.5;letter-spacing:-1.7px;margin:8px 0 10px}.flash-rom{color:#b0a7c7;font-size:15px;letter-spacing:.5px}.flash-answer{padding-top:21px;max-width:490px}.flash-answer h3{font-size:26px;margin:0 0 10px}.flash-answer p{font-size:12px;line-height:1.8;color:#8e88a4;margin:7px}.flash-example{background:#f8f5ff;border-radius:13px;padding:13px;margin-top:14px}.flash-example .ko{font-size:16px;color:#57448c;font-weight:740}.flash-control{display:flex;gap:9px;justify-content:center;flex-wrap:wrap;margin-top:18px}.flash-rating{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.rating-btn{border:1px solid #ece7f4;background:#fff;border-radius:14px;padding:15px 10px;font-weight:850;color:#7e739a}.rating-btn small{display:block;font-weight:400;color:#b4acc2;margin-top:4px}.rating-btn.again{border-color:#fadce2;color:#d98692;background:#fff6f8}.rating-btn.easy{border-color:#d7f1e4;color:#5aaa85;background:#f6fdf9}.quiz-shell{max-width:800px;margin:26px auto}.quiz-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px;color:#928ca5}.quiz-box{padding:38px 42px;text-align:center}.quiz-hint{font-size:12px;letter-spacing:1.6px;color:#aea7c2;font-weight:800}.quiz-word{font-size:56px;font-weight:850;line-height:1.5;margin:18px 0 3px}.quiz-options{display:grid;grid-template-columns:1fr;gap:11px;max-width:500px;margin:29px auto 17px}.quiz-option{border:1px solid #ebe6f5;background:#fff;border-radius:15px;text-align:left;padding:16px 19px;display:flex;justify-content:space-between;align-items:center;font-weight:760;color:#665e81}.quiz-option:hover:not(:disabled){border-color:#baa6f0;background:#faf8ff}.quiz-option.correct{background:#effaf3;color:#369a70;border-color:#bce5cc}.quiz-option.wrong{background:#fff4f5;color:#d17782;border-color:#efb9c1}.quiz-feedback{font-size:12px;color:#867d9e;min-height:30px}.quiz-result{padding:45px 15px;text-align:center}.quiz-result h2{font-size:27px}.quiz-result-score{font-size:65px;font-weight:900;color:var(--violet);margin:16px}.settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px;margin-top:24px}.settings-card{padding:25px}.settings-card h3{margin:0 0 14px;font-size:17px}.settings-card p{color:#9993aa;font-size:12px;line-height:1.9}.field{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.field label{font-size:12px;color:#79718f;font-weight:800}.field-input,.field-select{width:100%}.range-wrap{display:flex;gap:12px;align-items:center}.range-wrap input{accent-color:var(--violet);width:100%}.data-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:15px}.subtle-note{font-size:11px;color:#b3adbf;line-height:1.9}.weekly-chart{display:grid;grid-template-columns:repeat(7,1fr);gap:9px;height:130px;align-items:end;margin-top:15px}.week-col{display:flex;align-items:center;flex-direction:column;justify-content:end;gap:8px;height:100%}.week-bar{border-radius:6px 6px 3px 3px;background:#d8cff4;width:100%;max-width:35px;min-height:5px}.week-col.today .week-bar{background:var(--violet)}.week-col label{font-size:10px;color:#b2aabd}.notice{border:1px solid #f1e7d6;background:#fffaf0;padding:15px 18px;border-radius:15px;color:#9f8b73;font-size:12px;line-height:1.8}.small-tag{display:inline-block;background:#f2ecff;color:#8f76ce;border-radius:10px;padding:5px 9px;font-size:10px;font-weight:800}.empty-list{text-align:center;color:#9c95ad;padding:55px 20px;background:#fff;border:1px solid #eeeaf5;border-radius:18px}.toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,100px);background:#302a45;color:#fff;padding:13px 20px;border-radius:13px;font-size:13px;box-shadow:0 12px 30px #29233b30;opacity:0;pointer-events:none;transition:.2s;z-index:20;max-width:85vw;text-align:center}.toast.show{transform:translate(-50%,0);opacity:1}.mobile-nav{display:none}.divider{height:1px;background:#f0ecf7;margin:15px 0}.backdrop{position:fixed;inset:0;background:#29213b84;z-index:10;display:grid;place-items:center;padding:18px}.dialog{background:#fff;border-radius:25px;width:min(560px,100%);max-height:90vh;overflow:auto;padding:30px;box-shadow:0 20px 60px #201b3a40}.dialog-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.dialog-head h3{margin:0;font-size:17px}.dialog-ko{font-size:43px;font-weight:850;margin:14px 0 6px}.dialog-cn{font-size:18px;color:#5c527d;font-weight:800}.dialog-meta{font-size:12px;color:#a7a0b9;line-height:1.8}.dialog-example{margin:18px 0;background:#f8f5ff;border-radius:15px;padding:15px;line-height:1.9}.dialog-example .ko{font-size:16px}.dialog-example small{color:#968da8}.record-btn{background:#fff1f3;border:1px solid #f4d9e1;color:#cb7893;border-radius:11px;padding:10px 13px;font-weight:760}.record-btn.active{background:#e75987;color:#fff;animation:pulse 1.2s infinite}@keyframes pulse{50%{box-shadow:0 0 0 8px #ed7ba436}}.hide{display:none!important}
@media(max-width:1220px){.home-columns{grid-template-columns:minmax(0,1fr)}.aside-stack{display:grid;grid-template-columns:1fr 1fr}.course-grid{grid-template-columns:repeat(2,1fr)}.words-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.two-col{grid-template-columns:minmax(0,1fr)}}
@media(max-width:760px){.shell{display:block}.sidebar{display:none}.workspace{padding:20px 16px 101px}.topbar{margin-bottom:27px}.date-pill{display:none}.topbar .breadcrumbs{font-size:11px}.page-title{font-size:28px}.home-columns{margin-top:22px}.hero{min-height:250px}.hero-content{padding:29px 25px;max-width:320px}.hero h2{font-size:25px}.hero p{max-width:230px}.hero-art{width:175px;right:-56px;bottom:-16px;opacity:.8}.hero-hangul{right:71px;top:66px;font-size:65px}.orb.a{height:170px;width:170px;right:20px;top:35px}.orb.b{height:120px;width:120px;right:45px;top:60px}.orb.c{height:74px;width:74px;right:68px;top:84px}.stats-grid{gap:9px}.stat-card{padding:16px 12px;border-radius:16px}.stat-icon{height:31px;width:31px;font-size:16px;margin-bottom:12px}.stat-value{font-size:22px}.stat-label{font-size:10px}.lesson-row{grid-template-columns:1fr}.aside-stack{display:grid;grid-template-columns:1fr}.words-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.word-card{min-height:181px;padding:14px;border-radius:16px}.word-ko{font-size:23px}.word-cn{font-size:12px}.word-rom{font-size:10px}.word-play{padding:8px 9px;font-size:11px}.icon-btn{height:30px;width:30px}.course-grid{grid-template-columns:1fr 1fr;gap:10px}.course-tile{padding:16px;min-height:220px}.lesson-hero{display:block;padding:21px}.lesson-hero .lesson-symbol{width:60px;height:60px;font-size:28px}.lesson-hero-actions{margin:16px 0 0;flex-direction:row;flex-wrap:wrap}.lesson-hero h2{font-size:23px}.grammar-grid{grid-template-columns:1fr}.flash-card{min-height:340px;padding:31px 16px}.flash-ko{font-size:48px}.quiz-box{padding:24px 16px}.quiz-word{font-size:41px}.settings-grid{grid-template-columns:1fr}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:6;display:grid;grid-template-columns:repeat(5,1fr);align-items:center;background:#ffffffed;backdrop-filter:blur(18px);border-top:1px solid #ebe7f6;padding:7px 6px max(10px,env(safe-area-inset-bottom));box-shadow:0 -10px 30px #4c3f7c0a}.mobile-nav button{border:0;background:none;color:#aaa4b8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10px;font-weight:700;padding:4px}.mobile-nav button span{font-size:19px}.mobile-nav button.active{color:var(--violet)}.backdrop{padding:12px}.dialog{padding:23px}.lesson-card{min-height:159px}}
@media(max-width:360px){.words-grid,.course-grid{grid-template-columns:1fr}.hero-content{max-width:290px}.stats-grid{grid-template-columns:repeat(3,1fr)}.stat-value{font-size:19px}}
/* v2: personal textbook shadowing (non-official companion) */
.book-promo{border:1px solid #e4dbfb;background:linear-gradient(115deg,#fff,#f9f4ff);border-radius:18px;padding:17px 20px;width:100%;display:flex;align-items:center;gap:13px;text-align:left;color:var(--violet);box-shadow:var(--shadow)}
.book-promo-icon{width:45px;height:45px;border-radius:14px;display:grid;place-items:center;background:#f0e9ff;font-size:23px;flex:none}.book-promo strong{font-size:15px;display:block}.book-promo small{font-size:11px;color:#9285b0;display:block;margin-top:5px;line-height:1.6}
.book-alert{padding:17px 20px;margin:23px 0 20px;border-radius:17px;border:1px solid #e5dafa;background:#faf7ff;color:#70618f;font-size:12px;line-height:1.9}.book-alert strong{color:#624bb0}
.book-layout{display:grid;grid-template-columns:235px minmax(0,1fr);gap:20px;align-items:start}.book-index{position:sticky;top:15px;padding:16px;max-height:calc(100vh - 35px);overflow:auto}.book-index-top{display:flex;align-items:center;gap:9px;justify-content:space-between;font-weight:900;margin-bottom:13px}.book-index-grid{display:flex;flex-direction:column;gap:7px}.book-chapter{padding:11px 12px;text-align:left;display:flex;flex-direction:column;gap:5px;border:1px solid transparent;border-radius:12px;background:#faf9fe;color:#817992}.book-chapter b{font-size:12px}.book-chapter small{color:#a9a3ba;font-size:10px;line-height:1.4}.book-chapter.selected{border-color:#d7cafa;background:#f1ebff;color:#684fc0}.book-chapter.selected small{color:#866aba}.book-content{display:flex;flex-direction:column;gap:19px;min-width:0}.book-content h3{font-size:17px;margin:0 0 11px}.book-lesson-head h2{font-size:26px;margin:14px 0 5px}.book-kotitle{font-size:17px;color:#8c6fd4;font-weight:750}.book-content p{font-size:12px;line-height:1.9;color:#968ba9}.book-muted{display:block;font-size:11px;color:#aaa2b4;margin-top:12px;line-height:1.7}.book-audio audio{width:100%;margin-top:12px}.book-file{cursor:pointer}.book-word{background:#fff;border:1px solid #efeaf7;padding:22px;border-radius:20px;box-shadow:var(--shadow)}.book-word-head{display:flex;justify-content:space-between;align-items:center}.book-mini{background:#fff;border:1px solid #e9e3f4;border-radius:10px;padding:8px 10px;color:#7c65bf;font-size:11px}.book-ko{font-size:29px;font-weight:850;margin:14px 0 6px;line-height:1.5}.book-cn{color:#676078;font-weight:760;font-size:14px}.book-roman{font-size:12px;color:#9b8bae;margin-top:7px}.book-rule{border-left:3px solid #e0d4ff;padding:7px 12px;background:#faf8ff;border-radius:3px 10px 10px 3px}.book-controls{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.book-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.book-cut-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px 12px;align-items:end;margin:15px 0}.book-cut-grid label{font-size:12px;color:#8b819d}.book-cut-grid input{margin-top:7px}.book-own .book-note-form{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 16px}.book-own .book-note-form .field:last-of-type{grid-column:1/-1}.book-own .book-note-form button{grid-column:1/-1;justify-self:start}
@media(max-width:1220px){.book-layout{grid-template-columns:1fr}.book-index{position:static;max-height:none}.book-index-grid{display:grid;grid-template-columns:repeat(4,1fr)}}
@media(max-width:760px){.book-rows{grid-template-columns:1fr}.book-word{padding:19px}.book-word .btn-sm{font-size:11px;padding:8px 10px}.book-index-grid{grid-template-columns:repeat(3,1fr)}.book-chapter{padding:10px}.book-own .book-note-form{grid-template-columns:1fr}.book-promo{padding:15px 13px}.book-promo strong{font-size:13px}.book-promo small{font-size:10px}.book-lesson-head h2{font-size:22px}}
/* v2 · cloud account, resume learning, OCR scanner */
.last-study{border:1px solid #ded4f8;display:flex;justify-content:space-between;align-items:center;gap:20px;width:100%;text-align:left;background:linear-gradient(110deg,#f5f0ff,#fff);color:#6850b8;border-radius:16px;padding:15px 19px;margin:0 0 19px;box-shadow:var(--shadow)}
.last-study strong{font-size:14px}.last-study small{display:block;color:#978aad;margin-top:5px}.book-start-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:15px}.book-start-actions .last-study{max-width:530px;margin:0}.book-start-actions small{color:var(--muted)}
.cloud-panel{margin-bottom:18px;border:1px solid #dcd3f5}.cloud-panel>h3{margin:0 0 10px;font-size:18px}.cloud-panel>p,.scan-upload p{font-size:13px;color:#8b829f;line-height:1.7}.cloud-form{display:grid;grid-template-columns:1fr 1fr 1fr;gap:13px;align-items:end;margin:17px 0}.cloud-form label{font-size:12px;color:#756987;font-weight:700}.cloud-form input{margin-top:7px}.cloud-buttons{display:flex;gap:7px;grid-column:1/-1}.cloud-status{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;background:#f4f0ff;padding:12px 14px;border-radius:12px;color:#765ac7;margin:10px 0}.cloud-error,.scan-warning{color:#c34e73!important}.cloud-user{font-weight:800}
.scan-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:18px}.scan-upload h3,.scan-help h3,.scan-review h3{font-size:19px;margin:0 0 12px}.scan-upload>label{display:block;color:#746787;font-weight:800;margin-bottom:13px}.scan-upload select{margin-top:8px}.scan-drop{border:2px dashed #d8cbee;border-radius:19px;padding:36px 12px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;text-align:center;background:#fcfaff;min-height:245px}.scan-drop b{font-size:15px}.scan-drop small{color:#9e96ad;max-width:410px;line-height:1.7}.scan-drop .btn{cursor:pointer}.scan-image-name,.scan-wait{color:#7455bb;font-weight:700}.scan-step{display:flex;align-items:flex-start;gap:12px;margin:17px 0}.scan-step strong{display:grid;place-items:center;width:26px;height:26px;border-radius:9px;background:#f3edff;color:#765ac7;flex:none}.scan-step p{margin:2px 0;line-height:1.7;color:#7e728c}.scan-review{margin-top:18px}.scan-review>p{line-height:1.7;color:#8a8396}.scan-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin:22px 0}.scan-card{border:1px solid #eee9f6;border-radius:16px;padding:18px;background:#fff}.scan-card-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;color:#8164c1}.scan-card-fields{display:grid;grid-template-columns:1fr 1fr;gap:10px}.scan-card-fields label{font-size:12px;font-weight:700;color:#8a7e9e}.scan-card-fields input{margin:6px 0 10px}.scan-savebar{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.scan-raw{margin-top:18px}.scan-raw summary{cursor:pointer;font-weight:800}.scan-raw pre{white-space:pre-wrap;word-break:break-word;font-family:monospace;font-size:12px;color:#726686;max-height:240px;overflow:auto}
@media(max-width:900px){.scan-layout{grid-template-columns:1fr}.cloud-form{grid-template-columns:1fr 1fr}.scan-cards{grid-template-columns:1fr}}
@media(max-width:600px){.cloud-form{grid-template-columns:1fr}.scan-card-fields{grid-template-columns:1fr}.scan-drop{padding:23px 12px}.book-start-actions .last-study{width:100%}.last-study{align-items:flex-start}.last-study>span:last-child{white-space:nowrap;font-size:12px}}
/* HARU Design System v3 — shared web & mini-program visual language */
:root{--bg:#f7f8fc;--paper:#fff;--ink:#1d2541;--muted:#7c849b;--line:#e8eaf2;--violet:#6654db;--violet-dark:#5140ba;--lavender:#f0edff;--lavender-2:#e7e2ff;--rose:#ffe9f0;--green:#36a987;--shadow:0 12px 34px rgba(32,32,95,.045);--r:22px}
body{font-size:14px;letter-spacing:-.08px} .sidebar{border-color:var(--line);padding-top:28px}.brand-mark{background:linear-gradient(145deg,#7766e8,#5d4bcc);box-shadow:0 8px 22px #6654db2b}.brand-name{letter-spacing:.1px}.nav-button{border-radius:14px;min-height:47px}.nav-button.active{background:#f0edff;color:#5846ce}.workspace{padding-top:30px}.page-title{letter-spacing:-.8px}.page-subtitle{color:var(--muted)}.panel,.stat-card,.lesson-card,.course-tile,.word-card{border:1px solid var(--line);box-shadow:var(--shadow)}.panel{border-radius:24px}.hero{background:linear-gradient(123deg,#6654db 0%,#8e7de6 61%,#b6a9f0 100%);box-shadow:0 15px 40px #6453d521}.btn{border-radius:14px;min-height:44px}.btn-primary{box-shadow:0 8px 18px #6654db2a}.lesson-card,.word-card{transition:transform .18s,box-shadow .18s,border-color .18s}.lesson-card:hover,.word-card:hover{transform:translateY(-2px);border-color:#d9d3ff;box-shadow:0 16px 34px #5647b114}.progress-fill{background:linear-gradient(90deg,#7160ec,#9f91ef)}.field-input{border-radius:13px!important;border-color:var(--line)!important}.mobile-nav{border-color:var(--line)}.mobile-nav button.active{color:var(--violet)}.book-word,.scan-card{border-color:var(--line)!important;border-radius:20px!important}.book-word:hover{box-shadow:0 12px 30px #6654db11}.flash-card{border-radius:26px}button:active{transform:scale(.985)}@media(max-width:760px){.workspace{padding-top:20px}.hero{border-radius:25px}.page-title{font-size:27px}.mobile-nav{padding-top:9px;box-shadow:0 -8px 28px #242d500d}.mobile-nav button{min-height:47px}.btn{min-height:44px}.scan-drop,.book-promo{border-radius:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}
