body.admin-page{
  background:#eef3fb;
  color:#0f172a;
}

body.admin-page.admin-auth-pending .admin-shell,
body.admin-page.admin-auth-pending .admin-auth-wrap{
  visibility:hidden;
}

.admin-auth-check{
  position:fixed;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(238,243,251,.85);
  backdrop-filter:blur(3px);
  z-index:9999;
}

body.admin-page:not(.admin-auth-pending) .admin-auth-check{
  display:none;
}

.admin-auth-check-card{
  display:flex;
  align-items:center;
  gap:.65rem;
  background:#fff;
  border:1px solid #dbe5f0;
  border-radius:.9rem;
  box-shadow:0 12px 28px rgba(15,23,42,.08);
  padding:.9rem 1rem;
  color:#334155;
}

.admin-auth-check-card p{
  margin:0;
  font-weight:600;
}

.admin-shell{
  width:min(1100px,94%);
  margin:0 auto;
  padding:1.25rem 0 2.5rem;
}

.admin-topbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
  margin-bottom:1rem;
}

.admin-topbar h1{
  margin:0;
  font-size:clamp(1.4rem,2.5vw,2rem);
}

.admin-topbar p{
  margin:.25rem 0 0;
  color:#475569;
}

.admin-top-actions{
  display:flex;
  align-items:center;
  gap:.6rem;
  flex-wrap:wrap;
}

.admin-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  padding:.65rem .95rem;
  border-radius:.6rem;
  border:1px solid #cbd5e1;
  background:#fff;
  color:#0f172a;
  cursor:pointer;
  font:inherit;
  font-weight:600;
  text-decoration:none;
}

.admin-btn:hover{
  border-color:#93c5fd;
  background:#f8fbff;
}

.admin-btn:disabled{
  opacity:.65;
  cursor:not-allowed;
}

.admin-btn-primary{
  background:#1d4ed8;
  border-color:#1d4ed8;
  color:#fff;
}

.admin-btn-primary:hover{
  background:#1e40af;
  border-color:#1e40af;
}

.admin-btn-danger{
  border-color:#fecaca;
  background:#fff5f5;
  color:#991b1b;
}

.admin-btn-success{
  border-color:#bbf7d0;
  background:#f0fdf4;
  color:#166534;
}

.admin-card{
  background:#fff;
  border:1px solid #dbe5f0;
  border-radius:1rem;
  box-shadow:0 10px 24px rgba(15,23,42,.06);
}

.admin-auth-wrap{
  min-height:100vh;
  display:grid;
  place-items:center;
  padding:1.25rem;
}

.admin-auth-card{
  width:min(460px,100%);
  padding:1.25rem;
}

.admin-auth-card h1{
  margin:0 0 .35rem;
}

.admin-auth-card p{
  color:#475569;
}

.admin-form{
  display:grid;
  gap:1rem;
  margin-top:1rem;
}

.admin-auth-actions{
  display:flex;
  gap:.6rem;
  flex-wrap:wrap;
}

.admin-field{
  display:grid;
  gap:.35rem;
}

.admin-field label{
  font-weight:600;
}

.admin-field input,
.admin-field textarea,
.admin-field select{
  width:100%;
  border:1px solid #cbd5e1;
  border-radius:.65rem;
  padding:.7rem .8rem;
  font:inherit;
  background:#fff;
}

.admin-field input:focus-visible,
.admin-field textarea:focus-visible,
.admin-field select:focus-visible{
  outline:2px solid #93c5fd;
  outline-offset:2px;
  border-color:#60a5fa;
}

.admin-note{
  font-size:.9rem;
  color:#64748b;
}

.admin-alert{
  border-radius:.75rem;
  padding:.75rem .85rem;
  margin:.9rem 0 0;
  border:1px solid transparent;
  line-height:1.4;
}

.admin-alert.is-hidden{
  display:none;
}

.admin-alert-info{
  background:#eff6ff;
  border-color:#bfdbfe;
  color:#1e3a8a;
}

.admin-alert-success{
  background:#f0fdf4;
  border-color:#bbf7d0;
  color:#166534;
}

.admin-alert-error{
  background:#fff1f2;
  border-color:#fecdd3;
  color:#9f1239;
}

.admin-alert-warning{
  background:#fffbeb;
  border-color:#fde68a;
  color:#92400e;
}

.admin-status-row{
  display:grid;
  gap:1rem;
  margin-bottom:1rem;
}

.admin-status-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr;
  gap:1rem;
}

.admin-panel{
  padding:1rem;
}

.admin-panel h2{
  margin:0 0 .6rem;
  font-size:1.05rem;
}

.admin-panel p{
  margin:.25rem 0;
}

.admin-mono{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:.88rem;
  word-break:break-all;
}

.admin-services-list{
  display:grid;
  gap:1rem;
}

.admin-service-card{
  padding:0;
  overflow:hidden;
}

.admin-service-card.is-saving{
  opacity:.75;
}

.admin-service-card.is-archived{
  border-color:#fde68a;
  background:#fffbeb;
}

.admin-service-summary{
  list-style:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:flex-start;
  gap:.75rem;
  padding:1rem;
  cursor:pointer;
}

.admin-service-summary::-webkit-details-marker{
  display:none;
}

.admin-service-summary-icon{
  width:30px;
  height:30px;
  border-radius:999px;
  border:1px solid #cbd5e1;
  display:grid;
  place-items:center;
  color:#1d4ed8;
  background:#fff;
  margin-top:.15rem;
}

.admin-service-summary-icon::before{
  content:"+";
  font-size:1.1rem;
  line-height:1;
  transition:transform .2s ease;
}

.admin-service-card[open] .admin-service-summary{
  border-bottom:1px solid #dbe5f0;
}

.admin-service-card[open] .admin-service-summary-icon::before{
  transform:rotate(45deg);
}

.admin-service-body{
  padding:1rem;
}

.admin-service-header{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:1rem;
  margin:0;
}

.admin-service-header h3{
  margin:0;
  font-size:1.05rem;
}

.admin-service-subtext{
  color:#64748b;
  font-size:.85rem;
  margin-top:.2rem;
}

.admin-service-quick-row{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  margin-top:.45rem;
}

.admin-service-quick-pill{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  border:1px solid #e2e8f0;
  border-radius:999px;
  background:#f8fafc;
  color:#334155;
  font-size:.78rem;
  padding:.25rem .55rem;
}

.admin-service-quick-pill strong{
  color:#0f172a;
}

.admin-badge{
  display:inline-flex;
  align-items:center;
  gap:.3rem;
  border-radius:999px;
  padding:.3rem .65rem;
  font-size:.75rem;
  font-weight:700;
  white-space:nowrap;
}

.admin-badge-stack{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:.4rem;
}

.admin-badge-active{
  background:#ecfdf5;
  color:#065f46;
  border:1px solid #a7f3d0;
}

.admin-badge-inactive{
  background:#f8fafc;
  color:#475569;
  border:1px solid #e2e8f0;
}

.admin-badge-warning{
  background:#fffbeb;
  color:#92400e;
  border:1px solid #fde68a;
}

.admin-badge-success{
  background:#ecfdf5;
  color:#065f46;
  border:1px solid #a7f3d0;
}

.admin-badge-info{
  background:#eff6ff;
  color:#1d4ed8;
  border:1px solid #bfdbfe;
}

.admin-service-form{
  display:grid;
  gap:.85rem;
}

.admin-service-meta-row{
  display:flex;
  gap:.75rem;
  flex-wrap:wrap;
  margin-top:.3rem;
}

.admin-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.85rem;
}

.admin-grid-3{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.85rem;
}

.admin-checkbox-row{
  display:flex;
  align-items:center;
  gap:.55rem;
  min-height:46px;
  border:1px solid #cbd5e1;
  border-radius:.65rem;
  padding:.65rem .8rem;
  background:#fff;
}

.admin-checkbox-row input{
  width:18px;
  height:18px;
}

.admin-discount-fields{
  display:grid;
  gap:.85rem;
  padding:.85rem;
  border:1px dashed #cbd5e1;
  border-radius:.8rem;
  background:#fafcff;
}

.admin-discount-fields.is-disabled{
  opacity:.65;
}

.admin-preview{
  border-radius:.75rem;
  padding:.75rem .85rem;
  background:#f8fafc;
  border:1px solid #e2e8f0;
  color:#334155;
}

.admin-preview-title{
  font-weight:700;
  color:#0f172a;
  margin-bottom:.35rem;
}

.admin-preview strong{
  color:#0f172a;
}

.admin-preview .admin-preview-old{
  text-decoration:line-through;
  color:#64748b;
  margin-right:.35rem;
}

.admin-preview-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:.75rem;
}

.admin-website-look-card{
  border:1px solid #e2e8f0;
  border-radius:.85rem;
  background:#fff;
  padding:1rem;
  box-shadow:none;
  transform:none;
}

.admin-website-look-card:hover{
  border-color:#e2e8f0;
  background:#fff;
  box-shadow:none;
  transform:none;
}

.admin-website-look-card h3{
  margin:0 0 .45rem;
}

.admin-website-look-card p{
  margin:0;
}

.admin-website-look-price{
  margin:.2rem 0 .5rem!important;
}

.admin-website-look-price strong{
  font-size:1.05rem;
}

.admin-website-look-copy{
  color:#475569!important;
  font-size:.9rem;
}

.admin-website-look-badge{
  display:inline-flex;
  align-items:center;
  margin-top:.55rem;
  padding:.24rem .58rem;
  border-radius:999px;
  border:1px solid #bfdbfe;
  background:#eff6ff;
  color:#1d4ed8;
  font-size:.75rem;
  font-weight:700;
}

.admin-website-look-card.is-highlighted{
  border-color:#93c5fd;
  box-shadow:0 0 0 2px rgba(147,197,253,.35);
}

.admin-service-actions{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:.75rem;
  flex-wrap:wrap;
}

.admin-service-buttons{
  display:flex;
  gap:.5rem;
  flex-wrap:wrap;
  justify-content:flex-end;
}

.admin-service-message{
  font-size:.9rem;
  min-height:1.25rem;
}

.admin-service-message.success{
  color:#166534;
}

.admin-service-message.error{
  color:#9f1239;
}

.admin-service-message.warning{
  color:#92400e;
}

.admin-warning-text{
  color:#92400e;
}

.admin-time-preview{
  border-radius:.65rem;
  border:1px solid #e2e8f0;
  background:#fff;
  padding:.65rem .75rem;
}

.admin-time-preview-lines{
  display:grid;
  gap:.25rem;
  font-size:.88rem;
  color:#334155;
}

.admin-discount-percent{
  border-radius:.65rem;
  border:1px solid #dbe5f0;
  background:#fff;
  padding:.55rem .7rem;
  color:#334155;
  font-size:.9rem;
}

.admin-discount-percent strong{
  color:#0f172a;
}

.admin-discount-percent.positive{
  border-color:#bbf7d0;
  background:#f0fdf4;
  color:#166534;
}

.admin-discount-percent.warning{
  border-color:#fde68a;
  background:#fffbeb;
  color:#92400e;
}

.admin-backups-list{
  display:grid;
  gap:.85rem;
}

.admin-backup-card{
  border:1px solid #dbe5f0;
  border-radius:.8rem;
  background:#fff;
  padding:.85rem;
  display:flex;
  gap:.85rem;
  align-items:flex-start;
  justify-content:space-between;
  flex-wrap:wrap;
}

.admin-backup-card-main{
  display:grid;
  gap:.25rem;
}

.admin-backup-title{
  font-weight:700;
  color:#0f172a;
}

.admin-backup-meta{
  color:#475569;
  font-size:.9rem;
}

.admin-backup-actions{
  display:flex;
  gap:.5rem;
}

.admin-empty{
  text-align:center;
  padding:1.2rem;
  color:#64748b;
}

.admin-spinner{
  width:18px;
  height:18px;
  border-radius:50%;
  border:2px solid rgba(30,64,175,.2);
  border-top-color:#1d4ed8;
  animation:adminSpin .8s linear infinite;
  display:inline-block;
  vertical-align:middle;
  margin-right:.4rem;
}

@keyframes adminSpin{
  to{transform:rotate(360deg)}
}

@media (max-width:900px){
  .admin-status-grid{
    grid-template-columns:1fr;
  }

  .admin-preview-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media (max-width:700px){
  .admin-grid,
  .admin-grid-3{
    grid-template-columns:1fr;
  }

  .admin-topbar{
    align-items:flex-start;
    flex-direction:column;
  }

  .admin-badge-stack{
    align-items:flex-start;
  }

  .admin-service-summary{
    grid-template-columns:1fr;
  }

  .admin-service-summary-icon{
    display:none;
  }

  .admin-service-header{
    flex-direction:column;
  }

  .admin-preview-grid{
    grid-template-columns:1fr;
  }

  .admin-service-actions{
    align-items:flex-start;
  }

  .admin-service-buttons{
    width:100%;
    justify-content:flex-start;
  }

  .admin-auth-actions{
    flex-direction:column;
  }
}
