/* Ulangan & soal */
.ul-q{display:grid;gap:8px;padding:13px;background:var(--card);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh-sm)}
.ul-qmeta{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ul-qmeta .inp.sm{min-height:38px;padding:4px 9px;font-size:13.5px;width:auto;border-radius:10px}
.ul-q .opt{display:grid;grid-template-columns:44px 1fr;gap:8px;align-items:center}
.ul-q .opt button{height:44px;border-radius:10px;border:0;font:700 15px var(--disp);color:#fff;cursor:pointer;transition:transform 120ms var(--ease-out),background-color 140ms var(--ease-out)}
.ul-q .opt button:active{transform:scale(.95)}
.ul-q .opt button[aria-pressed="false"]{background:var(--paper);color:var(--ink);border:1px solid var(--line)}
.ul-tpchk{display:flex;align-items:flex-start;gap:8px;padding:9px 11px;min-height:42px;border-radius:12px;background:var(--paper);border:1px solid var(--rule);cursor:pointer;font-size:14.5px;width:100%;transition:background-color 140ms var(--ease-out),border-color 140ms var(--ease-out)}
.ul-tpchk:has(input:checked){background:var(--boardl);border-color:rgba(30,77,58,.28)}
.ul-tpchk input{width:18px;height:18px;margin-top:2px;accent-color:var(--board);flex-shrink:0}
.ul-gengrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.ul-pgrow{display:flex;flex-direction:column;gap:5px;padding:5px 6px;min-width:210px}
.ul-lstr{width:100% !important;height:36px !important;border:1px solid var(--line) !important;border-radius:8px;padding:0 9px !important;text-align:left !important;letter-spacing:2px;font-size:13.5px !important;background:var(--paper) !important}
.ul-cells{display:flex;flex-wrap:wrap;gap:4px}
.ul-c{min-width:32px;height:32px;padding:0 5px;border-radius:7px;border:1px solid var(--line);background:var(--card);font:600 12px var(--disp);font-variant-numeric:tabular-nums;color:var(--mute);cursor:pointer;transition:transform 110ms var(--ease-out),background-color 130ms var(--ease-out),border-color 130ms var(--ease-out)}
.ul-c:active{transform:scale(.93)}
.ul-c.ok{background:var(--board2);border-color:var(--board2);color:#fff}
.ul-c.no{background:var(--redl);border-color:var(--red);color:var(--redd)}
