/* App-only rules on top of the generated academy.css (which mirrors the approved mockups). */
.set-grid form[enctype]{flex-wrap:wrap}
.set-grid input[type=file]{max-width:100%;font-size:14px}
.set-grid .row{flex-wrap:wrap}
.side form .btn-ghost{color:#a9a9a6;border-color:#3a3a37}
.prose table{font-size:14px}
.quiz fieldset{border:1px solid var(--line);border-radius:4px;padding:18px 20px;background:#fff}
.quiz .opt input{accent-color:#0c0c0b;width:18px;height:18px;flex:none}
.box p{margin:4px 0}
/* manual blocks: definitions, rule cards, flows, columns (2026-11-05) */
.prose dl.defs{margin:20px 0;border:1px solid var(--line);border-radius:4px;background:#fff}
.prose dl.defs>div{padding:14px 18px;border-top:1px solid var(--line)} .prose dl.defs>div:first-child{border-top:0}
.prose dl.defs dt{font-weight:700;margin:0 0 4px} .prose dl.defs dd{margin:0;color:var(--soft-ink)}
.prose .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin:20px 0}
.prose .cards .card{border:1px solid var(--line);border-radius:4px;padding:16px 18px;background:#fff}
.prose .cards .k{display:block;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:6px}
.prose .cards .card p{margin:0}
.prose .cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px;margin:20px 0}
/* public waitlist form (2026-11-05) */
form.waitlist{display:grid;gap:10px;max-width:440px;width:100%}
form.waitlist input[type=email]{height:48px}
form.waitlist label{display:flex;gap:8px;align-items:flex-start;color:var(--soft-ink)} form.waitlist label input{margin-top:3px;flex:none}
form.waitlist .hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
/* phones: locked module rows keep the lock, drop the tier label (no room) (2026-11-05) */
@media (max-width:900px){.modrow .tag{display:none}}
