/* /UI/App.razor.rz.scp.css */
:root[b-hrkov34jda], body[b-hrkov34jda] {
  font-family: 'Noto Sans JP', sans-serif;
  font-optical-sizing: auto;
  font-style: normal;
}

:root[b-hrkov34jda],
body.light[b-hrkov34jda] {
  --primary: #0061a4;
  --on-primary: #ffffff;
  --primary-container: #d1e4ff;
  --on-primary-container: #001d36;
  --secondary: #535f70;
  --on-secondary: #ffffff;
  --secondary-container: #d7e3f8;
  --on-secondary-container: #101c2b;
  --tertiary: #6c5d2f;
  --on-tertiary: #ffffff;
  --tertiary-container: #f6e8c2;
  --on-tertiary-container: #221b00;
  --error: #ba1a1a;
  --on-error: #ffffff;
  --error-container: #ffdad6;
  --on-error-container: #410002;
  --background: #fdfcff;
  --on-background: #1a1c1e;
  --surface: #faf9fc;
  --on-surface: #1a1c1e;
  --surface-variant: #dfe2eb;
  --on-surface-variant: #43474e;
  --outline: #73777f;
  --outline-variant: #c3c6cf;
  --shadow: #000000;
  --scrim: #000000;
  --inverse-surface: #2f3033;
  --inverse-on-surface: #f1f0f4;
  --inverse-primary: #9fcaff;
  --surface-dim: #dadadd;
  --surface-bright: #faf9fc;
  --surface-container-lowest: #ffffff;
  --surface-container-low: #f4f3f7;
  --surface-container: #eeedf1;
  --surface-container-high: #e8e8eb;
  --surface-container-highest: #e2e2e6;
}

[b-hrkov34jda] footer {
  margin-top: 80px;
  height: 46px;
  min-block-size: 0;
}

[b-hrkov34jda] .avatar img {
  height: auto;
  max-width: 3rem;
  object-fit: contain;
}

[b-hrkov34jda] .row .profile-name {
  font-size: 1.5rem;
  font-weight: bold;
  overflow-wrap: anywhere;
  min-width: 0;
  flex-shrink: 1;
}

[b-hrkov34jda] dl dt:not(:first-child) {
  margin-top: 1rem;
}

[b-hrkov34jda] dd > pre {
  margin-top: 0.5rem;
}

[b-hrkov34jda] .field > textarea,
textarea[b-hrkov34jda] {
  min-height: calc(1.5em * 4);
  height: auto;
  overflow: auto;
}

@supports (field-sizing: content) {
  [b-hrkov34jda] .field {
    field-sizing: content;
    min-height: min-content;
  }

    [b-hrkov34jda] .field > textarea {
      field-sizing: content;
      min-height: min-content;
      min-block-size: calc(4lh);
    }
}

/* ブラウザ自動入力(autofill)によりinputの背景が勝手に変わるのを抑止 */
[b-hrkov34jda] input:-webkit-autofill,
[b-hrkov34jda] textarea:-webkit-autofill,
[b-hrkov34jda] select:-webkit-autofill,
[b-hrkov34jda] input:-webkit-autofill:hover,
[b-hrkov34jda] textarea:-webkit-autofill:hover,
[b-hrkov34jda] select:-webkit-autofill:hover,
[b-hrkov34jda] input:-webkit-autofill:focus,
[b-hrkov34jda] textarea:-webkit-autofill:focus,
[b-hrkov34jda] select:-webkit-autofill:focus {
  -webkit-box-shadow: 0 0 0 1000px var(--surface-variant) inset !important;
  box-shadow: 0 0 0 1000px var(--surface-variant) inset !important;
}

@media print {
  @page {
    size: A4;
    margin: 12mm;
  }

  [b-hrkov34jda] body {
    margin: 0;
  }

  [b-hrkov34jda] .header,
  [b-hrkov34jda] nav,
  [b-hrkov34jda] .right-align,
  [b-hrkov34jda] .button,
  [b-hrkov34jda] [onclick],
  [b-hrkov34jda] [type='reset'] {
    display: none !important;
  }

  [b-hrkov34jda] fieldset,
  [b-hrkov34jda] .padding.secondary-container {
    break-after: avoid;
    page-break-after: avoid;
  }

  [b-hrkov34jda] dl {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  [b-hrkov34jda] dt {
    break-after: avoid;
    page-break-after: avoid;
  }

  [b-hrkov34jda] dd {
    break-before: avoid;
    page-break-before: avoid;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  [b-hrkov34jda] dl > pre,
  [b-hrkov34jda] dl > span {
    break-before: avoid;
    page-break-before: avoid;
  }

  [b-hrkov34jda] pre {
    white-space: pre-wrap;
    word-break: break-word;
  }
}
/* /UI/Common/Components/Dialogs/ReconnectModal.razor.rz.scp.css */
.components-reconnect-first-attempt-visible[b-ukur8pdbwi],
.components-reconnect-repeated-attempt-visible[b-ukur8pdbwi],
.components-reconnect-failed-visible[b-ukur8pdbwi],
.components-pause-visible[b-ukur8pdbwi],
.components-resume-failed-visible[b-ukur8pdbwi],
.components-rejoining-animation[b-ukur8pdbwi] {
  display: none;
}

#components-reconnect-modal.components-reconnect-show .components-reconnect-first-attempt-visible[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-show .components-rejoining-animation[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-paused .components-pause-visible[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-resume-failed .components-resume-failed-visible[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-retrying[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-retrying .components-reconnect-repeated-attempt-visible[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-retrying .components-rejoining-animation[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-failed[b-ukur8pdbwi],
#components-reconnect-modal.components-reconnect-failed .components-reconnect-failed-visible[b-ukur8pdbwi] {
  display: block;
}


#components-reconnect-modal[b-ukur8pdbwi] {
  background-color: white;
  inset: 0;
  margin: 20vh auto;
  padding: 2rem;
  border: 0;
  border-radius: 0.5rem;
  box-shadow: 0 3px 6px 2px rgba(0, 0, 0, 0.3);
  opacity: 0;
  transition: display 0.5s allow-discrete, overlay 0.5s allow-discrete;
  animation: components-reconnect-modal-fadeOutOpacity-b-ukur8pdbwi 0.5s both;
  &[open]

  {
    animation: components-reconnect-modal-slideUp-b-ukur8pdbwi 1.5s cubic-bezier(.05, .89, .25, 1.02) 0.3s, components-reconnect-modal-fadeInOpacity-b-ukur8pdbwi 0.5s ease-in-out 0.3s;
    animation-fill-mode: both;
  }

}

#components-reconnect-modal[b-ukur8pdbwi]::backdrop {
  background-color: rgba(0, 0, 0, 0.4);
  animation: components-reconnect-modal-fadeInOpacity-b-ukur8pdbwi 0.5s ease-in-out;
  opacity: 1;
}

@keyframes components-reconnect-modal-slideUp-b-ukur8pdbwi {
  0% {
    transform: translateY(30px) scale(0.95);
  }

  100% {
    transform: translateY(0);
  }
}

@keyframes components-reconnect-modal-fadeInOpacity-b-ukur8pdbwi {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

@keyframes components-reconnect-modal-fadeOutOpacity-b-ukur8pdbwi {
  0% {
    opacity: 1;
  }

  100% {
    opacity: 0;
  }
}

.components-reconnect-container[b-ukur8pdbwi] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
}

#components-reconnect-modal p[b-ukur8pdbwi] {
  margin: 0;
  text-align: center;
}

#components-reconnect-modal button[b-ukur8pdbwi] {
  border: 0;
  background-color: #6b9ed2;
  color: white;
  padding: 4px 24px;
  border-radius: 4px;
}

#components-reconnect-modal button:hover[b-ukur8pdbwi] {
  background-color: #3b6ea2;
}

#components-reconnect-modal button:active[b-ukur8pdbwi] {
  background-color: #6b9ed2;
}

.components-rejoining-animation[b-ukur8pdbwi] {
  position: relative;
  width: 80px;
  height: 80px;
}

.components-rejoining-animation div[b-ukur8pdbwi] {
  position: absolute;
  border: 3px solid #0087ff;
  opacity: 1;
  border-radius: 50%;
  animation: components-rejoining-animation-b-ukur8pdbwi 1.5s cubic-bezier(0, 0.2, 0.8, 1) infinite;
}

.components-rejoining-animation div:nth-child(2)[b-ukur8pdbwi] {
  animation-delay: -0.5s;
}

@keyframes components-rejoining-animation-b-ukur8pdbwi {
  0% {
    top: 40px;
    left: 40px;
    width: 0;
    height: 0;
    opacity: 0;
  }

  4.9% {
    top: 40px;
    left: 40px;
    width: 0;
    height: 0;
    opacity: 0;
  }

  5% {
    top: 40px;
    left: 40px;
    width: 0;
    height: 0;
    opacity: 1;
  }

  100% {
    top: 0px;
    left: 0px;
    width: 80px;
    height: 80px;
    opacity: 0;
  }
}
/* /UI/Common/Components/Forms/Fields/AttachmentFileField.razor.rz.scp.css */
.file-upload-area[b-p9io8vobpk] {
  border: 2px dashed var(--outline) !important;
  border-radius: 12px;
  padding: 2rem;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.2s;
  margin: 1rem 2rem auto;
}

  .file-upload-area:hover[b-p9io8vobpk] {
    background-color: var(--surface-container);
  }

  .file-upload-area input[type="file"][b-p9io8vobpk] {
    display: none;
  }

  .file-upload-area label[b-p9io8vobpk] {
    cursor: pointer;
    justify-content: center;
    gap: 0.5rem;
    color: var(--on-surface-variant);
  }

  .file-upload-area i[b-p9io8vobpk] {
    font-size: 2rem;
  }
/* /UI/Common/Components/Forms/Fields/PasswordFormField.razor.rz.scp.css */
[b-mlf4urtx98] span > .field {
  margin-block-start: 1rem;
}
/* /UI/Common/Components/Forms/Fields/TextAreaFormField.razor.rz.scp.css */
.char-count[b-2ke0tg1n1y] {
  position: absolute;
  right: 0.75rem;
  bottom: 0.5rem;
  font-size: 0.75rem;
  color: var(--outline);
  pointer-events: none;
}
/* /UI/Common/Components/Forms/ImportCsvForm.razor.rz.scp.css */
.pointer[b-l78r3w5ms4] {
  cursor: pointer;
}
/* /UI/Common/Components/Navigation/Toc.razor.rz.scp.css */
.toc[b-y72eo2junp] {
  position: fixed;
  top: 200px;
  right: -300px; /* 初期状態：画面外（右端）に隠す */
  width: 300px;
  background: var(--secondary-container);
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
  z-index: 1000;
  max-height: calc(100vh - 100px);
  /* 開閉アニメーション（スライド＋びよーん） */
  transition: right 0.3s cubic-bezier(0.25, 0.8, 0.5, 1), /* スライド動作 */ transform 0.45s cubic-bezier(0.25, 1.5, 0.5, 1);
}

  /* --- 展開時 --- */
  .toc.open[b-y72eo2junp] {
    right: 0; /* 画面内にスライドイン */
    transform: translateX(8px); /* 少し行き過ぎて勢いを演出 */
  }

    /* --- 展開完了（バネの収束） --- */
    .toc.open.active[b-y72eo2junp] {
      transform: translateX(0); /* 行き過ぎたぶんを戻して安定 */
    }

/* --- モーションを控える設定のユーザー向け --- */
@media (prefers-reduced-motion: reduce) {
  .toc[b-y72eo2junp] {
    transition: none; /* アニメーションを無効化 */
  }
}

/* --- 目次の「耳」（トリガータブ） --- */
.toc-ear[b-y72eo2junp] {
  position: absolute;
  top: 0;
  left: -40px; /* パネルから少し外へ出す（見せる部分） */
  height: 80px;
  width: 40px;
  border-top-left-radius: 8px;
  border-bottom-left-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 14px;
  font-weight: bold;
  color: var(--on-secondary);
  writing-mode: vertical-rl; /* 縦書きテキスト「目次」 */
  background-color: var(--secondary);
  cursor: pointer;
}

  .toc-ear a:focus-visible[b-y72eo2junp] {
    outline: none;
  }

/* --- リスト構造 --- */
.toc ul[b-y72eo2junp] {
  display: flex;
  flex-direction: column;
  list-style: none;
  margin: 0;
  padding: 0;
}

/* --- 各リスト項目 --- */
.toc li[b-y72eo2junp] {
  width: 100%;
}

/* --- 各リンク --- */
.toc a[b-y72eo2junp] {
  display: block;
  padding: 6px 8px;
  text-decoration: none;
  color: var(--on-surface);
  font-size: 14px;
  transition: background-color 0.2s ease;
}

  /* --- ホバー時 --- */
  .toc a:hover[b-y72eo2junp] {
    background-color: var(--primary);
    color: var(--on-secondary);
  }

.toc-ear a:hover[b-y72eo2junp] {
  background-color: transparent;
}

/* --- 現在地のリンク --- */
.toc a.active[b-y72eo2junp] {
  background-color: var(--secondary);
  color: var(--on-secondary);
  font-weight: bold;
}

@media print {
  .toc[b-y72eo2junp],
  .toc-ear[b-y72eo2junp] {
    /* print時に非表示にする */
    display: none !important;
  }
}
/* /UI/Common/Components/Paginations/Paginator.razor.rz.scp.css */
.pagination[b-99qlruys6p] {
  display: inline-block;
}

  .pagination a[b-99qlruys6p] {
    color: black;
    float: left;
    padding: 8px 16px;
    text-decoration: none;
    transition: background-color .3s;
    border: 1px solid #ddd;
    border-radius: 1px;
    margin: 0;
  }

    .pagination a.active[b-99qlruys6p] {
      background-color: var(--primary);
      color: var(--on-primary);
      border: 1px solid var(--outline-variant);
    }

    .pagination a:hover[b-99qlruys6p] {
      background-color: var(--surface-container-low);
    }

    .pagination a.active:hover[b-99qlruys6p] {
      background-color: color-mix(in srgb, var(--primary) 95%, white);
    }

.total-count[b-99qlruys6p] {
  position: absolute;
  left: 0;
}
/* /UI/Common/Components/Progress/ProgressOverlay.razor.rz.scp.css */
.progress-overlay[b-ie0sgzzf7e] {
  position: fixed;
  inset: 0;
  z-index: 2000;
  background-color: rgba(255, 255, 255, 0.65);
  pointer-events: all;
  display: grid;
  place-items: center;
}

.progress-overlay .content[b-ie0sgzzf7e] {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.75rem;
}

  .progress-overlay .message[b-ie0sgzzf7e] {
    color: var(--on-surface);
    font-size: 0.95rem;
  }
/* /UI/Common/Components/Sheet/EducationSupportSheetBody.razor.rz.scp.css */
/* 短期目標内のネストされたfieldsetに階層を表現 */
fieldset fieldset fieldset[b-xmqwrhg0jf] {
    margin: 1rem;
}
/* /UI/Common/Components/Table/ClickableTableRow.razor.rz.scp.css */
tr.clickable[b-wi9xygonnt] {
  cursor: pointer;
}

  tr.clickable:hover[b-wi9xygonnt] {
    background-color: color-mix(in srgb, currentColor 6%, transparent);
  }
/* /UI/Common/Components/Titles/BackLinkMainTitle.razor.rz.scp.css */
a.backUrlIcon[b-s2d1xj6q2l] {
  margin-right: 8px;
  cursor: pointer;
}
/* /UI/Common/Layout/MainLayout.razor.rz.scp.css */
.logo[b-hdlqr6m8xd] {
  height: 50px;
}

/*
  スマートフォンのような狭い画面でも氏名とログアウトボタンを操作できるようにする。
  ヘッダーの各要素は既定では縮まず折り返しもしないため、画面幅に収まらないと右端が画面外に出てしまう。
  狭い画面では氏名をアイコンに置き換え、それでも収まらない要素は nav の wrap で次の行に送る。
*/
header > nav[b-hdlqr6m8xd] {
  /* 氏名が長いと nav の最小幅がヘッダーの幅を超えて広がるため、幅の下限を外して折り返し・省略を効かせる */
  min-inline-size: 0;
  /* 折り返した各行がヘッダーの上下端に接しないようにする */
  padding-block: 0.5rem;
}

header > nav > .max.user-actions[b-hdlqr6m8xd] {
  /* BeerCSS の .max は flex-basis: 0 のため折り返しの対象にならない。内容の幅を基準にする */
  flex: 1 1 auto;
  min-inline-size: 0;
}

header .user-actions > .user-menu-button[b-hdlqr6m8xd] {
  /* 省略表示で幅 0 まで潰れないよう、アイコン 1 つ分を残す（content-box のためパディングは別途加算） */
  flex: 0 1 auto;
  min-inline-size: 1.5rem;
}

/* メニュー内の氏名は表示専用。長いとメニューが画面外へ伸びるため折り返す（BeerCSS の nowrap が !important のため上書きにも必要） */
header .user-menu-button > menu > .account-name[b-hdlqr6m8xd] {
  cursor: default;
  min-block-size: auto;
  max-inline-size: min(60vw, 20rem);
  white-space: normal !important;
  overflow-wrap: anywhere;
}

header .user-menu-button > menu > .account-name:hover[b-hdlqr6m8xd] {
  background-color: transparent;
}

#blazor-error-ui[b-hdlqr6m8xd] {
  color-scheme: light only;
  background: lightyellow;
  bottom: 0;
  box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
  box-sizing: border-box;
  display: none;
  left: 0;
  padding: 0.6rem 1.25rem 0.7rem 1.25rem;
  position: fixed;
  width: 100%;
  z-index: 1000;
}

  #blazor-error-ui .reload[b-hdlqr6m8xd] {
    cursor: pointer;
    position: absolute;
    right: 3.5rem;
    top: 0.5rem;
  }

  #blazor-error-ui .dismiss[b-hdlqr6m8xd] {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
  }

@media print {
  .meta[b-hdlqr6m8xd] {
    display: none;
  }
}
/* /UI/Features/OrganizationUser/Child/Components/InternalMemoDialogButton.razor.rz.scp.css */
.internal-memo-content[b-gesii2bi5r] {
    border-left: 4px solid var(--primary);
    border-radius: 0;
    padding: 1rem;
    background: var(--surface-container);
    white-space: pre-wrap;
    word-break: break-word;
    text-align: left;
}
/* /UI/Features/OrganizationUser/Child/Pages/ChildrenSearchPage.razor.rz.scp.css */
.birth-year-range[b-zl1dg9srkr] {
    display: flex;
    align-items: end;
    gap: 0.25rem;
}

.birth-year-range-item[b-zl1dg9srkr] {
    flex: 1;
}

.birth-year-range-separator[b-zl1dg9srkr] {
    padding-bottom: 0.75rem;
}
/* /UI/Features/OrganizationUser/GuardianLinking/Components/GuardianLinkingQrDialog.razor.rz.scp.css */
/* QRサムネイル：クリックで拡大できることを示す */
.qr-thumb[b-stl4ki4kl7] {
    cursor: zoom-in;
}

/* 確認画面のグループ（fieldset）：枠線・legendと中身に余白を持たせる */
.confirm-group[b-stl4ki4kl7] {
    padding: 0.75rem 1rem 1rem;
}

.confirm-group legend[b-stl4ki4kl7] {
    padding-inline: 0.4rem;
}

/* 住所など複数行の値を、改行を保持して表示する */
.pre-line[b-stl4ki4kl7] {
    white-space: pre-line;
}

/* QRコードの全画面拡大オーバーレイ。上に残り時間、下にQRを縦並びにする。 */
.qr-fullscreen-overlay[b-stl4ki4kl7] {
    position: fixed;
    inset: 0;
    /* 目次タブ（z-index:1000）より前面に表示する */
    z-index: 1100;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-start;
    gap: 1.5rem;
    padding: 1.5rem;
    box-sizing: border-box;
    background: rgba(0, 0, 0, 0.85);
    cursor: zoom-out;
}

/* 有効期限の残り時間。画面上部に表示する */
.qr-fullscreen-remaining[b-stl4ki4kl7] {
    color: #ffffff;
    font-size: 1.5rem;
    font-weight: 700;
    text-align: center;
}

/* 残り時間の分を残し、画面に収まる最大の正方形で表示。
   拡大時もモジュールが滲まないよう pixelated にする。 */
.qr-fullscreen-overlay img[b-stl4ki4kl7] {
    width: min(92vw, calc(100vh - 7rem));
    height: min(92vw, calc(100vh - 7rem));
    padding: 1rem;
    box-sizing: border-box;
    background: #ffffff;
    image-rendering: pixelated;
}
/* /UI/Features/OrganizationUser/Sheet/Components/OrganizationUserSheetHeader.razor.rz.scp.css */
/* プロフィール（氏名・生年月日・性別・各アイコン）と、保護者紐付け・在籍のバッジを
   幅に余裕がある時は横一列に並べ、幅が狭い時のみ折り返す。 */
.profile-header[b-5mocgm7f3q] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start; /* 高さが異なる要素・バッジは上揃え */
    gap: 1rem;
}

/* プロフィールを伸ばして、余白がある時はバッジを右側へ寄せる。
   幅が狭くなるとバッジが次の行へ折り返り、左寄せになる（右端固定の目次タブと重ならない）。 */
.profile-main[b-5mocgm7f3q] {
    flex: 1 1 auto;
}

/* 保護者紐付け・在籍のバッジ群。バッジ間は少し間隔を空ける。 */
.profile-badges[b-5mocgm7f3q] {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 0.75rem;
}

/* バッジ内のテキスト（園名・続柄＋氏名など）は折り返さない */
.profile-badges[b-5mocgm7f3q]  button {
    white-space: nowrap;
}
