/* 労務管理システム カスタムスタイル */

* {
  -webkit-tap-highlight-color: transparent;
  box-sizing: border-box;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', 'Meiryo', sans-serif;
  -webkit-font-smoothing: antialiased;
}

/* PWAセーフエリア対応 */
@supports (padding: env(safe-area-inset-top)) {
  header {
    padding-top: calc(0.75rem + env(safe-area-inset-top));
  }
}

/* アニメーション */
@keyframes fadeIn {
  from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

#app > div {
  animation: fadeIn 0.2s ease-out;
}

/* タッチ操作改善 */
button {
  -webkit-user-select: none;
  user-select: none;
  touch-action: manipulation;
}

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

/* スクロールバー非表示（横スクロール表） */
.overflow-x-auto::-webkit-scrollbar {
  height: 4px;
}
.overflow-x-auto::-webkit-scrollbar-track {
  background: #f1f5f9;
}
.overflow-x-auto::-webkit-scrollbar-thumb {
  background: #94a3b8;
  border-radius: 2px;
}

/* テーブルのstickyセル */
.sticky {
  position: sticky;
}

/* 経過時間表示 */
#elapsedTime {
  letter-spacing: 0.05em;
  font-feature-settings: "tnum";
  font-variant-numeric: tabular-nums;
}

/* モーダルアニメーション */
#correctModal:not(.hidden) > div {
  animation: fadeIn 0.2s ease-out;
}

/* アクティブ状態のボタン */
button:active:not(:disabled) {
  transform: scale(0.97);
}

/* タブボタン */
.tab-btn {
  transition: color 0.15s, border-color 0.15s;
  white-space: nowrap;
}

/* ローディングスピナー */
@keyframes spin {
  to { transform: rotate(360deg); }
}
.fa-spin {
  animation: spin 0.8s linear infinite;
}

/* PWAスプラッシュ対応 */
html {
  height: 100%;
}

body {
  min-height: 100%;
  min-height: -webkit-fill-available;
}
