:root{
  --navy-900:#12114a;
  --navy-800:#1c1b6b;
  --navy-700:#2e2d8c;
  --navy-100:#e8e8f6;
  --bg:#f2f2f9;
  --stage-bg-1:#eceefc;
  --stage-bg-2:#dfe0f5;
  --surface:#ffffff;
  --surface-2:#f2f3fb;
  --text:#1a1a2e;
  --text-muted:#5c5c7c;
  --text-faint:#8a8aac;
  --border:#e0e1f0;
  --gold:#a9812f;
  --gold-bg:#f6efdd;
  --success:#357a5f;
  --success-bg:#e2f2ea;
  --danger:#a03b3b;
  --danger-bg:#f7e6e6;
  --progress-track:#e6e7f5;
  --shadow-lg: 0 30px 60px -20px rgba(18,17,74,0.35), 0 10px 20px -10px rgba(18,17,74,0.2);
  --shadow-sm: 0 1px 2px rgba(18,17,74,0.06);
  --font-display:"Yu Mincho","YuMincho","Hiragino Mincho ProN","Noto Serif JP",serif;
  --font-body:"Yu Gothic Medium","YuGothic","Hiragino Kaku Gothic ProN","Noto Sans JP",-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme: dark){
  :root{
    --navy-900:#0d0c2e; --navy-800:#6f6dea; --navy-700:#8684f2; --navy-100:#26264d;
    --bg:#0e0e1c; --stage-bg-1:#141428; --stage-bg-2:#0b0b18;
    --surface:#181832; --surface-2:#1f2040;
    --text:#eceefc; --text-muted:#a3a3cc; --text-faint:#71719c; --border:#2b2c50;
    --gold:#d8b466; --gold-bg:#3a300f; --success:#69c19c; --success-bg:#173629;
    --danger:#e28b8b; --danger-bg:#3a1f1f;
    --progress-track:#2b2c50;
    --shadow-lg: 0 30px 60px -20px rgba(0,0,0,0.6), 0 10px 20px -10px rgba(0,0,0,0.5);
    --shadow-sm: 0 1px 2px rgba(0,0,0,0.4);
  }
}
:root[data-theme="dark"]{
  --navy-900:#0d0c2e; --navy-800:#6f6dea; --navy-700:#8684f2; --navy-100:#26264d;
  --bg:#0e0e1c; --stage-bg-1:#141428; --stage-bg-2:#0b0b18;
  --surface:#181832; --surface-2:#1f2040;
  --text:#eceefc; --text-muted:#a3a3cc; --text-faint:#71719c; --border:#2b2c50;
  --gold:#d8b466; --gold-bg:#3a300f; --success:#69c19c; --success-bg:#173629;
  --danger:#e28b8b; --danger-bg:#3a1f1f;
  --progress-track:#2b2c50;
}
:root[data-theme="light"]{
  --navy-900:#12114a; --navy-800:#1c1b6b; --navy-700:#2e2d8c; --navy-100:#e8e8f6;
  --bg:#f2f2f9; --stage-bg-1:#eceefc; --stage-bg-2:#dfe0f5;
  --surface:#ffffff; --surface-2:#f2f3fb;
  --text:#1a1a2e; --text-muted:#5c5c7c; --text-faint:#8a8aac; --border:#e0e1f0;
  --gold:#a9812f; --gold-bg:#f6efdd; --success:#357a5f; --success-bg:#e2f2ea;
  --danger:#a03b3b; --danger-bg:#f7e6e6;
  --progress-track:#e6e7f5;
}

*{box-sizing:border-box;}
html,body{margin:0; padding:0; height:100%;}
body{
  font-family:var(--font-body);
  background:var(--bg);
  color:var(--text);
  overscroll-behavior-y:none;
}
a{color:inherit;}

.app-shell{
  min-height:100vh;
  min-height:100dvh;
  display:flex;
  flex-direction:column;
  background:var(--bg);
}

.appbar{
  flex:0 0 auto;
  position:sticky; top:0; z-index:20;
  padding:calc(env(safe-area-inset-top, 0px) + 14px) 18px 12px;
  display:flex; align-items:center; justify-content:space-between; gap:10px;
  background:var(--bg);
  border-bottom:1px solid var(--border);
}
.appbar-left{display:flex; align-items:center; gap:8px; min-width:0;}
.appbar-title{
  font-family:var(--font-display); font-size:18px; font-weight:600; margin:0; letter-spacing:.02em;
}
.appbar-title.small{font-size:13px;}
.appbar-sub{font-size:11px; color:var(--text-faint); margin-top:2px;}
.icon-btn{
  width:34px; height:34px; border-radius:11px;
  display:flex; align-items:center; justify-content:center;
  background:var(--surface); border:1px solid var(--border);
  color:var(--navy-800); flex:0 0 auto; text-decoration:none;
}
.icon-btn svg{width:18px; height:18px;}
.spacer-34{width:34px; flex:0 0 auto;}

.content{
  flex:1 1 auto;
  padding:16px 18px calc(env(safe-area-inset-bottom, 0px) + 88px);
  display:flex; flex-direction:column; gap:16px;
  max-width:640px; width:100%; margin:0 auto;
}

.tabbar{
  position:fixed; left:0; right:0; bottom:0; z-index:20;
  display:grid; grid-template-columns:repeat(6,1fr);
  padding:8px 4px calc(env(safe-area-inset-bottom, 0px) + 10px);
  background:var(--surface);
  border-top:1px solid var(--border);
  max-width:640px; width:100%; margin:0 auto;
}
.tab-btn{
  display:flex; flex-direction:column; align-items:center; gap:4px;
  padding:6px 1px; font-size:9px; font-weight:600;
  color:var(--text-faint); text-decoration:none;
}
.tab-btn svg{width:19px; height:19px;}
.tab-btn.active{color:var(--navy-800);}
/* お知らせの新着の件数（ホームのタブのアイコンの右上） */
.tab-btn{position:relative;}
.tab-count{
  position:absolute; top:1px; left:calc(50% + 4px);
  min-width:16px; height:16px; padding:0 4px; border-radius:99px;
  background:var(--danger); color:#fff; font-size:9.5px; font-weight:700; line-height:16px; text-align:center;
}

.card{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:16px;
  padding:16px;
  box-shadow:var(--shadow-sm);
}
.section-title{
  font-size:12px; font-weight:700; color:var(--text-muted);
  letter-spacing:.04em; margin:2px 0 -4px;
  display:flex; align-items:center; justify-content:space-between;
}

.progress{height:6px; border-radius:99px; background:var(--progress-track); overflow:hidden;}
.progress > span{display:block; height:100%; background:var(--navy-800); border-radius:99px;}

.quick-links{display:flex; gap:10px;}
.quick-link{
  flex:1; background:var(--surface); border:1px solid var(--border); border-radius:14px;
  padding:12px; display:flex; flex-direction:column; gap:8px; text-decoration:none;
}
.quick-link svg{width:18px; height:18px; color:var(--navy-800);}
.quick-link span{font-size:12px; font-weight:700; color:var(--text);}
.quick-link .big{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--navy-800); margin:0;}

.chip-row{display:flex; gap:8px; overflow-x:auto; padding-bottom:2px; margin:0 -2px;}
.chip{
  flex:0 0 auto; padding:7px 13px; border-radius:99px; font-size:12px; font-weight:600;
  border:1px solid var(--border); background:var(--surface); color:var(--text-muted);
  text-decoration:none; white-space:nowrap;
}
.chip.active{background:var(--navy-800); border-color:var(--navy-800); color:#fff;}

.search-box{
  display:flex; align-items:center; gap:8px; background:var(--surface); border:1px solid var(--border);
  border-radius:10px; padding:4px 6px 4px 10px; /* 2026-10-14 社長指示：縦幅を狭く */
}
.search-box input{padding:2px 0 !important; min-height:0 !important; height:auto !important;}
.search-box button{padding:4px 10px !important;}
.search-box svg{width:16px; height:16px; color:var(--text-faint); flex:0 0 auto;}
.search-box input{
  border:none; outline:none; background:none; font-size:13px; color:var(--text); width:100%; font-family:var(--font-body);
}
.search-box input::placeholder{color:var(--text-faint);}
.search-box button{
  border:none; background:var(--navy-800); color:#fff; border-radius:8px; padding:6px 10px; font-size:12px; cursor:pointer;
}
.empty-note{text-align:center; font-size:12px; color:var(--text-faint); padding:24px 0;}

.video-list, .doc-list, .record-list{display:flex; flex-direction:column; gap:12px;}
.video-card, .doc-card, .list-row{
  display:flex; gap:12px; align-items:center; background:var(--surface); border:1px solid var(--border);
  border-radius:14px; padding:12px; text-decoration:none;
}
.video-thumb{
  position:relative; flex:0 0 92px; height:64px; border-radius:10px;
  background:linear-gradient(145deg, var(--navy-700), var(--navy-900));
  display:flex; align-items:center; justify-content:center;
}
.video-thumb svg{width:22px; height:22px; color:#fff; opacity:.92;}
.video-info{flex:1; min-width:0; display:flex; flex-direction:column; gap:5px; justify-content:center; color:var(--text);}
.video-cat{font-size:10px; font-weight:700; color:var(--navy-800); letter-spacing:.03em;}
.item-title{font-size:13px; font-weight:700; line-height:1.4; margin:0;}
.item-foot{display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.item-meta{font-size:10.5px; color:var(--text-faint);}

.badge{font-size:9.5px; font-weight:700; padding:2px 7px; border-radius:99px; display:inline-block;}
.badge-done{background:var(--success-bg); color:var(--success);}
.badge-progress{background:var(--gold-bg); color:var(--gold);}
.badge-new{background:var(--navy-100); color:var(--navy-800);}
.badge-neutral{background:var(--surface-2); color:var(--text-faint);}
.badge-retired{background:var(--danger-bg); color:var(--danger);}
.badge-alert{background:var(--danger); color:#fff; white-space:nowrap; flex:0 0 auto;}
/* ボタンの右上に重ねる件数（ボタンの文字の幅を狭めない） */
.btn-with-corner{position:relative;}
.badge-corner{position:absolute; top:-7px; right:-4px; font-size:10px; box-shadow:0 1px 3px rgba(0,0,0,.18);}

.doc-icon{
  flex:0 0 auto; width:38px; height:38px; border-radius:10px; background:var(--navy-100);
  display:flex; align-items:center; justify-content:center; color:var(--navy-800);
}
.doc-icon svg{width:18px; height:18px;}
.dl-btn{
  flex:0 0 auto; width:32px; height:32px; border-radius:9px; border:1px solid var(--border);
  background:var(--surface-2); display:flex; align-items:center; justify-content:center; color:var(--navy-800);
}
.dl-btn svg{width:16px; height:16px;}

.player-shell{
  aspect-ratio:16/9; border-radius:14px; overflow:hidden;
  background:linear-gradient(150deg, var(--navy-800), var(--navy-900));
  display:flex; align-items:center; justify-content:center; position:relative; color:#fff;
}
.player-shell svg{width:46px; height:46px; opacity:.95;}
.player-title{font-family:var(--font-display); font-size:17px; font-weight:600; margin:0; line-height:1.5;}
.player-meta{display:flex; align-items:center; gap:8px; font-size:11.5px; color:var(--text-faint);}
.player-desc{font-size:12.5px; line-height:1.8; color:var(--text-muted); margin:0;}
.save-note{display:flex; align-items:center; gap:6px; font-size:11px; color:var(--success); font-weight:600;}
.save-note svg{width:14px; height:14px;}

.login-wrap{flex:1; display:flex; flex-direction:column; justify-content:center; padding:28px 26px; gap:18px;}
.login-logo-wrap{display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center;}
.login-logo{width:100%; max-width:190px; height:auto; margin-bottom:4px;}
.login-wordmark{font-family:var(--font-display); font-size:34px; font-weight:600; color:var(--navy-800); letter-spacing:.06em; margin:0;}
.login-tagline{margin:0; font-family:var(--font-body); font-size:10.5px; font-weight:600; color:var(--text-faint); letter-spacing:.06em;}
.login-copy{font-size:12.5px; color:var(--text-muted); line-height:1.8; margin:0; text-align:center;}
.field{display:flex; flex-direction:column; gap:6px;}
.field label{font-size:11.5px; font-weight:700; color:var(--text-muted);}
.field input{
  border:1px solid var(--border); border-radius:11px; padding:11px 13px; font-size:13.5px;
  background:var(--surface); color:var(--text); font-family:var(--font-body); outline:none;
}
.field input:focus{border-color:var(--navy-800); box-shadow:0 0 0 3px var(--navy-100);}
.field-hint{font-size:10.5px; color:var(--text-faint); margin-top:-2px;}
.login-foot{font-size:11px; color:var(--text-faint); text-align:center; line-height:1.7;}
.login-error{font-size:12px; color:var(--danger); text-align:center; margin:0;}

.btn{
  appearance:none; border:none; border-radius:12px; padding:13px 16px; font-size:13.5px; font-weight:700;
  cursor:pointer; font-family:var(--font-body); display:flex; align-items:center; justify-content:center; gap:6px;
  text-decoration:none;
}
.btn-block{width:100%;}
.btn-primary{background:var(--navy-800); color:#fff;}
.btn-secondary{background:var(--surface-2); color:var(--navy-800); border:1px solid var(--border);}
.btn-danger{background:var(--danger-bg); color:var(--danger); border:1px solid var(--danger);}
/* パスキーのボタンが押せないとき（このURLでは使えない・アドレスが変わった・処理中）は、押せない見た目にする（早川 L-3） */
#pk-go:disabled{background:var(--surface-2); color:var(--text-faint); border:1px solid var(--border); cursor:not-allowed;}
form.inline{display:inline;}

.avatar{
  width:46px; height:46px; border-radius:50%; background:var(--navy-100); color:var(--navy-800);
  display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:600; font-size:16px; flex:0 0 auto;
}
.mypage-head{display:flex; align-items:center; gap:12px;}
.mypage-name{font-size:15px; font-weight:700; margin:0;}
.mypage-company{font-size:11.5px; color:var(--text-faint); margin-top:2px;}
.role-pill{display:inline-block; margin-top:6px; font-size:9.5px; font-weight:700; padding:2px 8px; border-radius:99px; background:var(--gold-bg); color:var(--gold);}
.mypage-row{display:flex; justify-content:space-between; align-items:center; padding:11px 0; font-size:12.5px; border-bottom:1px solid var(--border);}
.mypage-row:last-child{border-bottom:none;}
.mypage-row .k{color:var(--text-muted);}
.mypage-row .v{font-weight:700; font-variant-numeric:tabular-nums;}

.record{
  border-left:3px solid var(--navy-800);
  padding:10px 14px; border-radius:0 10px 10px 0;
  background:var(--surface-2);
}
.record .meta{font-size:11px; color:var(--text-faint); margin-bottom:6px; display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
/* 記録の本文。画面全体の .content（余白・flex・最大幅）を打ち消す（2026-10-16 面談記録の一覧・過去記録・直近の記録で大きな空白が出ていた） */
.record .content{white-space:pre-wrap; font-size:13px; color:var(--text); padding:0; flex:none; display:block; gap:0; max-width:none; width:auto; margin:0;}

.pre-text{white-space:pre-wrap; font-size:13px; color:var(--text); line-height:1.7;}
.action-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:8px;}
.action-grid form{display:contents;}

textarea{
  width:100%; min-height:90px;
  border:1px solid var(--border); border-radius:11px; padding:11px 13px; font-size:13.5px;
  background:var(--surface); color:var(--text); font-family:var(--font-body); outline:none;
}
select{
  border:1px solid var(--border); border-radius:11px; padding:11px 13px; font-size:13.5px;
  background:var(--surface); color:var(--text); font-family:var(--font-body);
}
input[type="date"]{
  border:1px solid var(--border); border-radius:11px; padding:9px 12px; font-size:13px;
  background:var(--surface); color:var(--text); font-family:var(--font-body);
}
input[type="number"]{
  border:1px solid var(--border); border-radius:11px; padding:9px 12px; font-size:13px;
  background:var(--surface); color:var(--text); font-family:var(--font-body);
}

/* ---- 管理者画面（MLA運営者向け。会員側のapp-shellとは別のワイドレイアウト） ---- */
.admin-shell{min-height:100vh; min-height:100dvh; background:var(--bg);}
/* 2026-10-01 左サイドメニュー（仕様「管理画面メニュー整理と新規契約フロー」§1）。
   PC（幅900px以上）は左に固定、スマホは左上の ≡ で開く引き出し。開閉はチェックボックス（.admin-nav-toggle）で行い、JSは使わない */
.admin-nav-toggle{position:absolute; opacity:0; pointer-events:none; width:0; height:0;}
.admin-topbar{display:none;}
.admin-nav-backdrop{display:none;}
.admin-nav{
  position:fixed; top:0; left:0; bottom:0; z-index:30; width:236px;
  display:flex; flex-direction:column; gap:6px;
  padding:16px 12px; background:var(--surface); border-right:1px solid var(--border); overflow-y:auto;
}
.admin-nav-brand{font-family:var(--font-display); font-size:15px; font-weight:600; color:var(--navy-800); display:flex; align-items:center; justify-content:space-between; gap:10px; padding:2px 8px 10px; border-bottom:1px solid var(--border);}
.admin-nav-brand span{font-family:var(--font-body); font-size:11px; font-weight:600; color:var(--text-faint);}
.admin-nav-close{display:none; font-size:22px; line-height:1; color:var(--text-muted); cursor:pointer; padding:2px 6px;}
.admin-nav-groups{display:flex; flex-direction:column; gap:2px; flex:1;}
.admin-nav-group summary{
  list-style:none; cursor:pointer; font-size:11.5px; font-weight:700; color:var(--text-faint); letter-spacing:0.06em;
  padding:10px 8px 6px; display:flex; align-items:center; justify-content:space-between;
}
.admin-nav-group summary::-webkit-details-marker{display:none;}
.admin-nav-group summary::after{content:"＋"; font-size:11px; color:var(--text-faint);}
.admin-nav-group[open] summary::after{content:"－";}
.admin-nav-links{display:flex; flex-direction:column; gap:1px; padding-bottom:4px;}
.admin-nav-links a{font-size:13px; font-weight:700; color:var(--text-muted); text-decoration:none; padding:9px 10px; border-radius:9px; border-left:3px solid transparent;}
.admin-nav-links a:hover{background:var(--surface-2); color:var(--text);}
.admin-nav-links a.active{color:var(--navy-800); background:var(--navy-100); border-left-color:var(--navy-800);}
.admin-nav-footer{display:flex; flex-direction:column; gap:8px; padding:10px 8px 4px; border-top:1px solid var(--border);}
.admin-nav-user{font-size:11px; color:var(--text-muted);}
.admin-logout-btn{
  appearance:none; border:1px solid var(--border); border-radius:9px; background:var(--surface-2); color:var(--text-muted);
  padding:7px 12px; font-size:12px; font-weight:700; cursor:pointer; font-family:var(--font-body); width:100%;
}
.admin-shell{padding-left:236px;}
@media (max-width: 899px){
  .admin-shell{padding-left:0;}
  .admin-topbar{
    display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:20;
    padding:10px 14px; background:var(--surface); border-bottom:1px solid var(--border);
  }
  .admin-nav-open{display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border-radius:10px; color:var(--navy-800); cursor:pointer; border:1px solid var(--border);}
  .admin-topbar-brand{font-family:var(--font-display); font-size:14px; font-weight:600; color:var(--navy-800);}
  .admin-topbar-page{font-size:12px; color:var(--text-muted); margin-left:auto; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:45vw;}
  .admin-nav{transform:translateX(-105%); transition:transform .2s ease; width:min(280px, 84vw); box-shadow:var(--shadow-lg);}
  .admin-nav-close{display:inline-block;}
  .admin-nav-toggle:checked ~ .admin-nav{transform:none;}
  .admin-nav-toggle:checked ~ .admin-nav-backdrop{display:block; position:fixed; inset:0; z-index:25; background:rgba(18,17,74,0.35);}
  .admin-content{padding:16px 14px 48px;}
}

.admin-content{max-width:960px; width:100%; margin:0 auto; padding:24px 24px 60px; display:flex; flex-direction:column; gap:16px;}
.admin-content.wide{max-width:none;} /* 列の多い一覧（契約者一覧・誕生日リスト） */

.stat-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:12px;}
.stat-tile{display:flex; flex-direction:column; gap:6px;}
.stat-label{font-size:11.5px; font-weight:700; color:var(--text-muted); margin:0;}
.stat-value{font-family:var(--font-display); font-size:26px; font-weight:600; color:var(--navy-800); margin:0;}

.ratio-meter{display:flex; height:14px; border-radius:99px; overflow:hidden; background:var(--progress-track);}
.ratio-seg{display:block; height:100%;}
.ratio-job{background:var(--navy-800);}
.ratio-hobby{background:var(--gold);}
.ratio-legend{display:flex; gap:18px; flex-wrap:wrap; margin-top:10px; font-size:12px; color:var(--text-muted);}
.ratio-legend .dot{display:inline-block; width:9px; height:9px; border-radius:50%; margin-right:6px;}
.dot-job{background:var(--navy-800);}
.dot-hobby{background:var(--gold);}

.table-wrap{overflow-x:auto; border:1px solid var(--border); border-radius:14px; background:var(--surface);}
.data-table{width:100%; border-collapse:collapse; font-size:12.5px; white-space:nowrap;}
.data-table th, .data-table td{padding:10px 14px; text-align:left; border-bottom:1px solid var(--border);}
.data-table th{font-size:11px; font-weight:700; color:var(--text-muted); background:var(--surface-2);}
.data-table tbody tr:last-child td{border-bottom:none;}

/* ---- 通知ドット（未読メッセージ・未読チャットの表示） ---- */
.notif-dot{
  display:inline-block; width:8px; height:8px; border-radius:50%;
  background:var(--danger); flex:0 0 auto;
}

/* ---- チャット機能 ---- */
.chat-thread{display:flex; flex-direction:column; gap:10px;}
.chat-bubble{
  max-width:78%; padding:10px 13px; border-radius:14px; font-size:13px; line-height:1.6;
  white-space:pre-wrap; word-break:break-word;
}
.chat-bubble .chat-meta{display:block; font-size:10px; color:var(--text-faint); margin-bottom:3px; font-weight:700;}
.chat-row{display:flex;}
.chat-row.mine{justify-content:flex-end;}
.chat-row.mine .chat-bubble{background:var(--navy-800); color:#fff; border-bottom-right-radius:4px;}
.chat-row.mine .chat-bubble .chat-meta{color:rgba(255,255,255,.75);}
.chat-row.theirs{justify-content:flex-start;}
.chat-row.theirs .chat-bubble{background:var(--surface-2); color:var(--text); border:1px solid var(--border); border-bottom-left-radius:4px;}
.chat-compose{display:flex; gap:8px; align-items:flex-end;}
.chat-compose textarea{flex:1; min-height:44px; max-height:120px;}

select{
  border:1px solid var(--border); border-radius:11px; padding:9px 12px; font-size:13.5px;
  background:var(--surface); color:var(--text); font-family:var(--font-body);
}

/* ---- 月次アンケート・レポート（2026-09-30）---- */
.notice-ok{margin:0 0 12px; padding:10px 12px; border-radius:10px; background:#e8f5e9; color:#1b5e20; font-weight:600;}
.notice-error{margin:0 0 12px; padding:10px 12px; border-radius:10px; background:var(--danger-bg); color:var(--danger); font-weight:600;}
.report-body .report-h2{font-size:16px; margin:4px 0 10px;}
.report-body .report-h3{font-size:14px; margin:16px 0 6px; padding-top:8px; border-top:1px solid var(--border);}
.report-body .report-p, .report-body .report-li{margin:0 0 4px; font-size:13px; line-height:1.7;}
.notice-list{display:flex; flex-direction:column; gap:6px;}
.notice-item{display:block; padding:10px 12px; border-radius:10px; background:var(--surface); border:1px solid var(--border); font-size:12.5px; color:inherit; text-decoration:none;}
.demo-banner{background:#fff4d6; color:#7a5200; font-size:12px; font-weight:600; text-align:center; padding:6px 10px; border-bottom:1px solid #f0d99a;}

/* ---- 月次レポートの見える化（2026-10-01）---- */
.report-summary{display:flex; flex-wrap:wrap; gap:12px; padding:16px; border-radius:14px; background:var(--surface); border:1px solid var(--border); margin-bottom:12px;}
.report-summary-main{flex:1 1 220px;}
.report-summary-label{margin:0; font-size:12px; color:var(--text-muted);}
.report-summary-score{margin:2px 0; font-size:40px; font-weight:800; line-height:1.1;}
.report-summary-score span{font-size:16px; font-weight:600;}
.report-summary-change{margin:4px 0; font-size:13.5px; font-weight:600;}
.report-summary-bands{margin:4px 0 0; font-size:11.5px; color:var(--text-muted);}
.report-summary-side{display:flex; gap:10px; flex:1 1 220px; align-items:stretch;}
.report-summary-side div{flex:1; display:flex; flex-direction:column; gap:2px; padding:8px; border-radius:10px; background:#f5f5fa; text-align:center;}
.report-summary-side span{font-size:11px; color:var(--text-muted);}
.report-summary-side strong{font-size:22px;}
.report-summary-side small{font-size:11px; color:var(--text-muted);}
.band-pill{display:inline-block; padding:2px 10px; border-radius:999px; font-size:13px !important; vertical-align:middle;}
.band-good{background:#e3f4e8; color:#1b5e20;}
.band-normal{background:#fdf6dc; color:#7a5200;}
.band-caution{background:#fbe4e2; color:#9b1c1c;}
.report-chart{display:block; max-width:100%; height:auto;}

.chart-narrow{display:none;}
@media (max-width: 560px){.chart-wide{display:none;} .chart-narrow{display:block;}}

/* ---- 商談資料（2026-10-01 新規契約の流れ） ---- */
.sales-doc-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:12px;}
.sales-doc-card{display:flex; flex-direction:column; gap:10px;}
.sales-doc-head{display:flex; align-items:center; justify-content:space-between; gap:8px;}
.sales-doc-title{font-size:15px; margin:0; color:var(--navy-800);}
.sales-doc-meta{font-size:12px; color:var(--text-muted); margin:0; word-break:break-all;}
.sales-doc-view{text-align:center;}
.sales-doc-form{display:flex; flex-direction:column; gap:8px; border-top:1px solid var(--border); padding-top:10px;}
.sales-doc-file{display:flex; flex-direction:column; gap:6px; font-size:12px; font-weight:700; color:var(--text-muted);}
.sales-doc-file input{font-size:12px; max-width:100%;}

/* ---- 新規契約の進み具合（2026-10-01） ---- */
.onboarding-list{display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:12px;}
.onboarding-card{display:flex; flex-direction:column; gap:10px;}
.onboarding-head{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;}
.onboarding-no{font-size:12px; color:var(--text-faint); font-weight:700;}
.onboarding-name{font-size:15px; font-weight:700; color:var(--navy-800);}
.onboarding-steps{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:6px;}
.onboarding-steps li{display:flex; justify-content:space-between; gap:10px; font-size:13px; padding:8px 10px; border-radius:9px; background:var(--surface-2); flex-wrap:wrap;}
.onboarding-steps li span:last-child{color:var(--text-muted);}
.onboarding-steps li.is-done{background:var(--success-bg);}
.onboarding-steps li.is-done span:last-child{color:var(--success); font-weight:700;}
.onboarding-label{font-weight:700;}
.contract-signed-form{display:flex; flex-direction:column; gap:8px; align-items:flex-start;}

/* ---- 先方の入力ページ・QR（2026-10-01） ---- */
.apply-page{padding-top:18px; display:flex; flex-direction:column; gap:10px;}
.apply-form{display:flex; flex-direction:column; gap:12px;}
.apply-section{display:flex; flex-direction:column; gap:10px;}
.apply-section h2{font-size:15px; margin:0; color:var(--navy-800);}
.apply-check{display:flex; align-items:flex-start; gap:8px; font-size:14px; font-weight:normal; line-height:1.5;}
.apply-check input{margin-top:4px; flex:none;}
.apply-consent span{font-size:13px;}
.field.apply-inline{display:flex; flex-direction:row; align-items:center; gap:8px;}
.field.apply-inline label{flex:1; margin:0;}
.field.apply-inline input{width:6em; flex:none;}
.apply-sub{border:1px solid var(--border); border-radius:10px; padding:8px 10px; display:flex; flex-direction:column; gap:6px;}
.apply-sub legend{font-size:12px; color:var(--text-muted); padding:0 4px;}
.apply-errors{text-align:left; padding:10px 12px; border-radius:10px; background:var(--danger-bg);}
.apply-qr-card{display:flex; flex-direction:column; gap:10px; align-items:flex-start;}
.apply-qr{width:min(260px, 70vw); background:#fff; padding:8px; border-radius:10px;}
.apply-qr svg{width:100%; height:auto; display:block;}
.apply-review th{white-space:nowrap; width:9em;}

/* ---- 初期設定（2026-10-01） ---- */
.setup-card{display:flex; flex-direction:column; gap:10px;}
.setup-grid{display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:10px;}
.setup-dept{display:flex; gap:8px; align-items:center; flex-wrap:wrap;}
.setup-dept input[type="text"]{flex:1; min-width:160px; border:1px solid var(--border); border-radius:11px; padding:9px 12px; font-size:13px; background:var(--surface); color:var(--text); font-family:var(--font-body);}

/* ホーム画面のアイコンへの通知の受け取り（views/partials/push_optin.ejs・public/push.js） */
[data-push-optin][hidden], [data-push-optin] [hidden]{display:none !important;}
.push-optin-msg{margin:0; font-size:13px; line-height:1.6;}
.push-optin-msg:not([hidden]) + .btn{margin-top:8px;}
.push-optin .btn{width:100%;}

/* 経営者のホーム（2026-10-13 社長指示）：大きなボタン4つ・下のメニュー5つ */
.tabbar.tabbar-5{grid-template-columns:repeat(5,1fr);}
.tabbar-5 .tab-btn{text-align:center; line-height:1.25;}
.exec-notices{display:flex; flex-direction:column; gap:6px; margin-bottom:14px;}
.exec-notice{display:block; padding:8px 12px; border-radius:10px; background:var(--surface); border:1px solid var(--border); font-size:12px; line-height:1.5; color:inherit; text-decoration:none;}
.exec-notice .item-meta{display:block; font-size:10.5px;}
.exec-grid{display:grid; grid-template-columns:1fr; gap:12px;}
.exec-big-btn{display:flex; align-items:center; gap:14px; min-height:92px; padding:16px 18px; border-radius:16px; background:var(--surface); border:1.5px solid var(--navy-800); color:var(--navy-800); text-decoration:none;}
.exec-big-btn svg{width:34px; height:34px; flex:0 0 34px;}
.exec-big-btn .t{display:block; font-size:18px; font-weight:700; line-height:1.3;}
.exec-big-btn .s{display:block; margin-top:3px; font-size:11.5px; color:var(--text-muted); font-weight:400; line-height:1.5;}
/* コミュニティ（無料）会員のホーム：有料プランの機能のボタンに鍵の印（2026-10-13 社長指示「見えてるけど使えない」） */
.exec-big-btn.exec-locked{border-style:dashed; border-color:var(--text-faint); color:var(--text-muted);}
.exec-big-btn.exec-disabled{background:var(--surface-2); opacity:.6; cursor:not-allowed;} /* 押せないボタン（Mサポ未契約のスタート・ミニマム。2026-10-19） */
.exec-lock{display:inline-flex; align-items:center; gap:4px; margin-top:6px; padding:2px 9px; border-radius:99px; background:var(--surface-2); color:var(--navy-800); font-size:11px; font-weight:700;}
.exec-big-btn svg.exec-lock-icon{width:12px; height:12px; flex:0 0 12px;}
/* 「お知らせを受け取る」の枠（4つのボタンの下。views/partials/notice_box.ejs。2026-10-13 社長指示） */
.notice-box{display:flex; align-items:center; gap:12px; margin-top:12px; padding:14px 16px; border-radius:16px; background:var(--surface); border:1.5px solid var(--navy-800); color:var(--navy-800); text-decoration:none;}
.notice-box svg{width:28px; height:28px; flex:0 0 28px;}
.notice-box-body{flex:1; min-width:0;}
.notice-box .t{display:block; font-size:16px; font-weight:700; line-height:1.3;}
.notice-box .s{display:block; margin-top:2px; font-size:11.5px; color:var(--text-muted); line-height:1.5;}
.notice-box-count{font-size:11px; padding:3px 9px;}
.exec-big-btn .exec-btn-count{margin-top:6px; font-size:11px; padding:2px 9px;}
[data-push-denied][hidden]{display:none !important;}
.plan-table td.ok{color:var(--navy-800); font-weight:700;}
.plan-table td.ng{color:var(--text-faint);}
.issue-grid{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.issue-tile{display:flex; align-items:center; justify-content:center; min-height:76px; padding:12px; border-radius:14px; background:var(--surface); border:1.5px solid var(--navy-800); color:var(--navy-800); font-size:16px; font-weight:700; text-align:center; text-decoration:none;}
.leader-stats{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:8px;}
.leader-stat{padding:8px 6px; border-radius:10px; background:var(--surface-2); text-align:center;}
.leader-stat .k{display:block; font-size:10.5px; color:var(--text-muted);}
.leader-stat .v{display:block; margin-top:2px; font-size:15px; font-weight:700;}
.leader-stat .v.pending{font-size:10.5px; font-weight:600; color:var(--text-faint); line-height:1.4;}

/* プロフィールのタグ（得意なこと・好きなこと）と16タイプのアイコン（2026-10-13） */
.profile-tags{display:flex; flex-direction:column; gap:8px;}
.tag-list{display:flex; flex-wrap:wrap; gap:6px; margin-top:4px;}
.tag{font-size:11.5px; padding:3px 9px; border-radius:99px; background:var(--navy-100); color:var(--navy-800); border:1px solid var(--border);}
.tag-pick{display:flex; flex-wrap:wrap; gap:6px; margin:4px 0 6px;}
.tag-option{display:inline-flex; font-weight:normal; cursor:pointer;}
.tag-option input{position:absolute; opacity:0; width:1px; height:1px;}
.tag-option span{font-size:12px; padding:5px 10px; border-radius:99px; border:1px solid var(--border); background:var(--surface); color:var(--text);}
.tag-option input:checked + span{background:var(--navy-800); border-color:var(--navy-800); color:#fff;}
.tag-option input:focus-visible + span{outline:2px solid var(--navy-700); outline-offset:2px;}
.type-icon{display:inline-block; vertical-align:middle; flex:0 0 auto;}
.type-line{display:flex; align-items:center; gap:8px;}
.mypage-fold > summary{list-style:none; cursor:pointer;}
.mypage-fold > summary::-webkit-details-marker{display:none;}
.mypage-fold[open] > summary{display:none;}
.tag-hobby{background:var(--surface-2);}
.type-note{font-size:12px; color:var(--text-muted);}
.type-line{flex-wrap:wrap;}
.type-guide{margin-top:6px; padding:8px 10px; border-radius:8px; background:var(--surface-2); font-size:12.5px;}
.mla-splash{position:fixed; inset:0; z-index:9999; background:#cfe3f5; display:flex; align-items:center; justify-content:center; transition:opacity .4s ease;}
.mla-splash[hidden]{display:none;}
.mla-splash img{width:100%; height:100%; object-fit:cover;}
.mla-splash-out{opacity:0; pointer-events:none;}
@media (prefers-reduced-motion: reduce){.mla-splash{transition:none;}}
.dept-dialog{border:none; border-radius:16px; padding:16px; width:min(92vw, 420px); max-height:85vh; overflow:auto; box-shadow:0 10px 40px rgba(0,0,0,.25);}
.dept-dialog::backdrop{background:rgba(20,20,60,.45);}
.dept-pick{display:flex; flex-direction:column; gap:6px; max-height:40vh; overflow:auto; padding:6px; border:1px solid var(--border); border-radius:10px;}
.dept-option{display:flex; align-items:center; gap:6px; font-size:13px; font-weight:normal;}
.edit-row{width:100%; background:none; border:none; border-bottom:1px solid var(--border); font:inherit; color:inherit; text-align:left; cursor:pointer;}
.edit-block{display:block; width:100%; background:none; border:none; padding:0; font:inherit; color:inherit; text-align:left; cursor:pointer;}
.edit-mark{margin-left:6px; font-size:11px; color:var(--text-faint);}
.title-edit{display:block; width:100%; background:none; border:none; padding:0; font-family:inherit; text-align:left; cursor:pointer;}
.meet-target{border:none; background:var(--surface);}
.seg{display:flex; border:1px solid var(--border); border-radius:10px; overflow:hidden; flex:0 0 auto;}
.seg-opt{display:flex; margin:0; cursor:pointer;}
.seg-opt input{position:absolute; opacity:0; pointer-events:none;}
.seg-opt span{padding:9px 10px; font-size:12px; font-weight:600; color:var(--text-muted); background:var(--surface); white-space:nowrap;}
.seg-opt input:checked + span{background:var(--navy-800); color:#fff;}
.seg-opt input:focus-visible + span{outline:2px solid var(--navy-800); outline-offset:-2px;}
.past-records{max-height:55vh; overflow-y:auto; -webkit-overflow-scrolling:touch; padding-right:2px;}
.record-who{display:flex; align-items:center; gap:12px; padding:4px 2px 2px;}
.record-fb{margin-top:6px; padding:6px 8px; border-radius:8px; background:var(--surface-2);}
.survey-open{border:2px solid #4a90d9; background:#eaf3fc;}
/* 2026-10-15：16タイプの一覧・従業員一覧の並べ方・プロフィールの編集ボタン */
.type16-toggle{background:none; border:0; padding:0; font:inherit; color:inherit; text-align:left; cursor:pointer;}
.type16-list{display:flex; flex-direction:column; gap:8px;}
.type16-item{display:flex; gap:10px; align-items:flex-start; padding:6px; border-radius:8px; font-size:13px;}
.type16-item.is-current{background:var(--surface-2);}
.iv-type{gap:4px;}
.iv-type .type-note{font-size:11px;}
.iv-sub{margin-left:22px; border-left:2px solid var(--border); padding-left:6px;}
.dept-group{margin-top:10px;}
.profile-edit-mini{position:absolute; top:8px; right:10px; font-size:12px; padding:3px 10px; border:1px solid var(--border); border-radius:999px; color:var(--navy-800); text-decoration:none; background:var(--surface);}
/* 2026-10-15 社長指示：スマホで入力欄を押したときに画面が拡大して動かないように、入力欄の文字を16px以上にする（iPhoneは16px未満だと自動で拡大する） */
@media (pointer: coarse) {
  input, select, textarea, .search-box input, .field input { font-size:16px !important; }
}
/* 2026-10-15 社長指示：スマホを横にしたときは「縦向きに」の案内を出す（動画の画面は除く） */
@media (orientation: landscape) and (max-height: 500px) and (pointer: coarse) {
  body:not(.allow-landscape)::after {
    content:'画面を縦向きにしてご利用ください';
    position:fixed; inset:0; z-index:99999; display:flex; align-items:center; justify-content:center;
    background:var(--bg, #f3f2fa); color:var(--text, #1c1b6b); font-size:16px; font-weight:700; padding:24px; text-align:center;
  }
}
/* 2026-10-15：MLA独自の16タイプ診断 */
.diag-form{display:flex; flex-direction:column; gap:10px;}
.diag-q{border:0; margin:0; padding:12px 14px;}
.diag-q-text{font-size:14px; font-weight:700; margin:0 0 8px; padding:0;}
.diag-no{color:var(--text-muted); margin-right:4px;}
.diag-scale{display:flex; flex-direction:column; gap:4px;}
.diag-choice{display:flex; align-items:center; gap:8px; padding:7px 10px; border:1px solid var(--border); border-radius:10px; font-size:13.5px; cursor:pointer;}
.diag-choice input{margin:0; width:18px; height:18px;}
.diag-choice:has(input:checked){border-color:var(--navy-800); background:var(--navy-100);}
.diag-axis{margin-top:10px;}
.diag-axis-labels{display:flex; justify-content:space-between; font-size:12.5px; color:var(--text-muted);}
.diag-axis-labels .on{color:var(--navy-800); font-weight:700;}
.diag-bar{height:8px; border-radius:99px; background:var(--surface-2); overflow:hidden; margin-top:3px;}
.diag-bar span{display:block; height:100%; background:var(--navy-800);}
/* 2026-10-15：採用（面接）・管理職の三本線メニュー */
.appbar-menu{position:relative; margin-left:auto;}
.appbar-menu > summary{list-style:none; cursor:pointer;}
.appbar-menu > summary::-webkit-details-marker{display:none;}
.appbar-menu-list{position:absolute; right:0; top:40px; z-index:50; min-width:190px; display:flex; flex-direction:column; background:var(--surface); border:1px solid var(--border); border-radius:12px; box-shadow:0 8px 24px rgba(0,0,0,.12); overflow:hidden;}
.appbar-menu-list a{padding:12px 14px; color:var(--text); text-decoration:none; font-size:14px; border-bottom:1px solid var(--border);}
.appbar-menu-list a:last-child{border-bottom:0;}
.recruit-note{margin:0; font-size:12px; color:var(--navy-800); background:var(--navy-100); border-radius:8px; padding:6px 8px;}
.recruit-hints{margin-top:8px; font-size:13px;}
.recruit-hints summary{cursor:pointer; font-weight:700;}
.recruit-hints ol{margin:6px 0 0; padding-left:20px; line-height:1.7;}
.recruit-search-row{display:flex; gap:8px;}
.recruit-search-row .field{flex:1; min-width:0;}
.recruit-search{display:flex; flex-direction:column; gap:8px;}
.recruit-toggle{display:flex; align-items:center; justify-content:space-between; gap:8px; padding:4px 0; border-bottom:1px solid var(--border);}
.recruit-toggle:last-child{border-bottom:0;}
.switch{border:1px solid var(--border); background:var(--surface-2); color:var(--text-muted); border-radius:99px; padding:4px 14px; font-size:12px; font-weight:700; cursor:pointer;}
.switch.is-on{background:var(--navy-800); border-color:var(--navy-800); color:#fff;}
.check-line{display:flex; align-items:flex-start; gap:8px; font-size:13.5px; padding:4px 0;}
.check-line input{margin-top:3px;}
.sheet-form{display:flex; flex-direction:column; gap:10px;}
.sheet-fs{border:0; margin:0; padding:0; display:flex; flex-direction:column; gap:10px; min-width:0;}
.sheet-basic{display:flex; flex-direction:column; gap:10px;}
.score-row{display:flex; gap:6px;}
.score-pick{flex:1;}
.score-pick input{position:absolute; opacity:0;}
.score-pick span{display:block; text-align:center; padding:8px 0; border:1px solid var(--border); border-radius:10px; font-weight:700; cursor:pointer;}
.score-pick input:checked + span{background:var(--navy-800); border-color:var(--navy-800); color:#fff;}
.sheet-eval .low-memo{margin-top:8px; min-height:56px;}
.sheet-eval.is-low{border:2px solid var(--danger);}
.sheet-eval.is-low .low-memo{border-color:var(--danger);}
/* 2026-10-15：パーソナル16診断の結果画面（グループごとの色） */
.tr-hero{border-radius:18px; padding:22px 18px 18px; text-align:center; color:#fff; background:linear-gradient(160deg, var(--tr-a), var(--tr-b));}
.tr-nt{--tr-a:#6a59b0; --tr-b:#433673;}
.tr-nf{--tr-a:#3f8e6e; --tr-b:#255a45;}
.tr-sj{--tr-a:#3a6db3; --tr-b:#1f4373;}
.tr-sp{--tr-a:#c79a35; --tr-b:#8f6a1f;}
.tr-icon svg{filter:drop-shadow(0 4px 10px rgba(0,0,0,.25));}
.tr-lead{margin:8px 0 0; font-size:13px; opacity:.85;}
.tr-name{margin:2px 0 0; font-size:24px; font-weight:800; letter-spacing:.02em;}
.tr-type{margin:4px 0 0; font-size:15px; font-weight:700;}
.tr-type span{display:block; font-size:12px; font-weight:400; opacity:.85; margin-top:2px;}
.tr-catch{margin:12px 0 0; font-size:14px; line-height:1.6;}
.tr-group{display:inline-block; margin:12px 0 0; padding:3px 12px; border-radius:99px; background:rgba(255,255,255,.18); font-size:12px;}
.tr-sec h2{font-size:14px; margin:0 0 6px; color:var(--navy-800);}
.tr-sec p{margin:0 0 4px; font-size:13.5px; line-height:1.7;}
.tr-sec ul{margin:0; padding-left:1.2em; font-size:13.5px; line-height:1.7;}
.tr-hidden{border:1px dashed var(--navy-800);}
/* 診断の質問：題名を枠の中に入れる（iPhoneで legend が枠と重なっていた） */
.diag-q-text{display:block; font-size:14px; font-weight:700; margin:0 0 8px; padding:0; line-height:1.5;}
/* 2026-10-15：パーソナル16の仕事での活かし方・組み合わせガイド */
.tr-tip{background:var(--surface-2); border-radius:8px; padding:6px 8px; margin-top:6px !important;}
.tr-rel-list{display:flex; flex-wrap:wrap; gap:8px;}
.tr-rel-item{display:flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--border); border-radius:10px; text-decoration:none; color:inherit; font-size:12.5px;}
.tr-rel-item small, .tr-pair-head small{display:block; font-size:11px; color:var(--text-muted);}
.tr-rel-together h2{color:#2f7d5b;} .tr-rel-complement h2{color:#2e5d9c;} .tr-rel-inspire h2{color:#6a59b0;} .tr-rel-differ h2{color:#a8741e;}
.tr-pair-head{display:flex; align-items:center; justify-content:center; gap:12px; text-align:center;}
.tr-pair-head span{display:flex; flex-direction:column; align-items:center; gap:2px;}
.tr-x{font-size:20px; color:var(--text-muted);}
#typeGuideForm select{flex:1; min-width:0;}
/* 2026-10-15 社長指摘：Androidで見出しが枠に重なる → 見出しの上下にすき間、カードどうしも少し離す */
.section-title.tr-head{margin:22px 0 8px; padding:0 2px; line-height:1.5;}
.tr-sec + .tr-sec, .tr-hero + .tr-sec{margin-top:12px;}
/* 2026-10-15 社長指示：マイページのログイン情報（メール・パスワード）を小さくまとめる */
.login-info{display:flex; flex-direction:column; gap:4px; padding:12px 14px;}
.login-info-row{display:flex; gap:10px; font-size:13px; align-items:baseline;}
.login-info-row .k{flex:0 0 52px; color:var(--text-muted); font-size:12px;}
.login-info-row .v{flex:1; min-width:0; overflow-wrap:anywhere;}
.login-info-btns{display:grid; grid-template-columns:1fr 1fr; gap:8px; margin-top:8px;}
.login-info-btns .btn{padding:8px 6px; font-size:12.5px;}
.login-info-form{display:flex; flex-direction:column; gap:10px; margin-top:10px; padding-top:10px; border-top:1px solid var(--border);}
/* 2026-10-15 社長指示：管理画面のホーム（数字は横1列・低く、契約企業の一覧は横スクロールなし） */
.stat-row{display:grid; grid-template-columns:1fr 1fr 2fr; gap:8px;}
@media (max-width: 700px) { .stat-row{grid-template-columns:1fr 1fr;} .stat-row #revenueTile{grid-column:1 / -1;} }
.stat-sub{font-size:11px; color:var(--text-muted);}
.stat-mini{display:flex; flex-direction:column; gap:2px; padding:8px 12px;}
.stat-mini .stat-value{font-size:20px; line-height:1.2;}
.company-table{white-space:normal; table-layout:auto;}
.company-table th, .company-table td{padding:8px 10px; vertical-align:middle;}
.company-table td:last-child{white-space:nowrap; text-align:right;}
@media (max-width: 700px) {
  .company-table thead{display:none;}
  .company-table, .company-table tbody, .company-table tr, .company-table td{display:block; width:100%;}
  .company-table tr{border:1px solid var(--border); border-radius:10px; margin-bottom:8px; padding:6px 4px; background:var(--surface);}
  .company-table td{border:0; padding:3px 10px; text-align:left;}
  .company-table td[data-k]::before{content:attr(data-k) '：'; color:var(--text-muted); font-size:11px;}
  .company-table td:last-child{text-align:left;}
}
/* 2026-10-15：インストール用QR・案内 */
.install-qr-card .apply-qr svg{width:240px; height:240px;}
.install-steps{margin-top:12px;}
.install-h{margin:0 0 6px; font-weight:700;}
.install-steps ol{margin:0; padding-left:1.3em; font-size:14px; line-height:1.8;}
.onboarding-links{display:flex; flex-wrap:wrap; gap:8px 14px; font-size:13px;}
/* 2026-10-15 社長指示：管理画面の検索欄を小さく */
.admin-search{display:flex; gap:8px; align-items:center; flex-wrap:wrap; margin:0 0 8px;}
.admin-search input[type="text"]{flex:1 1 200px; min-width:0; padding:7px 10px; border:1px solid var(--border); border-radius:8px;}
.admin-search select{flex:0 1 260px; min-width:0; padding:7px 10px; border-radius:8px;}
.admin-search .btn{padding:7px 16px; font-size:12.5px;}
/* 2026-10-15 社長指示：管理画面のサービスをプランごとの見出しで区切る */
.admin-nav-sub{display:block; margin:8px 0 2px; padding:2px 12px; font-size:10.5px; font-weight:700; color:var(--text-faint); letter-spacing:.04em; border-top:1px dashed var(--border);}
.admin-nav-links .admin-nav-sub:first-child{border-top:0; margin-top:2px;}

/* 紹介パートナーの画面（2026-10-16） */
.ref-plan-list{display:grid; grid-template-columns:1fr 1fr; gap:8px;}
.ref-plan{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border:1px solid var(--border); border-radius:12px; background:var(--surface); color:var(--text); text-decoration:none;}
.ref-plan.on{border:2px solid var(--navy-800); background:var(--surface-2);}
.ref-plan-name{font-weight:700; font-size:13px;}
.ref-plan-price{font-size:11px; color:var(--text-muted);}
.ref-sum{display:grid; grid-template-columns:1fr 1fr; gap:10px;}
.ref-sum-item{margin:0;}
.ref-sum-item#nextPayout{grid-column:1 / -1;}
.ref-sum-k{margin:0; font-size:12px; color:var(--text-muted);}
.ref-sum-v{margin:2px 0 0; font-size:20px; font-weight:700; font-variant-numeric:tabular-nums;}
.ref-sum-n{margin:4px 0 0; font-size:11px; color:var(--text-faint); line-height:1.5;}
.ref-company-list{display:flex; flex-direction:column; gap:10px;}
.ref-company-head{display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px;}
.ref-company-name{font-weight:700;}
.ref-dl{display:grid; grid-template-columns:auto 1fr; gap:4px 12px; margin:0; font-size:13px;}
.ref-dl dt{color:var(--text-muted);}
.ref-dl dd{margin:0; text-align:right; font-variant-numeric:tabular-nums;}
.ref-row{display:flex; justify-content:space-between; align-items:center; gap:8px; padding:10px 14px; border-bottom:1px solid var(--border); color:var(--text); text-decoration:none; font-size:13px;}
.ref-row:last-child{border-bottom:none;}
.ref-row-v{font-weight:700; font-variant-numeric:tabular-nums; white-space:nowrap;}
.ref-month summary{display:flex; justify-content:space-between; cursor:pointer; font-weight:700; list-style:none;}
.ref-line{padding:8px 0; border-top:1px solid var(--border);}
#statementRows .ref-line:first-child{border-top:none;}
.ref-line-head{display:flex; justify-content:space-between; gap:8px; font-size:13px;}
