:root{--navy:#111827;--navy-2:#1f2937;--bg:#f4f6fb;--panel:#fff;--line:#e6e9f0;--text:#202637;--muted:#7b8497;--primary:#6257d9;--primary-soft:#eeecff;--danger:#d9475c;--danger-soft:#fff0f2;--success:#168060;--success-soft:#e9f8f2;--warning:#ba7416;--warning-soft:#fff7e9;--shadow:0 12px 32px rgba(28,36,64,.07)}[hidden]{display:none!important}.sidebar nav,.class-list-panel,.date-tabs{scrollbar-width:none}.sidebar nav::-webkit-scrollbar,.class-list-panel::-webkit-scrollbar,.date-tabs::-webkit-scrollbar{display:none}body{font-family:Inter,Noto Sans KR,Malgun Gothic,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,Noto Sans JP,Yu Gothic,Arial,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}small{color:var(--muted)}h1,h2,h3,p{margin-top:0}.sidebar{position:fixed;inset:0 auto 0 0;width:244px;padding:27px 18px;background:var(--navy);color:#fff;display:flex;flex-direction:column;z-index:20}.brand{display:flex;align-items:center;gap:11px;padding:0 8px 24px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#7267ef,#a46be9);font-weight:800}.brand strong,.brand small{display:block}.brand small{margin-top:2px;color:#9da6b8;font-size:12px}.mode-switch{display:grid;grid-template-columns:1fr 1fr;padding:4px;background:#253044;border-radius:11px;margin-bottom:22px}.mode-switch button{border:0;border-radius:8px;padding:9px;background:transparent;color:#aeb7c8}.mode-switch button.active{background:#fff;color:#1a2130;font-weight:700}.sidebar nav{display:grid;gap:6px}.sidebar nav button{position:relative;display:flex;align-items:center;gap:11px;border:0;border-radius:10px;padding:12px;background:transparent;color:#aeb7c8;text-align:left}.sidebar nav button span{width:18px;text-align:center}.sidebar nav button:hover,.sidebar nav button.active{background:#263247;color:#fff}.nav-badge{margin-left:auto;background:#ef6b7d;color:#fff;font-size:11px;border-radius:20px;padding:2px 7px}.sidebar-user{display:flex;align-items:center;gap:10px;margin-top:auto;padding:16px 8px 0;border-top:1px solid #2b3546}.sidebar-user b,.sidebar-user small{display:block}.sidebar-user small{color:#9da6b8;margin-top:2px}.avatar{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border-radius:50%;background:#6159d7;color:#fff;font-weight:700}.avatar.lavender{background:#eeeaff;color:#6257d9}.avatar.blue{background:#e7f0ff;color:#3973cf}.avatar.green{background:#e6f7f0;color:#168060}main{margin-left:244px;padding:31px 40px 55px;min-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:24px}.topbar h1{margin:4px 0 0;font-size:27px}.primary,.secondary,.danger-button,.light-button,.text-button{border:0;border-radius:10px;padding:11px 15px;font-weight:700}.primary{background:var(--primary);color:#fff;box-shadow:0 6px 15px #6257d933}.primary:hover{background:#5449c9}.secondary{background:#fff;color:#535d70;border:1px solid #dde1e9}.danger-button{background:var(--danger);color:#fff}.light-button{background:#fff;color:#4f46c7}.text-button{background:transparent;color:var(--primary);padding-inline:0}.page{display:none}.page.active{display:block}.panel{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:21px;box-shadow:var(--shadow);margin-bottom:18px}.compact-panel{padding-bottom:8px}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:17px}.panel-head h2{font-size:19px;margin:3px 0 0}.panel-head.wrap{flex-wrap:wrap}.actions{display:flex;align-items:center;gap:8px}.notice{display:flex;align-items:center;gap:14px;border-radius:14px;padding:16px 18px;margin-bottom:17px}.notice.info{background:#eeefff;color:#433baf}.notice>span{display:grid;place-items:center;width:28px;height:28px;background:#fff;border-radius:50%;font-weight:800}.notice div{flex:1}.notice p{margin:3px 0 0;font-size:13px}.notice button{border:0;background:transparent;color:#433baf;font-weight:700}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}.stats article{background:#fff;border:1px solid var(--line);border-radius:16px;padding:19px;box-shadow:var(--shadow)}.stats span,.stats small,.stats strong{display:block}.stats strong{font-size:29px;margin:8px 0}.warning-stat{border-color:#f3d7da!important}.warning-stat strong{color:var(--danger)}.lesson-row{display:grid;grid-template-columns:74px minmax(170px,1fr) 90px 70px;align-items:center;gap:16px;padding:15px 4px;border-top:1px solid #edf0f4}.lesson-row time{font-weight:800}.lesson-row b,.lesson-row small{display:block}.lesson-row small{margin-top:4px}.lesson-row em{justify-self:end}.cancelled-row{opacity:.8}.status{display:inline-flex;align-items:center;justify-content:center;border-radius:30px;padding:5px 10px;font-style:normal;font-size:12px;font-weight:800;white-space:nowrap}.status.open{background:var(--success-soft);color:var(--success)}.status.full,.status.cancelled{background:var(--danger-soft);color:var(--danger)}.status.danger{background:var(--warning-soft);color:var(--warning)}.calendar{display:grid;grid-template-columns:repeat(7,1fr)}.week-head{border:1px solid var(--line);border-bottom:0;border-radius:12px 12px 0 0;overflow:hidden}.week-head div{text-align:center;padding:11px;color:var(--muted);font-size:12px;font-weight:700}.days{border-left:1px solid var(--line);border-top:1px solid var(--line)}.days>div{position:relative;min-height:102px;padding:9px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);color:#596174}.days>div.muted-day{background:#fafbfc;color:#c2c7d0}.days>div.today:before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:2px solid var(--primary);border-radius:9px;pointer-events:none}.event{position:relative;margin-top:6px;padding:6px 7px;border-radius:6px;background:var(--primary-soft);color:var(--primary);font-size:11px;line-height:1.35}.event.cancelled-event{background:var(--danger-soft);color:var(--danger);text-decoration:line-through}.event .event-menu{position:absolute;right:3px;top:2px;border:0;background:transparent;color:inherit;padding:2px 4px}.search{min-width:240px;padding:10px 12px;border:1px solid #dfe3eb;border-radius:10px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse}th,td{padding:13px 10px;border-top:1px solid #edf0f4;text-align:left;white-space:nowrap}th{font-size:12px;color:var(--muted)}td small{display:block;margin-top:4px}.danger-row{background:#fffaf5}.danger-text{color:var(--danger)!important}.attendance-layout{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px}.class-choice{display:flex;align-items:center;gap:14px;width:100%;padding:14px 12px;border:1px solid transparent;border-radius:12px;background:transparent;text-align:left;margin-bottom:6px}.class-choice:hover,.class-choice.active{background:var(--primary-soft);border-color:#ded9ff}.class-choice time{font-weight:800;color:var(--primary)}.class-choice b,.class-choice small{display:block}.class-choice small{margin-top:3px}.progress{background:#f0f2f6;border-radius:30px;padding:7px 11px;font-size:12px;color:#626b7a}.attendance-head{display:grid;grid-template-columns:1fr 1.2fr;padding:8px 10px;color:var(--muted);font-size:12px;font-weight:700}.attendance-item{display:grid;grid-template-columns:1fr 1.2fr;gap:14px;align-items:center;padding:15px 10px;border-top:1px solid #edf0f4}.student-cell{display:flex;align-items:center;gap:11px}.student-cell b,.student-cell small{display:block}.student-cell small{margin-top:3px}.segmented{display:grid;grid-template-columns:repeat(3,1fr);padding:3px;border-radius:10px;background:#f0f2f6}.segmented button{border:0;border-radius:8px;padding:9px 6px;background:transparent;color:#697285}.segmented button.active[data-status=present]{background:var(--success-soft);color:var(--success)}.segmented button.active[data-status=absent]{background:var(--danger-soft);color:var(--danger)}.segmented button.active[data-status=note]{background:var(--warning-soft);color:var(--warning)}.note-input{grid-column:1/-1;width:100%;min-height:64px;padding:10px;border:1px solid #e0d0a7;border-radius:9px;background:#fffaf0;resize:vertical}.sticky-save{position:sticky;bottom:10px;display:flex;align-items:center;justify-content:flex-end;gap:18px;margin:18px -5px -5px;padding:13px;background:#f8f9fc;border:1px solid var(--line);border-radius:12px}.sticky-save span{color:var(--muted);font-size:13px}.approval-card{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 4px;border-top:1px solid #edf0f4}.student-hero{display:flex;justify-content:space-between;gap:30px;padding:32px;border-radius:22px;background:linear-gradient(135deg,#3d4dcc,#7a56d8);color:#fff;box-shadow:0 18px 38px #403daa38;margin-bottom:18px}.student-hero small{color:#dddfff}.student-hero h2{font-size:31px;line-height:1.25;margin:10px 0 22px}.balance-card{min-width:220px;padding:20px;border-radius:17px;background:#ffffff24;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.balance-card small,.balance-card strong,.balance-card span{display:block}.balance-card strong{font-size:58px;margin:8px 0}.balance-card span{font-size:12px}.next-lesson h3{font-size:22px;margin-bottom:5px}.next-lesson p{color:var(--muted);margin-bottom:0}.filter-panel{display:flex;align-items:center;justify-content:space-between;padding:12px 16px}.filter-panel select{border:1px solid var(--line);border-radius:9px;padding:9px}.date-tabs,.tabs{display:flex;gap:5px}.date-tabs button,.tabs button{border:0;border-radius:9px;padding:9px 13px;background:transparent;color:var(--muted)}.date-tabs button.active,.tabs button.active{background:var(--primary-soft);color:var(--primary);font-weight:700}.date-group{display:grid;grid-template-columns:110px 1fr;gap:15px;margin:22px 0}.date-label strong,.date-label span{display:block}.date-label span{font-size:12px;color:var(--muted);margin-top:3px}.student-lessons{display:grid;gap:10px}.student-lessons article{display:grid;grid-template-columns:90px 1fr auto;align-items:center;gap:18px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:17px;box-shadow:var(--shadow)}.lesson-time b,.lesson-time small{display:block}.lesson-time b{font-size:18px}.lesson-info h3{margin:4px 0}.lesson-info span{font-size:12px;color:var(--muted)}.student-lessons article>button{border:0;border-radius:10px;padding:10px 14px}.student-lessons article>button.reserved{background:var(--success-soft);color:var(--success)}.tabs{margin-bottom:14px}.booking-card{display:grid;grid-template-columns:80px 1fr auto;align-items:center;gap:20px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:18px;margin-bottom:11px;box-shadow:var(--shadow)}.booking-date{border-right:1px solid var(--line)}.booking-date strong,.booking-date span{display:block}.booking-date strong{font-size:30px;color:var(--primary)}.booking-date span{font-size:12px;color:var(--muted)}.booking-card h3{margin:4px 0}.booking-card p{margin:0;color:var(--muted);font-size:13px}.booking-card .warning-text{color:var(--danger)}.cancelled-booking{background:#fbfbfc;opacity:.82}.ticket-card{display:flex;justify-content:space-between;align-items:center;gap:20px;background:linear-gradient(135deg,#263676,#6752bd);color:#fff;padding:28px;border-radius:20px;margin-bottom:18px}.ticket-card small,.ticket-card strong{display:block}.ticket-card small{color:#d7daf1}.ticket-card strong{font-size:50px;margin-top:8px}.ticket-card>span{text-align:right;font-size:13px}.history-row{display:grid;grid-template-columns:38px 1fr auto;align-items:center;gap:13px;padding:15px 3px;border-top:1px solid #edf0f4}.history-row b,.history-row small{display:block}.history-row small{margin-top:4px}.history-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;font-weight:800}.history-icon.plus{background:var(--success-soft);color:var(--success)}.history-icon.minus{background:var(--danger-soft);color:var(--danger)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:grid;place-items:center;padding:20px;background:#0a101c99;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-backdrop[hidden]{display:none}.modal{width:min(460px,100%);max-height:92vh;overflow:auto;padding:25px;background:#fff;border-radius:20px;box-shadow:0 25px 80px #00000040}.large-modal{width:min(680px,100%)}.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:18px}.modal-head h2{margin:3px 0}.icon-button{border:0;background:#f1f2f6;border-radius:50%;width:34px;height:34px;font-size:20px;color:#606879}.modal form{display:grid;grid-template-columns:1fr 1fr;gap:14px}.modal label{display:grid;gap:7px;font-size:13px;font-weight:700}.modal input,.modal select,.modal textarea{width:100%;padding:11px;border:1px solid #dfe3eb;border-radius:9px;background:#fff}.modal textarea{min-height:70px;resize:vertical}.modal label small{font-weight:400}.modal .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:17px}.modal-summary{display:grid;grid-template-columns:1fr auto;gap:10px;padding:15px;margin:16px 0;background:#f7f8fb;border-radius:12px}.danger-symbol,.warning-symbol{display:grid;place-items:center;width:48px;height:48px;border-radius:50%;font-size:24px;font-weight:800;margin-bottom:14px}.danger-symbol{background:var(--danger-soft);color:var(--danger)}.warning-symbol{background:var(--warning-soft);color:var(--warning)}.confirm-list{border-top:1px solid var(--line)}.confirm-list p{display:flex;justify-content:space-between;gap:20px;padding:13px 0;margin:0;border-bottom:1px solid var(--line)}#toast{position:fixed;right:24px;bottom:24px;z-index:200;padding:12px 17px;border-radius:10px;background:#121927;color:#fff;box-shadow:0 12px 30px #0000002e;opacity:0;transform:translateY(12px);pointer-events:none;transition:.2s}#toast.show{opacity:1;transform:translateY(0)}@media(max-width:1050px){.stats{grid-template-columns:repeat(2,1fr)}.attendance-layout{grid-template-columns:1fr}.class-list-panel{display:flex;align-items:center;gap:6px;overflow:auto}.class-list-panel .panel-head{min-width:180px;margin:0}.class-choice{min-width:190px;margin:0}.lesson-row{grid-template-columns:64px 1fr 70px 65px}}@media(max-width:760px){.sidebar{position:static;width:auto;padding:16px}.brand{padding-bottom:14px}.mode-switch{margin-bottom:12px}.sidebar nav{display:flex;overflow-x:auto}.sidebar nav button{white-space:nowrap}.sidebar-user{display:none}main{margin-left:0;padding:19px 14px 90px}.topbar{align-items:flex-start}.topbar h1{font-size:23px}.topbar .primary{padding:10px;font-size:13px}.notice{align-items:flex-start}.notice button{display:none}.stats{gap:9px}.stats article{padding:15px}.stats strong{font-size:25px}.panel{padding:16px;border-radius:15px}.lesson-row{grid-template-columns:54px 1fr auto}.lesson-row>span{display:none}.calendar{min-width:620px}.panel:has(.calendar){overflow:auto}.actions{flex-wrap:wrap}.search{min-width:0;width:100%}.panel-head.wrap .actions{width:100%}.attendance-head{display:none}.attendance-item{grid-template-columns:1fr}.segmented,.note-input{grid-column:1}.sticky-save{bottom:8px;justify-content:space-between}.approval-card{align-items:flex-start;flex-direction:column}.student-hero{display:block;padding:24px}.student-hero h2{font-size:26px}.balance-card{min-width:0;margin-top:20px}.filter-panel{align-items:stretch;flex-direction:column;gap:9px}.date-tabs{overflow:auto}.date-group{grid-template-columns:1fr}.date-label{display:flex;gap:8px;align-items:baseline}.date-label span{margin:0}.student-lessons article{grid-template-columns:68px 1fr}.student-lessons article>button{grid-column:1/-1}.booking-card{grid-template-columns:58px 1fr}.booking-card>button,.booking-card>em{grid-column:1/-1}.ticket-card{padding:22px}.ticket-card strong{font-size:42px}.modal form{grid-template-columns:1fr}.modal .full{grid-column:auto}}@media(max-width:420px){.stats{grid-template-columns:1fr 1fr}.stats small{font-size:11px}.sidebar nav button span{display:none}.mode-switch button{padding:8px}.lesson-row{gap:9px}.sticky-save span{max-width:110px}.ticket-card{align-items:flex-start;flex-direction:column}.ticket-card>span{text-align:left}}.notice.development{background:var(--warning-soft);color:var(--warning)}.app-lesson-grid{display:grid;gap:10px}.app-lesson-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px;border:1px solid var(--line);border-radius:14px}.app-lesson-card h3{margin:4px 0}.app-lesson-card p{margin:0;color:var(--muted);font-size:13px}.app-lesson-card>div:last-child{display:flex;align-items:center;gap:12px}@media(max-width:560px){.app-lesson-card{align-items:flex-start;flex-direction:column}}.mini-actions{display:flex;gap:6px;margin-top:8px}.mini-actions button{padding:7px 10px;font-size:12px}.is-cancelled{opacity:.68}.cell-subtitle{display:block;color:var(--muted);font-size:12px;margin-top:4px}.negative{color:var(--danger)!important}.empty-state{text-align:center;padding:44px 20px;color:var(--muted)}.empty-state b{color:var(--text)}.notice.warning{background:#fff7ed;border-color:#fed7aa}.notice.warning>span{background:#f97316}.modal-summary{display:grid;grid-template-columns:1fr auto;gap:10px;background:var(--surface-soft);border-radius:14px;padding:16px;margin:16px 0}.confirm-list{margin:18px 0}.confirm-list p{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px solid var(--line)}.confirm-list span{color:var(--muted)}.class-selector{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:16px}.class-choice{background:#fff;border:1px solid var(--line);border-radius:14px;padding:16px;text-align:left;display:grid;gap:4px}.class-choice.active{border-color:var(--primary);box-shadow:0 0 0 2px #6d5efc1f}.class-choice small,.class-choice span{color:var(--muted)}.status.cancelled{background:#fee2e2;color:#b91c1c}.status{border:0}.booking-card .actions{margin-left:auto}.development{margin-bottom:18px}@media(max-width:720px){.mini-actions{flex-wrap:wrap}.booking-card .actions{width:100%;margin-left:0}.booking-card .actions button{flex:1}.confirm-list p{align-items:flex-start}.class-selector{grid-template-columns:1fr}}.calendar-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:14px}.calendar-toolbar h2{margin:4px 0 0}.calendar-controls{display:flex;align-items:center;gap:7px}.view-switch{display:flex;padding:3px;background:#e9ecf2;border-radius:10px}.view-switch button{border:0;background:transparent;color:var(--muted);padding:8px 15px;border-radius:8px;font-weight:700}.view-switch button.active{background:#fff;color:var(--text);box-shadow:0 2px 8px #141c2d1f}.calendar-panel{position:relative;width:100%;max-width:100%;padding:0;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y}.calendar-week-head,.calendar-month-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-week-head{border-bottom:1px solid var(--line);background:#fafbfc}.calendar-week-head div{text-align:center;padding:12px;color:var(--muted);font-size:12px;font-weight:700}.calendar-day{min-height:126px;padding:8px;border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff;text-align:left;vertical-align:top}.calendar-day:nth-child(7n){border-right:0}.calendar-day.muted{background:#fafbfc}.calendar-day>span{display:grid;place-items:center;width:26px;height:26px;margin-bottom:5px;border-radius:50%;font-size:12px;font-weight:700}.calendar-day.today>span{background:var(--primary);color:#fff}.calendar-event{display:block;margin:3px 0;padding:5px 6px;border-radius:5px;background:var(--primary-soft);color:var(--primary);font-size:10px;font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.calendar-event.cancelled{background:var(--danger-soft);color:var(--danger);text-decoration:line-through}.calendar-event.completed{background:#edf0f4;color:#687284}.week-calendar{display:grid;grid-template-columns:repeat(7,minmax(110px,1fr));min-height:480px;overflow:visible}.week-column{border-right:1px solid var(--line);padding:8px}.week-column:last-child{border:0}.week-column.today{background:#faf9ff}.week-date{text-align:center;padding:8px}.week-date small,.week-date b{display:block}.week-date b{margin-top:4px;font-size:20px}.calendar-event.block{padding:10px;white-space:normal}.calendar-event.block b,.calendar-event.block span,.calendar-event.block small{display:block}.calendar-event.block span{margin:4px 0;font-weight:700}.day-calendar{position:relative;min-height:624px}.day-hours>div{display:grid;grid-template-columns:64px 1fr;height:52px}.day-hours time{padding:0 10px;color:var(--muted);font-size:11px;text-align:right}.day-hours span{border-top:1px solid var(--line)}.day-events{position:absolute;top:0;right:12px;bottom:0;left:76px}.day-event{position:absolute;left:0;right:0;min-height:46px;padding:8px 12px;border-left:4px solid var(--primary);border-radius:6px;background:var(--primary-soft);color:var(--primary)}.day-event b,.day-event span{display:block}.day-event span{font-size:11px;margin-top:3px}.day-event.cancelled{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.status.completed{background:#edf0f4;color:#687284}.attendance-history-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px}.attendance-sessions h4{margin:20px 4px 8px;color:var(--muted);font-size:12px}.session-button{display:grid;width:100%;gap:4px;margin-bottom:7px;padding:13px;border:1px solid transparent;border-radius:11px;background:transparent;text-align:left}.session-button:hover{background:#f7f8fb}.session-button.active{border-color:#d7d2ff;background:var(--primary-soft);box-shadow:inset 3px 0 0 var(--primary)}.session-button time{font-size:11px;color:var(--muted)}.session-button small{font-size:11px}.attendance-summary{display:flex;align-items:center;gap:8px}.save-state{padding:6px 10px;border-radius:20px;font-size:11px;font-weight:800}.save-state.dirty{background:var(--warning-soft);color:var(--warning)}.save-state.saved{background:var(--success-soft);color:var(--success)}.attendance-item.has-selection{background:#fcfcff}.segmented button{display:flex;align-items:center;justify-content:center;gap:6px;font-weight:700;transition:.15s}.segmented button.active{box-shadow:0 2px 7px #161f3026;transform:translateY(-1px)}.selection-dot{width:7px;height:7px;border-radius:50%;background:#aeb5c1}.segmented button.active[data-status=present] .selection-dot{background:var(--success)}.segmented button.active[data-status=absent] .selection-dot{background:var(--danger)}.segmented button.active[data-status=note] .selection-dot{background:var(--warning)}.sticky-save.dirty{border-color:#e8ca8b;background:#fffaf0}@media(max-width:900px){.calendar-toolbar{align-items:flex-start;flex-direction:column}.calendar-controls{width:100%;overflow:auto}.attendance-history-layout{grid-template-columns:1fr}.attendance-sessions{display:flex;align-items:stretch;gap:8px;overflow:auto}.attendance-sessions .panel-head,.attendance-sessions h4{display:none}.session-button{min-width:180px;margin:0}.notion-calendar,.week-calendar{min-width:760px}}@media(max-width:560px){.calendar-controls .secondary{padding-inline:10px}.calendar-controls .primary{white-space:nowrap}.view-switch button{padding-inline:11px}.attendance-summary{align-items:flex-end;flex-direction:column}.attendance-item.has-selection{border-left:3px solid #d7d2ff}}.auth-page{display:grid;place-items:center;margin:0;min-height:100vh;padding:24px;background:linear-gradient(135deg,#111827,#27375d)}.auth-card{width:min(430px,100%);padding:34px;border-radius:22px;background:#fff;box-shadow:0 30px 80px #0000004d}.auth-brand{display:flex;align-items:center;gap:12px;margin-bottom:30px}.auth-brand b,.auth-brand small{display:block}.auth-brand small{margin-top:3px}.auth-form{display:grid;gap:15px;margin-top:24px}.auth-form label{display:grid;gap:7px;font-size:13px;font-weight:700}.auth-form input{padding:12px;border:1px solid #dfe3eb;border-radius:10px}.password-guidance{font-weight:500;line-height:1.5}.auth-error{padding:11px;border-radius:9px;background:var(--danger-soft);color:var(--danger);font-size:13px}.emulator-hint{display:block;margin-top:18px;line-height:1.5}.firebase-session-bar{position:fixed;top:12px;right:18px;z-index:90;display:flex;align-items:center;gap:8px;padding:7px 10px;border:1px solid #dfe6de;border-radius:12px;background:#fffffff2;box-shadow:0 6px 20px #141e2d1f;font-size:11px}.firebase-session-bar button{border:0;background:transparent;color:var(--primary);font-weight:700}.app-error-card .primary{width:100%;margin-top:16px}.google-button{display:flex;align-items:center;justify-content:center;gap:11px;width:100%;margin-top:24px;padding:12px;border:1px solid #d8dce5;border-radius:10px;background:#fff;color:#303746;font-weight:700}.google-button:hover{background:#f8f9fb}.google-mark{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:conic-gradient(from -45deg,#4285f4 0,#4285f4 25%,#34a853 0,#34a853 50%,#fbbc05 0,#fbbc05 75%,#ea4335 0);color:#fff;font-size:12px;font-weight:900}.google-identity-button{display:grid;place-items:center;width:100%;min-height:44px;margin-top:24px;color:var(--muted);font-size:13px}.google-identity-button>div,.google-identity-button iframe{max-width:100%!important}.auth-divider{display:flex;align-items:center;gap:12px;margin:20px 0 -7px;color:var(--muted);font-size:11px}.auth-divider:before,.auth-divider:after{content:"";height:1px;flex:1;background:var(--line)}.auth-success{padding:11px 12px;border-radius:10px;background:#ecfdf5;color:#047857;font-size:13px}.auth-links{display:flex;justify-content:space-between;gap:12px;margin-top:14px}.auth-links button{border:0;background:transparent;color:#6d28d9;cursor:pointer;padding:4px 0;font:inherit;font-size:13px}@media(max-width:760px){.firebase-session-bar{position:static;justify-content:center;border-radius:0}.firebase-session-bar span{display:none}.auth-card{padding:25px}}.student-calendar>.calendar-toolbar{padding:18px 20px}.student-calendar-list{margin-top:18px}.student-calendar .calendar-day:focus-visible{outline:3px solid rgba(109,94,252,.3);outline-offset:-3px}.student-calendar .calendar-event{pointer-events:none}@media(max-width:560px){.student-calendar .calendar-controls{display:grid;grid-template-columns:auto auto auto 1fr}.student-calendar .calendar-controls select{grid-column:1/-1;width:100%}.student-calendar .view-switch{justify-self:end}.student-calendar .notion-calendar{min-width:0}.student-calendar .calendar-week-head div{padding:9px 2px}.student-calendar .calendar-day{min-height:74px;padding:4px}.student-calendar .calendar-day>span{width:22px;height:22px;margin:0;font-size:11px}.student-calendar .calendar-event{height:7px;margin:3px 2px;padding:0;border-radius:10px;font-size:0}.student-calendar .calendar-day>small{display:none}.student-calendar-list{padding:16px}.student-calendar-list .panel-head{align-items:flex-start}.student-calendar .student-lessons article{align-items:flex-start;flex-wrap:wrap}.student-calendar .student-lessons article>button{width:100%}}body{font-size:17px;line-height:1.55}button,input,select,textarea{font-size:16px}small{font-size:14px;line-height:1.45}.brand strong{font-size:19px}.brand small,.sidebar-user small{font-size:14px}.sidebar nav button{font-size:16px}.topbar h1{font-size:30px}.panel-head h2{font-size:21px}.notice p,.booking-card p,.sticky-save span,.ticket-card>span,.modal label,.auth-form label,.auth-error,.auth-success,.auth-links button,.app-lesson-card p{font-size:15px}.status,.progress,.date-label span,.lesson-info span,.booking-date span,.cell-subtitle,.mini-actions button,.calendar-week-head div,.calendar-day>span{font-size:13px}.calendar-event{font-size:12px}.day-hours time,.day-event span,.session-button time,.session-button small,.save-state,.firebase-session-bar,.auth-divider{font-size:13px}th,.balance-card span{font-size:14px}.calendar-day>span{width:34px;height:34px;font-size:18px;font-weight:800}.week-date b{font-size:23px}@media(max-width:760px){body{font-size:16px}.topbar h1{font-size:26px}.topbar .primary{font-size:15px}.stats small{font-size:13px}}@media(max-width:560px){.student-calendar .calendar-day>span{width:26px;height:26px;font-size:14px}}.skip-link{position:fixed;left:16px;top:-60px;z-index:300;padding:12px 16px;border-radius:10px;background:#fff;color:var(--primary);font-weight:800;box-shadow:var(--shadow)}.skip-link:focus{top:16px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(98,87,217,.38);outline-offset:2px}#main-content:focus{outline:none}.table-actions{display:flex;gap:7px;flex-wrap:wrap}.table-actions button{white-space:nowrap}.expiry-lines{color:var(--muted);font-size:14px;line-height:1.65}.ticket-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:18px}.ticket-card-grid .ticket-card{margin:0}.split-balance{min-width:340px}.split-balance>div{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:12px 0}.split-balance>div span{display:grid;padding:12px;border-radius:12px;background:#ffffff24}.split-balance>div b{font-size:25px}.modal label small{display:block;margin-top:6px;color:var(--muted);font-weight:500}.modal .notice.full{margin:0}.modal-summary.full{grid-column:1/-1}@media(max-width:760px){.ticket-card-grid{grid-template-columns:1fr}.split-balance{min-width:0}.table-actions{min-width:170px}}.legal-hero{padding:26px 28px;margin-bottom:18px;border-radius:20px;background:linear-gradient(135deg,#242f49,#5a4bd8);color:#fff;box-shadow:var(--shadow)}.legal-hero h2{margin:6px 0 10px;font-size:28px}.legal-hero p{max-width:720px;margin:0 0 12px;color:#ffffffdb}.legal-hero span,.legal-hero small{color:#ffffffb8}.legal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.legal-grid article{margin:0}.legal-grid h3{margin:0 0 14px}.legal-grid p,.legal-grid li{color:var(--muted);line-height:1.75}.legal-grid ul{margin:0;padding-left:22px}.operator-card{grid-column:1/-1}.operator-card dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}.operator-card dl div{display:grid;grid-template-columns:110px 1fr;padding:10px 0;border-bottom:1px solid var(--line)}.operator-card dt{color:var(--muted)}.operator-card dd{margin:0;font-weight:700}.operator-card a{color:var(--primary)}@media(max-width:760px){.legal-grid{grid-template-columns:1fr}.operator-card{grid-column:auto}.operator-card dl{grid-template-columns:1fr}.legal-hero{padding:22px}.legal-hero h2{font-size:24px}}.course-guide-hero{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:28px;margin-bottom:18px;border-radius:20px;background:linear-gradient(135deg,#252f49,#6252d8);color:#fff;box-shadow:var(--shadow)}.course-guide-hero h2{max-width:720px;margin:6px 0 10px;font-size:28px}.course-guide-hero p{margin:0;color:#ffffffd1}.course-guide-hero small{color:#ffffffb3}.course-guide-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.course-guide-card{display:flex;flex-direction:column;margin:0;min-height:320px}.course-guide-card.is-inactive{opacity:.68}.course-guide-badges{display:flex;align-items:center;gap:7px}.course-guide-badges>span{padding:5px 9px;border-radius:20px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:800}.course-guide-badges .status{margin-left:auto}.course-guide-card h3{margin:18px 0 8px;font-size:22px}.course-guide-card>p{margin:0;color:var(--muted);line-height:1.7}.course-guide-preview{display:grid;gap:5px;margin:18px 0;padding:14px;border-radius:12px;background:var(--surface-soft)}.course-guide-preview span{color:var(--muted)}.course-guide-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:auto}.course-guide-detail .guide-summary{padding:15px;border-radius:12px;background:var(--primary-soft);color:var(--primary);font-weight:700}.course-guide-detail section{padding:17px 0;border-bottom:1px solid var(--line)}.course-guide-detail section h3{margin:0 0 9px}.course-guide-detail section p{margin:0;color:var(--muted);line-height:1.8;white-space:pre-line}.course-guide-editor textarea{min-height:100px}.guide-link{display:block;margin-top:7px;padding:0;border:0;background:transparent;color:var(--primary);font-size:14px;font-weight:800;text-align:left;text-decoration:underline;text-underline-offset:3px}.guide-link:hover{color:#4c3ac2}@media(max-width:820px){.course-guide-grid{grid-template-columns:1fr}.course-guide-hero{align-items:flex-start;flex-direction:column}.course-guide-hero h2{font-size:24px}}@media(max-width:560px){.course-guide-hero{padding:22px}.course-guide-actions>*{flex:1}.course-guide-card{min-height:0}}.course-kind-label{display:block;margin-top:17px;color:var(--muted);font-weight:800}.course-guide-card .course-kind-label+h3{margin-top:3px}.schedule-builder{display:grid;grid-template-columns:290px minmax(0,1fr);gap:18px}.schedule-canvas{display:grid;min-width:0;gap:18px}.course-template-tray{align-self:start;margin:0;padding:18px;position:sticky;top:22px}.course-template-tray .panel-head{margin-bottom:8px}.tray-help{margin:0 0 14px;color:var(--muted);font-size:14px}.course-template-list{display:grid;gap:9px}.course-template-list article{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px;border:1px solid #dcd9f7;border-radius:12px;background:#faf9ff;cursor:grab;transition:.15s}.course-template-list article:hover{border-color:var(--primary);box-shadow:0 6px 18px #4334a01a;transform:translateY(-1px)}.course-template-list article:active{cursor:grabbing}.course-template-list article b,.course-template-list article small{display:block}.course-template-list article small{color:var(--muted)}.course-template-list article button{padding:7px 9px}.drag-handle{color:var(--primary);font-size:22px;line-height:1}.calendar-day.drop-ready,.week-column.drop-ready,.day-calendar.drop-ready{background:#efedff;box-shadow:inset 0 0 0 3px var(--primary)}.linked-course-kind{display:inline-block;margin-top:7px;padding:4px 8px;border-radius:7px;background:var(--primary-soft);color:var(--primary);font-size:13px;font-weight:800}.lesson-card-actions{display:flex;align-items:center;gap:8px;margin-left:auto}.guide-button{border-color:#cfc8ff;color:var(--primary);white-space:nowrap}.student-lessons .lesson-card-actions>button{min-width:110px}@media(max-width:1180px){.schedule-builder{grid-template-columns:1fr}.course-template-tray{position:static}.course-template-list{display:flex;overflow-x:auto}.course-template-list article{min-width:260px}}@media(max-width:560px){.lesson-card-actions{width:100%;margin-left:0}.lesson-card-actions>button{flex:1}.course-template-list article{min-width:250px}.course-template-tray{padding:15px}.course-guide-actions>*{flex:auto}}:root{--navy:#123e61;--navy-2:#0e6faa;--bg:#f4f8fb;--panel:#fff;--line:#dce7ee;--text:#41444a;--muted:#73818d;--primary:#1375ba;--primary-soft:#e8f4fb;--danger:#ef765f;--danger-soft:#fff0ec;--success:#16846f;--success-soft:#e8f7f2;--warning:#c98f27;--warning-soft:#fff7df;--coral:#f47760;--gold:#d7a13a;--shadow:0 12px 32px rgba(20,78,114,.08)}body{background:linear-gradient(145deg,#f8fbfd 0,#f1f7fa 55%,#fffaf0);color:var(--text)}.sidebar{width:264px;padding:20px 18px;background:#fffffff7;color:var(--text);border-right:1px solid #d9e6ed;box-shadow:8px 0 30px #11537c0f}.brand{display:block;padding:0 7px 20px;border-bottom:1px solid #e6eef3}.brand-logo{display:block;width:210px;height:auto;margin:auto;object-fit:contain}.brand-copy{display:none}.sidebar nav{gap:5px;margin-top:18px}.sidebar nav button{color:#667987;font-weight:700}.sidebar nav button:hover{background:#eef7fc;color:var(--primary)}.sidebar nav button.active{background:linear-gradient(90deg,#e4f3fb,#f4faff);color:var(--primary);box-shadow:inset 4px 0 0 var(--coral)}.sidebar nav button.active span{color:var(--coral)}.nav-badge{background:var(--coral)}.sidebar-service-button{display:flex;align-items:center;gap:9px;width:100%;margin-top:auto;padding:9px 12px;border:1px solid #dbe7ed;border-radius:10px;background:#f8fbfc;color:#61727d;font-size:13px;font-weight:700;text-align:left}.sidebar-service-button:hover,.sidebar-service-button:focus-visible{border-color:#9bc7df;background:#edf7fc;color:var(--primary)}.sidebar-service-button span{color:var(--gold)}.sidebar-user{margin-top:9px;padding:13px 8px 0;border-color:#dce7ed}.sidebar-user small{color:#81909a}.avatar{background:linear-gradient(135deg,var(--primary),#3aa0d4)}main{margin-left:264px}.topbar{padding-bottom:15px;border-bottom:1px solid #dae7ee}.topbar h1{color:#35444d}.topbar-actions{display:flex;align-items:center;gap:8px}.primary{background:linear-gradient(135deg,var(--primary),#1993ce);box-shadow:0 7px 18px #1375ba38}.primary:hover{background:#0f689f}.secondary{border-color:#d6e3e9;color:#536975}.danger-button{background:var(--coral)}.text-button{color:var(--primary)}.panel,.stats article,.student-lessons article,.booking-card{border-color:#dce8ee;box-shadow:var(--shadow)}.panel{border-radius:16px}.notice.info{background:#e9f5fb;color:#0f669e}.notice.info button{color:#0f669e}.view-switch{background:#e8f0f4}.view-switch button.active{color:var(--primary)}.student-hero{background:linear-gradient(125deg,#106fae,#218fc6 62%,#f17c65 140%);box-shadow:0 18px 38px #12679c33}.ticket-card{background:linear-gradient(135deg,#105f95,#1685bd)}.calendar-event,.day-event{background:var(--primary-soft);color:var(--primary)}.calendar-day.today>span{background:var(--coral)}.calendar-day.drop-ready,.week-column.drop-ready,.day-calendar.drop-ready{background:#e8f6fc;box-shadow:inset 0 0 0 3px var(--coral)}.linked-course-kind{background:#fff5df;color:#9b6a0f}.status.fixed{background:var(--primary-soft);color:var(--primary)}.course-template-tray{border-top:4px solid var(--gold)}.course-template-tray .panel-head{align-items:center}.template-add-button{border:0;border-radius:9px;padding:8px 10px;background:#fff1d1;color:#8b6317;font-size:13px;font-weight:800}.course-template-list article{display:block;padding:0;overflow:hidden;border-color:#d9e7ee;background:#fff;cursor:default}.course-template-list article:hover{border-color:#86bfdc;box-shadow:0 7px 20px #126c9e1a}.course-template-list article.is-inactive{opacity:.62}.template-drag-source{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:9px;padding:12px;background:linear-gradient(135deg,#f7fbfd,#eef7fb);cursor:grab}.template-drag-source:active{cursor:grabbing}.template-drag-source b,.template-drag-source small{display:block}.template-drag-source small{color:var(--muted)}.drag-handle{color:var(--coral)}.template-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;padding:7px;border-top:1px solid #e5edf1}.template-actions button{padding:7px 5px;font-size:12px}.template-delete-button{border:0;border-radius:7px;background:transparent;color:var(--danger);font-weight:800}.template-delete-button:hover{background:var(--danger-soft)}.template-place-button{border:0;border-radius:7px;background:var(--primary);color:#fff;font-weight:800}.template-place-button:disabled{background:#c4cfd5}.course-guide-badges>span{background:var(--primary-soft);color:var(--primary)}.course-guide-detail .guide-summary{background:var(--primary-soft);color:var(--primary)}.legal-hero{background:linear-gradient(130deg,#106fae,#238fc4 70%,#d8a23a 140%)}.auth-page{background:linear-gradient(145deg,#eaf5fb,#fff8e8)}.auth-card{border:1px solid #d8e6ed;box-shadow:0 28px 80px #0f557e33}.auth-brand{justify-content:center}.auth-brand img{width:min(250px,100%);height:auto;object-fit:contain}.google-button{border-color:#d4e2e9}.firebase-session-bar{border-color:#d4e7de}.auth-links button{color:var(--primary)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline-color:#1475b966}@media(max-width:900px){.schedule-builder{grid-template-columns:1fr}.course-template-tray{position:static}.course-template-list{display:flex;overflow-x:auto}.course-template-list article{min-width:290px}}@media(max-width:760px){.sidebar{position:relative;width:auto;padding:12px 14px;border-right:0;border-bottom:1px solid #dce7ed}.brand{display:flex;align-items:center;width:max-content;padding:0;border:0}.brand-logo{width:145px;height:auto;margin:0}.sidebar nav{margin-top:9px}.sidebar-service-button{position:absolute;top:34px;right:14px;width:auto;margin:0;padding:7px 10px}main{margin-left:0}.topbar-actions{flex-wrap:wrap;justify-content:flex-end}.auth-brand img{width:min(220px,100%);height:auto}}@media(max-width:560px){.topbar{gap:10px}.topbar-actions{gap:5px}.topbar-actions button{padding:8px}.template-actions{grid-template-columns:repeat(2,1fr)}}.level-range-field{display:grid;align-content:start;gap:8px}.level-range-head{display:flex;align-items:center;justify-content:space-between;gap:12px;font-size:15px;font-weight:700}.level-range-head b{padding:3px 9px;border-radius:999px;background:var(--primary-soft);color:var(--primary);font-size:13px}.level-range-picker{display:grid;grid-template-columns:repeat(5,1fr);padding:4px;border:1px solid #d6e3e9;border-radius:12px;background:#f7fafc;touch-action:none;-webkit-user-select:none;user-select:none}.level-range-picker button{position:relative;min-width:0;padding:11px 3px;border:0;background:transparent;color:#8b99a3;font-size:13px;font-weight:800}.level-range-picker button.selected{background:#dbeef9;color:var(--primary)}.level-range-picker button.range-start{border-radius:999px 0 0 999px}.level-range-picker button.range-end{border-radius:0 999px 999px 0}.level-range-picker button.range-start.range-end{border-radius:999px;background:var(--primary);color:#fff;box-shadow:0 3px 10px #1375ba40}.level-range-picker button.range-start:not(.range-end):before,.level-range-picker button.range-end:not(.range-start):before{content:"";position:absolute;top:4px;right:4px;bottom:4px;left:4px;border:2px solid var(--primary);border-radius:999px}.level-range-field>small{color:var(--muted)}.attendance-page-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px;padding:18px 20px}.attendance-page-head h2{margin:3px 0 0}.attendance-page-actions{display:flex;align-items:center;gap:8px}.attendance-page-actions select{min-width:150px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:#fff}.attendance-sessions{max-height:calc(100vh - 250px);overflow:auto}.reservation-success-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.reservation-success-modal{max-width:480px;text-align:center;border-top:5px solid var(--success)}.success-symbol{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 14px;border-radius:50%;background:var(--success-soft);color:var(--success);font-size:34px;font-weight:900;box-shadow:0 0 0 10px #16846f12}.reservation-success-modal>small{color:var(--success);font-weight:800}.reservation-success-modal h2{margin:5px 0 10px}.reservation-success-modal>p{margin:0;color:var(--muted)}.reservation-success-modal .confirm-list{text-align:left}.reservation-success-modal .modal-actions{justify-content:center}.reservation-success-modal .modal-actions button{min-width:130px}@media(max-width:760px){.attendance-page-head{align-items:flex-start;flex-direction:column}.attendance-page-actions{width:100%}.attendance-page-actions>*{flex:1}.attendance-sessions{max-height:none}.level-range-picker button{font-size:12px}.reservation-success-modal .modal-actions{display:grid;grid-template-columns:1fr 1fr}}@media(max-width:760px){html,body,#root{max-width:100%;overflow-x:hidden}main,.page,.student-calendar{min-width:0;max-width:100%}.sidebar nav{scroll-snap-type:x proximity;overscroll-behavior-x:contain;padding-bottom:3px}.sidebar nav button{min-height:44px;scroll-snap-align:start}.sidebar-service-button,.topbar-actions button,.attendance-page-actions button,.lesson-card-actions button,.modal-actions button,.auth-links button,.google-button{min-height:44px}.course-template-list{overscroll-behavior-x:contain;scroll-snap-type:x proximity}.course-template-list article{scroll-snap-align:start}.modal{max-height:calc(100dvh - 24px);overflow-y:auto}}@supports (padding:max(0px)){@media(max-width:760px){.sidebar{padding-top:max(12px,env(safe-area-inset-top));padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}main:not(.auth-page){padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom))}.auth-page{padding-top:max(24px,env(safe-area-inset-top));padding-right:max(24px,env(safe-area-inset-right));padding-bottom:max(24px,env(safe-area-inset-bottom));padding-left:max(24px,env(safe-area-inset-left))}.modal-backdrop{padding-top:max(12px,env(safe-area-inset-top));padding-right:max(12px,env(safe-area-inset-right));padding-bottom:max(12px,env(safe-area-inset-bottom));padding-left:max(12px,env(safe-area-inset-left))}#toast{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));left:max(14px,env(safe-area-inset-left))}}}@media(max-width:760px){body{font-size:15px}button,input,select,textarea{font-size:14px}small{font-size:12px}button,.status,.save-state,.progress,.sidebar nav button,.topbar-actions button,.attendance-page-actions button,.lesson-card-actions button,.table-actions button{word-break:keep-all;overflow-wrap:normal;white-space:nowrap}.sidebar nav{gap:2px}.sidebar nav button{flex:0 0 auto;padding:10px 11px;font-size:14px;line-height:1.2}.topbar h1{font-size:24px}.panel-head h2{font-size:19px}.topbar-actions button{padding-inline:10px;font-size:13px}.attendance-item{padding-inline:4px}.segmented button{padding:9px 4px;font-size:13px;white-space:nowrap;word-break:keep-all}.sticky-save span{max-width:none;font-size:12px}.student-table-wrap{overflow:visible}.student-table-wrap table,.student-table-wrap tbody,.student-table-wrap tr,.student-table-wrap td{display:block;width:100%}.student-table-wrap thead{display:none}.student-table-wrap tbody{display:grid;gap:12px}.student-table-wrap tr{padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:0 6px 18px #144e720d}.student-table-wrap td{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:7px 0;border:0;white-space:normal;word-break:keep-all}.student-table-wrap td:first-child{display:block;padding:0 0 10px;border-bottom:1px solid var(--line)}.student-table-wrap td:nth-child(2):before{content:"연락처"}.student-table-wrap td:nth-child(3):before{content:"상태"}.student-table-wrap td:nth-child(4):before{content:"단체 수강권"}.student-table-wrap td:nth-child(5):before{content:"개인 수강권"}.student-table-wrap td:nth-child(6):before{content:"유효기간"}.student-table-wrap td:not(:first-child):not(:last-child):before{flex:0 0 auto;color:var(--muted);font-size:12px;font-weight:800}.student-table-wrap td:last-child{display:block;padding-top:10px}.student-table-wrap .table-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));min-width:0}.student-table-wrap .table-actions button{width:100%;min-width:0;padding:9px 5px;font-size:12px}}@media(max-width:380px){.sidebar nav{gap:0}.sidebar nav button{padding-inline:7px;font-size:12px}.topbar{align-items:stretch;flex-wrap:wrap}.topbar-actions{width:100%}.topbar-actions button{flex:1;min-width:0}.attendance-page-actions{display:grid;grid-template-columns:1fr}.attendance-page-actions>*{width:100%}.attendance-summary{align-items:flex-start}.sticky-save{align-items:stretch;flex-direction:column}.sticky-save button{width:100%}}.schedule-output-button{white-space:nowrap}.schedule-output-scope{min-height:42px;padding:8px 32px 8px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--text);font-weight:700;white-space:nowrap}.student-more{min-width:138px}.student-more summary{padding:9px 12px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--primary);font-weight:800;text-align:center;cursor:pointer;list-style:none}.student-more summary::-webkit-details-marker{display:none}.student-more summary:after{content:"⌄";margin-left:7px}.student-more[open] summary:after{content:"⌃"}.student-more-menu{display:grid;gap:6px;margin-top:7px}.student-more-menu button{width:100%;padding:8px 10px;white-space:nowrap}.student-more-menu .danger-button{border-radius:9px}.number-stepper{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;gap:7px}.number-stepper button{border:1px solid #cbdde7;border-radius:10px;background:var(--primary-soft);color:var(--primary);font-size:24px;font-weight:900}.number-stepper input{text-align:center;font-size:18px;font-weight:800}.attendance-export-modal label{display:grid;gap:8px;margin:18px 0;font-weight:800}.attendance-export-modal label select{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff}.attendance-export-modal label small{color:var(--muted);font-weight:500}@media(max-width:1100px){.calendar-controls{flex-wrap:wrap}}@media(max-width:760px){.calendar-controls{overflow:visible}.schedule-output-scope{flex:1 1 100%;width:100%}.schedule-output-button{flex:1 1 calc(50% - 6px)}.calendar-controls>.primary{flex:1 1 100%}.student-more{width:100%}.student-more-menu{grid-template-columns:repeat(2,minmax(0,1fr))}.student-more-menu button:last-child{grid-column:1/-1}}
