:root{font-family:'system-ui',sans-serif;color:#182238;background:#f5f7fb;font-synthesis:none;text-rendering:optimizeLegibility;--muted:#818b9d;--line:#e8ecf3;--blue:#4d66e8;--green:#1e9b78;--surface:#fff}
*{box-sizing:border-box}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 50% -15%,#e7ebff 0,transparent 43%),#f5f7fb}.shell{width:min(100% - 40px,920px);margin:0 auto;padding:24px 0 28px}.topbar,.brand,.header-meta,.hero,.section-heading,.dialog-head{display:flex;align-items:center;justify-content:space-between}.brand{justify-content:flex-start;gap:11px;color:#242f48;font-weight:700;text-decoration:none;letter-spacing:-.2px}.brand-mark{width:32px;height:32px;border-radius:11px;background:#4d66e8;color:white;display:grid;place-items:center;font:800 14px system-ui;letter-spacing:-1px}.header-meta{gap:14px;color:#717d91;font-size:13px}.icon-button{width:38px;height:38px;border:1px solid var(--line);border-radius:12px;background:#fff;color:#45516a;font-size:22px;cursor:pointer}.icon-button:hover{border-color:#bac5e8;color:var(--blue)}.hero{padding:64px 0 33px}.eyebrow{font-size:10px;font-weight:700;letter-spacing:1.45px;color:#919bad}.hero h1{font:800 clamp(42px,8vw,67px)/1.04 system-ui;margin:12px 0 8px;letter-spacing:-3.3px;color:#17213a}.hero p{margin:0;color:#7c8799;font-size:15px}.clock-card{display:flex;flex-direction:column;gap:5px;padding:16px 20px;background:#fff;border:1px solid var(--line);border-radius:18px;min-width:112px}.clock-label{font-size:10px;letter-spacing:1px;font-weight:700;color:#919bad}.clock-card strong{font:700 28px system-ui;letter-spacing:-1px}.status-card{background:linear-gradient(120deg,#293b80,#4059bd 67%,#6478da);border-radius:22px;padding:27px 30px;color:white;display:flex;align-items:center;gap:30px;min-height:167px;box-shadow:0 15px 36px #4559ac26}.status-main{flex:1}.status-badge{display:inline-flex;border-radius:999px;background:#ffffff20;padding:6px 9px;font-size:9px;font-weight:700;letter-spacing:1px}.status-card h2{font:700 clamp(23px,4vw,31px) system-ui;letter-spacing:-.7px;margin:12px 0 5px}.status-card p{color:#e1e5ff;margin:0;font-size:14px}.remaining{text-align:right;min-width:103px}.remaining strong{display:block;font:700 38px system-ui;letter-spacing:-2px}.remaining span{font-size:11px;color:#d8deff}.status-next{display:flex;flex-direction:column;gap:7px;border-left:1px solid #ffffff35;padding-left:22px;min-width:156px}.status-next span{font-size:9px;font-weight:700;letter-spacing:1px;color:#d2d9ff}.status-next strong{font-size:15px}.status-next small{color:#d2d9ff}.notice{margin:15px 0 0;background:#fff7e8;color:#886116;border:1px solid #f1dfb8;padding:11px 14px;border-radius:12px;font-size:13px}.section-heading{margin:37px 0 14px}.section-heading h2,.dialog-head h2{font:700 22px system-ui;letter-spacing:-.5px;margin:5px 0 0}.text-button{border:0;background:transparent;color:var(--blue);font:600 13px 'system-ui';cursor:pointer}.text-button span{font-size:16px;margin-left:4px}.lesson-list{display:flex;flex-direction:column;gap:9px}.lesson-row{display:grid;grid-template-columns:49px minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px 17px;background:#fff;border:1px solid var(--line);border-radius:15px;transition:border-color .15s,transform .15s}.lesson-row.is-current{border-color:#8796ed;box-shadow:0 5px 18px #5469cb13}.lesson-row.is-next{border-color:#a8d8ca}.lesson-number{width:39px;height:39px;display:grid;place-items:center;border-radius:13px;background:#f1f3ff;color:#5468d4;font-weight:700;font-size:13px}.lesson-row.is-current .lesson-number{background:#e8ebff}.lesson-row.is-break .lesson-number{background:#f1f3f6;color:#8790a0}.lesson-name{font-weight:700;font-size:14px;color:#28334b}.lesson-sub{color:#929bad;font-size:11px;margin-top:5px}.lesson-time{text-align:right;font-size:12px;font-weight:600;color:#657187;white-space:nowrap}.empty{padding:23px;background:#fff;border:1px solid var(--line);border-radius:15px;color:#788398;text-align:center;font-size:14px}footer{display:flex;justify-content:space-between;color:#9aa3b2;font-size:10px;padding:23px 2px 0}.schedule-dialog{width:min(92vw,620px);max-height:85vh;border:0;border-radius:22px;padding:24px;background:#f8f9fc;color:#182238;box-shadow:0 24px 90px #16204445}.schedule-dialog::backdrop{background:#19213b72;backdrop-filter:blur(3px)}.dialog-head{margin-bottom:19px}.week-list{display:grid;gap:10px}.week-day{background:#fff;border:1px solid var(--line);border-radius:14px;padding:15px}.week-day-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.week-day-head strong{font-size:14px}.week-day-head span{font-size:10px;color:#919bad}.week-items{display:flex;flex-wrap:wrap;gap:7px}.week-item{padding:7px 9px;border-radius:8px;background:#f3f5fa;font-size:11px;color:#59657a}.week-item b{color:#29354f;margin-right:5px}.week-empty{color:#9ca5b4;font-size:12px}@media(max-width:600px){.shell{width:min(100% - 28px,920px);padding-top:15px}.hero{padding:45px 0 24px}.clock-card{min-width:88px;padding:12px 13px}.clock-card strong{font-size:23px}.status-card{padding:22px 20px;display:grid;grid-template-columns:1fr auto;gap:16px}.status-main{grid-column:1/-1}.remaining{grid-column:1;grid-row:2;text-align:left}.status-next{grid-column:2;grid-row:2;min-width:0;padding-left:16px}.lesson-row{grid-template-columns:42px minmax(0,1fr);padding:12px}.lesson-time{grid-column:2;text-align:left;color:#939caf;font-weight:500}.lesson-number{width:36px;height:36px}footer{gap:10px;flex-direction:column}.header-meta{font-size:11px}}

html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{padding-bottom:env(safe-area-inset-bottom)}button{touch-action:manipulation}
@media(max-width:600px){.shell{width:calc(100% - 24px);padding-top:max(12px,env(safe-area-inset-top))}.topbar{min-height:42px}.brand{font-size:12px;gap:8px}.brand-mark{width:30px;height:30px;border-radius:10px}.header-meta{gap:7px}.header-meta>span{max-width:95px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-button{width:42px;height:42px;flex:0 0 42px}.hero{padding:37px 0 20px;align-items:flex-end;gap:8px}.hero h1{font-size:clamp(40px,13vw,57px);letter-spacing:-2.6px;overflow-wrap:anywhere}.hero p{font-size:13px}.clock-card{min-width:79px;padding:10px 11px;border-radius:14px}.clock-card strong{font-size:21px}.status-card{border-radius:18px;padding:19px 17px;gap:14px;min-height:150px}.status-card h2{font-size:clamp(21px,6vw,28px);margin:10px 0 4px}.status-card p{font-size:12px}.remaining strong{font-size:34px}.status-next{padding-left:12px;min-width:125px}.status-next strong{font-size:13px}.status-next small{font-size:10px}.section-heading{margin:29px 0 12px}.section-heading h2{font-size:20px}.text-button{min-height:42px;padding:8px 0 8px 8px}.lesson-list{gap:8px}.lesson-row{min-height:69px;gap:10px;border-radius:13px;padding:11px}.lesson-name{font-size:13px;overflow-wrap:anywhere}.lesson-sub{font-size:10px}.lesson-time{font-size:11px}.schedule-dialog{position:fixed;inset:auto 0 0;margin:0;width:100%;max-width:none;max-height:min(90dvh,820px);border-radius:22px 22px 0 0;padding:20px 15px calc(18px + env(safe-area-inset-bottom));overflow:auto;overscroll-behavior:contain}.dialog-head{position:sticky;top:-20px;background:#f8f9fc;padding:3px 0 12px;z-index:1}.week-day{padding:13px;border-radius:13px}.week-items{gap:6px}.week-item{font-size:10px;padding:7px 8px}.notice{font-size:12px;line-height:1.45}.empty{text-align:left}.clock-label{font-size:9px}}
@media(max-width:360px){.shell{width:calc(100% - 20px)}.brand>span:last-child{max-width:103px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.header-meta>span{max-width:75px}.hero{padding-top:30px}.status-card{padding:17px 14px}.status-next{min-width:115px}.status-next span{font-size:8px}}
.class-choice{width:auto;max-width:140px;min-height:40px;padding:7px 25px 7px 9px;border-radius:11px;font-size:11px;font-weight:600;color:#58657c}
@media(max-width:600px){.class-choice{max-width:93px;min-height:42px;padding:7px 20px 7px 7px;font-size:10px}.header-meta{gap:6px}}
@media(max-width:360px){.class-choice{max-width:78px}}
.lesson-row.is-free .lesson-number{background:#eaf8f4;color:#319b7b}
