.App{min-height:100vh}.navbar{background:linear-gradient(135deg,#1a1a1a 0%,#2c3e50 100%);color:#fff;padding:1rem 0;position:fixed;width:100%;top:0;z-index:1000;box-shadow:0 2px 10px #0000001a}.nav-container{max-width:1200px;margin:0 auto;padding:0 20px;display:flex;justify-content:space-between;align-items:center}.nav-logo{display:flex;align-items:center;gap:.75rem;font-size:1.8rem;font-weight:700;color:#2196f3;text-decoration:none;transition:transform .3s ease}.nav-logo:hover{transform:scale(1.05)}.nav-logo-img{height:40px;width:auto;border-radius:6px}.nav-logo-text{color:#2196f3}.nav-menu{display:flex;list-style:none;gap:2rem;align-items:center}.nav-link{color:#fff;text-decoration:none;font-weight:500;transition:color .3s ease;padding:.5rem 1rem;border-radius:6px}.nav-link:hover{color:#2196f3;background:rgba(33,150,243,.1)}.nav-link.active{color:#2196f3;background:rgba(33,150,243,.2)}.team-login-btn{background:#2196F3;color:#fff;padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s ease}.team-login-btn:hover{background:#1976D2}.mobile-menu-btn{display:none;background:none;border:none;color:#fff;font-size:1.5rem;cursor:pointer}@media (max-width: 768px){.mobile-menu-btn{display:block}.nav-logo{font-size:1.4rem;gap:.5rem}.nav-logo-img{height:32px}.nav-menu{position:absolute;top:100%;left:0;width:100%;background:#2c3e50;flex-direction:column;padding:1rem 0;transform:translateY(-100%);opacity:0;visibility:hidden;transition:all .3s ease}.nav-menu.active{transform:translateY(0);opacity:1;visibility:visible}.nav-menu li{width:100%;text-align:center}.nav-link{display:block;padding:1rem;width:100%}}.hero{background:linear-gradient(135deg,#2196F3 0%,#1a1a1a 100%);color:#fff;padding:150px 0 100px;text-align:center;margin-top:70px}.team-banner{background:white;padding:80px 0;border-bottom:1px solid #e1e5e9}.banner-content{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}.banner-text h2{font-size:2.2rem;color:#1a1a1a;margin-bottom:1.5rem;font-weight:700}.banner-text p{font-size:1.1rem;color:#666;line-height:1.7;margin-bottom:2rem}.team-stats{display:flex;gap:2rem}.stat{text-align:center}.stat-number{display:block;font-size:2.5rem;font-weight:700;color:#2196f3;line-height:1}.stat-label{display:block;font-size:.9rem;color:#666;text-transform:uppercase;letter-spacing:.5px;margin-top:.5rem}.banner-image{position:relative}.team-photo{width:100%;height:auto;border-radius:12px;box-shadow:0 10px 30px #00000026;transition:transform .3s ease}.team-photo:hover{transform:scale(1.02)}.photo-caption{text-align:center;margin-top:1rem;font-size:.9rem;color:#666;font-style:italic}@media (max-width: 768px){.banner-content{grid-template-columns:1fr;gap:2rem;text-align:center}.banner-text h2{font-size:1.8rem}.team-stats{justify-content:center;gap:1.5rem}.stat-number{font-size:2rem}}.hero-content h1{font-size:3.5rem;font-weight:700;margin-bottom:1rem;text-shadow:2px 2px 4px rgba(0,0,0,.3)}.hero-title-with-image{display:flex;flex-direction:column;align-items:center;gap:1.5rem}.hero-team-photo{width:200px;height:200px;border-radius:50%;object-fit:cover;border:4px solid rgba(255,255,255,.3);box-shadow:0 8px 25px #0000004d;transition:transform .3s ease,box-shadow .3s ease}.hero-team-photo:hover{transform:scale(1.05);box-shadow:0 12px 35px #0006}.hero-title-text{display:block;font-size:3.5rem;font-weight:700;text-shadow:2px 2px 4px rgba(0,0,0,.3)}@media (min-width: 1024px){.hero-title-with-image{flex-direction:row;justify-content:center;gap:2rem}.hero-team-photo{width:120px;height:120px}.hero-title-text{align-self:center}}@media (max-width: 768px){.hero-team-photo{width:150px;height:150px}.hero-title-text{font-size:2.5rem}}.hero-content p{font-size:1.3rem;margin-bottom:2rem;opacity:.9}.modal-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.5);display:flex;justify-content:center;align-items:center;z-index:2000}.modal-content{background:white;padding:2rem;border-radius:12px;width:90%;max-width:400px;position:relative}.modal-close{position:absolute;top:1rem;right:1rem;background:none;border:none;font-size:1.5rem;cursor:pointer;color:#666}.modal-close:hover{color:#333}.modal-header{text-align:center;margin-bottom:2rem}.modal-title{font-size:1.8rem;margin-bottom:.5rem;color:#1a1a1a;font-weight:700}.modal-subtitle{font-size:.95rem;color:#666;margin:0}.form-group{margin-bottom:1rem}.form-group label{display:block;margin-bottom:.5rem;font-weight:500;color:#333}.form-group input{width:100%;padding:.75rem;border:2px solid #e1e5e9;border-radius:6px;font-size:1rem;transition:border-color .3s ease;background:white}.form-group input:focus{outline:none;border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a}.form-group input.error{border-color:#e74c3c}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.7}.password-input-container{position:relative;display:flex;align-items:center}.password-toggle{position:absolute;right:.75rem;background:none;border:none;cursor:pointer;font-size:1.2rem;color:#666;padding:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px;transition:color .3s ease}.password-toggle:hover{color:#2196f3}.password-toggle:disabled{cursor:not-allowed;opacity:.5}.login-btn{width:100%;padding:.875rem 1rem;font-size:1rem;font-weight:600;margin-top:.5rem;display:flex;align-items:center;justify-content:center;min-height:48px}.login-btn:disabled{opacity:.6;cursor:not-allowed}.error-message{color:#e74c3c;font-size:.9rem;margin-top:1rem;padding:.75rem;background:#fdf2f2;border:1px solid #fecaca;border-radius:6px;display:flex;align-items:flex-start;gap:.5rem;line-height:1.4}.error-icon{flex-shrink:0;margin-top:.1rem}.modal-footer{margin-top:2rem;padding-top:1.5rem;border-top:1px solid #e1e5e9;text-align:center}.help-text{font-size:.85rem;color:#666;margin:0;line-height:1.4}.config-warning{text-align:center;padding:2rem 1rem}.warning-icon{font-size:3rem;margin-bottom:1rem}.config-warning h3{color:#f39c12;margin-bottom:1rem;font-size:1.3rem}.config-warning p{color:#666;margin-bottom:1.5rem;line-height:1.5}.config-steps{background:#f8f9fa;border-radius:8px;padding:1.5rem;text-align:left}.config-steps ol{margin:0;padding-left:1.5rem}.config-steps li{margin-bottom:.75rem;line-height:1.4}.config-steps code{background:#e9ecef;padding:.2rem .4rem;border-radius:4px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.85rem;color:#2196f3}.change-password-modal{max-width:500px;width:95%}.user-info-section{background:#f0f8ff;border:1px solid #b3d9ff;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.user-info-section h4{margin:0 0 .75rem;color:#1976d2;font-size:.9rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}@media (max-width: 768px){.form-row{grid-template-columns:1fr;gap:.75rem}}.password-requirements{background:#f8f9fa;border:1px solid #e1e5e9;border-radius:8px;padding:1rem;margin-bottom:1.5rem}.password-requirements h4{margin:0 0 .75rem;color:#2c3e50;font-size:.9rem}.password-requirements ul{margin:0;padding-left:1.2rem;list-style:none}.password-requirements li{margin-bottom:.25rem;font-size:.85rem;color:#666;position:relative}.password-requirements li:before{content:"○";position:absolute;left:-1rem;color:#ccc}.password-requirements li.requirement-met{color:#2ecc71}.password-requirements li.requirement-met:before{content:"✓";color:#2ecc71;font-weight:700}.password-tips{margin-top:1rem;padding-top:1rem;border-top:1px solid #e1e5e9}.password-tips p{margin:0 0 .5rem;font-size:.85rem;color:#2c3e50}.password-tips ul{margin:0;padding-left:1.2rem;list-style:disc}.password-tips li{margin-bottom:.25rem;font-size:.8rem;color:#666}.password-tips code{background:#e3f2fd;color:#1976d2;padding:.1rem .3rem;border-radius:3px;font-family:Monaco,Menlo,Ubuntu Mono,monospace;font-size:.75rem}.password-strength{margin-top:.5rem;display:flex;align-items:center;gap:.75rem}.strength-bar{flex:1;height:4px;background:#e1e5e9;border-radius:2px;overflow:hidden}.strength-fill{height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.strength-text{font-size:.8rem;font-weight:600;min-width:60px}.form-actions{display:flex;gap:1rem;margin-top:1.5rem}.change-password-btn{flex:1}.field-error{color:#e74c3c;font-size:.8rem;margin-top:.25rem;display:block}@media (max-width: 768px){.change-password-modal{margin:5% auto;max-height:90vh;overflow-y:auto}.form-actions{flex-direction:column}.form-actions button{width:100%}}.dashboard-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:white;z-index:3000;overflow-y:auto}.dashboard-header{background:linear-gradient(135deg,#2c3e50 0%,#34495e 100%);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 10px #0000001a}.dashboard-title{font-size:1.5rem;font-weight:600}.logout-btn{background:#e74c3c;color:#fff;padding:.5rem 1rem;border:none;border-radius:6px;cursor:pointer;font-weight:500;transition:background .3s ease}.logout-btn:hover{background:#c0392b}.dashboard-content{padding:2rem;max-width:1200px;margin:0 auto}.dashboard-section{margin-bottom:3rem}.dashboard-section-title{font-size:1.8rem;margin-bottom:1.5rem;color:#2c3e50;border-bottom:3px solid #2196F3;padding-bottom:.5rem}.assignment-card,.progress-card{background:white;padding:1.5rem;margin-bottom:1rem;border-radius:12px;box-shadow:0 4px 15px #0000001a;border-left:4px solid #2196F3;transition:transform .3s ease}.assignment-card:hover,.progress-card:hover{transform:translate(5px)}.assignment-title,.progress-title{font-size:1.2rem;font-weight:600;color:#2c3e50;margin-bottom:.5rem}.assignment-meta{display:flex;gap:1rem;margin-top:1rem;flex-wrap:wrap}.assignment-meta span{font-size:.9rem;padding:.25rem .75rem;border-radius:20px;font-weight:500}.assignee{background:#e3f2fd;color:#1976d2}.due-date{background:#fff3e0;color:#f57c00}.status{font-weight:600}.status-in-progress{background:#fff3cd;color:#856404}.status-not-started{background:#f8d7da;color:#721c24}.status-planning{background:#d1ecf1;color:#0c5460}.status-completed{background:#d4edda;color:#155724}.progress-bar{background:#e9ecef;border-radius:10px;height:24px;position:relative;margin:1rem 0;overflow:hidden}.progress-fill{background:linear-gradient(90deg,#2196F3,#2ecc71);height:100%;border-radius:10px;transition:width .8s ease;position:relative}.progress-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:.85rem;font-weight:600;color:#2c3e50;z-index:1}.progress-details{font-size:.9rem;color:#666;margin:0;font-style:italic}.footer{background:#2c3e50;color:#fff;text-align:center;padding:3rem 0;margin-top:4rem}.footer-content{max-width:1200px;margin:0 auto;padding:0 20px}.footer-text{margin-bottom:1rem;opacity:.8}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .6s ease-out}.loading-spinner{display:inline-block;width:20px;height:20px;border:3px solid #f3f3f3;border-top:3px solid #2196F3;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.header-actions{display:flex;gap:.75rem;align-items:center}.section-title-group{display:flex;flex-direction:column;gap:.25rem}.last-updated{color:#666;font-size:.8rem;font-style:italic}.save-status{font-size:.8rem;font-weight:500;margin-left:1rem}.save-status.success{color:#28a745}.save-status.error{color:#dc3545}.add-assignment-btn{padding:.5rem 1rem;font-size:.9rem}.assignments-table-container{overflow-x:auto;background:white;border-radius:8px;box-shadow:0 2px 10px #0000001a}.assignments-table{width:100%;border-collapse:collapse;min-width:800px}.assignments-table th,.assignments-table td{padding:1rem;text-align:left;border-bottom:1px solid #e1e5e9}.assignments-table th{background:#f8f9fa;font-weight:600;color:#2c3e50;position:sticky;top:0}.assignments-table tbody tr:hover{background:#f8f9fa}.table-input{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem}.table-select{width:100%;padding:.5rem;border:1px solid #ddd;border-radius:4px;font-size:.9rem;background:white}.assignee-checkboxes{display:flex;flex-wrap:wrap;gap:.5rem}.checkbox-label{display:flex;align-items:center;gap:.25rem;font-size:.85rem;white-space:nowrap}.checkbox-label input[type=checkbox]{margin:0}.assignee-tags{display:flex;flex-wrap:wrap;gap:.25rem}.assignee-tag{background:#e3f2fd;color:#1976d2;padding:.25rem .5rem;border-radius:12px;font-size:.8rem;font-weight:500}.status-badge{padding:.25rem .75rem;border-radius:12px;font-size:.8rem;font-weight:600;text-transform:uppercase}.status-badge.status-completed{background:#d4edda;color:#155724}.status-badge.status-in-progress{background:#fff3cd;color:#856404}.status-badge.status-not-started{background:#f8d7da;color:#721c24}.action-buttons{display:flex;gap:.5rem}.btn-sm{padding:.25rem .5rem;font-size:.8rem;border-radius:4px}.btn-success{background:#28a745;color:#fff;border:none}.btn-success:hover{background:#218838}.btn-danger{background:#dc3545;color:#fff;border:none}.btn-danger:hover{background:#c82333}@media (max-width: 768px){.section-header{flex-direction:column;gap:1rem;align-items:stretch}.assignments-table-container{font-size:.85rem}.assignments-table th,.assignments-table td{padding:.75rem .5rem}.assignee-checkboxes,.action-buttons{flex-direction:column}}.gallery-filters{display:flex;justify-content:center;gap:1rem;margin-bottom:2rem;flex-wrap:wrap}.filter-btn{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;border:2px solid #3498db;background:white;color:#3498db;border-radius:25px;cursor:pointer;transition:all .3s ease;font-weight:500;text-decoration:none}.filter-btn:hover{background:#3498db;color:#fff;transform:translateY(-2px)}.filter-btn.active{background:#3498db;color:#fff}.filter-icon{font-size:1.2rem}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2rem;margin-bottom:3rem}.gallery-item{cursor:pointer;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px #0000001a;transition:all .3s ease;background:white}.gallery-item:hover{transform:translateY(-5px);box-shadow:0 8px 25px #00000026}.gallery-image-container{position:relative;overflow:hidden}.gallery-image{width:100%;height:250px;object-fit:cover;transition:transform .3s ease}.gallery-item:hover .gallery-image{transform:scale(1.05)}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(0,0,0,.8));color:#fff;padding:2rem 1.5rem 1.5rem;transform:translateY(100%);transition:transform .3s ease}.gallery-item:hover .gallery-overlay{transform:translateY(0)}.gallery-title{font-size:1.2rem;font-weight:600;margin-bottom:.5rem;color:#fff}.gallery-description{font-size:.9rem;margin-bottom:.75rem;opacity:.9;line-height:1.4}.gallery-category{display:inline-block;background:rgba(52,152,219,.8);padding:.25rem .75rem;border-radius:15px;font-size:.8rem;font-weight:500}.no-images{text-align:center;padding:3rem;color:#666;font-size:1.1rem}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;z-index:2000;padding:2rem}.image-modal{position:relative;max-width:90vw;max-height:90vh;background:white;border-radius:12px;overflow:hidden;display:flex;flex-direction:column}.modal-close{position:absolute;top:1rem;right:1rem;background:rgba(0,0,0,.7);color:#fff;border:none;width:40px;height:40px;border-radius:50%;font-size:1.5rem;cursor:pointer;z-index:10;display:flex;align-items:center;justify-content:center;transition:background .3s ease}.modal-close:hover{background:rgba(0,0,0,.9)}.modal-image{width:100%;max-height:60vh;object-fit:contain;background:#f8f9fa}.modal-content{padding:1.5rem;flex-grow:1}.modal-content h2{margin-bottom:1rem;color:#2c3e50;font-size:1.5rem}.modal-content p{margin-bottom:1rem;color:#666;line-height:1.6}.modal-category{display:inline-block;background:#3498db;color:#fff;padding:.5rem 1rem;border-radius:20px;font-size:.9rem;font-weight:500}@media (max-width: 768px){.gallery-grid{grid-template-columns:1fr;gap:1.5rem}.gallery-filters{gap:.5rem}.filter-btn{padding:.5rem 1rem;font-size:.9rem}.image-modal{margin:1rem;max-width:calc(100vw - 2rem);max-height:calc(100vh - 2rem)}.modal-image{max-height:50vh}}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif;line-height:1.6;color:#333;background-color:#f8f9fa}.container{max-width:1200px;margin:0 auto;padding:0 20px}.text-center{text-align:center}.mb-1{margin-bottom:1rem}.mb-2{margin-bottom:2rem}.mb-3{margin-bottom:3rem}.mt-1{margin-top:1rem}.mt-2{margin-top:2rem}.mt-3{margin-top:3rem}.btn{display:inline-block;padding:12px 24px;border:none;border-radius:6px;font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer;transition:all .3s ease;text-align:center}.btn-primary{background:linear-gradient(135deg,#2196F3 0%,#1565C0 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 5px 15px #2196f366}.btn-secondary{background:#6c757d;color:#fff}.btn-secondary:hover{background:#5a6268}.section{padding:80px 0}.section-title{font-size:2.5rem;text-align:center;margin-bottom:3rem;color:#1a1a1a;font-weight:700}.section-subtitle{font-size:1.2rem;text-align:center;margin-bottom:2rem;color:#666;max-width:800px;margin-left:auto;margin-right:auto}.grid{display:grid;gap:2rem}.grid-2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.grid-3{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}.grid-4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{background:white;border-radius:12px;padding:2rem;box-shadow:0 4px 20px #0000001a;transition:transform .3s ease,box-shadow .3s ease}.card:hover{transform:translateY(-5px);box-shadow:0 8px 30px #00000026}.card-title{font-size:1.5rem;font-weight:600;margin-bottom:1rem;color:#1a1a1a}.card-text{color:#666;line-height:1.6}@media (max-width: 768px){.section{padding:60px 0}.section-title{font-size:2rem}.container{padding:0 15px}.grid{gap:1.5rem}.card{padding:1.5rem}}
