*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8fafc;color:#1e293b;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;line-height:1.6}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:#f1f5f9}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}ol,ul{margin:0;padding:0}li,ol,ul{list-style:none}.container{margin:0 auto;max-width:1200px;padding:0 20px}.btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:14px;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;text-decoration:none;transition:all .2s ease}.btn:disabled{cursor:not-allowed;opacity:.6}.btn-primary{background:linear-gradient(135deg,#1e40af,#3b82f6);box-shadow:0 4px 12px #1e40af4d;color:#fff}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;transform:translateY(-1px)}.btn-secondary{background:linear-gradient(135deg,#d4af37,#f59e0b);box-shadow:0 4px 12px #d4af374d;color:#fff}.btn-secondary:hover:not(:disabled){background:linear-gradient(135deg,#b8941f,#d97706);box-shadow:0 6px 16px #d4af3766;transform:translateY(-1px)}.btn-outline{background:#0000;border:2px solid #1e40af;color:#1e40af}.btn-outline:hover:not(:disabled){background:#1e40af;color:#fff}.input{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.input.error{border-color:#ef4444}.input.error:focus{box-shadow:0 0 0 3px #ef44441a}.select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-family:inherit;font-size:14px;padding:12px 16px;transition:all .2s ease;width:100%}.select:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.form-group{margin-bottom:20px}.form-label{font-size:14px;margin-bottom:6px}.form-error{font-size:12px;margin-top:4px}.card{background:#fff;border:1px solid #e2e8f0;border-radius:12px;box-shadow:0 4px 6px #0000000d;overflow:hidden}.card-header{padding:24px 24px 0}.card-body{padding:24px}.card-footer{padding:0 24px 24px}.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.modal-header{align-items:center;display:flex;justify-content:space-between;padding:24px 24px 0}.modal-body{padding:24px}.modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:0 24px 24px}.text-center{text-align:center}.text-sm{font-size:14px}.text-xs{font-size:12px}.font-bold{font-weight:700}.font-semibold{font-weight:600}.font-medium{font-weight:500}.text-blue{color:#1e40af}.text-gold{color:#d4af37}.text-gray{color:#6b7280}.text-red{color:#ef4444}.bg-blue{background-color:#1e40af}.bg-gold{background-color:#d4af37}.bg-gray{background-color:#f3f4f6}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mt-6{margin-top:24px}.mt-8{margin-top:32px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.mb-6{margin-bottom:24px}.mb-8{margin-bottom:32px}.p-2{padding:8px}.p-4{padding:16px}.p-6{padding:24px}.rounded{border-radius:8px}.rounded-lg{border-radius:12px}.shadow{box-shadow:0 4px 6px #0000000d}.shadow-lg{box-shadow:0 10px 25px #0000001a}.border{border:1px solid #e2e8f0}.border-b{border-bottom:1px solid #e2e8f0}.flex{display:flex}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-2{gap:8px}.gap-4{gap:16px}.grid{display:grid}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.w-full{width:100%}.h-full{height:100%}.min-h-screen{min-height:100vh}.loading{animation:spin 1s ease-in-out infinite;border:3px solid #ffffff4d;border-radius:50%;border-top-color:#fff;display:inline-block;height:20px;width:20px}@media (max-width:768px){.container{padding:0 16px}.card-body,.modal-body{padding:20px}.card-header,.modal-header{padding:20px 20px 0}.card-footer,.modal-footer{padding:0 20px 20px}.grid-cols-2,.grid-cols-3{grid-template-columns:1fr}}.app-layout{background:#f8fafc;min-height:100vh}.app-header{background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 1px 3px #0000001a;position:-webkit-sticky;position:sticky;top:0;z-index:100}.header-container{margin:0 auto;max-width:1200px;padding:0 1.5rem}.header-content{height:4rem;justify-content:space-between}.header-content,.header-logo{align-items:center;display:flex}.header-logo{gap:.75rem;text-decoration:none;transition:transform .2s ease}.header-logo:hover{transform:scale(1.02)}.header-logo:hover,.header-logo:visited{text-decoration:none}.logo-icon{align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:8px;display:flex;height:2rem;justify-content:center;padding:.375rem;width:2rem}.logo-icon img{border-radius:8px;height:2.5rem;object-fit:contain;width:2.5rem}.logo-text h1{color:#1e40af;font-size:1.25rem;font-weight:700;margin:0;text-decoration:none}.logo-text p{color:#d4af37;font-size:.75rem;font-weight:500;line-height:1;margin:0}.header-nav{gap:1rem}.header-nav,.nav-button{align-items:center;display:flex}.nav-button{background:#0000;border:none;border-radius:8px;cursor:pointer;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;text-decoration:none;transition:all .2s ease}.nav-button.active{background:#dbeafe;color:#1e40af}.nav-button:hover:not(.active){background:#f1f5f9;color:#1e40af;text-decoration:none}.nav-button:visited{text-decoration:none}.user-section{align-items:center;display:flex;gap:1rem}.user-info{border-radius:8px;cursor:pointer;padding:.5rem;text-align:right;text-decoration:none;transition:background-color .2s ease}.user-info:hover{background:#f1f5f9}.user-info:hover,.user-info:visited,.user-name{text-decoration:none}.user-name{color:#1e293b;font-size:.875rem;font-weight:500;margin:0}.user-details{color:#64748b;font-size:.75rem;margin:0}.logout-button{align-items:center;background:#0000;border:1px solid #e2e8f0;border-radius:8px;color:#64748b;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.625rem 1.25rem;text-decoration:none;transition:all .2s ease}.logout-button:hover{background:#fef2f2;border-color:#fecaca;color:#dc2626;text-decoration:none}.logout-button:visited{text-decoration:none}.main-content{margin:0 auto;max-width:1200px;padding:2rem 1.5rem}.mobile-nav{background:#fff;border-bottom:1px solid #e2e8f0;display:none}.mobile-nav-container{margin:0 auto;max-width:1200px;padding:0 1.5rem}.mobile-nav-content{align-items:center;display:flex;gap:1rem;padding:.75rem 0}.mobile-nav-button{align-items:center;border-radius:6px;color:#64748b;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem .75rem;text-decoration:none;transition:all .2s ease}.mobile-nav-button.active{background:#dbeafe;color:#1e40af}.mobile-nav-button:hover:not(.active){background:#f1f5f9;color:#1e40af;text-decoration:none}.mobile-nav-button:visited{text-decoration:none}.loading-screen{align-items:center;background:#f8fafc;display:flex;justify-content:center;min-height:100vh}.loading-content{text-align:center}.loading-spinner{margin:0 auto 1rem}@media (max-width:768px){.header-nav{display:none}.mobile-nav{display:block}.user-section{gap:.5rem}.user-info{display:none}.logout-button{padding:.5rem}.logout-button span{display:none}.main-content{padding:1.5rem 1rem}.header-container,.mobile-nav-container{padding:0 1rem}}@media (max-width:640px){.header-content{height:3.5rem}.logo-text h1{font-size:1.125rem}.logo-text p{font-size:.625rem}.main-content{padding:1rem .75rem}}a,a:visited{color:inherit}a,a:focus,a:hover,a:visited{text-decoration:none}a:focus{outline:2px solid #1e40af;outline-offset:2px}.auth-container{align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0e7ff);display:flex;justify-content:center;min-height:100vh;padding:1rem}.auth-content{margin:0 auto;max-width:420px;width:100%}.auth-header{margin-bottom:2rem;text-align:left}.auth-logo{gap:.75rem;margin-bottom:1rem}.auth-logo,.auth-logo-icon{align-items:center;display:flex;justify-content:center}.auth-logo-icon{background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:12px;height:3.5rem;padding:.5rem;width:3.5rem}.auth-logo-icon img{border-radius:12px;height:4rem;object-fit:contain;width:4rem}.auth-logo-text h1{color:#182b49;font-size:1.75rem;font-weight:700;margin:0}.auth-logo-text p{color:#d4af37;font-size:.875rem;font-weight:500;margin:0}.auth-header h2{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:.5rem}.auth-header p{color:#64748b;margin:0}.auth-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0000001a;overflow:hidden}.auth-form{padding:2rem}.form-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr}.form-group{margin-bottom:1.5rem}.form-group.full-width{grid-column:span 2}.form-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.form-input{background:#fff;border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.875rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.form-input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.form-input.error{border-color:#ef4444}.form-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.form-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem 1rem;transition:all .2s ease;width:100%}.form-select:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.form-error{color:#ef4444;display:block;font-size:.75rem;margin-top:.25rem}.auth-button{align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border:none;border-radius:8px;box-shadow:0 4px 12px #1e40af4d;color:#fff;cursor:pointer;display:flex;font-size:.875rem;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;transition:all .2s ease;width:100%}.auth-button:hover:not(:disabled){background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;transform:translateY(-1px)}.auth-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.auth-footer{background:#f8fafc;border-top:1px solid #e2e8f0;padding:1.5rem 2rem;text-align:center}.auth-footer p{color:#64748b;font-size:.875rem;margin:0}.auth-link{color:#1e40af;font-weight:500;text-decoration:none;transition:color .2s ease}.auth-link:hover{color:#1d4ed8;text-decoration:none}.auth-link:visited{color:#1e40af;text-decoration:none}.auth-disclaimer{margin-top:1.5rem;text-align:center}.auth-disclaimer p{color:#94a3b8;font-size:.75rem;margin-bottom:1rem}.success-container{text-align:center}.success-icon{align-items:center;background:#dcfce7;border-radius:50%;display:flex;height:4rem;justify-content:center;margin:0 auto 1.5rem;width:4rem}.success-container h2{color:#1e293b;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.success-container p{color:#64748b;line-height:1.6;margin-bottom:1.5rem}.success-actions{display:flex;flex-direction:column;gap:.75rem}.success-button-primary{background:linear-gradient(135deg,#1e40af,#3b82f6);border:none;border-radius:8px;box-shadow:0 4px 12px #1e40af4d;color:#fff;gap:.5rem}.success-button-primary,.success-button-secondary{align-items:center;display:inline-flex;font-weight:600;justify-content:center;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s ease}.success-button-secondary{background:#0000;border:2px solid #1e40af;border-radius:8px;color:#1e40af;cursor:pointer}.success-button-primary:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;color:#fff;text-decoration:none;transform:translateY(-1px)}.success-button-secondary:hover{background:#1e40af;color:#fff;text-decoration:none}.auth-loading{animation:spin 1s ease-in-out infinite;border:2px solid #ffffff4d;border-radius:50%;border-top-color:#fff;height:1.25rem;width:1.25rem}@media (max-width:640px){.auth-content{max-width:100%}.form-grid{grid-template-columns:1fr}.form-group.full-width{grid-column:span 1}.auth-form{padding:1.5rem}.auth-footer{padding:1.25rem 1.5rem}.auth-header h2{font-size:1.25rem}}@media (max-width:480px){.auth-container{padding:.5rem}.auth-form{padding:1.25rem}.auth-logo-text h1{font-size:1.5rem}}.privacy-preference{align-items:flex-start;display:flex;gap:.5rem;margin-top:1rem}.privacy-checkbox{cursor:pointer;height:1rem;margin-top:.2rem;width:1rem}.privacy-label{display:flex;flex-direction:column}.privacy-title{color:#374151;font-size:.875rem;font-weight:500}.privacy-description{color:#6b7280;font-size:.75rem;margin-top:.25rem}.mtc-logo{margin:1rem auto 0}.confirmation-container{align-items:center;background:linear-gradient(135deg,#f0f9ff,#e0e7ff);display:flex;justify-content:center;min-height:100vh;padding:1rem}.confirmation-content{margin:0 auto;max-width:28rem;width:100%}.confirmation-header{margin-bottom:2rem;text-align:left}.confirmation-logo{gap:.75rem;margin-bottom:1rem}.confirmation-logo,.confirmation-logo-icon{align-items:center;display:flex;justify-content:center}.confirmation-logo-icon{background:linear-gradient(135deg,#1e40af,#3b82f6);border-radius:12px;height:3.5rem;padding:.5rem;width:3.5rem}.confirmation-logo-icon img{border-radius:12px;height:4rem;object-fit:contain;width:4rem}.confirmation-logo-text h1{color:#182b49;font-size:1.75rem;font-weight:700;margin:0}.confirmation-logo-text p{color:#d4af37;font-size:.875rem;font-weight:500;margin:0}.confirmation-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 10px 25px #0000001a;overflow:hidden}.confirmation-card-body{padding:3rem 2rem;text-align:center}.confirmation-icon-wrapper{align-items:center;border-radius:50%;display:flex;height:4rem;justify-content:center;margin:0 auto 1.5rem;width:4rem}.confirmation-icon-wrapper.loading{background:#dbeafe}.confirmation-icon-wrapper.success{background:#dcfce7}.confirmation-icon-wrapper.error{background:#fee2e2}.confirmation-loading{animation:spin 1s linear infinite;border:3px solid #1e40af33;border-radius:50%;border-top-color:#1e40af;height:2rem;width:2rem}.confirmation-title{color:#1e293b;font-size:1.5rem;font-weight:700;margin-bottom:1rem}.confirmation-message{color:#64748b;line-height:1.6;margin-bottom:1.5rem}.confirmation-actions{display:flex;flex-direction:column;gap:.75rem}.confirmation-button-primary{align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border:none;border-radius:8px;box-shadow:0 4px 12px #1e40af4d;color:#fff;cursor:pointer;display:inline-flex;font-weight:600;gap:.5rem;justify-content:center;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s ease}.confirmation-button-primary:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;color:#fff;text-decoration:none;transform:translateY(-1px)}.confirmation-button-outline{align-items:center;background:#0000;border:2px solid #1e40af;border-radius:8px;color:#1e40af;cursor:pointer;display:inline-flex;font-weight:600;justify-content:center;padding:.875rem 1.5rem;text-decoration:none;transition:all .2s ease}.confirmation-button-outline:hover{background:#1e40af;color:#fff;text-decoration:none}@media (max-width:640px){.confirmation-content{max-width:100%}.confirmation-card-body{padding:2rem 1.5rem}.confirmation-logo-text h1{font-size:1.5rem}.confirmation-title{font-size:1.25rem}}@media (max-width:480px){.confirmation-container{padding:.5rem}.confirmation-card-body{padding:1.5rem 1.25rem}}.class-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.class-modal{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:500px;overflow-y:auto;width:100%}.class-modal-header{align-items:center;display:flex;justify-content:space-between;padding:24px 24px 0}.class-modal-header h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.class-modal-close{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;padding:8px;transition:all .2s ease}.class-modal-close:hover{background:#f1f5f9;color:#1e293b}.class-modal-body{padding:24px}.class-modal-form-group{margin-bottom:20px}.class-modal-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:6px}.class-modal-input{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.875rem;padding:12px 16px;transition:all .2s ease;width:100%}.class-modal-input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.class-modal-input.error{border-color:#ef4444}.class-modal-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.class-modal-error{color:#ef4444}.class-modal-error,.class-modal-hint{display:block;font-size:.75rem;margin-top:4px}.class-modal-hint{color:#64748b}.class-modal-tips{background:#dbeafe;border:1px solid #bfdbfe;border-radius:8px;margin-top:8px;padding:16px}.class-modal-tips h4{color:#1e40af;font-size:.875rem;font-weight:500;margin:0 0 8px}.class-modal-tips ul{list-style:none;margin:0;padding:0}.class-modal-tips li{color:#1d4ed8;font-size:.75rem;line-height:1.4;margin-bottom:4px}.class-modal-tips li:last-child{margin-bottom:0}.class-modal-footer{display:flex;gap:12px;justify-content:flex-end;padding:0 24px 24px}.class-modal-btn{align-items:center;border:none;border-radius:8px;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.875rem;font-weight:500;gap:8px;justify-content:center;padding:12px 24px;text-decoration:none;transition:all .2s ease}.class-modal-btn-primary{background:linear-gradient(135deg,#1e40af,#3b82f6);box-shadow:0 4px 12px #1e40af4d;color:#fff}.class-modal-btn-primary:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;transform:translateY(-1px)}.class-modal-btn-outline{background:#0000;border:2px solid #1e40af;color:#1e40af}.class-modal-btn-outline:hover{background:#1e40af;color:#fff}@media (max-width:640px){.class-modal{margin:10px;max-width:calc(100vw - 20px)}.class-modal-body,.class-modal-footer,.class-modal-header{padding-left:20px;padding-right:20px}.class-modal-footer{flex-direction:column}.class-modal-btn{width:100%}}.contact-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1100}.contact-modal{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:400px;overflow-y:auto;width:100%}.contact-modal-header{align-items:center;display:flex;justify-content:space-between;padding:24px 24px 0}.contact-modal-header h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.contact-modal-close{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;padding:8px;transition:all .2s ease}.contact-modal-close:hover{background:#f1f5f9;color:#1e293b}.contact-modal-body{padding:24px}.contact-profile-section{margin-bottom:24px;text-align:center}.contact-profile-avatar{align-items:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:50%;display:flex;height:5rem;justify-content:center;margin:0 auto 16px;width:5rem}.contact-profile-name{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 4px}.contact-profile-meta{color:#64748b;font-size:.875rem;margin:0}.contact-class-info{background:#dbeafe;border:1px solid #bfdbfe;border-radius:8px;margin-bottom:24px;padding:16px}.contact-class-info-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.contact-class-info-title{color:#1e40af;font-size:.875rem;font-weight:500}.contact-class-info-details{color:#1d4ed8;font-size:.875rem;font-weight:500;margin:0}.contact-details-section{margin-bottom:24px}.contact-details-title{align-items:center;color:#1e293b;display:flex;font-size:1rem;font-weight:600;gap:8px;margin:0 0 16px}.contact-detail-item{align-items:center;background:#f8fafc;border-radius:8px;display:flex;justify-content:space-between;margin-bottom:12px;padding:12px}.contact-detail-item:last-child{margin-bottom:0}.contact-detail-content{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.contact-detail-icon{color:#64748b;flex-shrink:0}.contact-detail-info{flex:1 1;min-width:0}.contact-detail-label{color:#1e293b;font-size:.875rem;font-weight:500;margin:0 0 2px}.contact-detail-value{color:#64748b;font-size:.875rem;margin:0;word-break:break-word}.contact-copy-btn{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;flex-shrink:0;padding:8px;transition:all .2s ease}.contact-copy-btn:hover{background:#fff;color:#1e40af}.contact-reminder{background:#d4af371a;border:1px solid #d4af3733;border-radius:8px;padding:16px}.contact-reminder p{color:#374151;font-size:.875rem;line-height:1.5;margin:0}.contact-modal-footer{display:flex;justify-content:center;padding:0 24px 24px}.contact-close-btn{background:#0000;border:2px solid #1e40af;border-radius:8px;color:#1e40af;cursor:pointer;font-size:.875rem;font-weight:500;padding:12px 24px;transition:all .2s ease;width:100%}.contact-close-btn:hover{background:#1e40af;color:#fff}@media (max-width:640px){.contact-modal{margin:10px;max-width:calc(100vw - 20px)}.contact-modal-body,.contact-modal-footer,.contact-modal-header{padding-left:20px;padding-right:20px}.contact-profile-avatar{height:4rem;width:4rem}.contact-detail-item{align-items:flex-start;flex-direction:column;gap:12px}.contact-detail-content{width:100%}.contact-copy-btn{align-self:flex-start}}.find-classmates-modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:1000}.find-classmates-modal{background:#fff;border-radius:12px;box-shadow:0 25px 50px -12px #00000040;max-height:90vh;max-width:600px;overflow-y:auto;width:100%}.find-classmates-header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between;padding:24px 24px 0}.find-classmates-header-content h3{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0 0 4px}.find-classmates-header-content p{color:#64748b;font-size:.875rem;line-height:1.4;margin:0}.find-classmates-close{background:#0000;border:none;border-radius:6px;color:#64748b;cursor:pointer;flex-shrink:0;padding:8px;transition:all .2s ease}.find-classmates-close:hover{background:#f1f5f9;color:#1e293b}.find-classmates-body{padding:24px}.find-classmates-loading{padding:32px;text-align:center}.find-classmates-loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#1e40af;height:2rem;margin:0 auto 16px;width:2rem}.find-classmates-loading p{color:#64748b;margin:0}.find-classmates-error{padding:32px;text-align:center}.find-classmates-error-icon{align-items:center;background:#fee2e2;border-radius:50%;display:flex;height:4rem;justify-content:center;margin:0 auto 16px;width:4rem}.find-classmates-error h4{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 8px}.find-classmates-error p{color:#64748b;margin:0 0 16px}.find-classmates-empty{padding:32px;text-align:center}.find-classmates-empty-icon{align-items:center;background:#f1f5f9;border-radius:50%;display:flex;height:4rem;justify-content:center;margin:0 auto 16px;width:4rem}.find-classmates-empty h4{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 8px}.find-classmates-empty p{color:#64748b;line-height:1.5;margin:0}.find-classmates-results-header{align-items:center;display:flex;gap:8px;margin-bottom:16px}.find-classmates-results-count{color:#1e293b;font-size:.875rem;font-weight:500}.find-classmates-list{margin-bottom:24px;max-height:400px;overflow-y:auto}.find-classmates-item{border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;margin-bottom:12px;padding:16px;transition:all .2s ease}.find-classmates-item:last-child{margin-bottom:0}.find-classmates-item:hover{background:#f8fafc;border-color:#3b82f6;transform:translateY(-1px)}.find-classmates-item-content{align-items:center;display:flex;gap:16px;justify-content:space-between}.find-classmates-item-left{align-items:center;display:flex;flex:1 1;gap:12px;min-width:0}.find-classmates-item-avatar{align-items:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:50%;display:flex;flex-shrink:0;height:2.5rem;justify-content:center;width:2.5rem}.find-classmates-item-info{flex:1 1;min-width:0}.find-classmates-item-name{color:#1e293b;font-size:1rem;font-weight:600;margin:0 0 4px}.find-classmates-item-meta{align-items:center;color:#64748b;display:flex;font-size:.875rem;gap:8px}.find-classmates-item-right{flex-shrink:0;text-align:right}.find-classmates-item-section{color:#1e40af;font-size:.875rem;font-weight:500;line-height:1.3;margin-bottom:4px}.find-classmates-item-hint{color:#64748b;font-size:.75rem}.find-classmates-info-banner{background:#d4af371a;border:1px solid #d4af3733;border-radius:8px;padding:16px}.find-classmates-info-banner h5{color:#1e293b;font-size:.875rem;font-weight:500;margin:0 0 8px}.find-classmates-info-banner p{color:#374151;font-size:.875rem;line-height:1.5;margin:0}.find-classmates-footer{display:flex;justify-content:center;padding:0 24px 24px}.find-classmates-footer button{background:#0000;border:2px solid #1e40af;border-radius:8px;color:#1e40af;cursor:pointer;font-size:.875rem;font-weight:500;max-width:200px;padding:12px 24px;transition:all .2s ease;width:100%}.find-classmates-footer button:hover{background:#1e40af;color:#fff}@media (max-width:640px){.find-classmates-modal{margin:10px;max-width:calc(100vw - 20px)}.find-classmates-body,.find-classmates-footer,.find-classmates-header{padding-left:20px;padding-right:20px}.find-classmates-item-content{align-items:flex-start;flex-direction:column;gap:12px}.find-classmates-item-left{width:100%}.find-classmates-item-right{text-align:left;width:100%}.find-classmates-item-meta{flex-wrap:wrap}}.dashboard-container{margin:0 auto;max-width:1200px;padding:2rem}.dashboard-header{align-items:flex-start;display:flex;gap:2rem;justify-content:space-between;margin-bottom:2rem}.dashboard-title-section h1{color:#1e293b;font-size:2.5rem;font-weight:700;margin-bottom:.5rem}.dashboard-title-section p{color:#64748b;font-size:1.1rem;margin:0}.add-class-button{align-items:center;background:linear-gradient(135deg,#1e40af,#3b82f6);border:none;border-radius:8px;box-shadow:0 4px 12px #1e40af4d;color:#fff;cursor:pointer;display:flex;font-weight:600;gap:8px;padding:12px 24px;transition:all .2s ease;white-space:nowrap}.add-class-button:hover{background:linear-gradient(135deg,#1d4ed8,#2563eb);box-shadow:0 6px 16px #1e40af66;transform:translateY(-1px)}.welcome-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem;padding:3rem 2rem;text-align:center}.welcome-icon{align-items:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:50%;display:flex;height:4rem;justify-content:center;margin:0 auto 1.5rem;width:4rem}.welcome-card h3{color:#1e293b;font-size:1.5rem;font-weight:600;margin-bottom:1rem}.welcome-card p{color:#64748b;font-size:1rem;line-height:1.6;margin:0 auto 1.5rem;max-width:28rem}.classes-section{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d;padding:2rem}.classes-section-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:between;margin-bottom:1.5rem;padding-bottom:1rem}.classes-section-title{color:#1e293b;font-size:1.5rem;font-weight:600;margin:0}.classes-grid{grid-gap:1.5rem;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));max-width:100%}.class-card{background:#fff;border:2px solid #e2e8f0;border-radius:12px;overflow:hidden;padding:1.5rem;position:relative;transition:all .2s ease}.class-card:before{background:linear-gradient(135deg,#1e40af,#3b82f6);content:"";height:4px;left:0;position:absolute;right:0;top:0}.class-card:hover{border-color:#3b82f6;box-shadow:0 8px 25px #1e40af26;transform:translateY(-2px)}.class-card-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.class-info{flex:1 1;gap:.75rem}.class-icon,.class-info{align-items:center;display:flex}.class-icon{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:8px;flex-shrink:0;height:3rem;justify-content:center;width:3rem}.class-details h3{color:#1e293b;font-size:1.125rem;font-weight:600;margin:0 0 .25rem}.class-details p{color:#64748b;font-size:.875rem;margin:0}.class-actions{display:flex;gap:.25rem}.action-button{align-items:center;background:#0000;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;justify-content:center;padding:.5rem;transition:all .2s ease}.action-button:hover.edit-button{background:#dbeafe;color:#1e40af}.action-button:hover.delete-button{background:#fee2e2;color:#dc2626}.find-classmates-button{align-items:center;background:linear-gradient(135deg,#d4af37,#f59e0b);border:none;border-radius:8px;box-shadow:0 2px 8px #d4af374d;color:#fff;cursor:pointer;display:flex;font-weight:500;gap:.5rem;justify-content:center;padding:.75rem 1.5rem;transition:all .2s ease;width:100%}.find-classmates-button:hover{background:linear-gradient(135deg,#b8941f,#d97706);box-shadow:0 4px 12px #d4af3766;transform:translateY(-1px)}.loading-container{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem}.loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#1e40af;height:2rem;margin-bottom:1rem;width:2rem}.loading-text{color:#64748b;font-size:1rem}@media (max-width:768px){.dashboard-container{padding:1rem}.dashboard-header{align-items:flex-start;flex-direction:column;gap:1rem}.dashboard-title-section h1{font-size:2rem}.classes-grid{gap:1rem;grid-template-columns:1fr}.classes-section{padding:1.5rem}.class-card{padding:1.25rem}}@media (max-width:480px){.dashboard-container{padding:.5rem}.dashboard-title-section h1{font-size:1.75rem}.add-class-button{justify-content:center;width:100%}}.profile-container{margin:0 auto;max-width:800px;padding:2rem}.profile-header{margin-bottom:3rem;text-align:center}.profile-avatar{align-items:center;background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-radius:50%;box-shadow:0 4px 12px #1e40af33;display:flex;height:6rem;justify-content:center;margin:0 auto 1.5rem;width:6rem}.profile-header h1{color:#1e293b;font-size:2rem;font-weight:700;margin-bottom:.5rem}.profile-header p{color:#64748b;font-size:1.125rem;margin:0}.profile-card{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d;margin-bottom:2rem;overflow:hidden}.profile-card-header{align-items:center;border-bottom:1px solid #e2e8f0;display:flex;justify-content:space-between;margin-bottom:0;padding:1.5rem 2rem}.profile-card-title{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.edit-actions{display:flex;gap:.75rem}.cancel-button,.edit-button,.save-button{align-items:center;border:none;border-radius:8px;cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.5rem;padding:.5rem 1rem;transition:all .2s ease}.edit-button{background:#0000;border:2px solid #1e40af;color:#1e40af}.edit-button:hover{background:#1e40af;color:#fff}.save-button{background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 2px 8px #0596694d;color:#fff}.save-button:hover{background:linear-gradient(135deg,#047857,#059669);box-shadow:0 4px 12px #05966966;transform:translateY(-1px)}.cancel-button{background:#0000;border:2px solid #e2e8f0;color:#64748b}.cancel-button:hover{background:#f1f5f9;color:#1e293b}.profile-card-body{padding:2rem}.profile-fields{display:flex;flex-direction:column;gap:2rem}.profile-field{align-items:flex-start;display:flex;gap:1rem}.field-icon{align-items:center;border-radius:8px;display:flex;flex-shrink:0;height:3rem;justify-content:center;margin-top:.125rem;width:3rem}.field-icon.user{background:#dbeafe;color:#1e40af}.field-icon.mail{background:#dcfce7;color:#059669}.field-icon.phone{background:#f3e8ff;color:#7c3aed}.field-icon.graduation{background:#d4af371a;color:#d4af37}.field-icon.calendar{background:#fed7aa;color:#ea580c}.field-icon.users{background:#fce7f3;color:#ec4899}.field-content{flex:1 1;min-width:0}.field-label{color:#374151;display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem}.field-value{color:#1e293b;font-size:1rem;margin:0;word-break:break-word}.field-note{color:#64748b;font-size:.75rem;font-style:italic;margin-top:.25rem}.field-input{border:2px solid #e2e8f0;border-radius:8px;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease;width:100%}.field-input:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.field-input.error{border-color:#ef4444}.field-input.error:focus{box-shadow:0 0 0 3px #ef44441a}.field-select{background:#fff;border:2px solid #e2e8f0;border-radius:8px;cursor:pointer;font-family:inherit;font-size:.875rem;padding:.75rem;transition:all .2s ease;width:100%}.field-select:focus{border-color:#1e40af;box-shadow:0 0 0 3px #1e40af1a;outline:none}.field-error{color:#ef4444;font-size:.75rem;margin-top:.25rem}.classes-summary{background:#fff;border:1px solid #e2e8f0;border-radius:16px;box-shadow:0 4px 6px #0000000d;overflow:hidden}.classes-summary-header{border-bottom:1px solid #e2e8f0;padding:1.5rem 2rem}.classes-summary-title{color:#1e293b;font-size:1.25rem;font-weight:600;margin:0}.classes-summary-body{padding:2rem}.classes-grid{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.class-item{background:#dbeafe;border:1px solid #bfdbfe;border-radius:8px;padding:1rem}.class-item h3{color:#1e40af;font-size:1rem;font-weight:600;margin:0 0 .25rem}.class-item p{color:#1d4ed8;font-size:.875rem;margin:0}.no-classes{color:#64748b;padding:2rem;text-align:center}.no-classes p{font-size:1rem;margin:0}.profile-loading{align-items:center;display:flex;flex-direction:column;justify-content:center;padding:3rem}.profile-loading-spinner{animation:spin 1s linear infinite;border:3px solid #e2e8f0;border-radius:50%;border-top-color:#1e40af;height:2rem;margin-bottom:1rem;width:2rem}.profile-loading-text{color:#64748b;font-size:1rem}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.profile-container{padding:1rem}.profile-card-header{align-items:flex-start;flex-direction:column;gap:1rem}.edit-actions{justify-content:flex-start;width:100%}.classes-summary-body,.classes-summary-header,.profile-card-body,.profile-card-header{padding:1.5rem}.classes-grid{grid-template-columns:1fr}}.profile-section{border-top:1px solid #e5e7eb;margin-top:1.5rem;padding-top:1.5rem}.profile-section-title{color:#111827;font-size:1rem;font-weight:600;margin:0 0 1rem}.privacy-setting{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;padding:1.25rem}.privacy-setting-header{align-items:flex-start;display:flex;gap:1rem;justify-content:space-between}.privacy-setting-title{color:#374151;font-size:.9375rem;font-weight:600;margin:0 0 .375rem}.privacy-setting-description{color:#6b7280;font-size:.875rem;line-height:1.5;margin:0}.toggle-switch{display:inline-block;flex-shrink:0;height:1.75rem;position:relative;width:3rem}.toggle-switch input{height:0;opacity:0;width:0}.toggle-slider{background-color:#cbd5e1;border-radius:2rem;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.3s}.toggle-slider:before{background-color:#fff;border-radius:50%;bottom:.1875rem;content:"";height:1.375rem;left:.1875rem;position:absolute;transition:.3s;width:1.375rem}.toggle-switch input:checked+.toggle-slider{background-color:#2563eb}.toggle-switch input:checked+.toggle-slider:before{transform:translateX(1.25rem)}.toggle-switch input:focus+.toggle-slider{box-shadow:0 0 0 3px #2563eb33}.preference-badge{border-radius:1rem;flex-shrink:0;font-size:.875rem;font-weight:500;padding:.375rem .875rem}.preference-badge.active{background-color:#dbeafe;color:#1e40af}.preference-badge.inactive{background-color:#f3f4f6;color:#6b7280}@media (max-width:640px){.profile-header h1{font-size:1.75rem}.profile-avatar{height:5rem;width:5rem}.profile-field{flex-direction:column;gap:.75rem}.field-icon{align-self:flex-start}.edit-actions{flex-direction:column}.cancel-button,.edit-button,.save-button{justify-content:center}.privacy-setting-header{align-items:flex-start;flex-direction:column}.preference-badge,.toggle-switch{align-self:flex-start}}.support-section{background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:.75rem;margin-top:2rem;padding:1rem;text-align:center}.support-section p{color:#374151;font-size:.875rem;margin-bottom:1rem}.mtc-logo{border-radius:50%;display:block;height:3rem;margin:0 auto;width:3rem}
/*# sourceMappingURL=main.9da05ef2.css.map*/