*{box-sizing:border-box}
:root{--green:#0b5d3b;--bg:#f4f7f5;--border:#dce6df;--text:#152219;--muted:#6a776f;--danger:#8a3030}
body{margin:0;font-family:Inter,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--text)}
.wrap{max-width:1160px;margin:auto;padding:16px}
.top{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px}
.brand{font-weight:900;letter-spacing:.08em;color:var(--green)}
.version{font-size:.74rem;color:#7a867f;margin-top:2px}
.card{background:#fff;border:1px solid var(--border);border-radius:18px;padding:18px;margin-bottom:14px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:12px;border:1px solid #cad7cf;background:#fff;color:var(--text);text-decoration:none;font-weight:750;cursor:pointer}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff}
.btn.danger{background:var(--danger);border-color:var(--danger);color:#fff}
.btn.small{min-height:34px;padding:6px 9px;font-size:.88rem}
.input,textarea,select{width:100%;border:1px solid #cbd7d0;border-radius:12px;padding:11px 12px;background:#fff;font:inherit;color:inherit}
label{display:block;font-weight:750;margin-bottom:6px}
.muted,.sub{color:var(--muted)}.sub{font-size:.88rem}
.metric{font-size:1.8rem;font-weight:900}
.pill{display:inline-block;border-radius:999px;background:#e8f2ec;color:var(--green);padding:5px 9px;font-size:.8rem;font-weight:750}
.pill.warn{background:#fff4db;color:#714d05;border:0;margin:0}
.ok{background:#eaf7ee;border:1px solid #badfc4;padding:12px;border-radius:12px;margin-bottom:12px}
.warnbox{background:#fff4db;border:1px solid #ecd39b;padding:12px;border-radius:12px;margin-bottom:12px}
.errorbox{background:#fff0f0;border:1px solid #e1b4b4;padding:12px;border-radius:12px;margin-bottom:12px;color:#722}
.row{display:flex;gap:9px;align-items:center;flex-wrap:wrap}
.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.tablewrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{padding:10px;border-bottom:1px solid #e6ece8;text-align:left;vertical-align:top}
.chat{display:flex;flex-direction:column;gap:10px}
.bubble{padding:12px 14px;border-radius:16px;max-width:90%;line-height:1.45}
.bubble.student{align-self:flex-end;background:var(--green);color:#fff}
.bubble.subject{align-self:flex-start;background:#edf2ef}
.sticky{position:sticky;bottom:0;background:var(--bg);padding-top:10px}
.briefing-section{border-top:1px solid #e6ece8;padding-top:14px;margin-top:14px}
.goal-box{background:#eef6f1;border:1px solid #cfe2d6;border-radius:14px;padding:14px}
.rule-box{background:#fff7e7;border:1px solid #edd7a3;border-radius:14px;padding:14px}
.blocked-question{background:#fff0f0;border:1px solid #e1b4b4;color:#722;border-radius:12px;padding:11px;margin-top:10px}
.objective-list{padding-left:22px;margin-bottom:0}
.objective-list li{margin-bottom:8px}
.rubric-row{display:grid;grid-template-columns:1fr 130px;gap:12px;align-items:center;padding:9px 0;border-bottom:1px solid #edf1ee}
.rubric-row:last-child{border-bottom:0}
.progress{height:10px;border-radius:99px;background:#e7ece9;overflow:hidden}
.progress span{display:block;height:100%;background:var(--green)}
h1,h2,h3{margin-top:0}
code{background:#eef3ef;padding:2px 5px;border-radius:6px}
@media(max-width:760px){
 .wrap{padding:12px}.grid,.grid2{grid-template-columns:1fr}.row>*{width:100%}.btn{width:100%}
 .tabs .btn{width:auto}.bubble{max-width:95%}.rubric-row{grid-template-columns:1fr}
}