:root{
  /* ピュアグロース デザインコード v1.2（2026-07-04）準拠
     白 × 濃紺 #123770 ／ アクセント ターコイズ #00b6c9 ／ 警告のみ オレンジ #fa7748
     金・ピンク・紫は基調色にしない（既存トークン名は保持し値のみPGパレットへ再マップ） */
  --pg-navy:#123770;      /* ベース濃紺 */
  --pg-navy-deep:#0d2a54; /* 深い紺（ヒーロー下層・サイドバー） */
  --pg-turquoise:#00b6c9; /* アクセント */
  --pg-orange:#fa7748;    /* 注意・警告のみ */
  --pg-gray:#d8d8d8;      /* 区切り線・薄い背景 */

  --bg-base:#F5F7FA;      /* 白基調（暖色ベージュ→クールな極薄グレーへ） */
  --bg-card:#FFFFFF;
  --bg-sidebar:#0d2a54;       /* 濃紺（PG navy-deep） */
  --bg-sidebar-hover:#123770;

  --navy:#123770;--navy-d:#0d2a54;--navy-light:#2E5AA0;--navy-bg:#E6F5F8;
  --blue:#123770;--blue-l:#2E5AA0;--blue-bg:#E6F5F8;

  /* アクセント（ターコイズ）。旧 teal/rose/gold/amber はすべてターコイズへ寄せる */
  --turquoise:#00b6c9;--turquoise-d:#0093a3;--turquoise-bg:#E1F6F9;

  --green:#2D9E5F;--green-d:#1F7A47;--green-bg:#E6F5EC;
  --orange:#fa7748;--orange-d:#d85f2f;--orange-bg:#FEEDE4;
  --amber:#00b6c9;--amber-bg:#E1F6F9;
  --red:#C0392B;--red-d:#9E2D21;--red-bg:#FBEAE7;
  --purple:#2E5AA0;--purple-d:#123770;--purple-bg:#E6F5F8;
  --teal:#00b6c9;--teal-d:#0093a3;--teal-bg:#E1F6F9;
  --rose:#00b6c9;--rose-d:#0093a3;--rose-bg:#E1F6F9;
  --gold:#00b6c9;

  --ink-primary:#0F1729;--ink-secondary:#4B5468;--ink-tertiary:#8A92A6;--ink-quaternary:#C5CAD6;

  --gray-50:#F5F7FA;--gray-100:#EEF1F5;--gray-200:#E2E7EE;
  --gray-300:#C5CAD6;--gray-400:#8A92A6;--gray-600:#4B5468;--gray-800:#0F1729;

  --border-line:#E2E7EE;--border-subtle:#EEF1F5;

  --shadow:0 1px 2px rgba(15,23,41,0.04);--shadow-lg:0 12px 32px -8px rgba(15,23,41,0.12),0 0 0 1px rgba(15,23,41,0.06);
  --r:12px;

  --font-display:'Outfit','Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic UI','Yu Gothic','Meiryo',system-ui,-apple-system,sans-serif;
  --font-numeric:'Manrope','Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic UI','Yu Gothic','Meiryo',system-ui,-apple-system,sans-serif;
  --font-jp:'Noto Sans JP','Hiragino Kaku Gothic ProN','Hiragino Sans','Yu Gothic UI','Yu Gothic','Meiryo',system-ui,-apple-system,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html,body{height:100%;}
body{font-family:var(--font-jp);background:var(--bg-base);color:var(--ink-primary);font-size:13px;line-height:1.6;overflow:hidden;-webkit-font-smoothing:antialiased;}
.grid-bg{position:fixed;inset:0;pointer-events:none;background-image:linear-gradient(to right,rgba(15,23,41,0.025) 1px,transparent 1px),linear-gradient(to bottom,rgba(15,23,41,0.025) 1px,transparent 1px);background-size:32px 32px;z-index:0;}
button{font-family:inherit;cursor:pointer;border:none;background:none;}
input,select,textarea{font-family:inherit;font-size:13px;}
a{text-decoration:none;color:inherit;cursor:pointer;}

/* ============ LAYOUT ============ */
/* 画面全体シェル：上部バー（横幅いっぱい）＋ その下に #app(サイドバー+本文) */
#app-shell{display:flex;flex-direction:column;height:100vh;width:100vw;overflow:hidden;}
#app{display:flex;flex:1;min-height:0;overflow:hidden;}

/* ============ TOP BAR (ANDPAD風レイアウト) ============ */
/* ※ 既存の .topbar / .topbar-burger（clients/show 等で使用・白/64px）と衝突しないよう別名 */
.app-topbar{height:56px;flex-shrink:0;background:var(--bg-sidebar);display:flex;align-items:center;gap:14px;
  padding:0 16px;color:#fff;position:relative;z-index:200;box-shadow:0 1px 0 rgba(255,255,255,.06);}
.at-burger{width:34px;height:34px;flex-shrink:0;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:8px;cursor:pointer;
  padding:0;transition:background .14s,border-color .14s;}
.at-burger:hover{background:rgba(255,255,255,.16);}
.at-logo{display:flex;flex-direction:column;justify-content:center;text-decoration:none;line-height:1;flex-shrink:0;}
.at-logo b{font-family:var(--font-display);font-size:17px;font-weight:800;letter-spacing:.1em;color:#fff;}
.at-logo b span{color:var(--rose);}
.at-logo small{font-family:var(--font-display);font-size:9px;color:rgba(255,255,255,.45);
  letter-spacing:.24em;text-transform:uppercase;margin-top:3px;}
.at-spacer{flex:1;}
/* マスターの企業切替（上部バー内） */
.at-co-switch{display:flex;align-items:center;gap:6px;margin-left:10px;}
.at-co-label{font-size:10px;font-weight:700;color:rgba(255,255,255,.5);letter-spacing:.08em;}
.at-co-switch select{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.22);color:#fff;
  border-radius:8px;padding:6px 10px;font-size:12px;font-weight:600;max-width:220px;cursor:pointer;}
.at-co-switch select:focus{outline:none;border-color:rgba(255,255,255,.5);}
.at-co-switch option{color:#0f1729;}
.at-user{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.tb-meta{text-align:right;line-height:1.2;}
.tb-name{font-size:12px;font-weight:700;color:#fff;}
.tb-company{font-size:10px;color:rgba(255,255,255,.55);}
.tb-avatar{width:32px;height:32px;flex-shrink:0;border-radius:50%;background:var(--rose);color:#fff;
  display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;}
.tb-logout{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:rgba(255,255,255,.85);
  border-radius:8px;padding:6px 12px;font-size:11px;font-weight:700;cursor:pointer;transition:background .14s;}
.tb-logout:hover{background:rgba(255,255,255,.16);color:#fff;}
@media (max-width:640px){ .tb-meta{display:none;} }

/* ============ SIDEBAR (SUGOKAWA準拠) ============ */
/* ダークネイビー サイドバー（ブランド色 #1A2342） */
.sidebar{width:220px;background:var(--bg-sidebar);color:rgba(255,255,255,.78);display:flex;flex-direction:column;flex-shrink:0;overflow-y:auto;}
.sidebar-logo{padding:22px 22px 16px;border-bottom:1px solid rgba(255,255,255,.08);}
.sidebar-logo b{font-family:var(--font-display);font-size:18px;font-weight:800;letter-spacing:.12em;color:#fff;line-height:1;}
.sidebar-logo b span{color:var(--rose);}
.sidebar-logo small{display:block;font-family:var(--font-display);font-size:10px;color:rgba(255,255,255,.45);margin-top:6px;letter-spacing:.26em;text-transform:uppercase;}
.sidebar-section{padding:6px 10px 2px;}
.sidebar-section-label{padding:12px 10px 6px;font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.16em;color:rgba(255,255,255,.4);text-transform:uppercase;}
.sidebar-item{padding:9px 12px;font-size:13px;font-weight:500;color:rgba(255,255,255,.78);display:flex;align-items:center;gap:11px;border-radius:9px;margin-bottom:2px;transition:background .14s,color .14s;position:relative;cursor:pointer;}
.sidebar-item:hover{background:rgba(255,255,255,.07);color:#fff;}
.sidebar-item.active{background:rgba(255,255,255,.10);color:#fff;font-weight:700;}
.sidebar-item.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:20px;background:var(--rose);border-radius:0 3px 3px 0;}
.sidebar-item.alert{color:#E89494;}
.sidebar-item .nav-ic{flex-shrink:0;color:rgba(255,255,255,.55);transition:color .14s;}
.sidebar-item:hover .nav-ic{color:#fff;}
.sidebar-item.active .nav-ic{color:var(--rose);}
.sidebar-item .ic{font-size:14px;width:18px;text-align:center;opacity:.9;}
.sidebar-item .badge{margin-left:auto;background:var(--rose);color:#fff;border-radius:999px;padding:1px 7px;font-size:9px;font-weight:700;}
/* プロフィール（旧XPバーの置換） */
.sidebar-profile{margin-top:auto;padding:14px 16px;border-top:1px solid rgba(255,255,255,.08);}
.sp-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.sp-avatar{width:34px;height:34px;border-radius:50%;background:var(--rose);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:14px;flex-shrink:0;}
.sp-meta{min-width:0;}
.sp-name{font-size:13px;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-company{font-size:11px;color:rgba(255,255,255,.5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sp-logout{width:100%;background:rgba(255,255,255,.08);color:rgba(255,255,255,.7);border:1px solid rgba(255,255,255,.15);border-radius:7px;padding:7px 0;font-size:12px;font-weight:600;cursor:pointer;transition:background .14s,color .14s;}
.sp-logout:hover{background:rgba(255,255,255,.16);color:#fff;}

/* ============ MAIN ============ */
.main{flex:1;display:flex;flex-direction:column;min-width:0;position:relative;}
.topbar{height:64px;background:var(--bg-card);border-bottom:1px solid var(--border-line);display:flex;align-items:center;padding:0 24px;gap:14px;flex-shrink:0;}
.topbar-burger{display:none;font-size:18px;color:var(--ink-secondary);width:32px;height:32px;}
.topbar-search{flex:1;max-width:480px;background:var(--bg-base);border:1px solid var(--border-line);border-radius:8px;padding:8px 14px;font-size:12px;color:var(--ink-tertiary);display:flex;align-items:center;gap:8px;}
.topbar-search input{background:none;border:none;outline:none;flex:1;color:var(--ink-primary);font-family:var(--font-jp);}
.topbar-rank{font-family:var(--font-display);background:var(--amber-bg);color:var(--amber);padding:6px 14px;border-radius:999px;font-size:11px;font-weight:700;white-space:nowrap;letter-spacing:.04em;}
.topbar-notif{width:36px;height:36px;border-radius:8px;border:1px solid var(--border-line);background:var(--bg-card);display:grid;place-items:center;font-size:14px;position:relative;color:var(--ink-secondary);transition:all .15s ease;}
.topbar-notif:hover{border-color:var(--ink-quaternary);color:var(--ink-primary);}
.notif-badge{position:absolute;top:-2px;right:-2px;background:var(--red);color:#fff;border-radius:50%;width:16px;height:16px;font-size:9px;display:grid;place-items:center;font-weight:700;}
.topbar-avatar{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,var(--navy),var(--navy-light));color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700;font-family:var(--font-display);}

/* 共通ヘッダータイトル（topbar内） */
.topbar-title{font-family:var(--font-display);font-size:15px;font-weight:700;color:var(--ink-primary);white-space:nowrap;letter-spacing:.01em;}

/* 共通パンくず（topbarとcontentの間） */
.breadcrumb{flex-shrink:0;display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:10px 32px;background:var(--bg-card);border-bottom:1px solid var(--border-line);font-size:11px;}
.breadcrumb .crumb{color:var(--gray-400);text-decoration:none;transition:color .15s ease;}
.breadcrumb a.crumb:hover{color:var(--ink-primary);}
.breadcrumb .crumb.current{color:var(--ink-primary);font-weight:600;}
.breadcrumb .crumb-sep{color:var(--gray-300);}
@media(max-width:760px){
  .topbar-title{display:none;}
  .breadcrumb{padding:8px 14px;}
}

.content{flex:1;overflow-y:auto;padding:24px 32px;position:relative;z-index:1;}

/* ============ FAB ============ */
.fab{position:fixed;bottom:28px;right:28px;width:56px;height:56px;border-radius:50%;background:var(--blue);color:#fff;font-size:24px;box-shadow:0 6px 20px rgba(37,99,217,.4);display:grid;place-items:center;z-index:80;transition:transform .15s;}
.fab:hover{transform:scale(1.05);}

/* ============ PAGE HEADER (SUGOKAWA調) ============ */
.page-head{margin-bottom:22px;}
.page-title{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink-primary);letter-spacing:-.01em;}
.page-sub{font-size:12px;color:var(--ink-tertiary);margin-top:4px;}
.page-crumbs{font-family:var(--font-display);font-size:11px;color:var(--ink-tertiary);letter-spacing:.15em;text-transform:uppercase;margin-bottom:6px;}

/* ============ TABS ============ */
.tabs{display:flex;border-bottom:1px solid var(--border-line);margin-bottom:20px;gap:4px;overflow-x:auto;scrollbar-width:thin;-webkit-overflow-scrolling:touch;}
.tabs::-webkit-scrollbar{height:4px;}
.tabs::-webkit-scrollbar-thumb{background:var(--gray-300);border-radius:2px;}
.tabs::-webkit-scrollbar-track{background:transparent;}
.tab{padding:10px 18px;font-size:12px;color:var(--ink-secondary);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;font-weight:600;font-family:var(--font-display);letter-spacing:.04em;cursor:pointer;transition:all .15s ease;}
.tab:hover{color:var(--ink-primary);}
.tab.active{color:var(--navy);font-weight:700;border-bottom-color:var(--navy);}
.tab .b{display:inline-block;background:var(--red);color:#fff;border-radius:999px;font-size:9px;padding:1px 6px;margin-left:5px;font-weight:700;}

/* ============ CARDS (SUGOKAWA調) ============ */
.card{background:var(--bg-card);border:1px solid var(--border-line);border-radius:var(--r);box-shadow:var(--shadow);overflow:hidden;}
.card-h{padding:13px 18px;border-bottom:1px solid var(--border-subtle);font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--ink-primary);display:flex;align-items:center;gap:8px;letter-spacing:.04em;}
.card-h .right{margin-left:auto;font-family:var(--font-display);font-size:10px;color:var(--ink-tertiary);font-weight:500;letter-spacing:.1em;text-transform:uppercase;}
.card-b{padding:16px 18px;}

/* ============ KPI (SUGOKAWA 大カード) ============ */
.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px;}
.kpi{background:var(--bg-card);border:1px solid var(--border-line);border-radius:14px;padding:18px 20px;box-shadow:var(--shadow);position:relative;overflow:hidden;}
.kpi::before{content:'';position:absolute;top:0;left:0;width:100%;height:3px;background:var(--ink-quaternary);}
.kpi.green::before{background:var(--green);}
.kpi.orange::before{background:var(--amber);}
.kpi.purple::before{background:var(--rose);}
.kpi-label{font-family:var(--font-display);font-size:10px;color:var(--ink-tertiary);font-weight:700;letter-spacing:.12em;text-transform:uppercase;}
.kpi-value{font-family:var(--font-numeric);font-size:32px;font-weight:800;color:var(--ink-primary);margin-top:6px;line-height:1.05;letter-spacing:-.02em;}
.kpi-value .unit{font-family:var(--font-jp);font-size:12px;font-weight:500;color:var(--ink-tertiary);margin-left:4px;letter-spacing:0;}
.kpi-trend{font-family:var(--font-display);font-size:11px;margin-top:6px;color:var(--green);font-weight:600;letter-spacing:.03em;}
.kpi-trend.down{color:var(--red);}

/* ============ TODAY (SUGOKAWA調 グラデ) ============ */
.today{background:linear-gradient(135deg,var(--bg-sidebar) 0%,var(--navy) 60%,var(--navy-light) 100%);color:#fff;border-radius:14px;padding:20px 22px;margin-bottom:18px;box-shadow:var(--shadow-lg);}
.today-h{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;}
.today-h-l{font-family:var(--font-display);font-size:10px;font-weight:700;letter-spacing:.16em;color:rgba(255,255,255,.6);text-transform:uppercase;}
.today-h-r{font-family:var(--font-display);font-size:11px;color:#E89494;font-weight:600;letter-spacing:.05em;}
.today-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;}
.today-item{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:11px 14px;cursor:pointer;transition:background .15s;}
.today-item:hover{background:rgba(255,255,255,.14);}
.today-item-name{font-size:12px;font-weight:700;display:flex;justify-content:space-between;align-items:center;}
.today-item-name .stale{font-size:9px;background:var(--red);color:#fff;border-radius:4px;padding:1px 5px;font-weight:700;}
.today-item-name .stale.warn{background:var(--orange);}
.today-item-name .stale.ok{background:var(--green);color:#fff;}
.today-item-sub{font-size:10px;color:rgba(255,255,255,.6);margin-top:3px;}

/* ============ TWO-COL ============ */
.two-col{display:grid;grid-template-columns:3fr 2fr;gap:18px;margin-bottom:18px;}
.three-col{display:grid;grid-template-columns:1fr 1fr 1fr;gap:18px;}

/* ============ FUNNEL (SUGOKAWA調) ============ */
.funnel{display:flex;flex-direction:column;gap:8px;}
.funnel-row{display:flex;align-items:center;gap:12px;}
.funnel-label{width:90px;font-family:var(--font-display);font-size:11px;font-weight:600;color:var(--ink-primary);text-align:right;letter-spacing:.04em;}
.funnel-bar{flex:1;height:30px;background:var(--bg-base);border-radius:6px;position:relative;overflow:hidden;border:1px solid var(--border-subtle);}
.funnel-bar-fill{height:100%;background:linear-gradient(90deg,var(--navy),var(--navy-light));border-radius:6px;display:flex;align-items:center;padding:0 12px;color:#fff;font-family:var(--font-numeric);font-size:11px;font-weight:700;transition:width .4s ease-out;}
.funnel-bar-fill.warn{background:linear-gradient(90deg,var(--amber),#D8852E);}
.funnel-bar-fill.bad{background:linear-gradient(90deg,var(--red),var(--rose));}
.funnel-conv{font-family:var(--font-numeric);font-size:11px;color:var(--ink-tertiary);width:40px;font-weight:600;}

/* ============ RANKING (SUGOKAWA調) ============ */
.rank-list{display:flex;flex-direction:column;gap:6px;}
.rank-row{display:flex;align-items:center;gap:12px;padding:10px 12px;background:var(--bg-base);border-radius:10px;border:1px solid var(--border-subtle);}
.rank-row.me{background:var(--navy-bg);border-color:var(--navy);box-shadow:0 0 0 2px var(--navy-bg);}
.rank-row.gold{background:linear-gradient(135deg,#FBF1E5 0%,#F9E5C9 100%);border-color:var(--amber);}
.rank-medal{font-size:20px;width:28px;text-align:center;font-family:var(--font-display);font-weight:700;}
.rank-info{flex:1;min-width:0;}
.rank-name{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--ink-primary);}
.rank-bar{height:5px;background:rgba(15,23,41,.06);border-radius:3px;overflow:hidden;margin-top:5px;}
.rank-bar-fill{height:100%;background:var(--navy);border-radius:3px;}
.rank-row.gold .rank-bar-fill{background:var(--amber);}
.rank-row.me .rank-bar-fill{background:var(--navy);}
.rank-xp{font-family:var(--font-numeric);font-size:14px;font-weight:700;color:var(--ink-primary);}

/* ============ PIPELINE ============ */
.pipeline-filter{background:var(--gray-100);border-radius:8px;padding:8px 10px;display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap;align-items:center;}
.filter-chip{background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:5px 12px;font-size:11px;color:var(--gray-600);cursor:pointer;}
.filter-chip.active{background:var(--blue-bg);border-color:var(--blue-l);color:var(--blue);font-weight:700;}
.filter-toggle{margin-left:auto;display:flex;background:#fff;border:1px solid var(--gray-200);border-radius:6px;overflow:hidden;}
.filter-toggle button{padding:5px 14px;font-size:11px;color:var(--gray-600);}
.filter-toggle button.active{background:var(--blue);color:#fff;font-weight:700;}

.pipeline-board{display:flex;gap:10px;overflow-x:auto;padding-bottom:8px;}
.pipe-col{min-width:200px;flex:none;background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);overflow:hidden;display:flex;flex-direction:column;max-height:calc(100vh - 280px);}
.pipe-col-h{padding:10px 12px;text-align:center;color:#fff;}
.pipe-col-h .name{font-size:11px;font-weight:800;}
.pipe-col-h .count{font-size:22px;font-weight:900;margin-top:2px;line-height:1;}
.pipe-col-h .conv{font-size:10px;color:rgba(255,255,255,.8);margin-top:3px;}
.pipe-col-h .conv b{color:var(--gold);}
.pipe-col-body{padding:8px;display:flex;flex-direction:column;gap:6px;overflow-y:auto;flex:1;}
.pipe-card{background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:8px 10px;cursor:pointer;transition:all .15s;}
.pipe-card:hover{border-color:var(--blue-l);box-shadow:var(--shadow);transform:translateY(-1px);}
.pipe-card-name{font-size:11px;font-weight:700;color:var(--gray-800);display:flex;justify-content:space-between;align-items:center;gap:6px;}
.pipe-card-meta{font-size:9px;color:var(--gray-400);margin-top:3px;display:flex;justify-content:space-between;}
.pipe-card-meta .stale{font-weight:700;}
.pipe-card-meta .stale.warn{color:var(--orange);}
.pipe-card-meta .stale.bad{color:var(--red);}

/* ============ DETAIL ============ */
.detail-grid{display:grid;grid-template-columns:240px 1fr 220px;gap:14px;}
.detail-side .card{margin-bottom:12px;}
.profile-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.profile-avatar{width:48px;height:48px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:18px;font-weight:700;}
.profile-name{font-size:14px;font-weight:800;color:var(--navy);}
.profile-step{font-size:10px;color:var(--gray-600);}
.kv-list{font-size:11px;}
.kv-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px dashed var(--gray-100);}
.kv-row:last-child{border-bottom:none;}
.kv-label{color:var(--gray-600);}
.kv-value{font-weight:700;color:var(--gray-800);text-align:right;}
.tag{display:inline-block;background:var(--blue-bg);color:var(--blue);padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700;margin:2px 2px 2px 0;}
.tag.red{background:var(--red-bg);color:var(--red-d);}
.tag.green{background:var(--green-bg);color:var(--green-d);}
.tag.orange{background:var(--orange-bg);color:var(--orange-d);}

.stage-bar{display:flex;gap:2px;margin-top:8px;}
.stage-step{flex:1;height:6px;background:var(--gray-200);border-radius:3px;}
.stage-step.done{background:var(--blue);}
.stage-step.current{background:var(--orange);}

.ai-advice{background:linear-gradient(135deg,var(--navy) 0%,#1948b3 100%);color:#fff;border-radius:10px;padding:12px 14px;margin-bottom:12px;}
.ai-advice-h{font-size:10px;color:rgba(255,255,255,.6);font-weight:800;letter-spacing:.1em;margin-bottom:4px;}
.ai-advice-body{font-size:12px;line-height:1.6;}

.score-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin-top:6px;}
.score-cell{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:4px;padding:5px 4px;text-align:center;}
.score-cell-label{font-size:9px;color:var(--gray-600);}
.score-cell-mark{font-size:14px;font-weight:900;margin-top:2px;}
.score-cell-mark.ok{color:var(--green-d);}
.score-cell-mark.warn{color:var(--orange-d);}
.score-cell-mark.bad{color:var(--red-d);}

.timeline{position:relative;padding-left:18px;}
.timeline::before{content:'';position:absolute;left:6px;top:6px;bottom:0;width:2px;background:var(--gray-200);}
.tl-item{position:relative;padding-bottom:12px;}
.tl-item::before{content:'';position:absolute;left:-15px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--blue);border:2px solid #fff;box-shadow:0 0 0 2px var(--blue-l);}
.tl-date{font-size:10px;color:var(--gray-400);font-weight:700;}
.tl-title{font-size:12px;font-weight:700;color:var(--navy);margin-top:2px;}
.tl-body{font-size:11px;color:var(--gray-600);margin-top:2px;}

.action-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:8px;}
.action-btn{background:var(--gray-100);border:1px solid var(--gray-200);border-radius:8px;padding:10px;text-align:center;font-size:11px;font-weight:700;color:var(--gray-800);cursor:pointer;transition:all .15s;}
.action-btn:hover{background:var(--blue);color:#fff;border-color:var(--blue);}
.action-btn .ic{display:block;font-size:18px;margin-bottom:2px;}

/* ============ AI COACH CHAT ============ */
.chat-area{display:flex;flex-direction:column;height:480px;background:var(--gray-50);border-radius:10px;border:1px solid var(--gray-200);}
.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;}
.chat-msg{max-width:78%;padding:10px 14px;border-radius:14px;font-size:12px;line-height:1.6;}
.chat-msg.ai{align-self:flex-start;background:#fff;border:1px solid var(--gray-200);border-bottom-left-radius:4px;}
.chat-msg.user{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:4px;}
.chat-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--gray-200);background:#fff;border-radius:0 0 10px 10px;}
.chat-input input{flex:1;background:var(--gray-100);border:1px solid var(--gray-200);border-radius:8px;padding:9px 12px;outline:none;}
.chat-input input:focus{border-color:var(--blue-l);}
.chat-send{background:var(--blue);color:#fff;padding:9px 18px;border-radius:8px;font-weight:700;font-size:12px;}

/* ============ KNOWLEDGE ============ */
.kb-grid{display:grid;grid-template-columns:200px 280px 1fr;gap:14px;height:calc(100vh - 220px);}
.kb-tree{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);padding:12px;overflow-y:auto;}
.kb-tree-item{padding:7px 10px;font-size:12px;color:var(--gray-800);border-radius:6px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;}
.kb-tree-item:hover{background:var(--gray-100);}
.kb-tree-item.active{background:var(--blue-bg);color:var(--blue);font-weight:700;}
.kb-tree-item .count{font-size:10px;color:var(--gray-400);}
.kb-list{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);overflow-y:auto;}
.kb-list-search{padding:10px;border-bottom:1px solid var(--gray-200);}
.kb-list-search input{width:100%;background:var(--gray-100);border:none;border-radius:6px;padding:8px 12px;outline:none;}
.kb-list-item{padding:12px 14px;border-bottom:1px solid var(--gray-100);cursor:pointer;}
.kb-list-item:hover{background:var(--gray-50);}
.kb-list-item.active{background:var(--blue-bg);}
.kb-list-title{font-size:12px;font-weight:700;color:var(--navy);}
.kb-list-sub{font-size:10px;color:var(--gray-400);margin-top:3px;}
.kb-list-tags{margin-top:5px;}
.kb-body{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);padding:20px 24px;overflow-y:auto;}
.kb-body h1{font-size:20px;color:var(--navy);margin-bottom:6px;}
.kb-body .meta{font-size:11px;color:var(--gray-400);margin-bottom:14px;}
.kb-body h2{font-size:14px;color:var(--navy);margin:16px 0 6px;border-left:3px solid var(--blue);padding-left:8px;}
.kb-body p{margin-bottom:8px;font-size:12px;line-height:1.8;}
.kb-body ul{margin-left:20px;margin-bottom:8px;font-size:12px;}
.kb-body code{background:var(--gray-100);padding:1px 6px;border-radius:4px;font-size:11px;}

/* ============ PERFORMANCE ============ */
.perf-rank{display:flex;flex-direction:column;gap:8px;}
.perf-rank-row{display:flex;align-items:center;gap:12px;padding:12px 14px;background:#fff;border:1px solid var(--gray-200);border-radius:10px;}
.perf-rank-row.gold{background:linear-gradient(135deg,#fef9c3 0%,#fef3c7 100%);border-color:var(--gold);}
.perf-rank-row.silver{background:linear-gradient(135deg,#f1f5f9 0%,#e2e8f0 100%);}
.perf-rank-row.bronze{background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);}
.perf-rank-row.me{border:2px solid var(--blue);box-shadow:0 0 0 3px var(--blue-bg);}
.perf-rank-medal{font-size:28px;width:40px;text-align:center;}
.perf-rank-info{flex:1;}
.perf-rank-name{font-size:14px;font-weight:800;color:var(--navy);}
.perf-rank-team{font-size:10px;color:var(--gray-600);}
.perf-rank-bar{height:6px;background:var(--gray-200);border-radius:3px;overflow:hidden;margin-top:6px;}
.perf-rank-bar-fill{height:100%;background:linear-gradient(90deg,var(--blue),var(--blue-l));}
.perf-rank-row.gold .perf-rank-bar-fill{background:linear-gradient(90deg,var(--gold),var(--orange));}
.perf-rank-xp{font-size:18px;font-weight:900;color:var(--navy);}

/* ============ BADGES ============ */
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;}
.badge-item{text-align:center;padding:12px 8px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:10px;}
.badge-item.earned{background:linear-gradient(135deg,var(--orange-bg) 0%,#fef9c3 100%);border-color:var(--orange);}
.badge-item.locked{opacity:.4;}
.badge-icon{font-size:32px;margin-bottom:4px;}
.badge-name{font-size:11px;font-weight:700;color:var(--navy);}
.badge-desc{font-size:9px;color:var(--gray-400);margin-top:2px;}

/* ============ WIN/LOSS ============ */
.wl-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px;margin-bottom:18px;}
.wl-stat{padding:18px;text-align:center;border-radius:var(--r);color:#fff;}
.wl-stat.win{background:linear-gradient(135deg,var(--green-d) 0%,var(--green) 100%);}
.wl-stat.loss{background:linear-gradient(135deg,var(--red-d) 0%,var(--red) 100%);}
.wl-stat.pending{background:linear-gradient(135deg,var(--gray-600) 0%,var(--gray-400) 100%);}
.wl-stat-label{font-size:11px;font-weight:700;opacity:.8;letter-spacing:.08em;}
.wl-stat-value{font-size:36px;font-weight:900;line-height:1;margin-top:4px;}
.wl-stat-sub{font-size:11px;opacity:.8;margin-top:4px;}

/* ============ SETTINGS ============ */
.settings-form{display:flex;flex-direction:column;gap:14px;max-width:600px;}
.form-row{display:flex;flex-direction:column;gap:5px;}
.form-row label{font-size:11px;font-weight:700;color:var(--gray-600);}
.form-row input,.form-row select,.form-row textarea{background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:8px 12px;outline:none;}
.form-row input:focus,.form-row select:focus{border-color:var(--blue-l);}
.btn{background:var(--blue);color:#fff;padding:9px 18px;border-radius:8px;font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:6px;}
.btn:hover{background:#1d4fb8;}
.btn.ghost{background:var(--gray-100);color:var(--gray-800);}
.btn.ghost:hover{background:var(--gray-200);}

/* ============ TABLE ============ */
.tbl{width:100%;border-collapse:collapse;font-size:12px;}
.tbl th{background:var(--gray-100);padding:9px 12px;text-align:left;font-size:11px;font-weight:700;color:var(--gray-600);border-bottom:1px solid var(--gray-200);}
.tbl td{padding:9px 12px;border-bottom:1px solid var(--gray-100);}
.tbl tr:hover td{background:var(--gray-50);}

/* ============ SHEET (Bottom Sheet) ============ */
.sheet-overlay{position:fixed;inset:0;background:rgba(14,40,84,.45);z-index:90;opacity:0;pointer-events:none;transition:opacity .25s;}
.sheet-overlay.show{opacity:1;pointer-events:auto;}
.sheet{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%);width:520px;max-width:92vw;max-height:88vh;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);z-index:100;overflow-y:auto;opacity:0;pointer-events:none;transition:all .25s;}
.sheet.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
.sheet-h{padding:14px 18px;border-bottom:1px solid var(--gray-100);display:flex;align-items:center;justify-content:space-between;}
.sheet-h-title{font-size:14px;font-weight:800;color:var(--navy);}
.sheet-close{font-size:22px;color:var(--gray-400);cursor:pointer;width:28px;height:28px;display:grid;place-items:center;border-radius:6px;}
.sheet-close:hover{background:var(--gray-100);}
.sheet-body{padding:18px;}

/* ============ TOAST ============ */
.toast-area{position:fixed;bottom:20px;right:20px;z-index:200;display:flex;flex-direction:column;gap:8px;}
.toast{background:var(--gray-800);color:#fff;padding:11px 18px;border-radius:8px;font-size:12px;box-shadow:var(--shadow-lg);display:flex;align-items:center;gap:10px;animation:slideIn .25s;min-width:240px;}
.toast.success{background:var(--green-d);}
.toast.error{background:var(--red-d);}
.toast.xp{background:linear-gradient(135deg,var(--orange-d),var(--gold));color:#fff;}
@keyframes slideIn{from{transform:translateX(20px);opacity:0;}to{transform:translateX(0);opacity:1;}}

/* ============ ステップ移行率 (検索フォーム＋マトリクス) ============ */
.ms-guide{background:#F4B860;border:1px solid #E8A248;border-radius:10px;padding:14px 18px;margin-bottom:16px;display:flex;align-items:flex-start;gap:12px;color:#5C3A0E;}
.ms-guide-icon{width:24px;height:24px;border-radius:50%;background:#fff;color:#E8A248;display:grid;place-items:center;font-weight:700;font-size:14px;flex-shrink:0;}
.ms-guide-body{flex:1;}
.ms-guide-title{font-weight:800;font-size:13px;margin-bottom:3px;}
.ms-guide-text{font-size:12px;color:#5C3A0E;line-height:1.6;}
.ms-guide-link{display:inline-block;margin-top:6px;font-size:12px;color:#5C3A0E;text-decoration:underline;font-weight:600;}
.ms-guide-close{background:transparent;color:#5C3A0E;font-size:20px;width:28px;height:28px;border-radius:6px;cursor:pointer;}
.ms-guide-close:hover{background:rgba(0,0,0,.08);}

.ms-search{background:#fff;border:1px solid var(--border-line);border-radius:10px;overflow:hidden;margin-bottom:16px;box-shadow:var(--shadow);}
.ms-search-h{background:#5C6580;color:#fff;padding:10px 18px;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:space-between;cursor:pointer;}
.ms-search-arrow{font-size:16px;font-weight:300;}
.ms-search-b{padding:18px 22px;}
.ms-form{display:grid;grid-template-columns:repeat(3,1fr);gap:14px 24px;margin-bottom:16px;}
.ms-field{display:flex;align-items:center;gap:10px;}
.ms-field label{font-size:12px;font-weight:700;color:var(--ink-secondary);min-width:54px;}
.ms-field select,.ms-field input{flex:1;background:#fff;border:1px solid var(--border-line);border-radius:5px;padding:6px 10px;font-size:12px;color:var(--ink-primary);outline:none;}
.ms-field select:focus,.ms-field input:focus{border-color:var(--navy);}
.ms-date-range{flex:1;display:flex;align-items:center;gap:6px;}
.ms-date-range input,.ms-date-range select{flex:1;}
.ms-date-range span{color:var(--ink-tertiary);font-size:11px;}
.ms-stores{margin-bottom:14px;padding-top:12px;border-top:1px solid var(--border-subtle);}
.ms-stores-label{font-size:13px;font-weight:700;color:var(--ink-primary);margin-bottom:8px;}
.ms-stores-list{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.ms-chk{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-primary);cursor:pointer;}
.ms-chk input{accent-color:var(--green);}
.ms-actions{display:flex;justify-content:center;gap:10px;padding-top:8px;border-top:1px solid var(--border-subtle);margin-top:8px;}
.ms-search-go{background:#E89494;color:#fff;}
.ms-search-go:hover{background:#DC7878;}

.ms-result{background:#fff;border:1px solid var(--border-line);border-radius:10px;overflow:hidden;box-shadow:var(--shadow);}
.ms-result-tools{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid var(--border-subtle);font-size:12px;color:var(--ink-secondary);gap:8px;}
.ms-result-tools select{background:#fff;border:1px solid var(--border-line);border-radius:5px;padding:4px 8px;font-size:12px;margin-right:4px;}
.ms-page-search{display:flex;align-items:center;gap:6px;}
.ms-page-search input{background:#fff;border:1px solid var(--border-line);border-radius:5px;padding:4px 8px;font-size:12px;outline:none;}
.ms-tbl-scroll{overflow-x:auto;}
.ms-tbl{width:100%;border-collapse:collapse;font-size:12px;min-width:1100px;}
.ms-tbl th{background:#DCEAFC;color:var(--navy);font-weight:700;padding:9px 10px;border:1px solid #C9DCF2;text-align:center;font-size:11px;font-family:var(--font-jp);}
.ms-tbl th.ms-step-head{background:#B6CFEC;font-size:12px;border-bottom:2px solid #95B5DC;}
.ms-tbl th.ms-name-col{background:#fff;border-top:none;border-left:none;color:var(--ink-secondary);text-align:left;padding-left:14px;width:140px;}
.ms-tbl td{padding:9px 10px;border:1px solid #DDE4F0;text-align:center;font-size:12px;color:var(--ink-primary);background:#E8F0FA;}
.ms-tbl td.ms-label{background:#fff;text-align:left;padding-left:14px;color:var(--navy);font-weight:600;border-left:none;}
.ms-tbl tr.ms-total td{font-weight:800;background:#F4F8FD;}
.ms-tbl tr.ms-total td.ms-label{color:var(--ink-primary);border-bottom:2px solid var(--navy);}
.ms-link{color:var(--navy);text-decoration:underline;font-weight:700;cursor:pointer;}
.ms-link:hover{color:#1948b3;}
.ms-mig{background:#E8F0FA;font-weight:600;}
.ms-mig.bad{color:var(--red);}
.ms-pager{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;font-size:12px;color:var(--ink-secondary);border-top:1px solid var(--border-subtle);}
.ms-pager-btns{display:flex;gap:4px;}
.ms-pager-btns button{min-width:32px;height:28px;padding:0 10px;border:1px solid var(--border-line);background:#fff;font-size:11px;color:var(--ink-secondary);border-radius:4px;cursor:pointer;}
.ms-pager-btns button.active{background:var(--navy);color:#fff;border-color:var(--navy);}
.ms-pager-btns button:hover:not(.active){border-color:var(--navy);}

@media (max-width:980px){
  .ms-form{grid-template-columns:1fr 1fr;}
  .ms-stores-list{grid-template-columns:1fr 1fr;}
}

/* ============ 案件一覧 (raclear準拠) ============ */
.pl-count-card{background:#fff;border:1px solid var(--gray-200);border-radius:14px;padding:22px 26px;display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;gap:16px;flex-wrap:wrap;box-shadow:var(--shadow);}
.pl-count-l{display:flex;align-items:baseline;gap:12px;}
.pl-count-num{font-family:'Manrope',sans-serif;font-weight:800;font-size:42px;line-height:1;color:var(--navy);letter-spacing:-.02em;}
.pl-count-unit{font-size:13px;color:var(--gray-600);}
.pl-count-sub{font-size:11px;color:var(--gray-400);letter-spacing:.05em;}
.pl-count-r{display:flex;align-items:center;gap:12px;}
.pl-newtab-chk{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--gray-600);cursor:pointer;}
.btn-pl-new{background:var(--navy);color:#fff;font-weight:700;font-size:13px;padding:11px 22px;border-radius:8px;display:inline-flex;align-items:center;gap:8px;}
.btn-pl-new:hover{background:#1948b3;}
.btn-pl-new::before{content:'＋';font-size:14px;}

/* シェブロン型ステップタブ */
.pl-step-tabs{display:flex;gap:0;margin:6px 0 18px;overflow-x:auto;padding:4px 0;}
.pl-step-tab{
  position:relative;padding:14px 30px 14px 26px;
  background:#DBD7CC;color:var(--gray-600);
  font-weight:700;font-size:13px;cursor:pointer;
  white-space:nowrap;display:inline-flex;align-items:center;gap:8px;
  flex-shrink:0;transition:background .15s ease, color .15s ease;
  clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%, 14px 50%);
}
.pl-step-tab + .pl-step-tab{margin-left:-10px;padding-left:36px;}
.pl-step-tab:first-child{padding-left:22px;clip-path:polygon(0 0, calc(100% - 14px) 0, 100% 50%, calc(100% - 14px) 100%, 0 100%);}
.pl-step-tab:last-child{padding-right:26px;}
.pl-step-tab:hover{background:#C7C2B4;color:var(--gray-800);}
.pl-step-tab.active{background:var(--turquoise);color:#fff;z-index:2;}
.pl-step-tab.active:hover{background:#B54E63;}
.pl-step-tab .icon{font-size:14px;line-height:1;}
.pl-step-tab .cnt{display:inline-grid;place-items:center;min-width:20px;height:18px;padding:0 6px;border-radius:999px;background:rgba(15,23,41,.10);color:var(--gray-600);font-family:'Manrope',sans-serif;font-size:11px;font-weight:700;}
.pl-step-tab.active .cnt{background:rgba(255,255,255,.28);color:#fff;}

.pl-notice{font-size:11px;color:var(--gray-400);padding:0 0 14px;display:flex;align-items:center;gap:6px;}
.pl-notice .warn{color:var(--red);font-size:12px;}
.pl-notice .summary{margin-left:auto;color:var(--gray-600);font-weight:600;}
.pl-notice .summary b{color:var(--turquoise-d);}

.pl-tbl-tools{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px;gap:12px;flex-wrap:wrap;}
.pl-tbl-tools select{background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:6px 24px 6px 12px;font-size:12px;color:var(--gray-800);}
.pl-tbl-tools input{background:#fff;border:1px solid var(--gray-200);border-radius:6px;padding:7px 12px;font-size:12px;width:240px;outline:none;}
.pl-tbl-tools input:focus{border-color:var(--blue-l);}

/* グループヘッダー付きテーブル */
.pl-tbl-card{background:#fff;border:1px solid var(--gray-200);border-radius:12px;overflow:hidden;box-shadow:var(--shadow);}
.pl-tbl-scroll{overflow-x:auto;}
table.pl-tbl{width:100%;border-collapse:collapse;font-size:12px;min-width:2200px;}
.pl-grp-row th{padding:11px 16px;font-weight:700;font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-align:left;}
.pl-grp-basic{background:#EEF1F8;color:var(--navy);border-bottom:2px solid var(--navy);}
.pl-grp-teal{background:#E3F1EE;color:#3B8076;border-bottom:2px solid #3B8076;}
.pl-grp-state{background:#ECF2EE;color:#15803d;border-bottom:2px solid #15803d;}
.pl-grp-amber{background:#FBF1E5;color:#A85718;border-bottom:2px solid #A85718;}
.pl-grp-purple{background:#EFE9F4;color:#5F4781;border-bottom:2px solid #5F4781;}
.pl-grp-deal{background:var(--turquoise-bg);color:var(--turquoise-d);border-bottom:2px solid var(--turquoise);}
.prob-pill{display:inline-block;padding:3px 10px;border-radius:999px;font-family:'Manrope',sans-serif;font-size:12px;font-weight:800;letter-spacing:-.02em;}
.brand-tag{white-space:nowrap;}
.ch-tag{display:inline-block;padding:2px 8px;background:#E3F1EE;color:#3B8076;border-radius:4px;font-size:10px;font-weight:700;}
.mile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:3px 6px;font-size:9px;}
.mile-grid > div{display:flex;align-items:center;gap:3px;}
.mile-lbl{display:inline-grid;place-items:center;width:18px;height:18px;background:var(--gray-100);color:var(--gray-600);border-radius:3px;font-weight:700;font-size:9px;}
.mile-yes{color:var(--green-d);font-weight:700;font-size:10px;}
.mile-no{color:var(--gray-300);font-size:10px;}
.pl-col-row th{background:#fff;padding:11px 16px;font-size:11px;font-weight:600;color:var(--gray-600);border-bottom:1px solid var(--gray-200);text-align:left;letter-spacing:.03em;}
.pl-col-row th .sort{color:var(--gray-300);margin-left:4px;font-size:9px;cursor:pointer;}
.pl-col-row th:hover .sort{color:var(--navy);}
table.pl-tbl tbody td{padding:14px 16px;border-bottom:1px solid var(--gray-100);vertical-align:top;font-size:12px;color:var(--gray-800);}
table.pl-tbl tbody tr:hover td{background:var(--gray-50);}
.pl-name-cell{font-weight:700;font-size:13px;display:inline-flex;align-items:center;gap:5px;color:var(--navy);}
.pl-row-actions{display:flex;gap:4px;margin-top:8px;}
.pl-row-act{width:28px;height:28px;background:var(--gray-50);border:1px solid var(--gray-200);border-radius:6px;display:grid;place-items:center;color:var(--gray-600);font-size:12px;cursor:pointer;transition:all .15s ease;}
.pl-row-act:hover{border-color:var(--navy);color:var(--navy);background:#EEF1F8;}
.pl-step-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:6px;font-size:11px;font-weight:700;color:#fff;background:var(--c, var(--navy));white-space:nowrap;}
.pl-rank-pill{display:inline-block;padding:2px 9px;border-radius:999px;font-size:10px;font-weight:700;}
.pl-rank-S{background:var(--navy);color:#fff;}
.pl-rank-A{background:var(--red);color:#fff;}
.pl-rank-B{background:var(--orange);color:#fff;}
.pl-rank-C{background:var(--gray-400);color:#fff;}
.pl-rank-D{background:var(--gray-300);color:var(--gray-800);}
.pl-stale-bad{color:var(--red);font-weight:700;}
.pl-stale-warn{color:var(--orange);font-weight:700;}
.pl-empty{color:var(--gray-300);}

/* ============ CASE DETAIL OVERVIEW (02モック準拠) ============ */
.case-hd-v2{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);padding:14px 18px;box-shadow:var(--shadow);margin-bottom:14px;position:sticky;top:0;z-index:30;}
.case-hd-row1{display:flex;align-items:center;gap:12px;margin-bottom:10px;flex-wrap:wrap;}
.case-hd-name{font-size:22px;font-weight:900;color:var(--navy);}
.case-hd-step{padding:4px 12px;border-radius:999px;font-size:11px;font-weight:800;background:var(--teal-bg);color:var(--teal-d);}
.case-hd-temp{padding:3px 10px;border-radius:6px;font-size:11px;font-weight:800;background:var(--orange-bg);color:var(--orange-d);}
.case-hd-elapsed{font-size:11px;color:var(--gray-400);}
.case-hd-elapsed b{color:var(--navy);}
.case-hd-row2{display:flex;align-items:flex-start;gap:14px;flex-wrap:wrap;}

/* 商談ステップ進捗バー（シェブロン型） */
.stage-bar-v2{flex:1;min-width:0;display:flex;gap:0;overflow-x:auto;padding:4px 0;}
.stage-bar-v2 .step{
  position:relative;
  padding:11px 24px 11px 20px;
  background:#DBD7CC;
  color:var(--gray-600);
  font-weight:700;
  font-size:12px;
  white-space:nowrap;
  display:inline-flex;
  align-items:center;
  gap:6px;
  cursor:default;
  flex-shrink:0;
  transition:background .15s ease, color .15s ease;
  clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
}
.stage-bar-v2 .step + .step{margin-left:-8px;padding-left:28px;}
.stage-bar-v2 .step:first-child{
  padding-left:18px;
  clip-path:polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%);
}
.stage-bar-v2 .step:last-child{padding-right:22px;}
.stage-bar-v2 .step .icon{font-size:13px;line-height:1;}
.stage-bar-v2 .step .label{font-size:12px;font-weight:700;}
.stage-bar-v2 .step .badge-cnt{
  display:inline-grid;place-items:center;
  min-width:18px;height:16px;padding:0 5px;
  border-radius:999px;
  background:rgba(15,23,41,0.12);color:var(--gray-600);
  font-family:'Manrope',sans-serif;font-size:10px;font-weight:700;
  margin-left:2px;
}
.stage-bar-v2 .step.done{background:#E8E2D2;color:var(--gray-600);cursor:pointer;}
.stage-bar-v2 .step.done:hover{background:#D5CEBA;color:var(--gray-800);}
.stage-bar-v2 .step.done .badge-cnt{background:rgba(15,23,41,0.14);}
.stage-bar-v2 .step.current{background:var(--turquoise);color:#fff;z-index:2;}
.stage-bar-v2 .step.current .badge-cnt{background:rgba(255,255,255,0.28);color:#fff;}
.stage-bar-v2 .step.future{background:#EFECE3;color:#B0AB99;}
.stage-bar-v2 .step.future .badge-cnt{background:rgba(15,23,41,0.06);color:#B0AB99;}
.next-action-bar{background:linear-gradient(90deg,var(--blue-bg),#fff);border:1.5px solid var(--blue-l);border-radius:8px;padding:6px 14px;display:flex;align-items:center;gap:10px;min-width:260px;}
.next-action-label{font-size:9px;font-weight:800;color:var(--blue);letter-spacing:.08em;white-space:nowrap;}
.next-action-text{font-size:12px;font-weight:700;color:var(--navy);}
.next-action-date{font-size:10px;color:var(--blue);font-weight:700;white-space:nowrap;margin-left:auto;}

/* 2カラム本体 */
.detail-2col{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.detail-left,.detail-right{background:#fff;border:1px solid var(--gray-200);border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow);}

/* 9セクション縦ラベル */
.isec-row{display:flex;position:relative;border-bottom:1px solid var(--gray-200);}
.isec-row:last-child{border-bottom:none;}
.isec-row-lbl{width:22px;min-width:22px;background:var(--navy);color:rgba(255,255,255,.88);writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.14em;padding:8px 0;}
.isec-row-body{flex:1;overflow:hidden;}
.isec-row-grid{display:grid;grid-template-columns:repeat(3,1fr);}
.icell-v2{padding:5px 12px 6px;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);}
.icell-v2:nth-child(3n){border-right:none;}
.icell-v2.s2{grid-column:span 2;}
.icell-v2.s3{grid-column:span 3;border-right:none;}
.icell-v2 .ik{font-size:9px;color:var(--gray-400);font-weight:700;line-height:1.3;margin-bottom:1px;}
.icell-v2 .iv{font-size:11px;font-weight:700;color:var(--gray-800);line-height:1.4;}
.icell-v2 .iv.empty{color:var(--gray-300);font-weight:500;}
.icell-v2 .iv.alert{color:var(--red-d);}
.isec-more-v2{width:100%;padding:4px 14px;font-size:10px;color:var(--blue);cursor:pointer;background:var(--gray-50);border-top:1px dashed var(--blue-l);border-left:none;border-right:none;border-bottom:none;text-align:left;font-weight:700;display:block;}
.isec-more-v2:hover{background:var(--blue-bg);}
.isec-row.open .isec-more-v2::before{content:'▾ ';}
.isec-row:not(.open) .isec-more-v2::before{content:'＋ ';}
.isec-detail-v2{display:none;}
.isec-row.open .isec-detail-v2{display:block;}
.isec-detail-v2 .icell-v2{background:var(--gray-50);}

/* AIスコアゾーン（ネック分析） */
.ai-zone-v2{background:#fff;padding:14px 16px;border-bottom:1px solid var(--gray-200);}
.ai-zone-head-v2{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap;}
.ai-zone-title-v2{font-size:13px;font-weight:900;color:var(--navy);}
.ai-score-total-v2{font-size:24px;font-weight:900;color:var(--blue);font-family:'Manrope',sans-serif;}
.ai-score-total-v2 .sm{font-size:13px;color:var(--gray-400);font-weight:500;}
.ai-rank-badge{background:var(--orange-bg);border-radius:999px;padding:3px 12px;font-size:10px;font-weight:800;color:var(--orange-d);}
.ai-updated-v2{font-size:10px;color:var(--gray-400);margin-left:auto;}

.legend{display:flex;gap:10px;align-items:center;margin-bottom:6px;flex-wrap:wrap;}
.legend-lbl{font-size:9px;font-weight:800;color:var(--gray-600);}
.legend-item{display:flex;align-items:center;gap:4px;font-size:10px;color:var(--gray-600);}
.fact-eval{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font-size:10px;font-weight:900;flex-shrink:0;}
.fact-eval.ng{background:var(--gray-100);color:var(--gray-400);}
.fact-eval.warn{background:var(--blue-bg);color:var(--blue);}
.fact-eval.ok{background:var(--orange-bg);color:var(--orange-d);}
.fact-eval.great{background:var(--green-bg);color:var(--green-d);}

.neck-grid-hd{display:grid;grid-template-columns:1fr 48px;background:var(--gray-100);border-radius:6px 6px 0 0;padding:5px 10px;margin-bottom:2px;}
.neck-grid-hd > div{font-size:9px;font-weight:800;color:var(--gray-600);}
.neck-grid-hd .ev{text-align:center;}

.neck-row{display:grid;grid-template-columns:1fr 48px;background:#fff;border:1px solid var(--gray-200);padding:7px 10px;cursor:pointer;transition:background .15s;margin-bottom:1px;border-radius:4px;}
.neck-row:hover{background:var(--gray-50);}
.neck-row.open{background:var(--blue-bg);border-color:var(--blue-l);}
.neck-head{display:flex;align-items:center;gap:6px;}
.neck-num{font-size:9px;color:#fff;padding:1px 6px;border-radius:3px;font-weight:800;white-space:nowrap;background:var(--blue);}
.neck-num.pre{background:var(--navy);}
.neck-name{font-size:11px;font-weight:700;}
.neck-comm{font-size:10px;color:var(--gray-400);}
.neck-chev{font-size:10px;color:var(--gray-400);margin-left:auto;transition:transform .2s;}
.neck-row.open .neck-chev{transform:rotate(90deg);}
.neck-ev{text-align:center;display:flex;align-items:center;justify-content:center;}
.neck-detail{display:none;grid-column:1/-1;padding:8px 10px;background:#fff;border-radius:6px;border:1px solid var(--gray-200);font-size:11px;line-height:1.7;color:var(--gray-800);margin-top:8px;}
.neck-row.open .neck-detail{display:block;}
.neck-detail b{color:var(--navy);}

/* タイムラインゾーン */
.tl-zone-v2{padding:14px 16px;background:var(--gray-50);}
.tl-zone-head-v2{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.tl-zone-title-v2{font-size:13px;font-weight:900;color:var(--navy);}
.tl-add-btn{margin-left:auto;background:var(--blue);color:#fff;border-radius:6px;padding:5px 12px;font-size:10px;font-weight:700;display:flex;align-items:center;gap:4px;cursor:pointer;}
.tl-list-v2{display:flex;flex-direction:column;gap:0;position:relative;}
.tl-list-v2::before{content:'';position:absolute;left:15px;top:0;bottom:0;width:2px;background:var(--gray-200);}
.tl-entry-v2{display:flex;gap:12px;position:relative;padding-bottom:14px;}
.tl-dot-v2{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:grid;place-items:center;font-size:14px;z-index:1;border:2px solid #fff;background:var(--blue-bg);}
.tl-card-v2{flex:1;background:#fff;border:1.5px solid var(--gray-200);border-radius:8px;padding:10px 14px;box-shadow:var(--shadow);}
.tl-card-head-v2{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.tl-type-tag{font-size:10px;font-weight:800;padding:2px 8px;border-radius:4px;background:var(--blue-bg);color:var(--blue);}
.tl-date-v2{font-size:10px;color:var(--gray-400);margin-left:auto;}
.tl-title-v2{font-size:12px;font-weight:700;color:var(--navy);}
.tl-memo-v2{font-size:11px;color:var(--gray-600);line-height:1.6;margin-top:3px;}

@media (max-width:980px){
  .detail-2col{grid-template-columns:1fr;}
  .isec-row-grid{grid-template-columns:1fr 1fr;}
  .icell-v2:nth-child(3n){border-right:1px solid var(--gray-100);}
  .icell-v2:nth-child(2n){border-right:none;}
  .case-hd-row2{flex-direction:column;align-items:stretch;}
  .next-action-bar{min-width:0;}
}

/* ============ FULL SHEET (大型登録モーダル) ============ */
.fullsheet-overlay{position:fixed;inset:0;background:rgba(14,40,84,.55);z-index:140;opacity:0;pointer-events:none;transition:opacity .25s;}
.fullsheet-overlay.show{opacity:1;pointer-events:auto;}
.fullsheet{position:fixed;left:50%;top:50%;transform:translate(-50%,-50%) scale(.96);width:1000px;max-width:96vw;max-height:92vh;background:#fff;border-radius:14px;box-shadow:var(--shadow-lg);z-index:150;display:flex;flex-direction:column;opacity:0;pointer-events:none;transition:all .25s;overflow:hidden;}
.fullsheet.show{opacity:1;pointer-events:auto;transform:translate(-50%,-50%) scale(1);}
.fullsheet-head{padding:14px 20px;border-bottom:1px solid var(--gray-200);display:flex;align-items:center;gap:10px;background:#fff;}
.fullsheet-title{font-size:15px;font-weight:900;color:var(--navy);}
.fullsheet-crumbs{font-size:11px;color:var(--gray-400);}
.fullsheet-actions{margin-left:auto;display:flex;gap:8px;}
.fullsheet-body{flex:1;overflow-y:auto;background:var(--gray-50);}
.fullsheet-foot{padding:12px 20px;border-top:1px solid var(--gray-200);background:#fff;display:flex;align-items:center;gap:10px;}

/* セクション縦ラベル＋グリッド (02モック準拠) */
.isec{display:flex;background:#fff;border-bottom:1px solid var(--gray-200);position:relative;}
.isec-lbl{width:22px;min-width:22px;background:var(--navy);color:rgba(255,255,255,.92);writing-mode:vertical-rl;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:800;letter-spacing:.14em;flex-shrink:0;padding:10px 0;}
.isec-body{flex:1;}
.isec-grid{display:grid;grid-template-columns:repeat(3,1fr);}
.icell{padding:6px 12px 8px;border-right:1px solid var(--gray-100);border-bottom:1px solid var(--gray-100);}
.icell:nth-child(3n){border-right:none;}
.icell.s2{grid-column:span 2;}
.icell.s3{grid-column:span 3;border-right:none;}
.ik{font-size:9px;color:var(--gray-400);font-weight:800;line-height:1.3;margin-bottom:3px;letter-spacing:.04em;}
.ik .req{color:var(--red);margin-left:2px;}
.iv-input{width:100%;background:transparent;border:none;border-bottom:1px dashed var(--gray-200);padding:3px 0 4px;font-size:12px;font-weight:600;color:var(--navy);outline:none;transition:border-color .15s;}
.iv-input:focus{border-bottom-color:var(--blue);background:var(--blue-bg);}
.iv-input::placeholder{color:var(--gray-300);font-weight:400;}
select.iv-input{appearance:none;padding-right:14px;background-image:linear-gradient(45deg,transparent 50%,var(--gray-400) 50%),linear-gradient(135deg,var(--gray-400) 50%,transparent 50%);background-position:calc(100% - 9px) 50%,calc(100% - 5px) 50%;background-size:4px 4px,4px 4px;background-repeat:no-repeat;}
textarea.iv-input{resize:vertical;min-height:32px;font-family:inherit;line-height:1.5;}
.isec-more{width:100%;padding:5px 14px;font-size:10px;color:var(--blue);cursor:pointer;background:var(--gray-50);border-top:1px dashed var(--blue-l);border-left:none;border-right:none;border-bottom:none;text-align:left;font-weight:700;display:block;}
.isec-more:hover{background:var(--blue-bg);}
.isec-detail{display:none;}
.isec-detail.show{display:block;}
.isec-more.open{background:var(--blue-bg);}
.isec-more.open::before{content:'▾ ';}
.isec-more:not(.open)::before{content:'＋ ';}
.isec-more[data-target="opt"]{background:#fafbfd;color:var(--gray-600);}
.isec-more[data-target="opt"].open{background:var(--gray-100);}

/* 優先度ストライプ（左4pxバー） */
.icell.pri-required{box-shadow:inset 3px 0 0 var(--red);}
.icell.pri-recommended{box-shadow:inset 3px 0 0 var(--orange);}
.icell.pri-optional{box-shadow:inset 3px 0 0 var(--gray-300);}
.icell .ik .req{color:var(--red);margin-left:2px;font-weight:900;}

/* 詳細シートのKV表示 */
.cd-group{display:grid;grid-template-columns:1fr 1fr;}
.cd-row{display:flex;padding:7px 14px;border-bottom:1px solid var(--gray-100);border-right:1px solid var(--gray-100);}
.cd-row:nth-child(2n){border-right:none;}
.cd-label{font-size:10px;color:var(--gray-600);width:40%;display:flex;align-items:center;gap:6px;position:relative;}
.cd-bar{display:inline-block;width:3px;height:14px;border-radius:2px;}
.cd-val{flex:1;font-size:11px;font-weight:600;color:var(--navy);}
@media (max-width:760px){
  .cd-group{grid-template-columns:1fr;}
  .cd-row{border-right:none;}
}

/* ステップヘッダー */
.case-header-mini{padding:14px 20px;background:#fff;border-bottom:2px solid var(--gray-200);}
.case-mini-row{display:flex;align-items:center;gap:10px;}
.case-mini-name{font-size:13px;font-weight:800;color:var(--navy);}
.step-pill{padding:3px 10px;border-radius:999px;font-size:10px;font-weight:800;background:var(--teal-bg);color:var(--teal-d);}
.temp-pill{padding:2px 8px;border-radius:5px;font-size:10px;font-weight:800;background:var(--orange-bg);color:var(--orange-d);}

@media (max-width:820px){
  .fullsheet{width:96vw;max-height:96vh;}
  .isec-grid{grid-template-columns:1fr 1fr;}
  .icell:nth-child(3n){border-right:1px solid var(--gray-100);}
  .icell:nth-child(2n){border-right:none;}
  .icell.s2,.icell.s3{grid-column:1/-1;border-right:none;}
}

/* ============ CRUMBS ============ */
.crumbs{font-size:11px;color:var(--gray-400);margin-bottom:6px;letter-spacing:.08em;}
.crumbs a{color:var(--gray-400);}
.crumbs a:hover{color:var(--blue);}
.crumbs .sep{margin:0 6px;color:var(--gray-300);}
.crumbs .cur{color:var(--gray-800);font-weight:700;}

/* ============ CLIENT DB ============ */
.client-actions{display:flex;gap:8px;margin-bottom:14px;align-items:center;flex-wrap:wrap;}
.client-actions .grow{flex:1;}
.client-search{background:var(--gray-100);border-radius:8px;padding:8px 14px;display:flex;align-items:center;gap:8px;min-width:260px;}
.client-search input{flex:1;background:none;border:none;outline:none;}

.rank-pill{display:inline-block;width:28px;height:28px;line-height:28px;text-align:center;border-radius:6px;font-weight:900;font-size:12px;color:#fff;}
.rank-pill.A{background:linear-gradient(135deg,#dc2626,#ef4444);}
.rank-pill.B{background:linear-gradient(135deg,#d97706,#f59e0b);}
.rank-pill.C{background:linear-gradient(135deg,#2563d9,#4a83f0);}
.rank-pill.D{background:linear-gradient(135deg,#64748b,#94a3b8);}

.src-tag{display:inline-block;padding:3px 10px;border-radius:4px;font-size:10px;font-weight:700;}
.src-SUUMO{background:#fef3c7;color:#92400e;}
.src-HP{background:#dbeafe;color:#1e40af;}
.src-紹介{background:#dcfce7;color:#166534;}
.src-インスタ{background:#fce7f3;color:#9d174d;}
.src-チラシ{background:#e0e7ff;color:#3730a3;}
.src-再来{background:#f3e8ff;color:#6b21a8;}
.src-公式LINE{background:#dcfce7;color:#15803d;}
.src-HOMES{background:#fee2e2;color:#991b1b;}
.src-ALLGRIT{background:#cffafe;color:#155e75;}

.client-kpi{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px;}
.client-kpi .kpi-value{font-size:30px;}

/* ============ MOBILE BOTTOM NAV ============ */
.bottom-nav{display:none;position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--gray-200);padding:6px 0 max(6px,env(safe-area-inset-bottom));z-index:70;}
.mob-nav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:9px;color:var(--gray-400);padding:4px 0;}
.mob-nav-item.active{color:var(--blue);}
.mob-nav-icon{font-size:18px;}
.mob-nav-item.fab .mob-fab-circle{width:46px;height:46px;background:var(--blue);border-radius:50%;display:grid;place-items:center;color:#fff;font-size:22px;margin-top:-22px;box-shadow:0 4px 14px rgba(37,99,217,.4);}

/* ============ RESPONSIVE ============ */
@media (max-width:1080px){
  .detail-grid{grid-template-columns:200px 1fr;}
  .detail-grid > .detail-right{grid-column:1/-1;}
  .kpi-row{grid-template-columns:repeat(2,1fr);}
  .two-col{grid-template-columns:1fr;}
  .kb-grid{grid-template-columns:160px 240px 1fr;}
}
@media (max-width:760px){
  .sidebar{position:fixed;left:0;top:0;height:100vh;z-index:120;transform:translateX(-100%);transition:transform .25s;box-shadow:var(--shadow-lg);}
  .sidebar.open{transform:translateX(0);}
  .topbar-burger{display:grid;place-items:center;}
  .topbar-rank{display:none;}
  .content{padding:14px 14px 80px;}
  .bottom-nav{display:flex;}
  .fab{display:none;}
  .kpi-row{grid-template-columns:1fr 1fr;gap:10px;}
  .detail-grid{grid-template-columns:1fr;}
  .three-col{grid-template-columns:1fr;}
  .wl-grid{grid-template-columns:1fr;}
  .kb-grid{grid-template-columns:1fr;height:auto;}
  .kb-tree,.kb-list{max-height:240px;}
  .action-row{grid-template-columns:repeat(2,1fr);}
}

/* サイドバー サブメニュー（営業成績管理 配下など） */
.sidebar-parent{cursor:pointer;display:flex;align-items:center;}
/* モダンな細いchevron（元の「▼」テキストは font-size:0 で隠し、CSSで描画） */
.sb-arrow{
  margin-left:auto;
  position:relative;
  width:18px;height:18px;
  font-size:0;line-height:0;
  border-radius:6px;
  flex-shrink:0;
  transition:transform .24s cubic-bezier(.4,0,.2,1),background .14s;
}
.sb-arrow::before{
  content:"";
  position:absolute;
  top:44%;left:50%;
  width:6px;height:6px;
  border-right:1.6px solid rgba(255,255,255,.5);
  border-bottom:1.6px solid rgba(255,255,255,.5);
  transform:translate(-50%,-50%) rotate(45deg);
  transition:border-color .14s;
}
.sidebar-parent:hover .sb-arrow{background:rgba(255,255,255,.08);}
.sidebar-parent:hover .sb-arrow::before{border-color:#fff;}
.sb-arrow.open{transform:rotate(-180deg);}
.sidebar-sub{display:flex;flex-direction:column;gap:1px;margin:2px 0 8px;}
/* サブ項目：左に細いガイドライン＋インデントで階層を明示（モダンCRM風） */
.sidebar-sub{position:relative;}
.sidebar-sub::before{
  content:"";position:absolute;left:22px;top:2px;bottom:6px;
  width:1px;background:rgba(255,255,255,.10);
}
.sidebar-subitem{
  position:relative;
  padding:7px 14px 7px 38px;font-size:12px;color:rgba(255,255,255,.55);
  text-decoration:none;border-radius:8px;
  transition:background .12s,color .12s;display:block;
}
.sidebar-subitem:hover{background:rgba(255,255,255,.07);color:#fff;}
.sidebar-subitem.active{color:#fff;font-weight:700;background:rgba(255,255,255,.12);}
/* アクティブなサブ項目はガイドライン上にドットを表示 */
.sidebar-subitem.active::before{
  content:"";position:absolute;left:19px;top:50%;transform:translateY(-50%);
  width:6px;height:6px;border-radius:50%;background:var(--rose);
  box-shadow:0 0 0 3px rgba(0,182,201,.18);
}

/* 顧客DB上部 シェブロン型セクションナビ */
.chev-nav{display:flex;gap:3px;margin:0 0 18px;overflow-x:auto;padding-bottom:2px;}
.chev{flex:1 0 auto;min-width:150px;background:var(--gray-100);color:var(--gray-500);font-weight:700;font-size:13px;padding:14px 16px 14px 30px;white-space:nowrap;cursor:pointer;position:relative;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%,14px 50%);transition:background .12s,color .12s;}
.chev:first-child{padding-left:18px;clip-path:polygon(0 0,calc(100% - 14px) 0,100% 50%,calc(100% - 14px) 100%,0 100%);}
.chev:hover{background:var(--gray-200);}
.chev.active{background:#F2868E;color:#fff;}

/* 顧客ライフサイクル パイプライン（横タイムライン進捗バー） */
.lc-list{display:flex;flex-direction:column;}
.lc-row{display:flex;align-items:center;gap:16px;padding:14px 6px;border-bottom:1px solid var(--gray-100);cursor:pointer;transition:background .12s;}
.lc-row:hover{background:var(--blue-bg);}
.lc-name{width:150px;flex-shrink:0;font-weight:700;font-size:13px;color:var(--navy);}
.lc-sub{font-size:10px;color:var(--gray-400);font-weight:400;margin-top:2px;}
.lc-bar{display:flex;flex:1;min-width:540px;}
.lc-seg{flex:1;text-align:center;position:relative;}
.lc-seg::before{content:'';position:absolute;top:9px;left:-50%;width:100%;height:3px;background:var(--gray-200);z-index:0;}
.lc-seg:first-child::before{display:none;}
.lc-seg.done::before,.lc-seg.current::before{background:var(--blue);}
.lc-dot{position:relative;z-index:1;display:inline-block;width:20px;height:20px;border-radius:50%;background:var(--gray-200);}
.lc-seg.done .lc-dot{background:var(--blue);}
.lc-seg.current .lc-dot{background:var(--blue);box-shadow:0 0 0 4px var(--blue-bg);}
.lc-lbl{display:block;margin-top:6px;font-size:10px;color:var(--gray-400);white-space:nowrap;}
.lc-seg.done .lc-lbl{color:var(--navy);}
.lc-seg.current .lc-lbl{color:var(--blue);font-weight:700;}
/* sugoseki: Client CRUD 用の追加スタイル（styles.css の CSS変数を再利用） */

/* フラッシュメッセージ */
.flash { margin: 14px 0; padding: 12px 16px; border-radius: 8px; font-size: 13px; }
.flash-notice { background: var(--green-bg, #e7f7ee); color: var(--green-d, #137a4b); border: 1px solid var(--green, #19a974); }
.flash-alert  { background: var(--orange-bg, #fdeee0); color: var(--orange-d, #b45309); border: 1px solid var(--orange, #f59e0b); }

/* 検索ツールバー */
.cl-toolbar { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 14px; }
.cl-toolbar input[type="search"], .cl-toolbar select {
  padding: 8px 10px; border: 1px solid var(--border-line, #e2e6ea); border-radius: 8px; font-size: 13px; background: #fff;
}
.cl-toolbar input[type="search"] { min-width: 220px; }

/* 一覧テーブル */
.cl-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.cl-table th, .cl-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border-subtle, #eef1f4); white-space: nowrap; }
.cl-table th { font-size: 11px; color: var(--ink-tertiary, #8a94a6); font-weight: 600; letter-spacing: .02em; }
.cl-table tbody tr:hover { background: var(--gray-50, #f7f9fb); }
.cl-actions { display: flex; gap: 6px; }

/* ボタン補助 */
.btn-danger { background: var(--red, #dc2626) !important; color: #fff !important; border: none !important; }

/* ランクのピル表示 */
.rank-pill { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; padding: 0; border-radius: 50%; font-weight: 700; font-size: 11px; line-height: 1; color: #fff; }
.rank-A { background: var(--red, #dc2626); }
.rank-B { background: var(--orange, #d97706); }
.rank-C { background: var(--blue, #2563d9); }
.rank-D { background: var(--gray-400, #94a3b8); }

/* フォーム */
.form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.form-field { display: flex; flex-direction: column; gap: 4px; }
.form-field label { font-size: 11px; color: var(--ink-tertiary, #8a94a6); font-weight: 600; }

/* 必須マーカー：物件フォームの「必須」バッジに統一（ValidatedFormBuilder の ※ を全フォームで揃える） */
.req-mark { font-size: 0; margin-left: 4px; vertical-align: middle; }
.req-mark::after {
  content: "必須";
  font-size: 10px; font-weight: 700; color: #dc2626;
  background: #fef2f2; border: 1px solid #fecaca; border-radius: 3px;
  padding: 1px 5px; vertical-align: middle;
}
.form-field input, .form-field select, .form-field textarea {
  padding: 9px 11px; border: 1px solid var(--border-line, #e2e6ea); border-radius: 8px; font-size: 13px; background: #fff; font-family: inherit;
}
.form-field.col-span-2 { grid-column: span 2; }
.form-actions { display: flex; gap: 10px; margin-top: 18px; }
.field-errors { background: var(--orange-bg, #fdeee0); color: var(--orange-d, #b45309); padding: 10px 14px; border-radius: 8px; font-size: 12px; margin-bottom: 14px; }
.field-errors ul { margin: 6px 0 0; padding-left: 18px; }
.form-field label { display: flex; align-items: center; }

/* フィールドヒント（? アイコン） */
.field-hint {
  display: inline-flex; align-items: center; justify-content: center;
  width: 14px; height: 14px; border-radius: 50%;
  background: #e8f0fe; color: #2563d9;
  font-size: 9px; font-weight: 700; cursor: help;
  position: relative; margin-left: 4px; flex-shrink: 0;
  user-select: none; line-height: 1;
}
.hint-bubble {
  position: absolute; left: 0; bottom: calc(100% + 8px);
  transform: none;
  background: #1e293b; color: #fff;
  font-size: 11px; font-weight: 400; line-height: 1.6;
  padding: 8px 12px; border-radius: 7px;
  white-space: normal; width: 240px;
  opacity: 0; pointer-events: none;
  transition: opacity 0.2s ease; z-index: 300;
  box-shadow: 0 4px 16px rgba(0,0,0,.2);
}
.field-hint:hover .hint-bubble { opacity: 1; }

@media (max-width: 640px) { .form-grid { grid-template-columns: 1fr; } }

/* ログイン画面 */
.auth-body { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: var(--bg-base, #f4f6f9); }
.auth-flash { position: absolute; top: 18px; left: 0; right: 0; text-align: center; }
.auth-card { width: 360px; max-width: 92vw; background: #fff; border-radius: 14px; box-shadow: 0 10px 40px rgba(0,0,0,.08); padding: 32px 28px; }
.auth-logo { text-align: center; margin-bottom: 22px; }
.auth-logo b { font-size: 24px; }
.auth-logo b span { color: var(--blue, #2563d9); }
.auth-logo small { display: block; color: var(--ink-tertiary, #8a94a6); font-size: 10px; letter-spacing: .08em; margin-top: 4px; }
.auth-card .form-field { margin-bottom: 14px; }
.auth-hint { margin-top: 16px; text-align: center; font-size: 11px; color: var(--ink-tertiary, #8a94a6); }

/* ダッシュボード */
.kpi-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 16px; }
.kpi-card { background: #fff; border-radius: 12px; padding: 16px; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.kpi-card.kpi-warn .kpi-value { color: var(--orange-d, #b45309); }
.kpi-label { font-size: 11px; color: var(--ink-tertiary, #8a94a6); }
.kpi-value { font-size: 28px; font-weight: 800; margin-top: 4px; }
.dash-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.bar-row { display: flex; align-items: center; gap: 10px; margin: 7px 0; font-size: 12px; }
.bar-label { width: 110px; color: var(--ink-secondary, #5a6473); }
.bar-track { flex: 1; height: 10px; background: var(--gray-100, #eef1f4); border-radius: 6px; overflow: hidden; }
.bar-fill { height: 100%; background: var(--blue, #2563d9); }
.bar-num { width: 32px; text-align: right; font-weight: 700; }
.muted { color: var(--ink-tertiary, #8a94a6); font-size: 12px; }
@media (max-width: 880px) { .kpi-grid { grid-template-columns: repeat(3, 1fr); } .dash-cols { grid-template-columns: 1fr; } }

/* パイプライン カンバン */
.kanban { display: flex; gap: 12px; overflow-x: auto; padding-bottom: 12px; align-items: flex-start; }
.kanban-col { flex: 0 0 200px; background: var(--gray-50, #f7f9fb); border-radius: 12px; padding: 10px; }
.kanban-head { display: flex; justify-content: space-between; align-items: center; font-size: 12px; font-weight: 700; margin-bottom: 8px; color: var(--ink-secondary, #5a6473); }
.kanban-count { background: var(--blue, #2563d9); color: #fff; border-radius: 999px; padding: 1px 8px; font-size: 11px; }
.kanban-body { display: flex; flex-direction: column; gap: 8px; min-height: 40px; }
.kanban-card { display: block; background: #fff; border-radius: 8px; padding: 10px; box-shadow: 0 1px 4px rgba(0,0,0,.06); text-decoration: none; color: inherit; }
.kanban-card:hover { box-shadow: 0 3px 10px rgba(0,0,0,.1); }
.kanban-card-name { font-weight: 700; font-size: 13px; }
.kanban-card-meta { display: flex; gap: 8px; flex-wrap: wrap; font-size: 11px; color: var(--ink-tertiary, #8a94a6); margin-top: 4px; }
.kanban-stale { margin-top: 6px; font-size: 10px; color: var(--orange-d, #b45309); font-weight: 700; }
.kanban-empty { text-align: center; color: var(--gray-300, #cbd5e1); font-size: 12px; padding: 8px; }

/* 一覧カラムソート */
.cl-table th a.sort-link { color: inherit; text-decoration: none; cursor: pointer; display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.cl-table th a.sort-link:hover { color: var(--blue, #2563d9); }
.cl-table th a.sort-link.active { color: var(--blue, #2563d9); font-weight: 700; }
.cl-table th a.sort-link .arrow { font-size: 9px; }

/* 表示件数セレクト */
.per-select { padding: 5px 8px; border: 1px solid var(--border-line, #e2e6ea); border-radius: 8px; font-size: 12px; background: #fff; cursor: pointer; }

/* ？ヘルプ・ツールチップ（ホバー/フォーカスで説明を表示） */
.help-tip { position: relative; display: inline-flex; align-items: center; gap: 6px; font-size: 12px; color: var(--ink-secondary, #5a6473); cursor: help; }
.help-tip .help-mark { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 50%; border: 1px solid var(--ink-tertiary, #8a94a6); color: var(--ink-tertiary, #8a94a6); font-size: 11px; font-weight: 700; line-height: 1; }
.help-tip .help-text {
  position: absolute; top: 100%; right: 0; margin-top: 8px; z-index: 60;
  width: 340px; max-width: 80vw; background: #fff; color: var(--ink-primary, #1a2030);
  border: 1px solid var(--border-line, #e2e6ea); border-radius: 10px; box-shadow: 0 8px 28px rgba(0,0,0,.14);
  padding: 12px 14px; font-size: 12px; line-height: 1.7; text-align: left; font-weight: 400;
  opacity: 0; visibility: hidden; transition: opacity .15s ease; pointer-events: none;
}
.help-tip:hover .help-text, .help-tip:focus-within .help-text { opacity: 1; visibility: visible; }
.help-tip .help-text ul { margin: 6px 0 0; padding-left: 18px; }
.help-tip .help-text li { margin: 3px 0; }
.help-tip .help-text code { background: var(--gray-100, #eef1f4); padding: 1px 5px; border-radius: 4px; font-size: 11px; }

/* ロールバッジ（横長pill・幅可変で文字が切れない） */
.role-pill { display: inline-block; padding: 3px 12px; border-radius: 999px; font-size: 11px; font-weight: 700; color: #fff; white-space: nowrap; line-height: 1.5; }
.role-admin   { background: var(--red, #dc2626); }
.role-manager { background: var(--orange, #d97706); }
.role-staff   { background: var(--blue, #2563d9); }
.role-sales   { background: var(--navy, #273771); }
.role-other   { background: var(--gray-400, #94a3b8); }

/* ─── page-head: タイトル左・ボタン右 のflex配置を全ページで統一 ─── */
.page-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }

/* ─── 設定ページ レイアウト ─── */
.settings-grid { display: grid; grid-template-columns: 1fr; gap: 0; margin-bottom: 20px; align-items: start; }
.settings-card { padding: 28px; margin-bottom: 20px; }
.settings-card:last-child { margin-bottom: 0; }
.settings-form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.settings-form-grid .form-group { margin-bottom: 0; }
@media (max-width: 900px) { .settings-grid { grid-template-columns: 1fr; } .settings-form-grid { grid-template-columns: 1fr; } }

/* ─── チェックボックスグループ ─── */
.check-group { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
.check-item { display: flex; align-items: center; gap: 8px; font-size: 13px; cursor: pointer; }
.check-item input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--blue, #273771); cursor: pointer; }

/* ─── サイドバー アコーディオン ─── */
.sidebar-sub { display: none; flex-direction: column; gap: 1px; margin: 1px 0 4px; }
.sidebar-sub.open { display: flex; }
/* ネスト2段目: さらに左インデント */
.sidebar-subitem-deep { padding-left: 44px !important; font-size: 11px !important; }
/* ネストアコーディオンの親行（sidebar-subitem + sidebar-parent） */
.sidebar-subitem.sidebar-parent { display: flex; align-items: center; cursor: pointer; }

/* ─── 設定タブナビ ─── */
.settings-tabs { display: flex; gap: 4px; margin-bottom: 24px; border-bottom: 2px solid var(--border-subtle, #eef1f4); padding-bottom: 0; }
.settings-tab { padding: 10px 18px; font-size: 13px; font-weight: 600; color: var(--ink-tertiary, #8a94a6); text-decoration: none; border-radius: 8px 8px 0 0; border-bottom: 2px solid transparent; margin-bottom: -2px; transition: color .15s; }
.settings-tab:hover { color: var(--ink-primary, #1a2030); background: var(--gray-50, #f7f9fb); }
.settings-tab.active { color: var(--blue, #2563d9); border-bottom-color: var(--blue, #2563d9); background: transparent; }

/* ─── 帳票 フィルタ・KPI ─── */
.report-filter { display: flex; align-items: center; }
.report-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 14px; }
.report-kpi-card { background: #fff; border: 1px solid var(--border-subtle, #eef1f4); border-radius: 12px; padding: 18px 20px; }
.report-kpi-label { font-size: 11px; font-weight: 700; color: var(--ink-tertiary, #8a94a6); margin-bottom: 6px; }
.report-kpi-value { font-size: 28px; font-weight: 800; color: var(--ink-primary, #1a2030); line-height: 1; }
.report-kpi-unit { font-size: 14px; font-weight: 600; margin-left: 2px; }
.report-kpi-rate { font-size: 11px; color: var(--ink-tertiary, #8a94a6); margin-top: 4px; }
@media (max-width: 900px) { .report-kpi-row { grid-template-columns: repeat(2, 1fr); } }

/* ─── 帳票 sugokawa準拠テーブルスタイル ─── */
/* セクションタイトル: 左に4pxのブランドカラー縦帯 */
.rp-heading { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; margin: 0 0 10px; color: var(--ink-primary, #1a2030); }
.rp-heading::before { content: ""; display: inline-block; width: 4px; height: 22px; background: var(--blue, #2563d9); border-radius: 2px; flex-shrink: 0; }

/* 帳票のCSV出力ボタン（表示条件変更パネルのボタン行に表示） */
.rp-csv { background: #fff; color: var(--pg-navy, #123770); border: 1px solid var(--pg-navy, #123770);
  border-radius: 8px; padding: 8px 16px; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.rp-csv:hover { background: var(--pg-navy, #123770); color: #fff; }

/* テーブルラッパー: 横スクロール */
.rp-tables { overflow-x: auto; margin-bottom: 18px; }
.rp-table { width: 100%; border-collapse: collapse; font-size: 12px; white-space: nowrap; }
.rp-table th, .rp-table td { padding: 7px 10px; border: 1px solid #cfcfcf; text-align: center; vertical-align: middle; }
.rp-table th { background: #ececec; font-weight: 600; font-size: 11px; color: var(--ink-secondary, #5a6473); }
/* 第1列スティッキー（横スクロール時に透けないよう不透明背景＋右影を必ず持たせる）。
   背景は :where() で詳細度を落とし、行・セル側の色指定（.an-label 等）が上書きできるようにする */
.rp-table td:first-child, .rp-table th:first-child { position: sticky; left: 0; z-index: 2; text-align: left;
  box-shadow: 1px 0 0 #cfcfcf; }
.rp-table :where(td:first-child) { background: #fff; }
.rp-table th:first-child { background: #ececec; }
/* 2段ヘッダの2行目（先頭セルは rowspan 済みのため「実績」等のデータ列）は横固定しない。
   left/z-index を解除してラベル列の下をくぐらせる。
   ※ ステップ移行率（.sr-table）は独自の固定・重なり設計を持つため対象外 */
.rp-table:not(.sr-table) thead tr:not(:first-child) th:first-child { left: auto; z-index: auto; box-shadow: none; text-align: center; }
/* rowspan付きラベルセル（1行目の先頭）は2行目のセルより手前に描画する */
.rp-table:not(.sr-table) thead tr:first-child th:first-child { z-index: 4; }
/* 行・セル色クラス */
.rp-bg-total td { background: #ffdede !important; font-weight: 700; }
.rp-bg-total td:first-child { background: #ffdede !important; }
.rp-bg-sub td { background: #e9effb !important; }
.rp-bg-sub td:first-child { background: #e9effb !important; }
.rp-bg-data td { background: #fff; }
.rp-bg-data td:first-child { background: #fff; }
.rp-bg-weak td { background: #f7f7f7; color: var(--ink-tertiary, #8a94a6); font-size: 11px; }
/* ヘッダー2段目グループ列 */
.rp-th-group { background: #d8e4f7 !important; font-size: 11px; }
/* 合計列のみ赤背景 */
.rp-td-total { background: #ffdede !important; font-weight: 700; }
/* フィルターフォームカード */
.rp-filter-card { background: #f8f8f8; border-radius: 10px; padding: 14px 18px; margin-bottom: 14px; display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }

/* ─── 帳票 検索パネル ─── */
.rp-search-panel { border-radius: 10px; overflow: hidden; margin-bottom: 18px; border: 1px solid var(--gray-200); box-shadow: 0 2px 8px rgba(0,0,0,.06); }
.rp-search-head { background: var(--bg-sidebar, #1A2342); color: #fff; padding: 10px 18px; font-size: 13px; font-weight: 700; display: flex; justify-content: space-between; align-items: center; cursor: pointer; user-select: none; }
.rp-search-body { background: #fff; padding: 18px 20px 14px; }
.rp-search-grid { display: flex; flex-wrap: wrap; gap: 20px; margin-bottom: 14px; align-items: flex-end; }
.rp-search-field { display: flex; flex-direction: column; gap: 5px; }
.rp-search-label { font-size: 11px; font-weight: 700; color: var(--ink-tertiary); }
.rp-search-select { padding: 7px 10px; border: 1px solid var(--gray-200); border-radius: 6px; font-size: 13px; background: #fff; color: var(--ink-primary); outline: none; }
.rp-search-select:focus { border-color: var(--blue); }
.rp-search-input { padding: 7px 10px; border: 1px solid var(--gray-200); border-radius: 6px; font-size: 13px; background: #fff; outline: none; }
.rp-search-input:focus { border-color: var(--blue); }
.rp-search-actions { display: flex; justify-content: center; gap: 12px; padding-top: 12px; border-top: 1px solid var(--border-subtle); }
.rp-search-btn-primary { background: var(--rose, #00b6c9); color: #fff; border: none; border-radius: 6px; padding: 9px 28px; font-size: 13px; font-weight: 700; cursor: pointer; transition: background .15s; }
.rp-search-btn-primary:hover { background: #b54e63; }
.rp-search-btn-clear { background: var(--gray-100); color: var(--ink-secondary); border: 1px solid var(--gray-200); border-radius: 6px; padding: 9px 22px; font-size: 13px; font-weight: 700; text-decoration: none; display: inline-flex; align-items: center; }
.rp-search-btn-clear:hover { background: var(--gray-200); }

/* ═══ 顧客一覧 raclear準拠ワイドテーブル ═══ */
/* カラムグループ・スクロールナビ */
.cust-colgrp-nav { display: flex; gap: 4px; align-items: center; margin: 12px 0; flex-wrap: nowrap; overflow-x: auto; }
.cust-colgrp-btn { border: 1px solid var(--border-line, #e2e6ea); background: #fff; border-radius: 6px; padding: 7px 14px; font-size: 12px; font-weight: 600; color: var(--ink-secondary, #5a6473); cursor: pointer; white-space: nowrap; transition: filter .15s; }
.cust-colgrp-btn:hover { filter: brightness(0.97); }
.cust-colgrp-btn.g-basic   { border-left: 4px solid #1E2761; }
.cust-colgrp-btn.g-visit   { border-left: 4px solid #DC2626; }
.cust-colgrp-btn.g-status  { border-left: 4px solid #D97706; }
.cust-colgrp-btn.g-nego    { border-left: 4px solid #16A34A; }
.cust-colgrp-btn.g-sched   { border-left: 4px solid #2563D9; }
.cust-colgrp-btn.g-hearing { border-left: 4px solid #16A34A; }
.cust-colgrp-btn.g-sched2  { border-left: 4px solid #0EA5E9; }
.cust-colgrp-arrow { border: 1px solid var(--border-line, #e2e6ea); background: #fff; border-radius: 6px; width: 34px; height: 34px; cursor: pointer; color: var(--ink-tertiary); font-size: 14px; flex-shrink: 0; }
.cust-colgrp-arrow:hover { background: var(--gray-50, #f7f9fb); }

/* ワイドテーブル枠 */
.cust-table-wrap { position: relative; overflow-x: auto; overflow-y: auto; max-height: 70vh; border: 1px solid var(--border-line, #e2e6ea); border-radius: 10px; background: #fff; }
.cust-table { border-collapse: separate; border-spacing: 0; font-size: 12px; white-space: nowrap; width: max-content; min-width: 100%; }
.cust-table th, .cust-table td { border-right: 1px solid #eef1f4; border-bottom: 1px solid #eef1f4; padding: 7px 10px; text-align: center; vertical-align: middle; }
/* 2段ヘッダー */
.cust-table thead th { position: sticky; top: 0; z-index: 5; background: #ececec; font-weight: 700; font-size: 11px; color: var(--ink-secondary, #5a6473); }
.cust-table thead tr.cust-grp-row th { top: 0; z-index: 6; }
.cust-table thead tr.cust-col-row th { top: 34px; z-index: 5; }
/* グループヘッダー色 */
.cust-grp-basic  { background: #e7e9f2 !important; color: #1E2761 !important; }
.cust-grp-visit  { background: #fdeaea !important; color: #DC2626 !important; }
.cust-grp-status { background: #fdf2e2 !important; color: #B45309 !important; }
.cust-grp-nego   { background: #e8f6ec !important; color: #15803D !important; }
.cust-grp-sched  { background: #e9effb !important; color: #2563D9 !important; }
.cust-grp-hearing { background: #e8f6ec !important; color: #15803D !important; }
.cust-grp-sched2  { background: #e0f2fe !important; color: #0369A1 !important; }
/* 先行・実績スケジュールセルの 予/実 タグ（旧） */
.cust-sched-cell .sched-tag { display:inline-block; width:16px; text-align:center; border-radius:3px; font-size:9px; font-weight:700; margin-right:3px; color:#fff; }
.cust-sched-cell .sched-tag.plan  { background:#94a3b8; }
.cust-sched-cell .sched-tag.done2 { background:#16a34a; }
.cust-sched-cell .sched-empty { color:#cbd5e1; }

/* 先行・実績スケジュールセル（改善版・状態で色分け） */
.sched2-cell { min-width: 78px; padding: 6px 8px !important; text-align: center; }
/* 完了ステップ: 左に緑バー＋淡い緑背景 */
.sched2-cell.done { background: #f0fdf4 !important; box-shadow: inset 3px 0 0 #16a34a; }
/* 予定（未来）ステップ: 左に青バー＋淡い青背景 */
.sched2-cell.plan { background: #eff6ff !important; box-shadow: inset 3px 0 0 #3b82f6; }
/* 未到達: そのまま */
.sched2-cell.none { }
.sched2-line { display: flex; align-items: center; justify-content: center; gap: 4px; font-size: 12px; line-height: 1.5; white-space: nowrap; }
.sched2-line.done { color: #15803d; font-weight: 700; }
.sched2-line.plan { color: #2563d9; font-weight: 700; }
.sched2-line.plan-sub { color: #94a3b8; font-size: 10px; font-weight: 400; }
.sched2-line.none { color: #d1d5db; }
.sched2-ico { display: inline-flex; align-items: center; justify-content: center; width: 15px; height: 15px; border-radius: 50%; font-size: 9px; font-weight: 700; color: #fff; }
.sched2-line.done .sched2-ico { background: #16a34a; }
.sched2-line.plan .sched2-ico { background: #3b82f6; font-size: 8px; }
/* 失注日（赤の ✕ バッジ）。契約系日付列も予実スケジュールと同じバッジ表記に統一 */
.sched2-cell.lost { background: #fef2f2 !important; box-shadow: inset 3px 0 0 #dc2626; }
.sched2-line.lost { color: #b91c1c; font-weight: 700; }
.sched2-line.lost .sched2-ico { background: #dc2626; font-size: 8px; }
/* 偶数行でも状態色を維持 */
.cust-table tbody tr:nth-child(even) td.sched2-cell.done { background: #eafaf0 !important; }
.cust-table tbody tr:nth-child(even) td.sched2-cell.plan { background: #e7f0ff !important; }
.cust-table tbody tr:nth-child(even) td.sched2-cell.lost { background: #fdeaea !important; }
/* グループ末尾の太い区切り線 */
.cust-table .grp-end { border-right: 2px solid #cfd4da; }
/* 固定第1列（氏名） */
.cust-table .cust-sticky-col { position: sticky; left: 0; z-index: 4; background: #fff; text-align: left; min-width: 160px; border-right: 1px solid #d8dde3; box-shadow: 4px 0 6px -2px rgba(0,0,0,.12); }
/* 固定列ヘッダーは最前面（横スクロール時に他グループヘッダーが透けないように） */
/* tr.cust-grp-row th(z6)より詳細度を上げて確実に最前面化 */
.cust-table thead .cust-sticky-col,
.cust-table thead tr.cust-grp-row th.cust-sticky-col,
.cust-table thead tr.cust-col-row th.cust-sticky-col { z-index: 8 !important; background: #ececec; }
.cust-table tbody tr:nth-child(even) .cust-sticky-col { background: #fafbfc; }
.cust-table tbody tr:hover td { background: #f5f8ff; }
.cust-table tbody tr:hover .cust-sticky-col { background: #eef4ff; }
.cust-table tbody tr:nth-child(even) td { background: #fafbfc; }
/* 氏名セル内のアクションアイコン */
.cust-name { font-weight: 700; color: var(--ink-primary, #1a2030); }
.cust-name-actions { display: flex; gap: 4px; margin-top: 5px; }
.cust-ico-btn { width: 26px; height: 24px; border: 1px solid var(--border-line, #e2e6ea); border-radius: 5px; background: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 11px; color: var(--ink-secondary, #5a6473); text-decoration: none; cursor: pointer; }
.cust-ico-btn:hover { background: var(--blue, #2563d9); color: #fff; border-color: var(--blue, #2563d9); }
/* バッジ */
.cust-tag { display: inline-block; padding: 1px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; color: #fff; margin: 1px; white-space: nowrap; }
.cust-tag.t-status   { background: #6b7280; }
.cust-tag.t-cat      { background: #0d9488; }
.cust-tag.t-source   { background: #7c3aed; }
.cust-tag.t-active   { background: #16a34a; }
.cust-tag.t-lost     { background: #dc2626; }
/* ランク丸 */
.cust-rank { display: inline-flex; align-items: center; justify-content: center; width: 22px; height: 22px; border-radius: 50%; font-size: 11px; font-weight: 700; color: #fff; }
.cust-rank-A { background: #dc2626; } .cust-rank-B { background: #d97706; }
.cust-rank-C { background: #2563d9; } .cust-rank-D { background: #94a3b8; }
/* スケジュールセル（予定/実績） */
.cust-sched-cell { font-size: 10px; line-height: 1.5; text-align: left; min-width: 86px; }
.cust-sched-cell .plan { color: var(--ink-tertiary, #8a94a6); }
.cust-sched-cell .done { color: #16a34a; font-weight: 600; }
/* 顧客検索 行レイアウト */
.cust-search-rows { display: flex; flex-direction: column; gap: 12px; margin-bottom: 14px; }
.cust-search-row { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; }
.cust-search-rl { font-size: 12px; font-weight: 700; color: var(--ink-tertiary, #8a94a6); min-width: 92px; }
.cust-search-tilde { color: var(--ink-tertiary, #8a94a6); font-size: 13px; }
.cust-search-hr { width: 100%; border: none; border-top: 1px solid var(--border-subtle, #eef1f4); margin: 4px 0; }

/* 一括編集バー */
.cust-bulk-bar { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; margin-bottom: 10px; background: #f7f9fb; border: 1px solid var(--border-line, #e2e6ea); border-radius: 8px; transition: background .15s, border-color .15s; }
.cust-bulk-bar.active { background: #eef4ff; border-color: var(--blue, #2563d9); }
.cust-bulk-count { font-size: 13px; color: var(--ink-secondary, #5a6473); }
.cust-bulk-count b { font-size: 16px; color: var(--blue, #2563d9); }

/* 上部ツールバー */
.cust-toolbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 8px; gap: 12px; flex-wrap: wrap; }
.cust-count { font-size: 13px; color: var(--ink-secondary, #5a6473); }
.cust-count b { font-size: 17px; color: var(--ink-primary, #1a2030); }

/* ─── 設定画面・詳細画面 共通フォームスタイル ─── */
.section-title { font-size: 13px; font-weight: 700; color: var(--ink-secondary, #5a6473); margin: 0 0 18px; padding-bottom: 10px; border-bottom: 1px solid var(--border-subtle, #eef1f4); letter-spacing: .04em; }

.form-group { display: flex; flex-direction: column; gap: 5px; margin-bottom: 16px; }
.form-group:last-child { margin-bottom: 0; }
.form-label { font-size: 11px; font-weight: 700; color: var(--ink-tertiary, #8a94a6); }
.form-control { padding: 9px 11px; border: 1px solid var(--border-line, #e2e6ea); border-radius: 8px; font-size: 13px; background: #fff; font-family: inherit; width: 100%; box-sizing: border-box; }
.form-control:focus { outline: none; border-color: var(--blue, #2563d9); box-shadow: 0 0 0 3px rgba(37,99,217,.1); }
.form-error { font-size: 11px; color: var(--orange-d, #b45309); }
.form-hint  { font-size: 11px; color: var(--ink-tertiary, #8a94a6); margin-top: 4px; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
@media (max-width: 600px) { .form-row { grid-template-columns: 1fr; } }

/* 詳細テーブル（show画面） */
.detail-table { width: 100%; border-collapse: collapse; font-size: 13px; }
.detail-table th, .detail-table td { padding: 10px 12px; text-align: left; border-bottom: 1px solid var(--border-subtle, #eef1f4); vertical-align: top; }
.detail-table th { width: 200px; font-size: 11px; font-weight: 700; color: var(--ink-tertiary, #8a94a6); white-space: nowrap; }
.detail-table tbody tr:last-child th,
.detail-table tbody tr:last-child td { border-bottom: none; }

/* ─── 録音パネル ─── */
.recorder-panel { background: #fff; border: 1px solid var(--border-line); border-radius: var(--r); padding: 16px; }
.recorder-controls { display: flex; flex-direction: column; gap: 10px; }
.recorder-status { font-size: 12px; color: var(--ink-tertiary); padding: 4px 0; }
.recorder-status--recording { color: var(--red, #dc2626); font-weight: 700; }
.recorder-status--processing { color: var(--orange, #d97706); font-weight: 700; }
.recorder-status--paused { color: var(--pg-orange, #fa7748); font-weight: 700; }
.recorder-status--done { color: var(--green-d, #15803d); font-weight: 700; }
.recorder-status--error { color: var(--red, #dc2626); }
.btn.recording-active { background: var(--red, #dc2626) !important; animation: pulse 1.2s infinite; }
@keyframes pulse { 0%,100%{ opacity:1; } 50%{ opacity:.7; } }

/* ─── ドラッグ&ドロップゾーン ─── */
.drop-zone { border: 2px dashed var(--border-line); border-radius: var(--r); padding: 20px 16px; text-align: center; transition: all .2s; background: var(--bg-base); cursor: pointer; }
.drop-zone:hover, .drop-zone--active { border-color: var(--blue, #273771); background: var(--blue-bg, #eef1f8); }
.drop-zone--uploading { opacity: .6; pointer-events: none; }
.drop-zone-icon { font-size: 28px; margin-bottom: 6px; }
.drop-zone-text { font-size: 13px; font-weight: 700; color: var(--ink-secondary); margin-bottom: 3px; }
.drop-zone-sub { font-size: 11px; color: var(--ink-tertiary); margin-bottom: 10px; }
.drop-zone-btn { display: inline-block; padding: 5px 14px; border-radius: 6px; background: #fff; border: 1.5px solid var(--border-line); font-size: 11px; font-weight: 700; color: var(--blue); cursor: pointer; }
.drop-zone-btn:hover { border-color: var(--blue); background: var(--blue-bg); }
.drop-zone--ready { border-color: var(--green-d); background: var(--green-bg, #ecf2ee); }
.drop-zone--ready .drop-zone-icon { display: none; }

/* ─── 全幅シェブロン商談ステップセレクター ─── */
.step-selector-full { display: flex; width: 100%; gap: 0; overflow: hidden; }
.step-chevron {
  flex: 1; min-width: 0; position: relative; cursor: pointer;
  background: #DBD7CC; color: var(--gray-600);
  padding: 5px 18px 5px 12px;
  clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%, 12px 50%);
  transition: background .15s; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; min-height: 52px;
}
.step-chevron.first { clip-path: polygon(0 0, calc(100% - 12px) 0, 100% 50%, calc(100% - 12px) 100%, 0 100%); padding-left: 8px; }
.step-chevron + .step-chevron { margin-left: -8px; }
.step-chevron:hover { background: #C7C2B4; }
.step-chevron.active { background: var(--turquoise, #00b6c9); color: #fff; z-index: 2; }
.step-chevron-label { font-size: 11px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; margin-bottom: 3px; }
.step-chevron-dates { cursor: pointer; width: 100%; }
.step-date-row { display: flex; align-items: center; gap: 3px; justify-content: center; margin-bottom: 2px; }
.step-date-row:last-child { margin-bottom: 0; }
.step-date-tag { font-size: 9px; font-weight: 800; padding: 1px 4px; border-radius: 3px; line-height: 1.3; flex-shrink: 0; }
.step-date-tag.actual  { background: var(--green-d,#15803d); color: #fff; }
.step-date-tag.planned { background: var(--blue,#273771); color: #fff; }
.step-chevron.active .step-date-tag.actual  { background: rgba(255,255,255,.25); color: #fff; border: 1px solid rgba(255,255,255,.5); }
.step-chevron.active .step-date-tag.planned { background: rgba(255,255,255,.15); color: #fff; border: 1px solid rgba(255,255,255,.4); }
.step-date-val { font-size: 10px; font-weight: 600; white-space: nowrap; color: var(--gray-800); letter-spacing: -.01em; }
.step-date-val.empty { font-size: 9px; color: var(--gray-400); }
.step-chevron.active .step-date-val { color: rgba(255,255,255,.95); }
.step-chevron.active .step-date-val.empty { color: rgba(255,255,255,.5); }

/* 日付入力ポップアップ */
.step-date-popup {
  position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
  background: #fff; border: 1px solid var(--border-line); border-radius: 8px;
  box-shadow: 0 8px 24px rgba(0,0,0,.12); padding: 10px 12px; z-index: 200;
  min-width: 160px; text-align: left;
}
.step-date-popup-row { display: flex; align-items: center; gap: 6px; margin-bottom: 6px; }
.step-date-popup-row label { font-size: 10px; font-weight: 700; color: var(--ink-tertiary); width: 30px; flex-shrink: 0; }
.step-date-popup-row input { flex: 1; font-size: 11px; border: 1px solid var(--border-line); border-radius: 4px; padding: 3px 6px; }

/* ============================================================
   Digima 顧客一覧画面 スタイル
   デザイントークン: primary=#00a0c8 / navy=#17344a
   ============================================================ */

.dg-layout { display:flex; height:calc(100vh - 64px); overflow:hidden; }
.dg-sidebar { width:240px; flex-shrink:0; background:#fff; border-right:1px solid #e2e6ea; overflow-y:auto; }
.dg-main { flex:1; display:flex; flex-direction:column; overflow:hidden; }

/* サイドバー */
.dg-sidebar-section { padding:12px 0; border-bottom:1px solid #eef1f4; }
.dg-sidebar-title { padding:6px 16px 8px; font-size:11px; font-weight:700; color:#8a94a6; letter-spacing:.05em; text-transform:uppercase; }
.dg-filter-item { display:flex; flex-direction:column; gap:1px; padding:8px 16px; border-left:2px solid transparent; cursor:pointer; transition:background .12s,border-color .12s; }
.dg-filter-item:hover,.dg-filter-item.active { background:#e8f6fb; border-left-color:#00a0c8; }
.dg-filter-label { font-size:11px; color:#8a94a6; line-height:1.3; }
.dg-filter-value { font-size:13px; color:#17344a; font-weight:500; line-height:1.4; }
.dg-add-filter { display:block; padding:8px 16px; font-size:12px; color:#00a0c8; text-decoration:none; }
.dg-add-filter:hover { text-decoration:underline; }

/* ページヘッダー */
.dg-page-head { display:flex; align-items:center; justify-content:space-between; padding:12px 20px; border-bottom:1px solid #e2e6ea; flex-shrink:0; background:#fff; }
.dg-page-tabs { display:flex; gap:0; }
.dg-page-tab { padding:6px 0; font-size:15px; font-weight:700; color:#17344a; border-bottom:2px solid #17344a; margin-right:24px; }

/* ツールバー */
.dg-toolbar { display:flex; align-items:center; gap:8px; padding:8px 16px; border-bottom:1px solid #e2e6ea; flex-shrink:0; background:#fff; }
.dg-counter { font-size:13px; color:#4b5468; white-space:nowrap; }
.dg-counter strong { color:#17344a; }
.dg-search-wrap { position:relative; margin-left:auto; }
.dg-search { padding:7px 11px 7px 32px; border:1px solid #e2e6ea; border-radius:6px; font-size:13px; background:#f7f9fb; min-width:220px; outline:none; transition:border-color .15s; }
.dg-search:focus { border-color:#00a0c8; background:#fff; }
.dg-search-icon { position:absolute; left:10px; top:50%; transform:translateY(-50%); color:#8a94a6; pointer-events:none; }

/* テーブル */
.dg-table-wrap { flex:1; overflow:auto; }
.dg-table { width:100%; border-collapse:collapse; font-size:13px; white-space:nowrap; }
.dg-table thead { position:sticky; top:0; z-index:5; }
.dg-th { padding:10px 12px; font-size:12px; font-weight:600; color:#8a94a6; background:#f7f9fb; border-bottom:2px solid #e2e6ea; text-align:left; }
.dg-th-check { width:44px; padding:10px 12px; background:#f7f9fb; border-bottom:2px solid #e2e6ea; text-align:center; }
.dg-th-sortable { cursor:pointer; user-select:none; }
.dg-td { padding:10px 12px; font-size:13px; color:#17344a; border-bottom:1px solid #eef1f4; max-width:200px; overflow:hidden; text-overflow:ellipsis; }
.dg-td-check { padding:10px 12px; border-bottom:1px solid #eef1f4; text-align:center; width:44px; }
.dg-td-name a { color:#00a0c8; text-decoration:none; font-weight:500; }
.dg-td-name a:hover { text-decoration:underline; }
.dg-row:hover .dg-td,.dg-row:hover .dg-td-check { background:rgba(0,160,200,.04); }
.dg-row.selected .dg-td,.dg-row.selected .dg-td-check { background:#e8f6fb; }

/* フッター */
.dg-footer { position:sticky; bottom:0; z-index:10; background:#fff; border-top:1px solid #e2e6ea; display:flex; align-items:center; gap:12px; padding:8px 16px; flex-shrink:0; }
.dg-per-page { display:flex; align-items:center; gap:6px; font-size:13px; color:#8a94a6; }
.dg-per-page select { padding:4px 8px; border:1px solid #e2e6ea; border-radius:5px; font-size:13px; }

/* ステータスバッジ */
.dg-status { display:inline-flex; align-items:center; gap:5px; font-size:12px; white-space:nowrap; }
.dg-status::before { content:""; display:inline-block; width:8px; height:8px; border-radius:50%; flex-shrink:0; }
.dg-status-prospective { color:#0066aa; } .dg-status-prospective::before { background:#00a0c8; }
.dg-status-negotiating { color:#b45309; } .dg-status-negotiating::before { background:#f59e0b; }
.dg-status-contracted  { color:#0e7a52; } .dg-status-contracted::before  { background:#19a974; }
.dg-status-lost        { color:#b91c1c; } .dg-status-lost::before        { background:#dc2626; }
.dg-status-cancelled   { color:#6b7280; } .dg-status-cancelled::before   { background:#9ca3af; }

/* サイドバーアコーディオン開閉ボタン */
.dg-sidebar-toggle { position:fixed; left:239px; top:50%; transform:translateY(-50%); z-index:20; width:16px; height:40px; background:#fff; border:1px solid #e2e6ea; border-radius:0 6px 6px 0; display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:10px; color:#8a94a6; }

/* ─── Digima風ページネーション ─── */
.dg-kaminari { display: flex; align-items: center; gap: 2px; }
.dg-pg-btn {
  display: inline-flex; align-items: center; justify-content: center;
  min-width: 32px; height: 32px; padding: 0 6px;
  border: 1px solid #e2e6ea; border-radius: 5px;
  font-size: 13px; color: #17344a; background: #fff;
  text-decoration: none; cursor: pointer; transition: border-color .12s, color .12s;
}
.dg-pg-btn:hover { border-color: #00a0c8; color: #00a0c8; }
.dg-pg-btn--active { border-color: #00a0c8; color: #00a0c8; font-weight: 700; pointer-events: none; }
.dg-pg-arrow { color: #4b5468; }
.dg-pg-arrow:hover { color: #00a0c8; border-color: #00a0c8; }
.dg-pg-gap { border: none; color: #8a94a6; cursor: default; background: transparent; }
.dg-pg-gap:hover { border: none; color: #8a94a6; }

/* ===== パイプライン（ステップ一覧 商談ステップ×案件リスト） ===== */
.pl-tabs { display:flex; gap:24px; border-bottom:2px solid #e6e9ef; margin:4px 0 16px; }
.pl-tab {
  background:none; border:none; cursor:pointer; padding:10px 2px;
  font-size:15px; font-weight:700; color:#8a94a6; position:relative; top:2px;
  border-bottom:3px solid transparent;
}
.pl-tab.is-active { color:#273771; border-bottom-color:#273771; }
.pl-badge {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:20px; height:20px; padding:0 6px; margin-left:4px;
  background:#ef4444; color:#fff; border-radius:999px; font-size:12px; font-weight:700;
}

.pl-filter { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:14px; }
.pl-tilde { color:#8a94a6; }
.pl-scope-toggle { margin-left:auto; display:inline-flex; border:1px solid #c9d3e0; border-radius:7px; overflow:hidden; }
.pl-scope-toggle button {
  background:#fff; border:none; cursor:pointer; padding:7px 16px; font-size:13px; color:#4b5468; font-weight:600;
}
.pl-scope-toggle button.is-on { background:#273771; color:#fff; }

.pl-kanban { display:flex; gap:12px; overflow-x:auto; padding-bottom:10px; }
.pl-col { flex:0 0 220px; min-width:220px; background:#f7f9fc; border:1px solid #e6e9ef; border-radius:10px; overflow:hidden; }
.pl-col-head { color:#fff; padding:12px 14px; }
.pl-col-name { font-size:14px; font-weight:700; display:flex; align-items:center; gap:7px; }
.pl-num {
  display:inline-flex; align-items:center; justify-content:center;
  width:20px; height:20px; border-radius:999px;
  background:rgba(255,255,255,.28); font-size:12px; font-weight:700;
}
.pl-col-count { font-size:28px; font-weight:800; line-height:1.1; margin-top:2px; }
.pl-col-rate { font-size:12px; opacity:.95; min-height:16px; }
.pl-col-body { padding:8px; display:flex; flex-direction:column; gap:6px; }
.pl-empty { color:#9aa3b2; font-size:12px; padding:8px 4px; text-align:center; }

.pl-card {
  display:block; background:#fff; border:1px solid #e6e9ef; border-left:3px solid #cbd3df;
  border-radius:7px; padding:8px 10px; text-decoration:none; transition:box-shadow .12s, border-color .12s;
}
.pl-card:hover { box-shadow:0 2px 8px rgba(20,40,80,.10); }
.pl-card-warn  { border-left-color:#f59e0b; }
.pl-card-alert { border-left-color:#ef4444; }
.pl-card-name { font-size:13px; font-weight:700; color:#1f2a44; }
.pl-card-days { font-size:11px; color:#8a94a6; margin-top:2px; }
.pl-days-warn  { color:#b45309; font-weight:700; }
.pl-days-alert { color:#dc2626; font-weight:700; }

.pl-more > summary { list-style:none; cursor:pointer; color:#2563d9; font-size:12px; font-weight:700; padding:6px 4px; text-align:center; }
.pl-more > summary::-webkit-details-marker { display:none; }
.pl-more[open] > summary { color:#8a94a6; }
.pl-more { display:flex; flex-direction:column; gap:6px; }

.pl-scroll-hint { color:#9aa3b2; font-size:12px; text-align:right; margin-top:6px; }

.pl-step-dot { display:inline-block; width:10px; height:10px; border-radius:999px; margin-right:6px; vertical-align:middle; }
.pl-stall { font-weight:700; white-space:nowrap; }
.pl-stall-warn  { color:#b45309; }
.pl-stall-alert { color:#dc2626; }

/* 次アポ未設定アラートの「＋アポを入れる」（ダッシュボードと同じピル型） */
.pl-apo-btn { display:inline-block; font-size:11px; font-weight:700; color:#2563d9;
  border:1px solid #2563d9; border-radius:999px; padding:4px 12px; text-decoration:none;
  white-space:nowrap; transition:all .12s; }
.pl-apo-btn:hover { background:#2563d9; color:#fff; }

/* 帳票の実績数値ドリルリンク */
.rp-drill { color:#2563d9; text-decoration:underline; cursor:pointer; }
.rp-drill:hover { color:#1746a2; }

/* ══════════════════════════════════════
   ダッシュボード
   ══════════════════════════════════════ */

/* タブ */
.db-tabs {
  display: flex;
  gap: 4px;
  margin-bottom: 20px;
  border-bottom: 2px solid var(--gray-100);
}
.db-tab {
  padding: 10px 20px;
  font-size: 13px;
  font-weight: 700;
  color: var(--gray-400);
  background: none;
  border: none;
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  cursor: pointer;
  transition: color .15s, border-color .15s;
}
.db-tab:hover { color: var(--navy); }
.db-tab.active { color: var(--navy); border-bottom-color: var(--navy); }

/* TODAY バナー */
.db-today-banner {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--navy);
  color: #fff;
  border-radius: var(--r);
  padding: 14px 20px;
  margin-bottom: 16px;
}
.db-today-label {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .12em;
  background: rgba(255,255,255,.15);
  padding: 2px 8px;
  border-radius: 4px;
}
.db-today-count {
  font-size: 15px;
  font-weight: 800;
}
.db-today-sub {
  font-size: 11px;
  color: rgba(255,255,255,.6);
}

/* KPIグリッド */
.db-kpi-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-bottom: 4px;
}
@media (max-width: 900px) {
  .db-kpi-grid { grid-template-columns: repeat(2, 1fr); }
}

/* KPIカード */
.db-kpi-card {
  --kpi-color: #3B82F6;
  background: #fff;
  border: 1px solid var(--gray-100);
  border-top: 3px solid var(--kpi-color);
  border-radius: var(--r);
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.db-kpi-icon { font-size: 20px; margin-bottom: 2px; }
.db-kpi-label {
  font-size: 10px;
  font-weight: 700;
  color: var(--gray-400);
  text-transform: uppercase;
  letter-spacing: .05em;
}
.db-kpi-value {
  font-size: 36px;
  font-weight: 800;
  color: var(--navy);
  line-height: 1.1;
  font-family: 'Manrope', sans-serif;
}
.db-kpi-unit {
  font-size: 14px;
  font-weight: 400;
  color: var(--gray-400);
  margin-left: 2px;
}
.db-kpi-compare {
  font-size: 11px;
  display: flex;
  align-items: center;
  gap: 4px;
  margin-top: 4px;
}
.db-kpi-compare-label { color: var(--gray-400); }
.db-kpi-up   { color: #10B981; font-weight: 700; }
.db-kpi-down { color: #EF4444; font-weight: 700; }

/* 社員設定: 複数所属チェックボックス & バッジ */
.ss-checkgrid { display:flex; flex-wrap:wrap; gap:8px 16px; margin-top:6px; }
.ss-check { display:inline-flex; align-items:center; gap:6px; font-size:13px; cursor:pointer;
  border:1px solid var(--gray-200,#e2e6ea); border-radius:6px; padding:6px 10px; background:#fff; }
.ss-check input { width:15px; height:15px; cursor:pointer; }
.ss-badge { display:inline-block; font-size:11px; font-weight:600; padding:2px 8px; margin:1px 3px 1px 0;
  border-radius:4px; background:#eef2f8; color:#273771; border:1px solid #dbe3ef; }
.ss-badge-brand { background:#eef7f0; color:#137a4b; border-color:#cfe9d8; }

/* パイプライン: 到達数ヘッダー下の「現在このステップ」件数 */
.pl-col-cur { font-size:11px; opacity:.92; margin-top:4px; border-top:1px solid rgba(255,255,255,.25); padding-top:4px; }

/* パイプライン: 集計対象の注釈 */
.pl-note { background:#fff7ed; border:1px solid #fed7aa; color:#9a3412; font-size:12.5px;
  border-radius:8px; padding:8px 12px; margin:4px 0 14px; }

/* パイプライン: ヘッダー全体クリック可能 */
.pl-col-head-link { transition: filter .12s, box-shadow .12s; }
.pl-col-head-link:hover { filter: brightness(1.06); box-shadow: inset 0 0 0 2px rgba(255,255,255,.5); }

/* パイプライン: 滞留アラートの一括変更バー */
.pl-bulk-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; background:#f7f9fc;
  border:1px solid #e6e9ef; border-radius:8px; padding:10px 14px; margin-bottom:10px; font-size:13px; color:#4b5468; }
/*
 * This is a manifest file that'll be compiled into application.css, which will include all the files
 * listed below.
 *
 * Any CSS (and SCSS, if configured) file within this directory, lib/assets/stylesheets, or any plugin's
 * vendor/assets/stylesheets directory can be referenced here using a relative path.
 *
 * You're free to add application-wide styles to this file and they'll appear at the bottom of the
 * compiled file so the styles you add here take precedence over styles defined in any other CSS
 * files in this directory. Styles in this file should be added after the last require_* statement.
 * It is generally better to create a new file per style scope.
 *


 */
