:root{--brand-900: #1f2a5e;--brand-700: #2e3d86;--brand-600: #3a4c9e;--brand-500: #4d61b8;--brand-200: #c9d0ec;--brand-100: #e6e9f6;--brand-50: #f3f5fb;--gray-900: #0f172a;--gray-800: #1e293b;--gray-700: #334155;--gray-600: #475569;--gray-500: #64748b;--gray-400: #94a3b8;--gray-300: #cbd5e1;--gray-200: #e2e8f0;--gray-100: #f1f5f9;--gray-50: #f8fafc;--white: #ffffff;--danger-600: #dc2626;--danger-50: #fef2f2;--success-600: #16a34a;--success-50: #f0fdf4;--warning-600: #d97706;--warning-50: #fffbeb;--accent-blue: #2563eb;--accent-blue-soft: #e8efff;--accent-orange: #ea580c;--accent-orange-soft: #ffeedd;--accent-green: #15803d;--accent-green-soft: #e3f6e8;--accent-purple: #7c3aed;--accent-purple-soft: #efe8fd;--accent-teal: #0f766e;--accent-teal-soft: #dcf5f1;--brand-naver: #03c75a;--brand-kakao: #fee500;--brand-kakao-text: #191919;--color-primary: var(--brand-700);--color-primary-hover: var(--brand-900);--color-primary-soft: var(--brand-50);--color-text: var(--gray-800);--color-text-sub: var(--gray-500);--color-text-faint: var(--gray-400);--color-border: var(--gray-200);--color-bg: #f2f4f8;--color-surface: var(--white);--font-sans: "Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, system-ui, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--text-xs: .75rem;--text-sm: .875rem;--text-md: 1rem;--text-lg: 1.125rem;--text-xl: 1.375rem;--text-2xl: 1.75rem;--weight-normal: 400;--weight-medium: 600;--weight-bold: 700;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 20px;--radius-full: 999px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--shadow-sm: 0 1px 3px rgba(15, 23, 42, .06);--shadow-md: 0 8px 24px rgba(15, 23, 42, .12);--color-overlay: rgba(15, 23, 42, .55);--z-nav: 900;--z-sheet: 1000;--z-dialog: 2000000;--z-toast: 3000;--gradient-primary: linear-gradient(135deg, var(--brand-700) 0%, var(--brand-500) 100%);--primary-color: var(--brand-700);--transition-smooth: all .2s ease}body{margin:0;padding:0;font-family:var(--font-sans);background-color:var(--color-bg);color:var(--color-text);min-height:100vh;-webkit-font-smoothing:antialiased;word-break:keep-all;overflow-wrap:break-word}*{box-sizing:border-box}.ui-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;min-height:44px;padding:0 var(--space-4);border-radius:var(--radius-md);border:1px solid transparent;font:inherit;font-size:var(--text-sm);font-weight:var(--weight-bold);line-height:1.2;white-space:nowrap;cursor:pointer;transition:background .15s,border-color .15s,color .15s;box-sizing:border-box}.ui-btn small{font-size:.68rem;font-weight:var(--weight-medium);opacity:.8}.ui-btn:disabled{background:var(--gray-100)!important;border-color:var(--gray-200)!important;color:var(--gray-400)!important;cursor:default}.ui-btn-primary{background:var(--color-primary);color:var(--white)}.ui-btn-primary:hover{background:var(--color-primary-hover)}.ui-btn-secondary{background:var(--white);color:var(--color-primary);border-color:var(--brand-200)}.ui-btn-secondary:hover{background:var(--brand-50)}.ui-btn-danger{background:var(--white);color:var(--danger-600);border-color:#fecaca}.ui-btn-danger:hover{background:var(--danger-50)}.ui-btn-ghost{background:var(--gray-100);color:var(--gray-700)}.ui-btn-ghost:hover{background:var(--gray-200)}.ui-btn-text{background:none;color:var(--gray-600);min-height:0;padding:var(--space-1) var(--space-2)}.ui-btn-sm{min-height:36px;padding:0 var(--space-3);font-size:var(--text-xs)}.ui-btn-lg{min-height:52px;font-size:var(--text-md)}.ui-btn-block{width:100%}.ui-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm)}.ui-page-title{margin:0;font-size:var(--text-xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:1.3}.ui-section-title{margin:var(--space-5) 0 var(--space-2);font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.ui-sub{font-size:var(--text-xs);color:var(--color-text-sub);font-weight:var(--weight-medium)}.ui-badge{display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:var(--radius-full);font-size:.7rem;font-weight:var(--weight-bold);line-height:1.5;white-space:nowrap;background:var(--gray-100);color:var(--gray-600)}.ui-badge-brand{background:var(--brand-100);color:var(--brand-700)}.ui-badge-solid{background:var(--brand-700);color:var(--white)}.ui-badge-danger{background:var(--danger-50);color:var(--danger-600)}.ui-badge-solid-danger{background:var(--danger-600);color:var(--white)}.ui-badge-success{background:var(--success-50);color:var(--success-600)}.ui-badge-warning{background:var(--warning-50);color:var(--warning-600)}.ui-tag{display:inline-flex;align-items:center;padding:1px 6px;border-radius:4px;font-size:.7rem;font-weight:var(--weight-bold);line-height:1.5;white-space:nowrap;background:var(--gray-100);color:var(--gray-600)}.ui-tag-online{background:var(--accent-blue-soft);color:var(--accent-blue)}.ui-stat{text-align:center}.ui-stat-label{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-sub)}.ui-stat-value{font-size:var(--text-2xl);font-weight:var(--weight-bold);line-height:1.2;color:var(--color-text)}.ui-stat-value small{font-size:var(--text-sm);font-weight:var(--weight-medium);margin-left:2px}.ui-divider{height:1px;background:var(--color-border);margin:var(--space-3) 0;border:none}.ui-hero{background:linear-gradient(135deg,var(--brand-700) 0%,var(--brand-500) 100%);color:var(--white);border:none;border-radius:var(--radius-lg);box-shadow:0 8px 20px #2e3d8640}.ui-hero .ui-sub,.ui-hero .ui-stat-label{color:#ffffffc7}.ui-hero .ui-stat-value{color:var(--white)}.ui-hero .ui-divider{background:#fff3}.ui-hero .ui-badge{background:#fff3;color:var(--white)}.ui-hero .ui-badge.live{background:var(--success-600)}.ui-hero .ui-btn-primary{background:var(--white);color:var(--brand-700)}.ui-hero .ui-btn-primary:hover{background:var(--brand-50)}.ui-hero .ui-btn-secondary{background:transparent;color:var(--white);border-color:#ffffff8c}.ui-hero .ui-btn-secondary:hover{background:#ffffff1f}.ui-hero .ui-btn-ghost{background:#ffffff26;color:var(--white)}.ui-hero .ui-btn-ghost:hover{background:#ffffff40}.ui-hero .ui-btn-text{color:var(--white)}.ui-hero .ui-alert{color:#fecaca}.ui-icon-circle{width:48px;height:48px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.ui-item{width:100%;display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);font:inherit;color:var(--color-text);text-align:left;box-sizing:border-box}button.ui-item{cursor:pointer;transition:transform .12s,box-shadow .12s,border-color .12s}button.ui-item:hover{border-color:var(--brand-200);transform:translateY(-1px);box-shadow:var(--shadow-md)}button.ui-item:after{content:"›";flex-shrink:0;margin-left:calc(var(--space-1) * -1);font-size:1.5rem;line-height:1;color:var(--gray-400)}.ui-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--space-3)}.ui-avatar{width:40px;height:40px;flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:var(--weight-bold);font-size:var(--text-md);background:var(--brand-100);color:var(--brand-700)}.ui-item-body{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.ui-item-title{display:flex;flex-wrap:wrap;align-items:center;gap:2px var(--space-2);font-weight:var(--weight-bold);font-size:var(--text-md);white-space:nowrap}.ui-item>.ui-badge{flex-shrink:0}.ui-item-meta{display:flex;align-items:center;gap:var(--space-1);flex-wrap:wrap;font-size:var(--text-sm);color:var(--color-text-sub)}.ui-item-meta b{color:var(--gray-700);font-weight:var(--weight-bold)}.ui-item-text{font-size:var(--text-sm);color:var(--gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ui-empty{padding:var(--space-6) var(--space-4);text-align:center;border:1.5px dashed var(--gray-300);border-radius:var(--radius-md);color:var(--color-text-sub);font-size:var(--text-sm);background:var(--color-surface)}.ui-empty strong{display:block;color:var(--color-text);font-size:var(--text-md);margin-bottom:var(--space-1)}.ui-hero .ui-stat-box{display:flex;align-items:baseline;justify-content:center;gap:var(--space-2);border-radius:var(--radius-md);padding:var(--space-2);background:var(--white)}.ui-hero .ui-stat-box .ui-stat-label{font-size:var(--text-sm)}.ui-hero .ui-stat-box .ui-stat-value{font-size:var(--text-xl)}.ui-hero .ui-stat-box .ui-stat-label,.ui-hero .ui-stat-box .ui-sub{color:var(--gray-500)}.ui-hero .ui-stat-box.main .ui-stat-value{color:var(--brand-700)}.ui-hero .ui-stat-box.main .ui-stat-value.ui-alert{color:var(--danger-600)}.ui-hero .ui-stat-box.sub .ui-stat-value{color:var(--gray-700)}.ui-hero .ui-pass-group{border-left:3px solid rgba(255,255,255,.45);padding-left:var(--space-3)}.ui-hero .ui-pass-counts{display:flex;flex-wrap:wrap;gap:2px var(--space-3);margin-top:var(--space-1);font-size:var(--text-sm);color:#ffffffd9}.ui-hero .ui-pass-counts b{margin:0 1px 0 2px;font-size:var(--text-md);color:var(--white)}.ui-hero .ui-pass-counts b.is-zero{color:#fde68a}.ui-close{width:36px;height:36px;flex-shrink:0;border-radius:50%;border:none;background:var(--gray-100);color:var(--gray-600);font-size:1.05rem;font-weight:var(--weight-bold);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;padding:0}.ui-close:hover{background:var(--gray-200);color:var(--gray-800)}.ui-sheet{width:92%;max-width:480px;max-height:90vh;overflow-y:auto;box-sizing:border-box;padding:var(--space-5);background:var(--color-surface);color:var(--color-text);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);text-align:left}.ui-sheet-wide{max-width:560px}.ui-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4)}.ui-sheet-title{margin:0;font-size:var(--text-lg);font-weight:var(--weight-bold);color:var(--color-text);line-height:1.4}.ui-sheet-sub{margin:var(--space-1) 0 0;font-size:var(--text-sm);color:var(--color-text-sub);line-height:1.5}.ui-sheet-actions{display:flex;gap:var(--space-2);margin-top:var(--space-5)}.ui-sheet-actions>.ui-btn{flex:1}.ui-sheet-actions>.ui-btn-primary{flex:2}.ui-sheet-actions.stack{flex-direction:column}.ui-input{display:block;width:100%;box-sizing:border-box;padding:var(--space-3);border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);font:inherit;font-size:var(--text-md);color:var(--color-text)}.ui-input:focus{outline:2px solid var(--brand-200);border-color:var(--color-primary)}.modal-overlay.ui-dialog-overlay{z-index:var(--z-dialog)}.ui-dialog{width:90%;max-width:26rem;box-sizing:border-box;padding:var(--space-5);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.ui-dialog-head{display:flex;align-items:flex-start;gap:var(--space-3)}.ui-dialog-icon{width:40px;height:40px;flex-shrink:0;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--brand-100);color:var(--brand-700)}.tone-warning .ui-dialog-icon{background:var(--warning-50);color:var(--warning-600)}.tone-danger .ui-dialog-icon{background:var(--danger-50);color:var(--danger-600)}.ui-dialog-message{flex:1;min-width:0;padding-top:2px;white-space:pre-line;word-break:keep-all;overflow-wrap:anywhere;display:flex;flex-direction:column;gap:var(--space-1)}.ui-dialog-title{font-size:var(--text-md);font-weight:var(--weight-bold);line-height:1.5;color:var(--color-text)}.ui-dialog-body{font-size:var(--text-sm);line-height:1.6;color:var(--color-text-sub)}.ui-dialog-input{margin-top:var(--space-4)}.ui-dialog-actions{display:flex;justify-content:flex-end;gap:var(--space-2);margin-top:var(--space-5)}.ui-dialog-actions .ui-btn{min-width:5.5rem}@media(max-width:768px){.modal-overlay.ui-dialog-overlay{align-items:center!important;padding:0 var(--space-4)!important}.modal-overlay>.ui-dialog{width:100%!important;max-width:26rem!important;max-height:80dvh!important;overflow-y:auto;border-radius:var(--radius-lg)!important;padding:var(--space-5) var(--space-4) var(--space-4)!important}.ui-dialog-actions .ui-btn{flex:1}}.ui-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-1)}.ui-card-action{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--white);color:var(--gray-700);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.4;white-space:nowrap;cursor:pointer}.ui-card-action:hover{background:var(--gray-50);border-color:var(--gray-300)}.ui-card-action svg{color:var(--gray-500);flex-shrink:0}.ui-card-action-done{color:var(--success-600)}.ui-card-action.is-live{background:var(--color-primary);border-color:var(--color-primary);color:var(--white)}.ui-card-action.is-live svg,.ui-card-action.is-live .ui-card-action-done{color:var(--white)}.ui-swipe-hint{position:relative;z-index:2;text-align:right;font-size:var(--text-xs);line-height:1.5;color:var(--gray-500);font-weight:var(--weight-medium);pointer-events:none;transition:opacity .2s}.scrolled>.ui-swipe-hint{opacity:0}.fits>.ui-swipe-hint{display:none}.ui-week-nav-wrap{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}.ui-week-nav{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);padding:6px var(--space-2);background:var(--gray-50);border:1px solid var(--gray-200);border-radius:16px;box-shadow:0 2px 6px #00000008;box-sizing:border-box}.ui-week-nav-arrow{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;flex-shrink:0;background:var(--white);border:1px solid var(--gray-300);border-radius:var(--radius-sm);font:inherit;font-size:1.15rem;line-height:1;color:var(--gray-800);cursor:pointer;transition:background .15s,border-color .15s}.ui-week-nav-arrow:hover:not(:disabled){background:var(--brand-50);border-color:var(--brand-200);color:var(--color-primary)}.ui-week-nav-arrow:disabled{background:transparent;border-color:transparent;opacity:.3;cursor:not-allowed}.ui-week-nav-label{display:flex;flex-direction:column;align-items:center;text-align:center;flex:1;min-width:150px}.ui-week-nav-title{font-size:1.02rem;font-weight:850;color:var(--color-primary);white-space:nowrap}.ui-week-nav-sub{margin-top:2px;font-size:.8rem;font-weight:var(--weight-bold);color:var(--gray-600);white-space:nowrap}.ui-week-nav-title+.ui-week-nav-sub{font-size:.78rem}.ui-week-nav-reset{padding:4px 12px;border:1px solid var(--gray-200);border-radius:var(--radius-full);background:var(--white);font:inherit;font-size:.75rem;font-weight:800;color:var(--color-primary);cursor:pointer;box-shadow:0 2px 5px #0000000a}.ui-week-nav-reset:hover{background:var(--brand-50)}.ui-week-nav-wrap.is-fill{flex:1;min-width:165px}.ui-week-nav-wrap.is-fill .ui-week-nav{width:100%;gap:var(--space-1);padding:4px}.ui-week-nav-wrap.is-fill .ui-week-nav-label{min-width:0}.ui-week-nav-wrap.is-fill .ui-week-nav-arrow{width:28px;height:30px;font-size:1rem}.ui-week-nav-wrap.is-fill .ui-week-nav-title{font-size:.9rem}.ui-week-nav-wrap.is-fill .ui-week-nav-sub{font-size:.7rem;letter-spacing:-.02em}.ui-switch{display:inline-flex;align-items:center;gap:6px;padding:2px 0;border:0;background:none;font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-sub);cursor:pointer}.ui-switch[aria-checked=true]{color:var(--color-primary)}.ui-switch-track{position:relative;flex-shrink:0;width:30px;height:18px;border-radius:var(--radius-full);background:var(--gray-300);transition:background .15s}.ui-switch-track:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--white);box-shadow:var(--shadow-sm);transition:transform .15s}.ui-switch[aria-checked=true] .ui-switch-track{background:var(--color-primary)}.ui-switch[aria-checked=true] .ui-switch-track:after{transform:translate(12px)}.ui-switch:disabled{opacity:.45;cursor:not-allowed}.ui-switch:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-sm)}.ui-switch-pending{padding:2px 8px;border:1px solid var(--warning-600);border-radius:var(--radius-full);background:var(--warning-50);font:inherit;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--warning-600);cursor:pointer}html{scrollbar-gutter:stable}#root{width:100%;min-height:100vh;display:flex;flex-direction:column}button{cursor:pointer;border:none;background:none;font-family:inherit;transition:var(--transition-smooth)}input,select,textarea{font-family:inherit;color:inherit}.scope-btn{display:flex;flex-direction:column;gap:.3rem;padding:1rem;border:1px solid #e2e8f0;border-radius:8px;background:#fff;text-align:left;cursor:pointer;transition:all .2s}.scope-btn:hover{background:#f8fafc;border-color:#cbd5e1}.rich-text-display p{margin:0!important;padding:0;line-height:inherit}.rich-text-display div,.rich-text-display li{line-height:inherit}.rich-text-display h1,.rich-text-display h2,.rich-text-display h3,.rich-text-display h4,.rich-text-display h5,.rich-text-display h6{line-height:1.3;margin-top:.3em;margin-bottom:.1em}.rich-text-display ul,.rich-text-display ol{margin:0;padding-left:1.4em}.rich-text-display hr{display:block;margin:6px 0;padding:0;border:none;border-top:1px solid #e2e8f0}.scope-btn strong{color:#1e293b;font-size:1rem}.scope-btn span{color:#64748b;font-size:.75rem}.scope-btn-danger:hover{background:#fef2f2;border-color:#fca5a5}.page-loading{padding:3rem 1rem;text-align:center;color:var(--gray-500);font-size:var(--text-sm)}@page{size:A4;margin:15mm}.scheduler-container{padding:0;background-color:transparent;min-height:100vh}.view-switcher{display:flex;justify-content:space-between;align-items:center;margin-top:0;margin-bottom:1.25rem;gap:1rem;flex-wrap:wrap}.switcher-main{display:flex;gap:.75rem;align-items:center;flex-wrap:wrap}.manager-controls{display:flex;gap:1rem}.btn-config{padding:.6rem 1.2rem;border-radius:12px;border:1px solid #e2e8f0;background:#fff;font-weight:700;color:#475569;cursor:pointer;transition:all .2s;box-shadow:0 2px 4px #0000000d}.btn-config:hover{background:#f8fafc;border-color:var(--color-primary);color:var(--color-primary)}.config-panel{background:#ffffffe6;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid #e2e8f0;border-radius:1.5rem;padding:1.5rem;margin-bottom:2rem;box-shadow:0 10px 25px -5px #0000001a}.config-section{margin-bottom:1.5rem}.config-section h4{margin:0 0 1rem;color:#1e293b;font-size:1rem}.day-toggles{display:flex;flex-wrap:wrap;gap:.5rem}.day-chip{padding:.5rem 1rem;border-radius:100px;border:2px solid #f1f5f9;background:#fff;color:#64748b;font-weight:700;cursor:pointer;transition:all .2s}.day-chip:hover{border-color:#e2e8f0;background:#f8fafc}.day-chip.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 4px 12px #2e3d864d}.time-select-group{display:flex;align-items:center;gap:.5rem;width:100%;box-sizing:border-box}.time-select-group select{flex:1;min-width:0;padding:.5rem 1.8rem .5rem .5rem;border-radius:10px;border:2px solid #e2e8f0;background-color:#fff!important;color:#1e293b!important;font-weight:700;font-size:.9rem;cursor:pointer;outline:none;-webkit-appearance:none;appearance:none;background-image:url(data:image/svg+xml;charset=UTF-8,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2224%22%20height%3D%2224%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22%23475569%22%20stroke-width%3D%222%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpolyline%20points%3D%226%209%2012%2015%2018%209%22%3E%3C%2Fpolyline%3E%3C%2Fsvg%3E);background-repeat:no-repeat;background-position:right .5rem center;background-size:.9rem;text-overflow:ellipsis;white-space:nowrap}.time-select-group select option{color:#1e293b;background-color:#fff}.time-select-group select:focus{border-color:var(--color-primary)}.time-select-group span{color:#64748b;font-weight:800;flex-shrink:0}.config-actions{display:flex;gap:1rem;margin-top:2rem}.btn-save-config{flex:1;padding:.8rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;font-weight:800;cursor:pointer;box-shadow:0 4px 12px #2e3d864d;transition:transform .2s}.btn-save-config:hover{transform:translateY(-2px)}.btn-cancel-config{flex:1;padding:.8rem;background:#f1f5f9;color:#475569;border:none;border-radius:12px;font-weight:700;cursor:pointer}.btn-cancel-config:hover{background:#e2e8f0}.teacher-btn-group{display:flex;align-items:stretch;background:#fff;border-radius:12px;box-shadow:0 1px 3px #00000014;border:1.5px solid #e2e8f0;overflow:hidden;height:38px;box-sizing:border-box}.btn-toggle{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 1.1rem;background:#fff;border:1.5px solid #e2e8f0;cursor:pointer;font-weight:700;font-size:.85rem;transition:all .2s;border-radius:12px;box-sizing:border-box}.teacher-btn-group .btn-toggle{height:100%;border:none;border-radius:0;padding:0 .9rem;background:transparent;color:#475569}.btn-toggle.active{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.teacher-btn-group .btn-toggle.active{background:var(--color-primary);color:#fff}.btn-edit-small{display:inline-flex;align-items:center;justify-content:center;padding:0 .6rem;background:transparent;border:none;cursor:pointer;font-size:.9rem;border-left:1px solid #e2e8f0;height:100%}.btn-add-teacher{display:inline-flex;align-items:center;justify-content:center;height:38px;padding:0 1.1rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:12px;font-size:.85rem;font-weight:700;cursor:pointer;box-shadow:0 4px 6px #2e3d8633;box-sizing:border-box}.scheduler-nav{position:relative;display:flex;justify-content:center;align-items:center;padding:1.5rem 2rem;background:#fff;border-bottom:1px solid #f1f5f9}.date-display{display:flex;align-items:center;gap:1.5rem}.date-display h3{margin:0;font-size:1.4rem;color:#1e293b;font-weight:800;min-width:150px;text-align:center}.btn-nav{width:36px;height:36px;border-radius:10px;border:none;background:#f1f5f9;color:var(--color-primary);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s}.btn-nav:hover{background:var(--brand-50);color:var(--color-primary);transform:scale(1.1)}.btn-nav svg{filter:drop-shadow(0 2px 4px rgba(46,61,134,.2))}.btn-today{position:absolute;right:2rem;padding:.5rem 1.25rem;border-radius:8px;border:1px solid #e2e8f0;background:#fff;color:#475569;font-weight:700;cursor:pointer;transition:all .2s}.btn-today:hover{background:#f8fafc;border-color:var(--color-primary);color:var(--color-primary)}.header-day{font-size:1rem;font-weight:800;color:#475569;text-transform:uppercase;letter-spacing:.02em;margin-bottom:2px}.header-date{display:block;font-size:1.15rem;font-weight:800;color:#1e293b;letter-spacing:-.01em;margin-bottom:6px}.scheduler-table-container{width:100%;overflow-x:auto}.scheduler-table{width:100%;min-width:100%;border-collapse:collapse;table-layout:fixed;text-align:center}.table-main-header{padding:1rem;color:#fff;font-size:1.2rem;font-weight:800}.sub-header th{background-color:#f9fafb;border:1px solid #e5e7eb;padding:.75rem;color:#4b5563;font-weight:700}.time-label{background-color:#f8fafc;border:1px solid #e2e8f0;border-bottom:2px solid #cbd5e1;font-weight:700;color:#4b5563;width:100px;padding:6px 4px 10px}.slot-cell{border:1px solid #e2e8f0;border-bottom:2px solid #cbd5e1;padding:4px 4px 10px;min-height:52px;vertical-align:top}.cell-stack{display:flex;flex-direction:column;gap:4px;height:100%}.inner-slot{font-size:.75rem;padding:5px 8px;border-radius:8px!important;font-weight:700;transition:all .2s ease;display:flex;flex-direction:column;justify-content:center;min-height:36px;height:auto;box-sizing:border-box;width:100%;overflow:hidden}.teacher-full-name{font-weight:800;font-size:.78rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%;text-align:left!important}.student-name{font-weight:800;text-align:right;white-space:nowrap;word-break:keep-all;overflow:hidden;text-overflow:ellipsis;min-width:0;max-width:100%}.inner-slot.open{flex-direction:row;justify-content:space-between;align-items:center}.inner-slot:hover{filter:brightness(.95);transform:translateY(-1px);box-shadow:0 2px 4px #0000000d}.teacher-full-name{font-weight:800;flex-shrink:0}.delete-hint{opacity:.5;font-size:1rem;line-height:1}.inner-slot:hover .delete-hint{opacity:1;color:#ef4444}.inner-slot.booked{border:1px solid rgba(0,0,0,.08);box-shadow:0 1px 2px #0000000d;border-radius:10px!important}.inner-slot.open{background-color:#f8fafc;color:#64748b;border:1px dashed #cbd5e1;flex-direction:row!important;align-items:center!important;justify-content:space-between!important}.open-text{color:#22c55e;font-weight:800;flex-shrink:0!important;margin-left:auto!important}.inner-slot.open .teacher-full-name{font-weight:600;color:#94a3b8}.inner-slot.open:not(.is-past){background-color:#fff}.inner-slot.open.is-past{background-color:#f1f5f9;border-color:#e2e8f0}.inner-slot.closed{background-color:#f1f5f9;color:#94a3b8;border:1px solid #e2e8f0;font-weight:700;flex-direction:row!important;align-items:center!important;justify-content:space-between!important}.closed-text{color:#ef4444;font-weight:900;text-shadow:0 0 8px rgba(239,68,68,.3);flex-shrink:0!important;margin-left:auto!important}.clickable-status{cursor:pointer;transition:all .2s;padding:2px 6px;border-radius:4px}.clickable-status:hover{background-color:#f1f5f9;transform:scale(1.1);box-shadow:0 2px 4px #0000001a}.is-global-holiday{background-color:#fef2f2!important}.is-global-holiday .header-day,.is-global-holiday .header-date{color:#ef4444!important}.teacher-initial{display:inline-block;width:16px;text-align:center;font-weight:800;margin-right:2px}.slot-part-1{border-bottom:none!important;border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;margin-bottom:0!important;padding-bottom:4px!important}.slot-part-2{border-top:1px solid rgba(0,0,0,.05)!important;border-top-left-radius:0!important;border-top-right-radius:0!important;margin-top:-1px!important;padding-top:4px!important}.slot-part-2 .student-name,.slot-part-2 .schedule-type-badge,.slot-part-2 .cancel-type-label{opacity:.5;font-size:.8em}.slot-part-2 .teacher-full-name{opacity:.7;font-size:.9em}.inner-slot.slot-full{border-radius:8px!important;margin:0!important}.modal-overlay{position:fixed;inset:0;background:var(--color-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);overscroll-behavior:contain}html:has(.modal-overlay){overflow:hidden}.modal-overlay>*{overscroll-behavior:contain}.modal-content{width:90%;max-width:500px;max-height:90vh;overflow-y:auto;padding:2.5rem;border-radius:20px;background:#fff!important;color:#1e293b;box-shadow:0 25px 50px -12px #00000040;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}.modal-content::-webkit-scrollbar{width:8px}.modal-content::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}.modal-content h3{margin-top:0;margin-bottom:1.5rem;color:#0f172a;font-size:1.5rem;font-weight:800}.form-group{margin-bottom:1rem;display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:700;color:#475569;font-size:.9rem}.form-group input{padding:.75rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;color:#1e293b;font-weight:600}.color-input-wrapper{display:flex;align-items:center;gap:.75rem;background:#f8fafc;padding:.5rem;border-radius:10px;border:2px solid #f1f5f9}.custom-color-picker{width:40px;height:40px;padding:0!important;border:none!important;border-radius:50%!important;cursor:pointer;overflow:hidden}.custom-color-picker::-webkit-color-swatch-wrapper{padding:0}.custom-color-picker::-webkit-color-swatch{border:none;border-radius:50%}.color-value-text{font-family:monospace;font-weight:700;color:#64748b;font-size:1rem}.color-palette{display:flex;flex-wrap:wrap;gap:.5rem;padding:.5rem;background:#f8fafc;border-radius:10px;border:2px solid #f1f5f9}.color-swatch{width:28px;height:28px;border-radius:50%;border:2px solid white;cursor:pointer;box-shadow:0 1px 3px #0000001a;transition:transform .2s,box-shadow .2s}.color-swatch:hover{transform:scale(1.15);box-shadow:0 4px 6px #0000001a}.color-swatch.active{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--color-primary);transform:scale(1.1)}.form-group input:focus{outline:none;border-color:var(--color-primary)}.work-hours-grid{display:flex;flex-direction:column;gap:1.5rem;margin-top:1.5rem}.day-config-group{padding:1rem;background:#f8fafc;border-radius:12px;border:1px solid #e2e8f0}.day-label-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.day-label-row label{font-weight:800;color:#1e293b;font-size:1.1rem}.btn-add-range{padding:.4rem .8rem;background:var(--color-primary);color:#fff;border:none;border-radius:6px;font-size:.85rem;font-weight:700;cursor:pointer;transition:all .2s}.btn-add-range:hover{background:var(--color-primary);transform:translateY(-1px)}.ranges-list{display:flex;flex-direction:column;gap:.5rem}.range-row{display:flex;align-items:center;gap:.5rem;animation:slideDown .2s ease-out}.range-row select{flex:1;padding:.5rem;border:1px solid #e2e8f0;border-radius:8px;font-size:.9rem;color:#1e293b;font-weight:600;background:#fff}.btn-remove-range{width:24px;height:24px;display:flex;align-items:center;justify-content:center;background:#fee2e2;color:#ef4444;border:none;border-radius:50%;cursor:pointer;font-weight:800;transition:all .2s}.btn-remove-range:hover{background:#fecaca;transform:scale(1.1)}.empty-day-text{color:#94a3b8;font-style:italic;font-size:.9rem}.inner-slot{position:relative}.comment-indicator{position:absolute;top:0;right:0;width:0;height:0;border-style:solid;border-width:0 8px 8px 0;border-color:transparent #ef4444 transparent transparent}.comment-tooltip{visibility:hidden;position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#1e293b;color:#fff;padding:.6rem .8rem;border-radius:8px;font-size:.85rem;white-space:nowrap;z-index:100;box-shadow:0 4px 12px #00000026;opacity:0;transition:opacity .2s,visibility .2s;pointer-events:none}.comment-tooltip:after{content:"";position:absolute;top:100%;left:50%;margin-left:-5px;border-width:5px;border-style:solid;border-color:#1e293b transparent transparent transparent}.inner-slot:hover .comment-tooltip{visibility:visible;opacity:1}.slot-edit-modal{max-width:400px!important}.slot-info-summary{display:flex;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap;align-items:center}.badge{padding:.3rem .8rem;border-radius:20px;color:#fff;font-weight:700;font-size:.9rem;white-space:nowrap;text-align:center}.time-badge{padding:.3rem .8rem;background:#f1f5f9;color:#475569;border-radius:8px;font-weight:600;font-size:.9rem;white-space:nowrap;text-align:center}.slot-edit-modal textarea,.slot-register-modal textarea{width:100%;min-height:120px;padding:.75rem;border:2px solid #e2e8f0;border-radius:10px;font-size:1rem;color:#1e293b;font-weight:500;resize:none;font-family:inherit}.slot-edit-modal textarea:focus,.slot-register-modal textarea:focus{outline:none;border-color:var(--color-primary)}.slot-header-meta{display:flex;align-items:center;gap:.4rem;margin-bottom:2px}.schedule-type-badge{font-size:.65rem;padding:1px 4px;border-radius:4px;font-weight:800;text-transform:uppercase}.type-fixed .schedule-type-badge,.type-recurring .schedule-type-badge{background:var(--color-primary);color:#fff}.type-flexible .schedule-type-badge{background:#f97316;color:#fff}.type-fixed,.type-recurring{border-left:3px solid var(--color-primary)}.type-flexible{border-left:3px solid #f97316}.slot-register-modal{max-width:450px!important}.date-badge-small{padding:.3rem .8rem;background:#fef3c7;color:#92400e;border-radius:8px;font-weight:700;font-size:.9rem;white-space:nowrap;text-align:center}.schedule-type-options-triple{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-top:.5rem}.type-option-card{cursor:pointer}.type-option-card input{display:none}.option-card-inner{padding:.5rem .25rem;border:2px solid #e2e8f0;border-radius:12px;transition:all .2s;text-align:center;display:flex;flex-direction:column;align-items:center;gap:2px;background:#f8fafc;height:100%}.option-icon{font-size:1.1rem;margin-bottom:0}.option-card-inner .option-title{font-weight:800;color:#1e293b;font-size:.8rem;line-height:1.2}.option-card-inner .option-desc{font-size:.62rem;color:#64748b;font-weight:500}.type-option-card input:checked+.option-card-inner{border-color:var(--color-primary);background:var(--brand-50);box-shadow:0 4px 12px #2e3d8626}.type-option-card input:checked+.option-card-inner .option-title{color:var(--color-primary)}.schedule-type-options{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:.5rem}.type-option{cursor:pointer}.type-option input{display:none}.option-card{padding:1rem;border:2px solid #e2e8f0;border-radius:12px;transition:all .2s;text-align:center}.option-title{font-weight:800;color:#1e293b;margin-bottom:.4rem}.option-desc{font-size:.75rem;color:#64748b;line-height:1.4}.type-option input:checked+.option-card{border-color:var(--color-primary);background:var(--brand-50);transform:translateY(-2px);box-shadow:0 4px 12px #2e3d8626}.type-option input:checked+.option-card .option-title{color:var(--color-primary)}.cancellation-section{grid-column:span 3;display:flex;flex-direction:column;gap:.75rem;margin-bottom:.5rem;padding-bottom:1.25rem;border-bottom:2px dashed #f1f5f9}.section-label-small{font-size:.85rem;font-weight:700;color:#475569}.cancel-btns-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.75rem}.is-cancelled,.is-past{filter:grayscale(.5);opacity:.7}.is-cancelled .student-name{position:relative;display:inline-block;text-decoration:none!important}.is-cancelled .student-name:after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;background-color:#ef4444;transform:translateY(-50%);pointer-events:none}.student-name{font-weight:800;white-space:nowrap}.cancel-type-label{font-size:.65rem;padding:1px 4px;color:#fff;border-radius:4px;font-weight:800;white-space:nowrap}.cancel-type-label.cancelled-early{background:#f59e0b}.cancel-type-label.cancelled-late{background:#ef4444}.cancel-type-label.cancelled-teacher,.cancel-type-label.cancelled-admin-exception{background:var(--color-primary)}.cancel-type-label.cancelled-holiday{background:#64748b}.teacher-cell-group{display:flex;flex-direction:column;gap:4px;width:100%;padding:0;margin:0}.modal-actions-grid{display:flex;gap:.5rem;margin-top:1.5rem}.modal-actions-grid button{flex:1;padding:.75rem;white-space:nowrap}.btn-main-save{background:var(--gradient-primary)!important}.btn-cancel-early,.btn-cancel-late{padding:.75rem;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;font-size:.9rem}.btn-cancel-early{background:#fff7ed;color:#ea580c;border:2px solid #ffedd5}.btn-cancel-early:hover{background:#ffedd5;border-color:#fed7aa}.btn-cancel-early:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.btn-cancel-late{background:#fff1f2;color:#e11d48;border:2px solid #ffe4e6}.btn-cancel-late:hover{background:#ffe4e6;border-color:#fecdd3}.btn-cancel-teacher{padding:.75rem;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;font-size:.9rem;background:var(--brand-50);color:var(--color-primary);border:2px solid var(--brand-50)}.btn-cancel-teacher:hover{background:var(--brand-50);border-color:var(--brand-200)}.btn-cancel-teacher:disabled{opacity:.5;cursor:not-allowed;background:#f1f5f9;color:#94a3b8;border-color:#e2e8f0}.btn-cancel-exception{padding:.75rem;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;font-size:.9rem;background:var(--brand-50);color:var(--color-primary);border:2px solid var(--brand-50)}.btn-cancel-exception:hover{background:var(--brand-50);border-color:var(--brand-200)}.btn-revert-cancel{grid-column:span 2;padding:.8rem;background:var(--brand-50);color:var(--color-primary);border:2px solid var(--brand-50);border-radius:12px;font-weight:800;cursor:pointer;transition:all .2s;font-size:.95rem}.btn-revert-cancel:hover{background:var(--brand-50);border-color:var(--brand-200);transform:translateY(-1px)}.btn-delete{padding:.7rem;background:#fff1f2;color:#e11d48;border:2px solid #ffe4e6;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;font-size:.85rem;text-align:center}.btn-cancel-modal-outline{padding:.7rem;background:#fff;border:2px solid #f1f5f9;color:#64748b;border-radius:10px;font-weight:700;cursor:pointer;transition:all .2s;font-size:.85rem;text-align:center}.btn-cancel-modal-outline:hover{background:#f8fafc;color:#1e293b}@keyframes slideDown{0%{opacity:0;transform:translateY(-5px)}to{opacity:1;transform:translateY(0)}}.modal-actions{display:flex;gap:1rem;margin-top:1.5rem}.btn-save{flex:1;padding:.75rem;background:var(--gradient-primary);color:#fff;border:none;border-radius:8px;font-weight:700;cursor:pointer}.btn-delete{flex:1;padding:.75rem;background:#fee2e2;color:#ef4444;border:1px solid #fecaca;border-radius:8px;font-weight:700;cursor:pointer;transition:all .2s}.btn-delete:hover{background:#ef4444;color:#fff}.btn-cancel-modal{flex:1;padding:.75rem;background:#f1f5f9;color:#475569;border:none;border-radius:8px;font-weight:600;cursor:pointer}.public-open-cell{background:#fff;padding:6px 8px!important;vertical-align:middle;border:1px solid #e2e8f0!important}.public-closed-cell{background:#f1f5f9;border:1px solid #e2e8f0!important}.available-teacher-tags{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;width:100%}.teacher-available-badge{padding:4px 10px;border-radius:20px;font-size:.7rem;font-weight:800;color:#fff;box-shadow:0 4px 8px #00000026;animation:fadeIn .3s ease-out;white-space:nowrap;text-align:center;flex:0 1 45%;min-width:fit-content}@keyframes fadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.status-board-container{padding:1.5rem 2rem;background:#f8fafc;border-radius:24px;min-height:80vh}.public-status-table{width:100%;table-layout:fixed;border-collapse:collapse!important;background:#fff;box-shadow:0 10px 30px #0000000d}.public-status-table th,.public-status-table td{border:1px solid #e2e8f0!important;padding:6px 8px!important;text-align:center;vertical-align:middle}.public-status-table .time-col{width:110px}.public-status-table th.is-today .header-day,.public-status-table th.is-today .header-date{color:var(--color-primary);font-weight:800}.today-badge{padding:1px 6px;font-size:.6rem}.today-badge.on-pill{position:absolute;top:-9px;left:50%;transform:translate(-50%)}.public-table .time-label{background:#f8fafc;color:#475569;font-weight:700}.btn-nav{background:#fff;border:1px solid #e2e8f0;color:#475569;padding:.6rem 1.5rem;border-radius:12px;cursor:pointer;font-weight:700;transition:all .2s;white-space:nowrap;min-width:120px;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 2px 4px #0000000d}.btn-nav:hover{background:#f8fafc;border-color:#cbd5e1;transform:translateY(-1px)}.btn-nav:hover:not(:disabled){background:#fff3;transform:translateY(-2px)}.btn-nav:disabled{cursor:not-allowed;opacity:.3}.teacher-profile-modal{width:100%;max-width:450px;border-radius:24px;overflow:hidden;animation:modalAppear .4s cubic-bezier(.16,1,.3,1);background:#1e293b;display:flex;flex-direction:column}.profile-header{padding:3rem 2rem 2rem;text-align:center;color:#fff;display:flex;flex-direction:column;align-items:center;background:var(--gradient-primary)}.profile-avatar{width:80px;height:80px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;font-weight:800;color:#333;margin-bottom:1rem;box-shadow:0 10px 25px #0003}.profile-name{font-size:1.5rem;font-weight:800;margin-bottom:.25rem}.profile-specialty{font-size:.9rem;opacity:.9;font-weight:500}.profile-body{padding:2rem;color:#e2e8f0}.profile-section{margin-bottom:1.5rem}.profile-section h4{font-size:1rem;color:#94a3b8;margin-bottom:.75rem;display:flex;align-items:center;gap:8px}.profile-section p{line-height:1.6;font-size:.95rem}.profile-section ul{list-style:none;padding:0}.profile-section li{margin-bottom:.5rem;font-size:.9rem;display:flex;align-items:center;gap:10px}.profile-section li:before{content:"?";color:var(--primary-color);font-weight:700}.specialty-tags{display:flex;flex-wrap:wrap;gap:8px}.specialty-tags span{background:#ffffff0d;padding:5px 12px;border-radius:20px;font-size:.8rem;font-weight:600;border:1px solid rgba(255,255,255,.1)}.public-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 4px 6px -1px #0000000d;position:sticky;top:0;z-index:1000}.header-main-row{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 5% 1rem;max-width:1400px;margin:0 auto}.utility-links{display:flex;align-items:center;gap:1rem}.utility-links span{font-size:.8rem;color:#64748b;cursor:pointer;font-weight:600;white-space:nowrap!important}.v-divider{width:1px;height:12px;background:#e2e8f0}.mobile-only-flex,.mobile-hamburger-trigger,.mobile-only-timetable,.mobile-subpage-nav-bar{display:none!important}@media(min-width:769px){.desktop-only-flex{display:flex!important;align-items:center!important}.mobile-only-flex,.mobile-subpage-nav-bar{display:none!important}}@media(max-width:768px){.desktop-only-flex{display:none!important}.mobile-only-flex,.mobile-subpage-nav-bar{display:flex!important}.mobile-only-flex{align-items:center!important}.mobile-subpage-nav-bar{gap:.5rem!important;padding:.5rem .8rem!important}.mobile-subpage-nav-bar>div{display:flex!important;flex-direction:column!important;align-items:center!important;gap:.15rem!important;flex:1!important;padding:.5rem .2rem!important;border-radius:12px!important;text-align:center!important}}.nav-links{display:flex;justify-content:center;align-items:center;gap:3rem;max-width:1400px;margin:0 auto;width:100%;box-sizing:border-box}.info-column li{background:#e2e8f0}.utility-links span:hover,.utility-links span.active-util{color:#1e293b;text-decoration:underline}.utility-links span.active-util{font-weight:800}.logo-section{display:flex;align-items:center;gap:.5rem;cursor:pointer}.logo-section img{width:40px;height:40px;border-radius:8px;object-fit:cover}.logo-content{display:flex;flex-direction:column}.public-nav{background:#fff;padding:0 5%;border-top:1px solid #f1f5f9}.nav-links{display:flex;justify-content:center;align-items:center;gap:3rem;max-width:1400px;margin:0 auto}.btn-my-classroom{background:var(--color-primary);color:#fff!important;border:none;border-radius:30px;padding:.6rem 1.8rem;font-size:.95rem;font-weight:800;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);box-shadow:0 4px 10px #2e3d8640}.btn-my-classroom:hover{background:var(--color-primary);transform:translateY(-2px);box-shadow:0 6px 15px #2e3d8666}.btn-my-classroom.active{background:var(--brand-900);box-shadow:inset 0 2px 4px #0000001a}.nav-links span{padding:1rem 0;font-size:1.05rem;font-weight:800;color:#475569;cursor:pointer;position:relative;transition:all .2s}.nav-links span.active,.nav-links span:hover{color:var(--color-primary)}.nav-links span.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:3px;background:var(--color-primary)}.logo-icon{font-size:2rem}.logo-text{font-size:1.05rem;font-weight:800;color:#1e293b;line-height:1.2}.logo-subtext{font-size:.65rem;color:#64748b;font-weight:500}.nav-links{display:flex;gap:2rem;font-weight:600;color:#475569;font-size:.95rem}.hero-section{height:50vh;background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;padding:0 5%}.hero-content h1{font-size:3.5rem;font-weight:800;margin-bottom:1rem;text-shadow:0 4px 10px rgba(0,0,0,.3)}.hero-tagline{font-size:1.5rem;font-weight:600;margin-bottom:.5rem;color:#cf0}.hero-description{font-size:1.1rem;opacity:.9}.info-grid-section{display:grid;grid-template-columns:repeat(3,1fr);gap:3rem;padding:2.5rem 10%;max-width:1400px;margin:0 auto}.info-column{text-align:center}.info-icon{width:80px;height:80px;background:#f1f5f9;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2.5rem;margin:0 auto 1.5rem}.info-column h3{font-size:1.5rem;font-weight:800;color:#1e293b;margin-bottom:1.5rem}.info-column ul{list-style:none;padding:0;text-align:left}.info-column li{margin-bottom:1rem;color:#475569;line-height:1.5}.info-column li strong{color:#1e293b;display:block;font-size:1.05rem;margin-bottom:4px}.info-column li p{font-size:.9rem;color:#64748b;margin:0}.section-divider{width:60px;height:4px;background:var(--color-primary);margin:0 auto 1.5rem;border-radius:2px}@keyframes pulse-red{0%{transform:scale(.95);box-shadow:0 0 #ef4444b3}70%{transform:scale(1);box-shadow:0 0 0 6px #ef444400}to{transform:scale(.95);box-shadow:0 0 #ef444400}}.slot-edit-modal,.slot-register-modal{padding:1rem 1.6rem!important;max-height:98vh!important;max-width:480px!important}.slot-edit-modal h3,.slot-register-modal h3{margin-bottom:.6rem!important;font-size:1.2rem!important;text-align:center}.slot-edit-modal .slot-info-summary{margin-bottom:.8rem!important;padding:.5rem!important;gap:8px!important;border-radius:12px!important}.slot-edit-modal .form-group,.slot-register-modal .form-group{margin-bottom:.6rem!important;gap:.2rem!important}.slot-edit-modal label,.slot-register-modal label{font-size:.85rem!important;margin-bottom:6px!important;font-weight:700!important;color:#475569!important}.slot-edit-modal input,.slot-register-modal input,.slot-edit-modal select,.slot-register-modal select,.slot-edit-modal textarea,.slot-register-modal textarea{padding:.5rem .8rem!important;font-size:.9rem!important;border-radius:8px!important}.slot-edit-modal textarea,.slot-register-modal textarea{min-height:50px!important}.slot-edit-modal .schedule-type-options,.slot-register-modal .schedule-type-options{gap:.5rem!important;margin-top:2px!important}.slot-edit-modal .option-card,.slot-register-modal .option-card{padding:.5rem!important;border-radius:10px!important}.slot-edit-modal .option-title,.slot-register-modal .option-title{font-size:.85rem!important;margin-bottom:2px!important}.slot-edit-modal .option-desc,.slot-register-modal .option-desc{font-size:.7rem!important}.slot-edit-modal .modal-actions-grid,.slot-register-modal .modal-actions-grid{margin-top:.8rem!important;gap:.3rem!important}.slot-edit-modal .btn-cancel-early,.slot-edit-modal .btn-cancel-late,.slot-edit-modal .btn-cancel-teacher,.slot-edit-modal .btn-save,.slot-register-modal .btn-save,.slot-edit-modal .btn-delete,.slot-register-modal .btn-delete,.slot-edit-modal .btn-cancel-modal,.slot-register-modal .btn-cancel-modal,.slot-edit-modal .btn-cancel-modal-outline{padding:.5rem!important;font-size:.8rem!important;border-radius:6px!important}.slot-edit-modal .section-label-small{margin-bottom:.2rem!important;font-size:.75rem!important;color:#475569!important}.slot-edit-modal .cancel-btns-row{margin-bottom:0!important}.slot-edit-modal hr{margin:.6rem 0!important;opacity:.2!important}@media(max-width:768px){html,body,#root{max-width:100vw!important;overflow-x:hidden!important}body,#root{overflow-x:clip!important}body{font-size:14px}.public-header{position:sticky;top:0;z-index:1000;width:100%!important;box-sizing:border-box!important}.header-main-row{padding:.75rem 4%!important;flex-direction:row!important;align-items:center!important;justify-content:space-between!important;gap:.3rem!important;width:100%!important;box-sizing:border-box!important}.desktop-only-flex,.desktop-only-table{display:none!important}.mobile-hamburger-trigger,.mobile-only-flex{display:flex!important;align-items:center!important}.mobile-only-timetable{display:flex!important}.public-nav{padding:.2rem .8rem!important}.nav-links{justify-content:center!important;gap:1.2rem!important;width:100%!important}.v-divider{display:none!important}.status-board-landing h2{font-size:1.35rem!important;white-space:nowrap!important;letter-spacing:-.03em!important}.logo-text{font-size:.98rem!important;white-space:nowrap!important;letter-spacing:-.02em!important}.logo-subtext{font-size:.62rem!important;white-space:nowrap!important}.public-nav{padding:0 .5rem!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none}.public-nav::-webkit-scrollbar{display:none}.nav-links{padding:.4rem .5rem!important;margin:0 auto!important}.nav-links div{flex-shrink:0}.btn-my-classroom{padding:.32rem .65rem!important;font-size:.84rem!important;border-radius:9px!important;margin-left:.2rem!important}.hero-section{min-height:240px!important;height:auto!important;padding:2.8rem 1.2rem!important}.hero-content h1{font-size:1.8rem!important}.hero-tagline{font-size:1rem!important}.hero-description{font-size:.85rem!important}.info-grid-section{grid-template-columns:1fr!important;gap:1.5rem!important;padding:1.5rem 1rem!important}.info-column{background:#f8fafc;padding:1.5rem;border-radius:16px;border:1px solid #e2e8f0}.brand-story-container,.location-container{flex-direction:column!important;gap:1.5rem!important;padding:1rem!important}.pricing-grid{grid-template-columns:1fr!important;gap:1.2rem!important}.glass-card{padding:1rem!important;border-radius:16px!important}.status-board-container{padding:.5rem .2rem!important}.table-wrapper,.timetable-wrapper,.scheduler-grid-container,.scheduler-table-container{width:100%!important;overflow-x:auto!important;-webkit-overflow-scrolling:touch!important}.scheduler-container{padding:0!important;background:transparent!important;width:100%!important;box-sizing:border-box!important}.scheduler-table{min-width:620px!important;font-size:.78rem!important}.scheduler-table th,.scheduler-table td{padding:4px 3px!important}.time-col{min-width:58px!important;width:58px!important;font-size:.72rem!important;white-space:nowrap!important}.header-day{font-size:.82rem!important}.header-date{font-size:.72rem!important;white-space:nowrap!important}.modal-overlay>div{width:94%!important;max-width:100%!important;padding:1.2rem!important;max-height:90vh!important;overflow-y:auto!important}.ambient-blob{display:none!important}.view-switcher{flex-direction:column!important;align-items:stretch!important;gap:0!important;margin-bottom:.5rem!important;background:transparent!important;border-radius:0!important;padding:0!important;box-shadow:none!important;overflow:visible!important;width:100%!important;margin-left:0!important;margin-right:0!important;box-sizing:border-box!important}.switcher-main{display:flex!important;flex-direction:row!important;flex-wrap:nowrap!important;align-items:center!important;gap:6px!important;overflow-x:scroll!important;-webkit-overflow-scrolling:touch!important;scrollbar-width:none!important;padding:4px 0 8px!important;background:transparent!important;border-radius:0!important;min-height:40px;width:100%;box-sizing:border-box}.switcher-main::-webkit-scrollbar{display:none!important}.manager-controls{padding:4px .8rem 0!important;background:transparent!important;border-top:none!important;box-sizing:border-box!important}.btn-config{width:100%!important;text-align:center!important;padding:.4rem .75rem!important;font-size:.8rem!important;margin-top:0!important;background:#fff!important;border:1px solid #e2e8f0!important;border-radius:12px!important;box-shadow:0 1px 3px #00000008!important}.btn-toggle{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;height:32px!important;white-space:nowrap!important;padding:0 10px!important;border-radius:12px!important;font-size:.8rem!important;font-weight:700!important;border:1.5px solid #e2e8f0!important;background:#fff!important;color:#475569!important;box-shadow:none!important;cursor:pointer!important;box-sizing:border-box!important}.btn-toggle.active{background:var(--color-primary)!important;color:#fff!important;border-color:var(--color-primary)!important;box-shadow:0 2px 8px #6d28d94d!important}.teacher-btn-group{flex:0 0 auto!important;display:flex!important;flex-direction:row!important;align-items:stretch!important;height:32px!important;border-radius:12px!important;border:1.5px solid #e2e8f0!important;background:#fff!important;overflow:hidden!important;white-space:nowrap!important;box-sizing:border-box!important}.teacher-btn-group .btn-toggle{height:100%!important;border-radius:0!important;border:none!important;border-right:1px solid #e2e8f0!important;padding-left:8px!important;padding-right:8px!important;background:transparent!important;color:#475569!important}.teacher-btn-group .btn-toggle.active{border:none!important;border-right:1px solid rgba(255,255,255,.25)!important;background:var(--color-primary)!important;color:#fff!important}.teacher-btn-group .btn-edit-small{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;height:100%!important;padding:0 6px!important;font-size:.85rem!important;border-left:none!important;background:transparent!important;border-radius:0!important}.btn-add-teacher{flex:0 0 auto!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;height:32px!important;padding:0 10px!important;font-size:.8rem!important;border-radius:12px!important;white-space:nowrap!important;box-sizing:border-box!important}}@media(max-width:768px){.modal-overlay{align-items:center!important;padding:0 var(--space-4)!important}.modal-overlay>div{width:100%!important;max-width:100%!important;max-height:88dvh!important;overflow-y:auto;margin:0!important;border-radius:var(--radius-lg)!important;box-sizing:border-box!important}.modal-overlay:has(>.sheet-full){align-items:stretch!important;padding:0!important}.modal-overlay:has(>.sheet-full){bottom:calc(59px + env(safe-area-inset-bottom))!important}.modal-overlay>.sheet-full{height:100%!important;max-height:100%!important;border-radius:0!important;background:#fff!important;padding:1rem!important}.sheet-full .sheet-head{position:sticky;top:-1rem;z-index:5;background:#fff;margin:-1rem -1rem .6rem!important;padding:.8rem 1rem!important;border-bottom:1px solid #e2e8f0!important}.sheet-full .status-board-container>div{padding-left:0!important;padding-right:0!important}.sheet-full .status-board-container{background:transparent!important;padding:0!important;min-height:0!important;border-radius:0!important}.available-slots-modal .sheet-actions{position:sticky;bottom:-1rem;background:#fff;margin:0 -1rem -1rem;padding:.6rem 1rem 1rem;border-top:1px solid #f1f5f9}}.classroom-switch{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:var(--space-1);padding:var(--space-1);margin-bottom:var(--space-4);max-width:420px;background:var(--white);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.classroom-switch-tab{padding:var(--space-2) var(--space-3);border:none;border-radius:var(--radius-md);background:none;font:inherit;font-size:var(--text-sm);font-weight:var(--weight-medium);color:var(--gray-600);cursor:pointer;white-space:nowrap}.classroom-switch-tab.active{background:var(--brand-700);color:var(--white);font-weight:var(--weight-bold)}.classroom-switch-tab:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.home-top{max-width:1100px;margin:0 auto;padding:var(--space-5) var(--space-4) 0;display:flex;flex-direction:column;gap:var(--space-4);box-sizing:border-box}.hb{position:relative;border-radius:var(--radius-lg);overflow:hidden}.hb-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}.hb-track::-webkit-scrollbar{display:none}.hb-slide{flex:0 0 100%;scroll-snap-align:start;min-height:340px;box-sizing:border-box;display:flex;align-items:center;padding:var(--space-6) 72px;background-size:cover;background-position:center;gap:var(--space-4)}.hb-bg-blue{background-color:var(--accent-blue-soft)}.hb-bg-orange{background-color:var(--accent-orange-soft)}.hb-bg-green{background-color:var(--accent-green-soft)}.hb-bg-purple{background-color:var(--accent-purple-soft)}.hb-bg-navy{background-color:var(--brand-100)}.hb-side-img{flex:0 1 38%;max-width:38%;max-height:260px;margin-left:auto;object-fit:contain}.hb-cover{background-color:var(--brand-900);background-image:var(--hb-shade),var(--hb-img);min-height:auto;aspect-ratio:3 / 1;position:relative}.hb-shade-strong{--hb-shade: linear-gradient(90deg, rgba(15,23,42,.72) 0%, rgba(15,23,42,.35) 60%, rgba(15,23,42,.2) 100%)}.hb-shade-light{--hb-shade: linear-gradient(90deg, rgba(15,23,42,.45) 0%, rgba(15,23,42,.15) 60%, rgba(15,23,42,0) 100%)}.hb-shade-none{--hb-shade: linear-gradient(transparent, transparent);background-color:transparent}.hb-hit{position:absolute;inset:0;z-index:1;width:100%;border:none;background:transparent;cursor:pointer}.hb-hit:focus-visible{outline:3px solid var(--color-primary);outline-offset:-3px}.hb-text{display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-2);max-width:600px;min-width:0;color:var(--brand-900)}.hb-eyebrow{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--brand-700)}.hb-title{font-size:2.5rem;font-weight:var(--weight-bold);line-height:1.25;white-space:pre-line;word-break:keep-all}.hb-desc{font-size:var(--text-md);color:var(--gray-600);white-space:pre-line;word-break:keep-all}.hb-cta{margin-top:var(--space-3);min-height:48px;padding:0 var(--space-6);border:none;border-radius:var(--radius-md);background:var(--color-primary);color:var(--white);font:inherit;font-size:var(--text-md);font-weight:var(--weight-bold);cursor:pointer}.hb-cta:hover{background:var(--color-primary-hover)}.hb-cover .hb-text{color:var(--white)}.hb-cover .hb-eyebrow{color:var(--brand-200)}.hb-cover .hb-desc{color:var(--brand-100)}.hb-cover .hb-cta{background:var(--white);color:var(--color-primary)}.hb-cover .hb-cta:hover{background:var(--brand-50)}.hb-shade-none .hb-text{color:var(--brand-900)}.hb-shade-none .hb-eyebrow{color:var(--brand-700)}.hb-shade-none .hb-desc{color:var(--gray-600)}.hb-shade-none .hb-cta{background:var(--color-primary);color:var(--white)}.hb-cta:focus-visible,.hb-arrow:focus-visible,.hb-dots button:focus-visible{outline:3px solid var(--color-primary);outline-offset:2px}.hb-arrow{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border-radius:var(--radius-full);border:none;background:#ffffffbf;color:var(--brand-900);display:flex;align-items:center;justify-content:center;cursor:pointer}.hb-arrow:hover{background:var(--white)}.hb-arrow.prev{left:14px}.hb-arrow.next{right:14px}.hb-dots{position:absolute;left:0;right:0;bottom:16px;display:flex;justify-content:center;gap:8px}.hb-dots button{width:8px;height:8px;padding:0;border:none;border-radius:var(--radius-full);background:#1f2a5e40;cursor:pointer;transition:width .2s}.hb-dots button.on{width:22px;background:var(--brand-700)}.hb-count{display:none;position:absolute;right:14px;bottom:16px;padding:3px 10px;border-radius:var(--radius-full);background:#0f172a8c;color:var(--white);font-size:var(--text-xs);font-weight:var(--weight-bold)}.hs{display:none;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--white);border-radius:var(--radius-lg);padding:var(--space-3) 2px;box-shadow:var(--shadow-sm)}.hs-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:4px 0;text-decoration:none;color:var(--gray-600);font-size:var(--text-xs);font-weight:var(--weight-medium);white-space:nowrap}.hs-item:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px;border-radius:var(--radius-md)}.hs-icon.blue{background:var(--accent-blue-soft);color:var(--accent-blue)}.hs-icon.orange{background:var(--accent-orange-soft);color:var(--accent-orange)}.hs-icon.green{background:var(--accent-green-soft);color:var(--accent-green)}.hs-icon.purple{background:var(--accent-purple-soft);color:var(--accent-purple)}.page-content-section:has(>.hp){background:var(--color-bg);min-height:100vh}.hp{max-width:960px;margin:0 auto;padding:var(--space-6) var(--space-5) var(--space-6);box-sizing:border-box;text-align:left}.hp-head{margin-bottom:var(--space-5)}.hp-head h2{margin:0;font-size:var(--text-2xl);font-weight:var(--weight-bold);color:var(--color-text);line-height:1.25}.hp-sub{margin:2px 0 0;font-size:var(--text-sm);color:var(--color-text-sub);word-break:keep-all}.hp-cta,.hp-map{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3);max-width:480px;margin:var(--space-6) auto 0}.hp-cta .ui-btn,.hp-map .ui-btn{text-decoration:none;white-space:normal;text-align:center}.hp-map{margin:0 auto var(--space-4)}.hp-map .ui-btn{flex-direction:row;gap:var(--space-2);border:none;font-weight:var(--weight-bold)}.hp-map .hp-map-naver{background:var(--brand-naver);color:var(--white)}.hp-map .hp-map-kakao{background:var(--brand-kakao);color:var(--brand-kakao-text)}.hp-map .hp-map-naver:hover{background:var(--brand-naver);filter:brightness(.94)}.hp-map .hp-map-kakao:hover{background:var(--brand-kakao);filter:brightness(.96)}.hp-map-n{background:var(--white);color:var(--brand-naver);padding:0 5px;border-radius:4px;font-size:var(--text-xs);font-weight:var(--weight-bold);line-height:1.5}.hours-line{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 6px;margin:0 0 var(--space-4);font-size:var(--text-sm);color:var(--color-text-sub);word-break:keep-all}.hours-line strong{color:var(--color-text);font-weight:var(--weight-bold)}.hours-dot{width:8px;height:8px;border-radius:50%;background:var(--gray-400);flex-shrink:0}.hours-dot.on{background:var(--success-600);box-shadow:0 0 0 3px var(--success-50)}@media(max-width:768px){.hours-line{font-size:var(--text-xs);margin-bottom:var(--space-3)}}.time-grid-label{margin:0 0 6px 2px;font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--color-text-sub)}.time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-2)}.time-chip{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;min-height:56px;box-sizing:border-box;background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius-md);font:inherit;cursor:pointer}.time-chip strong{font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.time-chip span{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--success-600)}.time-chip:hover{border-color:var(--brand-200);background:var(--brand-50)}.time-chip:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}.home-faq{background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);overflow:hidden}.home-faq details{border-bottom:1px solid var(--color-border)}.home-faq details:last-child{border-bottom:none}.home-faq summary{display:flex;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-4);font-weight:var(--weight-bold);color:var(--color-text);cursor:pointer;list-style:none}.home-faq summary::-webkit-details-marker{display:none}.home-faq summary svg{flex-shrink:0;color:var(--gray-400);transition:transform .2s}.home-faq details[open] summary svg{transform:rotate(180deg)}.home-faq details>div{padding:0 var(--space-4) var(--space-4);color:var(--gray-600);font-size:var(--text-sm);line-height:1.7;white-space:pre-line}.sc{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-4);margin-bottom:var(--space-6)}.sc-card{display:flex;gap:var(--space-3);padding:var(--space-5);border-radius:var(--radius-lg);text-align:left}.sc-icon{width:44px;height:44px;background:var(--brand-100);color:var(--brand-700);overflow:hidden}.sc-icon img{width:100%;height:100%;object-fit:cover}.sc-body{min-width:0}.sc-title,.sc-title *{margin:0 0 4px;font-size:var(--text-md);font-weight:var(--weight-bold);color:var(--color-text)}.sc-content{font-size:var(--text-sm);color:var(--gray-600);line-height:1.6;word-break:keep-all}.sc-content p{margin:0 0 var(--space-2)}.sc-content p:last-child{margin-bottom:0}@media(max-width:768px){.home-top{padding:var(--space-3) var(--space-4) 0;gap:var(--space-3)}.hb{border-radius:var(--radius-lg)}.hb-slide{min-height:0;padding:20px;align-items:center}.hb-text{gap:6px}.hb-side-img{max-width:34%;max-height:140px;align-self:center}.hb-cover{min-height:auto;aspect-ratio:10 / 7;background-image:var(--hb-shade),var(--hb-img-m)}.hb-title{font-size:1.3rem}.hb-desc{font-size:var(--text-sm)}.hb-cta{margin-top:var(--space-2);min-height:40px;font-size:var(--text-sm);padding:0 var(--space-5)}.hb-arrow,.hb-dots{display:none}.hb-count{display:block}.hs{display:grid;padding:10px 20px 8px}.hs-icon{width:48px;height:48px}.hs-icon svg{width:24px;height:24px}.hp{padding:var(--space-5) var(--space-4)}.hp-head{margin-bottom:var(--space-4)}.hp-head h2{font-size:var(--text-xl)}.sc{grid-template-columns:1fr;gap:var(--space-2)}.sc-card{padding:var(--space-4)}}.notice-strip{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3);background:var(--brand-50);border:1px solid var(--brand-200);border-radius:var(--radius-md);color:var(--brand-900);font-size:var(--text-sm)}.notice-strip>svg{flex-shrink:0;color:var(--color-primary)}.notice-strip-text{flex:1;min-width:0;font-weight:var(--weight-bold);line-height:1.4;word-break:keep-all;overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.notice-strip-link{flex-shrink:0;border:none;background:none;padding:4px;font:inherit;font-weight:var(--weight-bold);color:var(--color-primary);text-decoration:underline;cursor:pointer;white-space:nowrap}.notice-strip-close{flex-shrink:0}.notice-strip.important{background:var(--danger-50);border-color:var(--danger-600);color:var(--color-text)}.notice-strip.important>svg,.notice-strip.important .notice-strip-link{color:var(--danger-600)}.teacher-initial{display:flex;width:100%;height:100%;align-items:center;justify-content:center;background:var(--brand-100);color:var(--brand-700);font-size:2.2rem;font-weight:var(--weight-bold)}.board-page-tabs.classroom-switch{max-width:340px;margin:0 auto var(--space-5)}.board-page-tabs .classroom-switch-tab{display:flex;flex-direction:column;align-items:center;gap:1px;padding:6px var(--space-3)}.board-page-tabs .classroom-switch-tab small{font-size:.72rem;font-weight:var(--weight-medium);opacity:.85}.day-pills-fade{position:relative}.day-pills-fade:after{content:"";position:absolute;top:0;right:0;bottom:0;width:28px;pointer-events:none;background:linear-gradient(to right,transparent,var(--color-bg));transition:opacity .2s}.day-pills-fade.at-end:after,.day-pills-fade.fits:after{opacity:0}.board-page-tabs button small{font-size:var(--text-xs);font-weight:var(--weight-medium)}.day-pills-hint{position:absolute;top:4px;right:0;z-index:1;padding:0 4px 0 12px;background:linear-gradient(to right,transparent,var(--color-bg) 12px);font-size:var(--text-xs);line-height:1.5;color:var(--gray-500);font-weight:var(--weight-medium);pointer-events:none}.day-pills-hint{transition:opacity .2s}.day-pills-fade.scrolled .day-pills-hint{opacity:0}.day-group{flex-shrink:0;display:flex;flex-direction:column;gap:10px}.day-group-label{font-size:var(--text-xs);font-weight:var(--weight-bold);color:var(--gray-500);padding-left:2px;white-space:nowrap}.day-group-pills{display:flex;gap:.5rem}.day-pills-divider{flex-shrink:0;align-self:stretch;width:2px;margin:0 2px;border-radius:1px;background:var(--gray-300)}.desktop-only-table:has(.public-status-table){padding-top:10px}.public-status-table thead th{position:relative;padding-top:14px!important;padding-bottom:10px!important}.public-status-table .header-day{font-size:1.15rem;font-weight:800;color:var(--color-text);margin-bottom:2px}.public-status-table .header-date{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--gray-500);margin-bottom:0}.public-status-table th.is-today .header-date{color:var(--color-primary);font-weight:var(--weight-bold)}.public-status-table .week-start{border-left:2px solid var(--gray-400)!important}.ui-sheet.slot-pick-sheet{width:95%;max-width:1100px}.status-board-container.in-sheet{padding:0;background:none;border-radius:0;min-height:0}.board-scroll{max-height:440px;overflow-y:auto;border-radius:var(--radius-md);box-shadow:inset 0 -12px 12px -12px #0f172a26}.board-scroll .public-status-table thead th{position:sticky;top:0;z-index:2;background:var(--white);padding-top:18px!important}.board-scroll .today-badge.on-pill{top:3px}.home-faq-section{background:var(--white);padding:calc(var(--space-6) * 2) 5% calc(var(--space-6) * 2)}.home-contact-line{margin:var(--space-6) 0 0;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center;font-size:var(--text-xs);color:var(--gray-500);word-break:keep-all;line-height:1.6}.home-contact-phone{white-space:nowrap}@media(max-width:768px){.home-faq-section{padding:var(--space-5) 4% 5.5rem}}.ah-row{gap:.8rem}.ah-logo{display:flex;align-items:center;gap:.6rem;flex-shrink:1;text-decoration:none;min-width:0}.ah-logo .logo-content{min-width:0;overflow:hidden}.ah-logo img{flex-shrink:0;height:46px;width:auto!important;border-radius:0!important}.ah-logo .logo-fallback{font-size:1.5rem}.ah-logo-text{font-size:1.15rem;font-weight:var(--weight-bold);color:var(--color-primary);line-height:1.2;letter-spacing:-.03em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ah-logo-sub{font-size:.72rem;color:#64748b;font-weight:600;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ah-wide,.ah-narrow{align-items:center;gap:.6rem;flex-shrink:0}.ah-wide{display:none}.ah-narrow{display:flex;gap:.4rem}@media(min-width:769px){.public-header:not(.ah-staff) .ah-wide{display:flex}.public-header:not(.ah-staff) .ah-narrow{display:none}}@media(min-width:1024px){.ah-staff .ah-wide{display:flex}.ah-staff .ah-narrow{display:none}}@media(min-width:1024px)and (max-width:1279px){.ah-staff .ah-logo .logo-content{display:none}}.ah-extra{display:inline-flex;align-items:center;gap:.6rem}.ah-staff .ah-extra{display:none}@media(min-width:1500px){.ah-staff .ah-extra{display:inline-flex}}.ah-menu{display:flex;gap:.4rem}.ah-menu-item{display:flex;align-items:center;gap:5px;padding:.42rem .75rem;border-radius:12px;background:#fff;border:1px solid #e2e8f0;color:#1e293b;font-weight:850;font-size:.82rem;white-space:nowrap;text-decoration:none;box-shadow:0 1px 3px #00000008;transition:background .15s}.ah-menu-item:hover{background:#f8fafc}.ah-menu-item.active{background:var(--brand-50);border-color:var(--color-primary);color:var(--color-primary)}.ah-branch{color:#64748b;font-size:.85rem;font-weight:600;white-space:nowrap}.ah-branch strong{color:#1e293b}.ah-text-link{border:none;background:none;padding:0;font:inherit;font-size:.82rem;font-weight:700;color:#475569;cursor:pointer;white-space:nowrap}.ah-text-link:hover{color:#1e293b;text-decoration:underline}.ah-locale{display:inline-flex;background:#f1f5f9;border:1px solid #e2e8f0;border-radius:20px;padding:2px;gap:2px}.ah-locale button{border:none;background:transparent;border-radius:16px;padding:2px 9px;font-size:.68rem;font-weight:800;color:#94a3b8;cursor:pointer}.ah-locale button.on{background:#fff;color:#1e293b;box-shadow:0 1px 4px #00000014}.ah-narrow .ah-login{display:none}.ah-login{background:var(--color-primary);color:#fff;border:none;border-radius:14px;padding:6px 14px;font-weight:850;font-size:.82rem;cursor:pointer;white-space:nowrap}.ah-home-tabs{display:flex;justify-content:center;gap:var(--space-6);background:var(--white);border-bottom:1px solid var(--color-border);padding:0 var(--space-4);overflow-x:auto;scrollbar-width:none}.ah-home-tabs::-webkit-scrollbar{display:none}.ah-home-tabs button{height:52px;padding:0 2px;border:none;border-bottom:3px solid transparent;background:none;display:inline-flex;align-items:center;gap:8px;color:var(--gray-700);font:inherit;font-size:var(--text-md);font-weight:var(--weight-medium);white-space:nowrap;cursor:pointer}.ah-home-tabs button:hover{color:var(--color-text)}.ah-home-tabs button.active{color:var(--color-primary);font-weight:var(--weight-bold);border-bottom-color:var(--color-primary)}.ah-tab-icon{display:inline-flex;width:28px;height:28px;border-radius:50%;align-items:center;justify-content:center;flex-shrink:0}.ah-tab-icon svg{width:16px;height:16px}.ah-tab-icon.navy{background:var(--brand-100);color:var(--color-primary)}.ah-tab-icon.blue{background:var(--accent-blue-soft);color:var(--accent-blue)}.ah-tab-icon.green{background:var(--accent-green-soft);color:var(--accent-green)}.ah-tab-icon.orange{background:var(--accent-orange-soft);color:var(--accent-orange)}.ah-tab-icon.purple{background:var(--accent-purple-soft);color:var(--accent-purple)}.ah-dot{position:absolute;top:9px;left:calc(50% + 6px);width:9px;height:9px;border-radius:50%;background:var(--danger-600);border:2px solid #fff;box-sizing:content-box;pointer-events:none}.ah-bottom button,.ah-avatar{position:relative}.ah-user-btn .ah-avatar .ah-dot{top:-2px;left:auto;right:-3px}.ah-dot.inline{position:static;display:inline-block;vertical-align:middle;margin-left:6px;border:none;width:8px;height:8px}.ah-text-link .ah-dot.inline{margin-left:4px}.ah-bottom{display:none;position:fixed;left:0;right:0;bottom:0;z-index:900;background:#fff;border-top:1px solid #e2e8f0;padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -2px 10px #0f172a0d}.ah-bottom button{height:58px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;border:none;background:none;color:#64748b;font:inherit;font-size:.7rem;font-weight:750;cursor:pointer}.ah-bottom button.active{color:var(--color-primary);font-weight:850}@media(max-width:768px){.ah-bottom{display:grid}body.ah-bn{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}@media(max-width:1023px){.ah-bottom.staff{display:grid}body.ah-bn-staff{padding-bottom:calc(60px + env(safe-area-inset-bottom))}}.ah-profile{display:flex;align-items:center;gap:.8rem;background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:.9rem 1rem;margin-bottom:1rem;color:#1e293b}.ah-profile-sub{font-size:.8rem;color:#64748b;font-weight:600;margin-top:2px}.ah-avatar{width:40px;height:40px;flex-shrink:0;border-radius:50%;background:var(--color-primary);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800}.ah-list{display:flex;flex-direction:column;border:1px solid #e2e8f0;border-radius:14px;overflow:hidden;margin-bottom:1rem}.ah-list a,.ah-list button{display:flex;align-items:center;gap:6px;padding:.95rem 1rem;border:none;border-bottom:1px solid #f1f5f9;background:#fff;color:#1e293b;font:inherit;font-size:.92rem;font-weight:750;text-align:left;text-decoration:none;cursor:pointer}.ah-list>:last-child{border-bottom:none}.ah-list span{margin-left:auto;color:#94a3b8;font-size:1.1rem}.ah-list small{color:#94a3b8;font-weight:600}.ah-list button:disabled{color:#94a3b8;cursor:default}.ah-logout-btn{width:100%;padding:.8rem;border-radius:12px;border:1px solid #fecaca;background:#fef2f2;color:#ef4444;font:inherit;font-weight:800;cursor:pointer}@media(max-width:768px){.header-main-row.ah-row{padding:.5rem 4%}.ah-logo{gap:.35rem}.ah-logo img{height:40px}.ah-logo-text{font-size:.86rem}.ah-logo-sub{font-size:.62rem}.ah-home-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;padding:10px 20px 8px!important;overflow:visible!important;border-top:1px solid var(--gray-100)}.ah-home-tabs.at-home,.ah-home-tabs button:first-child{display:none}.ah-home-tabs button{height:auto;display:flex;flex-direction:column;align-items:center;gap:6px;padding:2px 0;border-bottom:none;font-size:var(--text-xs)}.ah-tab-icon{width:48px;height:48px;border:2px solid transparent}.ah-tab-icon svg{width:24px;height:24px}.ah-home-tabs button.active .ah-tab-icon{border-color:currentColor}.ah-home-tabs.compact{padding:6px 8px!important}.ah-home-tabs.compact button{flex-direction:row;justify-content:center;gap:4px;padding:4px 0;font-size:var(--text-xs)}.ah-home-tabs.compact .ah-tab-icon{width:24px;height:24px;border-width:1.5px}.ah-home-tabs.compact .ah-tab-icon svg{width:14px;height:14px}.ah-home-tabs.compact button.active{color:var(--color-primary);font-weight:var(--weight-bold)}}.ah-user{position:relative}.ah-user-btn{display:inline-flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid transparent;border-radius:var(--radius-full);background:none;font:inherit;color:var(--gray-500);cursor:pointer}.ah-user-btn:hover,.ah-user-btn.open{background:var(--gray-50);border-color:var(--color-border)}.ah-user-btn .ah-avatar{width:32px;height:32px;font-size:var(--text-sm)}.ah-user-name{font-size:var(--text-sm);font-weight:var(--weight-bold);color:var(--color-text);white-space:nowrap}.ah-user-panel{position:absolute;top:calc(100% + 8px);right:0;width:280px;z-index:2000;background:var(--white);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--space-3)}.ah-user-panel .ah-list{margin-bottom:var(--space-3)}.ah-user-panel .ah-list button{width:100%}
