.ls-admin [hidden] { display: none !important; }
.ls-admin.admin-authenticated > header,
.ls-admin.admin-authenticated > footer { display: none; }
.ls-admin #adminApp { padding: 0; background: none; }
.admin-shell {
  display: grid;
  grid-template-columns: 244px minmax(0, 1fr);
  align-items: start;
  min-height: 100vh;
  background: radial-gradient(ellipse at 78% 0, var(--ls-lavender), transparent 62%), var(--ls-milk);
}
.admin-sidebar {
  position: sticky;
  top: 0;
  display: flex;
  flex-direction: column;
  height: 100dvh;
  overflow: auto;
  padding: 26px 16px 18px;
  background: linear-gradient(160deg, #ffffffed, #f0e6faf2);
  border-right: 1px solid #fff;
  box-shadow: 8px 0 28px #49345f10;
}
.admin-sidebar .logo { padding: 0 10px 18px; white-space: nowrap; }
.admin-sidebar nav p {
  margin: 14px 10px 4px;
  color: var(--ls-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .06em;
}
.admin-sidebar button, .admin-topbar button, .admin-overview-grid button, .admin-overview-agenda button {
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--ls-line);
  border-radius: 12px;
  color: var(--ls-purple);
  background: #ffffffc9;
  font: inherit;
  cursor: pointer;
}
.admin-sidebar nav button {
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  border-color: transparent;
  background: transparent;
  text-align: left;
  font-size: 14px;
}
.admin-sidebar nav button:hover { background: #fff9; }
.admin-sidebar nav button[aria-current="page"] {
  color: #fff;
  background: linear-gradient(135deg, #79559d, var(--ls-purple));
  box-shadow: 0 4px 12px #49345f24;
}
.admin-sidebar-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-top: auto;
  padding: 16px 4px 0;
  font-size: 13px;
}
.admin-workspace { min-width: 0; width: min(1400px, 100%); padding: clamp(16px, 3vw, 42px); }
.admin-topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 24px;
  padding: 10px 14px;
  border: 1px solid #fff;
  border-radius: 14px;
  background: #ffffffb0;
  color: var(--ls-purple);
  font-size: 13px;
}
.admin-topbar #adminMenu { display: none; }
.admin-workspace h1 { margin-bottom: 22px; }
.admin-overview-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.admin-metric, .admin-overview-agenda, #bookingSettings {
  padding: clamp(14px, 3vw, 28px);
  border: 1px solid var(--ls-edge);
  border-radius: var(--ls-radius);
  background: var(--ls-glass);
  box-shadow: var(--ls-depth);
}
.admin-metric { display: grid; justify-items: start; gap: 12px; color: var(--ls-purple); }
.admin-metric strong { font-size: clamp(20px, 4vw, 36px); }
.admin-overview-agenda { margin-top: 16px; }
.admin-overview-agenda h2 { margin-top: 0; }
.admin-workspace form { min-width: 0; }
.admin-workspace input, .admin-workspace textarea, .admin-workspace select { max-width: 100%; }
.admin-workspace fieldset { min-width: 0; }
#bookings > .bk { scroll-margin-top: 76px; }
#bookingSettings > p { margin-top: 0; color: var(--ls-purple); font-weight: 700; }
.admin-workspace .work-calendar { margin-top: 0; }
.admin-workspace .work-settings { max-width: 100%; }
@media (max-width: 850px) {
  .admin-shell { display: block; }
  .admin-sidebar {
    display: none;
    position: fixed;
    z-index: 20;
    inset: 0 auto 0 0;
    width: min(290px, calc(100vw - 52px));
    -webkit-backdrop-filter: blur(8px);
    backdrop-filter: blur(8px);
    box-shadow: 0 0 0 100vmax #34254238, 8px 0 25px #49345f38;
  }
  .admin-menu-open .admin-sidebar { display: flex; }
  .admin-topbar #adminMenu { display: block; }
  .admin-topbar > span { display: none; }
}
@media (max-width: 480px) {
  .admin-overview-grid { gap: 8px; }
  .admin-workspace .work-calendar { padding: 8px; }
  .admin-workspace .work-day h3 { font-size: 11px; overflow-wrap: anywhere; }
  .admin-workspace .bk .info { min-width: min(180px, 100%); }
}

.admin-workspace input:not([type="checkbox"], [type="file"], [type="radio"]),
.admin-workspace select, .admin-workspace textarea {
  padding: 8px 10px;
  border: 1px solid var(--ls-line);
  border-radius: 9px;
  background: #fff;
  color: var(--ink);
  font: inherit;
}
.admin-workspace button:not(.action, .tab, .work-event, [aria-pressed], [data-admin-page], #adminMenu) {
  padding: 8px 12px;
  border: 1px solid var(--ls-line);
  border-radius: 10px;
  background: #fff;
  color: var(--ls-purple);
  cursor: pointer;
}
.admin-workspace form button[type="submit"]:not(.action) {
  background: var(--ls-purple);
  color: white;
}
.admin-workspace fieldset { border: 1px solid var(--ls-line); border-radius: 12px; }
.admin-sidebar { backdrop-filter: blur(10px); }

#adminAlbums { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 170px), 1fr)); gap: 14px; margin-top: 18px; }
.ls-admin .admin-workspace .admin-album-card { display: grid; gap: 8px; align-content: start; text-align: left; overflow-wrap: anywhere; }
.admin-album-card img, .admin-album-placeholder { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 8px; }
.admin-album-placeholder { display: grid; place-items: center; background: var(--ls-lavender); }
.admin-album-editor small { display: block; padding: 4px 0; }
.admin-album-editor { overflow-wrap: anywhere; }

.site-editor-card {
  margin-bottom: 14px;
  border: 1px solid var(--ls-edge);
  border-radius: var(--ls-radius);
  background: var(--ls-glass);
  box-shadow: var(--ls-depth);
}
.site-editor-card > summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  gap: 12px;
  align-items: center;
  padding: 14px;
  list-style: none;
  cursor: pointer;
  color: var(--ls-purple);
}
.site-editor-card > summary::-webkit-details-marker { display: none; }
.site-editor-card > summary strong, .site-editor-card > summary small { display: block; }
.site-editor-card > summary small { margin-top: 4px; color: var(--ls-muted); line-height: 1.4; }
.editor-number { padding: 8px; border-radius: 10px; background: var(--ls-lavender); }
.site-editor-card summary img { width: clamp(48px, 10vw, 100px); aspect-ratio: 4 / 3; object-fit: cover; border-radius: 9px; }
.editor-text-preview { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.site-editor-fields { padding: 14px; border-top: 1px solid var(--ls-line); }
.site-editor-fields label { display: block; margin: 8px 0; }
.site-editor-fields textarea { display: block; width: 100%; }
.site-editor-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin-top: 12px; }
.site-editor-actions a { color: var(--ls-purple); text-decoration: underline; }
