html { font-size: 16px; }

:root {
    --background: #fafafa;
    --surface: #ffffff;
    --surface-subtle: #f7f7f7;
    --surface-hover: #f3f3f3;
    --border: #e6e6e6;
    --border-strong: #d4d4d4;
    --text: #181818;
    --text-secondary: #666666;
    --text-tertiary: #8a8a8a;
    --accent: #1d1d1f;
    --accent-hover: #000000;
    --success: #16825d;
    --success-bg: #f0faf6;
    --warning: #8a5a08;
    --warning-bg: #fff9eb;
    --danger: #c33232;
    --danger-bg: #fff5f5;
    --focus: rgba(24, 24, 24, 0.16);
    --sidebar-width: 15rem;
    --sidebar-compact-width: 4.5rem;
    --topbar-height: 4rem;
    --radius: 0.5rem;
    --radius-small: 0.375rem;
    --shadow-menu: 0 0.625rem 1.875rem rgba(18, 18, 18, 0.08);
    font-family: Geist, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;
}

* { box-sizing: border-box; }
html { color-scheme: light; scroll-behavior: smooth; }
body { margin: 0; color: var(--text); background: var(--background); font-size: 0.875rem; line-height: 1.5; }
button, input, textarea, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
img { display: block; width: 1rem; height: 1rem; }
button { line-height: 1; }
[hidden] { display: none !important; }
::selection { color: #ffffff; background: #242424; }

:focus-visible { outline: 0; box-shadow: 0 0 0 0.1875rem var(--focus); }
.skip-link { position: fixed; top: 0.75rem; left: 0.75rem; z-index: 30; padding: 0.625rem 0.875rem; color: #ffffff; background: var(--accent); border-radius: var(--radius-small); transform: translateY(-5rem); transition: transform 180ms ease; }
.skip-link:focus { transform: translateY(0); }

.admin-shell { min-width: 67.5rem; min-height: 100vh; }
.sidebar { position: fixed; inset: 0 auto 0 0; z-index: 20; width: var(--sidebar-width); display: flex; flex-direction: column; padding: 0 0.75rem 1rem; background: var(--surface); border-right: 0.0625rem solid var(--border); transition: width 180ms ease, padding 180ms ease; }
.brand { height: var(--topbar-height); flex: 0 0 var(--topbar-height); display: flex; align-items: center; gap: 0.75rem; padding: 0 1.375rem; margin: 0 -0.75rem 1rem; border-bottom: 0.0625rem solid var(--border); }
.brand-copy { min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.brand-copy strong { overflow: hidden; font-size: 1.375rem; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.sidebar-toggle { position: absolute; top: 1.0625rem; right: 0.75rem; width: 1.875rem; height: 1.875rem; display: grid; place-items: center; padding: 0; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border); border-radius: var(--radius-small); cursor: pointer; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.sidebar-toggle:hover { color: var(--text); background: var(--surface-subtle); border-color: #c8c8c8; }
.sidebar-toggle img { width: 0.9375rem; height: 0.9375rem; opacity: 0.68; }
.sidebar-toggle:hover img { opacity: 1; }
.sidebar-toggle-open { display: none; }
.sidebar-nav { display: flex; flex-direction: column; gap: 0.1875rem; }
.nav-group-label { margin: 0.875rem 0 0.25rem; padding: 0 0.6875rem; color: var(--text-tertiary); font-size: 0.625rem; font-weight: 600; line-height: 1; }
.nav-link { min-height: 2.375rem; display: flex; align-items: center; gap: 0.6875rem; padding: 0 0.6875rem; color: var(--text-secondary); border-radius: var(--radius-small); font-size: 0.8125rem; font-weight: 500; line-height: 1; transition: color 160ms ease, background-color 160ms ease; }
.nav-link img { width: 0.9375rem; height: 0.9375rem; flex: 0 0 auto; opacity: 0.68; transition: opacity 160ms ease; }
.nav-link span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nav-link:hover { color: var(--text); background: var(--surface-subtle); }
.nav-link:hover img { opacity: 0.9; }
.nav-link.is-active { color: var(--text); background: #ededed; font-weight: 600; }
.nav-link.is-active img { opacity: 1; }
.sidebar-bottom { margin-top: auto; padding-top: 0.75rem; border-top: 0.0625rem solid var(--border); }
.account-row { min-height: 3.25rem; display: flex; align-items: center; justify-content: space-between; gap: 0.5rem; padding: 0 0.375rem 0 0.625rem; }
.account-mini { min-width: 0; display: flex; align-items: center; gap: 0.625rem; }
.avatar { width: 1.875rem; height: 1.875rem; flex: 0 0 auto; display: grid; place-items: center; color: var(--text-secondary); background: var(--surface-subtle); border: 0; border-radius: 50%; }
.avatar img { width: 0.9375rem; height: 0.9375rem; opacity: 0.72; }
.account-mini > span:last-child { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
.account-mini b { overflow: hidden; font-size: 0.75rem; font-weight: 600; text-overflow: ellipsis; white-space: nowrap; }
.account-row form { display: flex; }
.logout-button { width: 2rem; height: 2rem; display: grid; place-items: center; padding: 0; background: transparent; border: 0.0625rem solid transparent; border-radius: var(--radius-small); cursor: pointer; transition: background-color 160ms ease, border-color 160ms ease; }
.logout-button img { width: 0.9375rem; height: 0.9375rem; opacity: 0.58; }
.logout-button:hover { background: var(--danger-bg); border-color: #f0d5d5; }
.logout-button:hover img { opacity: 0.9; }

.main-area { min-width: 0; min-height: 100vh; margin-left: var(--sidebar-width); background: var(--surface); transition: margin-left 180ms ease; }
.topbar { position: fixed; inset: 0 0 auto var(--sidebar-width); z-index: 15; height: var(--topbar-height); display: flex; align-items: center; justify-content: space-between; padding: 0 1.5rem; background: rgba(255, 255, 255, 0.92); border-bottom: 0.0625rem solid var(--border); backdrop-filter: blur(0.75rem); transition: left 180ms ease; }
.breadcrumb { display: flex; align-items: center; gap: 0.5rem; color: var(--text-secondary); font-size: 0.75rem; line-height: 1; }
.breadcrumb a { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--text-tertiary); transition: color 160ms ease; }
.breadcrumb a img { width: 0.8125rem; height: 0.8125rem; opacity: 0.58; }
.breadcrumb a:hover { color: var(--text); }
.breadcrumb a:hover img { opacity: 0.82; }
.breadcrumb-separator { color: #b4b4b4; }
.topbar-site-link { display: inline-flex; align-items: center; gap: 0.5rem; color: var(--text-secondary); font-size: 0.75rem; font-weight: 500; line-height: 1; transition: color 160ms ease; }
.topbar-site-link:hover { color: var(--text); }
.topbar-site-link img { width: 0.875rem; height: 0.875rem; opacity: 0.65; }
	.content-area { width: 100%; min-height: 100vh; padding: 5rem 1.5rem 5rem; }
	.page-heading { min-height: 2.375rem; display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-bottom: 1.25rem; }
.page-heading-title { display: flex; align-items: center; gap: 0.625rem; color: #000000; transform: translateY(0.125rem); }
	.page-heading-title img { width: 1.125rem; height: 1.125rem; flex: 0 0 auto; opacity: 1; }
	.page-heading h2 { margin: 0; font-size: 1.25rem; line-height: 1.2; font-weight: 650; letter-spacing: 0; text-wrap: balance; }
.page-heading-tools { margin-left: auto; display: flex; align-items: center; justify-content: flex-end; gap: 0.625rem; transform: translateY(0.125rem); }
.page-filter-form { display: flex; align-items: center; gap: 0.5rem; }
.page-search-field { position: relative; width: 14rem; }
.page-search-icon { position: absolute; top: 50%; left: 0.75rem; width: 0.875rem; height: 0.875rem; opacity: 0.45; transform: translateY(-50%); pointer-events: none; }
.page-search-input { height: 2.375rem; min-height: 2.375rem; padding-top: 0; padding-right: 2rem; padding-bottom: 0; padding-left: 2.25rem; }
.page-search-clear { position: absolute; top: 50%; right: 0.625rem; width: 1rem; height: 1rem; display: grid; place-items: center; color: var(--text-tertiary); transform: translateY(-50%); }
.page-search-clear img { width: 1rem; height: 1rem; opacity: 0.7; }
.page-search-clear:hover img { opacity: 1; }
.page-filter-select { width: 8.5rem; height: 2.375rem; min-height: 2.375rem; padding-top: 0; padding-bottom: 0; }
.page-reset-button { width: 2.375rem; min-width: 2.375rem; height: 2.375rem; min-height: 2.375rem; display: inline-grid; place-items: center; padding: 0; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border); border-radius: var(--radius-small); cursor: pointer; font-size: 0.75rem; font-weight: 500; line-height: 1; }
.page-reset-button img { width: 0.875rem; height: 0.875rem; opacity: 0.68; }
.page-reset-button:hover:not(:disabled) { color: var(--text); background: var(--surface-subtle); border-color: #c8c8c8; }
.page-reset-button:hover:not(:disabled) img { opacity: 1; }
.page-reset-button:disabled { color: var(--text-tertiary); background: var(--surface); border-color: var(--border); cursor: not-allowed; opacity: 0.65; }
.page-heading-tools .primary-button { min-height: 2.375rem; height: 2.375rem; padding: 0 0.875rem; }
.page-heading-tools .primary-button img { width: 0.875rem; height: 0.875rem; flex: 0 0 auto; filter: brightness(0) invert(1); }

.primary-button, .secondary-button { min-height: 2.375rem; display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; padding: 0 0.875rem; border-radius: var(--radius-small); cursor: pointer; font-size: 0.75rem; font-weight: 600; line-height: 1; vertical-align: middle; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease, transform 120ms ease, box-shadow 160ms ease; }
.primary-button { color: #ffffff; background: var(--accent); border: 0.0625rem solid var(--accent); }
.primary-button:hover { background: var(--accent-hover); border-color: var(--accent-hover); box-shadow: 0 0.25rem 0.75rem rgba(0, 0, 0, 0.12); }
.secondary-button { color: var(--text); background: var(--surface); border: 0.0625rem solid var(--border-strong); }
.secondary-button:hover { background: var(--surface-subtle); border-color: #bcbcbc; }
.primary-button:active, .secondary-button:active { transform: scale(0.98); }
.full-button { width: 100%; margin-top: 0.5rem; }

.sidebar-compact {
    --sidebar-width: var(--sidebar-compact-width);
}
.sidebar-compact .sidebar { padding-right: 0.625rem; padding-left: 0.625rem; }
.sidebar-compact .brand { justify-content: center; padding: 0; margin-right: -0.625rem; margin-left: -0.625rem; }
.sidebar-compact .brand-copy { display: none; }
.sidebar-compact .sidebar-toggle { right: 50%; transform: translateX(50%); }
.sidebar-compact .sidebar-toggle-close { display: none; }
.sidebar-compact .sidebar-toggle-open { display: block; }
.sidebar-compact .nav-group-label { display: none; }
.sidebar-compact .nav-link { justify-content: center; padding: 0; gap: 0; }
.sidebar-compact .nav-link span { display: none; }
.sidebar-compact .account-row { flex-direction: column; justify-content: center; padding: 0; gap: 0.375rem; }
.sidebar-compact .account-mini { display: none; }

.toast-container { position: fixed; top: 1rem; left: calc(var(--sidebar-width) + (100vw - var(--sidebar-width)) / 2); z-index: 40; width: max-content; max-width: calc(100vw - var(--sidebar-width) - 2rem); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; transform: translateX(-50%); pointer-events: none; }
.login-body .toast-container { left: 50%; max-width: calc(100vw - 2rem); }
.toast { min-width: 17rem; max-width: 32rem; padding: 0.75rem 0.875rem; border: 0.0625rem solid; border-radius: var(--radius-small); box-shadow: var(--shadow-menu); font-size: 0.75rem; line-height: 1.4; text-align: center; opacity: 1; transform: translateY(0); transition: opacity 320ms cubic-bezier(0.22, 1, 0.36, 1), transform 320ms cubic-bezier(0.22, 1, 0.36, 1); }
.toast-success { color: #116b4c; background: var(--success-bg); border-color: #bce5d5; }
.toast-error { color: #a52a2a; background: var(--danger-bg); border-color: #efc9c9; }
.toast.is-hidden { opacity: 0; transform: translateY(-0.625rem) scale(0.985); }

.summary-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); border: 0.0625rem solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 2rem; }
.summary-card { min-height: 7.5rem; display: flex; flex-direction: column; justify-content: space-between; padding: 1.25rem 1.375rem; background: var(--surface); border-right: 0.0625rem solid var(--border); transition: background-color 160ms ease; }
.summary-card:last-child { border-right: 0; }
.summary-card:hover { background: var(--surface-subtle); }
.summary-card-header { display: flex; align-items: center; justify-content: space-between; color: var(--text-secondary); }
.summary-card-header small { font-size: 0.75rem; font-weight: 500; }
.summary-card-header img { width: 0.9375rem; height: 0.9375rem; opacity: 0.55; }
.summary-card strong { font-variant-numeric: tabular-nums; font-size: 1.625rem; line-height: 1; font-weight: 600; }

.content-panel { margin-bottom: 1.5rem; background: var(--surface); border: 0.0625rem solid var(--border); border-radius: var(--radius); }
.panel-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 1.5rem; padding: 1.25rem 1.5rem; border-bottom: 0.0625rem solid var(--border); }
.panel-title h3 { margin: 0; font-size: 0.875rem; font-weight: 600; }
.panel-title p { max-width: 34rem; margin: 0.3125rem 0 0; color: var(--text-secondary); font-size: 0.75rem; line-height: 1.55; }
.welcome-panel { border: 0; }
.welcome-panel .panel-title { padding: 0 0 0.875rem; border-bottom: 0; }
.quick-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border: 0.0625rem solid var(--border); border-radius: var(--radius); overflow: hidden; }
.quick-grid a { min-height: 8rem; display: flex; flex-direction: column; align-items: flex-start; padding: 1.25rem; border-right: 0.0625rem solid var(--border); transition: background-color 160ms ease; }
.quick-grid a:last-child { border-right: 0; }
.quick-grid a:hover { background: var(--surface-subtle); }
.quick-grid a > img { width: 1rem; height: 1rem; margin-bottom: 1.75rem; opacity: 0.62; }
.quick-grid a.new-entry > img { margin-bottom: 0.875rem; }
.quick-grid span { font-size: 0.8125rem; font-weight: 600; }
.quick-grid small { display: block; margin-top: 0.3125rem; color: var(--text-secondary); font-size: 0.6875rem; font-weight: 400; }

.form-shell { max-width: 48rem; }
.form-shell-wide { max-width: 62rem; }
.form-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
.form-section { padding: 1.5rem; }
.form-section + .form-section { border-top: 0.0625rem solid var(--border); }
label { display: flex; flex-direction: column; gap: 0.5rem; color: var(--text); font-size: 0.75rem; font-weight: 550; }
.tag-picker { min-width: 0; padding: 0; margin: 0; border: 0; }
.tag-picker legend { padding: 0; margin-bottom: 0.5rem; color: var(--text); font-size: 0.75rem; font-weight: 550; }
.tag-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tag-option { min-height: 2rem; display: inline-flex; flex-direction: row; align-items: center; gap: 0.5rem; padding: 0 0.6875rem; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border-strong); border-radius: var(--radius-small); cursor: pointer; font-size: 0.75rem; font-weight: 500; line-height: 1; transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease; }
.tag-option:hover { color: var(--text); background: var(--surface-subtle); border-color: #b8b8b8; }
.tag-option:has(input:checked) { color: var(--text); background: #eeeeee; border-color: #8f8f8f; }
.tag-option input { width: 0.875rem; min-height: 0; height: 0.875rem; margin: 0; accent-color: var(--accent); }
.choice-picker { min-width: 0; padding: 0; margin: 0; border: 0; }
.choice-picker legend { padding: 0; margin-bottom: 0.5rem; color: var(--text); font-size: 0.75rem; font-weight: 550; }
.choice-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.choice-option { min-height: 2rem; display: inline-flex; flex-direction: row; align-items: center; gap: 0.5rem; padding: 0 0.6875rem; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border-strong); border-radius: var(--radius-small); cursor: pointer; font-size: 0.75rem; font-weight: 500; line-height: 1; transition: color 160ms ease, border-color 160ms ease, background-color 160ms ease; }
.choice-option:hover { color: var(--text); background: var(--surface-subtle); border-color: #b8b8b8; }
.choice-option:has(input:checked) { color: var(--text); background: #eeeeee; border-color: #8f8f8f; }
.choice-option input { width: 0.875rem; min-height: 0; height: 0.875rem; margin: 0; accent-color: var(--accent); }
.custom-field-section { min-width: 0; padding-top: 0.5rem; margin-top: 0; }
.custom-field-section h3 { display: flex; align-items: center; gap: 0.75rem; margin: 0 0 1.25rem; color: var(--text-tertiary); font-size: 0.6875rem; font-weight: 500; line-height: 1.2; }
.custom-field-section h3::before, .custom-field-section h3::after { content: ""; height: 0.0625rem; flex: 1 1 auto; background: var(--border); }
.custom-field-section h3 span { flex: 0 0 auto; }
.required-mark { margin-left: 0.25rem; color: var(--danger); }
.field-hint { color: var(--text-tertiary); font-size: 0.6875rem; font-weight: 400; line-height: 1.5; }
input, textarea, select { width: 100%; min-height: 2.5rem; padding: 0.625rem 0.75rem; color: var(--text); background: var(--surface); border: 0.0625rem solid var(--border-strong); border-radius: var(--radius-small); outline: 0; font-size: 0.8125rem; font-weight: 400; transition: border-color 160ms ease, box-shadow 160ms ease, background-color 160ms ease; }
.slug-input-row { display: grid; grid-template-columns: minmax(0, 1fr) 2.5rem; align-items: stretch; gap: 0.5rem; }
.slug-generate-button { width: 2.5rem; min-height: 2.5rem; display: grid; place-items: center; padding: 0; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border-strong); border-radius: var(--radius-small); cursor: pointer; transition: color 160ms ease, background-color 160ms ease, border-color 160ms ease; }
.slug-generate-button img { width: 0.875rem; height: 0.875rem; opacity: 0.68; }
.slug-generate-button:hover:not(:disabled) { color: var(--text); background: var(--surface-subtle); border-color: #b8b8b8; }
.slug-generate-button:hover:not(:disabled) img { opacity: 1; }
.slug-generate-button:disabled { cursor: not-allowed; opacity: 0.6; }
select { padding-right: 2.5rem; appearance: none; background-image: url("/assets/icons/lucide/chevron-down.svg"); background-repeat: no-repeat; background-position: right 0.75rem center; background-size: 0.875rem 0.875rem; }
input::placeholder, textarea::placeholder { color: #a0a0a0; }
textarea { resize: vertical; line-height: 1.65; }
input:not([type="checkbox"]):not([type="radio"]):hover, textarea:hover, select:hover { border-color: #b8b8b8; }
input:not([type="checkbox"]):not([type="radio"]):focus, textarea:focus, select:focus { border-color: var(--text); box-shadow: 0 0 0 0.1875rem var(--focus); }
.form-actions { display: flex; justify-content: flex-end; gap: 0.625rem; padding: 1rem 1.5rem; background: var(--surface-subtle); border-top: 0.0625rem solid var(--border); border-radius: 0 0 var(--radius) var(--radius); }
.stack-form { display: flex; flex-direction: column; }
.password-grid { display: grid; grid-template-columns: 1fr; gap: 1.25rem; padding: 1.5rem; }
.password-grid .form-actions { margin: 0 -1.5rem -1.5rem; grid-column: 1 / -1; }

.table-panel { padding: 0; overflow: hidden; }
.table-wrap { overflow-x: auto; }
.data-table { width: 100%; border-collapse: collapse; font-size: 0.75rem; }
.data-table th { padding: 0.75rem 1rem; color: var(--text-secondary); background: var(--surface-subtle); border-bottom: 0.0625rem solid var(--border); font-size: 0.6875rem; font-weight: 550; text-align: left; white-space: nowrap; }
.data-table td { padding: 0.9375rem 1rem; border-bottom: 0.0625rem solid var(--border); vertical-align: middle; }
.data-table tr:last-child td { border-bottom: 0; }
.data-table tbody tr { transition: background-color 140ms ease; }
.data-table tbody tr:hover { background: #fbfbfb; }
.table-title { color: var(--text); font-weight: 600; }
.table-title:hover { text-decoration: underline; text-underline-offset: 0.1875rem; }
.data-table td small { display: block; margin-top: 0.1875rem; color: var(--text-tertiary); font-size: 0.625rem; font-weight: 400; }
.data-table code { color: var(--text-secondary); font-family: "SFMono-Regular", Consolas, "Liberation Mono", monospace; font-size: 0.6875rem; }
.numeric-cell { font-variant-numeric: tabular-nums; }
.muted-cell { max-width: 20rem; overflow: hidden; color: var(--text-secondary); text-overflow: ellipsis; white-space: nowrap; }
.status-badge { display: inline-flex; align-items: center; gap: 0.375rem; color: var(--text-secondary); font-size: 0.6875rem; font-weight: 550; }
.status-badge.published { color: var(--success); }
.status-badge.draft { color: var(--warning); }
.table-actions { display: flex; align-items: center; justify-content: flex-end; gap: 0.25rem; white-space: nowrap; }
.table-actions form { display: flex; }
.table-actions a, .table-actions button { min-height: 1.875rem; display: inline-flex; align-items: center; padding: 0 0.5rem; color: var(--text-secondary); background: var(--surface); border: 0.0625rem solid var(--border); border-radius: 0.3125rem; cursor: pointer; font-size: 0.6875rem; font-weight: 500; transition: color 140ms ease, background-color 140ms ease, border-color 140ms ease; }
.table-actions a:hover, .table-actions button:hover { color: var(--text); background: var(--surface-hover); border-color: #c8c8c8; }
.table-actions form[data-confirm] button:hover { color: var(--danger); background: var(--danger-bg); border-color: #e3bcbc; }
.table-actions button:disabled { color: var(--text-tertiary); background: var(--surface); border-color: var(--border); cursor: not-allowed; opacity: 0.6; }
.empty-state { min-height: 15rem; display: grid; place-items: center; padding: 3rem 1.5rem; text-align: center; }
.empty-state-inner { max-width: 22rem; }
.empty-state-copy { display: block; color: var(--text-secondary); font-size: 0.75rem; }
.pagination { display: flex; align-items: center; justify-content: flex-end; gap: 0.75rem; margin-top: 1rem; color: var(--text-secondary); font-size: 0.75rem; }
.pagination-link { min-height: 2rem; display: inline-flex; align-items: center; padding: 0 0.625rem; color: var(--text); border: 0.0625rem solid var(--border-strong); border-radius: var(--radius-small); line-height: 1; transition: background-color 160ms ease, border-color 160ms ease; }
.pagination-link:hover { background: var(--surface-subtle); border-color: #b8b8b8; }
.pagination-link.is-disabled { color: var(--text-tertiary); cursor: not-allowed; opacity: 0.7; }
.pagination-current { font-variant-numeric: tabular-nums; }

.login-body { min-height: 100vh; display: flex; justify-content: center; align-items: flex-start; padding: 7rem 2rem 2rem; background: var(--background); }
.login-main { width: 100%; max-width: 22rem; }
.login-panel { width: 100%; padding: 2rem; background: var(--surface); border: 0.0625rem solid var(--border); border-radius: var(--radius); box-shadow: none; }
.login-panel h1 { margin: 0 0 1rem; font-size: 1.75rem; line-height: 1.25; font-weight: 650; letter-spacing: 0; }
.login-form { gap: 1.125rem; }
.login-form .primary-button { margin-top: 0.375rem; }
