@import"https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800&display=swap";:root{--color-primary: #2563EB;--color-primary-hover: #1D4ED8;--color-primary-light: #EFF6FF;--color-accent: #4F46E5;--color-bg: #F8FAFC;--color-surface: #FFFFFF;--color-text-main: #0F172A;--color-text-muted: #64748B;--color-border: #E2E8F0;--shadow-xs: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-sm: 0 4px 6px -1px rgb(0 0 0 / .05), 0 2px 4px -2px rgb(0 0 0 / .05);--shadow-md: 0 10px 15px -3px rgb(0 0 0 / .08), 0 4px 6px -4px rgb(0 0 0 / .04);--shadow-lg: 0 20px 25px -5px rgb(0 0 0 / .08), 0 8px 10px -6px rgb(0 0 0 / .04);--shadow-brand: 0 0 20px -5px rgba(37, 99, 235, .4);--shadow-3d-soft: 0 25px 50px -12px rgba(0, 0, 0, .15);--shadow-3d-float: 0 15px 35px -5px rgba(37, 99, 235, .15), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--radius-full: 9999px;--radius-xl: 20px;--radius-lg: 16px;--radius-md: 12px;--radius-sm: 8px;--font-sans: "Outfit", sans-serif;--ease-squish: cubic-bezier(.5, -.1, .1, 1.5);--ease-smooth: cubic-bezier(.4, 0, .2, 1);--ease-out-back: cubic-bezier(.34, 1.56, .64, 1)}*{margin:0;padding:0;box-sizing:border-box}body{font-family:var(--font-sans);background-color:var(--color-bg);background-image:radial-gradient(at 0% 0%,rgba(37,99,235,.05) 0px,transparent 50%),radial-gradient(at 100% 0%,rgba(79,70,229,.05) 0px,transparent 50%);background-attachment:fixed;color:var(--color-text-main);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}#app{max-width:1600px;margin:0 auto;width:100%;min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4{font-weight:700;letter-spacing:-.025em;line-height:1.1;color:var(--color-text-main)}p{line-height:1.6;color:var(--color-text-muted)}.text-center{text-align:center}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--color-primary);color:#fff;padding:.75rem 1.75rem;font-size:1rem;font-weight:600;border:none;border-radius:8px;cursor:pointer;transition:all .3s var(--ease-smooth);box-shadow:var(--shadow-brand),var(--shadow-sm);position:relative;overflow:hidden}.btn:hover{transform:translateY(-2px);background:var(--color-primary-hover);box-shadow:0 15px 30px -5px #2563eb80}.btn:active{transform:translateY(0)}.btn-secondary{background:#fff;color:var(--color-text-main);border:1px solid var(--color-border);box-shadow:var(--shadow-xs)}.btn-secondary:hover{background:var(--color-primary-light);border-color:var(--color-primary);color:var(--color-primary);box-shadow:var(--shadow-sm)}.btn-small{padding:.4rem 1rem;font-size:.875rem}.card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;padding:20px;box-shadow:0 1px 3px #0000000f;transition:all .3s var(--ease-smooth)}.card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);border-color:#2563eb33}.flex-center{display:flex;align-items:center;justify-content:center}.flex-between{display:flex;align-items:center;justify-content:space-between}.grid-cols-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;align-items:stretch}.grid-cols-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;align-items:stretch}.input-group label{display:block;font-size:.875rem;font-weight:500;margin-bottom:.5rem;color:var(--color-text-main)}.input-group input,.input-group select{width:100%;padding:.75rem 1rem;border-radius:8px;border:1px solid var(--color-border);background:#fff;font-family:inherit;font-size:1rem;transition:all .2s}.input-group input:focus,.input-group select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 4px var(--color-primary-light)}.semester-selector-container{position:relative;z-index:100}.semester-dropdown{position:absolute;top:100%;left:auto;right:0;width:220px;margin-top:8px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);display:none;flex-direction:column;padding:5px;overflow:hidden;animation:fadeUp .15s ease-out}.semester-dropdown.show{display:flex}.sem-option{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;background:transparent;border:none;color:var(--color-text-main);font-size:.9rem;border-radius:var(--radius-sm);cursor:pointer;transition:background .15s;text-align:left}.sem-option:hover{background:var(--color-bg)}.sem-option.active{background:var(--color-primary-light);color:var(--color-primary);font-weight:600}.sem-option.add-new{color:var(--color-primary);font-weight:500;margin-top:4px;border-top:1px solid #f1f5f9;border-radius:0 0 var(--radius-sm) var(--radius-sm)}.sem-option.add-new:hover{background:#f1f5f9}.landing-wrapper{overflow-x:hidden;position:relative}.bg-blob{position:absolute;border-radius:50%;filter:blur(80px);opacity:.4;z-index:-1;animation:floatBlob 20s infinite alternate ease-in-out}.blob-1{width:600px;height:600px;background:radial-gradient(circle,#2563eb33,#fff0 70%);top:-100px;right:-200px}.blob-2{width:500px;height:500px;background:radial-gradient(circle,#4f46e526,#fff0 70%);bottom:20%;left:-150px;animation-delay:-5s}.landing-header{height:80px;padding:0 2rem;display:flex;justify-content:space-between;align-items:center;position:fixed;top:0;left:0;width:100%;z-index:50;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid transparent;transition:all .3s ease}.landing-header.scrolled{background:#ffffff1a;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(255,255,255,.2);box-shadow:0 4px 30px #0000000d}.logo-brand{font-size:1.25rem;font-weight:800;letter-spacing:-.03em;display:flex;align-items:center;gap:.75rem;color:var(--color-text-main)}.hero-section{padding:180px 1rem 8rem;text-align:center;max-width:1400px;margin:0 auto;position:relative;perspective:2000px}.badge-pill{display:inline-block;background:#eff6ffcc;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);color:var(--color-primary);padding:.5rem 1.25rem;border-radius:var(--radius-full);font-size:.875rem;font-weight:600;margin-bottom:1.5rem;border:1px solid rgba(37,99,235,.15);box-shadow:0 4px 6px -1px #2563eb1a;animation:fadeUp .6s ease-out}.hero-title{font-size:4rem;line-height:1.1;margin-bottom:1.5rem;color:var(--color-text-main);animation:fadeUp .8s ease-out;letter-spacing:-.03em}.hero-title span{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-accent) 100%);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent;position:relative;display:inline-block;padding-bottom:.2em;padding-right:.3em}.hero-subtitle{font-size:1.25rem;max-width:600px;margin:0 auto 3rem;color:var(--color-text-muted);animation:fadeUp 1s ease-out}.scene-3d-container{width:100%;max-width:900px;height:500px;margin:2rem auto 0;position:relative;transform-style:preserve-3d;animation:fadeUp 1.2s ease-out}.laptop-group{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotateX(10deg) rotateY(0);transform-style:preserve-3d;width:600px;height:360px;transition:transform .1s ease-out}.laptop-shadow{position:absolute;bottom:-60px;left:10%;width:80%;height:40px;background:#000;border-radius:50%;filter:blur(40px);opacity:.3;transform:rotateX(90deg) translateZ(-50px);animation:shadowPulse 6s infinite ease-in-out}.laptop-base{position:absolute;bottom:0;width:640px;height:30px;left:-20px;background:#e2e8f0;border-radius:0 0 24px 24px;transform:rotateX(90deg) translateZ(-15px);box-shadow:inset 0 -4px 6px #0000001a}.laptop-base:after{content:"";position:absolute;top:0;left:45%;width:10%;height:4px;background:#cbd5e1;border-radius:0 0 4px 4px}.laptop-screen-frame{position:absolute;width:600px;height:380px;background:#0f172a;border-radius:16px;padding:12px;transform-origin:bottom;transform:rotateX(0);box-shadow:0 20px 40px #0003;overflow:hidden}.laptop-screen-frame:before{content:"";position:absolute;top:0;left:0;right:0;height:100%;background:linear-gradient(135deg,rgba(255,255,255,.1) 0%,transparent 40%);pointer-events:none;z-index:10;border-radius:16px}.laptop-screen{width:100%;height:100%;background:#fff;border-radius:8px;overflow:hidden;position:relative;display:flex;flex-direction:column}.mock-toolbar{height:40px;background:#f8fafc;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;padding:0 1rem;gap:8px}.mock-dot{width:10px;height:10px;border-radius:50%}.mock-dot.r{background:#ef4444}.mock-dot.y{background:#f59e0b}.mock-dot.g{background:#22c55e}.mock-content{flex:1;padding:1.5rem;background:#f1f5f9;display:grid;grid-template-columns:2fr 1fr;gap:1rem}.mock-main-card{background:#fff;border-radius:12px;padding:1rem;box-shadow:0 2px 4px #0000000d}.mock-side-col{display:flex;flex-direction:column;gap:1rem}.mock-small-card{background:#fff;border-radius:12px;padding:1rem;height:80px;box-shadow:0 2px 4px #0000000d}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.skeleton{background:#e5e7eb;border-radius:var(--radius-sm);animation:pulse 1.5s ease-in-out infinite}.sk-line{height:8px;background:#e5e7eb;border-radius:4px;margin-bottom:8px;animation:pulse 1.5s ease-in-out infinite}.sk-line.w-50{width:50%}.sk-line.w-75{width:75%}.sk-title{height:12px;background:#d1d5db;width:40%;margin-bottom:16px;border-radius:4px;animation:pulse 1.5s ease-in-out infinite}.floating-element{position:absolute;background:#ffffffe6;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-3d-float);border-radius:16px;z-index:20;transform-style:preserve-3d;backface-visibility:hidden}.float-attendance{top:20%;left:-12%;padding:1rem;width:140px;text-align:center;animation:float 6s ease-in-out infinite}.float-calendar{bottom:15%;right:-10%;width:160px;padding:1rem;animation:float 7s ease-in-out infinite reverse;animation-delay:1s}.float-cgpa{top:10%;right:-5%;padding:.75rem 1.25rem;display:flex;align-items:center;gap:.5rem;border-radius:99px;font-weight:700;font-size:1.1rem;color:var(--color-text-main);animation:float 5s ease-in-out infinite;animation-delay:2s}.cgpa-val{color:var(--color-primary)}.ring-chart{position:relative;width:60px;height:60px;border-radius:50%;background:conic-gradient(var(--color-primary) 75%,#e2e8f0 0);margin:0 auto .5rem;box-shadow:inset 0 2px 4px #0000001a}.ring-chart:after{content:"75%";position:absolute;top:6px;right:6px;bottom:6px;left:6px;background:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:var(--color-text-main);box-shadow:0 2px 4px #0000000d}.feature-grid{padding:2rem 2rem 6rem;position:relative;z-index:10;max-width:1200px;margin:0 auto}.feature-card-3d{background:#fff;border-radius:var(--radius-xl);padding:2.5rem;border:1px solid var(--color-border);transition:all .4s cubic-bezier(.175,.885,.32,1.275);position:relative;overflow:hidden;height:100%;display:flex;flex-direction:column}.feature-card-3d:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,rgba(37,99,235,.03) 0%,transparent 100%);opacity:0;transition:opacity .3s}.feature-card-3d:hover{transform:translateY(-10px) rotateX(2deg);box-shadow:0 20px 40px -5px #2563eb26;border-color:#2563eb4d}.feature-card-3d:hover:before{opacity:1}.fc-icon{width:56px;height:56px;background:var(--color-primary-light);color:var(--color-primary);border-radius:16px;display:grid;place-items:center;margin-bottom:1.5rem;transition:transform .4s var(--ease-squish);font-size:1.5rem}.feature-card-3d:hover .fc-icon{transform:translateY(-5px) scale(1.05);background:var(--color-primary);color:#fff;box-shadow:0 10px 20px -5px #2563eb66}.fc-title{font-size:1.25rem;font-weight:700;margin-bottom:.75rem;color:var(--color-text-main)}.fc-desc{color:var(--color-text-muted);font-size:.95rem;line-height:1.6}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-15px)}to{transform:translateY(0)}}@keyframes floatBlob{0%{transform:translate(0) scale(1)}to{transform:translate(40px,-40px) scale(1.1)}}@keyframes shadowPulse{0%{opacity:.3;transform:rotateX(90deg) translateZ(-50px) scale(1)}50%{opacity:.2;transform:rotateX(90deg) translateZ(-50px) scale(.9)}to{opacity:.3;transform:rotateX(90deg) translateZ(-50px) scale(1)}}@media (max-width: 1024px){.hero-title{font-size:3rem}.scene-3d-container{transform:scale(.8);height:400px}.floating-element{display:none}}@media (max-width: 768px){.hero-section{perspective:none;padding-top:60px}.scene-3d-container{display:none}.feature-card-3d{transform:none!important;box-shadow:var(--shadow-sm)!important}.feature-card-3d:hover{transform:none!important}.grid-cols-4{grid-template-columns:1fr}}.auth-container{display:flex;align-items:center;justify-content:center;min-height:80vh;padding:2rem}.auth-box{width:100%;max-width:400px;padding:3rem;background:#fff;border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.app-layout{display:grid;grid-template-columns:280px 1fr;min-height:100vh}.sidebar{background:#fff;border-right:1px solid var(--color-border);padding:2rem;position:sticky;top:0;height:100vh;overflow-y:auto;display:flex;flex-direction:column}.content-area{padding:2.5rem;width:100%}.nav-links{list-style:none;display:flex;flex-direction:column;gap:8px}.nav-links li{display:flex;align-items:center;gap:12px;padding:12px 16px;border-radius:var(--radius-md);color:var(--color-text-muted);font-weight:500;cursor:pointer;transition:all .2s}.nav-links li:hover{background:var(--color-bg);color:var(--color-text-main)}.nav-links li.active{background:var(--color-primary-light);color:var(--color-primary);box-shadow:0 4px 12px #2563eb1a}@keyframes fadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeUp .5s ease-out forwards}.hidden{display:none!important}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-top:1rem}.cal-day{aspect-ratio:1;border-radius:var(--radius-md);display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:500;cursor:pointer;font-size:.9rem;background:#f8fafc;position:relative;border:1px solid transparent;transition:all .2s}.cal-day:hover{background:#e2e8f0}.cal-day.holiday{background:#fef2f2;color:#ef4444;border-color:#fecaca}.sim-active{border-color:var(--color-accent)!important;background:#eff6ff}.cal-dot{width:6px;height:6px;border-radius:50%;margin-top:4px}.dot-present{background:#10b981}.dot-absent{background:#ef4444}.cal-day.disabled{opacity:.3;pointer-events:none;background:#f1f5f9}.tt-grid-container{display:grid;grid-template-columns:60px repeat(6,1fr);gap:1px;background-color:var(--color-border);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto}.tt-header-cell{background-color:#f8fafc;padding:10px;text-align:center;font-weight:600;color:var(--color-text-muted);font-size:.875rem}.tt-time-col{background-color:#fff;padding:10px;text-align:center;font-size:.75rem;color:var(--color-text-muted);font-weight:500;border-right:1px solid var(--color-border);display:flex;align-items:center;justify-content:center;height:60px}.tt-day-col{background-color:#fff;position:relative}.tt-class-card{position:absolute;left:4px;right:4px;padding:6px 8px;font-size:.75rem;border-radius:6px;overflow:hidden;cursor:pointer;box-shadow:0 1px 2px #0000001a;border-left:3px solid var(--color-primary);background:#eff6ff;color:var(--color-text-main);z-index:10;transition:all .2s}.tt-class-card:hover{z-index:20;box-shadow:var(--shadow-md);transform:scale(1.02)}.tt-class-card strong{display:block;color:var(--color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:.8rem;margin-bottom:2px}.tt-class-meta{font-size:.7rem;color:var(--color-text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.analytics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:2rem}.stat-card{background:#fff;padding:1.5rem;border-radius:var(--radius-lg);border:1px solid var(--color-border);display:flex;flex-direction:column}.stat-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;color:var(--color-text-muted);font-size:.9rem;font-weight:500}.stat-value{font-size:2.25rem;font-weight:700;color:var(--color-text-main);letter-spacing:-.02em}.progress-container{height:6px;background:#f1f5f9;border-radius:99px;overflow:hidden;margin-top:1rem}.progress-bar{height:100%;background:var(--color-primary);border-radius:99px;transition:width .8s var(--ease-squish)}.empty-state{text-align:center;padding:4rem 2rem;color:var(--color-text-muted);background:#f8fafc;border-radius:var(--radius-lg);border:2px dashed #cbd5e1}.empty-icon{font-size:3.5rem;margin-bottom:1rem;color:#94a3b8;display:block}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;opacity:1;transition:opacity .2s}.modal-backdrop.hidden{opacity:0;pointer-events:none;display:none!important}.modal-content{background:#fff;padding:2rem;border-radius:var(--radius-xl);width:90%;max-width:400px;box-shadow:0 20px 25px -5px #0000001a,0 8px 10px -6px #0000001a;animation:zoomIn .2s ease-out;text-align:center}.modal-actions{display:flex;justify-content:center;gap:1rem;margin-top:1.5rem}@keyframes zoomIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.what-if-panel{background:linear-gradient(135deg,#1e1b4b,#312e81);color:#fff;padding:1rem 2rem;border-radius:var(--radius-lg);display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;box-shadow:0 10px 15px -3px #312e8133;border:1px solid rgba(255,255,255,.1);position:relative;overflow:hidden;animation:slideUp .3s ease-out}.what-if-panel:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 70% 50%,rgba(99,102,241,.15),transparent 50%);pointer-events:none}.what-if-tag{background:#ffffff1a;border:1px solid rgba(255,255,255,.2);padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.75rem}.attendance-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:16px;width:100%}@media (max-width: 639.98px){.attendance-grid{grid-template-columns:1fr}}
