/* Objective checklists live outside the generated rails block. */
.og-map { --rl-ink:var(--bb-text,var(--theme-component-ink-1)); --rl-line:var(--bb-border,var(--theme-component-primary-61)); --rl-panel:var(--bb-panel-bg,var(--theme-component-surface-32)); margin:24px clamp(16px,4vw,64px) 48px; color:var(--rl-ink); font-size:17px; line-height:1.65; }
.og-map p { margin:0; }
.og-map .og-note { font-size:15px; }
.og-map h2 { font-family:Ultra,serif; font-weight:400; font-synthesis:none; }
.og-domain h3 { font:700 18px/1.5 Geist,sans-serif; margin:22px 0 10px; }
.og-objective { border:1px solid var(--rl-line); border-radius:8px; margin:8px 0; overflow:hidden; }
.og-objective summary { display:grid; grid-template-columns:42px minmax(0,1fr) auto; gap:12px; align-items:start; padding:16px; cursor:pointer; font-size:17px; list-style:none; }
.og-objective summary::after { content:'+'; grid-column:3; font-size:20px; line-height:1; }
.og-objective[open] summary::after { content:'−'; }
.og-objective summary:hover { background:var(--theme-component-primary-62); }
.og-objective summary:focus-visible,.og-objective a:focus-visible { outline:3px solid var(--bb-kelly,var(--theme-component-primary-1)); outline-offset:-3px; }
.og-id,.og-state { font:700 14px/1.65 Geist,sans-serif; }
.og-state { grid-column:2; }
.og-objective>p,.og-objective>ul { margin:0 16px 16px; }
.og-objective ul { padding-left:22px; }
.og-objective li { margin:12px 0; overflow-wrap:anywhere; }
.og-objective a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.og-label { display:block; font-size:14px; }
@media(max-width:600px) { .og-map { margin-inline:12px; padding:16px; } .og-objective summary { padding:12px; gap:8px; grid-template-columns:32px minmax(0,1fr) 16px; } }

.og-shortcut { margin:16px clamp(16px,4vw,64px); font-size:15px; }
.og-shortcut a { display:inline-block; padding:10px 0; color:var(--bb-text,var(--theme-component-ink-1)); text-decoration:underline; text-underline-offset:4px; }
.og-shortcut a:focus-visible { outline:3px solid var(--bb-kelly,var(--theme-component-primary-1)); outline-offset:4px; }

.og-shortcut { margin-top:0; padding-top:100px; }
.og-map { scroll-margin-top:100px; }

/* Styled objective checklist (Brett 2026-10-26): domain banners, two-column objective cards, pill ids and status chips, resource links as tagged tiles. */
.og-domain { margin-top:28px; }
.og-domain h3 { display:flex; align-items:center; gap:12px; margin:0 0 14px; padding:12px 16px; border:1px solid var(--rl-line); border-left:4px solid var(--bb-kelly,var(--theme-component-primary-1)); border-radius:8px; background:var(--rl-panel); font:400 20px/1.3 Ultra,serif; font-synthesis:none; }
.og-domain { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; align-items:start; }
.og-domain > h3 { grid-column:1 / -1; }
.og-objective { margin:0; background:var(--rl-panel); transition:border-color .2s, box-shadow .2s; }
.og-objective:hover, .og-objective[open] { border-color:var(--bb-kelly,var(--theme-component-primary-1)); box-shadow:0 0 0 1px var(--bb-kelly,var(--theme-component-primary-1)) inset; }
.og-objective summary { grid-template-columns:auto minmax(0,1fr) auto; padding:14px 16px; font-size:16px; line-height:1.45; }
.og-id { display:inline-flex; align-items:center; justify-content:center; min-width:44px; padding:2px 8px; border-radius:999px; border:1px solid var(--bb-kelly,var(--theme-component-primary-1)); color:var(--bb-kelly,var(--theme-component-primary-1)); font:700 13px/1.6 var(--font-code,monospace); }
.og-state { justify-self:start; padding:1px 10px; border-radius:999px; background:var(--theme-component-primary-62); color:var(--bb-kelly,var(--theme-component-primary-1)); font-size:12px; letter-spacing:.04em; text-transform:uppercase; }
.og-objective summary::after { grid-row:1; color:var(--bb-kelly,var(--theme-component-primary-1)); }
.og-objective > .og-note { margin:0 16px 10px; padding-top:10px; border-top:1px solid var(--rl-line); font-size:14px; opacity:.85; }
.og-objective ul { list-style:none; padding:0; margin:0 16px 16px; display:grid; gap:8px; }
.og-objective li { margin:0; padding:10px 12px; border:1px solid var(--rl-line); border-radius:6px; display:flex; justify-content:space-between; align-items:center; gap:10px; }
.og-objective li a { font-weight:600; }
.og-label { flex:none; padding:1px 8px; border-radius:4px; border:1px solid var(--rl-line); font-size:12px; white-space:nowrap; }
@media(max-width:900px) { .og-domain { grid-template-columns:1fr; } }
@media(max-width:600px) { .og-objective li { flex-direction:column; align-items:flex-start; } }
