/* UI refresh v4: dashboard and integrated work status */
.dashboardTopGrid{
  display:grid;
  grid-template-columns:1.2fr 0.95fr 0.7fr 0.7fr;
  gap:16px;
  margin-bottom:18px;
}
.dashboardFocusCard,.dashboardTeamCard,.dashboardMiniCard,
.wsMetricCard,.wsPanel{
  background:#fff;
  border:1px solid var(--border);
  border-radius:18px;
  box-shadow:0 10px 30px rgba(15,23,42,.04);
}
.dashboardFocusCard,.dashboardTeamCard,.dashboardMiniCard{padding:22px;}
.dashboardCardTitle{font-size:15px;font-weight:800;color:#111827;margin-bottom:14px;}
.dashboardCheckinBody{display:flex;align-items:center;gap:18px;margin-bottom:18px;}
.dashboardCheckIcon{
  width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,#e8f0ff,#f5f8ff);
  color:#315efb;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;
  border:1px solid #dbe5ff;flex:0 0 auto;
}
.dashboardCheckInfo{display:flex;flex-direction:column;gap:6px;min-width:0;}
.dashboardCheckStatus{font-size:30px;font-weight:900;color:#315efb;letter-spacing:-.02em;}
.dashboardCheckTime{display:inline-flex;align-items:center;min-height:44px;padding:10px 14px;border-radius:999px;background:#f3f6fb;color:#334155;font-weight:700;width:max-content;max-width:100%;}
.dashboardCheckHint{font-size:12px;color:var(--muted);}
.dashboardCheckBtn{width:100%;height:50px;border:none;border-radius:12px;background:linear-gradient(90deg,#315efb,#284de0);color:#fff;font-size:16px;font-weight:800;cursor:pointer;}
.dashboardCheckBtn[disabled]{opacity:.55;cursor:default;}
.dashTodayTeamList{display:flex;flex-direction:column;gap:10px;min-height:158px;}
.dashTodayTeamItem{display:grid;grid-template-columns:1fr auto;gap:12px;padding:10px 0;border-bottom:1px solid #eef2f7;align-items:center;}
.dashTodayTeamItem:last-child{border-bottom:none;}
.dashTodayTeamName{font-weight:700;color:#1f2937;}
.dashTodayTeamTime{font-size:28px;font-weight:900;color:#315efb;line-height:1;}
.dashTodayTeamEmpty{display:flex;align-items:center;justify-content:center;height:100%;min-height:120px;color:var(--muted);font-size:13px;background:#f8fafc;border-radius:12px;}
.dashboardMiniCard{display:flex;flex-direction:column;justify-content:space-between;min-height:220px;}
.dashboardMiniValue{font-size:56px;font-weight:900;color:#315efb;line-height:1.05;margin-top:18px;}
.dashboardMiniSub{font-size:13px;color:var(--muted);margin-top:auto;}

.workStatusHead{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:18px;}
.workStatusHead h2{margin:0 0 8px;font-size:30px;}
.workStatusToolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.workStatusPeriod{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px solid var(--border);border-radius:12px;background:#fff;color:#334155;font-weight:700;}
.wsDivider{color:#94a3b8;}
.secondaryBtn{background:#fff;color:#2f55e8;border:1px solid #dbe5ff;}
.wsSummaryGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;}
.wsMetricCard{padding:18px 20px;display:flex;align-items:center;gap:16px;min-height:116px;}
.wsMetricIcon{width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;flex:0 0 auto;}
.wsMetricIcon.iconGoal{background:#f2ecff;color:#5b46d6;}
.wsMetricIcon.iconWeek{background:#edf4ff;color:#2f55e8;}
.wsMetricIcon.iconProgress{background:#eaf8ef;color:#16803d;}
.wsMetricIcon.iconTime{background:#fff5e6;color:#a16207;}
.wsMetricLabel{font-size:13px;color:#64748b;font-weight:700;}
.wsMetricValue{font-size:54px;line-height:1.05;font-weight:900;color:#315efb;margin-top:4px;letter-spacing:-.03em;}
.wsMetricSub{font-size:13px;color:#64748b;margin-top:4px;}
.wsPanel{padding:20px 22px;}
.wsPanelTitle{font-size:16px;font-weight:800;color:#0f172a;margin-bottom:14px;}
.wsMonthlyPanel{margin-bottom:16px;}
.wsMonthlyGoalRow{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid #e9eef5;border-radius:16px;overflow:hidden;background:#fff;}
.wsMonthlyGoalItem{display:flex;gap:14px;padding:22px 24px;align-items:center;min-height:114px;border-right:1px solid #eef2f7;}
.wsMonthlyGoalItem:last-child{border-right:none;}
.wsMonthlyGoalNum{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:24px;color:#315efb;background:#eef3ff;flex:0 0 auto;}
.wsMonthlyGoalItem:nth-child(3n+2) .wsMonthlyGoalNum{background:#eef6ff;color:#2f55e8;}
.wsMonthlyGoalItem:nth-child(3n+3) .wsMonthlyGoalNum{background:#eaf8ef;color:#15803d;}
.wsMonthlyGoalTitle{font-size:15px;font-weight:800;color:#111827;}
.wsMonthlyGoalMeta{font-size:13px;color:#475569;margin-top:4px;}
.wsMonthlyEmpty,.wsTableEmpty{padding:28px 18px;text-align:center;color:#64748b;background:#f8fafc;border-radius:12px;}
.wsImpactPanel{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;align-items:center;margin-bottom:16px;}
.wsImpactLeft{display:flex;align-items:center;gap:16px;min-width:0;}
.wsImpactIcon{width:60px;height:60px;border-radius:16px;background:#f1efff;color:#5b46d6;display:flex;align-items:center;justify-content:center;font-size:28px;font-weight:800;flex:0 0 auto;}
.wsImpactValue{font-size:28px;font-weight:900;color:#315efb;letter-spacing:-.02em;}
.wsImpactValue span:first-child{color:#64748b;}
.wsImpactDesc{font-size:14px;color:#475569;margin-top:10px;line-height:1.5;}
.wsImpactRight{display:flex;flex-direction:column;gap:12px;}
.wsImpactPercent{font-size:40px;font-weight:900;color:#315efb;text-align:center;}
.wsImpactBar{height:18px;background:#eef2f7;border-radius:999px;overflow:hidden;}
.wsImpactFill{height:100%;background:linear-gradient(90deg,#315efb,#4f46e5);border-radius:999px;}
.wsBottomGrid{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:stretch;}
.wsBottomGrid .wsPanel{display:flex;flex-direction:column;}
.wsTable{border:1px solid #e9eef5;border-radius:16px;overflow:hidden;background:#fff;height:100%;}
.wsTableHead,.wsTableRow{display:grid;gap:10px;align-items:center;}
.wsWeeklyHead,.wsWeeklyRow{grid-template-columns:1.7fr .72fr .72fr .72fr .7fr;}
.wsTodayHead,.wsTodayRow{grid-template-columns:1.7fr .75fr .72fr;}
.wsTableHead{background:#f8fafc;color:#64748b;font-size:12px;font-weight:800;padding:14px 16px;border-bottom:1px solid #e9eef5;}
.wsTableRow{padding:14px 16px;border-bottom:1px solid #eef2f7;font-size:14px;}
.wsTableRow:last-child{border-bottom:none;}
.wsTaskTitle{font-weight:800;color:#111827;}
.wsTaskSub{font-size:12px;color:#64748b;margin-top:4px;}
.wsStatusBadge{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px;border-radius:999px;font-size:12px;font-weight:800;width:max-content;}
.wsStatusDone{background:#eaf8ef;color:#15803d;}
.wsStatusRun{background:#eef4ff;color:#2563eb;}
.wsStatusHold{background:#fff4e5;color:#c56a05;}
.wsStatusPlan{background:#f1f5f9;color:#64748b;}
.wsTodayMark{font-size:12px;font-weight:800;color:#2f55e8;}
.wsTodayNone{font-size:12px;color:#94a3b8;}
.wsClickable{cursor:pointer;}

@media (max-width: 1200px){
  .dashboardTopGrid{grid-template-columns:1fr 1fr;}
  .wsSummaryGrid{grid-template-columns:repeat(2,1fr);}
  .wsMonthlyGoalRow{grid-template-columns:1fr;}
  .wsMonthlyGoalItem{border-right:none;border-bottom:1px solid #eef2f7;}
  .wsMonthlyGoalItem:last-child{border-bottom:none;}
  .wsImpactPanel,.wsBottomGrid{grid-template-columns:1fr;}
}
@media (max-width: 760px){
  .dashboardTopGrid,.wsSummaryGrid{grid-template-columns:1fr;}
  .dashboardCheckinBody{align-items:flex-start;}
  .dashboardCheckStatus{font-size:24px;}
  .dashboardMiniValue,.wsMetricValue{font-size:42px;}
  .wsWeeklyHead,.wsWeeklyRow,.wsTodayHead,.wsTodayRow{grid-template-columns:1fr;}
  .wsTableHead{display:none;}
  .wsTableRow{gap:6px;}
}
