@keyframes slideDown{0%{transform:translateY(-20px);opacity:0}to{transform:translateY(0);opacity:1}}.sidebar{position:absolute;left:20px;top:50vh;transform:translateY(-50%);width:260px;height:800px;background:linear-gradient(135deg,#fff,#f8f9fa);box-shadow:0 8px 32px #0000001f;display:flex;flex-direction:column;z-index:100;border:1px solid #e0e0e0;border-radius:15px;overflow:visible;animation:slideDown .3s ease-out;transition:top .8s cubic-bezier(.25,.46,.45,.94)}.sidebar.collapsed{width:70px}.sidebar-header{padding:2rem 1.5rem;border-bottom:2px solid #f0f0f0;background:#fff}.sidebar.collapsed .sidebar-header{padding:2rem 1rem}.logo{display:flex;align-items:center;gap:.8rem}.logo h2{transition:opacity .3s ease}.sidebar.collapsed .logo h2{opacity:0;width:0;overflow:hidden}.toggle-btn{position:absolute;top:50%;right:-15px;transform:translateY(-50%);width:30px;height:30px;border:none;border-radius:50%;background:#03c75a;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 8px #00000026;transition:all .3s cubic-bezier(.4,0,.2,1);z-index:1001}.toggle-btn:hover{background:#02b350;transform:translateY(-50%) scale(1.1)}.logo-icon{font-size:2rem}.logo h2{font-size:1.2rem;color:#333;margin:0;font-weight:700;line-height:1.3}.sidebar-nav{flex:1;padding:1.5rem 0;overflow-y:auto;overflow-x:visible}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-thumb{background:#ddd;border-radius:2px}.nav-item{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;margin:.3rem 1rem;border-radius:10px;text-decoration:none;color:#666;font-weight:500;font-size:.95rem;transition:all .3s;cursor:pointer}.sidebar.collapsed .nav-item{padding:1rem;margin:.3rem .5rem;justify-content:center;gap:0}.nav-item:hover{background:var(--naver-green-light);color:var(--naver-green);transform:translate(4px)}.nav-item.active{background:var(--naver-green);color:#fff;font-weight:600;box-shadow:0 4px 12px #03c75a4d}.nav-icon{font-size:1.3rem;width:24px;text-align:center}.nav-label{flex:1;transition:opacity .3s ease}.sidebar.collapsed .nav-label{opacity:0;width:0;overflow:hidden}.sidebar-footer{padding:1.5rem;border-top:2px solid #f0f0f0;background:#fff;display:flex;justify-content:center}.sidebar.collapsed .sidebar-footer{padding:1rem .5rem}.logout-btn{width:calc(100% - 2rem);display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;margin:.3rem 1rem;background:#f8f9fa;border:none;border-radius:10px;color:#666;font-weight:500;font-size:.95rem;cursor:pointer;transition:all .3s}.sidebar.collapsed .logout-btn{width:auto;padding:1rem;margin:0;justify-content:center;gap:0}.logout-btn:hover{background:#ffebee;color:#ff3b30;transform:translateY(-2px)}@media (max-width: 768px){.sidebar{width:70px}.sidebar-header{padding:1.5rem .5rem}.logo h2,.nav-label{display:none}.logo-icon{font-size:1.8rem;margin:0 auto}.nav-item{justify-content:center;padding:1rem .5rem;margin:.3rem .5rem}.logout-btn{justify-content:center;padding:1rem .5rem}.nav-icon{margin:0}}@media (min-width: 769px) and (max-width: 1024px){.sidebar{width:200px}.logo h2{font-size:1rem}.nav-item{font-size:.9rem;padding:.9rem 1rem}}.menu-edit-controls{margin-top:10px}.edit-menu-btn{background:none;border:none;color:var(--gray-600);cursor:pointer;padding:8px;border-radius:4px;transition:all .2s;font-size:16px}.edit-menu-btn:hover{background:var(--gray-100);color:var(--naver-green)}.edit-controls{display:flex;gap:5px}.save-btn,.cancel-btn{background:none;border:none;cursor:pointer;padding:8px 10px;border-radius:4px;transition:all .2s;font-size:16px}.save-btn{color:var(--naver-green)}.save-btn:hover{background:var(--naver-green);color:#fff}.cancel-btn{color:var(--gray-600)}.cancel-btn:hover{background:var(--gray-200)}.nav-item.draggable{cursor:move;position:relative;transition:all .2s ease}.nav-item.draggable:hover{background:var(--gray-100);transform:translate(2px)}.nav-item.dragging{background:var(--naver-green);color:#fff;transform:rotate(2deg);box-shadow:0 5px 15px #0003}.nav-item.dragging .nav-icon,.nav-item.dragging .nav-label{color:#fff}.drag-over{background:#00c73c1a;border-radius:8px}.drag-handle{position:absolute;right:10px;color:var(--gray-400);font-size:12px;opacity:0;transition:opacity .2s}.nav-item.draggable:hover .drag-handle{opacity:1}.header{background:#fff;box-shadow:0 1px 3px #0000000f;position:sticky;top:0;z-index:1000;border-bottom:1px solid var(--gray-200)}.header-container{max-width:1400px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center;height:72px}.logo{display:flex;align-items:center;gap:12px;font-size:24px;font-weight:700;color:var(--naver-green);text-decoration:none;transition:all .3s}.logo:hover{color:var(--naver-green-dark);transform:translateY(-1px)}.logo i{font-size:32px}.nav-menu ul{display:flex;gap:48px;list-style:none;margin:0;padding:0}.nav-menu a{text-decoration:none;color:var(--gray-700);font-weight:500;font-size:15px;transition:all .3s;position:relative;padding:24px 0;display:flex;align-items:center;gap:8px}.nav-menu a:hover,.nav-menu a.active{color:var(--naver-green)}.nav-menu a.active:after{content:"";position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--naver-green);border-radius:3px 3px 0 0}.nav-menu a i{font-size:14px}.user-section{display:flex;align-items:center;gap:16px}.user-menu{position:relative}.user-button{display:flex;align-items:center;gap:12px;background:var(--gray-50);border:none;padding:8px 16px;border-radius:24px;cursor:pointer;transition:all .3s}.user-button:hover{background:var(--naver-green-light)}.user-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,var(--naver-green) 0%,var(--naver-green-dark) 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:600;font-size:16px}.user-info{display:flex;flex-direction:column;align-items:flex-start;min-width:80px}.user-name{font-size:14px;font-weight:600;color:var(--gray-900)}.user-role{font-size:12px;color:var(--gray-500)}.dropdown-icon{transition:transform .3s;color:var(--gray-500)}.dropdown-icon.open{transform:rotate(180deg)}.enrollment-dropdown{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 10px 25px #0000001a;min-width:320px;max-width:400px;z-index:1000;margin-top:8px}.enrollment-header{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e5e7eb}.enrollment-header h3{margin:0;font-size:16px;font-weight:600;color:#1f2937}.close-btn{background:none;border:none;font-size:20px;color:#6b7280;cursor:pointer;padding:0;width:24px;height:24px;display:flex;align-items:center;justify-content:center}.close-btn:hover{color:#374151}.enrollment-list{max-height:300px;overflow-y:auto}.no-enrollments{padding:24px;text-align:center;color:#6b7280;font-size:14px}.enrollment-item{padding:16px;border-bottom:1px solid #f3f4f6}.enrollment-item:last-child{border-bottom:none}.enrollment-course{font-weight:600;color:#1f2937;margin-bottom:4px}.enrollment-student{font-size:14px;color:#6b7280;margin-bottom:8px}.enrollment-details{display:flex;flex-direction:column;gap:4px}.detail-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.detail-row .label{color:#6b7280}.detail-row .value{font-weight:500;color:#1f2937}.detail-row .value.warning{color:#dc2626;font-weight:600}.enrollment-section{padding:8px 0}.enrollment-header-small h4{margin:0 0 8px;padding:0 16px;font-size:14px;font-weight:600;color:#1f2937}.enrollment-list-small{max-height:200px;overflow-y:auto}.no-enrollments-small{padding:12px 16px;text-align:center;color:#6b7280;font-size:13px}.enrollment-item-small{padding:8px 16px;border-bottom:1px solid #f3f4f6}.enrollment-item-small:last-child{border-bottom:none}.enrollment-course-small{font-weight:600;color:#1f2937;font-size:13px;margin-bottom:2px}.enrollment-student-small{font-size:12px;color:#6b7280;margin-bottom:4px}.enrollment-details-small{display:flex;justify-content:space-between;font-size:11px;color:#6b7280}.enrollment-details-small .warning{color:#dc2626;font-weight:600}.dropdown-menu{position:absolute;top:calc(100% + 8px);right:0;background:#fff;border:1px solid var(--gray-200);border-radius:12px;box-shadow:0 10px 25px #0000001a;min-width:220px;overflow:hidden;animation:fadeIn .2s}@keyframes fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.dropdown-header{padding:16px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.dropdown-name{margin:0;font-size:15px;font-weight:600;color:var(--gray-900)}.dropdown-email{margin:4px 0 0;font-size:13px;color:var(--gray-600)}.dropdown-divider{height:1px;background:var(--gray-200)}.dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:12px 16px;border:none;background:none;text-align:left;font-size:14px;color:var(--gray-700);cursor:pointer;transition:background .2s;text-decoration:none}.dropdown-item:hover{background:var(--gray-100)}.dropdown-item.logout{color:var(--error)}.dropdown-item i{flex-shrink:0;font-size:16px}@media (max-width: 1024px){.nav-menu ul{gap:32px}}@media (max-width: 768px){.header-container{padding:0 16px;height:64px}.logo{font-size:20px}.logo i{font-size:28px}.nav-menu,.user-info{display:none}.user-button{padding:8px}}@media (max-width: 480px){.header-container{padding:0 12px}.logo span{display:none}}.notification-menu{position:relative;margin-right:16px}.notification-button{position:relative;background:none;border:none;padding:12px;border-radius:50%;cursor:pointer;transition:all .2s;color:var(--gray-600);font-size:18px}.notification-button:hover{background-color:var(--gray-100);color:var(--naver-green)}.notification-badge{position:absolute;top:6px;right:6px;background:#ef4444;color:#fff;border-radius:50%;width:18px;height:18px;font-size:11px;font-weight:600;display:flex;align-items:center;justify-content:center;animation:pulse 2s infinite}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}to{transform:scale(1)}}.notification-dropdown{position:absolute;top:100%;right:0;background:#fff;border-radius:12px;box-shadow:0 10px 40px #00000026;border:1px solid var(--gray-200);width:380px;max-height:500px;overflow:hidden;z-index:1000;margin-top:8px}.notification-header{padding:16px 20px;border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.notification-header h4{margin:0;font-size:16px;font-weight:600;color:var(--gray-900)}.notification-list{max-height:400px;overflow-y:auto}.no-notifications{padding:40px 20px;text-align:center;color:var(--gray-500);font-size:14px}.notification-item{display:flex;padding:16px 20px;border-bottom:1px solid var(--gray-100);transition:background-color .2s}.notification-item:hover{background-color:var(--gray-50)}.notification-item:last-child{border-bottom:none}.notification-icon{flex-shrink:0;width:40px;height:40px;background:var(--naver-green);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;margin-right:12px}.notification-content{flex:1}.notification-title{font-weight:600;color:var(--gray-900);font-size:14px;margin-bottom:4px}.notification-text{color:var(--gray-600);font-size:13px;line-height:1.4;margin-bottom:4px}.notification-time{color:var(--gray-500);font-size:12px}.notification-footer{padding:12px 20px;border-top:1px solid var(--gray-200);background:var(--gray-50);text-align:center}.notification-footer a{color:var(--naver-green);text-decoration:none;font-size:14px;font-weight:500}.notification-footer a:hover{text-decoration:underline}.layout{display:flex;min-height:100vh;background:#f8f9fa}.content-wrapper{flex:1;display:flex;flex-direction:column;margin-left:300px;min-height:100vh;transition:margin-left .4s cubic-bezier(.4,0,.2,1)}.main-content{flex:1;background:#f8f9fa}.layout:has(.sidebar.collapsed) .content-wrapper{margin-left:110px}@media (max-width: 768px){.content-wrapper{margin-left:70px}}@media (min-width: 769px) and (max-width: 1024px){.content-wrapper{margin-left:200px}}.login-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#03c75a,#02b350);padding:20px}.login-box{background:#fff;border-radius:16px;box-shadow:0 20px 60px #00000026;padding:48px;width:100%;max-width:440px;animation:slideUp .4s ease-out}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.login-header{text-align:center;margin-bottom:40px}.logo{display:flex;flex-direction:column;align-items:center;gap:12px;margin-bottom:12px}.logo-icon{font-size:48px;animation:bounce 2s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.login-header h1{font-size:28px;font-weight:700;color:var(--gray-900);margin:0}.subtitle{font-size:14px;color:var(--gray-600);margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.form-group label{font-size:14px;font-weight:500;color:var(--gray-800)}.form-group input{padding:14px 16px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;transition:all .2s}.form-group input:focus{border-color:var(--naver-green);background-color:var(--naver-green-light)}.form-group input::placeholder{color:var(--gray-400)}.error-message{background-color:#fff5f5;border:1px solid #FED7D7;color:#c53030;padding:12px 16px;border-radius:8px;font-size:14px;animation:shake .3s}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-10px)}75%{transform:translate(10px)}}.login-button{background:var(--naver-green);color:#fff;padding:16px;border-radius:8px;font-size:16px;font-weight:600;margin-top:8px;transition:all .2s}.login-button:hover:not(:disabled){background:var(--naver-green-dark);transform:translateY(-1px);box-shadow:0 4px 12px #03c75a4d}.login-button:active:not(:disabled){transform:translateY(0)}.login-button:disabled{background:var(--gray-300);cursor:not-allowed}.login-footer{margin-top:32px;padding-top:24px;border-top:1px solid var(--gray-200)}.demo-account{text-align:center;font-size:13px;color:var(--gray-600);line-height:1.8}.demo-account strong{color:var(--gray-800);display:block;margin-bottom:8px}@media (max-width: 480px){.login-box{padding:32px 24px}.login-header h1{font-size:24px}.logo-icon{font-size:40px}}.login-links{text-align:center;margin:20px 0}.register-link{color:#03c75a;text-decoration:none;font-size:16px;font-weight:500;transition:color .2s ease}.register-link:hover{color:#02b350;text-decoration:underline}.register-container{min-height:100vh;background:linear-gradient(135deg,#f0fff0,#e6ffe6);display:flex;align-items:center;justify-content:center;padding:20px}.register-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;width:100%;max-width:800px;overflow:hidden}.register-header{background:#03c75a;color:#fff;padding:32px;text-align:center}.register-header h1{font-size:28px;font-weight:700;margin:0 0 8px}.register-header p{font-size:16px;margin:0;opacity:.9}.register-form{padding:32px}.form-section h2:before{content:"";width:4px;height:20px;background:#03c75a;border-radius:2px}.form-group input,.form-group select{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff}.form-group input:focus,.form-group select:focus{outline:none;border-color:#03c75a;box-shadow:0 0 0 3px #03c75a1a}.form-group input.error,.form-group select.error{border-color:#dc3545}.form-actions{display:flex;gap:16px;justify-content:center;padding-top:24px;border-top:1px solid #e9ecef}.btn-primary{background:#03c75a;color:#fff;border:none;padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:flex;align-items:center;justify-content:center;text-align:center;min-width:100px}.btn-secondary{background:#6c757d;color:#fff;border:none;padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none;display:inline-block;text-align:center;min-width:140px}.btn-secondary:hover{background:#5a6268;transform:translateY(-1px)}@media (max-width: 768px){.register-container{padding:16px}.register-header{padding:24px}.register-header h1{font-size:24px}.register-form{padding:24px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}}.student-birth-date-container{display:flex;gap:8px}.student-birth-date-select{flex:1;width:100%;padding:10px 14px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff;height:42px;box-sizing:border-box;cursor:pointer;line-height:1.5}.student-birth-date-select:focus{outline:none;border-color:#03c75a;box-shadow:0 0 0 3px #03c75a1a}.student-birth-date-select.error{border-color:#dc3545}.username-check-container{display:flex;gap:8px}.username-check-container input{flex:1}.btn-check{background:#03c75a;color:#fff;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.btn-check:hover:not(:disabled){background:#02b350}.btn-check:disabled{background:#adb5bd;cursor:not-allowed}.check-message{display:block;font-size:12px;margin-top:4px;font-weight:500}.check-message.success{color:#28a745}.check-message.error{color:#dc3545}.students-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px}.btn-add-student{background:#03c75a;color:#fff;border:none;padding:8px 16px;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.student-form{border:2px solid #e9ecef;border-radius:12px;padding:20px;margin-bottom:20px;background:#f8f9fa}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.student-header h3{margin:0;color:#495057;font-size:16px}.btn-remove-student{background:#dc3545;color:#fff;border:none;padding:6px 8px;border-radius:4px;font-size:12px;cursor:pointer;transition:all .2s ease}.terms-container{display:flex;flex-direction:column;gap:16px}.terms-item{border:1px solid #e9ecef;border-radius:8px;padding:16px;background:#f8f9fa}.checkbox-label{display:flex;align-items:center;gap:8px;font-size:16px;font-weight:600;cursor:pointer;margin-bottom:12px}.checkbox-label input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#03c75a}.checkbox-label .required{color:#dc3545;font-weight:700}.checkbox-label .optional{color:#6c757d;font-weight:600}.terms-content{background:#fff;border:1px solid #dee2e6;border-radius:6px;padding:12px;max-height:150px;overflow-y:auto;font-size:13px;line-height:1.6;color:#495057}.terms-content p{margin:8px 0}.terms-content p:first-child{margin-top:0}.terms-content p:last-child{margin-bottom:0}.terms-content strong{color:#212529;font-weight:600}.dashboard-wrapper{min-height:100vh;background:var(--gray-50)}.hero{background:linear-gradient(135deg,var(--naver-green) 0%,var(--naver-green-dark) 100%);padding:64px 32px;color:#fff;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;top:-50%;right:-10%;width:600px;height:600px;background:#ffffff0d;border-radius:50%}.hero-container{max-width:1400px;margin:0 auto;position:relative;z-index:1}.hero h1{font-size:42px;font-weight:700;margin-bottom:16px;letter-spacing:-.5px}.hero p{font-size:18px;opacity:.95;font-weight:400}.dashboard-container{max-width:1400px;margin:0 auto;padding:48px 32px}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-bottom:48px}.stat-card{background:#fff;border-radius:16px;padding:28px;box-shadow:0 1px 3px #0000000f;border:1px solid var(--gray-200);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden;min-width:0}.stat-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--naver-green),var(--naver-green-dark));transform:scaleX(0);transition:transform .3s}.stat-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #03c75a26;border-color:var(--naver-green-light)}.stat-card:hover:before{transform:scaleX(1)}.stat-card-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px;gap:12px}.stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#fff;background:linear-gradient(135deg,var(--naver-green) 0%,var(--naver-green-dark) 100%);box-shadow:0 4px 12px #03c75a4d;flex-shrink:0}.stat-trend{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:600;color:var(--naver-green);background:var(--naver-green-lighter);padding:4px 10px;border-radius:12px}.stat-trend.success{color:var(--success-dark);background:var(--success-light)}.stat-trend.warning{color:var(--warning-dark);background:var(--warning-light)}.stat-content h3{font-size:14px;font-weight:500;color:var(--gray-600);margin-bottom:8px;white-space:nowrap}.stat-value{font-size:32px;font-weight:700;color:var(--gray-900);line-height:1;white-space:nowrap}.stat-unit{font-size:18px;color:var(--gray-500);margin-left:4px}.stat-footer{margin-top:16px;padding-top:16px;border-top:1px solid var(--gray-100);font-size:12px;color:var(--gray-500);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-footer i{margin-right:4px}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(500px,1fr));gap:24px;margin-bottom:48px}.dashboard-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 1px 3px #0000000f;border:1px solid var(--gray-200);transition:all .3s}.dashboard-card:hover{box-shadow:0 8px 16px #00000014}.card-header{padding:24px 28px;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;align-items:center;background:var(--gray-50)}.card-title{font-size:18px;font-weight:700;color:var(--gray-900);display:flex;align-items:center;gap:10px;margin:0}.card-title i{color:var(--naver-green)}.card-badge{background:var(--naver-green);color:#fff;padding:5px 14px;border-radius:14px;font-size:13px;font-weight:600}.card-badge.warning{background:var(--warning);color:#fff}.card-body{padding:0}.list{display:flex;flex-direction:column}.list-item{padding:20px 28px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;gap:16px;transition:all .2s}.list-item:hover{background:var(--gray-50)}.list-item:last-child{border-bottom:none}.item-icon{width:44px;height:44px;border-radius:12px;background:var(--naver-green-light);color:var(--naver-green);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.item-icon.warning{background:var(--warning-light);color:var(--warning)}.item-icon.urgent{background:var(--error-light);color:var(--error)}.item-content{flex:1}.item-title{font-size:15px;font-weight:600;color:var(--gray-900);margin-bottom:4px}.item-subtitle{font-size:13px;color:var(--gray-600)}.item-badge{padding:6px 14px;border-radius:12px;font-size:13px;font-weight:600;white-space:nowrap}.badge-scheduled,.badge-pending{background:var(--warning-light);color:var(--warning-dark)}.badge-completed,.badge-confirmed,.badge-present,.badge-success{background:var(--success-light);color:var(--success-dark)}.badge-cancelled,.badge-absent,.badge-error{background:var(--error-light);color:var(--error-dark)}.badge-late,.badge-warning{background:var(--warning-light);color:var(--warning-dark)}.badge-excused,.badge-info{background:var(--info-light);color:var(--info-dark)}.empty-state{text-align:center;padding:60px 20px;color:var(--gray-400)}.empty-state i{font-size:48px;margin-bottom:16px;opacity:.5}.empty-state p{margin:0;font-size:15px}.show-more{padding:12px 24px;text-align:center;font-size:13px;color:var(--gray-600);background:var(--gray-50);cursor:pointer;transition:all .15s;border-top:1px solid var(--gray-100);font-weight:500}.show-more:hover{background:var(--gray-100);color:var(--gray-700)}@media (max-width: 1200px){.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 1024px){.dashboard-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.hero{padding:48px 16px}.hero h1{font-size:32px}.hero p{font-size:16px}.dashboard-container{padding:32px 16px}.stats-grid{grid-template-columns:1fr;gap:16px}.stat-card{padding:20px}.stat-value{font-size:28px}.dashboard-grid{grid-template-columns:1fr;gap:16px}.list-item{padding:16px 20px}.card-header{padding:20px}.item-icon{width:40px;height:40px;font-size:16px}}@media (max-width: 480px){.hero{padding:32px 12px}.hero h1{font-size:24px}.hero p{font-size:14px}.dashboard-container{padding:24px 12px}.stat-icon{width:40px;height:40px;font-size:18px}.stat-value{font-size:24px}.list-item{padding:12px 16px;flex-wrap:wrap}.card-header{padding:16px;flex-direction:column;align-items:flex-start;gap:12px}}.list-item.clickable{cursor:pointer;transition:all .3s ease}.list-item.clickable:hover{background:var(--gray-50);transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.stats-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;padding:20px;background:var(--gray-50);border-radius:12px;border:1px solid var(--gray-200)}.summary-item{text-align:center;padding:12px;border-radius:8px;background:#fff;border:1px solid var(--gray-200);transition:all .2s ease}.summary-item:hover{transform:translateY(-1px);box-shadow:0 2px 8px #0000001a}.summary-item.warning{border-color:var(--warning-color);background:var(--warning-bg)}.summary-item.urgent{border-color:var(--error-color);background:var(--error-bg)}.summary-label{display:block;font-size:12px;color:var(--gray-600);font-weight:500;margin-bottom:4px}.summary-value{display:block;font-size:18px;font-weight:700;color:var(--gray-900)}.summary-item.warning .summary-value{color:var(--warning-color)}.summary-item.urgent .summary-value{color:var(--error-color)}.stat-card.clickable:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a;border-color:var(--naver-green)}.item-action{color:var(--gray-400);font-size:14px;margin-left:auto}.modal-content{background:#fff;border-radius:16px;max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-header h2{margin:0;font-size:20px;font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:8px}.modal-close{width:32px;height:32px;border:none;background:none;font-size:16px;color:var(--gray-400);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;border-radius:6px}.enrollment-details{display:flex;flex-direction:column;gap:24px}.detail-section h3{font-size:16px;font-weight:600;color:var(--gray-900);margin:0 0 16px;padding-bottom:8px;border-bottom:2px solid var(--naver-green)}.detail-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.detail-item{display:flex;flex-direction:column;gap:4px}.detail-label{font-size:13px;font-weight:500;color:var(--gray-600)}.detail-value{font-size:15px;font-weight:500;color:var(--gray-900)}.detail-value.highlight{color:var(--naver-green);font-weight:600}.status-info{display:flex;flex-direction:column;gap:16px}.status-badge{display:inline-block;padding:6px 12px;border-radius:12px;font-size:13px;font-weight:600;width:fit-content}.status-badge.active{background:var(--success-light);color:var(--success-dark)}.status-badge.inactive{background:var(--error-light);color:var(--error-dark)}.memo{display:flex;flex-direction:column;gap:8px}.memo p{margin:0;padding:12px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200);line-height:1.5;color:var(--gray-800)}@media (max-width: 768px){.modal-content{max-width:100%;margin:0;border-radius:12px}.modal-header,.modal-body{padding:20px}.detail-grid{grid-template-columns:1fr}}.show-more-btn{width:100%;padding:12px 24px;text-align:center;font-size:13px;color:var(--gray-600);background:var(--gray-50);border:none;border-top:1px solid var(--gray-100);font-weight:500;cursor:pointer;transition:all .15s}.show-more-btn:hover{background:var(--gray-100);color:var(--gray-700);transform:translateY(-1px);box-shadow:0 2px 4px #0000001a}.show-more-btn:active{background:var(--gray-200);transform:translateY(0) scale(.98);box-shadow:0 1px 2px #0000001a}.parent-dashboard{min-height:100vh;background:var(--gray-50)}.parent-dashboard .dashboard-header{background:linear-gradient(135deg,var(--naver-green) 0%,var(--naver-green-dark) 100%);color:#fff;padding:48px 32px}.parent-dashboard .dashboard-header h1{font-size:2rem;color:#fff;margin:0 0 8px;font-weight:700}.parent-dashboard .dashboard-header p{font-size:1rem;color:#ffffffe6;margin:0}.parent-content{max-width:1400px;margin:0 auto;padding:48px 40px}.student-section{background:#fff;border-radius:20px;margin-bottom:40px;box-shadow:0 4px 16px #0000001a;overflow:hidden}.student-header{display:flex;justify-content:space-between;align-items:center;padding:28px 40px;background:var(--gray-50);border-bottom:4px solid var(--naver-green)}.student-header h2{margin:0;font-size:1.75rem;font-weight:700;color:var(--gray-900)}.days-badge{background:var(--naver-green);color:#fff;padding:10px 24px;border-radius:28px;font-size:16px;font-weight:600}.days-badge.urgent{background:#dc2626}.info-table{padding:16px 0}.info-row{display:flex;padding:16px 40px;border-bottom:1px solid var(--gray-100)}.info-row:last-child{border-bottom:none}.info-row .info-label{width:160px;flex-shrink:0;font-size:16px;font-weight:600;color:var(--gray-500)}.info-row .info-value{flex:1;font-size:18px;font-weight:500;color:var(--gray-900)}.info-row .info-value.highlight{color:var(--naver-green);font-weight:700}.info-row .info-value.urgent{color:#dc2626;font-weight:700}.info-row.clickable{cursor:pointer;transition:background .2s}.info-row.clickable:hover{background:var(--gray-100)}.parent-dashboard .empty-state{text-align:center;padding:60px 20px;color:var(--gray-400)}.parent-dashboard .empty-state i{font-size:48px;margin-bottom:16px}.parent-dashboard .empty-state p{font-size:15px;margin:0}@media (max-width: 768px){.parent-content{padding:16px}.student-header{padding:16px 20px}.info-row{padding:12px 20px}.info-row .info-label{width:100px;font-size:13px}.info-row .info-value{font-size:14px}}.student-info-section{margin-bottom:3rem}.student-name-header{font-size:1.8rem;color:#1f2937;margin-bottom:2rem;padding-bottom:.5rem;border-bottom:3px solid #03C75A;font-weight:700}.schedule-time{font-size:1.2rem!important}.period-dates{font-size:1rem!important}.recording-modal{max-width:800px;max-height:85vh;overflow:hidden;border-radius:20px;box-shadow:0 25px 50px #00000040;background:linear-gradient(135deg,#03c75a,#02b350);color:#fff}.recording-modal .modal-header{background:transparent;border-bottom:1px solid rgba(255,255,255,.2);padding:2rem}.recording-modal .modal-header h2{color:#fff;font-size:1.8rem;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.3)}.recording-modal .modal-header h2 i{color:#fbbf24;margin-right:1rem}.recording-modal .modal-close{background:#fff3;color:#fff;border:none;width:40px;height:40px;border-radius:50%;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.recording-modal .modal-close:hover{background:#ffffff4d;transform:scale(1.1)}.recording-modal .modal-body{padding:2rem;max-height:60vh;overflow-y:auto;background:#ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.recording-list{display:flex;flex-direction:column;gap:1.5rem}.recording-item{display:flex;justify-content:space-between;align-items:center;padding:2rem;background:#fffffff2;border-radius:16px;border:1px solid rgba(255,255,255,.3);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transition:all .3s ease;box-shadow:0 8px 32px #0000001a;color:#1f2937}.recording-item:hover{transform:translateY(-5px);box-shadow:0 15px 40px #0003;background:#fff}.recording-info{flex:1}.recording-title{font-size:1.3rem;font-weight:700;color:#1f2937;margin-bottom:.8rem;display:flex;align-items:center}.recording-title i{color:#03c75a;margin-right:.8rem;font-size:1.5rem}.recording-date{font-size:1rem;color:#6b7280;margin-bottom:.8rem;font-weight:500}.recording-memo{font-size:.95rem;color:#4b5563;background:linear-gradient(135deg,#f8fafc,#e2e8f0);padding:1rem;border-radius:12px;margin-top:.8rem;border-left:4px solid #fbbf24}.recording-memo i{color:#f59e0b;margin-right:.8rem;font-size:1.1rem}.recording-actions{display:flex;gap:.8rem}.btn-play{display:inline-flex;align-items:center;gap:.8rem;padding:1rem 2rem;background:linear-gradient(135deg,#03c75a,#02b350);color:#fff;text-decoration:none;border-radius:12px;font-weight:600;font-size:1rem;transition:all .3s ease;box-shadow:0 4px 15px #03c75a66}.btn-play:hover{transform:translateY(-2px);box-shadow:0 8px 25px #03c75a99;background:linear-gradient(135deg,#02b350,#028a42)}.btn-play i{font-size:1.1rem}.recording-modal .empty-state{text-align:center;padding:4rem 2rem;color:#ffffffe6}.recording-modal .empty-state i{font-size:5rem;margin-bottom:2rem;color:#ffffffb3}.recording-modal .empty-state p{font-size:1.3rem;font-weight:300}.stat-card.clickable{cursor:pointer;transition:all .3s ease}.stat-card.clickable:hover{transform:translateY(-3px);box-shadow:0 8px 25px #00000026}.recording-modal .modal-body::-webkit-scrollbar{width:8px}.recording-modal .modal-body::-webkit-scrollbar-track{background:#ffffff1a;border-radius:4px}.recording-modal .modal-body::-webkit-scrollbar-thumb{background:#ffffff4d;border-radius:4px}.recording-modal .modal-body::-webkit-scrollbar-thumb:hover{background:#ffffff80}@media (max-width: 768px){.recording-modal{max-width:95vw;margin:1rem;border-radius:16px}.recording-modal .modal-header,.recording-modal .modal-body{padding:1.5rem}.recording-item{flex-direction:column;align-items:flex-start;gap:1.5rem;padding:1.5rem}.recording-actions,.btn-play{width:100%;justify-content:center}}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;padding:40px}.sun-loader{position:relative;width:60px;height:60px;margin-bottom:20px}.ray{position:absolute;background:#4caf50;border-radius:3px;width:5px;height:14px;left:50%;top:0;transform-origin:50% 30px}.ray-1{transform:translate(-50%) rotate(0);animation:fade 1.2s linear infinite;animation-delay:0s}.ray-2{transform:translate(-50%) rotate(45deg);animation:fade 1.2s linear infinite;animation-delay:.15s}.ray-3{transform:translate(-50%) rotate(90deg);animation:fade 1.2s linear infinite;animation-delay:.3s}.ray-4{transform:translate(-50%) rotate(135deg);animation:fade 1.2s linear infinite;animation-delay:.45s}.ray-5{transform:translate(-50%) rotate(180deg);animation:fade 1.2s linear infinite;animation-delay:.6s}.ray-6{transform:translate(-50%) rotate(225deg);animation:fade 1.2s linear infinite;animation-delay:.75s}.ray-7{transform:translate(-50%) rotate(270deg);animation:fade 1.2s linear infinite;animation-delay:.9s}.ray-8{transform:translate(-50%) rotate(315deg);animation:fade 1.2s linear infinite;animation-delay:1.05s}@keyframes fade{0%,to{opacity:.2}12.5%{opacity:1}}.loading-text{color:#666;font-size:16px;margin:0;font-weight:500}.students-page{min-height:100vh;background:#f5f7fa}.students-header{background:#fff;padding:32px;border-bottom:1px solid #e5e7eb}.students-header-content{max-width:1400px;margin:0 auto;display:flex;justify-content:space-between;align-items:center;width:100%}.students-title-section{display:block;flex:1}.students-title{font-size:28px;font-weight:700;color:#111827;margin:0 0 8px}.students-title i{color:#00c73c;margin-right:12px}.students-subtitle{font-size:14px;color:#6b7280;margin:0}.students-add-btn{background:#00c73c;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:8px}.students-add-btn:hover{background:#00a832}.students-content{max-width:1400px;margin:0 auto;padding:32px}.students-search-section{display:flex;gap:16px;align-items:center;justify-content:space-between;margin-bottom:24px;background:#fff;padding:16px 24px;border-radius:12px;box-shadow:0 2px 8px #0000000f}.students-search-wrapper{flex:1;position:relative;display:flex;align-items:center}.students-search-icon{position:absolute;left:16px;color:#9ca3af}.students-search-input{width:100%;padding:12px 12px 12px 44px;border:1px solid #e5e7eb;border-radius:8px;font-size:14px}.students-search-input:focus{outline:none;border-color:#00c73c}.students-result-count{font-size:14px;color:#6b7280;white-space:nowrap}.students-result-count strong{color:#00c73c}.search-section{display:flex;gap:16px;align-items:flex-start;margin-bottom:24px}.search-input-wrapper{flex:1;position:relative;display:flex;align-items:center}.result-count{display:flex;align-items:center;gap:8px;height:48px;padding:0 20px;background:#fff;border-radius:8px;font-size:15px;color:var(--gray-700);white-space:nowrap;border:1px solid var(--gray-200);box-sizing:border-box}.data-table th{padding:16px 20px;text-align:center!important;font-size:14px;font-weight:600;color:var(--gray-700);border-bottom:1px solid var(--gray-200)}.data-table td{padding:16px 20px;border-bottom:1px solid var(--gray-100);font-size:14px;color:var(--gray-800);text-align:center}.student-info{display:flex;align-items:center}.action-buttons{display:flex;gap:8px;justify-content:center;align-items:center}.level-text{font-weight:500;color:#333}.birth-date-inputs{display:flex;gap:8px;align-items:center}.birth-date-inputs select{flex:1;padding:8px 12px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;background:#fff;cursor:pointer;transition:border-color .2s ease;height:36px;min-height:36px}.birth-date-inputs select:hover{border-color:#03c75a}.birth-date-inputs select:focus{outline:none;border-color:#03c75a}.class-selection{border:1px solid #e0e0e0;border-radius:8px;padding:16px;background:#fafafa}.current-classes{margin-bottom:16px}.current-classes strong,.available-classes strong{display:block;margin-bottom:8px;color:#333}.enrolled-classes{display:flex;flex-wrap:wrap;gap:6px}.class-badge{background-color:#03c75a;color:#fff;padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;white-space:nowrap}.no-classes{color:#999;font-style:italic;font-size:14px}.class-list{display:flex;flex-direction:column;gap:8px}.class-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #ddd;border-radius:6px;background:#fff}.class-item input[type=checkbox]{margin:0;width:16px;height:16px}.class-item label{margin:0;cursor:pointer;font-size:14px;color:#333;flex:1}.vgsp-btn{width:40px;height:40px;border:2px solid var(--gray-300);border-radius:8px;background:#fff;color:var(--gray-400);font-weight:700;font-size:15px;cursor:pointer;transition:all .2s ease}.vgsp-btn:disabled{cursor:default;opacity:1}.vgsp-btn:hover:not(:disabled){border-color:var(--naver-green);color:var(--naver-green);background:#03c75a0d}.vgsp-btn.active{background:var(--naver-green);border-color:var(--naver-green);color:#fff;box-shadow:0 2px 8px #03c75a4d}.assigned-badge{display:inline-block;padding:6px 12px;border-radius:20px;font-weight:600;font-size:14px;background:var(--gray-100);color:var(--gray-400)}.assigned-badge.has-class{background:#03c75a1a;color:var(--naver-green)}.search-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a;display:flex;justify-content:space-between;align-items:center;gap:24px}.search-input-wrapper{position:relative;flex:1;max-width:400px}.search-input{width:100%;padding:12px 16px 12px 48px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;transition:all .2s ease;background:var(--gray-50)}.search-input:focus{outline:none;border-color:var(--naver-green);background:#fff;box-shadow:0 0 0 3px #03c75a1a}.result-count{display:flex;align-items:center;gap:8px;font-size:15px;color:var(--gray-600);white-space:nowrap}.result-count strong{color:var(--naver-green);font-weight:600}.courses-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(350px,1fr));gap:24px}.course-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;transition:all .2s ease;border:1px solid var(--gray-200)}.course-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.course-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px}.course-header h3{font-size:20px;font-weight:600;color:var(--gray-900);margin:0 12px 0 0;flex:1}.course-level-badge{padding:4px 12px!important;border-radius:12px!important;font-size:13px!important;font-weight:600!important;color:#fff!important;white-space:nowrap!important}.course-description{color:var(--gray-600);font-size:14px;line-height:1.5;margin:0 0 20px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.course-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.course-detail-item{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--gray-600)}.course-detail-item i{color:var(--naver-green);width:16px;text-align:center}.course-actions{display:flex;gap:8px;justify-content:flex-end}.btn-edit,.btn-delete{padding:8px 16px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:6px}.btn-edit:hover{background:var(--gray-200)}.btn-delete{background:#fee;color:#dc2626}.btn-delete:hover{background:#fecaca}.empty-state{grid-column:1 / -1;text-align:center;padding:80px 20px;color:var(--gray-500);font-size:16px}.btn-primary{background:var(--naver-green);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:8px}.btn-primary:hover{background:#02b351;transform:translateY(-1px)}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;transition:border-color .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--naver-green)}@media (max-width: 768px){.page-header-content{flex-direction:column;gap:20px;align-items:flex-start}.search-section{flex-direction:column;gap:16px;align-items:stretch}.search-input-wrapper{max-width:none}.courses-grid,.course-details{grid-template-columns:1fr}.modal{margin:20px;width:calc(100% - 40px)}}.course-detail-modal{max-width:800px;max-height:90vh;overflow-y:auto}.courses-tab-section{max-width:1400px;margin:0 auto 30px;padding:0 32px}.courses-tab-navigation{background:#fff;border-radius:12px;padding:4px;display:flex;gap:4px;box-shadow:0 2px 8px #0000001a;position:relative;overflow:hidden}.courses-tab-navigation:before{content:"";position:absolute;top:4px;left:4px;width:calc(50% - 6px);height:calc(100% - 8px);background:var(--naver-green);border-radius:8px;transition:transform .3s ease;z-index:1}.courses-tab-navigation[data-active=courses]:before{transform:translate(0)}.courses-tab-navigation[data-active=schedules]:before{transform:translate(calc(100% + 4px))}.courses-tab-button{flex:1;padding:12px 20px;border:none;background:transparent;color:#6c757d;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;justify-content:center;gap:8px;font-size:14px;font-weight:500;border-radius:8px;position:relative;z-index:2}.courses-tab-button.active{color:#fff}.courses-tab-button:not(.active):hover{color:#495057;background:#03c75a1a}.courses-tab-button i{font-size:16px}.courses-tab-content{max-width:1400px;margin:0 auto;padding:0 32px;background:transparent;border-radius:0;box-shadow:none;overflow:visible}.tab-content-wrapper{padding:0}.tab-header{display:flex;justify-content:flex-end;padding:20px 25px;border-bottom:1px solid #f0f0f0}.search-section,.filter-section{padding:20px 25px;border-bottom:1px solid #f0f0f0}.content-section{padding:25px}.courses-grid,.schedule-list{margin:0}.page-content{padding:0}.schedule-filters{margin-bottom:0;padding:0}.filter-card{background:#fff;border-radius:12px;padding:20px;box-shadow:0 2px 8px #00000014;border:1px solid #f0f0f0;display:flex;gap:25px;align-items:end}.filter-group{display:flex;flex-direction:column;gap:8px;min-width:200px}.filter-group label{font-weight:600;color:#333;font-size:14px;display:flex;align-items:center;gap:8px}.filter-group label i{color:var(--naver-green);font-size:16px}.filter-input,.filter-select{padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff}.filter-input:focus,.filter-select:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.filter-select{cursor:pointer}.filter-select option{padding:8px}.btn-table-schedule{background:#28a745;color:#fff;border:none;padding:8px 12px;border-radius:4px;cursor:pointer;font-size:12px;margin-right:8px;transition:background-color .2s}.btn-table-schedule:hover{background:#218838}.schedule-header{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid #eee}.schedule-create-form{background:#f8f9fa;padding:20px;border-radius:8px;margin-bottom:20px}.schedule-create-form h3{margin:0 0 15px;color:#333}.form-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:15px;margin-bottom:15px}.form-actions{display:flex;gap:10px;justify-content:flex-end;margin-top:15px}.schedule-list h3{margin:0 0 15px;color:#333}.schedule-items{display:flex;flex-direction:column;gap:12px}.schedule-item{display:flex;justify-content:space-between;align-items:center;padding:15px;border:1px solid #ddd;border-radius:8px;background:#fff}.schedule-item.cancelled{background:#f8f9fa;opacity:.7}.schedule-date,.schedule-time,.schedule-students,.schedule-memo{display:flex;align-items:center;gap:8px;font-size:14px}.schedule-date i{color:#007bff}.schedule-time i{color:#28a745}.schedule-students i{color:#ffc107}.schedule-memo i{color:#6c757d}.schedule-actions{display:flex;gap:8px}.cancelled-badge{background:#dc3545;color:#fff;padding:4px 8px;border-radius:4px;font-size:12px}.empty-state{text-align:center;padding:40px;color:#6c757d}.empty-state i{font-size:48px;margin-bottom:15px;opacity:.5}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.schedule-item{flex-direction:column;align-items:flex-start;gap:10px}.schedule-actions{align-self:flex-end}}.attendance-controls{display:flex;gap:2rem;margin-bottom:2rem;padding:1.5rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;flex-wrap:wrap}.student-checkin{flex:1;min-width:300px}.student-name-td{align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--naver-green);text-align:center;padding:1rem!important}.student-checkin h3{margin:0 0 1rem;color:#374151;font-size:1.1rem}.search-input{width:100%;height:48px;padding:12px 16px 12px 48px;border:1px solid var(--gray-200);border-radius:8px;font-size:15px;transition:all .3s;background:#fff;box-sizing:border-box}.student-buttons{display:flex;flex-wrap:wrap;gap:.5rem;max-height:200px;overflow-y:auto}.student-btn{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;color:#374151;cursor:pointer;font-size:.9rem;font-weight:500;transition:all .2s}.student-btn:hover:not(:disabled){border-color:#03c75a;background:#f0f9f4;color:#03c75a}.student-btn.checked-in{background:#03c75a;color:#fff;border-color:#03c75a;cursor:not-allowed}.student-btn:disabled{opacity:.6}.date-selector{display:flex;align-items:center;gap:.5rem}.date-selector input[type=date]{padding:.5rem 1rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;cursor:pointer}.date-selector input[type=date]:focus{outline:none;border-color:#03c75a}.date-nav-btn{padding:.5rem .75rem;border:2px solid #e5e7eb;border-radius:8px;background:#fff;cursor:pointer;font-size:1rem;transition:all .2s}.date-nav-btn:hover{background:#f3f4f6;border-color:#03c75a}.today-btn{padding:.5rem 1rem;border:none;border-radius:8px;background:#03c75a;color:#fff;cursor:pointer;font-size:.9rem;font-weight:600;transition:background .2s}.today-btn:hover{background:#02a34a}.attendance-summary{margin-bottom:2rem}.summary-card{padding:2rem;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a}.summary-card h3{margin:0 0 1.5rem;color:#374151;font-size:1.25rem}.summary-stats{display:flex;gap:2rem}.stat{display:flex;flex-direction:column;align-items:center;gap:.5rem}.stat-label{font-size:.875rem;color:#6b7280}.stat-value{font-size:1.5rem;font-weight:700;color:#374151}.stat-value.present{color:#10b981}.stat-value.absent{color:#ef4444}.attendance-progress{margin-top:2rem;padding-top:2rem;border-top:1px solid #e5e7eb}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.progress-label{font-weight:600;color:#374151}.progress-percentage{font-size:1.25rem;font-weight:700;color:#03c75a}.progress-bar{width:100%;height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;position:relative}.progress-fill{height:100%;background:linear-gradient(90deg,#10b981,#03c75a);border-radius:6px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.3) 50%,transparent 100%);animation:shimmer 2s infinite}.attendance-table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow:hidden}.table-search{padding:1rem;border-bottom:1px solid #e5e7eb}.table-search-input{width:100%;padding:.75rem;border:2px solid #e5e7eb;border-radius:8px;font-size:1rem;transition:border-color .2s}.table-search-input:focus{outline:none;border-color:#03c75a}.attendance-table{width:100%;border-collapse:collapse}.attendance-table th{background:#f9fafb;padding:1rem;text-align:center;font-weight:600;color:#374151;border-bottom:2px solid #e5e7eb;white-space:nowrap}.attendance-table td{padding:1rem;vertical-align:middle;text-align:center}.attendance-row.absent{background:#fef2f2}.attendance-row.present{background:#f0fdf4}.attendance-row.present .status-badge{background:#dcfce7!important;color:#166534!important;font-weight:600}.attendance-row.late{background:#fffbeb}.attendance-row.late .status-badge{background:#fef3c7;color:#92400e}.attendance-row.excused{background:#eff6ff}.attendance-row.excused .status-badge{background:#dbeafe;color:#1e40af}.attendance-row.early-leave{background:#fdf4ff}.attendance-row.early-leave .status-badge{background:#f3e8ff;color:#7c3aed}.attendance-row.waiting{background:#fff}.attendance-row.waiting .status-badge{background:#f8f9fa;color:#6c757d}.student-info{display:flex;flex-direction:column;gap:.25rem;background:transparent}.student-info .name{font-weight:600;color:#374151;background:transparent}.class-info{display:flex;flex-direction:column;gap:.25rem;background:transparent}.course-name{font-weight:600;color:#374151;font-size:.9rem;background:transparent}.time-range{font-size:.8rem;color:#6b7280}.status-badge{font-size:.75rem;padding:.25rem .5rem;border-radius:4px;font-weight:500;width:fit-content}.naver-badge{font-size:.7rem;padding:.2rem .5rem;border-radius:4px;background:#03c75a;color:#fff;font-weight:600;margin-left:.5rem}.class-badge{font-size:.7rem;padding:.2rem .5rem;border-radius:4px;background:#e5e7eb;color:#374151;font-weight:500;margin-left:.5rem}.attendance-row .status-badge{background:#f3f4f6;color:#374151}.attendance-row.absent .status-badge{background:#fee2e2;color:#991b1b}.checkbox-container{display:flex;align-items:center;justify-content:center;cursor:pointer}.checkbox-container input[type=checkbox]{display:none}.checkmark{width:24px;height:24px;border:2px solid #d1d5db;border-radius:4px;display:flex;align-items:center;justify-content:center;transition:all .2s}.checkbox-container input[type=checkbox]:checked+.checkmark{background:#03c75a;border-color:#03c75a}.checkbox-container input[type=checkbox]:checked+.checkmark:after{content:"✓";color:#fff;font-weight:700}.notes-input{width:100%;padding:.5rem;border:1px solid #d1d5db;border-radius:4px;font-size:.875rem}.notes-input:focus{outline:none;border-color:#03c75a}.check-actions{text-align:center}.checkin-btn{padding:.5rem 1rem;background:#03c75a;color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s;vertical-align:middle;white-space:nowrap;min-width:80px}.checkin-btn:hover:not(:disabled){background:#02b350}.checkin-btn:disabled{opacity:.6;cursor:not-allowed}.checked-in-badge{padding:.5rem 1rem;background:#dcfce7;color:#166534;border-radius:6px;font-size:.875rem;font-weight:500;vertical-align:middle}.empty-state{text-align:center;padding:4rem 2rem;color:#6b7280}.empty-state i{font-size:3rem;margin-bottom:1rem;color:#d1d5db}.empty-state p{font-size:1.125rem}.attendance-cancel-btn{padding:.5rem 1rem;background:var(--error);color:#fff;border:none;border-radius:6px;font-size:.875rem;font-weight:500;cursor:pointer;transition:background .2s;vertical-align:middle}.attendance-cancel-btn:hover:not(:disabled){background:var(--error-dark)}.attendance-cancel-btn:disabled{opacity:.6;cursor:not-allowed}.action-buttons{display:flex;gap:6px;justify-content:center}.action-buttons button{padding:6px 12px;border:none;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;text-align:center;min-width:70px;height:32px}.action-buttons .btn-success{background-color:#28a745;color:#fff}.action-buttons .btn-success:hover:not(:disabled){background-color:#218838;transform:translateY(-1px);box-shadow:0 2px 6px #28a7454d}.action-buttons .btn-danger{background-color:#dc3545;color:#fff}.action-buttons .btn-danger:hover:not(:disabled){background-color:#c82333;transform:translateY(-1px);box-shadow:0 2px 6px #dc35454d}.action-buttons .btn-secondary{background-color:#6c757d;color:#fff}.action-buttons .btn-secondary:hover:not(:disabled){background-color:#5a6268}.action-buttons button:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.attendance-table th.sortable{cursor:pointer;-webkit-user-select:none;user-select:none;position:relative;transition:background-color .2s ease}.attendance-table th.sortable:hover{background-color:#f8f9fa}.attendance-table th.sortable.active{background-color:#e8f8f0;color:#03c75a}.attendance-table th.sortable i{margin-left:8px;font-size:12px;opacity:.7}.attendance-table th.sortable.active i{opacity:1}.dc-input,.wr-input{width:60px;padding:6px 8px;border:1px solid var(--gray-300);border-radius:4px;font-size:12px;text-align:center;background:#fff;font-weight:500}.dc-input:focus,.wr-input:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 2px #03c75a1a}.dc-check,.wr-check,.additional-classes{text-align:center;padding:8px 4px}.class-initials{color:var(--naver-green);font-size:12px}.check-in-info{display:flex;flex-direction:column;gap:2px}.expected-leave-hint{font-size:11px;color:var(--gray-500)}.class-buttons{display:flex;gap:4px;justify-content:center;margin-bottom:4px}.class-btn{width:24px;height:24px;border:1px solid var(--gray-300);border-radius:4px;background:#fff;font-size:11px;font-weight:700;cursor:pointer;transition:all .2s}.class-btn:hover{border-color:var(--naver-green);background:#03c75a1a}.class-btn.active{background:var(--naver-green);color:#fff;border-color:var(--naver-green)}.end-time{font-size:10px;color:var(--gray-600);margin-top:2px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:#fff;border-radius:12px;box-shadow:0 8px 32px #0003;width:90%;max-width:380px;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid #f0f0f0;background:#fafafa;border-radius:12px 12px 0 0}.modal-header h3{margin:0;color:#333;font-size:1.1rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.1rem;color:#999;cursor:pointer;padding:4px;border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;transition:all .2s}.modal-close:hover{background-color:#f0f0f0;color:#666}.modal-body{padding:24px 20px}.student-info{text-align:center;margin-bottom:20px;font-size:1rem;color:#555;padding:12px;background:#f8f9fa;border-radius:8px}.form-group{margin-bottom:0}.form-group label{display:block;margin-bottom:10px;font-weight:500;color:#444;font-size:.9rem}.phone-input{width:100%;padding:14px 16px;border:2px solid #e1e5e9;border-radius:8px;font-size:1.4rem;text-align:center;letter-spacing:4px;font-weight:600;transition:all .2s;box-sizing:border-box}.phone-input:focus{outline:none;border-color:#4caf50;box-shadow:0 0 0 3px #4caf501a}.modal-footer{display:flex;gap:12px;padding:16px 20px 20px}.modal-footer .btn{flex:1;padding:10px 16px;border:none;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;text-align:center;min-height:40px}.btn-secondary{background-color:#f8f9fa;color:#6c757d;border:1px solid #dee2e6}.btn-secondary:hover:not(:disabled){background-color:#e9ecef;border-color:#adb5bd}.btn-primary{background-color:#4caf50;color:#fff}.btn-primary:hover:not(:disabled){background-color:#45a049;transform:translateY(-1px);box-shadow:0 2px 8px #4caf504d}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important;box-shadow:none!important}.checkin-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;display:flex;z-index:9999}.checkin-left{flex:1;background:#4caf50;display:flex;flex-direction:column;padding:40px}.academy-name{font-size:18px;color:#ffffffe6;font-weight:600;letter-spacing:2px;margin-bottom:20px}.mode-tabs{display:flex;gap:10px;margin-bottom:20px}.mode-tab{flex:1;padding:18px 24px;font-size:24px;font-weight:600;border:none;border-radius:12px;cursor:pointer;transition:all .2s;background:#fff3;color:#fffc}.mode-tab.active{background:#fff;color:#4caf50}.mode-tab:hover:not(.active){background:#ffffff4d}.left-content{flex:1;display:flex;flex-direction:column;align-items:center;text-align:center;padding-top:40px}.checkin-instruction{font-size:36px;color:#fff;margin-bottom:30px;font-weight:500}.checkin-instruction .highlight{font-weight:700}.checkin-sub{font-size:20px;color:#fffc;margin-bottom:36px}.digit-boxes{display:flex;gap:16px;margin-bottom:28px;justify-content:center}.digit-box{width:80px;height:80px;border:2px solid rgba(255,255,255,.5);border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;font-size:36px;color:#4caf50;font-weight:700}.search-results{width:100%;max-width:450px;max-height:200px;overflow-y:auto;margin-top:20px}.result-card{background:#fff;border:2px solid transparent;border-radius:10px;padding:14px 18px;margin-bottom:10px;cursor:pointer;display:flex;justify-content:space-between;align-items:center}.result-card.selected{border-color:#fff;box-shadow:0 0 0 2px #ffffff80}.result-card .student-name{font-size:16px;font-weight:600;color:#333}.result-card .student-info{font-size:12px;color:#fff;background:#4caf50;padding:4px 12px;border-radius:12px;font-weight:500}.checkin-confirm-btn{width:100%;max-width:450px;padding:14px;font-size:16px;background:#fff;color:#4caf50;border:none;border-radius:10px;cursor:pointer;font-weight:700;margin-top:8px}.checkin-confirm-btn:disabled{background:#ffffff80}.datetime{color:#fff;text-align:left}.datetime .date{font-size:14px;opacity:.9;margin-bottom:4px}.datetime .time{font-size:36px;font-weight:600;font-variant-numeric:tabular-nums}.datetime-center{color:#fff;text-align:center;margin:24px 0}.datetime-center .date{font-size:32px;opacity:.9;margin-bottom:10px}.datetime-center .time{font-size:72px;font-weight:600;font-variant-numeric:tabular-nums}.checkin-right{width:45%;background:#e8f5e9;display:flex;align-items:center;justify-content:center;padding:40px}.number-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:420px}.number-btn{aspect-ratio:1;font-size:42px;font-weight:500;background:#fff;border:none;border-radius:16px;cursor:pointer;color:#333;box-shadow:0 2px 8px #00000014;transition:all .1s}.number-btn:hover{background:#f5f5f5}.number-btn:active{transform:scale(.95);background:#e8e8e8}.number-btn.func-btn{font-size:32px;color:#666}.checkin-confirm-btn.checkout{background:#fff;color:#333}.checkin-confirm-btn.checkout:hover{background:#f5f5f5}.no-results{margin-top:20px;padding:20px;background:#fff3;border-radius:12px;color:#fff;text-align:center;font-size:16px}.consultation-badge{display:inline-block;padding:4px 12px;background:#e3f2fd;color:#1976d2;border-radius:12px;font-size:13px;font-weight:600}.reservations-content{width:100%}.reservations-content.full-width{grid-template-columns:1fr;max-width:800px;margin:0 auto}.schedules-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000001a}.section-header{display:flex;justify-content:between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid var(--gray-100)}.section-header h2{margin:0;font-size:20px;font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:8px}.section-header h2:before{content:"";width:4px;height:20px;background:var(--naver-green);border-radius:2px}.count-badge{background:linear-gradient(135deg,var(--naver-green),var(--naver-green-dark));color:#fff;padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;box-shadow:0 2px 4px #03c75a4d}.schedules-grid{display:grid;gap:16px}.schedule-card{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:12px;padding:20px;transition:all .2s ease;position:relative;overflow:hidden}.schedule-card:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,var(--naver-green),var(--naver-green-dark))}.schedule-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026;border-color:var(--naver-green-light)}.schedule-info h3{margin:0 0 12px;font-size:18px;font-weight:600;color:var(--gray-900)}.schedule-time{font-size:14px;color:var(--naver-green);font-weight:500;margin:8px 0}.schedule-teacher{font-size:14px;color:var(--gray-600);margin:8px 0}.schedule-capacity{display:flex;justify-content:space-between;align-items:center;margin:16px 0}.capacity-badge{padding:4px 8px;border-radius:8px;font-size:12px;font-weight:600}.capacity-badge.available{background:var(--naver-green-light);color:var(--naver-green)}.capacity-badge.full{background:var(--error-light);color:var(--error)}.availability{font-size:12px;font-weight:500}.availability.full{color:var(--error)}.reservations-section{background:#fff;border-radius:16px;padding:24px;box-shadow:0 2px 8px #0000001a}.reservations-section.full-width{grid-column:1 / -1}.reservations-list{display:grid;gap:16px}.reservation-card{background:#fff;border:2px solid #f0f0f0;border-radius:16px;padding:24px;transition:all .3s ease;position:relative;box-shadow:0 2px 8px #0000000a}.reservation-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0000001f;border-color:#03c75a}.reservation-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:16px;border-bottom:2px solid #f5f5f5}.student-info h3{font-size:20px;font-weight:700;color:#333;margin:0}.reservation-details{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.detail-row{display:flex;flex-direction:column;gap:6px}.detail-row .label{font-size:12px;font-weight:600;color:#999;text-transform:uppercase;letter-spacing:.5px}.detail-row .value{font-size:15px;font-weight:600;color:#333}.reservation-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px;padding-top:16px;border-top:1px solid #f5f5f5}.reservation-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--gray-100)}.student-info h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--gray-900)}.student-contact{font-size:12px;color:var(--gray-500)}.status-badge{padding:4px 12px;border-radius:12px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.reservation-details{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.detail-row{display:flex;flex-direction:column;gap:4px}.detail-row .label{font-size:11px;font-weight:600;color:var(--gray-500);text-transform:uppercase;letter-spacing:.5px}.detail-row .value{font-size:14px;color:var(--gray-900);font-weight:500}.remaining-count{font-size:12px;color:var(--naver-green);font-weight:600}.reservation-actions{display:flex;gap:8px;justify-content:flex-end;align-items:center;flex-wrap:wrap}.cancel-deadline-notice{font-size:11px;color:var(--gray-500);font-style:italic}.empty-state{text-align:center;padding:48px 24px;color:var(--gray-500)}.empty-state i{font-size:48px;color:var(--gray-300);margin-bottom:16px}.empty-state p{margin:0;font-size:16px}.date-selector input{padding:12px 16px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;font-weight:500;color:var(--gray-700);background:#fff;transition:all .2s ease}.date-selector input:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.page-content{width:100%;max-width:none;margin:0;padding:32px 48px}.reservations-layout,.selected-info-section{width:100%;max-width:none}.selected-date-header{margin-bottom:24px}.schedules-section,.reservations-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--gray-200)}.reservations-section.full-width{flex:1;max-width:none}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;padding-bottom:24px;border-bottom:2px solid var(--gray-200)}.section-header h2{font-size:24px;font-weight:700;color:var(--gray-900);margin:0;display:flex;align-items:center;gap:12px;white-space:nowrap}.section-header h2 i{font-size:24px;flex-shrink:0}.count-badge{background:linear-gradient(135deg,var(--naver-green),var(--naver-green-dark));color:#fff;padding:10px 20px;border-radius:20px;font-size:16px;font-weight:700;box-shadow:0 2px 8px #03c75a4d;min-width:60px;text-align:center}.schedules-grid{display:flex;flex-direction:column;gap:16px}.schedule-card{border:1px solid var(--gray-200);border-radius:12px;padding:24px;transition:all .2s ease;background:#fff;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;gap:16px}.schedule-card:hover{border-color:var(--naver-green);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.schedule-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px}.schedule-title{font-size:16px;font-weight:600;color:var(--gray-900);margin:0}.schedule-time{font-size:14px;color:var(--naver-green);font-weight:500}.schedule-info{display:flex;flex-direction:column;gap:8px}.teacher-name{font-size:14px;color:var(--gray-600)}.capacity-info{font-size:14px;color:var(--gray-700);font-weight:500}.capacity-info.full{color:#dc2626}.btn-add-reservation{width:100%;background:var(--naver-green);color:#fff;border:none;padding:10px 16px;border-radius:6px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:6px}.btn-add-reservation:hover{background:#02b351}.btn-add-reservation:disabled{background:var(--gray-300);color:var(--gray-500);cursor:not-allowed}.reservations-list{display:flex;flex-direction:column;gap:12px}.reservation-card{border:1px solid var(--gray-200);border-radius:12px;padding:20px;background:#fff;transition:all .2s ease;box-shadow:0 2px 4px #0000000d;display:flex;flex-direction:column;gap:12px}.reservation-card:hover{border-color:var(--naver-green);transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.reservation-header{display:flex;flex-direction:column;gap:8px}.student-name{font-size:16px;font-weight:600;color:var(--gray-900)}.reservation-status{display:flex;align-items:center;gap:8px}.status-badge{padding:4px 10px;border-radius:12px;font-size:12px;font-weight:600;color:#fff}.reservation-details{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px;font-size:14px;color:var(--gray-600)}.reservation-actions{display:flex;gap:8px;justify-content:flex-end}.btn-confirm,.btn-cancel,.btn-force-cancel{padding:6px 12px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:4px}.btn-confirm{background:var(--naver-green);color:#fff}.btn-confirm:hover{background:#02b351}.btn-cancel{background:var(--gray-100);color:var(--gray-700)}.btn-cancel:hover{background:var(--gray-200)}.btn-force-cancel{background:#fee;color:#dc2626}.btn-force-cancel:hover{background:#fecaca}.empty-state{text-align:center;padding:80px 40px;color:var(--gray-500)}.empty-state i{font-size:72px;color:var(--gray-300);margin-bottom:24px}.empty-state p{font-size:18px;margin:0;font-weight:500;color:var(--gray-600)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.modal{background:#fff;border-radius:12px;padding:32px;width:90%;max-width:500px;max-height:90vh;overflow-y:auto}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px}.modal-title{font-size:24px;font-weight:600;color:var(--gray-900);margin:0}.btn-close{background:none;border:none;font-size:24px;color:var(--gray-400);cursor:pointer;padding:4px}.btn-close:hover{color:var(--gray-600)}.form-group label{display:block;margin-bottom:8px;font-weight:500;color:var(--gray-700)}.form-group select{width:100%;padding:12px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;transition:border-color .2s ease;background:#fff}.form-group select:focus{outline:none;border-color:var(--naver-green)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:32px}.btn-primary{background:var(--naver-green);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s ease}.btn-primary:hover{background:#02b351}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:500;cursor:pointer;transition:all .2s ease}@media (max-width: 1024px){.reservations-content{grid-template-columns:1fr;gap:24px}}@media (max-width: 768px){.page-header-content{flex-direction:column;gap:20px;align-items:flex-start}.page-content{padding:20px}.schedules-section,.reservations-section{padding:16px}.reservation-details{grid-template-columns:1fr}.reservation-actions{flex-direction:column}.modal{margin:20px;width:calc(100% - 40px)}}.reservation-stats{background:#fff;border-radius:16px;padding:32px 40px;margin-bottom:32px;box-shadow:0 2px 12px #00000014;display:flex;justify-content:space-between;align-items:center;border:1px solid var(--gray-200)}.stats-row{display:flex;align-items:center;gap:48px}.stat-item{display:flex;flex-direction:column;gap:8px;min-width:120px}.stat-label{font-size:14px;color:var(--gray-600);font-weight:600;text-transform:uppercase;letter-spacing:.5px}.stat-value{font-size:36px;font-weight:800;color:var(--gray-900);line-height:1}.stat-item.total .stat-value{color:var(--naver-green)}.stat-divider{width:2px;height:60px;background:var(--gray-200)}.sync-button{padding:14px 28px;background:linear-gradient(135deg,var(--naver-green),#02b350);color:#fff;border:none;border-radius:12px;font-size:15px;font-weight:700;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:10px;transition:all .3s ease;box-shadow:0 4px 12px #03c75a40;line-height:1;box-sizing:border-box}.sync-button:hover{background:linear-gradient(135deg,#02b350,#029943);transform:translateY(-2px);box-shadow:0 6px 20px #03c75a59}.sync-button:active{transform:translateY(0)}.sync-button i{font-size:16px}.dual-reservations-layout{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:24px;width:100%}.system-reservations-section,.naver-reservations-section{background:#fff;border-radius:16px;padding:40px;box-shadow:0 2px 12px #00000014;min-height:700px;border:2px solid var(--gray-200);transition:all .3s ease}.system-reservations-section:hover,.naver-reservations-section:hover{box-shadow:0 4px 20px #0000001f;transform:translateY(-2px)}.system-reservations-section .section-header h2 i{color:var(--naver-green)}.naver-reservations-section .section-header h2 i{color:#03c75a}.naver-reservations-section{border-color:#c8f0dd;background:linear-gradient(to bottom,#fff,#f9fffe)}.naver-badge{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;background:#e8f8f0;color:var(--naver-green);border-radius:12px;font-size:12px;font-weight:600}.naver-reservation-card{background:#f9fffe;border-left:3px solid var(--naver-green)}.naver-reservation-card .reservation-actions{opacity:.6;pointer-events:none}.naver-info-badge{display:inline-flex;align-items:center;gap:10px;padding:16px 28px;background:linear-gradient(135deg,#e8f8f0,#d4f3e6);color:var(--naver-green);border-radius:12px;font-size:15px;font-weight:600;margin-top:24px;border:1px solid #c8f0dd}.naver-info-badge i{font-size:18px}.detail-view-button{margin-top:12px;padding:6px 12px;background:#fff;color:#03c75a;border:1px solid #03c75a;border-radius:4px;font-size:12px;font-weight:500;cursor:pointer;transition:all .2s}.detail-view-button:hover{background:#03c75a;color:#fff}.detail-view-button i{margin-right:8px}.show-more-button{width:100%;padding:8px;margin-top:12px;background:#f8f9fa;color:#666;border:1px solid #dee2e6;border-radius:6px;font-size:13px;cursor:pointer;transition:all .2s}.show-more-button:hover{background:#e9ecef;color:#333}.naver-detail-modal{width:95vw!important;max-width:95vw!important;height:95vh;max-height:none;margin:0;display:flex;flex-direction:column}.naver-detail-modal .modal-body{flex:1;display:flex;flex-direction:column;overflow:hidden}.naver-table-container{flex:1;overflow-y:auto;overflow-x:scroll}.naver-booking-table{width:100%;min-width:1800px;border-collapse:separate;border-spacing:0;font-size:13px}.naver-booking-table thead{position:sticky;top:0;background:#fff;z-index:10}.naver-booking-table th{padding:14px 12px;text-align:center;font-weight:600;color:#333;background:#f8f9fa;border-bottom:2px solid #dee2e6;white-space:nowrap;font-size:13px}.naver-booking-table td{padding:12px;text-align:center;border-bottom:1px solid #e9ecef;color:#495057;font-size:13px}.naver-booking-table tbody tr{transition:background .15s}.naver-booking-table tbody tr:hover{background:#f8f9fa}.naver-booking-table .empty-data{padding:60px 20px;text-align:center;color:#999}.naver-booking-table .empty-data i{font-size:48px;margin-bottom:16px;display:block}.naver-booking-table .empty-data p{font-size:16px;margin:0}.status-label{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600}.status-label.confirmed{background:#e3f2fd;color:#1976d2}.status-label.cancelled{background:#ffebee;color:#d32f2f}.btn-table-delete{padding:10px 20px;border:none;border-radius:6px;font-size:15px;font-weight:600;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:6px;background:#f44336;color:#fff}.btn-table-delete:hover{background:#d32f2f;transform:translateY(-1px);box-shadow:0 4px 8px #f443364d}.cancel-deadline-notice{padding:8px 16px;background:#fff3e0;color:#f57c00;border-radius:6px;font-size:14px;font-weight:500}.consultation-type-badge{display:inline-flex;align-items:center;padding:6px 14px;background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;border-radius:20px;font-size:13px;font-weight:700;letter-spacing:.3px;box-shadow:0 2px 8px #667eea4d}.class-type-badge{display:inline-flex;align-items:center;padding:6px 14px;background:linear-gradient(135deg,#03c75a,#02b350);color:#fff;border-radius:20px;font-size:13px;font-weight:700;letter-spacing:.3px;box-shadow:0 2px 8px #03c75a4d}.consultation-text{color:#667eea;font-weight:700;display:flex;align-items:center;gap:6px}.consultation-text i{font-size:16px}.class-text{color:#03c75a;font-weight:700;display:flex;align-items:center;gap:6px}.class-text i{font-size:16px}.status-badge{padding:6px 16px;border-radius:20px;font-size:13px;font-weight:700;letter-spacing:.3px}.status-badge.confirmed{background:linear-gradient(135deg,#03c75a,#02b350);color:#fff;box-shadow:0 2px 8px #03c75a4d}.status-badge.pending{background:linear-gradient(135deg,#ffa726,#fb8c00);color:#fff;box-shadow:0 2px 8px #ffa7264d}.status-badge.cancelled{background:linear-gradient(135deg,#ef5350,#e53935);color:#fff;box-shadow:0 2px 8px #ef53504d}.parent-reservation{padding:2rem;width:100%;max-width:none}.page-header{text-align:left;margin-bottom:3rem}.page-header h1{color:#333;font-size:2.5rem;margin-bottom:.5rem;display:flex;align-items:center;justify-content:flex-start;gap:8px}.page-header h1 i{color:#03c75a;font-size:2rem}.page-header p{color:#666;font-size:1.1rem}.reservation-form-container{background:#fff;border-radius:12px;box-shadow:0 4px 20px #0000001a;overflow:hidden;width:100%}.reservation-form{width:100%!important;max-width:none!important}.form-section{margin-bottom:2.5rem;padding-bottom:2rem;border-bottom:1px solid #f0f0f0;width:100%;max-width:none}.form-section:last-of-type{border-bottom:none;margin-bottom:0}.form-section h2{color:#03c75a;font-size:1.3rem;margin-bottom:1.5rem}.selected-student-info{margin-top:1rem;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #e9ecef}.student-details h3{color:#495057;font-size:1rem;margin-bottom:.75rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:.5rem}.info-item{display:flex;align-items:center;gap:.5rem}.info-item .label{font-weight:500;color:#6c757d;min-width:60px}.info-item .value{color:#495057;font-weight:400}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.btn-add-student{background:#03c75a;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:.5rem}.btn-add-student:hover{background:#02b350}.student-form-group{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;margin-bottom:1rem}.student-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.student-header h3{color:#495057;font-size:1.1rem;margin:0}.btn-remove-student{background:#dc3545;color:#fff;border:none;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.8rem}.btn-remove-student:hover{background:#c82333}.consultation-info{background:linear-gradient(135deg,#f8fffe,#e8f5f3);border:2px solid #03C75A;border-radius:12px;padding:2rem;margin-top:1.5rem;box-shadow:0 4px 15px #03c75a1a;position:relative;overflow:hidden}.consultation-info:before{content:"";position:absolute;top:0;left:0;right:0;height:4px;background:linear-gradient(90deg,#03c75a,#02b350,#03c75a)}.consultation-info h3{color:#03c75a;font-size:1.3rem;margin-bottom:1.5rem;font-weight:700;text-align:center;padding-bottom:1rem;border-bottom:2px dashed #03C75A}.consultation-content{color:#2c3e50;line-height:1.8;font-size:.95rem}.consultation-content div{margin-bottom:.3rem}.consultation-content div:last-child{margin-bottom:0}.calendar-day.unavailable{background-color:#f8f9fa;color:#6c757d;cursor:not-allowed;opacity:.5}.calendar-day.unavailable:hover{background-color:#f8f9fa;color:#6c757d}.time-selector{margin-top:1rem}.time-selector h4{color:#03c75a;font-size:1rem;margin-bottom:1rem;text-align:center}.time-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(80px,1fr));gap:.5rem}.time-slot{padding:.5rem;border:1px solid #dee2e6;background:#fff;border-radius:4px;cursor:pointer;font-size:.9rem;transition:all .2s ease}.time-slot:hover{background:#e8f5f3;border-color:#03c75a}.time-slot.selected{background:#03c75a;color:#fff;border-color:#03c75a}.time-slot.reserved{background:#f8f9fa;color:#6c757d;border-color:#dee2e6;cursor:not-allowed;opacity:.6}.time-slot.reserved:hover{background:#f8f9fa;color:#6c757d;border-color:#dee2e6}.reserved-text{display:block;font-size:.7rem;margin-top:.2rem}display: flex; align-items: center; gap: .5rem; } .form-section h2::before{content:"";width:4px;height:20px;background:#03c75a;border-radius:2px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-weight:600;color:#333;font-size:.95rem}.form-group input,.form-group select,.form-group textarea{padding:.75rem 1rem;border:2px solid #e0e0e0;border-radius:8px;font-size:1rem;transition:all .3s ease;background:#fff}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#ff3b30;box-shadow:0 0 0 3px #ff3b301a}.error-message{color:#ff3b30;font-size:.85rem;margin-top:.25rem}.calendar-header-nav{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calendar-header-nav button{background:none;border:none;padding:.5rem;cursor:pointer;border-radius:4px;color:#666;transition:all .2s ease}.calendar-header-nav button:hover{background:#f0f0f0;color:#03c75a}.calendar-month{font-weight:600;color:#333;font-size:1.1rem}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.weekday{padding:8px;text-align:center;font-weight:600;color:var(--gray-700);background:var(--gray-100);border-radius:4px;font-size:14px}.calendar-header{padding:.5rem;text-align:center;font-weight:600;color:#666;font-size:.9rem}.calendar-day{padding:.75rem .5rem;text-align:center;cursor:pointer;border-radius:4px;transition:all .2s ease;font-size:.9rem;background:#fff}.calendar-day.weekend{color:#ff6b6b}.calendar-grid .calendar-day:nth-child(7n+1):not(.empty){color:#ff6b6b}.calendar-day.holiday{color:#ff6b6b;background:#fff5f5}.calendar-day.holiday.disabled{color:#fcc;background:#f5f5f5}.selected-date{margin-top:1rem;padding:.75rem;background:#e8f5e8;border-radius:8px;color:#03c75a;font-weight:600;text-align:center}.form-actions{text-align:center;padding-top:2rem;border-top:1px solid #f0f0f0}.submit-btn{background:linear-gradient(135deg,#03c75a,#02b350);color:#fff;border:none;padding:1rem 3rem;border-radius:50px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 15px #03c75a4d}.submit-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #03c75a66}.submit-btn:disabled{opacity:.7;cursor:not-allowed;transform:none}@media (max-width: 768px){.parent-reservation{padding:1rem}.page-header h1{font-size:2rem;gap:6px}.page-header h1 i{font-size:1.6rem}.form-row{grid-template-columns:1fr;gap:1rem}.form-section h2{font-size:1.2rem}.submit-btn{padding:.875rem 2rem;font-size:1rem}}@media (max-width: 480px){.parent-reservation{padding:.5rem}.page-header{margin-bottom:2rem}.page-header h1{font-size:1.75rem;gap:5px}.page-header h1 i{font-size:1.4rem}.form-section{margin-bottom:2rem;padding-bottom:1.5rem}}.reservation-result{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;text-align:center;padding:2rem}.result-icon{font-size:4rem;margin-bottom:1rem;width:80px;height:80px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700}.reservation-result.success .result-icon{background-color:#28a745}.reservation-result.error .result-icon{background-color:#dc3545}.reservation-result h2{margin-bottom:.5rem;color:#333}.reservation-result p{margin-bottom:2rem;color:#666;font-size:1.1rem}.result-buttons{display:flex;gap:1rem}.btn-retry,.btn-home{padding:.75rem 1.5rem;border:none;border-radius:4px;font-size:1rem;cursor:pointer;transition:background-color .3s}.btn-retry{background-color:#03c75a;color:#fff}.btn-retry:hover{background-color:#02b351}.btn-home{background-color:#6c757d;color:#fff}.btn-home:hover{background-color:#5a6268}@media (max-width: 768px){.form-row{grid-template-columns:1fr}}.reservation-closed{text-align:center;padding:60px 20px;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;max-width:500px;margin:40px auto}.closed-icon{font-size:64px;margin-bottom:20px}.reservation-closed h2{color:var(--gray-800);margin-bottom:16px;font-size:24px}.reservation-closed p{color:var(--gray-600);margin-bottom:8px;line-height:1.5}.calendar-day.out-of-range{background-color:#f5f5f5;color:#ccc;cursor:not-allowed}.calendar-day.out-of-range:hover{background-color:#f5f5f5;color:#ccc}.reservation-content{background:#fff;border-radius:12px;padding:32px;box-shadow:0 2px 8px #0000001a}.reservation-form{max-width:800px;margin:0 auto}.form-section{margin-bottom:32px;padding-bottom:24px;border-bottom:1px solid #e9ecef}.form-section:last-child{border-bottom:none;margin-bottom:0}.form-section h2{font-size:20px;font-weight:600;color:#333;margin-bottom:20px;display:flex;align-items:center;gap:8px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-group{margin-bottom:20px}.form-group label{display:block;font-weight:500;color:#333;margin-bottom:8px}.form-group input,.form-group select,.form-group textarea{width:100%;padding:12px 16px;border:2px solid #e9ecef;border-radius:8px;font-size:14px;transition:all .2s ease;background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:#03c75a;box-shadow:0 0 0 3px #03c75a1a}.form-group input.error,.form-group select.error,.form-group textarea.error{border-color:#dc3545}.form-group textarea{resize:vertical;min-height:100px}.error-message{display:block;color:#dc3545;font-size:12px;margin-top:4px}.form-actions{text-align:center;padding-top:24px;border-top:1px solid #e9ecef}.btn-primary{background:#03c75a;color:#fff;border:none;padding:14px 32px;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .2s ease;min-width:200px}.btn-primary:hover:not(:disabled){background:#02b350;transform:translateY(-1px)}.btn-primary:disabled{background:#6c757d;cursor:not-allowed;transform:none}@media (max-width: 768px){.consultation-reservation-container{padding:16px}.page-header{padding:20px}.reservation-content{padding:24px}.form-row{grid-template-columns:1fr}.page-title{font-size:24px;gap:6px}.page-title i{font-size:20px}}.date-inputs{display:flex;gap:12px;align-items:center}.date-inputs select,.time-input-wrapper select{flex:1;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;font-size:16px;background:#fff;cursor:pointer;transition:border-color .2s ease;height:48px;min-height:48px}.time-input-wrapper{display:flex;gap:12px;align-items:center;max-width:200px}.date-inputs select:hover,.time-input-wrapper select:hover{border-color:#03c75a}.date-inputs select:focus,.time-input-wrapper select:focus{outline:none;border-color:#03c75a}.date-inputs select.error,.time-input-wrapper select.error{border-color:#ff4757}@media (max-width: 768px){.date-inputs{flex-direction:column;gap:8px}}.student-select-input{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;min-height:52px;font-size:16px}.student-select-input.error{border-color:#ff4757}.student-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:1000;max-height:320px;overflow:hidden}.student-search input{width:100%;padding:12px 16px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s ease}.calendar-container{background:#f8f9fa;border-radius:12px;padding:1.5rem;border:2px solid #e0e0e0}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.calendar-nav-btn{background:none;border:none;padding:.5rem 1rem;cursor:pointer;border-radius:4px;color:#666;transition:all .2s ease;font-size:1.2rem}.calendar-nav-btn:hover{background:#f0f0f0;color:#03c75a}.calendar-title{font-weight:600;color:#333;font-size:1.1rem}.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:8px}.calendar-weekdays>div{padding:8px;text-align:center;font-weight:600;color:var(--gray-700);background:var(--gray-100);border-radius:4px;font-size:14px}.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-day{padding:.75rem .5rem;text-align:center;cursor:pointer;border-radius:4px;transition:all .2s ease;font-size:.9rem;background:#fff;min-height:40px;display:flex;align-items:center;justify-content:center}.calendar-day:not(.empty):not(.disabled):hover{background:#f0f9f4;color:#03c75a}.calendar-day.selected{background:#03c75a;color:#fff;font-weight:600}.calendar-day.disabled{color:#ccc;cursor:not-allowed;background:#f5f5f5}.calendar-day.empty{cursor:default;background:transparent}.calendar-days .calendar-day:nth-child(7n+1):not(.empty):not(.disabled){color:#ff6b6b}.full-width{width:100%}.class-info-layout{display:flex;flex-direction:column;gap:24px;width:100%;padding:0 24px}.calendar-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;width:100%;overflow:visible}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px}.calendar-header h3{margin:0;font-size:20px;font-weight:600;color:#333}.nav-button{background:none;border:none;padding:8px 12px;border-radius:6px;cursor:pointer;color:#666;transition:all .2s;font-size:16px}.nav-button:hover{background:#f5f5f5;color:#333}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;width:100%;overflow:visible}.calendar-header-day{padding:.5rem;text-align:center;font-weight:600;color:#666;font-size:.9rem;background:#f8f9fa}.calendar-day{padding:.75rem .5rem;text-align:center;cursor:pointer;border-radius:4px;transition:all .2s ease;font-size:.9rem;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}.calendar-day:not(.other-month):hover{background:#f0f9f4;color:#03c75a}.calendar-day.selected{background:#03c75a;color:#fff}.calendar-day.other-month{color:#ccc;background:#f8f9fa}.calendar-day.has-schedule{background:#e8f5e8}.calendar-day.has-schedule.selected{background:#03c75a}.calendar-grid .calendar-day:nth-child(7n+1):not(.other-month){color:#ff6b6b}.day-number{font-size:.9rem;font-weight:500;margin-bottom:4px}.schedule-indicator{width:6px;height:6px;background:#03c75a;border-radius:50%}.calendar-day.selected .schedule-indicator{background:#fff}.selected-info-section{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;overflow-y:auto}.selected-date-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid #eee}.selected-date-header h2{margin:0;font-size:20px;font-weight:600;color:#333}.count-badge{background:var(--naver-green);color:#fff;padding:4px 12px;border-radius:16px;font-size:14px;font-weight:500}.schedule-list{display:flex;flex-direction:column;gap:16px}.schedule-card{border:1px solid #e9ecef;border-radius:12px;padding:20px;transition:all .2s}.schedule-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--naver-green)}.schedule-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.course-info h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#333}.time-info{color:#666;font-size:14px}.capacity-badge{background:#f8f9fa;color:#495057;padding:6px 12px;border-radius:20px;font-size:14px;font-weight:500}.teacher-info{display:flex;align-items:center;gap:8px;margin-bottom:12px}.students-list{margin-top:12px}.students-list .label{display:flex;align-items:center;gap:8px;margin-bottom:8px;font-weight:500;color:#495057}.students-grid{display:flex;flex-wrap:wrap;gap:8px}.students-info{margin-top:4px}.student-count{font-size:14px;color:#666}.student-tag{background:#e8f5e8;color:var(--naver-green);padding:4px 12px;border-radius:16px;font-size:13px;font-weight:500}} .attendance-list{display:flex;flex-direction:column;gap:16px}.attendance-card{background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--gray-200);overflow:hidden;transition:all .2s ease}.attendance-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-1px)}.card-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.student-course-info h3{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 4px}.course-name{font-size:14px;color:var(--gray-600);background:var(--gray-100);padding:4px 8px;border-radius:4px}.status-badge{padding:6px 12px;border-radius:16px;font-size:12px;font-weight:500;color:#fff}.card-body{padding:24px}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:20px}.info-item{display:flex;flex-direction:column;gap:8px}.info-item .label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--gray-600)}.info-item .label i{color:var(--naver-green);width:16px}.info-item .value{font-size:16px;font-weight:600;color:var(--gray-900);padding-left:24px}.notes-section{margin-top:20px;padding-top:20px;border-top:1px solid var(--gray-200)}.notes-label{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:500;color:var(--gray-600);margin-bottom:8px}.notes-label i{color:var(--naver-green)}.notes-content{font-size:14px;color:var(--gray-700);line-height:1.5;margin:0;padding:12px;background:var(--gray-50);border-radius:8px;border-left:4px solid var(--naver-green)}.empty-state{text-align:center;padding:80px 20px;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a;border:1px solid var(--gray-200)}.empty-state i{font-size:64px;color:var(--gray-300);margin-bottom:24px}.empty-state h3{font-size:20px;font-weight:600;color:var(--gray-700);margin:0 0 8px}.empty-state p{font-size:16px;color:var(--gray-500);margin:0}@media (max-width: 768px){.class-info-container{padding:0 16px}.selected-date-info,.page-header-content{flex-direction:column;gap:16px;text-align:center}.info-grid{grid-template-columns:1fr;gap:16px}.card-header{flex-direction:column;gap:12px;text-align:center}.attendance-card{margin:0 -8px}}.attendance-list{display:flex;flex-direction:column;gap:16px}.attendance-card{border:1px solid #e9ecef;border-radius:12px;padding:20px;transition:all .2s}.attendance-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--naver-green)}.attendance-card .card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px}.student-course-info h3{margin:0 0 4px;font-size:18px;font-weight:600;color:#333}.course-name{color:#666;font-size:14px}.status-badge{padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;color:#fff}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}.info-item{display:flex;flex-direction:column;gap:4px}.info-item .label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#666}.info-item .value{font-size:14px;font-weight:500;color:#333}.empty-state{text-align:center;padding:60px 20px;color:#666}.empty-state i{font-size:48px;margin-bottom:16px;color:#ccc}.empty-state h3{margin:0 0 8px;font-size:18px;color:#333}.empty-state p{margin:0;font-size:14px}.notes-section{margin-top:16px;padding-top:16px;border-top:1px solid #eee}.notes-label{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:500;color:#666;margin-bottom:8px}.notes-content{margin:0;font-size:14px;color:#333;line-height:1.5}@media (max-width: 1024px){.class-info-layout{padding:0 16px}.calendar-section{padding:24px}.calendar-header h3{font-size:20px}}@media (max-width: 768px){.class-info-layout{padding:0 12px}.calendar-section{padding:16px}.calendar-header h3{font-size:18px}.nav-button{padding:8px;font-size:16px}.weekday{padding:8px 4px;font-size:12px}.calendar-day{padding:12px 4px;min-height:50px}.day-number{font-size:14px}.schedule-indicator{width:4px;height:4px}}.attendance-indicator{position:absolute;top:4px;right:4px;width:8px;height:8px}.attendance-dot{width:100%;height:100%;border-radius:50%;box-shadow:0 1px 3px #0000004d}.attendance-indicator.present .attendance-dot{background:#03c75a}.attendance-indicator.absent .attendance-dot{background:#ef4444}.attendance-indicator.late .attendance-dot{background:#f59e0b}.attendance-indicator.excused .attendance-dot{background:#6b7280}.attendance-indicator.early_leave .attendance-dot{background:#8b5cf6}.calendar-day{position:relative}.calendar-day.attendance-present{background-color:#03c75a1a}.calendar-day.attendance-absent{background-color:#ef44441a}.calendar-day.attendance-late{background-color:#f59e0b1a}.enrollments-grid .empty-state{grid-column:1 / -1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:80px 20px;text-align:center;color:var(--gray-500);font-size:16px;min-height:300px}.enrollments-grid .empty-state:before{content:"";font-family:"Font Awesome 5 Free";font-weight:900;font-size:48px;margin-bottom:16px;opacity:.5}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 20px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary{background:var(--naver-green);color:#fff}.btn-primary:hover{background:#00c73c;transform:translateY(-1px);box-shadow:0 4px 12px #03c75a4d}.btn-secondary{background:#fff;color:var(--gray-700);border:1px solid var(--gray-300)}.btn-secondary:hover{background:var(--gray-50);border-color:var(--gray-400)}.enrollments-filters{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px;gap:24px}.filter-left{flex:1}.status-filters{display:flex;gap:8px}.filter-btn{display:flex;align-items:center;gap:8px;padding:12px 16px;border:1px solid var(--gray-300);background:#fff;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-700);transition:all .2s ease}.filter-btn:hover{background:var(--gray-50);border-color:var(--naver-green)}.filter-btn.active{background:var(--naver-green);border-color:var(--naver-green);color:#fff}.filter-btn .count{font-size:12px;padding:2px 6px;border-radius:12px;background:#fff3;color:inherit}.filter-btn:not(.active) .count{background:var(--gray-100);color:var(--gray-600)}.filter-right{flex-shrink:0}.filters-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.filters-row{display:flex;gap:16px;align-items:center;flex-wrap:wrap}.filter-group{display:flex;flex-direction:column;gap:8px}.filter-group label{font-size:14px;font-weight:600;color:var(--gray-700)}.filter-select,.filter-input{padding:10px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:14px;min-width:150px}.filter-select:focus,.filter-input:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.enrollments-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(400px,1fr));gap:24px;margin-bottom:32px}.enrollment-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;transition:all .3s ease;cursor:pointer;border:1px solid var(--gray-200)}.enrollment-card:hover{transform:translateY(-2px);box-shadow:0 8px 25px #00000026;border-color:var(--naver-green)}.enrollment-header{display:flex;justify-content:between;align-items:flex-start;margin-bottom:16px}.enrollment-status{display:flex;gap:8px}.badges{display:flex;gap:8px;align-items:center;margin-bottom:8px}.status-badge,.type-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;color:#fff;white-space:nowrap;display:inline-block;min-width:50px;height:24px;line-height:16px;text-align:center;vertical-align:middle}.status-active{background:#e8f5e8;color:#2d7d32}.status-expired{background:#ffebee;color:#c62828}.badge-hold{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;background:#fff3e0;color:#e65100}.status-suspended{background:#fff3e0;color:#f57c00}.enrollment-student-name{font-size:20px;font-weight:700;color:var(--gray-800);margin:0 0 12px;padding:0;background:none;border:none;box-shadow:none}.enrollment-course-name{font-size:18px;font-weight:600;color:#fff;margin:0 0 20px;padding:12px 16px;background:linear-gradient(135deg,var(--naver-green) 0%,#02b351 100%);border-radius:8px;box-shadow:0 3px 8px #03c75a4d;text-align:center;position:relative;overflow:hidden}.enrollment-course-name:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);transition:left .5s}.enrollment-course-name:hover:before{left:100%}.enrollment-details{display:grid;grid-template-columns:1fr 1fr;gap:12px}.detail-item{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px;gap:12px}.detail-item .label{font-size:13px;color:var(--gray-600);font-weight:500;white-space:nowrap;min-width:70px}.detail-item .value{font-size:14px;font-weight:600;color:var(--gray-900);text-align:right;flex:1}.detail-item .value.remaining{color:#03c75a}.detail-item .value.period{font-size:12px;line-height:1.3;word-break:keep-all}.detail-item .value.price{color:var(--naver-green)}.detail-item .value.count{color:var(--blue-600)}.detail-item .value.date{color:var(--gray-700)}.modal-content{background:#fff;border-radius:16px;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px #0000004d}.modal-header{padding:24px 24px 0;border-bottom:1px solid var(--gray-200);margin-bottom:24px}.modal-title{font-size:24px;font-weight:700;color:var(--gray-900);margin:0 0 16px}.modal-body{padding:0 24px 24px}.detail-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:24px}.detail-info-item{display:flex;flex-direction:column;gap:4px}.info-label{font-size:13px;color:var(--gray-600);font-weight:500}.info-value{font-size:15px;font-weight:600;color:var(--gray-900)}.info-value.price{color:var(--naver-green)}.modal-actions{display:flex;gap:12px;justify-content:flex-end;padding-top:24px;border-top:1px solid var(--gray-200)}.form-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;box-shadow:0 1px 3px #0000001a}.form-title{font-size:20px;font-weight:700;color:var(--gray-900);margin:0 0 20px}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.form-group input,.form-group select,.form-group textarea{padding:12px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px;transition:border-color .2s ease}.form-help{font-size:12px;color:var(--gray-500);margin-top:4px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.form-section h3{font-size:16px;font-weight:600;color:var(--gray-800);margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid var(--gray-200)}.form-group input.readonly{background:var(--gray-100);color:var(--gray-600)}.form-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:24px}@media (max-width: 768px){.page-header-content{flex-direction:column;gap:16px;align-items:stretch}.enrollments-grid,.detail-info-grid,.form-grid{grid-template-columns:1fr}}.modal-footer{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center}.modal-footer button{margin:0;padding:10px 20px;font-size:14px;font-weight:500;border-radius:6px;border:none;cursor:pointer;transition:all .2s;min-width:80px;height:40px}.btn-activate{background:#28a745;color:#fff;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-activate:hover{background:#218838}.btn-expire{background:#ffc107;color:#212529;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-expire:hover{background:#e0a800}.btn-delete{background:#dc3545;color:#fff;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-delete:hover{background:#c82333}.btn-extend{background:#17a2b8;color:#fff;border:none;padding:12px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:100px}.btn-extend:hover{background:#138496}.student-select-input{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:2px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;min-height:48px}.student-name{font-weight:600;color:#333;font-size:15px}.parent-info{font-size:13px;color:#666;background:#f8f9fa;padding:2px 6px;border-radius:4px}.placeholder{color:#999;font-size:15px}.student-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:2px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:1000;max-height:280px;overflow:hidden}.student-search{padding:12px;border-bottom:1px solid #f0f0f0}.student-search input{width:100%;padding:8px 12px;border:2px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none}.student-list{max-height:200px;overflow-y:auto}.student-option{padding:12px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f8f8f8}.student-info{display:flex;align-items:center;gap:8px}.no-students{padding:20px;text-align:center;color:#999;font-size:14px}.recording-status{color:#007aff;font-weight:600}.enrollment-course-name{font-size:18px;color:#fff;font-weight:700;margin-top:8px;margin-bottom:16px;padding:8px 16px;background:linear-gradient(135deg,#03c75a,#02b350);border-radius:8px;display:inline-block;box-shadow:0 2px 8px #03c75a4d}.count-adjust-wrapper{display:flex;align-items:center;gap:12px}.count-adjust-buttons{display:flex;gap:4px}.btn-count-adjust{width:28px;height:28px;border-radius:6px;border:1px solid var(--gray-300);background:#fff;font-size:16px;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-count-adjust:hover{background:var(--gray-100)}.btn-count-adjust.minus{color:#ff3b30}.btn-count-adjust.minus:hover{background:#fff0f0;border-color:#ff3b30}.btn-count-adjust.plus{color:var(--naver-green)}.btn-count-adjust.plus:hover{background:#e8f8ee;border-color:var(--naver-green)}.header-actions{display:flex;gap:12px;align-items:center}.result-count-actions{display:flex;align-items:center;gap:16px}.btn-export{display:flex;align-items:center;gap:8px;padding:12px 16px;background:var(--success);color:#fff;border:none;border-radius:6px;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s;white-space:nowrap;height:48px;box-sizing:border-box}.btn-export:hover{background:var(--success-dark);transform:translateY(-1px)}.export-options{display:flex;flex-direction:column;gap:16px;justify-content:center;align-items:center}.export-option-btn{display:flex;align-items:center;gap:16px;padding:20px;border:1px solid var(--gray-200);border-radius:12px;background:#fff;cursor:pointer;transition:all .3s;text-align:left;width:100%}.export-option-btn:hover:not(:disabled){border-color:var(--naver-green);background:#03c75a0d}.export-option-btn:disabled{opacity:.5;cursor:not-allowed}.export-option-btn i{font-size:24px;color:var(--naver-green);flex-shrink:0}.export-option-btn h3{margin:0 0 4px;font-size:16px;font-weight:600;color:var(--gray-900)}.export-option-btn p{margin:0;font-size:14px;color:var(--gray-600)}.export-option-btn.date-range{cursor:default}.export-option-btn.date-range:hover{border-color:var(--gray-200);background:#fff}.date-inputs{display:flex;align-items:center;gap:12px;margin-top:8px}.date-inputs input{padding:8px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:14px}.date-inputs span{color:var(--gray-500);font-weight:500}.student-selector{flex:1;position:relative}.student-selector label{display:block;font-size:14px;font-weight:600;color:var(--gray-700);margin-bottom:8px}.student-selector select{width:100%;height:48px;padding:12px 40px 12px 44px;box-sizing:border-box;border:1px solid var(--gray-200);border-radius:8px;font-size:15px;background:#fff;color:var(--gray-800);cursor:pointer;transition:all .3s;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3e%3cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3e%3c/svg%3e");background-position:right 12px center;background-repeat:no-repeat;background-size:16px}.student-selector select:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.student-selector select:hover{border-color:var(--gray-300)}.student-selector select option{padding:12px;font-size:15px}.student-selector select option:first-child{color:var(--gray-500)}.student-selector:before{content:"";font-family:"Font Awesome 5 Free";font-weight:900;position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--naver-green);font-size:16px;pointer-events:none;z-index:1}.consultations-section{margin-top:24px}.consultations-list{display:flex;flex-direction:column;gap:20px}.consultation-card{background:#fff;border-radius:16px;border:1px solid #e8f5e9;overflow:hidden;transition:all .3s ease;box-shadow:0 4px 12px #00000014;margin-bottom:20px}.consultation-card:hover{box-shadow:0 8px 24px #03c75a26;transform:translateY(-4px);border-color:#00c73c}.consultation-header{padding:24px;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;align-items:flex-start;background:linear-gradient(135deg,#f8fff9,#fff)}.consultation-info h3{font-size:20px;font-weight:700;color:#1a1a1a;margin:0 0 12px;line-height:1.4;display:flex;align-items:center;gap:10px}.consultation-info h3:before{content:"📋";font-size:22px}.consultation-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.student-name{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:#00c73c;background:#00c73c1a;padding:6px 14px;border-radius:20px}.student-name:before{content:"👤";font-size:14px}.consultation-date{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:#666;background:#f5f5f5;padding:6px 14px;border-radius:20px}.consultation-date:before{content:"📅";font-size:14px}.consultation-type{font-size:13px;font-weight:600;padding:6px 14px;border-radius:20px;color:#fff;box-shadow:0 2px 6px #0000001a}.consultation-type.type-학습상담{background:linear-gradient(135deg,#00c73c,#00b33c)}.consultation-type.type-학부모상담{background:linear-gradient(135deg,#06f,#0052cc)}.consultation-type.type-진로상담{background:linear-gradient(135deg,#7c3aed,#6d28d9)}.consultation-type.type-생활상담{background:linear-gradient(135deg,#f59e0b,#d97706)}.consultation-actions{display:flex;gap:8px}.btn-edit,.btn-delete{width:40px;height:40px;border:none;border-radius:10px;cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;font-size:16px}.btn-edit{background:#e8f5e9;color:#00c73c}.btn-edit:hover{background:#00c73c;color:#fff;transform:scale(1.1)}.btn-delete{background:#ffebee;color:#f44336}.btn-delete:hover{background:#f44336;color:#fff;transform:scale(1.1)}.consultation-content{padding:24px}.consultation-content>p{font-size:15px;line-height:1.8;color:#333;margin:0 0 20px;background:#f8f9fa;padding:20px;border-radius:12px;max-height:120px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}.action-items{margin-bottom:16px;padding:18px;background:#00c73c0d;border-radius:12px}.action-items strong{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:700;color:#00b33c;margin-bottom:10px}.action-items strong:before{content:"✓";font-size:16px;background:#00c73c;color:#fff;width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center}.action-items p{font-size:14px;line-height:1.6;color:#555;margin:0;white-space:pre-line}.next-consultation{padding:14px 18px;background:#0066ff0d;border-radius:12px;font-size:14px;color:#333;display:flex;align-items:center;gap:8px}.next-consultation:before{content:"🗓️";font-size:18px}.next-consultation strong{color:#06f;font-weight:600}.consultation-files{padding:20px 24px;background:linear-gradient(135deg,#f8fff9,#f5f5f5);border-top:2px solid #e8f5e9;display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:16px}.file-download-item{display:flex;flex-direction:column;gap:10px;background:#fff;padding:16px;border-radius:12px;border:1px solid #e8f5e9;transition:all .3s}.file-download-item:hover{border-color:#00c73c;box-shadow:0 4px 12px #00c73c1a;transform:translateY(-2px)}.file-download-btn{display:flex;align-items:center;justify-content:center;gap:10px;padding:14px 20px;border:none;border-radius:10px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #0000001a}.file-download-btn i{font-size:18px}.file-download-btn.audio{background:linear-gradient(135deg,#00c73c,#00b33c);color:#fff}.file-download-btn.audio:hover{background:linear-gradient(135deg,#00b33c,#093);transform:scale(1.02);box-shadow:0 4px 16px #00c73c4d}.file-download-btn.document{background:linear-gradient(135deg,#06f,#0052cc);color:#fff}.file-download-btn.document:hover{background:linear-gradient(135deg,#0052cc,#04a);transform:scale(1.02);box-shadow:0 4px 16px #0066ff4d}.file-name{font-size:13px;color:#666;text-align:center;padding:8px;background:#f8f9fa;border-radius:6px;word-break:break-all}.file-download-btn.audio{background:#03c75a1a;color:var(--naver-green-dark);border:1px solid var(--naver-green)}.file-download-btn.audio:hover{background:var(--naver-green);color:#fff;transform:translateY(-1px)}.file-download-btn.document{background:#2563eb1a;color:#1e40af;border:1px solid #2563eb}.file-download-btn.document:hover{background:#2563eb;color:#fff;transform:translateY(-1px)}.consultation-footer{padding:16px 24px;background:linear-gradient(135deg,#fff,#f8fff9);border-top:2px solid #e8f5e9;display:flex;justify-content:flex-end;align-items:center}.consultant{font-size:14px;color:#666;display:inline-flex;align-items:center;gap:8px;background:#fff;padding:8px 16px;border-radius:20px;border:1px solid #e8f5e9;font-weight:500}.consultant:before{content:"👨‍🏫";font-size:16px}.student-checkbox-container{border:1px solid var(--gray-200);border-radius:8px;padding:16px;background:var(--gray-50)}.student-search-wrapper{margin-bottom:16px}.student-search-wrapper .search-input-wrapper{position:relative}.student-search-wrapper .search-input{width:100%;height:40px;padding:8px 16px 8px 40px;border:1px solid var(--gray-300);border-radius:6px;font-size:14px;background:#fff}.student-search-wrapper .search-input:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 2px #03c75a1a}.student-search-wrapper .search-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:14px}.select-all-wrapper{padding-bottom:12px;margin-bottom:12px;border-bottom:1px solid var(--gray-200)}.student-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:8px;max-height:200px;overflow-y:auto}.no-students{grid-column:1 / -1;text-align:center;padding:20px;color:var(--gray-500);font-size:14px}.checkbox-label{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px;color:var(--gray-700);background:#fff;border:1px solid var(--gray-200)}.checkbox-label:hover{background:#03c75a0d;border-color:var(--naver-green)}.checkbox-label input[type=checkbox]{display:none}.checkmark{width:18px;height:18px;border:1px solid var(--gray-300);border-radius:4px;position:relative;transition:all .2s;flex-shrink:0}.checkbox-label input[type=checkbox]:checked+.checkmark{background:var(--naver-green);border-color:var(--naver-green)}.checkbox-label input[type=checkbox]:checked+.checkmark:after{content:"";position:absolute;left:5px;top:2px;width:4px;height:8px;border:solid white;border-width:0 2px 2px 0;transform:rotate(45deg)}.select-all-wrapper .checkbox-label{font-weight:600;color:var(--naver-green);background:#03c75a1a;border-color:var(--naver-green)}.modal-header{padding:24px 32px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;background:var(--gray-50);margin-bottom:0}.form-section h3{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--naver-green)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:24px}.form-group{display:flex;flex-direction:column;gap:8px;margin-bottom:24px}.form-row .form-group{margin-bottom:0}.file-input-wrapper{position:relative}.file-remove-btn{position:absolute;top:50%;right:8px;transform:translateY(-50%);width:24px;height:24px;border:none;border-radius:50%;background:var(--error);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:all .2s;z-index:1}.file-remove-btn:hover{background:var(--error-dark);transform:scale(1.1)}.file-input-hidden{display:none}.file-input-custom{display:flex;align-items:center;gap:12px;padding:12px 16px;border:2px dashed var(--gray-300);border-radius:8px;background:var(--gray-50);cursor:pointer;transition:all .3s;font-size:14px;color:var(--gray-600);min-height:48px;box-sizing:border-box}.file-input-custom:hover{border-color:var(--naver-green);background:#03c75a0d;color:var(--naver-green-dark)}.file-input-custom.audio{border-color:var(--naver-green);background:#03c75a0d}.file-input-custom.audio:hover{background:#03c75a1a;border-color:var(--naver-green-dark)}.file-input-custom.document{border-color:#2563eb;background:#2563eb0d}.file-input-custom.document:hover{background:#2563eb1a;border-color:#1e40af}.file-input-custom i{font-size:16px;flex-shrink:0}.file-input-custom.audio i{color:var(--naver-green)}.file-input-custom.document i{color:#2563eb}.file-input-custom span{flex:1;text-align:left;font-weight:500}.file-input-wrapper small{display:block;margin-top:6px;font-size:12px;color:var(--gray-500);font-style:italic}.existing-files{margin-bottom:12px}.existing-files-label{font-size:12px;font-weight:600;color:var(--gray-600);margin-bottom:6px}.existing-file-display{background:#03c75a1a!important;border-color:var(--naver-green)!important;color:var(--naver-green-dark)!important;cursor:default!important}.existing-file-display:hover{background:#03c75a1a!important;border-color:var(--naver-green)!important}.file-item.existing{background:#03c75a0d;border:1px solid rgba(3,199,90,.2)}.file-item.existing i{color:var(--naver-green)}.file-item.existing span{color:var(--naver-green-dark);font-weight:500}.file-list{margin-top:12px;max-height:120px;overflow-y:auto;border:1px solid var(--gray-200);border-radius:6px;background:#fff}.file-item{display:flex;align-items:center;gap:8px;padding:8px 12px;border-bottom:1px solid var(--gray-100);font-size:13px}.file-item:last-child{border-bottom:none}.file-item i{color:var(--naver-green);font-size:12px;flex-shrink:0}.file-item span{flex:1;color:var(--gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-item-remove{width:20px;height:20px;border:none;border-radius:50%;background:var(--error-light);color:var(--error-dark);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;transition:all .2s;flex-shrink:0}.file-item-remove:hover{background:var(--error);color:#fff}.detail-section h3{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 20px;padding-bottom:12px;border-bottom:1px solid var(--naver-green)}.student-select-wrapper{position:relative;width:100%}.student-select-input{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;border:1px solid #e0e0e0;border-radius:8px;background:#fff;cursor:pointer;transition:all .2s ease;min-height:52px;font-size:16px}.student-select-input:hover{border-color:#03c75a}.selected-student-info{display:flex;align-items:center;gap:8px;flex:1}.student-name{font-weight:600;color:#333;font-size:16px}.parent-info{font-size:14px;color:#666;margin-left:8px}.placeholder{color:#999;font-size:16px}.student-select-input i{color:#666;font-size:14px;transition:transform .2s ease}.student-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 24px #0000001f;z-index:1000;max-height:320px;overflow:hidden}.student-search{padding:16px;border-bottom:1px solid #f0f0f0}.student-search input{width:100%;padding:12px 16px;border:1px solid #e0e0e0;border-radius:6px;font-size:14px;outline:none;transition:border-color .2s ease}.student-search input:focus{border-color:#03c75a}.student-list{max-height:240px;overflow-y:auto}.student-option{padding:16px;cursor:pointer;transition:background-color .2s ease;border-bottom:1px solid #f8f8f8}.student-option:hover{background-color:#f8f9fa}.student-option:last-child{border-bottom:none}.student-info{display:flex;align-items:center;gap:12px}.student-info .student-name{font-weight:600;color:#333;font-size:15px}.student-info .parent-info{font-size:13px;color:#666;background:#f8f9fa;padding:4px 8px;border-radius:4px;margin-left:0}.no-students{padding:24px;text-align:center;color:#999;font-size:14px}.sms-test-section{background:#fff;border-radius:12px;padding:24px;margin-bottom:24px;border:2px solid var(--primary)}.sms-test-section h2{margin:0 0 16px;font-size:18px;color:var(--gray-900)}.sms-test-form{display:flex;gap:12px;align-items:center}.sms-test-input{flex:1;padding:10px 14px;border:1px solid var(--gray-300);border-radius:8px;font-size:14px}.sms-test-input:focus{outline:none;border-color:var(--primary)}.messages-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-bottom:32px}.messages-stat-card{background:#fff;border-radius:12px;padding:24px;border:1px solid var(--gray-200);display:flex;align-items:center;gap:16px;transition:all .3s}.messages-stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0000001a}.messages-stat-card.success{border-left:4px solid var(--success)}.messages-stat-card.warning{border-left:4px solid var(--warning)}.messages-stat-card.error{border-left:4px solid var(--error)}.messages-stat-icon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;background:var(--gray-100);color:var(--gray-600);font-size:20px}.messages-stat-card.success .messages-stat-icon{background:var(--success-light);color:var(--success)}.messages-stat-card.warning .messages-stat-icon{background:var(--warning-light);color:var(--warning)}.messages-stat-card.error .messages-stat-icon{background:var(--error-light);color:var(--error)}.messages-stat-content{flex:1}.messages-stat-value{font-size:24px;font-weight:700;color:var(--gray-900);line-height:1;margin-bottom:4px}.messages-stat-label{font-size:14px;color:var(--gray-600);font-weight:500}.messages-list-container{background:#fff;border-radius:12px;padding:24px;border:1px solid var(--gray-200)}.messages-list-title{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--naver-green)}.messages-content-cell{max-width:200px;word-break:break-word}.messages-status-badge{padding:4px 12px;border-radius:12px;font-size:12px;font-weight:600;text-align:center;display:inline-block}.messages-status-success{background:var(--success-light);color:var(--success-dark)}.messages-status-pending{background:var(--warning-light);color:var(--warning-dark)}.messages-status-error{background:var(--error-light);color:var(--error-dark)}.messages-status-default{background:var(--gray-100);color:var(--gray-600)}.messages-type-badge{padding:4px 8px;border-radius:8px;font-size:11px;font-weight:600;text-align:center;display:inline-block}.messages-type-general{background:var(--info-light);color:var(--info-dark)}.messages-type-attendance{background:var(--success-light);color:var(--success-dark)}.messages-type-payment{background:var(--warning-light);color:var(--warning-dark)}.messages-type-reservation{background:var(--primary-light);color:var(--primary-dark)}.messages-type-emergency{background:var(--error-light);color:var(--error-dark)}.messages-type-enrollment{background:#e8f5e9;color:#2e7d32}.messages-type-default{background:var(--gray-100);color:var(--gray-600)}.messages-form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px}.messages-char-count{text-align:right;font-size:12px;color:var(--gray-500);margin-top:4px}@media (max-width: 768px){.messages-stats-grid{grid-template-columns:repeat(2,1fr);gap:16px}.messages-stat-card{padding:16px}.messages-stat-icon{width:40px;height:40px;font-size:16px}.messages-stat-value{font-size:20px}.messages-form-row{grid-template-columns:1fr}.messages-list-container{padding:16px}}@media (max-width: 480px){.messages-stats-grid{grid-template-columns:1fr}}.header-buttons{display:flex;gap:12px}.modal-large{max-width:700px;width:95%}.template-list-header{margin-bottom:16px}.btn-sm{padding:8px 16px;font-size:13px}.template-list{display:flex;flex-direction:column;gap:12px}.template-item{display:flex;justify-content:space-between;align-items:center;padding:16px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200)}.template-info{flex:1}.template-name{font-weight:600;color:var(--gray-900);margin-bottom:4px}.template-preview{font-size:13px;color:var(--gray-600)}.template-actions{display:flex;gap:8px}.btn-edit,.btn-delete{width:32px;height:32px;border-radius:6px;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-edit{background:var(--gray-100);color:var(--gray-700)}.btn-edit:hover{background:var(--naver-green);color:#fff}.btn-delete{background:var(--gray-100);color:var(--gray-700)}.btn-delete:hover{background:#ff3b30;color:#fff}.template-edit-form{display:flex;flex-direction:column;gap:16px}.template-edit-actions{display:flex;gap:12px;justify-content:flex-end;margin-top:8px}.messages-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:12px}.messages-filter{display:flex;align-items:center;gap:8px}.messages-filter .date-input{padding:8px 12px;border:1px solid var(--gray-300);border-radius:6px;font-size:14px}.messages-filter .date-input:focus{outline:none;border-color:var(--primary)}.messages-filter .btn-reset{padding:8px 16px;background:var(--gray-100);border:1px solid var(--gray-300);border-radius:6px;font-size:14px;cursor:pointer}.messages-filter .btn-reset:hover{background:var(--gray-200)}.messages-filter-info{font-size:14px;color:var(--gray-600);margin-bottom:12px}.pagination{display:flex;justify-content:center;align-items:center;gap:4px;margin-top:24px;padding:16px 0}.pagination-btn{min-width:36px;height:36px;padding:0 12px;border:1px solid var(--gray-300);background:#fff;border-radius:6px;font-size:14px;cursor:pointer;transition:all .2s}.pagination-btn:hover:not(:disabled){background:var(--gray-100);border-color:var(--primary)}.pagination-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.pagination-btn:disabled{opacity:.5;cursor:not-allowed}.pagination-ellipsis{padding:0 8px;color:var(--gray-500)}.result-count{display:flex;align-items:center;gap:8px;height:48px;padding:0 20px;box-sizing:border-box;background:#fff;border-radius:8px;font-size:15px;color:var(--gray-700);white-space:nowrap;border:1px solid var(--gray-200)}.makeup-table-wrapper{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 4px 20px #00000014;border:1px solid var(--gray-200);margin-top:24px}.makeup-data-table{width:100%;border-collapse:collapse;font-size:14px}.makeup-data-table thead{background:var(--gray-50)}.makeup-data-table th{padding:16px;text-align:center;font-size:14px;font-weight:600;color:var(--gray-700);border-bottom:1px solid var(--gray-200);vertical-align:middle}.makeup-data-table th:not(:last-child):after{display:none}.makeup-data-table tbody tr{transition:all .3s ease;border-bottom:1px solid var(--gray-100)}.makeup-data-table tbody tr:hover{background:linear-gradient(135deg,#03c75a05,#03c75a0d);transform:translateY(-1px);box-shadow:0 2px 8px #0000000a}.makeup-data-table td{padding:16px;border-bottom:1px solid var(--gray-100);color:var(--gray-800);vertical-align:middle}.makeup-data-table tbody tr:last-child{border-bottom:none}.makeup-student-info{display:flex;align-items:center;gap:8px;justify-content:center}.makeup-student-details{display:flex;flex-direction:column;gap:2px}.makeup-student-name{font-weight:600;color:var(--gray-900);font-size:15px;word-break:keep-all;white-space:nowrap}.makeup-student-phone{font-size:13px;color:var(--gray-500)}.makeup-course-info{display:flex;flex-direction:column;gap:4px;text-align:center}.makeup-course-name{font-weight:600;color:var(--gray-900);word-break:keep-all;white-space:nowrap}.makeup-datetime{display:flex;flex-direction:column;gap:4px;text-align:center}.makeup-date{font-weight:600;color:var(--gray-900);display:flex;align-items:center;gap:6px;justify-content:center;word-break:keep-all;white-space:nowrap}.makeup-time{font-size:13px;color:var(--gray-600);display:flex;align-items:center;gap:6px;justify-content:center;word-break:keep-all;white-space:nowrap}.makeup-status-badge{padding:6px 12px;border-radius:20px;font-size:12px;font-weight:600;text-align:center;display:inline-flex;align-items:center;gap:6px;min-width:80px;justify-content:center}.makeup-status-scheduled{background:linear-gradient(135deg,#e3f2fd,#bbdefb);color:#1565c0;border:1px solid #90caf9}.makeup-status-completed{background:linear-gradient(135deg,#e8f5e8,#c8e6c9);color:#2e7d32;border:1px solid #81c784}.makeup-status-cancelled{background:linear-gradient(135deg,#ffebee,#ffcdd2);color:#c62828;border:1px solid #ef5350}.makeup-action-buttons{display:flex;gap:8px;justify-content:center}.makeup-btn-complete,.makeup-btn-edit,.makeup-btn-delete{padding:6px 12px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.makeup-btn-complete{background:var(--success-light);color:var(--success-dark)}.makeup-btn-complete:hover{background:var(--success);color:#fff}.makeup-btn-edit{background:var(--info-light);color:var(--info-dark)}.makeup-btn-edit:hover{background:var(--info);color:#fff}.makeup-btn-delete{background:var(--error-light);color:var(--error-dark)}.makeup-btn-delete:hover{background:var(--error);color:#fff}.makeup-memo{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--gray-600);font-style:italic}.makeup-memo:empty:before{content:"메모 없음";color:var(--gray-400)}@media (max-width: 1200px){.makeup-data-table{font-size:13px}.makeup-data-table th,.makeup-data-table td{padding:12px 10px}.makeup-student-avatar{width:36px;height:36px;font-size:14px}}@media (max-width: 768px){.makeup-table-wrapper{overflow-x:auto;border-radius:12px}.makeup-data-table{min-width:900px}.makeup-action-buttons{flex-direction:column;gap:4px}.makeup-btn-complete,.makeup-btn-edit,.makeup-btn-delete{min-width:60px;padding:6px 8px;font-size:11px}}@media (max-width: 480px){.makeup-data-table{min-width:800px}.makeup-student-info{gap:8px}.makeup-student-avatar{width:32px;height:32px;font-size:12px}.makeup-student-name{font-size:14px}.makeup-student-phone{font-size:12px}}.empty-state{display:flex;flex-direction:column;align-items:center;text-align:center;padding:80px 20px;color:var(--gray-400)}.makeup-filter-select{height:48px;padding:12px 16px;border:1px solid var(--gray-200);border-radius:8px;font-size:15px;background:#fff;color:var(--gray-700);cursor:pointer;transition:all .3s;min-width:120px}.makeup-filter-select:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.makeup-status-badge{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;text-align:center;display:inline-block}.makeup-status-scheduled{background:var(--info-light);color:var(--info-dark)}.makeup-status-completed{background:var(--success-light);color:var(--success-dark)}.makeup-status-cancelled{background:var(--error-light);color:var(--error-dark)}.form-group input,.form-group select,.form-group textarea{padding:10px 14px;border:1px solid var(--gray-200);border-radius:8px;font-size:14px;transition:all .3s;font-family:inherit}.search-section{display:flex;gap:16px;align-items:center;margin-bottom:32px}.search-input{width:100%;height:48px;padding:12px 16px 12px 48px;box-sizing:border-box;border:1px solid var(--gray-200);border-radius:8px;font-size:15px;transition:all .3s;background:#fff}.search-buttons{display:flex;gap:12px;align-items:center}.pinned-section{margin-bottom:40px}.section-title{font-size:20px;font-weight:700;color:var(--gray-900);margin:0 0 20px;display:flex;align-items:center;gap:8px}.pinned-notices{display:grid;gap:16px}.pinned-notice-card{background:linear-gradient(135deg,#03c75a0d,#03c75a05);border:2px solid var(--naver-green);border-radius:12px;padding:24px;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #03c75a1a}.pinned-notice-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px #03c75a26;border-color:var(--naver-green-dark)}.card-click-hint{margin-top:16px;text-align:right}.card-click-hint span{font-size:12px;color:var(--gray-500);font-weight:500}.notice-header{margin-bottom:12px}.pinned-badge{display:inline-block;background:var(--naver-green);color:#fff;padding:4px 12px;border-radius:20px;font-size:12px;font-weight:600;margin-bottom:8px}.notice-title{font-size:18px;font-weight:700;color:var(--gray-900);margin:0;line-height:1.4}.notice-meta{display:flex;align-items:center;gap:16px;font-size:14px;color:var(--gray-600)}.notice-author{font-weight:600;color:var(--naver-green-dark)}.notice-date{color:var(--gray-500)}.notice-views{display:flex;align-items:center;gap:4px;color:var(--gray-500)}.notices-section{margin-top:40px}.notice-list{display:grid;gap:16px}.notice-item{background:#fff;border:1px solid var(--gray-200);border-radius:12px;padding:24px;cursor:pointer;transition:all .3s;box-shadow:0 1px 3px #0000000f}.notice-item:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a;border-color:var(--naver-green)}.notice-main{margin-bottom:16px}.notice-item-title{font-size:18px;font-weight:700;color:var(--gray-900);margin:0 0 8px;line-height:1.4;display:flex;align-items:center;gap:8px}.pin-icon{font-size:14px;color:var(--naver-green)}.notice-preview{font-size:15px;color:var(--gray-600);line-height:1.6;margin:0}.notice-info{display:flex;align-items:center;gap:16px;font-size:14px;color:var(--gray-500);padding-top:16px;border-top:1px solid var(--gray-100)}.notice-info .notice-author{font-weight:600;color:var(--naver-green-dark)}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:40px}.page-button{padding:8px 16px;border:1px solid var(--gray-300);background:#fff;color:var(--gray-700);border-radius:6px;cursor:pointer;transition:all .2s;font-size:14px;font-weight:500}.page-button:hover:not(:disabled){background:var(--naver-green);color:#fff;border-color:var(--naver-green)}.page-button:disabled{opacity:.5;cursor:not-allowed}.page-info{font-size:14px;color:var(--gray-600);font-weight:500}.empty-state h3{font-size:20px;font-weight:600;color:var(--gray-600);margin:0 0 8px}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:#fff;border-radius:20px;max-width:1000px;width:95%;max-height:85vh;overflow-y:auto;box-shadow:0 25px 60px #00000026;animation:modalSlideIn .3s ease-out}@keyframes modalSlideIn{0%{opacity:0;transform:translateY(-20px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.modal-header{padding:28px 32px 20px;border-bottom:1px solid #f0f0f0;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(135deg,#03c75a,#02b350);color:#fff}.modal-title{margin:0;font-size:24px;font-weight:700;color:#fff;display:flex;align-items:center;gap:12px}.modal-title i{font-size:22px;opacity:.9}.modal-close{width:44px;height:44px;border:none;background:#fff3;color:#fff;border-radius:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s ease}.modal-close:hover{background:#ffffff4d;transform:scale(1.05)}.modal-meta{padding:16px 32px;background:var(--gray-50);border-bottom:1px solid var(--gray-200);display:flex;gap:24px;font-size:14px}.meta-item{color:var(--gray-600)}.modal-body{padding:48px 40px}.notice-content{font-size:16px;line-height:1.8;color:var(--gray-800);margin:0;white-space:pre-line}@media (max-width: 768px){.page-header-content{flex-direction:column;align-items:flex-start;gap:16px;padding:0 16px}.page-title{font-size:24px}.page-title i{font-size:22px}.page-content{padding:16px}.search-section{flex-direction:column;align-items:stretch}.search-buttons{justify-content:center}.notice-meta,.notice-info{flex-direction:column;align-items:flex-start;gap:8px}.modal-content{max-width:100%}.modal-header,.modal-body,.modal-footer,.modal-meta{padding:16px 20px}.modal-meta{flex-direction:column;gap:8px}}@media (max-width: 480px){.page-header{padding:20px 0}.page-title{font-size:20px}.btn-primary,.btn-secondary{width:100%;justify-content:center}.pinned-notice-card,.notice-item{padding:16px}}.page-header-content{display:flex;justify-content:space-between;align-items:flex-start}.page-actions{margin-top:8px}.form-group{margin-bottom:24px}.form-group label{display:block;font-weight:600;color:#333;margin-bottom:8px;font-size:14px}.form-group input,.form-group textarea{width:100%;padding:20px 24px;border:2px solid #e9ecef;border-radius:12px;font-size:16px;transition:all .3s ease;background:#fafbfc}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:#03c75a;background:#fff;box-shadow:0 0 0 4px #03c75a1a;transform:translateY(-1px)}.form-group textarea{resize:vertical;min-height:180px;font-family:inherit;line-height:1.6}.checkbox-label{display:flex;align-items:center;gap:12px;padding:18px 24px;background:#fff;border:2px solid #e9ecef;border-radius:12px;cursor:pointer;transition:all .3s ease;font-weight:500!important;color:#495057;font-size:16px;box-shadow:0 2px 8px #0000000a}.checkbox-label:hover{background:#f8f9fa;border-color:#03c75a;box-shadow:0 4px 12px #03c75a1a;transform:translateY(-1px)}.checkbox-label input[type=checkbox]{width:20px;height:20px;margin:0;accent-color:#03c75a;cursor:pointer;border-radius:4px}.checkbox-label input[type=checkbox]:checked{background-color:#03c75a}.checkbox-label:has(input[type=checkbox]:checked){background:linear-gradient(135deg,#f0fff4,#e6ffed);border-color:#03c75a;color:#03c75a;font-weight:600!important}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding-top:20px;border-top:1px solid #e9ecef}.btn-primary:disabled{background:#6c757d;cursor:not-allowed}.viewers-list{max-height:400px;overflow-y:auto}.viewer-item{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:8px;background:#fff}.viewer-info{display:flex;align-items:center;gap:12px}.viewer-name{font-weight:600;color:var(--gray-900)}.viewer-role{padding:4px 8px;border-radius:12px;font-size:12px;font-weight:500;background:var(--gray-100);color:var(--gray-700)}.viewer-date{font-size:14px;color:var(--gray-600)}.btn-info{background:#00c73c;color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s}.btn-info:hover{background:#00b33c}.page-wrapper{min-height:100vh;background:var(--gray-50)}.page-header{background:#fff;border-bottom:1px solid var(--gray-200);padding:32px 0}.page-header-content{max-width:1400px;margin:0 auto;padding:0 32px;display:flex;justify-content:space-between;align-items:center}.page-title-section{flex:1}.page-title{font-size:32px;font-weight:700;color:var(--gray-900);margin:0 0 8px;display:flex;align-items:center;gap:12px}.page-title i{color:var(--naver-green);font-size:28px}.page-subtitle{font-size:15px;color:var(--gray-600);margin:0}.btn-primary{background:var(--naver-green);color:#fff;border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #03c75a33}.btn-primary:hover{background:var(--naver-green-dark);transform:translateY(-2px);box-shadow:0 4px 12px #03c75a4d}.btn-with-icon{display:flex;align-items:center;gap:8px}.btn-secondary{background:var(--gray-100);color:var(--gray-700);border:none;padding:12px 24px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;transition:all .3s}.btn-secondary:hover{background:var(--gray-200)}.page-content{max-width:1400px;margin:0 auto;padding:32px}.search-section{display:flex;gap:16px;align-items:center;margin-bottom:24px}.search-input-wrapper{flex:1;position:relative}.search-icon{position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--gray-400);font-size:16px}.search-input{width:100%;padding:12px 16px 12px 48px;border:2px solid var(--gray-200);border-radius:8px;font-size:15px;transition:all .3s;background:#fff}.search-input:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.result-count{display:flex;align-items:center;gap:8px;padding:12px 20px;background:#fff;border-radius:8px;font-size:15px;color:var(--gray-700);white-space:nowrap;border:1px solid var(--gray-200)}.result-count i{color:var(--naver-green)}.result-count strong{color:var(--naver-green);font-weight:700}.table-wrapper{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 1px 3px #0000000f;border:1px solid var(--gray-200)}.data-table{width:100%;border-collapse:collapse}.data-table thead{background:var(--gray-50)}.data-table th{padding:16px 20px;text-align:left;font-size:14px;font-weight:600;color:var(--gray-700);border-bottom:1px solid var(--gray-200)}.data-table tbody tr{transition:background .2s}.data-table tbody tr:hover{background:var(--gray-50)}.data-table td{padding:16px 20px;border-bottom:1px solid var(--gray-100);font-size:14px;color:var(--gray-800)}.data-table tbody tr:last-child td{border-bottom:none}.student-info{display:flex;align-items:center;gap:10px}.student-info i{color:var(--naver-green);font-size:18px}.student-info strong{font-weight:600;color:var(--gray-900)}.level-badge{padding:4px 12px;border-radius:12px;font-size:13px;font-weight:600;color:#fff}.action-buttons{display:flex;gap:8px}.btn-table-detail,.btn-table-edit,.btn-table-delete{padding:6px 12px;border:none;border-radius:6px;font-size:13px;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:4px}.btn-table-detail{background:var(--info-light);color:var(--info-dark)}.btn-table-detail:hover{background:var(--info);color:#fff}.btn-table-edit{background:var(--success-light);color:var(--success-dark)}.btn-table-edit:hover{background:var(--success);color:#fff}.btn-table-delete{background:var(--error-light);color:var(--error-dark)}.btn-table-delete:hover{background:var(--error);color:#fff}.empty-state{text-align:center;padding:80px 20px;color:var(--gray-400)}.empty-state i{font-size:64px;margin-bottom:20px;opacity:.5}.empty-state p{font-size:16px;margin:0}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000;padding:20px}.modal-content{background:#fff;border-radius:16px;max-width:800px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:0 20px 40px #0003}.modal-header{padding:24px 32px;border-bottom:1px solid var(--gray-200);display:flex;justify-content:space-between;align-items:center;background:var(--gray-50)}.modal-header h2{margin:0;font-size:24px;font-weight:700;color:var(--gray-900)}.modal-close{width:40px;height:40px;border:none;background:none;font-size:32px;color:var(--gray-400);cursor:pointer;transition:all .2s;display:flex;align-items:center;justify-content:center;border-radius:8px}.modal-close:hover{background:var(--gray-200);color:var(--gray-700)}.modal-body{padding:32px}.modal-footer{padding:20px 32px;border-top:1px solid var(--gray-200);display:flex;justify-content:flex-end;gap:12px;background:var(--gray-50)}.form-section{margin-bottom:32px}.form-section:last-child{margin-bottom:0}.form-section h3{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--naver-green)}.form-row{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:600;color:var(--gray-700)}.form-group input,.form-group select,.form-group textarea{padding:10px 14px;border:2px solid var(--gray-200);border-radius:8px;font-size:14px;transition:all .3s;font-family:inherit}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--naver-green);box-shadow:0 0 0 3px #03c75a1a}.form-group textarea{resize:vertical;min-height:80px}.detail-section{margin-bottom:32px}.detail-section h3{font-size:18px;font-weight:600;color:var(--gray-900);margin:0 0 20px;padding-bottom:12px;border-bottom:2px solid var(--naver-green)}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.detail-item{display:flex;flex-direction:column;gap:6px}.detail-item.full-width{grid-column:1 / -1}.detail-label{font-size:13px;font-weight:600;color:var(--gray-600)}.detail-value{font-size:15px;color:var(--gray-900);font-weight:500}.memo-content{padding:16px;background:var(--gray-50);border-radius:8px;border:1px solid var(--gray-200);margin:0;line-height:1.6;color:var(--gray-800)}.students-container{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--gray-50)}@media (max-width: 1024px){.page-header-content{padding:0 24px}.page-content{padding:24px}}@media (max-width: 768px){.page-header-content{flex-direction:column;align-items:flex-start;gap:16px;padding:0 16px}.page-title{font-size:24px}.page-title i{font-size:22px}.page-content{padding:16px}.search-section{flex-direction:column;align-items:stretch}.result-count{justify-content:center}.table-wrapper{overflow-x:auto}.data-table{min-width:800px}.form-row,.detail-grid{grid-template-columns:1fr}.action-buttons{flex-direction:column}.modal-content{max-width:100%}.modal-header,.modal-body,.modal-footer{padding:16px 20px}}@media (max-width: 480px){.page-header{padding:20px 0}.page-title{font-size:20px}.btn-primary,.btn-secondary{width:100%;justify-content:center}}.tab-section{margin-bottom:32px}.tab-navigation{background:#fff;border-radius:12px;padding:8px;box-shadow:0 2px 8px #0000001a;display:flex;gap:4px;position:relative}.tab-navigation:before{content:"";position:absolute;top:8px;left:8px;width:calc(20% - 4px);height:calc(100% - 16px);background:var(--naver-green);border-radius:8px;transition:transform .3s ease;z-index:1}.tab-navigation[data-active=overview]:before{transform:translate(0)}.tab-navigation[data-active=enrollments]:before{transform:translate(calc(100% + 4px))}.tab-navigation[data-active=attendance]:before{transform:translate(calc(200% + 8px))}.tab-navigation[data-active=reservations]:before{transform:translate(calc(300% + 12px))}.tab-navigation[data-active=messages]:before{transform:translate(calc(400% + 16px))}.tab-button{flex:1;padding:12px 16px;border:none;background:transparent;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--gray-600);transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px;position:relative;z-index:2}.tab-button:hover{color:var(--gray-900)}.tab-button.active{color:#fff}.tab-button i{font-size:16px}.tab-content{background:#fff;border-radius:12px;padding:0;box-shadow:0 2px 8px #0000001a;overflow:hidden}.overview-section{padding:24px}.content-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;padding:0 24px 24px}.content-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;overflow:hidden;transition:all .2s ease}.content-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.card-header{padding:20px 24px 16px;border-bottom:1px solid var(--gray-100);display:flex;justify-content:space-between;align-items:center;background:var(--gray-50)}.card-title{font-size:16px;font-weight:600;color:var(--gray-900);margin:0;display:flex;align-items:center;gap:8px}.card-title i{color:var(--naver-green);font-size:18px}.card-count{background:var(--naver-green);color:#fff;font-size:12px;font-weight:600;padding:4px 8px;border-radius:12px;min-width:20px;text-align:center}.card-body{padding:20px 24px 24px}.item-list{display:flex;flex-direction:column;gap:12px}.item-card{padding:16px;border:1px solid var(--gray-200);border-radius:8px;background:#fff;transition:all .2s ease}.item-card:hover{border-color:var(--naver-green);box-shadow:0 2px 8px #03c75a1a}.item-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.item-title{font-size:15px;font-weight:600;color:var(--gray-900);margin:0}.item-meta{font-size:13px;color:var(--gray-600);margin-top:4px}.item-status,.item-type{display:flex;align-items:center}.type-badge{background:var(--gray-100);color:var(--gray-700);font-size:11px;font-weight:500;padding:2px 8px;border-radius:12px}.progress-section{margin-top:12px}.progress-info{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.progress-text strong{color:var(--naver-green);font-weight:600}.progress-percent{font-size:12px;font-weight:600;color:var(--naver-green)}.progress-bar{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--naver-green) 0%,#22c55e 100%);border-radius:3px;transition:width .3s ease}.empty-state-small{text-align:center;padding:40px 20px;color:var(--gray-400)}.empty-state-small i{font-size:32px;margin-bottom:12px;opacity:.5}.empty-state-small p{font-size:14px;margin:0}.section-header{padding:24px 24px 0;border-bottom:1px solid var(--gray-200);margin-bottom:24px}.section-title{font-size:20px;font-weight:700;color:var(--gray-900);margin:0 0 24px;display:flex;align-items:center;gap:12px}.section-title i{color:var(--naver-green);font-size:22px}.enrollment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(400px,1fr));gap:24px;padding:0 24px 24px}.enrollment-card{background:#fff;border:1px solid var(--gray-200);border-radius:16px;overflow:hidden;transition:all .3s ease;box-shadow:0 2px 8px #0000000f}.enrollment-card:hover{border-color:var(--naver-green);box-shadow:0 8px 24px #03c75a26;transform:translateY(-4px)}.enrollment-card.expiring-soon{border-color:#f59e0b;background:linear-gradient(135deg,#fffbeb,#fff)}.enrollment-card.expired{border-color:#ef4444;background:linear-gradient(135deg,#fef2f2,#fff);opacity:.8}.enrollment-header{padding:24px 24px 16px;border-bottom:1px solid var(--gray-100);background:var(--gray-50)}.enrollment-title-section{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}.enrollment-title{font-size:18px;font-weight:700;color:var(--gray-900);margin:0;flex:1}.enrollment-badges{display:flex;gap:8px;flex-wrap:wrap}.warning-badge{background:#fbbf24;color:#fff;font-size:11px;font-weight:600;padding:4px 8px;border-radius:12px;animation:pulse 2s infinite}.expired-badge{background:#ef4444;color:#fff;font-size:11px;font-weight:600;padding:4px 8px;border-radius:12px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.7}}.enrollment-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding:20px 24px;background:var(--gray-50);border-bottom:1px solid var(--gray-100)}.stat-item{display:flex;align-items:center;gap:12px;padding:12px;background:#fff;border-radius:8px;border:1px solid var(--gray-200)}.stat-item .stat-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,var(--naver-green) 0%,#22c55e 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px;flex-shrink:0}.stat-info{display:flex;flex-direction:column;gap:2px}.stat-item .stat-value{font-size:18px;font-weight:700;color:var(--gray-900);line-height:1}.stat-item .stat-label{font-size:12px;color:var(--gray-600);font-weight:500}.enrollment-details{padding:24px}.detail-section{margin-bottom:24px}.detail-section:last-child{margin-bottom:0}.detail-section-title{font-size:14px;font-weight:600;color:var(--gray-900);margin:0 0 16px;display:flex;align-items:center;gap:8px}.detail-section-title i{color:var(--naver-green);font-size:16px}.detail-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.progress-section{background:var(--gray-50);border-radius:12px;padding:20px;margin-bottom:20px}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.progress-title{font-size:14px;font-weight:600;color:var(--gray-900)}.progress-text{font-size:13px;color:var(--gray-600)}.progress-bar{height:8px;background:var(--gray-200);border-radius:4px;overflow:hidden;margin-bottom:8px}.progress-fill{height:100%;background:linear-gradient(90deg,var(--naver-green) 0%,#22c55e 100%);border-radius:4px;transition:width .3s ease;position:relative}.progress-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s infinite}@keyframes shimmer{0%{transform:translate(-100%)}to{transform:translate(100%)}}.progress-footer{display:flex;justify-content:space-between;align-items:center}.progress-percent{font-size:16px;font-weight:700;color:var(--naver-green)}.remaining-text{font-size:13px;color:var(--gray-600)}.enrollment-actions{display:flex;gap:12px;margin-top:20px}.action-btn{flex:1;padding:12px 16px;border:none;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;gap:8px}.action-btn.primary{background:var(--naver-green);color:#fff}.action-btn.primary:hover{background:var(--naver-green-dark);transform:translateY(-1px);box-shadow:0 4px 12px #03c75a4d}.action-btn.secondary{background:var(--gray-100);color:var(--gray-700);border:1px solid var(--gray-200)}.action-btn.secondary:hover{background:var(--gray-200);border-color:var(--gray-300)}@media (max-width: 768px){.enrollment-grid{grid-template-columns:1fr;padding:0 16px 16px}.enrollment-stats{grid-template-columns:1fr;gap:12px}.detail-grid{grid-template-columns:1fr}.enrollment-actions{flex-direction:column}.enrollment-title-section{flex-direction:column;align-items:flex-start;gap:12px}}.attendance-list{padding:0 24px 24px}.attendance-item{padding:16px 20px;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:12px;background:#fff;transition:all .2s ease}.attendance-item:last-child{margin-bottom:0}.attendance-item:hover{border-color:var(--naver-green);box-shadow:0 2px 8px #03c75a1a}.attendance-info{display:flex;justify-content:space-between;align-items:center}.attendance-course h4{font-size:15px;font-weight:600;color:var(--gray-900);margin:0 0 4px}.attendance-date{font-size:13px;color:var(--gray-600)}.reservation-list{padding:0 24px 24px}.mypage-reservations-section,.mypage-overview-section{padding:0!important}.reservation-item{padding:16px 20px;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:12px;background:#fff;transition:all .2s ease}.reservation-item:last-child{margin-bottom:0}.reservation-item:hover{border-color:var(--naver-green);box-shadow:0 2px 8px #03c75a1a}.reservation-info{display:flex;justify-content:space-between;align-items:center}.reservation-course h4{font-size:15px;font-weight:600;color:var(--gray-900);margin:0 0 4px}.reservation-datetime{font-size:13px;color:var(--gray-600)}.message-list{padding:0 24px 24px}.message-item{padding:16px 20px;border:1px solid var(--gray-200);border-radius:8px;margin-bottom:12px;background:#fff;transition:all .2s ease}.message-item:last-child{margin-bottom:0}.message-item:hover{border-color:var(--naver-green);box-shadow:0 2px 8px #03c75a1a}.message-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:8px}.message-type{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600;color:var(--gray-900)}.message-type i{color:var(--naver-green);font-size:16px}.message-time{font-size:12px;color:var(--gray-500)}.message-content{font-size:14px;color:var(--gray-700);line-height:1.5;padding:12px;background:var(--gray-50);border-radius:6px;border-left:3px solid var(--naver-green)}.status-badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:12px;text-align:center;display:inline-block}.status-badge.present{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.status-badge.late{background:#fbbf241a;color:#d97706;border:1px solid rgba(251,191,36,.2)}.status-badge.absent{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}.status-badge.excused{background:#9ca3af1a;color:#6b7280;border:1px solid rgba(156,163,175,.2)}.status-badge.confirmed{background:#22c55e1a;color:#16a34a;border:1px solid rgba(34,197,94,.2)}.status-badge.pending{background:#fbbf241a;color:#d97706;border:1px solid rgba(251,191,36,.2)}.status-badge.cancelled{background:#ef44441a;color:#dc2626;border:1px solid rgba(239,68,68,.2)}@media (max-width: 768px){.content-grid{grid-template-columns:1fr}.enrollment-grid{grid-template-columns:1fr;padding:0 16px 16px}.card-header,.card-body,.enrollment-header,.enrollment-details{padding:16px}.section-header{padding:16px 16px 0}.attendance-list,.reservation-list,.message-list{padding:0 16px 16px}.attendance-info,.reservation-info{flex-direction:column;align-items:flex-start;gap:8px}.message-header{flex-direction:column;align-items:flex-start;gap:4px}.profile-card{flex-direction:column;text-align:center;gap:16px}.stats-grid{grid-template-columns:repeat(2,1fr)}.mypage-stat-card{flex-direction:column;text-align:center;gap:12px}.mypage-stat-card:hover{transform:none}.tab-navigation{flex-wrap:wrap}.tab-button{flex:1;min-width:120px}}@media (max-width: 480px){.mypage-stats-grid{grid-template-columns:1fr}.tab-button{font-size:13px;padding:10px 12px}.tab-button i{font-size:14px}}.profile-section{margin-bottom:32px}.profile-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--gray-200);display:flex;align-items:center;gap:20px;transition:all .2s ease}.profile-avatar{width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,var(--naver-green) 0%,#22c55e 100%);display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:700;color:#fff;box-shadow:0 4px 12px #03c75a4d}.profile-info h2{font-size:24px;font-weight:700;color:var(--gray-900);margin:0 0 8px}.profile-details{font-size:15px;color:var(--gray-600);margin:0}.stats-section{margin-bottom:32px}.mypage-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px}.mypage-stat-card{background:#fff;border-radius:12px;padding:24px;box-shadow:0 2px 8px #0000001a;border:1px solid var(--gray-200);display:flex;align-items:center;gap:16px;transition:all .2s ease;position:relative;overflow:hidden}.mypage-stat-card:before{content:"";position:absolute;top:0;left:50%;width:0;height:4px;background:linear-gradient(90deg,var(--naver-green),#22c55e);transition:all .3s ease;transform:translate(-50%)}.mypage-stat-icon{width:48px;height:48px;border-radius:12px;background:linear-gradient(135deg,var(--naver-green) 0%,#22c55e 100%);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;box-shadow:0 4px 8px #03c75a4d}.mypage-stat-content{flex:1}.mypage-stat-value{font-size:24px;font-weight:700;color:var(--gray-900);margin-bottom:4px}.mypage-stat-label{font-size:14px;color:var(--gray-600);font-weight:500}.mypage-stat-card:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0000001a;transition:all .2s ease}.mypage-stat-card:hover:before{width:100%}.mypage-stat-card:hover .mypage-stat-icon{transform:scale(1.05);box-shadow:0 6px 16px #03c75a66}.parent-mypage{max-width:800px;margin:0 auto;padding:2rem}.parent-mypage .page-header{margin-bottom:2rem}.parent-mypage .page-header h1{font-size:2rem;color:#1f2937;margin:0 0 .5rem}.parent-mypage .page-header p{color:#6b7280;font-size:1rem;margin:0}.parent-mypage .profile-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;padding:2rem}.parent-mypage .profile-card .card-header{display:flex;flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:2rem;padding-bottom:1rem;border-bottom:2px solid #e5e7eb}.parent-mypage .profile-card .card-header h2{font-size:1.5rem;color:#1f2937;margin:0;text-align:left}.parent-mypage .profile-card .edit-btn{padding:.5rem 1rem;background:#03c75a;color:#fff;border:none;border-radius:6px;font-size:.9rem;font-weight:500;cursor:pointer;transition:background .2s;white-space:nowrap}.parent-mypage .profile-card .edit-btn:hover{background:#02b350}.parent-mypage .profile-form{display:flex;flex-direction:column;gap:1.5rem}.parent-mypage .profile-form .form-group{display:flex;flex-direction:column;gap:.5rem;text-align:left}.parent-mypage .profile-form .form-group label{font-weight:600;color:#374151;font-size:.95rem;text-align:left}.parent-mypage .profile-form .form-group input{width:100%;padding:.75rem;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;transition:border-color .2s;box-sizing:border-box}.parent-mypage .profile-form .form-group input:focus{outline:none;border-color:#03c75a;box-shadow:0 0 0 3px #03c75a1a}.parent-mypage .profile-form .form-group .form-value{padding:.75rem;background:#f9fafb;border-radius:6px;color:#1f2937;font-size:1rem;text-align:left}.parent-mypage .profile-form .form-actions{display:flex;flex-direction:row;gap:1rem;justify-content:flex-end;margin-top:1rem;padding-top:1rem;border-top:1px solid #e5e7eb}.parent-mypage .profile-form .cancel-btn{padding:.75rem 1.5rem;background:#fff;color:#6b7280;border:1px solid #d1d5db;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:all .2s}.parent-mypage .profile-form .cancel-btn:hover{background:#f9fafb;border-color:#9ca3af}.parent-mypage .profile-form .save-btn{padding:.75rem 1.5rem;background:#03c75a;color:#fff;border:none;border-radius:6px;font-size:1rem;font-weight:500;cursor:pointer;transition:background .2s}.parent-mypage .profile-form .save-btn:hover:not(:disabled){background:#02b350}.parent-mypage .profile-form .save-btn:disabled{opacity:.6;cursor:not-allowed}.my-quiz-scores{padding:2rem;max-width:1200px;margin:0 auto;background:#f5f7fa;min-height:100vh}.quiz-page-header{background:linear-gradient(135deg,#00c73c,#00a832);border-radius:16px;padding:2.5rem;margin-bottom:2rem;box-shadow:0 4px 20px #00c73c4d}.header-content h1{color:#fff;font-size:2rem;margin:0 0 .5rem;font-weight:700;display:flex;align-items:center;gap:.5rem}.header-content h1 i{font-size:1.8rem}.header-content p{color:#ffffffe6;font-size:1.1rem;margin:0}.student-selection-card{background:#fff;border-radius:16px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 12px #00000014}.student-list{display:flex;flex-direction:column;gap:1.5rem}.student-item{display:flex;align-items:center;justify-content:space-between;padding:2rem;border:2px solid #e9ecef;border-radius:16px;background:linear-gradient(135deg,#fff,#f8f9fa);transition:all .3s ease}.student-item:hover:not(.disabled){transform:translateY(-2px);box-shadow:0 8px 24px #00c73c26;border-color:#00c73c}.student-item.selected{background:linear-gradient(135deg,#e8f5e9,#c8e6c9);border-color:#00c73c;border-width:3px}.student-item.disabled{opacity:.6;cursor:not-allowed}.student-main{display:flex;align-items:center;gap:2rem;flex:1}.student-avatar-large{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#00c73c,#00a832);color:#fff;display:flex;align-items:center;justify-content:center;font-size:2.5rem;font-weight:700;box-shadow:0 4px 12px #00c73c4d}.student-item.selected .student-avatar-large{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.student-details{flex:1}.student-details h3{font-size:1.8rem;margin:0 0 .8rem;color:#333;font-weight:700}.student-meta{display:flex;gap:1rem;flex-wrap:wrap}.level-tag,.status-tag{display:inline-flex;align-items:center;padding:.5rem 1rem;border-radius:20px;font-size:.95rem;font-weight:600}.level-tag{background:#e3f2fd;color:#1565c0}.status-tag.active{background:#d4edda;color:#155724}.status-tag.inactive{background:#fff3cd;color:#856404}.quiz-view-btn{padding:1rem 2rem;background:linear-gradient(135deg,#00c73c,#00a832);color:#fff;border:none;border-radius:12px;font-size:1.1rem;font-weight:600;cursor:pointer;transition:all .3s;display:flex;align-items:center;gap:.5rem;white-space:nowrap;box-shadow:0 4px 12px #00c73c4d}.quiz-view-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 20px #00c73c66}.quiz-view-btn:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.student-item.selected .quiz-view-btn{background:linear-gradient(135deg,#2e7d32,#1b5e20)}.btn-icon{font-size:1.2rem}@media (max-width: 768px){.student-item{flex-direction:column;gap:1.5rem;text-align:center}.student-main{flex-direction:column;gap:1rem}.quiz-view-btn{width:100%;justify-content:center}}.selected-student-banner{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff;padding:1.5rem;border-radius:12px;margin-bottom:2rem;display:flex;align-items:center;gap:1rem;box-shadow:0 4px 15px #667eea4d}.student-emoji{font-size:2rem}.student-name-display{font-size:1.5rem;font-weight:700}.student-label{font-size:1rem;opacity:.9}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:12px;padding:1.5rem;display:flex;align-items:center;gap:1.5rem;box-shadow:0 2px 12px #00000014;transition:transform .3s}.stat-card:hover{transform:translateY(-4px)}.stat-icon{font-size:3rem;color:#00c73c}.stat-content{flex:1}.stat-value{font-size:2rem;font-weight:700;color:#00c73c;margin-bottom:.3rem}.stat-label{font-size:.95rem;color:#666}.quiz-table-card{background:#fff;border-radius:16px;overflow:hidden;box-shadow:0 2px 12px #00000014}.table-header{background:linear-gradient(135deg,#f8f9fa,#e9ecef);padding:1.5rem;border-bottom:2px solid #dee2e6}.table-header h3{margin:0;font-size:1.3rem;color:#333}.table-wrapper{overflow-x:auto}.quiz-table{width:100%;border-collapse:collapse}.quiz-table thead{background:#f8f9fa}.quiz-table th{padding:1rem;text-align:left;font-weight:600;color:#495057;border-bottom:2px solid #dee2e6}.quiz-table td{padding:1rem;border-bottom:1px solid #f0f0f0}.quiz-table tbody tr:hover{background:#f8f9fa}.quiz-title{font-weight:500;color:#333}.score-badge{display:inline-block;padding:.4rem 1rem;border-radius:20px;font-weight:600;font-size:.9rem}.score-excellent{background:#d4edda;color:#155724}.score-good{background:#d1ecf1;color:#0c5460}.score-fair{background:#fff3cd;color:#856404}.score-poor{background:#f8d7da;color:#721c24}.loading-card,.error-card,.empty-state-card,.empty-state{background:#fff;border-radius:16px;padding:3rem;text-align:center;box-shadow:0 2px 12px #00000014}.spinner{border:4px solid #f3f3f3;border-top:4px solid #00c73c;border-radius:50%;width:50px;height:50px;animation:spin 1s linear infinite;margin:0 auto 1rem}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.empty-icon,.error-icon{font-size:4rem;margin-bottom:1rem;color:#999}.error-icon{color:#d32f2f}.error-card{border:2px solid #f8d7da}.error-card p{color:#721c24;font-size:1.1rem;margin:0}.empty-state-card h3{color:#333;margin:0 0 .5rem}.empty-state-card p{color:#666;margin:0}.year-summary-card{background:#fff;border-radius:16px;padding:2rem;margin-bottom:2rem;box-shadow:0 2px 12px #00000014}.year-summary-card h3{font-size:1.4rem;color:#333;margin-bottom:1.5rem;display:flex;align-items:center;gap:.5rem}.year-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.summary-box{background:linear-gradient(135deg,#f8f9fa,#fff);padding:1rem;border-radius:12px;border:2px solid #e9ecef;text-align:center}.summary-label{font-size:.85rem;color:#666;margin-bottom:.5rem}.summary-value{font-size:1.5rem;font-weight:700;color:#00c73c}.quiz-detail-card{background:#fff;border-radius:16px;margin-bottom:1.5rem;box-shadow:0 2px 12px #00000014;overflow:hidden}.quiz-card-header{background:linear-gradient(135deg,#00c73c,#00a832);color:#fff;padding:1.5rem;display:flex;justify-content:space-between;align-items:center}.quiz-title-section h3{font-size:1.3rem;margin:0 0 .5rem;display:flex;align-items:center;gap:.5rem}.quiz-title-section h3 i{flex-shrink:0}.quiz-author{font-size:.95rem;opacity:.9;margin:0;display:flex;align-items:center;gap:.5rem}.quiz-date{font-size:.95rem;opacity:.9;display:flex;align-items:center;gap:.5rem}.quiz-card-body{padding:1.5rem}.info-section{margin-bottom:1.5rem}.info-section:last-child{margin-bottom:0}.info-section h4{font-size:1.1rem;color:#333;margin-bottom:1rem;padding-bottom:.5rem;border-bottom:2px solid #f0f0f0;display:flex;align-items:center;gap:.5rem}.info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.info-item{display:flex;flex-direction:column;gap:.3rem}.info-label{font-size:.85rem;color:#666}.info-value{font-size:1rem;font-weight:600;color:#333}.results-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem}.result-item{background:#f8f9fa;padding:1rem;border-radius:8px;text-align:center}.result-item.highlight{background:linear-gradient(135deg,#e8f5e9,#c8e6c9)}.result-label{display:block;font-size:.85rem;color:#666;margin-bottom:.5rem}.result-value{display:block;font-size:1.3rem;font-weight:700;color:#333}.result-value.points{color:#00c73c}.pagination{display:flex;justify-content:center;align-items:center;gap:16px;margin-top:24px;padding:16px}.page-btn{display:flex;align-items:center;gap:8px;padding:10px 20px;background:#03c75a;color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:background .2s}.page-btn:hover:not(:disabled){background:#02a34a}.page-btn:disabled{background:#ccc;cursor:not-allowed}.page-info{font-size:14px;color:#666;font-weight:500}.quiz-management-container{max-width:1200px;margin:0 auto;padding:20px}.page-header{margin-bottom:30px}.page-header h1{font-size:28px;font-weight:700;color:#1a1a1a;margin-bottom:8px}.page-header p{font-size:15px;color:#666}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-bottom:30px}.stat-card{background:#fff;padding:24px;border-radius:12px;border:1px solid #e8f5e9;box-shadow:0 2px 8px #0000000f;display:flex;align-items:center;gap:16px;transition:all .3s}.stat-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00c73c26}.stat-icon{font-size:36px;width:60px;height:60px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#e8f5e9,#f1f8f4);border-radius:12px}.stat-info{flex:1}.stat-label{font-size:13px;color:#666;margin-bottom:6px}.stat-value{font-size:28px;font-weight:700;color:#00c73c}.management-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(450px,1fr));gap:24px}.section-card{background:#fff;padding:30px;border-radius:12px;border:1px solid #e8f5e9;box-shadow:0 2px 8px #0000000f}.section-card h2{font-size:20px;font-weight:700;color:#1a1a1a;margin-bottom:12px}.section-desc{font-size:14px;color:#666;margin-bottom:24px;line-height:1.6}.upload-area{margin-bottom:20px}.upload-label{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px;border:2px dashed #00c73c;border-radius:12px;background:#f8fff9;cursor:pointer;transition:all .3s}.upload-label:hover{background:#e8f5e9;border-color:#00b33c}.upload-label i{font-size:48px;color:#00c73c;margin-bottom:12px}.upload-label span{font-size:16px;font-weight:600;color:#00c73c}.file-info{display:flex;align-items:center;gap:12px;padding:16px;background:#f8f9fa;border-radius:8px;margin-top:16px}.file-info i{font-size:24px;color:#00c73c}.file-info span{flex:1;font-size:14px;font-weight:500;color:#333}.remove-btn{width:32px;height:32px;border:none;background:#ffebee;color:#f44336;border-radius:6px;cursor:pointer;transition:all .2s}.remove-btn:hover{background:#f44336;color:#fff}.btn-primary{width:100%;padding:14px;background:linear-gradient(135deg,#00c73c,#00b33c);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #00c73c4d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#00b33c,#093);transform:translateY(-2px);box-shadow:0 4px 12px #00c73c66}.btn-primary:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}.sync-info{margin-bottom:20px}.info-item{display:flex;align-items:center;gap:10px;padding:12px;background:#f8f9fa;border-radius:8px;margin-bottom:10px}.info-item i{color:#00c73c;font-size:16px}.info-item span{font-size:14px;color:#555}.btn-sync{width:100%;padding:14px;background:linear-gradient(135deg,#06f,#0052cc);color:#fff;border:none;border-radius:8px;font-size:16px;font-weight:600;cursor:pointer;transition:all .3s;box-shadow:0 2px 8px #0066ff4d;display:flex;align-items:center;justify-content:center;gap:10px}.btn-sync:hover:not(:disabled){background:linear-gradient(135deg,#0052cc,#04a);transform:translateY(-2px);box-shadow:0 4px 12px #06f6}.btn-sync:disabled{background:#ccc;cursor:not-allowed;box-shadow:none}@media (max-width: 768px){.management-section,.stats-grid{grid-template-columns:1fr}}@font-face{font-family:Pretendard;src:url(/fonts/PretendardVariable.ttf) format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--naver-green: #03C75A;--naver-green-dark: #02B350;--naver-green-light: #E8F8F0;--naver-green-lighter: #F0FDF7;--white: #FFFFFF;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--primary: var(--naver-green);--primary-dark: var(--naver-green-dark);--primary-light: var(--naver-green-light);--text-primary: var(--gray-800);--text-secondary: var(--gray-600);--border: var(--gray-200);--bg-primary: var(--white);--bg-secondary: var(--gray-50);--success: #03C75A;--success-light: #DCFCE7;--success-dark: #15803D;--error: #DC2626;--error-light: #FEE2E2;--error-dark: #B91C1C;--warning: #D97706;--warning-light: #FEF3C7;--warning-dark: #92400E;--info: #1E40AF;--info-light: #DBEAFE;--info-dark: #1E3A8A;--warning-color: var(--warning);--warning-bg: var(--warning-light);--error-color: var(--error);--error-bg: var(--error-light)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Pretendard,Noto Sans KR,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--text-primary);background-color:var(--bg-secondary);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:inherit;outline:none;transition:all .2s}a{text-decoration:none;color:inherit;transition:all .2s}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--gray-100)}::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--gray-400)}.container{max-width:1200px;margin:0 auto;padding:0 20px}.flex{display:flex}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.text-center{text-align:center}.mt-1{margin-top:8px}.mt-2{margin-top:16px}.mt-3{margin-top:24px}.mt-4{margin-top:32px}.mb-1{margin-bottom:8px}.mb-2{margin-bottom:16px}.mb-3{margin-bottom:24px}.mb-4{margin-bottom:32px}.page-header{text-align:left!important}.page-header h1,.page-title{justify-content:flex-start!important}.page-subtitle{text-align:left!important}
