:root{
  --pink:#F55288;
  --pink-dark:#D93870;
  --pink-pale:#FFF1F5;
  --ink:#171217;
  --muted:#776871;
  --line:#EEDBE3;
  --white:#fff;
}

*{box-sizing:border-box}

body{
  margin:0;
  font-family:"DM Sans",Arial,sans-serif;
  background:#FFF8FA;
  color:var(--ink);
}

button,input,select,textarea{font:inherit}

.admin-page{
  min-height:100vh;
  padding:30px 20px;
}

.login-card{
  width:min(430px,100%);
  margin:8vh auto 0;
  background:#fff;
  padding:34px;
  border-radius:28px;
  border:1px solid var(--line);
  box-shadow:0 24px 70px rgba(94,35,57,.10);
}

.admin-logo{
  width:62px;
  height:62px;
  object-fit:contain;
  margin-bottom:12px;
}

h1,h2{
  font-family:"Playfair Display",Georgia,serif;
  margin:0 0 8px;
}

h1{font-size:38px}
h2{font-size:28px}

.eyebrow{
  margin:0 0 8px;
  color:var(--pink-dark);
  font-size:12px;
  letter-spacing:.12em;
  font-weight:800;
}

.muted{
  color:var(--muted);
  margin:0 0 18px;
}

.stack,
.type-form{
  display:grid;
  gap:14px;
}

label{
  display:grid;
  gap:7px;
  font-size:13px;
  font-weight:700;
}

input,
select,
textarea{
  width:100%;
  padding:12px 13px;
  border:1px solid var(--line);
  border-radius:12px;
  background:#fff;
}

textarea{resize:vertical}

.primary-btn,
.secondary-btn{
  border:0;
  border-radius:999px;
  padding:12px 18px;
  font-weight:800;
  cursor:pointer;
  text-decoration:none;
  display:inline-flex;
  justify-content:center;
  align-items:center;
}

.primary-btn{
  background:var(--ink);
  color:#fff;
}

.primary-btn:hover{background:var(--pink)}

.secondary-btn{
  background:#fff;
  color:var(--ink);
  border:1px solid var(--line);
}

.message{
  min-height:20px;
  color:#B3261E;
  font-weight:700;
}

.password-wrap{
  position:relative;
}

.password-wrap input{
  padding-right:50px;
}

.password-toggle{
  position:absolute;
  top:50%;
  right:9px;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border:0;
  background:transparent;
  cursor:pointer;
  display:grid;
  place-items:center;
  font-size:18px;
  opacity:.65;
}

.password-toggle:hover{opacity:1}

.admin-shell{
  width:min(1180px,100%);
  margin:0 auto;
}

.admin-header{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
  margin-bottom:24px;
}

.header-actions{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}

.panel{
  background:#fff;
  border:1px solid var(--line);
  border-radius:24px;
  padding:24px;
  box-shadow:0 18px 45px rgba(94,35,57,.07);
  margin-bottom:22px;
}

.panel-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:16px;
  margin-bottom:18px;
}

.type-admin-grid{
  display:grid;
  grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);
  gap:24px;
}

.type-form{
  padding:20px;
  border:1px solid #F0DEE5;
  border-radius:18px;
  background:#FFFBFC;
}

.type-list-admin{
  display:grid;
  gap:10px;
  align-content:start;
}

.type-admin-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:15px;
  background:#fff;
}

.type-admin-card.inactive{
  opacity:.6;
}

.type-admin-card strong{
  display:block;
  font-size:16px;
  margin-bottom:4px;
}

.type-admin-card small{
  display:block;
  color:var(--muted);
  margin:3px 0;
}

.form-actions,
.list-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}

.edit-btn,
.danger-btn{
  border-radius:999px;
  padding:8px 12px;
  cursor:pointer;
  font-weight:700;
}

.edit-btn{
  border:1px solid var(--line);
  background:#fff;
}

.danger-btn{
  border:1px solid #F2CBD0;
  background:#FFF4F5;
  color:#9D2630;
}

.rules-table-wrap{overflow:auto}

.rules-table{
  width:100%;
  border-collapse:collapse;
  min-width:720px;
}

.rules-table th,
.rules-table td{
  padding:12px 8px;
  border-bottom:1px solid #F3E7EC;
  text-align:left;
  font-size:13px;
}

.rules-table th{color:#806B75}

.rules-table input[type="time"],
.rules-table select{
  min-width:110px;
}

.top-select-label{
  max-width:420px;
  margin-bottom:18px;
}

.grid-2{
  display:grid;
  grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);
  gap:22px;
}

.two-cols{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.checkline{
  display:flex;
  align-items:center;
  gap:9px;
}

.checkline input{
  width:auto;
  accent-color:var(--pink);
}

.exception-list,
.appointments-list{
  display:grid;
  gap:10px;
  margin-top:18px;
}

.list-card{
  border:1px solid var(--line);
  border-radius:16px;
  padding:14px;
  background:#FFFBFC;
}

.list-card strong{
  display:block;
  margin-bottom:4px;
}

.list-card small{
  color:var(--muted);
  display:block;
  margin:2px 0;
}

.global-message{
  margin-bottom:18px;
  padding:12px 14px;
  border-radius:14px;
  background:var(--pink-pale);
  color:var(--pink-dark);
  font-weight:800;
}

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

@media(max-width:850px){
  .admin-header{flex-direction:column}
  .panel-head{
    align-items:flex-start;
    flex-direction:column;
  }
}

@media(max-width:560px){
  .two-cols{grid-template-columns:1fr}
  .login-card{padding:24px}
}
