:root{--bg:#f4f5f3;--card:#fff;--ink:#1b1f24;--muted:#5b6470;--line:#d9dcd7;--accent:#0f766e;--accent-soft:#e6f2f0;--warn:#8a4b00;--warn-bg:#fff1d6;--err:#b42318;--err-bg:#fdecea;--ok:#0f766e;--console:#14181d;--mono:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}@media (prefers-color-scheme:dark){:root{--bg:#101316;--card:#1a1f24;--ink:#e8eaed;--muted:#a0a8b3;--line:#2f363e;--accent:#2dd4bf;--accent-soft:#123530;--warn:#fbbf6a;--warn-bg:#3a2c12;--err:#ff8a80;--err-bg:#3b1c1a;--ok:#5eead4;--console:#0b0e11}}*{box-sizing:border-box}[hidden]{display:none!important}body{background:var(--bg);color:var(--ink);flex-direction:column;min-height:100vh;margin:0;font-family:system-ui,-apple-system,Segoe UI,sans-serif;display:flex}button,input,textarea{font:inherit;color:inherit}h2{margin:0;font-size:15px}.muted{color:var(--muted);font-size:13px}.spacer{flex-grow:1}.row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.top{background:var(--card);border-bottom:1px solid var(--line);flex-wrap:wrap;align-items:center;gap:16px;padding:12px 24px;display:flex}.brand{flex-direction:column;line-height:1.2;display:flex}.brand strong{font-size:18px}.brand span{color:var(--muted);font-size:13px}.titol-fila{flex-wrap:wrap;align-items:center;gap:4px 10px;display:flex}.brand .centre{border:1px solid var(--accent);color:var(--accent);letter-spacing:.04em;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700}.btn{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:8px;min-height:44px;padding:0 20px;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}@media (prefers-color-scheme:dark){.btn.primary{color:#04201c}}.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--bg)}.btn.small{min-height:44px;padding:0 14px;font-size:14px}.btn[aria-current=true]{border-color:var(--accent);background:var(--accent-soft)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible,textarea:focus-visible,input:focus-visible,.item:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.layout{flex-grow:1;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start;gap:16px;padding:16px 24px;display:grid}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}.work,.side{flex-direction:column;gap:16px;min-width:0;display:flex}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--line);background:var(--card);cursor:pointer;border-radius:18px;min-height:36px;padding:0 12px;font-size:13px}.chip[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);font-weight:600}#exercises{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.item{border:1px solid var(--line);background:var(--card);text-align:left;cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;width:100%;min-height:52px;padding:8px 12px;display:flex}.item[aria-current=true]{border-color:var(--accent);background:var(--accent-soft);box-shadow:inset 5px 0 0 var(--accent)}.item .t{font-size:14px;font-weight:600}.item .m{color:var(--muted);font-size:12px}.ref{border-top:1px solid var(--line);padding-top:12px;font-size:14px}.ref summary{cursor:pointer;align-items:center;min-height:44px;font-weight:600;display:flex}.ref summary:focus-visible{outline:3px solid var(--accent);outline-offset:2px}.ref h3{color:var(--muted);text-transform:uppercase;letter-spacing:.03em;margin:14px 0 6px;font-size:13px}.ref p{margin:0 0 4px}.ref pre{background:var(--bg);font-family:var(--mono);border-radius:6px;margin:4px 0 10px;padding:8px 10px;font-size:13px;overflow-x:auto}.ref ul{flex-direction:column;gap:4px;margin:0;padding-left:18px;display:flex}.ref .soon{color:var(--muted)}.ref .ops{grid-template-columns:auto 1fr;gap:4px 12px;margin:0;display:grid}.ref .ops dd{font-family:var(--mono);margin:0;font-size:13px}.ref .ops dt{color:var(--muted)}.badge{background:var(--accent-soft);color:var(--accent);border-radius:10px;padding:2px 10px;font-size:12px;font-weight:600}.statement{flex-direction:column;gap:10px;padding:16px 20px;display:flex}.statement p{white-space:pre-line;margin:0;line-height:1.5}.hints{flex-direction:column;gap:4px;margin:0;padding-left:20px;font-size:14px;display:flex}.bar{border-bottom:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;padding:10px 16px;font-size:14px;font-weight:600;display:flex}.dark-bar{background:var(--console);color:#e5e7eb;border-bottom-color:#2a313a}.code{height:clamp(260px,42vh,380px);font-family:var(--mono);font-size:15px;line-height:24px;display:flex}#gutter{text-align:right;min-width:48px;color:var(--muted);background:var(--bg);-webkit-user-select:none;user-select:none;font:inherit;margin:0;padding:12px 12px 12px 8px;overflow:hidden}#gutter .bad{color:var(--err);background:var(--err-bg);font-weight:700}#code{resize:none;background:var(--card);font:inherit;white-space:pre;tab-size:2;border:0;flex-grow:1;padding:12px;overflow:auto}.console{background:var(--console)}.out{min-height:120px;max-height:clamp(140px,26vh,240px);font-family:var(--mono);color:#e5e7eb;white-space:pre-wrap;padding:12px 16px;font-size:14px;line-height:24px;overflow:auto}.out .sys{color:#9ca3af}.out .err{color:#ff8a80}.out .you{color:#5eead4}.input-row{border-top:1px solid #2a313a;gap:8px;padding:10px 12px;display:flex}.input-row input{color:#e5e7eb;background:0 0;border:1px solid #3a4350;border-radius:8px;flex-grow:1;min-height:44px;padding:0 12px}.result{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.score{align-items:center;gap:16px;display:flex}.aviso-nota{margin:-4px 0 0}.ref .note{margin-bottom:10px}.score .n{font-size:32px;font-weight:700}.cat{grid-template-columns:110px 1fr 54px;align-items:center;gap:10px;font-size:14px;display:grid}.meter{background:var(--line);border-radius:4px;height:8px}.meter>i{background:var(--accent);border-radius:4px;height:100%;display:block}.meter>i.low{background:#b45309}.note{background:var(--warn-bg);border-radius:8px;flex-direction:column;gap:2px;padding:10px 12px;font-size:14px;display:flex}.note b{color:var(--warn)}.note small{color:var(--ink);opacity:.8}.error{background:var(--err-bg);border-radius:8px;flex-direction:column;gap:6px;padding:12px 14px;font-size:14px;display:flex}.error b{color:var(--err);font-size:15px}.error pre{background:var(--card);font-family:var(--mono);border-radius:6px;margin:0;padding:8px 10px;font-size:13px}.tests{flex-direction:column;gap:4px;margin:0;padding:0;font-size:13px;list-style:none;display:flex}.tests .ko{color:var(--err)}.foot p{margin:0}.foot{color:var(--muted);border-top:1px solid var(--line);background:var(--card);flex-direction:column;gap:2px;padding:10px 24px;font-size:13px;display:flex}@media (width<=1000px){.layout{grid-template-columns:minmax(0,1fr);padding:16px}.top{padding:12px 16px}}.captures h3{margin:4px 0 8px;font-size:14px}.captures-list{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;display:grid}.captura{min-width:0;margin:0}.captura figcaption{color:var(--muted);margin-bottom:4px;font-size:13px;font-weight:600}.consola{background:var(--console);font-family:var(--mono);color:#86efac;white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:10px 12px;font-size:13px;font-weight:600;line-height:20px}.consola .marca{color:#7dd3fc}.consola .linia-in{color:#fcd34d}.consola .linia-fi{color:#93c5fd}.nota-card{border-top:1px solid var(--line);padding:0 16px 4px}.nota-card[open]{padding-bottom:14px}.llista summary{cursor:pointer;align-items:center;gap:12px;min-height:56px;padding:8px 16px;list-style:none;display:flex}.llista summary::-webkit-details-marker{display:none}.llista summary:hover{background:var(--accent-soft)}.llista summary:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.llista-etiqueta{text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-size:12px;font-weight:600}.llista-actual{text-overflow:ellipsis;white-space:nowrap;flex:auto;min-width:0;font-weight:700;overflow:hidden}.llista summary:after{content:"Canviar d'exercici ▾";border:1px solid var(--accent);color:var(--accent);border-radius:18px;flex:none;padding:6px 14px;font-size:13px;font-weight:600}.llista[open] summary:after{content:"Tancar ▴"}.llista[open] summary{border-bottom:1px solid var(--line);margin-bottom:12px}.llista-cos{flex-direction:column;gap:12px;padding:0 16px 16px;display:flex}.llista[open] #exercises{max-height:360px;overflow-y:auto}.ref summary{list-style:none}.ref summary::-webkit-details-marker{display:none}.ref summary:after{content:"▾";color:var(--accent);margin-left:auto;font-size:16px}.ref[open] summary:after{content:"▴"}@media (width>=1001px){.side{max-height:calc(100vh - 32px);margin:-3px;padding:3px;position:sticky;top:16px;overflow-y:auto}}.result:empty{display:none}.layout.lliure{grid-template-columns:minmax(0,960px);justify-content:center}@media (width>=1001px){.layout.lliure .side{max-height:none;position:static;overflow:visible}}
