:root{--bg-primary: #1a2130;--bg-secondary: #141c28;--text-primary: #e6f1ff;--text-secondary: #a6b0c3;--accent: #00b8a9;--accent-light: #4cd3c8;--border: #2a3343;--line-number: #4a5568;--header-bg: #0f1620;--control-color: #ff7eb6;--declaration-color: #7a9cf7;--function-color: #ff6b6b;--io-color: #00b8a9;--logic-color: #ffd166;--boucle-color: #ff9f76;--condition-color: #7cffcb;--math-color: #c792ea;--string-color: #80cbc4;--files-color: #ff6b9d;--comment-color: #6b7280}.light{--bg-primary: #f8fafc;--bg-secondary: #eef2f7;--text-primary: #1a2130;--text-secondary: #4a5568;--accent: #00b8a9;--accent-light: #4cd3c8;--border: #d1d9e6;--line-number: #8c8fa1;--header-bg: #ffffff;--control-color: #d20f39;--declaration-color: #4361ee;--function-color: #dc2626;--io-color: #00b8a9;--logic-color: #ff9f1c;--boucle-color: #fe640b;--condition-color: #2ec4b6;--math-color: #9c27b0;--string-color: #00897b;--files-color: #e91e63;--comment-color: #6b7280}*{margin:0;padding:0;box-sizing:border-box}body{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Open Sans,Helvetica Neue,sans-serif;overflow:hidden}.ide-container{width:100%;height:100vh;display:flex;flex-direction:column;background-color:var(--bg-primary);color:var(--text-primary);transition:all .3s ease}.ide-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;background-color:var(--header-bg);border-bottom:1px solid var(--border);box-shadow:0 1px 3px #0000001a}.ide-title{display:flex;align-items:center;gap:.5rem}.logo-image{height:32px;width:auto;max-width:150px;object-fit:contain}.logo-text{font-size:1.25rem;font-weight:700;color:var(--text-primary);margin-left:.5rem;letter-spacing:-.025em;background:linear-gradient(135deg,var(--accent),var(--accent-light));-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;text-decoration:none;-webkit-user-select:none;user-select:none}.ide-actions{display:flex;gap:.75rem}.action-button{background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:6px;padding:.5rem 1rem;font-size:.9rem;font-weight:500;cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem;text-decoration:none}.action-button:hover{background-color:var(--accent);color:#fff;transform:translateY(-2px);box-shadow:0 4px 8px #00b8a933}.action-button:active{transform:translateY(0)}.action-button:disabled{opacity:.5;cursor:not-allowed;transform:none}.action-button:disabled:hover{background-color:var(--bg-secondary);color:var(--text-primary);transform:none;box-shadow:none}.button-icon{width:18px;height:18px;flex-shrink:0}.button-text{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;letter-spacing:.01em}.button-icon.spinning{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 1200px){.button-text{display:none}.action-button{padding:.5rem;min-width:36px;justify-content:center}}.editor-container{display:flex;flex:1;overflow:hidden;border-radius:.5rem;margin:1rem;box-shadow:0 4px 12px #0000001a}.line-numbers{display:flex;flex-direction:column;padding:1rem .75rem;background-color:var(--bg-secondary);color:var(--line-number);text-align:right;-webkit-user-select:none;user-select:none;min-width:3rem;overflow-y:hidden;border-right:1px solid var(--border);box-sizing:border-box}.line-number{font-size:.95rem;line-height:1.5;font-family:Fira Code,JetBrains Mono,monospace;height:1.5em;margin:0;padding:0;white-space:nowrap}.editor-content{position:relative;flex:1;overflow:hidden;background-color:var(--bg-primary)}.editor-input,.editor-highlighting{position:absolute;top:0;left:0;width:100%;height:100%;padding:1rem;margin:0;border:none;font-family:Fira Code,JetBrains Mono,monospace;font-size:.95rem;line-height:1.5;white-space:pre;overflow:auto;-moz-tab-size:4;tab-size:4;letter-spacing:normal;word-spacing:normal;text-rendering:optimizeLegibility;box-sizing:border-box;font-variant-ligatures:none;text-indent:0}.editor-input{background-color:transparent;color:transparent;caret-color:var(--accent);resize:none;outline:none;z-index:2}.editor-highlighting{background-color:var(--bg-primary);color:var(--text-primary);pointer-events:none;z-index:1}.control{color:var(--control-color);font-weight:600}.declaration{color:var(--declaration-color);font-weight:600}.function{color:var(--function-color);font-weight:600}.io{color:var(--io-color);font-weight:600}.logic{color:var(--logic-color)}.boucle{color:var(--boucle-color);font-weight:600}.condition{color:var(--condition-color);font-weight:600}.math{color:var(--math-color);font-weight:600}.string{color:var(--string-color);font-weight:600}.comment{color:var(--comment-color);font-style:italic;font-weight:400}.files{color:var(--files-color);font-weight:600}.terminal-popup{position:fixed;bottom:20px;left:20px;right:20px;max-height:300px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 16px #0003;z-index:1000;display:flex;flex-direction:column;overflow:hidden;transition:all .3s ease}.terminal-header{display:flex;justify-content:space-between;align-items:center;padding:8px 12px;background-color:var(--accent);color:#fff}.terminal-title{font-weight:600;display:flex;align-items:center;gap:8px}.python-logo{width:20px;height:20px;flex-shrink:0}.terminal-controls{display:flex;align-items:center;gap:12px}.python-code-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;-webkit-user-select:none;user-select:none}.python-code-toggle input[type=checkbox]{margin:0;cursor:pointer}.terminal-close{background:transparent;border:none;color:#fff;font-size:18px;cursor:pointer;width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.terminal-close:hover{background-color:#fff3}.terminal-content{flex:1;padding:12px;overflow-y:auto;font-family:Fira Code,JetBrains Mono,monospace;font-size:.9rem;line-height:1.5;white-space:pre-wrap;color:var(--text-primary)}.terminal-content.split-view{display:flex;gap:12px;padding:8px}.terminal-output-section,.terminal-python-section{flex:1;display:flex;flex-direction:column;overflow:hidden}.terminal-output-section h4,.terminal-python-section h4{margin:0 0 8px;padding:4px 8px;background-color:var(--bg-primary);border-radius:4px;font-size:.8rem;font-weight:600;color:var(--text-secondary)}.terminal-output-section pre,.terminal-python-section pre{flex:1;margin:0;padding:8px;background-color:var(--bg-primary);border-radius:4px;overflow-y:auto;border:1px solid var(--border)}.python-code{color:var(--text-primary);font-size:.85rem}.terminal-content::-webkit-scrollbar,.terminal-output-section pre::-webkit-scrollbar,.terminal-python-section pre::-webkit-scrollbar{width:8px;height:8px}.terminal-content::-webkit-scrollbar-track,.terminal-output-section pre::-webkit-scrollbar-track,.terminal-python-section pre::-webkit-scrollbar-track{background:var(--bg-secondary)}.terminal-content::-webkit-scrollbar-thumb,.terminal-output-section pre::-webkit-scrollbar-thumb,.terminal-python-section pre::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.terminal-content::-webkit-scrollbar-thumb:hover,.terminal-output-section pre::-webkit-scrollbar-thumb:hover,.terminal-python-section pre::-webkit-scrollbar-thumb:hover{background:var(--accent)}.terminal-output{margin:0;padding:0}.terminal-error{color:#ff5252;font-weight:500}.terminal-success{color:#4caf50;font-weight:500}.editor-input::-webkit-scrollbar,.editor-highlighting::-webkit-scrollbar{width:8px;height:8px}.editor-input::-webkit-scrollbar-track,.editor-highlighting::-webkit-scrollbar-track{background:var(--bg-secondary)}.editor-input::-webkit-scrollbar-thumb,.editor-highlighting::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}.editor-input::-webkit-scrollbar-thumb:hover,.editor-highlighting::-webkit-scrollbar-thumb:hover{background:var(--accent)}.ide-footer{display:flex;justify-content:center;align-items:center;padding:.75rem;background-color:var(--header-bg);border-top:1px solid var(--border);font-size:.85rem;color:var(--text-secondary)}.footer-text{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;justify-content:center}.footer-heart{width:16px;height:16px;color:#ff6b6b;display:inline-block;animation:heartbeat 1.5s infinite;flex-shrink:0}.footer-flag{display:inline-block;width:20px;height:auto;animation:wave 2s infinite;flex-shrink:0}.footer-divider{opacity:.5;margin:0 .25rem}.python-status{display:flex;align-items:center;gap:.35rem;font-size:.8rem;opacity:.8}.footer-icon{width:14px;height:14px;flex-shrink:0}.footer-icon.success{color:#4caf50}.footer-icon.error{color:#ff5252}.footer-icon.spinning{animation:spin 1s linear infinite}@keyframes bounce{0%{transform:translateY(0)}to{transform:translateY(-3px)}}@keyframes heartbeat{0%{transform:scale(1)}25%{transform:scale(1.1)}50%{transform:scale(1)}75%{transform:scale(1.1)}to{transform:scale(1)}}@keyframes wave{0%{transform:rotate(0)}25%{transform:rotate(10deg)}50%{transform:rotate(0)}75%{transform:rotate(-10deg)}to{transform:rotate(0)}}.main-content{display:flex;flex:1;overflow:hidden;margin:1rem;height:calc(100vh - 120px)}.editor-container{display:flex;flex:3;overflow:hidden;border-radius:.5rem;box-shadow:0 4px 12px #0000001a;margin-right:1rem;height:100%}.tables-panel{flex:1;background-color:var(--bg-secondary);border-radius:.5rem;box-shadow:0 4px 12px #0000001a;display:flex;flex-direction:column;overflow:hidden;height:100%}.tables-header{display:flex;justify-content:space-between;align-items:center;padding:.75rem 1rem;background-color:var(--header-bg);border-bottom:1px solid var(--border)}.tables-header h3{color:var(--accent);margin:0;font-size:1.1rem}.tables-container{flex:1;position:relative;overflow-y:auto;padding:1rem;height:100%;display:flex;flex-direction:column;gap:1rem}.table-item{position:relative;width:100%;background-color:var(--bg-primary);border:1px solid var(--border);border-radius:.5rem;box-shadow:0 2px 8px #0000001a;margin-bottom:1rem;transition:box-shadow .2s ease,transform .2s ease;cursor:default}.table-item:hover{box-shadow:0 4px 12px #0003}.table-item.dragging{opacity:.8;z-index:100;box-shadow:0 8px 16px #0000004d;pointer-events:none}.table-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .75rem;background-color:var(--accent);color:#fff;border-top-left-radius:.5rem;border-top-right-radius:.5rem;cursor:move;-webkit-user-select:none;user-select:none}.table-header-content{display:flex;align-items:center;gap:.75rem;flex:1}.function-select{background-color:#ffffff26;border:1px solid rgba(255,255,255,.3);border-radius:.25rem;color:#fff;font-size:.8rem;padding:.25rem .5rem;min-width:120px;cursor:pointer;outline:none;transition:all .2s ease}.function-select:hover{background-color:#ffffff40;border-color:#ffffff80}.function-select:focus{background-color:#fff3;border-color:#ffffffb3;box-shadow:0 0 0 2px #ffffff4d}.function-select option{background-color:var(--bg-primary);color:var(--text-primary);padding:.25rem}.algo-table{width:100%;border-collapse:collapse;font-family:Fira Code,JetBrains Mono,monospace;font-size:.9rem;line-height:1.4}.algo-table th,.algo-table td{border:1px solid var(--border);padding:8px 12px;text-align:left}.algo-table th{background-color:var(--accent);color:#fff;font-weight:600}.algo-table td{background-color:var(--bg-primary);color:var(--text-primary);white-space:pre-wrap;padding:0;position:relative}.table-cell-input{width:100%;height:100%;padding:8px 12px;background:transparent;border:none;color:inherit;font-family:inherit;font-size:inherit;line-height:inherit;outline:none;position:relative;z-index:1}.table-cell-input:focus{background-color:var(--bg-secondary);box-shadow:inset 0 0 0 2px var(--accent);z-index:2}.table-content{padding:.75rem;overflow-x:auto}.algo-table tr td:only-child{white-space:pre-wrap;font-family:Fira Code,JetBrains Mono,monospace}.add-table-btn{width:28px;height:28px;border-radius:50%;background-color:var(--accent);color:#fff;font-size:18px;font-weight:700;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 8px #0003;transition:all .2s ease}.add-table-btn:hover{transform:scale(1.1);background-color:var(--accent-light)}.table-menu{position:absolute;right:0;top:40px;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;box-shadow:0 4px 12px #00000026;padding:.5rem;z-index:20;display:flex;flex-direction:column;min-width:300px}.remove-table-btn{background-color:transparent;color:#fff;border:none;font-size:18px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:50%;transition:all .2s ease}.remove-table-btn:hover{background-color:#fff3}.table-menu button{background-color:transparent;color:var(--text-primary);border:none;border-radius:4px;padding:.75rem 1rem;text-align:left;cursor:pointer;transition:all .2s ease;font-size:.9rem}.table-actions{display:flex;justify-content:center;margin-top:8px}.add-row-btn{background-color:var(--accent);color:#fff;border:none;border-radius:4px;padding:4px 8px;font-size:12px;cursor:pointer;transition:background-color .2s}.add-row-btn:hover{background-color:var(--accent-light)}.table-menu button:hover{background-color:var(--accent);color:#fff}.shortcuts-help-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:#0009;display:flex;align-items:center;justify-content:center;z-index:2000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.shortcuts-help-panel{background-color:var(--bg-primary);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0000004d;max-width:800px;max-height:90vh;width:95%;overflow:hidden;display:flex;flex-direction:column}.shortcuts-help-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.5rem;background-color:var(--accent);color:#fff;border-bottom:1px solid var(--border)}.shortcuts-help-header h3{margin:0;font-size:1.1rem;font-weight:600}.shortcuts-close{background:transparent;border:none;color:#fff;font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background-color .2s}.shortcuts-close:hover{background-color:#fff3}.shortcuts-help-content{padding:1.5rem;overflow-y:auto;max-height:calc(90vh - 80px)}.shortcuts-section{margin-bottom:2rem}.shortcuts-section:last-child{margin-bottom:0}.shortcuts-section h4{margin:0 0 1rem;color:var(--accent);font-size:1rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.shortcuts-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:.75rem}.shortcut-item{display:flex;align-items:center;gap:.75rem;padding:.75rem;background-color:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;font-family:Fira Code,JetBrains Mono,monospace;transition:all .2s ease}.shortcut-item:hover{background-color:var(--bg-primary);border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 12px #00b8a91a}.shortcut-item kbd{background-color:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:.25rem .5rem;font-size:.8rem;font-weight:600;box-shadow:0 2px 4px #0000001a;min-width:28px;text-align:center}.shortcut-symbol{font-size:1.5rem;color:var(--accent);font-weight:700;min-width:32px;text-align:center}.shortcut-desc{color:var(--text-secondary);font-size:.9rem;flex:1}@media (max-width: 768px){.shortcuts-help-panel{width:95%;max-height:85vh}.shortcuts-help-content{padding:1rem}.shortcuts-grid{grid-template-columns:1fr;gap:.5rem}.shortcut-item{padding:.5rem;gap:.5rem}.shortcut-symbol{font-size:1.2rem;min-width:24px}}.maintenance-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0006;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);display:flex;justify-content:center;align-items:center;z-index:10000;animation:fadeIn .3s ease-out}.maintenance-popup{background:var(--bg-primary);border:1px solid var(--border);border-radius:16px;padding:2rem;max-width:450px;width:90%;text-align:center;box-shadow:0 8px 24px #00000026;animation:slideIn .4s ease-out;position:relative}.maintenance-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;color:var(--text-secondary);font-size:24px;cursor:pointer;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s ease;z-index:10}.maintenance-close:hover{background-color:var(--accent);color:#fff;transform:rotate(90deg)}.maintenance-icon{font-size:2.5rem;margin-bottom:1rem;animation:bounce 2s ease-in-out infinite}.maintenance-popup h2{color:var(--text-primary);font-size:1.4rem;margin-bottom:1rem;font-weight:500}.maintenance-popup p{color:var(--text-secondary);font-size:.95rem;line-height:1.5;margin-bottom:1.5rem;text-align:center}.maintenance-signature{margin-top:1.5rem;padding-top:1rem;border-top:1px solid var(--border);color:var(--text-secondary)}.maintenance-signature strong{color:var(--text-primary);font-size:1rem;display:block;margin-bottom:.3rem;font-weight:500}.maintenance-signature em{font-style:italic;font-size:.85rem;opacity:.7}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideIn{0%{transform:translateY(-20px) scale(.95);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes bounce{0%,20%,50%,80%,to{transform:translateY(0)}40%{transform:translateY(-8px)}60%{transform:translateY(-4px)}}@media (max-width: 768px){.maintenance-popup{padding:2rem;margin:1rem}.maintenance-popup h2{font-size:1.5rem}.maintenance-popup p{font-size:1rem}.maintenance-icon{font-size:3rem}}.floating-install-btn{position:fixed;bottom:30px;right:30px;background-color:var(--bg-secondary);color:var(--text-primary);border:1px solid var(--border);border-radius:8px;padding:.65rem 1rem;font-size:.9rem;font-weight:500;cursor:pointer;box-shadow:0 2px 12px #00000026;z-index:999;display:flex;align-items:center;gap:.5rem;transition:all .2s ease;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.floating-install-btn:hover{background-color:var(--accent);color:#fff;border-color:var(--accent);transform:translateY(-2px);box-shadow:0 4px 16px #00b8a94d}.floating-install-btn:active{transform:translateY(0);box-shadow:0 2px 8px #00b8a933}.install-icon{width:18px;height:18px;flex-shrink:0}.install-text{font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;letter-spacing:.01em}@media (max-width: 768px){.floating-install-btn{bottom:20px;right:20px;padding:.75rem;border-radius:50%;width:48px;height:48px;justify-content:center}.install-icon{width:20px;height:20px}.install-text{display:none}}.mobile-redirect-page{width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1a2130,#0f1620);color:#e6f1ff;padding:2rem;overflow:hidden}.mobile-content{text-align:center;max-width:500px;animation:fadeInScale .6s ease-out}.mobile-logo{width:120px;height:auto;margin:0 auto 1.5rem;display:block;filter:drop-shadow(0 4px 12px rgba(0,184,169,.3))}.mobile-content h1{font-size:2rem;font-weight:700;margin-bottom:.5rem;background:linear-gradient(135deg,#00b8a9,#4cd3c8);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.mobile-subtitle{font-size:1rem;color:#a6b0c3;margin-bottom:2rem;font-weight:500}.mobile-message{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:2rem;margin-bottom:2rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.desktop-icon{width:64px;height:64px;margin:0 auto 1.5rem;color:#00b8a9;stroke-width:1.5}.mobile-message p{color:#e6f1ff;font-size:.95rem;line-height:1.6;margin-bottom:1rem}.mobile-message p:last-child{margin-bottom:0;color:#a6b0c3}.mobile-footer{opacity:.6;font-size:.85rem}.mobile-footer p{margin:0}@keyframes fadeInScale{0%{opacity:0;transform:scale(.9) translateY(20px)}to{opacity:1;transform:scale(1) translateY(0)}}@media (max-width: 480px){.mobile-logo{width:80px}.mobile-content h1{font-size:1.5rem}.mobile-subtitle{font-size:.9rem}.desktop-icon{width:48px;height:48px}.mobile-message{padding:1.5rem}.mobile-message p{font-size:.9rem}}
