:root{--bg:#0d1117;--bg-card:#161b22;--bg-hover:#1c2128;--border:#30363d;--text:#e6edf3;--text-muted:#8b949e;--accent:#3b82f6;--accent-hover:#2563eb;--success:#22c55e;--error:#ef4444;--warning:#f59e0b;--font:"IBM Plex Sans",-apple-system,sans-serif;--font-mono:"IBM Plex Mono","Fira Code",monospace}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;font-family:var(--font);background:var(--bg);color:var(--text)}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.page-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 2rem;border-bottom:1px solid var(--border)}.page-header h1{font-size:1.25rem;font-weight:600}.notebook-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));grid-gap:1rem;gap:1rem;padding:2rem}.notebook-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1.25rem;cursor:pointer;transition:border-color .15s,background .15s}.notebook-card:hover{border-color:var(--accent);background:var(--bg-hover)}.notebook-card h3{font-size:1rem;margin-bottom:.5rem}.notebook-card .meta{color:var(--text-muted);font-size:.8rem}.split-screen{display:flex;height:calc(100vh - 48px)}.split-panel{flex:1 1;overflow:auto;border-right:1px solid var(--border)}.split-panel:last-child{border-right:none}.split-panel-header{font-weight:600;color:var(--text-muted);background:var(--bg-card);display:flex;align-items:center;gap:.5rem}.cell-output,.split-panel-header{padding:.75rem 1rem;border-bottom:1px solid var(--border);font-size:.85rem}.cell-output{font-family:var(--font-mono);white-space:pre-wrap}.cell-output.error{color:var(--error);background:rgba(239,68,68,.05)}.cell-output img{max-width:100%}.btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;border-radius:6px;font-size:.85rem;font-weight:500;border:1px solid var(--border);background:var(--bg-card);color:var(--text);cursor:pointer;transition:background .15s}.btn:hover{background:var(--bg-hover)}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-hover)}.topbar{height:48px;display:flex;align-items:center;justify-content:space-between;padding:0 1rem;border-bottom:1px solid var(--border);background:var(--bg-card)}.topbar-brand{font-weight:600;font-size:.9rem}.topbar-brand,.topbar-nav{display:flex;align-items:center;gap:.5rem}