/* ログインが要る画面の共通の門（public/shared/portal-auth.js）。
   デザインは top-aicuai の規則（https://top.aicu.ai/lab/acct/ ・値は https://top.aicu.ai/theme.css の --aicu-*）:
   地は白〜グレー・文字は墨・藍はリンクと主ボタンだけ・見出し Outfit・丸み 10px・影は使わず罫線で組む。
   theme.css を読んでいないページでも同じ見た目になるよう、各値に既定を書いておく。 */
[hidden] { display: none !important; } /* 各ページの .grid などが hidden を上書きしないように */
.portal-locked [data-portal-private] { display: none !important; }
#portal-gate { margin: 1.5rem 0; }
.pg-card { border: 1px solid var(--aicu-rule, #E3E3E7); border-radius: var(--aicu-radius, 10px); padding: 1.75rem 1.5rem; max-width: 560px; background: #fff; color: var(--aicu-ink, #15171E); }
.pg-card h2 { margin: 0 0 .5rem; font-family: var(--aicu-font-display, "Outfit", "Zen Kaku Gothic New", system-ui, sans-serif); letter-spacing: -.01em; font-size: 1.2rem; color: var(--aicu-ink, #15171E); }
.pg-card p { margin: 0 0 1.1rem; color: var(--aicu-ink-2, #4A4E5C); font-size: .92rem; line-height: 1.7; }
.pg-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .65rem 1.4rem; border-radius: var(--aicu-radius, 10px); border: 1px solid var(--aicu-accent, #24357F); background: var(--aicu-accent, #24357F); color: #fff; font: inherit; font-size: .95rem; font-weight: 700; cursor: pointer; }
.pg-btn:hover { background: #1B2862; }
.pg-btn:focus-visible { outline: 3px solid var(--aicu-accent-soft, #EDEFF9); outline-offset: 2px; }
.pg-btn.pg-sub { background: #fff; color: var(--aicu-ink, #15171E); border-color: var(--aicu-rule-2, #C9CAD2); margin-left: .5rem; }
.pg-who { font-size: .85rem; color: var(--aicu-ink-2, #4A4E5C); background: var(--aicu-paper-2, #F4F4F1); border: 1px solid var(--aicu-rule, #E3E3E7); border-radius: var(--aicu-radius, 10px); padding: .5rem .75rem; margin: 0 0 1rem; word-break: break-all; }
.pg-checking { display: flex; gap: .6rem; align-items: center; color: var(--aicu-ink-2, #4A4E5C); font-size: .92rem; }
.pg-spin { width: 16px; height: 16px; border: 2px solid var(--aicu-rule-2, #C9CAD2); border-top-color: var(--aicu-ink, #15171E); border-radius: 50%; animation: pg-spin .8s linear infinite; }
@keyframes pg-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .pg-spin { animation: none; } }
.pg-err { border-color: #B42318; }
.pg-err h2 { color: #B42318; }
/* 事務局の画面のタブ（ログイン後だけ見える） */
.office-tabs { display: flex; flex-wrap: wrap; gap: .25rem; border-bottom: 1px solid var(--aicu-rule, #E3E3E7); margin: .5rem 0 1.25rem; }
.office-tabs a { padding: .55rem .9rem; color: var(--aicu-ink-2, #4A4E5C); text-decoration: none; font-size: .9rem; font-weight: 600; border-bottom: 3px solid transparent; }
.office-tabs a[aria-current="page"] { color: var(--aicu-ink, #15171E); border-bottom-color: var(--aicu-ink, #15171E); }
.office-tabs a:focus-visible { outline: 3px solid var(--aicu-accent-soft, #EDEFF9); }
