/* 管理画面は既存アプリのトークンを共用。 */
.admin-root { background: var(--bg-app); color: var(--text-primary); min-height: 100dvh; width: 100%; font-family: var(--font-sans); }
.admin-header { display: flex; gap: var(--space-16); align-items: center; padding: var(--space-16) var(--space-32); background: var(--bg-card); border-bottom: var(--border-width) solid var(--border-default); flex-wrap: wrap; }
.admin-brand { display: flex; gap: var(--space-12); align-items: center; font-weight: 600; margin-right: auto; }
.admin-brand span { color: var(--text-secondary); font-size: var(--font-size-meta); }
.admin-badge { background: var(--accent-cta-bg); color: var(--accent-cta); padding: var(--space-4) var(--space-12); border-radius: var(--radius-pill); }
.admin-shell { display: grid; grid-template-columns: 210px minmax(0,1fr); }
.admin-sidebar { padding: var(--space-24) var(--space-16); border-right: var(--border-width) solid var(--border-default); }
.admin-sidebar nav { display: grid; gap: var(--space-8); }
.admin-sidebar a { padding: var(--space-12); border-radius: var(--radius-sm); }
.admin-sidebar a[aria-current="page"], .admin-sidebar a:hover { background: var(--accent-cta-bg); color: var(--accent-cta); }
.admin-sidebar summary { margin-bottom: var(--space-16); cursor: pointer; }
.admin-main { width: 100%; max-width: 1500px; padding: var(--space-32); min-width: 0; }
.admin-page-heading { display: flex; gap: var(--space-16); align-items: center; justify-content: space-between; margin-bottom: var(--space-24); }
.admin-root h1 { font-size: var(--font-size-heading-lg); font-weight: 600; }
.admin-root h2 { font-size: var(--font-size-heading); font-weight: 600; }
.admin-root a { color: var(--accent-cta); text-underline-offset: 4px; }
.admin-root a:hover { text-decoration: underline; }
.admin-root button, .admin-root input, .admin-root select, .admin-root textarea { font: inherit; }
.admin-root input:not([type="checkbox"]), .admin-root select, .admin-root textarea { display: block; width: 100%; min-width: 0; padding: var(--space-8) var(--space-12); border: var(--border-width) solid var(--border-control); border-radius: var(--radius-sm); background: var(--bg-card); color: var(--text-primary); }
.admin-root label { display: grid; gap: var(--space-6); font-size: var(--font-size-meta); color: var(--text-secondary); }
.admin-root textarea { min-height: 90px; resize: vertical; }
.admin-root button:disabled { opacity: .5; cursor: not-allowed; }
.admin-filters { display: flex; align-items: end; flex-wrap: wrap; gap: var(--space-12); margin: var(--space-16) 0 var(--space-24); }
.admin-filters label { flex: 1 1 160px; max-width: 300px; }
.admin-help { color: var(--text-secondary); margin-bottom: var(--space-24); }
.admin-cards { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--space-16); margin-bottom: var(--space-24); }
.admin-card { display: block; padding: var(--space-24); border: var(--border-width) solid var(--border-default); border-radius: var(--radius-md); background: var(--bg-card); margin: var(--space-16) 0; }
.admin-cards .admin-card { margin: 0; }
.admin-card strong { display: block; font-size: var(--font-size-heading-lg); margin-top: var(--space-8); }
.admin-fields { display: grid; gap: var(--space-12); }
.admin-fields > div { display: grid; grid-template-columns: minmax(130px, 190px) minmax(0,1fr); gap: var(--space-16); border-bottom: var(--border-width) solid var(--border-subtle); padding-bottom: var(--space-8); }
.admin-fields dt { color: var(--text-secondary); font-size: var(--font-size-meta); }
.admin-fields dd { min-width: 0; overflow-wrap: anywhere; }
.admin-value { white-space: pre-wrap; }
.admin-items { display: grid; gap: var(--space-16); }
.admin-table-wrap { overflow-x: auto; background: var(--bg-card); border: var(--border-width) solid var(--border-default); border-radius: var(--radius-md); margin: var(--space-16) 0; }
.admin-root table { width: 100%; border-collapse: collapse; text-align: left; }
.admin-root th { font-size: var(--font-size-meta); color: var(--text-secondary); white-space: nowrap; background: var(--bg-surface); }
.admin-root td, .admin-root th { padding: var(--space-12) var(--space-16); border-bottom: var(--border-width) solid var(--border-subtle); }
.admin-root td { max-width: 320px; overflow-wrap: anywhere; font-size: var(--font-size-meta); }
.admin-root td details[open] { min-width: 350px; }
.admin-tabs { display: flex; gap: var(--space-16); flex-wrap: wrap; margin: var(--space-16) 0; }
.admin-action { display: grid; gap: var(--space-16); max-width: 720px; }
.admin-action .admin-confirm { display: flex; align-items: center; }
.admin-notice, .admin-login { padding: var(--space-32); max-width: 640px; margin: var(--space-32) auto; }
.admin-root :focus-visible { outline: 2px solid var(--accent-cta); outline-offset: 3px; }
@media (max-width: 760px) {
 .admin-shell { grid-template-columns: 1fr; }
 .admin-sidebar { border-right: 0; border-bottom: var(--border-width) solid var(--border-default); padding: var(--space-12) var(--space-16); }
 .admin-sidebar nav { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .admin-main, .admin-header { padding: var(--space-16); }
 .admin-cards { grid-template-columns: 1fr; }
 .admin-fields > div { grid-template-columns: 1fr; gap: var(--space-4); }
 .admin-card { padding: var(--space-16); }
}
