:root{color-scheme:light;--background: #ffffff;--surface: #f7f8fa;--surface-strong: #eef1f5;--text: #182230;--muted: #526071;--border: #dfe3e8;--input-border: #7b8794;--accent: #175cd3;--accent-hover: #154db3;--accent-soft: #eef5ff;--danger: #a12828;--danger-soft: #fff5f5;--warning: #854d0e;--warning-soft: #fffbeb;--radius: 6px;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-6: 24px;--space-8: 32px;--space-10: 40px;--space-12: 48px;--page-width: 1240px;--font: -apple-system, BlinkMacSystemFont, "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", Meiryo, sans-serif;--font-reading: "Hiragino Sans", "Yu Gothic", "Noto Sans JP", sans-serif;--shadow-subtle: 0 1px 2px rgb(24 34 48 / 5%), 0 8px 24px rgb(24 34 48 / 4%)}*{box-sizing:border-box}html{scroll-padding-top:100px}body{margin:0;background:var(--background);color:var(--text);font-family:var(--font);font-size:16px;line-height:1.8;overflow-wrap:anywhere}button,input,textarea,select{font:inherit}a{color:var(--accent);text-underline-offset:4px}a:hover{text-decoration-thickness:2px}button,.button{display:inline-flex;justify-content:center;align-items:center;min-height:44px;padding:var(--space-2) var(--space-4);border:1px solid var(--input-border);border-radius:var(--radius);background:var(--background);color:var(--text);cursor:pointer;font-size:14px;font-weight:600;line-height:1.5;text-align:center}button:hover:not(:disabled){background:var(--surface);border-color:var(--text)}button.primary{color:var(--background);background:var(--accent);border-color:var(--accent)}button.primary:hover:not(:disabled){background:var(--accent-hover)}button.danger{color:var(--danger);border-color:var(--danger)}button:disabled,fieldset:disabled button{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid var(--accent);outline-offset:3px}[tabindex="-1"]:focus{outline:none}input,textarea,select{max-width:100%;min-height:44px;border:1px solid var(--input-border);border-radius:var(--radius);background:var(--background);color:var(--text);padding:var(--space-3)}input:not([type=checkbox]):not([type=radio]),textarea{width:100%}input[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}input[type=checkbox],input[type=radio]{flex:0 0 auto;width:20px;height:20px;min-height:20px;accent-color:var(--accent);margin:var(--space-1) 0}textarea{resize:vertical;line-height:1.8}fieldset{border:0;padding:0;margin:0;min-width:0}legend{font-weight:600;margin-bottom:var(--space-2)}h1,h2,h3,h4{line-height:1.5;letter-spacing:0}h1{font-size:34px;margin:0 0 var(--space-4);font-weight:700}h2{font-size:22px;margin:var(--space-8) 0 var(--space-4)}h3{font-size:18px;margin:var(--space-6) 0 var(--space-3)}h4{font-size:16px}p{margin:0 0 var(--space-4)}ul,ol{padding-left:var(--space-6)}small{color:var(--muted);font-size:13px}td small,.lesson-index small{display:block}section+section{margin-top:var(--space-12)}main{min-height:calc(100dvh - 180px)}.page{max-width:var(--page-width);margin:auto;padding:var(--space-10) var(--space-8) var(--space-12)}.narrow{max-width:800px}.auth-page{max-width:520px;padding-top:var(--space-12)}.page-heading{margin-bottom:var(--space-8)}.page-heading>p{max-width:760px}.eyebrow{color:var(--muted);font-size:12px;letter-spacing:0;font-weight:700;margin-bottom:var(--space-2)}.lead{font-size:20px}.hint,.muted{color:var(--muted);font-size:14px}.field{margin:var(--space-6) 0}.field label{display:block;font-weight:600;margin-bottom:var(--space-2)}.field .hint{margin-bottom:var(--space-2)}.field-error{font-size:14px;color:var(--danger);margin-top:var(--space-2)}.choice{display:flex;align-items:start;gap:var(--space-3);padding:var(--space-3) 0;min-height:44px;cursor:pointer}.actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--space-3);margin-top:var(--space-4)}.notice{border:1px solid var(--border);border-left:3px solid var(--accent);border-radius:var(--radius);background:var(--surface);padding:var(--space-4);margin:var(--space-4) 0;font-size:14px}.notice p:last-child{margin-bottom:0}.notice.error{background:var(--danger-soft);border-left-color:var(--danger);color:var(--danger)}.notice.warning{background:var(--warning-soft);border-left-color:var(--warning)}.notice h2,.notice h3{margin-top:0}.save-status{color:var(--muted);font-size:14px;margin:var(--space-3) 0}.save-status:empty{display:none}.plain-text{white-space:pre-wrap;overflow-wrap:anywhere}.empty{border-block:1px solid var(--border);padding:var(--space-8) 0}.site-header{position:sticky;z-index:10;top:0;border-bottom:1px solid var(--border);background:#fffffff5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.header-inner{min-height:72px;max-width:var(--page-width);margin:auto;padding:var(--space-3) var(--space-8);display:flex;align-items:center;gap:var(--space-8)}.brand{display:inline-flex;align-items:center;flex:0 0 auto;text-decoration:none}.brand img{display:block;width:132px;height:auto}.header-inner nav{display:flex;gap:var(--space-6);flex-wrap:wrap}.header-inner nav a{color:var(--muted);font-size:14px;text-decoration:none;padding-block:var(--space-3)}.header-inner nav a[aria-current=page]{color:var(--accent);text-decoration:underline}.account{display:flex;align-items:center;gap:var(--space-3);margin-left:auto;font-size:13px}.account>span{max-width:140px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.account button{font-size:12px}.site-footer{border-top:1px solid var(--border);color:var(--muted);max-width:var(--page-width);margin:auto;padding:var(--space-6) var(--space-8);font-size:12px}.global-notice,.global-error{max-width:var(--page-width);margin:auto;padding-inline:var(--space-8);font-size:14px}.global-notice{padding-block:var(--space-3);background:var(--accent-soft)}.skip-link{position:fixed;top:-100px;left:var(--space-4);padding:var(--space-3);background:var(--background);z-index:100}.skip-link:focus{top:var(--space-2)}.breadcrumbs{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:13px;color:var(--muted);margin-bottom:var(--space-6)}.breadcrumbs a{color:var(--muted)}.course-list,.plain-list{list-style:none;margin:0;padding:0}.course-row{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:var(--space-12);padding:var(--space-8) 0;border-top:1px solid var(--border)}.course-row:last-child{border-bottom:1px solid var(--border)}.course-row h2{margin-top:0}.course-row h2 a{color:var(--text);text-decoration:none}.course-row h2 a:hover{color:var(--accent)}.goal-line{font-size:14px;margin-bottom:0}.course-row-action{display:flex;flex-direction:column;gap:var(--space-3);align-items:stretch}.course-row-action>a{font-size:14px}.progress-summary{margin-bottom:var(--space-3)}.progress-label{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-3);font-size:14px}progress{width:100%;height:6px;-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;margin:var(--space-3) 0 var(--space-2);accent-color:var(--accent);border:0;border-radius:4px;background:var(--border);overflow:hidden}progress::-webkit-progress-bar{background:var(--border)}progress::-webkit-progress-value{background:var(--accent)}progress::-moz-progress-bar{background:var(--accent)}.course-detail-grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:var(--space-10)}.course-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-6);align-self:start}.course-summary h2{margin-top:0}.course-summary>button{width:100%;margin:var(--space-4) 0}.lesson-index{list-style:none;padding:0}.lesson-index li{border-top:1px solid var(--border)}.lesson-index a{display:flex;gap:var(--space-4);padding:var(--space-4) 0;text-decoration:none}.lesson-number{font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums;padding-top:4px}.plain-list>li{padding:var(--space-6) 0;border-top:1px solid var(--border)}.plain-list h3{margin-top:0}.table-scroll{max-width:100%;overflow-x:auto;margin:var(--space-6) 0}table{border-collapse:collapse;width:100%;font-size:14px;text-align:left}th,td{padding:var(--space-4);border-bottom:1px solid var(--border);vertical-align:top;min-width:120px}th{background:var(--surface);color:var(--muted)}.pagination{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:var(--space-3);font-size:14px;margin:var(--space-6) 0}.search-form{display:flex;align-items:end;gap:var(--space-3);margin-bottom:var(--space-6)}.search-form .field{flex:1;margin:0;max-width:520px}.admin-create{border-top:1px solid var(--border);margin-top:var(--space-12);padding-top:var(--space-6);max-width:680px}.admin-heading,.section-heading,.lesson-editor-heading{display:flex;justify-content:space-between;align-items:start;gap:var(--space-6)}.button.primary-link{color:#fff;background:var(--accent);border-color:var(--accent);text-decoration:none;white-space:nowrap}.button.primary-link:hover{background:var(--accent-hover)}.content-table td:first-child{width:65%}.content-table td p{color:var(--muted);margin:var(--space-2) 0 0}.course-editor{max-width:1040px}.editor-section{padding-top:var(--space-8);border-top:1px solid var(--border)}.editor-section:first-child{padding-top:0;border-top:0}.editor-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(140px,1fr);gap:var(--space-6)}.editor-grid .field{margin-block:var(--space-3)}.repeat-row{display:grid;grid-template-columns:minmax(140px,1fr) minmax(0,3fr) auto;gap:var(--space-3);margin-bottom:var(--space-3)}.lesson-editor{margin-top:var(--space-6);padding:var(--space-6);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-subtle)}.lesson-editor h3{margin:0}.markdown-toolbar{display:flex;flex-wrap:wrap;gap:var(--space-3);margin:var(--space-4) 0}.markdown-preview{min-height:320px;padding:var(--space-8);border:1px solid var(--border);background:var(--surface);font-size:17px;line-height:1.9}.markdown-preview>:first-child{margin-top:0}.editor-save{position:sticky;bottom:0;z-index:5;display:flex;align-items:center;gap:var(--space-4);margin-top:var(--space-8);padding:var(--space-4);border:1px solid var(--border);background:#fffffff5;box-shadow:0 -8px 24px #1822300f}.issued-password{font-family:ui-monospace,monospace;font-size:20px;padding:var(--space-4);background:var(--background);-webkit-user-select:all;user-select:all}dialog{width:min(560px,calc(100% - 32px));max-height:calc(100dvh - 48px);overflow-y:auto;border:1px solid var(--input-border);border-radius:var(--radius);padding:var(--space-8);color:var(--text);background:var(--background)}dialog::backdrop{background:#17202a73}dialog h2{margin-top:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:1023px){.header-inner{gap:var(--space-4);padding-inline:var(--space-6);flex-wrap:wrap}.header-inner nav{gap:var(--space-4)}.account>span{display:none}.course-detail-grid{grid-template-columns:minmax(0,1fr)}.course-row{grid-template-columns:minmax(0,1fr) 240px;gap:var(--space-6)}.page{padding:var(--space-8) var(--space-6)}}@media(max-width:767px){.site-header{position:static}.header-inner{padding:var(--space-3) var(--space-4);gap:var(--space-2) var(--space-4)}.header-inner nav{order:3;width:100%}.account{margin-left:auto}.page{padding:var(--space-6) var(--space-4) var(--space-10)}.global-notice,.global-error{padding-inline:var(--space-4)}.course-row{grid-template-columns:minmax(0,1fr);gap:var(--space-4)}.course-row-action{max-width:100%}.site-footer{padding-inline:var(--space-4)}dialog{padding:var(--space-6)}h1{font-size:28px}.brand img{width:112px}.admin-heading,.section-heading{align-items:stretch;flex-direction:column}.editor-grid,.repeat-row{grid-template-columns:minmax(0,1fr);gap:var(--space-2)}.lesson-editor,.markdown-preview{padding:var(--space-4)}.editor-save{align-items:stretch;flex-direction:column}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.lesson-top{max-width:var(--page-width);margin:auto;padding:var(--space-6) var(--space-8) 0}.lesson-top .breadcrumbs{margin-bottom:0}.learning-layout{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,3fr);gap:var(--space-10);max-width:var(--page-width);margin-inline:auto;padding:var(--space-8)}.lesson-body{min-width:0;font-family:var(--font-reading);font-size:17px;line-height:1.95;color:#202b3a}.lesson-body>:first-child{margin-top:0}.lesson-body h1{max-width:20em;margin-bottom:var(--space-8);font-size:38px;line-height:1.45}.lesson-body h2{margin-top:64px;margin-bottom:var(--space-6);padding:var(--space-3) 0 var(--space-3);border-bottom:1px solid var(--border);font-size:24px}.lesson-body h3{margin-top:var(--space-10);font-size:19px}.lesson-body p,.lesson-body ul,.lesson-body ol{max-width:74ch;margin-bottom:var(--space-6)}.lesson-body li+li{margin-top:var(--space-2)}.lesson-body img{max-width:100%;height:auto;display:block;margin:var(--space-10) auto;border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-subtle)}.lesson-body pre{overflow-x:auto;padding:var(--space-4);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);font-size:14px}.lesson-body code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em}.lesson-body :not(pre)>code{background:var(--surface);padding:2px 4px;border-radius:4px}.lesson-body blockquote{max-width:74ch;margin:var(--space-8) 0;border-left:2px solid var(--accent);padding:var(--space-2) 0 var(--space-2) var(--space-6);color:var(--muted)}.lesson-body hr{border:0;border-top:1px solid var(--border);margin:var(--space-10) 0}.learning-sidebar{position:sticky;top:88px;align-self:start;max-height:calc(100dvh - 112px);overflow-y:auto;scrollbar-gutter:stable;padding-right:var(--space-1)}.lesson-navigation h2{font-size:16px;margin:0 0 var(--space-4)}.lesson-navigation h2 a{color:var(--text);text-decoration:none}.lesson-navigation ol{list-style:none;padding:0;margin:var(--space-4) 0}.lesson-navigation li a{display:flex;gap:var(--space-3);padding:var(--space-3);min-height:44px;border-left:2px solid transparent;color:var(--text);text-decoration:none;font-size:14px}.lesson-navigation li a:hover{background:var(--surface)}.lesson-navigation li a[aria-current=page]{border-left-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.lesson-navigation li small{display:block;font-size:12px}.text-link{display:inline-block;min-height:44px;font-size:14px;padding-block:var(--space-2)}.note-section{border-top:1px solid var(--border);padding-top:var(--space-6);margin-top:var(--space-6)}.note-section h2{font-size:16px;margin-top:0}.note-section .field label,.note-section textarea{font-size:14px}.lesson-outline{border-top:1px solid var(--border);margin-top:var(--space-4);padding-top:var(--space-2);font-size:14px}.lesson-outline summary{min-height:44px;padding-block:var(--space-2);cursor:pointer;font-weight:600}.lesson-outline ul{list-style:none;padding:0}.lesson-outline a{display:block;min-height:44px;padding-block:var(--space-2)}.mobile-navigation{display:none}.callout{max-width:74ch;padding:var(--space-6);margin:var(--space-8) 0;border:1px solid #cfdcf0;border-left:3px solid var(--accent);background:var(--accent-soft);border-radius:var(--radius)}.callout>strong{display:block;margin-bottom:var(--space-2);font-size:16px}.callout>:last-child{margin-bottom:0}.callout-warning{border-left-color:var(--warning);background:var(--warning-soft)}.learning-block{border:1px solid var(--border);border-radius:var(--radius);padding:var(--space-8);margin:var(--space-10) 0;background:#fff;box-shadow:var(--shadow-subtle);font-size:16px;line-height:1.8;scroll-margin-top:110px}.learning-block h3{margin-top:0}.learning-block .eyebrow{margin-bottom:var(--space-2)}.learning-block p{margin-bottom:var(--space-4)}.learning-block .choice{border-bottom:1px solid var(--border)}.learning-block form button{margin-top:var(--space-4)}.answer-result{border-top:1px solid var(--border);margin-top:var(--space-6);padding-top:var(--space-4)}.lesson-actions{border-top:1px solid var(--border);margin-top:var(--space-12);padding-top:var(--space-6);font-size:16px}.lesson-actions h2{margin-top:0}.lesson-pagination{display:flex;justify-content:space-between;flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-8);border-top:1px solid var(--border);padding-top:var(--space-6)}.lesson-pagination a{padding:var(--space-2) 0;min-height:44px}.lesson-reload{max-width:var(--page-width);margin:auto;padding:0 var(--space-8) var(--space-8)}@media(max-width:1023px){.learning-layout{grid-template-columns:minmax(0,1fr);gap:var(--space-6);padding:var(--space-6)}.learning-sidebar{position:static;max-height:none;overflow:visible;padding:0}.desktop-navigation{display:none}.mobile-navigation{display:block;border:1px solid var(--input-border);border-radius:var(--radius);padding:var(--space-3) var(--space-4);background:var(--surface)}.mobile-navigation summary{min-height:44px;padding-block:var(--space-2);font-weight:600;cursor:pointer}.mobile-navigation .lesson-navigation{margin-top:var(--space-4)}.lesson-top{padding-inline:var(--space-6)}.note-section{margin-top:0}}@media(max-width:767px){.learning-layout{padding:20px var(--space-4)}.lesson-top{padding:var(--space-6) var(--space-4) 0}.lesson-body{font-size:16px;line-height:1.9}.lesson-body h1{font-size:28px}.lesson-body h2{margin-top:var(--space-12);font-size:21px}.learning-block,.callout{padding:var(--space-4)}.lesson-reload{padding-inline:var(--space-4)}}@media(max-height:600px){.site-header{position:static}.learning-sidebar{position:static;max-height:none;overflow:visible}}
