/* admin-base.css - fonts, body reset, .admin-shell layout, common
   buttons, generic empty state. Minimal chrome shared by every page.
   Lifted from the Reader project.

   Sibling files (load order matters):
     admin-top.css      - sticky top bar + auth status slot
     admin-tabs.css     - tab strip + active state + counts
     admin-tab.css      - Admin tab accordion + knob rows
     admin-roadmap.css  - Roadmap tab two-column grid */

@font-face {
  font-family: 'Alkatra';
  src: url('/fonts/Alkatra-Variable.woff2') format('woff2-variations'),
       url('/fonts/Alkatra-Variable.woff2') format('woff2');
  font-weight: 400 700;
  font-style: normal;
  font-display: swap;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
body {
  background: #f5f6fa;
  color: #1a1d26;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  line-height: 1.5;
  padding: 24px;
  -webkit-font-smoothing: antialiased;
}
a { color: #2945d6; text-decoration: none; }
a:hover { color: #1f36ac; text-decoration: underline; }

.admin-shell {
  max-width: 1320px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 14px;
  position: relative;
}

/* Button vocabulary. */
button { font-family: inherit; cursor: pointer; }
.btn {
  padding: 7px 14px; background: #2945d6; border: none;
  border-radius: 6px; color: #fff;
  font-size: 13px; font-weight: 600;
}
.btn:hover { background: #1f36ac; }
.btn[disabled] { background: #9aa3c4; cursor: not-allowed; }
.btn-ghost {
  padding: 7px 14px; background: transparent;
  border: 1px solid #d9dce6; border-radius: 6px;
  color: #5a6172; font-size: 13px; font-weight: 600;
}
.btn-ghost:hover { border-color: #2945d6; color: #2945d6; }
.btn-ghost[disabled] { opacity: .45; cursor: not-allowed; }
.btn-secondary {
  padding: 7px 14px; background: #eef0f7;
  border: 1px solid #d9dce6; border-radius: 6px;
  color: #3a4154; font-size: 13px; font-weight: 600;
}
.btn-secondary:hover { background: #e2e6f0; border-color: #c9cdd9; color: #1a1d26; }
.btn-danger {
  padding: 7px 12px; background: transparent;
  border: 1px solid #d9dce6; border-radius: 6px;
  color: #7a1e16; font-size: 12px; font-weight: 600;
}
.btn-danger:hover { border-color: #7a1e16; background: #fde2e0; }

/* Form elements. */
input[type="text"], input[type="email"], input[type="number"], select, textarea {
  font: inherit;
  padding: 6px 10px;
  border: 1px solid #d9dce6;
  border-radius: 6px;
  font-size: 13px;
  background: #fff;
  color: #1a1d26;
}
input:focus, select:focus, textarea:focus {
  outline: none;
  border-color: #2945d6;
  box-shadow: 0 0 0 2px rgba(41, 69, 214, .15);
}
textarea { font-family: "SF Mono", Monaco, Menlo, monospace; font-size: 12px; }

code {
  font-family: "SF Mono", Monaco, Menlo, monospace;
  font-size: 12px;
  background: #eef0f7;
  padding: 1px 5px;
  border-radius: 3px;
  color: #1a1d26;
}

/* Empty/loading state. */
.empty { padding: 24px; text-align: center; color: #8a93a6; font-size: 13px; font-style: italic; }

/* Hide admin-only elements until role check passes. */
[data-admin-only="1"] { display: none; }
body.admin-signed-out .tabs,
body.admin-signed-out .tab-panel { display: none !important; }
