[hidden]{display:none!important}body{min-width:320px}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}a{color:var(--secondary)}input,textarea,select{width:100%;border:1px solid #b4bfcc;border-radius:12px;padding:12px;color:var(--dark);background:white}label{display:block;font-weight:700;margin-block:12px 6px}textarea{min-height:130px;resize:vertical}fieldset{border:0;margin-block:24px}legend{font-weight:800;margin-bottom:12px}input[type=checkbox],input[type=radio]{width:20px;height:20px;flex-shrink:0;accent-color:var(--primary)}.option{display:flex;align-items:flex-start;gap:12px;border:1px solid #dbe1e8;padding:12px;border-radius:12px;font-weight:500}.option:has(input:checked){background:#fef2f2;border-color:var(--primary)}.panel{background:#fff;padding:32px;border-radius:var(--radius);box-shadow:var(--shadow);margin-block:20px}.login-panel{max-width:570px;margin:0 auto}.login-panel h1,.login-panel h2{color:var(--secondary);margin-bottom:12px}.login-panel .btn{width:100%;margin-top:20px}.notice{background:#fff8e7;border-inline-start:4px solid var(--gold);padding:14px;border-radius:8px;margin-top:18px}.muted{color:#526175;font-size:.9rem}.nav-actions,.button-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.soft-btn{border:1px solid #cbd5e1;background:#fff;color:var(--secondary);padding:10px 16px;border-radius:12px;font-weight:700;min-height:44px}.soft-btn:hover{background:#f1f5f9}.overview-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-block:24px}.metric{background:#fff;padding:24px;border-radius:20px;box-shadow:var(--shadow);border-top:3px solid var(--gold)}.metric strong{display:block;color:var(--secondary);font-size:1.7rem}.metric span{color:#526175}.progress-ring{width:116px;height:116px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--success) calc(var(--progress)*1%),#e2e8f0 0);margin:auto}.progress-ring:before{content:'';background:white;border-radius:50%;width:94px;height:94px;grid-area:1/1}.progress-ring strong{grid-area:1/1;z-index:1}.roadmap{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:14px;list-style:none}.roadmap li{padding:15px 8px;border-radius:12px;background:#f1f5f9;text-align:center;border-top:3px solid #cbd5e1;font-size:.85rem}.roadmap li.completed{border-color:var(--success)}.roadmap li.current{border-color:var(--primary);background:#fef2f2}.roadmap b{display:block;font-size:1.5rem}.skill-card{display:flex;flex-direction:column;cursor:default}.skill-card-body{flex:1;display:flex;flex-direction:column}.skill-card-image{height:165px}.skill-card-title{font-size:1.35rem;display:block}.skill-card-title-jp{display:block;direction:ltr;text-align:right;margin-top:5px}.skill-card-meta{margin-top:auto;gap:10px;flex-wrap:wrap}.skill-card-btn{border:0;min-height:44px}.status-badge{display:inline-block;background:#eef2f7;color:#1e3a5f;border-radius:100px;padding:4px 12px;font-size:.82rem;font-weight:700}.status-badge.completed{background:#d1fae5;color:#065f46}.status-badge.locked{background:#f1f5f9;color:#475569}.skill-meter{width:100%;height:9px;accent-color:var(--success);margin:16px 0}.skill-hero{padding-top:130px}.skill-layout{max-width:1200px;margin:0 auto;padding:25px 20px 60px}.stage-nav{display:flex;gap:8px;flex-wrap:wrap;position:sticky;top:85px;z-index:20;padding:14px;background:#f3f4f6eF;backdrop-filter:blur(8px);border-radius:16px}.stage-nav button{flex:1;min-width:85px;border:1px solid #d1d5db;border-radius:12px;background:#fff;padding:12px;color:#1e3a5f}.stage-nav button[aria-current=true]{background:var(--secondary);color:#fff}.stage-nav button[data-done=true]{border-bottom:4px solid var(--success)}.lesson-body p{margin-block:12px;white-space:pre-line}.lesson-body h3{margin-bottom:14px;color:var(--secondary)}.lesson-picture{display:block;width:100%;max-height:620px;object-fit:contain;border-radius:12px;background:#f8fafc}.lesson-index{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}.lesson-index button{max-width:100%;white-space:normal;font-size:.85rem}.media-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.media-card{background:white;border:1px solid #dbe1e8;border-radius:16px;padding:16px;overflow:hidden}.media-card img{width:100%;height:230px;object-fit:contain;background:#f8fafc}.media-card button{width:100%;margin-top:12px}.media-card h3{font-size:1rem}.video-block{margin:20px 0;padding:22px;border-radius:16px;background:white;border:1px solid #dbe1e8}.video-block video{width:100%;max-height:570px;background:#111;border-radius:12px}.video-block select{max-width:180px}.video-status{margin:12px 0}.stage-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:28px}.stage-footer .btn{border:0}.stage-heading{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:20px}.skill-time{display:flex;justify-content:center;gap:25px;flex-wrap:wrap;font-size:.85rem;margin-top:16px;opacity:.9}dialog{border:0;border-radius:20px;padding:28px;width:min(95vw,1000px);max-height:90vh;margin:auto;box-shadow:var(--shadow-lg);color:var(--dark)}dialog::backdrop{background:#102136bb;backdrop-filter:blur(4px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:20px}dialog img{max-width:100%;max-height:65vh;object-fit:contain;display:block;margin:auto}.zoom-nav{display:flex;justify-content:space-between;align-items:center;margin-top:15px;gap:10px}.toast-error{border-inline-start:5px solid var(--primary);background:#fff}.toast{max-width:min(90vw,480px)}.skip-link{position:fixed;top:-80px;right:15px;z-index:9999;background:white;padding:12px}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.saved{color:#047857;font-weight:700}.error-text{color:#b91c1c;font-weight:700}#loginError{color:#b91c1c}#studentDashboard{padding-top:125px}.footer p{max-width:950px;margin:12px 0}.activity-list{padding-inline-start:24px}.formative-section{margin-top:24px;border-top:1px solid #dbe1e8;padding-top:24px}.formative-section summary{cursor:pointer;font-weight:800;color:var(--secondary);padding:12px}.feedback-box{padding:16px;border-radius:12px;background:#f0fdf4;margin:12px 0}.feedback-box.review{background:#fff7ed}#skillView:focus{outline:none}.hero-title{font-size:clamp(2rem,4vw,3.8rem)}
@media(max-width:850px){.roadmap{grid-template-columns:repeat(3,minmax(0,1fr))}.nav-actions{gap:5px}.nav-actions .soft-btn{font-size:.75rem;padding:8px}.stage-nav{top:78px}.nav-container{padding:12px}.logo-text{font-size:1.1rem}.logo-icon{width:38px;height:38px;font-size:1.4rem}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.panel{padding:22px}.section{padding-block:45px}.hero{padding-top:130px}.hero-container{gap:30px}.hero-visual{min-width:0}.hero-image-container{max-width:100%}.hero-title{line-height:1.6}}
@media(max-width:500px){.skills-grid{grid-template-columns:1fr}.nav-menu.open{padding:20px}.nav-actions #logout{font-size:.7rem}.stage-nav{position:static}.panel{padding:18px}.roadmap{grid-template-columns:repeat(2,minmax(0,1fr))}.overview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.metric{padding:16px}.metric strong{font-size:1.1rem}.hero-visual{display:none}.skill-hero-title{font-size:1.8rem}.skill-layout{padding-inline:14px}.stage-heading{align-items:flex-start;flex-direction:column}dialog{padding:18px}.section-container{padding-inline:16px}.nav-container{flex-wrap:wrap}.hero-buttons{flex-direction:column}.hero-buttons .btn{justify-content:center}.media-grid{grid-template-columns:1fr}}
.login-panel{text-align:center;width:calc(100% - 32px);margin-inline:auto}.login-panel form{display:flex;flex-direction:column;align-items:center;gap:4px}.login-panel label,.login-panel input,.login-panel p{text-align:center}.login-panel input{max-width:420px}.login-panel .btn{width:min(100%,420px);justify-content:center;align-self:center}.login-panel .section-badge{margin-inline:auto}.login-panel input[inputmode=numeric]{direction:ltr;letter-spacing:.12em}.footer{text-align:center}.footer .section-container{margin-inline:auto}.footer h2,.footer p{margin-inline:auto}.footer p{line-height:2.1}.footer [data-setting=RESEARCH_TITLE]{font-size:1.08rem}.login-panel .notice{text-align:center}
.skill-hero{color:white}.skill-hero .skill-time{color:#fff}.lesson-index button[aria-current=step]{background:#1e3a5f;color:white}.toast-container{pointer-events:none}.toast{pointer-events:auto}.lesson-body .image-open{display:block;width:100%;padding:0;border:0}.stage-nav button{font-weight:700}.footer [data-setting=RESEARCHER_NAME]{color:var(--gold);font-weight:700}
@media(max-width:992px){.nav-menu{display:none;transform:none;top:76px}.nav-menu.open{display:flex;transform:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
