*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0a0a0f;--bg-surface: #12121a;--bg-surface-hover: #1a1a25;--border: #2a2a3a;--text: #e0e0e8;--text-dim: #8888a0;--accent: #c084fc;--accent-dim: #7c3aed;--cyan: #22d3ee;--green: #4ade80;--pink: #f472b6;--orange: #fb923c;--font-mono: "JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, sans-serif}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);line-height:1.6;min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1200px;margin:0 auto;padding:2rem}.header{display:flex;align-items:center;gap:1rem;margin-bottom:2rem;padding-bottom:1rem;border-bottom:1px solid var(--border)}.header h1{font-family:var(--font-mono);font-size:1.5rem;font-weight:700}.tab-bar{display:flex;gap:.25rem;margin-bottom:1rem}.tab-btn{padding:.4rem 1rem;border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--text-dim);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;transition:border-color .15s,color .15s,background .15s}.tab-btn:hover{border-color:var(--accent);color:var(--text)}.tab-btn--active{border-color:var(--accent);background:#c084fc1a;color:var(--accent)}.header .tag{font-size:.75rem;padding:.2rem .6rem;border-radius:4px;background:var(--accent-dim);color:#fff;font-family:var(--font-mono)}.share-btn{margin-left:auto;padding:.3rem .8rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-dim);font-family:var(--font-mono);font-size:.8rem;cursor:pointer;transition:border-color .15s,color .15s}.share-btn:hover{border-color:var(--accent);color:var(--text)}.share-btn--copied{border-color:var(--green);color:var(--green)}.header nav{display:flex;gap:1.5rem;font-size:.9rem}.editor-panel{display:grid;grid-template-columns:1fr 1fr;gap:1rem;height:calc(100vh - 10rem);min-height:500px}.panel{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;display:flex;flex-direction:column;overflow:hidden}.panel-header{display:flex;align-items:center;gap:.5rem;padding:.75rem 1rem;border-bottom:1px solid var(--border);font-family:var(--font-mono);font-size:.8rem;color:var(--text-dim)}.panel-header .dot{width:8px;height:8px;border-radius:50%;background:var(--green)}.panel-body{flex:1;overflow:auto;position:relative}.code-input{width:100%;height:100%}.code-input .cm-editor{height:100%}.diagram-area{width:100%;height:100%;overflow:hidden;position:relative;cursor:grab}.diagram-area svg{display:block}.empty-state{color:var(--text-dim);font-family:var(--font-mono);font-size:.85rem;text-align:center;padding:2rem}.explanation{margin-top:2rem;padding-top:2rem;border-top:1px solid var(--border)}.explanation h2{font-family:var(--font-mono);font-size:1.1rem;margin-bottom:1rem;color:var(--text)}.explanation h3{font-family:var(--font-mono);font-size:.95rem;margin:1.5rem 0 .5rem;color:var(--text)}.explanation p,.explanation li{color:var(--text-dim);font-size:.9rem;line-height:1.7}.explanation ul,.explanation ol{padding-left:1.5rem;margin-bottom:.75rem}.explanation li{margin-bottom:.25rem}.explanation code{font-family:var(--font-mono);font-size:.82rem;background:var(--bg-surface);border:1px solid var(--border);border-radius:4px;padding:.15rem .4rem;color:var(--text)}.explanation .cols{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1rem}.explanation .col{background:var(--bg-surface);border:1px solid var(--border);border-radius:8px;padding:1.25rem}.explanation .col h3{margin-top:0}.explanation .step-list{counter-reset:step;list-style:none;padding-left:0}.explanation .step-list li{counter-increment:step;padding-left:2rem;position:relative;margin-bottom:.5rem}.explanation .step-list li:before{content:counter(step);position:absolute;left:0;top:.1em;width:1.4em;height:1.4em;border-radius:50%;background:var(--accent-dim);color:#fff;font-size:.7rem;font-family:var(--font-mono);display:flex;align-items:center;justify-content:center}.explanation .edge-legend{display:flex;gap:1.5rem;flex-wrap:wrap;margin:.75rem 0}.explanation .edge-legend-item{display:flex;align-items:center;gap:.4rem;font-size:.85rem;color:var(--text-dim)}.explanation .edge-legend-item .swatch{width:24px;height:3px;border-radius:2px}.explanation .edge-legend-item .swatch-dashed{background:repeating-linear-gradient(90deg,var(--green) 0,var(--green) 6px,transparent 6px,transparent 9px)}.diagram-stats{color:var(--text-dim);font-size:.75rem;opacity:.6}.diagram-stats:before{content:"·";margin:0 .4rem}.diagram-stats:empty{display:none}.panel-header{position:relative}.export-btn{position:absolute;right:2.5rem;top:50%;transform:translateY(-50%);padding:.15rem .5rem;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-dim);font-family:var(--font-mono);font-size:.7rem;cursor:pointer;transition:border-color .15s,color .15s}.export-btn:hover{border-color:var(--accent);color:var(--text)}.fullscreen-btn{position:absolute;right:.5rem;top:50%;transform:translateY(-50%);width:28px;height:28px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--text-dim);font-size:14px;cursor:pointer;transition:border-color .15s,color .15s;line-height:1}.fullscreen-btn:hover{border-color:var(--accent);color:var(--text)}.fullscreen-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:var(--bg);display:flex;opacity:0;transition:opacity .15s ease}.fullscreen-overlay--open{opacity:1}.fullscreen-diagram{flex:1;overflow:hidden;cursor:grab}.fullscreen-close{position:absolute;top:1rem;right:1rem;z-index:1001;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-dim);font-size:20px;cursor:pointer;transition:border-color .15s,color .15s}.fullscreen-close:hover{border-color:var(--accent);color:var(--text)}.fullscreen-controls{position:absolute;bottom:1rem;right:1rem;z-index:1001;display:flex;gap:.25rem}.fullscreen-control-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border);border-radius:6px;background:var(--bg-surface);color:var(--text-dim);font-family:var(--font-mono);font-size:16px;cursor:pointer;transition:border-color .15s,color .15s}.fullscreen-control-btn:hover{border-color:var(--accent);color:var(--text)}@media(max-width:768px){.editor-panel{grid-template-columns:1fr;height:auto}.panel{min-height:300px}.explanation .cols{grid-template-columns:1fr}}
