@import "https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,300;0,14..32,400;0,14..32,500;0,14..32,600;0,14..32,700;0,14..32,800;1,14..32,400&family=Fira+Code:wght@400;500&display=swap";:root{--bg-base:#060912;--bg-surface:#0d1220;--bg-elevated:#141c32b3;--bg-hover:#ffffff08;--bg-input:#00000059;--accent-blue:#3b82f6;--accent-purple:#7c3aed;--accent-teal:#14b8a6;--accent-orange:#f97316;--accent-rose:#f43f5e;--grad-brand:linear-gradient(135deg, #3b82f6 0%, #7c3aed 100%);--grad-teal:linear-gradient(135deg, #14b8a6 0%, #3b82f6 100%);--grad-warm:linear-gradient(135deg, #f97316 0%, #f43f5e 100%);--grad-hero:linear-gradient(135deg, #1e40af 0%, #4c1d95 50%, #1e1b4b 100%);--border:#ffffff12;--border-focus:#3b82f680;--border-glow:#3b82f626;--text-1:#f0f4ff;--text-2:#94a3b8;--text-3:#4b5563;--color-easy:#10b981;--color-medium:#f59e0b;--color-hard:#ef4444;--paradigm-graph:#3b82f6;--paradigm-greedy:#10b981;--paradigm-dp:#8b5cf6;--paradigm-dc:#f97316;--paradigm-bt:#f43f5e;--paradigm-sort:#14b8a6;--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"Fira Code", "JetBrains Mono", monospace;--radius-sm:6px;--radius-md:10px;--radius-lg:16px;--radius-xl:24px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 8px 24px #0006;--shadow-lg:0 20px 60px #00000080;--shadow-glow:0 0 40px #3b82f61f;--t-fast:.15s ease;--t-mid:.25s cubic-bezier(.4,0,.2,1);--t-spring:.4s cubic-bezier(.34,1.56,.64,1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background-color:var(--bg-base);color:var(--text-1);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;background-image:radial-gradient(at 15% 10%,#7c3aed14 0%,#0000 50%),radial-gradient(at 85% 90%,#3b82f60f 0%,#0000 50%),radial-gradient(#14b8a608 0%,#0000 60%);background-attachment:fixed;min-height:100vh;line-height:1.6;overflow-x:hidden}h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.2}.text-gradient{background:var(--grad-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.text-gradient-teal{background:var(--grad-teal);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.glass-panel{background:var(--bg-elevated);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:border-color var(--t-mid), box-shadow var(--t-mid)}.glass-panel:hover{box-shadow:var(--shadow-lg);border-color:#ffffff1c}.surface{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.btn{border-radius:var(--radius-md);font-size:.9rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.65rem 1.35rem;text-decoration:none;display:inline-flex}.btn-primary{background:var(--grad-brand);color:#fff;box-shadow:0 4px 16px #7c3aed40}.btn-primary:hover{filter:brightness(1.08);transform:translateY(-2px);box-shadow:0 8px 24px #7c3aed66}.btn-primary:active{transform:translateY(0)}.btn-secondary{color:var(--text-1);border-color:var(--border);background:#ffffff0d}.btn-secondary:hover{background:#ffffff17;border-color:#ffffff24}.btn-ghost{color:var(--text-2);background:0 0;border-color:#0000}.btn-ghost:hover{background:var(--bg-hover);color:var(--text-1)}.btn-danger{color:#f87171;background:#ef44441f;border-color:#ef444440}.btn-danger:hover{background:#ef444438;border-color:#ef4444}.btn:disabled{opacity:.4;cursor:not-allowed;filter:none!important;box-shadow:none!important;transform:none!important}.btn-lg{border-radius:var(--radius-lg);padding:.85rem 1.75rem;font-size:1rem}.btn-sm{border-radius:var(--radius-sm);padding:.4rem .9rem;font-size:.8rem}.input-text,.select-input,.textarea-input{background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-1);font-family:var(--font-sans);transition:border-color var(--t-fast), box-shadow var(--t-fast);outline:none;width:100%;padding:.75rem 1rem;font-size:.95rem}.input-text:focus,.select-input:focus,.textarea-input:focus{border-color:var(--accent-blue);box-shadow:0 0 0 3px var(--border-glow)}.input-text::placeholder,.textarea-input::placeholder{color:var(--text-3)}.select-input option{background:var(--bg-surface)}.badge{border-radius:var(--radius-full);letter-spacing:.04em;text-transform:uppercase;align-items:center;padding:.2rem .6rem;font-size:.72rem;font-weight:700;display:inline-flex}.badge-easy{color:var(--color-easy);background:#10b9811f;border:1px solid #10b98140}.badge-medium{color:var(--color-medium);background:#f59e0b1f;border:1px solid #f59e0b40}.badge-hard{color:var(--color-hard);background:#ef44441f;border:1px solid #ef444440}.paradigm-tag{border-radius:var(--radius-full);border:1px solid #0000;align-items:center;gap:.3rem;padding:.2rem .65rem;font-size:.72rem;font-weight:600;display:inline-flex}.pt-graph{color:#60a5fa;background:#3b82f61f;border-color:#3b82f633}.pt-greedy{color:#34d399;background:#10b9811f;border-color:#10b98133}.pt-dp{color:#a78bfa;background:#8b5cf61f;border-color:#8b5cf633}.pt-dc{color:#fb923c;background:#f973161f;border-color:#f9731633}.pt-bt{color:#fb7185;background:#f43f5e1f;border-color:#f43f5e33}.pt-sort{color:#2dd4bf;background:#14b8a61f;border-color:#14b8a633}.chip{border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-full);cursor:pointer;-webkit-user-select:none;user-select:none;transition:all var(--t-fast);background:#ffffff0d;align-items:center;gap:.35rem;padding:.35rem .85rem;font-size:.82rem;font-weight:500;display:inline-flex}.chip:hover{color:var(--text-1);background:#ffffff14}.chip.active{color:#93c5fd;background:#3b82f626;border-color:#3b82f666}.filter-pill{border-radius:var(--radius-full);border:1px solid var(--border);color:var(--text-2);cursor:pointer;transition:all var(--t-fast);white-space:nowrap;background:#ffffff0a;padding:.4rem 1rem;font-size:.82rem;font-weight:600}.filter-pill:hover{color:var(--text-1);background:#ffffff14}.filter-pill.active{background:var(--grad-brand);color:#fff;border-color:#0000;box-shadow:0 2px 12px #7c3aed4d}.app-container{flex-direction:column;min-height:100vh;display:flex}.navbar{border-bottom:1px solid var(--border);-webkit-backdrop-filter:blur(20px);z-index:100;background:#060912d9;justify-content:space-between;align-items:center;padding:.9rem 2rem;display:flex;position:sticky;top:0}.navbar-logo{letter-spacing:-.02em;color:var(--text-1);align-items:center;gap:.6rem;font-size:1.05rem;font-weight:800;text-decoration:none;display:flex}.navbar-logo-icon{background:var(--grad-brand);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;display:flex;box-shadow:0 4px 12px #7c3aed4d}.navbar-logo-text{background:var(--grad-brand);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text}.navbar-links{align-items:center;gap:.25rem;display:flex}.nav-link{color:var(--text-2);border-radius:var(--radius-full);transition:all var(--t-fast);cursor:pointer;border:1px solid #0000;align-items:center;gap:.4rem;padding:.45rem .9rem;font-size:.875rem;font-weight:500;text-decoration:none;display:flex}.nav-link:hover{color:var(--text-1);background:var(--bg-hover)}.nav-link.active{color:var(--text-1);background:#3b82f61f;border-color:#3b82f633}.main-content{flex:1;width:100%;max-width:1400px;margin:0 auto;padding:2.5rem 2rem}.page-header{margin-bottom:2.5rem}.page-header h1{letter-spacing:-.03em;margin-bottom:.5rem;font-size:2rem;font-weight:800}.page-header p{color:var(--text-2);max-width:600px;font-size:.95rem}.hero-section{text-align:center;padding:4rem 2rem 3rem;position:relative;overflow:hidden}.hero-eyebrow{border-radius:var(--radius-full);color:#a78bfa;letter-spacing:.04em;text-transform:uppercase;background:#7c3aed1f;border:1px solid #7c3aed40;align-items:center;gap:.5rem;margin-bottom:1.5rem;padding:.35rem 1rem;font-size:.8rem;font-weight:600;display:inline-flex}.hero-title{letter-spacing:-.04em;margin-bottom:1.25rem;font-size:clamp(2.5rem,6vw,4rem);font-weight:900;line-height:1.05}.hero-description{color:var(--text-2);max-width:600px;margin:0 auto 2.5rem;font-size:1.1rem;line-height:1.7}.hero-actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:4rem;display:flex}.hero-glow{pointer-events:none;background:radial-gradient(#7c3aed1f 0%,#0000 70%);width:600px;height:400px;position:absolute;top:-100px;left:50%;transform:translate(-50%)}.features-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.5rem;margin-bottom:3rem;display:grid}.feature-card{border-radius:var(--radius-lg);border:1px solid var(--border);background:var(--bg-elevated);transition:all var(--t-mid);cursor:pointer;padding:1.75rem;text-decoration:none;display:block;position:relative;overflow:hidden}.feature-card:before{content:"";background:var(--card-accent,var(--grad-brand));opacity:0;transition:opacity var(--t-mid);border-radius:inherit;position:absolute;inset:0}.feature-card:hover{box-shadow:var(--shadow-lg);border-color:#ffffff21;transform:translateY(-4px)}.feature-card:hover:before{opacity:.04}.feature-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:48px;height:48px;margin-bottom:1.1rem;font-size:1.4rem;display:flex}.feature-card h3{color:var(--text-1);margin-bottom:.5rem;font-size:1.05rem;font-weight:700}.feature-card p{color:var(--text-2);margin-bottom:1.25rem;font-size:.87rem;line-height:1.6}.feature-card-cta{transition:gap var(--t-fast);align-items:center;gap:.3rem;font-size:.82rem;font-weight:600;display:flex}.feature-card:hover .feature-card-cta{gap:.6rem}.step-flow{flex-wrap:wrap;justify-content:center;align-items:center;gap:0;margin-bottom:3rem;display:flex}.step-item{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;align-items:center;gap:.75rem;min-width:160px;padding:1rem 1.5rem;display:flex}.step-number{border-radius:var(--radius-full);background:var(--grad-brand);color:#fff;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:800;display:flex;box-shadow:0 2px 8px #7c3aed4d}.step-arrow{color:var(--text-3);padding:0 .5rem;font-size:1.25rem}.step-text h4{color:var(--text-1);font-size:.85rem;font-weight:700}.step-text p{color:var(--text-2);margin-top:.1rem;font-size:.75rem}.generator-layout{grid-template-columns:1fr 1fr;align-items:start;gap:2rem;display:grid}@media (width<=900px){.generator-layout{grid-template-columns:1fr}}.generator-card{padding:2rem}.form-group{margin-bottom:1.5rem}.form-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-2);align-items:center;gap:.4rem;margin-bottom:.75rem;font-size:.82rem;font-weight:600;display:flex}.chips-container{flex-wrap:wrap;gap:.5rem;display:flex}.difficulty-selectors{gap:.75rem;display:flex}.diff-select-btn{text-align:center;border-radius:var(--radius-md);border:1px solid var(--border);cursor:pointer;transition:all var(--t-fast);color:var(--text-2);font-size:.88rem;font-weight:700;font-family:var(--font-sans);background:#0003;flex:1;padding:.7rem}.diff-select-btn:hover{background:var(--bg-hover);color:var(--text-1)}.diff-select-btn[data-diff=Easy].active{border-color:var(--color-easy);color:var(--color-easy);background:#10b9811a}.diff-select-btn[data-diff=Medium].active{border-color:var(--color-medium);color:var(--color-medium);background:#f59e0b1a}.diff-select-btn[data-diff=Hard].active{border-color:var(--color-hard);color:var(--color-hard);background:#ef44441a}.prompt-display-card{flex-direction:column;padding:2rem;display:flex}.prompt-textarea{min-height:280px;font-family:var(--font-mono);resize:none;background:#00000080;border-color:#ffffff0a;flex:1;margin-bottom:1rem;font-size:.82rem;line-height:1.7}.workflow-hint{border-radius:var(--radius-md);color:var(--text-2);background:#3b82f612;border:1px solid #3b82f626;align-items:flex-start;gap:.6rem;margin-bottom:1.5rem;padding:.85rem 1.1rem;font-size:.85rem;line-height:1.5;display:flex}.import-container{max-width:820px;margin:0 auto}.validation-errors{color:#f87171;border-radius:var(--radius-md);background:#ef444414;border:1px solid #ef444433;margin-bottom:1.5rem;padding:1rem 1.25rem;font-size:.875rem}.validation-errors ul{padding-left:1.25rem}.problem-editor-container{height:calc(100vh - 100px);margin:-2.5rem -2rem;display:flex;overflow:hidden}.pane{flex-direction:column;height:100%;display:flex;overflow:hidden}.left-pane{border-right:1px solid var(--border);background:#070b16;width:45%;min-width:300px}.resizer{background:var(--border);cursor:col-resize;width:4px;transition:background var(--t-fast);flex-shrink:0}.resizer:hover,.resizer.dragging{background:var(--accent-blue)}.right-pane{flex:1;min-width:350px}.pane-header{border-bottom:1px solid var(--border);background:#070b1699;flex-shrink:0;justify-content:space-between;align-items:center;height:50px;padding:0 1.25rem;font-size:.875rem;font-weight:600;display:flex}.pane-body{flex:1;padding:1.5rem;overflow-y:auto}.problem-details h1{margin-bottom:.5rem;font-size:1.6rem}.problem-details h2{color:var(--text-1);margin:1.5rem 0 .5rem;font-size:1.15rem}.problem-details h3{margin:1rem 0 .4rem;font-size:1rem}.problem-details p{color:var(--text-2);margin-bottom:.9rem;font-size:.93rem}.problem-details blockquote{border-left:3px solid var(--accent-blue);color:var(--text-2);margin:1rem 0;padding-left:1rem}.problem-details ul{color:var(--text-2);margin-bottom:1rem;padding-left:1.25rem}.problem-details li{margin-bottom:.3rem}.example-box{border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);background:#00000059;margin-bottom:1.25rem;padding:1rem;font-size:.82rem}.example-box strong{color:var(--text-1)}.inline-code{font-family:var(--font-mono);color:#e5c07b;background:#ffffff12;border-radius:4px;padding:.1rem .35rem;font-size:.84em}.code-block{font-family:var(--font-mono);border-radius:var(--radius-md);border:1px solid var(--border);background:#04060d;margin-bottom:1rem;padding:1rem;font-size:.82rem;overflow-x:auto}.editor-wrapper{flex:1;min-height:200px;position:relative}#monaco-container{width:100%;height:100%}.console-panel{border-top:1px solid var(--border);background:#06091a;flex-direction:column;flex-shrink:0;height:300px;display:flex}.console-tabs{border-bottom:1px solid var(--border);background:#0000004d;flex-shrink:0;display:flex}.console-tab{color:var(--text-2);cursor:pointer;transition:all var(--t-fast);letter-spacing:.02em;border-bottom:2px solid #0000;padding:.7rem 1.25rem;font-size:.82rem;font-weight:600}.console-tab:hover{color:var(--text-1)}.console-tab.active{color:var(--accent-blue);border-color:var(--accent-blue)}.console-body{font-family:var(--font-mono);flex:1;padding:1rem;font-size:.82rem;line-height:1.6;overflow-y:auto}.run-actions{border-top:1px solid var(--border);background:#00000026;flex-shrink:0;justify-content:flex-end;gap:.75rem;padding:.75rem 1rem;display:flex}.tc-selector{gap:.5rem;margin-bottom:1rem;display:flex}.tc-btn{border:1px solid var(--border);color:var(--text-2);border-radius:var(--radius-sm);cursor:pointer;font-size:.78rem;font-weight:600;font-family:var(--font-sans);transition:all var(--t-fast);background:#ffffff0d;padding:.35rem .8rem}.tc-btn.active{color:#93c5fd;background:#3b82f61f;border-color:#3b82f659}.tc-io{grid-template-columns:1fr;gap:.85rem;display:grid}.tc-io-label{color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.3rem;font-size:.72rem;font-weight:600}.tc-io-val{border-radius:var(--radius-sm);border:1px solid var(--border);white-space:pre-wrap;color:var(--text-1);font-family:var(--font-mono);background:#00000059;padding:.75rem;font-size:.82rem;overflow-x:auto}.tc-badge-pass{color:var(--color-easy);font-weight:700}.tc-badge-fail{color:var(--color-hard);font-weight:700}.library-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.25rem;display:grid}.problem-card{cursor:pointer;transition:all var(--t-mid);flex-direction:column;gap:.5rem;padding:1.5rem;display:flex;position:relative;overflow:hidden}.problem-card:hover{box-shadow:var(--shadow-lg);border-color:#ffffff1f;transform:translateY(-3px)}.problem-card-title{color:var(--text-1);font-size:1.05rem;font-weight:700}.problem-card-meta{justify-content:space-between;align-items:center;margin-top:auto;padding-top:.75rem;display:flex}.problem-card-actions{gap:.5rem;display:flex}.lab-stats-bar{flex-wrap:wrap;gap:1rem;margin-bottom:2rem;display:flex}.stat-chip{background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-lg);flex:1;align-items:center;gap:.6rem;min-width:140px;padding:.7rem 1.25rem;display:flex}.stat-icon{font-size:1.4rem;line-height:1}.stat-info strong{color:var(--text-1);font-size:1.25rem;font-weight:800;line-height:1.1;display:block}.stat-info span{color:var(--text-2);font-size:.75rem;font-weight:500}.lab-filters-bar{flex-wrap:wrap;align-items:center;gap:.6rem;margin-bottom:2rem;display:flex}.lab-search-wrap{flex:1;min-width:220px;position:relative}.lab-search-wrap .search-icon{color:var(--text-3);pointer-events:none;font-size:.9rem;position:absolute;top:50%;left:.85rem;transform:translateY(-50%)}.lab-search-wrap .input-text{padding-left:2.4rem}.lab-card{cursor:pointer;transition:all var(--t-mid);flex-direction:column;padding:0;display:flex;position:relative;overflow:hidden}.lab-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.lab-card-accent{background:var(--card-color,var(--grad-brand));flex-shrink:0;width:100%;height:3px}.lab-card-body{flex-direction:column;flex:1;gap:.6rem;padding:1.5rem;display:flex}.lab-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem;display:flex}.lab-card-title{color:var(--text-1);font-size:1.05rem;font-weight:700;line-height:1.3}.lab-card-desc{color:var(--text-2);-webkit-line-clamp:2;-webkit-box-orient:vertical;flex:1;font-size:.84rem;line-height:1.55;display:-webkit-box;overflow:hidden}.lab-card-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;margin-top:.25rem;padding-top:.75rem;display:flex}.lab-card-cta{color:var(--accent-blue);transition:gap var(--t-fast);align-items:center;gap:.3rem;font-size:.8rem;font-weight:700;display:flex}.lab-card:hover .lab-card-cta{gap:.6rem}.toast-container{z-index:1000;pointer-events:none;flex-direction:column;gap:.6rem;display:flex;position:fixed;bottom:2rem;right:2rem}.toast{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);color:var(--text-1);opacity:0;pointer-events:auto;align-items:center;gap:.75rem;min-width:260px;max-width:380px;padding:.875rem 1.25rem;font-size:.875rem;font-weight:500;animation:.4s cubic-bezier(.34,1.56,.64,1) forwards toastIn;display:flex;transform:translate(120%)}.toast.toast-success{border-left:3px solid var(--color-easy)}.toast.toast-error{border-left:3px solid var(--color-hard)}.toast.toast-info{border-left:3px solid var(--accent-blue)}@keyframes toastIn{to{opacity:1;transform:translate(0)}}.animate-fade-in{animation:.4s both fadeIn}.animate-slide-up{animation:.45s cubic-bezier(.34,1.2,.64,1) both slideUp}@keyframes fadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#ffffff1a}::-webkit-scrollbar-thumb:hover{background:#ffffff2e}.divider{border:none;border-top:1px solid var(--border);margin:2rem 0}.empty-state{text-align:center;color:var(--text-2);padding:5rem 2rem}.empty-state-icon{margin-bottom:1rem;font-size:3rem}.empty-state h3{color:var(--text-1);margin-bottom:.5rem;font-size:1.25rem;font-weight:700}.empty-state p{color:var(--text-2);margin-bottom:1.5rem;font-size:.9rem}@media (width<=768px){.main-content{padding:1.5rem 1rem}.navbar{padding:.75rem 1rem}.navbar-logo-text{display:none}.hero-title{font-size:2rem}.step-flow{flex-direction:column}.step-arrow{transform:rotate(90deg)}.lab-stats-bar{gap:.75rem}}
