*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f5f7fa;font-family:Kanit,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#888;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#555}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-width:450px;padding:40px;width:100%}.login-header{margin-bottom:32px;text-align:center}.login-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#333;font-size:28px;font-weight:700;margin-bottom:8px}.login-header p{color:#666;font-size:14px}.login-form{width:100%}.login-footer{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:24px;text-align:center}.login-footer p{color:#666;font-size:14px;margin-bottom:8px}.login-footer a{color:#667eea;font-weight:500;text-decoration:none}.login-footer a:hover{text-decoration:underline}.demo-info{color:#999;font-size:12px;font-style:italic}@media (max-width:480px){.login-card{padding:24px}.login-header h1{font-size:24px}}.register-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.register-card{background:#fff;border-radius:16px;box-shadow:0 10px 40px #0003;max-height:90vh;max-width:700px;overflow-y:auto;padding:40px;width:100%}.register-header{margin-bottom:32px;text-align:center}.register-header h1{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;background-clip:text;color:#333;font-size:28px;font-weight:700;margin-bottom:8px}.register-header p{color:#666;font-size:14px}.register-form{width:100%}.form-row{grid-gap:16px;gap:16px}.form-label{align-items:center;display:flex;gap:8px}.form-label svg{color:#667eea}.form-control{padding:12px 16px}.btn-block{justify-content:center;margin-top:8px;width:100%}.register-footer{border-top:1px solid #e0e0e0;margin-top:24px;padding-top:24px;text-align:center}.register-footer p{color:#666;font-size:14px}.register-footer a{color:#667eea;font-weight:500;text-decoration:none}.register-footer a:hover{text-decoration:underline}@media (max-width:768px){.form-row{grid-template-columns:1fr}.register-card{padding:24px}}.dashboard{margin:0 auto;max-width:1400px}.dashboard-header{margin-bottom:32px}.dashboard-header h1{color:#333;font-size:32px;font-weight:700;margin-bottom:8px}.dashboard-header p{color:#666;font-size:16px}.stats-grid{grid-gap:24px;gap:24px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:32px}.stat-card{align-items:center;background:#fff;border-left:4px solid;border-radius:12px;box-shadow:0 2px 8px #0000001a;cursor:pointer;display:flex;gap:20px;padding:24px;transition:transform .3s ease,box-shadow .3s ease}.stat-card:hover{box-shadow:0 4px 16px #00000026;transform:translateY(-4px)}.stat-icon{align-items:center;border-radius:12px;display:flex;font-size:28px;height:60px;justify-content:center;width:60px}.stat-content{flex:1 1}.stat-value{color:#333;margin-bottom:4px}.stat-title{color:#666;font-size:14px;font-weight:500}.dashboard-actions{margin-top:32px}.dashboard-actions h2{color:#333;font-size:24px;font-weight:600;margin-bottom:20px}.action-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.action-card{align-items:center;background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;color:#333;display:flex;flex-direction:column;gap:12px;padding:24px;text-decoration:none;transition:all .3s ease}.action-card svg{color:#667eea;font-size:32px}.action-card span{font-size:14px;font-weight:500}.action-card:hover{box-shadow:0 4px 16px #667eea4d;color:#667eea;transform:translateY(-4px)}@media (max-width:768px){.stats-grid{grid-template-columns:1fr}.action-grid{grid-template-columns:repeat(2,1fr)}.dashboard-header h1{font-size:24px}}.coaching-logs{margin:0 auto;max-width:1400px}.page-header h1{color:#333;font-size:28px;font-weight:700}.filter-tabs{border-bottom:2px solid #f0f0f0;display:flex;gap:8px;margin-bottom:24px}.filter-tab{background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-family:Kanit,sans-serif;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .3s ease}.filter-tab:hover{color:#667eea}.filter-tab.active{border-bottom-color:#667eea;color:#667eea}.log-topics{max-width:300px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.action-buttons{display:flex;gap:8px}.btn-icon{background:none;border:none;border-radius:4px;color:#667eea;cursor:pointer;font-size:18px;padding:8px;transition:all .3s ease}.btn-icon:hover{background:#f0f0f0}.btn-icon.btn-danger{color:#dc3545}.btn-icon.btn-danger:hover{background:#f8d7da}.empty-state{color:#999;padding:60px 20px;text-align:center}.empty-state svg{margin-bottom:16px;opacity:.5}.empty-state p{font-size:16px}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column;gap:16px}.filter-tabs{flex-wrap:wrap}.table-container{overflow-x:auto}}.coaching-log-detail{margin:0 auto;max-width:1000px}.page-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:24px}.header-actions{display:flex;gap:12px}.log-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:24px;padding-bottom:16px}.log-header h1{color:#333;font-size:24px;font-weight:700;margin:0}.log-info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:32px}.info-item{background:#f8f9fa;border-radius:8px;padding:16px}.info-item label{color:#666;display:block;font-size:12px;font-weight:500;margin-bottom:8px;text-transform:uppercase}.info-item div{color:#333;font-size:16px;font-weight:500}.log-section{margin-bottom:32px}.log-section h3{border-bottom:2px solid #f0f0f0;color:#333;font-size:18px;font-weight:600;margin-bottom:12px;padding-bottom:8px}.log-content{background:#f8f9fa;border-radius:8px;color:#333;line-height:1.8;padding:16px;white-space:pre-wrap}.files-list{display:flex;flex-direction:column;gap:12px}.file-item{align-items:center;background:#f8f9fa;border-radius:8px;display:flex;justify-content:space-between;padding:12px}.btn-sm{font-size:12px;padding:6px 12px}@media (max-width:768px){.page-header{align-items:flex-start;flex-direction:column;gap:16px}.log-info-grid{grid-template-columns:1fr}}.coaching-log-form{margin:0 auto;max-width:1000px}.form-row{grid-gap:20px;display:grid;gap:20px;grid-template-columns:1fr 1fr}.form-actions{border-top:2px solid #f0f0f0;display:flex;gap:12px;margin-top:24px;padding-top:24px}@media (max-width:768px){.form-row{grid-template-columns:1fr}}.files-page{margin:0 auto;max-width:1400px}.upload-section{margin-bottom:32px}.upload-section h3{color:#333;font-size:20px;font-weight:600;margin-bottom:20px}.upload-form{grid-gap:16px;align-items:end;display:grid;gap:16px;grid-template-columns:1fr 1fr auto}.selected-file{background:#f8f9fa;border-radius:8px;color:#666;display:flex;font-size:14px;grid-column:1/-1;justify-content:space-between;padding:12px}@media (max-width:768px){.upload-form{grid-template-columns:1fr}}.notifications-page{margin:0 auto;max-width:1000px}.notifications-list{display:flex;flex-direction:column;gap:16px}.notification-item{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;display:flex;gap:16px;padding:20px;transition:all .3s ease}.notification-item.unread{background:#fff;border-left-color:#667eea;box-shadow:0 2px 8px #0000001a}.notification-item.read{border-left-color:#ccc;opacity:.7}.notification-icon{flex-shrink:0;font-size:32px}.notification-content{flex:1 1}.notification-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:8px}.notification-header h3{color:#333;font-size:16px;font-weight:600;margin:0}.notification-content p{color:#666;font-size:14px;line-height:1.6;margin-bottom:8px}.notification-meta{color:#999;display:flex;font-size:12px;gap:16px}.notification-type{text-transform:capitalize}.btn-mark-read{background:#667eea;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:14px;padding:4px 8px;transition:background .3s ease}.btn-mark-read:hover{background:#5568d3}.appointments-page{margin:0 auto;max-width:1200px}.appointments-list{grid-gap:16px;display:grid;gap:16px}.appointment-card{background:#f8f9fa;border-left:4px solid #667eea;border-radius:12px;padding:20px;transition:all .3s ease}.appointment-card:hover{box-shadow:0 2px 8px #0000001a}.appointment-card.past{border-left-color:#ccc;opacity:.7}.appointment-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:12px}.appointment-header h4{color:#333;font-size:18px;font-weight:600;margin:0 0 8px}.appointment-date{align-items:center;color:#666;display:flex;font-size:14px;gap:8px;margin:0}.appointment-description{color:#666;font-size:14px;line-height:1.6;margin-bottom:12px}.appointment-meta{color:#999;display:flex;flex-wrap:wrap;font-size:13px;gap:16px}.appointment-meta span{align-items:center;display:flex;gap:4px}@media (max-width:768px){.appointment-header{flex-direction:column;gap:12px}}.academic-management,.user-management{margin:0 auto;max-width:1400px}.tabs{border-bottom:2px solid #f0f0f0;margin-bottom:24px}.tab,.tabs{display:flex;gap:8px}.tab{align-items:center;background:none;border:none;border-bottom:2px solid #0000;color:#666;cursor:pointer;font-family:Kanit,sans-serif;font-size:14px;font-weight:500;margin-bottom:-2px;padding:12px 24px;transition:all .3s ease}.tab.active,.tab:hover{color:#667eea}.tab.active{border-bottom-color:#667eea}.form-section{border-bottom:2px solid #f0f0f0;margin-bottom:24px;padding-bottom:24px}.reports-page{margin:0 auto;max-width:1400px}.stats-section{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:24px}.stats-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));margin-top:16px}.stat-item{background:#f8f9fa;border-radius:8px;padding:20px;text-align:center}.stat-label{color:#666;font-size:14px;margin-bottom:8px;text-transform:capitalize}.stat-value{color:#667eea;font-size:32px;font-weight:700}.export-section{display:flex;gap:16px;margin-top:16px}@media (max-width:768px){.stats-section{grid-template-columns:1fr}.export-section{flex-direction:column}}.layout{background:#f5f7fa;display:flex;min-height:100vh}.sidebar{background:linear-gradient(180deg,#667eea,#764ba2);box-shadow:2px 0 10px #0000001a;color:#fff;display:flex;flex-direction:column;height:100vh;left:0;position:fixed;top:0;transition:transform .3s ease;width:280px;z-index:1000}.sidebar-header{align-items:center;border-bottom:1px solid #fff3;display:flex;justify-content:space-between;padding:24px}.sidebar-header h2{font-size:20px;font-weight:600;margin:0}.sidebar-close{background:none;border:none;color:#fff;cursor:pointer;display:none;font-size:24px;padding:0}.sidebar-nav{flex:1 1;overflow-y:auto;padding:16px 0}.nav-item{align-items:center;color:#ffffffe6;display:flex;font-size:15px;font-weight:500;gap:12px;padding:14px 24px;text-decoration:none;transition:all .3s ease}.nav-item:hover{background:#ffffff1a;color:#fff}.nav-item.active{background:#fff3;border-left:4px solid #fff;color:#fff}.nav-item svg{font-size:20px}.sidebar-footer{border-top:1px solid #fff3;padding:20px}.user-info{align-items:center;background:#ffffff1a;border-radius:8px;display:flex;gap:12px;margin-bottom:16px;padding:12px}.user-info svg{font-size:24px}.user-name{font-size:14px;font-weight:600}.user-role{font-size:12px;opacity:.8}.logout-btn{align-items:center;background:#fff3;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-family:Kanit,sans-serif;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px;transition:all .3s ease;width:100%}.logout-btn:hover{background:#ffffff4d}.main-content{display:flex;flex:1 1;flex-direction:column;margin-left:280px;min-height:100vh}.topbar{align-items:center;background:#fff;box-shadow:0 2px 4px #0000001a;display:flex;gap:16px;padding:16px 24px;position:-webkit-sticky;position:sticky;top:0;z-index:100}.menu-toggle{background:none;border:none;color:#333;cursor:pointer;display:none;font-size:24px;padding:8px}.topbar-title{color:#333;font-size:20px;font-weight:600}.content-wrapper{flex:1 1;padding:24px}.sidebar-overlay{display:none}@media (max-width:768px){.sidebar{transform:translateX(-100%)}.sidebar.open{transform:translateX(0)}.sidebar-close{display:block}.main-content{margin-left:0}.menu-toggle{display:block}.sidebar-overlay{background:#00000080;bottom:0;display:block;left:0;position:fixed;right:0;top:0;z-index:999}}.App{min-height:100vh}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:Kanit,sans-serif;font-size:14px;font-weight:500;gap:8px;padding:10px 20px;transition:all .3s ease}.btn-primary{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.btn-primary:hover{box-shadow:0 4px 12px #667eea66;transform:translateY(-2px)}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.btn-success{background:#28a745;color:#fff}.btn-success:hover{background:#218838}.btn-danger{background:#dc3545;color:#fff}.btn-danger:hover{background:#c82333}.btn-outline{background:#0000;border:2px solid #667eea;color:#667eea}.btn-outline:hover{background:#667eea;color:#fff}.btn:disabled{cursor:not-allowed;opacity:.6}.card{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;margin-bottom:20px;padding:24px}.card-header{align-items:center;border-bottom:2px solid #f0f0f0;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:16px}.card-title{color:#333;font-size:20px;font-weight:600}.form-group{margin-bottom:20px}.form-label{color:#333;display:block;font-size:14px;font-weight:500;margin-bottom:8px}.form-control{border:2px solid #e0e0e0;border-radius:8px;font-family:Kanit,sans-serif;font-size:14px;padding:12px;transition:border-color .3s ease;width:100%}.form-control:focus{border-color:#667eea;outline:none}textarea.form-control{min-height:120px;resize:vertical}.table-container{background:#fff;border-radius:12px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.table{border-collapse:collapse;width:100%}.table thead{background:linear-gradient(135deg,#667eea,#764ba2);color:#fff}.table th{font-weight:600;text-align:left}.table td,.table th{font-size:14px;padding:16px}.table td{border-bottom:1px solid #f0f0f0}.table tbody tr:hover{background:#f8f9fa}.table tbody tr:last-child td{border-bottom:none}.badge{border-radius:20px;display:inline-block;font-size:12px;font-weight:500;padding:4px 12px}.badge-success{background:#d4edda;color:#155724}.badge-warning{background:#fff3cd;color:#856404}.badge-danger{background:#f8d7da;color:#721c24}.badge-info{background:#d1ecf1;color:#0c5460}.badge-primary{background:#cfe2ff;color:#084298}.alert{align-items:center;border-radius:8px;display:flex;gap:12px;margin-bottom:20px;padding:16px}.alert-success{background:#d4edda;border:1px solid #c3e6cb;color:#155724}.alert-error{background:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.alert-info{background:#d1ecf1;border:1px solid #bee5eb;color:#0c5460}.spinner{animation:spin 1s linear infinite;border:3px solid #f3f3f3;border-radius:50%;border-top-color:#667eea;height:40px;margin:20px auto;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.card{padding:16px}.table-container{font-size:12px}.table td,.table th{padding:12px 8px}}
/*# sourceMappingURL=main.9e4763a2.css.map*/