:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh;display:flex;flex-direction:column}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Inter,SF Pro Display,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;line-height:1.6;color:#e8eaed;background:#0a0a0b;background-image:radial-gradient(circle at 25% 25%,#1a1a2e 0%,transparent 50%),radial-gradient(circle at 75% 75%,#16213e 0%,transparent 50%),linear-gradient(135deg,#0f0f23,#1a1a2e,#16213e);background-attachment:fixed;min-height:100vh;font-weight:400;letter-spacing:-.01em}.app-wrapper{position:relative;min-height:100vh}.control-buttons{position:fixed;top:2rem;right:2rem;z-index:1001;display:flex;gap:1rem}.control-btn{background:linear-gradient(135deg,#1e3a8a,#3b82f6);color:#f8fafc;border:1px solid rgba(59,130,246,.2);padding:1.2rem 2rem;border-radius:2.5rem;font-size:1rem;font-weight:600;cursor:pointer;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 .4rem 1.5rem #1e3a8a66,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);position:relative;overflow:hidden}.control-btn:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .6s}.control-btn:hover{transform:translateY(-.2rem);box-shadow:0 .8rem 2.5rem #1e3a8a99,inset 0 1px #fff3;border-color:#3b82f666}.control-btn:hover:before{left:100%}.control-btn:active{transform:translateY(-.1rem)}.control-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.control-btn:disabled:hover{transform:none;box-shadow:0 .4rem 1.5rem #1e3a8a66,inset 0 1px #ffffff1a}.pdf-btn{background:linear-gradient(135deg,#059669,#10b981);box-shadow:0 .4rem 1.5rem #05966966,inset 0 1px #ffffff1a;border-color:#10b98133}.pdf-btn:hover{box-shadow:0 .8rem 2.5rem #05966999,inset 0 1px #fff3;border-color:#10b98166}.pdf-btn:disabled:hover{box-shadow:0 .4rem 1.5rem #05966966,inset 0 1px #ffffff1a}.loading-spinner{display:inline-block;margin-right:.5rem;animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.cv-container{max-width:85%;margin:2% auto;background:#0f0f23f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 2rem 4rem #0006,0 0 0 1px #3b82f61a,inset 0 1px #ffffff0d;border-radius:2rem;overflow:hidden;position:relative;border:1px solid rgba(59,130,246,.1)}.cv-navigation{position:fixed;top:0;left:0;height:100vh;width:6rem;background:linear-gradient(135deg,#1e3a8a,#3b82f6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1000;transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden;box-shadow:.2rem 0 2rem #0000004d,inset -1px 0 #ffffff1a;border-right:1px solid rgba(59,130,246,.2)}.cv-navigation:hover{width:28rem}.nav-trigger{position:absolute;top:2rem;left:0;width:6rem;height:6rem;display:flex;align-items:center;justify-content:center;color:#fff;font-size:2rem;cursor:pointer;transition:all .3s ease}.nav-content{position:absolute;top:0;left:0;width:28rem;height:100%;padding:2rem;opacity:0;transform:translate(-2rem);transition:all .3s ease}.cv-navigation:hover .nav-content{opacity:1;transform:translate(0)}@media (min-width: 769px){.mobile-overlay{display:none!important}}.nav-header{margin-bottom:3rem;padding-top:2rem}.nav-header h3{color:#fff;font-size:1.8rem;font-weight:600;text-align:center}.nav-list{list-style:none;padding:0;margin:0}.nav-item{margin-bottom:.5rem}.nav-link{display:flex;align-items:center;width:100%;padding:1.2rem 1.5rem;background:none;border:none;color:#fff;cursor:pointer;border-radius:1rem;transition:all .3s ease;text-align:left;gap:1.5rem}.nav-link:hover{background:#ffffff1a;transform:translate(.5rem)}.nav-item.active .nav-link{background:#fff3;box-shadow:0 .5rem 1rem #0000001a}.nav-icon{font-size:1.5rem;min-width:2rem;text-align:center}.nav-label{font-size:1.1rem;font-weight:500;white-space:nowrap}.cv-header{background:linear-gradient(135deg,#1e3a8a,#3b82f6,#1e40af);background-size:200% 200%;animation:gradientShift 8s ease-in-out infinite;color:#f8fafc;padding:8% 5%;text-align:center;position:relative;overflow:hidden}.cv-header:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(59,130,246,.3) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(30,58,138,.3) 0%,transparent 50%);pointer-events:none}@keyframes gradientShift{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.profile-section{display:flex;align-items:center;justify-content:center;gap:5%;flex-wrap:wrap}.profile-photo{flex-shrink:0}.profile-photo img{width:22rem;height:22rem;border-radius:50%;border:.6rem solid rgba(59,130,246,.3);object-fit:cover;transition:all .4s cubic-bezier(.4,0,.2,1);box-shadow:0 1rem 3rem #0000004d,0 0 0 2px #ffffff1a,inset 0 0 0 2px #3b82f633;position:relative;z-index:1}.profile-photo img:hover{transform:scale(1.05) rotate(2deg);border-color:#3b82f680;box-shadow:0 1.5rem 4rem #0006,0 0 0 2px #fff3,inset 0 0 0 2px #3b82f666}.profile-info{text-align:left;max-width:60%}.name{font-size:3rem;font-weight:800;margin-bottom:1rem;text-shadow:.2rem .2rem .4rem rgba(0,0,0,.5),0 0 2rem rgba(59,130,246,.3);background:linear-gradient(135deg,#f8fafc,#e2e8f0);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;position:relative;z-index:1}.title{font-size:1.5rem;font-weight:500;margin-bottom:3rem;opacity:.9;color:#cbd5e1;letter-spacing:.02em}.contact-info{display:grid;grid-template-columns:repeat(auto-fit,minmax(25rem,1fr));gap:1.5rem}.contact-item{display:flex;align-items:center;gap:1rem;font-size:1rem;transition:all .3s ease}.contact-item.clickable{cursor:pointer;border-radius:1rem;padding:.5rem;transition:all .3s ease}.contact-item.clickable:hover{background:#ffffff1a;transform:translateY(-.1rem)}.icon{font-size:1.2rem;width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;background:#fff3;border-radius:50%}.cv-section{padding:6% 5%;border-bottom:1px solid rgba(59,130,246,.1);position:relative}.cv-section:last-child{border-bottom:none}.cv-section:before{content:"";position:absolute;inset:0;background:#1e3a8a05;opacity:0;transition:opacity .6s ease;pointer-events:none}.cv-section:hover:before{opacity:1}.section-title{font-size:2.5rem;font-weight:800;margin-bottom:4rem;text-align:center;color:#f8fafc;position:relative;text-shadow:0 .2rem .4rem rgba(0,0,0,.3)}.section-title:after{content:"";position:absolute;bottom:-1rem;left:50%;transform:translate(-50%);width:8rem;height:.4rem;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-radius:.2rem;box-shadow:0 .2rem .8rem #3b82f666}.about-text{font-size:1.2rem;text-align:center;max-width:80%;margin:0 auto;color:#cbd5e1;line-height:1.8;font-weight:400;letter-spacing:.01em}.skills-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(30rem,1fr));gap:4rem;margin-top:4rem}.skill-category{background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);padding:3rem;border-radius:1.5rem;text-align:center;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.skill-category:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f61a,#1e3a8a1a);opacity:0;transition:opacity .4s ease}.skill-category:hover{transform:translateY(-.8rem);box-shadow:0 2rem 4rem #0000004d,0 0 0 1px #3b82f64d,inset 0 1px #ffffff1a;border-color:#3b82f666}.skill-category:hover:before{opacity:1}.skill-category h4{font-size:1.5rem;margin-bottom:2rem;color:#f8fafc;font-weight:700;position:relative;z-index:1}.skill-tags{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center;position:relative;z-index:1}.skill-tag{background:linear-gradient(135deg,#1e3a8a,#3b82f6);color:#f8fafc;padding:.8rem 1.6rem;border-radius:2rem;font-size:.9rem;font-weight:600;transition:all .3s cubic-bezier(.4,0,.2,1);border:1px solid rgba(59,130,246,.3);box-shadow:0 .4rem 1rem #0003,inset 0 1px #ffffff1a;position:relative;overflow:hidden}.skill-tag: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 .6s}.skill-tag:hover{transform:scale(1.05) translateY(-.2rem);box-shadow:0 .8rem 1.5rem #0000004d,inset 0 1px #fff3;border-color:#3b82f680}.skill-tag:hover:before{left:100%}.timeline{position:relative;max-width:80rem;margin:0 auto}.timeline:before{content:"";position:absolute;left:50%;transform:translate(-50%);top:0;bottom:0;width:.4rem;background:linear-gradient(135deg,#1e3a8a,#3b82f6,#1e40af);border-radius:.2rem;box-shadow:0 0 1rem #3b82f666}.timeline-item{position:relative;margin-bottom:5rem;opacity:0;animation:slideInUp .6s ease-out forwards}.timeline-item:nth-child(1){animation-delay:.1s}.timeline-item:nth-child(2){animation-delay:.2s}.timeline-item:nth-child(3){animation-delay:.3s}.timeline-item:nth-child(4){animation-delay:.4s}.timeline-item:nth-child(5){animation-delay:.5s}.timeline-item:nth-child(odd) .timeline-content{left:0;padding-right:5rem}.timeline-item:nth-child(2n) .timeline-content{right:0;padding-left:5rem}.timeline-marker{position:absolute;left:50%;transform:translate(-50%);width:2rem;height:2rem;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-radius:50%;border:.4rem solid rgba(15,15,35,.95);box-shadow:0 0 0 .4rem #3b82f64d,0 0 2rem #3b82f699;z-index:1;transition:all .4s cubic-bezier(.4,0,.2,1)}.timeline-content{position:relative;background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);padding:3rem;border-radius:1.5rem;box-shadow:0 1rem 3rem #0000004d,inset 0 1px #ffffff1a;width:calc(50% - 3rem);transition:all .4s cubic-bezier(.4,0,.2,1);overflow:hidden}.timeline-content:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f60d,#1e3a8a0d);opacity:0;transition:opacity .4s ease}.timeline-content:hover{transform:translateY(-.8rem);border-color:#3b82f666;box-shadow:0 2rem 4rem #0006,inset 0 1px #fff3}.timeline-content:hover:before{opacity:1}.timeline-item.clickable .timeline-content{transition:all .3s ease;border:.2rem solid transparent}.timeline-item.clickable:hover .timeline-content{border-color:#3b82f699;box-shadow:0 2.5rem 5rem #00000080,0 0 0 1px #3b82f666,inset 0 1px #ffffff4d;transform:translateY(-1.2rem)}.timeline-item.clickable:hover .timeline-marker{transform:translate(-50%) scale(1.3);box-shadow:0 0 0 .6rem #3b82f666,0 0 3rem #3b82f6cc}.experience-header{display:flex;align-items:center;gap:1.5rem;margin-bottom:1.5rem}.experience-header.no-logo{gap:0}.experience-header.no-logo .experience-info{padding-left:0}.company-logo{width:5rem;height:5rem;border-radius:.8rem;object-fit:contain;background:#f8f9fa;padding:.5rem;border:.1rem solid #e9ecef;flex-shrink:0}.experience-info{flex:1}.timeline-content h4{font-size:1.5rem;margin-bottom:.5rem;color:#f8fafc;font-weight:700;position:relative;z-index:1}.company{color:#60a5fa;font-weight:600;margin-bottom:1.5rem;position:relative;z-index:1}.responsibilities{list-style:none;padding:0;position:relative;z-index:1}.responsibilities li{margin-bottom:1rem;position:relative;padding-left:2rem;color:#cbd5e1;transition:color .3s ease}.responsibilities li:hover{color:#f8fafc}.responsibilities li:before{content:"✓";position:absolute;left:0;color:#60a5fa;font-weight:700;transition:all .3s ease}.responsibilities li:hover:before{color:#3b82f6;transform:scale(1.2)}.education-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(35rem,1fr));gap:3rem;margin-top:4rem}.education-item{text-align:center;background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);padding:3rem;border-radius:1.5rem;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.education-item:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f60d,#1e3a8a0d);opacity:0;transition:opacity .4s ease}.education-item:hover{transform:translateY(-.8rem);box-shadow:0 2rem 4rem #0000004d,0 0 0 1px #3b82f64d,inset 0 1px #ffffff1a;border-color:#3b82f666}.education-item:hover:before{opacity:1}.education-item h4{font-size:1.8rem;margin-bottom:1rem;color:#f8fafc;font-weight:700;position:relative;z-index:1}.institution{color:#60a5fa;font-weight:600;margin-bottom:1rem;font-size:1.1rem;position:relative;z-index:1}.period{color:#94a3b8;font-weight:500;margin-bottom:1rem;font-size:1rem;position:relative;z-index:1}.degree{color:#cbd5e1;font-size:1rem;position:relative;z-index:1}.projects-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(35rem,1fr));gap:3rem;margin-top:4rem}.project-card{background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);border-radius:1.5rem;padding:3rem;box-shadow:0 1rem 3rem #0000004d,inset 0 1px #ffffff1a;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.project-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f60d,#1e3a8a0d);opacity:0;transition:opacity .4s ease}.project-card:hover{transform:translateY(-1.2rem);box-shadow:0 2.5rem 5rem #0006,0 0 0 1px #3b82f64d,inset 0 1px #fff3;border-color:#3b82f666}.project-card:hover:before{opacity:1}.project-status-badge{position:absolute;top:1.5rem;right:1.5rem;color:#f8fafc;padding:.4rem .8rem;border-radius:1rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;box-shadow:0 .2rem .5rem #0000004d,inset 0 1px #fff3;z-index:2;border:1px solid rgba(255,255,255,.2);transition:all .3s ease}.project-status-badge.tamamlandi,.project-status-badge.completed{background:linear-gradient(135deg,#059669,#10b981);border-color:#10b9814d;box-shadow:0 .2rem .5rem #05966966,inset 0 1px #fff3}.project-status-badge.devam-ediyor,.project-status-badge.ongoing{background:linear-gradient(135deg,#1e3a8a,#3b82f6);border-color:#3b82f64d;box-shadow:0 .2rem .5rem #1e3a8a66,inset 0 1px #fff3}.project-status-badge.beklemede,.project-status-badge.pending{background:linear-gradient(135deg,#d97706,#f59e0b);border-color:#f59e0b4d;box-shadow:0 .2rem .5rem #d9770666,inset 0 1px #fff3}.project-card.tamamlandi,.project-card.completed{border-color:#10b9814d}.project-card.tamamlandi:hover,.project-card.completed:hover{border-color:#10b98180;box-shadow:0 2.5rem 5rem #0006,0 0 0 1px #10b98166,inset 0 1px #fff3}.project-card.beklemede,.project-card.pending{border-color:#f59e0b4d}.project-card.beklemede:hover,.project-card.pending:hover{border-color:#f59e0b80;box-shadow:0 2.5rem 5rem #0006,0 0 0 1px #f59e0b66,inset 0 1px #fff3}.project-card h4{font-size:1.5rem;margin-bottom:1.5rem;color:#f8fafc;padding-right:8rem;font-weight:700;position:relative;z-index:1}.project-description{color:#cbd5e1;line-height:1.6;margin-bottom:2rem;position:relative;z-index:1}.project-tech{display:flex;flex-wrap:wrap;gap:.8rem;position:relative;z-index:1}.tech-tag{background:#3b82f633;color:#60a5fa;padding:.6rem 1.2rem;border-radius:1.5rem;font-size:.85rem;font-weight:500;border:1px solid rgba(59,130,246,.3);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:all .3s ease}.tech-tag:hover{background:#3b82f64d;color:#f8fafc;border-color:#3b82f680;transform:translateY(-.1rem)}.project-results{margin-top:2rem;position:relative;z-index:1}.results-button{background:linear-gradient(135deg,#7c3aed,#a855f7);color:#f8fafc;border:1px solid rgba(168,85,247,.3);padding:.8rem 1.6rem;border-radius:1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 .4rem 1rem #7c3aed66,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:relative;overflow:hidden}.results-button: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 .6s}.results-button:hover{transform:translateY(-.2rem);box-shadow:0 .8rem 1.5rem #7c3aed99,inset 0 1px #fff3;border-color:#a855f780}.results-button:hover:before{left:100%}.results-button:active{transform:translateY(-.1rem)}.results-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:2000;display:flex;align-items:center;justify-content:center;animation:fadeIn .3s ease-out}.results-modal-content{background:#0f0f23f2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(168,85,247,.3);border-radius:1.5rem;max-width:50rem;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 2rem 4rem #00000080,0 0 0 1px #a855f733,inset 0 1px #ffffff1a;animation:slideInUp .4s ease-out}.results-modal-header{display:flex;justify-content:space-between;align-items:center;padding:2rem 2rem 1rem;border-bottom:1px solid rgba(168,85,247,.2)}.results-modal-header h3{color:#f8fafc;font-size:1.8rem;font-weight:700;margin:0}.close-modal{background:none;border:none;color:#94a3b8;font-size:1.5rem;cursor:pointer;padding:.5rem;border-radius:50%;transition:all .3s ease;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem}.close-modal:hover{background:#a855f733;color:#f8fafc;transform:scale(1.1)}.results-modal-body{padding:2rem}.results-description{color:#cbd5e1;font-size:1.1rem;line-height:1.6;margin-bottom:2rem;text-align:center}.results-scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1.5rem}.score-item{background:#a855f71a;border:1px solid rgba(168,85,247,.2);border-radius:1rem;padding:1.5rem;text-align:center;transition:all .3s ease}.score-item:hover{transform:translateY(-.2rem);border-color:#a855f766;box-shadow:0 .5rem 1.5rem #a855f733}.score-label{display:block;color:#a855f7;font-weight:600;font-size:1rem;margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.score-value{display:block;color:#f8fafc;font-size:2rem;font-weight:800;text-shadow:0 .2rem .4rem rgba(0,0,0,.3)}@keyframes slideInUp{0%{opacity:0;transform:translateY(3rem)}to{opacity:1;transform:translateY(0)}}.organizations-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(35rem,1fr));gap:3rem;margin-top:4rem}.organization-card{background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);border-radius:1.5rem;padding:3rem;box-shadow:0 1rem 3rem #0000004d,inset 0 1px #ffffff1a;transition:all .4s cubic-bezier(.4,0,.2,1);text-align:center;position:relative;overflow:hidden}.organization-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f60d,#1e3a8a0d);opacity:0;transition:opacity .4s ease}.organization-card:hover{transform:translateY(-1.2rem);box-shadow:0 2.5rem 5rem #0006,0 0 0 1px #3b82f64d,inset 0 1px #fff3;border-color:#3b82f666}.organization-card:hover:before{opacity:1}.organization-card h4{font-size:1.3rem;margin-bottom:1.5rem;color:#f8fafc;font-weight:700;position:relative;z-index:1}.organization-name{color:#60a5fa;font-weight:600;margin-bottom:1rem;font-size:1.1rem;position:relative;z-index:1}.organization-period{color:#94a3b8;font-weight:500;margin-bottom:1.5rem;font-size:1rem;position:relative;z-index:1}.organization-description{color:#cbd5e1;line-height:1.6;font-size:.95rem;position:relative;z-index:1}.contact-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(25rem,1fr));gap:3rem;margin-top:4rem}.contact-card{background:#1e3a8a1a;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(59,130,246,.2);padding:3rem;border-radius:1.5rem;text-align:center;box-shadow:0 1rem 3rem #0000004d,inset 0 1px #ffffff1a;transition:all .4s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.contact-card:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#3b82f60d,#1e3a8a0d);opacity:0;transition:opacity .4s ease}.contact-card:hover{transform:translateY(-.8rem);border-color:#3b82f666}.contact-card:hover:before{opacity:1}.contact-card.clickable{cursor:pointer}.contact-card.clickable:hover{transform:translateY(-1.2rem);box-shadow:0 2.5rem 5rem #0006,0 0 0 1px #3b82f64d,inset 0 1px #fff3}.contact-icon{font-size:2.5rem;margin-bottom:1.5rem;display:block;position:relative;z-index:1;transition:transform .3s ease}.contact-card:hover .contact-icon{transform:scale(1.1)}.contact-card h4{font-size:1.2rem;margin-bottom:1rem;color:#f8fafc;font-weight:700;position:relative;z-index:1}.contact-card p{color:#cbd5e1;font-size:1rem;position:relative;z-index:1}.cv-footer{background:#0f0f23cc;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid rgba(59,130,246,.2);padding:3rem;text-align:center;color:#94a3b8;font-size:.9rem;position:relative}@media print{.cv-navigation,.control-buttons{display:none!important}.cv-container{max-width:100%!important;margin:0!important;border-radius:0!important;box-shadow:none!important}.cv-section,.timeline-content,.project-card{page-break-inside:avoid}}@media (max-width: 1024px){.cv-container{max-width:94%;margin:1.5rem auto;border-radius:1.5rem}.section-title{font-size:2.2rem}.profile-photo img{width:20rem;height:20rem}.name{font-size:2.7rem}.title{font-size:1.3rem}.timeline:before{left:2rem}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{width:calc(100% - 6rem);left:4rem;right:auto;padding:2rem}.skills-grid,.projects-grid,.education-grid,.organizations-grid,.contact-grid{grid-template-columns:1fr}.control-buttons{top:1.2rem;right:1.2rem;gap:.8rem}}@media (max-width: 768px){.cv-container{max-width:95%;margin:1rem;border-radius:1rem}.control-buttons{top:1rem;right:1rem;flex-direction:column;gap:.5rem}.control-btn{padding:.8rem 1.6rem;font-size:.9rem}.cv-navigation{width:0;height:100vh;position:fixed;top:0;left:0;background:linear-gradient(135deg,#1e3a8a,#3b82f6);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);z-index:1002;transition:width .3s ease;overflow:hidden;border-right:1px solid rgba(59,130,246,.2)}.nav-trigger{position:fixed!important;top:1rem!important;left:1rem!important;width:5rem!important;height:5rem!important;background:linear-gradient(135deg,#1e3a8a,#3b82f6)!important;border:1px solid rgba(59,130,246,.3)!important;border-radius:50%!important;display:flex!important;align-items:center!important;justify-content:center!important;color:#fff!important;font-size:1.5rem!important;cursor:pointer!important;z-index:1003!important;box-shadow:0 .5rem 1.5rem #1e3a8a66,inset 0 1px #ffffff1a!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;transition:all .3s ease!important;opacity:1!important;visibility:visible!important}.cv-navigation.mobile-open{width:75%;box-shadow:.5rem 0 2rem #0000004d}.cv-navigation:hover{width:0}.cv-navigation.mobile-open:hover{width:75%}.nav-content{width:100%;padding:2rem;opacity:0;transform:translate(-100%);transition:all .3s ease}.cv-navigation.mobile-open .nav-content{opacity:1;transform:translate(0)}.nav-trigger{position:fixed;top:1rem;left:1rem;width:5rem;height:5rem;background:linear-gradient(135deg,#1e3a8a,#3b82f6);border:1px solid rgba(59,130,246,.3);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-size:1.5rem;cursor:pointer;z-index:1003;box-shadow:0 .5rem 1.5rem #1e3a8a66,inset 0 1px #ffffff1a;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all .3s ease}.nav-trigger:hover{transform:scale(1.1)!important;box-shadow:0 .8rem 2rem #1e3a8a99,inset 0 1px #fff3!important;border-color:#3b82f680!important}.nav-trigger.active{background:linear-gradient(135deg,#dc2626,#ef4444)!important;border-color:#ef44444d!important;transform:rotate(45deg)!important;box-shadow:0 .5rem 1.5rem #dc262666,inset 0 1px #ffffff1a!important}.nav-header h3{font-size:1.5rem;margin-bottom:2rem}.nav-link{padding:1rem 1.5rem;margin-bottom:.5rem;border-radius:1rem;gap:1rem}.nav-label{font-size:1rem}.mobile-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:#00000080;z-index:1001;opacity:0;visibility:hidden;transition:all .3s ease}.mobile-overlay.open{opacity:1;visibility:visible}.cv-header{padding:5% 3%}.profile-section{flex-direction:column;text-align:center}.profile-info{text-align:center;max-width:100%}.profile-photo img{width:18rem;height:18rem}.name{font-size:2.5rem}.title{font-size:1.3rem}.contact-info{grid-template-columns:1fr}.cv-section{padding:5% 3%}.section-title{font-size:2rem}.skills-grid{grid-template-columns:1fr}.timeline:before{left:2rem}.timeline-item:nth-child(odd) .timeline-content,.timeline-item:nth-child(2n) .timeline-content{width:calc(100% - 6rem);left:4rem;padding:2rem}.timeline-marker{left:2rem}.company-logo{width:4rem;height:4rem}.projects-grid{grid-template-columns:1fr}.project-card{padding:2rem}.project-status-badge{top:1rem;right:1rem;font-size:.7rem;padding:.3rem .6rem}.project-card h4{font-size:1.3rem;padding-right:6rem}.education-grid,.organizations-grid,.contact-grid{grid-template-columns:1fr}.results-modal-content{width:95%;max-height:90vh;margin:1rem}.results-modal-header{padding:1.5rem 1.5rem 1rem}.results-modal-header h3{font-size:1.5rem}.results-modal-body{padding:1.5rem}.results-scores{grid-template-columns:1fr;gap:1rem}.score-item{padding:1rem}.score-value{font-size:1.8rem}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(3rem)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInLeft{0%{opacity:0;transform:translate(-3rem)}to{opacity:1;transform:translate(0)}}@keyframes fadeInRight{0%{opacity:0;transform:translate(3rem)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.8}}.cv-section{animation:fadeInUp .8s ease-out}.cv-section:nth-child(odd){animation:fadeInLeft .8s ease-out}.cv-section:nth-child(2n){animation:fadeInRight .8s ease-out}.skills-grid .skill-category:nth-child(1){animation-delay:.1s}.skills-grid .skill-category:nth-child(2){animation-delay:.2s}.skills-grid .skill-category:nth-child(3){animation-delay:.3s}.projects-grid .project-card:nth-child(1){animation-delay:.1s}.projects-grid .project-card:nth-child(2){animation-delay:.2s}.projects-grid .project-card:nth-child(3){animation-delay:.3s}.projects-grid .project-card:nth-child(4){animation-delay:.4s}.contact-grid .contact-card:nth-child(1){animation-delay:.1s}.contact-grid .contact-card:nth-child(2){animation-delay:.2s}.contact-grid .contact-card:nth-child(3){animation-delay:.3s}.skill-category,.project-card,.education-item,.organization-card,.contact-card{animation:fadeInUp .6s ease-out both}.project-actions{display:flex;gap:.8rem;margin-top:1.2rem;flex-wrap:wrap}.project-button{background:linear-gradient(135deg,#1e3a8a,#3b82f6);color:#f8fafc;border:1px solid rgba(59,130,246,.2);padding:.8rem 1.5rem;border-radius:1.5rem;font-size:.9rem;font-weight:600;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:0 .2rem 1rem #1e3a8a4d,inset 0 1px #ffffff1a;position:relative;overflow:hidden}.project-button:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);transition:left .6s}.project-button:hover{transform:translateY(-.2rem);box-shadow:0 .4rem 1.5rem #1e3a8a80,inset 0 1px #fff3;border-color:#3b82f666}.project-button:hover:before{left:100%}.project-button:active{transform:translateY(-.1rem)}.images-button{background:linear-gradient(135deg,#7c3aed,#a78bfa);border-color:#a78bfa33;box-shadow:0 .2rem 1rem #7c3aed4d,inset 0 1px #ffffff1a}.images-button:hover{box-shadow:0 .4rem 1.5rem #7c3aed80,inset 0 1px #fff3;border-color:#a78bfa66}.images-modal{position:fixed;top:0;left:0;width:100%;height:100%;background:#000000d9;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:2000;animation:fadeIn .3s ease-out;padding:2rem}.images-modal-content{background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:2rem;max-width:90rem;width:100%;max-height:85vh;overflow:hidden;box-shadow:0 2rem 6rem #00000080,0 0 0 1px #ffffff1a;animation:slideUp .4s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}.images-modal-header{padding:2rem 2.5rem 1.5rem;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;align-items:center;background:#0003}.images-modal-header h3{font-size:2rem;font-weight:700;color:#f8fafc;margin:0}.images-modal-body{padding:2rem 2.5rem;overflow-y:auto;flex:1}.images-gallery{display:flex;flex-direction:column;gap:3rem}.gallery-item{background:#ffffff08;border:1px solid rgba(255,255,255,.1);border-radius:1.5rem;overflow:hidden;transition:all .3s ease;animation:fadeInUp .5s ease-out both}.gallery-item:nth-child(1){animation-delay:.1s}.gallery-item:nth-child(2){animation-delay:.2s}.gallery-item:nth-child(3){animation-delay:.3s}.gallery-item:nth-child(4){animation-delay:.4s}.gallery-item:hover{border-color:#3b82f64d;box-shadow:0 1rem 3rem #3b82f633;transform:translateY(-.3rem)}.gallery-image{width:100%;height:auto;display:block;background:#1a1a2e;border-bottom:1px solid rgba(255,255,255,.1);object-fit:contain;max-height:50rem}.gallery-info{padding:2rem}.gallery-title{font-size:1.5rem;font-weight:700;color:#f8fafc;margin-bottom:.8rem}.gallery-description{font-size:1rem;color:#94a3b8;line-height:1.6}.images-modal .close-modal{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#ef4444;width:3.5rem;height:3.5rem;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:1.5rem;transition:all .3s ease;font-weight:300}.images-modal .close-modal:hover{background:#ef444433;border-color:#ef444480;transform:rotate(90deg)}@keyframes slideUp{0%{opacity:0;transform:translateY(3rem)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.images-modal{padding:1rem}.images-modal-content{max-height:90vh;border-radius:1.5rem}.images-modal-header{padding:1.5rem 1.5rem 1rem}.images-modal-header h3{font-size:1.5rem}.images-modal-body{padding:1.5rem}.images-gallery{gap:2rem}.gallery-info{padding:1.5rem}.gallery-title{font-size:1.2rem}.gallery-description{font-size:.9rem}.gallery-image{max-height:30rem}.images-modal .close-modal{width:3rem;height:3rem;font-size:1.3rem}.project-actions{gap:.6rem}.project-button{padding:.7rem 1.2rem;font-size:.85rem;flex:1;min-width:fit-content}}.hero-section{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);border:1px solid rgba(255,255,255,.1);border-radius:3rem;padding:6rem 4rem;text-align:center;position:relative;overflow:hidden;margin-bottom:4rem}.hero-section:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 50%,rgba(124,58,237,.15) 0%,transparent 50%),radial-gradient(circle at 80% 50%,rgba(59,130,246,.15) 0%,transparent 50%);z-index:0}.hero-content{position:relative;z-index:1}.hero-badge{display:inline-flex;align-items:center;gap:.8rem;background:#7c3aed33;border:1px solid rgba(167,139,250,.3);padding:.8rem 2rem;border-radius:2rem;margin-bottom:2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.badge-icon{font-size:1.5rem}.badge-text{font-size:1rem;font-weight:600;color:#a78bfa;text-transform:uppercase;letter-spacing:.05em}.hero-title{font-size:4rem;font-weight:800;color:#f8fafc;margin-bottom:1rem;background:linear-gradient(135deg,#f8fafc,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.5rem;color:#94a3b8;margin-bottom:2rem;font-weight:400}.hero-description{font-size:1.2rem;color:#cbd5e1;max-width:90rem;margin:0 auto 4rem;line-height:1.8}.hero-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(18rem,1fr));gap:2rem;max-width:90rem;margin:0 auto}.stat-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:2rem;padding:2.5rem 2rem;transition:all .3s ease}.stat-card:hover{background:#ffffff14;border-color:#a78bfa66;transform:translateY(-.5rem);box-shadow:0 1rem 3rem #7c3aed4d}.stat-value{font-size:3rem;font-weight:800;color:#a78bfa;margin-bottom:.5rem}.stat-label{font-size:1rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.featured-section{background:linear-gradient(135deg,#7c3aed1a,#3b82f61a);border:2px solid rgba(167,139,250,.3);border-radius:3rem;padding:5rem 4rem;position:relative;overflow:hidden;margin-bottom:4rem}.featured-section:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(124,58,237,.2) 0%,transparent 70%);z-index:0}.featured-section>*{position:relative;z-index:1}.featured-badge-container{margin-bottom:2rem}.featured-badge{display:inline-block;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;padding:.8rem 2rem;border-radius:2rem;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;box-shadow:0 .5rem 2rem #7c3aed66}.featured-title{font-size:3rem;font-weight:800;color:#f8fafc;margin-bottom:1rem;line-height:1.2}.featured-subtitle{font-size:1.3rem;color:#a78bfa;margin-bottom:2rem;font-weight:600}.featured-description{font-size:1.2rem;color:#cbd5e1;line-height:1.8;margin-bottom:3rem}.featured-highlights{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:2rem;padding:3rem;margin-bottom:3rem}.featured-highlights h4{font-size:1.5rem;color:#f8fafc;margin-bottom:1.5rem;font-weight:700}.featured-highlights ul{list-style:none;padding:0}.featured-highlights li{font-size:1.1rem;color:#cbd5e1;padding:1rem 0 1rem 3rem;position:relative;line-height:1.6;border-bottom:1px solid rgba(255,255,255,.05)}.featured-highlights li:last-child{border-bottom:none}.featured-highlights li:before{content:"✓";position:absolute;left:0;top:50%;transform:translateY(-50%);width:2rem;height:2rem;background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.2rem}.featured-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(22rem,1fr));gap:2rem;margin-bottom:3rem}.metric-card{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:2rem;padding:2.5rem;display:flex;align-items:center;gap:2rem;transition:all .3s ease}.metric-card:hover{background:#ffffff14;border-color:#3b82f666;transform:translateY(-.5rem);box-shadow:0 1rem 3rem #3b82f64d}.metric-icon{font-size:3rem;filter:grayscale(0%) brightness(1.2)}.metric-info{flex:1}.metric-value{font-size:2rem;font-weight:800;color:#3b82f6;margin-bottom:.5rem}.metric-label{font-size:.9rem;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.featured-tech{display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:3rem}.tech-badge{background:#7c3aed33;border:1px solid rgba(167,139,250,.3);color:#a78bfa;padding:.8rem 1.8rem;border-radius:1.5rem;font-size:.95rem;font-weight:600;transition:all .3s ease}.tech-badge:hover{background:#7c3aed4d;border-color:#a78bfa80;transform:translateY(-.2rem);box-shadow:0 .5rem 1.5rem #7c3aed4d}.featured-images-button{background:linear-gradient(135deg,#7c3aed,#a78bfa);color:#fff;border:none;padding:1.5rem 3rem;border-radius:2rem;font-size:1.2rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 .5rem 2rem #7c3aed66;position:relative;overflow:hidden}.featured-images-button: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 .6s}.featured-images-button:hover{transform:translateY(-.3rem);box-shadow:0 1rem 3rem #7c3aed99}.featured-images-button:hover:before{left:100%}@media (max-width: 768px){.hero-section{padding:4rem 2rem;border-radius:2rem}.hero-title{font-size:2.5rem}.hero-subtitle{font-size:1.2rem}.hero-description{font-size:1rem;margin-bottom:3rem}.hero-stats{grid-template-columns:1fr;gap:1.5rem}.stat-card{padding:2rem 1.5rem}.stat-value{font-size:2.5rem}.featured-section{padding:3rem 2rem;border-radius:2rem}.featured-title{font-size:2rem}.featured-subtitle{font-size:1.1rem}.featured-description{font-size:1rem}.featured-highlights{padding:2rem}.featured-highlights li{font-size:1rem;padding-left:2.5rem}.featured-metrics{grid-template-columns:1fr;gap:1.5rem}.metric-card{padding:2rem}.metric-value{font-size:1.8rem}.featured-images-button{width:100%;padding:1.2rem 2rem;font-size:1rem}}.combinator-page{min-height:100vh;background:#0f172a;display:flex;flex-direction:column}.obs-disclaimer{padding:.6rem 2rem;font-size:.8rem;line-height:1.5;color:#cbd5f5;background:#0f172af2;border-bottom:1px solid rgba(51,65,85,.9);box-shadow:0 1px #0f172acc}.settings-bar{background:#1e293b;border-bottom:1px solid #334155;padding:1.25rem 2rem;display:flex;justify-content:space-between;align-items:center;position:sticky;top:0;z-index:100}.settings-left .page-title{font-size:1.85rem;font-weight:300;margin:0;color:#f1f5f9;letter-spacing:3px;position:relative;display:inline-block;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;transition:all .5s cubic-bezier(.4,0,.2,1);cursor:default;padding:.75rem 1.5rem;border-radius:8px;background:#0f172a4d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid rgba(148,163,184,.1)}.settings-left .page-title:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#60a5fa,#3b82f6,#2563eb);border-radius:8px 0 0 8px;opacity:0;transform:scaleX(0);transform-origin:left;transition:all .5s cubic-bezier(.4,0,.2,1);box-shadow:0 0 20px #60a5fa80}.settings-left .page-title:hover:before{opacity:1;transform:scaleX(1)}.settings-left .page-title:after{content:"";position:absolute;bottom:0;left:0;width:0;height:2px;background:linear-gradient(90deg,#60a5fa,#3b82f6,#8b5cf6);border-radius:0 0 8px 8px;transition:width .6s cubic-bezier(.4,0,.2,1);box-shadow:0 0 15px #60a5fa99}.settings-left .page-title:hover:after{width:100%}.settings-left .page-title:hover{color:#fff;letter-spacing:3.5px;background:#0f172a80;border-color:#60a5fa4d;transform:translateY(-2px);box-shadow:0 4px 20px #0000004d,0 0 30px #60a5fa33,inset 0 0 20px #60a5fa0d}.settings-left .page-title-wrap{position:relative;display:inline-block}.settings-left .page-title-credit{position:absolute;top:.1rem;right:.75rem;z-index:2;font-size:.9rem;font-weight:500;color:#e2e8f0e6;font-family:Caveat,cursive;transform:rotate(12deg);white-space:nowrap;pointer-events:none}.settings-left{display:flex;flex-direction:column;align-items:flex-start;gap:.75rem}.settings-left-row{display:flex;align-items:center;gap:.75rem;width:100%}.filter-toggle-btn{display:none}.settings-left-top{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.settings-right{display:flex;gap:1.5rem;align-items:center;flex-wrap:wrap}.day-filters{display:flex;align-items:center;gap:.75rem}.day-filters-label{font-size:.875rem;color:#cbd5e1;font-weight:500;white-space:nowrap}.day-filters-buttons{display:flex;gap:.5rem}.day-filter-btn{padding:.4rem .75rem;background:#334155;border:1px solid #475569;border-radius:6px;color:#e2e8f0;font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;min-width:40px;text-align:center}.day-filter-btn:hover{background:#475569;border-color:#64748b;transform:translateY(-1px)}.day-filter-btn.disabled{background:#1e293b;border-color:#ef4444;color:#ef4444;opacity:.7;text-decoration:line-through}.day-filter-btn.disabled:hover{background:#334155;border-color:#f87171;color:#f87171}.day-disabled{background:#1e293b!important;color:#64748b!important;position:relative;opacity:.5}.day-disabled-badge{position:absolute;top:2px;right:4px;color:#ef4444;font-size:.7rem;font-weight:700}.hour-close-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.45rem .85rem;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;position:relative}.hour-close-btn:hover{background:#1e3a8a40;color:#60a5fa;border-color:#60a5fa4d}.hour-close-badge{background:#ef4444;color:#fff;font-size:.7rem;font-weight:600;min-width:18px;height:18px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;padding:0 4px}.hour-close-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1500;display:flex;align-items:center;justify-content:center;padding:1rem;animation:fadeIn .2s ease-out}.hour-close-modal{background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;padding:1.25rem;max-width:95vw;max-height:90vh;overflow:auto;box-shadow:0 20px 50px #00000080;touch-action:pan-y}.hour-close-modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.hour-close-modal-title{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.hour-close-modal-close{width:32px;height:32px;border:none;background:#334155;color:#94a3b8;border-radius:8px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:all .2s}.hour-close-modal-close:hover{background:#475569;color:#f87171}.hour-close-modal-hint{margin:0 0 1rem;font-size:.8rem;color:#94a3b8;line-height:1.4}.hour-close-table-wrap{overflow-x:auto;margin-bottom:1rem;touch-action:none;-webkit-overflow-scrolling:touch}.hour-close-table{width:100%;border-collapse:collapse;font-size:.8rem}.hour-close-th-time,.hour-close-th-day,.hour-close-td-time{padding:.35rem .5rem;text-align:center;border:1px solid #334155;background:#1e293b;color:#94a3b8;font-weight:500}.hour-close-th-time{min-width:48px}.hour-close-th-day{min-width:36px}.hour-close-td-time{background:#0f172a;color:#cbd5e1}.hour-close-cell{width:36px;min-width:36px;height:28px;padding:0;border:1px solid #334155;background:#1e293b;color:transparent;cursor:pointer;transition:background .15s,color .15s;text-align:center;vertical-align:middle;-webkit-user-select:none;user-select:none;touch-action:none;-webkit-tap-highlight-color:transparent}.hour-close-cell:hover{background:#334155}.hour-close-cell-disabled{background:#ef444440;border-color:#ef444480;color:#f87171;font-weight:600}.hour-close-cell-disabled:hover{background:#ef444459}.hour-close-modal-footer{display:flex;justify-content:flex-end;padding-top:.5rem;border-top:1px solid #334155}.hour-close-done-btn{padding:.5rem 1.25rem;border-radius:8px;border:none;background:#3b82f6;color:#fff;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s}.hour-close-done-btn:hover{background:#2563eb}@media (max-width: 640px){.hour-close-modal{padding:1rem}.hour-close-modal-title{font-size:1rem}.hour-close-cell{width:28px;min-width:28px;height:24px;font-size:.75rem}.hour-close-th-day{min-width:28px}}.day-disabled-cell{background:#0a0f1a!important;opacity:.3;pointer-events:none}.overlap-selector{display:flex;align-items:center;gap:.5rem}.overlap-label{font-size:.9rem;font-weight:500;color:#cbd5e1;white-space:nowrap}.overlap-select{background:#1e293b;border:1px solid #334155;border-radius:6px;padding:.5rem .75rem;color:#f1f5f9;font-size:.875rem;cursor:pointer;transition:all .15s;min-width:180px}.overlap-select:hover{border-color:#475569;background:#0f172a}.overlap-select:focus{outline:none;border-color:#3b82f6;box-shadow:0 0 0 2px #3b82f633}.toggle-label{display:flex;align-items:center;gap:.75rem;cursor:pointer;-webkit-user-select:none;user-select:none}.toggle-label input{display:none}.toggle-slider{position:relative;width:44px;height:24px;background:#334155;border-radius:12px;transition:background .2s;flex-shrink:0}.toggle-slider:before{content:"";position:absolute;width:18px;height:18px;background:#64748b;border-radius:50%;top:3px;left:3px;transition:all .2s}.toggle-label input:checked+.toggle-slider{background:#3b82f6}.toggle-label input:checked+.toggle-slider:before{left:23px;background:#fff}.toggle-text{font-size:.9rem;font-weight:500;color:#cbd5e1;min-width:85px}.combinator-content{flex:1;display:flex;gap:1.5rem;padding:1.5rem;overflow:hidden;min-height:0}.schedule-area{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}.schedule-container{flex:1;background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;overflow:auto}.schedule-table{display:flex;flex-direction:column;min-width:1100px}.schedule-header{display:grid;grid-template-columns:70px repeat(7,1fr);gap:1px;margin-bottom:1px}.header-cell{background:#334155;color:#f1f5f9;font-weight:600;font-size:.875rem;padding:.75rem;text-align:center}.schedule-row{display:grid;grid-template-columns:70px repeat(7,1fr);gap:1px;margin-bottom:1px}.time-cell{background:#1e293b;color:#94a3b8;font-weight:500;font-size:.8rem;padding:.5rem;text-align:center;display:flex;align-items:center;justify-content:center;border-right:1px solid #334155}.schedule-cell{background:#0f172a;border:1px solid #1e293b;min-height:50px;position:relative;transition:background .15s}.schedule-cell:hover{background:#1e293b}.schedule-slot{position:absolute;top:1px;left:1px;right:1px;border-radius:4px;padding:.4rem;cursor:default;transition:all .15s;border:1px solid rgba(255,255,255,.1);overflow:hidden;min-height:fit-content;box-sizing:border-box}.schedule-slot:hover{transform:translateY(-1px);border-color:#ffffff4d;box-shadow:0 2px 8px #0000004d;z-index:20!important}.schedule-slot.has-overlap{border:2px solid #ef4444!important;box-shadow:0 0 0 2px #ef44444d}.schedule-slot.overlapping-slot{position:absolute}.slot-hide-btn{position:absolute;top:4px;right:4px;background:#000000b3;border:1px solid rgba(255,255,255,.3);color:#fff;width:22px;height:22px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s;z-index:5}.slot-hide-btn:hover{background:#ef4444;border-color:#ffffff80;transform:scale(1.1)}.overlap-indicator{font-size:.6rem;color:#ef4444;margin-top:.1rem;font-weight:600;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;text-shadow:0 1px 2px rgba(0,0,0,.7)}.combinations-container{display:flex;flex-direction:column;gap:2rem;padding:1rem;overflow-y:auto;flex:1;min-width:0;width:100%}.combinations-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1.5rem}.combinations-loading p{color:#cbd5e1;font-size:1rem;margin:0}.loading-spinner{width:48px;height:48px;border:4px solid #334155;border-top-color:#3b82f6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.combination-table-wrapper{background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem}.combination-header{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #334155;display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}.combination-header h4{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.combination-header-right{display:flex;align-items:center;gap:1rem}@media (max-width: 640px){.combination-header{flex-direction:column;align-items:flex-start;gap:.75rem}.combination-header-right{width:100%;flex-wrap:wrap;justify-content:flex-start;row-gap:.5rem}.combination-courses{width:100%}.combination-badge{font-size:.8rem;padding:.25rem .6rem}}.graph-view-toggle-btn{background:#334155;border:1px solid #475569;border-radius:6px;padding:.5rem .75rem;color:#f1f5f9;font-size:1.2rem;cursor:pointer;transition:all .2s ease;min-width:40px;display:flex;align-items:center;justify-content:center}.graph-view-toggle-btn:hover{background:#475569;border-color:#60a5fa;transform:translateY(-1px)}.faculty-graph-container{background:linear-gradient(135deg,#0f172a,#1e293b);border:1px solid #334155;border-radius:12px;padding:2rem;overflow:auto;position:relative}.graph-legend{display:flex;gap:1.5rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid #334155;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#cbd5e1}.legend-color{width:40px;height:3px;border-radius:2px}.legend-color.flow-forward{background:#60a5fa}.legend-color.flow-backward{background:#f59e0b}.legend-color.flow-interday{background:#8b5cf6}.daily-graphs-container{display:flex;flex-direction:row;gap:1.5rem;overflow-x:auto;padding:1rem 0}.daily-graph-section{background:#0f172a4d;border:1px solid #334155;border-radius:12px;padding:1.5rem;min-width:400px;flex-shrink:0}.daily-graph-header{text-align:center;margin-bottom:1.5rem;padding:.75rem 1rem;background:linear-gradient(135deg,#334155,#475569);border-radius:8px;box-shadow:0 2px 8px #0003}.daily-graph-wrapper{width:100%;height:400px;background:#0f172a33;border-radius:8px;overflow:visible;position:relative}.daily-graph-svg{width:100%;height:100%;background:transparent}.daily-graph-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:400px;color:#94a3b8;opacity:.6}.graph-edge{transition:all .3s ease}.graph-edge:hover{stroke-width:5;opacity:1}.intraday-edge,.interday-edge{stroke-dasharray:none}.faculty-node-group{cursor:pointer;transition:all .3s ease}.faculty-node-group:hover .faculty-circle{r:50;stroke-width:4;filter:drop-shadow(0 0 8px rgba(96,165,250,.6))}.faculty-circle{transition:all .3s ease}.faculty-name-text,.faculty-count-text{pointer-events:none;-webkit-user-select:none;user-select:none}.faculty-graph{display:flex;gap:3rem;min-width:fit-content;position:relative;padding:2rem 0}.graph-background-svg{pointer-events:none}.graph-day-column{position:relative;min-width:200px;display:flex;flex-direction:column;align-items:center;z-index:2}.graph-day-header{font-weight:600;color:#f1f5f9;font-size:1rem;margin-bottom:1.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#334155,#475569);border-radius:10px;white-space:nowrap;text-align:center;box-shadow:0 4px 12px #0000004d;border:1px solid #475569;min-width:180px}.day-name{font-size:1.1rem;margin-bottom:.25rem}.day-course-count{font-size:.75rem;color:#94a3b8;font-weight:400;margin-top:.25rem}.graph-faculties{position:relative;width:100%;min-height:600px;padding:0 2rem}.graph-faculty-node-wrapper{position:relative;width:100%}.graph-faculty-node{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:1rem 1.25rem;border-radius:12px;font-size:.9rem;font-weight:500;text-align:center;position:absolute;box-shadow:0 4px 16px #3b82f666,0 0 0 1px #60a5fa4d;border:2px solid rgba(96,165,250,.6);min-width:180px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:.5rem;transition:all .3s ease;z-index:10}.graph-faculty-node:hover{transform:translateY(-2px) scale(1.02);box-shadow:0 6px 20px #3b82f699,0 0 0 2px #60a5fa80}.graph-faculty-node.has-incoming{border-left:4px solid #10b981}.graph-faculty-node.has-outgoing{border-right:4px solid #60a5fa}.faculty-icon{font-size:1.5rem;margin-bottom:.25rem}.faculty-name{font-weight:600;font-size:1rem;margin-bottom:.25rem}.faculty-course-count{font-size:.75rem;opacity:.9;background:#ffffff26;padding:.25rem .5rem;border-radius:12px;margin-top:.25rem}.transition-badges{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap;justify-content:center}.transition-badge{font-size:.7rem;padding:.25rem .5rem;border-radius:8px;font-weight:600;white-space:nowrap}.transition-badge.incoming{background:#10b98133;color:#10b981;border:1px solid rgba(16,185,129,.4)}.transition-badge.outgoing{background:#60a5fa33;color:#60a5fa;border:1px solid rgba(96,165,250,.4)}.graph-faculty-node.empty{background:#334155;color:#94a3b8;border-color:#475569;box-shadow:none;opacity:.6}.empty-icon{font-size:2rem;margin-bottom:.5rem;opacity:.5}.empty-text{font-size:.85rem}.graph-transition-line{position:absolute;pointer-events:none;z-index:1;overflow:visible}.intraday-line{z-index:2}.interday-line{z-index:1}.transition-line-animated{animation:linePulse 2s ease-in-out infinite;filter:drop-shadow(0 0 3px currentColor)}@keyframes linePulse{0%,to{opacity:.7}50%{opacity:1}}.graph-day-separator{position:absolute;right:-1.5rem;top:50%;transform:translateY(-50%);display:flex;align-items:center;gap:.5rem;z-index:1}.separator-line{width:60px;height:2px;background:linear-gradient(90deg,#60a5fa,transparent);border-radius:1px}.separator-arrow{color:#60a5fa;font-size:1.5rem;font-weight:700;animation:arrowMove 1.5s ease-in-out infinite}@keyframes arrowMove{0%,to{transform:translate(0)}50%{transform:translate(5px)}}.combination-courses{display:flex;flex-wrap:wrap;gap:.5rem}.combination-badge{background:#334155;color:#cbd5e1;padding:.35rem .75rem;border-radius:6px;font-size:.85rem;font-weight:500}.no-combinations{text-align:center;padding:3rem 2rem;color:#94a3b8}.no-combinations p{margin:.5rem 0;font-size:1rem}.no-combinations-hint{font-size:.9rem!important;color:#64748b!important;margin-top:1rem!important}.slot-content{color:#fff;font-size:.8rem;display:flex;flex-direction:column;gap:.1rem;overflow:hidden;height:100%;justify-content:flex-start;min-height:0}.slot-code{font-weight:600;font-size:.8rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.slot-section{font-size:.65rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.slot-instructor,.slot-faculty{font-size:.6rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.8),0 0 3px rgba(0,0,0,.6);font-weight:500}.slot-time{font-size:.6rem;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;margin-top:auto;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.7)}.courses-sidebar{width:340px;background:#1e293b;border:1px solid #334155;border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.sidebar-header{padding:1.25rem 1.25rem 1rem;border-bottom:1px solid #334155;display:flex;flex-direction:column;gap:.75rem}.sidebar-header h3{margin:0;font-size:1.1rem;font-weight:600;color:#f1f5f9}.sidebar-header-actions{display:flex;gap:.5rem;flex-wrap:wrap}.search-section{padding:1rem 1.25rem;border-bottom:1px solid #334155;position:relative}.search-input{width:100%;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:.65rem 2.5rem .65rem .85rem;color:#f1f5f9;font-size:.875rem;transition:border-color .15s}.search-input:focus{outline:none;border-color:#3b82f6}.search-input::placeholder{color:#64748b}.clear-search-btn{position:absolute;right:1.6rem;top:1.35rem;background:#334155;border:none;color:#94a3b8;width:22px;height:22px;border-radius:4px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.clear-search-btn:hover{background:#475569;color:#f1f5f9}.no-results{padding:2rem 1rem;text-align:center;color:#94a3b8}.no-results p{font-size:.9rem;margin-bottom:.5rem;color:#cbd5e1}.no-results span{font-size:.85rem;color:#64748b;font-style:italic}.add-course-btn{background:#10b981;color:#fff;border:none;padding:.5rem 1rem;border-radius:6px;font-weight:500;font-size:.875rem;cursor:pointer;transition:background .15s;flex:1;min-width:120px}.add-course-btn:hover{background:#059669}.bulk-action-btn{background:#334155;color:#f1f5f9;border:none;padding:.5rem .875rem;border-radius:6px;font-weight:500;font-size:.8rem;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:.25rem}.bulk-action-btn:hover{background:#475569}.hide-all-btn{color:#fbbf24}.hide-all-btn:hover{background:#475569;color:#fcd34d}.delete-all-btn{color:#ef4444}.delete-all-btn:hover{background:#dc2626;color:#fff}.courses-list{flex:1;overflow-y:auto;padding:1rem}.course-item{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:1rem;margin-bottom:.75rem;transition:all .15s;cursor:grab}.course-item:active{cursor:grabbing}.course-item:hover{border-color:#475569}.course-item.dragging{opacity:.5;border-color:#3b82f6;cursor:grabbing}.drop-indicator{height:4px;background:#3b82f6;border-radius:2px;margin-bottom:.75rem;box-shadow:0 0 8px #3b82f680;animation:pulse 1s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.course-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem}.course-actions{display:flex;gap:.5rem;align-items:center}.drag-handle{color:#64748b;font-size:1.1rem;cursor:grab;padding:0 .25rem;-webkit-user-select:none;user-select:none;transition:color .15s}.drag-handle:active{cursor:grabbing}.course-item:hover .drag-handle{color:#94a3b8}.add-section-btn-small{background:#10b981;border:none;color:#fff;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:1.1rem;font-weight:600;display:flex;align-items:center;justify-content:center;transition:background .15s}.add-section-btn-small:hover{background:#059669}.course-save-btn{background:#334155;border:none;color:#3b82f6;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:all .15s}.course-save-btn:hover{background:#475569;color:#60a5fa}.course-save-btn.saved{background:#1e3a8a;color:#93c5fd}.course-save-btn.saved:hover{background:#1e40af;color:#bfdbfe}.course-delete-btn{background:#334155;border:none;color:#ef4444;width:26px;height:26px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.course-delete-btn:hover{background:#475569}.course-info{display:flex;align-items:center;gap:.75rem;flex:1}.color-picker-btn{width:32px;height:32px;border-radius:6px;border:2px solid rgba(255,255,255,.2);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;transition:all .15s;flex-shrink:0;position:relative}.color-picker-btn:hover{transform:scale(1.1);border-color:#fff6}.color-picker-btn:active{transform:scale(.95)}.course-code{font-size:.95rem;font-weight:600;color:#f1f5f9}.course-name{font-size:.8rem;color:#94a3b8;margin-top:.15rem}.course-meta{display:flex;gap:.5rem;margin-top:.3rem;font-size:.7rem;color:#64748b}.visibility-btn{background:#334155;border:none;color:#10b981;padding:.35rem .7rem;border-radius:4px;cursor:pointer;font-size:1rem;transition:all .15s;font-weight:600}.visibility-btn:hover{background:#475569}.visibility-btn.hidden{color:#64748b}.instructor-filter{padding:.75rem 1rem;background:#0f172a;border:1px solid #334155;border-radius:6px;margin:.5rem 1rem .5rem 1.5rem}.instructor-filter-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.5rem}.instructor-filter-label{font-size:.8rem;font-weight:500;color:#cbd5e1}.instructor-filter-toggle{background:#334155;border:none;color:#3b82f6;padding:.25rem .5rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .15s}.instructor-filter-toggle:hover{background:#475569;color:#60a5fa}.instructor-filter-list{display:flex;flex-wrap:wrap;gap:.4rem}.instructor-filter-item{background:#334155;border:1px solid #475569;color:#cbd5e1;padding:.3rem .6rem;border-radius:4px;font-size:.7rem;cursor:pointer;transition:all .15s;white-space:nowrap}.instructor-filter-item:hover{background:#475569;border-color:#64748b}.instructor-filter-item.selected{background:#1e40af;border-color:#3b82f6;color:#fff;font-weight:500}.instructor-filter-item.selected:hover{background:#1e3a8a;border-color:#2563eb}.sections-list{display:flex;flex-direction:column;gap:.5rem;padding-left:1.5rem}.section-item{background:#1e293b;border:1px solid #334155;border-radius:4px;padding:.65rem;display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;transition:border-color .15s}.section-item:hover{border-color:#475569}.section-info{display:flex;flex-direction:column;gap:.4rem;flex:1;min-width:0}.section-header-info{display:flex;align-items:center;gap:.5rem;margin-bottom:.2rem}.section-number{font-size:.85rem;font-weight:600;color:#cbd5e1}.section-quota{font-size:.7rem;color:#64748b}.section-times{display:flex;flex-direction:column;gap:.25rem}.time-slot-detail{display:flex;flex-direction:column;gap:.15rem}.section-time-badge{font-size:.7rem;color:#94a3b8;background:#0f172a;padding:.2rem .5rem;border-radius:3px;display:inline-block;width:fit-content}.slot-instructor{font-size:.65rem;color:#fff;padding-left:.5rem}.section-slots{font-size:.7rem;color:#94a3b8}.section-visibility-btn{background:#334155;border:none;color:#10b981;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.85rem;transition:all .15s;flex-shrink:0;font-weight:600}.section-visibility-btn:hover{background:#475569}.section-visibility-btn.hidden{color:#64748b}.section-actions{display:flex;gap:.4rem;flex-shrink:0}.section-delete-btn{background:#334155;border:none;color:#ef4444;padding:.3rem .6rem;border-radius:4px;cursor:pointer;font-size:.9rem;transition:background .15s}.section-delete-btn:hover{background:#475569}.modal-overlay{position:fixed;inset:0;background:#0009;z-index:999;animation:fadeIn .15s ease-out}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #334155}.modal-header h4{font-size:1.1rem;font-weight:600;color:#f1f5f9;margin:0}.modal-close{background:#334155;border:none;color:#ef4444;width:2rem;height:2rem;border-radius:4px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.modal-close:hover{background:#475569}.modal-body{margin-bottom:1rem}.modal-actions{display:flex;gap:.75rem;padding-top:1rem;border-top:1px solid #334155}.edit-section-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;min-width:500px;max-width:600px;max-height:85vh;overflow-y:auto;z-index:1000;box-shadow:0 8px 32px #00000080;animation:fadeIn .2s ease-out}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:#cbd5e1;margin-bottom:.5rem}.form-input,.form-select{width:100%;background:#0f172a;border:1px solid #334155;border-radius:6px;padding:.65rem .85rem;color:#f1f5f9;font-size:.9rem;transition:border-color .15s}.form-input:focus,.form-select:focus{outline:none;border-color:#3b82f6}.form-select{cursor:pointer}.form-section{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:1rem;margin-top:1rem}.form-section-title{font-size:.95rem;font-weight:600;color:#f1f5f9;margin:0 0 1rem}.time-slot-form{margin-bottom:1rem}.form-row{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:.75rem;align-items:end;margin-bottom:1rem}.form-row-full{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:1rem}.add-slot-btn-full{background:#10b981;border:none;color:#fff;width:100%;padding:.65rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:background .15s}.add-slot-btn-full:hover{background:#059669}.slot-form-actions{display:flex;gap:.75rem}.cancel-edit-slot-btn{background:#334155;border:none;color:#f1f5f9;padding:.65rem 1rem;border-radius:6px;cursor:pointer;font-size:.875rem;font-weight:500;transition:background .15s}.cancel-edit-slot-btn:hover{background:#475569}.add-slot-btn-full{flex:1}.added-slots{display:flex;flex-direction:column;gap:.5rem}.added-slot-item{background:#1e293b;border:1px solid #334155;border-radius:4px;padding:.6rem .75rem;display:flex;justify-content:space-between;align-items:flex-start;color:#cbd5e1;font-size:.875rem;gap:.5rem;transition:all .15s;cursor:pointer}.added-slot-item:hover{border-color:#475569;background:#243447}.added-slot-item.editing{border-color:#3b82f6;background:#3b82f61a}.added-slot-main{display:flex;flex-direction:column;gap:.3rem;flex:1}.slot-time-text{font-weight:500;color:#cbd5e1}.slot-detail{font-size:.75rem;color:#94a3b8}.remove-slot-btn{background:#334155;border:none;color:#ef4444;width:24px;height:24px;border-radius:4px;cursor:pointer;font-size:.9rem;display:flex;align-items:center;justify-content:center;transition:background .15s}.remove-slot-btn:hover{background:#475569}.cancel-btn,.save-btn{flex:1;border:none;padding:.75rem 1.5rem;border-radius:6px;font-weight:500;cursor:pointer;transition:all .15s;font-size:.9rem}.cancel-btn{background:#334155;color:#f1f5f9}.cancel-btn:hover{background:#475569}.save-btn{background:#3b82f6;color:#fff}.save-btn:hover{background:#2563eb}.color-picker-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:8px;padding:1.5rem;width:420px;max-height:80vh;overflow-y:auto;z-index:1000;box-shadow:0 8px 32px #00000080;animation:fadeIn .2s ease-out}.color-grid{display:grid;grid-template-columns:repeat(9,1fr);gap:.5rem;margin-top:1rem}.color-option{width:100%;aspect-ratio:1;border:2px solid rgba(255,255,255,.15);border-radius:6px;cursor:pointer;transition:all .15s;position:relative}.color-option:hover{transform:scale(1.15);border-color:#f1f5f9;box-shadow:0 2px 8px #0000004d}.color-option:active{transform:scale(.95)}.schedule-container::-webkit-scrollbar,.courses-list::-webkit-scrollbar{width:6px;height:6px}.schedule-container::-webkit-scrollbar-track,.courses-list::-webkit-scrollbar-track{background:#0f172a}.schedule-container::-webkit-scrollbar-thumb,.courses-list::-webkit-scrollbar-thumb{background:#334155;border-radius:3px}.schedule-container::-webkit-scrollbar-thumb:hover,.courses-list::-webkit-scrollbar-thumb:hover{background:#475569}.saved-schedules-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#e2e8f0;font-size:.875rem;font-weight:500;cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);white-space:nowrap;font-family:inherit}.saved-schedules-btn:hover{background:#1e3a8a59;border-color:#60a5fa59;color:#f1f5f9;box-shadow:0 2px 12px #3b82f633}.saved-schedules-btn:active{transform:scale(.98)}.saved-schedules-icon{font-size:1rem;opacity:.95}.saved-schedules-label{letter-spacing:.02em}.saved-schedules-count{color:#94a3b8;font-weight:600;font-size:.8rem}.saved-schedules-btn:hover .saved-schedules-count{color:#cbd5e1}.tutorial-help-btn{display:flex;align-items:center;justify-content:center;gap:.5rem;width:36px;height:36px;padding:0 8px;border-radius:8px;border:1px solid rgba(148,163,184,.15);background:#0f172a66;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#94a3b8;font-size:1.1rem;font-weight:600;cursor:pointer;overflow:hidden;transition:width .4s ease,background .3s ease,border-color .3s ease,color .25s ease;flex-shrink:0;font-family:inherit;box-sizing:border-box}.tutorial-help-btn.tutorial-hint-open{width:200px;background:#3b82f626;border-color:#60a5fa59;color:#93c5fd;justify-content:center}.tutorial-hint-text{white-space:nowrap;font-size:.9rem;font-weight:500;max-width:0;overflow:hidden;opacity:0;transition:max-width .4s ease,opacity .3s ease}.tutorial-help-btn.tutorial-hint-open .tutorial-hint-text{max-width:160px;opacity:1}.tutorial-help-char{flex-shrink:0;line-height:1}.tutorial-help-btn:hover{background:#1e3a8a40;color:#60a5fa;border-color:#60a5fa4d;transform:scale(1.05)}.download-image-btn{background:#8b5cf61a;border:1px solid rgba(139,92,246,.3);color:#a78bfa;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.download-image-btn:hover{background:#8b5cf633;border-color:#8b5cf680;color:#c4b5fd}.copy-schedule-btn{background:#3b82f61a;border:1px solid rgba(59,130,246,.3);color:#60a5fa;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem;white-space:nowrap}.copy-schedule-btn:hover{background:#3b82f633;border-color:#3b82f680;color:#93c5fd}.save-schedule-btn{background:#10b9811a;border:1px solid rgba(16,185,129,.3);color:#10b981;padding:.4rem .8rem;border-radius:6px;font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;display:flex;align-items:center;gap:.4rem}.save-schedule-btn:hover{background:#10b98133;border-color:#10b98180;transform:translateY(-1px)}.saved-schedules-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:12px;padding:1.5rem;width:550px;max-width:90vw;max-height:80vh;overflow-y:auto;z-index:1100;box-shadow:0 20px 50px #00000080;animation:fadeIn .2s ease-out}.saved-schedules-list{display:flex;flex-direction:column;gap:1rem}.no-schedules{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1rem;color:#94a3b8;text-align:center}.no-schedules-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.saved-schedule-item{background:#0f172a;border:1px solid #334155;border-radius:10px;padding:1.25rem;transition:all .2s}.saved-schedule-item:hover{border-color:#475569;background:#131c31}.saved-schedule-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid #1e293b}.saved-schedule-info{display:flex;flex-direction:column;gap:.25rem}.schedule-title{color:#f1f5f9;font-weight:600;font-size:1rem;display:flex;align-items:center;gap:.5rem}.schedule-title:before{content:"🏷️";font-size:.9rem}.schedule-date{color:#94a3b8;font-size:.8rem;font-weight:400;display:flex;align-items:center;gap:.4rem}.schedule-date:before{content:"📅";font-size:.8rem}.delete-schedule-btn{background:#ef44441a;color:#ef4444;border:none;border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .2s}.delete-schedule-btn:hover{background:#ef4444;color:#fff;transform:scale(1.05)}.saved-schedule-courses{display:flex;flex-wrap:wrap;gap:.6rem}.saved-course-badge{background:#1e293b;border:1px solid;padding:.35rem .75rem;border-radius:8px;display:flex;gap:.5rem;font-size:.85rem;align-items:center;box-shadow:0 2px 4px #0000001a}.saved-course-code{font-weight:600;color:#f1f5f9}.saved-section-num{color:#94a3b8;font-size:.8rem;background:#ffffff1a;padding:.1rem .4rem;border-radius:4px}.saved-schedule-actions{display:flex;gap:.5rem}.view-schedule-btn{background:#3b82f61a;color:#60a5fa;border:none;padding:.35rem .75rem;border-radius:6px;font-size:.8rem;font-weight:500;cursor:pointer;transition:all .2s}.view-schedule-btn:hover{background:#3b82f633;color:#93c5fd}.saved-schedule-preview{margin-top:1rem;padding-top:1rem;border-top:1px solid #1e293b;animation:slideDown .3s ease-out}.mini-schedule-container{display:flex;flex-direction:column;border:1px solid #334155;border-radius:6px;background:#1e293b;overflow-x:auto}.mini-schedule-container .schedule-header{margin-bottom:0;border-bottom:1px solid #334155;display:grid;grid-template-columns:50px repeat(7,1fr)}.mini-schedule-container .header-cell{font-size:.75rem;padding:.5rem;color:#94a3b8;font-weight:600;text-align:center;background:#0f172a}.mini-schedule-container .schedule-row{border-bottom:1px solid #334155;display:grid;grid-template-columns:50px repeat(7,1fr);position:relative}.mini-schedule-container .schedule-row:last-child{border-bottom:none}.mini-schedule-container .time-cell{font-size:.7rem;padding:.5rem;display:flex;align-items:center;justify-content:center;background:#0f172a;color:#94a3b8;border-right:1px solid #334155}.mini-schedule-container .schedule-cell{height:50px;border-right:1px solid #334155;position:relative;background:#1e293b}.mini-schedule-container .schedule-cell:last-child{border-right:none}.mini-slot{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;line-height:1.1;overflow:hidden;box-shadow:0 2px 4px #0006;border-radius:4px;position:absolute;border:1px solid rgba(255,255,255,.1)}.mini-slot .slot-code{font-weight:700;font-size:.7rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;text-shadow:0 1px 2px rgba(0,0,0,.5)}.mini-slot .slot-room{font-size:.6rem;opacity:.9;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%}@media (max-width: 1200px){.combinator-content{flex-direction:column}.courses-sidebar{width:100%;max-height:400px}.schedule-area{min-height:600px}}@media (max-width: 768px){.settings-bar{padding:1rem;flex-direction:column;gap:1rem}.settings-left .page-title{font-size:1.3rem;letter-spacing:1.2px}.settings-left .page-title:after{width:0}.settings-left .page-title:hover:after{width:100%}.settings-left .page-title:hover{letter-spacing:1.5px}.combinator-content{padding:1rem;gap:1rem}.schedule-container{padding:1rem}.courses-sidebar{max-height:300px}.edit-section-modal{min-width:90%;max-width:90%;padding:1.25rem}.form-row{grid-template-columns:1fr;gap:.5rem}.form-row-full{grid-template-columns:1fr}.color-picker-modal{width:90%;max-width:350px}.color-grid{grid-template-columns:repeat(6,1fr);gap:.4rem}}.add-course-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:#1e293b;border:1px solid #334155;border-radius:12px;padding:0;max-width:700px;width:90%;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 20px 25px -5px #0000004d;z-index:1000}.add-course-tabs{display:flex;border-bottom:1px solid #334155;background:#0f172a}.add-course-tab{flex:1;padding:1rem 1.5rem;background:transparent;border:none;color:#94a3b8;font-size:.95rem;font-weight:500;cursor:pointer;transition:all .2s;border-bottom:2px solid transparent}.add-course-tab:hover{color:#cbd5e1;background:#3b82f61a}.add-course-tab.active{color:#3b82f6;border-bottom-color:#3b82f6;background:#1e293b}.add-course-modal .modal-body{padding:1.5rem;overflow-y:auto;flex:1}.manual-add-form,.bulk-add-form{display:flex;flex-direction:column;gap:1.25rem}.bulk-paste-textarea{width:100%;min-height:300px;padding:1rem;background:#0f172a;border:1px solid #334155;border-radius:8px;color:#f1f5f9;font-family:Courier New,monospace;font-size:.875rem;line-height:1.6;resize:vertical;transition:border-color .2s}.bulk-paste-textarea:focus{outline:none;border-color:#3b82f6}.bulk-paste-textarea::placeholder{color:#64748b}.form-note{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:1rem;margin-top:.5rem}.form-note p{margin:0 0 .75rem;color:#cbd5e1;font-size:.9rem;line-height:1.6}.form-note ol{margin:.5rem 0;padding-left:1.5rem;color:#cbd5e1;font-size:.9rem;line-height:1.8}.form-note li{margin-bottom:.5rem}.form-note-warning{color:#fbbf24!important;font-weight:500;margin-top:.75rem!important;margin-bottom:0!important}.color-picker-inline{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.5rem}.color-option-small{width:32px;height:32px;border-radius:6px;border:2px solid transparent;cursor:pointer;transition:all .2s;flex-shrink:0}.color-option-small:hover{transform:scale(1.1);border-color:#64748b}.color-option-small.selected{border-color:#3b82f6;border-width:3px;box-shadow:0 0 0 2px #3b82f64d}@media (max-width: 768px){.add-course-modal{width:95%;max-height:95vh}.add-course-tab{padding:.875rem 1rem;font-size:.875rem}.add-course-modal .modal-body{padding:1.25rem}.bulk-paste-textarea{min-height:250px;font-size:.8rem}}.desktop-banner{background:linear-gradient(135deg,#1e40af,#3b82f6);border-bottom:2px solid #60a5fa;box-shadow:0 4px 12px #0000004d;position:sticky;top:0;z-index:1000;animation:slideDown .4s ease-out}@keyframes slideDown{0%{transform:translateY(-100%);opacity:0}to{transform:translateY(0);opacity:1}}.desktop-banner-content{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.5rem;color:#fff;font-size:.9rem;font-weight:500;position:relative}.desktop-banner-icon{font-size:1.5rem;animation:bounce 2s ease-in-out infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.desktop-banner-text{text-align:center;line-height:1.4}.desktop-banner-close{background:#fff3;border:1px solid rgba(255,255,255,.3);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:1.1rem;transition:all .2s ease;flex-shrink:0}.desktop-banner-close:hover{background:#ffffff4d;transform:scale(1.1)}@media (max-width: 1024px){.settings-bar{flex-direction:column;gap:1rem;padding:1rem}.settings-left{width:100%}.settings-left-row{flex-wrap:wrap}.filter-toggle-btn{display:inline-flex;align-items:center;gap:.35rem;padding:.4rem .75rem;border-radius:8px;border:1px solid rgba(148,163,184,.25);background:#0f172a80;color:#94a3b8;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .2s,color .2s,border-color .2s;flex-shrink:0}.filter-toggle-btn:hover{background:#1e3a8a33;color:#60a5fa;border-color:#60a5fa4d}.filter-toggle-icon{font-size:.7rem;line-height:1}.filter-toggle-text{white-space:nowrap}.settings-bar--filters-collapsed .settings-right{display:none}.settings-left-top{width:100%}.settings-left .page-title{font-size:1.35rem;letter-spacing:2px;padding:.5rem 1rem}.settings-left .page-title-credit{right:.5rem;top:.05rem;font-size:.75rem}.saved-schedules-btn{padding:.45rem .85rem;font-size:.8rem}.saved-schedules-count{font-size:.75rem}.tutorial-help-btn{width:32px;height:32px;padding:0 6px;font-size:1rem}.tutorial-help-btn.tutorial-hint-open{max-width:200px}.tutorial-help-btn.tutorial-hint-open .tutorial-hint-text{max-width:140px}.settings-right{width:100%;justify-content:space-between;gap:.75rem}.day-filters{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.day-filters-buttons{width:100%;justify-content:space-between}.day-filter-btn{flex:1;min-width:auto;padding:.5rem;font-size:.7rem}.overlap-selector{flex-direction:column;align-items:flex-start;gap:.5rem;width:100%}.overlap-select{width:100%;font-size:.8rem}.toggle-label{width:100%;justify-content:space-between}.combinator-content{flex-direction:column;padding:1rem;gap:1rem}.schedule-container{padding:1rem;overflow-x:auto}.courses-sidebar{min-width:100%;max-width:100%}.schedule-table{min-width:900px}.combination-table-wrapper{padding:1rem}.combination-header{flex-direction:column;align-items:flex-start}.desktop-banner-text{font-size:.85rem}}@media (max-width: 640px){.settings-left .page-title{font-size:1.1rem}.settings-left .page-title-credit{right:.4rem;top:0;font-size:.65rem}.settings-left .page-title{letter-spacing:1.5px;padding:.4rem .75rem}.settings-left-top{gap:.4rem}.saved-schedules-btn{padding:.4rem .75rem;font-size:.8rem}.schedule-row{grid-template-columns:60px repeat(7,1fr)}.time-cell{padding:.25rem;font-size:.7rem}.schedule-cell{min-height:38px}.day-filter-btn{font-size:.65rem;padding:.4rem .35rem}.overlap-label,.toggle-text{font-size:.8rem}.desktop-banner-content{padding:.75rem 1rem;font-size:.8rem}.desktop-banner-icon{font-size:1.2rem}.desktop-banner-close{width:24px;height:24px;font-size:1rem}.schedule-table .slot-content{padding:.35rem .4rem}.schedule-table .slot-code,.schedule-table .slot-section,.schedule-table .slot-instructor,.schedule-table .slot-faculty{white-space:normal;font-size:.7rem}.course-header{flex-direction:column;gap:.5rem}.course-actions{width:100%;justify-content:flex-end}.faculty-graph-container{padding:1rem}.graph-legend{gap:.75rem;margin-bottom:1rem;padding-bottom:.75rem}.legend-item{font-size:.75rem}.legend-color{width:30px}.daily-graphs-container{gap:1rem;padding:.5rem 0}.daily-graph-section{padding:1rem;min-width:320px}.daily-graph-header{margin-bottom:1rem;padding:.5rem .75rem}.day-name{font-size:.95rem}.day-course-count{font-size:.7rem}.daily-graph-wrapper,.daily-graph-empty{height:280px}.empty-icon{font-size:1.5rem}.empty-text{font-size:.8rem}}.mobile-fab{display:none;position:fixed;bottom:2rem;right:2rem;width:64px;height:64px;background:linear-gradient(135deg,#3b82f6,#2563eb);border:none;border-radius:50%;color:#fff;font-size:1.75rem;cursor:pointer;box-shadow:0 8px 24px #3b82f680;z-index:1000;transition:all .3s cubic-bezier(.4,0,.2,1);flex-direction:column;align-items:center;justify-content:center;gap:.25rem}.mobile-fab:hover{transform:scale(1.1);box-shadow:0 12px 32px #3b82f699}.mobile-fab:active{transform:scale(.95)}.fab-label{font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px}.mobile-sidebar-overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:#0009;z-index:998;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mobile-sidebar-close{display:none;position:absolute;top:1rem;right:1rem;background:#ef444433;border:1px solid rgba(239,68,68,.4);border-radius:50%;width:36px;height:36px;color:#ef4444;font-size:1.25rem;cursor:pointer;transition:all .2s ease;align-items:center;justify-content:center;z-index:10}.mobile-sidebar-close:hover{background:#ef44444d;transform:scale(1.1)}@media (max-width: 1024px){.mobile-fab{display:flex}.mobile-sidebar-overlay{display:block}.mobile-sidebar-close{display:flex}.courses-sidebar{position:fixed;top:0;right:-100%;height:100vh;width:100%;max-width:100%;background-color:#0f172a;max-height:none!important;z-index:1100;transition:right .3s cubic-bezier(.4,0,.2,1);box-shadow:-4px 0 24px #0000004d;padding-top:0;margin-top:0;overflow-y:auto}.mobile-fab{z-index:1200}.courses-sidebar.mobile-open{right:0}.modal-overlay{z-index:1300}.edit-section-modal,.add-course-modal,.color-picker-modal,.saved-schedules-modal{z-index:1301}.sidebar-header{margin-top:0;padding-top:2rem;padding-bottom:6rem}}@media (max-width: 640px){.courses-sidebar{width:100%;max-width:100%}.mobile-fab{width:56px;height:56px;font-size:1.5rem;bottom:1.5rem;left:1.5rem;right:auto}.fab-label{font-size:.6rem}}.lc-footer{background:#1e293b;border-top:1px solid #334155;padding:1rem 2rem;text-align:center;margin-top:auto}.lc-footer p{margin:0;color:#64748b;font-size:.8rem}.lc-footer-seo{margin-top:.5rem!important;font-size:.75rem!important;color:#475569!important}.lc-footer-link{color:#94a3b8;text-decoration:none;transition:color .2s ease}.lc-footer-link:hover{color:#60a5fa}.coffee-reminder-toast{position:fixed;left:auto;right:1.5rem;bottom:5.5rem;z-index:900;display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:12px;box-shadow:0 8px 24px #00000059;animation:coffeeToastIn .3s ease-out}@keyframes coffeeToastIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.coffee-reminder-text{font-size:.9rem;color:#e2e8f0}.coffee-reminder-close{flex-shrink:0;width:28px;height:28px;border:none;background:#ffffff14;color:#94a3b8;border-radius:8px;font-size:.9rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s}.coffee-reminder-close:hover{background:#ffffff1f;color:#f1f5f9}.lecture-tutorial-overlay{position:fixed;inset:0;z-index:2000;display:flex;align-items:center;justify-content:center;padding:1rem;box-sizing:border-box;opacity:0;visibility:hidden;transition:opacity .28s ease-out,visibility .28s ease-out}.lecture-tutorial-overlay.lecture-tutorial-visible{opacity:1;visibility:visible}.lecture-tutorial-backdrop{position:absolute;inset:0;background:#000000a6;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.lecture-tutorial-modal{position:relative;width:100%;max-width:520px;max-height:calc(100vh - 2rem);background:linear-gradient(160deg,#1e293b,#0f172a);border:1px solid #334155;border-radius:16px;box-shadow:0 24px 48px #0006,0 0 0 1px #ffffff0d;display:flex;flex-direction:column;overflow:hidden;transform:scale(.94) translateY(12px);transition:transform .28s cubic-bezier(.34,1.56,.64,1)}.lecture-tutorial-visible .lecture-tutorial-modal{transform:scale(1) translateY(0)}.lecture-tutorial-close{position:absolute;top:1rem;right:1rem;width:36px;height:36px;border:none;background:#ffffff14;color:#94a3b8;border-radius:10px;font-size:1.1rem;cursor:pointer;z-index:2;display:flex;align-items:center;justify-content:center;transition:color .2s,background .2s,transform .2s}.lecture-tutorial-close:hover{background:#ef444433;color:#f87171;transform:scale(1.05)}.lecture-tutorial-header{padding:1.5rem 1.5rem .75rem;flex-shrink:0}.lecture-tutorial-title{margin:0 0 1rem;font-size:1.35rem;font-weight:600;color:#f1f5f9;text-align:center;letter-spacing:.02em}.lecture-tutorial-dots{display:flex;justify-content:center;gap:.5rem}.lecture-tutorial-dot{width:10px;height:10px;border-radius:50%;border:none;background:#334155;cursor:pointer;padding:0;transition:background .25s ease,transform .2s ease}.lecture-tutorial-dot:hover{background:#475569;transform:scale(1.2)}.lecture-tutorial-dot.active{background:#3b82f6;transform:scale(1.2);box-shadow:0 0 0 2px #3b82f666}.lecture-tutorial-body{flex:1;overflow-y:auto;padding:0 1.5rem 1rem;min-height:0}.lecture-tutorial-slide-content{display:flex;flex-direction:column;gap:1.25rem}.lecture-tutorial-media-stack{display:flex;flex-direction:column;gap:.75rem;width:100%}.lecture-tutorial-media-item{position:relative;width:100%;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #334155}.lecture-tutorial-media-placeholder{position:absolute;inset:0;z-index:1}.lecture-tutorial-media-item.lecture-tutorial-media-video{aspect-ratio:16 / 10}.lecture-tutorial-video{width:100%;height:100%;display:block;object-fit:contain;object-position:center}.lecture-tutorial-media-item.lecture-tutorial-media-image{max-height:180px}.lecture-tutorial-stack-image{width:100%;height:100%;max-height:180px;object-fit:contain;object-position:center;display:block}.lecture-tutorial-image-wrap{position:relative;width:100%;aspect-ratio:16 / 10;border-radius:12px;overflow:hidden;background:#0f172a;border:1px solid #334155}.lecture-tutorial-image{width:100%;height:100%;object-fit:contain;object-position:center;display:block}.lecture-tutorial-placeholder{position:absolute;inset:0;display:none;align-items:center;justify-content:center;background:#0f172a;border-radius:12px}.lecture-tutorial-placeholder.show{display:flex;animation:tutorialPlaceholderIn .3s ease-out}@keyframes tutorialPlaceholderIn{0%{opacity:0}to{opacity:1}}.lecture-tutorial-skeleton{position:relative;width:80%;max-width:240px;display:flex;flex-direction:column;gap:.75rem;overflow:hidden}.lecture-tutorial-skeleton-shimmer{position:absolute;inset:-100%;background:linear-gradient(105deg,transparent 0%,transparent 40%,rgba(255,255,255,.06) 50%,transparent 60%,transparent 100%);background-size:200% 100%;animation:lectureTutorialShimmer 1.5s ease-in-out infinite;pointer-events:none}@keyframes lectureTutorialShimmer{0%{transform:translate(-50%)}to{transform:translate(50%)}}.lecture-tutorial-skeleton-bar{height:12px;border-radius:8px;background:#1e293b;opacity:.9}.lecture-tutorial-skeleton-bar-1{width:100%}.lecture-tutorial-skeleton-bar-2{width:85%;align-self:flex-end}.lecture-tutorial-skeleton-bar-3{width:70%}.lecture-tutorial-text{padding:0 .25rem}.lecture-tutorial-slide-title{margin:0 0 .5rem;font-size:1.15rem;font-weight:600;color:#e2e8f0}.lecture-tutorial-slide-desc{margin:0;font-size:.95rem;line-height:1.6;color:#94a3b8}.lecture-tutorial-icon-list{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:.6rem}.lecture-tutorial-icon-item{display:flex;align-items:center;gap:.75rem;font-size:.95rem;color:#94a3b8;line-height:1.4}.lecture-tutorial-icon-bullet{flex-shrink:0;width:1.75rem;height:1.75rem;display:inline-flex;align-items:center;justify-content:center;font-size:1.1rem;background:#33415599;border-radius:8px}.lecture-tutorial-footer{flex-shrink:0;padding:1rem 1.5rem 1.5rem;border-top:1px solid #334155;display:flex;flex-direction:column;gap:1rem}.lecture-tutorial-checkbox{display:flex;align-items:center;gap:.5rem;cursor:pointer;font-size:.875rem;color:#94a3b8;-webkit-user-select:none;user-select:none}.lecture-tutorial-checkbox input{width:18px;height:18px;accent-color:#3b82f6;cursor:pointer}.lecture-tutorial-actions{display:flex;justify-content:flex-end;gap:.75rem}.lecture-tutorial-btn{padding:.65rem 1.35rem;border-radius:10px;font-size:.95rem;font-weight:500;cursor:pointer;border:none;transition:transform .2s ease,box-shadow .2s ease,background .2s ease}.lecture-tutorial-btn:active{transform:scale(.98)}.lecture-tutorial-btn-prev{background:#334155;color:#e2e8f0}.lecture-tutorial-btn-prev:hover{background:#475569;box-shadow:0 2px 8px #0003}.lecture-tutorial-btn-next{background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;box-shadow:0 2px 10px #3b82f659}.lecture-tutorial-btn-next:hover{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 16px #3b82f673;transform:translateY(-1px)}.lecture-tutorial-slide-content{animation:tutorialSlideIn .3s ease-out}@keyframes tutorialSlideIn{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@media (max-width: 640px){.lecture-tutorial-overlay{padding:.75rem .75rem 5.5rem;align-items:flex-end;justify-content:flex-end}.lecture-tutorial-modal{max-height:calc(92vh - 4rem);border-radius:16px 16px 0 0;margin-bottom:0}.lecture-tutorial-header{padding:1.25rem 1.25rem .5rem}.lecture-tutorial-title{font-size:1.2rem}.lecture-tutorial-body{padding:0 1.25rem 1rem}.lecture-tutorial-image-wrap,.lecture-tutorial-media-item.lecture-tutorial-media-video{aspect-ratio:4 / 3}.lecture-tutorial-media-item.lecture-tutorial-media-image,.lecture-tutorial-stack-image{max-height:140px}.lecture-tutorial-placeholder-icon{font-size:2.5rem}.lecture-tutorial-slide-title{font-size:1.05rem}.lecture-tutorial-slide-desc{font-size:.9rem}.lecture-tutorial-footer{padding:1rem 1.25rem 1.25rem;padding-bottom:max(1.25rem,env(safe-area-inset-bottom,0px) + 1rem)}.lecture-tutorial-close{top:.75rem;right:.75rem;width:32px;height:32px}}@media (min-width: 641px){.lecture-tutorial-modal{max-height:85vh}}.splash-screen{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:#0f172aa6;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);animation:splash-overlay-in .5s ease-out;transition:opacity .5s ease-out,visibility .5s ease-out}.splash-screen--out{opacity:0;visibility:hidden;pointer-events:none}@keyframes splash-overlay-in{0%{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}to{opacity:1;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}}.splash-content{display:flex;flex-direction:column;align-items:center;gap:2.5rem;padding:2rem;max-width:90%;animation:splash-content-in .6s cubic-bezier(.34,1.56,.64,1) .15s both}.splash-screen--out .splash-content{animation:splash-content-out .4s ease-in forwards}@keyframes splash-content-in{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes splash-content-out{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(.98) translateY(-8px)}}.splash-logo-wrap{position:relative;display:inline-block}.splash-logo{font-size:2rem;font-weight:300;margin:0;color:#f1f5f9;letter-spacing:4px;position:relative;display:inline-block;text-transform:uppercase;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;padding:.75rem 1.5rem;border-radius:8px;background:#0f172a80;border:1px solid rgba(148,163,184,.15);box-shadow:0 4px 24px #0000004d;animation:splash-logo-glow 2.5s ease-in-out infinite}.splash-logo:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:linear-gradient(180deg,#60a5fa,#3b82f6,#2563eb);border-radius:8px 0 0 8px;box-shadow:0 0 20px #60a5fa80}@keyframes splash-logo-glow{0%,to{box-shadow:0 4px 24px #0000004d,0 0 #60a5fa00}50%{box-shadow:0 4px 24px #0000004d,0 0 30px #60a5fa26}}.splash-credit{position:absolute;top:.15rem;right:.9rem;font-size:.95rem;font-weight:500;color:#e2e8f0d9;font-family:Caveat,cursive;transform:rotate(12deg);white-space:nowrap;pointer-events:none}.splash-slogan{margin:0;font-size:1rem;line-height:1.6;color:#94a3b8;text-align:center;max-width:420px;font-weight:500;animation:splash-slogan-in .5s ease-out .35s both}.splash-screen--out .splash-slogan{animation:none;opacity:0;transition:opacity .3s ease-out}@keyframes splash-slogan-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@media (min-width: 640px){.splash-logo{font-size:2.25rem;letter-spacing:5px}.splash-slogan{font-size:1.1rem;max-width:480px}}
