._simulator-panel_19er7_5{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);overflow:hidden}._simulator-panel_19er7_5._compact_19er7_12{font-size:.9em}._simulator-header_19er7_16{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);background:#0003;border-bottom:1px solid var(--border-color)}._simulator-header_19er7_16 h3{margin:0;font-size:var(--font-lg);font-weight:var(--font-semibold);color:var(--text-primary)}._simulator-close-btn_19er7_32{background:transparent;border:none;color:var(--text-muted);font-size:var(--font-lg);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:var(--transition-fast)}._simulator-close-btn_19er7_32:hover{background:var(--bg-hover);color:var(--text-primary)}._simulator-expand-btn_19er7_48{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:var(--text-primary);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-normal)}._simulator-expand-btn_19er7_48:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}._simulator-content_19er7_67{padding:var(--space-4);display:flex;flex-direction:column;gap:var(--space-6)}._week-indicator_19er7_75{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:linear-gradient(135deg,#6c63ff26,#6c63ff0d);border-radius:var(--radius-md);border:1px solid rgba(108,99,255,.3);margin-bottom:var(--space-4)}._week-badge_19er7_86{background:var(--gradient-primary);color:#fff;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--font-sm);font-weight:var(--font-semibold);white-space:nowrap}._week-components_19er7_96{color:var(--text-secondary);font-size:var(--font-sm)}._simulator-section_19er7_101{background:#00000026;border-radius:var(--radius-md);padding:var(--space-4)}._simulator-section_19er7_101 h4{margin:0 0 var(--space-4) 0;font-size:var(--font-md);font-weight:var(--font-semibold);color:var(--text-secondary)}._simulator-footer_19er7_114{padding:var(--space-3) var(--space-4);background:#0003;border-top:1px solid var(--border-color)}._simulator-hint_19er7_120{font-size:var(--font-xs);color:var(--text-muted)}._simulator-board_19er7_126{display:flex;justify-content:center;padding:var(--space-4)}._esp32-visual_19er7_132{display:flex;flex-direction:column;align-items:center;gap:var(--space-3)}._esp32-chip_19er7_139{background:linear-gradient(145deg,#2a2a2a,#1a1a1a);border:2px solid #444;border-radius:var(--radius-md);padding:var(--space-4) var(--space-6);position:relative;box-shadow:0 4px 12px #00000080,inset 0 1px #ffffff1a}._esp32-chip_19er7_139:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:8px;height:8px;background:#222;border-radius:50%;box-shadow:0 0 0 2px #333}._esp32-label_19er7_163{font-family:Fira Code,monospace;font-size:var(--font-xs);font-weight:var(--font-bold);color:#888;letter-spacing:.05em}._esp32-pins_19er7_171{display:flex;gap:var(--space-3);flex-wrap:wrap;justify-content:center}._pin-indicator_19er7_178{display:flex;flex-direction:column;align-items:center;gap:var(--space-1)}._pin-dot_19er7_185{width:8px;height:8px;border-radius:50%;background:#333;border:1px solid #444;transition:var(--transition-fast)}._pin-dot_19er7_185._active_19er7_194{background:var(--success);box-shadow:0 0 8px var(--success)}._pin-label_19er7_199{font-family:Fira Code,monospace;font-size:10px;color:var(--text-muted)}._simulator-leds_19er7_206{display:flex;gap:var(--space-4);flex-wrap:wrap;justify-content:center}._virtual-led-container_19er7_214{display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}._virtual-led_19er7_214{cursor:default;position:relative}._virtual-led_19er7_214._on_19er7_226:after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150%;height:150%;border-radius:50%;background:inherit;filter:blur(10px);opacity:.4;z-index:-1}._virtual-led-label_19er7_241{font-family:Fira Code,monospace;color:var(--text-secondary);text-align:center}._virtual-led-status_19er7_247{font-family:Fira Code,monospace;font-weight:var(--font-bold);text-transform:uppercase;letter-spacing:.1em}._virtual-led-status_19er7_247._on_19er7_226{color:var(--success)}._virtual-led-status_19er7_247._off_19er7_258{color:var(--text-muted)}._simulator-sensors_19er7_263{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4)}._virtual-sensor_19er7_270{background:#0003;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-3);transition:var(--transition-fast)}._virtual-sensor_19er7_270:hover{border-color:var(--border-glow);background:#0000004d}._virtual-sensor-header_19er7_283{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-3)}._virtual-sensor-icon_19er7_290{font-size:var(--font-xl)}._virtual-sensor-label_19er7_294{font-size:var(--font-sm);font-weight:var(--font-medium);color:var(--text-secondary)}._virtual-sensor-display_19er7_300{display:flex;align-items:baseline;gap:var(--space-1);margin-bottom:var(--space-3)}._virtual-sensor-value_19er7_307{font-family:Fira Code,monospace;font-size:var(--font-2xl);font-weight:var(--font-bold)}._virtual-sensor-unit_19er7_313{font-size:var(--font-sm);color:var(--text-muted)}._virtual-sensor-bar-container_19er7_318{height:6px;background:#0000004d;border-radius:var(--radius-full);overflow:hidden;margin-bottom:var(--space-3)}._virtual-sensor-bar_19er7_318{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}._virtual-sensor-control_19er7_332{width:100%}._virtual-sensor-slider_19er7_336{width:100%;height:6px;-webkit-appearance:none;appearance:none;background:#ffffff1a;border-radius:var(--radius-full);cursor:pointer}._virtual-sensor-slider_19er7_336::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;transition:var(--transition-fast);box-shadow:var(--shadow-sm)}._virtual-sensor-slider_19er7_336::-webkit-slider-thumb:hover{transform:scale(1.2);box-shadow:var(--shadow-glow)}._virtual-sensor-slider_19er7_336::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--primary);cursor:pointer;border:none;transition:var(--transition-fast);box-shadow:var(--shadow-sm)}._virtual-sensor-toggle_19er7_374{width:100%;padding:var(--space-2) var(--space-3);border:2px solid;border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast);color:var(--text-primary)}._virtual-sensor-toggle_19er7_374:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}._virtual-sensor-toggle_19er7_374._active_19er7_194{animation:_pulse_19er7_1 1s infinite}._virtual-buzzer_19er7_396{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4);background:#0003;border:1px solid var(--border-color);border-radius:var(--radius-md);transition:var(--transition-fast)}._virtual-buzzer_19er7_396._playing_19er7_407{border-color:var(--secondary);box-shadow:0 0 20px #00d9ff33}._virtual-buzzer-icon_19er7_412{font-size:var(--font-3xl)}._virtual-buzzer-icon_19er7_412 ._animate-pulse_19er7_416{animation:_pulse_19er7_1 .5s ease-in-out infinite}._virtual-buzzer-info_19er7_420{flex:1}._virtual-buzzer-label_19er7_424{font-size:var(--font-sm);color:var(--text-muted);margin-bottom:var(--space-1)}._virtual-buzzer-status_19er7_430{font-family:Fira Code,monospace;font-size:var(--font-lg);font-weight:var(--font-semibold);color:var(--text-secondary)}._virtual-buzzer-status_19er7_430._playing_19er7_407{color:var(--secondary)}._virtual-buzzer-waves_19er7_441{display:flex;gap:var(--space-1)}._virtual-buzzer-waves_19er7_441 ._wave_19er7_446{opacity:0;animation:_wave-appear_19er7_1 .5s ease-out forwards}._virtual-buzzer-waves_19er7_441 ._wave-1_19er7_451{animation-delay:0s}._virtual-buzzer-waves_19er7_441 ._wave-2_19er7_455{animation-delay:.15s}._virtual-buzzer-waves_19er7_441 ._wave-3_19er7_459{animation-delay:.3s}@keyframes _wave-appear_19er7_1{0%{opacity:0;transform:translate(-5px)}50%{opacity:1}to{opacity:.6;transform:translate(5px)}}@keyframes _pulse_19er7_1{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}}._simulator-wrapper_19er7_492{display:flex;flex-direction:column;gap:var(--space-4);margin:var(--space-4) 0}._mpu-controls_19er7_499{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-4)}._mpu-title_19er7_506{font-size:var(--font-md);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:var(--space-3);display:flex;align-items:center;gap:var(--space-2)}._mpu-grid_19er7_516{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:var(--space-3)}._mpu-grid_19er7_516 label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--font-sm);color:var(--text-secondary);background:#00000026;padding:var(--space-3);border-radius:var(--radius-md)}._mpu-grid_19er7_516 input[type=range]{width:100%;accent-color:var(--accent)}._simulator-tabs_19er7_542{display:flex;gap:var(--space-1);padding:var(--space-2);background:#0003;border-bottom:1px solid var(--border-color)}._sim-tab_19er7_550{flex:1;padding:var(--space-2) var(--space-3);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-sm);cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;justify-content:center;gap:var(--space-1)}._sim-tab_19er7_550:hover{background:#ffffff0d;color:var(--text-primary)}._sim-tab_19er7_550._active_19er7_194{background:var(--primary);color:#fff}._console-badge_19er7_576{background:var(--accent);color:#fff;font-size:var(--font-xs);padding:2px 6px;border-radius:var(--radius-full);min-width:18px;text-align:center}._running-indicator_19er7_586{color:var(--success);font-size:var(--font-sm);margin-left:var(--space-2);animation:_pulse_19er7_1 1s ease-in-out infinite}@keyframes _pulse_19er7_1{0%,to{opacity:1}50%{opacity:.5}}._current-line_19er7_598{display:block;font-size:var(--font-xs);color:var(--secondary);margin-top:var(--space-1)}._simulator-console_19er7_606{background:#0a0a1a;border-radius:var(--radius-md);height:250px;overflow:hidden}._console-output_19er7_613{height:100%;overflow-y:auto;padding:var(--space-3);font-family:JetBrains Mono,Fira Code,monospace;font-size:var(--font-sm)}._console-empty_19er7_621{color:var(--text-muted);text-align:center;padding:var(--space-8)}._console-line_19er7_627{color:var(--success-light);padding:var(--space-1) 0;display:flex;gap:var(--space-2)}._console-prefix_19er7_634{color:var(--secondary);font-weight:700}._virtual-imu_19er7_643{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:var(--space-4);text-align:center}._imu-header_19er7_651{display:flex;align-items:center;justify-content:center;gap:var(--space-2);margin-bottom:var(--space-3)}._imu-icon_19er7_659{font-size:var(--font-xl)}._imu-title_19er7_663{font-size:var(--font-md);font-weight:var(--font-semibold);color:var(--text-primary)}._imu-canvas_19er7_669{border:2px solid var(--border-color);border-radius:var(--radius-md);cursor:grab;transition:var(--transition-fast)}._imu-canvas_19er7_669:hover{border-color:var(--primary)}._imu-canvas_19er7_669._dragging_19er7_680{cursor:grabbing;border-color:var(--secondary)}._imu-canvas_19er7_669._disabled_19er7_685{opacity:.6;cursor:not-allowed}._imu-values_19er7_690{display:flex;justify-content:center;gap:var(--space-4);margin:var(--space-3) 0;font-family:JetBrains Mono,monospace;font-size:var(--font-sm)}._imu-value_19er7_690{display:flex;align-items:center;gap:var(--space-1)}._axis-label_19er7_705{font-weight:700}._axis-value_19er7_709{color:var(--text-secondary);min-width:60px;text-align:left}._imu-presets_19er7_715{display:flex;justify-content:center;gap:var(--space-2);margin:var(--space-3) 0}._imu-preset-btn_19er7_722{background:#ffffff1a;border:1px solid var(--border-color);border-radius:var(--radius-md);padding:var(--space-2);font-size:var(--font-lg);cursor:pointer;transition:var(--transition-fast)}._imu-preset-btn_19er7_722:hover:not(:disabled){background:var(--primary);border-color:var(--primary)}._imu-preset-btn_19er7_722:disabled{opacity:.5;cursor:not-allowed}._imu-reset-btn_19er7_742{background:var(--gradient-accent);border:none;border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);color:#fff;font-size:var(--font-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast)}._imu-reset-btn_19er7_742:hover:not(:disabled){transform:scale(1.05)}._imu-reset-btn_19er7_742:disabled{opacity:.5;cursor:not-allowed}._imu-hint_19er7_763{color:var(--text-muted);font-size:var(--font-xs);margin-top:var(--space-2)}._page-loader_19er7_773{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:300px;gap:var(--space-4)}._loader-spinner_19er7_782{width:48px;height:48px;border:4px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:_spin_19er7_1 1s linear infinite}@keyframes _spin_19er7_1{to{transform:rotate(360deg)}}._page-loader_19er7_773 p{color:var(--text-secondary);font-size:var(--font-md)}@media (max-width: 768px){._virtual-board_19er7_805{width:100%;max-width:300px;margin:0 auto}._virtual-board-container_19er7_811{padding:var(--space-3)}._board-led_19er7_815{width:16px;height:16px}._board-pin_19er7_820{width:12px;height:12px;font-size:8px}._board-label_19er7_826{font-size:var(--font-xs)}._gpio-monitor_19er7_830{font-size:var(--font-sm)}._gpio-pin-row_19er7_834{padding:var(--space-2);gap:var(--space-2)}._gpio-pin-value_19er7_839{font-size:var(--font-xs);padding:var(--space-1);min-width:32px}}body.light ._simulator-panel_19er7_5{background:#fff;border-color:#e2e8f0}body.light ._simulator-header_19er7_16{background:#f8fafc;border-bottom-color:#e2e8f0}body.light ._simulator-tabs_19er7_542{background:#f1f5f9;border-bottom-color:#e2e8f0}body.light ._sim-tab_19er7_550{color:#64748b}body.light ._sim-tab_19er7_550:hover{background:#0000000d;color:#1e293b}body.light ._simulator-section_19er7_101{background:#f8fafc;border:1px solid #e2e8f0}body.light ._simulator-section_19er7_101 h4{color:#334155}body.light ._week-indicator_19er7_75{background:linear-gradient(135deg,#6366f114,#6366f108);border-color:#6366f133}body.light ._simulator-console_19er7_606{background:#1e1e2e}body.light ._simulator-footer_19er7_114{background:#f8fafc;border-top-color:#e2e8f0}body.light ._virtual-sensor_19er7_270{background:#f1f5f9;border-color:#e2e8f0}body.light ._virtual-sensor_19er7_270:hover{background:#e2e8f0;border-color:#cbd5e1}body.light ._virtual-buzzer_19er7_396{background:#f1f5f9;border-color:#e2e8f0}body.light ._virtual-sensor-slider_19er7_336{background:#0000001a}body.light ._virtual-sensor-bar-container_19er7_318{background:#00000014}body.light ._imu-preset-btn_19er7_722{background:#f1f5f9;border-color:#e2e8f0}body.light ._mpu-controls_19er7_499{background:#fff;border-color:#e2e8f0}body.light ._mpu-grid_19er7_516 label{background:#f8fafc}._virtual-servo_1jlss_6{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-servo-header_1jlss_13{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-servo-icon_1jlss_20{font-size:1.25rem}._virtual-servo-label_1jlss_24{font-weight:600;color:var(--text-primary);flex:1}._virtual-servo-pin_1jlss_30{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-servo-display_1jlss_38{display:flex;flex-direction:column;align-items:center;gap:1rem}._servo-visual_1jlss_45{width:120px;height:80px}._servo-svg_1jlss_50{width:100%;height:100%}._servo-value_1jlss_55{display:flex;flex-direction:column;align-items:center;gap:.25rem}._servo-angle_1jlss_62{font-size:1.5rem;font-weight:700}._servo-pwm_1jlss_67{font-size:.75rem;color:var(--text-muted)}._virtual-servo-control_1jlss_72{width:100%}._servo-slider_1jlss_76{width:100%;margin-bottom:.5rem}._servo-presets_1jlss_81{display:flex;gap:.25rem;justify-content:center}._servo-presets_1jlss_81 button{padding:.25rem .5rem;font-size:.7rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}._servo-presets_1jlss_81 button:hover{background:var(--bg-hover);color:var(--text-primary)}._virtual-stepper_1jlss_104{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-stepper-header_1jlss_111{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;flex-wrap:wrap}._virtual-stepper-icon_1jlss_119{font-size:1.25rem}._virtual-stepper-label_1jlss_123{font-weight:600;color:var(--text-primary);flex:1}._virtual-stepper-pins_1jlss_129{font-size:.65rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-stepper-display_1jlss_137{display:flex;flex-direction:column;align-items:center;gap:1rem}._stepper-visual_1jlss_144{width:100px;height:100px}._stepper-svg_1jlss_149{width:100%;height:100%}._stepper-info_1jlss_154{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;width:100%}._stepper-stat_1jlss_161{display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--bg-secondary);border-radius:var(--radius-sm)}._stepper-stat-label_1jlss_170{font-size:.65rem;color:var(--text-muted);text-transform:uppercase}._stepper-stat-value_1jlss_176{font-size:.875rem;font-weight:600;color:var(--text-primary)}._stepper-stat-value_1jlss_176._direction-cw_1jlss_182{color:#4ade80}._stepper-stat-value_1jlss_176._direction-ccw_1jlss_186{color:#f97316}._stepper-stat-value_1jlss_176._direction-stop_1jlss_190{color:var(--text-muted)}._virtual-stepper-control_1jlss_194{width:100%;display:flex;flex-direction:column;gap:.5rem}._stepper-buttons_1jlss_201{display:flex;gap:.5rem}._stepper-buttons_1jlss_201 button{flex:1;padding:.5rem;font-size:.75rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}._stepper-buttons_1jlss_201 button:hover{background:var(--bg-hover)}._stepper-buttons_1jlss_201 button._active_1jlss_222{background:var(--primary);border-color:var(--primary);color:#fff}._stepper-step-control_1jlss_228{display:flex;gap:.25rem}._stepper-step-control_1jlss_228 button{flex:1;padding:.25rem;font-size:.65rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer}._virtual-dht11_1jlss_245{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-dht11-header_1jlss_252{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-dht11-icon_1jlss_259{font-size:1.25rem}._virtual-dht11-label_1jlss_263{font-weight:600;color:var(--text-primary);flex:1}._virtual-dht11-pin_1jlss_269{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-dht11-display_1jlss_277{display:flex;gap:1rem;align-items:flex-start}._dht11-visual_1jlss_283{width:100px;height:70px;flex-shrink:0}._dht11-svg_1jlss_289{width:100%;height:100%}._dht11-readings_1jlss_294{flex:1;display:flex;flex-direction:column;gap:.75rem}._dht11-reading_1jlss_294{display:flex;align-items:center;gap:.5rem}._dht11-reading-icon_1jlss_307{font-size:1rem}._dht11-reading-data_1jlss_311{display:flex;flex-direction:column;min-width:60px}._dht11-reading-value_1jlss_317{font-size:1.125rem;font-weight:700}._dht11-reading-label_1jlss_322{font-size:.65rem;color:var(--text-muted)}._dht11-bar-container_1jlss_327{flex:1;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}._dht11-bar_1jlss_327{height:100%;border-radius:3px;transition:width .3s ease}._virtual-dht11-control_1jlss_341{display:flex;flex-direction:column;gap:.75rem;margin-top:1rem}._dht11-slider-group_1jlss_348{display:flex;flex-direction:column;gap:.25rem}._dht11-slider-group_1jlss_348 label{font-size:.75rem;color:var(--text-secondary)}._dht11-slider-group_1jlss_348 input[type=range]{width:100%}._virtual-lcd_1jlss_364{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-lcd-header_1jlss_371{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-lcd-icon_1jlss_378{font-size:1.25rem}._virtual-lcd-label_1jlss_382{font-weight:600;color:var(--text-primary);flex:1}._virtual-lcd-addr_1jlss_388{font-size:.7rem;color:var(--text-muted);font-family:monospace;background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-lcd-display_1jlss_397{display:flex;flex-direction:column;align-items:center;gap:1rem}._lcd-frame_1jlss_404{background:#1a4a1a;padding:.75rem;border-radius:var(--radius-md);border:3px solid #0d2d0d;box-shadow:inset 0 2px 4px #00000080}._lcd-frame_1jlss_404._backlight-on_1jlss_412{background:#2a6a2a;box-shadow:inset 0 2px 4px #0000004d,0 0 10px #32c8324d}._lcd-frame_1jlss_404._backlight-off_1jlss_417{background:#1a3a1a}._lcd-screen_1jlss_421{font-family:Courier New,monospace;background:transparent;padding:.25rem}._lcd-line_1jlss_427{display:flex;gap:2px;margin-bottom:2px}._lcd-char_1jlss_433{width:12px;height:18px;display:flex;align-items:center;justify-content:center;color:#1a1a1a;font-size:14px;font-weight:700;background:#0000001a;border-radius:1px}._lcd-frame_1jlss_404._backlight-on_1jlss_412 ._lcd-char_1jlss_433{color:#0a2a0a}._lcd-char_1jlss_433._cursor_1jlss_450{animation:_lcd-cursor_1jlss_1 1s infinite}@keyframes _lcd-cursor_1jlss_1{0%,50%{background:#0006}51%,to{background:#0000001a}}._lcd-info_1jlss_459{display:flex;gap:1rem;font-size:.7rem;color:var(--text-muted)}._lcd-info-item_1jlss_466{display:flex;align-items:center;gap:.25rem}._lcd-info-label_1jlss_472{color:var(--text-muted)}._lcd-backlight-indicator_1jlss_476._on_1jlss_476{color:#4ade80}._lcd-backlight-indicator_1jlss_476._off_1jlss_480{color:var(--text-muted)}._virtual-joystick_1jlss_485{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-joystick-header_1jlss_492{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-joystick-icon_1jlss_499{font-size:1.25rem}._virtual-joystick-label_1jlss_503{font-weight:600;color:var(--text-primary)}._virtual-joystick-display_1jlss_508{display:flex;flex-direction:column;align-items:center;gap:1rem}._joystick-pad_1jlss_515{width:120px;height:120px;position:relative;cursor:grab;user-select:none}._joystick-pad_1jlss_515._dragging_1jlss_523{cursor:grabbing}._joystick-bg_1jlss_527{position:absolute;width:100%;height:100%}._joystick-handle_1jlss_533{position:absolute;width:30px;height:30px;border-radius:50%;left:50%;top:50%;margin-left:-15px;margin-top:-15px;box-shadow:0 2px 8px #0000004d;transition:transform .05s ease-out}._joystick-values_1jlss_546{display:flex;gap:1rem;width:100%}._joystick-value-item_1jlss_552{flex:1;display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--bg-secondary);border-radius:var(--radius-sm)}._joystick-value-label_1jlss_562{font-size:.65rem;color:var(--text-muted)}._joystick-value-num_1jlss_567{font-size:.875rem;font-weight:600;color:var(--text-primary);font-family:monospace}._joystick-value-dir_1jlss_574{font-size:.875rem;font-weight:600;color:var(--secondary)}._joystick-button_1jlss_580{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);font-size:.75rem}._joystick-button_1jlss_580._pressed_1jlss_591{background:var(--accent);border-color:var(--accent);color:#fff}._virtual-ir_1jlss_598{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-ir-header_1jlss_605{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-ir-icon_1jlss_612{font-size:1.25rem}._virtual-ir-label_1jlss_616{font-weight:600;color:var(--text-primary);flex:1}._virtual-ir-pin_1jlss_622{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-ir-display_1jlss_630{display:flex;gap:1rem;align-items:flex-start}._ir-receiver_1jlss_636{display:flex;flex-direction:column;align-items:center;gap:.5rem}._ir-receiver-visual_1jlss_643{width:60px;height:40px}._ir-receiver-visual_1jlss_643._receiving_1jlss_648 ._ir-receiver-svg_1jlss_648 circle:nth-child(2){animation:_ir-pulse_1jlss_1 .3s infinite}@keyframes _ir-pulse_1jlss_1{0%,to{fill:#333}50%{fill:#ff6b6b}}._ir-receiver-svg_1jlss_648{width:100%;height:100%}._ir-last-code_1jlss_662{display:flex;flex-direction:column;align-items:center;gap:.125rem}._ir-code-label_1jlss_669{font-size:.65rem;color:var(--text-muted)}._ir-code-value_1jlss_674{font-size:.875rem;font-weight:700;color:var(--secondary);font-family:monospace}._ir-code-name_1jlss_681{font-size:.7rem;color:var(--text-secondary)}._ir-remote_1jlss_686{flex:1}._ir-remote-body_1jlss_690{background:linear-gradient(180deg,#2a2a3e,#1a1a2e);border-radius:var(--radius-md);padding:.75rem;border:1px solid var(--border-color)}._ir-remote-header_1jlss_697{display:flex;justify-content:center;margin-bottom:.5rem}._ir-led_1jlss_703{width:8px;height:8px;border-radius:50%;background:#404}._ir-button-row_1jlss_710{display:flex;justify-content:center;gap:.25rem;margin-bottom:.25rem}._ir-btn_1jlss_717{width:28px;height:24px;border:none;border-radius:4px;background:var(--bg-secondary);color:var(--text-secondary);font-size:.6rem;cursor:pointer;transition:var(--transition-fast);display:flex;align-items:center;justify-content:center}._ir-btn_1jlss_717:hover{background:var(--bg-hover);color:var(--text-primary)}._ir-btn_1jlss_717:active{background:var(--primary);color:#fff}._ir-btn_1jlss_717._power_1jlss_742{color:var(--accent)}._ir-btn_1jlss_717._play_1jlss_746{background:var(--primary);color:#fff}._ir-numpad_1jlss_751{display:grid;grid-template-columns:repeat(3,1fr);gap:.25rem;margin-top:.5rem}._ir-btn_1jlss_717._num_1jlss_758{width:100%;height:22px}._virtual-shiftregister_1jlss_764{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-shiftregister-header_1jlss_771{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-shiftregister-icon_1jlss_778{font-size:1.25rem}._virtual-shiftregister-label_1jlss_782{font-weight:600;color:var(--text-primary)}._virtual-shiftregister-display_1jlss_787{display:flex;flex-direction:column;gap:1rem}._shiftregister-ic_1jlss_793{width:100%;max-width:200px;margin:0 auto}._shiftregister-svg_1jlss_799{width:100%;height:auto}._shiftregister-pins_1jlss_804{display:flex;justify-content:center;gap:1rem;flex-wrap:wrap}._pin-info_1jlss_811{font-size:.7rem;color:var(--text-muted)}._pin-info_1jlss_811 ._pin-label_1jlss_816{color:var(--secondary);font-weight:600}._shiftregister-outputs_1jlss_821{display:flex;flex-direction:column;gap:.5rem}._output-label_1jlss_827{font-size:.75rem;color:var(--text-secondary);text-align:center}._output-leds_1jlss_833{display:flex;justify-content:center;gap:.25rem}._output-led_1jlss_833{width:28px;height:36px;border:none;border-radius:var(--radius-sm);background:var(--bg-secondary);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;transition:var(--transition-fast)}._output-led_1jlss_833:hover{background:var(--bg-hover)}._output-led_1jlss_833 ._led-glow_1jlss_858{width:12px;height:12px;border-radius:50%;background:#333;transition:var(--transition-fast)}._output-led_1jlss_833._on_1jlss_476 ._led-glow_1jlss_858{background:#4ade80;box-shadow:0 0 8px #4ade80}._output-led_1jlss_833 ._led-label_1jlss_871{font-size:.55rem;color:var(--text-muted)}._shiftregister-value_1jlss_876{background:var(--bg-secondary);border-radius:var(--radius-sm);padding:.75rem}._value-row_1jlss_882{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}._value-row_1jlss_882:last-child{margin-bottom:0}._value-label_1jlss_893{font-size:.7rem;color:var(--text-muted);min-width:50px}._value-binary_1jlss_899{font-family:monospace;font-size:.875rem;letter-spacing:2px}._value-binary_1jlss_899 ._bit-on_1jlss_905{color:#4ade80;font-weight:700}._value-binary_1jlss_899 ._bit-off_1jlss_910{color:var(--text-muted)}._value-decimal_1jlss_914,._value-hex_1jlss_914{font-family:monospace;font-size:.875rem;font-weight:600;color:var(--secondary)}._shiftregister-controls_1jlss_921{display:flex;flex-direction:column;gap:.5rem}._shiftregister-controls_1jlss_921>button{padding:.5rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast);font-size:.75rem}._shiftregister-controls_1jlss_921>button:hover{background:var(--bg-hover);color:var(--text-primary)}._preset-buttons_1jlss_943{display:flex;gap:.25rem}._preset-buttons_1jlss_943 button{flex:1;padding:.25rem;font-size:.65rem;font-family:monospace;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer}._preset-buttons_1jlss_943 button:hover{background:var(--bg-hover);color:var(--text-secondary)}._virtual-potentiometer_1jlss_966{background:var(--bg-card);border-radius:var(--radius-md);padding:1rem;border:1px solid var(--border-color)}._virtual-potentiometer-header_1jlss_973{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem}._virtual-potentiometer-icon_1jlss_980{font-size:1.25rem}._virtual-potentiometer-label_1jlss_984{font-weight:600;color:var(--text-primary);flex:1}._virtual-potentiometer-pin_1jlss_990{font-size:.75rem;color:var(--text-muted);background:var(--bg-secondary);padding:.25rem .5rem;border-radius:var(--radius-sm)}._virtual-potentiometer-display_1jlss_998{display:flex;flex-direction:column;align-items:center;gap:1rem}._potentiometer-visual_1jlss_1005{width:100px;height:100px}._potentiometer-svg_1jlss_1010{width:100%;height:100%}._potentiometer-values_1jlss_1015{display:flex;gap:1rem;width:100%}._pot-value-item_1jlss_1021{flex:1;display:flex;flex-direction:column;align-items:center;padding:.5rem;background:var(--bg-secondary);border-radius:var(--radius-sm)}._pot-value-label_1jlss_1031{font-size:.65rem;color:var(--text-muted)}._pot-value-num_1jlss_1036{font-size:.875rem;font-weight:600;color:var(--text-primary);font-family:monospace}._potentiometer-bar-container_1jlss_1043{width:100%;height:6px;background:var(--bg-secondary);border-radius:3px;overflow:hidden}._potentiometer-bar_1jlss_1043{height:100%;border-radius:3px;transition:width .1s ease}._virtual-potentiometer-control_1jlss_1057{width:100%}._potentiometer-slider_1jlss_1061{width:100%;margin-bottom:.5rem}._pot-presets_1jlss_1066{display:flex;gap:.25rem;justify-content:center}._pot-presets_1jlss_1066 button{padding:.25rem .5rem;font-size:.65rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:var(--transition-fast)}._pot-presets_1jlss_1066 button:hover{background:var(--bg-hover);color:var(--text-secondary)}._simulator-section_1jlss_1089{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}._simulator-section_1jlss_1089:last-child{margin-bottom:0}._simulator-section_1jlss_1089 h4{margin:0 0 .75rem;font-size:.875rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}._hardware-selector_ety8b_5{position:relative;min-width:200px}._hardware-selector_ety8b_5._disabled_ety8b_10{opacity:.6;pointer-events:none}._hardware-selector-trigger_ety8b_15{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast)}._hardware-selector-trigger_ety8b_15:hover{border-color:var(--primary)}._selected-hardware_ety8b_31{display:flex;align-items:center;gap:var(--space-2)}._hardware-icon_ety8b_37{width:28px;height:28px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;color:#fff;font-size:14px}._hardware-icon_ety8b_37._small_ety8b_48{width:24px;height:24px;font-size:12px}._dropdown-arrow_ety8b_54{width:20px;height:20px;color:var(--text-muted);transition:transform var(--transition-fast)}._dropdown-arrow_ety8b_54._expanded_ety8b_61{transform:rotate(180deg)}._hardware-selector-dropdown_ety8b_65{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);z-index:100;max-height:400px;overflow-y:auto}._hardware-group_ety8b_79{border-bottom:1px solid var(--border-color)}._hardware-group_ety8b_79:last-child{border-bottom:none}._hardware-group-header_ety8b_87{display:flex;flex-direction:column;padding:var(--space-3);background:var(--bg-secondary);cursor:pointer}._hardware-group-header_ety8b_87 ._group-label_ety8b_95{font-weight:var(--font-semibold);color:var(--text-primary);font-size:var(--font-sm)}._hardware-group-header_ety8b_87 ._group-desc_ety8b_101{font-size:var(--font-xs);color:var(--text-muted)}._hardware-group-options_ety8b_106{padding:var(--space-2)}._hardware-option_ety8b_110{display:flex;flex-direction:column;padding:var(--space-3);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);margin-bottom:var(--space-1)}._hardware-option_ety8b_110:hover{background:var(--bg-hover)}._hardware-option_ety8b_110._selected_ety8b_31{background:#6366f11a;border:1px solid var(--primary)}._hardware-option-header_ety8b_129{display:flex;align-items:center;gap:var(--space-3)}._hardware-info_ety8b_135{flex:1}._hardware-info_ety8b_135 ._hardware-name_ety8b_139{font-weight:var(--font-medium);color:var(--text-primary);font-size:var(--font-sm)}._hardware-info_ety8b_135 ._hardware-desc_ety8b_145{font-size:var(--font-xs);color:var(--text-muted)}._hardware-check_ety8b_150{width:20px;height:20px;color:var(--primary)}._hardware-capabilities_ety8b_156{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-color);font-size:var(--font-xs)}._capability-row_ety8b_163{display:flex;justify-content:space-between;padding:var(--space-1) 0}._capability-label_ety8b_169{color:var(--text-muted)}._capability-value_ety8b_173{color:var(--text-secondary);font-family:var(--font-mono)}._capability-badges_ety8b_178{display:flex;gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap}._capability-badge_ety8b_178{padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border-radius:var(--radius-full);font-size:10px;color:var(--text-secondary)}._hardware-selector-header_ety8b_194{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2);flex-wrap:wrap}._hardware-connection-status_ety8b_203{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-xs);color:var(--text-muted)}._connection-indicator_ety8b_211{width:8px;height:8px;border-radius:50%;animation:_pulse_ety8b_1 2s infinite}._connection-indicator_ety8b_211[style*=connecting]{animation:_pulse_ety8b_1 .5s infinite}@keyframes _pulse_ety8b_1{0%,to{opacity:1}50%{opacity:.5}}._connection-label_ety8b_227{font-size:var(--font-xs)}._hardware-usb-detect_ety8b_232{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-xs);color:var(--text-secondary);cursor:pointer;transition:var(--transition-fast)}._hardware-usb-detect_ety8b_232:hover:not(:disabled){border-color:var(--primary);color:var(--primary)}._hardware-usb-detect_ety8b_232:disabled{opacity:.5;cursor:not-allowed}._hardware-usb-detect_ety8b_232._detecting_ety8b_256{pointer-events:none}._hardware-usb-detect_ety8b_232._detecting_ety8b_256 svg{animation:_spin_ety8b_1 1s linear infinite}@keyframes _spin_ety8b_1{0%{transform:rotate(0)}to{transform:rotate(360deg)}}._hardware-mode-toggle_ety8b_270{margin-left:auto}._mode-toggle-label_ety8b_274{display:flex;align-items:center;gap:var(--space-2);cursor:pointer;font-size:var(--font-xs)}._mode-toggle-label_ety8b_274 input{display:none}._toggle-switch_ety8b_286{position:relative;width:36px;height:20px;background:var(--bg-tertiary);border-radius:var(--radius-full);transition:var(--transition-fast)}._toggle-switch_ety8b_286:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;transition:var(--transition-fast)}._mode-toggle-label_ety8b_274 input:checked+._toggle-switch_ety8b_286{background:var(--primary)}._mode-toggle-label_ety8b_274 input:checked+._toggle-switch_ety8b_286:after{transform:translate(16px)}._toggle-text_ety8b_315{color:var(--text-secondary);min-width:70px}._simulation-badge_ety8b_321{padding:2px 6px;background:var(--primary);color:#fff;border-radius:var(--radius-sm);font-size:10px;font-weight:var(--font-semibold);margin-left:var(--space-1)}._hardware-option_ety8b_110._has-warnings_ety8b_332{border-left:3px solid #f59e0b}._hardware-info_ety8b_135 ._hardware-name_ety8b_139{display:flex;align-items:center;gap:var(--space-1)}._warning-icon_ety8b_342{display:inline-flex;align-items:center}._hardware-confirm-modal-overlay_ety8b_348{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}._hardware-confirm-modal_ety8b_348{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);max-width:400px;width:90%;box-shadow:var(--shadow-xl)}._hardware-confirm-modal_ety8b_348 h3{margin:0 0 var(--space-3) 0;color:var(--text-primary);font-size:var(--font-lg)}._hardware-confirm-modal_ety8b_348 p{color:var(--text-secondary);margin-bottom:var(--space-3);font-size:var(--font-sm)}._compatibility-issues_ety8b_382{background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-md);padding:var(--space-3);margin-bottom:var(--space-4);list-style:none}._compatibility-issues_ety8b_382 li{color:#b45309;font-size:var(--font-sm);padding:var(--space-1) 0;display:flex;align-items:flex-start;gap:var(--space-2)}._compatibility-issues_ety8b_382 li:before{content:"!";display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;background:#f59e0b;color:#fff;border-radius:50%;font-size:10px;font-weight:700;flex-shrink:0}._modal-actions_ety8b_415{display:flex;gap:var(--space-3);justify-content:flex-end}._modal-btn_ety8b_421{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-size:var(--font-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast)}._modal-btn_ety8b_421._cancel_ety8b_430{background:var(--bg-secondary);border:1px solid var(--border-color);color:var(--text-secondary)}._modal-btn_ety8b_421._cancel_ety8b_430:hover{background:var(--bg-hover)}._modal-btn_ety8b_421._confirm_ety8b_440{background:var(--primary);border:none;color:#fff}._modal-btn_ety8b_421._confirm_ety8b_440:hover{background:var(--primary-hover)}._hardware-selector-trigger_ety8b_15:focus-visible,._hardware-option_ety8b_110:focus-visible,._hardware-group-header_ety8b_87:focus-visible,._hardware-usb-detect_ety8b_232:focus-visible{outline:2px solid var(--primary);outline-offset:2px}._virtual-pico-board_ety8b_463{display:flex;flex-direction:column;align-items:center;gap:var(--space-3);transform-origin:top center}._pico-svg_ety8b_471{filter:drop-shadow(0 4px 8px rgba(0,0,0,.3))}._pico-pin_ety8b_475{cursor:default;transition:opacity var(--transition-fast)}._pico-pin_ety8b_475._gpio_ety8b_480{cursor:pointer}._pico-pin_ety8b_475._hovered_ety8b_484 circle:first-child{filter:brightness(1.3)}._pin-tooltip_ety8b_488{pointer-events:none}._builtin-led_ety8b_492 circle:first-child{transition:fill .15s ease}._pico-status-panel_ety8b_496{display:flex;flex-direction:column;gap:var(--space-2);padding:var(--space-3);background:var(--bg-secondary);border-radius:var(--radius-md);font-size:var(--font-sm);min-width:150px}._pico-status-panel_ety8b_496 ._status-item_ety8b_507{display:flex;justify-content:space-between;align-items:center}._pico-status-panel_ety8b_496 ._status-label_ety8b_513{color:var(--text-muted)}._pico-status-panel_ety8b_496 ._status-value_ety8b_517{font-weight:var(--font-medium);color:var(--text-primary);font-family:var(--font-mono)}._pico-status-panel_ety8b_496 ._status-value_ety8b_517._on_ety8b_523{color:var(--success)}._pico-status-panel_ety8b_496 ._status-value_ety8b_517._off_ety8b_527{color:var(--text-muted)}._pico-playground_ety8b_532{display:flex;flex-direction:column;gap:var(--space-4);padding:var(--space-4);background:var(--bg-dark);border-radius:var(--radius-lg)}._pico-playground-header_ety8b_541{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--space-3);border-bottom:1px solid var(--border-color)}._pico-playground-header_ety8b_541 h2{margin:0;font-size:var(--font-lg);color:var(--text-primary)}._pico-playground-content_ety8b_555{display:grid;grid-template-columns:1fr 300px;gap:var(--space-4)}._code-panel_ety8b_561{display:flex;flex-direction:column;gap:var(--space-3)}._template-selector_ety8b_567{display:flex;align-items:center;gap:var(--space-2)}._template-selector_ety8b_567 label{color:var(--text-secondary);font-size:var(--font-sm)}._template-selector_ety8b_567 select{padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-sm)}._editor-container_ety8b_587{border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}._control-buttons_ety8b_593{display:flex;gap:var(--space-2)}._control-buttons_ety8b_593 ._btn_ety8b_598{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast)}._control-buttons_ety8b_593 ._btn_ety8b_598._primary_ety8b_607{background:var(--primary);color:#fff}._control-buttons_ety8b_593 ._btn_ety8b_598._primary_ety8b_607:hover{background:var(--primary-hover)}._control-buttons_ety8b_593 ._btn_ety8b_598._primary_ety8b_607._running_ety8b_616{background:var(--warning)}._control-buttons_ety8b_593 ._btn_ety8b_598._danger_ety8b_620{background:var(--error);color:#fff}._control-buttons_ety8b_593 ._btn_ety8b_598._secondary_ety8b_625{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}._control-buttons_ety8b_593 ._btn_ety8b_598:disabled{opacity:.5;cursor:not-allowed}._output-panel_ety8b_636{background:var(--bg-card);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}._output-header_ety8b_643{display:flex;justify-content:space-between;align-items:center;padding:var(--space-2) var(--space-3);background:var(--bg-secondary);border-bottom:1px solid var(--border-color);font-size:var(--font-sm);color:var(--text-secondary)}._output-content_ety8b_654{padding:var(--space-3);height:150px;overflow-y:auto;font-family:var(--font-mono);font-size:var(--font-sm)}._output-line_ety8b_662{color:var(--success);line-height:1.5}._output-placeholder_ety8b_667{color:var(--text-muted);font-style:italic}._board-panel_ety8b_672{display:flex;flex-direction:column;gap:var(--space-4)}._stats-panel_ety8b_678{background:var(--bg-secondary);border-radius:var(--radius-md);padding:var(--space-3)}._stats-panel_ety8b_678 h4{margin:0 0 var(--space-2);font-size:var(--font-sm);color:var(--text-muted)}._stat-item_ety8b_690{display:flex;justify-content:space-between;padding:var(--space-1) 0;font-size:var(--font-sm)}._stat-label_ety8b_697{color:var(--text-muted)}._stat-value_ety8b_701{color:var(--text-primary);font-family:var(--font-mono)}@media (max-width: 768px){._pico-playground-content_ety8b_555{grid-template-columns:1fr}._hardware-selector-dropdown_ety8b_65{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90vw;max-height:80vh}}@media (max-width: 768px){._hardware-selector_ety8b_5{min-width:0;width:100%}._hardware-selector-trigger_ety8b_15{padding:var(--space-3);min-height:48px}._hardware-selector-header_ety8b_194{flex-direction:column;align-items:stretch;gap:var(--space-3)}._hardware-mode-toggle_ety8b_270{order:-1}._hardware-usb-detect_ety8b_232{flex:1;justify-content:center;min-height:44px;padding:var(--space-2) var(--space-3)}._hardware-option_ety8b_110{padding:var(--space-4);min-height:56px}._hardware-option-header_ety8b_129{gap:var(--space-4)}._hardware-icon_ety8b_37{width:36px;height:36px;font-size:16px}._hardware-info_ety8b_135 ._hardware-name_ety8b_139{font-size:var(--font-md)}._hardware-info_ety8b_135 ._hardware-desc_ety8b_145{font-size:var(--font-sm)}._hardware-confirm-modal_ety8b_348{width:90vw;max-width:400px;padding:var(--space-4)}._hardware-confirm-modal_ety8b_348 h3{font-size:var(--font-lg)}._modal-actions_ety8b_415{flex-direction:column;gap:var(--space-2)}._modal-btn_ety8b_421{width:100%;min-height:48px;font-size:var(--font-md)}}@media (max-width: 480px){._hardware-selector-dropdown_ety8b_65{position:fixed;inset:auto 0 0;transform:none;max-width:100%;max-height:70vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;z-index:var(--z-modal)}._hardware-group-header_ety8b_87{padding:var(--space-4);min-height:56px}._capability-badges_ety8b_178{justify-content:center}._simulation-badge_ety8b_321{font-size:var(--font-xs);padding:var(--space-1) var(--space-2)}}._code-playground_y5wut_5{display:flex;flex-direction:column;gap:1rem}._playground-toolbar_y5wut_11{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border-radius:var(--radius-md)}._toolbar-left_y5wut_20{display:flex;align-items:center;gap:1rem}._file-name_y5wut_26{font-size:.9rem;font-weight:500}._template-badge_y5wut_31{font-size:.75rem;padding:.25rem .5rem;background:var(--primary);border-radius:4px}._toolbar-right_y5wut_38{display:flex;gap:.5rem}._toolbar-btn_y5wut_43{padding:.5rem 1rem;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}._toolbar-btn_y5wut_43:hover{background:var(--bg-hover);color:var(--text-primary)}._toolbar-btn_y5wut_43._hint-btn_y5wut_59{border-color:var(--warning);color:var(--warning)}._hints-panel_y5wut_65{background:linear-gradient(135deg,#ffc1071a,#ffc1070d);border:1px solid rgba(255,193,7,.3);border-radius:var(--radius-md);padding:1rem;display:flex;justify-content:space-between;align-items:center}._hint-content_y5wut_75{flex:1}._hint-text_y5wut_79{color:var(--warning);font-size:.95rem}._hint-controls_y5wut_84{display:flex;align-items:center;gap:1rem}._hint-counter_y5wut_90{font-size:.8rem;color:var(--text-muted)}._next-hint-btn_y5wut_95{padding:.4rem .8rem;background:var(--warning);border:none;border-radius:var(--radius-sm);color:#000;font-size:.8rem;font-weight:500;cursor:pointer}._mission-panel_y5wut_107{background:linear-gradient(135deg,#6c63ff1a,#6c63ff0d);border:1px solid rgba(108,99,255,.3);border-radius:var(--radius-md);padding:1rem;margin-bottom:1rem}._mission-panel-header_y5wut_115{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid rgba(108,99,255,.2)}._mission-panel-header_y5wut_115 h4{margin:0;color:var(--primary-light);font-size:1rem;font-weight:600}._mission-panel-header_y5wut_115 ._close-btn_y5wut_131{background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;font-size:1rem;transition:color var(--transition-fast)}._mission-panel-header_y5wut_115 ._close-btn_y5wut_131:hover{color:var(--text-primary)}._mission-list_y5wut_145{display:flex;flex-direction:column;gap:.75rem}._mission-item_y5wut_151{background:#0003;border-radius:var(--radius-sm);padding:.75rem;border-left:3px solid var(--primary)}._mission-item-header_y5wut_158{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}._mission-number_y5wut_165{font-size:.75rem;color:var(--primary-light);font-weight:600}._mission-title_y5wut_171{color:var(--text-primary);font-weight:500;font-size:.9rem}._mission-description_y5wut_177{margin:0;color:var(--text-secondary);font-size:.8rem;line-height:1.4}._mission-result_y5wut_184{margin-top:1rem;padding:.75rem;border-radius:var(--radius-sm);display:flex;justify-content:space-between;align-items:center}._mission-result_y5wut_184._passed_y5wut_193{background:linear-gradient(135deg,#4caf5033,#4caf501a);border:1px solid rgba(76,175,80,.4)}._mission-result_y5wut_184._failed_y5wut_198{background:linear-gradient(135deg,#f443361a,#f443360d);border:1px solid rgba(244,67,54,.3)}._mission-result-score_y5wut_203{font-weight:600;color:var(--text-primary)}._mission-result-status_y5wut_208{font-size:.9rem}._mission-result_y5wut_184._passed_y5wut_193 ._mission-result-status_y5wut_208{color:var(--success)}._mission-result_y5wut_184._failed_y5wut_198 ._mission-result-status_y5wut_208{color:var(--error-light)}._mission-btn_y5wut_220._active_y5wut_220{background:var(--primary);color:#fff}._simulator-wrapper_y5wut_226{margin-top:1rem;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color);background:var(--bg-card)}._editor-container_y5wut_235{display:flex;background:var(--bg-dark);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-color)}._line-numbers_y5wut_243{padding:1rem .75rem;background:#0000004d;border-right:1px solid var(--border-color);user-select:none}._line-numbers_y5wut_243 pre{font-family:JetBrains Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;color:var(--text-muted);text-align:right}._code-editor-wrapper_y5wut_258{flex:1;position:relative}._code-editor_y5wut_258{width:100%;min-height:300px;padding:1rem;background:transparent;border:none;font-family:JetBrains Mono,Monaco,Consolas,monospace;font-size:13px;line-height:1.6;color:var(--secondary);resize:none}._code-editor_y5wut_258:focus{outline:none}._code-editor_y5wut_258::placeholder{color:var(--text-muted)}._autocomplete-dropdown_y5wut_285{position:absolute;top:100%;left:0;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);max-height:200px;overflow-y:auto;z-index:100}._autocomplete-item_y5wut_298{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:background var(--transition-fast)}._autocomplete-item_y5wut_298:hover{background:var(--bg-hover)}._autocomplete-item_y5wut_298 ._completion_y5wut_311{font-family:monospace;color:var(--secondary)}._autocomplete-item_y5wut_298 ._description_y5wut_316{font-size:.75rem;color:var(--text-muted)}._execution-area_y5wut_322{display:flex;justify-content:space-between;align-items:center}._run-button_y5wut_328{padding:.875rem 2rem;background:linear-gradient(135deg,var(--success),#45a049);border:none;border-radius:var(--radius-md);color:#fff;font-size:1rem;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:.5rem;transition:all var(--transition-fast)}._run-button_y5wut_328:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 15px #4caf5066}._run-button_y5wut_328:disabled{opacity:.5;cursor:not-allowed}._run-button_y5wut_328._running_y5wut_353{background:var(--primary)}._run-button_y5wut_328._stop-button_y5wut_357{background:linear-gradient(135deg,#ef4444,#f97316)}._run-button_y5wut_328._stop-button_y5wut_357._infinite-loop_y5wut_361{background:linear-gradient(135deg,#dc2626,#ea580c);animation:_pulse-stop_y5wut_1 1.5s ease-in-out infinite;box-shadow:0 0 20px #ef444480}@keyframes _pulse-stop_y5wut_1{0%,to{transform:scale(1);box-shadow:0 0 15px #ef444466}50%{transform:scale(1.02);box-shadow:0 0 25px #ef444499}}._spinner_y5wut_378{width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:_spin_y5wut_378 1s linear infinite}@keyframes _spin_y5wut_378{to{transform:rotate(360deg)}}._connection-indicators_y5wut_391{display:flex;gap:1rem}._indicator_y5wut_396{display:flex;align-items:center;gap:.25rem;font-size:.85rem;color:var(--text-muted)}._output-area_y5wut_405{background:var(--bg-dark);border-radius:var(--radius-md);border:1px solid var(--border-color);overflow:hidden}._output-header_y5wut_412{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}._output-header_y5wut_412 span{font-weight:500}._clear-output-btn_y5wut_425{padding:.25rem .75rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.8rem;cursor:pointer}._clear-output-btn_y5wut_425:hover{background:var(--bg-hover);color:var(--text-primary)}._output-content_y5wut_440{padding:1rem;min-height:100px;max-height:200px;overflow-y:auto;font-family:monospace;font-size:.85rem}._output-line_y5wut_449{padding:.25rem 0}._output-placeholder_y5wut_453{color:var(--text-muted);font-style:italic}._share-panel_y5wut_459{margin-top:1rem;padding:1rem 1.25rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}._share-panel-header_y5wut_467{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}._share-actions_y5wut_474{display:flex;gap:.5rem}._share-summary_y5wut_479{background:var(--bg-dark);border-radius:var(--radius-sm);padding:.75rem;font-size:.85rem;color:var(--text-secondary);white-space:pre-wrap}._share-status_y5wut_488{margin-top:.5rem;font-size:.85rem;color:var(--success)}._quick-reference_y5wut_495{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1rem}._camera-panel_y5wut_502{margin-bottom:1rem;padding:1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md)}._camera-panel-header_y5wut_510{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}._camera-panel-body_y5wut_517{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}._camera-frame_y5wut_523{position:relative;background:var(--bg-dark);border-radius:var(--radius-sm);min-height:160px;overflow:hidden;display:flex;align-items:center;justify-content:center}._camera-frame_y5wut_523 img{width:100%;height:auto;display:block}._camera-label_y5wut_540{position:absolute;bottom:8px;right:8px;font-size:.75rem;padding:.2rem .45rem;background:#0009;color:#fff;border-radius:999px}._camera-placeholder_y5wut_551{color:var(--text-muted);font-size:.85rem}._camera-result_y5wut_556{margin-top:.5rem;font-size:.85rem;color:var(--text-secondary)}._quick-reference_y5wut_495 h4{font-size:.9rem;margin-bottom:.75rem;color:var(--text-secondary)}._reference-grid_y5wut_568{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.5rem}._reference-item_y5wut_574{display:flex;flex-direction:column;padding:.5rem;background:var(--bg-dark);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast)}._reference-item_y5wut_574:hover{background:var(--bg-hover)}._reference-item_y5wut_574 code{font-size:.75rem;color:var(--secondary);margin-bottom:.25rem}._reference-item_y5wut_574 span{font-size:.7rem;color:var(--text-muted)}._simulation-controls_y5wut_600{margin:1rem 0;padding:1rem 1.25rem;background:#0f172a99;border:1px solid rgba(148,163,184,.2);border-radius:12px}._simulation-title_y5wut_608{font-weight:600;margin-bottom:.75rem}._simulation-grid_y5wut_613{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.75rem 1rem}._simulation-grid_y5wut_613 label{display:grid;gap:.4rem;font-size:.9rem;color:#e2e8f0}._simulation-grid_y5wut_613 input[type=range]{width:100%}._simulation-grid_y5wut_613 label._toggle_y5wut_630{display:flex;align-items:center;justify-content:space-between;gap:.5rem}._ai-assistant-panel_y5wut_638{position:fixed;right:16px;bottom:16px;width:380px;max-height:600px;z-index:1000;border-radius:12px;box-shadow:0 4px 20px #00000026;background:var(--color-background, #fff);border:1px solid var(--color-border, #e0e0e0);display:flex;flex-direction:column;overflow:hidden}._ai-header_y5wut_654{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;background:var(--color-primary, #4f46e5);color:#fff;border-radius:12px 12px 0 0}._ai-header-title_y5wut_664{font-weight:600;font-size:.9rem}._ai-header-actions_y5wut_669{display:flex;gap:6px}._ai-header-btn_y5wut_674{background:#fff3;border:none;color:#fff;padding:3px 8px;border-radius:4px;cursor:pointer;font-size:.75rem}._ai-header-btn_y5wut_674:hover{background:#ffffff59}._ai-close-btn_y5wut_688{font-weight:700}._ai-messages_y5wut_692{flex:1;overflow-y:auto;padding:12px;min-height:200px;max-height:360px;display:flex;flex-direction:column;gap:8px}._ai-welcome_y5wut_703{color:var(--color-text-muted, #888);text-align:center;padding:24px 12px;font-size:.85rem}._ai-message_y5wut_692{display:flex;flex-direction:column;gap:2px}._ai-message-label_y5wut_716{font-size:.7rem;font-weight:600;color:var(--color-text-muted, #888);text-transform:uppercase}._ai-message-user_y5wut_723 ._ai-message-content_y5wut_723{background:var(--color-primary-light, #eef2ff);color:var(--color-text, #1a1a1a);border-radius:8px 8px 2px;padding:8px 12px;font-size:.85rem;line-height:1.5;word-break:break-word}._ai-message-assistant_y5wut_733 ._ai-message-content_y5wut_723{background:var(--color-surface, #f8f9fa);color:var(--color-text, #1a1a1a);border-radius:8px 8px 8px 2px;padding:8px 12px;font-size:.85rem;line-height:1.5;word-break:break-word}._ai-thinking_y5wut_743{color:var(--color-text-muted, #888);font-style:italic}._ai-code-block_y5wut_748{background:#1e1e1e;color:#d4d4d4;padding:8px 10px;border-radius:6px;font-family:Fira Code,monospace;font-size:.8rem;overflow-x:auto;margin:6px 0;white-space:pre-wrap}._ai-error_y5wut_760{background:#fef2f2;color:#dc2626;padding:8px 12px;border-radius:6px;font-size:.8rem}._ai-quick-actions_y5wut_768{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--color-border, #e0e0e0)}._ai-action-btn_y5wut_775{flex:1;padding:6px 8px;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;background:var(--color-surface, #f8f9fa);color:var(--color-text, #1a1a1a);cursor:pointer;font-size:.75rem;transition:background .15s}._ai-action-btn_y5wut_775:hover:not(:disabled){background:var(--color-primary-light, #eef2ff);border-color:var(--color-primary, #4f46e5)}._ai-action-btn_y5wut_775:disabled{opacity:.5;cursor:not-allowed}._ai-input-form_y5wut_797{display:flex;gap:6px;padding:8px 12px;border-top:1px solid var(--color-border, #e0e0e0)}._ai-input_y5wut_797{flex:1;padding:8px 10px;border:1px solid var(--color-border, #d0d0d0);border-radius:6px;font-size:.85rem;outline:none}._ai-input_y5wut_797:focus{border-color:var(--color-primary, #4f46e5)}._ai-send-btn_y5wut_817{padding:8px 14px;background:var(--color-primary, #4f46e5);color:#fff;border:none;border-radius:6px;cursor:pointer;font-size:.85rem;font-weight:600}._ai-send-btn_y5wut_817:disabled{opacity:.5;cursor:not-allowed}._ai-usage_y5wut_833{text-align:center;padding:6px 12px;font-size:.7rem;color:var(--color-text-muted, #888);border-top:1px solid var(--color-border, #e0e0e0)}._toolbar-btn_y5wut_43._ai-btn_y5wut_841._active_y5wut_220{background:var(--color-primary, #4f46e5);color:#fff}@media (max-width: 480px){._ai-assistant-panel_y5wut_638{right:0;bottom:0;width:100%;max-height:80vh;border-radius:12px 12px 0 0}}@media (max-width: 768px){._playground-container_y5wut_859{height:calc(100vh - 70px - env(safe-area-inset-bottom,0px));display:flex;flex-direction:column}._playground-header_y5wut_865{padding:var(--space-3);flex-shrink:0}._playground-header_y5wut_865 h2{font-size:var(--font-lg)}._playground-layout_y5wut_874{flex:1;flex-direction:column;overflow:hidden}._editor-section_y5wut_880{flex:1;min-height:200px;max-height:none}._simulator-section_y5wut_886{flex:none;height:40%;min-height:180px}._output-section_y5wut_892{flex:none;height:25%;min-height:100px}._mobile-panel-tabs_y5wut_899{display:flex;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);padding:var(--space-2);gap:var(--space-2);overflow-x:auto;-webkit-overflow-scrolling:touch}._mobile-panel-tab_y5wut_899{flex:1;min-width:80px;padding:var(--space-2) var(--space-3);background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:var(--font-sm);text-align:center;cursor:pointer;transition:var(--transition-fast);min-height:44px}._mobile-panel-tab_y5wut_899._active_y5wut_220{background:var(--primary);border-color:var(--primary);color:#fff}._mobile-panel-tab_y5wut_899:active{transform:scale(.97)}._cm-editor_y5wut_935{font-size:14px;line-height:1.5}._cm-editor_y5wut_935 ._cm-content_y5wut_940{padding:var(--space-3)}._cm-gutters_y5wut_944{min-width:40px}}@media (max-width: 480px){._playground-header_y5wut_865{padding:var(--space-2)}._playground-header_y5wut_865 h2{font-size:var(--font-md)}._file-info_y5wut_958{display:none}._toolbar-btn_y5wut_43{padding:var(--space-2);min-height:40px;min-width:40px;font-size:var(--font-sm)}._toolbar-btn_y5wut_43 ._btn-text_y5wut_969{display:none}._toolbar-btn_y5wut_43 ._btn-icon_y5wut_973{font-size:18px}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:inherit;font-weight:var(--font-medium);text-align:center;text-decoration:none;white-space:nowrap;border:none;border-radius:var(--radius-lg);outline:none;cursor:pointer;user-select:none;transition:all var(--transition-fast);-webkit-tap-highlight-color:transparent}.btn-sm{height:var(--button-height-sm);padding:0 var(--button-padding-x-sm);font-size:var(--type-sm)}.btn-md{height:var(--button-height-md);padding:0 var(--button-padding-x-md);font-size:var(--type-sm)}.btn-lg{height:var(--button-height-lg);padding:0 var(--button-padding-x-lg);font-size:var(--type-md)}.btn-primary{background:var(--primary-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:var(--primary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-primary:active:not(:disabled){background:var(--primary-700);box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-primary:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.btn-secondary{background:var(--secondary-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-secondary:hover:not(:disabled){background:var(--secondary-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary:active:not(:disabled){background:var(--secondary-700);box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-success{background:var(--success-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-success:hover:not(:disabled){background:var(--success-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-success:active:not(:disabled){background:var(--success-700);box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-warning{background:var(--warning-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-warning:hover:not(:disabled){background:var(--warning-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-warning:active:not(:disabled){background:var(--warning-700);box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-error{background:var(--error-500);color:#fff;box-shadow:var(--shadow-sm)}.btn-error:hover:not(:disabled){background:var(--error-600);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-error:active:not(:disabled){background:var(--error-700);box-shadow:var(--shadow-sm);transform:translateY(0)}.btn-ghost{background:transparent;color:var(--text-primary)}.btn-ghost:hover:not(:disabled){background:var(--bg-hover)}.btn-ghost:active:not(:disabled){background:var(--bg-active)}.btn-outline{background:transparent;color:var(--primary-500);border:2px solid var(--primary-500)}.btn-outline:hover:not(:disabled){background:var(--primary-500);color:#fff}.btn-outline:active:not(:disabled){background:var(--primary-600);color:#fff}.btn-full{width:100%}.btn:disabled,.btn-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-loading{position:relative;color:transparent;pointer-events:none}.btn-spinner{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:1em;height:1em;color:currentColor}.btn-spinner svg{width:100%;height:100%;animation:spin .8s linear infinite}.btn-icon-left,.btn-icon-right{display:inline-flex;align-items:center;justify-content:center}.btn-icon-left{margin-right:calc(var(--space-1) * -1)}.btn-icon-right{margin-left:calc(var(--space-1) * -1)}.btn-content{display:inline-flex;align-items:center}.btn:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}[data-theme=dark] .btn-ghost{color:var(--text-primary)}[data-theme=dark] .btn-ghost:hover:not(:disabled){background:#ffffff0d}[data-theme=light] .btn-ghost{color:var(--text-primary)}[data-theme=light] .btn-ghost:hover:not(:disabled){background:#0000000d}.card{position:relative;display:flex;flex-direction:column;border-radius:var(--radius-xl);transition:all var(--transition-base);overflow:hidden}.card-default{background:var(--bg-surface);border:1px solid var(--border-default)}.card-elevated{background:var(--bg-surface);box-shadow:var(--shadow-lg)}.card-outlined{background:transparent;border:2px solid var(--border-default)}.card-filled{background:var(--bg-elevated)}.card-padding-none{padding:0}.card-padding-sm{padding:var(--card-padding-sm)}.card-padding-md{padding:var(--card-padding-md)}.card-padding-lg{padding:var(--card-padding-lg)}.card-hoverable:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.card-hoverable.card-outlined:hover{border-color:var(--border-strong)}.card-clickable{cursor:pointer;user-select:none}.card-clickable:active{transform:translateY(0);box-shadow:var(--shadow-md)}.card-header{padding:var(--space-6) var(--space-6) var(--space-4)}.card-padding-none .card-header{padding:var(--space-6)}.card-body{flex:1;padding:0 var(--space-6) var(--space-6)}.card-padding-none .card-body{padding:var(--space-6)}.card-footer{padding:var(--space-4) var(--space-6) var(--space-6);border-top:1px solid var(--border-subtle)}.card-padding-none .card-footer{padding:var(--space-6)}.card-title{margin:0;font-size:var(--type-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--text-primary)}.card-description{margin:var(--space-2) 0 0;font-size:var(--type-sm);line-height:var(--leading-relaxed);color:var(--text-secondary)}.card-clickable:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}[data-theme=light] .card-default{background:var(--bg-base);border-color:var(--border-default)}[data-theme=light] .card-elevated{background:var(--bg-base)}[data-theme=light] .card-filled,[data-theme=dark] .card-default,[data-theme=dark] .card-elevated{background:var(--bg-surface)}[data-theme=dark] .card-filled{background:var(--bg-elevated)}@media (max-width: 768px){.card-padding-md{padding:var(--card-padding-sm)}.card-padding-lg{padding:var(--card-padding-md)}.card-header,.card-body,.card-footer{padding-left:var(--space-4);padding-right:var(--space-4)}}.input-wrapper{display:flex;flex-direction:column;gap:var(--space-2)}.input-full-width{width:100%}.input-label{display:block;font-size:var(--type-sm);font-weight:var(--font-medium);color:var(--text-primary);margin-bottom:var(--space-1)}.input-required{color:var(--error-500);margin-left:var(--space-1)}.input-container{position:relative;display:flex;align-items:center;gap:var(--space-2);transition:all var(--transition-base)}.input-default{background:var(--bg-surface);border:1px solid var(--border-default);border-radius:var(--radius-lg)}.input-filled{background:var(--bg-elevated);border:1px solid transparent;border-radius:var(--radius-lg)}.input-outlined{background:transparent;border:2px solid var(--border-default);border-radius:var(--radius-lg)}.input-sm{height:var(--input-height-sm);padding:0 var(--input-padding-x)}.input-md{height:var(--input-height-md);padding:0 var(--input-padding-x)}.input-lg{height:var(--input-height-lg);padding:0 var(--input-padding-x)}.input-field{flex:1;width:100%;height:100%;padding:0;font-family:inherit;font-size:var(--type-sm);font-weight:var(--font-normal);line-height:var(--leading-normal);color:var(--text-primary);background:transparent;border:none;outline:none;transition:all var(--transition-base)}.input-field::placeholder{color:var(--text-tertiary)}.input-field:focus{outline:none}.input-container:focus-within{border-color:var(--border-focus);box-shadow:0 0 0 3px #8b5cf61a}.input-outlined:focus-within{border-color:var(--border-focus)}.input-container:hover:not(.input-disabled){border-color:var(--border-strong)}.input-icon{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--text-tertiary);transition:color var(--transition-base)}.input-icon-left{margin-left:0}.input-icon-right{margin-right:0}.input-has-left-icon .input-field{padding-left:0}.input-has-right-icon .input-field{padding-right:0}.input-container:focus-within .input-icon{color:var(--primary-500)}.input-error{border-color:var(--border-error)}.input-error:focus-within{border-color:var(--border-error);box-shadow:0 0 0 3px #ef44441a}.input-error .input-icon{color:var(--error-500)}.input-disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.input-helper-text{margin:0;font-size:var(--type-xs);line-height:var(--leading-normal);color:var(--text-secondary)}.input-error-text{margin:0;font-size:var(--type-xs);line-height:var(--leading-normal);color:var(--error-500);display:flex;align-items:center;gap:var(--space-1)}.input-field:-webkit-autofill,.input-field:-webkit-autofill:hover,.input-field:-webkit-autofill:focus{-webkit-text-fill-color:var(--text-primary);-webkit-box-shadow:0 0 0px 1000px var(--bg-surface) inset;transition:background-color 5000s ease-in-out 0s}[data-theme=light] .input-default{background:var(--bg-base);border-color:var(--border-default)}[data-theme=light] .input-filled{background:var(--bg-surface)}[data-theme=light] .input-field:-webkit-autofill,[data-theme=light] .input-field:-webkit-autofill:hover,[data-theme=light] .input-field:-webkit-autofill:focus{-webkit-box-shadow:0 0 0px 1000px var(--bg-base) inset}[data-theme=dark] .input-default{background:var(--bg-surface)}[data-theme=dark] .input-filled{background:var(--bg-elevated)}@media (max-width: 768px){.input-lg{height:var(--input-height-md)}}.input-field:focus-visible{outline:none}.input-container:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}._auth-modal-overlay_1io6z_5{position:fixed;inset:0;background:#000000b3;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:var(--z-modal);animation:_fadeIn_1io6z_1 .2s ease}._auth-modal_1io6z_5{background:var(--bg-card);border-radius:var(--radius-lg);border:1px solid var(--border-color);padding:2rem;width:100%;max-width:400px;position:relative;box-shadow:var(--shadow-lg);animation:_slideUp_1io6z_1 .3s ease}._auth-modal-close_1io6z_32{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--text-muted);font-size:1.5rem;cursor:pointer;line-height:1;padding:.25rem;transition:var(--transition-fast)}._auth-modal-close_1io6z_32:hover{color:var(--text-primary)}._auth-modal-title_1io6z_50{font-size:var(--font-2xl);font-weight:var(--font-bold);color:var(--text-primary);margin:0 0 1.5rem;text-align:center}._auth-oauth-buttons_1io6z_59{display:flex;flex-direction:column;gap:.75rem;margin-bottom:1.5rem}._auth-oauth-btn_1io6z_66{display:flex;align-items:center;justify-content:center;gap:.75rem;width:100%;padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-md);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast)}._auth-oauth-btn_1io6z_66:hover:not(:disabled){background:var(--bg-hover);border-color:var(--primary)}._auth-oauth-btn_1io6z_66:disabled{opacity:.6;cursor:not-allowed}._auth-oauth-btn_1io6z_66._google_1io6z_93:hover:not(:disabled){border-color:#4285f4}._auth-oauth-btn_1io6z_66._github_1io6z_97:hover:not(:disabled){border-color:#fff}._auth-divider_1io6z_102{display:flex;align-items:center;text-align:center;margin:1.5rem 0;color:var(--text-muted);font-size:var(--font-sm)}._auth-divider_1io6z_102:before,._auth-divider_1io6z_102:after{content:"";flex:1;border-bottom:1px solid var(--border-color)}._auth-divider_1io6z_102 span{padding:0 1rem}._auth-form_1io6z_123{display:flex;flex-direction:column;gap:1rem}._auth-form-group_1io6z_129{display:flex;flex-direction:column;gap:.5rem}._auth-form-group_1io6z_129 label{font-size:var(--font-sm);font-weight:var(--font-medium);color:var(--text-secondary)}._auth-form-group_1io6z_129 input{padding:.75rem 1rem;border-radius:var(--radius-md);border:1px solid var(--border-color);background:var(--bg-secondary);color:var(--text-primary);font-size:var(--font-md);transition:var(--transition-fast)}._auth-form-group_1io6z_129 input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff33}._auth-form-group_1io6z_129 input:disabled{opacity:.6;cursor:not-allowed}._auth-form-group_1io6z_129 input::placeholder{color:var(--text-muted)}._auth-error_1io6z_167{padding:.75rem 1rem;border-radius:var(--radius-md);background:#f443361a;border:1px solid var(--error);color:var(--error-light);font-size:var(--font-sm);text-align:center}._auth-error_1io6z_167._success_1io6z_177{background:#4caf501a;border-color:var(--success);color:var(--success-light)}._auth-not-configured_1io6z_183{margin-bottom:1rem}._auth-submit-btn_1io6z_188{padding:.875rem 1.5rem;border-radius:var(--radius-md);border:none;background:var(--gradient-primary);color:#fff;font-size:var(--font-md);font-weight:var(--font-semibold);cursor:pointer;transition:var(--transition-fast);margin-top:.5rem}._auth-submit-btn_1io6z_188:hover:not(:disabled){opacity:.9;transform:translateY(-1px)}._auth-submit-btn_1io6z_188:disabled{opacity:.6;cursor:not-allowed;transform:none}._auth-toggle_1io6z_213{display:flex;align-items:center;justify-content:center;gap:.5rem;margin-top:1.5rem;font-size:var(--font-sm);color:var(--text-muted)}._auth-toggle_1io6z_213 button{background:transparent;border:none;color:var(--primary);cursor:pointer;font-size:var(--font-sm);font-weight:var(--font-medium);transition:var(--transition-fast)}._auth-toggle_1io6z_213 button:hover:not(:disabled){color:var(--primary-light);text-decoration:underline}._auth-toggle_1io6z_213 button:disabled{opacity:.6;cursor:not-allowed}._nav-auth_1io6z_244{padding:.5rem 0;margin-bottom:.5rem;border-bottom:1px solid var(--border-light)}._nav-user_1io6z_250{display:flex;align-items:center;gap:.5rem;padding:.25rem .5rem}._nav-user-avatar_1io6z_257{width:28px;height:28px;border-radius:50%;object-fit:cover}._nav-user-name_1io6z_264{font-size:var(--font-sm);color:var(--text-secondary);max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._nav-auth-btn_1io6z_273{padding:.5rem .75rem;border-radius:var(--radius-sm);font-size:var(--font-xs);font-weight:var(--font-medium);cursor:pointer;transition:var(--transition-fast)}._nav-auth-btn_1io6z_273._login_1io6z_282{width:100%;background:var(--gradient-primary);border:none;color:#fff}._nav-auth-btn_1io6z_273._login_1io6z_282:hover{opacity:.9}._nav-auth-btn_1io6z_273._logout_1io6z_293{background:transparent;border:1px solid var(--border-color);color:var(--text-muted);margin-left:auto}._nav-auth-btn_1io6z_273._logout_1io6z_293:hover{background:var(--bg-hover);color:var(--text-secondary)}._auth-callback-container_1io6z_306{display:flex;align-items:center;justify-content:center;min-height:60vh;padding:2rem}._auth-callback-loading_1io6z_314{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--text-secondary)}._auth-callback-error_1io6z_322{display:flex;flex-direction:column;align-items:center;gap:1rem;text-align:center;max-width:400px}._auth-callback-error_1io6z_322 h2{color:var(--error);margin:0}._auth-callback-error_1io6z_322 p{color:var(--text-secondary);margin:0}._auth-callback-error_1io6z_322 button{padding:.75rem 1.5rem;border-radius:var(--radius-md);border:none;background:var(--gradient-primary);color:#fff;font-size:var(--font-md);cursor:pointer;transition:var(--transition-fast)}._auth-callback-error_1io6z_322 button:hover{opacity:.9}@keyframes _fadeIn_1io6z_1{0%{opacity:0}to{opacity:1}}@keyframes _slideUp_1io6z_1{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){._auth-modal-content_1io6z_380{padding:var(--space-4)}._auth-input_1io6z_384{min-height:48px;font-size:16px}._auth-btn_1io6z_389{min-height:48px;font-size:var(--font-md)}._social-auth-buttons_1io6z_394{flex-direction:column;gap:var(--space-2)}._social-auth-btn_1io6z_399{width:100%;min-height:48px;justify-content:center}}._learning-dashboard_klf0f_5{max-width:1400px;margin:0 auto}._admin-review-banner_klf0f_10{margin:0 0 16px;padding:12px 16px;border-radius:12px;background:linear-gradient(90deg,#fbbf2440,#f59e0b1f);border:1px solid rgba(251,191,36,.45);color:var(--text-primary);display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 14px;box-shadow:0 10px 24px #00000014;position:sticky;top:12px;z-index:5;backdrop-filter:blur(6px);cursor:pointer;text-align:left;width:100%}._admin-review-banner_klf0f_10:hover{box-shadow:0 12px 28px #0000001f}._admin-review-banner_klf0f_10:active{transform:translateY(1px)}._admin-review-title_klf0f_40{font-weight:700;font-size:.98rem}._admin-review-subtitle_klf0f_45{font-size:.88rem;opacity:.8}._admin-review-pill_klf0f_50{margin-top:8px;padding:6px 10px;border-radius:999px;background:#fbbf2433;border:1px solid rgba(251,191,36,.45);font-size:.78rem;font-weight:700;color:var(--text-primary);white-space:nowrap;cursor:pointer}._admin-review-pill_klf0f_50:hover{background:#fbbf244d}._progress-tracker_klf0f_68{display:grid;grid-template-columns:auto 1fr auto;gap:2rem;align-items:center;background:var(--bg-card);border-radius:var(--radius-lg);padding:1.5rem 2rem;margin-bottom:2rem;border:1px solid var(--border-color)}._user-profile_klf0f_80{display:flex;align-items:center;gap:1rem}._avatar_klf0f_86{width:64px;height:64px;border-radius:50%;background:var(--bg-secondary);display:flex;align-items:center;justify-content:center;font-size:2rem;border:3px solid var(--primary)}._user-info_klf0f_98{display:flex;flex-direction:column}._user-rank_klf0f_103{font-size:1rem;font-weight:600}._user-level_klf0f_108{font-size:.85rem;color:var(--text-muted)}._xp-section_klf0f_113{padding:0 2rem}._xp-header_klf0f_117{display:flex;justify-content:space-between;margin-bottom:.5rem}._xp-label_klf0f_123{font-size:.85rem;color:var(--text-muted)}._xp-value_klf0f_128{font-size:.85rem;font-weight:600;color:var(--warning)}._xp-bar-container_klf0f_134{height:8px;background:var(--bg-dark);border-radius:4px;overflow:hidden}._xp-bar_klf0f_134{height:100%;background:linear-gradient(90deg,var(--warning),#FFE082);border-radius:4px;position:relative;transition:width var(--transition-slow)}._xp-bar-glow_klf0f_149{position:absolute;right:0;top:0;width:20px;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5));animation:_shimmer_klf0f_1 2s infinite}@keyframes _shimmer_klf0f_1{0%,to{opacity:0}50%{opacity:1}}._xp-footer_klf0f_164{margin-top:.25rem;font-size:.75rem;color:var(--text-muted)}._stats-grid_klf0f_170{display:flex;gap:1rem}._stat-card_klf0f_175{background:var(--bg-secondary);border-radius:var(--radius-md);padding:1rem;display:flex;align-items:center;gap:.75rem;min-width:140px}._stat-icon_klf0f_185{font-size:1.5rem}._stat-content_klf0f_189{display:flex;flex-direction:column}._stat-value_klf0f_194{font-size:1.1rem;font-weight:600}._stat-label_klf0f_199{font-size:.75rem;color:var(--text-muted)}._stat-card_klf0f_175._highlight_klf0f_204{background:linear-gradient(135deg,var(--primary),var(--primary-dark))}._stat-progress-ring_klf0f_208{width:40px;height:40px}._circular-chart_klf0f_213{width:100%;height:100%}._circle-bg_klf0f_218{fill:none;stroke:var(--bg-dark);stroke-width:3}._circle_klf0f_218{fill:none;stroke:var(--primary);stroke-width:3;stroke-linecap:round;transform:rotate(-90deg);transform-origin:center;transition:stroke-dasharray var(--transition-slow)}._learning-path_klf0f_234{display:none}._learning-tabs_klf0f_239{display:flex;gap:.5rem;margin-bottom:1.5rem;background:var(--bg-card);padding:.5rem;border-radius:var(--radius-lg)}._tab_klf0f_248{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.95rem;font-weight:500;cursor:pointer;transition:all var(--transition-fast)}._tab_klf0f_248:hover{background:var(--bg-hover);color:var(--text-primary)}._tab_klf0f_248._active_klf0f_268{background:var(--primary);color:#fff}._tab-icon_klf0f_273{font-size:1.1rem}._learning-content_klf0f_278{background:var(--bg-card);border-radius:var(--radius-lg);padding:2rem;border:1px solid var(--border-color)}._section-title_klf0f_285{font-size:1.5rem;font-weight:700;margin-bottom:.5rem}._section-description_klf0f_291{color:var(--text-secondary);margin-bottom:2rem}._levels-container_klf0f_296{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}._level-card_klf0f_303{background:var(--gradient-card);border-radius:var(--radius-lg);padding:1.5rem;cursor:pointer;transition:all var(--transition-normal),transform var(--transition-bounce);border:2px solid var(--border-color);position:relative;overflow:hidden;animation:_fadeInUp_klf0f_1 .5s ease forwards;opacity:0;backdrop-filter:blur(10px)}._level-card_klf0f_303:before{content:"";position:absolute;inset:0;background:var(--gradient-glow);opacity:0;transition:opacity var(--transition-normal);pointer-events:none}._level-card_klf0f_303:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.05),transparent);transition:left .5s ease;pointer-events:none}._level-card_klf0f_303:hover:not(._locked_klf0f_346){transform:translateY(-6px) scale(1.02);border-color:var(--primary);box-shadow:var(--shadow-glow-lg),0 20px 40px #0006}._level-card_klf0f_303:hover:not(._locked_klf0f_346):before{opacity:1}._level-card_klf0f_303:hover:not(._locked_klf0f_346):after{left:100%}._level-card_klf0f_303:active:not(._locked_klf0f_346){transform:translateY(-2px) scale(.98)}._level-card_klf0f_303._locked_klf0f_346{opacity:.5;cursor:not-allowed;filter:grayscale(30%)}._level-card_klf0f_303._locked_klf0f_346:hover{transform:none}._level-card_klf0f_303._completed_klf0f_376{border-color:var(--success);background:linear-gradient(135deg,rgba(76,175,80,.1) 0%,var(--bg-secondary) 100%)}._level-card_klf0f_303._completed_klf0f_376:before{background:radial-gradient(ellipse at center,rgba(76,175,80,.15) 0%,transparent 70%)}._level-card_klf0f_303._active_klf0f_268{border-color:var(--primary);background:linear-gradient(135deg,rgba(108,99,255,.15) 0%,var(--bg-secondary) 100%);animation:_fadeInUp_klf0f_1 .5s ease forwards,_glow_klf0f_1 3s ease-in-out infinite}._lock-overlay_klf0f_397{position:absolute;inset:0;background:#0a0a1ad9;backdrop-filter:blur(4px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;border-radius:var(--radius-lg);z-index:10;transition:all var(--transition-normal)}._level-card_klf0f_303:hover ._lock-overlay_klf0f_397{background:#0a0a1ae6}._lock-icon_klf0f_416{font-size:2rem;filter:drop-shadow(0 0 10px rgba(255,255,255,.2))}._lock-text_klf0f_421{font-size:.85rem;color:var(--text-muted);text-align:center;padding:0 1rem}._completed-badge_klf0f_428{position:absolute;top:1rem;right:1rem;width:32px;height:32px;background:var(--gradient-primary);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1rem;font-weight:700;color:#fff;box-shadow:0 4px 12px #6c63ff66;animation:_fadeInScale_klf0f_1 .3s ease}._level-card_klf0f_303._completed_klf0f_376 ._completed-badge_klf0f_428{background:linear-gradient(135deg,var(--success) 0%,#2E7D32 100%);box-shadow:0 4px 12px #4caf5066}._level-number_klf0f_451{position:absolute;top:1rem;left:1rem;width:36px;height:36px;background:var(--bg-dark);border:2px solid var(--border-color);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:.9rem;font-weight:700;color:var(--text-secondary);transition:all var(--transition-normal)}._level-card_klf0f_303:hover:not(._locked_klf0f_346) ._level-number_klf0f_451{background:var(--primary);border-color:var(--primary);color:#fff;transform:scale(1.1)}._level-card_klf0f_303._completed_klf0f_376 ._level-number_klf0f_451{background:var(--success);border-color:var(--success);color:#fff}._level-icon-wrapper_klf0f_482{display:flex;justify-content:center;margin:1rem 0;position:relative}._level-main-icon_klf0f_489{font-size:3rem}._pulse-ring_klf0f_493{position:absolute;width:80px;height:80px;border:2px solid var(--primary);border-radius:50%;animation:_pulse_klf0f_493 2s infinite}@keyframes _pulse_klf0f_493{0%{transform:scale(.8);opacity:1}to{transform:scale(1.4);opacity:0}}._level-content_klf0f_513{text-align:center;margin-bottom:1rem}._level-title_klf0f_518{font-size:1.1rem;font-weight:600;margin-bottom:.25rem}._level-subtitle_klf0f_524{font-size:.8rem;color:var(--text-muted);display:block;margin-bottom:.5rem}._level-description_klf0f_531{font-size:.85rem;color:var(--text-secondary);line-height:1.5}._level-rewards_klf0f_537{display:flex;justify-content:center;gap:.5rem;flex-wrap:wrap;margin-bottom:1rem}._xp-reward_klf0f_545{display:flex;align-items:center;gap:.25rem;background:var(--bg-dark);padding:.4rem .75rem;border-radius:20px;font-size:.8rem}._xp-icon_klf0f_555{color:var(--warning)}._level-practice-btn_klf0f_559{padding:.35rem .75rem;border-radius:999px;font-size:.82rem;font-weight:600;border:1px solid rgba(255,255,255,.15);background:#ffffff14;color:var(--text-primary);cursor:pointer;transition:all var(--transition-fast)}._level-practice-btn_klf0f_559:hover{background:#ffffff2e;transform:translateY(-1px)}._level-status_klf0f_576{text-align:center}._level-status_klf0f_576 ._status_klf0f_580{font-size:.75rem;padding:.25rem .75rem;border-radius:12px;display:inline-block}._level-status_klf0f_576 ._status_klf0f_580._completed_klf0f_376{background:#4caf5033;color:var(--success)}._level-status_klf0f_576 ._status_klf0f_580._locked_klf0f_346{background:#ffffff1a;color:var(--text-muted)}._level-status_klf0f_576 ._status_klf0f_580._active_klf0f_268{background:#6c63ff33;color:var(--primary-light)}._level-status_klf0f_576 ._status_klf0f_580._available_klf0f_602{background:#00d9ff33;color:var(--secondary)}._connector_klf0f_607{display:none}@media (max-width: 768px){._learning-dashboard_klf0f_5{padding:0}._dashboard-header_klf0f_618{flex-direction:column;align-items:flex-start;gap:var(--space-3);padding:var(--space-4)}._dashboard-header_klf0f_618 h1{font-size:var(--font-xl);line-height:1.3}._course-selector_klf0f_630{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:var(--space-2);display:flex;gap:var(--space-2)}._course-selector_klf0f_630::-webkit-scrollbar{display:none}._course-btn_klf0f_644{flex-shrink:0;min-height:44px;padding:var(--space-2) var(--space-4);white-space:nowrap}._levels-container_klf0f_296,._beginner-levels-container_klf0f_652{padding:0 var(--space-4);gap:var(--space-4)}._level-card_klf0f_303{padding:var(--space-4)}._level-header_klf0f_661{margin-bottom:var(--space-3)}._level-title_klf0f_518{font-size:var(--font-lg)}._lessons-list_klf0f_669{gap:var(--space-2)}._lesson-card_klf0f_673{padding:var(--space-3);min-height:56px;display:flex;align-items:center;gap:var(--space-3)}._lesson-card_klf0f_673 ._lesson-icon_klf0f_681{flex-shrink:0}._lesson-card_klf0f_673 ._lesson-info_klf0f_685{flex:1;min-width:0}._lesson-card_klf0f_673 ._lesson-title_klf0f_690{font-size:var(--font-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}._progress-section_klf0f_697{padding:var(--space-4)}._progress-stats_klf0f_701{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-3)}._stat-card_klf0f_175{padding:var(--space-3);text-align:center}._stat-value_klf0f_194{font-size:var(--font-2xl)}._stat-label_klf0f_199{font-size:var(--font-xs)}}@media (max-width: 375px){._progress-stats_klf0f_701{grid-template-columns:1fr 1fr;gap:var(--space-2)}._stat-card_klf0f_175{padding:var(--space-2)}._stat-value_klf0f_194{font-size:var(--font-xl)}}._course-loading_klf0f_737{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 16px;gap:16px;color:var(--text-secondary, #9ca3af);font-size:14px}._loading-spinner_klf0f_748{width:32px;height:32px;border:3px solid rgba(99,102,241,.2);border-top-color:#6366f1;border-radius:50%;animation:_spin_klf0f_1 .8s linear infinite}@keyframes _spin_klf0f_1{to{transform:rotate(360deg)}}._lazy-loading_klf0f_762{display:flex;align-items:center;justify-content:center;padding:64px 16px;color:var(--text-secondary, #9ca3af);font-size:14px}:root{--type-xs: .8rem;--type-sm: 1rem;--type-md: 1.25rem;--type-lg: 1.563rem;--type-xl: 1.953rem;--type-2xl: 2.441rem;--type-3xl: 3.052rem;--type-4xl: 3.815rem;--leading-none: 1;--leading-tight: 1.25;--leading-snug: 1.375;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--tracking-tighter: -.05em;--tracking-tight: -.025em;--tracking-normal: 0;--tracking-wide: .025em;--tracking-wider: .05em;--tracking-widest: .1em;--font-light: 300;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--font-black: 900;--primary-50: #F5F3FF;--primary-100: #EDE9FE;--primary-200: #DDD6FE;--primary-300: #C4B5FD;--primary-400: #A78BFA;--primary-500: #8B5CF6;--primary-600: #7C3AED;--primary-700: #6D28D9;--primary-800: #5B21B6;--primary-900: #4C1D95;--primary-950: #2E1065;--secondary-50: #ECFEFF;--secondary-100: #CFFAFE;--secondary-200: #A5F3FC;--secondary-300: #67E8F9;--secondary-400: #22D3EE;--secondary-500: #06B6D4;--secondary-600: #0891B2;--secondary-700: #0E7490;--secondary-800: #155E75;--secondary-900: #164E63;--secondary-950: #083344;--accent-50: #FDF2F8;--accent-100: #FCE7F3;--accent-200: #FBCFE8;--accent-300: #F9A8D4;--accent-400: #F472B6;--accent-500: #EC4899;--accent-600: #DB2777;--accent-700: #BE185D;--accent-800: #9F1239;--accent-900: #831843;--accent-950: #500724;--success-50: #F0FDF4;--success-100: #DCFCE7;--success-200: #BBF7D0;--success-300: #86EFAC;--success-400: #4ADE80;--success-500: #22C55E;--success-600: #16A34A;--success-700: #15803D;--success-800: #166534;--success-900: #14532D;--success-950: #052E16;--warning-50: #FFFBEB;--warning-100: #FEF3C7;--warning-200: #FDE68A;--warning-300: #FCD34D;--warning-400: #FBBF24;--warning-500: #F59E0B;--warning-600: #D97706;--warning-700: #B45309;--warning-800: #92400E;--warning-900: #78350F;--warning-950: #451A03;--error-50: #FEF2F2;--error-100: #FEE2E2;--error-200: #FECACA;--error-300: #FCA5A5;--error-400: #F87171;--error-500: #EF4444;--error-600: #DC2626;--error-700: #B91C1C;--error-800: #991B1B;--error-900: #7F1D1D;--error-950: #450A0A;--info-50: #EFF6FF;--info-100: #DBEAFE;--info-200: #BFDBFE;--info-300: #93C5FD;--info-400: #60A5FA;--info-500: #3B82F6;--info-600: #2563EB;--info-700: #1D4ED8;--info-800: #1E40AF;--info-900: #1E3A8A;--info-950: #172554;--gray-50: #F9FAFB;--gray-100: #F3F4F6;--gray-200: #E5E7EB;--gray-300: #D1D5DB;--gray-400: #9CA3AF;--gray-500: #6B7280;--gray-600: #4B5563;--gray-700: #374151;--gray-800: #1F2937;--gray-900: #111827;--gray-950: #030712;--bg-base: #0A0A1A;--bg-surface: #12122A;--bg-elevated: #1A1A3E;--bg-overlay: #1E1E4A;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(255, 255, 255, .1);--text-primary: #FFFFFF;--text-secondary: #B0B0D0;--text-tertiary: #6B6B8D;--text-disabled: #4A4A6A;--text-inverse: #000000;--border-default: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .05);--border-strong: rgba(255, 255, 255, .2);--border-focus: var(--primary-500);--border-error: var(--error-500);--interactive-default: var(--primary-500);--interactive-hover: var(--primary-400);--interactive-active: var(--primary-600);--interactive-disabled: var(--gray-700);--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--space-36: 9rem;--space-40: 10rem;--space-44: 11rem;--space-48: 12rem;--space-52: 13rem;--space-56: 14rem;--space-60: 15rem;--space-64: 16rem;--space-72: 18rem;--space-80: 20rem;--space-96: 24rem;--container-xs: 20rem;--container-sm: 24rem;--container-md: 28rem;--container-lg: 32rem;--container-xl: 36rem;--container-2xl: 42rem;--container-3xl: 48rem;--container-4xl: 56rem;--container-5xl: 64rem;--container-6xl: 72rem;--container-7xl: 80rem;--container-full: 100%;--gap-xs: var(--space-2);--gap-sm: var(--space-3);--gap-md: var(--space-4);--gap-lg: var(--space-6);--gap-xl: var(--space-8);--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px;--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px -1px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -2px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .05);--shadow-glow-sm: 0 0 10px rgba(139, 92, 246, .3);--shadow-glow-md: 0 0 20px rgba(139, 92, 246, .4);--shadow-glow-lg: 0 0 30px rgba(139, 92, 246, .5);--duration-75: 75ms;--duration-100: .1s;--duration-150: .15s;--duration-200: .2s;--duration-300: .3s;--duration-500: .5s;--duration-700: .7s;--duration-1000: 1s;--ease-linear: linear;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--transition-fast: var(--duration-150) var(--ease-out);--transition-base: var(--duration-200) var(--ease-out);--transition-slow: var(--duration-300) var(--ease-out);--transition-bounce: var(--duration-500) var(--ease-bounce);--z-0: 0;--z-10: 10;--z-20: 20;--z-30: 30;--z-40: 40;--z-50: 50;--z-dropdown: 100;--z-sticky: 200;--z-fixed: 300;--z-modal-backdrop: 400;--z-modal: 500;--z-popover: 600;--z-tooltip: 700;--z-notification: 800;--opacity-0: 0;--opacity-5: .05;--opacity-10: .1;--opacity-20: .2;--opacity-30: .3;--opacity-40: .4;--opacity-50: .5;--opacity-60: .6;--opacity-70: .7;--opacity-80: .8;--opacity-90: .9;--opacity-100: 1;--button-height-sm: 2rem;--button-height-md: 2.5rem;--button-height-lg: 3rem;--button-padding-x-sm: var(--space-3);--button-padding-x-md: var(--space-4);--button-padding-x-lg: var(--space-6);--input-height-sm: 2rem;--input-height-md: 2.5rem;--input-height-lg: 3rem;--input-padding-x: var(--space-3);--card-padding-sm: var(--space-4);--card-padding-md: var(--space-6);--card-padding-lg: var(--space-8);--header-height: 4rem;--sidebar-width: 15rem;--primary: #6C63FF;--primary-light: #8B85FF;--primary-dark: #5046E5;--secondary: #00D9FF;--secondary-light: #66E8FF;--accent: #FF6B6B;--accent-light: #FF9999;--success: #4CAF50;--success-light: #81C784;--warning: #FFC107;--warning-light: #FFD54F;--error: #F44336;--error-light: #E57373;--bg-dark: #0A0A1A;--bg-primary: #12122A;--bg-secondary: #1A1A3E;--bg-card: #1E1E4A;--bg-hover: #252560;--bg-elevated: #2A2A5E;--text-muted: #6B6B8D;--border-color: rgba(255, 255, 255, .1);--border-light: rgba(255, 255, 255, .05);--border-glow: rgba(108, 99, 255, .3);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .2);--shadow-md: 0 4px 20px rgba(0, 0, 0, .3);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .4);--shadow-glow: 0 0 20px rgba(108, 99, 255, .3);--shadow-glow-lg: 0 0 40px rgba(108, 99, 255, .4);--gradient-primary: linear-gradient(135deg, #6C63FF 0%, #5046E5 100%);--gradient-secondary: linear-gradient(135deg, #00D9FF 0%, #0099CC 100%);--gradient-accent: linear-gradient(135deg, #FF6B6B 0%, #E55050 100%);--gradient-card: linear-gradient(180deg, rgba(30, 30, 74, .9) 0%, rgba(26, 26, 62, 1) 100%);--gradient-glow: radial-gradient(ellipse at center, rgba(108, 99, 255, .15) 0%, transparent 70%);--gradient-shine: linear-gradient(90deg, transparent, rgba(255, 255, 255, .1), transparent);--transition-fast: .15s ease;--transition-normal: .3s ease;--transition-slow: .5s ease;--transition-bounce: .4s cubic-bezier(.68, -.55, .265, 1.55);--nav-width: 240px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--font-xs: .75rem;--font-sm: .875rem;--font-md: 1rem;--font-lg: 1.125rem;--font-xl: 1.25rem;--font-2xl: 1.5rem;--font-3xl: 2rem;--font-4xl: 2.5rem}[data-theme=light]{--bg-base: #FFFFFF;--bg-surface: #F9FAFB;--bg-elevated: #F3F4F6;--bg-overlay: #E5E7EB;--bg-hover: rgba(0, 0, 0, .05);--bg-active: rgba(0, 0, 0, .1);--text-primary: #111827;--text-secondary: #4B5563;--text-tertiary: #6B7280;--text-disabled: #9CA3AF;--text-inverse: #FFFFFF;--border-default: rgba(0, 0, 0, .1);--border-subtle: rgba(0, 0, 0, .05);--border-strong: rgba(0, 0, 0, .2);--border-focus: var(--primary-500);--border-error: var(--error-500);--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .03);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .08), 0 1px 2px -1px rgba(0, 0, 0, .08);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .08);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .08);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .08), 0 8px 10px -6px rgba(0, 0, 0, .08);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .15);--shadow-glow-sm: 0 0 10px rgba(139, 92, 246, .2);--shadow-glow-md: 0 0 20px rgba(139, 92, 246, .3);--shadow-glow-lg: 0 0 30px rgba(139, 92, 246, .4)}@media (prefers-color-scheme: light){[data-theme=auto]{--bg-base: #FFFFFF;--bg-surface: #F9FAFB;--bg-elevated: #F3F4F6;--bg-overlay: #E5E7EB;--bg-hover: rgba(0, 0, 0, .05);--bg-active: rgba(0, 0, 0, .1);--text-primary: #111827;--text-secondary: #4B5563;--text-tertiary: #6B7280;--text-disabled: #9CA3AF;--text-inverse: #FFFFFF;--border-default: rgba(0, 0, 0, .1);--border-subtle: rgba(0, 0, 0, .05);--border-strong: rgba(0, 0, 0, .2)}}@media (prefers-color-scheme: dark){[data-theme=auto]{--bg-base: #0A0A1A;--bg-surface: #12122A;--bg-elevated: #1A1A3E;--bg-overlay: #1E1E4A;--bg-hover: rgba(255, 255, 255, .05);--bg-active: rgba(255, 255, 255, .1);--text-primary: #FFFFFF;--text-secondary: #B0B0D0;--text-tertiary: #6B6B8D;--text-disabled: #4A4A6A;--text-inverse: #000000;--border-default: rgba(255, 255, 255, .1);--border-subtle: rgba(255, 255, 255, .05);--border-strong: rgba(255, 255, 255, .2)}}body.light{--bg-dark: #F5F5FA;--bg-primary: #FFFFFF;--bg-secondary: #F0F0F8;--bg-card: #FFFFFF;--bg-hover: #E8E8F0;--bg-elevated: #FAFAFE;--text-primary: #1A1A2E;--text-secondary: #4A4A6A;--text-muted: #8080A0;--text-disabled: #B0B0C8;--border-color: rgba(0, 0, 0, .1);--border-light: rgba(0, 0, 0, .05);--border-glow: rgba(108, 99, 255, .2);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .08);--shadow-md: 0 4px 20px rgba(0, 0, 0, .1);--shadow-lg: 0 8px 40px rgba(0, 0, 0, .12);--shadow-glow: 0 0 20px rgba(108, 99, 255, .15);--shadow-glow-lg: 0 0 40px rgba(108, 99, 255, .2);--gradient-card: linear-gradient(180deg, rgba(255, 255, 255, .95) 0%, rgba(248, 248, 255, 1) 100%);--gradient-glow: radial-gradient(ellipse at center, rgba(108, 99, 255, .08) 0%, transparent 70%);--gradient-shine: linear-gradient(90deg, transparent, rgba(0, 0, 0, .03), transparent)}body.light .nav-sidebar{background:var(--bg-primary);border-right:1px solid var(--border-color)}body.light .nav-link{color:var(--text-secondary)}body.light .nav-link:hover{background:var(--bg-hover);color:var(--text-primary)}body.light .nav-link.active{background:linear-gradient(135deg,#6c63ff1a,#6c63ff0d);color:var(--primary)}body.light .level-card,body.light .settings-section,body.light .hardware-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}body.light .level-card:hover{box-shadow:var(--shadow-md)}body.light input,body.light select,body.light textarea{background:var(--bg-secondary);border-color:var(--border-color);color:var(--text-primary)}body.light input:focus,body.light select:focus,body.light textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff1a}body.light .secondary-btn{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}body.light .secondary-btn:hover{background:var(--bg-hover)}body.light .code-output,body.light .terminal-output{background:#1e1e2e;color:#e0e0e0}body.light .modal-overlay{background:#0000004d}body.light .tutorial-modal{background:var(--bg-card);border:1px solid var(--border-color)}body.light .app-header{background:var(--bg-primary);border-bottom:1px solid var(--border-color)}body.light .footer{background:var(--bg-secondary);border-top:1px solid var(--border-color)}body.light .phase-section{margin-bottom:3rem!important;padding-bottom:2rem!important;border-bottom:2px solid #e2e8f0!important}body.light .phase-section:last-child{border-bottom:none!important;margin-bottom:1rem!important}body.light .phase-title{color:#1e293b!important;margin-bottom:1.5rem!important;font-size:1.2rem!important}body.light .phase-badge{background:linear-gradient(135deg,#6366f1,#4f46e5)!important;color:#fff!important;padding:.35rem .9rem!important;font-weight:600!important}body.light .beginner-levels-container{gap:1.25rem!important;margin-top:.5rem!important}body.light .detail-accordion{gap:1.25rem!important;margin-top:1.5rem!important}body.light .detail-section{border:1px solid #e2e8f0!important;background:#fff!important;box-shadow:0 2px 8px #0000000f!important;border-radius:14px!important}body.light .detail-section-header{background:var(--bg-secondary);color:var(--text-primary);border-bottom:1px solid var(--border-color)}body.light .detail-section-toggle{color:var(--text-secondary)}body.light .detail-panel{background:var(--bg-card);border-radius:0}body.light .detail-intro-title{color:var(--text-secondary)}body.light .detail-list{color:var(--text-primary)}body.light .detail-code{display:block!important;background:#1e1e2e!important;color:#a6e3a1!important;border:1px solid #313244!important;border-radius:12px!important;padding:1.25rem 1.5rem!important;margin:0!important;font-family:JetBrains Mono,Fira Code,Consolas,monospace!important;font-size:.875rem!important;line-height:1.8!important;box-shadow:0 4px 16px #0003!important;overflow-x:auto!important;overflow-y:visible!important;white-space:pre-wrap!important;word-break:break-word!important;max-height:none!important}body.light .detail-code code{display:block!important;color:#cdd6f4!important;font-family:inherit!important;background:transparent!important;white-space:pre-wrap!important;word-break:break-word!important}body.light .detail-code .keyword{color:#cba6f7!important}body.light .detail-code .string{color:#a6e3a1!important}body.light .detail-code .comment{color:#6c7086!important}body.light .detail-code .function{color:#89b4fa!important}body.light .detail-code .number{color:#fab387!important}body.light .detail-cta-btn{border:1px solid rgba(16,185,129,.5);background:#10b9811a;color:#047857}body.light .detail-cta-btn:hover{background:#10b98133}body.light .learning-objectives,body.light .hints-section{background:#fff!important;border:1px solid #e2e8f0!important;box-shadow:0 1px 4px #0000000d!important;padding:1.25rem 1.5rem!important}body.light .learning-objectives h4,body.light .hints-section h4{color:#1e293b!important;font-weight:600!important;font-size:1rem!important}body.light .learning-objectives li,body.light .hints-section li{color:#475569!important}body.light .learning-objectives.compact h4,body.light .hints-section.compact h4{color:#1e293b!important;font-size:.95rem!important}body.light .learning-objectives.compact .objectives-list,body.light .hints-section.compact ul{color:#475569!important}body.light .hints-section{background:#fffbeb!important;border-color:#fcd34d!important}body.light .hints-section h4{color:#92400e!important}body.light .learning-detail.horizontal-tabs{background:#fff!important;border:1px solid #e2e8f0!important;box-shadow:0 2px 8px #00000014!important;margin-top:1.5rem!important;overflow:visible!important}body.light .learning-detail-header{background:#f8fafc!important;border-bottom:1px solid #e2e8f0!important;padding:1.25rem 1.5rem!important}body.light .detail-tabs-nav{background:#f1f5f9!important;border-bottom:1px solid #e2e8f0!important}body.light .detail-tab-btn{color:#64748b!important;background:transparent!important;padding:14px 20px!important;font-weight:500!important}body.light .detail-tab-btn:hover{color:#1e293b!important;background:#e2e8f0!important}body.light .detail-tab-btn.active{color:#6366f1!important;background:#fff!important;border-bottom-color:#6366f1!important;font-weight:600!important}body.light .detail-tab-content{background:#fff!important;overflow:visible!important;max-height:none!important}body.light .detail-tab-content .tab-panel{padding:1.5rem 1.75rem!important;overflow:visible!important;max-height:none!important}body.light .detail-tab-content .tab-panel h4,body.light .detail-tab-content .tab-panel h5{color:#1e293b!important;margin-bottom:.75rem!important;font-weight:600!important}body.light .detail-tab-content .tab-panel p{color:#475569!important;line-height:1.75!important;font-size:.95rem!important}body.light .detail-tab-content .tab-panel ul,body.light .detail-tab-content .tab-panel ol{color:#475569!important;padding-left:1.5rem!important;margin:.75rem 0!important}body.light .detail-tab-content .tab-panel li{margin-bottom:.5rem!important;line-height:1.65!important}body.light .detail-list.tips{list-style:none!important;padding-left:0!important}body.light .detail-list.tips li{position:relative;padding-left:2rem!important;margin-bottom:.75rem!important;color:#1e293b!important;line-height:1.7!important}body.light .detail-list.checklist{list-style:none!important;padding-left:0!important}body.light .detail-list.checklist li{position:relative;padding-left:2rem!important;margin-bottom:.6rem!important;color:#1e293b!important}body.light .detail-list.ordered{color:#1e293b!important;padding-left:1.5rem!important}body.light .detail-list.ordered li{margin-bottom:.6rem!important;line-height:1.7!important}body.light .detail-intro-title{color:#64748b!important;font-size:.95rem!important;margin-bottom:.75rem!important}body.light .detail-list{color:#1e293b!important;line-height:1.7!important}body.light .learning-detail.horizontal-tabs .detail-cta-row{background:#f8fafc!important;border-top:1px solid #e2e8f0!important;padding:1.25rem 1.75rem!important}body.light .tip-box{background:#fbbf241a;border-left:3px solid #D97706}body.light .tip-box p{color:#92400e}body.light .code-block{background:#1e1e2e;border:1px solid var(--border-color)}body.light .code-header{background:#171724}body.light .code-lang{color:#94a3b8}body.light .code-block code{color:#00d9ff}body.light .beginner-level-card{background:var(--bg-card);border:1px solid var(--border-color);box-shadow:var(--shadow-sm)}body.light .beginner-level-card:hover:not(.locked){box-shadow:var(--shadow-md);border-color:var(--primary)}body.light .beginner-level-card.completed{background:linear-gradient(135deg,rgba(16,185,129,.08),transparent);border-color:var(--success)}body.light .beginner-level-card .level-title{color:var(--text-primary)}body.light .week-badge{background:var(--bg-secondary);color:var(--text-secondary)}body.light .level-node{background:var(--bg-card);border:1px solid var(--border-color)}body.light .level-node.current{background:linear-gradient(135deg,rgba(108,99,255,.08),transparent);border-color:var(--primary)}body.light .badge-xp{background:var(--bg-secondary)}body.light .nav-logo-banner{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f0f23);padding:10px 14px;border-radius:10px;box-shadow:0 4px 12px #0f0f2366,0 2px 4px #0003,inset 0 1px #ffffff0d;border:1px solid rgba(255,255,255,.08);transition:all .3s ease}body.light .nav-logo-banner:hover{box-shadow:0 6px 20px #0f0f2380,0 4px 8px #00000040,inset 0 1px #ffffff14;transform:translateY(-1px)}body.light .footer-logo{background:linear-gradient(135deg,#1a1a2e,#16213e,#0f0f23);padding:6px 10px;border-radius:8px;box-shadow:0 3px 10px #0f0f2359,0 2px 4px #00000026;border:1px solid rgba(255,255,255,.06)}body,body.light,body.dark{transition:background-color .3s ease,color .3s ease}@media (max-width: 768px){:root{--font-xs: .7rem;--font-sm: .8rem;--font-md: .9rem;--font-lg: 1rem;--font-xl: 1.1rem;--font-2xl: 1.25rem;--font-3xl: 1.5rem;--font-4xl: 1.75rem;--space-4: .875rem;--space-6: 1.25rem;--space-8: 1.5rem;--radius-md: 10px;--radius-lg: 14px}}@media (max-width: 480px){:root{--font-xs: .65rem;--font-sm: .75rem;--font-md: .85rem;--font-lg: .95rem;--font-xl: 1.05rem;--font-2xl: 1.15rem;--font-3xl: 1.35rem;--font-4xl: 1.5rem}}.text-xs{font-size:var(--type-xs)}.text-sm{font-size:var(--type-sm)}.text-md{font-size:var(--type-md)}.text-lg{font-size:var(--type-lg)}.text-xl{font-size:var(--type-xl)}.text-2xl{font-size:var(--type-2xl)}.text-3xl{font-size:var(--type-3xl)}.text-4xl{font-size:var(--type-4xl)}.font-light{font-weight:var(--font-light)}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.font-extrabold{font-weight:var(--font-extrabold)}.font-black{font-weight:var(--font-black)}.leading-none{line-height:var(--leading-none)}.leading-tight{line-height:var(--leading-tight)}.leading-snug{line-height:var(--leading-snug)}.leading-normal{line-height:var(--leading-normal)}.leading-relaxed{line-height:var(--leading-relaxed)}.leading-loose{line-height:var(--leading-loose)}.tracking-tighter{letter-spacing:var(--tracking-tighter)}.tracking-tight{letter-spacing:var(--tracking-tight)}.tracking-normal{letter-spacing:var(--tracking-normal)}.tracking-wide{letter-spacing:var(--tracking-wide)}.tracking-wider{letter-spacing:var(--tracking-wider)}.tracking-widest{letter-spacing:var(--tracking-widest)}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.text-justify{text-align:justify}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-disabled{color:var(--text-disabled)}.text-inverse{color:var(--text-inverse)}.text-success{color:var(--success-500)}.text-warning{color:var(--warning-500)}.text-error{color:var(--error-500)}.text-info{color:var(--info-500)}.bg-base{background-color:var(--bg-base)}.bg-surface{background-color:var(--bg-surface)}.bg-elevated{background-color:var(--bg-elevated)}.bg-overlay{background-color:var(--bg-overlay)}.bg-primary{background-color:var(--primary-500)}.bg-primary-light{background-color:var(--primary-400)}.bg-primary-dark{background-color:var(--primary-600)}.bg-secondary{background-color:var(--secondary-500)}.bg-secondary-light{background-color:var(--secondary-400)}.bg-secondary-dark{background-color:var(--secondary-600)}.bg-success{background-color:var(--success-500)}.bg-warning{background-color:var(--warning-500)}.bg-error{background-color:var(--error-500)}.bg-info{background-color:var(--info-500)}.p-0{padding:var(--space-0)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-5{padding:var(--space-5)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.p-10{padding:var(--space-10)}.p-12{padding:var(--space-12)}.p-16{padding:var(--space-16)}.px-0{padding-left:var(--space-0);padding-right:var(--space-0)}.px-1{padding-left:var(--space-1);padding-right:var(--space-1)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.px-3{padding-left:var(--space-3);padding-right:var(--space-3)}.px-4{padding-left:var(--space-4);padding-right:var(--space-4)}.px-5{padding-left:var(--space-5);padding-right:var(--space-5)}.px-6{padding-left:var(--space-6);padding-right:var(--space-6)}.px-8{padding-left:var(--space-8);padding-right:var(--space-8)}.px-10{padding-left:var(--space-10);padding-right:var(--space-10)}.px-12{padding-left:var(--space-12);padding-right:var(--space-12)}.py-0{padding-top:var(--space-0);padding-bottom:var(--space-0)}.py-1{padding-top:var(--space-1);padding-bottom:var(--space-1)}.py-2{padding-top:var(--space-2);padding-bottom:var(--space-2)}.py-3{padding-top:var(--space-3);padding-bottom:var(--space-3)}.py-4{padding-top:var(--space-4);padding-bottom:var(--space-4)}.py-5{padding-top:var(--space-5);padding-bottom:var(--space-5)}.py-6{padding-top:var(--space-6);padding-bottom:var(--space-6)}.py-8{padding-top:var(--space-8);padding-bottom:var(--space-8)}.py-10{padding-top:var(--space-10);padding-bottom:var(--space-10)}.py-12{padding-top:var(--space-12);padding-bottom:var(--space-12)}.m-0{margin:var(--space-0)}.m-1{margin:var(--space-1)}.m-2{margin:var(--space-2)}.m-3{margin:var(--space-3)}.m-4{margin:var(--space-4)}.m-5{margin:var(--space-5)}.m-6{margin:var(--space-6)}.m-8{margin:var(--space-8)}.m-10{margin:var(--space-10)}.m-12{margin:var(--space-12)}.m-16{margin:var(--space-16)}.m-auto{margin:auto}.mx-0{margin-left:var(--space-0);margin-right:var(--space-0)}.mx-1{margin-left:var(--space-1);margin-right:var(--space-1)}.mx-2{margin-left:var(--space-2);margin-right:var(--space-2)}.mx-3{margin-left:var(--space-3);margin-right:var(--space-3)}.mx-4{margin-left:var(--space-4);margin-right:var(--space-4)}.mx-5{margin-left:var(--space-5);margin-right:var(--space-5)}.mx-6{margin-left:var(--space-6);margin-right:var(--space-6)}.mx-8{margin-left:var(--space-8);margin-right:var(--space-8)}.mx-10{margin-left:var(--space-10);margin-right:var(--space-10)}.mx-12{margin-left:var(--space-12);margin-right:var(--space-12)}.mx-auto{margin-left:auto;margin-right:auto}.my-0{margin-top:var(--space-0);margin-bottom:var(--space-0)}.my-1{margin-top:var(--space-1);margin-bottom:var(--space-1)}.my-2{margin-top:var(--space-2);margin-bottom:var(--space-2)}.my-3{margin-top:var(--space-3);margin-bottom:var(--space-3)}.my-4{margin-top:var(--space-4);margin-bottom:var(--space-4)}.my-5{margin-top:var(--space-5);margin-bottom:var(--space-5)}.my-6{margin-top:var(--space-6);margin-bottom:var(--space-6)}.my-8{margin-top:var(--space-8);margin-bottom:var(--space-8)}.my-10{margin-top:var(--space-10);margin-bottom:var(--space-10)}.my-12{margin-top:var(--space-12);margin-bottom:var(--space-12)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}.gap-10{gap:var(--space-10)}.gap-12{gap:var(--space-12)}.border{border:1px solid var(--border-default)}.border-0{border:none}.border-2{border-width:2px}.border-4{border-width:4px}.rounded-none{border-radius:var(--radius-none)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-3xl{border-radius:var(--radius-3xl)}.rounded-full{border-radius:var(--radius-full)}.border-default{border-color:var(--border-default)}.border-subtle{border-color:var(--border-subtle)}.border-strong{border-color:var(--border-strong)}.border-focus{border-color:var(--border-focus)}.border-error{border-color:var(--border-error)}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-start{align-items:flex-start}.items-center{align-items:center}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.justify-start{justify-content:flex-start}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.static{position:static}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.shadow-xs{box-shadow:var(--shadow-xs)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}.shadow-2xl{box-shadow:var(--shadow-2xl)}.shadow-inner{box-shadow:var(--shadow-inner)}.shadow-none{box-shadow:none}.shadow-glow-sm{box-shadow:var(--shadow-glow-sm)}.shadow-glow-md{box-shadow:var(--shadow-glow-md)}.shadow-glow-lg{box-shadow:var(--shadow-glow-lg)}.opacity-0{opacity:var(--opacity-0)}.opacity-5{opacity:var(--opacity-5)}.opacity-10{opacity:var(--opacity-10)}.opacity-20{opacity:var(--opacity-20)}.opacity-30{opacity:var(--opacity-30)}.opacity-40{opacity:var(--opacity-40)}.opacity-50{opacity:var(--opacity-50)}.opacity-60{opacity:var(--opacity-60)}.opacity-70{opacity:var(--opacity-70)}.opacity-80{opacity:var(--opacity-80)}.opacity-90{opacity:var(--opacity-90)}.opacity-100{opacity:var(--opacity-100)}.transition{transition-property:all;transition-duration:var(--duration-150);transition-timing-function:var(--ease-out)}.transition-fast{transition:all var(--transition-fast)}.transition-base{transition:all var(--transition-base)}.transition-slow{transition:all var(--transition-slow)}.transition-bounce{transition:all var(--transition-bounce)}.transition-none{transition:none}.w-auto{width:auto}.w-full{width:100%}.w-screen{width:100vw}.w-1-2{width:50%}.w-1-3{width:33.333333%}.w-2-3{width:66.666667%}.w-1-4{width:25%}.w-3-4{width:75%}.h-auto{height:auto}.h-full{height:100%}.h-screen{height:100vh}.min-w-0{min-width:0}.min-w-full{min-width:100%}.max-w-full{max-width:100%}.max-w-screen-sm{max-width:640px}.max-w-screen-md{max-width:768px}.max-w-screen-lg{max-width:1024px}.max-w-screen-xl{max-width:1280px}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-scroll{overflow:scroll}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.cursor-auto{cursor:auto}.cursor-pointer{cursor:pointer}.cursor-not-allowed{cursor:not-allowed}.cursor-move{cursor:move}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.select-none{user-select:none}.select-text{user-select:text}.select-all{user-select:all}.select-auto{user-select:auto}.z-0{z-index:var(--z-0)}.z-10{z-index:var(--z-10)}.z-20{z-index:var(--z-20)}.z-30{z-index:var(--z-30)}.z-40{z-index:var(--z-40)}.z-50{z-index:var(--z-50)}.z-dropdown{z-index:var(--z-dropdown)}.z-sticky{z-index:var(--z-sticky)}.z-fixed{z-index:var(--z-fixed)}.z-modal{z-index:var(--z-modal)}.z-tooltip{z-index:var(--z-tooltip)}*{box-sizing:border-box;margin:0;padding:0}body{font-family:Pretendard Variable,Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--bg-dark);color:var(--text-primary);min-height:100vh;line-height:1.6;font-feature-settings:"ss01" on,"ss02" on;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code,pre,.code-editor,.cm-editor{font-family:Fira Code,Consolas,Monaco,monospace;font-feature-settings:"liga" on,"calt" on}@media (max-width: 900px){.nav-item,.btn,button,.lang-btn,.tab-btn,.detail-tab,.action-btn,.control-btn,.mode-btn,.lesson-card,.level-card,[role=button],input[type=button],input[type=submit],input[type=checkbox],input[type=radio]{min-height:44px;min-width:44px}.nav-item{padding:.75rem}a{padding:.25rem;margin:-.25rem}}@media (hover: none) and (pointer: coarse){.nav-item:active,.btn:active,button:active,.card:active,.level-card:active,.lesson-card:active,.tab-btn:active,.lang-btn:active{transform:scale(.97);opacity:.85;transition:transform .1s ease,opacity .1s ease}.nav-item:hover,.btn:hover,.card:hover{transform:none}button,.btn,.nav-item,.card,.tab-btn{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}*{touch-action:manipulation}*{-webkit-tap-highlight-color:transparent}}@media (-webkit-min-device-pixel-ratio: 2),(min-resolution: 192dpi){.card,.level-card,.lesson-card,.btn{border-width:.5px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media print{.main-navigation,.mobile-menu-toggle,.action-buttons,.control-buttons{display:none!important}.app-content{margin-left:0!important;margin-bottom:0!important}.main-content{padding:0!important}}@supports (-webkit-touch-callout: none){.modal-content{max-height:-webkit-fill-available}input,textarea,select{font-size:16px}.modal-body{overscroll-behavior:contain}@media (max-width: 768px){.app-content{padding-top:env(safe-area-inset-top)}}}@media (max-width: 768px){.ripple-effect{position:relative;overflow:hidden}.ripple-effect:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:#ffffff4d;border-radius:50%;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease}.ripple-effect:active:after{width:200px;height:200px}}@media (prefers-color-scheme: dark) and (max-width: 768px){:root{--bg-dark: #000000;--bg-primary: #0a0a0a;--bg-secondary: #141414}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glow{0%,to{box-shadow:0 0 20px #6c63ff4d}50%{box-shadow:0 0 30px #6c63ff80}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes ripple{0%{transform:scale(0);opacity:1}to{transform:scale(4);opacity:0}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-fadeIn{animation:fadeIn .3s ease-out}.animate-fadeInUp{animation:fadeInUp .4s ease-out}.animate-fadeInScale{animation:fadeInScale .3s ease-out}.animate-slideInRight{animation:slideInRight .4s ease-out}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-glow{animation:glow 2s ease-in-out infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.animate-spin{animation:spin 1s linear infinite}.animate-slideUp{animation:slideUp .4s ease}.animate-scaleIn{animation:scaleIn .3s ease}.delay-100{animation-delay:.1s}.delay-200{animation-delay:.2s}.delay-300{animation-delay:.3s}.delay-400{animation-delay:.4s}.delay-500{animation-delay:.5s}.app{display:flex;min-height:100vh}.app-content{flex:1;display:flex;flex-direction:column;margin-left:var(--nav-width);min-height:100vh}.skip-link{position:absolute;top:-100%;left:1rem;padding:.75rem 1.5rem;background:var(--color-accent, #6366f1);color:#fff;font-weight:600;border-radius:0 0 8px 8px;z-index:10000;text-decoration:none;transition:top .2s}.skip-link:focus{top:0;outline:2px solid #fff;outline-offset:2px}:focus-visible{outline:2px solid var(--color-accent, #6366f1);outline-offset:2px}:focus:not(:focus-visible){outline:none}.main-navigation{position:fixed;left:0;top:0;width:var(--nav-width);height:100vh;background:var(--bg-primary);border-right:1px solid var(--border-color);display:flex;flex-direction:column;padding:1.5rem 1rem;z-index:100}.nav-brand{display:flex;align-items:center;justify-content:center;padding:.5rem .25rem 1rem;margin-bottom:2rem;text-decoration:none;cursor:pointer;transition:transform .2s ease,opacity .2s ease}.nav-brand:hover{transform:scale(1.02)}.nav-brand:active{transform:scale(.98)}.nav-logo{width:42px;height:42px;object-fit:contain}.nav-logo-banner{width:100%;height:auto;max-height:72px;object-fit:contain}.brand-text{display:flex;flex-direction:column}.brand-name{font-size:1.25rem;font-weight:700;color:var(--primary)}.brand-tagline{font-size:.7rem;color:var(--text-muted)}.nav-items{display:flex;flex-direction:column;gap:.25rem;flex:1}.nav-item{display:flex;align-items:center;gap:.6rem;padding:.6rem .85rem;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-secondary);font-size:.95rem;cursor:pointer;transition:all var(--transition-fast);text-align:left;text-decoration:none}.nav-item:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active{background:linear-gradient(135deg,var(--primary) 0%,var(--primary-dark) 100%);color:#fff;box-shadow:var(--shadow-glow)}.nav-icon{font-size:1.25rem}.nav-status{padding-top:1rem;border-top:1px solid var(--border-color)}.lang-toggle{margin-top:1rem;display:flex;gap:.5rem}.lang-btn{flex:1;padding:.35rem .5rem;border-radius:var(--radius-sm);border:1px solid var(--border-color);background:transparent;color:var(--text-secondary);cursor:pointer;font-size:.8rem}.lang-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.status-indicators{display:flex;flex-direction:column;gap:.5rem}.status-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}.status-dot{width:8px;height:8px;border-radius:50%;background:var(--error);transition:all var(--transition-normal)}.status-item.connected .status-dot{background:var(--success);box-shadow:0 0 8px #4caf5099}.header{display:flex;justify-content:space-between;align-items:center;padding:1rem 2rem;background:var(--bg-primary);border-bottom:1px solid var(--border-color);height:var(--header-height)}.header-left{display:flex;align-items:center;gap:1rem}.logo{height:40px;width:auto}.logo-divider{width:1px;height:28px;background:linear-gradient(180deg,transparent,var(--border-color),transparent)}.header-subtitle{font-size:.9rem;color:var(--text-muted)}.connection-status{display:flex;gap:1.5rem}.main-content{flex:1;padding:2rem;overflow-y:auto}@media (max-width: 900px){:root{--nav-width: 0}.main-navigation{position:fixed;inset:auto 0 0;width:100%;height:auto;flex-direction:row;padding:.5rem 1rem;border-right:none;border-top:1px solid var(--border-color)}.nav-brand,.nav-status{display:none}.nav-items{flex-direction:row;justify-content:space-around;width:100%}.nav-item{flex-direction:column;padding:.5rem;gap:.25rem}.nav-label{font-size:.7rem}.app-content{margin-left:0;margin-bottom:70px}.main-content{padding:1rem}.levels-container,.control-modes{grid-template-columns:1fr}}@supports (padding: env(safe-area-inset-bottom)){.main-navigation{padding-bottom:calc(.5rem + env(safe-area-inset-bottom))}.app-content{padding-bottom:env(safe-area-inset-bottom)}@media (max-width: 900px){.app-content{margin-bottom:calc(70px + env(safe-area-inset-bottom))}}}@media (max-width: 375px){.main-content{padding:.75rem}.header{padding:.75rem 1rem}.page-title,.dashboard-header h1{font-size:1.25rem}.section-title{font-size:1.1rem}.card-title{font-size:.9rem}.card-description{font-size:.75rem}.nav-items{gap:0}.nav-item{padding:.5rem .25rem;min-width:40px}.nav-icon{font-size:1.1rem}.nav-label{display:none}.level-card,.lesson-card{padding:.75rem}.progress-stats{gap:.5rem}.stat-card{padding:.75rem;min-width:70px}.stat-value{font-size:1.25rem}.stat-label{font-size:.65rem}}@media (max-width: 480px){.main-content{padding:.875rem}.header{padding:.875rem 1.25rem}.header-left,.header-right{flex-wrap:wrap;gap:.5rem}.connection-status{gap:.75rem}.course-selector{flex-direction:column;gap:.5rem}.course-btn{width:100%;justify-content:center}.levels-container{gap:.75rem}.level-card{padding:1rem}.level-header{flex-direction:column;align-items:flex-start;gap:.5rem}.lessons-list{gap:.5rem}.lesson-card{padding:.875rem}.progress-tracker{gap:1rem}.progress-stats{flex-wrap:wrap;justify-content:space-between}.stat-card{flex:1 1 45%;min-width:0}.playground-layout{flex-direction:column;gap:0}.editor-section,.output-section,.simulator-section{width:100%;max-width:100%;flex:none}.editor-panel{min-height:200px;max-height:300px}.output-panel{min-height:120px;max-height:180px}.playground-tabs{display:flex;gap:.25rem;padding:.5rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color);overflow-x:auto;-webkit-overflow-scrolling:touch}.playground-tab{flex:1;padding:.625rem .75rem;min-height:44px;border-radius:var(--radius-sm);font-size:.8rem;white-space:nowrap}.action-buttons,.control-buttons{flex-wrap:wrap;gap:.5rem}.action-buttons .btn,.control-buttons .btn{flex:1 1 auto;min-width:80px;text-align:center;justify-content:center}.robot-control{gap:.75rem}.camera-section{aspect-ratio:16/10}.joystick-container{width:140px;height:140px}.control-pad{gap:.25rem}.control-btn{padding:.625rem}}@media (max-width: 768px){.dashboard-grid{grid-template-columns:1fr;gap:1rem}.dashboard{grid-template-columns:1fr}.dashboard-sidebar{position:fixed;left:-280px;top:0;bottom:0;width:280px;z-index:var(--z-modal);transition:left var(--transition-normal)}.dashboard-sidebar.open{left:0}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:calc(var(--z-modal) - 1)}.sidebar-overlay.visible{display:block}.mobile-menu-toggle{display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);cursor:pointer;transition:var(--transition-fast)}.mobile-menu-toggle:active{background:var(--bg-hover)}.detail-tabs{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;flex-wrap:nowrap;gap:.25rem;padding-bottom:.25rem}.detail-tabs::-webkit-scrollbar{display:none}.detail-tab{flex-shrink:0;padding:.625rem 1rem;font-size:.8rem;min-height:44px}.data-table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch}.data-table th,.data-table td{padding:.625rem .75rem;font-size:.8rem;white-space:nowrap}.form-group{margin-bottom:1rem}.form-input,.form-select,.form-textarea{padding:.75rem;font-size:16px;min-height:44px}.modal-content{width:95vw;max-width:95vw;max-height:90vh;margin:5vh auto}.modal-header,.modal-body{padding:1rem}.modal-footer{padding:1rem;flex-direction:column;gap:.5rem}.modal-footer .btn{width:100%}}@media (max-width: 1024px){.learning-dashboard{max-width:100%}.dashboard-grid,.beginner-levels-container{grid-template-columns:1fr}.progress-stats{grid-template-columns:repeat(2,1fr)}}@media (max-width: 900px) and (orientation: landscape){.main-content{padding:.75rem 1rem}.nav-items{flex-direction:row;justify-content:center;gap:1rem}.nav-item{flex-direction:row;padding:.5rem .75rem;gap:.5rem}.nav-label{display:inline;font-size:.75rem}.playground-layout{flex-direction:row;height:calc(100vh - 120px)}.editor-section,.simulator-section{flex:1;max-height:100%}.level-card,.lesson-card{padding:.75rem}.robot-control{grid-template-columns:1fr 1fr}.camera-section{aspect-ratio:16/9}}@media (max-width: 768px) and (orientation: portrait){.playground-layout{flex-direction:column}.level-card,.lesson-card,.stat-card{width:100%}.camera-section{aspect-ratio:4/3}}@media (max-width: 900px){.joystick-container,.control-pad{touch-action:none}.lessons-list,.levels-container,.dashboard-grid{-webkit-overflow-scrolling:touch}input[type=checkbox],input[type=radio]{width:20px;height:20px}select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23B0B0D0' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}input:focus,select:focus,textarea:focus,button:focus{outline:2px solid var(--primary);outline-offset:2px}body.modal-open{overflow:hidden;position:fixed;width:100%}}@media (max-width: 900px){.main-navigation{background:var(--bg-primary);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 -4px 20px #0000004d}.nav-items{max-width:500px;margin:0 auto}.nav-item{flex:1;max-width:80px;border-radius:var(--radius-md)}.nav-item.active{background:var(--gradient-primary)}.nav-icon{font-size:1.35rem}.nav-label{font-size:.65rem;text-align:center;line-height:1.2}}@media (max-width: 768px){.editor-toolbar{flex-wrap:wrap;gap:.375rem;padding:.5rem}.editor-toolbar .btn{padding:.5rem .75rem;font-size:.75rem}.file-actions{width:100%;justify-content:space-between;order:-1}.run-actions{width:100%;justify-content:center;gap:.5rem}.run-actions .btn{flex:1;max-width:150px}}@media (max-width: 768px){.keyboard-open .main-navigation{display:none}.keyboard-open .app-content{margin-bottom:0}.keyboard-open .mobile-fab{display:none}}@media (max-width: 768px){.a11y-touch-target{min-height:48px;min-width:48px}:focus-visible{outline:3px solid var(--primary);outline-offset:2px}.skip-link{position:absolute;top:-40px;left:0;background:var(--primary);color:#fff;padding:8px 16px;z-index:1000;transition:top var(--transition-fast)}.skip-link:focus{top:0}}@media (max-width: 768px){.desktop-only{display:none!important}}@media (min-width: 769px){.mobile-only{display:none!important}}@media (max-width: 768px){.hide-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.hide-scrollbar::-webkit-scrollbar{display:none}}.challenges-area{display:flex;flex-direction:column;gap:2rem}.badges-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem}.badge-card{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md);border:1px solid var(--border-color);transition:all var(--transition-fast)}.badge-card.unlocked{border-color:var(--success);background:linear-gradient(135deg,var(--bg-secondary),rgba(76,175,80,.1))}.badge-card.locked{opacity:.5}.badge-icon{font-size:2.5rem}.badge-info{display:flex;flex-direction:column;gap:.25rem}.badge-info h4{font-size:1rem;font-weight:600}.badge-info p{font-size:.85rem;color:var(--text-secondary)}.unlock-date{font-size:.75rem;color:var(--success)}.weekly-challenges h3{font-size:1.1rem;margin-bottom:1rem}.challenge-list{display:flex;flex-direction:column;gap:1rem}.challenge-item{display:flex;gap:1rem;padding:1rem;background:var(--bg-secondary);border-radius:var(--radius-md)}.challenge-icon{font-size:2rem}.challenge-info{flex:1}.challenge-info h4{font-size:.95rem;font-weight:600;margin-bottom:.25rem}.challenge-info p{font-size:.85rem;color:var(--text-secondary);margin-bottom:.5rem}.challenge-progress{display:flex;align-items:center;gap:.75rem}.challenge-progress .progress-bar{flex:1;height:6px;background:var(--bg-dark);border-radius:3px;overflow:hidden}.challenge-progress .progress-bar>div{height:100%;background:linear-gradient(90deg,var(--primary),var(--primary-light));border-radius:3px}.challenge-progress span{font-size:.75rem;color:var(--text-muted);white-space:nowrap}.practice-area{display:flex;flex-direction:column;gap:1.5rem}.practice-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}.practice-header h2{display:flex;align-items:center;gap:.5rem;font-size:1.25rem}.template-selector{display:flex;gap:.5rem;flex-wrap:wrap}.template-btn{padding:.5rem 1rem;background:var(--bg-secondary);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-secondary);font-size:.85rem;cursor:pointer;transition:all var(--transition-fast)}.template-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.template-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.no-level-selected{display:flex;align-items:center;justify-content:center;min-height:400px}.empty-state{text-align:center}.empty-icon{font-size:4rem;margin-bottom:1rem;opacity:.5}.empty-state h3{font-size:1.25rem;margin-bottom:.5rem}.empty-state p{color:var(--text-muted);margin-bottom:1.5rem}.footer{padding:1.5rem 2rem;text-align:center;border-top:1px solid var(--border-color);color:var(--text-muted);font-size:.85rem}.footer p{display:flex;align-items:center;justify-content:center;gap:.5rem}.footer-logo{height:24px;opacity:.6}.footer-links{margin-top:1rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-size:.9rem}.footer-links a{color:var(--text-secondary);text-decoration:none;transition:color .2s ease}.footer-links a:hover{color:var(--primary);text-decoration:underline}.footer-links span{color:var(--text-muted)}.markdown-content{line-height:1.8}.markdown-content h1{font-size:2rem;margin-top:2rem;margin-bottom:1rem;color:var(--text-primary);border-bottom:2px solid var(--border-color);padding-bottom:.5rem}.markdown-content h2{font-size:1.5rem;margin-top:2rem;margin-bottom:.75rem;color:var(--text-primary)}.markdown-content h3{font-size:1.25rem;margin-top:1.5rem;margin-bottom:.5rem;color:var(--text-secondary)}.markdown-content p{margin-bottom:1rem;color:var(--text-secondary)}.markdown-content ul,.markdown-content ol{margin-left:1.5rem;margin-bottom:1rem}.markdown-content li{margin-bottom:.5rem;color:var(--text-secondary)}.markdown-content table{width:100%;border-collapse:collapse;margin:1rem 0}.markdown-content th,.markdown-content td{border:1px solid var(--border-color);padding:.75rem;text-align:left}.markdown-content th{background:var(--bg-secondary);font-weight:600;color:var(--text-primary)}.markdown-content code{background:var(--bg-secondary);padding:.2rem .4rem;border-radius:.25rem;font-family:Courier New,monospace;font-size:.9em}.markdown-content pre{background:var(--bg-secondary);padding:1rem;border-radius:.5rem;overflow-x:auto;margin:1rem 0}.markdown-content pre code{background:none;padding:0}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-dark)}::-webkit-scrollbar-thumb{background:var(--bg-hover);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--primary)}.dev-output{position:fixed;bottom:80px;right:1rem;width:400px;max-height:300px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-lg);z-index:200}.dev-output-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem 1rem;background:var(--bg-secondary);border-bottom:1px solid var(--border-color)}.dev-output-header span{font-size:.85rem;font-weight:500}.dev-output-header button{padding:.25rem .5rem;background:transparent;border:1px solid var(--border-color);border-radius:var(--radius-sm);color:var(--text-muted);font-size:.75rem;cursor:pointer}.dev-output-header button:hover{background:var(--bg-hover);color:var(--text-primary)}.dev-output-content{padding:.5rem 1rem;max-height:250px;overflow-y:auto;font-family:monospace;font-size:.75rem;line-height:1.5}.dev-output-content div{padding:.125rem 0;color:var(--text-secondary)}@media (max-width: 900px){.dev-output{width:calc(100% - 2rem);bottom:90px;left:1rem;right:1rem}}.editor-container{flex:1;min-height:600px;height:600px;position:relative}.fill-height{height:100%;width:100%}.blockly-editor-wrapper{height:600px!important;min-height:600px}.blockly-editor-wrapper .injectionDiv{height:100%!important}.blocklyToolboxCategory .blocklyTreeLabel{color:#fff!important;font-size:14px!important;font-weight:600!important}.blocklyTreeRow:hover{background:#ffffff1a!important}.blocklyTreeSelected{background:#fff3!important}.blocklyDropDownDiv{background-color:#2d2d2d!important;border:1px solid #555!important;border-radius:4px!important;box-shadow:0 4px 12px #0006!important}.blocklyMenuItem{color:#fff!important;padding:8px 16px!important}.blocklyMenuItem:hover,.blocklyMenuItemHighlight{background-color:#3d3d3d!important}.blocklyHtmlInput{background-color:#1a1a1a!important;color:#fff!important;border:2px solid #4a9eff!important;border-radius:4px!important;padding:2px 4px!important;font-size:14px!important;font-weight:600!important}.blocklySelected>.blocklyPath{stroke:#4a9eff!important;stroke-width:3px!important}.blocklyScrollbarHandle{fill:#555!important}.blocklyScrollbarHandle:hover{fill:#777!important}.cm-editor{height:600px!important;background:#1e1e2e!important;border:1px solid #313244!important;border-radius:8px!important}.cm-editor .cm-scroller{font-family:Fira Code,Consolas,Monaco,monospace;font-size:14px;line-height:1.6}.cm-editor .cm-content,.cm-editor .cm-line{color:#cdd6f4!important}.cm-editor .cm-keyword{color:#f38ba8!important;font-weight:600!important}.cm-editor .cm-string{color:#a6e3a1!important}.cm-editor .cm-comment{color:#9399b2!important;font-style:italic!important}.cm-editor .cm-number{color:#fab387!important;font-weight:500!important}.cm-editor .cm-function,.cm-editor .cm-def{color:#89b4fa!important;font-weight:600!important}.cm-editor .cm-variableName{color:#cdd6f4!important}.cm-editor .cm-operator{color:#cba6f7!important;font-weight:600!important}.cm-editor .cm-builtin{color:#94e2d5!important}.cm-editor .cm-property{color:#89dceb!important}.cm-editor .cm-gutters{background:#181825!important;color:#6c7086!important;border-right:1px solid #313244!important}.cm-editor .cm-activeLineGutter{background:#1e1e2e!important;color:#cdd6f4!important}.cm-editor .cm-activeLine{background:#89b4fa1a!important}.cm-editor .cm-cursor{border-left:2px solid #89b4fa!important}.cm-editor .cm-selectionBackground,.cm-editor ::selection{background:#89b4fa4d!important}.cm-tooltip{background:#1e1e2e!important;border:1px solid #45475a!important;border-radius:8px!important;box-shadow:0 4px 20px #00000080!important}.cm-tooltip-autocomplete{background:#1e1e2e!important}.cm-tooltip-autocomplete>ul{font-family:JetBrains Mono,Fira Code,monospace!important;max-height:300px!important}.cm-tooltip-autocomplete>ul>li{padding:6px 12px!important;color:#cdd6f4!important;border-radius:4px!important;margin:2px 4px!important}.cm-tooltip-autocomplete>ul>li:hover{background:#313244!important}.cm-tooltip-autocomplete>ul>li[aria-selected=true],.cm-tooltip-autocomplete>ul>li.cm-completionMatchedText{background:#45475a!important;color:#fff!important}.cm-completionLabel{color:#cdd6f4!important;font-weight:500!important}.cm-completionDetail{color:#6c7086!important;font-size:.85em!important;margin-left:8px!important}.cm-completionInfo{background:#1e1e2e!important;border:1px solid #45475a!important;color:#a6adc8!important;padding:8px 12px!important;border-radius:6px!important;max-width:300px!important}.cm-completionIcon-function:after{color:#89b4fa!important}.cm-completionIcon-keyword:after{color:#cba6f7!important}.cm-completionIcon-class:after{color:#f9e2af!important}.cm-completionIcon-constant:after{color:#fab387!important}.cm-completionIcon-method:after{color:#94e2d5!important}.cm-completionIcon-module:after{color:#a6e3a1!important}.cm-completionMatchedText{color:#89b4fa!important;font-weight:600!important;text-decoration:none!important}.practice-header .header-controls{display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap}.editor-mode-toggle{display:flex;background-color:var(--bg-secondary);border-radius:var(--radius-md);padding:4px;border:1px solid var(--border-color)}.toggle-btn{padding:.5rem 1rem;font-size:.85rem;font-weight:500;border:none;background-color:transparent;color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;gap:.5rem}.toggle-btn:hover{background-color:var(--bg-hover);color:var(--text-primary)}.toggle-btn.active{background-color:var(--primary);color:#fff;box-shadow:0 2px 8px #6c63ff4d}.editor-mode-toggle.inline{display:flex;background-color:#1e1e4acc;border-radius:8px;padding:2px;border:1px solid rgba(255,255,255,.1);margin-left:8px}.editor-mode-toggle.inline .toggle-btn{padding:6px 12px;font-size:.8rem}.practice-header.compact{padding:.75rem 1rem;margin-bottom:.5rem}.practice-header.compact h2{font-size:1.1rem;margin:0}.practice-area.practice-only{display:flex;flex-direction:column;gap:.5rem}.practice-area.practice-only .code-playground{flex:1;min-height:70vh}body.light .blocklyToolboxCategory .blocklyTreeLabel{color:#334155!important}body.light .blocklyTreeRow:hover{background:#0000000f!important}body.light .blocklyTreeSelected{background:#6366f126!important}body.light .blocklyDropDownDiv{background-color:#fff!important;border:1px solid #e2e8f0!important;box-shadow:0 4px 12px #0000001f!important}body.light .blocklyMenuItem{color:#334155!important}body.light .blocklyMenuItem:hover,body.light .blocklyMenuItemHighlight{background-color:#f1f5f9!important}body.light .blocklyHtmlInput{background-color:#fff!important;color:#1e293b!important;border:2px solid #3b82f6!important}body.light .blocklyScrollbarHandle{fill:#cbd5e1!important}body.light .blocklyScrollbarHandle:hover{fill:#94a3b8!important}body.light .blocklyMainBackground{fill:#f8fafc!important;stroke:#e2e8f0!important}body.light .blocklyToolboxDiv{background:#fff!important;border-right:1px solid #e2e8f0!important}body.light .blocklyFlyoutBackground{fill:#f1f5f9!important}body.light .blocklyTrash image{opacity:.6}body.light .editor-mode-toggle.inline{background-color:#f1f5f9;border-color:#e2e8f0}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 0%,var(--bg-hover) 50%,var(--bg-secondary) 100%);background-size:200% 100%;animation:shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-md)}.skeleton-text{height:1em;margin-bottom:.5rem;border-radius:var(--radius-sm)}.skeleton-text.sm{height:.875em;width:60%}.skeleton-text.lg{height:1.25em;width:80%}.skeleton-title{height:1.5em;width:70%;margin-bottom:1rem}.skeleton-avatar{width:48px;height:48px;border-radius:50%}.skeleton-card{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:1.5rem;border:1px solid var(--border-color)}.skeleton-card .skeleton-icon{width:64px;height:64px;border-radius:var(--radius-md);margin-bottom:1rem}.skeleton-card .skeleton-lines{display:flex;flex-direction:column;gap:.5rem}.skeleton-button{height:40px;width:120px;border-radius:var(--radius-md)}.skeleton-image{width:100%;aspect-ratio:16/9;border-radius:var(--radius-md)}.loading-spinner{width:40px;height:40px;border:3px solid var(--border-color);border-top-color:var(--primary);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner.sm{width:24px;height:24px;border-width:2px}.loading-spinner.lg{width:56px;height:56px;border-width:4px}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem;gap:1rem}.loading-text{color:var(--text-muted);font-size:var(--font-sm)}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip{position:absolute;z-index:var(--z-tooltip);padding:.5rem .75rem;background:var(--bg-elevated);border:1px solid var(--border-color);border-radius:var(--radius-sm);font-size:var(--font-sm);color:var(--text-primary);white-space:nowrap;pointer-events:none;opacity:0;visibility:hidden;transition:opacity var(--transition-fast),visibility var(--transition-fast),transform var(--transition-fast);box-shadow:var(--shadow-md)}.tooltip:before{content:"";position:absolute;width:8px;height:8px;background:var(--bg-elevated);border:1px solid var(--border-color);transform:rotate(45deg)}.tooltip.top{bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px)}.tooltip.top:before{bottom:-5px;left:50%;transform:translate(-50%) rotate(45deg);border-top:none;border-left:none}.tooltip.bottom{top:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(-4px)}.tooltip.bottom:before{top:-5px;left:50%;transform:translate(-50%) rotate(45deg);border-bottom:none;border-right:none}.tooltip.left{right:calc(100% + 8px);top:50%;transform:translateY(-50%) translate(4px)}.tooltip.left:before{right:-5px;top:50%;transform:translateY(-50%) rotate(45deg);border-left:none;border-bottom:none}.tooltip.right{left:calc(100% + 8px);top:50%;transform:translateY(-50%) translate(-4px)}.tooltip.right:before{left:-5px;top:50%;transform:translateY(-50%) rotate(45deg);border-right:none;border-top:none}.tooltip-wrapper:hover .tooltip,.tooltip-wrapper:focus-within .tooltip{opacity:1;visibility:visible}.tooltip-wrapper:hover .tooltip.top,.tooltip-wrapper:focus-within .tooltip.top{transform:translate(-50%) translateY(0)}.tooltip-wrapper:hover .tooltip.bottom,.tooltip-wrapper:focus-within .tooltip.bottom{transform:translate(-50%) translateY(0)}.tooltip-wrapper:hover .tooltip.left,.tooltip-wrapper:focus-within .tooltip.left{transform:translateY(-50%) translate(0)}.tooltip-wrapper:hover .tooltip.right,.tooltip-wrapper:focus-within .tooltip.right{transform:translateY(-50%) translate(0)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;text-align:center;animation:fadeInUp .5s ease}.empty-state-icon{font-size:4rem;margin-bottom:1.5rem;opacity:.6;filter:grayscale(30%)}.empty-state-title{font-size:var(--font-xl);font-weight:var(--font-semibold);color:var(--text-primary);margin-bottom:.5rem}.empty-state-description{font-size:var(--font-md);color:var(--text-muted);max-width:400px;line-height:1.6;margin-bottom:1.5rem}.empty-state-action{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;background:var(--gradient-primary);border:none;border-radius:var(--radius-md);color:#fff;font-size:var(--font-md);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-normal)}.empty-state-action:hover{transform:translateY(-2px);box-shadow:var(--shadow-glow)}.empty-state.compact{padding:2rem 1rem}.empty-state.compact .empty-state-icon{font-size:2.5rem;margin-bottom:1rem}.empty-state.compact .empty-state-title{font-size:var(--font-lg)}.empty-state.compact .empty-state-description{font-size:var(--font-sm)}.empty-state-bg{position:relative}.empty-state-bg:before{content:"";position:absolute;width:200px;height:200px;background:var(--gradient-glow);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:.5}.progress-bar-container{width:100%;height:8px;background:var(--bg-dark);border-radius:var(--radius-full);overflow:hidden;position:relative}.progress-bar-fill{height:100%;background:var(--gradient-primary);border-radius:var(--radius-full);transition:width var(--transition-slow);position:relative;overflow:hidden}.progress-bar-fill:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);animation:shimmer 2s ease-in-out infinite}.progress-bar-container.success .progress-bar-fill{background:linear-gradient(90deg,var(--success) 0%,var(--success-light) 100%)}.progress-bar-container.warning .progress-bar-fill{background:linear-gradient(90deg,var(--warning) 0%,var(--warning-light) 100%)}.progress-bar-container.lg{height:12px}.progress-with-label{display:flex;flex-direction:column;gap:.5rem}.progress-label{display:flex;justify-content:space-between;font-size:var(--font-sm);color:var(--text-secondary)}.progress-label-value{font-weight:var(--font-semibold);color:var(--primary)}.badge{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .625rem;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:var(--font-medium);transition:all var(--transition-fast)}.badge-primary{background:#6c63ff26;color:var(--primary-light);border:1px solid rgba(108,99,255,.3)}.badge-success{background:#4caf5026;color:var(--success-light);border:1px solid rgba(76,175,80,.3)}.badge-warning{background:#ffc10726;color:var(--warning);border:1px solid rgba(255,193,7,.3)}.badge-error{background:#f4433626;color:var(--error-light);border:1px solid rgba(244,67,54,.3)}.badge-secondary{background:#00d9ff26;color:var(--secondary-light);border:1px solid rgba(0,217,255,.3)}.badge-icon{font-size:.875em}.badge.animated{animation:fadeInScale .3s ease}.badge.glow{box-shadow:0 0 10px #6c63ff4d}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;border-radius:var(--radius-md);font-size:var(--font-md);font-weight:var(--font-medium);cursor:pointer;transition:all var(--transition-normal);border:none;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;width:100%;height:100%;top:0;left:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0%,transparent 70%);transform:scale(0);opacity:0;transition:transform .5s ease,opacity .3s ease}.btn:active:after{transform:scale(4);opacity:0;transition:0s}.btn-primary{background:var(--gradient-primary);color:#fff;box-shadow:0 4px 12px #6c63ff4d}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6c63ff66}.btn-secondary{background:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border-color)}.btn-secondary:hover{background:var(--bg-hover);border-color:var(--primary)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-primary)}.btn-danger{background:var(--gradient-accent);color:#fff;box-shadow:0 4px 12px #ff6b6b4d}.btn-danger:hover{transform:translateY(-2px);box-shadow:0 6px 20px #ff6b6b66}.btn-sm{padding:.375rem .875rem;font-size:var(--font-sm)}.btn-lg{padding:.875rem 1.75rem;font-size:var(--font-lg)}.btn-icon{padding:.625rem;width:40px;height:40px}.btn-icon.sm{padding:.375rem;width:32px;height:32px}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none!important}.card{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.5rem;transition:all var(--transition-normal)}.card:hover{border-color:var(--border-glow)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem;padding-bottom:1rem;border-bottom:1px solid var(--border-light)}.card-title{font-size:var(--font-lg);font-weight:var(--font-semibold);color:var(--text-primary)}.card-subtitle{font-size:var(--font-sm);color:var(--text-muted);margin-top:.25rem}.card-body{color:var(--text-secondary)}.card-footer{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border-light);display:flex;justify-content:flex-end;gap:.75rem}.card.highlight{border-color:var(--primary);box-shadow:var(--shadow-glow)}.card.highlight:before{content:"";position:absolute;inset:0;background:var(--gradient-glow);opacity:.5;pointer-events:none;border-radius:inherit}.stat-card{background:var(--gradient-card);border:1px solid var(--border-color);border-radius:var(--radius-lg);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:all var(--transition-normal)}.stat-card:hover{transform:translateY(-2px);border-color:var(--border-glow);box-shadow:var(--shadow-md)}.stat-icon{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#6c63ff26;border-radius:var(--radius-md);font-size:1.25rem;margin-bottom:.5rem}.stat-value{font-size:var(--font-2xl);font-weight:var(--font-bold);color:var(--text-primary);line-height:1.2}.stat-label{font-size:var(--font-sm);color:var(--text-muted)}.stat-change{font-size:var(--font-xs);display:flex;align-items:center;gap:.25rem}.stat-change.positive{color:var(--success)}.stat-change.negative{color:var(--error)}.input{width:100%;padding:.75rem 1rem;background:var(--bg-dark);border:1px solid var(--border-color);border-radius:var(--radius-md);color:var(--text-primary);font-size:var(--font-md);transition:all var(--transition-fast)}.input:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 3px #6c63ff33}.input::placeholder{color:var(--text-disabled)}.input:disabled{opacity:.5;cursor:not-allowed}.input-group{display:flex;flex-direction:column;gap:.5rem}.input-label{font-size:var(--font-sm);font-weight:var(--font-medium);color:var(--text-secondary)}.input-hint{font-size:var(--font-xs);color:var(--text-muted)}.input-error{border-color:var(--error)}.input-error:focus{box-shadow:0 0 0 3px #f4433633}.input-error-message{font-size:var(--font-xs);color:var(--error)}.mobile-fab{display:none;position:fixed;bottom:calc(80px + env(safe-area-inset-bottom,0px));right:16px;width:56px;height:56px;border-radius:50%;background:var(--gradient-primary);color:#fff;border:none;box-shadow:var(--shadow-lg),var(--shadow-glow);cursor:pointer;z-index:var(--z-fixed);align-items:center;justify-content:center;font-size:1.5rem;transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.mobile-fab:active{transform:scale(.95);box-shadow:var(--shadow-md)}@media (max-width: 768px){.mobile-fab{display:flex}}.swipe-indicator{display:none;width:36px;height:4px;background:var(--text-muted);border-radius:2px;margin:8px auto;opacity:.5}@media (max-width: 768px){.modal-content .swipe-indicator,.bottom-sheet .swipe-indicator{display:block}}@media (max-width: 768px){.bottom-sheet{position:fixed;bottom:0;left:0;right:0;max-height:90vh;border-radius:var(--radius-xl) var(--radius-xl) 0 0;background:var(--bg-card);transform:translateY(100%);transition:transform var(--transition-normal);z-index:var(--z-modal)}.bottom-sheet.open{transform:translateY(0)}.bottom-sheet-content{max-height:calc(90vh - 40px);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 1rem 1rem}}.pull-to-refresh{display:none;position:absolute;top:-50px;left:50%;transform:translate(-50%);padding:.75rem;background:var(--bg-card);border-radius:var(--radius-full);box-shadow:var(--shadow-md);transition:transform var(--transition-fast)}@media (max-width: 768px){.pull-to-refresh{display:flex}.pull-to-refresh.pulling{transform:translate(-50%) translateY(70px)}}@media (max-width: 768px){.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-hover) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}.skeleton-text{height:1rem;border-radius:var(--radius-sm);margin-bottom:.5rem}.skeleton-card{height:120px;border-radius:var(--radius-md)}}.sync-status-bar{display:flex;align-items:center;gap:12px;padding:8px 16px;background:var(--bg-secondary, #1a1a2e);border-radius:8px;font-size:.8rem;margin-bottom:12px}.sync-indicator{display:flex;align-items:center;gap:6px;font-weight:500}.sync-indicator:before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%}.sync-indicator.synced:before{background:var(--success, #4CAF50)}.sync-indicator.syncing:before{background:var(--warning, #FFC107);animation:pulse 1s infinite}.sync-indicator.offline:before{background:var(--text-muted, #888)}.sync-indicator.error:before{background:var(--error, #F44336)}.sync-indicator.idle:before{background:var(--text-muted, #888)}.last-synced{color:var(--text-muted, #888);font-size:.75rem}.sync-btn{margin-left:auto;padding:4px 12px;background:var(--primary, #6C63FF);color:#fff;border:none;border-radius:4px;font-size:.75rem;cursor:pointer;transition:opacity .2s}.sync-btn:hover{opacity:.85}.sync-btn:disabled{opacity:.5;cursor:not-allowed}.content-gate-locked,.subscription-guard-login,.subscription-guard-upgrade,.subscription-guard-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 2rem;text-align:center;background:var(--bg-card, #1a1a2e);border:1px solid var(--border-color, #333);border-radius:12px;min-height:300px}.content-gate-lock-icon{color:var(--text-secondary, #888);margin-bottom:1rem}.content-gate-title{font-size:1.25rem;font-weight:600;color:var(--text-primary, #1a1a2e);margin:0 0 .5rem}.content-gate-desc{font-size:.95rem;color:var(--text-secondary, #4a4a6a);margin:0 0 1.5rem;max-width:400px;line-height:1.5}.content-gate-cta{display:inline-block;padding:.75rem 2rem;background:var(--accent-primary, #4361ee);color:#fff;text-decoration:none;border-radius:8px;font-weight:600;font-size:.95rem;transition:background .2s,transform .15s}.content-gate-cta:hover{background:var(--accent-hover, #3a56d4);transform:translateY(-1px)}.content-gate-preview{position:relative;overflow:hidden;border-radius:12px}.content-gate-blur{filter:blur(6px);pointer-events:none;user-select:none}.content-gate-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0009;backdrop-filter:blur(2px);text-align:center;padding:2rem}.content-gate-overlay .content-gate-title{color:#fff}.content-gate-overlay .content-gate-desc{color:#fffc}.subscription-guard-loading .loading-spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--accent-primary, #4361ee);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}
