.admin-page h1 {
  font-size: var(--text-title);
  line-height: 1.3;
}
.admin-nav, .admin-brand {
  display: flex;
  align-items: center;
  gap: var(--s2);
}
.admin-brand { font-weight: 700; }
.admin-brand, .admin-nav .button { color: inherit; text-decoration: none; }
.admin-mark {
  display: inline-grid;
  place-items: center;
  flex: 0 0 var(--s8);
  height: var(--s8);
  border-radius: var(--r-md);
  background: var(--accent-soft);
  color: var(--accent);
  font-size: var(--text-detail);
}
.admin-card {
  min-width: 0;
  margin: 0;
  padding: var(--s6);
  border: 1px solid var(--border);
  border-radius: var(--r-panel);
  background: var(--surface);
}
.admin-feedback { color: var(--muted); font-size: var(--text-label); }
.admin-page .field :is(input, textarea) {
  border-color: color-mix(in srgb, var(--muted) 80%, var(--surface));
}
.login-page {
  display: grid;
  place-items: center;
  min-height: 100dvh;
  padding: var(--s5);
}
.login-card {
  display: grid;
  gap: var(--s4);
  width: min(100%, 26rem);
  padding: var(--s8);
}
.login-card fieldset { min-width: 0; border: 0; margin: 0; padding: 0; }
.login-card button { width: 100%; }
.login-card .admin-feedback:not(:empty) { margin-top: var(--s3); }
.account-card { margin: var(--s6) auto; width: min(calc(100% - var(--s8)), 30rem); }
@media (min-width: 641px) {
  .account-card :is(.field, .field input, .button, .plan-field-help, .admin-feedback) { font-size: var(--text-body); }
}
.account-help { margin: calc(-1 * var(--s2)) 0 var(--s4); text-wrap: pretty; }
.account-card a { color: var(--accent); }
.admin-bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: center;
  gap: var(--s2);
  padding: var(--s3) max(var(--s4), calc((100% - 68rem) / 2));
  border-bottom: 1px solid var(--border);
  background: var(--surface);
}
.admin-skip:focus {
  position: fixed;
  z-index: 1;
  top: var(--s2);
  left: var(--s2);
  width: auto;
  height: auto;
  padding: var(--s2);
  clip-path: none;
  background: var(--surface);
  color: var(--accent);
}
.draft-shortcut a {
  display: inline-flex;
  align-items: center;
  min-height: var(--control);
  color: var(--accent);
  text-underline-offset: var(--s1);
  font-weight: 600;
}
.plan-main {
  max-width: 70rem;
  padding: var(--s6) var(--s4) var(--s10);
  margin: auto;
}
.plan-heading { display: grid; gap: var(--s1); margin-bottom: var(--s5); }
.plan-state {
  justify-self: start;
  margin-top: var(--s2);
  padding: var(--s1) var(--s2);
  border-radius: var(--r-sm);
  background: var(--warning-soft);
  color: var(--warning);
  font-size: var(--text-label);
}
.plan-grid {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
  align-items: start;
  gap: var(--s5);
}
.plan-editor, .plan-reference { display: grid; gap: var(--s4); }
.plan-group legend {
  padding-inline: var(--s2);
  font-size: var(--text-section);
  font-weight: 600;
}
.plan-group .field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.plan-group .field-grid + .field, .plan-note + .field { margin-top: var(--s3); }
.plan-group textarea[name="categoryPath"] { min-height: var(--s12); }
.plan-field-help { color: var(--muted); font-size: var(--text-label); }
.plan-checkbox { display: flex; align-items: center; gap: var(--s2); min-height: var(--control); }
.plan-note + .field-grid { margin-top: var(--s4); }
.plan-note {
  padding: var(--s3);
  border-radius: var(--r-sm);
  background: var(--raised);
  color: var(--muted);
  font-size: var(--text-label);
}
.plan-note, .plan-checks li { text-wrap: pretty; }
.plan-totals { margin: var(--s3) 0; font-variant-numeric: tabular-nums; }
.plan-totals > div { display: flex; justify-content: space-between; gap: var(--s2); padding: var(--s1) 0; }
.plan-totals > div:last-child { border-top: 1px solid var(--border); margin-top: var(--s2); padding-top: var(--s2); font-weight: 700; }
.plan-totals dd { margin: 0; text-align: right; }
.plan-checks { padding-inline-start: var(--s5); margin: var(--s2) 0 0; }
.plan-checks li + li { margin-top: var(--s2); }
.plan-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--s3); }
@media (max-width: 760px) {
  .plan-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 640px) {
  .topbar .admin-nav:has([data-account-link]:not([hidden])) .local-mode { display: none; }
  .admin-page { --control: 44px; --admin-reading: 17px; --admin-secondary: 15px; font-size: var(--admin-reading); }
  .admin-page :is(.field input, .field textarea) { font-size: var(--admin-reading); }
  .admin-page :is(.field, .button, .plan-note, .plan-field-help, .plan-state, .admin-feedback, .help-copy) { font-size: var(--admin-secondary); }
  .admin-card { padding: var(--s4); }
  .login-card { padding: var(--s6); }
  .login-page { padding-bottom: max(var(--s5), env(safe-area-inset-bottom)); }
  .plan-main { padding-bottom: calc(var(--s10) + env(safe-area-inset-bottom)); }
  .plan-group .field-grid { grid-template-columns: minmax(0, 1fr); }
}
