*{box-sizing:border-box}body{margin:0;background:#f5f6f8;color:#111827;font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic","Noto Sans JP",sans-serif}.hidden{display:none!important}button,input,select,textarea{font:inherit}button{cursor:pointer}h1,h2,h3,p{margin-top:0}.screen{min-height:100vh;display:grid;place-items:center;padding:18px}.loginBox{width:min(420px,100%);background:white;border:1px solid #e5e7eb;border-radius:22px;padding:22px}.logo{width:64px;height:64px;border-radius:18px;background:#111827;color:white;display:grid;place-items:center;font-weight:900;margin-bottom:14px}.login input{width:100%;padding:13px;border:1px solid #d1d5db;border-radius:14px;margin:8px 0}.login button,.mainBtn{width:100%;padding:14px;border:0;border-radius:15px;background:#111827;color:white;font-weight:900;margin-top:8px}.subBtn{width:100%;padding:14px;border:1px solid #d1d5db;border-radius:15px;background:white;color:#111827;font-weight:900;margin-top:8px}.dangerBtn{width:100%;padding:14px;border:1px solid #fecaca;border-radius:15px;background:white;color:#b91c1c;font-weight:900;margin-top:8px}.small{font-size:12px;color:#6b7280}.err{color:#b91c1c;font-size:13px}header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;gap:12px;align-items:center;padding:calc(12px + env(safe-area-inset-top)) 14px 10px;background:rgba(245,246,248,.96);backdrop-filter:blur(10px);border-bottom:1px solid #e5e7eb}header h1{font-size:18px;margin:0}header p{margin:2px 0 0;color:#6b7280;font-size:12px}.smallBtn{border:1px solid #d1d5db;background:white;border-radius:12px;padding:9px 12px;font-weight:700}nav{position:sticky;top:68px;z-index:19;display:grid;grid-template-columns:repeat(6,1fr);gap:5px;padding:8px;background:#f5f6f8;border-bottom:1px solid #e5e7eb}nav button{border:1px solid #d1d5db;border-radius:999px;background:white;padding:8px 2px;font-weight:800;font-size:11px}nav button.active{background:#111827;color:white;border-color:#111827}main{max-width:860px;margin:0 auto;padding:14px;padding-bottom:calc(28px + env(safe-area-inset-bottom))}.card{background:white;border:1px solid #e5e7eb;border-radius:20px;padding:16px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,.04)}.hero{background:linear-gradient(135deg,#111827,#374151);color:white}.hero p{color:#e5e7eb}.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}.big{font-size:34px;font-weight:900;letter-spacing:-.04em}.note{font-size:13px;color:#6b7280;line-height:1.7}.selectors{display:grid;grid-template-columns:1fr 1fr;gap:10px}.selectors select{width:100%;padding:11px;border:1px solid #d1d5db;border-radius:12px;background:white;margin-top:5px}.bar{display:flex;justify-content:space-between;margin-top:10px;color:#6b7280;font-size:13px}.questionTop{display:flex;justify-content:space-between;gap:10px;align-items:start}.badge{font-size:12px;border-radius:999px;background:#f3f4f6;color:#6b7280;padding:4px 8px;white-space:nowrap}.qNo{font-size:18px;font-weight:900}.qText{font-size:17px;line-height:1.8;white-space:pre-wrap;margin:18px 0}.choices{display:grid;grid-template-columns:1fr 1fr;gap:12px}.choice{min-height:74px;border:2px solid #d1d5db;border-radius:18px;background:white;font-size:30px;font-weight:900}.choice.ok.selected{background:#16a34a;border-color:#16a34a;color:white;box-shadow:0 0 0 4px #bbf7d0}.choice.ng.selected{background:#dc2626;border-color:#dc2626;color:white;box-shadow:0 0 0 4px #fecaca}.pager{display:grid;grid-template-columns:1fr 1fr;gap:10px}.pager button{padding:12px;border:1px solid #d1d5db;border-radius:14px;background:white;font-weight:900}.jumpGrid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;margin-top:12px}.jump{border:1px solid #d1d5db;border-radius:9px;background:white;padding:7px 0;font-size:11px;font-weight:800}.jump.answered{background:#dbeafe;border-color:#93c5fd}.jump.current{outline:3px solid #111827}.jump.correct{background:#dcfce7;border-color:#86efac}.jump.wrong{background:#fee2e2;border-color:#fca5a5}.result{margin-top:12px;padding:12px;border-radius:14px;background:#f9fafb;border:1px solid #e5e7eb}.wrongItem{background:white;border:1px solid #e5e7eb;border-radius:16px;padding:14px;margin-bottom:10px}.statRow{display:flex;justify-content:space-between;border-bottom:1px solid #e5e7eb;padding:10px 0}.danger{background:#fff7ed;border:1px solid #fed7aa;border-radius:14px;padding:12px}textarea{width:100%;min-height:190px;border:1px solid #d1d5db;border-radius:14px;padding:12px}.registered{border:1px solid #e5e7eb;border-radius:14px;padding:10px;margin:8px 0}#toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#111827;color:white;border-radius:999px;padding:10px 14px;opacity:0;transition:.2s;pointer-events:none;z-index:100}#toast.show{opacity:1}@media(max-width:420px){.grid2{grid-template-columns:1fr}.jumpGrid{grid-template-columns:repeat(6,1fr)}nav{top:64px}}@media print{header,nav,button,#toast{display:none!important}body{background:white}.card{box-shadow:none;border:1px solid #ddd;break-inside:avoid}main{max-width:none}}
.heroSub{background:rgba(255,255,255,.12)!important;color:white!important;border-color:rgba(255,255,255,.35)!important}
.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.dayCell{border:1px solid #e5e7eb;border-radius:10px;background:#fff;padding:8px 3px;text-align:center;font-size:11px}.dayCell.done{background:#dcfce7;border-color:#86efac;color:#14532d;font-weight:900}.dayCell.today{outline:3px solid #111827}.reviewDue{border:1px solid #e5e7eb;border-radius:14px;padding:10px;margin:8px 0;background:#fff}.reviewDue.now{background:#fff7ed;border-color:#fed7aa}.reviewDue.future{background:#f9fafb;color:#6b7280}

.feedbackBox{border:1px solid #e5e7eb;border-radius:14px;background:#f9fafb;padding:12px;white-space:pre-wrap;line-height:1.7;font-size:14px}
.feedbackGood{color:#166534;font-weight:900}.feedbackWarn{color:#b45309;font-weight:900}.feedbackBad{color:#b91c1c;font-weight:900}
