
:root{--ink:#233d35;--green:#246749;--muted:#64776c;--line:#dce5d9}*{box-sizing:border-box}body{margin:0;background:#f5f7f0;color:var(--ink);font:16px/1.85 "Yu Gothic","Meiryo",sans-serif}a{color:var(--green);text-underline-offset:4px}header{background:#fffdf7;border-bottom:1px solid var(--line)}.bar{max-width:1220px;margin:auto;padding:18px 24px;display:flex;justify-content:space-between;align-items:center;gap:24px}.brand{font-weight:bold;font-size:22px;text-decoration:none}.bar nav{display:flex;gap:20px;font-size:14px}.wrap{max-width:1220px;margin:auto;padding:0 24px}.hero{padding:45px 0 28px;max-width:950px}.eyebrow{color:var(--green);font-size:12px;letter-spacing:.18em;font-weight:bold}h1{font-size:clamp(28px,4vw,44px);line-height:1.45;margin:10px 0 20px}h2{font-size:22px;line-height:1.6}h3{font-size:18px}.muted{color:var(--muted)}.summary{display:flex;flex-wrap:wrap;gap:32px;margin:25px 0}.summary b{font-size:27px;display:block;line-height:1.3}.summary small{color:var(--muted)}.filters{display:grid;grid-template-columns:1fr 1fr 1.3fr 1.6fr;gap:14px;padding:23px;border:1px solid var(--line);border-radius:16px;background:white}.filters label{font-size:13px;font-weight:bold;min-width:0}select,input[type=search]{display:block;width:100%;font:inherit;font-size:15px;background:white;border:1px solid #bbcbbd;border-radius:7px;padding:11px;min-width:0}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:20px 0 40px}.card{background:#fffdf7;border:1px solid var(--line);border-radius:16px;padding:22px;min-width:0}.card h2{font-size:20px;margin:12px 0}.card p{font-size:13px}.badge{display:inline-block;background:#e7efe0;color:#426443;border-radius:50px;padding:3px 10px;font-size:12px}.links{display:flex;flex-wrap:wrap;gap:9px}.links a,.button,button{font:inherit;font-size:14px;border:1px solid #b9cdbd;border-radius:8px;padding:8px 12px;text-decoration:none;background:white;color:var(--green);cursor:pointer}.primary,.links a.selected{background:var(--green);color:white}.notice{background:#fff4da;border-left:4px solid #d9ad52;padding:15px 20px;margin:25px 0;font-size:14px}.toolbar{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin:28px auto;max-width:860px}.sheet{max-width:860px;margin:25px auto;background:white;border:1px solid var(--line);border-radius:14px;padding:40px 48px}.sheet h1{font-size:29px}.sheethead{display:flex;justify-content:space-between;gap:20px;font-size:12px}.name{font-size:14px;margin:20px 0}.lesson{background:#f0f5e9;padding:15px 19px;font-size:15px}.problem{margin:24px 0;break-inside:avoid}.problem h2{font-size:18px;font-weight:500;white-space:pre-line}.lines{height:80px;background:repeating-linear-gradient(to bottom,transparent,transparent 31px,#dce4d7 32px,transparent 33px)}.answer{break-inside:avoid;margin:25px 0}.answer p{white-space:pre-line;margin:6px 0}.answer .key{font-weight:bold}.fraction{display:inline-grid;grid-template-rows:1fr 1fr;vertical-align:middle;text-align:center;line-height:1.15;margin:0 .16em;min-width:.8em}.fraction span:first-child{border-bottom:1px solid currentColor;padding:0 .15em .1em}.fraction span:last-child{padding:.1em .15em 0}.support{margin:15px 0;font-size:14px}details{padding:12px;border:1px solid var(--line);border-radius:10px}.references{font-size:12px;overflow-wrap:anywhere}.book-list{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.book-card{padding:25px;border:1px solid var(--line);background:white;border-radius:14px}footer{border-top:1px solid var(--line);padding:30px 0;margin-top:45px;font-size:12px;color:var(--muted)}.hidden{display:none!important}:focus-visible{outline:3px solid #bc8d35;outline-offset:3px}.status{font-size:14px;margin-top:18px}.guide{max-width:850px;margin:35px auto}.guide li{margin:14px 0}
@media(max-width:760px){.bar{align-items:flex-start;flex-direction:column;padding:15px 18px;gap:10px}.bar nav{gap:14px;flex-wrap:wrap}.wrap{padding:0 17px}.hero{padding-top:28px}.filters{grid-template-columns:1fr 1fr;padding:16px;gap:12px}.grid,.book-list{grid-template-columns:1fr}.sheet{padding:25px 20px}.sheet h1{font-size:25px}.sheethead{flex-wrap:wrap;gap:3px}.name{font-size:12px}.problem h2{font-size:16px}.summary{gap:22px}}
@page{size:A4;margin:16mm}@media print{body{background:white;color:#111}header,footer,.toolbar,.no-print{display:none!important}.wrap{padding:0;max-width:none}.sheet{margin:0;padding:0;border:0;border-radius:0;max-width:none}.sheet h1{font-size:20pt}.sheethead,.name{font-size:9pt}.lesson{background:white;border:1px solid #ccc;font-size:10pt;padding:10px}.problem h2{font-size:12pt;line-height:1.7}.lines{height:64px}.support{font-size:10pt}.answer-page{break-before:page}.hide-answers .answer-page{display:none!important}.answer p{font-size:11pt}.problem,.answer{break-inside:avoid}.references{font-size:8pt}}
