:root{color-scheme:dark;--bg: #0f172a;--bg-card: #1e293b;--fg: #e2e8f0;--fg-muted: #94a3b8;--accent: #38bdf8;--accent-fg: #0f172a;--border: #334155;--error: #f87171;--radius: 12px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--fg);min-height:100dvh;-webkit-font-smoothing:antialiased}.centered{display:grid;place-items:center;min-height:100dvh;padding:1rem}.page{max-width:800px;margin:0 auto;padding:max(env(safe-area-inset-top),1rem) 1rem 2rem}.page-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem;flex-wrap:wrap;gap:.5rem}.page-header h1{margin:0;font-size:1.5rem}.user-chip{display:flex;align-items:center;gap:.75rem;font-size:.875rem}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;margin-bottom:1rem;width:100%;max-width:420px}.page .card{max-width:none}.card h1,.card h2{margin-top:0}.muted{color:var(--fg-muted)}.todo{background:#38bdf814;border:1px dashed var(--accent);padding:.75rem 1rem;border-radius:8px;font-size:.875rem}label{display:block;font-size:.875rem;margin:.75rem 0 .25rem;color:var(--fg-muted)}input[type=email],input[type=text],input[type=password]{width:100%;padding:.6rem .75rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;font-size:1rem}input:focus{outline:2px solid var(--accent);outline-offset:1px}button,.button{display:inline-block;padding:.6rem 1rem;background:var(--accent);color:var(--accent-fg);border:none;border-radius:8px;font-weight:600;cursor:pointer;font-size:1rem;text-decoration:none;margin-top:.75rem}button:disabled{opacity:.5;cursor:not-allowed}.link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0;text-decoration:underline;font-size:inherit}.link.danger{color:var(--error)}.error{color:var(--error);font-size:.875rem;margin-top:.5rem}.info p{margin:.5rem 0}.info-msg{background:#38bdf81a;border-left:3px solid var(--accent);padding:.5rem .75rem;margin-top:.75rem;font-size:.875rem;border-radius:4px}select{width:100%;padding:.6rem .75rem;background:var(--bg);color:var(--fg);border:1px solid var(--border);border-radius:8px;font-size:1rem}.footer-note{font-size:.75rem;color:var(--fg-muted);margin-top:1.5rem}.users{width:100%;border-collapse:collapse;font-size:.875rem}.users th,.users td{text-align:left;padding:.5rem .75rem;border-bottom:1px solid var(--border)}.users th{color:var(--fg-muted);font-weight:500}.pill{display:inline-block;padding:.125rem .5rem;border-radius:999px;font-size:.75rem;font-weight:600}.pill-admin{background:#fde68a;color:#78350f}.pill-student{background:#bae6fd;color:#075985}code{background:#ffffff14;padding:.1rem .35rem;border-radius:4px;font-size:.85em}.options{display:flex;flex-direction:column;gap:.5rem;margin:.75rem 0}.option{display:flex;align-items:center;gap:.5rem;padding:.6rem .75rem;background:var(--bg);border:1px solid var(--border);border-radius:8px;cursor:pointer}.option:has(input:checked){border-color:var(--accent);background:#38bdf81a}.feedback{margin-top:1rem;padding:.75rem 1rem;border-radius:8px}.feedback-ok{background:#22c55e1a;border-left:3px solid #22c55e}.feedback-bad{background:#f871711a;border-left:3px solid var(--error)}.feedback h3{margin:0 0 .5rem}.chat-list{display:flex;flex-direction:column;gap:.75rem;max-height:60vh;overflow-y:auto;padding-bottom:.5rem}.chat-msg{display:flex;flex-direction:column;max-width:85%}.chat-user{align-self:flex-end;align-items:flex-end}.chat-assistant{align-self:flex-start}.chat-bubble{padding:.5rem .75rem;border-radius:12px;white-space:pre-wrap;word-break:break-word}.chat-user .chat-bubble{background:var(--accent);color:var(--accent-fg)}.chat-assistant .chat-bubble{background:var(--bg);border:1px solid var(--border)}.chat-corrections{margin:.25rem 0 0;padding:.25rem .5rem;font-size:.8rem;list-style:none;background:#f8717114;border-left:2px solid var(--error);border-radius:4px}.chat-corrections li{margin:.15rem 0}.chat-form{display:flex;gap:.5rem;margin-top:.75rem}.chat-form input[type=text]{flex:1}.filter-row{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.filter-row label{margin:0;color:var(--fg-muted)}.skill-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.skill-item{width:100%;text-align:left;background:var(--bg);border:1px solid var(--border);color:var(--fg);padding:.6rem .75rem;border-radius:8px;cursor:pointer;font-size:.9rem;margin:0}.skill-item:hover{border-color:var(--accent)}.skill-row{display:flex;align-items:center;gap:.5rem}.skill-row .pill{background:var(--border);color:var(--fg)}.skill-title{flex:1}.skill-bar{height:4px;background:var(--border);border-radius:2px;margin-top:.4rem;overflow:hidden}.skill-bar-fill{height:100%;background:var(--accent);transition:width .3s}ol{padding-left:1.25rem}
