:root{--bg:#f7f8f5;--surface:#fff;--surface2:#f0f5f1;--ink:#202f2b;--ink-soft:#394b45;--muted:#81908a;--border:#e6ebe6;--primary:#215c4d;--primary-d:#143e35;--primary-soft:#e0f0e5;--mint:#d8f0d8;--peach:#ffe9d9;--lilac:#ece7f9;--danger:#c15c50;--shadow:0 12px 40px rgba(33,55,44,.055);--radius:20px;font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,-apple-system,BlinkMacSystemFont,'Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic','Noto Sans JP',sans-serif;font-size:14px;-webkit-font-smoothing:antialiased}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}a{color:inherit;text-decoration:none}a:hover{text-decoration:underline}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #97ccbd;outline-offset:3px}::selection{background:#c7e8d4}
.icon{width:19px;height:19px;flex-shrink:0;vertical-align:middle;stroke-linecap:round;stroke-linejoin:round}.app-shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}.sidebar{height:100vh;position:sticky;top:0;background:#fff;border-right:1px solid var(--border);padding:28px 15px 18px;display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:10px;align-items:center;padding:4px 12px 32px}.brand-mark{height:41px;width:41px;border-radius:14px;background:var(--primary);color:white;display:grid;place-items:center;box-shadow:0 4px 12px #1d59462e}.brand-mark .icon{width:24px;height:24px}.brand-name{font-size:20px;font-weight:860;letter-spacing:-1px}.brand-note{font-size:10px;color:var(--muted);letter-spacing:.3px;margin-top:2px}.side-label{font-size:10px;font-weight:800;color:#9aa6a0;letter-spacing:1.8px;padding:14px 18px 11px}.side-nav{display:flex;flex-direction:column;gap:5px}.nav-btn{appearance:none;background:transparent;border:0;border-radius:13px;display:flex;align-items:center;gap:13px;width:100%;text-align:left;padding:13px 15px;color:#6c7973;font-size:13px;font-weight:700;transition:.17s}.nav-btn .icon{stroke-width:1.8}.nav-btn:hover{background:#f4f7f3;color:var(--ink)}.nav-btn.active{background:#e8f3e9;color:#24604e}.nav-btn.active .icon{stroke-width:2.3}.nav-btn .nav-count{margin-left:auto;background:#ecf0e9;color:#7a8b80;border-radius:9px;padding:3px 7px;font-size:10px}.sidebar-foot{margin-top:auto}.sidebar-tip{background:#eaf5e8;border-radius:18px;padding:18px 16px;display:grid;gap:10px}.sidebar-tip .tip-art{font-size:23px}.sidebar-tip strong{font-size:13px}.sidebar-tip p{line-height:1.7;color:#658174;margin:0;font-size:11px}.sidebar-tip button{border:0;background:#fff;border-radius:10px;padding:10px;font-weight:750;color:var(--primary);font-size:12px}.sidebar-bottom{font-size:10px;color:#a9b2ae;margin:22px 8px 0}
.main{padding:28px clamp(24px,4.5vw,76px) 78px;max-width:1600px;width:100%;margin:0 auto;min-width:0}.topbar{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:37px}.topbar-left{display:flex;align-items:center;gap:9px;color:#8b9892;font-size:12px;font-weight:750}.topbar-left .icon{width:16px;height:16px}.topbar-right{display:flex;align-items:center;gap:12px}.date-pill{padding:9px 13px;border:1px solid var(--border);border-radius:100px;background:#fff;color:#617068;font-size:11px;font-weight:650;white-space:nowrap}.round-icon{width:38px;height:38px;border-radius:12px;border:1px solid var(--border);display:grid;place-items:center;background:white}.avatar{width:38px;height:38px;border-radius:13px;background:#cfe9d8;color:#26614e;display:grid;place-items:center;font-weight:900}.round-icon:hover{background:#f6f8f6}.mobile-top-logo,.mobile-nav{display:none}.eyebrow{font-size:10px;letter-spacing:2.3px;font-weight:850;color:#79a089;text-transform:uppercase}.page-title{font-size:clamp(25px,3.2vw,36px);letter-spacing:-1.5px;margin:10px 0 8px;font-weight:870;line-height:1.35}.page-subtitle{color:#819088;margin:0;line-height:1.8;font-size:13px}.head-intro{margin-bottom:26px;display:flex;justify-content:space-between;align-items:end;gap:18px}.head-actions{display:flex;gap:8px;flex-shrink:0}.btn{border:0;background:var(--primary);color:#fff;border-radius:12px;padding:13px 18px;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-size:12px;font-weight:800;white-space:nowrap;box-shadow:0 6px 16px #215c4d19;transition:transform .16s,background .16s}.btn:hover{background:#144d3d;transform:translateY(-1px);text-decoration:none}.btn .icon{width:16px;height:16px}.btn-outline{background:#fff;border:1px solid var(--border);color:var(--ink);box-shadow:none}.btn-outline:hover{background:#f5f9f6}.btn-white{background:#fff;color:var(--primary);box-shadow:none}.btn-white:hover{background:#ecf6ee}.btn-soft{background:#eef6ed;color:#245a46;box-shadow:none}.btn-soft:hover{background:#dfeee0}.btn-danger{background:#fff1f0;color:#a54c42;box-shadow:none}.btn-danger:hover{background:#f8e5e2}.btn-sm{padding:9px 12px;border-radius:10px;font-size:11px}.btn-lg{padding:15px 21px;font-size:13px}.w-full{width:100%}.text-small{font-size:12px;color:var(--muted)}.section-header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:33px 0 15px}.section-header h2{font-size:19px;letter-spacing:-.55px;margin:0;font-weight:860}.section-header p{color:var(--muted);font-size:12px;margin:5px 0 0}.text-link{display:inline-flex;align-items:center;gap:5px;border:0;background:none;color:#43745c;font-size:12px;font-weight:800;padding:8px}.text-link:hover{text-decoration:underline}.text-link .icon{width:15px;height:15px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.62fr) minmax(272px,1fr);gap:18px}.hero-card{min-height:286px;position:relative;overflow:hidden;background:linear-gradient(125deg,#2e705e,#18493f 78%);border-radius:24px;padding:33px 32px;color:white;display:flex;align-items:center;isolation:isolate}.hero-card:before{position:absolute;content:'';height:350px;width:350px;border:1px solid rgba(255,255,255,.11);border-radius:50%;right:-100px;top:-130px}.hero-card:after{position:absolute;content:'';height:270px;width:270px;border:1px solid rgba(255,255,255,.1);border-radius:50%;right:0;top:20px;z-index:-1}.hero-text{max-width:380px;position:relative;z-index:3}.hero-overline{font-size:10px;letter-spacing:1.6px;font-weight:800;color:#c6e6d3;margin-bottom:17px;display:flex;gap:9px;align-items:center}.hero-overline:before{content:'';height:6px;width:6px;border-radius:50%;background:#f1d29a;box-shadow:0 0 0 3px #ffffff22}.hero-title{font-size:clamp(24px,3vw,35px);letter-spacing:-1.6px;line-height:1.48;margin:0 0 10px;font-weight:870}.hero-description{color:#d5e7de;line-height:1.8;font-size:12px;margin:0 0 22px}.hero-art{position:absolute;right:9%;top:28px;width:190px;height:245px;transform:rotate(8deg);z-index:1;filter:drop-shadow(0 12px 20px #071d1752)}.art-back,.art-front{position:absolute;width:160px;height:220px;border-radius:16px;background:#c8e5d2;border:1px solid #ffffff75}.art-back{transform:rotate(-14deg);top:15px;left:17px;opacity:.7}.art-front{background:#fff;display:flex;flex-direction:column;gap:17px;padding:25px 20px;justify-content:center}.art-front:before{content:'問';font-family:Georgia,serif;font-weight:bold;font-size:26px;color:#22634f}.art-line{height:7px;background:#dce7dc;border-radius:30px}.art-line.short{width:70%}.art-line.tiny{width:50%}.art-star{position:absolute;right:-26px;top:4px;background:#f7d9ab;color:#7a633e;border-radius:13px;padding:10px;transform:rotate(-8deg)}.snapshot{background:white;border:1px solid var(--border);border-radius:24px;padding:25px 24px;display:flex;flex-direction:column;box-shadow:var(--shadow)}.snapshot-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:23px}.snapshot-top strong{font-size:15px}.snapshot-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:11px;background:#edf6e9;color:var(--primary)}.snapshot-body{display:flex;align-items:center;justify-content:space-between;gap:6px}.ring{width:135px;height:135px;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;position:relative;background:conic-gradient(#377c63 var(--pct),#edf2ed 0)}.ring:before{position:absolute;content:'';inset:12px;border-radius:50%;background:#fff}.ring-center{position:relative;text-align:center;z-index:1}.ring-center strong{display:block;font-size:29px;line-height:1.1;letter-spacing:-1px}.ring-center small{color:var(--muted);font-size:10px}.snapshot-details{flex:1;max-width:145px;display:grid;gap:18px}.snapshot-number{font-weight:900;font-size:22px;letter-spacing:-.7px}.snapshot-label{font-size:11px;color:var(--muted);margin-top:4px}.snapshot-bottom{border-top:1px solid var(--border);padding-top:16px;margin-top:auto;display:flex;justify-content:space-between;align-items:center;color:#809188;font-size:11px}.snapshot-bottom strong{color:#477a5b;font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin-top:16px}.stat-card{border:1px solid var(--border);background:#fff;border-radius:17px;padding:20px 20px;display:flex;gap:14px;align-items:center}.stat-icon{width:44px;height:44px;border-radius:14px;display:grid;place-items:center;background:#eef4ea;color:#4e815d}.stat-icon.tan{background:#fff4df;color:#c99c51}.stat-icon.blue{background:#edf4fc;color:#6692bd}.stat-number{font-size:24px;font-weight:870;letter-spacing:-.5px}.stat-number small{font-weight:650;font-size:12px;color:#8a958f;margin-left:3px}.stat-label{font-size:10px;color:var(--muted);margin-top:5px}
.deck-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.deck-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--border);border-radius:20px;padding:13px 14px 19px;min-width:0;transition:.18s;box-shadow:var(--shadow)}.deck-card:hover{transform:translateY(-3px);box-shadow:0 18px 30px #235b4320}.deck-cover{height:123px;border-radius:13px;position:relative;overflow:hidden;display:flex;align-items:center;padding:21px}.deck-cover.sage{background:#e5f1e5}.deck-cover.apricot{background:#fceee1}.deck-cover.lilac{background:#eeeaf8}.deck-cover:before,.deck-cover:after{position:absolute;content:'';border:1px solid #ffffffb2;border-radius:50%;width:190px;height:190px;right:-77px;top:-53px}.deck-cover:after{width:135px;height:135px;right:-10px;top:22px}.deck-cover-num{font-family:Georgia,serif;font-style:italic;font-size:60px;opacity:.7;color:#6ca282;letter-spacing:-6px}.apricot .deck-cover-num{color:#d2a483}.lilac .deck-cover-num{color:#988acb}.deck-cover-icon{margin-left:auto;font-size:36px;position:relative;z-index:2}.deck-meta{display:flex;justify-content:space-between;align-items:center;margin:17px 3px 9px;color:#90a29a;font-size:10px;font-weight:750}.mini-tag{background:#f2f6f2;border-radius:15px;padding:5px 9px;color:#729084}.deck-title{font-size:16px;font-weight:850;letter-spacing:-.6px;margin:0 2px 6px}.deck-desc{color:#8c9a91;font-size:11px;line-height:1.65;margin:0 2px 16px;min-height:36px}.deck-progress-row{display:flex;align-items:center;justify-content:space-between;color:#7e8b84;font-size:10px;margin:0 2px 7px}.deck-progress-row strong{color:#426d58}.bar{height:6px;border-radius:30px;background:#eff3ee;overflow:hidden}.bar>span{height:100%;display:block;background:#4f9b79;border-radius:30px;transition:width .25s}.deck-bottom{margin-top:17px;display:flex;gap:8px}.deck-bottom .btn{flex:1}.deck-bottom .icon-btn{width:36px;border-radius:10px;border:1px solid var(--border);background:white;display:grid;place-items:center;color:#688572}
.learning-tools{background:white;border:1px solid var(--border);border-radius:21px;padding:22px;display:grid;grid-template-columns:1.15fr 1fr;gap:20px;align-items:center;margin-top:16px}.tool-intro{display:flex;gap:14px;align-items:flex-start}.tool-icon{flex:none;width:44px;height:44px;background:#f3edf9;color:#8f7aa3;display:grid;place-items:center;border-radius:14px}.tool-intro h3{margin:0 0 7px;font-size:15px;letter-spacing:-.3px}.tool-intro p{margin:0;color:var(--muted);font-size:11px;line-height:1.7}.tool-buttons{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.note{font-size:11px;color:#819088;line-height:1.9}.spacer{height:15px}
.panel{background:#fff;border:1px solid var(--border);border-radius:22px;padding:23px;box-shadow:var(--shadow)}.panel + .panel{margin-top:15px}.filter-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:17px 0}.chip{padding:10px 15px;border-radius:100px;border:1px solid #e4ebe5;background:#fff;color:#718079;font-weight:740;font-size:11px}.chip.active{background:#215b4b;color:#fff;border-color:#215b4b}.chip:hover{border-color:#b2ccbc}.card-row{display:flex;align-items:center;gap:14px;padding:15px 2px;border-bottom:1px solid #edf0eb}.card-row:last-child{border-bottom:0}.card-row-icon{height:39px;width:39px;display:grid;place-items:center;border-radius:12px;background:#e8f2e9;color:#497958;font-size:17px;flex:none}.card-row-body{flex:1;min-width:0}.card-row-body strong{font-size:13px;line-height:1.65;display:block;font-weight:760}.card-row-body small{font-size:10px;color:#8e9b91;margin-top:3px;display:block}.card-row-action{display:flex;align-items:center;gap:6px}.icon-btn{appearance:none;border:1px solid var(--border);border-radius:10px;background:#fff;min-width:34px;height:34px;display:grid;place-items:center;color:#6c8076}.icon-btn:hover{background:#f1f6f1}.icon-btn .icon{width:16px;height:16px}.searchbox{background:white;border:1px solid var(--border);border-radius:12px;display:flex;align-items:center;padding:0 12px;gap:10px;min-height:42px}.searchbox .icon{color:#8ca099;width:16px;height:16px}.searchbox input{border:0;outline:none;font-size:12px;min-width:0;flex:1;color:var(--ink)}.searchbox input:focus{outline:none}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.toolbar .searchbox{width:min(360px,100%)}.empty-state{padding:36px 17px;text-align:center;display:grid;place-items:center;gap:11px}.empty-emblem{width:65px;height:65px;border-radius:23px;background:#eff5ed;display:grid;place-items:center;font-size:28px}.empty-state h3{margin:0;font-size:16px}.empty-state p{max-width:380px;color:#89958e;line-height:1.8;margin:0 0 5px;font-size:12px}
.session-outer{max-width:790px;margin:0 auto}.session-top{display:flex;align-items:center;gap:12px;margin:7px 0 24px}.session-top .back-link{border:0;background:white;border-radius:11px;padding:9px;display:grid;place-items:center;border:1px solid var(--border)}.session-context{flex:1}.session-context strong{display:block;font-size:13px;margin-bottom:4px}.session-context small{font-size:11px;color:var(--muted)}.session-track{display:flex;align-items:center;gap:15px;font-size:12px;font-weight:800;color:#537565;margin-bottom:20px}.session-track .bar{flex:1;height:7px}.study-card{background:#fff;border:1px solid var(--border);border-radius:26px;min-height:405px;padding:34px;box-shadow:0 20px 65px #1f4d3a0c;display:flex;flex-direction:column;position:relative}.card-corner{display:flex;align-items:center;justify-content:space-between}.card-topic{background:#ebf4eb;color:#61866d;border-radius:50px;padding:8px 13px;font-size:11px;font-weight:820}.study-card-question{font-size:clamp(20px,3.3vw,30px);font-weight:850;line-height:1.65;letter-spacing:-.8px;margin:auto 0;white-space:pre-wrap}.study-card-answer{margin:18px 0 auto}.answer-label{font-size:11px;font-weight:900;letter-spacing:2px;color:#729782}.answer-main{font-size:clamp(23px,3vw,31px);font-weight:870;line-height:1.5;color:#195840;margin-top:10px;white-space:pre-wrap}.answer-exp{font-size:13px;line-height:1.95;color:#77857b;margin-top:14px;white-space:pre-wrap}.study-card-bottom{border-top:1px solid #ebeee9;margin-top:auto;padding-top:18px;display:flex;align-items:center;gap:10px;justify-content:space-between}.study-card-bottom .note{font-size:10px}.grade-area{padding-top:20px}.grade-label{font-size:11px;text-align:center;color:var(--muted);margin-bottom:11px}.grade-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.grade-btn{border:1px solid #e3ebe5;background:#fff;border-radius:13px;padding:13px 8px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:5px;font-size:12px;font-weight:820}.grade-btn small{font-size:9px;color:#95a198;font-weight:650}.grade-btn.again{background:#fff0ed;color:#c5685b;border-color:#f5d8d1}.grade-btn.hard{background:#fff7e7;color:#ab8235;border-color:#f5e7cf}.grade-btn.good{background:#eaf5ed;color:#3d845e;border-color:#cce7d1}.grade-btn.easy{background:#eaf2ff;color:#4a7fbe;border-color:#d6e4f5}.grade-btn:hover{filter:brightness(.97)}.session-end{text-align:center;padding:45px 25px}.session-end .end-emoji{font-size:52px}.session-end h2{font-size:27px;margin:15px 0 12px}.session-end p{font-size:13px;color:var(--muted);line-height:1.9}.session-end-stats{display:flex;gap:20px;justify-content:center;margin:25px auto 30px}.session-end-stats div{padding:12px 20px;background:#f2f7ef;border-radius:15px}.session-end-stats b{font-size:24px;display:block}.session-end-stats span{font-size:10px;color:var(--muted)}.session-tools{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;margin-top:17px}.source-link{color:#50816e;font-size:11px;display:inline-flex;align-items:center;gap:4px}.source-link .icon{height:13px;width:13px}
.lesson-list{display:grid;gap:12px}.lesson-item{display:flex;gap:16px;align-items:center;padding:15px;border:1px solid var(--border);border-radius:16px;background:#fff}.lesson-thumb{width:125px;min-width:125px;height:82px;border-radius:13px;background:linear-gradient(125deg,#26614e,#44816a);color:#fff;display:grid;place-items:center;position:relative;overflow:hidden}.lesson-thumb:before{content:'';height:120px;width:120px;border:1px solid #ffffff65;border-radius:50%;position:absolute;right:-39px;top:-51px}.lesson-thumb .icon{height:28px;width:28px;z-index:1}.lesson-main{flex:1;min-width:0}.lesson-main h3{font-size:14px;margin:0 0 7px}.lesson-main p{color:#85958a;font-size:11px;line-height:1.6;margin:0 0 7px}.lesson-main .tag{font-size:10px;color:#5a806c}.callout{background:#f1f7ef;border:1px solid #e3eee2;border-radius:20px;padding:22px;display:grid;gap:11px}.callout h3{font-size:16px;margin:0}.callout p{color:#788a7d;font-size:12px;line-height:1.85;margin:0}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:11px}.step{background:#fff;border:1px solid var(--border);border-radius:17px;padding:20px}.step .number{font-family:Georgia,serif;font-size:22px;color:#71a286}.step h4{margin:12px 0 7px;font-size:12px}.step p{margin:0;color:#81908a;font-size:11px;line-height:1.7}.video-player{width:100%;aspect-ratio:16/9;border-radius:15px;background:#143c31;margin:10px 0 15px}.aside-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:15px}.setting-row{display:flex;justify-content:space-between;gap:15px;align-items:center;padding:16px 0;border-bottom:1px solid var(--border)}.setting-row:last-child{border:0}.setting-row strong{font-size:13px}.setting-row p{color:#91a097;font-size:11px;margin:7px 0 0;line-height:1.7}
.modal-backdrop{position:fixed;inset:0;background:#0e211ca3;display:flex;align-items:center;justify-content:center;padding:16px;z-index:100;animation:fade .16s}.modal-window{width:min(540px,100%);max-height:min(90vh,820px);overflow:auto;background:white;border-radius:25px;padding:27px;box-shadow:0 24px 80px #10201966;animation:appear .18s}.modal-head{display:flex;align-items:start;justify-content:space-between;gap:10px;margin-bottom:17px}.modal-head h2{margin:0;font-size:20px;letter-spacing:-.5px}.modal-head p{color:var(--muted);font-size:11px;margin:7px 0 0}.form-grid{display:grid;gap:15px}.form-field{display:grid;gap:8px}.form-field label{font-size:12px;font-weight:790}.form-field input,.form-field textarea,.form-field select{border:1px solid #dfe7e0;border-radius:12px;background:#fbfdfb;color:var(--ink);padding:12px 13px;width:100%;outline:none;font-size:13px;resize:vertical}.form-field textarea{min-height:80px}.form-field input:focus,.form-field textarea:focus,.form-field select:focus{border-color:#83b49b;box-shadow:0 0 0 3px #82b89a24}.form-hint{color:#98a39c;font-size:10px;line-height:1.7}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:9px}.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:#233e34;color:white;font-weight:760;font-size:12px;padding:12px 18px;border-radius:13px;box-shadow:0 12px 32px #10281b44;z-index:200;opacity:0;pointer-events:none;transition:.23s;max-width:calc(100vw - 30px);text-align:center}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}.footer-note{text-align:center;color:#a2aca6;font-size:10px;line-height:2;margin-top:37px} .mobile-show{display:none}.form-error{color:#aa4d41;font-size:11px}.pack-banner{display:flex;align-items:center;justify-content:space-between;padding:24px;border-radius:23px;background:#e8f3e6;gap:22px}.pack-banner h2{font-size:20px;letter-spacing:-.5px;margin:5px 0}.pack-banner p{color:#7c907b;font-size:12px;max-width:480px;line-height:1.7}.tiny-meta{color:#96a59a;font-size:10px;letter-spacing:.5px}.card-detail{white-space:pre-wrap;font-size:13px;line-height:1.8;color:#64776b}.error-box{background:#fff3ee;color:#ad5a4c;border-radius:11px;padding:12px;font-size:12px}.badge-green{display:inline-flex;align-items:center;gap:5px;background:#e6f4e9;border-radius:40px;padding:5px 11px;font-weight:780;color:#3d7c5d;font-size:10px}
@keyframes fade{from{opacity:0}to{opacity:1}}@keyframes appear{from{transform:translateY(7px);opacity:.7}to{transform:translateY(0);opacity:1}}
@media(max-width:1250px){.main{padding:24px 28px 75px}.hero-art{right:3%}.hero-text{max-width:325px}.deck-grid{gap:10px}.deck-card{padding:10px 10px 16px}.deck-cover{height:104px}.snapshot{padding:22px 18px}.ring{width:116px;height:116px}.ring:before{inset:11px}}
@media(max-width:980px){.app-shell{display:block}.sidebar{display:none}.main{padding:19px 26px 98px}.topbar{margin-bottom:28px}.mobile-top-logo{display:flex;gap:8px;align-items:center;font-weight:900;font-size:19px}.mobile-top-logo .brand-mark{width:31px;height:31px;border-radius:11px}.mobile-top-logo .brand-mark .icon{width:18px;height:18px}.topbar-left{display:none}.mobile-nav{position:fixed;bottom:0;left:0;right:0;z-index:40;display:grid;grid-template-columns:repeat(5,1fr);gap:0;padding:9px 6px calc(8px + env(safe-area-inset-bottom));border-top:1px solid #e6ece6;background:#fffdfaf2;backdrop-filter:blur(18px)}.mobile-nav button{border:0;background:transparent;display:flex;align-items:center;flex-direction:column;gap:4px;font-size:10px;color:#86918a;font-weight:800;padding:4px 1px}.mobile-nav button.active{color:#236b4f}.mobile-nav .icon{width:20px;height:20px}.toast{bottom:83px}.dashboard-grid{grid-template-columns:1.3fr 1fr}}
@media(max-width:720px){.main{padding:17px 16px 108px}.topbar{margin-bottom:26px}.topbar-right{gap:8px}.date-pill{display:none}.avatar{height:34px;width:34px}.head-intro{align-items:start}.head-actions .btn{font-size:0;padding:12px;width:39px;height:39px;gap:0}.head-actions .btn .icon{width:18px;height:18px}.dashboard-grid{grid-template-columns:1fr}.hero-card{min-height:260px;padding:28px 24px}.hero-art{right:0;top:39px;transform:rotate(13deg) scale(.74);opacity:.27;transform-origin:top right}.hero-title{font-size:28px}.hero-text{max-width:100%}.hero-description{max-width:290px}.snapshot{flex-direction:column}.snapshot-body{justify-content:flex-start;gap:27px}.snapshot-details{display:flex;max-width:none;gap:30px}.snapshot-bottom{margin-top:20px}.stat-grid{gap:9px}.stat-card{padding:14px 11px;gap:8px;flex-direction:column;align-items:flex-start;border-radius:14px}.stat-icon{height:33px;width:33px;border-radius:10px}.stat-icon .icon{width:17px;height:17px}.stat-number{font-size:22px}.stat-label{font-size:10px}.deck-grid{grid-template-columns:1fr 1fr;gap:11px}.deck-card{padding:10px 10px 13px}.deck-cover{height:102px}.deck-cover-num{font-size:50px}.deck-cover-icon{font-size:30px}.deck-title{font-size:13px}.deck-desc{font-size:10px;min-height:51px}.deck-bottom{margin-top:13px}.deck-bottom .btn{padding:9px 7px}.learning-tools{grid-template-columns:1fr;padding:19px}.tool-buttons{justify-content:start}.section-header{margin-top:27px}.panel{padding:18px}.aside-grid,.steps{grid-template-columns:1fr}.study-card{padding:24px 20px;min-height:390px}.study-card-question{font-size:23px}.grade-grid{gap:6px}.grade-btn{padding:12px 4px;font-size:11px}.lesson-item{gap:10px;padding:11px}.lesson-thumb{width:90px;min-width:90px;height:75px}.lesson-main h3{font-size:12px}.lesson-main p{font-size:10px}.lesson-main .btn{padding:9px;font-size:10px}.pack-banner{flex-direction:column;align-items:start;padding:20px}.card-row{gap:10px}.card-row-body strong{font-size:12px}.toolbar .searchbox{flex:1}.modal-window{padding:22px 20px;border-radius:22px}.footer-note{margin-top:25px}}
@media(max-width:390px){.deck-grid{grid-template-columns:1fr 1fr}.deck-cover-icon{font-size:24px}.deck-desc{min-height:65px}.stat-number{font-size:19px}.hero-title{font-size:26px}.lesson-thumb{width:76px;min-width:76px}.mobile-nav button{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.001ms!important;scroll-behavior:auto!important;transition-duration:.001ms!important}}
/* final mobile refinement */
@media(max-width:720px){.head-intro{display:block}.head-actions{margin-top:13px;justify-content:flex-start;flex-wrap:wrap}.head-actions .btn{font-size:11px;width:auto;height:auto;padding:10px 13px;gap:6px}.head-actions .btn .icon{height:16px;width:16px}.deck-card:last-child:nth-child(odd){grid-column:1/-1}.deck-card:last-child:nth-child(odd) .deck-cover{height:87px}.deck-card:last-child:nth-child(odd) .deck-desc{min-height:0}.hero-art{right:-4%;opacity:.2}.hero-description{max-width:270px}}
@media(min-width:721px){.hero-description{max-width:295px}}

/* Full-site additions */
.active-course{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid #e5ede6;border-radius:14px;padding:9px 13px;margin:0 0 15px;width:max-content;max-width:100%;flex-wrap:wrap;box-shadow:0 2px 6px #1f4b3210}
.active-course>span:first-child{display:flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:#4d7660;white-space:nowrap}
.active-course .icon{width:17px;height:17px}
.active-course select{background:#f1f7f0;border:1px solid #deecde;color:#245e47;border-radius:9px;padding:9px 32px 9px 12px;min-width:170px;font-weight:800;max-width:100%}
.active-hint{color:#94a399;font-size:11px;white-space:nowrap}
.quick-actions{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 4px}
.quick-actions .btn{font-size:11px;padding:10px 14px}
.lesson-thumb{background-color:#205a4b;background-blend-mode:multiply}
.lesson-actions{display:flex;flex-direction:column;align-items:center;gap:6px}
.lesson-actions .btn{min-width:71px}
.transcript{border:1px solid #e4ebe5;background:#f8fbf8;border-radius:12px;padding:12px 16px;margin:2px 0 14px}
.transcript summary{font-weight:760;color:#386e57;font-size:12px;cursor:pointer}
.transcript p{white-space:pre-wrap;line-height:1.85;color:#65796c;font-size:12px}
.week-chart{height:230px;display:grid;grid-template-columns:repeat(7,1fr);gap:10px;align-items:end}
.chart-col{height:100%;display:flex;align-items:center;justify-content:flex-end;flex-direction:column;gap:10px}
.chart-col>b{font-size:13px;color:#3b7654}
.chart-col>small{font-size:12px;color:#788d80}
.chart-bar{height:160px;width:100%;max-width:55px;border-radius:9px 9px 3px 3px;background:#f1f5ef;display:flex;align-items:flex-end;overflow:hidden}
.chart-bar>span{display:block;width:100%;background:linear-gradient(180deg,#64ae85,#286c50);border-radius:9px 9px 0 0}
.progress-line{display:grid;grid-template-columns:minmax(200px,1.5fr) minmax(80px,1fr) auto;align-items:center;gap:14px;border-bottom:1px solid #e9efea;padding:16px 0}
.progress-line:last-child{border-bottom:0}
.progress-line>div:first-child{display:grid;gap:5px}
.progress-line strong{font-size:13px}
.progress-line span{font-size:11px;color:#8a998c}
.help-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px}
.help-grid .panel{display:flex;flex-direction:column;align-items:flex-start;gap:12px}
.help-grid h2{font-size:16px;margin:0}
.help-grid p{color:#87978b;font-size:12px;line-height:1.85;flex:1;margin:0}
.faq details{padding:17px 0;border-bottom:1px solid #e7ece7}
.faq details:last-child{border:0}
.faq summary{font-weight:790;cursor:pointer;font-size:13px}
.faq p{color:#718378;font-size:12px;line-height:1.85;margin-bottom:0}
.footer-help{border:0;background:transparent;color:#5d866c;text-decoration:underline;font-size:11px;font-weight:760;margin-bottom:10px}
@media(max-width:720px){.active-course{width:100%;gap:7px;padding:10px}.active-course>span:first-child{font-size:11px}.active-course select{flex:1;min-width:135px;font-size:12px}.active-hint{display:none}.quick-actions .btn{flex:1}.help-grid{grid-template-columns:1fr}.progress-line{grid-template-columns:1fr auto;gap:10px}.progress-line .bar{grid-column:1/-1;grid-row:2}.chart-bar{height:125px}.week-chart{height:190px}.lesson-actions .btn{min-width:61px}.lesson-main h3{line-height:1.5}}

/* 日本語の見出しとボタンが読みやすく収まるように調整 */
.side-label,.eyebrow,.hero-overline,.answer-label{letter-spacing:.09em;text-transform:none}
.art-front:before{font-family:inherit}
@media(max-width:720px){.setting-row{flex-wrap:wrap}.setting-row>div{flex:1;min-width:170px}.lesson-main h3{overflow-wrap:anywhere}}

/* 2.0 間違いに集中する復習と資格の条件 */
.sidebar{overflow-y:auto}.sidebar-foot{padding-top:24px}.side-nav{flex-shrink:0}
.mistake-banner{display:flex;align-items:center;gap:18px;padding:22px 24px;margin:22px 0 16px;border:1px solid #efdacd;border-radius:20px;background:#fff6ef}
.mistake-banner-icon{height:48px;width:48px;flex-shrink:0;border-radius:16px;background:#fae6d8;color:#aa6246;display:grid;place-items:center}
.mistake-banner-copy{flex:1;min-width:0}.mistake-banner .eyebrow{color:#a17358}.mistake-banner h2{margin:8px 0;font-size:19px;letter-spacing:-.5px}.mistake-banner h2 b{font-size:27px;margin-left:7px}.mistake-banner h2 small{font-size:12px;margin-left:4px}.mistake-banner p{color:#927e70;font-size:11px;line-height:1.8;margin:0}.mistake-banner-actions{display:grid;gap:7px;justify-items:center}
.btn-mistake{background:#a3583d;color:#fff}.btn-mistake:hover{background:#87422b}
.mistake-toolbar{display:flex;gap:25px;justify-content:space-between;align-items:center}.mistake-toolbar .form-field{max-width:420px;flex:1}.mistake-totals{display:flex;gap:35px;text-align:center}.mistake-totals div{display:grid;gap:5px}.mistake-totals b{font-size:28px;letter-spacing:-1px;color:#884b36}.mistake-totals span{font-size:11px;color:#8d8a81}
.review-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:21px 0 13px}.review-tabs b{margin-left:8px}
.review-explanation{display:flex;justify-content:space-between;gap:15px;align-items:center;margin:12px 0 18px}.review-explanation p{color:#7c8c80;font-size:12px;line-height:1.9;max-width:570px}
.wrong-icon{background:#fff0e7;color:#a3583d}.mistake-state{display:inline-flex;align-items:center;padding:3px 7px;border-radius:6px;font-size:9px;margin-bottom:5px;font-weight:750}.mistake-state.unresolved{background:#fff0e7;color:#a3583d}.mistake-state.resolved{background:#e7f5eb;color:#3e7652}
.deck-qualification{display:grid;gap:6px;align-content:start;margin:0 2px 16px;padding-top:9px;border-top:1px solid #eef1eb;min-height:55px}.deck-qualification>span{font-size:10px;color:#477b60;font-weight:750}.deck-qualification small{font-size:10px;color:#869188;line-height:1.6}.deck-qualification small span{font-size:9px}.deck-progress-row{margin-top:auto}
.qualification-panel{margin-top:20px}.qualification-head{display:flex;gap:15px;justify-content:space-between;align-items:center;flex-wrap:wrap}.requirement-tag{background:#e9f3e9;border-radius:30px;padding:7px 11px;color:#467054;font-weight:750;font-size:11px}.qualification-panel h2{font-size:18px;line-height:1.6;margin:19px 0 9px}.qualification-panel p{font-size:12px;color:#758478;line-height:1.95}.qualification-facts{display:grid;grid-template-columns:1fr 1.5fr;gap:22px;padding:16px 0;border-top:1px solid #e7ece6;border-bottom:1px solid #e7ece6;margin:19px 0}.qualification-facts h3{font-size:12px;margin:0 0 13px}.qualification-facts strong{font-size:30px;letter-spacing:-1px;color:#2d6c4f}.qualification-facts strong small{font-size:12px;margin-left:5px}.qualification-links{display:flex;gap:12px;flex-wrap:wrap;margin:17px 0}.coverage-note{font-size:11px!important;padding:12px 15px;border-radius:12px;background:#fbf5e8;color:#8b7652!important;line-height:1.9}
.session-end-stats{flex-wrap:wrap}.session-end h2{line-height:1.6}.grade-label{line-height:1.8}.source-link{overflow-wrap:anywhere}.session-tools .btn{white-space:normal}.study-card-bottom{flex-wrap:wrap}.card-row-body small{line-height:1.7}
@media(max-width:980px){.mobile-nav{grid-template-columns:repeat(6,1fr)}}
@media(max-width:720px){.mistake-banner{padding:18px;gap:12px;flex-wrap:wrap}.mistake-banner-icon{height:39px;width:39px;border-radius:12px}.mistake-banner-actions{width:100%;grid-template-columns:1fr}.mistake-banner-actions .btn{width:100%;white-space:normal}.mistake-banner h2{font-size:17px}.mistake-toolbar{display:grid;gap:20px}.mistake-toolbar .form-field{max-width:100%}.mistake-totals{justify-content:space-around;gap:15px}.review-explanation{display:block}.review-explanation .btn{width:100%;margin-bottom:6px}.review-tabs .chip{font-size:10px;padding:10px}.qualification-facts{grid-template-columns:1fr;gap:18px}.qualification-links{display:grid}.deck-qualification{min-height:77px;margin-bottom:11px}.session-end{padding:28px 17px}.session-end h2{font-size:23px}.session-end-stats{gap:8px}.session-end-stats div{padding:12px 10px;flex:1;min-width:72px}.session-tools{gap:8px}.session-tools .btn{padding:12px 13px;max-width:100%}.mistake-row .card-row-action{flex-direction:column}.mistake-banner p{overflow-wrap:anywhere}.mobile-nav button{font-size:9px}}

@media(max-width:720px){.mistake-toolbar{grid-template-columns:minmax(0,1fr);justify-content:stretch}.mistake-toolbar .form-field{width:100%;min-width:0}}

/* 3.0 出題範囲・分野別学習 */
.sidebar .brand{padding-bottom:18px}.sidebar .nav-btn{padding-top:11px;padding-bottom:11px}.sidebar .sidebar-tip{padding:14px}.sidebar-foot{padding-top:18px}
.scope-select-row{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:20px}.scope-select-row .form-field{width:min(510px,100%)}.scope-update{font-size:11px;line-height:1.9;color:#6d8478;text-align:right;white-space:nowrap}
.scope-hero{background:linear-gradient(120deg,#1d5143,#347461);color:#fff;border-radius:24px;padding:29px;display:grid;grid-template-columns:1fr 1.2fr;gap:25px;align-items:center}.scope-hero .eyebrow{color:#c2decc}.scope-hero h2{font-size:25px;line-height:1.5;margin:9px 0}.scope-hero p{color:#d7e8df;font-size:12px;line-height:1.8;margin:0 0 18px}.scope-numbers{display:grid;grid-template-columns:repeat(2,1fr);gap:22px 17px}.scope-numbers>div{display:grid;gap:6px;border-left:1px solid #ffffff32;padding-left:22px}.scope-numbers strong{font-size:34px;line-height:1.1;font-weight:850}.scope-numbers span{font-size:11px;color:#d8e8dd}
.scope-notice{border:1px solid #e2e9df;background:#f0f6ec;border-radius:17px;padding:17px 20px;margin-top:17px}.scope-notice b{font-size:12px;line-height:1.7;color:#395f47}.scope-notice p{font-size:11px;line-height:1.9;color:#607c68;margin:8px 0}.scope-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px}.scope-card{background:#fff;border:1px solid var(--border);border-radius:20px;padding:21px;display:flex;flex-direction:column;min-width:0;box-shadow:var(--shadow)}.scope-card-top{display:flex;justify-content:space-between;align-items:center}.scope-index{font-size:13px;letter-spacing:1px;font-weight:800;color:#69947f}.scope-card-count{font-size:11px;background:#edf4eb;padding:5px 10px;border-radius:20px;color:#3e7758;font-weight:750}.scope-card h3{font-size:17px;line-height:1.6;letter-spacing:-.3px;margin:13px 0}.scope-topics{display:flex;gap:6px;flex-wrap:wrap;align-content:flex-start;margin-bottom:21px;flex:1}.scope-topics span{background:#f7f9f5;color:#6e8273;border-radius:7px;padding:5px 7px;font-size:10px;line-height:1.6}.scope-card-progress{display:flex;justify-content:space-between;font-size:10px;color:#7a8b7b;margin-bottom:8px}.scope-card-progress strong{color:#497757}.scope-card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;align-items:center}.scope-wrong{background:none;border:0;color:#a46744;font-size:11px;padding:7px 0;display:flex;gap:5px;align-items:center;width:100%}.scope-wrong .icon{height:13px;width:13px}
.scope-gap{margin-top:22px;border:1px solid #eddccc;background:#fff8ef;border-radius:20px;padding:23px}.scope-gap .eyebrow{color:#ab7b4b}.scope-gap h3{font-size:16px;margin:9px 0}.scope-gap p{font-size:12px;line-height:1.9;color:#816b57}.scope-gap p:last-child{font-size:11px}.scope-filters{display:grid;grid-template-columns:1.6fr 1.5fr 1fr;gap:12px;margin:20px 0 17px}.scope-filters .form-field{min-width:0}.scope-filters select{width:100%;font-size:12px}.scope-action-row{display:flex;gap:15px;justify-content:space-between;align-items:center;margin:18px 0}.scope-list-footer{display:flex;gap:15px;align-items:center;justify-content:center;padding-top:20px;font-size:11px;color:#789078}.kind-label{font-size:9px;border-radius:5px;background:#edf4ed;padding:2px 5px;margin-right:3px;color:#547c61}.scope-brief{background:#f1f6ef;border-radius:15px;padding:17px 20px;margin:18px 0}.scope-brief b{font-size:12px}.scope-brief p{color:#6e816e;font-size:11px;line-height:1.8}.scope-supplement{display:flex;gap:15px;align-items:center;justify-content:space-between;padding:22px;border:1px solid var(--border);border-radius:17px;margin-top:19px;background:#fff}.scope-supplement p{font-size:11px;line-height:1.8;color:#78907a}.scope-buttons{display:flex;flex-wrap:wrap;gap:9px;max-width:280px}.scope-buttons .btn{white-space:normal;line-height:1.5}.study-card-bottom{flex-wrap:wrap}.source-link{overflow-wrap:anywhere}.card-topic{max-width:80%;line-height:1.6}.scope-action-row .note{flex:1}
@media(max-width:720px){.scope-hero{grid-template-columns:1fr;padding:23px;gap:25px}.scope-hero h2{font-size:23px}.scope-numbers{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.scope-numbers>div{padding-left:9px;gap:6px;min-width:0}.scope-numbers strong{font-size:24px}.scope-numbers span{font-size:9px;line-height:1.5}.scope-update{display:none}.scope-grid{grid-template-columns:1fr;gap:13px}.scope-card{padding:20px}.scope-card h3{font-size:16px}.scope-filters{grid-template-columns:1fr 1fr;gap:12px}.scope-filters>.form-field:first-child{grid-column:1/-1}.scope-action-row{align-items:stretch;flex-direction:column}.scope-action-row .note{font-size:10px}.scope-supplement{align-items:start;flex-direction:column}.scope-notice{padding:16px}.scope-notice b{font-size:11px}.scope-gap{padding:20px}.scope-list-footer{flex-wrap:wrap}.scope-card-actions .scope-wrong{width:auto;margin-left:auto}.scope-select-row .form-field{width:100%}.study-card-bottom .text-link{white-space:normal}.card-corner{align-items:flex-start;gap:6px}}
