/* Teams のテーマ（default / dark / contrast）に合わせる */
:root {
  --bg: #f5f5f5;
  --fg: #242424;
  --muted: #616161;
  --card: #ffffff;
  --card-hover: #ebebf5;
  --border: #e0e0e0;
  --accent: #5b5fc7;
  --warn: #c4314b;
}
:root[data-theme="dark"] {
  --bg: #1f1f1f;
  --fg: #ffffff;
  --muted: #adadad;
  --card: #292929;
  --card-hover: #333346;
  --border: #3d3d3d;
  --accent: #7f85f5;
  --warn: #f1707b;
}
:root[data-theme="contrast"] {
  --bg: #000000;
  --fg: #ffffff;
  --muted: #ffffff;
  --card: #000000;
  --card-hover: #1aebff;
  --border: #ffffff;
  --accent: #ffff01;
  --warn: #ffff01;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  padding: 16px;
  background: var(--bg);
  color: var(--fg);
  font-family: "Segoe UI", "Yu Gothic UI", "Meiryo", system-ui, sans-serif;
}

.page-header h1 { margin: 0 0 4px; font-size: 20px; }
.page-header p { margin: 0 0 16px; color: var(--muted); font-size: 14px; }

.category { margin-bottom: 24px; }
.category-name {
  margin: 0 0 8px;
  font-size: 14px;
  font-weight: 600;
  color: var(--muted);
}

.grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 12px;
}

.menu-button {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  min-height: 120px;
  padding: 16px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  color: var(--fg);
  font: inherit;
  cursor: pointer;
  transition: background .15s, border-color .15s;
}
.menu-button:hover:not(:disabled),
.menu-button:focus-visible {
  background: var(--card-hover);
  border-color: var(--accent);
  outline: none;
}
:root[data-theme="contrast"] .menu-button:hover:not(:disabled) { color: #000; }
.menu-button:disabled { cursor: not-allowed; opacity: .6; }

.menu-icon { font-size: 32px; line-height: 1; }
.menu-title { font-size: 16px; font-weight: 600; }
.menu-desc { font-size: 12px; color: var(--muted); }
.menu-desc.warn { color: var(--warn); }

.status { color: var(--muted); }
.status.error { color: var(--warn); }
