/* Phase 2 functional admin additions. Approved mock-up tokens remain authoritative. */
/* Keep HTML hidden semantics authoritative when component classes declare flex/grid display. */
.admin-loading[hidden],
.admin-data-list[hidden],
.admin-error[hidden],
.admin-form-errors[hidden] { display:none !important; }

.admin-management-welcome { align-items:flex-end; }
.admin-management-panel { overflow:visible; }
.admin-management-toolbar { gap:14px; align-items:center; }
.admin-search-box {
  min-height:44px; flex:1 1 360px; display:flex; align-items:center; gap:9px;
  padding:0 13px; border:1px solid var(--ink-200); border-radius:var(--radius-md); background:#fff;
}
.admin-search-box:focus-within { border-color:var(--brand-500); box-shadow:0 0 0 3px rgba(25,135,84,.12); }
.admin-search-box input { width:100%; border:0; outline:0; background:transparent; font:inherit; color:var(--ink-900); }
.admin-search-box input::placeholder { color:var(--ink-600); }
.admin-filter-actions { display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.admin-filter-actions select {
  min-height:42px; border:1px solid var(--ink-200); border-radius:var(--radius-md); background:#fff;
  padding:0 34px 0 12px; color:var(--ink-900); font:inherit;
}
.admin-management-body { min-height:260px; }
.admin-loading { display:flex; align-items:center; justify-content:center; gap:10px; min-height:220px; color:var(--ink-600); }
.admin-spinner { width:22px; height:22px; border:3px solid var(--brand-100); border-top-color:var(--brand-600); border-radius:50%; animation:admin-spin .8s linear infinite; }
@keyframes admin-spin { to { transform:rotate(360deg); } }
.admin-error, .admin-form-errors {
  padding:12px 14px; border:1px solid var(--red-100); background:#fff5f6; color:var(--red-700); border-radius:var(--radius-md);
}
.admin-data-list { display:grid; gap:10px; }
.admin-record {
  display:grid; grid-template-columns:minmax(0,1.5fr) minmax(150px,.7fr) minmax(130px,.55fr) auto;
  gap:14px; align-items:center; padding:15px; border:1px solid var(--ink-200); border-radius:var(--radius-lg); background:#fff;
}
.admin-record:hover { border-color:var(--brand-200); box-shadow:var(--shadow-sm); }
.admin-record__main { min-width:0; }
.admin-record__title { display:flex; align-items:center; flex-wrap:wrap; gap:8px; }
.admin-record__title h3 { margin:0; font-size:1rem; line-height:1.3; }
.admin-record__main p { margin:5px 0 0; color:var(--ink-600); font-size:.88rem; line-height:1.45; }
.admin-record__meta { display:grid; gap:4px; min-width:0; }
.admin-record__meta strong { font-size:.86rem; }
.admin-record__meta span { color:var(--ink-600); font-size:.8rem; overflow-wrap:anywhere; }
.admin-record__status { display:flex; flex-direction:column; align-items:flex-start; gap:5px; }
.admin-record__status small { color:var(--ink-600); }
.admin-record__actions { display:flex; justify-content:flex-end; gap:7px; flex-wrap:wrap; }
.admin-record__actions .icon-button { width:38px; height:38px; }
.admin-empty { padding:50px 20px; text-align:center; border:1px dashed var(--ink-200); border-radius:var(--radius-lg); background:var(--ink-50); }
.admin-empty svg { width:34px; height:34px; color:var(--brand-600); }
.admin-empty h3 { margin:12px 0 5px; }
.admin-empty p { margin:0 auto 16px; max-width:520px; color:var(--ink-600); }
.admin-editor {
  position:fixed; inset:0 0 0 auto; z-index:1005; width:min(620px,100%); background:#fff;
  box-shadow:-18px 0 50px rgba(16,32,57,.2); transform:translateX(104%); transition:transform .22s ease;
  display:flex; flex-direction:column; visibility:hidden;
}
.admin-editor.is-open { transform:translateX(0); visibility:visible; }
.admin-editor__head { display:flex; align-items:flex-start; justify-content:space-between; gap:20px; padding:20px 22px; border-bottom:1px solid var(--ink-200); }
.admin-editor__head h2 { margin:2px 0 0; }
.admin-editor__form { overflow:auto; padding:20px 22px 110px; }
.admin-editor__actions {
  position:absolute; inset:auto 0 0; display:flex; justify-content:flex-end; gap:10px; padding:15px 22px;
  background:rgba(255,255,255,.96); border-top:1px solid var(--ink-200); backdrop-filter:blur(8px);
}
.admin-form-section { margin:0 0 22px; padding:0 0 20px; border-bottom:1px solid var(--ink-200); }
.admin-form-section:last-child { border-bottom:0; }
.admin-form-section h3 { margin:0 0 12px; font-size:1rem; }
.admin-form-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px; }
.admin-form-field { display:grid; gap:6px; min-width:0; }
.admin-form-field.is-wide { grid-column:1 / -1; }
.admin-form-field label { font-weight:700; font-size:.83rem; color:var(--ink-900); }
.admin-form-field input,
.admin-form-field select,
.admin-form-field textarea {
  width:100%; min-height:43px; padding:10px 11px; border:1px solid var(--ink-200); border-radius:var(--radius-md);
  background:#fff; color:var(--ink-900); font:inherit;
}
.admin-form-field textarea { min-height:92px; resize:vertical; }
.admin-form-field input:focus,
.admin-form-field select:focus,
.admin-form-field textarea:focus { outline:0; border-color:var(--brand-500); box-shadow:0 0 0 3px rgba(25,135,84,.12); }
.admin-form-field small { color:var(--ink-600); font-size:.76rem; }
.admin-check-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:9px; }
.admin-check {
  display:flex; align-items:flex-start; gap:8px; padding:10px 11px; border:1px solid var(--ink-200); border-radius:var(--radius-md); background:var(--ink-50);
}
.admin-check input { margin-top:3px; }
.admin-check span { font-size:.84rem; line-height:1.35; }
.admin-inline-places { display:flex; align-items:center; gap:7px; }
.admin-inline-places input { width:74px; min-height:38px; border:1px solid var(--ink-200); border-radius:var(--radius-sm); padding:7px 9px; }
.admin-audit-item { grid-template-columns:minmax(0,1.4fr) minmax(160px,.7fr) auto; }
.admin-audit-json { font-family:ui-monospace,SFMono-Regular,Consolas,monospace; font-size:.75rem; color:var(--ink-600); overflow-wrap:anywhere; }
.admin-bottom-nav a {
  min-height:58px; min-width:0; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:3px; padding:0 4px; border-radius:14px; color:var(--ink-500); background:transparent;
  text-decoration:none; font-size:9px; font-weight:800;
}
.admin-bottom-nav a.is-active { color:var(--brand-800); background:var(--brand-50); }
.admin-bottom-nav a .icon { width:20px; height:20px; }
.admin-dashboard-live .kpi-value.is-loading { opacity:.45; }

@media (max-width: 980px) {
  .admin-record { grid-template-columns:minmax(0,1.4fr) minmax(130px,.6fr) auto; }
  .admin-record__status { display:none; }
}
@media (max-width: 720px) {
  .admin-management-toolbar { align-items:stretch; }
  .admin-search-box { flex-basis:100%; }
  .admin-filter-actions { width:100%; }
  .admin-filter-actions select { flex:1; }
  .admin-record, .admin-audit-item { grid-template-columns:1fr; gap:10px; }
  .admin-record__status { display:flex; }
  .admin-record__actions { justify-content:flex-start; }
  .admin-record__meta { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .admin-form-grid, .admin-check-grid { grid-template-columns:1fr; }
  .admin-editor__head, .admin-editor__form { padding-left:16px; padding-right:16px; }
  .admin-editor__actions { padding-left:16px; padding-right:16px; }
}

.toast.is-error { background:var(--red-700); }
