:root{--ink:#1b365d;--accent:#487a7b;--accent-light:#487a7b17;--muted:#707372;--prompt:#b2b4b2;--imb-red:#b83a4b;--imb-teal:#009681;--imb-orange:#e87722;--imb-yellow:#f3d54e;--bg:#f7f6f2;--card:#fff;--border:#e4e4e2;--font-head:"Nunito Sans", system-ui, sans-serif;--font-body:"Source Sans 3", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{font-family:var(--font-body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3,h4{font-family:var(--font-head);color:var(--ink);margin:0 0 .5em;font-weight:700}h1{font-size:1.8rem}h2{font-size:1.4rem}h3{font-size:1.15rem}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.app{flex-direction:column;min-height:100%;display:flex}.topbar{background:var(--ink);color:#fff;justify-content:space-between;align-items:center;padding:14px 24px;display:flex}.topbar a{color:#fff}.topbar .brand{font-family:var(--font-head);letter-spacing:.02em;font-size:1.2rem;font-weight:800}.topbar .user{align-items:center;gap:10px;font-size:.95rem;display:flex}.topbar .user img{border-radius:50%;width:28px;height:28px}.container{flex:1;width:100%;max-width:960px;margin:0 auto;padding:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:16px;padding:20px}.card h2{margin-top:0}.btn{font-family:var(--font-head);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;border-radius:6px;justify-content:center;align-items:center;gap:8px;padding:10px 16px;font-size:.95rem;font-weight:600;text-decoration:none;transition:filter .1s;display:inline-flex}.btn:hover{filter:brightness(1.07);text-decoration:none}.btn[disabled]{opacity:.5;cursor:not-allowed}.btn.ghost{color:var(--accent);background:0 0}.btn.ghost:hover{background:var(--accent-light)}.btn.danger{background:var(--imb-red);border-color:var(--imb-red)}.btn.ink{background:var(--ink);border-color:var(--ink)}.btn.small{padding:6px 10px;font-size:.85rem}input[type=text],textarea,select{width:100%;font-family:var(--font-body);border:1px solid var(--border);color:var(--ink);background:#fff;border-radius:6px;padding:10px 12px;font-size:1rem}textarea{resize:vertical;min-height:100px}label{font-weight:600;font-family:var(--font-head);margin-bottom:6px;display:block}.field{margin-bottom:14px}.list-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:12px 16px;display:flex}.list-row:last-child{border-bottom:none}.list-row .title{font-weight:600}.list-row .sub{color:var(--muted);font-size:.9rem}.hstack{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.vstack{flex-direction:column;gap:10px;display:flex}.spacer{flex:1}.muted{color:var(--muted)}.small{font-size:.85rem}.right{text-align:right}.question-text{font-family:var(--font-head);margin-bottom:20px;font-size:1.35rem;line-height:1.4}.choices{flex-direction:column;gap:10px;display:flex}.choice{border:1.5px solid var(--border);cursor:pointer;text-align:left;font-family:var(--font-body);color:var(--ink);background:#fff;border-radius:8px;align-items:flex-start;gap:12px;padding:14px 16px;font-size:1rem;transition:border-color .1s,background .1s;display:flex}.choice:hover:not([disabled]){border-color:var(--accent);background:var(--accent-light)}.choice[disabled]{cursor:default}.choice .letter{background:var(--accent-light);width:26px;height:26px;color:var(--accent);font-weight:700;font-family:var(--font-head);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.choice.correct{border-color:var(--imb-teal);background:#00968114}.choice.correct .letter{background:var(--imb-teal);color:#fff}.choice.wrong{border-color:var(--imb-red);background:#b83a4b14}.choice.wrong .letter{background:var(--imb-red);color:#fff}.feedback{border-left:4px solid var(--accent);background:var(--accent-light);border-radius:8px;margin-top:18px;padding:14px 16px}.feedback.correct{border-left-color:var(--imb-teal);background:#00968112}.feedback.wrong{border-left-color:var(--imb-red);background:#b83a4b12}.pill{font-size:.8rem;font-family:var(--font-head);border-radius:999px;padding:2px 10px;font-weight:700;display:inline-block}.pill.ok{color:var(--imb-teal);background:#0096811f}.pill.warn{color:var(--imb-orange);background:#e877221f}.pill.err{color:var(--imb-red);background:#b83a4b1f}.pill.neut{background:var(--accent-light);color:var(--accent)}.dropzone{border:2px dashed var(--border);text-align:center;color:var(--muted);cursor:pointer;background:#fff;border-radius:10px;padding:28px;transition:border-color .1s,background .1s}.dropzone.drag{border-color:var(--accent);background:var(--accent-light)}.progress-bar{background:var(--border);border-radius:999px;width:100%;height:10px;overflow:hidden}.progress-bar>div{background:var(--imb-teal);height:100%;transition:width .3s}.alert-error{color:var(--imb-red);border-left:3px solid var(--imb-red);background:#b83a4b14;border-radius:6px;margin-bottom:14px;padding:10px 14px}.markdown-body h1,.markdown-body h2,.markdown-body h3{margin-top:1.1em}.markdown-body h1{font-size:1.3rem}.markdown-body h2{font-size:1.15rem}.markdown-body h3{font-size:1rem}.markdown-body ul,.markdown-body ol{margin:.6em 0;padding-left:22px}.markdown-body li{margin-bottom:.3em;line-height:1.5}.markdown-body p{margin:.6em 0;line-height:1.5}.markdown-body code{background:var(--accent-light);border-radius:3px;padding:1px 5px;font-size:.92em}.markdown-body strong{color:var(--ink)}
