html,body,#root{min-height:100%;overflow-x:clip}body{background:linear-gradient(135deg,#f9f8f5 0%,#faf8f4 100%);margin:0}:root{--page:min(100% - 24px, 920px)}@media (width>=1100px){:root{--page:min(100% - 48px, 1360px)}}@media (width>=1440px){:root{--page:min(100% - 64px, 1680px)}}.site-layout{min-height:100vh;overflow-x:clip}.site-layout>.ant-layout-content{min-width:0;display:flex}.wrap{width:var(--page);min-width:0;margin:0 auto}.site-header.ant-layout-header{z-index:20;height:auto;box-shadow:none;background:linear-gradient(#f9f8f5f5,#f9f8f5c7 72%,#f9f8f500);border-bottom:0;padding:12px 0 10px;line-height:1;position:sticky;top:0}.header-bar{width:var(--page);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fffdf8eb;border:1px solid #e4dccbf2;border-radius:22px;justify-content:space-between;align-items:center;gap:12px;min-height:58px;margin:0 auto;padding:7px 8px 7px 12px;display:flex;box-shadow:0 10px 28px #4634180f}.header-tools{justify-content:flex-end;align-items:center;gap:10px;min-width:0;display:flex}.header-nav{background:#f7f3ea;border:1px solid #eadfce;border-radius:999px;align-items:center;gap:2px;min-width:0;padding:3px;display:flex}.header-link,.header-logout{color:#6d675c;font:inherit;cursor:pointer;background:0 0;border:0}.header-link{border-radius:999px;min-width:58px;height:32px;padding:0 12px;font-size:14px}.header-link.is-current{color:#fffdf8;background:#2f6f5e;box-shadow:0 4px 10px #2f6f5e2e}.header-link:hover:not(.is-current),.header-logout:hover{color:#1b1914}.header-account{border-left:1px solid #eadfce;align-items:center;gap:2px;min-width:0;padding-left:8px;display:flex}.header-name{color:#6d675c;text-overflow:ellipsis;white-space:nowrap;max-width:6em;padding:0 8px;font-size:13px;overflow:hidden}.header-logout{border-radius:999px;padding:6px 8px;font-size:13px}.header-login{color:#fffdf8;height:34px;font:inherit;cursor:pointer;background:#2f6f5e;border:0;border-radius:999px;flex:none;margin-left:auto;padding:0 14px;font-size:14px;font-weight:650;box-shadow:0 4px 10px #2f6f5e2e}.header-login:hover{color:#fffdf8;background:#24574a}.brand{color:#1b1914;align-items:center;gap:10px;min-width:0;text-decoration:none;display:flex}.brand-mark{color:#fffdf8;background:#234f43;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-family:Iowan Old Style,Palatino,Songti SC,Noto Serif CJK SC,serif;font-size:16px;display:grid;box-shadow:inset 0 0 0 1px #fffdf847}.brand-text{flex-direction:column;gap:2px;min-width:0;line-height:1;display:flex}.brand-text strong{font-family:Iowan Old Style,Palatino,Songti SC,Noto Serif CJK SC,serif;font-size:18px;font-weight:600}.brand-text small{color:#8a8174;letter-spacing:.16em;font-size:11px}.brand:hover .brand-text strong{color:#2f6f5e}.hero{padding:80px 0 48px;animation:.8s ease-out fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.hero-title{overflow-wrap:anywhere;letter-spacing:-.02em;color:#1b1914;max-width:100%;margin:0 0 24px;font-size:clamp(32px,7vw,56px);font-weight:600;line-height:1.2}.hero-desc{color:#6d675c;max-width:34rem;margin:0;font-size:18px;line-height:1.75}.copy-block,.tool-heading p,.wallet-switch p,.empty-note,.table-note,.hero-desc,.site-footer span{text-wrap:pretty}.tool-heading p,.wallet-switch p,.empty-note,.copy-meta{color:#6d675c;max-width:32rem;margin:8px 0 0;font-size:15px;line-height:1.7}.copy-block h3{color:#1b1914;margin:0 0 12px;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:28px;font-weight:600;line-height:1.2}.copy-rules{gap:8px;margin:0 0 16px;padding:0;list-style:none;display:grid}.copy-rules li{border-bottom:1px solid #f0e8da;grid-template-columns:4.5em minmax(0,1fr);align-items:baseline;gap:12px;padding-bottom:8px;display:grid}.copy-rules span{color:#8a8174;font-size:13px}.copy-rules b{color:#1b1914;font-weight:650}.copy-date{color:#1b1914;font-size:16px}.section{padding:12px 0 48px}.note-copy{color:#6d675c;max-width:38rem;margin-bottom:0;font-size:16px;line-height:1.8}.entry-card{color:#1b1914;text-align:left;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:16px;justify-content:space-between;align-items:center;gap:16px;width:100%;padding:22px 24px;display:flex;box-shadow:0 2px 12px #0000000f}.entry-card strong,.entry-card em{font-style:normal;display:block}.entry-card strong{margin-bottom:6px;font-size:20px}.entry-card em{color:#6d675c;line-height:1.6}.entry-card:hover{border-color:#2f6f5e;transform:translateY(-2px)}.voice-page{flex-direction:column;width:100%;min-width:0;padding:12px 0 180px;display:flex}.talk-dock{left:50%;bottom:calc(16px + env(safe-area-inset-bottom));z-index:30;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed;transform:translate(-50%)}.talk-dock .talk-button,.talk-dock .recording-indicator{pointer-events:auto}.voice-title{overflow-wrap:anywhere;max-width:100%;margin:4px 0 8px;font-size:clamp(28px,6vw,40px)}.cap-tags{flex-wrap:wrap;gap:8px;margin:16px 0 4px;display:flex}.cap-tag{color:#2f6f5e;background:#f3efe6;border-radius:999px;padding:4px 10px;font-size:13px}.cap-card,.demo-card{height:100%}.demo-card{margin-top:24px}.voice-chat{flex-direction:column;gap:16px;display:flex}.bubbles{flex-direction:column;gap:12px;min-height:180px;display:flex}.bubbles-container{scroll-behavior:smooth;flex-direction:column;gap:12px;min-height:140px;max-height:min(42vh,360px);padding:12px 0;display:flex;overflow:hidden auto}.empty-chat{color:#6d675c;text-align:center;margin:48px 0}.state-indicator{border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.state-indicator.state-listening{color:#1fc2a7;background:#1fc2a71a}.state-indicator.state-thinking{color:#ffc107;background:#ffc1071a}.state-indicator.state-speaking{color:#4caf50;background:#4caf501a}.state-icon{font-size:18px;animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.recording-indicator{color:#2f6f5e;background:#2f6f5e14;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:12px 16px;font-size:14px;font-weight:500;display:flex}.recording-pulse{background:#2f6f5e;border-radius:50%;width:8px;height:8px;animation:1.2s ease-in-out infinite recordingPulse}@keyframes recordingPulse{0%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.2)}to{opacity:1;transform:scale(1)}}.bubble{overflow-wrap:anywhere;word-break:break-word;border-radius:16px;max-width:85%;padding:12px 16px;line-height:1.7;animation:.3s ease-out bubbleIn}@keyframes bubbleIn{0%{opacity:0;transform:translateY(8px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.think-live{color:#6d675c;white-space:pre-wrap;margin:0 0 8px;font-size:13px;line-height:1.5}.think-steps{color:#6d675c;margin:0 0 8px;padding-left:18px;font-size:13px;line-height:1.5}.bubble p{margin:0}.bubble-time{opacity:.7;margin-top:6px;font-size:12px;display:block}.bubble.user{color:#fffdf8;background:linear-gradient(135deg,#2f6f5e 0%,#1f5a4a 100%);align-self:flex-end;box-shadow:0 4px 12px #2f6f5e33}.bubble.user .bubble-time{color:#fffdf8cc}.bubble.assistant{color:#1b1914;background:#f3efe6;align-self:flex-start;box-shadow:0 2px 8px #0000000f}.bubble.assistant .bubble-time{color:#6d675c}.thinking-bubble{align-self:flex-start!important}.thinking-dot{margin:0 2px;animation:1.4s ease-in-out infinite thinking;display:inline-block}.thinking-dot:nth-child(2){animation-delay:.2s}.thinking-dot:nth-child(3){animation-delay:.4s}@keyframes thinking{0%,60%,to{opacity:.5;transform:translateY(0)}30%{opacity:1;transform:translateY(-8px)}}.voice-controls{flex-direction:column;align-items:center;gap:12px;width:100%;min-width:0;display:flex}.voice-select{color:#6d675c;flex-direction:column;gap:8px;width:100%;min-width:0;max-width:100%;margin:0;font-size:14px;display:flex}.voice-group{grid-template-columns:3em minmax(0,1fr);align-items:center;gap:8px;width:100%;min-width:0;display:grid}.voice-group>span{color:#8b8077;font-size:13px}.voice-options{flex-wrap:wrap;gap:8px;width:100%;min-width:0;display:flex}.voice-options button{color:#1b1914;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:999px;max-width:100%;min-height:40px;padding:6px 12px;font-size:14px}.voice-options button.on{color:#fffdf8;background:#2f6f5e;border-color:#2f6f5e}.voice-options button:disabled{cursor:default;opacity:.7}.talk-button{touch-action:none;-webkit-user-select:none;user-select:none;color:#fffdf8;cursor:pointer;background:#2f6f5e;border:0;border-radius:50%;flex-direction:column;flex:none;justify-content:center;align-self:center;align-items:center;gap:6px;width:clamp(104px,28vw,132px);height:clamp(104px,28vw,132px);font-size:16px;transition:transform .15s,box-shadow .15s,background .15s;display:flex;box-shadow:0 12px 28px #2f6f5e47}.talk-button:hover:not(:disabled){transform:translateY(-2px)}.talk-button:active:not(:disabled){transform:scale(.98)}.talk-button .anticon{font-size:32px}.talk-button.listening{background:#1f8a72}.talk-button.thinking{background:#8a6a2f}.talk-button.speaking{background:#24574a}.talk-button:disabled{cursor:default;opacity:.85}.talk-button:focus-visible,.voice-options button:focus-visible{outline-offset:3px;outline:3px solid #2f6f5e}.transcript{border-top:1px solid #e4dccb;margin-top:20px;padding-top:16px}.transcript span{color:#6d675c;font-size:13px}.transcript p{margin:8px 0 0;font-size:18px;line-height:1.7}.site-footer.ant-layout-footer{color:#f3efe6;border-top:1px solid #e4dccb33;margin-top:80px;padding:40px 0}.footer-inner{width:var(--page);justify-content:space-between;margin:0 auto;display:flex}@media (width<=767px){.wrap{width:min(100% - 24px,920px)}.site-header.ant-layout-header{padding:8px 0 6px}.header-bar{border-radius:18px;min-height:52px;padding:5px 6px 5px 8px}.brand-text small,.header-name{display:none}.header-login{justify-content:center;align-items:center;min-width:64px;display:inline-flex}.auth-page{padding-top:4px}.auth-form .ant-btn{width:100%}#login-form{scroll-margin-top:84px}.header-account{padding-left:4px}.header-link{min-width:46px;padding:0 8px;font-size:13px}.hero{padding:32px 0 20px}.hero-title{margin-bottom:12px;font-size:clamp(28px,8vw,40px)}.hero-desc{font-size:16px}.entry-card{padding:16px}.voice-title{font-size:clamp(26px,7vw,34px)}.bubbles-container{max-height:min(36vh,280px)}.talk-button{width:112px;height:112px;font-size:15px}.site-footer.ant-layout-footer{margin-top:32px;padding:24px 12px}.footer-inner{flex-direction:column;gap:8px;width:min(100% - 24px,920px)}}.auth-page,.account-page,.schedule-page{padding:12px 0 48px}.account-page{max-width:720px}.account-page .schedule-title{margin:0 0 8px}.account-form{margin-top:18px}.auth-switch{gap:8px;margin-bottom:16px;display:flex}.auth-switch button,.mini-talk,.suggestion,.chip-actions button{color:#1b1914;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:999px}.auth-switch button{padding:6px 14px}.auth-switch button.on,.mini-talk.on{color:#fffdf8;background:#2f6f5e;border-color:#2f6f5e}.auth-form,.lesson-form{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.auth-form{grid-template-columns:1fr}.auth-form label,.lesson-form label{color:#6d675c;flex-direction:column;gap:6px;font-size:14px;display:flex}.auth-form input,.lesson-form input,.lesson-form select,.schedule-tools textarea,.command-row input{box-sizing:border-box;color:#1b1914;width:100%;font:inherit;background:#fffdf8;border:1px solid #e4dccb;border-radius:10px;padding:10px 12px;font-size:16px}.schedule-tools textarea{resize:vertical;min-height:96px;margin-bottom:12px}.lesson-form .wide,.form-actions{grid-column:1/-1}.form-actions,.command-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.wrap.wrap-wide{width:var(--page)}@media (width>=1100px){.hero{grid-template-columns:minmax(0,1.15fr) minmax(280px,.85fr);align-items:end;gap:40px;padding-top:56px;display:grid}.hero-desc{max-width:none}.auth-page{max-width:560px;margin-inline:auto}}.schedule-page{padding-bottom:28px}.back-link{color:#6d675c;font:inherit;cursor:pointer;background:0 0;border:0;margin:0 0 10px;padding:0;font-size:14px}.back-link:hover,.wallet-hide:hover{color:#2f6f5e}.schedule-hero{grid-template-columns:minmax(0,1fr) minmax(220px,320px);align-items:stretch;gap:18px;margin-bottom:18px;display:grid}.schedule-hero.is-compact{grid-template-columns:minmax(0,1fr);gap:10px;margin-bottom:12px}.schedule-title-row{flex-wrap:wrap;align-items:center;gap:12px 16px;display:flex}.schedule-title-row .schedule-title{font-size:clamp(32px,4vw,44px)}.schedule-title-row .board-switch{margin:0}.status-line{background:#fffdf8;border:1px solid #e4dccb;border-radius:16px;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:0;padding:10px 14px;display:flex}.status-line span{color:#2f6f5e;font-size:13px;font-weight:700}.status-line strong{color:#1b1914;font-size:18px}.status-line b{background:#f3efe6;border-radius:999px;padding:2px 8px;font-size:13px}.status-line em{color:#6d675c;font-size:14px;font-style:normal}.status-line.live{color:#fffdf8;background:#234f43;border-color:#234f43}.status-line.live span,.status-line.live strong,.status-line.live em,.status-line.live b{color:#fffdf8}.status-line.live b{background:#fffdf829}.status-line .status-progress{background:#2f6f5e26;flex:120px;min-width:80px;margin:0}.status-line.live .status-progress{background:#fffdf833}.status-line .status-progress em{background:#2f6f5e;height:100%;display:block}.status-line.live .status-progress em{background:#f3efe6}.nearby-actions{background:#fffdf8;border:1px solid #e4dccb;border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;margin-top:12px;padding:12px 14px;display:flex}.nearby-actions strong,.nearby-actions span{display:block}.nearby-actions span{color:#6d675c;font-size:13px}.drag-ghost{z-index:40;color:#fffdf8;pointer-events:none;background:#234f43;border-radius:12px;padding:8px 12px;font-weight:700;position:fixed;transform:translate(-50%,-130%);box-shadow:0 10px 24px #234f4347}.course-cell.is-dragging,.day-lesson.is-dragging{opacity:.35}.course-cell.is-drop,.day-lesson.is-drop{outline-offset:-3px;background:#2f6f5e1a;outline:2px dashed #2f6f5e}.course-cell.is-drop-bad,.day-lesson.is-drop-bad{outline-offset:-3px;background:#a33b3214;outline:2px dashed #a33b32}.course-cell:not(.empty),.day-lesson:not(.empty){touch-action:none;cursor:grab}.month-dots{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:none}.month-dots button{color:#1b1914;min-height:46px;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #0000;border-radius:12px;flex-direction:column;align-items:center;gap:2px;padding:6px 0;display:flex}.month-dots button.on,.month-dots button.is-today{border-color:#2f6f5e}.month-dots button.on{color:#fffdf8;background:#2f6f5e}.month-dots i{color:#2f6f5e;letter-spacing:1px;min-height:12px;font-size:10px;font-style:normal}.month-dots button.on i{color:#fffdf8}.schedule-kicker{color:#2f6f5e;letter-spacing:.18em;margin:0 0 8px;font-size:12px;font-weight:700}.schedule-title{color:#1b1914;letter-spacing:-.04em;margin:0;font-family:Iowan Old Style,Palatino,Songti SC,Noto Serif CJK SC,serif;font-size:clamp(40px,6vw,64px);font-weight:600;line-height:.95}.schedule-hero .hero-desc{flex-direction:column;gap:4px;margin-top:12px;font-size:15px;display:flex}.schedule-hero .hero-desc span{color:#8a8174;font-size:13px}.stat-row{flex-wrap:wrap;gap:22px;margin-top:22px;display:flex}.stat-row p{margin:0}.stat-row b{color:#1b1914;font-variant-numeric:tabular-nums;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:28px;line-height:1;display:block}.stat-row span{color:#6d675c;font-size:12px}.status-card{background:radial-gradient(circle at 100% 0,#2f6f5e1f,#0000 42%),#fffdf8;border:1px solid #e4dccb;border-radius:22px;flex-direction:column;justify-content:flex-end;gap:6px;min-height:168px;padding:18px;display:flex;box-shadow:0 12px 32px #4634180d}.status-card p,.status-card span{margin:0}.status-card p{color:#2f6f5e;letter-spacing:.08em;font-size:13px;font-weight:700}.status-card strong{color:#1b1914;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:32px;line-height:1.1}.status-card span{color:#6d675c;line-height:1.5}.status-room{color:#1b1914;background:#f3efe6;border-radius:999px;align-self:flex-start;margin-top:6px;padding:4px 10px;font-size:14px}.status-card.live{color:#fffdf8;background:radial-gradient(circle at 100% 0,#fffdf829,#0000 40%),#234f43;border-color:#234f43}.status-card.live p,.status-card.live strong,.status-card.live span,.status-card.live .status-room{color:#fffdf8}.status-card.live .status-room{background:#fffdf824}.status-progress{background:#fffdf833;border-radius:999px;height:4px;margin-top:8px;display:block;overflow:hidden}.status-progress em{border-radius:inherit;background:#f3efe6;height:100%;display:block}.board-split{align-items:start;gap:16px;display:grid}.board-main,.wallet-side{min-width:0}.wallet-side{position:sticky;top:88px}.wallet-side .wallet-card{margin-bottom:0}.schedule-stage{gap:16px;display:grid}.board-column,.rail{min-width:0}.grid-scroll{background:linear-gradient(#2f6f5e0f,#0000 88px),#fffdf8;border:1px solid #e4dccb;border-radius:24px;overflow-x:auto;box-shadow:0 18px 40px #4634180f}.week-sheet{grid-template-columns:72px 78px repeat(var(--days,5), minmax(132px, 1fr));min-width:calc(168px + var(--days,5) * 140px);gap:7px;padding:12px;display:grid}.sheet-row{display:contents}.sheet-corner,.day-head,.period-cell,.time-cell{color:#6d675c;text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:52px;font-size:12px;display:flex}.day-head{border-radius:16px;gap:2px;min-height:62px}.day-head b,.period-cell span,.time-cell b{color:#1b1914;font-size:15px}.day-head small,.period-cell small,.time-cell span{color:#8a8174;font-size:12px}.day-head.is-today{background:#2f6f5e}.day-head.is-today b,.day-head.is-today small{color:#fffdf8}.period-cell i{color:#1b1914;background:#f3efe6;border-radius:50%;place-items:center;width:28px;height:28px;font-style:normal;font-weight:700;display:grid}.period-cell.is-now i{color:#fffdf8;background:#2f6f5e}.time-cell b,.day-time b,.wallet-pay,.stat-row b{font-variant-numeric:tabular-nums}.course-cell,.day-lesson{--tone:#b7ad9f;--tone-bg:#fffdf873;--tone-ink:#1b1914;border:0;border-left:3px solid var(--tone);background:var(--tone-bg);min-height:96px;color:var(--tone-ink);font:inherit;text-align:left;cursor:pointer;border-radius:14px;flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:2px;padding:8px 8px 8px 10px;display:flex}.course-cell.empty,.day-lesson.empty{color:#0000;box-shadow:none;background:0 0;border:1px dashed #e4dccb;justify-content:center;align-items:center}.course-cell.empty:hover,.course-cell.empty:focus-visible,.day-lesson.empty:hover,.day-lesson.empty:focus-visible{color:#2f6f5e;background:#2f6f5e0d;border-color:#2f6f5e}.course-cell.is-today{box-shadow:inset 0 0 0 1px #2f6f5e2e}.course-cell.is-past,.day-row.is-past .day-lesson{opacity:.58}.course-cell.is-past:hover,.course-cell.is-past:focus-visible,.course-cell.is-selected,.day-lesson.is-selected{opacity:1}.course-cell.is-live,.day-lesson.is-live,.course-cell.is-selected,.day-lesson.is-selected{box-shadow:0 0 0 2px #1b1914}.course-cell:hover,.day-lesson:hover{transform:translateY(-1px)}.course-top{align-items:center;gap:5px;min-height:16px;display:flex}.course-cell small,.day-lesson small,.course-quiet{color:color-mix(in srgb, var(--tone-ink) 72%, #6d675c);letter-spacing:.04em;font-size:11px;font-weight:700}.course-cell b,.day-lesson b{overflow-wrap:anywhere;max-width:100%;font-size:15px;line-height:1.25}.room-pill{color:#1b1914;background:#fffdf8d1;border-radius:999px;margin-top:auto;padding:1px 7px;font-size:12px;font-style:normal;font-weight:600}.live-dot{background:#2f6f5e;border-radius:50%;width:7px;height:7px;box-shadow:0 0 0 4px #2f6f5e29}.plus{font-size:22px;line-height:1}.c1{--tone:#2f6f5e;--tone-bg:#e7f3ec;--tone-ink:#1d4a3c}.c2{--tone:#1d8a80;--tone-bg:#e5f4f2;--tone-ink:#0f5c56}.c3{--tone:#c4841d;--tone-bg:#f8efd8;--tone-ink:#7a5410}.c4{--tone:#d4654a;--tone-bg:#f8e6df;--tone-ink:#8a3d2a}.c5{--tone:#4c5db5;--tone-bg:#e7e9f6;--tone-ink:#2e3a78}.c6{--tone:#2f86b0;--tone-bg:#e3f1f8;--tone-ink:#1a5674}.c7{--tone:#9a5b90;--tone-bg:#f6eaf3;--tone-ink:#6b3a64}.c8{--tone:#6f7a45;--tone-bg:#eef1df;--tone-ink:#46502a}.c9{--tone:#a56b3c;--tone-bg:#f7ecdf;--tone-ink:#6d4524}.legend{color:#6d675c;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px;font-size:12px;display:flex}.legend span{align-items:center;gap:6px;display:inline-flex}.legend i{background:var(--tone,#2f6f5e);border-radius:50%;width:9px;height:9px}.legend-note{color:#8a8174}.break-ribbon,.day-break{color:#8a8174;letter-spacing:.14em;align-items:center;gap:10px;font-size:12px;display:flex}.break-ribbon{grid-column:1/-1;margin:2px 8px}.break-ribbon:before,.break-ribbon:after,.day-break:before,.day-break:after{content:"";background:#eadfce;flex:1;height:1px}.break-ribbon em,.day-break span{color:#b0a697;letter-spacing:0;font-style:normal}.day-switch,.day-board{display:none}.rail{align-content:start;gap:12px;display:grid}.paper-card{background:#fffdf8;border:1px solid #e4dccb;border-radius:20px;padding:16px;box-shadow:0 10px 28px #4634180a}.paper-card header p,.tool-heading p,.empty-note,.wallet-hint{color:#6d675c;margin:4px 0 0;line-height:1.6}.paper-card header strong,.tool-heading h2,.wallet-switch h2{color:#1b1914;margin:0;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:24px;font-weight:600;display:block}.timeline{margin:14px 0 0;padding:0;list-style:none}.timeline li{padding:0 0 12px 16px;position:relative}.timeline li:before{content:"";background:#eadfce;width:1px;position:absolute;top:8px;bottom:-2px;left:3px}.timeline li:last-child:before{display:none}.timeline button{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:52px minmax(0,1fr);gap:8px;padding:0;display:grid}.timeline time{color:#8a8174;font-variant-numeric:tabular-nums;font-size:13px}.timeline b,.timeline small{display:block}.timeline small{color:#6d675c;font-size:12px}.timeline li.is-live b{color:#2f6f5e}.timeline li.is-past{opacity:.55}.timeline em{color:#8a8174;margin:0 0 6px;font-size:12px;font-style:normal;display:block}.selection-meta{gap:8px;margin:14px 0;display:grid}.selection-meta div{border-bottom:1px solid #f0e8da;justify-content:space-between;gap:12px;padding-bottom:8px;display:flex}.selection-meta dt{color:#8a8174}.selection-meta dd{margin:0;font-weight:650}.selection-actions{flex-wrap:wrap;gap:8px;display:flex}.plan-steps{margin:12px 0 0;padding:0;list-style:none}.plan-steps li{gap:8px;margin-top:8px;line-height:1.6;display:flex}.plan-steps span{color:#2f6f5e;background:#f3efe6;border-radius:50%;flex:0 0 22px;place-items:center;width:22px;height:22px;font-size:12px;font-weight:700;display:grid}.tool-panel{gap:12px;margin-top:22px;scroll-margin-top:96px;display:grid}.tool-tabs{flex-wrap:wrap;gap:8px;display:flex}.tool-tabs button,.day-switch button{color:#1b1914;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:999px}.tool-tabs button{padding:8px 14px}.tool-tabs button.on,.day-switch button.on{color:#fffdf8;background:#2f6f5e;border-color:#2f6f5e}.tool-heading{grid-column:1/-1;margin-bottom:4px}.tool-card textarea,.lesson-form textarea{box-sizing:border-box;color:#1b1914;width:100%;min-height:96px;font:inherit;resize:vertical;background:#fffdf8;border:1px solid #e4dccb;border-radius:12px;margin-bottom:12px;padding:10px 12px}.proposal-days{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:8px;margin:12px 0;display:grid}.proposal-days div{background:#f7f3ea;border-radius:14px;flex-direction:column;gap:4px;padding:10px;display:flex}.proposal-days span,.suggestion{color:#1b1914;line-height:1.5}.wallet-card{background:radial-gradient(circle at 12% 80%,#e2b6572e,#0000 26%),linear-gradient(#fffaf1,#fffdf8);border:1px solid #e7d3b4;border-radius:26px;align-items:start;gap:14px;margin-bottom:16px;padding:14px 18px 16px;scroll-margin-top:92px;display:grid;overflow:hidden;box-shadow:0 16px 36px #784e2014}.wallet-main{grid-template-columns:148px minmax(0,1fr);align-items:center;gap:8px 20px;width:100%;min-width:0;display:grid}.wallet-readout{justify-items:start;gap:4px;min-width:0;display:grid}.wallet-kicker,.wallet-status{margin:0}.wallet-kicker{color:#2f6f5e;font-size:13px;font-weight:700}.wallet-card.is-tick .wallet-kicker{align-items:center;gap:6px;display:inline-flex}.wallet-card.is-tick .wallet-kicker:before{content:"";background:#2f6f5e;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #2f6f5e24}.wallet-status{color:#6d675c;overflow-wrap:anywhere;max-width:100%;font-size:14px;line-height:1.45}.wallet-meter{background:#f3efe6;border-radius:999px;height:6px;margin:10px 0 14px;overflow:hidden}.wallet-meter i{border-radius:inherit;background:#2f6f5e;height:100%;display:block}.purse-stage{justify-items:center;width:148px;height:132px;display:grid;position:relative;overflow:hidden}.purse-scale{width:128px;transform:scale(var(--puff,.9));transform-origin:50% 70%;margin-top:8px;transition:transform .7s cubic-bezier(.2,.8,.2,1)}.purse{width:100%;height:auto;display:block;overflow:visible}.purse-shadow{fill:#78482429}.purse-body{fill:#c4845a}.purse-sheen{fill:#ffecd673}.purse-stitch{fill:none;stroke:#f6e7d4;stroke-dasharray:3 4;stroke-width:1.4px}.purse-flap{fill:#a86b43}.purse-cheek{fill:#e7a48a}.purse-eye{fill:#3b2418}.purse-smile{fill:none;stroke:#6b3d28;stroke-linecap:round;stroke-width:1.6px}.purse-slot{fill:#6b4630}.falling-coin{z-index:2;color:#6d675c;font-variant-numeric:tabular-nums;background:#f3efe6;border-radius:999px;padding:2px 8px;font-size:12px;animation:.9s forwards coin-drop;position:absolute;top:8px;left:42%}.falling-coin.lesson{color:#5c3d10;background:#e2b657;top:28px;left:58%}.second-now{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.second-now em{color:#1b1914;font-variant-numeric:tabular-nums;background:#f7f3ea;border-radius:999px;align-items:baseline;gap:6px;margin:0;padding:6px 10px;font-style:normal;font-weight:700;animation:.35s tick-in;display:inline-flex}.second-now em.evening{color:#8a3d2a;background:#f8e6df}.second-now em.normal{color:#7a5410;background:#f8efd8}.second-now small{color:#8a8174;font-size:12px;font-weight:500}.second-trail{flex-wrap:wrap;gap:6px;min-height:28px;margin-top:8px;display:flex}.second-trail span{color:#8a6a3b;font-variant-numeric:tabular-nums;background:#fffdf8b3;border-radius:999px;padding:3px 8px;font-size:12px}.falling-coin.evening{color:#fffdf8;background:#d07a45}.coin-row{gap:5px;min-height:14px;margin-top:-6px;display:flex}.coin-row i{background:radial-gradient(circle at 35% 35%,#fff1c2,#e2b657 58%,#a87b2d);border-radius:50%;width:12px;height:12px;box-shadow:inset 0 0 0 1px #784e1840}.coin-row i.evening{background:radial-gradient(circle at 35% 35%,#ffd7c4,#d07a45 60%,#8a4328)}.wallet-copy{min-width:0}.wallet-pay{color:#1b1914;font-variant-numeric:tabular-nums;overflow-wrap:anywhere;max-width:100%;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:clamp(32px,4vw,48px);line-height:1;display:block}.wallet-copy>span,.coin-toast,.wallet-formula,.wallet-hint{display:block}.wallet-copy>span{color:#8a6a3b;margin-top:4px;font-size:13px}.coin-toast{color:#8a5a18;margin-top:8px;font-style:normal;font-weight:700}.wallet-formula{color:#6d675c;font-variant-numeric:tabular-nums;margin-top:10px}.wallet-breakdown{flex-wrap:wrap;gap:8px;margin:12px 0 0;display:flex}.wallet-breakdown div{background:#fffdf8b8;border-radius:14px;min-width:92px;padding:8px 10px}.wallet-breakdown dt{color:#8a8174;font-size:12px}.wallet-breakdown dd{margin:2px 0 0;font-weight:700}.wallet-hide{color:#8a8174;font:inherit;cursor:pointer;background:0 0;border:0;flex:none;margin:0;padding:0;font-size:13px}.wallet-switch{justify-content:space-between;align-items:center;gap:16px;display:flex}.wallet-switch p{color:#6d675c;max-width:46rem;margin:6px 0 0;line-height:1.6}.mode-switch{color:#1b1914;min-height:42px;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:999px;flex:none;align-items:center;gap:8px;padding:6px 12px 6px 8px;display:inline-flex}.mode-switch i{background:#e7dfd2;border-radius:999px;width:42px;height:24px;position:relative}.mode-switch i:after{content:"";background:#fffdf8;border-radius:50%;width:18px;height:18px;transition:transform .18s;position:absolute;top:3px;left:3px}.mode-switch.on{color:#2f6f5e;border-color:#2f6f5e}.mode-switch.on i{background:#2f6f5e}.mode-switch.on i:after{transform:translate(18px)}.wallet-card.is-detail .wallet-copy{border-top:1px solid #eadfce;padding-top:4px}.wallet-card.is-simple .wallet-main{max-width:680px}.wallet-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 12px;width:100%;min-width:0;display:flex}.wallet-view{background:#fffdf8cc;border:1px solid #eadfce;border-radius:999px;gap:4px;padding:3px;display:inline-flex}.wallet-view button{color:#8a8174;min-width:52px;height:28px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px;font-size:13px}.wallet-view button.on{color:#fffdf8;background:#2f6f5e}.wallet-card.is-simple .wallet-pay{margin-top:0}.coin-rain{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0;overflow:hidden}.coin-fall{z-index:5;color:#b07a1c;white-space:nowrap;pointer-events:none;margin:0;font-size:20px;font-weight:800;animation:.95s cubic-bezier(.22,.7,.3,1) forwards coin-into-purse;position:absolute;top:0;left:50%}@keyframes coin-into-purse{0%{opacity:0;transform:translate(-50%,-22px)scale(.8)}16%{opacity:1;transform:translate(-50%,-4px)scale(1)}72%{opacity:1;transform:translate(-50%,34px)scale(1)}to{opacity:0;transform:translate(-50%,46px)scale(.4)}}.wallet-card.is-tick .purse-scale{animation:none}.wallet-card.is-gulp .wallet-pay{animation:.7s pay-pop}@keyframes coin-drop{0%{opacity:0;transform:translate(-50%,-8px)scale(.86)}20%{opacity:1}to{opacity:0;transform:translate(-50%,22px)scale(1)}}@keyframes tick-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@keyframes pay-pop{0%{transform:scale(1)}40%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes purse-gulp{0%{transform:scale(var(--puff,.9))}35%{transform:scale(calc(var(--puff,.9) * 1.08), calc(var(--puff,.9) * .92))}70%{transform:scale(calc(var(--puff,.9) * .97), calc(var(--puff,.9) * 1.08))}to{transform:scale(var(--puff,.9))}}.wallet-card.is-gulp .purse-scale{animation:.72s purse-gulp}.day-switch{z-index:3;gap:8px;margin-bottom:12px;padding:4px 0;position:sticky;top:72px;overflow-x:auto}.day-switch button{flex-direction:column;flex:none;min-width:64px;padding:8px 10px;display:flex}.day-switch small{color:inherit;opacity:.75;font-size:11px}.day-board{gap:8px}.band-label{color:#8a8174;letter-spacing:.16em;margin:8px 0 0;font-size:12px}.day-row{grid-template-columns:64px minmax(0,1fr);align-items:stretch;gap:8px;display:grid}.day-time{color:#8a8174;flex-direction:column;justify-content:center;font-size:12px;display:flex}.day-time b{color:#1b1914;font-size:14px}.empty-copy{color:#8a8174;flex-direction:column;gap:2px;display:flex}.empty-copy b{font-size:14px}.day-break{margin:4px 0 2px 72px}.course-cell:focus-visible,.day-lesson:focus-visible,.day-switch button:focus-visible,.tool-tabs button:focus-visible,.mode-switch:focus-visible,.back-link:focus-visible,.wallet-hide:focus-visible{outline-offset:3px;outline:3px solid #2f6f5e}@media (width<=979px){.schedule-hero{grid-template-columns:1fr}.month-dots{display:grid}.month-grid{display:none}.status-card{order:-1;min-height:0}.day-switch,.day-board{display:flex}.day-board{display:grid}.grid-scroll{display:none}.wallet-card,.wallet-switch,.wallet-main,.wallet-readout{text-align:center;justify-items:center}.wallet-main{grid-template-columns:1fr}.wallet-breakdown,.wallet-switch{justify-content:center}.wallet-switch{display:grid}}@media (width>=980px){.day-switch,.day-board{display:none}}@media (width>=1100px){.board-split.has-wallet{grid-template-columns:minmax(0,1fr) 300px}.wallet-side .wallet-main{grid-template-columns:1fr;justify-items:center;gap:4px}.wallet-side .wallet-readout,.wallet-side .wallet-toolbar{text-align:center;justify-content:center;justify-items:center}.wallet-side .purse-stage{margin:0 auto}}@media (width>=1480px){.schedule-stage{grid-template-columns:minmax(0,1fr) 300px;align-items:start}}@media (width<=767px){.lesson-form{grid-template-columns:1fr}.schedule-title{font-size:40px}.wrap.wrap-wide{width:min(100% - 24px,1280px)}}@media (width>=768px){.voice-page,.auth-page,.schedule-page{padding-top:24px}.bubbles-container{max-height:min(48vh,420px)}.voice-options{justify-content:center}}.board-switch{background:#fffdf8;border:1px solid #eadfce;border-radius:999px;gap:4px;margin:14px 0 4px;padding:4px;display:inline-flex}.board-switch button{color:#6d675c;min-width:52px;height:32px;font:inherit;cursor:pointer;background:0 0;border:0;border-radius:999px}.board-switch button.on{color:#fffdf8;background:#2f6f5e}.schedule-stage.is-hidden{display:none}.board-panel{gap:12px;display:grid}.board-nav{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.board-nav strong{color:#1b1914;text-align:center;min-width:7em;font-family:Iowan Old Style,Palatino,Songti SC,serif;font-size:28px;font-weight:600}.board-nav button,.detail-table button,.year-table th button{color:#1b1914;font:inherit;cursor:pointer;background:#fffdf8;border:1px solid #e4dccb;border-radius:999px}.board-nav button{padding:6px 12px}.board-nav button.is-quiet{color:#2f6f5e}.table-note{color:#6d675c;flex-wrap:wrap;gap:8px 16px;margin:0;font-size:14px;line-height:1.6;display:flex}.table-note span{white-space:nowrap}.table-scroll{background:#fffdf8;border:1px solid #e4dccb;border-radius:22px;overflow-x:auto;box-shadow:0 14px 32px #4634180d}.plan-table{border-collapse:separate;border-spacing:0;color:#1b1914;font-variant-numeric:tabular-nums;width:100%}.plan-table caption{color:#8a8174;text-align:left;caption-side:top;padding:14px 16px 0;font-size:13px}.plan-table th,.plan-table td{text-align:left;vertical-align:top;border-bottom:1px solid #f0e8da;padding:10px 12px}.plan-table thead th{color:#2f6f5e;letter-spacing:.08em;background:#f7f3ea;font-size:13px;font-weight:700}.plan-table tfoot th,.plan-table tfoot td{color:#fffdf8;background:#234f43;font-weight:700}.plan-table .num{white-space:nowrap}.month-table{min-width:760px}.month-table th,.month-table td{width:14.28%;padding:0}.month-table th{text-align:center;padding:10px 8px}.month-table th.is-weekend,.month-table td.is-weekend{background:#fffaf3}.month-table td button{width:100%;min-height:92px;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:flex-start;gap:4px;padding:8px;display:flex}.month-table time{color:#1b1914;font-weight:700}.month-table ul{gap:3px;width:100%;margin:0;padding:0;list-style:none;display:grid}.month-table li{background:var(--tone-bg,#f3efe6);max-width:100%;color:var(--tone-ink,#1b1914);text-overflow:ellipsis;white-space:nowrap;border-radius:999px;padding:1px 6px;font-size:11px;overflow:hidden}.month-table li.more,.month-table small{color:#8a8174;background:0 0}.month-table td.is-outside{color:#b0a697;background:#fbf8f3}.month-table td.is-outside time{color:#b0a697}.month-table td.is-past:not(.is-today){opacity:.72}.month-table td.is-today{box-shadow:inset 0 0 0 2px #2f6f5e}.month-table td.is-picked{background:#eef6f2}.detail-table{min-width:640px}.detail-table button,.year-table th button{padding:4px 10px}.year-table{min-width:640px}.year-table th button{color:#2f6f5e;background:0 0;border:0;font-weight:700}.year-table tr.is-current{background:#eef6f2}.name-dot:before{content:"";background:var(--tone,#2f6f5e);border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.empty-row{color:#8a8174;text-align:center}.board-switch button:focus-visible,.board-nav button:focus-visible,.month-table td button:focus-visible,.detail-table button:focus-visible,.year-table th button:focus-visible{outline-offset:2px;outline:3px solid #2f6f5e}@media (prefers-reduced-motion:reduce){.purse-scale,.falling-coin,.wallet-card.is-gulp .purse-scale,.wallet-card.is-gulp .wallet-pay,.live-dot{transition:none;animation:none}}
