:root{color:#252b31;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--blue:#1f4e79;--blue-light:#edf3f8;--line:#deded7;--muted:#63717b;--paper:#fffefa;background:#f1efe9;font-family:Hiragino Sans,Noto Sans JP,Yu Gothic,Meiryo,sans-serif;line-height:1.7}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button,a,input{-webkit-tap-highlight-color:transparent}a{color:var(--blue);text-underline-offset:.2em}button,.button{min-height:44px;color:inherit;cursor:pointer;background:#fff;border:1px solid #cbd0d1;border-radius:7px;padding:.5rem .9rem;font-weight:600;line-height:1.5}button:hover:not(:disabled){background:#f0f4f5;border-color:#8a9cab}button:disabled{cursor:default;opacity:.45}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #a46c14}button.primary,.button.primary{background:var(--blue);color:#fff;border-color:var(--blue)}button.primary:hover:not(:disabled){background:#163d60}.button{align-items:center;text-decoration:none;display:inline-flex}.muted{color:var(--muted);font-size:.875rem}.skip-link{z-index:100;background:#fff;padding:12px 18px;position:fixed;top:-100px;left:12px}.skip-link:focus{top:12px}.site-header{background:var(--paper);border-bottom:1px solid var(--line)}.header-inner{justify-content:space-between;align-items:center;gap:20px;max-width:1240px;min-height:88px;margin:auto;padding:16px 32px;display:flex}.brand{color:inherit;align-items:center;gap:13px;font-size:.95rem;font-weight:700;line-height:1.5;text-decoration:none;display:inline-flex}.brand-mark{background:var(--blue);color:#fff;letter-spacing:-.03em;border-radius:9px;place-items:center;width:44px;height:44px;font-size:1.05rem;display:grid}.brand-sub{color:var(--muted);margin-top:2px;font-size:.8rem;font-weight:500;display:block}.header-caption{color:var(--muted);font-size:.8rem}.list-main{max-width:880px;margin:0 auto;padding:55px 32px 64px}.page-intro{margin-bottom:30px}.eyebrow{color:var(--blue);letter-spacing:.06em;margin:0 0 7px;font-size:.8rem;font-weight:700}h1{letter-spacing:.02em;margin:0;font-size:clamp(1.4rem,3vw,1.9rem);font-weight:700;line-height:1.5}.page-intro>p:last-child{color:var(--muted);margin:13px 0 0;font-size:.94rem}.notice{color:#625537;background:#faf7ed;border:1px solid #d8d1bc;border-left:3px solid #ad9354;border-radius:6px;margin:0 0 24px;padding:12px 16px;font-size:.83rem}.list-section-heading{justify-content:space-between;align-items:center;gap:12px;margin:32px 0 13px;display:flex}.list-section-heading h2{margin:0;font-size:1rem}.list-section-heading>span{color:var(--muted);font-size:.8rem}.exam-list{gap:12px;margin:0;padding:0;list-style:none;display:grid}.exam-card{border:1px solid var(--line);background:var(--paper);color:inherit;border-radius:10px;align-items:center;gap:24px;padding:24px;text-decoration:none;display:flex;box-shadow:0 2px 4px #26313a03}.exam-card:hover{background:#fff;border-color:#8ca4b9}.exam-year{color:var(--blue);font-variant-numeric:tabular-nums;font-size:1.65rem;font-weight:700;line-height:1}.exam-info{flex:1;min-width:0}.exam-info h3{margin:0;font-size:1rem}.exam-info p{color:var(--muted);margin:5px 0 12px;font-size:.8rem}.dot{padding:0 7px}.progress-track{background:#e7e8e3;border-radius:8px;height:4px;overflow:hidden}.progress-track>span{border-radius:inherit;background:var(--blue);height:100%;display:block}.exam-action{color:var(--blue);white-space:nowrap;font-size:.85rem;font-weight:700}.exam-action>span{margin-left:8px}.learning-note{border-top:1px solid var(--line);margin-top:30px;padding:26px 0 0}.learning-note h2{margin:0 0 9px;font-size:.92rem}.learning-note p{color:var(--muted);margin:7px 0 0;font-size:.83rem;line-height:1.9}.site-footer{border-top:1px solid var(--line);max-width:1176px;color:var(--muted);justify-content:space-between;gap:12px;margin:0 auto;padding:22px 0 30px;font-size:.75rem;display:flex}.practice-main{max-width:1240px;margin:auto;padding:26px 32px 42px}.back-link{min-height:44px;color:var(--muted);align-items:center;margin-bottom:11px;font-size:.82rem;text-decoration:none;display:inline-flex}.back-link:hover{color:var(--blue);text-decoration:underline}.exam-heading{justify-content:space-between;align-items:center;gap:24px;margin-bottom:25px;display:flex}.score-card{color:var(--muted);text-align:right;grid-template-columns:auto auto;align-items:center;column-gap:15px;font-size:.72rem;display:grid}.score-card strong{color:var(--blue);font-variant-numeric:tabular-nums;grid-area:1/2/3;font-size:2rem;font-weight:600;line-height:1.2}.score-card small{font-size:.72rem}.navigation-card{background:var(--paper);border:1px solid var(--line);border-radius:10px;margin-bottom:24px;padding:18px 24px}.navigation-top{justify-content:space-between;align-items:center;gap:20px;display:flex}.overall-progress{min-width:0;color:var(--muted);align-items:center;gap:18px;font-size:.78rem;display:flex}.overall-progress>span{white-space:nowrap}.overall-progress strong{color:#323d45;font-size:.9rem}.overall-progress .progress-track{width:160px}.navigation-legend{color:var(--muted);font-size:.72rem}.filter-row{flex-wrap:wrap;gap:7px;margin:17px 0 14px;display:flex}.filter{background:0 0;border-color:#dedfd9;border-radius:5px;min-height:36px;padding:6px 11px;font-size:.76rem;font-weight:500}.filter>span{font-variant-numeric:tabular-nums;opacity:.8;margin-left:7px}.filter.active{color:var(--blue);background:var(--blue-light);border-color:#a9bdcd;font-weight:700}.question-numbers{flex-wrap:wrap;gap:7px;display:flex}.number{font-variant-numeric:tabular-nums;border-radius:5px;flex-direction:column;justify-content:center;align-items:center;width:44px;height:48px;min-height:44px;padding:3px;font-size:.85rem;font-weight:500;line-height:1.2;display:flex}.number-marks{height:13px;font-size:.7rem;font-weight:700;line-height:1.2;display:block}.number.draft{border-color:#a8833c}.number.correct{color:#286238;background:#edf5ed;border-color:#b3ccb8}.number.incorrect{color:#943d36;background:#faefec;border-color:#d6b4ae}.number.current{background:var(--blue);color:#fff;border-color:var(--blue)}.number.current:hover:not(:disabled){border-color:var(--blue);background:#163d60}.number-toggle{display:none}.empty-filter{color:var(--muted);font-size:.85rem}.empty-filter .text-button{margin-left:8px}.practice-columns{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);align-items:start;gap:24px;display:grid}.question-card,.answer-card{border:1px solid var(--line);background:#fff;border-radius:10px;min-width:0;padding:24px}.question-heading{border-bottom:1px solid #e9eae4;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;padding-bottom:13px;display:flex}.question-heading h2{color:var(--blue);outline:none;margin:0;scroll-margin-top:24px;font-size:.85rem}.question-heading h2>span{font-variant-numeric:tabular-nums;margin-left:3px;font-size:1.7rem;font-weight:600}.question-heading small{color:var(--muted);margin-left:8px;font-size:.75rem;font-weight:400}.check-label{min-height:44px;color:var(--muted);cursor:pointer;border-radius:5px;align-items:center;gap:7px;padding:6px 8px;font-size:.75rem;display:inline-flex}.check-label.checked{color:var(--blue);background:var(--blue-light)}.check-label input{width:17px;height:17px;accent-color:var(--blue);margin:0}.question-image{width:100%;height:auto;display:block}.image-actions{justify-content:flex-end;padding-top:8px;display:flex}.text-button{color:var(--blue);background:0 0;border:0;padding:8px 4px;font-size:.78rem;font-weight:500}.text-button:hover:not(:disabled){background:var(--blue-light)}.transcript{color:#4e5a62;border-top:1px solid #e9eae4;margin-top:10px;font-size:.8rem}summary{cursor:pointer;min-height:44px;color:var(--muted);padding:12px 0;font-size:.78rem}.transcript p{white-space:pre-wrap}.transcript dl>div{gap:12px;margin:12px 0;display:flex}.transcript dt{color:var(--blue);font-weight:700}.transcript dd{white-space:pre-wrap;margin:0}.question-source{color:var(--muted);border-top:1px solid #e9eae4;margin:12px 0 0;padding-top:14px;font-size:.68rem;line-height:1.9}.question-source a{align-items:center;min-height:32px;display:inline-flex}.answer-top{justify-content:space-between;align-items:center;gap:8px;margin-bottom:18px;display:flex}.answer-card:not(:has(.explanation)){position:sticky;top:20px}.answer-top h2{margin:0;font-size:.95rem}.answer-top>span{color:var(--muted);font-size:.72rem}.choices{grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;display:grid}.choice{background:#fffefa;justify-content:center;align-items:center;gap:7px;min-height:50px;font-size:1.03rem;display:flex}.choice>span{font-size:.75rem}.choice.selected{color:var(--blue);background:var(--blue-light);border-color:var(--blue)}.choice.selected:disabled{opacity:1}.confirm-button{width:100%;min-height:46px;margin-top:12px;font-size:.9rem}.explanation{outline:none;margin-top:20px;scroll-margin-top:16px}.result-banner{border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:13px 15px;font-size:.85rem;display:flex}.result-banner.correct{color:#286238;background:#edf5ed}.result-banner.incorrect{color:#943d36;background:#faefec}.result-banner.cancelled{color:#625537;background:#f2f0e9}.result-banner>span{white-space:nowrap}.result-banner b{font-size:1rem}.explanation h3{margin:22px 0 8px;font-size:.9rem}.explanation p{overflow-wrap:anywhere;margin:10px 0;font-size:.85rem;line-height:1.95}.explanation-summary{font-weight:600}.explanation-point{white-space:pre-line}.choice-explanations{margin:20px 0}.choice-explanations>div{border-top:1px solid #e9eae4;grid-template-columns:34px minmax(0,1fr);gap:12px;padding:13px 0;display:grid}.choice-explanations dt{flex-direction:column;align-items:center;font-size:.85rem;font-weight:700;display:flex}.choice-explanations dt>span{color:#286238;font-size:.6rem}.choice-explanations dd{margin:0;font-size:.8rem;line-height:1.9}.choice-explanations .right-choice{color:#285a36}.explanation p.official-note{color:var(--muted);background:#f6f6f1;border-radius:5px;margin:18px 0;padding:12px 14px;font-size:.7rem;line-height:1.7}.pager{border-top:1px solid #e9eae4;grid-template-columns:1fr 1fr;gap:10px;margin-top:24px;padding-top:20px;display:grid}.pager button{font-size:.8rem}.filter-help{color:var(--muted);margin:8px 0 0;font-size:.73rem}.session-actions{border-top:1px solid #e9eae4;margin-top:14px}.session-actions button{text-align:left;width:100%;margin-bottom:9px;font-size:.78rem}.session-actions button>span{float:right;color:var(--muted);font-size:.72rem;font-weight:400}.session-actions p{color:var(--muted);margin:4px 0 0;font-size:.7rem}.danger-text{color:#943d36}.danger{color:#fff;background:#943d36;border-color:#943d36}button.danger:hover:not(:disabled){background:#7f2f29}dialog{border:1px solid var(--line);width:min(460px,100% - 32px);max-height:calc(100dvh - 32px);color:inherit;border-radius:12px;padding:24px;box-shadow:0 20px 70px #17232b33}dialog::backdrop{background:#1d2d3b88}.modal-heading{justify-content:space-between;align-items:center;gap:16px;display:flex}.modal-heading h2{margin:0;font-size:1.05rem}.icon-button{border:0;flex:0 0 44px;padding:0;font-size:1.5rem;font-weight:400}dialog>p{font-size:.88rem;line-height:1.9}.modal-actions{justify-content:flex-end;gap:12px;margin-top:24px;display:flex}.image-dialog{width:min(1200px,100% - 24px);padding:16px 20px 20px}.image-dialog .modal-heading{z-index:1;background:#fff;position:sticky;top:-16px}.zoom-scroll{overscroll-behavior:contain;border:1px solid #e9eae4;max-height:calc(100dvh - 180px);overflow:auto}.zoom-scroll img{width:1100px;max-width:none;height:auto;display:block}.load-state{max-width:900px;margin:auto;padding:50px 24px}.load-state h1{font-size:1.25rem}.load-state p{color:var(--muted)}.load-state a{margin-left:15px}.mobile-only{display:none}@media (width>=1400px){.navigation-card{padding-right:18px}}@media (width<=1000px){.header-inner,.practice-main{padding-inline:24px}.practice-columns{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr);gap:16px}.question-card,.answer-card{padding:18px}.site-footer{margin-inline:24px}}@media (width<=767px){.answer-card:not(:has(.explanation)){position:static}.header-inner{min-height:76px;padding:13px 18px}.brand{gap:10px;font-size:.85rem}.brand-mark{width:40px;height:40px;font-size:.95rem}.brand-sub{font-size:.7rem}.header-caption,.desktop-only{display:none}.mobile-only{display:block}.list-main{padding:32px 18px 38px}.page-intro{margin-bottom:22px}.page-intro>p:last-child{font-size:.85rem;line-height:1.9}.notice{padding:11px 13px;font-size:.76rem}.list-section-heading{margin-top:26px}.list-section-heading h2{font-size:.9rem}.list-section-heading>span{font-size:.72rem}.exam-card{flex-wrap:wrap;gap:13px;padding:18px 16px}.exam-year{font-size:1.2rem}.exam-info h3{font-size:.9rem}.exam-info p{font-size:.7rem}.exam-action{font-size:.75rem}.learning-note{margin-top:26px}.learning-note p{font-size:.77rem}.site-footer{flex-direction:column;gap:5px;margin-inline:18px;padding:20px 0 24px;font-size:.7rem}.practice-main{padding:12px 14px 28px}.practice-main~.site-footer{padding-bottom:calc(110px + env(safe-area-inset-bottom,0px))}.back-link{margin-bottom:8px;font-size:.76rem}.exam-heading{gap:12px;margin-bottom:18px}.exam-heading .eyebrow{letter-spacing:0;margin-bottom:4px;font-size:.65rem}.exam-heading h1{font-size:1.35rem}.score-card{flex-direction:column;align-items:flex-end;gap:0;display:flex}.score-card>span{font-size:.6rem}.score-card strong{font-size:1.5rem;line-height:1.5}.score-card small{white-space:nowrap;font-size:.6rem}.navigation-card{margin-bottom:16px;padding:12px 14px}.overall-progress{gap:10px;font-size:.7rem}.overall-progress .progress-track{width:70px}.number-toggle{background:0 0;min-height:44px;padding:6px 10px;font-size:.7rem;display:block}.filter-row{gap:5px;margin:10px 0 0}.filter{min-height:44px;padding:7px 8px;font-size:.69rem}.filter>span{margin-left:5px}.question-numbers{gap:6px;margin-top:14px;display:none}.question-numbers.is-open{display:flex}.number{width:44px;height:48px}.empty-filter{margin-bottom:0;font-size:.75rem}.practice-columns{flex-direction:column;gap:16px;display:flex}.question-card,.answer-card{width:100%;padding:16px 14px}.question-heading{margin-bottom:12px;padding-bottom:9px}.question-heading h2>span{font-size:1.5rem}.check-label{padding-inline:4px;font-size:.7rem}.question-image{width:calc(100% + 6px);margin:0 -3px}.question-source{font-size:.64rem}.answer-controls{z-index:20;padding:12px 16px calc(12px + env(safe-area-inset-bottom,0px));background:#fffefa;border-top:1px solid #cbd2d6;grid-template-columns:1fr auto;align-items:center;gap:10px;display:grid;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 18px #27343e0a}.answer-controls:has(.choices:only-child){grid-template-columns:1fr}.choices{gap:6px}.choice{gap:3px;min-width:44px;min-height:46px;padding:8px 3px;font-size:.95rem}.choice>span{font-size:.6rem}.confirm-button{width:auto;min-height:46px;margin:0;padding:8px 13px;font-size:.78rem}.answer-top{margin-bottom:4px}.answer-top h2{font-size:.9rem}.explanation{margin-top:14px}.explanation p{font-size:.85rem}.explanation h3{margin-top:18px}.pager{margin-top:18px;padding-top:16px}.session-actions summary{font-size:.74rem}}@media (width<=359px){.current-name{display:none}.exam-card{column-gap:12px}.exam-action{margin-left:auto}.overall-progress .progress-track{width:35px}.filter{padding-inline:6px;font-size:.65rem}.answer-controls{padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));grid-template-columns:1fr;gap:8px}.confirm-button{width:100%;min-height:40px}.practice-main~.site-footer{padding-bottom:calc(145px + env(safe-area-inset-bottom,0px))}}@media (prefers-reduced-motion:no-preference){button,.exam-card{transition:background-color .12s,border-color .12s}}
