/* =========================================================
   会員専用ページ（member-portal.php）ページ固有スタイル
   共通トークン・ヘッダー・フッター・ボタンは common.css を継承
   ========================================================= */

/* --- ページヒーロー --- */
.portal-hero{background:linear-gradient(160deg,var(--navy-950),var(--navy-800));color:#fff;padding:54px 0 46px}
.portal-hero .breadcrumbs{font-size:12px;color:#a9c2d6;margin-bottom:16px}
.portal-hero .breadcrumbs a{color:#cfe0ee}.portal-hero .breadcrumbs a:hover{color:#fff;text-decoration:underline}
.portal-hero .kicker{color:var(--accent-editorial-on-dark)}
.portal-hero h1{font-size:clamp(26px,3.6vw,38px);letter-spacing:.04em;margin:6px 0 14px;line-height:1.3}
.portal-hero .portal-lead{color:#dbe7f1;font-size:14.5px;line-height:1.95;margin:0 0 16px;max-width:760px}
.portal-hero .demo-flag{display:inline-flex;gap:9px;align-items:center;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.08);border:1px dashed rgba(216,181,107,.7);color:#f0d9a6;font-size:12.5px}

/* --- セクション枠 --- */
.portal-sec{padding:52px 0}
.portal-sec.alt{background:var(--sky-50)}

/* --- 利用者別の入口（未ログイン） --- */
.portal-entry-guide{margin:0 0 26px;background:#fff;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.portal-entry-head{padding:22px 26px 18px;border-bottom:1px solid var(--line)}
.portal-entry-head h2{margin:5px 0 0;font-size:20px;color:var(--navy-900)}
.portal-entry-rows{display:grid}
.portal-entry-row{display:grid;grid-template-columns:minmax(180px,.8fr) minmax(300px,1.8fr) auto;gap:20px;align-items:center;padding:17px 26px;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none}
.portal-entry-row:last-child{border-bottom:0}
.portal-entry-row:hover{background:#f7f9fb}
.portal-entry-who{font-size:14px;font-weight:800;color:var(--navy-900)}
.portal-entry-purpose{font-size:13px;line-height:1.7;color:var(--muted)}
.portal-entry-row strong{font-size:12.5px;color:var(--blue-600);white-space:nowrap}
.portal-entry-note{margin:0;padding:13px 26px;border-top:1px solid var(--line);font-size:12.5px;line-height:1.75;color:var(--muted);background:#f7f9fb}

/* --- パネル共通 --- */
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:32px 34px}
.panel .sec-head{margin-bottom:22px}
.panel .sec-head h2{font-size:22px;color:var(--navy-900);margin:6px 0 10px}
.panel .sec-copy{color:var(--muted);font-size:14px;line-height:1.9;margin:0}

/* --- フォーム --- */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px 20px}
.field{display:flex;flex-direction:column;min-width:0}
.field.full{grid-column:1 / -1}
.field label{font-size:13px;font-weight:700;color:var(--navy-900);margin-bottom:7px}
.field input,.field select{border:1px solid #c9d9e2;border-radius:10px;padding:11px 14px;font-size:14px;font-family:inherit;color:var(--ink);background:#fff;transition:border-color .2s,box-shadow .2s}
.field input:focus,.field select:focus{outline:none;border-color:var(--blue-500);box-shadow:0 0 0 3px rgba(37,99,235,.14)}
.form-actions{margin-top:20px}
.form-help{margin:14px 0 0;font-size:12px;color:var(--muted);line-height:1.7}
.demo-note{margin:16px 0 0;padding:12px 16px;border-radius:10px;background:#fdf8ec;border:1px dashed #d8b56b;color:#8a6d2f;font-size:12.5px;line-height:1.8}

/* --- 汎用ミニボタン（ページ内） --- */
.portal-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #c9d9e2;border-radius:999px;background:#fff;color:var(--navy-800);font-size:13px;font-weight:700;cursor:pointer;transition:.2s;text-decoration:none}
.portal-btn:hover{border-color:var(--blue-500);color:var(--blue-600)}
.portal-btn[aria-pressed="true"]{background:var(--navy-900);border-color:var(--navy-900);color:#fff}

/* --- ダッシュボード --- */
.portal-dashboard{margin-top:26px}
.portal-dashboard[hidden]{display:none}
.portal-welcome{display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:20px 26px;margin-bottom:20px}
.portal-welcome strong{display:block;font-size:17px;color:var(--navy-900)}
.portal-welcome span{font-size:12.5px;color:var(--muted)}

/* --- 会員の日常入口 --- */
.portal-member-actions{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:6px;background:#fff;margin:0 0 24px;overflow:hidden}
.portal-member-actions a{display:flex;flex-direction:column;gap:5px;min-height:86px;padding:18px 20px;border-right:1px solid var(--line);color:inherit;text-decoration:none}
.portal-member-actions a:last-child{border-right:0}
.portal-member-actions a:hover{background:#f7f9fb}
.portal-member-actions strong{font-size:14px;color:var(--navy-900)}
.portal-member-actions span{font-size:12px;line-height:1.6;color:var(--muted)}

/* --- 役職者・管理者メニュー --- */
.portal-operations{margin:0 0 30px;padding:26px 28px;background:#fff;border:1px solid var(--line);border-radius:6px}
.portal-operations-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding-bottom:14px;border-bottom:2px solid var(--navy-900)}
.portal-operations-head h2{margin:5px 0 0;font-size:20px;color:var(--navy-900)}
.portal-access-state{display:inline-block;padding:4px 10px;border:1px solid #cfd6de;border-radius:3px;font-size:11.5px;font-weight:700;color:#677382;background:#fff}
.portal-access-state.is-available{border-color:#9fb4c8;color:var(--navy-900);background:#f2f6f9}
.portal-operations-copy{margin:15px 0 18px;font-size:13px;line-height:1.8;color:var(--muted)}
.portal-feature-message{margin:0 0 18px;padding:13px 16px;border-left:3px solid var(--navy-900);background:#f2f4f6;color:#26384a;font-size:13px;line-height:1.8}
.portal-feature-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px 34px}
.portal-feature-group h3{margin:0;padding:0 0 8px;border-bottom:1px solid #aeb8c2;font-size:13px;color:var(--navy-900)}
.portal-feature-links{display:grid}
.portal-feature-links a{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 2px;border-bottom:1px solid var(--line);color:#26384a;text-decoration:none;font-size:13px}
.portal-feature-links a:hover span{text-decoration:underline;color:var(--blue-600)}
.portal-feature-links small{flex:none;font-size:10.5px;color:#7a8490}
.portal-feature-links small.is-available{font-weight:700;color:var(--navy-900)}

/* --- 要回答バナー --- */
.action-required{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-left:4px solid var(--warm);border-radius:12px;box-shadow:var(--shadow);padding:16px 22px;margin-bottom:22px}
.action-required .ar-badge{display:inline-block;padding:5px 12px;border-radius:999px;background:var(--warm);color:#5a4a2a;font-size:12px;font-weight:800;white-space:nowrap}
.action-required p{margin:0;color:#2c3e4e;font-size:13.5px;line-height:1.75}
.action-required strong{color:var(--navy-900)}

/* --- 通知の案内（登録メールへ自動通知） --- */
.notify-note{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;background:#fff;border:1px solid var(--line);border-left:4px solid var(--blue-600);border-radius:12px;box-shadow:var(--shadow);padding:18px 22px;margin-bottom:22px}
.notify-note .nn-ico{width:44px;height:44px;flex:none;border-radius:12px;display:grid;place-items:center;color:#fff;background:linear-gradient(150deg,var(--blue-600),var(--navy-800))}
.notify-note strong{display:block;font-size:14.5px;color:var(--navy-900);margin-bottom:5px}
.notify-note p{margin:0 0 10px;color:var(--muted);font-size:13px;line-height:1.8}
.nn-required{margin:0;display:flex;gap:9px;align-items:flex-start;font-size:12.5px;color:#2c3e4e;line-height:1.7}
.nn-badge{flex:none;margin-top:1px;padding:3px 10px;border-radius:999px;background:var(--navy-900);color:#fff;font-size:11px;font-weight:800}

/* --- サービスカード --- */
.portal-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.portal-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:24px 26px}
.portal-icon{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;font-size:16px;font-weight:800;color:#fff;background:linear-gradient(150deg,var(--blue-600),var(--navy-800));margin-bottom:14px}
.portal-card h3{margin:0 0 8px;font-size:15.5px;color:var(--navy-900)}
.portal-card p{margin:0 0 16px;color:var(--muted);font-size:13px;line-height:1.85;flex:1}

/* --- ステータス通知 --- */
.portal-status{margin:20px 0 0;padding:14px 18px;border-radius:10px;background:var(--sky-100);color:var(--navy-900);font-size:13px;line-height:1.8;display:none}
.portal-status.is-shown{display:block}

/* --- 会員限定アーカイブ --- */
.portal-block{margin-top:30px;background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 30px}
.portal-block-head{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:16px}
.portal-block-head h2{margin:4px 0 0;font-size:19px;color:var(--navy-900)}
.permission-badge{display:inline-block;padding:5px 13px;border-radius:999px;font-size:12px;font-weight:800;background:var(--sky-100);color:var(--navy-800)}
.permission-badge.executive{background:var(--navy-900);color:#fff}
.security-note{display:flex;gap:12px;align-items:flex-start;background:var(--sky-50);border:1px solid var(--line);border-left:4px solid var(--blue-500);border-radius:10px;padding:14px 18px;margin-bottom:18px;font-size:13px;color:#2c3e4e;line-height:1.85}
.security-note strong{color:var(--navy-900);white-space:nowrap}
.archive-tabs{display:flex;flex-wrap:wrap;gap:9px;margin-bottom:14px}
.archive-count{margin:0 0 16px;font-size:13px;font-weight:700;color:var(--navy-800)}
.archive-list{display:flex;flex-direction:column;gap:12px}
.archive-empty{margin:0;padding:20px;text-align:center;color:var(--muted);font-size:13.5px;background:var(--sky-50);border:1px dashed var(--line);border-radius:10px}
.archive-empty[hidden]{display:none}
.archive-row{display:grid;grid-template-columns:96px 96px 1fr auto;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:15px 20px}
.archive-row[hidden]{display:none}
.archive-row time{font-size:12.5px;color:var(--muted);font-weight:700}
.archive-row h3{margin:0 0 3px;font-size:14.5px;color:var(--navy-900)}
.archive-row p{margin:0;font-size:12.5px;color:var(--muted);line-height:1.7}

/* --- モーダル --- */
.modal{position:fixed;inset:0;z-index:100;background:rgba(7,28,48,.55);display:none;padding:24px;overflow-y:auto}
.modal.is-open{display:grid;place-items:center}
.modal-card{background:#fff;border-radius:var(--radius);box-shadow:0 30px 80px rgba(7,28,48,.35);padding:30px 34px;width:100%;max-width:640px;max-height:90vh;overflow-y:auto}
.modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.modal-head h2{margin:4px 0 0;font-size:20px;color:var(--navy-900)}
.close-btn{flex:none;width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;color:var(--navy-800);font-size:20px;line-height:1;cursor:pointer;transition:.2s}
.close-btn:hover{background:var(--sky-50);border-color:var(--blue-500);color:var(--blue-600)}
body.modal-open{overflow:hidden}

/* --- レスポンシブ --- */
@media (max-width:900px){
  .portal-grid{grid-template-columns:1fr 1fr}
  .action-required{grid-template-columns:1fr;text-align:left}
  .portal-entry-row{grid-template-columns:minmax(180px,.8fr) 1.7fr}
  .portal-entry-row strong{grid-column:2}
  .portal-member-actions{grid-template-columns:1fr 1fr}
  .portal-member-actions a:nth-child(2){border-right:0}
  .portal-member-actions a:nth-child(-n+2){border-bottom:1px solid var(--line)}
}
@media (max-width:640px){
  .portal-grid{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  .archive-row{grid-template-columns:1fr;gap:6px}
  .panel{padding:24px 22px}
  .portal-entry-head{padding:19px 20px 15px}
  .portal-entry-row{grid-template-columns:1fr;gap:5px;padding:15px 20px}
  .portal-entry-row strong{grid-column:auto;margin-top:3px}
  .portal-entry-note{padding:12px 20px}
  .portal-member-actions{grid-template-columns:1fr}
  .portal-member-actions a{min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  .portal-member-actions a:nth-child(-n+3){border-bottom:1px solid var(--line)}
  .portal-member-actions a:last-child{border-bottom:0}
  .portal-operations{padding:22px 20px}
  .portal-operations-head{align-items:flex-start;flex-direction:column;gap:10px}
  .portal-feature-groups{grid-template-columns:1fr;gap:22px}
}
@media (prefers-reduced-motion:reduce){
  .portal-btn,.field input,.field select,.close-btn{transition:none}
}

/* =========================================================
   2026-08-27 作り直し分
   ログイン（パスワードなし）／測定記録証明書のコーナー／Coming soon
   ========================================================= */

/* 手順 */
.login-step{border-top:1px solid var(--line,#dde3ea);padding-top:20px;margin-top:4px}
.ls-head{display:flex;align-items:center;gap:10px;font-size:15.5px;font-weight:700;color:var(--navy-900,#0a2e4f);margin-bottom:14px}
.ls-num{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:var(--navy-900,#0a2e4f);color:#fff;
  display:grid;place-items:center;font-size:14px;font-weight:800}
.field-help{margin:6px 0 0;font-size:12.5px;color:#7b8794;line-height:1.7}
.field-help.is-warn{color:#a33;font-weight:700}

/* 送信しました */
.sent-box{display:flex;gap:14px;align-items:flex-start;background:#f6faf8;border:1px solid #cfe3d8;border-radius:10px;padding:16px 20px}
.sent-box .sent-ico{flex:0 0 auto;width:38px;height:38px;border-radius:50%;background:#2e6b4f;color:#fff;
  display:grid;place-items:center;font-size:18px}
.sent-box strong{display:block;font-size:15px;color:var(--navy-900,#0a2e4f);margin-bottom:5px}
.sent-box p{margin:0;font-size:13.5px;line-height:1.85;color:#39485a}

/* 届かないとき */
.login-help{margin-top:14px}
.login-help details{border:1px solid var(--line,#dde3ea);border-radius:8px;background:#fbfcfd}
.login-help summary{cursor:pointer;padding:11px 16px;font-size:13.5px;font-weight:700;color:var(--navy-900,#0a2e4f)}
.login-help ol{margin:0;padding:0 20px 6px 38px;font-size:13.5px;line-height:1.9;color:#39485a}
.login-help li{margin-bottom:6px}
.lh-tel{display:inline-block;margin-top:4px;font-weight:700;color:var(--navy-900,#0a2e4f)}
.lh-note{margin:0;padding:0 18px 14px;font-size:12.5px;color:#7b8794;line-height:1.8}

/* デモのメール見本 */
.demo-mail{margin-top:18px;border:1px dashed #c3d2dc;border-radius:10px;padding:16px 20px;background:#fbfcfd}
.dm-head{font-size:12px;font-weight:800;letter-spacing:.1em;color:#a97b00;margin-bottom:8px}
.demo-mail>p{margin:0 0 12px;font-size:13px;color:#5c6b78;line-height:1.8}
.dm-card{background:#fff;border:1px solid var(--line,#dde3ea);border-radius:8px;overflow:hidden;margin-bottom:14px}
.dm-from,.dm-subj{padding:8px 16px;font-size:12.5px;border-bottom:1px solid #eef2f5;color:#5c6b78}
.dm-subj{font-weight:700;color:var(--navy-900,#0a2e4f)}
.dm-body{padding:16px 18px;font-size:13.5px;line-height:1.9;color:#39485a}
.dm-body p{margin:0 0 10px}
.dm-btn{display:inline-block;background:var(--navy-900,#0a2e4f);color:#fff;border-radius:6px;
  padding:9px 22px;font-size:13.5px;font-weight:700}
.dm-small{font-size:12px;color:#8b98a6;line-height:1.8}

/* ── 測定記録証明書のコーナー ── */
.cert-hub{background:#fff;border:2px solid var(--navy-900,#0a2e4f);border-radius:12px;padding:26px 28px;margin-bottom:26px}
.ch-head{display:flex;flex-wrap:wrap;gap:16px;align-items:flex-start;justify-content:space-between;margin-bottom:16px}
.ch-head h2{margin:2px 0 8px;font-size:23px;color:var(--navy-900,#0a2e4f)}
.ch-head p{margin:0;max-width:640px;font-size:13.5px;line-height:1.9;color:#39485a}
.ch-note{background:#fff8f8;border:1px solid #e6c4c0;border-radius:8px;padding:12px 16px;font-size:13px;line-height:1.85;color:#5f2020;margin-bottom:18px}
.ch-note b{color:#8e2f2f}
.ch-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-bottom:22px}
.ch-stat{background:#f6f8fb;border-radius:8px;padding:14px;text-align:center}
.cs-n{display:block;font-size:26px;font-weight:800;color:var(--navy-900,#0a2e4f);line-height:1.3}
.cs-l{display:block;font-size:12px;color:#6b7885}
.ch-sub{margin:0 0 12px;font-size:15px;color:var(--navy-900,#0a2e4f)}

.cert-list{display:flex;flex-direction:column;gap:8px}
.cert-row{display:grid;grid-template-columns:168px 1fr 92px 70px auto;gap:12px;align-items:center;
  border:1px solid var(--line,#dde3ea);border-radius:8px;padding:11px 14px;font-size:13.5px}
.cr-no{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;color:#5c6b78}
.cr-main strong{display:block;color:var(--navy-900,#0a2e4f);font-size:14px}
.cr-main span{font-size:12.5px;color:#6b7885}
.cert-row time{font-size:12.5px;color:#6b7885;white-space:nowrap}
.cr-st{font-size:11.5px;font-weight:700;color:#2e6b4f;background:#edf6f1;border:1px solid #c9e2d5;border-radius:4px;
  padding:2px 8px;text-align:center;white-space:nowrap}
.cr-st.re{color:#a97b00;background:#fcf6e9;border-color:#e6d5a8}
.cr-act{display:flex;gap:6px}
.ch-foot{margin:16px 0 0;font-size:12.5px;line-height:1.85;color:#6b7885}

/* ── Coming soon ── */
.soon-lead{margin:0 0 18px;font-size:13.5px;line-height:1.9;color:#39485a}
.portal-card.is-soon{background:#fafbfc;border-style:dashed;box-shadow:none;position:relative}
.portal-card.is-soon .portal-icon{background:#c3ccd4;color:#fff}
.portal-card.is-soon h3{color:#5c6b78}
.portal-card.is-soon p{color:#8b98a6}
.soon-tag{align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.08em;color:#6b7885;
  background:#fff;border:1px solid #c9d3db;border-radius:999px;padding:3px 12px}

@media (max-width:760px){
  .ch-stats{grid-template-columns:1fr}
  .cert-row{grid-template-columns:1fr;gap:6px}
  .cr-act{margin-top:4px}
}

/* 名簿に見つからないときの案内 */
.no-entry{margin-top:16px;padding:16px 20px;background:#fff8f0;border:1px solid #e8d3b5;border-radius:10px}
.no-entry strong{display:block;font-size:14.5px;color:#8a6d2f;margin-bottom:5px}
.no-entry p{margin:0 0 12px;font-size:13.5px;line-height:1.85;color:#5f4a20}

/* 自己登録はできない、という注意 */
.reg-guard{display:flex;gap:14px;background:#fff4f4;border:2px solid #8e2f2f;border-radius:10px;padding:15px 20px;margin:0 0 20px}
.reg-guard .rg-ico{flex:0 0 auto;width:26px;height:26px;border-radius:50%;background:#8e2f2f;color:#fff;
  display:grid;place-items:center;font-size:15px;font-weight:800}
.reg-guard strong{display:block;font-size:15px;color:#8e2f2f;margin-bottom:5px}
.reg-guard p{margin:0;font-size:13.5px;line-height:1.85;color:#5f2020}

/* ── 管理側（本部事務局）の承認画面 ── */
.page-admin{background:#eef1f5}
.admin-wrap{max-width:900px;margin:0 auto;padding:28px 20px 60px}
.admin-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:20px}
.admin-head h1{margin:4px 0 0;font-size:24px;color:var(--navy-900,#0a2e4f)}
.admin-badge{background:#5a1f1f;color:#fff;border-radius:4px;padding:4px 12px;font-size:12px;font-weight:700;letter-spacing:.08em}
.admin-guard{background:#fff4f4;border:2px solid #8e2f2f;border-radius:10px;padding:15px 20px;margin-bottom:26px}
.admin-guard strong{display:block;font-size:15px;color:#8e2f2f;margin-bottom:5px}
.admin-guard p{margin:0;font-size:13.5px;line-height:1.85;color:#5f2020}
.admin-sub{font-size:17px;color:var(--navy-900,#0a2e4f);margin:0 0 14px;display:flex;align-items:center;gap:12px}
.admin-count{font-size:12.5px;font-weight:700;color:#a97b00;background:#fcf6e9;border:1px solid #e6d5a8;border-radius:999px;padding:3px 12px}
.req-list{display:flex;flex-direction:column;gap:16px}
.req-card{background:#fff;border:1px solid #d7dee6;border-radius:10px;padding:20px 24px}
.req-card.done{opacity:.72}
.req-head{display:flex;align-items:center;gap:12px;margin-bottom:8px;font-size:12.5px;color:#6b7885}
.req-id{font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.req-st{margin-left:auto;font-weight:700;color:#a97b00;background:#fcf6e9;border:1px solid #e6d5a8;border-radius:4px;padding:2px 9px}
.req-st.ok{color:#2e6b4f;background:#edf6f1;border-color:#c9e2d5}
.req-card h3{margin:0 0 12px;font-size:18px;color:var(--navy-900,#0a2e4f)}
.req-dl{display:grid;grid-template-columns:repeat(2,1fr);gap:6px 20px;margin:0 0 16px;font-size:13.5px}
.req-dl>div{display:flex;gap:10px}
.req-dl>div.full{grid-column:1/-1}
.req-dl dt{flex:0 0 78px;color:#6b7885}
.req-dl dd{margin:0;color:#1b2430}
.req-check{background:#f6f8fb;border-radius:8px;padding:12px 16px;margin-bottom:14px}
.req-check strong{display:block;font-size:13px;color:var(--navy-900,#0a2e4f);margin-bottom:6px}
.req-check label{display:flex;align-items:center;gap:8px;font-size:13.5px;color:#39485a;margin-bottom:4px;cursor:pointer}
.req-act{display:flex;gap:10px;flex-wrap:wrap}
.req-done{margin:0;font-size:13px;color:#2e6b4f}
.admin-foot{margin-top:26px;font-size:12.5px;line-height:1.85;color:#6b7885}
@media (max-width:640px){ .req-dl{grid-template-columns:1fr} }

/* 発行した証明書がまだ1件も無いときの表示 */
.cert-empty{
  margin:0;padding:26px 20px;text-align:center;
  color:var(--ink-500,#5b6b7c);font-size:14px;line-height:1.9;
  border:1px dashed var(--line-200,#d7dfe7);border-radius:12px;background:var(--sky-50,#f6f9fc);
}

/* ============================================================
   ログインの結果と、ログイン中の表示
   2026-08-28 追加（メールのリンクからお越しになった場合）
   ============================================================ */
.login-result{margin:1rem 0 0;padding:.75rem 1rem;border-radius:5px;font-size:.92rem;line-height:1.7}
.login-result.is-ok{border-left:3px solid #15803d;background:#f0fdf4;color:#14532d}
.login-result.is-ng{border-left:3px solid #b45309;background:#fffbeb;color:#7c2d12}

/* 🚨 2026-09-06 修正。会社名が読めませんでした。
   この枠は濃紺の帯（.portal-hero｛color:#fff｝）の中にあります。
   白い背景を敷いたのに文字色を戻していなかったため、
   **白い枠に白い文字**で出ていました（「北海道支部」だけは
   .ln-bu で灰色を指定していたので、そこだけ見えていた）。
   背景を白くする箇所では、必ず文字色も指定します。 */
.login-now{display:flex;flex-wrap:wrap;gap:.85rem 1.25rem;align-items:center;justify-content:space-between;
  margin:1rem 0 0;padding:.85rem 1.1rem;border:1px solid var(--line,#e5e7eb);border-radius:6px;
  background:#fff;font-size:.94rem;color:var(--ink-900,#1f2937)}
.login-now .ln-bu{margin-left:.5rem;font-size:.82rem;color:var(--ink-3,#6b7280)}
.login-now .ln-act{display:flex;gap:.5rem;flex-wrap:wrap}
.login-now .btn{padding:.4rem .85rem;font-size:.85rem}
@media (max-width:560px){.login-now{flex-direction:column;align-items:flex-start}}

/* 実際に開けるカード（2026-08-29 追加） */
.portal-card.is-open{display:block;transition:.2s}
.portal-card.is-open:hover{border-color:var(--blue-600);box-shadow:var(--shadow);transform:translateY(-2px)}
.open-tag{display:inline-block;margin-top:12px;font-size:12px;font-weight:800;color:var(--blue-600)}

/* 会員名の候補一覧（2026-08-29 追加）
   これまでブラウザ任せの入力補助だったため画面に出なかった。押して選べる形にした。 */
.field.full{position:relative}
.shop-suggest{
  position:absolute;left:0;right:0;top:100%;z-index:30;
  margin:4px 0 0;padding:4px;list-style:none;
  background:#fff;border:1px solid var(--line);border-radius:8px;
  box-shadow:0 12px 32px rgba(15,58,100,.14);
  max-height:264px;overflow-y:auto;
}
.shop-suggest li{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 13px;border-radius:6px;cursor:pointer;transition:.12s;
}
.shop-suggest li:hover,.shop-suggest li.is-active{background:var(--sky-50)}
.shop-suggest .sg-name{font-size:14px;color:var(--ink);line-height:1.5}
.shop-suggest .sg-name b{color:var(--blue-600);font-weight:700}
.shop-suggest .sg-bu{
  flex:0 0 auto;font-size:11.5px;color:var(--muted);
  background:var(--sky-50);border:1px solid var(--line);border-radius:999px;padding:2px 9px;
}
.shop-suggest li:hover .sg-bu,.shop-suggest li.is-active .sg-bu{background:#fff}
@media (max-width:600px){
  .shop-suggest li{flex-direction:column;align-items:flex-start;gap:4px}
}

/* 証明書ブロックの入口を2つに（2026-08-29 追加）
   「新しく発行する」だけでなく、その前に必要な「自店の登録内容」へも行けるようにした。 */
.ch-btns{display:flex;flex-direction:column;gap:8px;align-items:stretch}
.ch-btns .btn{white-space:nowrap;text-align:center}
@media(max-width:640px){.ch-btns{flex-direction:row;flex-wrap:wrap}}

/* 「準備中」のカードに、これから載せる中身を添える（2026-08-29 追加）
   「準備中」とだけ書いてあると、何が来るのか分からないため。 */
.soon-items{margin:10px 0 12px;padding-left:17px;list-style:disc}
.soon-items li{font-size:12px;line-height:1.85;color:#5c6b7a;margin-bottom:2px}
.portal-card.is-soon{display:flex;flex-direction:column}
.portal-card.is-soon .soon-tag{margin-top:auto;align-self:flex-start}

/* メールアドレス未登録の方への案内（2026-08-29 追加）
   ログイン前の画面に置く。ご登録がない方は、ログイン後の画面へ辿り着けないため。 */
.login-noaddr{margin:12px 0 0;font-size:13px;line-height:1.85;color:#5c6b7a;
              background:var(--sky-50,#F2F6F9);border-radius:5px;padding:10px 13px}
.login-noaddr a{color:var(--blue-600,#0B6FA6);font-weight:700}

/* ── いま作業中のお車（2026-08-29 追加）──────────────────
   受付 → 施工前 → 施工後 → 発行 と分けたので、途中で止まっているお車が出ます。
   会員専用ページを開いたときに、まずここが目に入るようにしています。 */
.ch-work{border:1px solid #cfe0ea;border-left:3px solid #0878b7;background:#f5fbfd;
         border-radius:8px;padding:13px 16px 14px;margin-bottom:18px}
.cw-h{font-size:12px;font-weight:800;color:#0a2e4f;letter-spacing:.03em;margin-bottom:9px}
.cw-h b{font-size:14px}
.cw-rows{display:grid;gap:6px}
.cw-row{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;background:#fff;
        border:1px solid #e0eaf0;border-radius:6px;padding:9px 13px;text-decoration:none;color:inherit}
.cw-row:hover{border-color:#0878b7}
.cw-row.stale{border-color:#e6c4c0}
.cw-step{font-size:11px;font-weight:800;white-space:nowrap;flex:none}
.cw-before{color:#0878b7}
.cw-after{color:#a4680a}
.cw-ready{color:#2e7d32}
.cw-car{font-size:13.5px;font-weight:700;color:#071c30}
.cw-sub{font-size:12px;color:#5e6d7b}
.cw-stale{font-size:11px;font-weight:700;color:#b3261e;margin-left:auto;white-space:nowrap}
.cw-more{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;
         color:#0878b7;text-decoration:none}
.cw-more:hover{text-decoration:underline}
@media(max-width:640px){
  .cw-row{gap:4px 10px}
  .cw-stale{margin-left:0;width:100%}
}

/* 記録が書き換えられていたときの知らせ（2026-08-30 追加） */
.ch-chain-ng{background:#fdf4f3;border:1px solid #e6c4c0;border-left:3px solid #b3261e;
             border-radius:8px;padding:13px 16px;margin:0 0 18px}
.ch-chain-ng b{color:#7a1f19;font-size:14px}
.ch-chain-ng p{font-size:12.5px;color:#7a1f19;line-height:1.85;margin:6px 0 0}

/* 放っておくと困ること（2026-08-30 追加）
   普通のときは何も出さない。出すときは「何が」「どうなっていて」「どうすればよいか」まで。 */
.attn{display:grid;gap:10px;margin:0 0 16px}
.attn-item{border-radius:6px;padding:13px 16px;border:1px solid}
.attn-item.is-ng{background:#fdf4f3;border-color:#e6c4c0;border-left:3px solid #b3261e}
.attn-item.is-warn{background:#fff8e8;border-color:#e6d4a0;border-left:3px solid #a4680a}
.attn-item b{display:block;font-size:13.5px}
.attn-item.is-ng b{color:#7a1f19}
.attn-item.is-warn b{color:#6f4708}
.attn-item p{font-size:12.5px;line-height:1.85;margin:5px 0 0}
.attn-item.is-ng p{color:#7a1f19}
.attn-item.is-warn p{color:#6f4708}
.attn-item a{display:inline-block;margin-top:7px;font-size:12.5px;font-weight:700}
.attn-item.is-ng a{color:#b3261e}
.attn-item.is-warn a{color:#a4680a}

/* お出しいただいた内容を確認中のとき（2026-09-06 追加）
   困りごとではないので、赤にも黄にもしません。落ち着いた青にします。 */
.attn-item.is-info{background:#f2f7fc;border-color:#c8d9e8;border-left:3px solid #1b3a6b}
.attn-item.is-info b{color:#1b3a6b}
.attn-item.is-info p{color:#3f5266}

/* この会社の未対応（2026-09-06 追加）
   ページを開いた瞬間にいちばん上に来る枠。目立たせますが、騒がしくしません。 */
.portal-todo{margin:18px 0 6px}
/* この見出しも濃紺の帯の上に出ます。濃紺の文字では見えません */
.portal-todo .pt-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  margin:0 0 10px;font-size:14px;color:#fff;
}
.portal-todo .pt-head strong{font-size:15px;color:#fff}
.portal-todo .pt-n{
  padding:3px 10px;border-radius:11px;font-size:12px;font-weight:700;
  background:#fff;color:var(--navy-900,#1b3a6b);
}

/* 技能検定のご案内（2026-09-06 追加）
   期限のあるものなので、受付中の間だけ強く出します。 */
.pk-left{
  padding:5px 14px;border-radius:14px;font-size:12.5px;font-weight:700;
  background:#b3261e;color:#fff;white-space:nowrap;
}
.pk-alert{
  margin:0 0 14px;padding:14px 18px;border-radius:6px;
  background:#fdf4f3;border:1px solid #e6c4c0;color:#7a1f19;
}
.pk-alert b{display:block;font-size:14.5px;margin:0 0 8px;line-height:1.6}
.pk-alert p{margin:0;font-size:13px;line-height:1.95}

/* 公式資料の一覧（2026-09-06 追加） */
.pd-count{padding:4px 12px;border-radius:12px;background:var(--sky-100,#eef4fa);color:var(--navy-900,#1b3a6b);font-size:12.5px;font-weight:700}
.pd-list{list-style:none;padding:0;margin:0}
.pd-item{padding:14px 0;border-bottom:1px solid var(--line-200,#d7dfe7)}
.pd-item:last-child{border-bottom:0}
.pd-open{display:block;text-decoration:none;color:inherit}
.pd-open strong{display:block;font-size:14.5px;line-height:1.7;color:var(--navy-900,#1b3a6b)}
.pd-open:hover strong{text-decoration:underline}
.pd-meta{display:block;margin-top:4px;font-size:12.5px;color:var(--ink-500,#5b6b7c)}
.pd-src{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--ink-500,#5b6b7c)}
.pd-src:hover{color:var(--navy-900,#1b3a6b)}

/* 自社の情報の一覧（2026-09-07 追加）。
   いまの中身をその場でお見せするための、罫線だけの素直な並びです。
   カード・影・色付きの背景は使いません（協会の事務画面のため）。 */
.own-list{margin:14px 0 10px;border-top:1px solid var(--line,#dde3ea)}
.own-row{display:grid;grid-template-columns:200px 1fr;gap:12px;padding:11px 4px;border-bottom:1px solid var(--line,#dde3ea);min-height:44px;align-items:center}
.own-row dt{margin:0;font-size:13.5px;color:#5b6b7d;font-weight:700}
.own-row dd{margin:0;font-size:14.5px;color:var(--navy-900,#0a2e4f);word-break:break-word}
.own-row.is-empty dd{color:#b03030}
.own-none{color:#b03030;font-weight:700}
@media (max-width:640px){
  .own-row{grid-template-columns:1fr;gap:2px;padding:10px 2px}
  .own-row dt{font-size:12.5px}
}

/* 2026-10-01 採用済みv0案B。変更は会員ページ本文だけに閉じ込める。
   上の旧スタイルは他画面でも読まれるため変更しない。 */
.page-member-portal #main { color: #1b2a4a; background: #fff; }
.page-member-portal #main > .portal-hero > .container,
.page-member-portal #main > .portal-sec > .container { width: calc(100% - 32px); max-width: 960px; padding: 0; margin-inline: auto; }
.page-member-portal #main [hidden] { display: none !important; }
.page-member-portal .portal-hero { background: #fff; color: #1b2a4a; padding: 16px 0 0; }
.page-member-portal .portal-hero .breadcrumbs { color: #666; font-size: 14px; margin: 0 0 12px; }
.page-member-portal .portal-hero .breadcrumbs a { color: #1b2a4a; }
.page-member-portal .portal-company-badge { display: flex; align-items: center; gap: 12px; min-height: 32px; margin: 12px 0; }
.page-member-portal .portal-company-badge strong { font-size: 16px; font-weight: 700; line-height: 32px; flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.page-member-portal .portal-company-badge a { flex: none; font-size: 12px; color: #555; text-decoration: underline; }
.page-member-portal .portal-hero h1 { font-size: 22px; font-weight: 700; line-height: 1.4; letter-spacing: normal; margin: 0 0 8px; }
.page-member-portal .portal-hero .portal-lead { max-width: none; color: #666; font-size: 14px; line-height: 1.6; margin: 0; }
.page-member-portal .portal-sec.alt { padding: 20px 0 48px; background: #fff; }
.page-member-portal .portal-dashboard { margin: 0; }
.page-member-portal .portal-request { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 16px; margin: 0 0 20px; border-radius: 8px; background: #fff7e0; font-size: 15px; }
.page-member-portal .portal-request strong { font-size: 15px; }
.page-member-portal .portal-request strong span { white-space: nowrap; }
.page-member-portal .portal-request p { margin: 4px 0 0; font-size: 15px; line-height: 1.6; }
.page-member-portal .portal-request a { flex: none; font-size: 14px; font-weight: 700; color: #1b2a4a; text-decoration: underline; }
.page-member-portal .portal-toolbox { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; }
.page-member-portal .portal-toolbox a { display: flex; align-items: center; justify-content: center; text-align: center; min-height: 80px; padding: 12px; border: 1px solid #e0e0e0; border-radius: 8px; color: #1b2a4a; background: #fff; text-decoration: none; box-sizing: border-box; }
.page-member-portal .portal-toolbox strong { font-size: 15px; font-weight: 700; line-height: 1.5; }
.page-member-portal .portal-toolbox a:hover { background: #f4f6f8; border-color: #1b2a4a; }
.page-member-portal .portal-toolbox.has-certificate { grid-template-columns: repeat(3,minmax(0,1fr)); }
.page-member-portal .portal-toolbox.has-certificate a { min-height: 72px; padding: 12px 8px; }
.page-member-portal .portal-toolbox.has-certificate strong { font-size: 14px; }
.page-member-portal .portal-toolbox.has-certificate .portal-tool-certificate { grid-column: 1 / -1; min-height: 88px; background: #1b2a4a; color: #fff; border-color: #1b2a4a; }
.page-member-portal .portal-toolbox.has-certificate .portal-tool-certificate strong { font-size: 18px; }
/* 2026-10-01 PC の4列で「発行す／る」と折れたため、折り返しは「測定記録証明書を／発行する」の切れ目だけにする */
.page-member-portal .portal-tool-certificate strong span { display: inline-block; }
.page-member-portal .portal-toolbox.has-certificate .portal-tool-certificate:hover { background: #283c63; }
.page-member-portal .portal-operations-entry { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 56px; margin-top: 24px; padding: 12px 16px; border: 1px solid #e0e0e0; border-radius: 8px; box-sizing: border-box; font-size: 15px; font-weight: 700; color: #1b2a4a; }
.page-member-portal .portal-secondary { margin-top: 32px; }
.page-member-portal .portal-block,
.page-member-portal .cert-hub,
.page-member-portal .portal-operations,
.page-member-portal #company-devices { margin: 0 0 24px; padding: 20px; border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: none; background: #fff; }
.page-member-portal .portal-block h2,
.page-member-portal .cert-hub h2,
.page-member-portal .portal-operations h2 { font-size: 20px; line-height: 1.5; margin: 0 0 8px; }
.page-member-portal .ch-head { gap: 16px; }
.page-member-portal .ch-btns .btn { white-space: normal; }
.page-member-portal .ch-note,
.page-member-portal .ch-chain-ng,
.page-member-portal .portal-feature-message,
.page-member-portal .login-result { border: 1px solid #e0e0e0; border-radius: 8px; }
.page-member-portal .ch-stats { grid-template-columns: repeat(3,minmax(0,1fr)); }
.page-member-portal .cs-n { font-size: 22px; }
.page-member-portal .portal-own-summary { display: flex; align-items: center; gap: 16px; font-size: 15px; }
.page-member-portal .portal-own-summary a { font-weight: 700; text-decoration: underline; }
.page-member-portal .ch-lead { font-size: 14px; line-height: 1.8; margin: 0 0 12px; }
.page-member-portal .portal-resource-links { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 16px 0 24px; }
.page-member-portal .portal-resource-links a { color: #1b2a4a; text-decoration: underline; font-size: 15px; padding: 8px 0; }
.page-member-portal .portal-attention-details { margin: 0 0 24px; }
.page-member-portal .portal-attention-details summary { padding: 12px 0; font-size: 15px; cursor: pointer; }
.page-member-portal .portal-attention-details .attn-item { border: 1px solid #e0e0e0; border-radius: 8px; padding: 16px; }
.page-member-portal #company-devices p { font-size: 14px; line-height: 1.8; }
.page-member-portal #company-devices .form-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.page-member-portal .portal-device-stop { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 20px; padding-top: 16px; border-top: 1px solid #e0e0e0; }
.page-member-portal .portal-device-stop label { font-size: 15px; line-height: 1.7; }
.page-member-portal #company-devices .own-row { grid-template-columns: minmax(0,1fr); }
.page-member-portal .portal-login { padding: 0; border: 0; box-shadow: none; }
.page-member-portal #login-step1 { border: 0; margin: 0; padding: 0; }
.page-member-portal .field input,
.page-member-portal .field select,
.page-member-portal .field textarea { font-size: 16px; }
.page-member-portal #portal-device-name { margin-bottom: 0; }
.page-member-portal #login-step1 > .field { margin-top: 16px; }
.page-member-portal #portal-send { white-space: normal; line-height: 1.7; }
.page-member-portal .portal-login-secondary { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; margin: 20px 0; font-size: 13px; }
.page-member-portal .portal-text-button { padding: 0; border: 0; background: transparent; color: #1b2a4a; text-align: left; text-decoration: underline; font: inherit; cursor: pointer; }
.page-member-portal #login-step2 { margin: 20px 0; padding: 16px; border: 1px solid #e0e0e0; border-radius: 8px; box-shadow: none; }
.page-member-portal #login-step2 h2 { font-size: 20px; }
.page-member-portal #device-code { white-space: nowrap; }
.page-member-portal #main :is(a,button,input,summary):focus-visible { outline: 2px solid #1b2a4a; outline-offset: 3px; }
.page-member-portal #main button:disabled { opacity: .5; cursor: not-allowed; }
@media (min-width: 960px) {
  .page-member-portal .portal-toolbox,
  .page-member-portal .portal-toolbox.has-certificate { grid-template-columns: repeat(4,minmax(0,1fr)); align-items: start; }
  .page-member-portal .portal-toolbox a { min-height: 72px; }
  .page-member-portal .portal-toolbox.has-certificate .portal-tool-certificate { grid-column: auto; min-height: 96px; }
}
@media (max-width: 600px) {
  .page-member-portal .portal-request { flex-wrap: wrap; }
  .page-member-portal .portal-feature-groups { grid-template-columns: minmax(0,1fr); }
  .page-member-portal .portal-operations-head { align-items: flex-start; flex-direction: column; gap: 8px; }
  .page-member-portal .portal-block,
  .page-member-portal .cert-hub,
  .page-member-portal .portal-operations,
  .page-member-portal #company-devices { padding: 16px; }
}
/* 2026-10-01 社長「崩れている部分ある」: 運営一覧で、説明を横に並べたため名前が1文字ずつ縦に折れ、「利用できます」がはみ出した。
   名前の下に説明・右に「利用できます」の形にし、区分の箱は上ぞろえ（行の高さを揃えて空白を作らない） */
.page-member-portal .portal-feature-groups { align-items: start; }
.page-member-portal .portal-feature-links a { display: grid; grid-template-columns: minmax(0,1fr) auto; grid-template-areas: "name status" "desc status"; column-gap: 14px; row-gap: 2px; align-items: center; }
.page-member-portal .portal-feature-links a > span { grid-area: name; font-size: 14px; font-weight: 700; color: #1b2a4a; }
.page-member-portal .portal-feature-links a > small:nth-of-type(1) { grid-area: desc; font-size: 12px; line-height: 1.6; white-space: normal; }
.page-member-portal .portal-feature-links a > small:nth-of-type(2) { grid-area: status; white-space: nowrap; }

/* 2026-10-04 ログインの入口を「登録したメールアドレスを入れる」に。
   スマホでも打ちやすい大きさ（16px以上でiPhoneが勝手に拡大しない）・押しやすい高さにする */
.field input.login-mail-input{font-size:18px;padding:14px 16px;min-height:52px}
.login-keep-note{margin:12px 0 0;font-size:14px;line-height:1.8;color:var(--navy-900);background:var(--sky-50);border-radius:8px;padding:10px 14px}
.login-by-company{margin:22px 0 0;border-top:1px solid var(--line);padding-top:14px}
.login-by-company>summary{cursor:pointer;font-size:15px;font-weight:700;color:var(--blue-600);min-height:44px;display:flex;align-items:center;list-style:none}
.login-by-company>summary::-webkit-details-marker{display:none}
.login-by-company>summary::before{content:"＋";display:inline-block;width:1.4em;font-weight:800}
.login-by-company[open]>summary::before{content:"－"}
.login-by-company .form-grid{margin-top:8px}
/* 登録の無いメールの知らせ（2026-10-04）。入力欄のすぐ下に、目立つ色で */
.login-mail-result{margin:10px 0 0;padding:12px 14px;border-radius:8px;border:1px solid #e3b5b5;background:#fdecec;color:#8a1c1c;font-size:15px;font-weight:700;line-height:1.7}
/* 責任者・スタッフの表示（会員ページの上） */
.portal-role-note{margin:10px 0 0;font-size:14px;line-height:1.8;color:var(--navy-900)}
.portal-role-badge{display:inline-block;margin:0 8px 4px 0;padding:2px 10px;border-radius:999px;font-size:13px;font-weight:800;background:var(--navy-900);color:#fff}

/* ══ 切り替え式の会員ページ（2026-10-04・V0 の寸法）══════════════
   上に機能ボタン（PCは1行・同じ大きさ／スマホは2列の格子）、下に選んだ機能の中身。
   選ばれたボタンは濃紺の塗り・白字。「管理画面へ」は右端・薄い灰青の地に濃紺の枠2px。 */
.portal-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 20px}
.portal-tab{flex:1 1 0;min-width:0;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 10px;border:1px solid #D5DBE5;border-radius:8px;background:#fff;color:#0F2A4D;font-size:16px;font-weight:800;text-align:center;text-decoration:none;line-height:1.35;box-sizing:border-box}
.portal-tab:hover{border-color:#0F2A4D}
.portal-tab:focus-visible{outline:3px solid rgba(37,99,235,.45);outline-offset:2px}
.portal-tab.is-current{background:#0F2A4D;border-color:#0F2A4D;color:#fff;position:relative}
.portal-tab.is-current::after{content:"";position:absolute;left:50%;bottom:-9px;margin-left:-8px;border:8px solid transparent;border-bottom:0;border-top-color:#0F2A4D}
.portal-tab-admin{flex:0 0 150px;margin-left:12px;background:#F3F6FA;border:2px solid #0F2A4D}
.portal-tab-admin small{font-size:12px;font-weight:700;color:#4B5563}
.mp-panel{padding:0;margin:0}
.mp-panel[hidden]{display:none}
/* 新着: 左右に同じ大きさの2区画（スマホは上下） */
.news-two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.news-col{background:#fff;border:1px solid #D5DBE5;border-radius:10px;padding:18px 20px;min-width:0}
.news-col h2{margin:0 0 10px;font-size:20px;color:#0F2A4D;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px}
.news-col h2 small{font-size:14px;font-weight:700;color:#4B5563}
.news-rows{list-style:none;margin:0;padding:0}
.news-rows li{border-top:1px solid #D5DBE5}
.news-rows a{display:flex;flex-direction:column;gap:4px;min-height:88px;padding:12px 4px;color:#1F2937;text-decoration:none;box-sizing:border-box}
.news-rows a:hover .nr-title{text-decoration:underline}
.nr-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:14px;color:#4B5563}
.nr-chip{display:inline-block;padding:1px 8px;border:1px solid #0F2A4D;border-radius:6px;font-size:13px;color:#0F2A4D;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nr-new{display:inline-block;padding:1px 8px;border-radius:6px;background:#0F2A4D;color:#fff;font-size:13px;font-weight:800}
.nr-title{font-size:16px;line-height:1.5;color:#0F2A4D;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nr-from{font-size:14px;color:#4B5563}
.news-empty{margin:8px 0;font-size:15px;color:#4B5563}
.news-more{display:flex;align-items:center;justify-content:center;min-height:48px;margin-top:10px;border:1px solid #0F2A4D;border-radius:8px;color:#0F2A4D;font-size:16px;font-weight:800;text-decoration:none}
/* 証明書: いちばん上に大きな発行ボタン */
.cert-issue-big{display:flex;align-items:center;justify-content:center;gap:10px;min-height:72px;margin:0 0 16px;border-radius:8px;background:#0F2A4D;color:#fff;font-size:20px;font-weight:800;text-decoration:none}
.cert-issue-big:hover{opacity:.92}
/* 自社の情報・請求の大きなボタン */
.company-actions{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0 0 16px}
.company-btn{display:flex;flex-direction:column;justify-content:center;gap:4px;min-height:80px;padding:12px 18px;border:1px solid #0F2A4D;border-radius:8px;background:#fff;color:#0F2A4D;font-size:16px;font-weight:800;text-decoration:none;box-sizing:border-box}
.company-btn small{font-size:14px;font-weight:500;color:#4B5563;line-height:1.5}
.company-btn:hover{background:#F3F6FA}
@media (max-width:720px){
  .portal-tabs{display:grid;grid-template-columns:1fr 1fr}
  .portal-tab,.portal-tab-admin{flex:none;min-height:56px;width:100%}
  .portal-tab.is-current::after{display:none}
  .portal-tab-admin{grid-column:1 / -1;margin-left:0}
  .news-two{grid-template-columns:1fr}
  .company-actions{grid-template-columns:1fr}
  .cert-issue-big{font-size:18px}
}
/* ログインの2つの入口（会社名から／メールアドレスから）を同じ大きさで並べる（2026-10-04 社長） */
.login-ways-lead{margin:0 0 14px;font-size:17px;font-weight:800;color:#0F2A4D}
.login-ways{display:grid;grid-template-columns:1fr auto 1fr;gap:0 16px;align-items:stretch}
.login-ways-or{display:flex;align-items:center;justify-content:center;position:relative;width:56px}
.login-ways-or::before{content:"";position:absolute;top:0;bottom:0;left:50%;border-left:1px solid #D5DBE5}
.login-ways-or span{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#fff;border:2px solid #0F2A4D;color:#0F2A4D;font-size:15px;font-weight:800}
.login-way{display:flex;flex-direction:column;border:1px solid #D5DBE5;border-radius:10px;padding:20px 22px;background:#fff;min-width:0}
.login-way .form-actions{margin-top:auto;padding-top:8px}
.login-way .form-actions .btn{width:100%;min-height:52px;justify-content:center}
.login-way-title{display:flex;align-items:center;gap:10px;margin:0 0 8px;font-size:20px;color:#0F2A4D}
.login-way-lead{margin:0 0 12px;font-size:15px;line-height:1.75;color:#1F2937}
@media (max-width:720px){.login-ways{grid-template-columns:1fr;gap:0}.login-ways-or{width:auto;height:72px}.login-ways-or::before{top:50%;bottom:auto;left:0;right:0;border-left:0;border-top:1px solid #D5DBE5}}
.login-way-mark{color:#0F2A4D;font-size:18px;line-height:1}

/* 2026-10-04 協会の運営の入口：初めての方は説明書から（社長「初めて使う人が、迷わず、説明書にたどり着き」） */
.portal-guide{margin:14px 0 18px}
.portal-guide-btn{display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 18px;border:2px solid currentColor;border-radius:10px;background:#fff;color:#1f2a44;text-decoration:none;max-width:560px}
.portal-guide-btn:hover,.portal-guide-btn:focus-visible{background:#f6f5f2}
.portal-guide-btn strong{display:block;font-size:18px}
.portal-guide-btn small{display:block;font-size:14px;color:#4a5160}
.portal-guide-mark{flex:none;width:30px;height:30px;border-radius:50%;background:#1f2a44;color:#fff;font-weight:700;display:flex;align-items:center;justify-content:center;font-size:17px}
@media (max-width:640px){.portal-guide-btn{max-width:none}}
