.ring-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:16px 0}.ring-slot{min-width:0;display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.ring-slot.occupied{border-left:4px solid var(--accent)}.ring-slot strong,.ring-slot small{font-size:.875rem}.ring-slot span{font: .875rem/1.5 ui-monospace,Consolas,monospace;overflow-wrap:anywhere}.ring-slot small{color:var(--muted)}.ring-pointers,.ring-work{font-size:.9375rem;overflow-wrap:anywhere}.buffer-panel{padding:24px;border:1px solid var(--line);border-radius:14px;margin:24px 0;background:var(--surface)}.buffer-panel h2{font-size:1.6rem;margin-bottom:16px}.buffer-panel h3{font-size:1.15rem;margin:20px 0 12px}.buffer-panel p{line-height:1.7;margin:12px 0}.topic-nav{display:flex;flex-wrap:wrap;gap:12px 24px;margin:24px 0;padding:16px 0;border-block:1px solid var(--line)}.topic-nav a{text-decoration:underline;text-underline-offset:4px}.topic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-page h1{font-size:clamp(2.2rem,5vw,3.5rem);line-height:1.1}.topic-page table{width:100%;border-collapse:collapse;min-width:650px}.topic-page th,.topic-page td{padding:14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top;font-size:1rem;line-height:1.6}.topic-page .table-scroll{overflow:auto;margin:20px 0}.buffer-controls{display:flex;align-items:end;flex-wrap:wrap;gap:12px;margin:20px 0}.buffer-controls label{display:grid;gap:8px;font-size:1rem}.buffer-controls select,.buffer-controls button{min-height:44px;font:inherit;padding:10px 16px;background:var(--bg);color:var(--ink);border:1px solid var(--accent);border-radius:8px}.buffer-controls button{cursor:pointer;background:var(--soft)}.buffer-controls button:disabled{border-color:var(--line);border-style:dashed;opacity:.6;cursor:not-allowed}.buffer-controls button:hover:not(:disabled){background:var(--accent);color:var(--button-ink)}.buffer-controls :focus-visible{outline:3px solid var(--accent);outline-offset:3px}.buffer-status{padding:16px;border-left:3px solid var(--accent);background:var(--bg);line-height:1.7}.topic-page details{margin:18px 0}.topic-page summary{cursor:pointer;color:var(--accent);font-weight:600;padding:12px 0}.topic-page li{margin:12px 0;line-height:1.7}.ring-caption{font-size:.875rem;color:var(--muted);line-height:1.6}.buffer-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}.buffer-summary>div{padding:16px;background:var(--bg);border:1px solid var(--line);border-radius:8px}.buffer-summary strong{display:block;margin-bottom:8px}@media(max-width:700px){.ring-slots{grid-template-columns:repeat(2,minmax(0,1fr))}.topic-grid,.buffer-summary{grid-template-columns:1fr}.buffer-panel{padding:16px}.buffer-controls>label{width:100%}.buffer-controls select{width:100%;min-width:0}}
/* R41 (M6): Head and Tail frames glide between slots; the slot before Head is reserved. */
.ring-slot{position:relative}.ring-slot.reserved{border-style:dashed}.ring-marker{position:absolute;inset:-3px;border:2px solid var(--second);border-radius:10px;pointer-events:none}.ring-tail{inset:-6px;border-color:var(--accent);border-style:dashed}.ring-marker::after{content:"HEAD";position:absolute;top:-.6rem;left:8px;padding:1px 5px;border-radius:4px;background:var(--second);color:var(--bg);font:700 .625rem/1.2 ui-monospace,Consolas,monospace;letter-spacing:.08em}.ring-tail::after{content:"TAIL";top:auto;left:auto;bottom:-.6rem;right:8px;background:var(--accent)}
.apic-figure{margin:16px 0;padding:16px;border:1px solid var(--line);border-radius:12px;background:var(--bg)}
.apic-figure svg{display:block;width:100%;max-width:420px;margin:auto;font:16px/1.4 system-ui,sans-serif}
.apic-figure rect{fill:var(--surface);stroke:var(--accent);stroke-width:1.5}
.apic-figure text{fill:var(--ink)}
.apic-figure .sub,.apic-figure .lbl{font-size:13px;fill:var(--muted)}
.apic-figure .edge,.apic-figure .key{stroke:var(--accent);stroke-width:2;fill:none}
.apic-figure .soft{stroke-dasharray:6 4}
.apic-figure marker path{fill:var(--accent)}
.apic-figure figcaption{font-size:.9375rem;line-height:1.6;margin-top:12px}
.route-form fieldset{display:flex;flex-wrap:wrap;gap:6px 18px;border:1px solid var(--line);border-radius:8px;padding:10px 14px}
.route-form legend{font-weight:600;padding:0 6px}
.apic-figure.is-live g[data-node]{opacity:.5}
.apic-figure.is-live g.is-on{opacity:1}
.apic-figure g.is-on rect{fill:color-mix(in srgb,var(--accent) 18%,var(--surface))}
.apic-figure g.is-stop rect{stroke-width:3.5}
#three-logs th{font:inherit;font-weight:600}#three-logs th[scope=row]{white-space:nowrap}
#three-logs table{min-width:640px}
.field-map{display:grid;gap:10px;margin:16px 0}
.field-row{display:grid;gap:1px}
.field-row::before{content:attr(data-label);grid-column:1/-1;font:.75rem/1.4 ui-monospace,Consolas,monospace;color:var(--muted)}
.field-row>*{min-height:40px;min-width:0;padding:0;border:1px solid var(--accent);border-radius:3px;background:var(--surface);color:var(--ink);font:.65rem/1 ui-monospace,Consolas,monospace;overflow:hidden;white-space:nowrap;text-overflow:clip;cursor:pointer}
.field-row>span{border-color:var(--line);background:repeating-linear-gradient(135deg,var(--line) 0 2px,transparent 2px 6px);cursor:default}
.field-row>button.is-sel{background:var(--accent);color:var(--button-ink)}
.field-row>button:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.field-detail{min-height:3.4em}
.topic-page tr.is-sel td{background:color-mix(in srgb,var(--accent) 16%,transparent)}
