/* 全ロール共通。認可・業務状態は各画面が所有する。 */
@font-face {
  font-family: 'Noto Sans JP';
  src: url('./noto-sans-jp-c4175dd5829d.woff2') format('woff2');
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
}
:root {
  --gs-font: 'Noto Sans JP', 'Noto Sans CJK JP', Meiryo, sans-serif;
  font-family: var(--gs-font);
  --gs-primary: #2055c9;
  --gs-on-primary: #fff;
  --gs-primary-container: #dce7ff;
  --gs-on-primary-container: #12346f;
  --gs-surface: #f6f8ff;
  --gs-surface-container: #edf2fc;
  --gs-surface-high: #e5ecf8;
  --gs-on-surface: #18243a;
  --gs-secondary: #4c5e7c;
  --gs-outline: #728099;
  --gs-outline-variant: #c9d3e4;
  --gs-error: #a82d30;
  --gs-radius: 24px;
  --gs-motion: 220ms;
  --gs-easing: cubic-bezier(.2, 0, 0, 1);
  --bg: var(--gs-surface);
  --surface: #fff;
  --surface-soft: var(--gs-surface-container);
  --text: var(--gs-on-surface);
  --muted: var(--gs-secondary);
  --line: var(--gs-outline-variant);
  --blue: var(--gs-primary);
  --blue-dark: var(--gs-on-primary-container);
  --blue-soft: var(--gs-primary-container);
}
html { min-width: 0; scroll-padding-block: 100px 32px; }
body { color: var(--gs-on-surface); background: var(--gs-surface); font-family: var(--gs-font); }
button, input, select, textarea { font: inherit; }
button, input:not([type=checkbox]):not([type=radio]), select { min-height: 44px; }
button { border-radius: 24px; transition: background var(--gs-motion), border-radius var(--gs-motion), transform var(--gs-motion); }
button:active:not(:disabled) { transform: scale(.98); border-radius: 14px; }
:focus-visible { outline: 3px solid var(--gs-primary); outline-offset: 4px; }
.gs-admin input:focus, .gs-admin select:focus, .gs-admin textarea:focus, .gs-admin button:focus-visible, .gs-admin a:focus-visible { outline: 3px solid var(--gs-primary); outline-offset: 3px; }
button:disabled { cursor: not-allowed; }
a { color: var(--gs-primary); text-underline-offset: 4px; }
button.primary, .primary-button, .btn-primary { background: var(--gs-primary); color: var(--gs-on-primary); border-color: var(--gs-primary); }
button.primary:hover { background: #1746ac; }
dialog { border: 1px solid var(--gs-outline-variant); border-radius: 28px; background: #fff; color: var(--gs-on-surface); box-shadow: 0 24px 80px #12244530; max-height: calc(100dvh - 48px); overscroll-behavior: contain; }
dialog[open] { animation: gs-enter var(--gs-motion) var(--gs-easing); }
dialog::backdrop { background: #152b5266; }
dialog h2 { font-size: 1.5rem; line-height: 1.35; }
dialog form { min-width: 0; }
input, select, textarea { accent-color: var(--gs-primary); }
input:not([type=checkbox]):not([type=radio]), select, textarea { border-radius: 12px; border: 1px solid var(--gs-outline); color: var(--gs-on-surface); background: #fff; padding: 12px 14px; max-width: 100%; }
.gs-password { display: flex; align-items: stretch; gap: 8px; }
.gs-password input { flex: 1; min-width: 0; }
.gs-password button { flex: none; font-size: .875rem; }
.gs-skip { position: fixed; inset: 8px auto auto 8px; z-index: 100; padding: 12px; background: #fff; transform: translateY(-180%); }
.gs-skip:focus { transform: none; }
.gs-admin { font-family: var(--gs-font); line-height: 1.65; margin: 0; }
.gs-admin * { box-sizing: border-box; }
.gs-admin [hidden] { display: none !important; }
.gs-admin header { background: var(--gs-surface); border-bottom: 1px solid var(--gs-outline-variant); min-height: 80px; height: auto; padding: 16px 32px; display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.gs-admin header nav { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.gs-admin .brand { color: var(--gs-on-primary-container); font-weight: 800; font-size: 1.45rem; text-decoration: none; }
.gs-admin .brand span { background: var(--gs-primary-container); border: 0; border-radius: 20px; padding: 5px 12px; font-size: .8rem; margin-left: 12px; }
.gs-admin main { max-width: 1440px; margin: 0 auto; padding: 40px 40px 80px; min-width: 0; }
.gs-admin h1 { font-size: clamp(1.75rem, 3vw, 2.6rem); letter-spacing: -.035em; margin: 0 0 12px; line-height: 1.25; }
.gs-admin h2 { font-size: 1.5rem; line-height: 1.4; }
.gs-admin h3 { font-size: 1.125rem; }
.gs-admin p { color: var(--gs-secondary); overflow-wrap: anywhere; }
.gs-admin .eyebrow { color: var(--gs-primary); font-size: .75rem; font-weight: 750; letter-spacing: .12em; }
.gs-admin button { border: 1px solid var(--gs-outline-variant); background: #fff; color: var(--gs-primary); padding: 10px 20px; font-weight: 650; cursor: pointer; line-height: 1.5; }
.gs-admin button:hover { background: var(--gs-primary-container); }
.gs-admin button.primary { background: var(--gs-primary); color: #fff; border-color: var(--gs-primary); }
.gs-admin button:disabled { opacity: .55; cursor: not-allowed; }
.gs-admin label { display: flex; flex-direction: column; gap: 8px; margin: 16px 0; font-size: .9rem; font-weight: 650; color: var(--gs-on-surface); }
.gs-admin label.inline, .gs-admin label:has(> input[type=checkbox]) { flex-direction: row; align-items: center; }
.gs-admin label input[type=checkbox] { flex: none; width: 20px; height: 20px; }
.gs-admin .panel { border-radius: 24px; background: #fff; border: 1px solid var(--gs-outline-variant); padding: 28px; margin-block: 24px; }
.gs-admin .narrow { max-width: 540px; margin-inline: auto; }
.gs-admin:not(.gs-signed-in) .heading { max-width: 540px; margin: 0 auto 28px; }
.gs-admin .scope-bar { background: var(--gs-surface-container); border-radius: 20px; padding: 16px 20px; gap: 16px; display: flex; flex-wrap: wrap; align-items: end; margin: 24px 0; }
.gs-admin .scope-bar label { margin: 0; min-width: 0; flex: 1 1 170px; }
.gs-admin .scope-bar span { margin: 0 0 10px; color: var(--gs-on-primary-container); }
#gs-scope-summary { flex-basis: 100%; margin: 0; overflow-wrap: anywhere; font-size: 14px; }
.gs-admin .stats { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; margin: 24px 0 32px; }
.gs-admin .stats article { border-radius: 24px; border: 0; background: var(--gs-primary-container); padding: 24px; color: var(--gs-on-primary-container); }
.gs-admin .stats strong { display: block; font-size: 2.25rem; }
.gs-admin .stats span { font-size: .9rem; }
.gs-admin .organizations { display: grid; gap: 16px; }
.gs-admin .organization { background: #fff; border: 1px solid var(--gs-outline-variant); border-radius: 24px; padding: 24px; }
.gs-admin .organization .detail, .gs-admin .actions, .gs-admin .section-title { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.gs-admin .section-title { justify-content: space-between; }
.gs-admin .section-title > *, .gs-admin .actions > * { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
.gs-admin .section-title button { white-space: normal; }
.gs-admin .organization .detail { margin: 14px 0; }
.gs-admin .badge { background: var(--gs-surface-high); color: var(--gs-on-primary-container); border-radius: 20px; padding: 4px 12px; font-size: .8rem; }
.gs-admin #message, .gs-admin [role=alert] { border-radius: 16px; border: 1px solid var(--gs-outline-variant); background: var(--gs-surface-container); padding: 16px; color: var(--gs-on-surface); }
.gs-admin dialog { width: min(640px, calc(100vw - 48px)); padding: 28px; }
.gs-admin pre, .gs-admin code { overflow-wrap: anywhere; white-space: pre-wrap; }
.gs-admin footer { padding: 24px; color: var(--gs-secondary); text-align: center; border-top: 1px solid var(--gs-outline-variant); }
.gs-work-nav { display: flex; flex-wrap: wrap; gap: 8px; padding: 12px; margin: 20px 0; background: var(--gs-surface-high); border-radius: 24px; }
.gs-work-nav button { border: 0; background: transparent; }
.gs-work-nav button[aria-current=page] { background: var(--gs-primary); color: #fff; }
.gs-panel-inactive { display: none !important; }
.gs-page-intro { margin-bottom: 24px; }
.gs-page-intro h2 { margin-bottom: 6px; }
.gs-signed-in > main > .heading { display: none; }
.gs-signed-in .gs-page-intro h1 { font-size: clamp(1.7rem, 3vw, 2.2rem); margin-bottom: 8px; }
.gs-admin.gs-signed-in main { padding-top: 8px; }
.gs-admin.gs-signed-in .scope-bar { margin-top: 12px; }
.gs-admin.gs-signed-in #gs-scope-bar { padding: 12px 16px; }
.gs-admin .gs-guide-picker { width: min(880px, calc(100vw - 40px)); }
@media (min-width: 1000px) {
  .gs-admin.gs-signed-in main { margin-left: 244px; padding-inline: 32px; }
  .gs-admin .gs-work-nav { position: fixed; top: 96px; left: 20px; width: 216px; flex-direction: column; align-items: stretch; margin: 0; }
  .gs-admin .gs-work-nav button { text-align: left; padding: 16px; }
  .gs-admin .gs-work-nav::before { content: '業務メニュー'; font-size: .75rem; color: var(--gs-secondary); padding: 8px 16px; }
}
.gs-admin .gs-danger { color: var(--gs-error); }
.gs-admin details { border: 1px solid var(--gs-outline-variant); border-radius: 18px; padding: 16px; margin-block: 16px; }
.gs-admin summary { cursor: pointer; min-height: 44px; display: list-item; align-content: center; font-weight: 650; }
.gs-admin table { border-collapse: collapse; max-width: 100%; }
.gs-report-table { overflow-x: auto; max-width: 100%; margin-block: 16px; border: 1px solid var(--gs-outline-variant); border-radius: 16px; }
.gs-report-table table { min-width: 600px; width: 100%; }
.gs-report-table th, .gs-report-table td { min-width: 90px; padding: 12px; text-align: left; }
.gs-admin pre, .gs-admin #secret { background: var(--gs-surface-container); border-radius: 16px; }
.gs-admin .notice-meta { color: var(--gs-secondary); }
.gs-admin #lifecycle-editor details, .gs-admin #lifecycle-editor textarea, .gs-admin #content-panel fieldset, .gs-admin #content-panel textarea { border-color: var(--gs-outline-variant); border-radius: 16px; }
.gs-admin #lifecycle-editor { scroll-padding-top: 150px; }
.learner-notices-heading button { flex-shrink: 0; white-space: nowrap; }
.gs-admin #contract-list { list-style: none; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); gap: 12px; margin-block: 24px; }
.gs-admin #contract-list button { width: 100%; text-align: left; background: var(--gs-surface-container); border-radius: 20px; padding: 20px; }
.gs-admin #contract-heading { padding-top: 24px; border-top: 1px solid var(--gs-outline-variant); font-size: 1.4rem; }
@media (min-width: 760px) {
  .gs-admin #contract-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
  .gs-admin #contract-form > label { display: flex; flex-direction: column; justify-content: flex-end; }
  .gs-admin #contract-form > :is(p, button), .gs-admin #contract-form > label:last-of-type { grid-column: 1 / -1; }
  .gs-admin #contract-form > button { justify-self: start; }
}
.gs-admin th, .gs-admin td { padding: 12px; border-bottom: 1px solid var(--gs-outline-variant); text-align: left; }
@keyframes gs-enter { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.gs-help-entry { position: static; width: 100%; text-align: left; background: transparent; color: var(--gs-primary); border: 0; padding: 12px 16px; border-radius: 24px; font-weight: 600; }
.gs-introduction { position: static; padding: 20px; border: 1px solid var(--gs-outline-variant); background: var(--gs-surface-container); border-radius: 24px; margin-block: 20px; }
.gs-introduction[hidden] { display: none !important; }
.gs-introduction button { min-height: 44px; padding: 10px 16px; margin: 4px; color: var(--gs-primary); background: var(--gs-primary-container); border: 0; }
.gs-guide-picker { max-width: 1120px; margin-inline: auto; padding: 28px; }
.gs-guide-list { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); gap: 16px; margin-block: 24px; }
.gs-guide-card { border-radius: 20px; padding: 20px; background: var(--gs-surface-container); border: 1px solid var(--gs-outline-variant); }
.gs-guide-card h3 { margin-top: 0; }
.gs-guide-card button, .gs-guide-picker > button { margin: 4px; min-height: 44px; padding: 10px 16px; color: var(--gs-primary); border: 1px solid var(--gs-outline-variant); background: #fff; }
.gs-guide { position: fixed; right: 20px; bottom: 20px; width: 330px; z-index: 100; border: 2px solid var(--gs-primary); border-radius: 24px; background: #fff; color: var(--gs-on-surface); padding: 20px; box-shadow: 0 12px 48px #163a772b; max-height: calc(100dvh - 40px); overflow: auto; text-align: left; font: 15px/1.6 var(--gs-font); }
.gs-guide[hidden], .gs-help-entry[hidden] { display: none !important; }
.gs-guide h2 { font-size: 1.05rem; line-height: 1.55; margin: 0 0 12px; }
.gs-guide p { margin: 10px 0; }
.gs-guide-expectation { background: var(--gs-primary-container); padding: 12px; border-radius: 12px; }
.gs-guide-save { font-size: .75rem; color: var(--gs-secondary); }
.gs-guide-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-guide { display: flex; flex-direction: column; overflow: hidden; }
.gs-admin fieldset { min-inline-size: 0; max-width: 100%; }
#contract-learning-open { grid-template-columns: minmax(0, 1fr) auto; }
.gs-guide-copy { overflow: auto; min-height: 0; }
.gs-guide-actions { flex-shrink: 0; margin-top: 12px; }
.gs-guide button { border: 1px solid var(--gs-outline-variant); background: #fff; color: var(--gs-primary); padding: 10px 14px; min-height: 44px; }
.gs-guide button.primary { background: var(--gs-primary); color: #fff; }
.gs-guide button:disabled { opacity: .45; }
.gs-guide-target { outline: 3px solid var(--gs-primary) !important; outline-offset: 5px; scroll-margin-block: 24px; }
body.gs-guiding { padding-right: 370px; }
body.gs-guiding .gs-help-entry { display: none; }
body.gs-guiding .task-layout:has(.supporting-pane:not([hidden])) { grid-template-columns: minmax(0, 1fr); }
body.gs-guiding .supporting-pane { position: static; }
.gs-admin dialog.gs-guided-dialog, dialog.gs-guided-dialog { margin-left: max(20px, calc((100vw - 1010px)/2)); margin-right: 390px; width: min(600px, calc(100vw - 410px)); max-width: min(600px, calc(100vw - 410px)); }
.gs-guide-picker > button { padding: 10px 18px; min-height: 44px; }
/* 学習の主操作を通知より先に置き、共通の面・文字・形に揃える。 */
.application-shell, .app-stage, .app-frame, .view { background: var(--gs-surface); }
.navigation-sidebar { background: var(--gs-surface-container); border-right-color: var(--gs-outline-variant); }
.rail-item.active, .bottom-nav .active { background: var(--gs-primary-container); color: var(--gs-on-primary-container); border-radius: 28px; }
.home-mission-card { border-radius: 32px; border-color: var(--gs-outline-variant); box-shadow: none; }
.home-personal-grid > section, .home-score-summary, .learner-notices { border-radius: 24px; box-shadow: none; }
.home-view > .learner-notices { max-width: none; width: 100%; grid-column: 1 / -1; }
.primary-button { border-radius: 28px; background: var(--gs-primary); box-shadow: none; }
.login-panel { border-radius: 28px; }
.contract-card button, .contract-actions button, .contract-notice button { border-radius: 24px; border-color: var(--gs-outline-variant); color: var(--gs-primary); font-weight: 650; }
.app-root :is(.study-card, .lesson-study-header, .module-card, .learning-item, .tip-card, .contract-card, .settings-card, .result-card, .score-card, .task-pane-card) { border-radius: 24px; border-color: var(--gs-outline-variant); box-shadow: none; }
.app-root :is(.ghost-button, .secondary-button, .text-button, .primary-button, .back-inline) { border-radius: 24px; min-height: 44px; }
.app-root .service-type-notice { border-radius: 20px; background: var(--gs-surface-container); padding: 16px 20px; }
.app-root .service-type-notice summary { min-height: 44px; align-content: center; cursor: pointer; font-weight: 750; line-height: 1.65; }
.app-root .service-type-notice[open] summary { margin-bottom: 12px; }
.app-root .stage-card { border-radius: 24px; }
.app-root .stage-card.active { background: var(--gs-primary-container); color: var(--gs-on-primary-container); }
.app-root .choice-button { border-radius: 20px; }
@media (max-width: 599px) {
  .gs-help-entry { bottom: 94px; right: 16px; padding: 12px 18px; }
  .gs-introduction { bottom: 160px; right: 16px; }
  .gs-admin .gs-introduction { bottom: 82px; }
  .gs-admin .gs-help-entry { bottom: 16px; }
  body.gs-guiding { padding-right: 0; padding-bottom: calc(var(--gs-guide-height, 260px) + 24px); }
  .gs-guide { inset: auto 8px 8px; width: auto; max-height: 42dvh; border-radius: 20px; padding: 16px; }
  body:not(.gs-admin) .gs-guide { bottom: 84px; }
  .gs-guide-target { scroll-margin-bottom: calc(var(--gs-guide-height, 260px) + 32px); }
  .gs-admin dialog.gs-guided-dialog, dialog.gs-guided-dialog { width: 100%; max-width: 100%; margin: auto 0 0; padding-bottom: calc(var(--gs-guide-height, 260px) + 32px); }
  .gs-admin header { padding: 16px; flex-wrap: wrap; }
  .gs-admin main { padding: 24px 16px 48px; }
  .gs-admin .panel, .gs-admin .organization { padding: 20px; border-radius: 20px; }
  .gs-admin .stats { gap: 8px; }
  .gs-admin .stats article { padding: 16px 12px; border-radius: 20px; }
  .gs-admin .stats strong { font-size: 1.75rem; }
  .gs-admin .stats span { font-size: .75rem; }
  .gs-admin dialog { width: 100%; max-width: 100%; margin: auto 0 0; max-height: calc(100dvh - 24px); border-radius: 28px 28px 0 0; padding: 24px 20px max(24px, env(safe-area-inset-bottom)); }
  .gs-admin .scope-bar { padding: 16px; }
  .gs-work-nav { gap: 4px; padding: 8px; border-radius: 20px; }
  .gs-work-nav button { padding: 10px 12px; flex: 1 1 auto; }
  .gs-admin .organization .actions > button { flex: 1 1 auto; }
}
.gs-admin .divider { color: var(--gs-secondary); }
/* 目的を選ぶページは文書全体でスクロールし、本文を覆う固定入口を作らない。 */
.gs-help-page .app-stage > .task-layout,
.gs-help-page.gs-admin main > :not(#gs-guide-picker):not(#gs-work-nav) { display: none !important; }
.gs-help-page .app-stage > .content-status { display: none; }
.gs-help-page .rail-item.active { color: var(--muted); background: transparent; }
.gs-help-page .rail-item.active span { color: #53627b; background: #eef3fb; }
.gs-help-entry[aria-current=page] { background: var(--gs-primary); color: var(--gs-on-primary); }
#gs-guide-picker[hidden] { display: none !important; }
.gs-admin #gs-guide-picker, #gs-guide-picker { width: 100%; border: 0; background: transparent; box-shadow: none; overflow: visible; max-height: none; }
.gs-help-eyebrow { color: var(--gs-primary); font-weight: 700; margin: 24px 0 8px; }
.gs-guide-picker h1 { font-size: clamp(1.6rem, 4vw, 2.3rem); line-height: 1.4; margin: 0 0 12px; letter-spacing: -.025em; }
.gs-help-description { color: var(--gs-secondary); max-width: 48em; line-height: 1.8; }
.gs-help-filters { display: grid; grid-template-columns: minmax(0, 1fr) minmax(130px, .3fr); gap: 16px; padding: 20px; border-radius: 24px; background: var(--gs-surface-high); margin-top: 28px; }
.gs-help-filters label, .gs-help-select { display: grid; gap: 8px; margin: 0; font-weight: 600; font-size: .9rem; }
.gs-help-filters input { width: 100%; padding: 10px 14px; border: 1px solid var(--gs-outline); border-radius: 12px; background: #fff; color: var(--gs-on-surface); }
.gs-help-select { position: relative; min-width: 0; }
.gs-help-filters .gs-help-select-trigger { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; padding: 10px 16px; border: 1px solid var(--gs-outline-variant); border-radius: 16px; background: var(--gs-surface-container); color: var(--gs-on-surface); font-weight: 650; text-align: left; cursor: pointer; }
.gs-help-filters .gs-help-select-trigger:hover { background: var(--gs-primary-container); }
.gs-help-filters .gs-help-select-trigger[aria-expanded=true] { border-color: var(--gs-primary); background: var(--gs-primary-container); color: var(--gs-on-primary-container); }
.gs-help-select-arrow { color: var(--gs-primary); font-size: 1.2rem; transition: transform var(--gs-motion) var(--gs-easing); }
[aria-expanded=true] > .gs-help-select-arrow { transform: rotate(180deg); }
.gs-help-select-menu { position: absolute; z-index: 10; inset: calc(100% + 8px) 0 auto; display: grid; gap: 4px; padding: 8px; border: 1px solid var(--gs-outline-variant); border-radius: 20px; background: var(--gs-surface-container); box-shadow: 0 8px 24px #18243a26; animation: gs-enter var(--gs-motion) var(--gs-easing); }
.gs-help-select-menu[hidden] { display: none !important; }
.gs-help-select-menu [role=option] { display: flex; align-items: center; gap: 10px; min-height: 48px; padding: 10px 12px; border: 0; border-radius: 12px; background: transparent; color: var(--gs-on-surface); font-weight: 500; text-align: left; cursor: pointer; }
.gs-help-select-menu [role=option]::before { content: ''; width: 1em; flex: none; }
.gs-help-select-menu [role=option][aria-selected=true] { background: var(--gs-primary-container); color: var(--gs-on-primary-container); font-weight: 700; }
.gs-help-select-menu [role=option][aria-selected=true]::before { content: '✓'; }
.gs-help-select-menu [role=option]:hover, .gs-help-select-menu [role=option]:focus-visible { background: var(--gs-surface-high); }
.gs-help-count { color: var(--gs-secondary); margin: 20px 0 0; }
.gs-guide-card { display: flex; flex-direction: column; align-items: flex-start; background: #fff; padding: 24px; }
.gs-guide-card h3 { font-size: 1.15rem; line-height: 1.65; margin: 0 0 8px; }
.gs-guide-card p { line-height: 1.8; color: var(--gs-secondary); margin: 0 0 16px; }
.gs-guide-card > p:nth-of-type(2) { font-size: .8rem; font-weight: 600; margin-top: auto; color: var(--gs-primary); }
.gs-guide-card button:first-of-type { background: var(--gs-primary-container); border: 0; color: var(--gs-on-primary-container); font-weight: 700; }
.gs-help-recovery { margin-top: 24px; padding: 16px; border-top: 1px solid var(--gs-outline-variant); color: var(--gs-secondary); }
.gs-help-recovery summary { cursor: pointer; min-height: 44px; align-content: center; }
.gs-help-recovery button { padding: 10px 16px; margin: 4px; background: #fff; border: 1px solid var(--gs-outline-variant); color: var(--gs-primary); }
html { scrollbar-color: #a9b9d5 var(--gs-surface); scrollbar-width: thin; }
.gs-guide-copy { scrollbar-color: #a9b9d5 transparent; scrollbar-width: thin; }
.home-view.active { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; }
.home-view.active > * { margin-block: 0; min-width: 0; }
.home-heading h1 { font-weight: 750; line-height: 1.45; }
.home-mission-card .primary-button { font-weight: 700; min-height: 48px; }
.home-mission-content :is(h1,h2) { line-height: 1.45; font-weight: 750; }
.home-personal-grid { gap: 20px; }
.gs-admin header { position: sticky; top: 0; z-index: 30; min-height: 64px; padding-block: 10px; }
.gs-admin .gs-work-nav { max-height: calc(100dvh - 96px); overflow-y: auto; scrollbar-width: thin; }
@media (min-width: 1000px) { .gs-admin .gs-work-nav { top: 88px; } }
@media (max-width: 599px) {
  .topbar { height: 56px; min-height: 56px; padding-inline: 12px; }
  .topbar .brand-mark { width: 28px; height: 28px; }
  .topbar .brand-name { font-size: 1.1rem; }
  .topbar-account, .topbar .back-button { min-width: 44px; min-height: 44px; }
  .app-frame { min-height: calc(100dvh - 56px); padding-top: 16px; }
  .home-view.active { gap: 20px; }
  .home-heading h1 { font-size: 1.65rem; margin-block: 4px 8px; }
  .home-heading { margin-bottom: 0; }
  .home-mission-card { border-radius: 28px; }
  .learner-notices { padding: 20px; }
  #gs-guide-picker { padding: 20px 16px 96px; }
  .gs-help-filters { grid-template-columns: minmax(0, 1fr); padding: 16px; gap: 12px; }
  .gs-guide-list { grid-template-columns: minmax(0, 1fr); }
  .gs-help-entry { position: static; }
  .gs-admin header { flex-direction: row; flex-wrap: wrap; align-items: center; min-height: 56px; padding: 6px 12px; gap: 6px; }
  .gs-admin header nav { flex-wrap: wrap; max-width: 100%; gap: 6px; font-size: .8rem; }
  .gs-admin header nav a { display: inline-flex; align-items: center; min-height: 44px; white-space: nowrap; }
  .gs-admin header nav button { padding: 8px 12px; white-space: nowrap; }
  .gs-admin .brand { font-size: .95rem; white-space: nowrap; }
  .gs-admin .brand span { margin-left: 4px; padding: 2px 6px; font-size: .65rem; }
  .gs-admin .gs-work-nav { display: flex; flex-wrap: nowrap; gap: 4px; padding: 8px; max-height: none; overflow-x: auto; border-radius: 20px; }
  .gs-admin .gs-work-nav button { flex: 0 0 auto; width: auto; white-space: nowrap; }
}
@media (max-width: 359px) { .gs-admin header .brand span { display: none; } }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}
