/* ============================================================
   Панель управления сайтом
   ============================================================ */

.admin-body{
  background:linear-gradient(180deg,var(--teal-050),var(--sand-050));
  min-height:100vh;
}

/* ---------- Экран проверки доступа ---------- */

.admin-gate{
  min-height:100vh;
  display:grid;
  place-content:center;
  justify-items:center;
  gap:18px;
  text-align:center;
  padding:24px;
}
.admin-gate__knot{width:130px;}
.admin-gate__knot svg{
  width:100%;height:64px;
  fill:none;stroke:var(--teal-300);
  stroke-width:4;stroke-linecap:round;
}
.admin-gate__knot path{
  stroke-dasharray:220;
  stroke-dashoffset:220;
  animation:gateDraw 1.5s var(--ease) infinite alternate;
}
.admin-gate__knot path:nth-child(2){stroke:var(--sand-500);animation-delay:.2s;}
@keyframes gateDraw{to{stroke-dashoffset:0;}}
.admin-gate p{color:var(--ink-soft);font-size:16px;margin:0;}

/* ---------- Каркас ---------- */

.admin{
  max-width:1180px;
  margin:0 auto;
  padding:26px 22px 70px;
  animation:fadeUp .6s var(--ease);
}
@keyframes fadeUp{
  from{opacity:0;transform:translateY(14px);}
  to{opacity:1;transform:none;}
}

.admin__top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  flex-wrap:wrap;
  padding-bottom:22px;
  margin-bottom:22px;
  border-bottom:1px solid var(--sand-300);
}
.admin__brand{display:flex;align-items:center;gap:14px;}
.admin__brand .logo__mark{
  width:44px;height:44px;
  background:var(--teal-100);
  border-radius:50%;
  display:grid;place-items:center;
  flex-shrink:0;
}
.admin__brand .logo__mark svg{
  width:26px;height:26px;
  fill:none;stroke:var(--teal-700);
  stroke-width:2;stroke-linecap:round;
}
.admin__brand b{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:24px;
  font-weight:500;
  color:var(--teal-900);
  line-height:1.2;
}
.admin__brand span{font-size:13.5px;color:var(--ink-soft);}
.admin__top-actions{display:flex;gap:10px;flex-wrap:wrap;}

/* ---------- Цифры ---------- */

.admin__stats{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:14px;
  margin-bottom:26px;
}
.astat{
  background:var(--white);
  border-radius:16px;
  padding:18px 22px;
  box-shadow:var(--shadow-s);
  transition:transform .4s var(--ease);
}
.astat:hover{transform:translateY(-3px);}
.astat b{
  display:block;
  font-family:'Cormorant Garamond',serif;
  font-size:34px;
  font-weight:600;
  color:var(--teal-700);
  line-height:1;
}
.astat span{
  font-size:12.5px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-soft);
}

/* ---------- Вкладки ---------- */

.admin__tabs{
  display:flex;
  gap:6px;
  margin-bottom:22px;
  overflow-x:auto;
  padding-bottom:4px;
}
.atab{
  padding:11px 22px;
  border-radius:100px;
  font-size:15px;
  color:var(--ink-soft);
  white-space:nowrap;
  transition:background .3s var(--ease), color .3s var(--ease);
}
.atab:hover{background:rgba(255,255,255,.6);color:var(--teal-700);}
.atab.is-active{
  background:var(--white);
  color:var(--teal-900);
  box-shadow:var(--shadow-s);
}

.pane{display:none;}
.pane.is-active{display:block;animation:paneIn .45s var(--ease);}
@keyframes paneIn{
  from{opacity:0;transform:translateY(10px);}
  to{opacity:1;transform:none;}
}

/* ---------- Блоки ---------- */

.card-box{
  background:var(--white);
  border-radius:var(--radius);
  padding:28px;
  box-shadow:var(--shadow-s);
  margin-bottom:20px;
}
.card-box h2{font-size:26px;margin-bottom:6px;}
.card-box h2.mt{margin-top:30px;}
.card-box__hint{
  font-size:14px;
  color:var(--ink-soft);
  margin-bottom:22px;
}
.card-box__head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  margin-bottom:20px;
}
.card-box__head .card-box__hint{margin-bottom:0;}

/* ---------- Обо мне ---------- */

.about-edit{
  display:grid;
  grid-template-columns:minmax(0,320px) minmax(0,1fr);
  gap:28px;
  align-items:start;
}

.uploader{
  position:relative;
  display:grid;
  place-items:center;
  width:100%;
  aspect-ratio:3/4;
  border-radius:var(--radius);
  border:2px dashed var(--sand-300);
  background:linear-gradient(135deg,var(--sand-050),var(--teal-050));
  cursor:pointer;
  overflow:hidden;
  transition:border-color .35s var(--ease), transform .35s var(--ease);
}
.uploader--sq{aspect-ratio:1/1;}
.uploader:hover{border-color:var(--teal-300);transform:translateY(-2px);}
.uploader.is-drag{border-color:var(--teal-500);background:var(--teal-050);}
.uploader img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.uploader__empty{
  display:grid;
  justify-items:center;
  gap:5px;
  text-align:center;
  padding:16px;
  pointer-events:none;
}
.uploader__empty b{
  font-size:34px;
  font-weight:300;
  color:var(--teal-500);
  line-height:1;
}
.uploader__empty span{font-size:14.5px;color:var(--teal-900);}
.uploader__empty em{font-size:12px;font-style:normal;color:var(--ink-soft);}

.uploader__spin{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.75);
}
.uploader__spin::after{
  content:'';
  width:30px;height:30px;
  border-radius:50%;
  border:3px solid var(--teal-100);
  border-top-color:var(--teal-500);
  animation:spin .7s linear infinite;
}

.about-edit__photo{display:grid;gap:10px;justify-items:stretch;}
.about-edit__text .field textarea{min-height:230px;}

/* ---------- Сохранение ---------- */

.save-row{
  display:flex;
  align-items:center;
  gap:14px;
  margin-top:22px;
  padding-top:20px;
  border-top:1px solid var(--sand-100);
  flex-wrap:wrap;
}
.save-state{
  font-size:14px;
  color:var(--teal-700);
  opacity:0;
  transform:translateX(-6px);
  transition:opacity .35s var(--ease), transform .35s var(--ease);
}
.save-state.is-shown{opacity:1;transform:none;}
.save-state.is-err{color:#b4544f;}

.btn .btn__spinner{
  border-color:rgba(255,255,255,.35);
  border-top-color:var(--white);
}

/* ---------- Список изделий ---------- */

.plist{display:grid;gap:12px;}

.prow{
  display:grid;
  grid-template-columns:auto 84px minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:12px 16px;
  border-radius:var(--radius-sm);
  border:1px solid var(--sand-100);
  background:var(--sand-050);
  transition:border-color .3s var(--ease), box-shadow .3s var(--ease), transform .2s var(--ease);
}
.prow:hover{border-color:var(--teal-100);box-shadow:var(--shadow-s);}
.prow.is-dragging{opacity:.45;transform:scale(.99);}
.prow.is-over{border-color:var(--teal-500);}

.prow__grip{
  cursor:grab;
  color:var(--sand-500);
  font-size:19px;
  line-height:1;
  padding:6px 2px;
  user-select:none;
}
.prow__grip:active{cursor:grabbing;}

.prow__pic{
  width:84px;height:84px;
  border-radius:12px;
  object-fit:cover;
  background:var(--sand-100);
  display:grid;place-items:center;
  font-size:11px;
  color:var(--sand-700);
  text-align:center;
  overflow:hidden;
}
.prow__pic img{width:100%;height:100%;object-fit:cover;display:block;}

.prow__body{min-width:0;}
.prow__title{
  font-family:'Cormorant Garamond',serif;
  font-size:21px;
  color:var(--teal-900);
  margin:0 0 3px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.prow__meta{
  font-size:13px;
  color:var(--ink-soft);
  display:flex;
  gap:8px;
  flex-wrap:wrap;
  align-items:center;
}
.prow__price{color:var(--teal-700);}
.prow__off{
  font-size:11.5px;
  padding:2px 9px;
  border-radius:100px;
  background:var(--sand-300);
  color:#6d5330;
}
.prow__acts{display:flex;gap:8px;}

.iconbtn{
  width:38px;height:38px;
  border-radius:10px;
  display:grid;place-items:center;
  font-size:15px;
  background:var(--white);
  border:1px solid var(--sand-200,#e8dcc8);
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.iconbtn:hover{background:var(--teal-050);border-color:var(--teal-300);}
.iconbtn--del:hover{background:#fdeeed;border-color:#e5b8b4;color:#b4544f;}

.empty-note{
  text-align:center;
  padding:40px 16px;
  color:var(--ink-soft);
  font-size:15px;
  border:1px dashed var(--sand-300);
  border-radius:var(--radius-sm);
}

/* ---------- Заявки ---------- */

.filters{display:flex;gap:7px;flex-wrap:wrap;}
.chip{
  padding:7px 16px;
  border-radius:100px;
  font-size:13.5px;
  color:var(--ink-soft);
  border:1px solid var(--sand-300);
  background:var(--white);
  transition:background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.chip:hover{border-color:var(--teal-300);}
.chip.is-active{background:var(--teal-500);color:var(--white);border-color:var(--teal-500);}

.olist{display:grid;gap:14px;}

.orow{
  border:1px solid var(--sand-100);
  border-radius:var(--radius-sm);
  padding:18px 20px;
  background:var(--sand-050);
  animation:cardIn .45s var(--ease) both;
}
.orow__top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:14px;
  flex-wrap:wrap;
  margin-bottom:8px;
}
.orow__title{
  font-family:'Cormorant Garamond',serif;
  font-size:21px;
  color:var(--teal-900);
  margin:0;
}
.orow__who{
  font-size:13px;
  color:var(--ink-soft);
  margin:2px 0 0;
}
.orow__who a{color:var(--teal-700);text-decoration:underline;text-underline-offset:2px;}
.orow__desc{
  font-size:15px;
  color:var(--ink);
  margin:0 0 12px;
  white-space:pre-wrap;
}
.orow__tags{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px;}
.orow__foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding-top:12px;
  border-top:1px solid var(--sand-100);
}
.orow__date{font-size:12.5px;color:var(--ink-soft);}

.statuses{display:flex;gap:6px;flex-wrap:wrap;}
.sbtn{
  font-size:12.5px;
  padding:6px 13px;
  border-radius:100px;
  border:1px solid var(--sand-300);
  background:var(--white);
  color:var(--ink-soft);
  transition:all .25s var(--ease);
}
.sbtn:hover{border-color:var(--teal-300);}
.sbtn.is-on{border-color:transparent;}
.sbtn.is-on[data-s="new"]{background:var(--teal-100);color:var(--teal-900);}
.sbtn.is-on[data-s="in_progress"]{background:var(--sand-300);color:#6d5330;}
.sbtn.is-on[data-s="done"]{background:#d6f0dc;color:#2f6b40;}
.sbtn.is-on[data-s="declined"]{background:#f2dedc;color:#9c4f4a;}

/* удаление заявки — отделено от статусов */
.sbtn--del{
  margin-left:8px;
  color:#b4544f;
  border-color:#e5c4c1;
}
.sbtn--del:hover{
  background:#fdeeed;
  border-color:#d9a5a0;
  color:#a33f3a;
}

/* ---------- Окно изделия ---------- */

.modal__box--wide{width:min(100%,720px);}
.pform__grid{
  display:grid;
  grid-template-columns:minmax(0,230px) minmax(0,1fr);
  gap:24px;
  align-items:start;
}
.pform__clear{width:100%;margin-top:10px;}
.pform__foot{
  display:flex;
  gap:12px;
  justify-content:flex-end;
  margin-top:20px;
  padding-top:18px;
  border-top:1px solid var(--sand-100);
}

/* переключатель «в наличии» */
.switch{
  display:flex;
  align-items:center;
  gap:11px;
  cursor:pointer;
  font-size:14.5px;
  color:var(--ink);
  margin-top:6px;
}
.switch input{position:absolute;opacity:0;pointer-events:none;}
.switch__box{
  width:46px;height:26px;
  border-radius:100px;
  background:var(--sand-300);
  position:relative;
  transition:background .3s var(--ease);
  flex-shrink:0;
}
.switch__box::after{
  content:'';
  position:absolute;
  top:3px;left:3px;
  width:20px;height:20px;
  border-radius:50%;
  background:var(--white);
  box-shadow:0 2px 5px rgba(0,0,0,.16);
  transition:transform .3s var(--ease);
}
.switch input:checked + .switch__box{background:var(--teal-500);}
.switch input:checked + .switch__box::after{transform:translateX(20px);}

/* ---------- Окно подтверждения ---------- */

/* выше обычных окон (1200), но ниже уведомлений (1400) */
#askModal{z-index:1300;}

.modal__box--ask{
  width:min(100%,410px);
  text-align:center;
  padding:34px 32px 28px;
}

.ask__icon{
  width:60px;
  margin:0 auto 16px;
}
.ask__icon svg{
  width:100%;height:60px;
  fill:none;
  stroke:#c9605a;
  stroke-width:2.4;
  stroke-linecap:round;
}
.ask__icon circle:first-child{
  fill:#fdeeed;
  stroke-dasharray:160;
  stroke-dashoffset:160;
  animation:askRing .7s var(--ease) forwards;
}
.ask__dot{fill:#c9605a;stroke:none;}
@keyframes askRing{to{stroke-dashoffset:0;}}

.modal__box--ask .modal__title{
  font-size:28px;
  margin-bottom:10px;
}
.ask__text{
  font-size:16px;
  color:var(--ink);
  margin:0 0 8px;
  line-height:1.5;
}
.ask__text b{color:var(--teal-900);font-weight:500;}
.ask__note{
  font-size:13.5px;
  color:var(--ink-soft);
  margin:0 0 24px;
}

.ask__actions{
  display:flex;
  gap:12px;
  justify-content:center;
}
.ask__actions .btn{min-width:132px;}

.btn--danger{
  color:var(--white);
  background:linear-gradient(120deg,#b4544f,#c9605a);
  box-shadow:0 6px 18px rgba(180,84,79,.26);
}
.btn--danger::before{background:linear-gradient(120deg,#9c4340,#b4544f);}
.btn--danger:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(180,84,79,.34);}
.btn--danger:hover::before{transform:translateY(0);}

@media (max-width:420px){
  .ask__actions{flex-direction:column-reverse;}
  .ask__actions .btn{width:100%;}
}

/* ---------- Разлетающиеся кружки при нажатии ---------- */

.spark{
  position:fixed;
  top:0;left:0;
  width:6px;
  height:6px;
  border-radius:50%;
  pointer-events:none;
  z-index:9999;
  will-change:transform,opacity;
}

/* ---------- Адаптив ---------- */

@media (max-width:860px){
  .about-edit{grid-template-columns:1fr;}
  .about-edit__photo{max-width:320px;}
  .pform__grid{grid-template-columns:1fr;}
  .pform__clear{max-width:230px;}
}

@media (max-width:640px){
  .admin{padding:18px 14px 60px;}
  .card-box{padding:20px 16px;}
  .prow{
    grid-template-columns:auto 60px minmax(0,1fr);
    gap:12px;
  }
  .prow__pic{width:60px;height:60px;}
  .prow__acts{grid-column:1 / -1;justify-content:flex-end;}
  .orow__foot{flex-direction:column;align-items:stretch;}
}
