:root{color:#1a1a1a;background:#f6f4f0;font-family:system-ui,sans-serif;line-height:1.5}body{margin:0}.app{max-width:960px;margin:0 auto;padding:1rem 1.25rem 2rem}.banner{background:#fff3cd;border:1px solid #e6c200;border-radius:6px;margin-bottom:1rem;padding:.5rem .75rem;font-size:.9rem}.layout{gap:1rem;display:grid}@media (width>=800px){.layout{grid-template-columns:1fr 1fr}}.panel{background:#fff;border-radius:8px;padding:1rem;box-shadow:0 1px 3px #00000014}.messages{flex-direction:column;gap:.75rem;max-height:420px;display:flex;overflow-y:auto}.msg{border-radius:6px;padding:.5rem .75rem;font-size:.95rem}.msg.user{background:#e8f0fe;align-self:flex-end}.msg.assistant{background:#f0f0f0}.msg.pending{color:#666;font-style:italic}.msg .meta{color:#666;margin-top:.25rem;font-size:.75rem}.chat-form{gap:.5rem;margin-top:.75rem;display:flex}.chat-form input{flex:1;padding:.5rem}.chat-form button{padding:.5rem 1rem}.recovery{text-align:center;padding:3rem 1rem}.recovery h1{font-size:1.25rem}.fixture pre{background:#f8f8f8;max-height:360px;padding:.5rem;font-size:.8rem;overflow:auto}.unit2{border-top:1px solid #ddd;margin-top:1rem;padding-top:.75rem;font-size:.9rem}.unit2 .edit-row{gap:.5rem;margin:.5rem 0;display:flex}.unit2 .candidate pre{max-height:160px}.unit2 .disclosure{background:#fff8e6;border-radius:4px;padding:.5rem}.unit2 button.secondary{margin-top:.5rem}.badge{color:#fff;background:#333;border-radius:4px;padding:.15rem .4rem;font-size:.7rem;display:inline-block}
