:root{--access-ink:#26272c;--access-muted:#626976;--access-line:#dce0e4;--access-bg:#f5f6f8;--access-brand:#344f46;--access-focus:#4455b9;--access-error:#a53030;--access-space:16px;--access-radius:8px}
.auth-page,.portal-page{margin:0;background:var(--access-bg);color:var(--access-ink);font:16px/1.75 "Yu Gothic UI",Meiryo,sans-serif}.auth-page *,.portal-page *{box-sizing:border-box}.auth-page input,.portal-page input,.auth-page button,.portal-page button{font:inherit}.auth-page [hidden],.portal-page [hidden]{display:none!important}.access-logo{display:block;width:160px;height:64px;overflow:hidden;position:relative}.access-logo img{position:absolute;width:192px;height:192px;left:-16px;top:-64px;mix-blend-mode:multiply}.auth-layout{max-width:960px;margin:0 auto;min-height:100svh;padding:80px 32px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:64px}.auth-context h1{font-size:32px;line-height:1.5;font-weight:600;margin:32px 0 16px;letter-spacing:0}.auth-context>p{max-width:360px;color:var(--access-muted);margin:0}.auth-context .auth-environment{border-top:1px solid var(--access-line);padding-top:24px;margin-top:48px;font-size:14px}.auth-panel{background:#fff;border:1px solid var(--access-line);border-radius:var(--access-radius);padding:32px}.auth-panel form,.portal-page form{display:grid;gap:24px}.auth-panel label:not(.auth-show),.portal-page form label{display:grid;gap:8px;font-size:14px;font-weight:600}.auth-panel input:not([type=checkbox]),.portal-page form input{width:100%;min-height:48px;padding:8px 12px;border:1px solid #9aa3ad;border-radius:4px;background:#fff;font-weight:400;color:var(--access-ink)}.auth-panel input[readonly]{background:var(--access-bg)}.auth-show{display:flex;align-items:center;gap:8px;min-height:44px;font-size:14px;color:var(--access-muted)}.auth-show input{width:20px;height:20px;accent-color:var(--access-brand)}.auth-help{font-size:14px;color:var(--access-muted);margin:0}.auth-panel>.auth-help{margin-top:24px}.access-error{color:var(--access-error);font-size:14px;margin:0;min-height:0}.access-button,.access-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:44px;gap:8px;padding:8px 16px;border-radius:4px;border:1px solid var(--access-brand);cursor:pointer;font-size:14px;font-weight:600;text-decoration:none;line-height:1.5}.access-button{background:var(--access-brand);color:#fff}.access-button:hover{background:#273e36}.access-secondary{background:transparent;color:var(--access-ink);border-color:#b6bdc5}.access-secondary:hover{background:#edf0f3}.access-button:disabled,.access-secondary:disabled{opacity:.6;cursor:wait}.auth-page :focus-visible,.portal-page :focus-visible,.access-section :focus-visible{outline:3px solid var(--access-focus);outline-offset:4px}.access-skip{position:absolute;top:-100px;left:16px;padding:8px 16px;background:white;z-index:10}.access-skip:focus{top:16px}.portal-header{max-width:1280px;margin:0 auto;padding:24px 32px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--access-line)}.portal-header>div{display:flex;flex-wrap:wrap;gap:16px;align-items:center;font-size:14px}.portal-page main{max-width:1200px;padding:40px 32px 80px;margin:auto;min-height:70svh}.portal-page-heading{margin-bottom:32px}.portal-page-heading h1,.portal-lesson h1{font-size:32px;line-height:1.5;font-weight:600;margin:8px 0 16px}.portal-page-heading>p{margin:0;color:var(--access-muted)}.portal-page-heading>p:first-child{font-size:14px}.portal-course-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.portal-course{padding:24px;background:white;border:1px solid var(--access-line);border-radius:var(--access-radius);display:flex;flex-direction:column;align-items:flex-start;gap:16px}.portal-course h2{font-size:24px;line-height:1.5;font-weight:600;margin:0}.portal-course p{margin:0;font-size:16px}.portal-course-meta{font-size:14px;color:var(--access-muted)}.portal-course .portal-progress{font-size:14px;color:var(--access-muted);margin-top:auto}.portal-course progress{width:100%;height:8px;accent-color:var(--access-brand)}.portal-course .access-button{width:100%;margin-top:8px}.portal-empty{max-width:720px;margin:32px auto;padding:32px;border:1px solid var(--access-line);border-radius:var(--access-radius);background:white}.portal-empty h1,.portal-empty h2{font-size:24px;font-weight:600;line-height:1.5}.portal-back{display:inline-block;margin-bottom:24px;font-size:14px;color:var(--access-brand)}.portal-lesson-layout{display:grid;grid-template-columns:minmax(0,1fr) 288px;gap:32px;align-items:start}.portal-lesson{min-width:0;background:white;border:1px solid var(--access-line);border-radius:var(--access-radius);padding:32px}.portal-lesson h1{font-size:24px}.portal-lesson-body{white-space:pre-wrap;overflow-wrap:anywhere;margin:24px 0 32px;line-height:2}.portal-video{position:relative;aspect-ratio:16/9;width:100%;background:#edf0f2}.portal-video iframe{position:absolute;width:100%;height:100%;border:0}.portal-text-lesson{padding:24px;background:#edf2ed;color:var(--access-brand);font-size:14px}.portal-outline{padding:24px;background:white;border:1px solid var(--access-line);border-radius:var(--access-radius)}.portal-outline h2{font-size:16px;font-weight:600;margin:0 0 16px}.portal-outline button{display:flex;align-items:start;gap:12px;width:100%;min-height:48px;font-size:14px;text-align:left;padding:12px 8px;border:0;border-top:1px solid var(--access-line);background:transparent;color:var(--access-ink);cursor:pointer;overflow-wrap:anywhere}.portal-outline button[aria-current]{background:#edf2ed;color:var(--access-brand)}.portal-outline button span{color:var(--access-muted);font-variant-numeric:tabular-nums}.portal-outline button small{margin-left:auto;font-size:12px;white-space:nowrap}.access-actions{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.portal-status{font-size:14px;color:var(--access-muted)}.portal-page dialog{width:calc(100% - 32px);max-width:480px;border:1px solid var(--access-line);border-radius:8px;padding:32px}.portal-page dialog::backdrop{background:#20252b80}.portal-page dialog h2{font-size:24px;font-weight:600;margin:0}.portal-page dialog p{font-size:14px;margin:0;color:var(--access-muted)}.access-section .access-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.access-section label{display:grid;gap:8px;margin-bottom:16px}.access-section input,.access-section select{width:100%;min-height:44px}.access-section .access-actions{margin-top:16px}.access-member-filter{max-width:400px}.access-user-row{gap:16px}.access-section code{overflow-wrap:anywhere}.access-section summary{min-height:44px;cursor:pointer}.access-section .muted{color:var(--access-muted)}.access-auth-bar{display:flex;gap:16px;align-items:center;font-size:14px}.access-auth-bar button{min-height:44px}.access-link-result{width:100%;min-height:88px;overflow-wrap:anywhere;font:inherit}.portal-page h1,.portal-page h2,.portal-page p,.auth-page h1,.auth-page p{overflow-wrap:anywhere}@media(max-width:960px){.portal-course-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.portal-lesson-layout{grid-template-columns:minmax(0,1fr) 240px}}@media(max-width:720px){.auth-layout{grid-template-columns:1fr;gap:32px;padding:32px 24px;min-height:auto}.auth-context h1{margin-top:16px;font-size:24px}.auth-context .auth-environment{margin-top:24px;padding-top:16px}.auth-context>p{max-width:none}.auth-panel{padding:24px}.portal-header{padding:16px 24px;align-items:start;flex-wrap:wrap}.portal-header>div{gap:8px}.portal-page main{padding:32px 24px 64px}.portal-page-heading h1{font-size:24px}.portal-course-grid,.portal-lesson-layout,.access-section .access-grid{grid-template-columns:1fr}.portal-lesson,.portal-outline,.portal-empty{padding:24px}.portal-outline{order:2}.portal-page .access-actions{align-items:stretch}.portal-page .access-actions>button{flex:1 1 160px}.portal-page dialog{padding:24px}.access-auth-bar{gap:8px}}
@media(prefers-reduced-motion:reduce){.auth-page *,.portal-page *{scroll-behavior:auto;animation:none;transition:none}}
