/* demo/project-management/styles.css — WBSコンソール（WBS_NEO 準拠） */
.pmk { --pm-navy:#1a1a2e; --pm-blue:#2563eb; --pm-bg:#f1f5f9; --pm-card:#fff;
  --pm-border:#e2e8f0; --pm-text:#1a1a2e; --pm-muted:#64748b;
  display:flex; min-height:100%; background:var(--pm-bg); color:var(--pm-text);
  font-family:"Noto Sans JP",sans-serif; font-size:13px; }

/* サイドバー */
.pm-side { width:180px; flex:none; background:var(--pm-navy); color:#cbd5e1; padding:16px 12px; }
.pm-logo { color:#fff; font-weight:800; font-size:15px; display:flex; flex-direction:column; line-height:1.2; margin-bottom:18px; }
.pm-logo small { font-size:9px; letter-spacing:.14em; color:#7c8aa5; font-weight:400; }
.pm-navlink { display:flex; align-items:center; width:100%; text-align:left; background:none; border:none; color:#cbd5e1; padding:9px 11px; border-radius:8px; font-size:13px; cursor:pointer; margin-bottom:3px; }
.pm-navlink:hover { background:rgba(255,255,255,.07); }
.pm-navlink.sel { background:var(--pm-blue); color:#fff; }
.pm-badge-num { margin-left:auto; background:#ef4444; color:#fff; font-size:10px; border-radius:999px; padding:1px 7px; }

/* メイン */
.pm-main { flex:1; min-width:0; display:flex; flex-direction:column; }
.pm-topbar { display:flex; align-items:center; background:var(--pm-card); border-bottom:1px solid var(--pm-border); padding:12px 18px; }
.pm-title { font-weight:700; font-size:15px; }
.pm-user { margin-left:auto; display:flex; align-items:center; gap:8px; font-size:13px; color:var(--pm-text); }
.pm-user small { color:var(--pm-muted); } .pm-av { width:30px; height:30px; border-radius:50%; background:var(--pm-blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.pm-page { padding:18px; overflow:auto; }

/* 工程ゲージ */
.pm-gauges { display:flex; gap:12px; margin-bottom:16px; flex-wrap:wrap; }
.pm-gauge { background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; padding:10px 12px; min-width:110px; }
.pm-gauge-bar { display:block; height:6px; background:#eef2f7; border-radius:999px; overflow:hidden; margin-bottom:6px; }
.pm-gauge-bar span { display:block; height:100%; }
.pm-gauge b { font-size:12px; } .pm-gauge small { color:var(--pm-muted); margin-left:6px; }

/* タブ */
.pm-tabs { display:flex; gap:4px; border-bottom:1px solid var(--pm-border); margin-bottom:12px; }
.pm-tab { background:none; border:none; border-bottom:2px solid transparent; color:var(--pm-muted); padding:9px 14px; cursor:pointer; font-size:13px; }
.pm-tab.sel { color:var(--pm-blue); border-bottom-color:var(--pm-blue); font-weight:700; }

/* テーブル */
.pm-table { width:100%; border-collapse:collapse; background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; overflow:hidden; }
.pm-table th { background:#f8fafc; color:var(--pm-muted); font-size:11px; text-align:left; padding:9px 12px; border-bottom:1px solid var(--pm-border); }
.pm-table td { padding:10px 12px; border-bottom:1px solid var(--pm-border); font-size:13px; }
.pm-table tr:last-child td { border-bottom:none; }
.pm-table tr.is-closed { color:var(--pm-muted); background:#fafbfc; }
.pm-phase { margin-right:5px; }
.pm-prog { display:inline-flex; align-items:center; gap:8px; width:160px; }
.pm-prog-fill { display:block; height:8px; border-radius:999px; }
.pm-prog { position:relative; }
.pm-prog > .pm-prog-fill { flex:none; }
.pm-prog::before { content:''; position:absolute; left:0; right:34px; top:50%; transform:translateY(-50%); height:8px; background:#eef2f7; border-radius:999px; z-index:0; }
.pm-prog .pm-prog-fill { position:relative; z-index:1; }
.pm-prog i { margin-left:auto; font-style:normal; font-size:11px; color:var(--pm-muted); width:30px; text-align:right; }
.pm-prog-ops button { width:26px; height:26px; border:1px solid var(--pm-border); background:#fff; border-radius:6px; cursor:pointer; margin-right:4px; font-size:14px; color:var(--pm-text); }
.pm-prog-ops button:disabled { opacity:.4; cursor:default; }

/* ガント */
.pm-gantt { background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; overflow:hidden; }
.pm-gantt-head, .pm-gantt-row { display:flex; align-items:center; border-bottom:1px solid var(--pm-border); }
.pm-gantt-row:last-child { border-bottom:none; }
.pm-gantt-name { width:200px; flex:none; padding:9px 12px; font-size:12px; }
.pm-gantt-head .pm-gantt-col { flex:1; text-align:center; font-size:10px; color:var(--pm-muted); padding:6px 0; border-left:1px solid #eef2f7; }
.pm-gantt-track { position:relative; flex:1; height:34px; }
.pm-gantt-bar { position:absolute; top:8px; height:18px; border-radius:5px; display:flex; align-items:center; justify-content:center; }
.pm-gantt-bar i { font-style:normal; font-size:10px; color:#fff; }

/* 統計カード（課題） */
.pm-stats { display:flex; gap:12px; margin-bottom:14px; }
.pm-stat { background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; padding:12px 18px; cursor:pointer; text-align:left; }
.pm-stat.sel { border-color:var(--pm-blue); }
.pm-stat strong { display:block; font-size:22px; } .pm-stat span { font-size:12px; color:var(--pm-muted); }

/* ピル */
.pm-pill { font-size:11px; border:1px solid; border-radius:999px; padding:2px 9px; font-weight:700; }

/* 議事録 */
.pm-minute { background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; padding:13px 15px; margin-bottom:10px; }
.pm-minute-head { display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.pm-minute-head b { color:var(--pm-text); } .pm-minute-date { color:var(--pm-muted); font-size:12px; }
.pm-minute-sum { font-size:12px; color:#334155; line-height:1.6; }
.pm-ai { background:#eef2ff; color:var(--pm-blue); font-size:10px; font-weight:700; border-radius:5px; padding:2px 7px; margin-right:8px; }

/* 通知 */
.pm-noti { display:flex; align-items:center; gap:12px; background:var(--pm-card); border:1px solid var(--pm-border); border-radius:10px; padding:12px 15px; margin-bottom:8px; }
.pm-noti-dot { width:9px; height:9px; border-radius:50%; flex:none; }
.pm-noti-type { font-size:11px; color:var(--pm-muted); width:54px; }
.pm-noti-text { flex:1; font-size:13px; } .pm-noti-time { font-size:11px; color:var(--pm-muted); }
