/* 共通レイアウト */
body {
  font-family: "Segoe UI", "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  background: radial-gradient(circle at 20% 10%, var(--theme-bg-1) 0%, var(--theme-bg-2) 45%, var(--theme-bg-3) 100%);
  margin: 0;
  padding: 28px;
  min-height: 100vh;
  box-sizing: border-box;
}

.window {
  border: 1px solid var(--theme-border);
  background: #ffffff;
  border-radius: 16px;
  box-shadow: 0 10px 28px rgba(var(--theme-shadow-rgb), 0.12);
  overflow: hidden;
}

.window-narrow {
  width: min(420px, calc(100vw - 56px));
  margin: 48px auto 0;
}

.window-wide {
  width: min(1040px, calc(100vw - 56px));
  margin: 0 auto;
}

.page-menu .window {
  width: min(920px, calc(100vw - 56px));
  margin: 0 auto;
  overflow: hidden;
}

.page-menu .titlebar {
  border-radius: 16px 16px 0 0;
}

.page-menu {
  overflow-x: hidden;
  overflow-y: auto;
}

.menu-empty-hint {
  grid-column: 1 / -1;
  padding: 18px 12px;
  text-align: center;
  color: var(--ui-text-muted);
  font-size: 13px;
  background: var(--theme-surface);
  border: 1px dashed var(--theme-border-3);
  border-radius: 12px;
}

.titlebar {
  background: linear-gradient(90deg, var(--theme-primary) 0%, var(--theme-primary-2) 100%);
  color: #ffffff;
  padding: 14px 18px;
  font-weight: 700;
  font-size: 15px;
}

.titlebar-split {
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.titlebar-split a {
  color: #fff;
  text-decoration: none;
  font-size: 13px;
  font-weight: 600;
  opacity: 0.95;
}

.titlebar-split a:hover {
  text-decoration: underline;
}

.content {
  padding: 16px 18px 18px;
}

.alert {
  border-radius: 10px;
  padding: 10px 12px;
  margin-bottom: 14px;
  font-size: 13px;
}

.alert-error {
  color: #b42318;
  background: #fef3f2;
  border: 1px solid #fecdca;
}

.alert-success {
  color: #027a48;
  background: #ecfdf3;
  border: 1px solid #abefc6;
}

.btn-primary {
  border: none;
  border-radius: 10px;
  background: linear-gradient(90deg, var(--theme-primary) 0%, var(--theme-primary-2) 100%);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  padding: 12px 14px;
  cursor: pointer;
}

.btn-primary:hover {
  filter: brightness(1.03);
}

.btn-block {
  width: 100%;
}

.userbar {
  width: min(1040px, calc(100vw - 56px));
  margin: 0 auto 12px;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  gap: 12px;
  font-size: 13px;
  color: var(--ui-text);
}

.page-menu .userbar {
  width: min(920px, calc(100vw - 56px));
}

.userbar-admin-link {
  color: var(--theme-primary);
  text-decoration: none;
  font-weight: 600;
}

.userbar-admin-link:hover {
  text-decoration: underline;
}

.userbar-logout-form {
  margin: 0;
}

.userbar-logout-btn {
  border: 1px solid #cbd5e1;
  background: #fff;
  color: #334155;
  border-radius: 999px;
  padding: 6px 12px;
  font-size: 12px;
  cursor: pointer;
}

.userbar-logout-btn:hover {
  background: #f8fafc;
}
