:root{--bg-primary:#f0f4f8;--bg-secondary:#fff;--bg-tertiary:#e2e8f0;--bg-panel:#fff;--bg-card:#f8fafc;--bg-hover:#e0f2fe;--bg-active:#bae6fd;--border-primary:#cbd5e1;--border-secondary:#e2e8f0;--border-accent:#0ea5e944;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--text-accent:#0284c7;--accent-blue:#0284c7;--accent-cyan:#0ea5e9;--accent-purple:#7c3aed;--accent-green:#10b981;--accent-orange:#ea580c;--accent-red:#e11d48;--accent-yellow:#ca8a04;--accent-pink:#db2777;--glow-blue:0 4px 12px #0284c71f;--glow-cyan:0 4px 12px #0ea5e91f;--glow-purple:0 4px 12px #7c3aed1f;--glow-green:0 4px 12px #10b9811f;--font-body:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--nav-height:52px;--bottom-panel-height:300px;--transition:.2s cubic-bezier(.4, 0, .2, 1);--transition-slow:.4s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--bg-primary);height:100%;color:var(--text-primary);font-family:var(--font-body);font-size:13px;line-height:1.6;overflow:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-primary);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.top-nav{height:var(--nav-height);background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);z-index:100;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:0 16px;display:flex;position:relative}.nav-left,.nav-right{align-items:center;gap:12px;display:flex}.logo{letter-spacing:-.5px;align-items:center;gap:6px;margin-right:8px;font-size:18px;font-weight:800;display:flex}.logo-icon{filter:drop-shadow(0 0 8px var(--accent-blue));font-size:20px}.logo-text{color:var(--text-primary)}.logo-accent{color:var(--accent-cyan)}.nav-tabs{gap:4px;display:flex}.nav-tab{color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;font-size:13px;font-weight:500;font-family:var(--font-body);transition:all var(--transition);background:0 0;border:none;padding:6px 14px}.nav-tab:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-tab.active{background:var(--bg-active);color:var(--accent-blue);border:1px solid var(--border-accent)}.xp-badge{color:var(--accent-orange);background:linear-gradient(135deg,#f0883e22,#f0883e11);border:1px solid #f0883e44;border-radius:20px;align-items:center;gap:5px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.xp-icon{font-size:10px}.level-badge{color:var(--accent-purple);background:linear-gradient(135deg,#bc8cff22,#bc8cff11);border:1px solid #bc8cff44;border-radius:20px;align-items:center;gap:2px;padding:4px 10px;font-size:12px;font-weight:700;display:flex}.dialect-selector select{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-body);cursor:pointer;transition:all var(--transition);outline:none;padding:5px 10px}.dialect-selector select:hover,.dialect-selector select:focus{border-color:var(--accent-blue);color:var(--text-primary)}.btn-run{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);font-size:13px;font-weight:600;font-family:var(--font-body);background:linear-gradient(135deg,#388bfd,#1f6feb);border:none;align-items:center;gap:7px;padding:7px 18px;display:flex;box-shadow:0 2px 8px #388bfd44}.btn-run:hover{background:linear-gradient(135deg,#58a6ff,#388bfd);transform:translateY(-1px);box-shadow:0 4px 16px #388bfd66}.btn-run:active{transform:translateY(0)}.run-icon{font-size:10px}.main-layout{height:calc(100vh - var(--nav-height) - var(--bottom-panel-height));transition:height var(--transition-slow);display:flex;overflow:hidden}.panel{background:var(--bg-panel);border-right:1px solid var(--border-secondary);flex-direction:column;display:flex;position:relative;overflow:hidden}.panel-left{flex-shrink:0;width:380px;min-width:260px;max-width:600px}.panel-center{flex:1;min-width:300px}.panel-right{border-right:none;border-left:1px solid var(--border-secondary);flex-shrink:0;width:340px;min-width:220px;max-width:500px}.panel-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.panel-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);font-size:12px;font-weight:600}.panel-controls{align-items:center;gap:4px;display:flex}.icon-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;transition:all var(--transition);font-size:12px;font-family:var(--font-body);background:0 0;border:none;justify-content:center;align-items:center;display:flex}.icon-btn:hover{background:var(--bg-hover);color:var(--text-primary)}.editor-container{background:var(--bg-primary);flex:1;display:flex;position:relative;overflow:hidden}.editor-gutter{background:var(--bg-primary);border-right:1px solid var(--border-secondary);text-align:right;width:44px;font-family:var(--font-mono);color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0;padding:10px 0;font-size:12px;line-height:1.6;overflow:hidden}.gutter-line{height:21px;transition:color var(--transition);justify-content:flex-end;align-items:center;padding-right:8px;display:flex}.gutter-line.active{color:var(--accent-blue)}.editor-area-wrapper{flex:1;height:100%;display:flex;position:relative;overflow:hidden}.sql-highlight-overlay{width:100%;height:100%;font-family:var(--font-mono);white-space:pre;pointer-events:none;box-sizing:border-box;color:var(--text-primary);tab-size:2;background:0 0;border:none;margin:0;padding:10px 14px;font-size:13px;line-height:21px;position:absolute;top:0;left:0;overflow:hidden}.sql-editor{resize:none;font-family:var(--font-mono);caret-color:var(--accent-cyan);tab-size:2;white-space:pre;z-index:1;box-sizing:border-box;background:0 0;border:none;outline:none;flex:1;padding:10px 14px;font-size:13px;line-height:21px;position:relative;overflow:auto;color:#0000!important;-webkit-text-fill-color:transparent!important}.sql-editor::placeholder{font-style:italic;color:var(--text-muted)!important;-webkit-text-fill-color:var(--text-muted)!important}.sql-editor::selection{background:#58a6ff33}.editor-status-bar{background:var(--bg-secondary);border-top:1px solid var(--border-secondary);color:var(--text-muted);flex-shrink:0;justify-content:space-between;align-items:center;padding:4px 12px;font-size:11px;display:flex}#editor-dialect-badge{color:var(--accent-cyan);font-weight:600}#query-timer.running{color:var(--accent-green)}#query-timer.error{color:var(--accent-red)}.autocomplete-dropdown{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-md);z-index:200;min-width:180px;max-height:200px;display:none;position:absolute;overflow-y:auto;box-shadow:0 8px 30px #00000080}.autocomplete-item{cursor:pointer;transition:background var(--transition);font-family:var(--font-mono);align-items:center;gap:8px;padding:7px 12px;font-size:12px;display:flex}.autocomplete-item:hover,.autocomplete-item.selected{background:var(--bg-hover)}.autocomplete-tag{font-size:10px;font-family:var(--font-body);border-radius:4px;padding:1px 6px}.tag-keyword{color:var(--accent-blue);background:#58a6ff22}.tag-table{color:var(--accent-green);background:#3fb95022}.tag-column{color:var(--accent-purple);background:#bc8cff22}.tag-func{color:var(--accent-orange);background:#f0883e22}.template-picker{background:var(--bg-secondary);border-top:1px solid var(--border-primary);z-index:150;max-height:300px;position:absolute;bottom:38px;left:0;right:0;overflow-y:auto}.template-picker-header{border-bottom:1px solid var(--border-secondary);text-transform:uppercase;letter-spacing:.6px;color:var(--text-secondary);justify-content:space-between;align-items:center;padding:8px 14px;font-size:12px;font-weight:600;display:flex}.template-item{cursor:pointer;border-bottom:1px solid var(--border-secondary);transition:background var(--transition);padding:10px 14px}.template-item:hover{background:var(--bg-hover)}.template-item-title{color:var(--text-primary);margin-bottom:2px;font-size:12px;font-weight:600}.template-item-desc{color:var(--text-muted);font-size:11px}.viz-canvas{flex:1;padding:16px;position:relative;overflow-y:auto}.viz-welcome{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;display:flex}.welcome-icon{filter:drop-shadow(0 0 20px #f0883e);font-size:48px;animation:2s ease-in-out infinite pulse-glow}@keyframes pulse-glow{0%,to{filter:drop-shadow(0 0 20px #f0883e)}50%{filter:drop-shadow(0 0 40px #f0883e)}}.viz-welcome h2{color:var(--text-primary);font-size:18px;font-weight:700}.viz-welcome p{color:var(--text-secondary);font-size:13px}.quick-starts{flex-wrap:wrap;justify-content:center;gap:8px;margin-top:8px;display:flex}.quick-start-btn{background:var(--bg-card);border:1px solid var(--border-primary);color:var(--accent-cyan);border-radius:var(--radius-md);cursor:pointer;font-size:12px;font-weight:600;font-family:var(--font-mono);transition:all var(--transition);padding:6px 14px}.quick-start-btn:hover{border-color:var(--accent-cyan);box-shadow:var(--glow-cyan);background:#39d0d811;transform:translateY(-1px)}.venn-cheatsheet{width:100%;max-width:560px;margin-top:18px}.venn-cheatsheet-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);justify-content:center;align-items:center;gap:6px;margin-bottom:10px;font-size:11px;font-weight:700;display:flex}.venn-cheatsheet-grid{grid-template-columns:repeat(3,1fr);gap:8px;display:grid}.venn-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);flex-direction:column;align-items:center;gap:4px;padding:10px 8px 8px;display:flex}.venn-card:hover{border-color:var(--accent-purple);background:#6366f112;transform:translateY(-2px);box-shadow:0 4px 14px #6366f12e}.venn-card-svg{width:80px;height:44px}.venn-card-type{color:var(--accent-purple);text-transform:uppercase;letter-spacing:.5px;text-align:center;font-size:9.5px;font-weight:800}.venn-card-label{color:var(--text-muted);text-align:center;font-size:9px;line-height:1.3}.viz-step{border-radius:var(--radius-lg);border:1px solid var(--border-secondary);background:var(--bg-card);transition:all var(--transition);margin-bottom:16px;animation:.3s ease-out step-appear;overflow:hidden}@keyframes step-appear{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.viz-step.dimmed{opacity:.4}.viz-step.active{border-color:var(--accent-blue);box-shadow:var(--glow-blue)}.step-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-secondary);align-items:center;gap:10px;padding:10px 14px;display:flex}.step-number{background:var(--accent-blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:flex}.step-name{color:var(--text-primary);font-size:12px;font-weight:600}.step-clause{font-family:var(--font-mono);color:var(--accent-cyan);background:#39d0d811;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.step-body{padding:12px 14px}.step-desc{color:var(--text-secondary);margin-bottom:10px;font-size:12px}.data-table-wrap{overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:12px}.data-table th{background:var(--bg-tertiary);color:var(--text-secondary);text-align:left;border-bottom:1px solid var(--border-primary);white-space:nowrap;padding:7px 10px;font-size:11px;font-weight:600}.data-table td{border-bottom:1px solid var(--border-secondary);white-space:nowrap;padding:6px 10px;transition:all .3s}.data-table tr:hover td{background:var(--bg-hover)}.data-table tr:last-child td{border-bottom:none}.row-highlight-select{background:#58a6ff15!important}.row-highlight-where{background:#3fb95015!important}.row-highlight-filtered{opacity:.5;background:#ff7b7215!important}.row-highlight-group{background:#bc8cff15!important}.row-highlight-having{background:#f0883e15!important}.row-highlight-join-match{background:#39d0d815!important}.row-highlight-join-miss{opacity:.6;background:#ff7b7210!important}.row-highlight-insert{animation:.5s row-insert;background:#3fb95025!important}.row-highlight-update{animation:.5s row-update;background:#f0883e25!important}.row-highlight-delete{animation:.5s row-delete;background:#ff7b7225!important}.row-highlight-result{background:#58a6ff20!important}.row-highlight-window{background:#bc8cff15!important}.row-highlight-active{box-shadow:inset 0 0 0 1px var(--accent-cyan)}@keyframes row-insert{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes row-update{0%{background:#f0883e44!important}to{background:#f0883e25!important}}@keyframes row-delete{to{opacity:0;transform:scaleY(0)}}.col-highlight{color:var(--accent-cyan)!important;background:#39d0d822!important}.join-viz{flex-wrap:wrap;align-items:flex-start;gap:12px;display:flex}.join-table-wrap{flex:1;min-width:200px}.join-arrow-wrap{flex-direction:column;justify-content:center;align-items:center;gap:4px;padding-top:30px;display:flex}.join-type-badge{color:var(--accent-cyan);white-space:nowrap;background:#39d0d811;border:1px solid #39d0d833;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:700}.join-arrow{color:var(--accent-blue);font-size:20px;animation:1.5s ease-in-out infinite arrow-pulse}@keyframes arrow-pulse{0%,to{opacity:.4;transform:scaleX(1)}50%{opacity:1;transform:scaleX(1.1)}}.venn-container{border-radius:var(--radius-md);background:linear-gradient(135deg,#6366f10d,#38bdf80d);border:1px solid #6366f133;flex-direction:column;align-items:center;margin-bottom:14px;padding:12px 16px;display:flex;position:relative}.venn-title{letter-spacing:1px;text-transform:uppercase;color:var(--accent-purple);margin-bottom:3px;font-size:11px;font-weight:800}.venn-desc{color:var(--text-muted);text-align:center;margin-bottom:8px;font-size:10.5px}.venn-svg{width:200px;height:100px;overflow:visible}.venn-region-anim{opacity:0;animation:.6s forwards venn-fade-in}@keyframes venn-fade-in{0%{opacity:0}to{opacity:1}}.venn-legend{color:var(--text-secondary);align-items:center;gap:12px;margin-top:8px;font-size:10px;font-weight:600;display:flex}.venn-legend-dot{vertical-align:middle;border-radius:50%;width:9px;height:9px;margin-right:3px;display:inline-block}.execution-flow{border-top:1px solid var(--border-secondary);padding:12px 14px}.flow-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:10px;font-size:11px;font-weight:600}.flow-steps{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.flow-step-badge{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);transition:all var(--transition);cursor:default;border-radius:20px;padding:4px 10px;font-size:11px;font-weight:600}.flow-step-badge.active{background:var(--accent-blue);color:#fff;border-color:var(--accent-blue);box-shadow:0 0 10px #58a6ff66}.flow-arrow{color:var(--text-muted);font-size:14px}.timeline-scrubber{border-top:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;padding:8px 16px}.timeline-track{background:var(--bg-tertiary);cursor:pointer;border-radius:2px;height:4px;margin-bottom:6px;position:relative}.timeline-fill{background:linear-gradient(90deg, var(--accent-blue), var(--accent-cyan));border-radius:2px;width:0%;height:100%;transition:width .2s}.timeline-thumb{background:var(--accent-cyan);width:12px;height:12px;box-shadow:0 0 8px var(--accent-cyan);cursor:grab;border-radius:50%;transition:left .2s;position:absolute;top:50%;left:0%;transform:translate(-50%,-50%)}.timeline-thumb:active{cursor:grabbing}.timeline-labels{color:var(--text-muted);justify-content:space-between;font-size:10px;display:flex}.schema-view{flex-direction:column;flex:1;display:flex;overflow:hidden}.schema-tabs{border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;display:flex}.schema-tab{color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font-body);transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;padding:8px 16px}.schema-tab:hover{color:var(--text-primary)}.schema-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.schema-content{flex:1;padding:12px;overflow-y:auto}.table-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);transition:all var(--transition);margin-bottom:12px;overflow:hidden}.table-card:hover{border-color:var(--border-accent)}.table-card-header{background:var(--bg-secondary);cursor:pointer;justify-content:space-between;align-items:center;gap:8px;padding:9px 12px;display:flex}.table-card-name{font-family:var(--font-mono);color:var(--accent-green);align-items:center;gap:6px;font-size:13px;font-weight:600;display:flex}.table-card-name:before{content:"⊞";color:var(--accent-green);font-size:14px}.table-card-meta{color:var(--text-muted);font-size:11px}.table-card-toggle{color:var(--text-muted);transition:transform var(--transition);font-size:10px}.table-card.expanded .table-card-toggle{transform:rotate(180deg)}.table-card-body{padding:0;display:none}.table-card.expanded .table-card-body{display:block}.column-list-item{border-bottom:1px solid var(--border-secondary);transition:background var(--transition);cursor:default;align-items:center;gap:8px;padding:6px 12px;display:flex}.column-list-item:hover{background:var(--bg-hover)}.column-list-item:last-child{border-bottom:none}.col-name{font-family:var(--font-mono);color:var(--text-primary);flex:1;font-size:12px}.col-type{color:var(--accent-purple);font-size:10px;font-family:var(--font-mono);background:#bc8cff11;border-radius:4px;padding:1px 6px}.col-pk{color:var(--accent-yellow);background:#d2992211;border-radius:4px;padding:1px 5px;font-size:9px}.col-fk{color:var(--accent-orange);background:#f0883e11;border-radius:4px;padding:1px 5px;font-size:9px}.col-nn{color:var(--text-muted);font-size:9px}.table-card-data{max-height:200px;overflow:auto}.table-card-data .data-table{font-size:11px}.table-card-data .data-table td,.table-card-data .data-table th{padding:5px 8px}.er-canvas{display:block}.resize-handle{background:var(--border-secondary);cursor:col-resize;width:4px;transition:background var(--transition);z-index:10;flex-shrink:0;position:relative}.resize-handle:hover{background:var(--accent-blue)}.bottom-panel{height:var(--bottom-panel-height);background:var(--bg-secondary);border-top:1px solid var(--border-primary);transition:height var(--transition-slow);flex-direction:column;flex-shrink:0;display:flex}.bottom-panel.collapsed{height:36px}.bottom-panel.collapsed .bottom-content{display:none}.bottom-tabs{border-bottom:1px solid var(--border-secondary);background:var(--bg-primary);flex-shrink:0;align-items:center;display:flex}.bottom-tab{color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:500;font-family:var(--font-body);transition:all var(--transition);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:5px;padding:8px 16px;display:flex}.bottom-tab:hover{color:var(--text-primary)}.bottom-tab.active{color:var(--accent-blue);border-bottom-color:var(--accent-blue)}.bottom-toggle{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);transition:all var(--transition);font-size:12px;font-family:var(--font-body);background:0 0;border:none;margin-left:auto;margin-right:8px;padding:4px 8px}.bottom-toggle:hover{background:var(--bg-hover);color:var(--text-primary)}.bottom-panel.collapsed .bottom-toggle{transform:rotate(180deg)}.bottom-content{flex:1;overflow:hidden}.bottom-pane{height:100%;padding:12px 16px;display:none;overflow-y:auto}.bottom-pane.active{display:block}.explanation-placeholder{color:var(--text-muted);font-size:12px;font-style:italic}.explanation-text{color:var(--text-secondary);font-size:13px;line-height:1.8}.explanation-section{margin-bottom:10px}.explanation-section h4{text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:4px;font-size:11px;font-weight:600}.clause-explain{background:var(--bg-tertiary);border:1px solid var(--border-secondary);border-radius:var(--radius-sm);align-items:center;gap:6px;margin:3px 3px 3px 0;padding:4px 10px;font-size:12px;display:inline-flex}.clause-kw{color:var(--accent-blue);font-family:var(--font-mono);font-weight:600}.clause-desc{color:var(--text-secondary)}.exec-plan-node{border-left:2px solid var(--border-secondary);align-items:flex-start;gap:10px;margin-left:8px;padding:8px 0 8px 12px;display:flex;position:relative}.exec-plan-node:before{content:"";background:var(--border-secondary);width:8px;height:2px;position:absolute;top:16px;left:-8px}.plan-node-icon{flex-shrink:0;font-size:16px}.plan-node-type{color:var(--text-primary);font-size:12px;font-weight:700}.plan-node-detail{color:var(--text-muted);margin-top:1px;font-size:11px}.plan-node-cost{font-family:var(--font-mono);color:var(--accent-orange);white-space:nowrap;background:#f0883e11;border-radius:4px;margin-left:auto;padding:2px 8px;font-size:11px}.metrics-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;display:grid}.metric-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);text-align:center;padding:12px 14px}.metric-value{color:var(--accent-cyan);font-size:22px;font-weight:700;font-family:var(--font-mono);margin-bottom:4px}.metric-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:500}.history-item{border-bottom:1px solid var(--border-secondary);cursor:pointer;transition:background var(--transition);border-radius:var(--radius-sm);align-items:flex-start;gap:10px;padding:8px;display:flex}.history-item:hover{background:var(--bg-hover)}.history-icon{flex-shrink:0;padding-top:1px;font-size:14px}.history-query{font-family:var(--font-mono);color:var(--text-secondary);white-space:nowrap;text-overflow:ellipsis;flex:1;font-size:11px;overflow:hidden}.history-time{color:var(--text-muted);white-space:nowrap;font-size:10px}.results-table-wrap{overflow:auto}.results-info{color:var(--text-secondary);margin-bottom:8px;font-size:11px}.results-table-wrap .data-table td{padding:5px 10px;font-size:12px}.modal-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#000000b3;justify-content:center;align-items:center;animation:.2s modal-fade;display:flex;position:fixed;inset:0}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-xl);flex-direction:column;width:560px;max-width:95vw;max-height:85vh;animation:.2s modal-slide;display:flex;overflow:hidden;box-shadow:0 20px 60px #0009}.modal-wide{width:800px}.modal-practice{width:92vw;max-width:1200px;height:88vh;max-height:88vh;padding:0;overflow:hidden;flex-direction:row!important}.practice-sidebar-header{border-bottom:1px solid var(--border-secondary);padding:16px 16px 12px}.practice-progress-label{color:var(--text-muted);justify-content:space-between;margin-bottom:5px;font-size:10.5px;font-weight:600;display:flex}.practice-progress-label span{color:var(--accent-green);font-weight:700}.practice-progress-bar{background:linear-gradient(90deg, var(--accent-green), var(--accent-cyan));border-radius:99px;height:100%;transition:width .5s}.practice-level-btn:hover{background:var(--bg-card);color:var(--text-primary)}.practice-level-btn.active{color:var(--accent-purple);border-left-color:var(--accent-purple);background:#6366f11a}.practice-level-btn-left{align-items:center;gap:8px;display:flex}.practice-level-icon{font-size:14px}.practice-level-name{flex:1;line-height:1.2}.practice-level-progress{color:var(--text-muted);background:var(--bg-card);white-space:nowrap;border-radius:99px;padding:2px 7px;font-size:10px;font-weight:700}.practice-level-btn.active .practice-level-progress{color:var(--accent-purple);background:#6366f126}.practice-level-title{align-items:center;gap:10px;margin-bottom:4px;display:flex}.practice-level-title h2{color:var(--text-primary);margin:0;font-size:16px;font-weight:800}.practice-level-badge{text-transform:uppercase;letter-spacing:.6px;border-radius:99px;padding:2px 10px;font-size:10px;font-weight:700}.badge-beginner{color:var(--accent-cyan);background:#38bdf826}.badge-intermediate{color:#fbbf24;background:#fbbf2426}.badge-advanced{color:#f97316;background:#f9731626}.badge-expert{color:#f87171;background:#f8717126}.practice-level-desc{color:var(--text-muted);font-size:11.5px}.practice-level-stat{color:var(--text-muted);margin-top:6px;font-size:11px;font-weight:600}.practice-level-stat span{color:var(--accent-green)}.question-card:before{content:"";background:var(--border-secondary);height:2px;transition:background var(--transition);position:absolute;top:0;left:0;right:0}.question-card:hover{border-color:var(--accent-purple);transform:translateY(-1px);box-shadow:0 4px 16px #6366f11f}.question-card:hover:before{background:var(--accent-purple)}.question-card.solved{background:#34d3990a;border-color:#34d39966}.question-card.solved:before{background:var(--accent-green)}.question-num{color:var(--text-muted);background:var(--bg-secondary);font-size:10px;font-weight:800;font-family:var(--font-mono);border-radius:6px;flex-shrink:0;padding:3px 7px}.question-card.solved .question-num{color:var(--accent-green);background:#34d39926}.question-table-chip{color:var(--accent-cyan);text-transform:uppercase;letter-spacing:.4px;background:#38bdf81a;border-radius:99px;padding:2px 8px;font-size:9.5px;font-weight:700}.question-solved-badge{margin-left:auto;font-size:13px;display:none}.question-card.solved .question-solved-badge{display:block}.question-text{color:var(--text-primary);font-size:12.5px;font-weight:600;line-height:1.5}.difficulty-chip{text-transform:uppercase;letter-spacing:.5px;border-radius:99px;align-self:flex-start;align-items:center;padding:2px 9px;font-size:9.5px;font-weight:700;display:inline-flex}.difficulty-beginner{color:var(--accent-cyan);background:#38bdf81f}.difficulty-intermediate{color:#fbbf24;background:#fbbf2426}.difficulty-advanced{color:#f97316;background:#f973161f}.difficulty-expert{color:#f87171;background:#f8717126}.question-actions{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.try-btn{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:11px;font-weight:700;font-family:var(--font-body);border:none;align-items:center;gap:4px;padding:5px 12px;display:inline-flex;box-shadow:0 2px 8px #6366f140}.try-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #6366f159}.question-hint-btn{border:1px solid var(--border-primary);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:11px;font-weight:600;font-family:var(--font-body);background:0 0;align-items:center;gap:4px;padding:5px 10px;display:inline-flex}.question-hint-btn:hover{color:#fbbf24;background:#fbbf240f;border-color:#fbbf24}.mark-solved-btn{color:var(--accent-green);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:11px;font-weight:600;font-family:var(--font-body);background:0 0;border:1px solid #34d39959;align-items:center;gap:4px;padding:5px 10px;display:inline-flex}.mark-solved-btn:hover{background:#34d3991a}.question-card.solved .mark-solved-btn{border-color:var(--accent-green);color:var(--accent-green);background:#34d3991f}.question-hint-area{border-radius:var(--radius-sm);color:#fbbf24;background:#fbbf2412;border:1px solid #fbbf2433;padding:8px 12px;font-size:11.5px;font-weight:500;line-height:1.5;display:none}.question-hint-area.visible{display:block}.practice-modal-close{border:1px solid var(--border-secondary)!important;border-radius:var(--radius-sm)!important;color:var(--text-muted)!important;width:auto!important;padding:6px 12px!important;font-size:11px!important}.practice-modal-close:hover{border-color:var(--accent-red)!important;color:var(--accent-red)!important}@keyframes modal-slide{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-primary);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-header h2{font-size:16px;font-weight:700}.modal-body{flex:1;padding:20px;overflow-y:auto}.challenge-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);margin-bottom:12px;padding:14px 16px;position:relative;overflow:hidden}.challenge-card:before{content:"";background:var(--accent-blue);width:3px;position:absolute;top:0;bottom:0;left:0}.challenge-card.easy:before{background:var(--accent-green)}.challenge-card.medium:before{background:var(--accent-yellow)}.challenge-card.hard:before{background:var(--accent-red)}.challenge-card:hover{border-color:var(--accent-blue);transform:translate(4px)}.challenge-card-header{align-items:center;gap:8px;margin-bottom:6px;display:flex}.challenge-title{font-size:14px;font-weight:700}.challenge-diff{text-transform:uppercase;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.challenge-xp{color:var(--accent-orange);margin-left:auto;font-size:12px;font-weight:600}.challenge-desc{color:var(--text-secondary);font-size:12px}.challenge-tags{flex-wrap:wrap;gap:4px;margin-top:6px;display:flex}.challenge-tag{background:var(--bg-tertiary);color:var(--text-muted);border-radius:20px;padding:1px 7px;font-size:10px}.learn-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.learn-card{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition);padding:14px}.learn-card:hover{border-color:var(--accent-cyan);box-shadow:var(--glow-cyan)}.learn-card-icon{margin-bottom:8px;font-size:24px}.learn-card-title{margin-bottom:4px;font-size:13px;font-weight:700}.learn-card-desc{color:var(--text-secondary);font-size:11px}.leaderboard-entry{border-bottom:1px solid var(--border-secondary);align-items:center;gap:12px;padding:10px 0;display:flex}.lb-rank{text-align:center;width:28px;color:var(--text-muted);font-size:16px;font-weight:800}.lb-rank.gold{color:gold}.lb-rank.silver{color:silver}.lb-rank.bronze{color:#cd7f32}.lb-avatar{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:14px;font-weight:700;display:flex}.lb-name{flex:1;font-size:13px;font-weight:600}.lb-xp{color:var(--accent-orange);font-size:13px;font-weight:700}.achievement-toast{bottom:calc(var(--bottom-panel-height) + 16px);background:linear-gradient(135deg, var(--bg-secondary), var(--bg-card));border-radius:var(--radius-lg);z-index:500;border:1px solid #ffd70066;align-items:center;gap:12px;padding:12px 16px;transition:transform .4s cubic-bezier(.34,1.56,.64,1);display:flex;position:fixed;right:20px;transform:translate(120%);box-shadow:0 8px 30px #00000080,0 0 30px #ffd70022}.achievement-toast.visible{transform:translate(0)}.achievement-icon{font-size:28px}.achievement-title{color:gold;font-size:13px;font-weight:700}.achievement-desc{color:var(--text-secondary);font-size:12px}.form-group{margin-bottom:14px}.form-group label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:5px;font-size:12px;font-weight:600;display:block}.form-input{background:var(--bg-primary);border:1px solid var(--border-primary);width:100%;color:var(--text-primary);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-body);transition:border-color var(--transition);outline:none;padding:8px 12px}.form-input:focus{border-color:var(--accent-blue)}.btn-secondary{background:var(--bg-tertiary);border:1px solid var(--border-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;font-size:12px;font-family:var(--font-body);transition:all var(--transition);margin-top:6px;padding:6px 12px}.btn-secondary:hover{border-color:var(--accent-blue);color:var(--text-primary)}.column-entry{align-items:center;gap:8px;margin-bottom:8px;display:flex}.column-entry input,.column-entry select{background:var(--bg-primary);border:1px solid var(--border-primary);color:var(--text-primary);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-body);outline:none;padding:6px 10px}.column-entry input{flex:1}.loading-spinner{border:2px solid var(--border-primary);border-top-color:var(--accent-blue);border-radius:50%;width:14px;height:14px;margin-right:6px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.keyword{color:var(--accent-blue);font-weight:600}.string-val{color:var(--accent-green)}.backtick-val{color:var(--accent-purple)}.number-val{color:var(--accent-orange)}.comment-val{color:var(--text-muted);font-style:italic}.fn-val{color:var(--accent-yellow)}.op-val{color:var(--accent-cyan)}.table-name{color:var(--accent-purple)}.punctuation-val{color:var(--text-secondary);opacity:.85}.partition-block{border-left:2px solid var(--accent-purple);margin-left:-4px;padding-left:4px}.step-theme-from{--step-color:var(--accent-green)}.step-theme-where{--step-color:var(--accent-orange)}.step-theme-join{--step-color:var(--accent-cyan)}.step-theme-group{--step-color:var(--accent-purple)}.step-theme-having{--step-color:var(--accent-yellow)}.step-theme-order{--step-color:var(--accent-blue)}.step-theme-limit{--step-color:var(--accent-pink)}.step-theme-select{--step-color:var(--accent-blue)}.step-theme-insert{--step-color:var(--accent-green)}.step-theme-update{--step-color:var(--accent-orange)}.step-theme-delete{--step-color:var(--accent-red)}.step-theme-create{--step-color:var(--accent-cyan)}.step-theme-window{--step-color:var(--accent-purple)}.step-theme-cte{--step-color:var(--accent-pink)}.viz-step[class*=step-theme-] .step-number{background:var(--step-color)}.viz-step[class*=step-theme-].active{border-color:var(--step-color);box-shadow:0 0 20px color-mix(in srgb, var(--step-color) 30%, transparent)}.error-banner{color:var(--accent-red);border-radius:var(--radius-md);font-size:12px;font-family:var(--font-mono);background:#ff7b7211;border:1px solid #ff7b7244;align-items:flex-start;gap:8px;margin:12px;padding:10px 14px;display:flex}.error-icon{flex-shrink:0;font-size:16px}@media (max-width:1100px){.panel-right{width:280px}.panel-left{width:320px}}@media (max-width:800px){.main-layout{flex-direction:column;height:auto}.panel{border-right:none;border-bottom:1px solid var(--border-secondary);height:300px;width:100%!important;min-width:0!important;max-width:100%!important}.resize-handle,.nav-tabs{display:none}}.hidden{display:none!important}.fade-in{animation:.3s ease-out step-appear}.text-mono{font-family:var(--font-mono)}.text-muted{color:var(--text-muted)}.text-accent{color:var(--accent-blue)}.badge{border-radius:20px;align-items:center;padding:2px 8px;font-size:10px;font-weight:700;display:inline-flex}.badge-blue{color:var(--accent-blue);background:#58a6ff22;border:1px solid #58a6ff33}.badge-green{color:var(--accent-green);background:#3fb95022;border:1px solid #3fb95033}.badge-yellow{color:var(--accent-yellow);background:#d2992222;border:1px solid #d2992233}.badge-red{color:var(--accent-red);background:#ff7b7222;border:1px solid #ff7b7233}.badge-purple{color:var(--accent-purple);background:#bc8cff22;border:1px solid #bc8cff33}@keyframes gradient-border{0%{background-position:0%}50%{background-position:100%}to{background-position:0%}}.gradient-border{background:linear-gradient(var(--bg-card), var(--bg-card)) padding-box, linear-gradient(270deg, var(--accent-blue), var(--accent-cyan), var(--accent-purple)) border-box;background-size:200% 200%;border:1px solid #0000;animation:3s infinite gradient-border}.er-node{background:var(--bg-card);border:1px solid var(--border-primary);border-radius:var(--radius-md);cursor:move;-webkit-user-select:none;user-select:none;min-width:120px;transition:border-color var(--transition);position:absolute}.er-node:hover{border-color:var(--accent-blue)}.er-node-header{background:var(--bg-secondary);border-bottom:1px solid var(--border-secondary);font-family:var(--font-mono);color:var(--accent-green);border-radius:var(--radius-md) var(--radius-md) 0 0;padding:6px 10px;font-size:12px;font-weight:600}.er-node-col{font-family:var(--font-mono);border-bottom:1px solid var(--border-secondary);justify-content:space-between;gap:8px;padding:4px 10px;font-size:11px;display:flex}.er-node-col:last-child{border-bottom:none}.step-counter{color:var(--text-muted);font-size:11px;font-family:var(--font-mono);background:var(--bg-tertiary);border-radius:4px;padding:2px 8px}.null-val{color:var(--text-muted);font-size:11px;font-style:italic}.ai-tutor-container{flex-direction:column;height:100%;display:flex}.ai-tutor-messages{flex-direction:column;flex:1;gap:10px;margin-bottom:8px;padding:4px;display:flex;overflow-y:auto}.ai-message,.user-message{border-radius:var(--radius-md);max-width:85%;padding:10px 14px;font-size:12.5px;line-height:1.5}.ai-message{background:var(--bg-card);border-left:3px solid var(--accent-purple);border-right:1px solid var(--border-secondary);border-top:1px solid var(--border-secondary);border-bottom:1px solid var(--border-secondary);color:var(--text-primary);box-shadow:var(--glow-purple);align-self:flex-start}.user-message{background:linear-gradient(135deg, var(--accent-blue), var(--accent-cyan));color:#fff;box-shadow:var(--glow-blue);align-self:flex-end}.system-message{text-align:center;color:var(--text-muted);margin:4px 0;font-size:11px;font-style:italic}.ai-tutor-welcome{text-align:center;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:16px 8px;display:flex}.ai-tutor-welcome-icon{font-size:28px;animation:3s ease-in-out infinite float-slow}@keyframes float-slow{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.ai-tutor-welcome h3{color:var(--text-primary);font-size:14px;font-weight:600}.ai-tutor-welcome p{max-width:320px;font-size:12px}.ai-tutor-quick-prompts{flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px;display:flex}.ai-prompt-chip{background:var(--bg-tertiary);border:1px solid var(--border-secondary);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);font-size:11px;font-family:var(--font-body);border-radius:20px;padding:5px 10px}.ai-prompt-chip:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.ai-tutor-input-area{border-top:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;align-items:center;gap:8px;padding-top:8px;display:flex}.ai-tutor-input{border-radius:var(--radius-sm);border:1px solid var(--border-primary);background:var(--bg-primary);color:var(--text-primary);font-family:var(--font-body);transition:border var(--transition);outline:none;flex:1;padding:7px 12px;font-size:12px}.ai-tutor-input:focus{border-color:var(--accent-purple);background:var(--bg-secondary)}.ai-message p{margin-bottom:8px}.ai-message p:last-child{margin-bottom:0}.ai-message pre{color:#e2e8f0;border-radius:var(--radius-sm);font-family:var(--font-mono);background:#1e1e1e;border:1px solid #334155;margin:8px 0;padding:10px 12px;font-size:11.5px;overflow-x:auto}.ai-message code{font-family:var(--font-mono);background:var(--bg-tertiary);color:var(--accent-purple);border-radius:3px;padding:2px 4px;font-size:11px}.ai-message pre code{color:inherit;font-size:inherit;background:0 0;padding:0}.ai-message ul,.ai-message ol{margin:6px 0 10px 18px}.ai-message li{margin-bottom:4px}.sql-code-block{border:1px solid var(--border-secondary);border-radius:var(--radius-md);background:#1e1e1e;margin:8px 0;overflow:hidden}.sql-code-header{background:#2a2a2a;border-bottom:1px solid #333;justify-content:space-between;align-items:center;padding:5px 10px;display:flex}.sql-code-lang-tag{letter-spacing:.8px;text-transform:uppercase;color:var(--accent-cyan);font-size:10px;font-weight:700;font-family:var(--font-mono);opacity:.8}.sql-copy-icon-btn{color:#94a3b8;cursor:pointer;border-radius:var(--radius-sm);font-size:10.5px;font-weight:600;font-family:var(--font-body);transition:all var(--transition);background:0 0;border:1px solid #0000;align-items:center;gap:4px;padding:3px 8px;display:inline-flex}.sql-copy-icon-btn:hover{color:#e2e8f0;background:#94a3b81f;border-color:#94a3b84d}.sql-code-block pre{background:#1e1e1e;border:none;border-radius:0;margin:0;padding:12px 14px;overflow-x:auto}.sql-code-block pre code{color:#e2e8f0;font-family:var(--font-mono);background:0 0;border-radius:0;padding:0;font-size:11.5px}.sql-code-actions{background:#252525;border-top:1px solid #333;gap:8px;padding:7px 10px;display:flex}.use-query-btn{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:11px;font-weight:600;font-family:var(--font-body);border:none;align-items:center;gap:4px;padding:4px 10px;display:inline-flex;box-shadow:0 2px 6px #6366f133}.use-query-btn:hover{transform:translateY(-1px);box-shadow:0 4px 10px #6366f14d}.ai-suggestions-list{max-height:calc(100vh - var(--nav-height) - 130px);flex-direction:column;gap:12px;padding:2px;display:flex;overflow-y:auto}.suggestion-card{background:var(--bg-card);border:1px solid var(--border-secondary);border-radius:var(--radius-md);transition:all var(--transition);flex-direction:column;padding:12px;display:flex}.suggestion-card:hover{border-color:var(--accent-cyan);transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e90d}.suggestion-card-header{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:6px;display:flex}.suggestion-card-title{color:var(--text-primary);font-size:12px;font-weight:600}.diff-badge{text-transform:uppercase;border-radius:4px;flex-shrink:0;padding:2px 6px;font-size:9px;font-weight:700}.diff-easy{color:var(--accent-green);background:#10b9811a}.diff-medium{color:var(--accent-orange);background:#ea580c1a}.diff-hard{color:var(--accent-red);background:#e11d481a}.suggestion-card-quest{color:var(--text-secondary);margin-bottom:10px;font-size:12px;line-height:1.4}.suggestion-card-actions{flex-wrap:wrap;gap:6px;display:flex}.btn-card-action{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;color:var(--text-secondary);transition:all var(--transition);font-size:11px;font-family:var(--font-body);padding:4px 8px;font-weight:500}.btn-card-action:hover{background:var(--bg-hover);border-color:var(--accent-blue);color:var(--accent-blue)}.btn-card-action.primary{background:linear-gradient(135deg, var(--accent-blue), var(--accent-cyan));color:#fff;border:none;box-shadow:0 2px 4px #0284c726}.btn-card-action.primary:hover{transform:translateY(-.5px);box-shadow:0 4px 8px #0284c740}.suggestion-hint{border-left:2px solid var(--accent-cyan);border-radius:0 var(--radius-sm) var(--radius-sm) 0;color:var(--text-secondary);background:#0ea5e90a;margin-top:8px;padding:8px 10px;font-size:11px;line-height:1.4;animation:.2s fadeIn}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.ai-loader{vertical-align:middle;border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;margin-right:4px;animation:.8s linear infinite spin;display:inline-block}.btn-run:disabled{opacity:.7;cursor:not-allowed;box-shadow:none!important;transform:none!important}.floating-ai-btn{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;cursor:pointer;width:42px;height:42px;transition:all var(--transition);z-index:99;border:none;border-radius:50%;justify-content:center;align-items:center;font-size:20px;display:flex;position:absolute;bottom:12px;right:12px;box-shadow:0 4px 14px #7c3aed66}.floating-ai-btn:hover{transform:scale(1.08)translateY(-2px);box-shadow:0 6px 20px #7c3aed99}.floating-ai-btn:active{transform:scale(.95)translateY(0)}.floating-ai-icon{animation:3s ease-in-out infinite pulse-slow;display:inline-block}@keyframes pulse-slow{0%,to{filter:drop-shadow(0 0 #fff0);transform:scale(1)}50%{filter:drop-shadow(0 0 6px #fff9);transform:scale(1.08)}}.floating-ai-panel{background:var(--bg-secondary);border:1px solid var(--border-primary);border-radius:var(--radius-lg);width:320px;height:380px;box-shadow:0 10px 25px #00000026, var(--glow-purple);z-index:98;animation:slideUp var(--transition);resize:both;flex-direction:column;min-width:280px;max-width:500px;min-height:250px;max-height:550px;display:flex;position:absolute;bottom:60px;right:12px;overflow:hidden}@keyframes slideUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.floating-ai-header{background:var(--bg-primary);border-bottom:1px solid var(--border-secondary);flex-shrink:0;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.floating-ai-header-title{color:var(--text-primary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.floating-ai-content{background:var(--bg-secondary);flex:1;padding:10px;overflow:hidden}.modal-practice{border-radius:var(--radius-xl);flex-direction:row;width:90vw;max-width:90vw;height:88vh;max-height:88vh;overflow:hidden}.practice-sidebar{background:var(--bg-primary);border-right:1px solid var(--border-primary);flex-direction:column;width:224px;min-width:224px;display:flex;overflow:hidden}.practice-sidebar-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;padding:16px 16px 12px}.practice-sidebar-title{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:10px;font-size:14px;font-weight:800}.practice-global-progress{margin-top:4px}.practice-progress-label{color:var(--text-muted);margin-bottom:5px;font-size:11px;font-weight:500}.practice-progress-track{background:var(--bg-tertiary);border-radius:99px;height:6px;overflow:hidden}.practice-progress-bar{background:linear-gradient(90deg, var(--accent-cyan), var(--accent-purple));border-radius:99px;min-width:0;height:100%;transition:width .4s}.practice-level-nav{flex:1;padding:8px 0;overflow-y:auto}.practice-level-btn{cursor:pointer;width:100%;font-family:var(--font-body);color:var(--text-secondary);text-align:left;transition:all var(--transition);background:0 0;border:none;border-left:3px solid #0000;justify-content:space-between;align-items:center;gap:6px;padding:9px 16px;font-size:12px;font-weight:600;display:flex}.practice-level-btn:hover{background:var(--bg-hover);color:var(--text-primary);border-left-color:var(--border-primary)}.practice-level-btn.active{color:var(--accent-purple);border-left-color:var(--accent-purple);background:linear-gradient(90deg,#7c3aed1f,#0000);font-weight:700}.practice-level-btn .lvl-name{white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.practice-level-btn .lvl-badge{background:var(--bg-tertiary);color:var(--text-muted);white-space:nowrap;border-radius:99px;flex-shrink:0;padding:1px 7px;font-size:10px;font-weight:700}.practice-level-btn.active .lvl-badge{color:var(--accent-purple);background:#7c3aed26}.practice-main{background:var(--bg-secondary);flex-direction:column;flex:1;display:flex;overflow:hidden}.practice-main-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-secondary);flex-shrink:0;padding:16px 20px 12px}.practice-level-title{color:var(--text-primary);align-items:center;gap:10px;margin-bottom:4px;font-size:18px;font-weight:800;display:flex}.practice-level-desc{color:var(--text-secondary);margin-top:2px;font-size:12px}.practice-diff-badge{text-transform:uppercase;letter-spacing:.5px;border-radius:99px;padding:2px 10px;font-size:10px;font-weight:700}.practice-diff-badge.beginner{color:var(--accent-cyan);background:#0ea5e926}.practice-diff-badge.intermediate{color:var(--accent-yellow);background:#ca8a0426}.practice-diff-badge.advanced{color:var(--accent-orange);background:#ea580c26}.practice-diff-badge.expert{color:var(--accent-red);background:#e11d4826}.practice-cards-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));align-content:start;gap:12px;padding:16px 20px;display:grid;overflow-y:auto}.question-card{background:var(--bg-card);border:1.5px solid var(--border-primary);border-radius:var(--radius-md);transition:all var(--transition);flex-direction:column;gap:8px;padding:14px 14px 12px;display:flex;position:relative;overflow:hidden}.question-card:hover{border-color:var(--accent-purple);box-shadow:var(--glow-purple);transform:translateY(-1px)}.question-card.solved{border-color:var(--accent-green);background:#10b9810a}.question-card.solved:after{content:"✓";color:var(--accent-green);font-size:16px;font-weight:900;line-height:1;position:absolute;top:10px;right:12px}.question-card-top{align-items:flex-start;gap:10px;display:flex}.question-num-badge{background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));color:#fff;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:26px;height:26px;margin-top:1px;font-size:10px;font-weight:800;display:flex}.question-card.solved .question-num-badge{background:linear-gradient(135deg, var(--accent-green), #059669)}.question-text{color:var(--text-primary);flex:1;padding-right:20px;font-size:12px;font-weight:600;line-height:1.5}.question-card-footer{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.difficulty-chip{text-transform:uppercase;letter-spacing:.4px;border-radius:99px;flex-shrink:0;padding:2px 8px;font-size:10px;font-weight:700}.difficulty-chip.beginner{color:#0ea5e9;background:#0ea5e926}.difficulty-chip.intermediate{color:#ca8a04;background:#ca8a0426}.difficulty-chip.advanced{color:#ea580c;background:#ea580c26}.difficulty-chip.expert{color:#e11d48;background:#e11d4826}.try-btn{border-radius:var(--radius-sm);background:linear-gradient(135deg, var(--accent-blue), var(--accent-purple));color:#fff;cursor:pointer;font-size:11px;font-weight:700;font-family:var(--font-body);transition:all var(--transition);border:none;flex-shrink:0;margin-left:auto;padding:4px 12px}.try-btn:hover{opacity:.85;transform:scale(1.03)}.question-hint-btn{border-radius:var(--radius-sm);color:var(--text-muted);border:1px solid var(--border-primary);cursor:pointer;font-size:11px;font-weight:600;font-family:var(--font-body);transition:all var(--transition);background:0 0;flex-shrink:0;padding:4px 10px}.question-hint-btn:hover{border-color:var(--accent-cyan);color:var(--accent-cyan)}.question-hint-text{color:var(--text-secondary);border-radius:var(--radius-sm);background:#0ea5e912;border:1px solid #0ea5e933;padding:7px 10px;font-size:11px;line-height:1.5;display:none}.question-hint-text.visible{animation:.2s hint-fade;display:block}@keyframes hint-fade{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.question-table-tag{color:var(--text-muted);background:var(--bg-tertiary);font-size:10px;font-family:var(--font-mono);border-radius:99px;padding:1px 7px}.practice-modal-close{color:var(--text-muted);border:1px solid var(--border-primary);border-radius:var(--radius-sm);flex-shrink:0;padding:5px 12px;font-size:11px;font-weight:600;margin-top:auto!important}.practice-modal-close:hover{color:var(--accent-red);border-color:var(--accent-red)}.challenge-bar{background:linear-gradient(135deg,#7c3aed1f 0%,#6366f114 100%);border-bottom:1px solid #7c3aed40;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;padding:8px 14px;animation:.25s slideDown;display:flex}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.challenge-bar-left{flex:1;align-items:center;gap:10px;min-width:0;display:flex}.challenge-bar-badge{color:#fff;background:linear-gradient(135deg, var(--accent-purple), #6366f1);white-space:nowrap;letter-spacing:.5px;border-radius:6px;flex-shrink:0;padding:3px 9px;font-size:10px;font-weight:800;box-shadow:0 2px 8px #7c3aed4d}.challenge-bar-text{color:var(--text-primary);white-space:nowrap;text-overflow:ellipsis;font-size:12px;font-weight:600;overflow:hidden}.challenge-bar-right{flex-shrink:0;align-items:center;gap:6px;display:flex}.challenge-bar-btn{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;width:30px;height:30px;transition:all var(--transition);border:none;justify-content:center;align-items:center;font-size:15px;font-weight:700;display:flex;box-shadow:0 2px 8px #7c3aed4d}.challenge-bar-btn:hover{transform:translate(2px)scale(1.08);box-shadow:0 4px 14px #7c3aed73}.challenge-bar-close{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;width:26px;height:26px;transition:all var(--transition);background:0 0;border:1px solid #7c3aed4d;justify-content:center;align-items:center;font-size:11px;display:flex}.challenge-bar-close:hover{border-color:var(--accent-red);color:var(--accent-red);background:#e11d4814}.challenge-bar-btn.hint-btn{background:linear-gradient(135deg,#f59e0b,#d97706);box-shadow:0 2px 8px #f59e0b4d}.challenge-bar-btn.hint-btn:hover{transform:translate(0)scale(1.08);box-shadow:0 4px 14px #f59e0b80}.challenge-bar-btn.hint-btn.active{background:linear-gradient(135deg,#d97706,#b45309);box-shadow:inset 0 2px 4px #0003}.challenge-hint-bar{background:linear-gradient(135deg,#f59e0b14 0%,#d977060d 100%);border-bottom:1px solid #f59e0b33;flex-shrink:0;align-items:center;gap:8px;padding:8px 14px;animation:.2s slideDown;display:flex}.challenge-hint-icon{filter:drop-shadow(0 0 4px #f59e0b66);font-size:14px}.challenge-hint-text{color:var(--accent-orange);font-size:12px;font-weight:550}.reveal-solution-wrap{background:var(--bg-secondary);border-top:1px solid var(--border-secondary);flex-shrink:0;padding:8px 12px;animation:.25s slideUp}.reveal-solution-btn{border-radius:var(--radius-md);color:#ca8a04;width:100%;font-size:12px;font-weight:700;font-family:var(--font-body);cursor:pointer;transition:all var(--transition);letter-spacing:.3px;background:linear-gradient(135deg,#fbbf241f 0%,#ea580c14 100%);border:1px solid #fbbf2459;justify-content:center;align-items:center;gap:6px;padding:9px 16px;display:flex}.reveal-solution-btn:hover{background:linear-gradient(135deg,#fbbf2433 0%,#ea580c26 100%);border-color:#fbbf2499;transform:translateY(-1px);box-shadow:0 4px 14px #fbbf2433}.chal-overlay{z-index:9999;justify-content:center;align-items:center}.chal-modal{background:var(--bg-secondary);box-shadow:0 24px 80px #0000002e, 0 0 0 1px var(--border-primary);border-radius:12px;flex-direction:column;width:min(568px,96vw);height:min(344px,90vh);max-height:344px;animation:.2s modal-slide;display:flex;overflow:hidden}.chal-modal-header{border-bottom:1px solid var(--border-secondary);background:var(--bg-primary);flex-shrink:0;align-items:center;gap:16px;padding:18px 24px 16px;display:flex}.chal-modal-title{color:var(--text-primary);letter-spacing:-.3px;align-items:center;gap:10px;font-size:16px;font-weight:800;display:flex}.chal-modal-icon{font-size:20px}.chal-modal-meta{flex:1}.chal-global-progress{align-items:center;gap:12px;display:flex}.chal-progress-text{color:var(--text-muted);white-space:nowrap;font-size:11px;font-weight:700}.chal-progress-text span{color:var(--accent-green)}.chal-progress-track{background:var(--bg-card);border-radius:99px;flex:1;max-width:220px;height:5px;overflow:hidden}.chal-progress-bar{background:linear-gradient(90deg, var(--accent-green), var(--accent-cyan));border-radius:99px;height:100%;transition:width .5s}.chal-close-btn{border:1px solid var(--border-secondary);color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;width:32px;height:32px;transition:all var(--transition);background:0 0;flex-shrink:0;justify-content:center;align-items:center;font-size:13px;display:flex}.chal-close-btn:hover{border-color:var(--accent-red);color:var(--accent-red);background:#e11d4814}.chal-modal-body{flex-direction:column;flex:1;gap:28px;padding:24px;display:flex;overflow-y:auto}.chal-level-section{border-radius:var(--radius-md);transition:border-color var(--transition), box-shadow var(--transition);border:2px solid #0000;flex-direction:column;gap:14px;padding:12px;display:flex}.chal-level-section.border-red{border-color:var(--accent-red);background:#e11d4805;box-shadow:0 2px 12px #e11d480d}.chal-level-section.border-orange{background:#f59e0b05;border-color:#f59e0b;box-shadow:0 2px 12px #f59e0b0d}.chal-level-section.border-green{border-color:var(--accent-green);background:#10b98105;box-shadow:0 2px 12px #10b9810d}.chal-level-num-clickable{cursor:pointer;text-underline-offset:3px;transition:color var(--transition), text-decoration-color var(--transition);-webkit-text-decoration:underline dashed #7c3aed66;text-decoration:underline dashed #7c3aed66}.chal-level-num-clickable:hover{color:var(--accent-purple);-webkit-text-decoration:underline solid var(--accent-purple);text-decoration:underline solid var(--accent-purple)}.color-chooser-popover{background:var(--bg-panel);border:1px solid var(--border-primary);border-radius:var(--radius-md);flex-direction:column;gap:8px;width:220px;padding:12px;animation:.15s fadeIn;display:flex;box-shadow:0 10px 25px -5px #00000026,0 8px 10px -6px #00000026}.color-chooser-q-title{color:var(--text-primary);word-break:break-word;margin-bottom:4px;font-size:11px;font-weight:700;line-height:1.4}.color-chooser-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-top:1px solid var(--border-secondary);margin-top:4px;padding-top:6px;font-size:9px;font-weight:700}.color-palette{justify-content:space-between;gap:6px;display:flex}.color-circle-btn{background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);flex:1;justify-content:center;align-items:center;padding:6px;font-size:14px;display:flex}.color-circle-btn:hover{background:var(--bg-hover);transform:translateY(-1px)}.color-opt-btn.start-btn{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;text-align:center;transition:all var(--transition);border:none;padding:8px;font-size:12px;font-weight:700}.color-opt-btn.start-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px #7c3aed59}.chal-level-heading{align-items:center;gap:12px;display:flex}.chal-level-heading-text{color:var(--text-primary);letter-spacing:-.2px;font-size:14px;font-weight:800}.chal-level-diff-badge{text-transform:uppercase;letter-spacing:.6px;border-radius:99px;padding:2px 10px;font-size:9.5px;font-weight:700}.chal-level-diff-badge.beginner{color:var(--accent-cyan);background:#38bdf826}.chal-level-diff-badge.intermediate{color:#ca8a04;background:#fbbf2426}.chal-level-diff-badge.advanced{color:#f97316;background:#f9731626}.chal-level-diff-badge.expert{color:#f87171;background:#f8717126}.chal-level-count{color:var(--text-muted);margin-left:auto;font-size:10.5px;font-weight:600}.chal-circles-grid{flex-wrap:wrap;gap:10px;padding-left:2px;display:flex}.chal-circle{background:var(--bg-secondary);border:2px solid var(--border-primary);width:44px;height:44px;color:var(--text-secondary);cursor:pointer;font-size:12px;font-weight:800;font-family:var(--font-body);-webkit-user-select:none;user-select:none;border-radius:50%;justify-content:center;align-items:center;transition:all .18s cubic-bezier(.4,0,.2,1);display:flex;position:relative;box-shadow:0 1px 4px #0000000f}.chal-circle:hover{border-color:var(--accent-purple);color:var(--accent-purple);z-index:1;background:#7c3aed12;transform:scale(1.12);box-shadow:0 4px 14px #7c3aed38}.chal-circle.chal-circle-solved{border-color:var(--accent-green);color:var(--accent-green);background:linear-gradient(135deg,#10b9811f,#05966914)}.chal-circle.chal-circle-solved:after{content:"✓";background:var(--accent-green);color:#fff;text-align:center;border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;line-height:16px;display:flex;position:absolute;top:-5px;right:-5px}.chal-circle.chal-circle-active{border-color:var(--accent-purple);background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;transform:scale(1.12);box-shadow:0 4px 16px #7c3aed66}.chal-circle.border-green{box-shadow:0 0 8px #10b98140;border-color:var(--accent-green)!important}.chal-circle.border-orange{box-shadow:0 0 8px #f59e0b40;border-color:#f59e0b!important}.chal-circle.border-red{box-shadow:0 0 8px #e11d4840;border-color:var(--accent-red)!important}.chal-level-divider{background:var(--border-secondary);border:none;height:1px;margin:0}.solution-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:50;border-radius:var(--radius-md);background:#0f172aeb;flex-direction:column;justify-content:center;align-items:center;gap:12px;animation:.2s fadeIn;display:flex;position:absolute;inset:0}.solution-overlay-label{color:#ffffff80;text-transform:uppercase;letter-spacing:1px;font-size:11px;font-weight:700}.solution-overlay-query{font-family:var(--font-mono);color:#a5f3fc;border-radius:var(--radius-md);white-space:pre-wrap;text-align:left;background:#ffffff0d;border:1px solid #ffffff1a;max-width:90%;padding:16px 20px;font-size:12.5px;line-height:1.7}.solution-overlay-copy{background:linear-gradient(135deg, var(--accent-purple), #6366f1);color:#fff;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:12px;font-weight:700;font-family:var(--font-body);border:none;padding:8px 20px}.solution-overlay-copy:hover{transform:translateY(-1px);box-shadow:0 4px 14px #7c3aed66}.solution-overlay-dismiss{color:#ffffff80;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-size:11px;font-weight:600;font-family:var(--font-body);background:0 0;border:1px solid #ffffff26;padding:6px 16px}.solution-overlay-dismiss:hover{color:#fffc;border-color:#ffffff59}.notes-container{box-sizing:border-box;background:var(--bg-secondary);flex-direction:column;height:100%;padding:12px;display:flex}.notes-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.notes-status{color:var(--text-muted);font-size:11px;font-weight:500}.notes-btn{border:1px solid var(--border-primary);color:var(--text-secondary);border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);background:0 0;padding:4px 10px;font-size:11px;font-weight:600}.notes-btn:hover{border-color:var(--accent-red);color:var(--accent-red);background:#e11d480d}.notes-textarea{resize:none;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);width:100%;color:var(--text-primary);font-family:var(--font-body);box-sizing:border-box;transition:border-color var(--transition), box-shadow var(--transition);outline:none;flex:1;padding:12px;font-size:13px;line-height:1.5}.notes-textarea:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px #0284c71a}.mobile-panel-tabs{display:none}@media (max-width:768px){.mobile-panel-tabs{background:var(--bg-secondary);border-bottom:1px solid var(--border-primary);flex-shrink:0;justify-content:space-around;gap:6px;padding:6px 12px;display:flex!important}.mobile-panel-tab{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all var(--transition);text-align:center;background:0 0;border:1px solid #0000;flex:1;padding:8px;font-size:12px;font-weight:600}.mobile-panel-tab.active{background:var(--bg-active);color:var(--accent-blue);border-color:var(--border-accent)}.main-layout{height:calc(100vh - var(--nav-height) - 45px - var(--bottom-panel-height))!important;flex-direction:column!important}.panel-left,.panel-center,.panel-right{display:none!important}.panel-left.mobile-active,.panel-center.mobile-active,.panel-right.mobile-active{flex:1!important;width:100%!important;height:100%!important;display:flex!important}.resize-handle{display:none!important}.top-nav{padding:0 10px!important}.nav-left{gap:8px!important}.nav-tabs{gap:2px!important}.nav-tab{padding:6px 8px!important;font-size:11px!important}.logo-text{display:none!important}.xp-badge{padding:4px 8px!important;font-size:10px!important}.level-badge{padding:4px 6px!important;font-size:10px!important}.btn-run{padding:6px 10px!important;font-size:11px!important}.modal,.chal-modal{border-radius:var(--radius-md)!important;width:95%!important;max-width:100%!important;height:85%!important;margin:0!important}.modal-overlay{justify-content:center!important;align-items:center!important;padding:10px!important}.bottom-tabs{-webkit-overflow-scrolling:touch;scrollbar-width:none;white-space:nowrap!important;display:flex!important;overflow-x:auto!important}.bottom-tabs::-webkit-scrollbar{display:none}.bottom-tab{flex:none!important}.timeline-scrubber{padding:10px 14px!important}}[data-theme=dark]{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-panel:#1e293b;--bg-card:#1e293b;--bg-hover:#334155;--bg-active:#475569;--border-primary:#334155;--border-secondary:#1e293b;--border-accent:#38bdf844;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#64748b;--text-accent:#38bdf8;--accent-blue:#38bdf8;--accent-cyan:#0ea5e9;--accent-purple:#a78bfa;--accent-green:#34d399;--accent-orange:#fb923c;--accent-red:#fb7185;--accent-yellow:#facc15;--accent-pink:#f472b6;--glow-blue:0 4px 12px #38bdf833;--glow-cyan:0 4px 12px #0ea5e933;--glow-purple:0 4px 12px #a78bfa33;--glow-green:0 4px 12px #34d39933}.theme-toggle-btn{transition:transform .2s,background-color .2s}.theme-toggle-btn:hover{transform:scale(1.08)}.theme-toggle-btn:active{transform:scale(.92)}
