:root{--asphalt: #1b1f2a;--asphalt2: #262b38;--paper: #fff;--bg: #eef1f6;--ink: #1b1f2a;--muted: #5b6475;--yellow: #ffcc00;--red: #e11d48;--green: #16a34a;--blue: #2563eb;--verbal: #e11d48;--quant: #2563eb;--nonverbal: #9333ea;--radius: 16px;color-scheme:light}*{box-sizing:border-box}html,body{margin:0;background:var(--bg);color:var(--ink);font-family:ui-rounded,SF Pro Rounded,system-ui,-apple-system,Segoe UI,sans-serif;-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:default}.app{max-width:820px;margin:0 auto;padding:0 16px 48px}.muted{color:var(--muted)}.small{font-size:13px}h1,h2,h3{margin:.4em 0}.hero{background:repeating-linear-gradient(90deg,#fff 0 14px,#111 14px 28px) top/100% 8px no-repeat,var(--asphalt);color:#fff;margin:0 -16px 16px;padding:28px 20px 18px;text-align:center;border-radius:0 0 24px 24px}.hero h1{font-size:clamp(28px,6vw,42px);letter-spacing:-.5px}.hero h1 span{color:var(--yellow)}.hero p{margin:0;opacity:.85}.driver-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.driver-bar>span{white-space:nowrap}.logout-control{text-align:right;min-width:0}.logout-control button{min-height:44px}.logout-error{color:var(--red);font-size:14px;margin:6px 0 0;max-width:320px}.prize-strip{display:flex;align-items:center;gap:14px;width:100%;text-align:left;background:var(--paper);border:3px solid var(--yellow);border-radius:var(--radius);padding:12px 14px;box-shadow:0 3px #d4a900}.ps-text{flex:1;min-width:0}.ps-label{font-size:15px}.ps-goal{color:var(--muted);font-size:14px;margin:2px 0 6px}.ps-alert{font-weight:800;color:var(--red);margin-bottom:4px}.chev{font-size:30px;color:var(--muted)}.meter{height:10px;background:#e5e7eb;border-radius:6px;overflow:hidden}.meter>div{height:100%;background:linear-gradient(90deg,var(--yellow),#ff8a00);border-radius:6px;transition:width .4s}.track-sec h2{font-size:20px;margin-top:22px}.cars{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.car-card{background:var(--paper);border:3px solid;border-radius:var(--radius);padding:14px 6px 10px;display:flex;flex-direction:column;align-items:center;gap:4px;box-shadow:0 3px #0002;transition:transform .1s}.car-card:active{transform:translateY(2px);box-shadow:none}.car-e{font-size:42px;line-height:1.1}.car-name{font-weight:700;font-size:15px;text-align:center}.car-stars{font-size:14px}.car-stars .dim{filter:grayscale(1);opacity:.3}.gp{margin-top:26px;background:var(--asphalt);color:#fff;border-radius:var(--radius);padding:16px}.gp p{opacity:.85;margin-top:0}.foot{text-align:center;margin-top:24px}.btns{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.go{background:var(--green);color:#fff;border:0;border-radius:14px;padding:14px 22px;font-size:19px;font-weight:800;box-shadow:0 4px #0f7a35;min-height:52px}.go.alt{background:var(--blue);box-shadow:0 4px #1d4fbf}.go:disabled{background:#a5adba;box-shadow:0 4px #8790a0}.go:active:not(:disabled){transform:translateY(3px);box-shadow:0 1px #0f7a35}.ghost{background:transparent;border:2px solid #0002;border-radius:12px;padding:8px 14px;font-weight:700}.gp .ghost{border-color:#fff5}.small-btn{background:#fff;border:2px solid #cfd5df;border-radius:10px;padding:7px 12px;font-weight:700;font-size:14px}.danger{color:var(--red)}.link{background:none;border:0;color:var(--blue);text-decoration:underline;padding:2px 6px;font-size:13px}.bar{display:flex;align-items:center;gap:12px;padding:12px 0}.bar-title{font-weight:800;font-size:18px;flex:1}.timer{font-variant-numeric:tabular-nums;font-weight:700}.qcard{background:var(--paper);border-radius:20px;padding:14px 16px 18px;box-shadow:0 2px 10px #0001}.qtop{display:flex;align-items:center;gap:12px}.speak{font-size:26px;background:var(--yellow);border:0;border-radius:50%;width:52px;height:52px;flex:none;box-shadow:0 3px #d4a900}.track{position:relative;flex:1;height:40px}.track-line{position:absolute;left:0;right:24px;top:26px;height:6px;border-radius:3px;background:repeating-linear-gradient(90deg,#444 0 10px,#fff 10px 16px);border:1px solid #333}.track-car{position:absolute;top:0;font-size:28px;transition:left .5s cubic-bezier(.3,1.4,.6,1);transform:scaleX(-1)}.track-flag{position:absolute;right:0;top:4px;font-size:24px}.instr{color:var(--muted);font-size:15px;margin:10px 0 6px}.stim{display:flex;justify-content:center;padding:10px 0 16px;border-bottom:2px dashed #e3e7ee;margin-bottom:14px;overflow-x:auto}.stim-rows{display:flex;flex-direction:column;gap:10px;align-items:center}.row{display:flex;align-items:center;gap:10px;justify-content:center;flex-wrap:wrap}.box{min-width:96px;min-height:96px;border:2px solid #cfd5df;border-radius:12px;display:flex;align-items:center;justify-content:center;padding:6px;background:#fff}.box-q{border-style:dashed;border-color:var(--yellow);background:#fffbea}.qmark{font-size:44px;font-weight:900;color:#d4a900}.arrow{font-size:26px;color:var(--muted)}.listen{font-size:20px;font-weight:700;padding:18px;background:#fffbea;border-radius:14px}.matrix{display:grid;grid-template-columns:repeat(2,120px);gap:8px}.matrix .box{height:120px}.equation{font-size:54px;font-weight:900;letter-spacing:6px;padding:10px 20px}.trains{align-items:flex-start}.trains .row{justify-content:flex-start}.trains .engine{font-size:40px}.plus{font-size:30px;font-weight:900}.hint{color:var(--muted);font-size:14px}.abacus-row{display:flex;align-items:flex-end;gap:6px}.rod-q{width:36px;height:186px;border:2px dashed var(--yellow);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:900;color:#d4a900;background:#fffbea}.counts{display:grid;gap:1px 3px;line-height:1.15;text-align:center}.fold-steps{display:flex;gap:10px;align-items:flex-start}.fold-step{display:flex;flex-direction:column;align-items:center;font-size:13px;font-weight:700;color:var(--muted)}.pic{display:inline-flex;flex-direction:column;align-items:center}.pic-e{position:relative;display:inline-flex;align-items:center;justify-content:center;line-height:1}.pic-corner{position:absolute;right:-10px;bottom:-2px}.pic-word{font-size:13px;color:var(--muted);margin-top:2px}.opts{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}@media(max-width:560px){.opts:not(.opts-row){grid-template-columns:repeat(2,1fr)}.cars{grid-template-columns:repeat(3,1fr)}.car-e{font-size:34px}.car-name{font-size:13px}}.opt{position:relative;background:#f8fafc;border:3px solid #d5dbe4;border-radius:14px;min-height:110px;display:flex;align-items:center;justify-content:center;padding:10px 6px;transition:transform .1s}.opt:active:not(:disabled){transform:scale(.97)}.opt.picked{border-color:var(--blue);background:#eaf1ff;box-shadow:0 0 0 3px #2563eb44}.opt.right{border-color:var(--green);background:#e8f8ee}.opt.wrong{border-color:var(--red);background:#fdecef}.opt.small{min-height:0;padding:6px}.opt-id{position:absolute;top:4px;left:8px;font-size:12px;font-weight:800;color:#9aa3b2}.num{font-size:40px;font-weight:900}.qcard>.go{display:block;width:100%;margin-top:14px}.feedback{margin-top:14px;border-radius:14px;padding:14px;text-align:center}.fb-ok{background:#e8f8ee}.fb-no{background:#fff4e5}.fb-title{font-size:21px;font-weight:900;margin-bottom:6px}.fb-expl{font-size:17px;margin-bottom:10px}.feedback .go{width:100%}.finish{text-align:center;padding:40px 10px 20px;display:flex;flex-direction:column;align-items:center;gap:12px}.big-emoji{font-size:64px}.spin{display:inline-block;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.score{font-size:28px;font-weight:900;margin:0}.stars{font-size:28px;margin:0}.tracks-sum{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:16px}.sum-card{background:#fff;border-left:6px solid;border-radius:12px;padding:10px;display:flex;flex-direction:column;font-size:14px}.sum-card span{font-size:24px;font-weight:900}.miss{background:#fff;border-radius:14px;padding:10px 12px;margin-bottom:8px}.miss-cat{font-size:13px;font-weight:700;color:var(--muted)}.miss-body{display:flex;gap:12px;align-items:center}.results>.go{width:100%;margin-top:12px}.pin{font-size:32px;width:160px;text-align:center;letter-spacing:12px;padding:8px;border-radius:12px;border:2px solid #cfd5df}.intro{margin-top:0}.road{list-style:none;padding:0;margin:0;position:relative}.road:before{content:"";position:absolute;left:21px;top:10px;bottom:10px;width:6px;background:repeating-linear-gradient(#444 0 12px,var(--yellow) 12px 22px);border-radius:3px}.stop{position:relative;display:flex;gap:12px;align-items:center;background:#fff;border-radius:16px;padding:10px 12px 10px 52px;margin-bottom:10px}.stop.earned{box-shadow:0 0 0 3px var(--yellow)}.mile{position:absolute;left:8px;width:32px;height:32px;border-radius:50%;background:var(--asphalt);color:#fff;font-weight:900;display:flex;align-items:center;justify-content:center}.stop-text{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.stop-goal{font-weight:800}.tag{font-weight:800;border-radius:8px;padding:4px 8px;align-self:flex-start;font-size:14px}.tag.earned{background:#fff3c4}.tag.given{background:#e8f8ee}.badge.locked{opacity:.55}.modal{position:fixed;inset:0;background:#000a;display:flex;align-items:center;justify-content:center;padding:16px;z-index:10}.modal-card{background:#fff;border-radius:24px;padding:22px;max-width:420px;width:100%;text-align:center;animation:pop .4s cubic-bezier(.3,1.6,.6,1)}@keyframes pop{0%{transform:scale(.6);opacity:0}}.confetti{font-size:40px}.won{display:flex;align-items:center;gap:12px;justify-content:center;text-align:left;margin:10px 0}.modal-card .go{width:100%}.panel{background:#fff;border-radius:16px;padding:14px 16px;margin-bottom:14px}.stats{width:100%;border-collapse:collapse;font-size:14px}.stats td,.stats th{padding:6px 4px;border-bottom:1px solid #eef0f4;text-align:left}.stats .tr-head td{font-weight:800;padding-top:12px}.good{color:var(--green);font-weight:800}.weak{color:var(--red);font-weight:800}.plain{padding-left:18px;font-size:14px}.goal-edit{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid #eef0f4}.ge-fields{flex:1;display:flex;flex-direction:column;gap:6px;min-width:0}.ge-row{display:flex;gap:6px;flex-wrap:wrap;align-items:center;font-size:14px}.goal-edit input,.goal-edit select{font:inherit;font-size:14px;padding:6px 8px;border:1.5px solid #cfd5df;border-radius:8px;min-width:0}.ge-fields>input,.ge-row>input:not([type]){flex:1}.num-in{width:76px}.goal-edit input[type=color]{padding:0;width:38px;height:32px}.chk{display:flex;gap:8px;align-items:center;margin:8px 0;font-size:15px}.prize-photo{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:none;background:radial-gradient(circle at 50% 40%,#fff,#dfe4ec);border-radius:14px;padding:6px}.prize-photo img{max-width:100%;max-height:100%;object-fit:contain;filter:drop-shadow(0 2px 3px #0005)}.prize-photo.locked img{filter:grayscale(1) opacity(.45)}.prize-photo .lock{position:absolute;right:-4px;bottom:-6px;font-size:20px}.won{flex-direction:column;text-align:center}.login{display:flex;flex-direction:column;gap:14px;max-width:420px;margin:0 auto}.login .hero{margin:0 -16px 8px}.login label{display:flex;flex-direction:column;gap:6px;font-weight:800}.login input{font:inherit;font-size:22px;padding:12px 14px;border:3px solid #cfd5df;border-radius:14px;background:#fff}.login input:focus{outline:none;border-color:var(--yellow)}.login-err{background:#fdecef;color:var(--red);font-weight:800;padding:10px 12px;border-radius:12px}
