
* { margin:0; padding:0; box-sizing:border-box; }
/* スマホ実機: ボタン・リンク・クリッカブル要素の300ms遅延を根絶 */
button, a, [onclick], [role="button"] { touch-action: manipulation; }
:root {
  --ub-navy:#0D1B2A; --ub-blue:#1A56DB; --ub-cyan:#06B6D4;
  --ub-gold:#F59E0B; --ub-light:#F0F4FF; --ub-muted:#64748B;
  --ub-surface:#FFFFFF; --ub-border:rgba(26,86,219,0.15);
  --ub-success:#10B981; --ub-danger:#EF4444;
  --inv:#EA580C;
}
body { font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; background:var(--ub-light); color:var(--ub-navy); overflow-x:hidden; }

#lp-content .nav { position:fixed;top:0;left:0;right:0;z-index:100;background:rgba(13,27,42,0.97);backdrop-filter:blur(12px);border-bottom:1px solid rgba(6,182,212,0.2);padding:0 2rem;height:64px;display:flex;align-items:center;justify-content:space-between; }
#lp-content .nav-logo { font-family:Georgia,serif;font-size:20px;font-weight:800;color:#fff; }
#lp-content .nav-logo span { color:var(--ub-cyan); }
#lp-content .nav-links { display:flex;gap:2rem;list-style:none; }
#lp-content .nav-links a { color:rgba(255,255,255,0.7);text-decoration:none;font-size:13px;transition:color .2s; }
#lp-content .nav-links a:hover { color:var(--ub-cyan); }
#lp-content .btn-sm { background:var(--ub-blue);color:#fff;border:none;padding:8px 20px;border-radius:6px;font-size:13px;cursor:pointer;font-weight:600;font-family:inherit; }

#lp-content .hero { background:linear-gradient(135deg,#0D1B2A 0%,#0F2B4A 55%,#0a1a2e 100%);padding:7rem 2rem 4.5rem;text-align:center;position:relative;overflow:hidden; }
#lp-content .hero::before { content:'';position:absolute;inset:0;background:radial-gradient(ellipse 70% 50% at 50% 100%,rgba(26,86,219,0.18) 0%,transparent 70%);pointer-events:none; }
#lp-content .badge-inv { display:inline-flex;align-items:center;gap:8px;background:rgba(234,88,12,0.15);border:1px solid rgba(234,88,12,0.4);color:#FB923C;padding:5px 16px;border-radius:100px;font-size:12px;font-weight:700;letter-spacing:.5px;margin-bottom:1.5rem;position:relative; }
#lp-content .hero h1 { font-family:Georgia,serif;font-size:clamp(26px,4.5vw,50px);font-weight:800;color:#fff;line-height:1.15;margin-bottom:1rem;position:relative; }
#lp-content .hero h1 em { color:var(--ub-cyan);font-style:normal; }
#lp-content .hero-sub { color:rgba(255,255,255,0.62);font-size:15px;line-height:1.8;max-width:640px;margin:0 auto 2rem;position:relative; }

#lp-content .rate-row { display:flex;gap:.875rem;justify-content:center;flex-wrap:wrap;margin-bottom:2rem;position:relative; }
#lp-content .rate-pill { background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.13);border-radius:10px;padding:11px 16px;text-align:center;min-width:148px; }
#lp-content .rate-pill .rl { font-size:10px;color:rgba(255,255,255,0.45);margin-bottom:3px; }
#lp-content .rate-pill .rv { font-family:Georgia,serif;font-size:20px;font-weight:800;color:#FB923C; }
#lp-content .rate-pill .rs { font-size:10px;color:rgba(255,255,255,0.35);margin-top:2px; }
#lp-content .rate-pill.c-green .rv { color:#34D399; }
#lp-content .rate-pill.c-red   .rv { color:#F87171; }

#lp-content .tab-toggle { display:flex;background:rgba(255,255,255,0.07);border:1px solid rgba(255,255,255,0.15);border-radius:8px;padding:4px;width:fit-content;margin:0 auto; }
#lp-content .tab-toggle button { padding:9px 22px;border-radius:6px;border:none;font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;color:rgba(255,255,255,0.5);background:transparent;transition:all .2s; }
#lp-content .tab-toggle button.active { background:var(--ub-blue);color:#fff; }

#lp-content .main { max-width:1160px;margin:0 auto;padding:4rem 2rem 6rem; }
#lp-content .section-tag { font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--ub-blue);margin-bottom:.5rem; }
#lp-content .section-title { font-family:Georgia,serif;font-size:clamp(22px,3.5vw,34px);font-weight:700;color:var(--ub-navy);line-height:1.25;margin-bottom:.75rem; }

/* 税注記バナー */
#lp-content .tax-notice { background:rgba(245,158,11,0.08);border:1px solid rgba(245,158,11,0.35);border-radius:10px;padding:13px 18px;display:flex;align-items:flex-start;gap:12px;margin-bottom:2.5rem; }
#lp-content .tax-notice p { font-size:13px;color:var(--ub-navy);line-height:1.7; }

/* 計算式バナー（目立つ） */
#lp-content .formula-bar { background:rgba(26,86,219,0.07);border:1.5px solid rgba(26,86,219,0.3);border-radius:10px;padding:14px 20px;margin-bottom:2.5rem;text-align:center;font-size:14px;color:var(--ub-navy);line-height:1.9; }
#lp-content .formula-bar strong { color:var(--ub-blue); }
#lp-content .formula-bar .arrow { color:var(--ub-muted);margin:0 8px; }

/* CARDS */
#lp-content .pricing-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:1.75rem;margin-top:2.5rem; }
#lp-content .price-card { background:var(--ub-surface);border:1px solid var(--ub-border);border-radius:16px;padding:2.25rem;display:flex;flex-direction:column;position:relative;transition:all .25s; }
#lp-content .price-card:hover { transform:translateY(-3px);box-shadow:0 12px 40px rgba(26,86,219,.1); }
#lp-content .price-card.featured { border:2px solid var(--ub-blue);box-shadow:0 8px 32px rgba(26,86,219,.15); }
#lp-content .featured-badge { position:absolute;top:-14px;left:50%;transform:translateX(-50%);background:linear-gradient(90deg,var(--inv),#F97316);color:#fff;font-size:11px;font-weight:700;padding:5px 20px;border-radius:100px;white-space:nowrap; }
#lp-content .plan-tier { font-size:11px;font-weight:700;letter-spacing:2px;color:var(--ub-blue);margin-bottom:.5rem; }
#lp-content .plan-name { font-family:Georgia,serif;font-size:21px;font-weight:800;color:var(--ub-navy);margin-bottom:.35rem; }
#lp-content .plan-desc { font-size:13px;color:var(--ub-muted);line-height:1.65;margin-bottom:1.25rem;padding-bottom:1.25rem;border-bottom:1px solid var(--ub-border); }
#lp-content .price-lbl { font-size:11px;color:var(--ub-muted);margin-bottom:3px; }
#lp-content .price-amount { font-family:Georgia,serif;font-size:34px;font-weight:800;color:var(--ub-blue);line-height:1; }
#lp-content .price-unit { font-size:12px;color:var(--ub-muted);margin-left:4px; }
#lp-content .price-tax-note { font-size:11px;color:var(--ub-muted);margin-top:3px;margin-bottom:1rem; }

/* 内訳テーブル */
#lp-content .breakdown { background:var(--ub-light);border-radius:9px;padding:12px 14px;margin:1rem 0;font-size:12px; }
#lp-content .bk-ttl { font-size:10px;font-weight:700;color:var(--ub-blue);letter-spacing:.5px;margin-bottom:7px;text-transform:uppercase; }
#lp-content .bk-row { display:flex;justify-content:space-between;align-items:baseline;padding:4px 0;color:var(--ub-muted);border-bottom:1px dashed rgba(100,116,139,0.18); }
#lp-content .bk-row:last-of-type { border:none; }
#lp-content .bk-row.sub { padding-left:10px;font-size:11px;color:rgba(100,116,139,.7); }
#lp-content .bk-row.sep { border-top:2px solid rgba(26,86,219,.15);border-bottom:none;margin-top:4px;padding-top:8px;font-weight:700;color:var(--ub-navy);font-size:13px; }
#lp-content .bk-row.tax { font-weight:700;color:var(--ub-navy);font-size:13px;border-bottom:none; }
#lp-content .tax-tag { font-size:10px;background:rgba(245,158,11,.15);color:#92400E;padding:1px 6px;border-radius:3px;margin-left:5px;font-weight:400; }

/* 補助金ブロック */
#lp-content .sb { border-radius:10px;padding:14px 16px;margin-bottom:1rem; }
#lp-content .sb.orange { background:rgba(234,88,12,0.06);border:1px solid rgba(234,88,12,0.25); }
#lp-content .sb.green  { background:rgba(16,185,129,0.06);border:1px solid rgba(16,185,129,0.25); }
#lp-content .sb.gold   { background:rgba(245,158,11,0.06);border:1px solid rgba(245,158,11,0.28); }
#lp-content .sb-ttl { font-size:11px;font-weight:700;letter-spacing:.4px;color:var(--ub-muted);margin-bottom:8px;text-transform:uppercase; }
#lp-content .sb-row { display:flex;justify-content:space-between;align-items:baseline;font-size:12px;color:var(--ub-muted);padding:3px 0; }
#lp-content .sb-row.sep { border-top:1px solid rgba(100,116,139,.15);margin-top:5px;padding-top:7px; }
#lp-content .vg { color:var(--ub-success);font-weight:700; }
#lp-content .vb { color:var(--ub-blue);font-weight:700; }
#lp-content .vo { color:var(--inv);font-weight:700; }
#lp-content .sb-note { font-size:10px;color:rgba(100,116,139,.75);margin-top:5px;line-height:1.7; }

/* 実質負担ハイライト */
#lp-content .net-box { border-radius:10px;padding:14px 16px;margin-bottom:1.25rem; }
#lp-content .net-box.green { background:rgba(16,185,129,0.08);border:1px solid rgba(16,185,129,0.3); }
#lp-content .net-box.blue  { background:rgba(26,86,219,0.07);border:1px solid rgba(26,86,219,0.25); }
#lp-content .net-box.gold  { background:rgba(245,158,11,0.07);border:1px solid rgba(245,158,11,0.3); }
#lp-content .net-top { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px; }
#lp-content .net-item label { font-size:10px;color:var(--ub-muted);display:block;margin-bottom:3px; }
#lp-content .nv-strike { font-size:13px;font-weight:500;color:var(--ub-muted);text-decoration:line-through; }
#lp-content .nv-sub { font-family:Georgia,serif;font-size:19px;font-weight:800; }
#lp-content .nv-sub.green { color:var(--ub-success); }
#lp-content .nv-sub.blue  { color:var(--ub-blue); }
#lp-content .nv-sub.gold  { color:var(--ub-gold); }
#lp-content .net-result { border-top:1px solid rgba(0,0,0,.08);padding-top:10px; }
#lp-content .net-result label { font-size:10px;color:var(--ub-muted);display:block;margin-bottom:3px; }
#lp-content .net-big { font-family:Georgia,serif;font-weight:800; }
#lp-content .net-big.green { color:var(--ub-success);font-size:26px; }
#lp-content .net-big.blue  { color:var(--ub-blue);font-size:24px; }
#lp-content .net-big.gold  { color:var(--ub-gold);font-size:22px; }
#lp-content .net-sub { font-size:10px;color:var(--ub-muted);margin-top:3px; }

#lp-content .feat-list { list-style:none;display:flex;flex-direction:column;gap:.55rem;flex:1;margin-bottom:1.5rem; }
#lp-content .feat-list li { font-size:13px;color:var(--ub-muted);display:flex;align-items:flex-start;gap:8px;line-height:1.5; }
#lp-content .feat-list li .ck { color:var(--ub-success);font-weight:700;flex-shrink:0; }
#lp-content .feat-list li .ck.no { color:#CBD5E1; }
#lp-content .feat-list li.dim { opacity:.5; }
#lp-content .btn-price { width:100%;padding:13px;border-radius:9px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;border:none;transition:all .2s;margin-top:auto; }
#lp-content .btn-outline { background:transparent;border:1.5px solid var(--ub-border);color:var(--ub-navy); }
#lp-content .btn-outline:hover { border-color:var(--ub-blue);color:var(--ub-blue); }
#lp-content .btn-fill { background:var(--ub-blue);color:#fff;box-shadow:0 4px 14px rgba(26,86,219,.3); }
#lp-content .btn-fill:hover { background:#1347c8; }

/* ダーク比較 */
#lp-content .dark-section { background:var(--ub-navy);border-radius:20px;padding:3rem 2.5rem;margin-top:4rem;position:relative;overflow:hidden; }
#lp-content .dark-section::before { content:'';position:absolute;right:-80px;top:-80px;width:350px;height:350px;background:radial-gradient(circle,rgba(6,182,212,.1) 0%,transparent 65%);pointer-events:none; }
#lp-content .dark-section h2 { font-family:Georgia,serif;font-size:24px;font-weight:800;color:#fff;margin-bottom:.4rem;position:relative; }
#lp-content .dark-section > p { color:rgba(255,255,255,.5);font-size:13px;margin-bottom:2.5rem;position:relative; }
#lp-content .dark-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1.25rem;position:relative; }
#lp-content .dc { border-radius:14px;padding:1.75rem; }
#lp-content .dc.s1 { background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1); }
#lp-content .dc.s2 { background:rgba(26,86,219,.18);border:1px solid rgba(26,86,219,.45); }
#lp-content .dc.s3 { background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35); }
#lp-content .dc-tier { font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--ub-cyan);margin-bottom:.4rem; }
#lp-content .dc-name { font-family:Georgia,serif;font-size:17px;font-weight:800;color:#fff;margin-bottom:1.25rem; }
#lp-content .dc-row { display:flex;justify-content:space-between;font-size:12px;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.07);color:rgba(255,255,255,.5); }
#lp-content .dc-row:last-of-type { border:none; }
#lp-content .dc-row span:last-child { color:#fff;font-weight:600; }
#lp-content .dc-row.muted span:last-child { color:rgba(255,255,255,.4);font-weight:400;font-size:11px; }
#lp-content .dc-row.green span:last-child { color:#34D399; }
#lp-content .dc-row.orange span:last-child { color:#FB923C; }
#lp-content .dc-row.red span:last-child { color:#F87171; }
#lp-content .dc-hr { border:none;border-top:1px solid rgba(255,255,255,.12);margin:8px 0; }
#lp-content .dc-box { margin-top:14px;border-radius:8px;padding:11px 14px; }
#lp-content .dc-box.bgreen { background:rgba(16,185,129,.15);border:1px solid rgba(16,185,129,.3); }
#lp-content .dc-box.bblue  { background:rgba(26,86,219,.25);border:1px solid rgba(26,86,219,.5); }
#lp-content .dc-box.bgold  { background:rgba(245,158,11,.15);border:1px solid rgba(245,158,11,.35); }
#lp-content .dc-box label { font-size:10px;color:rgba(255,255,255,.5);display:block;margin-bottom:3px; }
#lp-content .dc-net { font-family:Georgia,serif;font-size:24px;font-weight:800; }
#lp-content .dc-net.green { color:#34D399; }
#lp-content .dc-net.blue  { color:#93C5FD; }
#lp-content .dc-net.gold  { color:#FCD34D; }
#lp-content .dc-box small { font-size:10px;color:rgba(255,255,255,.35);display:block;margin-top:3px; }

/* 比較表 */
#lp-content .compare-wrap { margin-top:4rem; }
#lp-content .ct { width:100%;border-collapse:separate;border-spacing:0;background:var(--ub-surface);border-radius:14px;overflow:hidden;box-shadow:0 4px 24px rgba(26,86,219,.08); }
#lp-content .ct th { background:var(--ub-navy);color:#fff;padding:13px 18px;font-size:12px;font-weight:600;text-align:center;border-right:1px solid rgba(255,255,255,.07); }
#lp-content .ct th:first-child { text-align:left; }
#lp-content .ct th.hl { background:var(--ub-blue); }
#lp-content .ct td { padding:12px 18px;font-size:13px;border-bottom:1px solid rgba(26,86,219,.07);border-right:1px solid rgba(26,86,219,.05);text-align:center;color:var(--ub-muted); }
#lp-content .ct td:first-child { text-align:left;font-weight:500;color:var(--ub-navy); }
#lp-content .ct td.hl { background:rgba(26,86,219,.04); }
#lp-content .ct tr:last-child td { border-bottom:none; }
#lp-content .ct .cat td { background:rgba(240,244,255,.8);font-size:11px;font-weight:700;color:var(--ub-blue);letter-spacing:1px;padding:9px 18px; }
#lp-content .ck2 { color:var(--ub-success);font-size:15px; }
#lp-content .cr2 { color:#CBD5E1;font-size:15px; }
#lp-content .cp2 { font-size:12px;font-weight:600;color:var(--ub-gold); }

#lp-content .legal-note { font-size:11px;color:var(--ub-muted);line-height:1.9;margin-top:2rem;padding:1.25rem 1.5rem;background:rgba(100,116,139,.07);border:1px solid rgba(100,116,139,.15);border-radius:10px; }
#lp-content .cta { background:linear-gradient(135deg,var(--ub-navy),#0F2B4A);border-radius:16px;padding:4rem 2rem;text-align:center;margin-top:4rem;border:1px solid rgba(6,182,212,.2); }
#lp-content .cta h2 { font-family:Georgia,serif;font-size:28px;font-weight:800;color:#fff;margin-bottom:1rem; }
#lp-content .cta p { color:rgba(255,255,255,.6);font-size:15px;margin-bottom:2rem; }
#lp-content .cta-btns { display:flex;gap:12px;justify-content:center;flex-wrap:wrap; }
#lp-content .btn-cf { background:var(--ub-blue);color:#fff;border:none;padding:14px 36px;border-radius:8px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit; }
#lp-content .btn-co { background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);padding:14px 36px;border-radius:8px;font-size:15px;cursor:pointer;font-family:inherit; }
#lp-content .footer { background:var(--ub-navy);color:rgba(255,255,255,.4);padding:2rem;text-align:center;font-size:12px;line-height:1.9; }

@media(max-width:768px){
  #lp-content .nav-links { display:none; }
  #lp-content .pricing-grid, #lp-content .dark-grid { grid-template-columns:1fr; }
  #lp-content .dark-section { padding:2rem 1.25rem; }
  #lp-content .net-top { grid-template-columns:1fr 1fr; }
}
body.annual .sub-view { display:none; }
body.annual .ann-view { display:block; }
#lp-content .ann-view { display:none; }
#lp-content .sub-view { display:block; }

/* ═══════════════════════════════════════
   モード切替バナー
═══════════════════════════════════════ */
.mode-switcher-bar {
  position: fixed; top: 0; left: 0; right: 0; z-index: 9999;
  background: linear-gradient(90deg, #0D1B2A, #1A56DB);
  border-bottom: 1px solid rgba(6,182,212,0.3);
  padding: 8px 1rem;
}
.mode-switcher-inner {
  max-width: 1200px; margin: 0 auto;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.mode-label { font-size: 13px; color: rgba(255,255,255,0.8); font-weight: 500; }
.mode-btn {
  background: var(--ub-cyan); color: #fff; border: none;
  padding: 6px 16px; border-radius: 6px; font-size: 13px;
  font-weight: 700; cursor: pointer; font-family: inherit;
  white-space: nowrap; transition: background .2s;
}
.mode-btn:hover { background: #0ea5c2; }

/* LP hero に mode-switcher-bar 分の余白 */
#lp-content .hero { padding-top: calc(7rem + 40px); }
#lp-content .nav  { top: 40px; }

/* ═══════════════════════════════════════
   管理画面 — ハンバーガー & オーバーレイ
   ★ v6: ハンバーガーを body 直下 fixed に昇格
          admin-header 内のボタンは非表示
═══════════════════════════════════════ */

/* body直下に固定するハンバーガーボタン（スマホ専用・デスクトップは非表示） */
#global-hamburger {
  display: none; /* デスクトップでは非表示 */
  position: fixed;
  top: 8px;
  left: 8px;
  z-index: 100000;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 6px;
  width: 44px;
  height: 44px;
  /* 背景:#1A56DB（青）、どんな背景にも絶対に埋もれない */
  background: #1A56DB;
  border: 2px solid #ffffff;
  border-radius: 10px;
  cursor: pointer;
  padding: 0;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 2px 8px rgba(0,0,0,0.35);
  transition: transform 0.15s;
}
#global-hamburger:active {
  transform: scale(0.90);
}
#global-hamburger span {
  display: block;
  width: 20px;
  height: 3px;
  /* 白ライン：青背景に対して最高コントラスト */
  background: #ffffff;
  border-radius: 2px;
  transition: all .25s;
  pointer-events: none;
  flex-shrink: 0;
}
#global-hamburger.open span:nth-child(1) { transform: translateY(7.5px) rotate(45deg); }
#global-hamburger.open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
#global-hamburger.open span:nth-child(3) { transform: translateY(-7.5px) rotate(-45deg); }

/* admin-header 内の旧ハンバーガーボタン（デスクトップ非表示・スマホでも非表示） */
.hamburger-btn {
  display: none !important; /* 常に非表示 — global-hamburger が代替 */
}

/* =====================================================
   オーバーレイ（暗幕）— v6 z-index 整理版
   サイドバー  : 99999
   オーバーレイ: 99998  (サイドバーより1低い)
   ハンバーガー: 100000 (全要素より上)
   ===================================================== */
.sidebar-overlay {
  display: none;
  position: fixed;
  inset: 0;
  background: rgba(0, 0, 0, 0.6);
  z-index: 99998;
  pointer-events: auto;
  -webkit-tap-highlight-color: transparent;
  cursor: pointer;
  touch-action: manipulation;
}
.sidebar-overlay.show { display: block; }

/* ═══════════════════════════════════════
   完全レスポンシブ対応
═══════════════════════════════════════ */

/* ── LP テーブル横スクロール ── */
#lp-content .compare-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
#lp-content .ct { min-width: 560px; }

/* ── 管理画面テーブル横スクロール ── */
.card .data-table, .acc-table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; white-space: nowrap; }
.card .data-table thead, .card .data-table tbody,
.acc-table thead, .acc-table tbody { display: table; width: 100%; }

@media (max-width: 1023px) {
  /* LP ヒーロー: rate-pill スクロール */
  #lp-content .rate-row { flex-wrap: nowrap; overflow-x: auto; justify-content: flex-start; padding-bottom: 8px; scroll-snap-type: x mandatory; }
  #lp-content .rate-pill { flex-shrink: 0; scroll-snap-align: start; }
  #lp-content .formula-bar { font-size: 12px; }

  /* 管理画面 グリッド崩れ防止 */
  .admin-grid-3, .admin-grid-2 { grid-template-columns: 1fr; }
  .kpi-grid { grid-template-columns: repeat(2, 1fr); }
  .acc-kpi-grid { grid-template-columns: repeat(3, 1fr); }
  .acc-stats-grid { grid-template-columns: repeat(2, 1fr); }
  .acc-charts-row { grid-template-columns: 1fr; }
  .bs-grid { grid-template-columns: 1fr; }
}

@media (max-width: 768px) {
  /* ── mode bar ── */
  .mode-label { font-size: 11px; }
  .mode-btn { font-size: 11px; padding: 5px 10px; }

  /* ── LP ── */
  #lp-content .hero { padding-top: calc(5rem + 40px); padding-left: 1rem; padding-right: 1rem; }
  #lp-content .hero h1 { font-size: clamp(22px, 6vw, 36px); }
  #lp-content .hero-sub { font-size: 13px; }
  #lp-content .main { padding: 2rem 1rem 4rem; }
  #lp-content .section-title { font-size: clamp(18px, 4vw, 26px); }
  #lp-content .pricing-grid { grid-template-columns: 1fr; }
  #lp-content .dark-grid { grid-template-columns: 1fr; }
  #lp-content .dark-section { padding: 1.5rem 1rem; }
  #lp-content .cta-btns { flex-direction: column; align-items: center; }
  #lp-content .net-top { grid-template-columns: 1fr 1fr; gap: 8px; }
  #lp-content .tab-toggle { flex-direction: column; width: 100%; }
  #lp-content .tab-toggle button { width: 100%; text-align: center; }
  #lp-content .formula-bar { font-size: 11px; padding: 10px 12px; }
  #lp-content .price-card { padding: 1.5rem; }
  #lp-content .tax-notice { flex-direction: column; gap: 8px; }
  #lp-content .footer { font-size: 11px; padding: 1.5rem 1rem; }

  /* ══════════════════════════════════════
     管理画面: スマホ専用ナビゲーション v6
     
     根本解決策:
     1. ハンバーガーを body 直下 fixed に昇格 → stacking context の干渉ゼロ
     2. admin-header の position/z-index を除去 → stacking context 生成防止
     3. admin-main の overflow を visible のみ → stacking context 生成防止
     4. サイドバー z-index: 99999, オーバーレイ: 99998, ハンバーガー: 100000
  ══════════════════════════════════════ */

  /* ① global-hamburger を表示 */
  #global-hamburger { display: flex; }

  /* ② admin-header 内の旧ハンバーガー領域を詰める */
  .admin-header .hamburger-slot { display: none; }

  /* ③ admin-header: stacking context を完全に生成させない
        position/z-index を両方削除 → global-hamburger が必ず前面に出る */
  .admin-header {
    padding: 0.75rem 1rem 0.75rem 4rem !important;
    /* position: sticky → 削除（stacking context 生成の元凶）*/
    /* z-index → 削除（同上）*/
  }
  .admin-header h1 { font-size: 15px; }
  .admin-header-actions .header-btn:not(.header-btn-primary) { display: none; }

  /* ④ レイアウト: flexを解除してブロック積み重ね */
  .admin-layout {
    display: block !important;
    min-height: 100svh;
    overflow: visible !important;
  }

  /* ⑤ admin-main: overflow を visible に統一 */
  .admin-main {
    margin-left: 0 !important;
    margin-top: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    min-height: 100svh;
    overflow-x: hidden !important;
    overflow-y: visible !important;
    box-sizing: border-box !important;
  }

  /* ⑥ サイドバー: position:fixed + transform でスライド制御
        z-index: 99999 — ハンバーガー(100000)の直下 */
  .admin-sidebar {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    width: 80vw !important;
    max-width: 300px !important;
    z-index: 99999 !important;
    transform: translateX(-110%) !important;
    transition: transform 0.28s cubic-bezier(0.4, 0, 0.2, 1) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch;
    pointer-events: auto !important;
    /* backdrop-filter: 完全禁止 */
  }

  /* ⑦ .open でスライドイン */
  .admin-sidebar.open {
    transform: translateX(0) !important;
    pointer-events: auto !important;
  }

  /* ⑧ オーバーレイ: z-index は CSS グローバルで定義済み (99998) */
  .sidebar-overlay {
    z-index: 99998 !important;
    pointer-events: auto !important;
  }

  /* ⑨ サイドバー内の全要素: pointer-events 明示 */
  .admin-sidebar *,
  .admin-sidebar a,
  .admin-sidebar button,
  .admin-sidebar [onclick] {
    pointer-events: auto !important;
  }

  /* ⑩ サイドバーナビアイテム: タッチ領域 52px 確保 */
  .sidebar-item {
    font-size: 16px !important;
    min-height: 52px !important;
    padding: 0 1.5rem !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    -webkit-tap-highlight-color: rgba(26, 86, 219, 0.2);
    cursor: pointer;
  }
  .sidebar-item .si-icon {
    font-size: 18px !important;
    width: 22px !important;
    flex-shrink: 0 !important;
  }
  .sidebar-section {
    font-size: 11px !important;
    padding: 1rem 1.5rem 0.375rem !important;
    letter-spacing: 1px !important;
  }
  .sidebar-user {
    padding: 1rem 1.25rem !important;
  }
  .user-name { font-size: 14px !important; }
  .btn-back-lp {
    font-size: 14px !important;
    min-height: 48px !important;
    -webkit-tap-highlight-color: rgba(255,255,255,0.1);
    touch-action: manipulation;
  }

  /* ── KPIグリッド：スマホは縦1列に固定 ── */
  .kpi-grid {
    grid-template-columns: 1fr !important;
    gap: 10px;
  }
  .kpi-card {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    padding: 1rem;
  }
  .kpi-value { font-size: 22px; }
  .acc-kpi-grid { grid-template-columns: 1fr 1fr; }
  .acc-stats-grid { grid-template-columns: 1fr 1fr; }
  .acc-charts-row { grid-template-columns: 1fr; }
  .bs-grid { grid-template-columns: 1fr; }

  /* ── admin-grid：スマホは縦1列・幅100%に強制 ── */
  .admin-grid-3,
  .admin-grid-2 {
    grid-template-columns: 1fr !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    gap: 0.75rem !important;
  }

  /* ── テーブル: 横スクロール ── */
  .admin-body {
    padding: 0.75rem !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
  }
  .card { overflow: visible; }
  .card > table, .card .data-table { overflow-x: auto; display: block; max-width: 100%; -webkit-overflow-scrolling: touch; }
  .card > table thead, .card > table tbody,
  .card .data-table thead, .card .data-table tbody { display: table; width: 100%; }
  .data-table { min-width: 500px; }
  .acc-table { min-width: 500px; display: block; overflow-x: auto; }

  /* ── 会計モジュール ── */
  .acc-banner { flex-direction: column; align-items: flex-start; gap: 10px; }
  .acc-banner-right { flex-wrap: wrap; margin-left: 0; }
  .acc-toolbar { flex-wrap: wrap; }
  .acc-toolbar input[type="text"] { max-width: 100%; width: 100%; }
  .acc-modal { width: 100%; }
  .acc-two-col { grid-template-columns: 1fr; }

  /* ── モーダル ── */
  .modal-box { padding: 1.5rem; max-height: 90svh; overflow-y: auto; }

  /* ── ワークフロー ── */
  .workflow-label { width: 56px; font-size: 11px; }

  /* ── AIパネル ── */
  .ai-panel { padding: 1rem; }
  .ai-actions { gap: 6px; }
  .ai-btn { font-size: 11px; padding: 5px 10px; }
  .ai-result { font-size: 12px; }
}

@media (max-width: 480px) {
  .kpi-grid { grid-template-columns: 1fr; }
  .acc-kpi-grid { grid-template-columns: 1fr 1fr; }
  #lp-content .rate-pill { min-width: 130px; }
  #lp-content .hero { padding-top: calc(4rem + 40px); }
  .mode-switcher-inner { gap: 6px; }
  .admin-header h1 { font-size: 14px; }
}

/* ── 元アプリCSS（管理画面・ログイン等） ── */

/* NAV */
.nav { position: fixed; top:0; left:0; right:0; z-index:100; background: rgba(13,27,42,0.95); backdrop-filter: blur(12px); border-bottom: 1px solid rgba(6,182,212,0.2); padding: 0 2rem; height: 64px; display: flex; align-items: center; justify-content: space-between; }
.nav-logo { font-family: Georgia,serif; font-size: 20px; font-weight: 800; color: #fff; letter-spacing: -0.5px; }
.nav-logo span { color: var(--ub-cyan); }
.nav-links { display: flex; gap: 2rem; list-style: none; }
.nav-links a { color: rgba(255,255,255,0.7); text-decoration: none; font-size: 13px; transition: color 0.2s; }
.nav-links a:hover { color: var(--ub-cyan); }
.nav-cta { display: flex; gap: 10px; }
.btn-outline-sm { border: 1px solid rgba(255,255,255,0.3); color: #fff; background: transparent; padding: 8px 18px; border-radius: 6px; font-size: 13px; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.btn-primary-sm { background: var(--ub-blue); color: #fff; border: none; padding: 8px 18px; border-radius: 6px; font-size: 13px; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; font-weight: 500; }

/* HERO */
.hero { min-height: 100vh; padding-top: 64px; background: linear-gradient(135deg, var(--ub-navy) 0%, #0F2B4A 50%, #0a1a2e 100%); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 8rem 2rem 4rem; position: relative; overflow: hidden; }
.hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(ellipse 60% 40% at 50% 60%, rgba(26,86,219,0.15) 0%, transparent 70%); }
.hero-badge { display: inline-flex; align-items: center; gap: 8px; background: rgba(6,182,212,0.1); border: 1px solid rgba(6,182,212,0.3); color: var(--ub-cyan); padding: 6px 16px; border-radius: 100px; font-size: 12px; font-weight: 500; margin-bottom: 2rem; letter-spacing: 0.5px; position: relative; }
.hero h1 { font-family: Georgia,serif; font-size: clamp(36px,6vw,72px); font-weight: 800; color: #fff; line-height: 1.1; max-width: 800px; margin-bottom: 1.5rem; position: relative; }
.hero h1 em { color: var(--ub-cyan); font-style: normal; }
.hero-desc { color: rgba(255,255,255,0.65); font-size: 16px; line-height: 1.8; max-width: 560px; margin-bottom: 2.5rem; position: relative; }
.hero-actions { display: flex; gap: 12px; flex-wrap: wrap; justify-content: center; margin-bottom: 4rem; position: relative; }
.btn-hero { padding: 14px 32px; border-radius: 8px; font-size: 15px; font-weight: 500; cursor: pointer; border: none; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.btn-hero-primary { background: var(--ub-blue); color: #fff; box-shadow: 0 4px 20px rgba(26,86,219,0.4); }
.btn-hero-secondary { background: transparent; color: #fff; border: 1px solid rgba(255,255,255,0.3); }
.hero-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: rgba(255,255,255,0.1); border-radius: 12px; overflow: hidden; max-width: 600px; width: 100%; position: relative; }
.stat-item { background: rgba(13,27,42,0.6); padding: 1.5rem; text-align: center; }
.stat-num { font-family: Georgia,serif; font-size: 32px; font-weight: 800; color: var(--ub-cyan); display: block; }
.stat-lbl { color: rgba(255,255,255,0.5); font-size: 12px; margin-top: 4px; }

/* COMMON */
.section-tag { font-size: 11px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase; color: var(--ub-blue); margin-bottom: 0.75rem; }
.section-title { font-family: Georgia,serif; font-size: clamp(26px,4vw,40px); font-weight: 700; color: var(--ub-navy); margin-bottom: 1rem; line-height: 1.2; }
.section-desc { color: var(--ub-muted); font-size: 15px; line-height: 1.8; max-width: 560px; }

/* FEATURES */
.features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); gap: 1.5rem; margin-top: 3rem; }
.feat-card { background: var(--ub-surface); border: 1px solid var(--ub-border); border-radius: 12px; padding: 1.75rem; transition: all 0.2s; position: relative; overflow: hidden; }
.feat-card::before { content: ''; position: absolute; top:0; left:0; right:0; height: 3px; background: linear-gradient(90deg, var(--ub-blue), var(--ub-cyan)); transform: scaleX(0); transition: transform 0.3s; transform-origin: left; }
.feat-card:hover::before { transform: scaleX(1); }
.feat-card:hover { border-color: rgba(26,86,219,0.3); transform: translateY(-2px); box-shadow: 0 8px 30px rgba(26,86,219,0.1); }
.feat-icon { width: 44px; height: 44px; border-radius: 10px; display: flex; align-items: center; justify-content: center; margin-bottom: 1rem; font-size: 20px; }
.feat-icon.blue { background: rgba(26,86,219,0.1); }
.feat-icon.cyan { background: rgba(6,182,212,0.1); }
.feat-icon.gold { background: rgba(245,158,11,0.1); }
.feat-icon.green { background: rgba(16,185,129,0.1); }
.feat-card h3 { font-size: 16px; font-weight: 700; color: var(--ub-navy); margin-bottom: 0.5rem; }
.feat-card p { font-size: 13px; color: var(--ub-muted); line-height: 1.7; }
.feat-badge { display: inline-block; margin-top: 0.75rem; background: rgba(26,86,219,0.08); color: var(--ub-blue); font-size: 11px; padding: 3px 8px; border-radius: 4px; font-weight: 500; }

/* FLOW */
.flow-wrapper { background: var(--ub-navy); border-radius: 16px; padding: 3rem 2rem; margin-top: 3rem; }
.flow-title { font-family: Georgia,serif; font-size: 20px; font-weight: 700; color: #fff; text-align: center; margin-bottom: 2.5rem; }
.flow-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px,1fr)); gap: 1rem; }
.flow-step { text-align: center; }
.flow-num { width: 44px; height: 44px; border-radius: 50%; background: var(--ub-blue); color: #fff; font-family: Georgia,serif; font-size: 18px; font-weight: 800; display: flex; align-items: center; justify-content: center; margin: 0 auto 0.75rem; }
.flow-step-title { font-size: 13px; font-weight: 700; color: #fff; margin-bottom: 0.25rem; }
.flow-step-desc { font-size: 11px; color: rgba(255,255,255,0.5); line-height: 1.6; }

/* PRICING */
.pricing-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap: 1.5rem; margin-top: 3rem; }
.price-card { background: var(--ub-surface); border: 1px solid var(--ub-border); border-radius: 12px; padding: 2rem; }
.price-card.featured { border: 2px solid var(--ub-blue); position: relative; }
.price-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); background: var(--ub-blue); color: #fff; font-size: 11px; padding: 4px 16px; border-radius: 100px; white-space: nowrap; }
.price-plan { font-size: 12px; font-weight: 700; letter-spacing: 1px; color: var(--ub-blue); margin-bottom: 0.5rem; }
.price-amount { font-family: Georgia,serif; font-size: 36px; font-weight: 800; color: var(--ub-navy); }
.price-unit { font-size: 13px; color: var(--ub-muted); margin-left: 4px; }
.price-sub { font-size: 12px; color: var(--ub-muted); margin-top: 4px; margin-bottom: 1.5rem; }
.price-features { list-style: none; display: flex; flex-direction: column; gap: 0.6rem; }
.price-features li { font-size: 13px; color: var(--ub-muted); display: flex; align-items: center; gap: 8px; }
.price-features li::before { content: '✓'; color: var(--ub-success); font-weight: 700; font-size: 14px; }
.btn-price { width: 100%; margin-top: 1.5rem; padding: 12px; border-radius: 8px; font-size: 14px; font-weight: 500; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.btn-price-outline { background: transparent; border: 1px solid var(--ub-border); color: var(--ub-navy); }
.btn-price-fill { background: var(--ub-blue); border: none; color: #fff; }

/* CTA & FOOTER */
.cta-banner { background: linear-gradient(135deg, var(--ub-navy), #0F2B4A); border-radius: 16px; padding: 4rem 2rem; text-align: center; margin: 0 2rem 5rem; border: 1px solid rgba(6,182,212,0.2); }
.cta-banner h2 { font-family: Georgia,serif; font-size: 32px; font-weight: 800; color: #fff; margin-bottom: 1rem; }
.cta-banner p { color: rgba(255,255,255,0.6); font-size: 15px; margin-bottom: 2rem; }
.footer { background: var(--ub-navy); color: rgba(255,255,255,0.5); padding: 2rem; text-align: center; font-size: 12px; }

/* MODAL */
.modal-overlay { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.6); z-index: 200; align-items: center; justify-content: center; }
.modal-overlay.show { display: flex; } /* 後方互換 */
.modal-overlay.open { display: flex; }
.modal-box { background: var(--ub-surface); border-radius: 16px; padding: 2.5rem; width: 90%; max-width: 400px; position: relative; }
.modal-close { position: absolute; top: 1rem; right: 1rem; background: none; border: none; cursor: pointer; font-size: 20px; color: var(--ub-muted); }
.modal-logo { font-family: Georgia,serif; font-size: 20px; font-weight: 800; color: var(--ub-navy); margin-bottom: 0.25rem; }
.modal-logo span { color: var(--ub-blue); }
.modal-sub { font-size: 13px; color: var(--ub-muted); margin-bottom: 2rem; }
.form-group { margin-bottom: 1rem; }
.form-group label { display: block; font-size: 12px; font-weight: 500; color: var(--ub-navy); margin-bottom: 6px; }
.form-input { width: 100%; padding: 10px 14px; border: 1px solid var(--ub-border); border-radius: 8px; font-size: 14px; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; outline: none; }
.form-input:focus { border-color: var(--ub-blue); }
.btn-login { width: 100%; padding: 12px; background: var(--ub-blue); color: #fff; border: none; border-radius: 8px; font-size: 15px; font-weight: 500; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; margin-top: 0.5rem; }
.login-hint { text-align: center; font-size: 12px; color: var(--ub-muted); margin-top: 1rem; }
.login-hint a { color: var(--ub-blue); cursor: pointer; }

/* STATE SWITCHES */
.admin-panel { display: none; }
.admin-panel.show { display: block; }
.lp-content.hide { display: none; }

/* DEMO MODE NOTICES */
.demo-global-banner {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100001;
  background: #FFE8C2;
  color: #7A2E0A;
  border-bottom: 1px solid #E8B06A;
  text-align: center;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.2px;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 9px 12px;
}
body.admin-mode .demo-global-banner { display: block; }
body.admin-mode .nav { top: 36px; }
body.admin-mode .admin-topbar { top: 36px; }
body.admin-mode .admin-sidebar { top: 84px; }
body.admin-mode .admin-main { margin-top: 84px; min-height: calc(100vh - 84px); }
body.admin-mode #global-hamburger { top: 48px; }
.sidebar-demo-badge {
  margin-top: 10px;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(255,255,255,0.24);
  border-radius: 999px;
  color: rgba(255,255,255,0.92);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.4px;
  padding: 5px 10px;
  background: rgba(255,255,255,0.08);
}
.footer-demo-badge {
  margin-top: 0.7rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  border: 1px solid rgba(255,255,255,0.28);
  border-radius: 999px;
  color: rgba(255,255,255,0.92);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.3px;
  padding: 6px 12px;
}
.demo-toast-root {
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 100002;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}
.demo-toast {
  min-width: 300px;
  max-width: min(92vw, 460px);
  border-radius: 10px;
  border: 1px solid;
  box-shadow: 0 8px 24px rgba(13,27,42,0.18);
  padding: 11px 12px;
  font-size: 12px;
  font-weight: 700;
  line-height: 1.45;
  transform: translateY(8px);
  opacity: 0;
  transition: transform 0.2s ease, opacity 0.2s ease;
}
.demo-toast.show {
  transform: translateY(0);
  opacity: 1;
}
.demo-toast.hide {
  transform: translateY(6px);
  opacity: 0;
}
.demo-toast-add {
  background: #E6F6EC;
  border-color: #A8D8B9;
  color: #134E2A;
}
.demo-toast-delete {
  background: #FFF0EC;
  border-color: #EDB7AA;
  color: #7A2E0A;
}

/* ADMIN */
/* overflow:hidden は stacking context を生成するため、
   スマホ用ドロワーの z-index が効かなくなる原因になる。
   スマホ時は media query 内で display:block + overflow:visible に上書き。
   ★重要: transform/filter/will-change も stacking context を生成するので使用禁止 */
.admin-layout { display: flex; min-height: 100vh; overflow: hidden; }
.admin-sidebar { width: 240px; background: var(--ub-navy); display: flex; flex-direction: column; position: fixed; top:48px; left:0; bottom:0; z-index: 50; overflow-y: auto; }
.sidebar-logo { padding: 1.5rem 1.5rem 1.5rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.sidebar-nav { flex: 1; padding: 1rem 0; overflow-y: auto; }
.sidebar-section { padding: 1rem 1.5rem 0.25rem; font-size: 10px; font-weight: 700; letter-spacing: 1.5px; color: rgba(255,255,255,0.3); text-transform: uppercase; }
.sidebar-item { display: flex; align-items: center; gap: 10px; padding: 10px 1.5rem; font-size: 13px; color: rgba(255,255,255,0.6); cursor: pointer; border-left: 3px solid transparent; transition: all 0.15s; }
.sidebar-item:hover { color: #fff; background: rgba(255,255,255,0.05); }
.sidebar-item.active { color: #fff; background: rgba(26,86,219,0.2); border-left-color: var(--ub-blue); }
.sidebar-item .si-icon { font-size: 15px; width: 18px; text-align: center; }
.sidebar-badge { margin-left: auto; background: var(--ub-blue); color: #fff; font-size: 10px; padding: 2px 7px; border-radius: 100px; }
.sidebar-user { padding: 1rem 1.5rem; border-top: 1px solid rgba(255,255,255,0.1); }
.user-avatar { width: 36px; height: 36px; border-radius: 50%; background: var(--ub-blue); display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; color: #fff; }
.user-name { font-size: 12px; font-weight: 500; color: #fff; }
.user-role { font-size: 10px; color: rgba(255,255,255,0.4); }
.btn-back-lp { background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.2); color: rgba(255,255,255,0.7); padding: 8px 16px; border-radius: 6px; font-size: 12px; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; width: 100%; margin-top: 10px; }

.admin-main { margin-left: 240px; margin-top: 48px; flex: 1; background: #F5F7FA; min-height: calc(100vh - 48px); overflow: visible; }
/* ★ overflow-y は設定しない — auto/scroll/hidden はすべて stacking context を生成し
      サイドバーのz-indexを無効化する。スクロールはbodyに委ねる。 */
.admin-header { background: var(--ub-surface); border-bottom: 1px solid var(--ub-border); padding: 1rem 2rem; display: flex; align-items: center; justify-content: space-between; }
/* ★ position:sticky + z-index は stacking context を生成し
      global-hamburger(z-index:100000)を背後に押し込む原因になるため完全削除 */
/* ★ z-index:100 = サイドバー(999999)より十分低い。header自体はスタッキングコンテキストを
      生成しないようにtransform/filter/backdropは使用しない */
.admin-header h1 { font-family: Georgia,serif; font-size: 18px; font-weight: 700; color: var(--ub-navy); }
.admin-header-actions { display: flex; align-items: center; gap: 12px; }
.header-btn { background: transparent; border: 1px solid var(--ub-border); color: var(--ub-muted); padding: 8px 16px; border-radius: 8px; font-size: 13px; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; display: flex; align-items: center; gap: 6px; }
.header-btn-primary { background: var(--ub-blue); border-color: var(--ub-blue); color: #fff; }
.admin-body { padding: 2rem; }
/* ★ カードはみ出し対策：admin-bodyで横幅を完全に封じ込める */
.admin-body { max-width: 100%; overflow-x: hidden; box-sizing: border-box; }

/* KPI */
.kpi-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(0,1fr)); gap: 1rem; margin-bottom: 2rem; }
.kpi-card { background: var(--ub-surface); border: 1px solid var(--ub-border); border-radius: 10px; padding: 1.25rem 1.5rem; }
.kpi-label { font-size: 12px; color: var(--ub-muted); margin-bottom: 0.25rem; }
.kpi-value { font-family: Georgia,serif; font-size: 28px; font-weight: 800; color: var(--ub-navy); }
.kpi-change { font-size: 12px; margin-top: 4px; }
.kpi-change.up { color: var(--ub-success); }

.admin-grid-3 { display: grid; grid-template-columns: 2fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; width: 100%; box-sizing: border-box; }
.admin-grid-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-bottom: 1.5rem; width: 100%; box-sizing: border-box; }
.card { background: var(--ub-surface); border: 1px solid var(--ub-border); border-radius: 10px; padding: 1.5rem; width: 100%; box-sizing: border-box; }
.card-title { font-size: 14px; font-weight: 700; color: var(--ub-navy); margin-bottom: 1rem; display: flex; align-items: center; justify-content: space-between; }
.card-title-action { font-size: 12px; font-weight: 400; color: var(--ub-blue); cursor: pointer; }

/* TABLE */
.data-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.data-table th { text-align: left; padding: 8px 12px; font-size: 11px; font-weight: 700; color: var(--ub-muted); border-bottom: 1px solid var(--ub-border); text-transform: uppercase; letter-spacing: 0.5px; }
.data-table td { padding: 12px; border-bottom: 1px solid rgba(26,86,219,0.06); color: var(--ub-navy); vertical-align: middle; }
.data-table tr:last-child td { border-bottom: none; }
.data-table tr:hover td { background: rgba(26,86,219,0.02); }

/* BADGES */
.badge { display: inline-flex; align-items: center; gap: 4px; padding: 3px 10px; border-radius: 100px; font-size: 11px; font-weight: 500; }
.badge-success { background: rgba(16,185,129,0.1); color: #065F46; }
.badge-warning { background: rgba(245,158,11,0.1); color: #92400E; }
.badge-info { background: rgba(26,86,219,0.1); color: #1A56DB; }
.badge-neutral { background: rgba(100,116,139,0.1); color: #475569; }
.badge-danger { background: rgba(239,68,68,0.1); color: #991B1B; }
.badge-secondary { background: rgba(100,116,139,0.1); color: #475569; }

/* BAR */
.workflow-bar { display: flex; align-items: center; gap: 12px; margin-bottom: 0.75rem; }
.workflow-label { font-size: 12px; color: var(--ub-muted); width: 80px; flex-shrink: 0; }
.workflow-track { flex: 1; background: var(--ub-light); border-radius: 4px; height: 8px; overflow: hidden; }
.workflow-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--ub-blue), var(--ub-cyan)); }
.workflow-count { font-size: 12px; font-weight: 700; color: var(--ub-navy); width: 32px; text-align: right; }

/* 在庫サブタブ */
.stock-sub-btn { padding: 8px 16px; border: none; background: transparent; color: var(--ub-muted); cursor: pointer; border-bottom: 3px solid transparent; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; font-size: 12px; font-weight: 600; margin-bottom: -2px; transition: color .15s; white-space: nowrap; }
.stock-sub-btn:hover { color: var(--ub-navy); }
.stock-sub-btn.active { color: var(--ub-blue); border-bottom-color: var(--ub-blue); }

/* AI */
.ai-panel { background: linear-gradient(135deg, #0D1B2A, #0F2B4A); border-radius: 12px; padding: 1.5rem; color: #fff; }
.ai-panel-title { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 1rem; }
.ai-input-area { background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.15); border-radius: 8px; padding: 1rem; font-size: 13px; color: rgba(255,255,255,0.8); min-height: 80px; width: 100%; resize: none; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.ai-actions { display: flex; gap: 8px; margin-top: 0.75rem; flex-wrap: wrap; }
.ai-btn { background: rgba(26,86,219,0.4); border: 1px solid rgba(26,86,219,0.5); color: #fff; padding: 6px 14px; border-radius: 6px; font-size: 12px; cursor: pointer; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.ai-btn:hover { background: rgba(26,86,219,0.6); }
.ai-result { margin-top: 1rem; background: rgba(6,182,212,0.1); border: 1px solid rgba(6,182,212,0.2); border-radius: 8px; padding: 0.75rem; font-size: 12px; color: rgba(255,255,255,0.8); line-height: 1.8; display: none; white-space: pre-wrap; }

/* SIGN */
.sig-card { background: linear-gradient(135deg, #EFF6FF, #DBEAFE); border: 1px solid rgba(26,86,219,0.2); border-radius: 12px; padding: 1.5rem; }
.sig-title { font-size: 14px; font-weight: 700; color: var(--ub-navy); margin-bottom: 1rem; }
.sig-step { display: flex; align-items: center; gap: 12px; padding: 10px 0; border-bottom: 1px solid rgba(26,86,219,0.1); }
.sig-step:last-child { border-bottom: none; }
.sig-step-num { width: 28px; height: 28px; border-radius: 50%; background: var(--ub-blue); color: #fff; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sig-step-info { flex: 1; }
.sig-step-name { font-size: 13px; font-weight: 500; color: var(--ub-navy); }
.sig-step-sub { font-size: 11px; color: var(--ub-muted); }

/* TABS */
.tab-bar { display: flex; border-bottom: 1px solid var(--ub-border); margin-bottom: 1.5rem; }
.tab-btn { padding: 10px 20px; font-size: 13px; font-family: 'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; background: transparent; border: none; cursor: pointer; color: var(--ub-muted); border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tab-btn.active { color: var(--ub-blue); border-bottom-color: var(--ub-blue); font-weight: 500; }

/* ══ 会計モジュール ══════════════════════════════════════ */
.acc-banner { background: linear-gradient(135deg, #0284c7 0%, #0ea5e9 55%, #38bdf8 100%); border-radius: 12px; padding: 1.25rem 1.5rem; display: flex; align-items: center; gap: 14px; margin-bottom: 1.25rem; position: relative; overflow: hidden; }
.acc-banner::after { content:''; position:absolute; right:-20px; top:-20px; width:120px; height:120px; background:rgba(255,255,255,0.07); border-radius:50%; pointer-events:none; }
.acc-banner-icon { width:44px; height:44px; background:rgba(255,255,255,0.2); border-radius:10px; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.acc-banner-icon svg { width:24px; height:24px; stroke:#fff; fill:none; stroke-width:2; }
.acc-banner-title { font-family:Georgia,serif; font-size:20px; font-weight:800; color:#fff; }
.acc-banner-sub { font-size:12px; color:rgba(255,255,255,0.75); margin-top:2px; }
.acc-banner-right { margin-left:auto; display:flex; gap:8px; flex-wrap:wrap; }
.period-pill { background:rgba(255,255,255,0.2); color:#fff; border-radius:6px; padding:4px 12px; font-size:12px; font-weight:500; }

.acc-kpi-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; margin-bottom:1.25rem; }
.acc-kpi { background:var(--ub-surface); border:1px solid var(--ub-border); border-radius:10px; padding:1rem 1.25rem; }
.acc-kpi-label { font-size:11px; color:var(--ub-muted); margin-bottom:6px; font-weight:500; text-transform:uppercase; letter-spacing:.4px; }
.acc-kpi-val { font-family:Georgia,serif; font-size:20px; font-weight:800; color:var(--ub-navy); }
.acc-kpi-val.danger { color:var(--ub-danger); }

.acc-tabs { display:flex; border-bottom:2px solid var(--ub-border); margin-bottom:1.25rem; overflow-x:auto; gap:0; }
.acc-tab { padding:9px 18px; font-size:13px; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; background:transparent; border:none; cursor:pointer; color:var(--ub-muted); border-bottom:2px solid transparent; margin-bottom:-2px; white-space:nowrap; font-weight:500; transition:color .15s; flex-shrink:0; }
.acc-tab:hover { color:var(--ub-navy); }
.acc-tab.active { color:var(--ub-blue); border-bottom-color:var(--ub-blue); }
.acc-panel { display:none; }
.acc-panel.active { display:block; }

.acc-toolbar { display:flex; gap:8px; margin-bottom:1rem; align-items:center; flex-wrap:wrap; }
.acc-toolbar select, .acc-toolbar input[type="text"], .acc-toolbar input[type="date"] { padding:7px 10px; border:1px solid var(--ub-border); border-radius:8px; font-size:13px; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; background:var(--ub-surface); color:var(--ub-navy); outline:none; }
.acc-toolbar input[type="text"] { flex:1; max-width:200px; }
.acc-toolbar select:focus, .acc-toolbar input:focus { border-color:var(--ub-blue); }
.acc-ml-auto { margin-left:auto; }

.acc-charts-row { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:12px; }
.acc-stats-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.acc-stat { background:var(--ub-surface); border:1px solid var(--ub-border); border-radius:10px; padding:1rem 1.25rem; }
.acc-stat-label { font-size:11px; color:var(--ub-muted); font-weight:500; text-transform:uppercase; letter-spacing:.4px; margin-bottom:6px; }
.acc-stat-val { font-family:Georgia,serif; font-size:26px; font-weight:800; color:var(--ub-navy); }
.acc-stat-sub { font-size:11px; color:var(--ub-muted); margin-top:4px; }

.acc-table { width:100%; border-collapse:collapse; font-size:13px; }
.acc-table th { text-align:left; padding:9px 12px; font-size:11px; font-weight:700; color:var(--ub-muted); border-bottom:1px solid var(--ub-border); text-transform:uppercase; letter-spacing:.4px; background:rgba(240,244,255,0.5); }
.acc-table td { padding:10px 12px; border-bottom:1px solid rgba(26,86,219,0.06); color:var(--ub-navy); vertical-align:middle; }
.acc-table tr:last-child td { border-bottom:none; }
.acc-table tr:hover td { background:rgba(26,86,219,0.02); }
.acc-table tfoot td { font-weight:700; background:rgba(240,244,255,0.7); border-top:2px solid var(--ub-border); border-bottom:none; }
.acc-table .mono { font-family:'JetBrains Mono','Fira Code',monospace; font-size:12px; }
.acc-table .tr { text-align:right; }
.acc-table .tc { text-align:center; }
.acc-debit { color:#2563eb; font-weight:500; }
.acc-credit { color:#16a34a; font-weight:500; }
.acc-muted { color:var(--ub-muted); font-size:12px; }

.fin-section-head { font-size:13px; font-weight:700; padding:7px 12px; background:rgba(26,86,219,0.05); border-radius:8px; border-left:3px solid var(--ub-blue); margin-bottom:8px; color:var(--ub-navy); }
.fin-row { display:flex; justify-content:space-between; padding:5px 12px; font-size:13px; border-bottom:1px dashed rgba(26,86,219,0.08); }
.fin-row:last-child { border-bottom:none; }
.fin-subtotal { font-weight:700; background:rgba(26,86,219,0.04); border-radius:6px; border:1px solid var(--ub-border); padding:6px 12px; margin-top:4px; }
.fin-total { display:flex; justify-content:space-between; padding:14px 16px; background:linear-gradient(135deg,#eff6ff,#dbeafe); border:2px solid #bfdbfe; border-radius:10px; font-size:16px; font-weight:700; color:#1e40af; margin-top:1rem; }
.fin-profit { background:linear-gradient(135deg,#f0fdf4,#dcfce7); border-color:#bbf7d0; color:#15803d; }
.fin-loss   { background:linear-gradient(135deg,#fef2f2,#fee2e2); border-color:#fecaca; color:#b91c1c; }
.bs-grid { display:grid; grid-template-columns:1fr 1fr; gap:2rem; }

.acc-badge { display:inline-flex; align-items:center; padding:2px 9px; border-radius:100px; font-size:11px; font-weight:600; }
.acc-badge-success { background:rgba(16,185,129,0.1); color:#065F46; }
.acc-badge-warn    { background:rgba(245,158,11,0.1); color:#92400E; }
.acc-badge-info    { background:rgba(26,86,219,0.1); color:#1A56DB; }
.acc-badge-danger  { background:rgba(239,68,68,0.1); color:#991B1B; }

/* 会計モーダル */
.acc-modal-bg { display:none; position:fixed; inset:0; background:rgba(0,0,0,0.55); z-index:300; align-items:center; justify-content:center; }
.acc-modal-bg.open { display:flex; }
.acc-modal { background:var(--ub-surface); border-radius:16px; padding:2rem; width:500px; max-width:95vw; max-height:85vh; overflow-y:auto; box-shadow:0 24px 60px rgba(0,0,0,0.2); }
.acc-modal h3 { font-family:Georgia,serif; font-size:18px; font-weight:800; color:var(--ub-navy); margin-bottom:1.5rem; }
.acc-form-row { margin-bottom:14px; }
.acc-form-row label { display:block; font-size:12px; font-weight:600; color:var(--ub-muted); margin-bottom:5px; text-transform:uppercase; letter-spacing:.3px; }
.acc-form-row input, .acc-form-row select, .acc-form-row textarea { width:100%; padding:9px 12px; border:1px solid var(--ub-border); border-radius:8px; font-size:13px; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; background:var(--ub-surface); color:var(--ub-navy); outline:none; transition:border-color .15s; }
.acc-form-row input:focus, .acc-form-row select:focus { border-color:var(--ub-blue); box-shadow:0 0 0 3px rgba(26,86,219,0.1); }
.acc-two-col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.acc-modal-footer { display:flex; gap:8px; justify-content:flex-end; margin-top:1.5rem; padding-top:1rem; border-top:1px solid var(--ub-border); }
.btn-acc-ghost { background:transparent; border:1px solid var(--ub-border); color:var(--ub-muted); padding:8px 18px; border-radius:8px; font-size:13px; cursor:pointer; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.btn-acc-primary { background:var(--ub-blue); border:none; color:#fff; padding:8px 18px; border-radius:8px; font-size:13px; cursor:pointer; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; font-weight:600; }
.btn-acc-primary:hover { background:#1347c5; }
.btn-acc-danger { background:none; border:none; cursor:pointer; color:var(--ub-danger); font-size:12px; font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; padding:2px 6px; }
.btn-acc-danger:hover { text-decoration:underline; }
.btn-acc-export { display:inline-flex; align-items:center; gap:6px; padding:8px 16px; border-radius:8px; font-size:13px; cursor:pointer; background:transparent; border:1px solid var(--ub-border); color:var(--ub-muted); font-family:'Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif; }
.btn-acc-export:hover { background:rgba(26,86,219,0.04); color:var(--ub-navy); }
.acc-empty { text-align:center; padding:3rem; color:var(--ub-muted); font-size:13px; }
.acc-legend { display:flex; gap:16px; margin-top:12px; font-size:12px; color:var(--ub-muted); }
.acc-legend span { display:flex; align-items:center; gap:5px; }
.acc-legend-dot { width:10px; height:10px; border-radius:2px; display:inline-block; }
code { font-family:'JetBrains Mono','Fira Code',monospace; font-size:11px; background:rgba(26,86,219,0.06); padding:1px 6px; border-radius:4px; }

/* ── 仕訳自動生成トースト（共P-04審査対応：受注→仕訳連動の視覚化）── */
#journal-toast-root {
  position: fixed;
  top: 80px;
  right: 20px;
  z-index: 9999;
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
  max-width: 360px;
}
.jt {
  width: 360px;
  max-width: min(92vw, 360px);
  border-radius: 8px;
  padding: 12px 16px;
  font-size: 13px;
  font-weight: 500;
  line-height: 1.6;
  opacity: 0;
  transform: translateX(16px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.jt.show { opacity: 1; transform: translateX(0); }
.jt.hide { opacity: 0; transform: translateX(16px); }
.jt-green { background: #d1fae5; border-left: 4px solid #10b981; color: #065f46; }
.jt-blue  { background: #dbeafe; border-left: 4px solid #3b82f6; color: #1e40af; }

/* ── 管理画面 固定トップバー（IT補助金審査対応：ツール名常時表示）── */
.admin-topbar {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  height: 48px;
  z-index: 49;
  background: var(--ub-navy);
  border-bottom: 1px solid rgba(255,255,255,0.12);
  align-items: center;
  padding: 0 1.5rem 0 1.5rem;
  gap: 0;
}
.admin-panel.show .admin-topbar { display: flex; }
.atb-logo {
  font-family: Georgia, serif;
  font-size: 16px;
  font-weight: 800;
  color: #fff;
  white-space: nowrap;
  letter-spacing: -0.3px;
}
.atb-logo span { color: var(--ub-cyan); }
.atb-sub {
  font-size: 11px;
  color: rgba(255,255,255,0.38);
  font-weight: 400;
  margin-left: 10px;
  padding-left: 10px;
  border-left: 1px solid rgba(255,255,255,0.15);
  white-space: nowrap;
}
.atb-breadcrumb {
  margin-left: auto;
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 12px;
  color: rgba(255,255,255,0.38);
}
.atb-breadcrumb .atb-sep { font-size: 11px; }
.atb-breadcrumb .atb-page {
  color: rgba(255,255,255,0.88);
  font-weight: 600;
}
@media (max-width: 768px) {
  .admin-panel.show .admin-topbar { display: none !important; }
}

/* AI チャットバブル */
.ai-chat { display:flex; flex-direction:column; gap:10px; }
.ai-bubble { max-width:88%; padding:10px 14px; border-radius:12px; font-size:12px; line-height:1.75; white-space:pre-wrap; word-break:break-word; }
.ai-bubble-user { background:rgba(26,86,219,0.35); border:1px solid rgba(26,86,219,0.45); align-self:flex-end; color:rgba(255,255,255,0.92); border-bottom-right-radius:3px; }
.ai-bubble-bot  { background:rgba(6,182,212,0.12); border:1px solid rgba(6,182,212,0.25); align-self:flex-start; color:rgba(255,255,255,0.87); border-bottom-left-radius:3px; }
.ai-bubble-loading { opacity:0.65; font-style:italic; }
.ai-copy-btn { margin-top:6px; font-size:11px; background:rgba(6,182,212,0.18); border:1px solid rgba(6,182,212,0.3); color:rgba(255,255,255,0.7); padding:4px 10px; border-radius:5px; cursor:pointer; }
.ai-copy-btn:hover { background:rgba(6,182,212,0.32); }
.ai-btn:disabled { opacity:0.45; cursor:not-allowed; }



/* ── モーダル共通 ── */
.modal-overlay {
  display:none; position:fixed; inset:0; background:rgba(0,0,0,0.55);
  z-index:1000; align-items:center; justify-content:center; padding:1rem;
}
.modal-overlay.open { display:flex; }
.modal-box {
  background:#fff; border-radius:16px; padding:2.5rem; width:100%;
  max-width:420px; position:relative; box-shadow:0 20px 60px rgba(0,0,0,0.2);
  animation: modalIn .2s ease;
}
@keyframes modalIn {
  from { opacity:0; transform:translateY(16px) scale(0.97); }
  to   { opacity:1; transform:translateY(0)    scale(1); }
}
.modal-close {
  position:absolute; top:1rem; right:1rem; background:none; border:none;
  font-size:22px; cursor:pointer; color:var(--ub-muted); line-height:1;
}
.modal-close:hover { color:var(--ub-navy); }
.modal-logo { font-family:Georgia,serif; font-size:19px; font-weight:800; color:var(--ub-navy); margin-bottom:.25rem; }
.modal-logo span { color:var(--ub-blue); }
.modal-sub { font-size:13px; color:var(--ub-muted); margin-bottom:1.75rem; }
.modal-badge { display:inline-block; background:rgba(234,88,12,.1); color:var(--inv); font-size:11px; font-weight:700; padding:3px 10px; border-radius:100px; margin-bottom:1rem; }
.form-group { margin-bottom:1rem; }
.form-group label { display:block; font-size:12px; font-weight:600; color:var(--ub-navy); margin-bottom:5px; }
.form-input {
  width:100%; padding:10px 14px; border:1px solid var(--ub-border);
  border-radius:8px; font-size:14px; font-family:inherit; outline:none;
  transition:border-color .2s;
}
.form-input:focus { border-color:var(--ub-blue); }
.form-select {
  width:100%; padding:10px 14px; border:1px solid var(--ub-border);
  border-radius:8px; font-size:14px; font-family:inherit; outline:none;
  background:#fff; cursor:pointer;
}
.form-select:focus { border-color:var(--ub-blue); }
.btn-modal-submit {
  width:100%; padding:13px; background:var(--ub-blue); color:#fff; border:none;
  border-radius:9px; font-size:15px; font-weight:600; cursor:pointer;
  font-family:inherit; margin-top:.5rem; transition:background .2s;
}
.btn-modal-submit:hover { background:#1347c8; }
.btn-modal-submit.orange { background:var(--inv); }
.btn-modal-submit.orange:hover { background:#c2410c; }
.modal-thanks { text-align:center; padding:1rem 0; }
.modal-thanks .ty-icon { font-size:48px; margin-bottom:1rem; }
.modal-thanks h3 { font-family:Georgia,serif; font-size:20px; font-weight:800; color:var(--ub-navy); margin-bottom:.5rem; }
.modal-thanks p { font-size:13px; color:var(--ub-muted); line-height:1.7; }

/* ===== v6 mobile hard-fix (final override) ===== */
@media (max-width: 768px) {
  body.admin-mode .demo-global-banner { display: none; }
  body.admin-mode .nav { top: 0; }
  body.admin-mode .admin-sidebar { top: 0; }
  body.admin-mode .admin-main { margin-top: 0; min-height: 100vh; }

  /* LP TOPの補助率カード列を最後まで横スクロール可能にする */
  #lp-content .hero {
    overflow: visible !important;
  }
  #lp-content .rate-row {
    width: 100% !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    -webkit-overflow-scrolling: touch !important;
    justify-content: flex-start !important;
    flex-wrap: nowrap !important;
    gap: 10px !important;
    padding: 0 12px 10px 0 !important;
    margin: 0 -12px 2rem 0 !important;
    scroll-snap-type: x proximity !important;
    scroll-padding-left: 0 !important;
    scroll-padding-right: 12px !important;
  }
  #lp-content .rate-row::after {
    content: '';
    flex: 0 0 12px;
  }
  #lp-content .rate-pill {
    flex: 0 0 auto !important;
    min-width: 148px !important;
    scroll-snap-align: start !important;
  }

  /* ハンバーガーを最前面で強制表示（青背景 + 白3本線） */
  #global-hamburger,
  .global-hamburger {
    display: none !important;
    position: fixed !important;
    top: 8px !important;
    left: 8px !important;
    z-index: 2147483647 !important;
    width: 46px !important;
    height: 46px !important;
    padding: 0 !important;
    border: 2px solid #ffffff !important;
    border-radius: 10px !important;
    background: #1A56DB !important;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.35) !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 6px !important;
    opacity: 1 !important;
    visibility: visible !important;
  }
  body.admin-mode #global-hamburger,
  body.admin-mode .global-hamburger {
    display: flex !important;
  }
  #global-hamburger span,
  .global-hamburger span {
    display: block !important;
    width: 20px !important;
    height: 3px !important;
    background: #ffffff !important;
    border-radius: 2px !important;
  }

  /* KPI/財務カードを強制的に縦1列へリセット */
  .kpi-grid,
  .admin-grid-2,
  .admin-grid-3,
  .acc-kpi-grid,
  .acc-stats-grid,
  .acc-charts-row,
  .bs-grid {
    display: flex !important;
    flex-direction: column !important;
    grid-template-columns: none !important;
    gap: 10px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
  .kpi-grid > *,
  .admin-grid-2 > *,
  .admin-grid-3 > *,
  .acc-kpi-grid > *,
  .acc-stats-grid > *,
  .acc-charts-row > *,
  .bs-grid > * {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }
}

/* The application root opens directly on the sign-in page. */
body.login-entry #lp-content > :not(#login-modal) { display: none !important; }
body.login-entry:not(.admin-mode) > .demo-global-banner { display: none !important; }
body.login-entry #login-modal { background: #eef2f7; padding: 24px; overflow-y: auto; }
body.login-entry #login-modal .modal-box { width: 100%; max-width: 420px; }
