:root{--ink:#121212;--muted:#777;--paper:#f6f4f0;--red:#ed1b2f;--line:#e7e3dc}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,"Noto Sans JP",sans-serif}button,input{font:inherit}main{min-height:100vh;padding-bottom:92px}.hidden{display:none!important}.topbar{height:72px;display:flex;align-items:center;padding:0 max(20px,calc((100% - 780px)/2));background:#121212;color:white;position:sticky;top:0;z-index:20}.brand-logo{height:36px;width:auto;object-fit:contain}.test-chip{margin-left:auto;border:1px solid #555;border-radius:99px;color:#ddd;font-size:9px;font-weight:800;letter-spacing:.08em;padding:6px 9px}.hero{background:#121212;color:#fff;padding:34px max(20px,calc((100% - 780px)/2)) 38px;position:relative;overflow:hidden}.hero:after{content:"BLAZE";position:absolute;right:-28px;top:10px;font-size:92px;font-weight:900;color:#191919;transform:rotate(-8deg)}.hero>p{font-size:10px;letter-spacing:.3em;color:#aaa;margin:0 0 18px;position:relative;z-index:1}.hero h1{font-size:clamp(34px,8vw,52px);line-height:1.14;letter-spacing:-.045em;margin:0;position:relative;z-index:1}.hero h1 em{color:var(--red);font-style:normal}.hero-stats{display:flex;gap:34px;margin-top:30px;position:relative;z-index:1}.hero-stats div{display:flex;flex-direction:column}.hero-stats b{font-size:22px}.hero-stats span{font-size:10px;color:#999;margin-top:3px}.migration-banner{max-width:780px;margin:16px auto 0;padding:12px 20px;background:#fff5e9;border:1px solid #f1d7ad;border-radius:12px;color:#7a4a00;font-size:11px;display:flex;gap:8px;align-items:center;justify-content:center;flex-wrap:wrap}.migration-banner strong{font-size:11px}.teacher-search-wrap{max-width:780px;margin:18px auto 0;padding:0 20px}.teacher-search{align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;display:flex;padding:0 12px}.teacher-search>span{color:#888;font-size:20px}.teacher-search input{border:0;outline:0;background:transparent;width:100%;padding:12px 9px;font-size:14px}.teacher-search button{border:0;background:none;color:#999;font-size:18px}.content{max-width:780px;margin:0 auto;padding:28px 20px}.section-head{display:flex;align-items:end;justify-content:space-between;margin-bottom:18px}.section-head span{font-size:9px;letter-spacing:.25em;color:var(--red);font-weight:800}.section-head h2{font-size:23px;margin:3px 0 0;letter-spacing:-.04em}.filters{display:flex;gap:8px;overflow:auto;padding-bottom:4px;margin-bottom:15px}.filters button{white-space:nowrap;border:1px solid var(--line);background:transparent;border-radius:99px;padding:8px 14px;font-size:12px;color:#666}.filters button.active{background:#121212;border-color:#121212;color:white}.date-group-list{display:grid;gap:28px}.date-group>h2{font-size:16px;letter-spacing:.01em;margin:0 0 10px}.teacher-group{background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 18px #27200f0a;margin-bottom:12px;overflow:hidden}.teacher-group>header{align-items:center;background:linear-gradient(110deg,#171717,#282525);color:#fff;display:flex;gap:13px;padding:15px 17px}.teacher-group>header small{color:#d9959c;font-size:8px;font-weight:800;letter-spacing:.22em}.teacher-group>header h3{font-size:21px;letter-spacing:.01em;margin:2px 0 0}.teacher-avatar{align-items:center;background:linear-gradient(145deg,#f4d9dc,#eee7df);border:2px solid #fff;border-radius:50%;box-shadow:0 2px 10px #24140b18;color:#a41524;display:inline-flex;flex:0 0 auto;font-size:18px;font-weight:900;height:58px;justify-content:center;overflow:hidden;width:58px}.teacher-avatar img{height:100%;object-fit:cover;width:100%}.teacher-lessons{display:grid}.grouped-lesson{align-items:center;display:grid;gap:12px;grid-template-columns:1fr auto;padding:15px 16px}.grouped-lesson+.grouped-lesson{border-top:1px solid var(--line)}.lesson-title{display:flex;align-items:center;gap:7px}.lesson-title h3{font-size:17px;margin:0}.lesson-title span{font-size:9px;padding:3px 6px;background:#f1efeb;border-radius:4px;color:#777}.time{font-size:14px;font-weight:700;margin:6px 0 3px}.meta{font-size:10px;color:#888;margin:0}.availability{display:flex;align-items:center;gap:7px;margin-top:9px}.availability>div{width:70px;height:3px;border-radius:3px;background:#eee;overflow:hidden}.availability i{display:block;height:100%;background:#151515}.availability span{font-size:9px;color:#777}.availability span.urgent{color:var(--red);font-weight:800}.detail-btn{width:52px;height:40px;border-radius:10px;border:0;background:var(--red);color:white;font-size:11px;font-weight:800}.detail-btn.ended{background:#efede9;color:#777}.card-participants{border-top:1px solid #eee;grid-column:1/-1;margin:1px -16px -15px;padding:0 16px}.card-participants summary{align-items:center;color:#333;cursor:pointer;display:flex;font-size:11px;font-weight:700;justify-content:space-between;list-style:none;padding:12px 1px}.card-participants summary::-webkit-details-marker{display:none}.card-participants summary::before{content:"▶";font-size:9px;margin-right:7px}.card-participants[open] summary::before{content:"▼"}.card-participants summary small{color:#999;font-size:9px;font-weight:700;margin-left:auto}.participants-hide{display:none}.card-participants[open] .participants-show{display:none}.card-participants[open] .participants-hide{display:inline}.card-participants>p{border-top:1px solid #f1eee9;color:#999;font-size:10px;margin:0;padding:12px 1px}.info-grid{display:grid;gap:12px}.info-grid article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:20px}.info-grid b{color:var(--red);font-size:11px}.info-grid h3{margin:8px 0;font-size:16px}.info-grid p{margin:0;color:#666;font-size:12px;line-height:1.8}.empty{text-align:center;background:white;border:1px solid var(--line);border-radius:18px;padding:48px 20px}.empty div{font-size:40px;color:var(--red)}.empty h3{margin:12px 0 7px}.empty p{font-size:12px;color:#777}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:76px;background:#fff;border-top:1px solid var(--line);display:flex;justify-content:center;z-index:30;padding-bottom:env(safe-area-inset-bottom)}.bottom-nav button{width:min(33.33%,160px);border:0;background:none;color:#999;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px}.bottom-nav button i{font-style:normal;font-weight:800;font-size:20px}.bottom-nav button span{font-size:9px}.bottom-nav button.active{color:var(--red)}.modal-bg{position:fixed;inset:0;background:#0009;display:flex;align-items:end;justify-content:center;z-index:50}.modal{width:min(100%,540px);background:#fff;border-radius:24px 24px 0 0;padding:28px 24px calc(28px + env(safe-area-inset-bottom));position:relative;max-height:90vh;overflow-y:auto}.close{position:absolute;right:18px;top:16px;border:0;background:#f1efeb;width:32px;height:32px;border-radius:50%;font-size:20px}.modal-teacher{align-items:center;display:flex;gap:13px;margin-bottom:14px}.modal-teacher small{color:#888;font-size:9px}.modal-teacher h2{font-size:23px;margin:2px 0}.modal-date{display:inline-block;color:#c81325;background:#fff0f1;padding:6px 10px;border-radius:7px;font-size:11px;font-weight:800}.modal-lesson-title{font-size:22px;margin:15px 0 6px}.modal-lesson-title small{background:#f0ede8;border-radius:5px;color:#777;font-size:10px;padding:4px 7px;vertical-align:middle}.modal>p{font-weight:800;margin:0}.modal dl{border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin:20px 0}.modal dl div{display:flex;justify-content:space-between;padding:11px 0;font-size:12px}.modal dt{color:#888}.modal dd{margin:0;font-weight:700;text-align:right}.lesson-detail{border-top:1px solid var(--line);margin-top:18px;padding-top:15px}.lesson-detail b{font-size:11px}.lesson-detail p{color:#666;font-size:12px;line-height:1.7;white-space:pre-wrap}.confirm{width:100%;border:0;border-radius:12px;background:#ddd;color:#777;padding:15px;font-weight:800}.modal>small{display:block;text-align:center;color:#999;font-size:9px;margin-top:12px}@media(min-width:700px){.info-grid{grid-template-columns:repeat(3,1fr)}}@media(max-width:560px){.content,.teacher-search-wrap{padding-left:14px;padding-right:14px}.migration-banner{margin-left:14px;margin-right:14px}.teacher-group>header{padding:13px}.teacher-group>header h3{font-size:19px}.grouped-lesson{padding:14px 13px}.card-participants{margin:0 -13px -14px;padding:0 13px}}

.write-test{background:#fff1f2;border-color:#efbcc1;color:#8b1521}.write-test b{font-weight:900}
.user-chip,.login-chip{margin-left:auto;border:1px solid #555;background:#1c1c1c;color:#fff;border-radius:99px;min-width:42px;height:32px;padding:0 11px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:800}.user-chip{cursor:pointer}
.signin-link{font-size:11px;color:#c91528;font-weight:800;text-decoration:none}.primary-link{display:inline-block;margin-top:12px;background:#151515;color:#fff;border-radius:10px;padding:11px 15px;text-decoration:none;font-size:12px;font-weight:800}
.lesson-list{display:grid;gap:10px}.booking-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:16px;padding:14px}.booking-card .teacher-avatar{width:48px;height:48px}.booking-card h3{margin:3px 0;font-size:15px}.booking-card p{margin:0;font-size:12px;font-weight:700}.booking-card small{color:#777;font-size:9px}.booking-date{color:#c91528;font-size:10px}.cancel-btn{border:1px solid #e0dcd6;background:#fff;color:#a51a27;border-radius:9px;padding:9px 10px;font-size:10px;font-weight:800}
.booking-confirm,.cancel-confirm{width:min(92%,460px);background:#fff;border-radius:20px;padding:24px}.booking-confirm h2,.cancel-confirm h2{font-size:20px;line-height:1.5;margin:0 0 14px}.booking-confirm h3,.cancel-confirm h3{font-size:17px;margin:10px 0}.booking-confirm p,.cancel-confirm p{font-size:12px;line-height:1.7;color:#555}.booking-confirm-actions,.cancel-confirm>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}.booking-confirm button,.cancel-confirm button{border:0;border-radius:11px;padding:13px;font-weight:800}.booking-confirm .back,.cancel-confirm .back{background:#efede9;color:#555}.booking-confirm .apply{background:#111;color:#fff}.cancel-confirm .cancel-do{background:#c91528;color:#fff}
.toast{position:fixed;left:50%;bottom:92px;transform:translateX(-50%);background:#111;color:#fff;border-radius:99px;padding:10px 16px;font-size:11px;font-weight:800;z-index:100;box-shadow:0 8px 20px #0004;white-space:nowrap}.bottom-nav button b{position:absolute;margin-left:26px;margin-top:-25px;background:#ed1b2f;color:#fff;border-radius:50%;min-width:17px;height:17px;font-size:9px;display:flex;align-items:center;justify-content:center}.bottom-nav button{position:relative}
