:root {
  --admin-forest: #173b2c;
  --admin-green: #28513d;
  --admin-red: #b82832;
  --admin-cream: #f5efe2;
  --admin-paper: #fffaf0;
  --admin-ink: #1f241f;
  --admin-muted: #52605a;
  --admin-line: #d7cbb7;
  --admin-gold: #f5b942;
  --admin-shadow: 0 18px 50px rgb(23 59 44 / 12%);
  color-scheme: light;
  font-family: "Source Sans 3", "Segoe UI", sans-serif;
  background: var(--admin-cream);
  color: var(--admin-ink);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; background: var(--admin-cream); }
button, input, select, textarea { font: inherit; }
button, a, input, select, textarea { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid var(--admin-gold); outline-offset: 3px; }
[hidden] { display: none !important; }

.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 100; padding: .7rem 1rem; background: #fff; color: var(--admin-forest); border-radius: .4rem; }
.skip-link:focus { top: 1rem; }
.admin-header { position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; min-height: 76px; padding: .75rem clamp(1rem, 4vw, 3.5rem); background: var(--admin-forest); color: #fff; border-bottom: 4px solid var(--admin-gold); }
.admin-brand { display: inline-flex; align-items: center; gap: .75rem; color: inherit; text-decoration: none; }
.admin-brand strong, .admin-brand small { display: block; }
.admin-brand strong { font-family: Alegreya, Georgia, serif; font-size: 1.25rem; line-height: 1; }
.admin-brand small { margin-top: .18rem; color: #dbe8df; font-size: .75rem; letter-spacing: .04em; }
.brand-mark { display: grid; place-items: center; width: 44px; height: 44px; border: 2px solid var(--admin-gold); border-radius: 50%; font-family: Alegreya, Georgia, serif; font-weight: 700; color: var(--admin-gold); }

.admin-main { width: min(1420px, calc(100% - 2rem)); margin: 0 auto; padding: clamp(2rem, 5vw, 4.5rem) 0 5rem; }
.auth-card { width: min(560px, 100%); margin: 5vh auto 0; padding: clamp(1.5rem, 5vw, 3rem); background: var(--admin-paper); border: 1px solid var(--admin-line); border-top: 7px solid var(--admin-red); border-radius: 1rem; box-shadow: var(--admin-shadow); }
.auth-card h1, .workspace h1, .admin-panel h2, .admin-panel h3 { font-family: Alegreya, Georgia, serif; color: var(--admin-forest); }
.auth-card h1, .workspace h1 { margin: .2rem 0 .8rem; font-size: clamp(2rem, 5vw, 3.3rem); line-height: .98; }
.eyebrow, .panel-kicker { margin: 0 0 .35rem; text-transform: uppercase; letter-spacing: .14em; font-weight: 700; font-size: .72rem; color: var(--admin-red); }
.auth-card form { display: grid; gap: .85rem; margin-top: 1.6rem; }
label { display: grid; gap: .38rem; color: var(--admin-forest); font-weight: 700; font-size: .9rem; }
input, select, textarea { width: 100%; min-height: 46px; padding: .68rem .75rem; border: 1px solid #a99c88; border-radius: .45rem; background: #fff; color: var(--admin-ink); }
textarea { resize: vertical; }
.form-message { min-height: 1.5em; color: var(--admin-muted); }

.button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: .68rem 1rem; border: 1px solid transparent; border-radius: .45rem; cursor: pointer; font-weight: 700; text-decoration: none; transition: transform 140ms ease, background-color 140ms ease; }
.button:hover { transform: translateY(-1px); }
.button:disabled { cursor: not-allowed; opacity: .55; transform: none; }
.button-primary { background: var(--admin-red); color: #fff; }
.button-secondary { background: var(--admin-green); color: #fff; }
.button-danger { background: var(--admin-red); color: #fff; border-color: #7f1720; }
.button-quiet { background: transparent; color: currentColor; border-color: currentColor; }

.workspace-heading { display: flex; align-items: end; justify-content: space-between; gap: 2rem; margin-bottom: 1.3rem; }
.workspace-note { max-width: 28rem; margin: 0; padding: .7rem 1rem; background: #fff3ce; border-left: 4px solid var(--admin-gold); }
.workspace-nav { position: sticky; top: 76px; z-index: 10; display: flex; gap: .4rem; overflow-x: auto; margin: 0 0 1.2rem; padding: .65rem; background: rgb(245 239 226 / 96%); border: 1px solid var(--admin-line); border-radius: .7rem; }
.workspace-nav a { flex: 0 0 auto; padding: .52rem .8rem; border-radius: .35rem; color: var(--admin-forest); font-weight: 700; text-decoration: none; }
.workspace-nav a:hover { background: #e9dfcd; }
.workspace-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.2rem; align-items: start; }
.admin-panel { min-width: 0; padding: clamp(1.1rem, 3vw, 1.7rem); background: var(--admin-paper); border: 1px solid var(--admin-line); border-radius: .8rem; box-shadow: 0 10px 30px rgb(23 59 44 / 7%); scroll-margin-top: 160px; }
.admin-panel h2 { margin: 0 0 1rem; font-size: clamp(1.5rem, 3vw, 2rem); }
.admin-panel h3 { margin: 0; }
.panel-wide { grid-column: 1 / -1; }
.panel-heading { display: flex; justify-content: space-between; align-items: end; gap: 1rem; margin-bottom: 1rem; }
.compact-field { min-width: min(100%, 300px); }
.editor-form, [data-photo-form], [data-hours-form] { display: grid; gap: 1rem; }
.field-pair, .field-trio { display: grid; gap: .85rem; }
.field-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-trio { grid-template-columns: repeat(3, minmax(0, 1fr)); }
fieldset { min-width: 0; margin: 0; padding: 1rem; border: 1px solid var(--admin-line); border-radius: .5rem; }
legend { padding: 0 .4rem; color: var(--admin-forest); font-weight: 700; }
.check-field { align-content: end; grid-template-columns: auto 1fr; align-items: center; min-height: 46px; }
.check-field input { width: 1.2rem; min-height: 1.2rem; }
.form-actions { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; }
.preview-block { display: grid; grid-template-columns: minmax(160px, .4fr) 1fr; gap: 1rem; align-items: center; margin-top: 1.4rem; padding-top: 1.3rem; border-top: 1px dashed #b8aa94; }
.preview-block iframe { width: 100%; height: 170px; border: 1px solid var(--admin-line); border-radius: .5rem; background: #fff; }
.hours-grid { display: grid; gap: .55rem; }
.hours-row { display: grid; grid-template-columns: 4.5rem 1fr 1fr; gap: .5rem; align-items: center; }
.hours-row strong { color: var(--admin-forest); }
.hours-row input { min-width: 0; }
.status-box { padding: .85rem; background: #ecf2ed; border-left: 4px solid var(--admin-green); }
.release-list { display: grid; gap: .65rem; }
.release-row { display: grid; grid-template-columns: 1fr auto auto; gap: .6rem; align-items: center; padding: .75rem 0; border-bottom: 1px solid var(--admin-line); }
.release-row p { margin: 0; }
.release-row small { display: block; color: var(--admin-muted); }
.error-summary { margin-bottom: 1rem; padding: 1rem; background: #fff0f0; border: 2px solid var(--admin-red); border-radius: .5rem; }
.error-summary h2 { margin: 0; font-size: 1.1rem; }
.error-summary ul { margin-bottom: 0; }
.global-status { position: fixed; right: 1rem; bottom: 1rem; z-index: 30; max-width: min(28rem, calc(100% - 2rem)); }
.global-status:not(:empty) { padding: .8rem 1rem; background: var(--admin-ink); color: #fff; border-radius: .5rem; box-shadow: var(--admin-shadow); }

@media (max-width: 850px) {
  .workspace-grid { grid-template-columns: 1fr; }
  .panel-wide { grid-column: auto; }
  .field-trio { grid-template-columns: 1fr 1fr; }
  .field-trio > :last-child { grid-column: 1 / -1; }
}

@media (max-width: 620px) {
  .admin-header { min-height: 68px; }
  .admin-brand small { display: none; }
  .admin-main { width: min(100% - 1rem, 1420px); padding-top: 1.2rem; }
  .auth-card { margin-top: 1rem; }
  .workspace-heading, .panel-heading { align-items: stretch; flex-direction: column; }
  .workspace-nav { top: 68px; }
  .field-pair, .field-trio, .preview-block { grid-template-columns: 1fr; }
  .field-trio > :last-child { grid-column: auto; }
  .hours-row { grid-template-columns: 3.5rem 1fr 1fr; }
  .release-row { grid-template-columns: 1fr 1fr; }
  .release-row > :first-child { grid-column: 1 / -1; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}
