@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Noto+Sans+JP:wght@400;500;700&family=Noto+Serif+JP:wght@500;700&display=swap";:root{--primary:#1d4ed8;--primary-hover:#1e40af;--primary-light:#dbeafe;--primary-text:#1e3a8a;--bg:#fff;--bg-warm:#f6f5f4;--bg-hover:#0000000a;--card-bg:#fff;--text:#000000f2;--text-body:#000000f2;--text-muted:#615d59;--text-placeholder:#a39e98;--border:#0000001a;--border-medium:#00000026;--border-solid:#e8e7e5;--shadow-card:#0000000a 0px 4px 18px, #00000007 0px 2px 7.8px, #00000005 0px .8px 2.9px, #00000003 0px .175px 1px;--shadow-btn:0px 1px 2px #0000001a;--radius-btn:4px;--radius-card:8px;--radius-pill:9999px;--radius-sm:4px;--accent:#dd5b00;--success:#1aae39;--success-bg:#f0fdf4;--font-serif:"Noto Serif JP", "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif}body{background-color:var(--bg);color:var(--text-body);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,Noto Sans JP,-apple-system,BlinkMacSystemFont,Hiragino Kaku Gothic ProN,Hiragino Sans,Yu Gothic UI,Meiryo UI,sans-serif;line-height:1.75;overflow-x:hidden}html{scroll-behavior:smooth}.container{max-width:800px;margin:0 auto;padding:1rem}.header{text-align:center;border-bottom:1px solid var(--border);margin-bottom:1.5rem;padding-top:.75rem;padding-bottom:1rem}.brand{cursor:pointer;align-items:center;gap:.5rem;display:inline-flex}.brand-icon{width:28px;height:28px;color:var(--primary);flex-shrink:0}.title{color:var(--text);cursor:pointer;letter-spacing:-.4px;margin:0;font-size:1.5rem;font-weight:700;line-height:1.3}.subtitle{color:var(--text-muted);letter-spacing:.05em;margin-top:.35rem;font-size:.85rem}@media (width>=640px){.title{font-size:1.85rem}}.nav-tab{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-bottom:2px solid #0000;align-items:center;gap:.4rem;padding:.5rem .75rem;font-family:Inter,sans-serif;font-size:.9375rem;font-weight:600;transition:color .15s,border-color .15s;display:flex}.nav-tab:hover{color:var(--text);background:var(--bg-hover);border-radius:var(--radius-sm) var(--radius-sm) 0 0}.nav-tab.active{color:var(--text);border-bottom:2px solid var(--primary)}.nav-progress-badge{background:var(--primary);color:#fff;border-radius:var(--radius-pill);margin-left:2px;padding:1px 6px;font-size:.6rem;font-weight:700}.card{background:var(--card-bg);border-radius:var(--radius-card);border:1px solid var(--border);box-shadow:var(--shadow-card);margin-bottom:1rem;padding:1.25rem}.card-module{background:var(--card-bg);border-radius:var(--radius-card);cursor:pointer;border:1px solid var(--border);border-left:3px solid var(--ch-accent,var(--primary));margin-bottom:.75rem;padding:1rem;transition:border-color .15s,box-shadow .15s,background .15s}.card-module:hover{border-color:var(--ch-accent,var(--primary));border-left-color:var(--ch-accent,var(--primary));background:var(--ch-light,var(--primary-light));box-shadow:0 2px 8px #00000012}.btn{background:var(--primary);color:#fff;border-radius:var(--radius-btn);cursor:pointer;width:100%;box-shadow:var(--shadow-btn);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:.5rem 1rem;font-family:Inter,sans-serif;font-size:.9375rem;font-weight:600;transition:background .15s,transform .1s;display:flex}.btn:hover{background:var(--primary-hover)}.btn:active{transform:scale(.98)}.btn-back{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;align-items:center;gap:.25rem;margin-bottom:.75rem;padding:4px 6px;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;transition:background .15s,color .15s;display:flex}.btn-back:hover{background:var(--bg-hover);color:var(--text)}.badge-chapter{background:var(--primary-light);color:var(--primary-text);border-radius:var(--radius-pill);letter-spacing:.125px;padding:2px 8px;font-size:.6875rem;font-weight:600}.badge-level{border-radius:var(--radius-pill);letter-spacing:.125px;padding:2px 8px;font-size:.6875rem;font-weight:600}.progress-badge{border-radius:var(--radius-pill);background:var(--bg-warm);color:var(--text-muted);border:1px solid var(--border);letter-spacing:.125px;padding:2px 8px;font-size:.6875rem;font-weight:600}.progress-badge.perfect{background:var(--success-bg);color:#166534;border-color:#bbf7d0}.content-h2{color:var(--text);letter-spacing:-.3px;border-bottom:1px solid var(--border);margin:2rem 0 1rem;padding-bottom:.5rem;scroll-margin-top:70px;font-size:1.375rem;font-weight:700}.content-h3,.content-h4{scroll-margin-top:70px}.content-h3{color:var(--text);letter-spacing:-.2px;border-left:3px solid var(--primary);margin:1.75rem 0 .75rem;padding-left:.75rem;font-size:1.125rem;font-weight:700}.content-h4{color:var(--text);margin:1.5rem 0 .5rem;font-size:1rem;font-weight:600}.content-p{color:var(--text-body);margin-bottom:1rem;line-height:1.8}.progress-strip{background:var(--bg-warm);border:1px solid var(--border);border-radius:var(--radius-sm);align-items:center;gap:.75rem;margin-bottom:.75rem;padding:.5rem .75rem;font-size:.82rem;display:flex}.progress-strip-stat{color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;font-weight:700}.progress-strip-stat .pct{color:var(--primary-text)}.progress-strip-bar{background:#0000000f;border-radius:9999px;flex:1;min-width:60px;height:5px;overflow:hidden}.progress-strip-bar-fill{background:var(--primary);border-radius:9999px;height:100%;transition:width .4s}.progress-strip-next{background:var(--card-bg);border:1px solid var(--border);border-left:3px solid var(--ch-accent,var(--primary));border-radius:var(--radius-btn);color:var(--text);cursor:pointer;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;align-items:center;gap:.3rem;max-width:240px;padding:4px 10px;font-size:.78rem;font-weight:600;text-decoration:none;transition:background .15s;display:inline-flex;overflow:hidden}.progress-strip-next:hover{background:var(--bg-hover)}@media (width<=640px){.progress-strip{flex-wrap:wrap}.progress-strip-next{justify-content:space-between;width:100%;max-width:100%}}.chapter-header-progress{background:#00000014;border-radius:9999px;height:4px;margin-top:.5rem;overflow:hidden}.chapter-header-progress-fill{border-radius:9999px;height:100%;transition:width .4s}.module-toc{background:var(--bg-warm);border-left:3px solid var(--ch-accent,var(--primary));border-radius:var(--radius-sm);margin:1rem 0 1.5rem;padding:.75rem 1rem;font-size:.875rem}.module-toc summary{cursor:pointer;color:var(--text);align-items:center;gap:.4rem;font-weight:700;list-style:none;display:flex}.module-toc summary::-webkit-details-marker{display:none}.module-toc summary:before{content:"▶";color:var(--ch-accent,var(--primary));font-size:.7rem;transition:transform .15s}.module-toc[open] summary:before{transform:rotate(90deg)}.module-toc ol{color:var(--text-muted);margin:.75rem 0 0;padding-left:1.5rem}.module-toc li{margin-bottom:.4rem;line-height:1.5}.module-toc a{color:var(--text-body);text-decoration:none;transition:color .15s}.module-toc a:hover{color:var(--ch-accent,var(--primary));text-decoration:underline}.scroll-progress{background:var(--ch-accent,var(--primary));z-index:100;pointer-events:none;height:3px;transition:width 50ms linear;position:fixed;top:0;left:0}.back-to-top{background:var(--ch-accent,var(--primary));color:#fff;cursor:pointer;opacity:0;pointer-events:none;z-index:50;border:none;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;transition:opacity .2s,transform .2s;display:flex;position:fixed;bottom:1.5rem;right:1.5rem;box-shadow:0 4px 12px #00000026}.back-to-top.visible{opacity:.9;pointer-events:auto}.back-to-top:hover{opacity:1;transform:translateY(-2px)}.module-bottom-nav{border-top:1px solid var(--border);flex-wrap:wrap;gap:.75rem;margin-top:1.5rem;padding-top:1rem;display:flex}.module-bottom-nav button{border-radius:var(--radius-btn);cursor:pointer;flex:1;justify-content:center;align-items:center;gap:.4rem;min-width:180px;padding:.7rem 1rem;font-size:.9rem;font-weight:600;transition:background .15s,border-color .15s;display:flex}.module-bottom-nav .btn-back-to-list{background:var(--bg-warm);color:var(--text-body);border:1px solid var(--border)}.module-bottom-nav .btn-back-to-list:hover{background:var(--bg-hover)}.module-bottom-nav .btn-next-module{background:var(--ch-accent,var(--primary));color:#fff;border:1px solid #0000;flex:2}.module-bottom-nav .btn-next-module:hover{opacity:.92}.content-body{overflow-x:auto}.content-table-wrap{margin:1rem 0;overflow-x:auto}.content-table{border-collapse:collapse;width:100%;font-size:.9rem;line-height:1.5}.content-table th,.content-table td{border:1px solid var(--border);text-align:left;padding:.5rem .75rem}.content-table th{background:var(--bg-secondary,#f8fafc);color:var(--text);font-weight:600}.content-table tr:nth-child(2n) td{background:#fafafa}.content-hr{border:none;border-top:1px solid var(--border);margin:2rem 0}.module-desc{color:var(--text-muted);margin-top:.25rem;font-size:.8125rem}.chapter-header{border-bottom:2px solid var(--ch-accent,var(--primary));background:var(--ch-bg,var(--primary-light));border-radius:var(--radius-card) var(--radius-card) 0 0;margin-top:1.5rem;margin-bottom:0;padding:1rem 1rem .75rem}.chapter-header:first-child{margin-top:0}.chapter-block{margin-bottom:1.5rem}.search-container{margin:1rem 0}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-icon{color:var(--text-placeholder);position:absolute;left:.875rem}.search-input{border-radius:var(--radius-card);border:1px solid var(--border);background:var(--card-bg);width:100%;color:var(--text-body);box-sizing:border-box;outline:none;padding:.625rem 1rem .625rem 2.5rem;font-family:Inter,sans-serif;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.search-input:focus{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light)}.search-input::placeholder{color:var(--text-placeholder)}.search-clear{cursor:pointer;width:20px;height:20px;color:var(--text-muted);background:#0000000d;border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;right:.75rem}.glossary-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1rem;display:grid}.card-glossary{background:var(--card-bg);border-radius:var(--radius-card);border:1px solid var(--border);box-shadow:var(--shadow-card);flex-direction:column;padding:1.25rem;transition:border-color .15s,box-shadow .15s;display:flex}.card-glossary:hover{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-light), var(--shadow-card)}.glossary-header{justify-content:space-between;align-items:flex-start;gap:.5rem;margin-bottom:.75rem;display:flex}.glossary-header h4{color:var(--text);letter-spacing:-.1px;margin:0;font-size:1rem;font-weight:700;line-height:1.3}.glossary-explanation{color:var(--text-muted);flex-grow:1;font-size:.8125rem;line-height:1.6}.related-links{background:var(--bg-warm);border-radius:var(--radius-sm);margin-top:1rem;padding:.75rem}.label-related{color:var(--text-placeholder);text-transform:uppercase;letter-spacing:.05em;margin:0 0 .5rem;font-size:.6875rem;font-weight:600}.links-row{flex-wrap:wrap;gap:.5rem;display:flex}.btn-link{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius-btn);cursor:pointer;color:var(--primary);align-items:center;gap:4px;padding:3px 10px;font-family:Inter,sans-serif;font-size:.75rem;font-weight:500;transition:background .15s,border-color .15s;display:flex}.btn-link:hover{background:var(--primary-light);border-color:var(--primary)}.score-banner{background:linear-gradient(135deg, var(--primary-light), #dbeafe);border-radius:var(--radius-card);color:var(--primary-hover);text-align:center;border:1px solid #93c5fd;padding:.75rem 1.25rem;font-size:1rem;font-weight:700}.rq-result-row{border-bottom:1px solid var(--border);align-items:center;gap:.5rem;padding:.4rem 0;display:flex}.rq-result-row:last-child{border-bottom:none}.rq-result-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.rq-result-dot.ok{background:var(--success)}.rq-result-dot.ng{background:#ef4444}.quiz-options{flex-direction:column;gap:.5rem;display:flex}.quiz-options.compact{grid-template-columns:1fr 1fr;gap:.5rem;display:grid}.site-footer{border-top:1px solid var(--border);text-align:center;margin-top:3rem;padding:1.5rem 1rem}.footer-disclaimer{color:var(--text-muted);margin:0 0 .5rem;font-size:.75rem;line-height:1.5}.footer-links{justify-content:center;gap:1rem;margin-bottom:.5rem;display:flex}.footer-link{color:var(--primary);cursor:pointer;background:0 0;border:none;padding:0;font-family:Inter,sans-serif;font-size:.75rem;text-decoration:underline;transition:color .15s}.footer-link:hover{color:var(--primary-hover)}.footer-copy{color:var(--text-placeholder);margin:0;font-size:.6875rem}.privacy-page{max-width:600px}.privacy-page h2{letter-spacing:-.3px;color:var(--text);margin:0 0 .25rem;font-size:1.375rem;font-weight:700}.privacy-updated{color:var(--text-muted);margin:0 0 2rem;font-size:.75rem}.privacy-page section{margin-bottom:2rem}.privacy-page h3{color:var(--primary);border-bottom:1px solid var(--border);margin:0 0 .75rem;padding-bottom:.4rem;font-size:1rem;font-weight:700}.privacy-page p{color:var(--text-body);margin:0 0 .75rem;font-size:.875rem;line-height:1.75}.privacy-page a{color:var(--primary);text-decoration:underline}.privacy-disclaimer{border-radius:var(--radius-sm);background:#fffbeb;border:1px solid #fde68a;color:#92400e!important;padding:.75rem 1rem!important;font-size:.8rem!important}@media (width<=640px){.container{max-width:100%}.glossary-grid,.quiz-options.compact{grid-template-columns:1fr}.nav-tab{padding:.4rem .6rem;font-size:.8125rem}}
