:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif;line-height:1.5;font-weight:400;color:#213547;background-color:#f5f7fa;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}#root{min-height:100vh}a{font-weight:500;color:#2d5a87;text-decoration:none}a:hover{color:#1a365d;text-decoration:underline}h1,h2,h3,h4,h5,h6{margin:0;line-height:1.2}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:all .2s}button:focus,button:focus-visible{outline:2px solid #2d5a87;outline-offset:2px}input{font-family:inherit;font-size:inherit}ul,ol{margin:0;padding:0}.content-browser{max-width:900px;margin:0 auto}.content-browser h2{color:#1a365d;margin-bottom:.5rem}.content-browser .intro{color:#666;margin-bottom:1.5rem}.search-container{margin-bottom:1.5rem}.search-input{width:100%;padding:.75rem 1rem;font-size:1rem;border:2px solid #e2e8f0;border-radius:8px;transition:border-color .2s,box-shadow .2s}.search-input:focus{outline:none;border-color:#2d5a87;box-shadow:0 0 0 3px #2d5a871a}.children-list{list-style:none;padding:0;margin:.5rem 0 0}.topic-item{margin-bottom:.75rem}.topic-header{display:flex;align-items:flex-start;gap:.75rem;background:#fff;border:1px solid #e2e8f0;border-radius:8px;padding:1rem 1.25rem;cursor:pointer;transition:all .2s}.topic-header:hover{border-color:#2d5a87;box-shadow:0 2px 8px #0000001a;transform:translate(4px)}.expand-btn{background:none;border:none;padding:.25rem;cursor:pointer;color:#666;font-size:.75rem;flex-shrink:0;margin-top:.25rem}.expand-btn:hover{color:#2d5a87}.topic-info{flex:1}.topic-info h3{margin:0 0 .5rem;color:#2d5a87;font-size:1.1rem}.topic-info p{margin:0 0 .5rem;color:#666;font-size:.875rem;line-height:1.4}.topic-meta{display:flex;gap:1rem;font-size:.75rem}.difficulty{color:#d69e2e}.concepts{color:#718096;font-style:italic}.no-results{text-align:center;color:#666;padding:2rem;background:#f7fafc;border-radius:8px}@media(max-width:768px){.topic-header{padding:.75rem 1rem}.topic-info h3{font-size:1rem}.topic-meta{flex-direction:column;gap:.25rem}}.breadcrumb{font-size:.875rem;color:#666;margin-bottom:1.5rem}.breadcrumb a{color:#2d5a87;text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb .current{color:#333;font-weight:500}.section-header{margin-bottom:1.5rem}.section-header h1{color:#1a365d;margin:0 0 .5rem;font-size:2rem}.section-meta{display:flex;gap:1rem;color:#666}.section-meta .difficulty{color:#d69e2e}.content-body{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a;line-height:1.8;margin-bottom:2rem}.content-body p{margin:0 0 1rem}.content-body p:last-child{margin-bottom:0}.concepts-section,.definitions-section,.subtopics-section{margin-bottom:2rem}.concepts-section h3,.definitions-section h3,.subtopics-section h3,.game-section h3{color:#1a365d;font-size:1.25rem;margin-bottom:1rem}.concept-tags{display:flex;flex-wrap:wrap;gap:.5rem}.concept-tag{background:#e2e8f0;color:#2d5a87;padding:.25rem .75rem;border-radius:20px;font-size:.875rem}.definitions-list{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.definition-item{margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.definition-item:last-child{margin-bottom:0;padding-bottom:0;border-bottom:none}.definition-item dt{font-weight:600;color:#2d5a87;margin-bottom:.25rem}.definition-item dd{margin:0;color:#666}.subtopics-list{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:.75rem}.subtopics-list li a{display:block;background:#fff;padding:1rem;border-radius:8px;text-decoration:none;color:#2d5a87;box-shadow:0 1px 3px #0000001a;transition:all .2s}.subtopics-list li a:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.game-section{background:linear-gradient(135deg,#f0fff4,#e6fffa);border-radius:12px;padding:2rem;margin-bottom:2rem}.game-section p{color:#666;margin-bottom:1.5rem}.game-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.game-button{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:1rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;transition:all .2s}.game-button.crossword{background:linear-gradient(135deg,#4299e1,#3182ce);color:#fff}.game-button.word-puzzle{background:linear-gradient(135deg,#48bb78,#38a169);color:#fff}.game-button.logic-puzzle{background:linear-gradient(135deg,#ed8936,#dd6b20);color:#fff}.game-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #0003}.navigation-footer{margin-top:2rem;padding-top:1rem;border-top:1px solid #e2e8f0}.back-link{color:#2d5a87;text-decoration:none;font-weight:500}.back-link:hover{text-decoration:underline}@media(max-width:768px){.section-header h1{font-size:1.5rem}.content-body,.game-section{padding:1.5rem}.game-buttons{grid-template-columns:1fr}}.crossword-game{max-width:1200px;margin:0 auto;padding:20px}.game-content{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start}.grid-container{display:flex;justify-content:center}.crossword-grid{display:inline-block;border:2px solid #333;background:#fff}.crossword-row{display:flex}.crossword-cell{width:30px;height:30px;border:1px solid #ccc;position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px}.crossword-cell.filled{background:#fff}.crossword-cell.empty{background:#333}.crossword-cell.selected{background:#e3f2fd}.crossword-cell:hover.filled{background:#f5f5f5}.clue-number{position:absolute;top:1px;left:2px;font-size:8px;font-weight:700;color:#333}.cell-letter{font-size:16px;font-weight:700;color:#333}.crossword-clues{display:grid;grid-template-columns:1fr 1fr;gap:20px}.clues-section h3{margin:0 0 15px;color:#333;border-bottom:1px solid #e0e0e0;padding-bottom:5px}.clue-item{margin-bottom:15px;padding:10px;border:1px solid #e0e0e0;border-radius:5px;background:#fff}.clue-item.selected{border-color:#2196f3;background:#e3f2fd}.clue-item.completed{border-color:#4caf50;background:#e8f5e8}.clue-header{cursor:pointer;display:flex;align-items:center;gap:8px}.clue-header:hover{color:#2196f3}.clue-item .clue-number{position:static;font-weight:700;color:#666;min-width:20px}.clue-text{flex:1;font-size:14px}.clue-length{font-size:12px;color:#999}.clue-input{margin-top:10px;padding-top:10px;border-top:1px solid #e0e0e0}.clue-input form{display:flex;gap:8px;margin-bottom:8px}.clue-input input{flex:1;padding:6px 10px;border:1px solid #ccc;border-radius:3px;font-size:14px;text-transform:uppercase}.clue-input button{padding:6px 12px;border:1px solid #ccc;border-radius:3px;background:#fff;cursor:pointer;font-size:12px}.clue-input button:hover{background:#f5f5f5}.clue-input button:disabled{opacity:.5;cursor:not-allowed}.hint{font-size:12px;color:#666;font-style:italic;padding:5px;background:#f9f9f9;border-radius:3px}.completion-message p{color:#388e3c;margin:0;font-size:16px}@media(max-width:768px){.game-content{grid-template-columns:1fr;gap:20px}.crossword-clues{grid-template-columns:1fr}.crossword-cell{width:25px;height:25px;font-size:12px}.cell-letter{font-size:14px}}.word-puzzle-game{max-width:1000px;margin:0 auto;padding:20px}.game-stats{display:flex;gap:20px;font-weight:700;color:#666}.message{padding:10px 15px;margin-bottom:15px;border-radius:5px;text-align:center;font-weight:700}.message.success{background:#e8f5e8;color:#2e7d32;border:1px solid #4caf50}.message.info{background:#fff3e0;color:#f57c00;border:1px solid #ff9800}.hint-display{background:#e3f2fd;border:1px solid #2196f3;padding:10px 15px;margin-bottom:15px;border-radius:5px;color:#1976d2}.game-content{display:grid;grid-template-columns:2fr 1fr;gap:30px;align-items:start}.game-area{display:flex;flex-direction:column;gap:20px}.current-word{background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a}.current-word h3{margin:0 0 15px;color:#333}.word-builder{min-height:60px;display:flex;flex-wrap:wrap;gap:5px;align-items:center;justify-content:center;padding:15px;background:#f5f5f5;border-radius:8px;margin-bottom:15px}.empty-word{color:#999;font-style:italic;text-align:center}.word-actions{display:flex;gap:10px;justify-content:center}.action-button{padding:10px 20px;border:none;border-radius:5px;cursor:pointer;font-weight:700;transition:background-color .2s}.action-button:disabled{opacity:.5;cursor:not-allowed}.action-button.submit{background:#4caf50;color:#fff}.action-button.submit:hover:not(:disabled){background:#45a049}.action-button.clear{background:#f44336;color:#fff}.action-button.clear:hover:not(:disabled){background:#da190b}.action-button.hint{background:#2196f3;color:#fff}.action-button.hint:hover{background:#1976d2}.available-letters{background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a}.available-letters h3{margin:0 0 15px;color:#333}.letters-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(50px,1fr));gap:8px}.letter-button{width:50px;height:50px;border:2px solid #ccc;border-radius:8px;background:#fff;cursor:pointer;font-size:18px;font-weight:700;transition:all .2s;display:flex;align-items:center;justify-content:center}.letter-button.available{border-color:#2196f3;color:#2196f3}.letter-button.available:hover{background:#e3f2fd;transform:translateY(-2px)}.letter-button.current{border-color:#4caf50;background:#e8f5e8;color:#2e7d32}.letter-button.current:hover{background:#c8e6c9}.progress-area{background:#fff;padding:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a;height:fit-content}.found-words h3{margin:0 0 15px;color:#333}.words-list{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.found-word{background:#e8f5e8;color:#2e7d32;padding:5px 10px;border-radius:15px;font-weight:700;font-size:14px}.remaining-words h4{margin:0 0 10px;color:#666;font-size:14px}.remaining-word{background:#f5f5f5;color:#666;padding:5px 10px;border-radius:15px;font-family:monospace;font-size:14px;margin-bottom:5px}.completion-message{text-align:center;padding:20px;margin-top:20px;background:#e8f5e8;border:2px solid #4caf50;border-radius:10px}.completion-message h3{color:#2e7d32;margin:0 0 10px}.completion-message p{color:#388e3c;margin:5px 0;font-size:16px}@media(max-width:768px){.game-content{grid-template-columns:1fr;gap:20px}.letters-grid{grid-template-columns:repeat(auto-fill,minmax(40px,1fr));gap:5px}.letter-button{width:40px;height:40px;font-size:16px}.word-actions{flex-direction:column;gap:8px}.action-button{padding:8px 16px}}.logic-puzzle-game{max-width:800px;margin:0 auto;padding:20px}.game-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;padding-bottom:10px;border-bottom:2px solid #e0e0e0}.game-header h2{margin:0;color:#333}.game-info{display:flex;gap:20px;font-weight:700;color:#666}.difficulty{color:#ff9800}.hint-display{background:linear-gradient(135deg,#e3f2fd,#bbdefb);border:2px solid #2196f3;border-radius:10px;padding:15px;margin-bottom:20px;box-shadow:0 2px 8px #2196f333}.hint-header{color:#1976d2;font-size:16px;margin-bottom:8px}.hint-content{color:#1565c0;font-size:14px;line-height:1.5}.game-content{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow:hidden}.puzzle-area{padding:0}.scenario-section,.rules-section,.question-section,.options-section,.controls-section{padding:20px;border-bottom:1px solid #e0e0e0}.controls-section{border-bottom:none}.scenario-section h3,.rules-section h3,.question-section h3,.options-section h3{margin:0 0 15px;color:#333;font-size:18px}.scenario-content{background:#f8f9fa;padding:15px;border-radius:8px;border-left:4px solid #2196f3}.scenario-content p{margin:0;line-height:1.6;color:#555}.rules-list{background:#fff3e0;padding:15px;border-radius:8px;border-left:4px solid #ff9800}.rule-item{display:flex;margin-bottom:10px;align-items:flex-start}.rule-item:last-child{margin-bottom:0}.rule-number{font-weight:700;color:#f57c00;margin-right:8px;min-width:20px}.rule-description{color:#555;line-height:1.5}.question-content{background:#e8f5e8;padding:15px;border-radius:8px;border-left:4px solid #4caf50}.question-content p{margin:0;font-weight:500;color:#2e7d32;font-size:16px}.options-list{display:flex;flex-direction:column;gap:10px}.option-item{display:flex;align-items:flex-start;padding:15px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;transition:all .2s;background:#fff}.option-item:hover{border-color:#2196f3;background:#f8f9ff}.option-item.selected{border-color:#2196f3;background:#e3f2fd}.option-item.correct{border-color:#4caf50;background:#e8f5e8}.option-item.incorrect{border-color:#f44336;background:#ffebee}.option-letter{width:30px;height:30px;border-radius:50%;background:#f5f5f5;display:flex;align-items:center;justify-content:center;font-weight:700;color:#666;margin-right:15px;flex-shrink:0}.option-item.selected .option-letter{background:#2196f3;color:#fff}.option-item.correct .option-letter{background:#4caf50;color:#fff}.option-item.incorrect .option-letter{background:#f44336;color:#fff}.option-text{flex:1;line-height:1.5;color:#333}.control-buttons{display:flex;gap:15px;justify-content:center}.control-button{padding:12px 24px;border:none;border-radius:6px;cursor:pointer;font-weight:700;font-size:14px;transition:all .2s}.control-button:disabled{opacity:.5;cursor:not-allowed}.control-button.submit{background:#4caf50;color:#fff}.control-button.submit:hover:not(:disabled){background:#45a049;transform:translateY(-1px)}.control-button.hint{background:#2196f3;color:#fff}.control-button.hint:hover:not(:disabled){background:#1976d2;transform:translateY(-1px)}.control-button.reset{background:#ff9800;color:#fff}.control-button.reset:hover{background:#f57c00;transform:translateY(-1px)}.feedback-section{margin-top:20px;padding:20px;border-radius:10px;box-shadow:0 2px 10px #0000001a}.feedback-section.correct{background:linear-gradient(135deg,#e8f5e8,#c8e6c9);border:2px solid #4caf50}.feedback-section.incorrect{background:linear-gradient(135deg,#ffebee,#ffcdd2);border:2px solid #f44336}.feedback-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.feedback-header h3{margin:0;font-size:20px}.feedback-section.correct .feedback-header h3{color:#2e7d32}.feedback-section.incorrect .feedback-header h3{color:#c62828}.score-display{font-size:18px;font-weight:700;padding:8px 16px;border-radius:20px;background:#fffc}.feedback-section.correct .score-display{color:#2e7d32}.feedback-section.incorrect .score-display{color:#c62828}.feedback-content{line-height:1.6}.feedback-text{font-size:16px;font-weight:500;margin:0 0 10px}.feedback-section.correct .feedback-text{color:#2e7d32}.feedback-section.incorrect .feedback-text{color:#c62828}.explanation-text{font-size:14px;margin:0;opacity:.9}.feedback-section.correct .explanation-text{color:#388e3c}.feedback-section.incorrect .explanation-text{color:#d32f2f}@media(max-width:768px){.logic-puzzle-game{padding:15px}.game-header{flex-direction:column;gap:10px;text-align:center}.game-info{justify-content:center}.scenario-section,.rules-section,.question-section,.options-section,.controls-section{padding:15px}.control-buttons{flex-direction:column;gap:10px}.control-button{padding:10px 20px}.feedback-header{flex-direction:column;gap:10px;text-align:center}}.game-container{min-height:100vh;background:#f5f5f5}.game-navigation{background:#fff;padding:15px 20px;border-bottom:2px solid #e0e0e0;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.back-button{background:#2196f3;color:#fff;border:none;padding:10px 16px;border-radius:5px;cursor:pointer;font-weight:700;transition:background-color .2s}.back-button:hover{background:#1976d2}.game-info{display:flex;flex-direction:column;align-items:flex-end;gap:5px}.content-title{font-size:14px;color:#666;font-weight:500}.game-type-label{font-size:18px;font-weight:700;color:#333}.loading{display:flex;justify-content:center;align-items:center;height:200px;font-size:18px;color:#666}.error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;text-align:center;padding:20px}.error h2{color:#f44336;margin-bottom:10px}.error p{color:#666;margin-bottom:20px;max-width:500px;line-height:1.5}.game-error{display:flex;flex-direction:column;align-items:center;justify-content:center;height:300px;text-align:center;padding:20px;background:#fff;margin:20px;border-radius:10px;box-shadow:0 2px 4px #0000001a}.game-error h2{color:#f44336;margin-bottom:10px}.game-error p{color:#666;margin:0}@media(max-width:768px){.game-navigation{flex-direction:column;gap:10px;text-align:center}.game-info{align-items:center}.back-button{width:100%;max-width:200px}}.progress-dashboard{max-width:1200px;margin:0 auto;padding:1rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.dashboard-header h2{color:#1a365d;margin:0;font-size:2rem}.view-toggle{display:flex;background:#f7fafc;border-radius:8px;padding:.25rem}.toggle-btn{padding:.75rem 1.5rem;border:none;background:transparent;color:#666;cursor:pointer;border-radius:6px;font-weight:500;transition:all .2s}.toggle-btn.active{background:#fff;color:#2d5a87;box-shadow:0 1px 3px #0000001a}.toggle-btn:hover:not(.active){color:#2d5a87}.date-navigation{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding:1rem;background:#fff;border-radius:12px;box-shadow:0 1px 3px #0000001a}.nav-btn{padding:.75rem 1.5rem;border:1px solid #e2e8f0;background:#fff;color:#2d5a87;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.nav-btn:hover{border-color:#2d5a87;box-shadow:0 2px 8px #2d5a871a}.current-period{display:flex;flex-direction:column;align-items:center;gap:.5rem}.current-period h3{margin:0;color:#1a365d;font-size:1.25rem;text-align:center}.date-picker-btn{padding:.5rem 1rem;border:1px solid #e2e8f0;background:#f7fafc;color:#2d5a87;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.date-picker-btn:hover{border-color:#2d5a87;background:#fff}.date-picker-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.date-picker-modal{background:#fff;border-radius:12px;padding:1.5rem;max-width:500px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 10px 25px #0003}.date-picker-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.date-picker-header h4{margin:0;color:#1a365d}.close-btn{background:none;border:none;font-size:1.25rem;cursor:pointer;color:#666;padding:.25rem;border-radius:4px;transition:background-color .2s}.close-btn:hover{background:#f7fafc}.quick-ranges{margin-bottom:1.5rem}.quick-ranges h5{margin:0 0 .75rem;color:#2d5a87;font-size:.875rem;font-weight:600}.quick-range-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.5rem}.quick-range-btn{padding:.75rem 1rem;border:1px solid #e2e8f0;background:#fff;color:#2d5a87;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s;text-align:center}.quick-range-btn:hover{border-color:#2d5a87;background:#f7fafc}.custom-date-input h5{margin:0 0 .75rem;color:#2d5a87;font-size:.875rem;font-weight:600}.date-input{width:100%;padding:.75rem;border:1px solid #e2e8f0;border-radius:6px;font-size:1rem;transition:border-color .2s}.date-input:focus{outline:none;border-color:#2d5a87;box-shadow:0 0 0 3px #2d5a871a}.export-section{position:relative;display:flex;justify-content:flex-end;margin-bottom:2rem}.export-btn{padding:.75rem 1.5rem;border:1px solid #2d5a87;background:#fff;color:#2d5a87;border-radius:8px;cursor:pointer;font-weight:500;transition:all .2s}.export-btn:hover{background:#2d5a87;color:#fff}.export-dropdown{position:absolute;top:100%;right:0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:100;min-width:180px;margin-top:.5rem}.export-option{display:block;width:100%;padding:.75rem 1rem;border:none;background:#fff;color:#2d5a87;text-align:left;cursor:pointer;transition:background-color .2s;border-radius:0}.export-option:first-child{border-top-left-radius:8px;border-top-right-radius:8px}.export-option:last-child{border-bottom-left-radius:8px;border-bottom-right-radius:8px}.export-option:hover{background:#f7fafc}.insufficient-data-notice{background:#fef5e7;border:1px solid #f6e05e;border-radius:8px;padding:1rem;margin-bottom:2rem;text-align:center}.insufficient-data-notice p{margin:0;color:#744210}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.metric-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;display:flex;align-items:center;gap:1rem;transition:transform .2s,box-shadow .2s}.metric-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.metric-icon{font-size:2rem;flex-shrink:0}.metric-content{flex:1}.metric-content h4{margin:0 0 .5rem;color:#666;font-size:.875rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px}.metric-value{font-size:2rem;font-weight:700;color:#2d5a87;margin-bottom:.25rem}.metric-change{font-size:.875rem;font-weight:500}.metric-card.games-completed .metric-icon{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.metric-card.average-score .metric-icon{background:linear-gradient(135deg,#f093fb,#f5576c);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.metric-card.completion-rate .metric-icon{background:linear-gradient(135deg,#4facfe,#00f2fe);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.metric-card.time-spent .metric-icon{background:linear-gradient(135deg,#43e97b,#38f9d7);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.trends-section{margin-bottom:2rem}.trends-section h3{color:#1a365d;margin-bottom:1rem;font-size:1.5rem}.trends-container{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem}.trend-item{text-align:center;padding:1rem;border-radius:8px;background:#f7fafc}.trend-label{font-size:.875rem;color:#666;margin-bottom:.5rem;font-weight:500}.trend-indicator{font-size:1.125rem;font-weight:600;display:flex;align-items:center;justify-content:center;gap:.5rem}.analysis-section{margin-bottom:2rem}.analysis-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:1.5rem}.analysis-card{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 1px 3px #0000001a}.analysis-card h4{margin:0 0 1rem;color:#1a365d;font-size:1.125rem}.concepts-list{display:flex;flex-direction:column;gap:.75rem}.concept-item{display:flex;align-items:center;gap:1rem}.concept-name{flex:1;font-size:.875rem;color:#2d5a87;font-weight:500}.concept-progress{flex:1;height:6px;background:#e2e8f0;border-radius:3px;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(135deg,#38a169,#2f855a);transition:width .3s ease}.no-concepts{color:#666;font-style:italic;text-align:center;margin:0}.mastery-breakdown{display:flex;flex-direction:column;gap:.75rem}.mastery-stat{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid #e2e8f0}.mastery-stat:last-child{border-bottom:none}.mastery-label{color:#666;font-weight:500}.mastery-value{color:#2d5a87;font-weight:600}.recommendations-list{display:flex;flex-direction:column;gap:.75rem}.recommendation-item{display:flex;align-items:flex-start;gap:.75rem;padding:.75rem;background:#f7fafc;border-radius:8px}.recommendation-icon{font-size:1.125rem;flex-shrink:0}.recommendation-text{color:#2d5a87;font-size:.875rem;line-height:1.4}.weekly-breakdown-section{margin-bottom:2rem}.weekly-breakdown-section h3{color:#1a365d;margin-bottom:1rem;font-size:1.5rem}.weekly-breakdown-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:1rem}.week-card{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #0000001a;transition:transform .2s,box-shadow .2s}.week-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.week-card.clickable{cursor:pointer;transition:all .2s}.week-card.clickable:hover{border:1px solid #2d5a87}.drill-down-icon{font-size:.875rem;opacity:.7;margin-left:auto}.week-header{margin-bottom:.75rem;padding-bottom:.75rem;border-bottom:1px solid #e2e8f0;display:flex;align-items:center;gap:.5rem}.week-header h5{margin:0 0 .25rem;color:#2d5a87;font-size:1rem}.week-dates{font-size:.75rem;color:#666}.week-stats{display:flex;flex-direction:column;gap:.5rem}.week-stat{display:flex;justify-content:space-between;align-items:center}.stat-label{color:#666;font-size:.875rem}.stat-value{color:#2d5a87;font-weight:600;font-size:.875rem}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:#666;font-size:1.125rem}.loading:after{content:"";width:24px;height:24px;border:3px solid #e2e8f0;border-top-color:#2d5a87;border-radius:50%;animation:spin 1s linear infinite;margin-left:.75rem}.error{background:#fed7d7;color:#c53030;padding:2rem;border-radius:12px;text-align:center;margin:2rem 0}.error h3{margin:0 0 .5rem}.error p{margin:0 0 1rem}.retry-button{background:#c53030;color:#fff;border:none;padding:.75rem 1.5rem;border-radius:8px;cursor:pointer;font-weight:500;transition:background-color .2s}.retry-button:hover{background:#9c2626}.no-data{text-align:center;color:#666;padding:3rem;background:#f7fafc;border-radius:12px;font-size:1.125rem}@media(max-width:768px){.progress-dashboard{padding:.5rem}.dashboard-header{flex-direction:column;align-items:stretch;text-align:center}.dashboard-header h2{font-size:1.5rem}.date-navigation{flex-direction:column;gap:1rem}.nav-btn{width:100%}.export-section{justify-content:center}.date-picker-modal{width:95%;padding:1rem}.quick-range-buttons{grid-template-columns:1fr}.metrics-grid{grid-template-columns:1fr;gap:1rem}.metric-card{padding:1rem}.metric-value{font-size:1.5rem}.trends-container{grid-template-columns:1fr;gap:1rem}.analysis-grid,.weekly-breakdown-grid{grid-template-columns:1fr}}@media(max-width:480px){.view-toggle{width:100%}.toggle-btn{flex:1;padding:.5rem 1rem}.metric-card{flex-direction:column;text-align:center;gap:.75rem}.metric-icon{font-size:1.5rem}.metric-value{font-size:1.25rem}}.teacher-dashboard{max-width:1100px;margin:0 auto}.dashboard-header{margin-bottom:2rem}.dashboard-header h2{color:#1a365d;margin:0 0 .5rem}.dashboard-header .subtitle{color:#666;margin:0}.no-data{text-align:center;padding:3rem;background:#f7fafc;border-radius:12px}.no-data h3{color:#4a5568}.class-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1.5rem}.overview-card{background:#fff;border-radius:12px;padding:1.25rem;display:flex;align-items:center;gap:1rem;box-shadow:0 1px 3px #0000001a}.overview-icon{font-size:2rem}.overview-value{font-size:1.75rem;font-weight:700;color:#1a365d}.overview-label{font-size:.875rem;color:#666}.sort-controls{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;color:#666;font-size:.875rem}.sort-controls button{padding:.375rem .75rem;border:1px solid #e2e8f0;background:#fff;border-radius:6px;cursor:pointer;font-size:.875rem;transition:all .2s}.sort-controls button:hover{border-color:#2d5a87}.sort-controls button.active{background:#2d5a87;color:#fff;border-color:#2d5a87}.students-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}.student-card{background:#fff;border-radius:12px;padding:1.25rem;box-shadow:0 1px 3px #0000001a;cursor:pointer;transition:all .2s;border:2px solid transparent}.student-card:hover{box-shadow:0 4px 12px #0000001a;transform:translateY(-2px)}.student-card.selected{border-color:#2d5a87}.student-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem}.student-avatar{font-size:2.5rem}.student-info{flex:1}.student-info h3{margin:0 0 .25rem;font-size:1.1rem;color:#1a365d}.profile-badge{display:inline-block;padding:.2rem .5rem;border-radius:4px;font-size:.7rem;color:#fff;font-weight:600}.trend-icon{font-size:1.5rem}.student-stats{display:flex;gap:1.5rem;padding:.75rem 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}.stat{display:flex;flex-direction:column}.stat-label{font-size:.75rem;color:#666}.stat-value{font-size:1.25rem;font-weight:700}.student-footer{padding-top:.75rem}.last-active{font-size:.75rem;color:#888}.student-detail{background:#fff;border-radius:12px;padding:1.5rem;box-shadow:0 2px 8px #0000001a;margin-top:1rem}.detail-header{display:flex;align-items:center;gap:1rem;margin-bottom:1.5rem;padding-bottom:1rem;border-bottom:1px solid #e2e8f0}.detail-avatar{font-size:3rem}.detail-header h3{margin:0;color:#1a365d}.detail-header p{margin:.25rem 0 0;color:#666;font-size:.875rem}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}.detail-section h4{margin:0 0 1rem;color:#2d5a87;font-size:.95rem}.metrics-list{display:flex;flex-direction:column;gap:.75rem}.metric-row{display:flex;justify-content:space-between;font-size:.9rem}.metric-row span:first-child{color:#666}.metric-row span:last-child{font-weight:600}.mastery-list{display:flex;flex-direction:column;gap:.5rem}.mastery-item{display:flex;align-items:center;gap:.5rem;font-size:.8rem}.concept-name{width:100px;color:#666;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mastery-bar{flex:1;height:8px;background:#e2e8f0;border-radius:4px;overflow:hidden}.mastery-fill{height:100%;border-radius:4px;transition:width .3s}.mastery-percent{width:35px;text-align:right;font-weight:600}.recommendations{background:#f7fafc;border-radius:8px;padding:1rem}.recommendation{margin:0;font-size:.9rem;line-height:1.5;color:#4a5568}@media(max-width:900px){.class-overview{grid-template-columns:repeat(2,1fr)}.students-grid,.detail-grid{grid-template-columns:1fr}}@media(max-width:600px){.class-overview{grid-template-columns:1fr}}.app{min-height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,sans-serif}.app-header{background:linear-gradient(135deg,#1a365d,#2d5a87);color:#fff;padding:1rem 2rem;display:flex;justify-content:space-between;align-items:center;box-shadow:0 2px 4px #0000001a}.app-header h1{margin:0;font-size:1.5rem;font-weight:600}.app-nav{display:flex;gap:1.5rem}.app-nav a{color:#fff;text-decoration:none;padding:.5rem 1rem;border-radius:4px;transition:background-color .2s}.app-nav a:hover{background-color:#ffffff1a}.app-main{flex:1;padding:2rem;max-width:1200px;margin:0 auto;width:100%;box-sizing:border-box}.app-footer{background-color:#f5f5f5;padding:1rem 2rem;text-align:center;color:#666;font-size:.875rem}.content-browser{max-width:800px;margin:0 auto}.content-browser h2{color:#1a365d;margin-bottom:1.5rem}.topic-list{list-style:none;padding:0;margin:0}.topic-item{background:#fff;border:1px solid #e2e8f0;border-radius:8px;margin-bottom:1rem;padding:1rem 1.5rem;cursor:pointer;transition:all .2s}.topic-item:hover{border-color:#2d5a87;box-shadow:0 2px 8px #0000001a}.topic-item h3{margin:0 0 .5rem;color:#2d5a87}.topic-item p{margin:0;color:#666;font-size:.875rem}.content-section{max-width:800px;margin:0 auto}.content-section h2{color:#1a365d;margin-bottom:1rem}.content-body{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a;line-height:1.6}.game-button{display:inline-block;background:linear-gradient(135deg,#38a169,#2f855a);color:#fff;padding:.75rem 1.5rem;border:none;border-radius:8px;font-size:1rem;font-weight:600;cursor:pointer;margin-top:1.5rem;transition:transform .2s,box-shadow .2s}.game-button:hover{transform:translateY(-2px);box-shadow:0 4px 12px #38a1694d}.game-container{max-width:900px;margin:0 auto}.game-container h2{color:#1a365d;margin-bottom:1.5rem}.game-area{background:#fff;border-radius:8px;padding:2rem;box-shadow:0 1px 3px #0000001a}.progress-dashboard{max-width:1000px;margin:0 auto}.progress-dashboard h2{color:#1a365d;margin-bottom:1.5rem}.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;margin-bottom:2rem}.stat-card{background:#fff;border-radius:8px;padding:1.5rem;box-shadow:0 1px 3px #0000001a;text-align:center}.stat-card h3{margin:0 0 .5rem;color:#666;font-size:.875rem;font-weight:500}.stat-card .value{font-size:2rem;font-weight:700;color:#2d5a87}.loading{display:flex;justify-content:center;align-items:center;min-height:200px;color:#666}.loading:after{content:"";width:24px;height:24px;border:3px solid #e2e8f0;border-top-color:#2d5a87;border-radius:50%;animation:spin 1s linear infinite;margin-left:.5rem}@keyframes spin{to{transform:rotate(360deg)}}.error{background:#fed7d7;color:#c53030;padding:1rem;border-radius:8px;margin:1rem 0}@media(max-width:768px){.app-header{flex-direction:column;gap:1rem;text-align:center}.app-header h1{font-size:1.25rem}.app-main,.content-body,.game-area{padding:1rem}.stats-grid{grid-template-columns:1fr}}@media(max-width:480px){.app-nav{gap:.5rem}.app-nav a{padding:.5rem;font-size:.875rem}}.demo-controls{display:flex;align-items:center}.demo-btn{padding:.5rem 1rem;border:none;border-radius:6px;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s}.demo-btn.load{background:linear-gradient(135deg,#38a169,#2f855a);color:#fff}.demo-btn.load:hover{transform:translateY(-1px);box-shadow:0 2px 8px #38a16966}.demo-btn.clear{background:#fff3;color:#fff;border:1px solid rgba(255,255,255,.3)}.demo-btn.clear:hover{background:#ffffff4d}
