:root{--fg: #0f172a;--bg: #ffffff;--muted: #475569;--border: #cbd5e1;--primary: #2563eb;--primary-fg: #ffffff;--secondary-bg: #f1f5f9;--error-bg: #fee2e2;--error-fg: #991b1b;--success-bg: #dcfce7;--success-fg: #065f46;--partial-bg: #fef3c7;--partial-fg: #92400e;--cancelled-bg: #e2e8f0;--cancelled-fg: #475569;--focus: #2563eb;--radius: 10px}@media (prefers-color-scheme: dark){:root{--fg: #f1f5f9;--bg: #0f172a;--muted: #94a3b8;--border: #334155;--secondary-bg: #1e293b;--error-bg: #7f1d1d;--error-fg: #fecaca;--success-bg: #064e3b;--success-fg: #d1fae5;--partial-bg: #78350f;--partial-fg: #fde68a;--cancelled-bg: #1e293b;--cancelled-fg: #cbd5e1}}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--fg);background:var(--bg);line-height:1.5}a{color:var(--primary)}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid var(--focus);outline-offset:2px}.skip-link{position:absolute;left:-1000px;top:0;background:var(--primary);color:var(--primary-fg);padding:.5rem .75rem;z-index:1000}.skip-link:focus{left:.5rem;top:.5rem}.page-header{border-bottom:1px solid var(--border);padding:1.5rem 1rem}.page-header-inner{max-width:720px;margin:0 auto}.page-header h1{margin:0 0 .25rem;font-size:1.5rem}.page-sub{margin:0;color:var(--muted)}main{max-width:720px;margin:1.5rem auto;padding:0 1rem}.wizard-stepper{list-style:none;padding:0;margin:0 0 1.5rem;display:flex;flex-wrap:wrap;gap:.5rem;counter-reset:stepper}.wizard-stepper li{flex:1 1 0;min-width:9rem;display:flex;align-items:center;gap:.5rem;padding:.5rem .75rem;border:1px solid var(--border);border-radius:var(--radius);background:var(--secondary-bg);color:var(--muted);font-size:.875rem}.wizard-stepper li[data-active]{background:var(--primary);color:var(--primary-fg);border-color:var(--primary);font-weight:600}.wizard-stepper li[data-done]{background:var(--success-bg);color:var(--success-fg);border-color:var(--success-bg)}.wizard-stepper .num{display:inline-block;min-width:1.4rem;text-align:center;font-weight:700}.card{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem;margin-bottom:1rem}.card.center{text-align:center}.card h2{margin-top:0;font-size:1.25rem}.btn{display:inline-block;padding:.55rem 1rem;font-size:1rem;border-radius:var(--radius);border:1px solid var(--primary);background:var(--primary);color:var(--primary-fg);cursor:pointer}.btn:hover:not(:disabled){filter:brightness(.95)}.btn:disabled{opacity:.6;cursor:not-allowed}.btn+.btn{margin-left:.5rem}.btn-secondary{background:var(--secondary-bg);color:var(--fg);border-color:var(--border)}.btn-link{background:transparent;color:var(--primary);border:none;padding:0;margin-left:.5rem;text-decoration:underline;cursor:pointer}.btn-row{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}.small{font-size:.875rem}.muted{color:var(--muted)}.hidden{display:none!important}.file-label{display:inline-block;padding:.5rem .9rem;background:var(--secondary-bg);border:1px dashed var(--border);border-radius:var(--radius);margin-right:.5rem;cursor:pointer}input[type=file]{font:inherit}.progress{margin:.75rem 0 .25rem;height:.75rem;background:var(--secondary-bg);border-radius:999px;overflow:hidden;border:1px solid var(--border)}.progress-bar{height:100%;background:var(--primary);width:0%;transition:width .2s ease}.spinner{display:inline-block;width:.9em;height:.9em;border-radius:50%;border:2px solid var(--border);border-top-color:var(--primary);animation:spin .7s linear infinite;vertical-align:middle;margin-right:.4em}@keyframes spin{to{transform:rotate(360deg)}}.banner{padding:.75rem 1rem;border-radius:var(--radius);margin:.5rem 0}.banner.error{background:var(--error-bg);color:var(--error-fg)}.banner.success{background:var(--success-bg);color:var(--success-fg)}.banner.partial{background:var(--partial-bg);color:var(--partial-fg)}.banner.failed{background:var(--error-bg);color:var(--error-fg)}.banner.cancelled{background:var(--cancelled-bg);color:var(--cancelled-fg)}.notebook-list{margin:1rem 0}.notebook{border:1px solid var(--border);border-radius:var(--radius);padding:.5rem .75rem;margin-bottom:.5rem}.notebook summary{font-weight:600;cursor:pointer;margin:.25rem 0}.section-row{display:flex;align-items:center;gap:.5rem;padding:.35rem .5rem;border-radius:6px;cursor:pointer}.section-row:hover{background:var(--secondary-bg)}.section-row input[type=radio]{margin:0}.status-line{font-weight:600;margin:.5rem 0}.page-footer{border-top:1px solid var(--border);text-align:center;padding:1rem;color:var(--muted);margin-top:2rem}
