:root{--bg:#f5f6f8;--panel:#fff;--ink:#24292f;--muted:#6b7280;--accent:#2563eb;--accent-dark:#1d4ed8;--border:#d7dbe0;--error-bg:#fdecec;--error-ink:#b3261e;--stream-bg:#f8f9fa;--mono:"Courier New", Consolas, monospace}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);margin:0;font-family:Trebuchet MS,Segoe UI,sans-serif}#root{min-height:100vh}.app{flex-direction:column;min-height:100vh;display:flex}.toolbar{z-index:10;background:var(--panel);border-bottom:1px solid var(--border);align-items:center;gap:1rem;padding:.5rem 1rem;display:flex;position:sticky;top:0}.toolbar-brand{align-items:center;gap:.6rem;min-width:0;display:flex}.app-logo{width:auto;height:1.6rem;display:block}.app-title{white-space:nowrap;font-size:1.05rem;font-weight:700}.file-name{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:.85rem;overflow:hidden}.toolbar-actions{flex-wrap:wrap;gap:.4rem;display:flex}.kernel-status{white-space:nowrap;border-radius:999px;margin-left:auto;padding:.2rem .6rem;font-size:.8rem}.status-loading{color:#92400e;background:#fef3c7}.status-ready{color:#166534;background:#dcfce7}.status-running{color:#1e40af;background:#dbeafe}.status-error{background:var(--error-bg);color:var(--error-ink)}button{border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;padding:.35rem .8rem;font-family:inherit;font-size:.85rem}button:hover:not(:disabled){background:var(--accent-dark)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary{background:var(--panel);color:var(--accent)}button.secondary:hover:not(:disabled){background:#eff6ff}button.danger{background:var(--panel);color:var(--error-ink);border-color:var(--border)}button.danger:hover:not(:disabled){background:var(--error-bg)}.notebook{flex:1;width:100%;max-width:900px;margin:0 auto;padding:1rem}.banner{border-radius:6px;margin:0 0 1rem;padding:.6rem 1rem}.banner-error{background:var(--error-bg);color:var(--error-ink)}.cell-row{gap:.5rem;margin-bottom:.75rem;display:flex}.cell-content{flex:1;min-width:0}.cell-tools{opacity:.25;flex-direction:column;gap:.2rem;transition:opacity .15s;display:flex}.cell-row:hover .cell-tools{opacity:1}.cell-tools button{background:var(--panel);color:var(--muted);border:1px solid var(--border);padding:.1rem .45rem;font-size:.8rem}.cell-tools button:hover:not(:disabled){color:var(--accent);background:#eff6ff}.markdown-cell{background:0 0;padding:.25rem .5rem;line-height:1.55}.markdown-cell h1,.markdown-cell h2,.markdown-cell h3{margin:.6em 0 .3em}.markdown-cell code{font-family:var(--mono);background:var(--stream-bg);border:1px solid var(--border);border-radius:4px;padding:.05em .3em;font-size:.9em}.markdown-cell pre{background:var(--stream-bg);border:1px solid var(--border);border-radius:6px;padding:.6rem;overflow-x:auto}.markdown-cell pre code{background:0 0;border:none;padding:0}.markdown-cell table{border-collapse:collapse}.markdown-cell th,.markdown-cell td{border:1px solid var(--border);padding:.3rem .6rem}.code-cell{background:var(--panel);border:1px solid var(--border);border-radius:8px;gap:.5rem;padding:.5rem;display:flex}.code-cell-gutter{flex-direction:column;flex-shrink:0;align-items:center;gap:.3rem;width:3.6rem;display:flex}.run-button{border-radius:50%;width:2rem;height:2rem;padding:0;font-size:.8rem;line-height:1}.exec-count{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.7rem}.code-cell-body{flex:1;min-width:0}.code-cell-body .cm-editor{border:1px solid var(--border);border-radius:6px;font-size:.9rem}.code-cell-body .cm-editor.cm-focused{outline:2px solid var(--accent);outline-offset:-1px}.code-cell-body .cm-content,.code-cell-body .cm-gutter{font-family:var(--mono)}.raw-cell{font-family:var(--mono);background:var(--stream-bg);border:1px dashed var(--border);border-radius:6px;padding:.6rem;overflow-x:auto}.output-area{border-top:1px solid var(--border);margin-top:.5rem;padding-top:.5rem}.output-area pre{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;background:var(--stream-bg);border-radius:6px;max-height:24rem;margin:0 0 .4rem;padding:.4rem .6rem;font-size:.85rem;line-height:1.4;overflow:auto}.output-stderr{color:#9a3412;background:#fff7ed}.output-error{background:var(--error-bg);color:var(--error-ink)}.output-result{background:#eef2ff}.output-image{border:1px solid var(--border);background:#fff;border-radius:6px;max-width:100%;height:auto;margin:.3rem 0;display:block}.diet-logo{width:auto;height:100px;margin:0 auto .5rem;display:block}.upload-zone{text-align:center;background:var(--panel);border:2px dashed var(--border);border-radius:12px;max-width:480px;margin:4rem auto;padding:3rem 2rem;transition:border-color .15s,background .15s}.upload-zone.drag-over{border-color:var(--accent);background:#eff6ff}.upload-title{margin:0 0 .4rem;font-size:1.2rem;font-weight:700}.upload-hint{color:var(--muted);margin:0 0 1.4rem}.upload-actions{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.visually-hidden{clip:rect(0 0 0 0);width:1px;height:1px;position:absolute;overflow:hidden}.footer{text-align:center;color:var(--muted);border-top:1px solid var(--border);background:var(--panel);padding:.6rem;font-size:.75rem}
