/* PMK app.css */
:root {
  --pmk-sidebar-width: 240px;
}
html, body { min-height: 100dvh; }
body.app-layout { background: #f5f7fb; }
body.auth-layout { background: linear-gradient(135deg, #eef2ff 0%, #f8fbff 100%); min-height: 100dvh; }

.sidebar {
  width: var(--pmk-sidebar-width);
  min-width: var(--pmk-sidebar-width);
  flex: 0 0 var(--pmk-sidebar-width);
  min-height: calc(100dvh - 56px);
  position: sticky;
  top: 56px;
}
main.flex-grow-1 { min-width: 0; }  /* flex item の overflow 抑制 */
.sidebar .nav-link {
  color: #333;
  border-radius: 6px;
  margin: 2px 4px;
  padding: 8px 12px;
}
.sidebar .nav-link.active {
  background: #0d6efd;
  color: #fff;
}
.sidebar .nav-link:hover:not(.active) {
  background: #e9ecef;
}
.sidebar i { margin-right: .5rem; }

main { min-height: calc(100dvh - 56px); }

/* タップターゲット最小44px */
.btn { min-height: 38px; }
.btn-sm { min-height: 32px; }

/* iOS 入力欄ズーム防止 */
input, select, textarea { font-size: 16px; }

/* セーフエリア */
body { padding-bottom: env(safe-area-inset-bottom); }

.stat-card { transition: transform .15s ease, box-shadow .15s ease; cursor: pointer; color: inherit; }
.stat-card:hover { transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.15) !important; color: inherit; }

@media (max-width: 767.98px) {
  .display-6 { font-size: 1.5rem; }
}
