@import"https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&family=Zen+Old+Mincho:wght@600;700&display=swap";:root{font-family:Noto Sans JP,sans-serif;color:#183047;background:#f4f7fa;font-synthesis:none;--navy:#123c69;--blue:#2b6597;--gold:#e9a93f;--paper:#fff;--muted:#657586;--line:#dbe4ec}*{box-sizing:border-box}body{margin:0;min-width:320px;background:linear-gradient(180deg,#edf3f8 0,#f8fafc 250px);color:#183047}a{color:inherit;text-decoration:none}button,input{font:inherit}.app-shell{min-height:100vh;padding-bottom:82px}.topbar{height:72px;padding:0 max(20px,calc((100vw - 760px)/2));display:flex;align-items:center;gap:12px;background:#ffffffe6;border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.brand-mark{width:38px;height:38px;border-radius:12px;background:var(--navy);color:#fff;display:grid;place-items:center;font-family:Zen Old Mincho;font-size:22px}.topbar>div:last-child{display:flex;flex-direction:column}.topbar strong{font-family:Zen Old Mincho;font-size:18px}.topbar span{font-size:11px;color:var(--muted)}main{max-width:760px;margin:auto}.page{padding:28px 20px 50px}.welcome{padding:18px 4px 22px}.eyebrow{margin:0 0 8px;color:var(--blue);font-size:13px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.welcome h1,.page-heading h1,.lesson-header h1{font-family:Zen Old Mincho;font-size:clamp(28px,7vw,40px);line-height:1.45;letter-spacing:.01em;margin:0 0 12px;color:#102f4c}.welcome>p:last-child,.page-heading>p:last-child,.lesson-header>p{color:var(--muted);line-height:1.8;margin:0}.continue-card{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;background:var(--navy);color:#fff;border-radius:20px;padding:20px;box-shadow:0 12px 30px #123c6928}.continue-card .icon-disc{width:46px;height:46px;border-radius:14px;background:#ffffff20;display:grid;place-items:center}.continue-card div:nth-child(2){display:flex;flex-direction:column;gap:3px}.continue-card small{color:#bcd3e8}.continue-card strong{line-height:1.45}.continue-card span{font-size:12px;color:#d8e5ef}.quick-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:16px 0 34px}.quick-grid a{background:#fff;border:1px solid var(--line);border-radius:16px;padding:16px;display:grid;grid-template-columns:auto 1fr;gap:5px 9px}.quick-grid svg{grid-row:1/3;color:var(--blue)}.quick-grid strong{font-size:14px}.quick-grid span{color:var(--muted);font-size:13px}.section-heading{display:flex;align-items:center;justify-content:space-between}.section-heading h2{font-family:Zen Old Mincho;margin:0}.section-heading a{display:flex;align-items:center;gap:4px;color:var(--blue);font-size:13px;font-weight:700}.section-copy{color:var(--muted);line-height:1.7}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:74px;padding-bottom:env(safe-area-inset-bottom);display:flex;justify-content:center;background:#fffffff2;border-top:1px solid var(--line);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);z-index:10}.bottom-nav a{width:min(20%,110px);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;color:#7b8996;font-size:11px;font-weight:600}.bottom-nav a.active{color:var(--navy)}.page-heading{margin-bottom:28px}.page-heading h1{font-size:32px}.domain-list{display:grid;gap:14px}.domain-card{display:grid;grid-template-columns:48px 1fr;gap:12px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px}.domain-number{font-family:Zen Old Mincho;font-size:24px;color:var(--gold)}.domain-body h2{margin:0;font-size:18px}.domain-body>p{margin:4px 0 12px;color:var(--muted);font-size:13px}.domain-body>a{border-top:1px solid var(--line);padding:13px 0;display:flex;align-items:center;justify-content:space-between;gap:10px}.domain-body>a div{display:flex;flex-direction:column;gap:4px}.domain-body>a span{font-size:11px;color:var(--blue)}.lesson-header{padding-bottom:22px;border-bottom:1px solid var(--line)}.lesson-header h1{font-size:32px}.draft-badge{display:inline-block;background:#fff2d8;color:#805000;border:1px solid #f1ce86;border-radius:99px;padding:5px 9px;font-size:12px;font-weight:700;margin-bottom:14px}.meta{display:flex;align-items:center;gap:6px;margin-top:12px;font-size:13px;color:var(--muted)}.markdown{font-size:16px;line-height:2;color:#263b4e}.markdown h2{font-family:Zen Old Mincho;font-size:24px;line-height:1.55;color:#143854;margin:42px 0 12px;padding-left:13px;border-left:4px solid var(--gold)}.markdown img{display:block;max-width:100%;margin:24px auto;border-radius:12px;background:#fff}.markdown table{width:100%;border-collapse:collapse;margin:20px 0;font-size:14px;background:#fff}.markdown th,.markdown td{border:1px solid var(--line);padding:10px;text-align:left}.markdown th{background:#eaf1f7}.key-points{background:#eaf2f8;border-radius:18px;padding:20px;margin:30px 0}.key-points h2{font-family:Zen Old Mincho;margin:0 0 10px}.key-points li{margin:8px 0;line-height:1.7}.primary-button{width:100%;min-height:54px;border:0;border-radius:14px;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;gap:8px;font-weight:800;cursor:pointer}.primary-button:disabled{opacity:.4}.quiz-page header h1{font-family:Zen Old Mincho;font-size:25px;line-height:1.6}.progress-bar{height:5px;background:#dce5ed;border-radius:99px;overflow:hidden}.progress-bar span{display:block;height:100%;background:var(--gold)}.choices{display:grid;gap:10px;margin:24px 0}.choices button{display:flex;align-items:center;gap:12px;padding:15px;text-align:left;border:1px solid var(--line);border-radius:14px;background:#fff;color:#253a4d}.choices button>span{min-width:32px;height:32px;border-radius:50%;background:#edf2f6;display:grid;place-items:center;font-weight:800}.choices button.selected{border:2px solid var(--blue);background:#eef6fc}.feedback{padding:20px;border-radius:16px;margin-top:18px}.feedback.correct{background:#e8f6ef}.feedback.wrong{background:#fff0ed}.feedback h2{display:flex;align-items:center;gap:8px}.feedback p{white-space:pre-line;line-height:1.8}.feedback .primary-button{margin-top:18px}.empty-card{background:#fff;border:1px dashed #bdcbd7;border-radius:18px;padding:32px;text-align:center;color:var(--muted)}.empty-card svg{color:var(--blue)}.empty-card h2{color:#183047;font-family:Zen Old Mincho}.empty-card a{display:inline-block;color:var(--blue);font-weight:700;margin-top:8px}.review-list,.topic-list{display:grid;gap:12px}.review-list a,.topic-list a{background:#fff;border:1px solid var(--line);border-radius:14px;padding:17px;display:flex;flex-direction:column;gap:6px}.review-list small,.topic-list small{color:var(--blue);font-weight:700}.topic-list a{flex-direction:row;align-items:center;justify-content:space-between}.topic-list a div{display:flex;flex-direction:column;gap:7px}.topic-list p{margin:0;color:var(--muted);line-height:1.6}.settings-card{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:20px;background:#fff;border:1px solid var(--line);border-radius:17px;margin:14px 0}.settings-card>svg{color:var(--blue)}.settings-card h2{margin:0;font-size:17px}.settings-card p{color:var(--muted);font-size:13px;line-height:1.7}.settings-card input{width:100%;padding:13px;border:1px solid #b8c7d3;border-radius:10px;margin:8px 0}.settings-card button{border:0;background:var(--navy);color:#fff;padding:11px 14px;border-radius:10px;font-weight:700}.notice{background:#e9f4fb;border-radius:12px;padding:13px}.transfer-code{display:flex;align-items:center;justify-content:space-between;margin-top:10px;padding:12px;background:#eef3f7;border-radius:10px;letter-spacing:.16em}.transfer-code button{padding:8px}.device-id{text-align:center;color:#87939e;font-size:11px}.loading{padding:80px;text-align:center;color:var(--muted)}@media(min-width:720px){.page{padding:40px 24px 70px}.home-page{padding-top:34px}.domain-card{grid-template-columns:70px 1fr;padding:24px}.domain-number{font-size:32px}}.domain-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.domain-heading>span{white-space:nowrap;color:var(--muted);font-size:12px;font-weight:700}.domain-progress{height:5px;margin-top:10px;overflow:hidden;border-radius:99px;background:#e5ebf0}.domain-progress span{display:block;height:100%;border-radius:inherit;background:var(--gold)}.upcoming-domains{margin-top:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.upcoming-domains summary{cursor:pointer;padding:17px 18px;font-weight:700;list-style-position:inside}.upcoming-domains summary span{float:right;min-width:24px;padding:2px 7px;border-radius:99px;background:#eaf1f7;color:var(--blue);font-size:12px;text-align:center}.upcoming-domains>div{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 18px}.upcoming-domains>div span{padding:7px 10px;border-radius:99px;background:#f1f5f8;color:var(--muted);font-size:12px}.update-prompt{position:fixed;left:50%;bottom:86px;z-index:20;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:10px;width:min(calc(100% - 24px),600px);padding:14px 12px 14px 16px;transform:translate(-50%);border-radius:16px;background:#102f4c;box-shadow:0 14px 35px #0d263d55;color:#fff}.update-prompt>div{display:flex;flex-direction:column;gap:3px}.update-prompt strong{font-size:14px}.update-prompt span{color:#c8d9e7;font-size:11px}.update-prompt button{border:0;cursor:pointer}.update-action{display:flex;align-items:center;gap:5px;padding:9px 11px;border-radius:10px;background:var(--gold);color:#17334b;font-weight:800}.update-close{display:grid;place-items:center;padding:6px;background:transparent;color:#d5e1ea}.reading-progress{position:fixed;top:72px;left:0;right:0;z-index:6;height:3px;background:transparent}.reading-progress span{display:block;height:100%;border-radius:0 99px 99px 0;background:var(--gold);transition:width .12s linear}.back-link{display:inline-flex;align-items:center;gap:3px;margin-bottom:18px;color:var(--blue);font-size:13px;font-weight:700}.learning-goals{margin:24px 0 34px;padding:19px 20px;border:1px solid #cddde9;border-radius:17px;background:#f8fbfd}.section-label{display:flex;align-items:center;gap:8px;color:var(--blue)}.section-label h2{margin:0;font-size:17px}.learning-goals ol{margin:13px 0 0;padding-left:24px}.learning-goals li{margin:8px 0;padding-left:4px;line-height:1.65}.learning-goals li::marker{color:var(--gold);font-weight:800}.references{margin:26px 0;border:1px solid var(--line);border-radius:15px;background:#fff}.references summary{cursor:pointer;padding:16px 18px;color:#29445c;font-size:14px;font-weight:800}.references summary span{float:right;min-width:24px;padding:2px 7px;border-radius:99px;background:#eaf1f7;color:var(--blue);font-size:11px;text-align:center}.references ol{margin:0;padding:0 18px 10px 44px}.references li{padding:2px 0 12px 2px;color:var(--muted)}.references a{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;color:#264b69}.references a span{display:flex;flex-direction:column;gap:4px}.references a strong{font-size:13px;line-height:1.55}.references a small{color:var(--muted);font-size:11px}.references a svg{flex:0 0 auto;margin-top:3px}.multi-hint{margin:12px 0 0;padding:10px 12px;border-radius:10px;background:#eaf2f8;color:#315a7a;font-size:13px;font-weight:700}.choices .choice-text{flex:1;background:transparent;font-weight:500}.choices .choice-status{flex:0 0 auto}.choices button.correct-choice{border:2px solid #3b9670;background:#e9f7ef;color:#1f654b}.choices button.correct-choice>span:first-child{background:#cfead9}.choices button.wrong-choice{border:2px solid #d16a5d;background:#fff0ed;color:#8d392f}.choices button.wrong-choice>span:first-child{background:#f5d3cd}.choices button.dimmed-choice{opacity:.55}.quiz-result{padding-top:64px;text-align:center}.result-icon{display:grid;place-items:center;width:68px;height:68px;margin:0 auto 18px;border-radius:22px;background:#eaf2f8;color:var(--blue)}.result-icon svg{width:34px;height:34px}.quiz-result h1{margin:0 0 12px;font-family:Zen Old Mincho;font-size:30px}.quiz-result>p:not(.eyebrow){max-width:520px;margin:0 auto;color:var(--muted);line-height:1.8}.result-actions{display:grid;gap:10px;max-width:440px;margin:30px auto 0}.secondary-button{min-height:50px;display:flex;align-items:center;justify-content:center;border:1px solid #b9c9d6;border-radius:14px;background:#fff;color:var(--navy);font-weight:800}.review-priority{background:linear-gradient(135deg,#123c69,#235f8e)}.resume-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;margin-top:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--blue)}.resume-row>div{display:flex;flex-direction:column;gap:2px}.resume-row small{color:var(--muted);font-size:11px}.resume-row strong{color:#203c53;font-size:14px}.completion-card{display:flex;align-items:center;gap:14px;padding:20px;border:1px solid #bcdcca;border-radius:18px;background:#edf8f2;color:#27694f}.completion-card>div{display:flex;flex-direction:column;gap:4px}.completion-card span{color:#547766;font-size:12px}.progress-overview{margin:20px 0 16px;padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.progress-overview-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.progress-overview-heading .eyebrow{margin-bottom:2px}.progress-overview-heading h2{margin:0;font-family:Zen Old Mincho;font-size:26px}.progress-overview-heading h2 small{color:var(--muted);font-family:Noto Sans JP;font-size:13px}.progress-overview-heading>strong{color:var(--blue);font-size:24px}.overall-progress{height:8px;margin:13px 0 16px;overflow:hidden;border-radius:99px;background:#e5ebf0}.overall-progress span,.mini-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#efbf66)}.domain-progress-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.domain-progress-grid a{padding:11px;border-radius:11px;background:#f4f7fa}.domain-progress-grid a>div:first-child{display:flex;justify-content:space-between;gap:8px}.domain-progress-grid strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.domain-progress-grid a span{color:var(--muted);font-size:10px;white-space:nowrap}.mini-progress{height:4px;margin-top:8px;overflow:hidden;border-radius:99px;background:#dfe7ed}.quick-placeholder{background:#f4f6f8!important;color:#8a969f}.quick-placeholder svg{color:#9ca7af!important}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #e9a93f;outline-offset:3px}.bottom-nav{height:calc(74px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom)}.app-shell{padding-bottom:calc(82px + env(safe-area-inset-bottom))}.bottom-nav a{min-height:48px}.domain-body>a,.topic-list a,.review-list a{min-height:52px}.choices button{min-height:58px}.settings-card button,.settings-card input,.references summary{min-height:44px}.settings-card label{display:block;margin-top:10px;color:#35536b;font-size:12px;font-weight:700}.settings-card button:disabled{cursor:not-allowed;opacity:.45}.markdown,.lesson-header,.quiz-page header{overflow-wrap:anywhere;word-break:normal}.markdown table{display:block;max-width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}.markdown th,.markdown td{min-width:112px}.markdown th:first-child,.markdown td:first-child{min-width:90px}.markdown pre,.markdown code{white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:380px){.page,.topbar{padding-right:14px;padding-left:14px}.welcome h1,.page-heading h1,.lesson-header h1{font-size:27px}.domain-card{grid-template-columns:38px 1fr;gap:8px;padding:15px 13px}.domain-number{font-size:21px}.domain-heading{align-items:flex-start}.domain-body h2{font-size:16px}.domain-body>a strong{font-size:14px;line-height:1.55}.quick-grid{gap:8px}.quick-grid a,.quick-placeholder{padding:13px 10px}.domain-progress-grid{grid-template-columns:1fr}.update-prompt{grid-template-columns:1fr auto}.update-prompt>div{grid-column:1 / -1}.update-close{position:absolute;top:6px;right:6px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.network-status{position:fixed;top:82px;left:50%;z-index:18;display:flex;align-items:center;gap:10px;width:min(calc(100% - 24px),560px);padding:11px 14px;transform:translate(-50%);border:1px solid #c8d4de;border-radius:13px;background:#fff;box-shadow:0 8px 25px #15334d26;color:#29455d;font-size:12px}.network-status.offline{border-color:#e6c582;background:#fff8e8;color:#71521b}.network-status.synced{border-color:#b9dcc8;background:#edf8f2;color:#27694f}.network-status.sync-error{border-color:#e6c582;background:#fff3e5;color:#7a4914}.network-status svg{flex:0 0 auto}.network-status span{display:flex;flex-direction:column;gap:1px}.network-status strong{font-size:13px}.spin{animation:spin .9s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.connection-error{max-width:620px;margin:28px auto 0}.connection-error .primary-button{margin:20px 0 6px}.connection-error>a{min-height:44px;display:inline-flex;align-items:center}.lock-card{max-width:560px;margin:30px auto;background:#fff;border:1px solid var(--line);border-radius:22px;padding:30px;text-align:center;box-shadow:0 14px 40px #123c6912}.lock-icon{width:62px;height:62px;margin:0 auto 18px;border-radius:20px;background:#eef3f7;color:var(--navy);display:grid;place-items:center}.lock-card h1{font-family:Zen Old Mincho;font-size:28px;line-height:1.5}.lock-card>p{color:var(--muted);line-height:1.8}.lock-card .eyebrow{color:var(--gold)}.lock-copy{border-top:1px solid var(--line);padding-top:18px;margin-top:20px}.lock-card .primary-button{margin-top:22px}.settings-link{display:inline-flex;margin-top:8px;border:1px solid var(--navy);color:var(--navy);padding:10px 14px;border-radius:10px;font-weight:700}.admin-entry{text-align:center;margin:24px 0}.admin-entry a{color:var(--blue);font-size:13px;font-weight:700}.admin-login{display:grid;grid-template-columns:auto 1fr;gap:16px;max-width:520px;padding:24px;background:#fff;border:1px solid var(--line);border-radius:18px}.admin-login>svg{color:var(--blue)}.admin-login h2{margin:0}.admin-login p{color:var(--muted);line-height:1.6}.admin-login input{width:100%;padding:12px;border:1px solid #b8c7d3;border-radius:10px}.admin-login button,.admin-toolbar button{border:0;border-radius:10px;background:var(--navy);color:#fff;padding:11px 14px;font-weight:700}.admin-login button{width:100%;margin-top:10px}.admin-error{color:#a33225!important;font-weight:700}.admin-toolbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;color:var(--muted)}.admin-toolbar button{display:flex;align-items:center;gap:6px;padding:8px 12px}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}.metric-grid>div{display:grid;grid-template-columns:auto 1fr;gap:4px 9px;background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px}.metric-grid svg{grid-row:1 / 3;color:var(--blue)}.metric-grid span{color:var(--muted);font-size:13px}.metric-grid strong{font-size:24px}.admin-panel{margin:14px 0;padding:20px;background:#fff;border:1px solid var(--line);border-radius:17px}.admin-panel h2{margin:0 0 16px;font-family:Zen Old Mincho;font-size:20px}.admin-panel h2 small{font-family:Noto Sans JP;color:var(--muted);font-size:11px;font-weight:500}.funnel-bars{display:grid;gap:10px}.funnel-bars>div{display:grid;grid-template-columns:88px 1fr 32px;align-items:center;gap:8px;font-size:13px}.funnel-bars>div>div{height:9px;border-radius:99px;background:#e7edf2;overflow:hidden}.funnel-bars i{display:block;height:100%;background:var(--blue);border-radius:inherit}.table-wrap{overflow-x:auto}.admin-panel table{width:100%;border-collapse:collapse;font-size:13px}.admin-panel th,.admin-panel td{padding:10px 8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.admin-panel th:first-child,.admin-panel td:first-child{text-align:left}.admin-panel th{color:var(--muted);font-weight:600}.attention{color:#a76400;font-weight:800}.admin-note,.admin-empty{color:var(--muted);font-size:13px}@media(min-width:720px){.metric-grid{grid-template-columns:repeat(4,1fr)}}
