.progress-bar-container{display:flex;flex-direction:column;gap:var(--spacing-xs);width:100%}.progress-bar-label{font-size:.875rem;color:var(--text-secondary)}.progress-bar-track{height:12px;background:var(--bg-secondary);border-radius:6px;overflow:hidden;box-shadow:inset 0 1px 3px #0000001a}.progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:6px;transition:width .3s ease}.progress-bar-text{font-size:.875rem;color:var(--text-secondary);text-align:right}.day-card{display:flex;flex-direction:column;padding:var(--spacing-md);background:var(--card-bg);border-radius:var(--radius-md);border:2px solid var(--border);text-decoration:none;color:var(--text);transition:all .2s ease;cursor:pointer}.day-card:hover:not(.locked){border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.day-card.completed{border-color:var(--success);background:var(--success-bg)}.day-card.locked{opacity:.6;cursor:not-allowed;filter:grayscale(.5)}.day-card.current{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-transparent)}.day-card-header{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm)}.day-card-number{font-size:.75rem;font-weight:600;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px}.day-card-check{color:var(--success);font-size:1rem}.day-card-lock{font-size:.875rem}.day-card-badge{margin-left:auto;padding:2px 8px;background:var(--primary);color:#fff;font-size:.625rem;font-weight:600;border-radius:var(--radius-full);text-transform:uppercase}.day-card-title{font-size:1rem;font-weight:600;margin:0 0 var(--spacing-sm) 0;line-height:1.3}.day-card-meta{display:flex;gap:var(--spacing-xs);font-size:.75rem;color:var(--text-muted);margin-top:auto}.trophy-card{display:flex;flex-direction:column;align-items:center;padding:var(--spacing-md);background:var(--card-bg);border-radius:var(--radius-lg);border:2px solid var(--border);text-decoration:none;color:var(--text);transition:all .2s ease;text-align:center;cursor:pointer;width:100%}button.trophy-card{font-family:inherit;font-size:inherit}.trophy-card:hover.unlocked{border-color:var(--primary);transform:translateY(-4px);box-shadow:var(--shadow-lg)}.trophy-card.locked{opacity:.7;cursor:default}.trophy-card.locked .trophy-card-icon{filter:blur(4px) grayscale(1)}.trophy-card.ai-trophy{border-color:var(--ai-accent);background:linear-gradient(135deg,var(--card-bg) 0%,var(--ai-bg) 100%)}.trophy-card-icon{width:80px;height:80px;display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-sm);position:relative}.trophy-card-icon svg{width:100%;height:100%}.trophy-card-icon img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-md)}.trophy-locked-icon{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-md)}.lock-icon{font-size:2rem;filter:none}.trophy-card-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.trophy-category{display:inline-block;padding:2px 8px;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.5px;border-radius:var(--radius-full);margin:0 auto}.trophy-name{font-size:1rem;font-weight:600;margin:0}.trophy-description{font-size:.75rem;color:var(--text-secondary);margin:0;line-height:1.4}.trophy-hint{font-size:.75rem;color:var(--text-muted);margin:0;font-style:italic}.trophy-date{font-size:.625rem;color:var(--text-muted);margin-top:var(--spacing-xs)}.modal-overlay{position:fixed;inset:0;background:#0009;display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--spacing-md);animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--card-bg);border-radius:var(--radius-lg);max-width:500px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .2s ease}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--border)}.modal-title{margin:0;font-size:1.25rem;font-weight:600}.modal-close{background:none;border:none;font-size:1.5rem;color:var(--text-secondary);cursor:pointer;padding:0;line-height:1;transition:color .2s}.modal-close:hover{color:var(--text)}.modal-body{padding:var(--spacing-lg)}.modal-actions{display:flex;gap:var(--spacing-sm);justify-content:flex-end;padding:var(--spacing-md) var(--spacing-lg);border-top:1px solid var(--border)}.toast-container{position:fixed;bottom:var(--spacing-lg);right:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-sm);z-index:1100;max-width:400px}.toast{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md) var(--spacing-lg);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);animation:toastSlideIn .3s ease;color:#fff}@keyframes toastSlideIn{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}.toast-exit{animation:toastSlideOut .3s ease forwards}@keyframes toastSlideOut{0%{transform:translate(0);opacity:1}to{transform:translate(100%);opacity:0}}.toast-success{background:var(--success)}.toast-error{background:var(--error)}.toast-info{background:var(--primary)}.toast-icon{font-size:1.25rem;font-weight:700}.toast-message{flex:1;font-size:.875rem}.toast-close{background:none;border:none;color:#fff;opacity:.7;font-size:1.25rem;cursor:pointer;padding:0;line-height:1;transition:opacity .2s}.toast-close:hover{opacity:1}@media(max-width:480px){.toast-container{left:var(--spacing-md);right:var(--spacing-md);bottom:var(--spacing-md);max-width:none}}.confetti-container{position:fixed;inset:0;pointer-events:none;z-index:2000;overflow:hidden}.confetti-piece{position:absolute;top:-20px;border-radius:2px;animation:confetti-fall 3s ease-out forwards}@keyframes confetti-fall{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(100vh) rotate(720deg);opacity:0}}.confetti-piece:nth-child(odd){animation:confetti-fall-alt 3s ease-out forwards}@keyframes confetti-fall-alt{0%{transform:translateY(0) rotate(0) translate(0);opacity:1}50%{transform:translateY(50vh) rotate(360deg) translate(50px)}to{transform:translateY(100vh) rotate(720deg) translate(-50px);opacity:0}}.nav-header{position:sticky;top:0;z-index:100;background:var(--bg);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm)}.nav-container{display:flex;align-items:center;justify-content:space-between;max-width:1200px;margin:0 auto;padding:var(--spacing-sm) var(--spacing-lg)}.nav-logo{display:flex;align-items:center;gap:var(--spacing-sm);text-decoration:none;color:var(--text);font-weight:700;font-size:1.125rem}.nav-logo-icon{font-size:1.5rem}.nav-links{display:flex;align-items:center;gap:var(--spacing-md)}.nav-link{text-decoration:none;color:var(--text-secondary);font-size:.875rem;font-weight:500;padding:var(--spacing-xs) var(--spacing-sm);border-radius:var(--radius-sm);transition:all .2s}.nav-link:hover{color:var(--text);background:var(--bg-secondary)}.nav-link.active{color:var(--primary);background:var(--primary-bg)}.nav-theme-toggle{background:none;border:none;font-size:1.25rem;cursor:pointer;padding:var(--spacing-xs);border-radius:var(--radius-sm);transition:background .2s}.nav-theme-toggle:hover{background:var(--bg-secondary)}.nav-menu-toggle{display:none;background:none;border:none;cursor:pointer;padding:var(--spacing-sm);z-index:101}.hamburger{display:block;width:24px;height:2px;background:var(--text);position:relative;transition:background .2s}.hamburger:before,.hamburger:after{content:"";position:absolute;width:24px;height:2px;background:var(--text);transition:transform .2s}.hamburger:before{top:-8px}.hamburger:after{top:8px}.hamburger.open{background:transparent}.hamburger.open:before{transform:rotate(45deg) translate(5px,6px)}.hamburger.open:after{transform:rotate(-45deg) translate(5px,-6px)}@media(max-width:768px){.nav-menu-toggle{display:block}.nav-links{position:fixed;inset:0;background:var(--bg);flex-direction:column;justify-content:center;gap:var(--spacing-lg);transform:translate(100%);transition:transform .3s ease;z-index:100}.nav-links.open{transform:translate(0)}.nav-link{font-size:1.25rem;padding:var(--spacing-sm) var(--spacing-md)}.nav-logo-text{display:none}}.home-page{max-width:900px;margin:0 auto;padding:var(--spacing-lg)}.hero-section{text-align:center;padding:var(--spacing-xl) 0}.hero-title{font-size:2rem;margin:0 0 var(--spacing-sm);background:linear-gradient(135deg,var(--primary),var(--secondary));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-subtitle{font-size:1.125rem;color:var(--text-secondary);margin:0}.stats-section{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.stat-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.stat-icon{font-size:2rem}.stat-content{display:flex;flex-direction:column}.stat-label{font-size:.75rem;color:var(--text-muted)}.section-title{font-size:1.25rem;margin:0 0 var(--spacing-md)}.progress-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.week-indicators{display:flex;gap:var(--spacing-sm);margin-top:var(--spacing-md);justify-content:center}.week-indicator{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-full);font-size:.75rem;font-weight:600;color:var(--text-secondary);transition:all .2s}.week-indicator.complete{background:var(--success);color:#fff}.next-lesson-section{margin-bottom:var(--spacing-xl)}.next-lesson-card{padding:var(--spacing-xl);background:linear-gradient(135deg,var(--primary-bg) 0%,var(--secondary-bg) 100%);border-radius:var(--radius-lg);border:2px solid var(--primary);text-align:center}.next-lesson-badge{display:inline-block;padding:var(--spacing-xs) var(--spacing-md);background:var(--primary);color:#fff;font-size:.75rem;font-weight:600;border-radius:var(--radius-full);margin-bottom:var(--spacing-md)}.next-lesson-title{font-size:1.5rem;margin:0 0 var(--spacing-sm)}.next-lesson-description{color:var(--text-secondary);margin:0 0 var(--spacing-lg)}.complete-section{margin-bottom:var(--spacing-xl)}.complete-card{padding:var(--spacing-xl);background:linear-gradient(135deg,var(--success-bg) 0%,var(--warning-bg) 100%);border-radius:var(--radius-lg);border:2px solid var(--success);text-align:center}.complete-icon{font-size:4rem;display:block;margin-bottom:var(--spacing-md)}.complete-card h2{margin:0 0 var(--spacing-sm)}.complete-card p{color:var(--text-secondary);margin:0 0 var(--spacing-lg);max-width:500px;margin-left:auto;margin-right:auto}.complete-actions{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.quick-links-section{margin-bottom:var(--spacing-xl)}.quick-links-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--spacing-md)}.quick-link{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);text-decoration:none;color:var(--text);transition:all .2s}.quick-link:hover{border-color:var(--primary);transform:translateY(-2px);box-shadow:var(--shadow-md)}.quick-link-icon{font-size:2rem}.quick-link-text{font-size:.875rem;font-weight:500;text-align:center}@media(max-width:480px){.hero-title{font-size:1.5rem}.stat-card{padding:var(--spacing-sm)}.stat-icon{font-size:1.5rem}.stat-value{font-size:1.25rem}}.plan-page{max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}.plan-header{text-align:center;margin-bottom:var(--spacing-xl)}.plan-header h1{margin:0 0 var(--spacing-sm)}.plan-subtitle{color:var(--text-secondary);margin:0}.week-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);overflow-x:auto;padding-bottom:var(--spacing-sm);-webkit-overflow-scrolling:touch}.week-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);background:var(--card-bg);border:2px solid var(--border);border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;transition:all .2s;font-family:inherit}.week-tab:hover{border-color:var(--primary)}.week-tab.active{background:var(--primary-bg);border-color:var(--primary);color:var(--primary)}.week-tab.complete .week-tab-progress{color:var(--success)}.week-tab-name{font-weight:600;font-size:.875rem}.week-tab-progress{font-size:.625rem;color:var(--text-muted)}.week-info{text-align:center;margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--primary-bg);border-radius:var(--radius-md)}.week-info h2{margin:0 0 var(--spacing-xs);color:var(--primary)}.week-info p{margin:0;color:var(--text-secondary)}.lessons-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.legend-section{padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.legend-section h3{margin:0 0 var(--spacing-md);font-size:1rem}.legend-items{display:flex;gap:var(--spacing-lg);flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;color:var(--text-secondary)}.legend-indicator{width:16px;height:16px;border-radius:var(--radius-sm);border:2px solid var(--border)}.legend-indicator.current{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-transparent)}.legend-indicator.completed{border-color:var(--success);background:var(--success-bg)}.legend-indicator.locked{opacity:.5;filter:grayscale(.5)}@media(max-width:640px){.week-tabs{justify-content:flex-start}.lessons-grid{grid-template-columns:1fr}}.lesson-page{max-width:800px;margin:0 auto;padding:var(--spacing-lg)}.lesson-not-found{text-align:center;padding:var(--spacing-xl)}.back-link{display:inline-block;color:var(--text-secondary);text-decoration:none;font-size:.875rem;margin-bottom:var(--spacing-md);transition:color .2s}.back-link:hover{color:var(--primary)}.lesson-header{margin-bottom:var(--spacing-lg)}.lesson-meta{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-sm);flex-wrap:wrap}.lesson-badge{padding:var(--spacing-xs) var(--spacing-sm);background:var(--primary);color:#fff;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.lesson-week{font-size:.875rem;color:var(--text-muted)}.lesson-completed-badge{padding:var(--spacing-xs) var(--spacing-sm);background:var(--success);color:#fff;font-size:.75rem;font-weight:600;border-radius:var(--radius-full)}.lesson-title{font-size:1.75rem;margin:0}.lesson-tabs{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg);border-bottom:2px solid var(--border);padding-bottom:var(--spacing-sm)}.lesson-tab{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;cursor:pointer;color:var(--text-secondary);font-family:inherit;font-size:.875rem;font-weight:500;border-radius:var(--radius-md);transition:all .2s}.lesson-tab:hover{background:var(--bg-secondary);color:var(--text)}.lesson-tab.active{background:var(--primary-bg);color:var(--primary)}.tab-time{font-size:.625rem;color:var(--text-muted)}.lesson-section{padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.lesson-section h2{margin:0 0 var(--spacing-md);font-size:1.25rem}.theory-content{margin-bottom:var(--spacing-lg)}.theory-content p{margin:0 0 var(--spacing-md);line-height:1.7;color:var(--text-secondary)}.theory-content p:last-child{margin-bottom:0}.build-steps{margin:0 0 var(--spacing-lg);padding-left:var(--spacing-lg)}.build-step{margin-bottom:var(--spacing-md);line-height:1.6;color:var(--text-secondary)}.build-step::marker{color:var(--primary);font-weight:600}.checklist-intro{color:var(--text-secondary);margin:0 0 var(--spacing-md)}.checklist{display:flex;flex-direction:column;gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}.checklist-item{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);cursor:pointer;transition:background .2s}.checklist-item:hover{background:var(--bg-tertiary)}.checklist-item input{position:absolute;opacity:0;cursor:pointer}.checkmark{flex-shrink:0;width:20px;height:20px;border:2px solid var(--border);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;transition:all .2s}.checklist-item input:checked~.checkmark{background:var(--success);border-color:var(--success)}.checklist-item input:checked~.checkmark:after{content:"✓";color:#fff;font-size:.75rem}.checklist-text{flex:1;line-height:1.4}.trophy-preview{margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background:var(--warning-bg);border-radius:var(--radius-md);border:1px solid var(--warning)}.trophy-preview h3{margin:0 0 var(--spacing-sm);font-size:.875rem;color:var(--warning)}.trophy-preview-card{display:flex;align-items:center;gap:var(--spacing-md)}.trophy-preview-icon{width:48px;height:48px}.trophy-preview-icon svg{width:100%;height:100%}.trophy-preview-info{display:flex;flex-direction:column;gap:2px}.trophy-preview-name{font-weight:600}.trophy-preview-desc{font-size:.75rem;color:var(--text-secondary)}.complete-btn{width:100%}.completed-message{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--success-bg);border-radius:var(--radius-md);color:var(--success);font-weight:500}.completed-icon{font-size:1.5rem}.lesson-nav{display:flex;justify-content:space-between;margin-top:var(--spacing-xl);gap:var(--spacing-md)}.lesson-nav-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-md);text-decoration:none;color:var(--text);transition:all .2s}.lesson-nav-link:hover:not(.disabled){border-color:var(--primary)}.lesson-nav-link.disabled{opacity:.5;cursor:not-allowed}.nav-arrow{font-size:1.25rem;color:var(--primary)}.nav-info{display:flex;flex-direction:column;gap:2px}.nav-label{font-size:.625rem;color:var(--text-muted);text-transform:uppercase}.nav-title{font-size:.875rem;font-weight:500}@media(max-width:640px){.lesson-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch}.lesson-tab{flex-shrink:0}.lesson-nav{flex-direction:column}}.trophy-room-page{max-width:1200px;margin:0 auto;padding:var(--spacing-lg)}.trophy-room-header{text-align:center;margin-bottom:var(--spacing-xl)}.trophy-room-header h1{margin:0 0 var(--spacing-sm)}.trophy-room-subtitle{color:var(--text-secondary);margin:0}.trophy-room-controls{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.search-box{position:relative;display:flex;align-items:center}.search-icon{position:absolute;left:var(--spacing-md);pointer-events:none}.search-input{width:100%;padding:var(--spacing-sm) var(--spacing-lg);padding-left:calc(var(--spacing-lg) + var(--spacing-md));border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font-size:1rem;font-family:inherit;transition:border-color .2s}.search-input:focus{outline:none;border-color:var(--primary)}.search-input::placeholder{color:var(--text-muted)}.search-clear{position:absolute;right:var(--spacing-sm);background:none;border:none;font-size:1.25rem;color:var(--text-muted);cursor:pointer;padding:var(--spacing-xs);line-height:1}.search-clear:hover{color:var(--text)}.filter-tabs{display:flex;gap:var(--spacing-sm);overflow-x:auto;padding-bottom:var(--spacing-xs);-webkit-overflow-scrolling:touch}.filter-tab{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border:none;border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:.875rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;transition:all .2s}.filter-tab:hover{background:var(--bg-tertiary);color:var(--text)}.filter-tab.active{background:var(--primary);color:#fff}.filter-count{font-size:.625rem;padding:2px 6px;background:#0000001a;border-radius:var(--radius-full)}.filter-tab.active .filter-count{background:#fff3}.unlocked-toggle{display:flex;align-items:center;gap:var(--spacing-sm);font-size:.875rem;color:var(--text-secondary);cursor:pointer}.unlocked-toggle input{width:18px;height:18px;accent-color:var(--primary)}.reset-filters-btn{align-self:flex-start;padding:var(--spacing-xs) var(--spacing-md);background:none;border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;font-family:inherit;font-size:.75rem;color:var(--text-secondary);transition:all .2s}.reset-filters-btn:hover{border-color:var(--primary);color:var(--primary)}.ai-trophies-section{margin-bottom:var(--spacing-xl)}.ai-trophies-section h2{font-size:1.125rem;margin:0 0 var(--spacing-md);color:var(--ai-accent)}.trophies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--spacing-md)}.no-results{text-align:center;padding:var(--spacing-xl)}.no-results-icon{font-size:3rem;display:block;margin-bottom:var(--spacing-md)}.no-results p{color:var(--text-secondary);margin:0 0 var(--spacing-md)}@media(max-width:640px){.trophies-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:400px){.trophies-grid{grid-template-columns:1fr}}.trophy-detail-page{max-width:600px;margin:0 auto;padding:var(--spacing-lg)}.trophy-not-found{text-align:center;padding:var(--spacing-xl)}.back-btn{background:none;border:none;color:var(--text-secondary);font-family:inherit;font-size:.875rem;cursor:pointer;padding:var(--spacing-sm) 0;margin-bottom:var(--spacing-md);transition:color .2s}.back-btn:hover{color:var(--primary)}.trophy-detail-card{background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);padding:var(--spacing-xl)}.trophy-detail-header{display:flex;align-items:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.trophy-detail-icon{width:120px;height:120px;flex-shrink:0}.trophy-detail-icon svg{width:100%;height:100%}.trophy-detail-info{display:flex;flex-direction:column;gap:var(--spacing-sm)}.trophy-detail-category{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);font-size:.75rem;font-weight:600;border-radius:var(--radius-full);width:fit-content}.trophy-category-web{background:var(--category-web-bg);color:var(--category-web)}.trophy-category-game{background:var(--category-game-bg);color:var(--category-game)}.trophy-category-ai{background:var(--category-ai-bg);color:var(--category-ai)}.trophy-category-bonus{background:var(--category-bonus-bg);color:var(--category-bonus)}.trophy-detail-name{font-size:1.75rem;margin:0}.trophy-detail-description{font-size:1.125rem;line-height:1.6;color:var(--text-secondary);margin:0 0 var(--spacing-lg)}.trophy-unlock-info{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--success-bg);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.unlock-badge{font-weight:600;color:var(--success)}.unlock-date{font-size:.875rem;color:var(--text-secondary)}.trophy-locked-info{padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg)}.locked-badge{font-weight:600;color:var(--text-muted)}.trophy-locked-info p{margin:var(--spacing-xs) 0 0;font-size:.875rem;color:var(--text-secondary)}.related-lesson{margin-bottom:var(--spacing-lg)}.related-lesson h3{font-size:.875rem;color:var(--text-secondary);margin:0 0 var(--spacing-sm)}.related-lesson-card{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md);text-decoration:none;color:var(--text);transition:background .2s}.related-lesson-card:hover{background:var(--bg-tertiary)}.related-lesson-day{font-size:.75rem;font-weight:600;color:var(--primary)}.related-lesson-title{font-weight:500}.related-lesson-week{font-size:.75rem;color:var(--text-muted)}.trophy-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}@media(max-width:480px){.trophy-detail-header{flex-direction:column;text-align:center}.trophy-detail-category{margin:0 auto}.trophy-actions{flex-direction:column}.trophy-actions .btn{width:100%;text-align:center}}.game-page{max-width:700px;margin:0 auto;padding:var(--spacing-lg)}.game-header{text-align:center;margin-bottom:var(--spacing-lg)}.game-header h1{margin:0 0 var(--spacing-xs)}.game-subtitle{color:var(--text-secondary);margin:0}.game-stats{display:flex;justify-content:center;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.stat{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md) var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border);min-width:100px}.stat-label{font-size:.75rem;color:var(--text-muted);text-transform:uppercase}.stat-value{font-size:1.5rem;font-weight:700;color:var(--text)}.stat-value.warning{color:var(--error);animation:pulse 1s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.game-container{position:relative;display:flex;justify-content:center;margin-bottom:var(--spacing-lg)}.game-canvas{border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-width:100%;height:auto}.game-overlay{position:absolute;top:0;left:50%;transform:translate(-50%);width:600px;max-width:100%;height:400px;display:flex;align-items:center;justify-content:center;background:#000c;border-radius:var(--radius-lg)}.overlay-content{text-align:center;color:#fff;padding:var(--spacing-lg)}.overlay-content h2{margin:0 0 var(--spacing-md);font-size:2rem}.overlay-content p{margin:0 0 var(--spacing-sm);color:#fffc}.final-score{font-size:1.5rem;font-weight:700;color:#fff!important;margin-bottom:var(--spacing-md)!important}.trophy-earned{color:var(--warning)!important;font-weight:600}.new-record{color:var(--success)!important;font-weight:600}.overlay-content .btn{margin-top:var(--spacing-md)}.game-controls-info{padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border);text-align:center}.game-controls-info h3{margin:0 0 var(--spacing-md);font-size:1rem}.controls-grid{display:flex;justify-content:center;gap:var(--spacing-sm);flex-wrap:wrap}.control-key{padding:var(--spacing-sm) var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-sm);font-family:monospace;font-size:.875rem;color:var(--text-secondary);border:1px solid var(--border)}@media(max-width:640px){.game-stats{gap:var(--spacing-sm)}.stat{padding:var(--spacing-sm);min-width:80px}.stat-value{font-size:1.25rem}.game-overlay{width:100%;height:auto;aspect-ratio:600 / 400}.overlay-content h2{font-size:1.5rem}}.ai-generator-page{max-width:800px;margin:0 auto;padding:var(--spacing-lg)}.generator-header{text-align:center;margin-bottom:var(--spacing-xl)}.generator-header h1{margin:0 0 var(--spacing-sm)}.generator-subtitle{color:var(--text-secondary);margin:0}.generator-content{display:grid;gap:var(--spacing-xl)}.generator-form{padding:var(--spacing-xl);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.form-group{margin-bottom:var(--spacing-lg)}.form-group label{display:block;margin-bottom:var(--spacing-xs);font-weight:500;color:var(--text)}.form-group input,.form-group select{width:100%;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font-size:1rem;font-family:inherit;transition:border-color .2s}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--primary)}.form-group input.error,.form-group select.error{border-color:var(--error)}.form-group input:disabled,.form-group select:disabled{opacity:.6;cursor:not-allowed}.error-message{display:block;margin-top:var(--spacing-xs);color:var(--error);font-size:.875rem}.form-actions{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.form-actions .btn{flex:1}.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;margin-right:var(--spacing-xs)}@keyframes spin{to{transform:rotate(360deg)}}.rate-limit-info{font-size:.75rem;color:var(--text-muted);text-align:center;margin:0}.generated-trophy{padding:var(--spacing-xl);background:linear-gradient(135deg,var(--ai-bg) 0%,var(--card-bg) 100%);border-radius:var(--radius-lg);border:2px solid var(--ai-accent)}.generated-trophy h2{margin:0 0 var(--spacing-lg);text-align:center;color:var(--ai-accent)}.trophy-preview{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.trophy-image{width:200px;height:200px;object-fit:contain;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.trophy-placeholder{width:200px;height:200px;display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);border-radius:var(--radius-lg);font-size:5rem}.trophy-info{text-align:center}.trophy-info h3{margin:0 0 var(--spacing-xs)}.trophy-info p{color:var(--text-secondary);margin:0}.trophy-actions{display:flex;gap:var(--spacing-md);justify-content:center;flex-wrap:wrap}.recent-trophies{margin-top:var(--spacing-xl)}.recent-trophies h2{font-size:1.125rem;margin:0 0 var(--spacing-md)}.recent-trophies-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:var(--spacing-md)}.recent-trophy-card{display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--card-bg);border-radius:var(--radius-md);border:1px solid var(--border)}.recent-trophy-card img{width:80px;height:80px;object-fit:contain;border-radius:var(--radius-sm)}.recent-trophy-card .trophy-placeholder{width:80px;height:80px;font-size:2.5rem}.recent-trophy-name{font-size:.75rem;font-weight:500;text-align:center;color:var(--text-secondary)}@media(max-width:640px){.form-actions,.trophy-actions{flex-direction:column}.trophy-actions .btn{width:100%}}.settings-page{max-width:700px;margin:0 auto;padding:var(--spacing-lg)}.settings-header{margin-bottom:var(--spacing-xl)}.settings-header h1{margin:0}.settings-section{margin-bottom:var(--spacing-xl);padding:var(--spacing-lg);background:var(--card-bg);border-radius:var(--radius-lg);border:1px solid var(--border)}.settings-section h2{font-size:1.125rem;margin:0 0 var(--spacing-xs)}.section-description{color:var(--text-secondary);font-size:.875rem;margin:0 0 var(--spacing-md)}.name-input-row{display:flex;gap:var(--spacing-sm)}.name-input-row input{flex:1;padding:var(--spacing-sm) var(--spacing-md);border:2px solid var(--border);border-radius:var(--radius-md);background:var(--bg);color:var(--text);font-size:1rem;font-family:inherit;transition:border-color .2s}.name-input-row input:focus{outline:none;border-color:var(--primary)}.info-section{background:var(--primary-bg);border-color:var(--primary)}.info-content{line-height:1.7}.info-content p{margin:0 0 var(--spacing-md);color:var(--text-secondary)}.info-content p:last-child{margin-bottom:0}.info-warning{padding:var(--spacing-sm) var(--spacing-md);background:var(--warning-bg);border-radius:var(--radius-md);color:var(--text)!important}.export-import-actions{display:flex;gap:var(--spacing-md);flex-wrap:wrap}.import-btn{cursor:pointer}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--spacing-md)}.stat-item{display:flex;flex-direction:column;gap:var(--spacing-xs);padding:var(--spacing-md);background:var(--bg-secondary);border-radius:var(--radius-md)}.stat-item .stat-label{font-size:.75rem;color:var(--text-muted)}.stat-item .stat-value{font-size:1.25rem;font-weight:600}.danger-zone{border-color:var(--error)}.danger-zone h2{color:var(--error)}.btn-danger{background:var(--error);color:#fff;border:none;padding:var(--spacing-sm) var(--spacing-lg);border-radius:var(--radius-md);cursor:pointer;font-weight:500;transition:all .2s}.btn-danger:hover{background:#c0392b}@media(max-width:480px){.export-import-actions{flex-direction:column}.export-import-actions .btn{width:100%;text-align:center}.names-actions{flex-direction:column}.names-actions .btn{width:100%}}.app{min-height:100vh;display:flex;flex-direction:column}.main-content{flex:1;padding-bottom:var(--spacing-xl)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-lg);border:none;border-radius:var(--radius-md);font-family:inherit;font-size:.875rem;font-weight:500;cursor:pointer;text-decoration:none;transition:all .2s}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{background:var(--bg-secondary);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary)}.btn-lg{padding:var(--spacing-md) var(--spacing-xl);font-size:1rem}.btn-sm{padding:var(--spacing-xs) var(--spacing-md);font-size:.75rem}:root{--primary: #4361ee;--primary-light: #7289ee;--primary-dark: #3651d4;--primary-bg: rgba(67, 97, 238, .1);--primary-transparent: rgba(67, 97, 238, .2);--secondary: #7209b7;--secondary-bg: rgba(114, 9, 183, .1);--success: #2ecc71;--success-bg: rgba(46, 204, 113, .1);--warning: #f1c40f;--warning-bg: rgba(241, 196, 15, .1);--error: #e74c3c;--error-bg: rgba(231, 76, 60, .1);--ai-accent: #00d4ff;--ai-bg: rgba(0, 212, 255, .05);--category-web: #3498db;--category-web-bg: rgba(52, 152, 219, .15);--category-game: #9b59b6;--category-game-bg: rgba(155, 89, 182, .15);--category-ai: #00cec9;--category-ai-bg: rgba(0, 206, 201, .15);--category-bonus: #f39c12;--category-bonus-bg: rgba(243, 156, 18, .15);--bg: #ffffff;--bg-secondary: #f8f9fa;--bg-tertiary: #e9ecef;--card-bg: #ffffff;--text: #212529;--text-secondary: #495057;--text-muted: #868e96;--border: #dee2e6;--spacing-xs: 4px;--spacing-sm: 8px;--spacing-md: 16px;--spacing-lg: 24px;--spacing-xl: 32px;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .15)}body.dark{--primary: #6c8cff;--primary-light: #8da5ff;--primary-dark: #5578ff;--primary-bg: rgba(108, 140, 255, .15);--primary-transparent: rgba(108, 140, 255, .25);--secondary: #a855f7;--secondary-bg: rgba(168, 85, 247, .15);--success: #34d399;--success-bg: rgba(52, 211, 153, .15);--warning: #fbbf24;--warning-bg: rgba(251, 191, 36, .15);--error: #f87171;--error-bg: rgba(248, 113, 113, .15);--ai-accent: #22d3ee;--ai-bg: rgba(34, 211, 238, .1);--category-web: #60a5fa;--category-web-bg: rgba(96, 165, 250, .2);--category-game: #c084fc;--category-game-bg: rgba(192, 132, 252, .2);--category-ai: #2dd4bf;--category-ai-bg: rgba(45, 212, 191, .2);--category-bonus: #fbbf24;--category-bonus-bg: rgba(251, 191, 36, .2);--bg: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--card-bg: #1e293b;--text: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--border: #334155;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px rgba(0, 0, 0, .4);--shadow-lg: 0 10px 15px rgba(0, 0, 0, .4);--shadow-xl: 0 20px 25px rgba(0, 0, 0, .5)}*,*:before,*:after{box-sizing:border-box}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;background:var(--bg);color:var(--text);line-height:1.5;transition:background-color .2s,color .2s}h1,h2,h3,h4,h5,h6{line-height:1.2;font-weight:600}a{color:var(--primary)}img{max-width:100%;height:auto}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}button:focus-visible{outline:2px solid var(--primary);outline-offset:2px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-secondary)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--primary-transparent);color:var(--text)}
