@import "https://fonts.loli.net/css2?family=Noto+Serif+SC:wght@600;700;900&family=Noto+Sans+SC:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&display=swap";:root{--ink:#17202c;--muted:#657386;--paper:#f6f8fb;--paper-2:#fff;--navy:#17213a;--navy-2:#0f3151;--gold:#d5a642;--red:#9f4146;--teal:#28777a;--line:#17202c1a;--shadow:0 10px 28px #17202c14;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;font-family:Noto Sans SC,Noto Sans JP,system-ui,sans-serif}*{box-sizing:border-box}body{background:var(--paper);min-width:320px;margin:0}button,textarea{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh}.site-footer{text-align:center;padding:18px 16px 24px;font-size:13px}.site-footer a{color:var(--muted);text-decoration:none}.site-footer a:hover{text-decoration:underline}.portal-view{gap:22px;display:grid}.portal-hero{color:#fff;background:radial-gradient(circle at 86% 18%, #d5a6425c, transparent 24%), linear-gradient(135deg, var(--navy), var(--navy-2));box-shadow:var(--shadow);border-radius:12px;justify-content:space-between;align-items:end;gap:28px;padding:clamp(26px,5vw,54px);display:flex}.portal-hero h1{max-width:760px;font-size:clamp(36px,5vw,66px);line-height:1.08}.portal-hero p:not(.eyebrow){color:#ffffffc2;max-width:720px;margin:18px 0 0;font-size:17px;line-height:1.8}.portal-hero .secondary-btn{color:#fff;background:#ffffff1a;border:1px solid #ffffff47;flex:none}.module-entry-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.module-entry{min-height:360px;color:var(--ink);border:1px solid var(--line);background:var(--paper-2);box-shadow:var(--shadow);text-align:left;border-radius:12px;align-content:start;justify-items:start;gap:12px;padding:clamp(24px,4vw,40px);transition:transform .18s,box-shadow .18s;display:grid;position:relative;overflow:hidden}.module-entry:hover{transform:translateY(-3px);box-shadow:0 18px 38px #17202c21}.module-entry:after{content:"";background:#2d657414;border-radius:50%;width:220px;height:220px;position:absolute;bottom:-70px;right:-60px}.translation-entry:after{background:#9f414614}.module-entry-icon,.track-icon{color:#fff;background:var(--teal);border-radius:12px;place-items:center;width:52px;height:52px;display:grid}.translation-entry .module-entry-icon{background:var(--red)}.module-entry-kicker{color:var(--muted);font-size:13px;font-weight:700}.module-entry>strong{font-family:Noto Serif SC,serif;font-size:clamp(30px,4vw,46px)}.module-entry p{max-width:560px;color:var(--muted);margin:0;font-size:16px;line-height:1.8}.module-entry-features{color:var(--ink);font-size:14px}.module-entry-action{color:var(--teal);align-items:center;gap:6px;margin-top:auto;font-weight:700;display:inline-flex}.translation-entry .module-entry-action{color:var(--red)}.portal-note,.practice-roadmap{border:1px solid var(--line);background:var(--paper-2);border-radius:12px;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:center;gap:24px;padding:clamp(22px,4vw,38px);display:grid}.portal-note h2,.practice-roadmap h2{font-size:clamp(24px,3vw,36px)}.portal-note>p{color:var(--muted);margin:0;line-height:1.8}.japanese-practice-view{gap:20px;display:grid}.practice-landing-hero{color:#fff;background:radial-gradient(circle at 86% 20%, #d5a64257, transparent 24%), linear-gradient(135deg, #12333d, var(--teal));border-radius:12px;justify-content:space-between;align-items:end;gap:24px;padding:clamp(26px,5vw,52px);display:flex}.practice-landing-hero h1{font-size:clamp(38px,5vw,68px)}.practice-landing-hero p:not(.eyebrow){color:#ffffffc7;max-width:700px;margin:16px 0 0;line-height:1.8}.source-badge{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:999px;flex:none;padding:9px 12px;font-size:13px}.practice-track-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.practice-track-card{border:1px solid var(--line);background:var(--paper-2);border-radius:10px;align-content:start;gap:13px;min-height:250px;padding:22px;display:grid;box-shadow:0 5px 16px #17202c0a}.practice-track-card strong{font-size:20px}.practice-track-card p{color:var(--muted);margin:0;line-height:1.7}.practice-track-card small{color:var(--teal);margin-top:auto;font-weight:700}.practice-steps{flex-wrap:wrap;gap:8px;display:flex}.practice-steps span{color:var(--ink);background:#2d65741a;border-radius:999px;padding:9px 12px;font-size:13px;font-weight:700}.top-nav{z-index:20;border-bottom:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#ffffffeb;justify-content:space-between;align-items:center;gap:20px;padding:12px clamp(18px,4vw,54px);display:flex;position:sticky;top:0}.brand,.top-nav nav button,.back-btn,.primary-btn,.secondary-btn{border:0;align-items:center;gap:9px;display:inline-flex}.brand{color:var(--ink);text-align:left;background:0 0}.brand-mark{color:#fff;background:linear-gradient(135deg, var(--navy), var(--teal));border-radius:6px;place-items:center;width:38px;height:38px;font-family:Noto Serif SC,serif;font-weight:900;display:grid}.brand strong,.brand small{display:block}.brand small{color:var(--muted);font-size:12px}.top-nav nav{flex-wrap:wrap;justify-content:flex-end;gap:8px;display:flex}.top-nav nav button{height:38px;color:var(--ink);border:1px solid var(--line);background:#fff;border-radius:6px;padding:0 13px}.home-view,.workspace-view,.lesson-view{width:min(1440px,100%);margin:0 auto;padding:clamp(18px,3vw,42px)}.dashboard-top{grid-template-columns:minmax(0,1.5fr) minmax(340px,.7fr);align-items:stretch;gap:18px;display:grid}.dashboard-intro,.today-card{border:1px solid var(--line);background:var(--paper-2);box-shadow:var(--shadow);border-radius:8px;padding:clamp(22px,4vw,38px)}.dashboard-intro{align-content:center;display:grid}.dashboard-intro h1{color:var(--ink);font-size:clamp(36px,5vw,64px);line-height:1.05}.dashboard-intro p:not(.eyebrow){max-width:680px;color:var(--muted);margin:16px 0 0;font-size:17px;line-height:1.8}.today-card{gap:10px;display:grid}.today-card .panel-top{color:var(--ink);margin-bottom:4px}.today-card button{border:1px solid var(--line);color:var(--ink);text-align:left;background:#fbfcfd;border-radius:8px;grid-template-columns:38px minmax(0,1fr);gap:4px 10px;padding:12px;display:grid}.today-card button span{color:#fff;background:var(--teal);border-radius:8px;grid-row:span 2;place-items:center;width:34px;height:34px;font-weight:800;display:grid}.today-card button strong{font-size:15px}.today-card button small{color:var(--muted)}.quick-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.quick-card{border:1px solid var(--line);min-height:156px;color:var(--ink);background:var(--paper-2);text-align:left;border-radius:8px;padding:18px;box-shadow:0 5px 16px #17202c0a}.quick-card svg{color:var(--teal);margin-bottom:18px;display:block}.quick-card strong{font-size:18px;display:block}.quick-card p{color:var(--muted);margin:8px 0 0;line-height:1.65}.course-summary{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:min(420px,100%);display:grid}.hero-band{color:#fff;min-height:min(620px,100vh - 96px);box-shadow:var(--shadow);background:radial-gradient(circle at 82% 18%,#d6a84f57,#0000 23%),linear-gradient(135deg,#121827 0%,#17213a 42%,#0f3151 100%);border-radius:8px;grid-template-columns:minmax(0,1.15fr) minmax(340px,.85fr);align-items:center;gap:clamp(28px,5vw,72px);padding:clamp(34px,6vw,82px);display:grid}.eyebrow{color:var(--gold);letter-spacing:0;text-transform:uppercase;margin:0 0 10px;font-size:12px;font-weight:700}h1,h2,h3{letter-spacing:0;margin:0;font-family:Noto Serif SC,serif}.hero-copy h1,.lesson-hero h1{font-size:clamp(38px,5vw,74px);font-weight:900;line-height:1.02}.dashboard-header h1{font-size:clamp(30px,3.6vw,48px);font-weight:900;line-height:1.12}.hero-text{color:#ffffffc7;max-width:720px;margin:22px 0 0;font-size:18px;line-height:1.85}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.primary-btn,.secondary-btn{border-radius:6px;min-height:44px;padding:0 18px;font-weight:700}.primary-btn{color:#fff;background:var(--teal)}.secondary-btn{color:var(--ink);background:var(--paper-2);border:1px solid var(--line)}.hero-panel{background:#ffffff14;border:1px solid #ffffff2e;border-radius:8px;padding:22px}.panel-top{color:#ffffffd1;justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.metric-grid,.stat-strip{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}.metric{background:#28777a14;border:1px solid #28777a1a;border-radius:8px;padding:14px}.stat-strip .metric{background:var(--paper-2);border-color:var(--line)}.metric strong{font-family:Noto Serif SC,serif;font-size:clamp(22px,3vw,34px);line-height:1;display:block}.metric span{color:inherit;opacity:.72;margin-top:8px;font-size:13px;display:block}.section-block{margin-top:28px}.section-heading{justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px;display:flex}.section-heading h2{font-size:clamp(24px,3vw,34px)}.section-heading.compact{margin-bottom:16px;display:block}.section-heading.compact h2{font-size:25px}.week-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.feature-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;display:grid}.week-card,.path-list button,.feature-card{text-align:left;border:1px solid var(--line);background:var(--paper-2);color:var(--ink);border-radius:8px}.week-card{min-height:174px;padding:16px;box-shadow:0 4px 14px #17202c09}.feature-card{min-height:180px;padding:18px}.feature-card span{min-height:24px;color:var(--red);background:#9f41461a;border-radius:999px;align-items:center;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.feature-card strong{margin-top:18px;font-family:Noto Serif SC,serif;font-size:20px;line-height:1.32;display:block}.feature-card p{color:var(--muted);margin:10px 0 0;line-height:1.6}.feature-card em{color:var(--red);align-items:center;gap:2px;margin-top:14px;font-size:13px;font-style:normal;font-weight:700;display:inline-flex}.week-card.ready{border-color:#28777a47}.week-number{width:30px;height:30px;color:var(--teal);background:#28777a1a;border-radius:8px;place-items:center;margin-bottom:12px;font-weight:700;display:inline-grid}.week-module,.week-card small,.path-list small{color:var(--muted);font-size:13px;display:block}.week-card strong{margin:6px 0 4px;font-size:17px;display:block}.week-card p{color:var(--muted);margin:12px 0 0;line-height:1.65}.open-link{color:var(--teal);align-items:center;gap:3px;margin-top:14px;font-size:13px;font-weight:700;display:inline-flex}.back-btn{color:var(--muted);background:0 0;margin-bottom:18px;padding:0}.dashboard-header{justify-content:space-between;align-items:end;gap:20px;margin-bottom:24px;display:flex}.dashboard-header h1,.lesson-hero h1{color:var(--ink)}.stat-strip{margin-bottom:18px}.two-column,.ai-layout{grid-template-columns:minmax(0,1.5fr) minmax(320px,.85fr);gap:18px;display:grid}.content-pane,.side-pane,.lesson-card,.teacher-card{border:1px solid var(--line);background:var(--paper-2);border-radius:8px;box-shadow:0 6px 18px #17202c0b}.content-pane,.side-pane{padding:22px}.knowledge-graph-shell{background-color:#f7f1e6a3;background-image:linear-gradient(90deg,#2d65740d 1px,#0000 1px),linear-gradient(0deg,#2d65740d 1px,#0000 1px),none;background-position:0 0,0 0,0 0;background-repeat:repeat,repeat,repeat;background-size:34px 34px;background-attachment:scroll,scroll,scroll;background-origin:padding-box,padding-box,padding-box;background-clip:border-box,border-box,border-box;border:1px solid #17202c24;border-radius:8px;overflow:hidden}.graph-stage{padding:12px;overflow-x:auto}.knowledge-graph{width:100%;min-width:980px;height:auto;display:block}.graph-band rect{fill:#ffffff7a;stroke:#17202c14}.graph-band text{fill:var(--muted);font-size:15px;font-weight:800}.graph-edge{fill:none;stroke:#17202c33;stroke-width:2.4px;marker-end:url(#arrow-head)}#arrow-head path{fill:#17202c47}.graph-edge.active{stroke:var(--red);stroke-width:3.4px}.graph-node{cursor:pointer}.graph-node circle{fill:var(--node-color);stroke:#ffffffdb;stroke-width:4px;filter:drop-shadow(0 9px 12px #17202c29);opacity:.78}.graph-node.neighbor circle,.graph-node.active circle{opacity:1}.graph-node.active circle{stroke:var(--gold);stroke-width:6px}.graph-node text{pointer-events:none;text-anchor:middle;fill:#fff;font-weight:800}.node-week{font-size:17px}.node-title{font-size:12px}.node-score{opacity:.86;font-size:11px}.graph-legend{color:var(--muted);border-top:1px solid #17202c1a;flex-wrap:wrap;align-items:center;gap:14px;padding:12px 16px;font-size:13px;display:flex}.graph-legend span{align-items:center;gap:8px;display:inline-flex}.legend-dot{background:var(--gold);border-radius:50%;width:12px;height:12px}.legend-line{background:var(--red);width:28px;height:2px}.detail-panel{background:#fff;border-radius:8px;margin-top:18px;padding:18px}.pill,.tag-row span,.version-list span{min-height:24px;color:var(--red);background:#9f41461a;border-radius:999px;align-items:center;padding:0 9px;font-size:12px;font-weight:700;display:inline-flex}.detail-panel h3{margin-top:12px;font-size:24px}.detail-panel p,.lesson-card p,.teacher-card p,.ai-result li{color:var(--muted);line-height:1.78}.tag-row{flex-wrap:wrap;gap:8px;margin-top:14px;display:flex}.mastery-bar{background:#17202c1a;border-radius:99px;height:9px;margin-top:16px;overflow:hidden}.mastery-bar span{border-radius:inherit;background:linear-gradient(90deg, var(--red), var(--gold));height:100%;display:block}.path-list{gap:10px;display:grid}.path-list button{grid-template-columns:34px 1fr;gap:6px 12px;padding:14px;display:grid}.path-list button span{color:#fff;background:var(--teal);border-radius:50%;grid-row:span 2;place-items:center;width:32px;height:32px;font-weight:700;display:grid}.student-profile{margin-top:22px}.profile-card{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;gap:10px;padding:16px;display:grid}.profile-card>strong{font-family:Noto Serif SC,serif;font-size:22px}.profile-card>span,.profile-card small{color:var(--muted);font-size:13px}.profile-card input{border:1px solid var(--line);background:#fff;border-radius:6px;outline:none;width:100%;min-height:38px;padding:9px 11px}.mini-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.mini-stats span{color:var(--muted);background:#2d657414;border-radius:8px;padding:10px;font-size:12px}.mini-stats b{color:var(--ink);font-size:20px;display:block}.badge-grid{gap:8px;display:grid}.badge-grid span{min-height:34px;color:var(--muted);background:#f7f1e6b8;border:1px solid #17202c1a;border-radius:8px;align-items:center;gap:8px;padding:7px 9px;font-size:13px;display:flex}.badge-grid span.earned{color:var(--ink);background:#d6a84f29;border-color:#d6a84f73}.badge-grid i{color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:26px;height:26px;font-size:11px;font-style:normal;font-weight:900;display:grid}.teacher-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;display:grid}.teacher-detail,.admin-console{margin-top:18px}.status-pill{min-height:34px;color:var(--teal);background:#2d65741a;border-radius:999px;align-items:center;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.admin-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.admin-actions span{color:var(--muted);font-size:13px}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.admin-panel{border:1px solid var(--line);background:#ffffffc7;border-radius:8px;align-content:start;gap:12px;padding:18px;display:grid}.admin-panel h3{font-size:20px}.admin-panel input,.admin-panel select,.admin-panel textarea{border:1px solid var(--line);width:100%;min-height:38px;color:var(--ink);background:#fff;border-radius:6px;outline:none;padding:9px 11px}.admin-panel textarea{min-height:118px}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.edge-list{gap:8px;max-height:250px;display:grid;overflow:auto}.edge-list button{color:var(--muted);background:#f7f1e6b8;border:1px solid #17202c1a;border-radius:6px;grid-template-columns:minmax(0,1fr) 18px minmax(0,1fr);align-items:center;gap:8px;padding:9px;font-size:12px;display:grid}.edge-list span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.materials-layout{grid-template-columns:minmax(300px,.82fr) minmax(0,1.18fr);gap:18px;display:grid}.materials-sidebar,.material-reader{border:1px solid var(--line);background:#ffffffc7;border-radius:8px}.materials-sidebar{padding:16px}.material-list{gap:10px;max-height:720px;padding-right:4px;display:grid;overflow:auto}.material-list button{text-align:left;background:#fff;border:1px solid #17202c1a;border-radius:8px;gap:5px;padding:13px;display:grid}.material-list button.active{background:#2d657414;border-color:#2d65747a}.material-list span,.material-list small,.material-source{color:var(--muted);font-size:12px}.material-list strong{font-size:15px}.material-list small{-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.55;display:-webkit-box;overflow:hidden}.material-reader{padding:clamp(20px,3vw,34px)}.material-reader h2{margin-top:14px;font-size:clamp(28px,4vw,42px)}.material-source{margin:10px 0 18px}.material-reader pre{max-height:620px;color:var(--ink);white-space:pre-wrap;word-break:break-word;background:#f7f1e6b8;border:1px solid #17202c1a;border-radius:8px;padding:18px;font-family:inherit;font-size:14px;line-height:1.78;overflow:auto}.empty-state{min-height:260px;color:var(--muted);place-items:center;display:grid}.teacher-card{padding:20px}.icon-box{color:#fff;background:var(--navy);border-radius:8px;place-items:center;width:42px;height:42px;margin-bottom:18px;display:grid}.teacher-card svg{width:21px;height:21px}.mini-icon{color:#fff;background:var(--navy);border-radius:4px;place-items:center;width:18px;height:18px;font-size:10px;font-weight:900;display:inline-grid}.teacher-card span{color:var(--muted);font-size:13px;display:block}.teacher-card strong{margin-top:7px;font-family:Noto Serif SC,serif;font-size:28px;display:block}.segmented,.lesson-tabs{flex-wrap:wrap;gap:8px;display:flex}.segmented{margin-bottom:16px}.segmented button,.lesson-tabs button{border:1px solid var(--line);min-height:38px;color:var(--ink);background:#ffffff85;border-radius:6px;padding:0 14px}.segmented button.active,.lesson-tabs button.active{color:#fff;background:var(--navy)}textarea{resize:vertical;border:1px solid var(--line);width:100%;min-height:240px;color:var(--ink);background:#fff;border-radius:8px;outline:none;padding:16px;line-height:1.7}.ai-practice-pane{gap:16px;display:grid}.practice-field{gap:8px;display:grid}.practice-field span{color:var(--muted);font-size:13px;font-weight:800}.practice-field input{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);font:inherit;background:#fff;border-radius:8px;padding:0 12px}.practice-field small{color:var(--muted);font-size:13px;line-height:1.6}.practice-field textarea{min-height:112px}.answer-field textarea{min-height:260px}.practice-actions{flex-wrap:wrap;gap:10px;display:flex}.feedback-output{background:#d6a84f1a;border:1px solid #d6a84f47;border-radius:8px;max-height:560px;padding:18px;overflow:auto}.feedback-output h3{color:var(--ink);margin:18px 0 8px;font-family:Noto Serif SC,serif;font-size:22px}.feedback-output h3:first-child{margin-top:0}.feedback-output p,.feedback-output li{color:var(--ink);line-height:1.85}.feedback-output p{margin:0 0 12px}.feedback-output ul{gap:8px;margin:0 0 14px;padding-left:20px;display:grid}.feedback-output strong{color:var(--red)}.feedback-table-wrap{background:#ffffffb3;border:1px solid #17202c1f;border-radius:8px;margin:14px 0 18px;overflow-x:auto}.feedback-table{border-collapse:collapse;width:100%;min-width:560px;font-size:14px}.feedback-table th,.feedback-table td{text-align:left;vertical-align:top;border-bottom:1px solid #17202c1a;padding:10px 12px;line-height:1.65}.feedback-table th{color:var(--ink);background:#2d657417;font-weight:800}.feedback-table tr:last-child td{border-bottom:0}.mock-output{background:#d6a84f1f;border-radius:8px;padding:16px}.subtle-output{background:#2d65741a;margin-top:12px}.lesson-hero{color:#fff;background:radial-gradient(circle at 80% 15%, #d6a84f47, transparent 26%), linear-gradient(135deg, var(--navy), var(--navy-2));border-radius:8px;padding:clamp(28px,5vw,60px)}.lesson-hero h1,.lesson-hero p:not(.eyebrow){color:#fff}.lesson-hero p:not(.eyebrow){opacity:.78;max-width:800px;margin:16px 0 0;line-height:1.8}.lesson-tabs{margin:18px 0}.lesson-card{padding:clamp(22px,4vw,42px)}.lesson-card h2{margin-bottom:16px;font-size:clamp(28px,4vw,42px)}.lesson-paragraphs{gap:12px;max-width:980px;display:grid}.lesson-deep-blocks{gap:16px;margin-top:22px;display:grid}.lesson-deep-block{background:#f8fafc;border:1px solid #6975862e;border-radius:8px;padding:18px}.lesson-deep-block h3{color:var(--ink);margin:0 0 12px;font-size:20px}.lesson-deep-block ul{gap:10px;margin:0;padding-left:20px;display:grid}.lesson-deep-block li{color:var(--muted);line-height:1.85}.callout{border-left:4px solid var(--gold);color:var(--ink);background:#d6a84f1f;margin-top:20px;padding:16px;line-height:1.7}.split-card{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:24px;display:grid}.version-list{gap:12px;display:grid}.version-list section{border:1px solid var(--line);background:#fff;border-radius:8px;padding:16px}.feature-detail{grid-template-columns:minmax(0,1.1fr) minmax(300px,.9fr);gap:26px;display:grid}.feature-list{align-content:start;gap:10px;display:grid}.feature-list span{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:8px;grid-template-columns:42px 1fr;align-items:center;gap:10px;padding:13px;display:grid}.feature-list strong{color:#fff;background:var(--teal);border-radius:50%;place-items:center;width:34px;height:34px;font-size:12px;display:grid}@media (width<=1100px){.hero-band,.dashboard-top,.two-column,.ai-layout,.materials-layout,.split-card,.feature-detail{grid-template-columns:1fr}.practice-track-grid,.week-grid,.quick-grid,.teacher-grid,.feature-grid,.admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.top-nav,.dashboard-header,.section-heading,.portal-hero,.practice-landing-hero{flex-direction:column;align-items:stretch}.top-nav nav{justify-content:flex-start}.home-view,.workspace-view,.lesson-view{padding:16px}.hero-band{padding:24px}.metric-grid,.stat-strip,.course-summary,.quick-grid,.week-grid,.teacher-grid,.feature-grid,.admin-grid,.form-grid,.module-entry-grid,.portal-note,.practice-track-grid,.practice-roadmap{grid-template-columns:1fr}.module-entry{min-height:330px}.graph-stage{min-height:360px}}.jp-practice .practice-track-card{text-align:left;cursor:pointer;font:inherit;color:inherit}.jp-practice .practice-track-card.active{outline:2px solid var(--teal);outline-offset:-2px}.jp-filters{gap:10px;margin:22px 0 8px;display:grid}.jp-filters>div,.jp-choice{flex-wrap:wrap;gap:8px;display:flex}.jp-filters button,.jp-choice button{color:var(--ink);background:#fff;border:1px solid #ccd3dc;border-radius:999px;padding:6px 12px;font-size:.9rem}.jp-filters button.active,.jp-choice button.active{color:#fff;background:#274c48;border-color:#274c48}.jp-count{color:var(--muted);font-size:.9rem}.jp-list{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:14px;display:grid}.jp-item{text-align:left;border:1px solid var(--line);font:inherit;color:var(--ink);cursor:pointer;background:#fff;border-radius:10px;gap:8px;padding:16px 18px;display:grid}.jp-item:hover{border-color:#274c48}.jp-item-meta{color:var(--muted);flex-wrap:wrap;gap:6px;font-size:.8rem;display:flex}.jp-item-meta span{background:#f1f4f7;border-radius:5px;padding:1px 7px}.jp-item-meta .jp-done{color:#1e6b52;background:#e3f1ec}.jp-item-meta .jp-doing{color:#7a5a12;background:#fbf3df}.jp-item-text{-webkit-line-clamp:3;-webkit-box-orient:vertical;line-height:1.75;display:-webkit-box;overflow:hidden}.jp-item small{color:var(--muted)}.jp-runner-head h1{margin:6px 0 12px}.jp-steps{flex-wrap:wrap;gap:6px;margin:0 0 18px;padding:0;list-style:none;display:flex}.jp-steps li{color:var(--muted);background:#f1f4f7;border-radius:6px;padding:5px 10px;font-size:.85rem}.jp-steps li.active{color:#fff;background:#274c48}.jp-steps li.done{color:#1e6b52;background:#e3f1ec}.jp-runner-grid{grid-template-columns:minmax(260px,2fr) 3fr;align-items:start;gap:22px;display:grid}.jp-source{border:1px solid var(--line);background:#fff;border-radius:12px;padding:18px 20px;position:sticky;top:84px}.jp-source-label{color:var(--muted);margin:0 0 6px;font-size:.85rem}.jp-source blockquote{margin:0 0 12px;font-size:1.08rem;line-height:1.95}.jp-source details{color:var(--muted);font-size:.88rem}.jp-attribution{color:var(--muted);overflow-wrap:anywhere;font-size:.78rem}.jp-stage{border:1px solid var(--line);background:#fff;border-radius:12px;padding:22px 26px;line-height:1.75}.jp-stage h2{margin-top:0}.jp-stage textarea{width:100%;font:inherit;border:1px solid #aab3be;border-radius:8px;margin:10px 0;padding:12px;line-height:1.7;display:block}.jp-stage .primary-btn{margin-top:6px}.jp-stage button:disabled{opacity:.5;cursor:not-allowed}.jp-hint{color:var(--muted);font-size:.88rem}.jp-mine,.jp-compare>div,.jp-reference{background:#f6f8fb;border-radius:8px;margin:12px 0;padding:12px 14px}.jp-mine span,.jp-compare span,.jp-reference span{color:var(--muted);font-size:.8rem;display:block}.jp-mine p,.jp-compare p,.jp-reference p{margin:4px 0}.jp-reference{background:#eef5f3;border-left:3px solid #274c48}.jp-compare{grid-template-columns:1fr 1fr;gap:12px;display:grid}.jp-compare>div{margin:0}.jp-pitfall{border:1px solid var(--line);border-radius:10px;margin:12px 0;padding:12px 16px}.jp-pitfall h3{margin:0 0 6px;font-size:1rem}.jp-pitfall p{margin:4px 0}.jp-tag{min-width:64px;color:var(--muted);margin-right:8px;font-size:.8rem;display:inline-block}.jp-checklist{padding-left:20px}.jp-expressions{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px;margin:12px 0;display:grid}.jp-expressions button{text-align:left;border:1px solid var(--line);font:inherit;color:var(--ink);background:#fff;border-radius:10px;gap:3px;padding:12px 14px;display:grid}.jp-expressions button.active{background:#eef5f3;border-color:#274c48}.jp-expressions small{color:var(--muted)}.jp-expressions em{color:#274c48;font-size:.8rem;font-style:normal}@media (width<=760px){.jp-runner-grid,.jp-compare{grid-template-columns:1fr}.jp-source{position:static}.jp-stage{padding:16px}.jp-list{grid-template-columns:1fr}}.weekly-report-view .report-hero{margin:18px 0 8px}.weekly-report-view .report-hero p:last-child{max-width:720px}.report-panel{grid-template-columns:minmax(220px,300px) 1fr;gap:18px;margin:18px 0;display:grid}.report-profile{background:#fff;border:1px solid #ddd8cc;border-radius:10px;gap:10px;margin:0;padding:14px 16px;display:grid}.report-profile legend{padding:0 6px;font-weight:600}.report-profile label{gap:4px;font-size:.9rem;display:grid}.report-profile input{font:inherit;border:1px solid #ccd3dc;border-radius:8px;padding:7px 10px}.report-profile small,.report-privacy,.report-undated{color:#6b7480;font-size:.85rem}.report-week{background:#fff;border:1px solid #ddd8cc;border-radius:10px;padding:14px 16px}.report-week p{margin:10px 0}.report-done{color:#3f6b3d;background:#e4efe3;border-radius:9px;margin-left:10px;padding:1px 8px;font-size:.8rem}.report-undated{align-items:flex-start;gap:8px;display:flex}.report-count{font-weight:600}.report-actions{flex-wrap:wrap;gap:10px;display:flex}.report-message{color:#2d6574;min-height:1.4em}.report-preview{background:#faf8f3;border:1px solid #ddd8cc;border-radius:10px;width:100%;height:900px;display:block}.report-empty{text-align:center;color:#6b7480;border:1px dashed #ccd3dc;border-radius:10px;padding:28px}@media (width<=720px){.report-panel{grid-template-columns:1fr}}.auth-panel{color:#222;background:#fff;border:1px solid #ddd;border-radius:16px;margin:24px 0;padding:24px}.auth-panel form{gap:16px;max-width:520px;display:grid}.auth-panel label{gap:7px;display:grid}.auth-panel input{border:1px solid #bbb;border-radius:8px;width:100%;padding:12px}.auth-panel button{margin-right:8px;padding:10px 16px}.auth-panel code{overflow-wrap:anywhere}.course-one-layout{grid-template-columns:230px 1fr;gap:24px;margin:24px 0;display:grid}.course-one-menu{flex-direction:column;gap:8px;display:flex}.course-one-menu button{text-align:left;background:#fff;border:1px solid #ddd;border-radius:8px;padding:12px}.course-one-menu button.active{color:#fff;background:#274c48}.course-one-reader{background:#fff;border-radius:12px;padding:28px;line-height:1.7}.course-one h3{margin:24px 0 10px}.course-one h4{margin-top:18px}.course-one ul{padding-left:22px}.course-one li{margin:6px 0}.course-one textarea{width:100%;font:inherit;border:1px solid #aaa;border-radius:8px;margin:12px 0;padding:14px;display:block}.course-one .source-japanese{font-size:1.12rem;line-height:1.9}.course-one table{border-collapse:collapse;width:100%}.course-one th,.course-one td{text-align:left;border:1px solid #ddd;padding:9px}.course-one details{margin-top:24px;line-height:1.7}.course-one button:disabled{opacity:.5;cursor:not-allowed}@media (width<=760px){.course-one-layout{grid-template-columns:1fr}.course-one-menu{flex-direction:row;overflow:auto}.course-one-menu button{min-width:170px}.course-one-reader{padding:18px}.top-nav nav{flex-wrap:wrap}}.course-one-part{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.course-one-part-title{color:var(--ink);margin:6px 0 2px;font-weight:700}.course-one-part-title small{color:var(--muted);margin-left:8px;font-weight:400}.course-one-menu button small{opacity:.75;margin-top:2px;font-size:.8rem;display:block}.course-one-tagline{color:var(--muted);font-size:1.05rem}.course-one-note{color:var(--muted);font-size:.9rem}.sentence-filter{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.sentence-filter button{background:#fff;border:1px solid #ccc;border-radius:999px;padding:6px 12px;font-size:.9rem}.sentence-filter button.active{color:#fff;background:#274c48;border-color:#274c48}.sentence-card{background:#fcfcfd;border:1px solid #e1e4ea;border-radius:10px;margin:16px 0;padding:18px 20px}.sentence-card header{color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:.85rem;display:flex}.sentence-no{color:#fff;background:#274c48;border-radius:50%;place-items:center;width:26px;height:26px;font-weight:700;display:inline-grid}.sentence-kind{color:#274c48;background:#eef3f2;border-radius:6px;padding:2px 8px}.sentence-direction{margin-left:auto}.sentence-source{white-space:pre-line;margin:12px 0 6px;font-size:1.08rem;line-height:1.85}.sentence-task{color:#5a4a1e;background:#fbf6e8;border-radius:6px;padding:8px 12px}.sentence-actions{flex-wrap:wrap;gap:10px;display:flex}.sentence-reference{background:#f4f7f6;border-left:3px solid #274c48;margin-top:10px;padding:12px 16px}.sentence-reference p[lang=ja]{font-size:1.06rem;line-height:1.9}.sentence-origin{color:var(--muted);font-size:.85rem}@media (width<=760px){.course-one-part{flex-direction:row;margin-bottom:6px;overflow:auto}.course-one-part-title{min-width:96px}.sentence-card{padding:14px}}.course-one .sentence-card textarea{min-height:84px;margin:8px 0}@media (width<=760px){.course-one .course-one-menu{flex-direction:column;gap:4px;overflow:visible}.course-one .course-one-part{flex-direction:row;align-items:stretch;padding-bottom:4px;overflow-x:auto}.course-one .course-one-part-title{flex:0 0 84px;align-self:center;margin:0;font-size:.9rem}.course-one .course-one-part-title small{margin:0;display:block}.course-one .course-one-menu button{flex:0 0 150px;min-width:0}}
