:root{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC",sans-serif;color:#253a35;background:#f6f7f2;font-synthesis:none;--green:#244d43;--muted:#74837b;--line:#e1e6dc;--paper:#fffef9}*{box-sizing:border-box}html,body{touch-action:manipulation}body{margin:0}button,input,a{touch-action:manipulation}button,input{font:inherit}button,a{ -webkit-tap-highlight-color:transparent}button{cursor:pointer;min-height:44px;border:0;border-radius:12px;padding:11px 18px;background:#e8ece2;color:inherit;font-weight:600}button:disabled{opacity:.48;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:3px solid #aac078;outline-offset:4px}a{color:inherit;text-decoration:none}[hidden]{display:none!important}.topbar{max-width:1120px;margin:auto;padding:28px 40px 22px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--line)}.brand{font-size:30px;font-weight:850;letter-spacing:-1.3px;white-space:nowrap}.brand>span:first-child{color:#95a64d}.brand-note{margin-left:13px;font-size:12px;letter-spacing:2px;font-weight:500;color:var(--muted)}nav{display:flex;gap:5px;margin-left:auto}.nav-button,.quiet{background:transparent;color:var(--muted);font-size:14px}.nav-button.active{color:var(--green);background:#e4ebdb}.quiet{padding-inline:12px}main{max-width:1040px;padding:44px 0 20px;margin:auto;min-height:calc(100vh - 210px)}footer{max-width:1040px;margin:36px auto 0;border-top:1px solid var(--line);padding:23px 0 30px;color:var(--muted);font-size:12px;display:flex;justify-content:space-between}h1,h2,h3,p{margin-top:0}h1{font-size:36px;letter-spacing:-1px;margin-bottom:12px;line-height:1.25}h2{font-size:24px;line-height:1.3}h3{font-size:18px}.eyebrow{font-size:11px;font-weight:750;letter-spacing:2px;color:#7b8864;margin-bottom:14px}.muted{color:var(--muted);font-size:14px;line-height:1.75}.lead{font-size:15px;line-height:1.8;color:#728077}.page-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;gap:16px}.page-heading h1{font-size:30px}.primary{background:var(--green);color:white;box-shadow:0 4px 10px #244d4310}.secondary{background:#e6ecd9;color:var(--green)}.hero{display:grid;grid-template-columns:1.3fr 1fr;gap:20px;background:#e8eedf;border:1px solid #dce4d1;border-radius:24px;padding:40px;margin:26px 0}.hero-copy{align-self:center}.hero h2{font-size:31px;max-width:440px;margin-bottom:14px}.hero .primary{margin-top:12px;min-width:184px}.house-art{min-height:210px;position:relative;display:flex;justify-content:center;align-items:center;overflow:hidden}.house-art svg{width:300px;max-width:100%;height:auto}.tag{display:inline-block;font-size:12px;padding:6px 11px;border:1px solid #cad4b9;border-radius:7px;margin:0 7px 15px 0;color:#627351;background:#f6f8ef}.summary-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}.summary-card,.card{padding:24px;background:var(--paper);border:1px solid var(--line);border-radius:18px}.summary-card strong{font-size:27px;font-weight:650;display:block;margin:10px 0 4px}.summary-card p{margin:0;font-size:13px;color:var(--muted)}.small-label{font-size:12px;color:var(--muted)}.section-label{display:flex;align-items:center;justify-content:space-between;margin:32px 0 14px}.section-label h2{font-size:18px;margin:0}.step-line{display:flex;gap:24px;align-items:center;color:#778073;font-size:13px;margin-top:22px}.step-line b{color:var(--green);padding:4px 8px;border:1px solid #bfcbb2;border-radius:50%;margin-right:6px;font-size:11px}.course-list{display:grid;gap:12px}.course-row{display:flex;gap:20px;align-items:center;background:var(--paper);border:1px solid var(--line);border-radius:16px;padding:20px 24px}.course-number{width:42px;height:42px;flex-shrink:0;border-radius:12px;display:grid;place-items:center;background:#e9efde;color:#73845a;font-size:14px;font-weight:700}.course-info{flex:1}.course-info h3{margin:0 0 5px}.course-info p{margin:0}.course-row.locked{background:#f1f3ed}.badge{font-size:11px;padding:5px 8px;border-radius:6px;display:inline-block;background:#eef1e8;color:#6c795f}.course-action{min-width:84px}.login{max-width:440px;margin:5vh auto;text-align:center}.login h1{font-size:31px}.login form{text-align:left;margin-top:28px}.login label{display:block;font-size:13px;margin-bottom:9px}.login input{display:block;width:100%;padding:14px;border:1px solid #ccd5c7;border-radius:10px;margin-bottom:20px;background:white;min-height:50px}.login .primary{width:100%}.error{color:#9e4d3a;font-size:14px;line-height:1.6}.success{color:var(--green)}#notice{position:fixed;bottom:28px;left:50%;transform:translateX(-50%);background:#263e37;color:white;border-radius:12px;box-shadow:0 8px 24px #0002;padding:14px 22px;z-index:100;max-width:90vw;font-size:14px}.back{padding-left:0;margin-bottom:16px}.player-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:18px}.player-heading h1{font-size:26px;margin:0 0 7px}.player-heading p{margin:0}.player-stage{background:#101b19;aspect-ratio:16/9;border-radius:18px;overflow:hidden;position:relative;isolation:isolate;color:white;touch-action:manipulation}.player-stage video{width:100%;height:100%;object-fit:contain;display:block}.video-hit{position:absolute;inset:0;background:transparent;padding:0;border-radius:0;width:100%;height:100%;z-index:1}.big-play{width:72px;height:72px;border:1px solid #ffffff70;border-radius:50%;background:#152922a8;display:grid;place-items:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:25px;pointer-events:none}.video-title{position:absolute;left:24px;right:24px;top:22px;z-index:2;pointer-events:none;text-shadow:0 1px 5px #000;font-size:14px}.video-controls{position:absolute;bottom:0;left:0;right:0;padding:35px 22px 15px;background:linear-gradient(transparent,#061712ed);z-index:3;display:flex;align-items:center;gap:12px}.video-controls button{background:#ffffff16;color:white;font-size:17px;padding:8px 13px;min-width:44px}.video-controls input{flex:1;width:0;min-width:60px;accent-color:#d4e889;height:44px;touch-action:none}.video-time{font-size:12px;white-space:nowrap;font-variant-numeric:tabular-nums}.controls-hidden .video-controls,.controls-hidden .video-title{opacity:0;pointer-events:none}.video-controls,.video-title{transition:opacity .2s}.buffer{pointer-events:none;position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#101b1940;z-index:2}.buffer span{padding:10px 16px;border-radius:10px;background:#10221fcb;font-size:14px}.player-stage:fullscreen,.player-stage.theater{width:100vw;height:100dvh;aspect-ratio:auto;border-radius:0}.player-stage.theater{position:fixed;inset:0;z-index:80}.player-stage:fullscreen .video-controls,.player-stage.theater .video-controls{padding-bottom:max(20px,env(safe-area-inset-bottom));padding-inline:max(22px,env(safe-area-inset-left))}.player-bottom{display:flex;align-items:center;gap:24px;margin-top:18px}.watch-info{flex:1}.watch-info progress{width:100%;height:6px;accent-color:#52734b}.watch-info p{margin:7px 0 0}.save-error{border:1px solid #e5b4a4;background:#fff3ed;border-radius:12px;padding:16px;margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:14px}.quiz-list{display:grid;gap:20px}.question-top{display:flex;align-items:center;gap:10px;margin-bottom:16px}.question-top .muted{margin-left:auto}.question h2{font-size:20px;line-height:1.65;margin-bottom:20px;font-weight:600}.options{display:grid;grid-template-columns:1fr 1fr;gap:12px}.option{text-align:left;background:#f7f8f2;border:1px solid #dfe4d8;font-weight:500;line-height:1.5;display:flex;align-items:center;gap:14px;min-height:64px}.option>span:first-child{font-size:12px;font-weight:700;display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e9edde;flex-shrink:0}.option.chosen{border-color:#6b8853;background:#edf3e4}.option.wrong{border-color:#ce9e86;background:#fff4ed}.option:disabled{opacity:1}.feedback{border-top:1px solid var(--line);margin:18px 0 0;padding-top:16px;font-size:14px;line-height:1.7}.feedback p{margin:0 0 6px}.finish-card{margin-bottom:22px;background:#e8efdb;border-color:#ccd7b9}.finish-card h2{margin-bottom:8px}.calendar-layout{display:grid;grid-template-columns:1.5fr 1fr;gap:22px;align-items:start}.month-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.month-head h2{font-size:21px;margin:0}.month-head button{padding:10px 15px;background:transparent;font-size:20px}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}.weekdays span{text-align:center;font-size:12px;color:var(--muted);padding:10px 0}.calendar-day{min-height:66px;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:7px 1px;gap:5px;border-radius:10px;position:relative;font-weight:500}.calendar-day small{font-size:9px;white-space:nowrap}.calendar-day.today:after{content:"";position:absolute;top:5px;right:6px;width:4px;height:4px;border-radius:50%;background:currentColor}.calendar-day.selected{outline:2px solid #4f6752;outline-offset:1px}.complete{background:#dfedda;color:#436737}.makeup{background:#dce9f6;color:#3a6490}.partial{background:#f8e8ce;color:#9b6c22}.absent{background:#f8e6e1;color:#b2796b}.makeup-only{background:#eee3f4;color:#806096}.unplanned,.todo{background:#eff1eb;color:#99a08f}.legend{display:flex;flex-wrap:wrap;gap:10px 16px;margin-top:19px;font-size:11px;color:#74806e}.legend span{display:flex;align-items:center;gap:5px}.legend i{width:8px;height:8px;border-radius:3px}.day-details h2{font-size:19px}.day-details h3{font-size:15px;line-height:1.6;margin:18px 0 9px}.detail-line{font-size:12px;line-height:1.9;color:#75816e}.answer-detail{border-top:1px solid var(--line);padding-top:12px;margin-top:12px;font-size:12px;line-height:1.7}.answer-detail p{margin:4px 0}.empty{text-align:center;padding:40px 20px}.loading-page{text-align:center;margin-top:80px;color:var(--muted)}
@media(max-width:1120px){main,footer{margin-left:40px;margin-right:40px}.topbar{padding-inline:40px}}@media(max-width:760px){.topbar{padding:20px;gap:8px;flex-wrap:wrap}.brand{font-size:26px}.brand-note{font-size:10px}nav{order:3;width:100%;margin:12px 0 0;border-top:1px solid var(--line);padding-top:10px;justify-content:space-between}#logout{margin-left:auto}main{margin:0;padding:26px 20px 12px}footer{margin:20px;font-size:10px;gap:10px}.hero{padding:25px;grid-template-columns:1fr;margin-top:20px}.hero h2{font-size:28px}.house-art{display:none}.summary-grid{gap:8px}.summary-card{padding:17px 12px}.summary-card strong{font-size:23px}.summary-card p{font-size:11px}.step-line{gap:10px;font-size:11px}.course-row{padding:16px 12px;gap:12px}.course-info h3{font-size:15px}.course-info p{font-size:11px}.course-number{width:33px;height:36px}.course-action{min-width:62px;padding:9px 12px;font-size:12px}.calendar-layout{grid-template-columns:1fr}.calendar-card{padding:16px}.calendar-day{min-height:58px}.options{grid-template-columns:1fr}.player-heading h1{font-size:21px}.player-stage{margin-inline:-20px;border-radius:0}.video-controls{padding:25px 10px 8px;gap:6px}.video-time{font-size:10px}.video-controls button{padding:8px}.video-title{top:10px;left:12px}.player-bottom{align-items:stretch;flex-direction:column;gap:14px}.card{padding:20px}.login{margin-top:24px}.page-heading h1{font-size:26px}h1{font-size:30px}.big-play{width:58px;height:58px;font-size:20px}}
