:root{--bg:#f4f6fb;--card:#fff;--ink:#172033;--muted:#667085;--brand:#4f46e5;--line:#e6e9f0}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Arial,Helvetica,sans-serif}.shell{max-width:1180px;margin:auto;padding:28px 22px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:26px}.brand{font-size:25px;font-weight:800;letter-spacing:-1px}.brand span{color:var(--brand)}.muted{color:var(--muted)}.grid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:14px;gap:14px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:20px;box-shadow:0 5px 20px #1b25500a}.metric{font-size:30px;font-weight:800;margin-top:8px}.section{margin-top:22px}.section h2{font-size:19px}.two{display:grid;grid-template-columns:1.1fr .9fr;grid-gap:16px;gap:16px}.btn{border:0;border-radius:10px;background:var(--brand);color:white;padding:11px 16px;font-weight:700;cursor:pointer}.btn.secondary{background:#eef0ff;color:#3730a3}.input,select,textarea{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;font:inherit;margin:6px 0 12px;background:white}.memory{padding:14px 0;border-bottom:1px solid var(--line)}.tag{display:inline-block;padding:4px 8px;background:#eef0ff;color:#4338ca;border-radius:20px;font-size:12px;margin:4px 4px 0 0}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.tab{padding:9px 13px;border:1px solid var(--line);background:white;border-radius:9px;cursor:pointer}.tab.active{background:#e9eaff;color:#3730a3;border-color:#c7c9ff}.notice{padding:12px;border-radius:10px;background:#fff7e6;color:#854d0e;margin:10px 0}.auth{max-width:430px;margin:8vh auto}.exercise{font-size:28px;font-weight:700;letter-spacing:8px;text-align:center;padding:28px;background:#f5f6ff;border-radius:12px;margin:14px 0}@media(max-width:800px){.grid{grid-template-columns:repeat(2,1fr)}.two{grid-template-columns:1fr}.shell{padding:18px 14px}.top{align-items:flex-start}}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}.actions .btn{width:auto}.memory{overflow-wrap:anywhere}.input[type=file]{padding:10px}