:root{--ink:#17183b;--muted:#696b89;--purple:#5148ca;--purple-dark:#342c99;--lavender:#ded8ff;--paper:#fff;--yellow:#ffd34e;--green:#18845b;--red:#d84b55;--line:#d9d9ec;--shadow:0 16px 42px rgba(42,35,126,.14)}
*{box-sizing:border-box}html{min-height:100%;background:#ece9ff}body{min-height:100vh;margin:0;color:var(--ink);font-family:ui-rounded,"SF Pro Rounded","Nunito",system-ui,-apple-system,sans-serif;background:linear-gradient(160deg,#f2f0ff,#e3deff 55%,#fff2b5 150%)}button,select,input{font:inherit}.app{width:min(100%,1120px);min-height:100vh;margin:0 auto;padding:max(20px,env(safe-area-inset-top)) 18px max(34px,env(safe-area-inset-bottom))}.top{display:flex;justify-content:space-between;align-items:center;gap:12px}.crumb{color:var(--purple);font-size:.86rem;font-weight:900;text-decoration:none}.score-pill{padding:8px 12px;border:2px solid #fff;border-radius:99px;background:rgba(255,255,255,.8);font-weight:950}.score-pill span{color:#d89300}.hero{margin:27px 0 20px}.hero h1{margin:0;color:var(--purple-dark);font-size:clamp(2rem,7vw,3.5rem);line-height:1;letter-spacing:-.05em}.hero p{margin:10px 0 0;color:var(--muted);font-weight:750}.toolbar{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:17px;padding:11px;border:2px solid #fff;border-radius:20px;background:rgba(255,255,255,.7);box-shadow:0 8px 30px rgba(42,35,126,.08)}.field label{display:block;margin:0 0 5px 4px;color:var(--muted);font-size:.72rem;font-weight:900}.field select{width:100%;min-height:45px;padding:0 35px 0 12px;border:2px solid transparent;border-radius:13px;background:#fff;color:var(--ink);font-weight:850;outline:none}.field select:focus{border-color:var(--purple)}.toolbar-actions{display:flex;align-items:end;gap:8px}.btn{min-height:46px;padding:0 17px;border:0;border-radius:14px;cursor:pointer;font-weight:950}.btn-primary{color:#fff;background:var(--purple);box-shadow:0 5px 0 var(--purple-dark)}.btn-secondary{color:var(--purple-dark);background:#fff;border:2px solid var(--line)}.sheet{padding:18px;border:3px solid #fff;border-radius:27px;background:rgba(245,244,255,.86);box-shadow:var(--shadow)}.sheet-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.sheet-head h2{margin:0;font-size:1rem}.sheet-head p{margin:0;color:var(--muted);font-size:.77rem;font-weight:800}.question-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.problem{position:relative;min-height:285px;padding:16px;border:2px solid #eceaf7;border-radius:20px;background:#fff;box-shadow:0 7px 20px rgba(42,35,126,.08);display:flex;flex-direction:column}.problem.solved{border-color:#8bd0b2;background:#f2fcf7}.problem.wrong{border-color:#efa1a9;background:#fff6f7}.problem-top{display:flex;align-items:center;gap:8px}.problem-no{width:28px;height:28px;display:grid;place-items:center;border-radius:9px;color:#fff;background:var(--purple);font-size:.77rem;font-weight:950}.problem-text{font-size:.76rem;font-weight:850}.sum{--cols:3;margin:auto auto 8px;width:min(100%,230px)}.number-row,.answer-row{display:grid;grid-template-columns:30px repeat(var(--cols),minmax(34px,48px));justify-content:center;align-items:center;gap:5px}.number-row{min-height:45px}.operator{text-align:center;color:var(--purple-dark);font-size:1.5rem;font-weight:950}.digit{text-align:center;font-size:clamp(1.55rem,3vw,2rem);font-weight:950;font-variant-numeric:tabular-nums}.rule{height:4px;margin:4px 0 10px 30px;border-radius:4px;background:var(--ink)}.digit-input{width:100%;aspect-ratio:.86;border:2px dashed #b8bad0;border-radius:10px;background:#fff;color:var(--purple-dark);text-align:center;font-size:1.55rem;font-weight:950;outline:none}.digit-input:focus{border-style:solid;border-color:var(--purple);box-shadow:0 0 0 3px rgba(81,72,202,.12)}.digit-input.correct{border-style:solid;border-color:var(--green);color:var(--green);background:#eaf9f2}.digit-input.error{border-style:solid;border-color:var(--red);color:var(--red);background:#fff0f2}.problem-status{min-height:18px;margin:7px 0 0;text-align:center;color:var(--muted);font-size:.7rem;font-weight:900}.problem-status.ok{color:var(--green)}.problem-status.no{color:var(--red)}.check-area{display:flex;align-items:center;justify-content:center;gap:13px;margin-top:18px;flex-wrap:wrap}.feedback{color:var(--muted);font-size:.84rem;font-weight:850}.result-overlay{position:fixed;inset:0;z-index:20;padding:20px;display:grid;place-items:center;background:rgba(30,25,82,.45);backdrop-filter:blur(7px)}.result-card{width:min(100%,560px);max-height:90vh;overflow:auto;padding:30px;border:3px solid #fff;border-radius:28px;background:#fffdf7;box-shadow:0 30px 80px rgba(20,15,70,.25);text-align:center}.stars{font-size:3rem}.result-card h2{margin:9px 0 7px;font-size:clamp(2rem,7vw,2.8rem)}.result-card>p{margin:0 0 20px;color:var(--muted);font-weight:750}.summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:19px}.summary-box{padding:13px 6px;border:2px solid #e4e1f1;border-radius:15px;background:#fff}.summary-value{display:block;color:var(--purple-dark);font-size:1.5rem;font-weight:950}.summary-label{display:block;margin-top:4px;color:var(--muted);font-size:.68rem;font-weight:850}.result-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}@media(max-width:880px){.question-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:590px){.app{padding-left:11px;padding-right:11px}.toolbar{grid-template-columns:1fr 1fr}.toolbar-actions{grid-column:1/-1}.toolbar-actions .btn{flex:1}.sheet{padding:10px}.question-grid{grid-template-columns:1fr}.problem{min-height:245px}.number-row,.answer-row{grid-template-columns:30px repeat(var(--cols),minmax(38px,52px))}.digit{font-size:1.9rem}}@media print{body{background:#fff}.app{width:100%;padding:0}.top,.hero p,.toolbar,.check-area{display:none}.hero{margin:0 0 12px}.hero h1{font-size:24px}.sheet{padding:8px;border:0;box-shadow:none}.question-grid{grid-template-columns:repeat(2,1fr);gap:8px}.problem{min-height:230px;break-inside:avoid;box-shadow:none}.digit-input{color:transparent}.result-overlay{display:none!important}}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important}}
