:root{--navy:#002d62;--navy-2:#0a3d7a;--red:#d6252a;--teal:#4b88a2;--sand:#fbfaf3;--ink:#002d62;--muted:#6b818c;--line:#d5e0eb;--ok:#2e8b6a;--ko:#d6252a;--card:#fff;--radius:14px;--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{background:var(--sand);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:400}#app{flex-direction:column;min-height:100dvh;display:flex}a{color:inherit;text-decoration:none}h1{color:var(--navy);letter-spacing:-.01em;margin:0 0 .5rem;font-family:Manrope,sans-serif;font-size:1.4rem;font-weight:800}h2{color:var(--navy);margin:1.25rem 0 .5rem;font-family:Manrope,sans-serif;font-size:1rem;font-weight:700}p{line-height:1.45}.topbar{background:var(--navy);color:#fff;padding:calc(.75rem + env(safe-area-inset-top)) 1rem .75rem;z-index:5;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar .brand{align-items:center;gap:.6rem;display:flex}.topbar .brand img{height:22px;display:block}.topbar .brand small{color:#9cafb7;letter-spacing:.04em;text-transform:uppercase;font-family:Manrope,sans-serif;font-size:.8rem;font-weight:600}.page{padding:1rem 1rem calc(4.5rem + var(--safe-bottom));flex:1;width:100%;max-width:720px;margin:0 auto}.tabbar{border-top:1px solid var(--line);padding-bottom:var(--safe-bottom);z-index:5;background:#fff;display:flex;position:fixed;bottom:0;left:0;right:0}.tabbar a{text-align:center;color:var(--muted);flex:1;padding:.6rem 0 .5rem;font-size:.72rem}.tabbar a.router-link-active{color:var(--red);font-weight:600}.tabbar a b{font-size:1.15rem;font-weight:400;display:block}.card{background:var(--card);border-radius:var(--radius);border:1px solid var(--line);margin-bottom:.75rem;padding:1rem}.card.tap{cursor:pointer;display:block}.card.tap:active{transform:scale(.995)}.row{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.muted{color:var(--muted);font-size:.85rem}.pill{color:var(--teal);background:#e4eef3;border-radius:999px;padding:.15rem .5rem;font-size:.72rem;font-weight:600;display:inline-block}.pill.navy{color:var(--navy);background:#e4e9f2}.grid2{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.btn{background:var(--navy);color:#fff;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;gap:.4rem;width:100%;padding:.9rem 1rem;font-size:1rem;font-weight:600;display:inline-flex}.btn.secondary{color:var(--navy);background:#e4eef3}.btn.primary-red{background:var(--red)}.btn.ghost{color:var(--navy);background:0 0}.btn:disabled{opacity:.5;cursor:default}.btn+.btn{margin-top:.5rem}.progress{background:var(--line);border-radius:3px;height:6px;overflow:hidden}.progress i{background:var(--red);height:100%;display:block}.option{text-align:left;border:2px solid var(--line);width:100%;color:var(--ink);cursor:pointer;background:#fff;border-radius:12px;margin-bottom:.6rem;padding:.85rem 1rem;font-family:inherit;font-size:1rem;line-height:1.35;display:block}.option.picked{border-color:var(--navy)}.option.ok{border-color:var(--ok);background:#e9f4ef}.option.ko{border-color:var(--ko);background:#fdeeee}.field{margin-bottom:.9rem}.field label{margin-bottom:.3rem;font-size:.85rem;font-weight:600;display:block}.field input,.field select{border:2px solid var(--line);width:100%;color:var(--ink);background:#fff;border-radius:10px;padding:.7rem .8rem;font-family:inherit;font-size:1rem}.field .coord{grid-template-columns:1fr 1.4fr .9fr;gap:.4rem;display:grid}.field.ok input,.field.ok select{border-color:var(--ok)}.field.ko input,.field.ko select{border-color:var(--ko)}.timer{font-variant-numeric:tabular-nums;font-weight:700}.timer.warn{color:var(--ko)}.center{text-align:center}.big{margin:.25rem 0;font-size:2.4rem;font-weight:800}.ok-text{color:var(--ok)}.ko-text{color:var(--ko)}pre.exercise{white-space:pre-wrap;margin:0;font-family:inherit;line-height:1.5}figure.q{margin:.75rem 0}figure.q img{border-radius:10px;max-width:100%}.filters{gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.filters select{border:1px solid var(--line);min-width:120px;color:var(--ink);background:#fff;border-radius:10px;flex:1;padding:.5rem;font-family:inherit;font-size:.9rem}.error{color:var(--ko);font-size:.9rem}
