/* Pagine practice-test engine styles (Oct 2026) — pairs with engine.js */
#tp-app{min-height:420px;margin:18px 0 28px}
.tp-home,.tp-results,.tp-review{background:#fff;border:1px solid #e3ece6;border-radius:22px;padding:20px 22px}
.tp-home h3,.tp-results h3,.tp-review h3{margin:0 0 8px;color:#123d27;font-size:1.3rem}
.tp-fs{border:0;margin:0 0 16px;padding:0}.tp-fs legend{font-weight:900;color:#123d27;margin:0 0 8px;padding:0;font-size:1.05rem}
.tp-opts{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.tp-opt{display:flex;gap:10px;align-items:flex-start;border:2px solid #e3ece6;border-radius:14px;padding:10px 12px;cursor:pointer;min-height:44px;background:#fbfdfb}
.tp-opt:has(input:checked){border-color:#1A5C3A;background:#f1f8f4}.tp-opt input{margin-top:4px;width:18px;height:18px;accent-color:#1A5C3A;flex:0 0 auto}
.tp-opt b{display:block;color:#123d27}.tp-opt small{display:block;color:#6b7280}
.tp-row{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin:12px 0 0}
.tp-note{color:#6b7280;font-size:.92rem;margin:6px 0}
.tp-msg{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:12px;padding:10px 12px}
.tp-resume{background:#fffbeb;border:1px solid #fde68a;border-radius:14px;padding:12px 14px;margin:0 0 16px}
.tp-loading{padding:40px;text-align:center;color:#6b7280}
.tp-hist{margin-top:20px}.tp-hist h3{font-size:1.05rem}
.tp-tab{width:100%;border-collapse:collapse;margin:8px 0;font-size:.95rem}.tp-tab th,.tp-tab td{text-align:left;padding:8px 10px;border-bottom:1px solid #eef2ef}.tp-tab thead th{background:#f1f8f4;color:#123d27}
/* running test */
.tp-run{background:#fff;border:1px solid #dbe7df;border-radius:18px;overflow:hidden}
.tp-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:#123d27;color:#fff;padding:10px 14px}
.tp-ttl b{display:block;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#a7f3d0}.tp-ttl span{font-weight:800}
.tp-tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.tp-clock{font-variant-numeric:tabular-nums;font-weight:900;font-size:1.1rem;background:rgba(255,255,255,.12);border-radius:10px;padding:6px 10px;min-width:64px;text-align:center}.tp-clock.low{background:#b91c1c}
.tp-tb{min-height:40px;border:1.5px solid rgba(255,255,255,.4);background:transparent;color:inherit;border-radius:10px;padding:6px 12px;font-weight:800;cursor:pointer;font-size:.9rem}
.tp-sub{display:flex;justify-content:space-between;align-items:center;padding:8px 14px;background:#f1f8f4;color:#123d27;font-weight:800;gap:10px}
.tp-sub .tp-tb{border-color:#9bbfaa;color:#1A5C3A}.tp-sub .tp-tb.on{background:#fef3c7;border-color:#f59e0b;color:#92400e}
.tp-body{padding:16px 18px}.tp-body.split{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.tp-pass{max-height:62vh;overflow:auto;border:1px solid #e5e7eb;border-radius:14px;padding:12px 16px;background:#fbfdfb;line-height:1.7}.tp-pass h3{margin:0 0 6px;color:#123d27;font-size:1.05rem}
.tp-q{font-size:1.08rem;line-height:1.6;color:#111827;outline:none}.tp-q p{margin:0 0 10px}
.tp-qc{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:6px 0 12px}.tp-qc div{border:2px solid #cfe3d7;border-radius:12px;padding:12px;text-align:center}.tp-qc b{display:block;color:#6b7280;font-size:.8rem;text-transform:uppercase}.tp-qc span{font-size:1.1rem;font-weight:800}
.tp-choices{display:grid;gap:8px}
.tp-choice{display:flex;gap:10px;align-items:center;border:2px solid #e3ece6;border-radius:12px;padding:10px 12px;min-height:48px;cursor:pointer;background:#fff}
.tp-choice:hover{border-color:#9bbfaa}.tp-choice.on{border-color:#1A5C3A;background:#f1f8f4}.tp-choice.right{border-color:#16a34a;background:#f0fdf4}
.tp-choice input{position:absolute;opacity:0;width:1px;height:1px}.tp-choice:focus-within{outline:3px solid #1d4ed8;outline-offset:2px}
.tp-l{flex:0 0 30px;height:30px;border-radius:50%;border:2px solid #9bbfaa;display:flex;align-items:center;justify-content:center;font-weight:900;color:#1A5C3A}
.tp-choice.on .tp-l{background:#1A5C3A;color:#fff;border-color:#1A5C3A}
.tp-num span{display:block;font-weight:800;color:#123d27;margin-bottom:4px}.tp-num input{min-height:52px;width:220px;max-width:100%;border:2px solid #cfe3d7;border-radius:12px;padding:0 12px;font-size:1.3rem}
.tp-essay{width:100%;min-height:340px;border:2px solid #cfe3d7;border-radius:12px;padding:12px;font:inherit;line-height:1.6;box-sizing:border-box}
.tp-exp{border-radius:12px;padding:10px 12px;margin:10px 0 0;background:#f8fafc;border:1px solid #e5e7eb}.tp-exp.ok{background:#f0fdf4;border-color:#bbf7d0}.tp-exp.no{background:#fef2f2;border-color:#fecaca}
.tp-fig{margin:6px 0 12px;overflow-x:auto}.tp-fig svg{width:100%;max-width:420px;height:auto}.tp-fig figcaption{font-size:.85rem;color:#6b7280}
.tp-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;border-top:1px solid #eef2ef;background:#fbfdfb}
.tp-dots{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;flex:1}.tp-dots i{width:10px;height:10px;border-radius:50%;background:#e5e7eb}.tp-dots i.done{background:#2f8f5b}.tp-dots i.fl{box-shadow:0 0 0 2px #f59e0b}.tp-dots i.cur{transform:scale(1.4);background:#123d27}
.tp-prog{flex:1;height:8px;background:#e5ece8;border-radius:999px;overflow:hidden;max-width:260px}.tp-prog span{display:block;height:100%;background:#2f8f5b}
.tp-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px;margin:12px 0}
.tp-cell{min-height:50px;border:2px solid #fecaca;background:#fff;border-radius:12px;font-weight:900;cursor:pointer;position:relative}.tp-cell.done{border-color:#2f8f5b;background:#f0fdf4}.tp-cell.fl{box-shadow:inset 0 0 0 2px #f59e0b}.tp-cell small{position:absolute;top:2px;right:5px;color:#d97706}
.tp-big{font-size:2.2rem;font-weight:900;color:#123d27;margin:6px 0}.tp-big small{font-size:1rem;color:#6b7280;font-weight:700}
.tp-break{text-align:center}
.tp-bar{display:block;width:140px;height:10px;background:#e5ece8;border-radius:999px;overflow:hidden}.tp-bar span{display:block;height:100%;background:#2f8f5b}
.tp-ri{border:1px solid #e5e7eb;border-radius:12px;margin:8px 0;padding:8px 12px;background:#fff}.tp-ri summary{cursor:pointer;font-weight:700;min-height:28px}.tp-ri.ok summary{color:#166534}.tp-ri.no summary{color:#9a3412}
.tp-essay-out{border:1px solid #e5e7eb;border-radius:12px;padding:12px;background:#fbfdfb;max-height:300px;overflow:auto}
.tp-calc{position:fixed;right:16px;bottom:16px;z-index:50;background:#fff;border:2px solid #123d27;border-radius:16px;padding:10px;box-shadow:0 12px 30px rgba(0,0,0,.2);width:230px}
.tp-cdisp{background:#f1f8f4;border-radius:10px;padding:8px 10px;text-align:right;font-weight:900;font-size:1.2rem;min-height:28px;word-break:break-all}
.tp-ckeys{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin:8px 0}.tp-ckeys button{min-height:42px;border:1px solid #cfe3d7;border-radius:10px;background:#fff;font-weight:800;font-size:1rem;cursor:pointer}
.tp-run button:focus-visible,.tp-home button:focus-visible,.tp-results button:focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}
@media (max-width:820px){.tp-body.split{grid-template-columns:1fr}.tp-pass{max-height:40vh}.tp-dots{display:none}}
@media (prefers-reduced-motion:reduce){.tp-dots i,.tp-prog span{transition:none}}
.tp-home button.hk-textlink,.tp-run button.hk-textlink,.tp-results button.hk-textlink,.tp-calc button.hk-textlink{background:none;border:0;cursor:pointer;font-size:1rem;min-height:44px}
