:root{--bg:#f4f7ff;--card:#fff;--ink:#102044;--muted:#687694;--line:#dce5f6;--blue:#3159dc;--blue2:#eaf0ff;--violet:#7655d9;--orange:#e77a25;--green:#178c67;--red:#d84a4a;--shadow:0 12px 34px #183a7b14}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-family:"BIZ UDPGothic","Noto Sans JP","Yu Gothic",system-ui,sans-serif;line-height:1.7}.topbar{height:74px;position:sticky;top:0;z-index:20;background:#fffdf9eF;backdrop-filter:blur(14px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 max(18px,env(safe-area-inset-left))}.brand{border:0;background:none;display:flex;gap:10px;align-items:center;color:var(--ink);text-align:left;font:inherit;cursor:pointer}.brandmark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--blue);color:white;font-weight:900}.brand b{display:block}.brand small{display:block;color:var(--muted);font-size:.7rem}.header-right{display:flex;gap:8px;align-items:center}.pill,.level-pill{padding:7px 11px;border:1px solid var(--line);border-radius:999px;background:white;font-size:.76rem}.pill.ready{color:var(--green);background:#eaf9f3}.pill.error{color:var(--red);background:#fff0f0}.level-pill b{color:var(--blue)}main{max-width:1100px;margin:auto;padding:28px 18px 110px}.screen{display:none}.screen.active{display:block}.hero{min-height:420px;border-radius:30px;padding:48px;background:linear-gradient(135deg,#13275a,#3159dc 55%,#6d70eb);color:white;display:grid;grid-template-columns:1.2fr .8fr;align-items:center;overflow:hidden;box-shadow:var(--shadow)}.eyebrow{font-size:.73rem;letter-spacing:.16em;font-weight:900;color:var(--blue);text-transform:uppercase;margin:0 0 5px}.hero .eyebrow{color:#c9d6ff}.hero h1{font-size:clamp(2.2rem,6vw,4.4rem);line-height:1.12;margin:.15em 0}.hero h1 em{font-style:normal;color:#ffe08a}.hero p{max-width:620px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:25px}.primary,.secondary,.danger,.text-button{font:inherit;font-weight:800;border-radius:14px;padding:13px 18px;cursor:pointer}.primary{background:var(--blue);color:white;border:2px solid var(--blue)}.hero .primary{background:white;color:#2348bd;border-color:white}.secondary{background:var(--blue2);color:var(--blue);border:2px solid transparent}.hero .secondary{background:#ffffff20;color:white;border-color:#ffffff50}.danger{background:#fff0f0;color:var(--red);border:1px solid #ffd0d0}.text-button{background:none;border:0;color:var(--blue);padding-left:0}.wide{width:100%}.hero-orbit{height:270px;position:relative;display:grid;place-items:center}.hero-orbit b{font-size:5rem}.hero-orbit span{position:absolute;background:#ffffff20;border:1px solid #ffffff40;border-radius:999px;padding:8px 14px}.hero-orbit span:nth-child(1){top:5%;left:28%}.hero-orbit span:nth-child(2){top:35%;right:4%}.hero-orbit span:nth-child(3){bottom:8%;right:26%}.hero-orbit span:nth-child(4){bottom:20%;left:4%}.dashboard-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;margin-top:22px}.panel,.question-card,.answer-card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px;box-shadow:var(--shadow)}.panel-head{display:flex;justify-content:space-between;align-items:center}.panel h2,.section-title{margin:.1em 0}.panel-head span{color:var(--muted);font-size:.8rem}.progress{height:12px;background:#e8edfa;border-radius:20px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--blue),#7e75eb);transition:.4s}.stats,.record-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.stats div,.record-summary div{text-align:center;padding:12px;background:#f7f9ff;border-radius:13px}.stats b,.record-summary b{display:block;font-size:1.4rem}.stats small,.record-summary small{color:var(--muted)}.big-question{font-size:1.2rem;font-weight:800}.section-title{margin-top:34px}.mode-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.mode-card{border:0;background:white;border-radius:19px;padding:20px;text-align:left;box-shadow:var(--shadow);cursor:pointer;color:var(--ink);border-top:5px solid}.mode-card span{font-size:2rem;display:block}.mode-card b{display:block;font-size:1.1rem}.mode-card small{color:var(--muted)}.mode-card.blue{border-color:var(--blue)}.mode-card.violet{border-color:var(--violet)}.mode-card.orange{border-color:var(--orange)}.mode-card.green{border-color:var(--green)}.page-head{display:flex;gap:16px;align-items:flex-start;margin:10px 0 26px}.page-head h1,.quiz-head h1{margin:0}.page-head p{margin:.2em 0}.back{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:white;font-size:1.25rem;cursor:pointer}.domain-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.domain-card{background:white;border:1px solid var(--line);border-radius:25px;padding:24px;cursor:pointer;text-align:left;color:var(--ink);box-shadow:var(--shadow);font:inherit}.domain-card:hover{transform:translateY(-2px)}.domain-card .icon{font-size:2.2rem}.domain-card h2{margin:.2em 0}.domain-card p{color:var(--muted)}.domain-card footer{display:flex;justify-content:space-between;color:var(--blue);font-weight:800}.topic-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.topic-card{background:white;border:1px solid var(--line);border-radius:20px;padding:20px;text-align:left;color:var(--ink);font:inherit;cursor:pointer;box-shadow:var(--shadow)}.topic-card .tag{display:inline-block;padding:3px 8px;background:var(--blue2);color:var(--blue);font-size:.68rem;border-radius:999px}.topic-card h3{margin:.5em 0}.topic-card p{color:var(--muted);font-size:.88rem}.topic-card .status{font-size:.75rem;color:var(--green)}.lesson-section{background:white;border:1px solid var(--line);border-radius:23px;padding:25px;margin:16px 0;box-shadow:var(--shadow)}.lesson-section h2{margin-top:0}.concept-box{background:linear-gradient(135deg,#eef3ff,#f9f7ff);border-left:5px solid var(--blue);padding:18px;border-radius:14px;font-size:1.08rem}.formula{font-size:clamp(1.4rem,4vw,2rem);font-weight:900;text-align:center;padding:20px}.thinking-list{display:grid;gap:10px}.thinking-list div{padding:13px 15px;border:1px solid var(--line);border-radius:13px}.example-box{background:#fffaf0;border:1px solid #f3dfad;border-radius:15px;padding:18px}.lesson-footer{display:flex;gap:12px;justify-content:flex-end;margin-top:18px}.quiz-head{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center}.type-badge{padding:6px 10px;border-radius:999px;background:#f1edff;color:var(--violet);font-size:.75rem}.question-card{margin:18px 0}.question-meta{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem}.question-card h2{font-size:clamp(1.4rem,5vw,2.2rem)}.question-visual{font-size:1rem}.answer-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.answer-head small{color:var(--muted)}#answer{font-size:2rem;font-weight:900;min-height:1.4em}.answer-head button,.padtop button,.symbol-row button{border:0;background:#edf2ff;color:var(--blue);border-radius:11px;padding:9px 12px;font-weight:800}.padbox{display:grid;gap:12px}.padtop{display:flex;justify-content:space-between}.canvaswrap{position:relative;height:310px;border:3px solid #bccbf5;border-radius:20px;background:white;overflow:hidden}.pad{width:100%;height:100%;display:block;touch-action:none}.guide{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;color:#b3bfda;font-weight:800}.candidates{display:flex;gap:10px;flex-wrap:wrap}.candidate{min-width:88px;background:white;border:2px solid var(--line);border-radius:15px;padding:9px;font:inherit}.candidate strong{font-size:1.5rem;display:block}.candidate small{color:var(--muted)}.modelNote{padding:12px;background:#fff6dc;border-radius:12px;color:#8a6500}.symbol-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0}.feedback{display:none;margin-top:12px;padding:14px;border-radius:13px}.feedback.show{display:block}.feedback.ok{background:#e8f8f1;color:#087450}.feedback.ng{background:#fff0f0;color:#b43232}.record-summary{margin-bottom:20px}.record-list{display:grid;gap:12px}.record-row{background:white;border:1px solid var(--line);border-radius:16px;padding:15px;display:grid;grid-template-columns:1fr auto;gap:10px}.record-row .bar{grid-column:1/-1;height:8px;background:#e8edfa;border-radius:10px;overflow:hidden}.record-row .bar i{display:block;height:100%;background:var(--blue)}.bottom-nav{position:fixed;z-index:30;bottom:0;left:0;right:0;height:72px;padding-bottom:env(safe-area-inset-bottom);background:#fffffff2;backdrop-filter:blur(15px);border-top:1px solid var(--line);display:none;justify-content:space-around}.bottom-nav button{border:0;background:none;color:var(--muted);font-size:1.2rem}.bottom-nav span{display:block;font-size:.65rem}.cookieGrid{display:grid}
@media(max-width:760px){.topbar{height:64px}.pill{display:none}main{padding:18px 13px 105px}.hero{grid-template-columns:1fr;padding:28px 22px;min-height:auto}.hero-orbit{display:none}.dashboard-grid,.domain-grid{grid-template-columns:1fr}.mode-grid,.topic-grid{grid-template-columns:repeat(2,1fr)}.mode-card{padding:16px}.lesson-footer{flex-direction:column}.lesson-footer button{width:100%}.canvaswrap{height:280px}.bottom-nav{display:flex}.quiz-head{grid-template-columns:auto 1fr}.quiz-head .type-badge{grid-column:2}.brand small{display:none}.header-right{gap:4px}.symbol-row{grid-template-columns:repeat(2,1fr)}}
/* v2: ソフトキーボード＋計算メモ */
.answer-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.math-keyboard{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin:14px 0 16px}
.math-keyboard button{min-height:62px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font:inherit;font-size:1.25rem;font-weight:900;box-shadow:0 3px 10px #17356d0c;cursor:pointer}
.math-keyboard button:active{transform:translateY(1px);background:var(--blue2)}
.math-keyboard .op{background:#edf2ff;color:var(--blue);font-size:.9rem;line-height:1.2}
.math-keyboard .op small{font-size:1.25rem}
.math-keyboard .memo-key{background:#fff5e9;color:#a95a16;font-size:.9rem}
.quiz-memo{margin:8px 0 16px;padding-top:12px;border-top:1px dashed var(--line)}
.memo-note{padding:11px 13px;margin-bottom:12px;border-radius:12px;background:#f5f7fd;color:var(--muted);font-size:.86rem}
.memo-canvas{height:360px;background-color:#fff;background-image:linear-gradient(#edf1fa 1px,transparent 1px),linear-gradient(90deg,#edf1fa 1px,transparent 1px);background-size:28px 28px}
#answer{word-break:break-all;letter-spacing:.04em}
@media(max-width:760px){
  .math-keyboard{gap:7px}
  .math-keyboard button{min-height:56px;font-size:1.15rem}
  .memo-canvas{height:300px}
  .answer-head{align-items:flex-start;gap:10px}
  .answer-actions{max-width:54%}
  .answer-actions button{padding:8px 9px}
}
