.sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background:var(--gradient-sidebar);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-normal);overflow-y:auto}.sidebar-header{padding:var(--space-lg) var(--space-lg) var(--space-md);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-md)}.sidebar-logo{width:44px;height:44px;border-radius:var(--radius-full);object-fit:cover}.sidebar-brand{font-family:var(--font-display);font-weight:700;font-size:1.1rem;color:var(--text-primary);line-height:1.2}.sidebar-brand span{display:block;font-size:.7rem;font-weight:500;color:var(--color-orange);text-transform:uppercase;letter-spacing:.1em;margin-top:2px}.sidebar-nav{flex:1;padding:var(--space-md) 0}.nav-section{padding:var(--space-sm) var(--space-lg);margin-top:var(--space-md)}.nav-section-title{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--text-muted);margin-bottom:var(--space-sm)}.nav-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-sm) var(--space-lg);color:var(--text-secondary);font-size:.9rem;font-weight:500;border-radius:var(--radius-sm);margin:2px var(--space-sm);transition:all var(--transition-fast);cursor:pointer;position:relative}.nav-item:hover{background:var(--bg-glass);color:var(--text-primary)}.nav-item.active{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-glow-blue)}.nav-item .nav-icon{font-size:1.1rem;width:24px;text-align:center;flex-shrink:0}.nav-item .nav-badge{margin-left:auto;background:var(--color-orange);color:#fff;font-size:.65rem;font-weight:700;padding:2px 7px;border-radius:10px;min-width:20px;text-align:center}.nav-item.locked{opacity:.45;pointer-events:none}.nav-item.locked:after{content:"🔒";margin-left:auto;font-size:.8rem}.sidebar-theme-toggle{padding:var(--space-sm) var(--space-lg)}.theme-toggle-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);font-size:.85rem;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}.theme-toggle-btn:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-medium)}.theme-icon{font-size:1.1rem}.sidebar-user{padding:var(--space-md) var(--space-lg);border-top:1px solid var(--border-subtle);display:flex;align-items:center;gap:var(--space-md)}.user-avatar{width:36px;height:36px;border-radius:var(--radius-full);background:var(--gradient-accent);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:.85rem;color:#fff;flex-shrink:0}.user-info{flex:1;overflow:hidden}.user-name{font-size:.85rem;font-weight:600;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.user-level{font-size:.7rem;color:var(--color-orange);font-weight:500}.sidebar-toggle{display:none;position:fixed;top:var(--space-md);left:var(--space-md);z-index:200;background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-primary);width:44px;height:44px;border-radius:var(--radius-sm);cursor:pointer;font-size:1.3rem;align-items:center;justify-content:center;transition:all var(--transition-fast)}.sidebar-toggle:hover{background:var(--bg-card-hover)}.sidebar-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#0009;z-index:90;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media(max-width:1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-toggle{display:flex}.sidebar-overlay.active{display:block}}.card{background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-xl);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);transition:all var(--transition-normal);position:relative;overflow:hidden}.card:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--border-medium),transparent)}.card:hover{border-color:var(--border-medium);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.card-accent{border-color:var(--border-accent)}.card-accent:before{background:linear-gradient(90deg,transparent,var(--color-orange),transparent)}.card-clickable{cursor:pointer}.card-clickable:hover{background:var(--bg-glass-hover)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-lg);border:none;border-radius:var(--radius-sm);font-family:var(--font-body);font-size:.9rem;font-weight:600;cursor:pointer;transition:all var(--transition-fast);text-decoration:none;white-space:nowrap}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover{box-shadow:var(--shadow-glow-blue);transform:translateY(-1px);color:#fff}.btn-accent{background:var(--gradient-accent);color:#fff;box-shadow:var(--shadow-sm)}.btn-accent:hover{box-shadow:var(--shadow-glow-orange);transform:translateY(-1px);color:#fff}.btn-outline{background:transparent;color:var(--text-secondary);border:1px solid var(--border-medium)}.btn-outline:hover{background:var(--bg-glass);color:var(--text-primary);border-color:var(--color-medium-blue)}.btn-ghost{background:transparent;color:var(--text-secondary);padding:var(--space-sm)}.btn-ghost:hover{background:var(--bg-glass);color:var(--text-primary)}.btn-lg{padding:var(--space-md) var(--space-xl);font-size:1rem;border-radius:var(--radius-md)}.btn-sm{padding:6px var(--space-md);font-size:.8rem}.btn-icon{width:40px;height:40px;padding:0;border-radius:var(--radius-sm)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.progress-bar{width:100%;height:8px;background:var(--bg-elevated);border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--gradient-accent);border-radius:4px;transition:width .8s cubic-bezier(.4,0,.2,1);position:relative}.progress-bar-fill:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);background-size:200% 100%;animation:shimmer 2s infinite}.progress-bar-lg{height:12px;border-radius:6px}.progress-bar-lg .progress-bar-fill{border-radius:6px}.progress-circle{position:relative;display:inline-flex;align-items:center;justify-content:center}.progress-circle svg{transform:rotate(-90deg)}.progress-circle-bg{fill:none;stroke:var(--bg-elevated);stroke-width:6}.progress-circle-fill{fill:none;stroke:url(#progressGradient);stroke-width:6;stroke-linecap:round;transition:stroke-dashoffset 1s cubic-bezier(.4,0,.2,1)}.progress-circle-text{position:absolute;font-family:var(--font-display);font-weight:800;color:var(--text-primary)}.progress-circle-text span{font-size:.5em;color:var(--text-secondary);font-weight:500}.badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:20px;font-size:.75rem;font-weight:600}.badge-blue{background:#4fa8d126;color:var(--color-medium-blue);border:1px solid rgba(79,168,209,.3)}.badge-orange{background:#f5a62326;color:var(--color-orange);border:1px solid rgba(245,166,35,.3)}.badge-purple{background:#5b52a326;color:var(--color-lavender);border:1px solid rgba(91,82,163,.3)}.badge-success{background:#22c55e26;color:#22c55e;border:1px solid rgba(34,197,94,.3)}.medal-card{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm);padding:var(--space-lg);background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);text-align:center;transition:all var(--transition-normal);min-width:120px}.medal-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-glow-orange);border-color:var(--border-accent)}.medal-card.earned{border-color:var(--color-orange)}.medal-card.locked{opacity:.4;filter:grayscale(100%)}.medal-icon{font-size:2.5rem;animation:float 3s ease-in-out infinite}.medal-card.earned .medal-icon{animation:float 3s ease-in-out infinite,glow 2s ease-in-out infinite}.medal-name{font-size:.8rem;font-weight:600;color:var(--text-primary)}.medal-desc{font-size:.7rem;color:var(--text-muted)}.module-card{display:flex;flex-direction:column;background:var(--gradient-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:all var(--transition-normal);cursor:pointer;position:relative;overflow:hidden}.module-card-image{width:100%;aspect-ratio:16 / 9;overflow:hidden;position:relative;background:var(--bg-card)}.module-card-image img{width:100%;height:100%;object-fit:cover;display:block;transition:transform var(--transition-normal)}.module-card:hover .module-card-image img{transform:scale(1.05)}.module-card-image-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-size:3rem;background:linear-gradient(135deg,var(--bg-card) 0%,var(--bg-card-hover) 100%);color:var(--text-muted)}.module-card-body{padding:var(--space-lg);display:flex;align-items:flex-start;gap:var(--space-lg)}.module-card:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:0 4px 4px 0;transition:background var(--transition-fast)}.module-card.level-1:before{background:var(--color-medium-blue)}.module-card.level-2:before{background:var(--color-purple)}.module-card.level-3:before{background:var(--color-orange)}.module-card:hover{border-color:var(--border-medium);transform:translate(4px);box-shadow:var(--shadow-md)}.module-card.locked{opacity:.5;pointer-events:none}.module-card.locked:after{content:"🔒 Bloqueado — Complete o quiz anterior";position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;background:#0b1426b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);font-size:.9rem;color:var(--text-muted);font-weight:500;border-radius:var(--radius-lg)}.module-number{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:1.25rem;color:#fff;flex-shrink:0}.level-1 .module-number{background:var(--gradient-primary)}.level-2 .module-number{background:var(--gradient-blue-purple)}.level-3 .module-number{background:var(--gradient-accent)}.module-info{flex:1}.module-title{font-size:1.1rem;font-weight:700;margin-bottom:4px}.module-subtitle{font-size:.85rem;color:var(--text-secondary);margin-bottom:var(--space-md)}.module-meta{display:flex;align-items:center;gap:var(--space-lg);font-size:.8rem;color:var(--text-muted)}.module-meta-item{display:flex;align-items:center;gap:4px}.lesson-list{display:flex;flex-direction:column;gap:2px}.lesson-item{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);border-radius:var(--radius-sm);transition:all var(--transition-fast);cursor:pointer;color:var(--text-secondary)}.lesson-item:hover{background:var(--bg-glass);color:var(--text-primary)}.lesson-item.active{background:var(--bg-glass-hover);color:var(--text-primary);border-left:3px solid var(--color-medium-blue)}.lesson-item.completed{color:var(--text-muted)}.lesson-item.completed .lesson-check{color:#22c55e}.lesson-check{width:22px;height:22px;border:2px solid var(--border-medium);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;font-size:.7rem;flex-shrink:0;transition:all var(--transition-fast)}.lesson-item.completed .lesson-check{background:#22c55e;border-color:#22c55e;color:#fff}.lesson-title-text{flex:1;font-size:.9rem;font-weight:500}.lesson-duration{font-size:.75rem;color:var(--text-muted)}.toast-container{position:fixed;top:var(--space-xl);right:var(--space-xl);z-index:1000;display:flex;flex-direction:column;gap:var(--space-sm)}.toast{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md) var(--space-lg);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:slideInRight var(--transition-normal) ease;min-width:300px;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.toast-icon{font-size:1.3rem;flex-shrink:0}.toast-content{flex:1}.toast-title{font-weight:600;font-size:.9rem}.toast-message{font-size:.8rem;color:var(--text-secondary)}.toast-close{background:none;border:none;color:var(--text-muted);cursor:pointer;font-size:1.1rem;padding:4px}.toast-success{border-left:3px solid #22c55e}.toast-badge{border-left:3px solid var(--color-orange)}.toast-info{border-left:3px solid var(--color-medium-blue)}.toast-error{border-left:3px solid #ef4444}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000b3;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:500;display:none;align-items:center;justify-content:center;padding:var(--space-xl);animation:fadeIn var(--transition-fast) ease}.modal-overlay.active{display:flex}.modal{background:var(--bg-secondary);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:var(--space-2xl);max-width:500px;width:100%;animation:scaleIn var(--transition-bounce) forwards;position:relative}.modal-close{position:absolute;top:var(--space-md);right:var(--space-md);background:none;border:none;color:var(--text-muted);font-size:1.3rem;cursor:pointer;padding:4px}.empty-state{text-align:center;padding:var(--space-3xl);color:var(--text-muted)}.empty-state-icon{font-size:3rem;margin-bottom:var(--space-md);opacity:.5}.empty-state-text{font-size:1rem;margin-bottom:var(--space-lg)}.tag{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border-radius:12px;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em}.tag-level-1{background:#1565a033;color:var(--color-medium-blue)}.tag-level-2{background:#5b52a333;color:var(--color-lavender)}.tag-level-3{background:#f5a62333;color:var(--color-orange)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-sm{gap:var(--space-sm)}.gap-md{gap:var(--space-md)}.gap-lg{gap:var(--space-lg)}.gap-xl{gap:var(--space-xl)}.text-center{text-align:center}.text-muted{color:var(--text-muted)}.text-accent{color:var(--text-accent)}.font-display{font-family:var(--font-display)}.mt-md{margin-top:var(--space-md)}.mt-lg{margin-top:var(--space-lg)}.mt-xl{margin-top:var(--space-xl)}.mb-md{margin-bottom:var(--space-md)}.mb-lg{margin-bottom:var(--space-lg)}.w-full{width:100%}
