:root{--accent:#0f5c73;--accent-strong:#0b4657;--accent-tint:#e6f0f3;--text:#1a2229;--muted:#5b6670;--page:#f6f7f8;--surface:#fff;--border:#dcdfe3;--border-strong:#c3c8cf;--success:#1c6b40;--success-tint:#e8f5ee;--success-border:#a8d5bd;--danger:#b42318;--danger-tint:#fdf0ef;--font:system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--text-xs:.78rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--radius-sm:4px;--radius:8px;--radius-pill:999px;--shadow-sm:0 1px 2px #1018200f;--measure:60rem;--header-height:3.5rem}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{min-height:100vh;font-family:var(--font);font-size:var(--text-base);color:var(--text);background:var(--page);-webkit-font-smoothing:antialiased;margin:0;line-height:1.6}h1,h2,h3{letter-spacing:-.01em;text-wrap:balance;margin:0;line-height:1.25}h1{font-size:var(--text-2xl)}h2{font-size:var(--text-xl)}h3{font-size:var(--text-sm);color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}p{margin:0}a:not(.btn){color:var(--accent);text-underline-offset:.15em}a:not(.btn):hover{color:var(--accent-strong)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-sm)}.muted{color:var(--muted)}.error{color:var(--danger);margin:0}.visually-hidden{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.shell-header{gap:var(--space-3);min-height:var(--header-height);padding:var(--space-2) var(--space-5);background:var(--surface);border-bottom:1px solid var(--border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.brand{font-size:var(--text-lg);letter-spacing:-.02em;color:var(--text);font-weight:650}.who{align-items:center;gap:var(--space-3);font-size:var(--text-sm);display:flex}.who-email{color:var(--muted)}.badge{padding:.1rem var(--space-2);border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:var(--page);font-size:var(--text-xs);white-space:nowrap;font-weight:500}.shell-main{max-width:var(--measure);padding:var(--space-6) var(--space-5) var(--space-7);margin:0 auto}.stack{gap:var(--space-5);flex-direction:column;display:flex}.panel{padding:var(--space-5);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.panel-head{gap:var(--space-2) var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.panel-note{margin-top:var(--space-2);color:var(--muted)}.panel-accent{background:var(--accent-tint);border-color:color-mix(in srgb, var(--accent) 25%, transparent);box-shadow:none}.panel-quiet{background:var(--surface);box-shadow:none;border-style:dashed}.crumbs{margin-bottom:var(--space-4);font-size:var(--text-sm)}.crumbs ol{gap:var(--space-1) var(--space-2);flex-wrap:wrap;align-items:center;margin:0;padding:0;list-style:none;display:flex}.crumbs li{gap:var(--space-2);color:var(--muted);align-items:center;display:flex}.crumbs li+li:before{content:"›";color:var(--border-strong)}.crumbs [aria-current=page]{color:var(--text);font-weight:500}.browse{margin:0;padding:0;list-style:none}.browse li+li{border-top:1px solid var(--border)}.browse-row{gap:var(--space-2) var(--space-4);padding:var(--space-3) 0;flex-wrap:wrap;justify-content:space-between;align-items:baseline;display:flex}.browse-row:first-child{padding-top:var(--space-2)}.browse-title{font-size:var(--text-base);color:var(--accent);font-weight:600;text-decoration:none}.browse-title:hover{text-decoration:underline}.browse-meta{flex:18rem;min-width:0}.browse-meta p{margin-top:var(--space-1);font-size:var(--text-sm);color:var(--muted)}.browse-aside{text-align:right;flex:none}.tally-inline{font-size:var(--text-sm);color:var(--muted);white-space:nowrap}.tally-row{gap:var(--space-3);margin:var(--space-4) 0 0;flex-wrap:wrap;padding:0;list-style:none;display:flex}.tally{gap:var(--space-1);padding:var(--space-4);background:var(--accent-tint);border:1px solid color-mix(in srgb, var(--accent) 25%, transparent);border-radius:var(--radius);flex-direction:column;flex:10rem;display:flex}.tally-figure{font-size:var(--text-2xl);font-variant-numeric:tabular-nums;letter-spacing:-.02em;color:var(--accent-strong);font-weight:650;line-height:1.1}.tally-label{font-size:var(--text-sm);color:var(--text);font-weight:500}.btn{gap:var(--space-2);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);font:inherit;cursor:pointer;border:1px solid #0000;justify-content:center;align-items:center;font-weight:550;line-height:1.4;display:inline-flex}.btn-primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn-primary:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.btn-secondary{background:var(--surface);border-color:var(--border-strong);color:var(--text)}.btn-secondary:hover:not(:disabled){border-color:var(--muted);background:var(--page);color:var(--text)}.btn-quiet{padding:var(--space-1) var(--space-2);color:var(--muted);font-size:var(--text-sm);background:0 0;border-color:#0000;font-weight:500;text-decoration:underline}.btn-quiet:hover:not(:disabled){color:var(--text)}.btn:disabled{opacity:.55;cursor:default}.lesson-body{margin:var(--space-4) 0;font-size:var(--text-lg);white-space:pre-wrap;line-height:1.7}.placeholder-note{padding:var(--space-3) var(--space-4);border:1px dashed var(--border-strong);border-radius:var(--radius-sm);font-size:var(--text-sm);color:var(--muted)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.action-bar{gap:var(--space-3);margin-top:var(--space-5);padding-top:var(--space-5);border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;display:flex}.achievement{gap:var(--space-2) var(--space-4);margin-top:var(--space-5);padding:var(--space-3) var(--space-4);background:var(--success-tint);border:1px solid var(--success-border);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.achievement-label{gap:var(--space-2);color:var(--success);align-items:center;font-weight:600;display:flex}.tick{background:var(--success);border-radius:var(--radius-pill);color:#fff;width:1.25rem;height:1.25rem;font-size:var(--text-xs);justify-content:center;align-items:center;line-height:1;display:inline-flex}.done-pill{padding:.05rem var(--space-2);background:var(--success-tint);border:1px solid var(--success-border);border-radius:var(--radius-pill);font-size:var(--text-xs);color:var(--success);white-space:nowrap;font-weight:500;display:inline-block}.tree{margin:0;padding:0;list-style:none}.tree-row{gap:var(--space-2);padding:var(--space-2) 0;border-top:1px solid var(--border);flex-wrap:wrap;align-items:center;display:flex}.tree-row.depth-0{border-top-width:2px}.depth-1{padding-left:1.5rem}.depth-2{padding-left:3rem}.depth-3{padding-left:4.5rem}.tree-twisty{width:1.5rem;color:var(--muted);font-size:var(--text-sm);cursor:pointer;background:0 0;border:0;padding:0}.tree-twisty-empty{cursor:default;display:inline-block}.tree-position{border-radius:var(--radius-sm);background:var(--page);min-width:1.5rem;color:var(--muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:center;padding:0 .3rem}.tree-title{flex:12rem;min-width:0;font-weight:550}.state-pill{padding:.05rem var(--space-2);border-radius:var(--radius-pill);font-size:var(--text-xs);white-space:nowrap;font-weight:600}.state-live{background:var(--success-tint);border:1px solid var(--success-border);color:var(--success)}.state-draft{color:#7a4a05;background:#fdf3e3;border:1px solid #dcb878}.tree-actions{gap:var(--space-1);flex-wrap:wrap;align-items:center;display:flex}.tree-children{border-left:2px solid var(--accent-tint)}.tree-empty{padding-top:var(--space-2);padding-bottom:var(--space-2);color:var(--muted);font-size:var(--text-sm)}.tree-panel{padding-top:var(--space-2);padding-bottom:var(--space-3)}.btn-icon{min-width:2rem;padding:var(--space-1) var(--space-2);background:var(--surface);border-color:var(--border-strong);color:var(--text);font-size:var(--text-sm)}.btn-icon:hover:not(:disabled){border-color:var(--muted);background:var(--page);color:var(--text)}.btn-small{padding:var(--space-1) var(--space-3);font-size:var(--text-sm)}.btn-danger{color:var(--danger)}.btn-danger:hover:not(:disabled){color:var(--danger);background:var(--danger-tint)}.btn-danger-solid{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger-solid:hover:not(:disabled){color:#fff;background:#8f1c13;border-color:#8f1c13}.panel-danger{background:var(--danger-tint);box-shadow:none;border-color:#e5a9a3}.panel-danger h3{color:var(--danger);font-size:var(--text-base);text-transform:none;letter-spacing:normal}.panel-danger p{margin:var(--space-2) 0 var(--space-4)}.node-form{gap:var(--space-1);max-width:34rem;padding:var(--space-4);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius);flex-direction:column;display:flex}.node-form h3{margin-bottom:var(--space-2);color:var(--text);font-size:var(--text-base);text-transform:none;letter-spacing:normal}.node-form label{margin-top:var(--space-2);font-size:var(--text-sm);font-weight:500}.node-form textarea{padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit;resize:vertical;line-height:1.5}.node-form textarea:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}.checkline{gap:var(--space-2);align-items:center;display:flex}.checkline input{width:1rem;height:1rem;accent-color:var(--accent)}.node-form-actions{gap:var(--space-2);margin-top:var(--space-4);display:flex}.centred{padding:var(--space-7) var(--space-5);justify-content:center;display:flex}.form{gap:var(--space-1);flex-direction:column;width:100%;max-width:23rem;display:flex}.form h1{margin-bottom:var(--space-1)}.form label{margin-top:var(--space-3);font-size:var(--text-sm);font-weight:500}.form .btn{margin-top:var(--space-5)}input{padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font:inherit}input:focus-visible{outline:2px solid var(--accent);outline-offset:1px;border-color:var(--accent)}
