[hidden]{display:none!important}
/* Вход в админку (виден только владельцу) */

/* Админка */
.adm{padding-block:40px 120px}
.adm-head{display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap; padding-bottom:28px; border-bottom:1px solid var(--line)}
.adm-head h1{font-family:var(--f-display); font-weight:800; font-size:clamp(28px,3.6vw,42px); letter-spacing:-.02em; margin:0}
.adm-sub{margin:8px 0 0; font-size:14px; color:var(--ink-soft)}
.adm-actions{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.adm-status{font-size:13px; color:var(--ink-soft); display:inline-flex; align-items:center; gap:8px}
.adm-status::before{content:""; width:8px; height:8px; border-radius:50%; background:#5FB37A}
.adm-status.is-dirty::before{background:#E0572B}
.adm .btn{border-radius:0}
.btn[disabled]{opacity:.4; cursor:not-allowed}
.btn.sm{padding:8px 12px; font-size:11px}
.btn.danger{background:#B23A2B; border-color:#B23A2B; color:#fff}
.adm-note{margin:20px 0 0; padding:12px 16px; border-left:3px solid var(--moss); background:var(--paper-2); font-size:14px}
.adm-note.ok{border-left-color:#5FB37A}
.adm-note.err{border-left-color:#E0572B}
.adm-stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; margin:28px 0 40px}
.adm-stat{display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:20px; text-align:left; cursor:pointer; color:var(--ink);
  background:var(--paper-2); border:1px solid var(--line); font:inherit; transition:border-color .2s}
.adm-stat:hover{border-color:rgba(216,178,92,.45)}
.adm-stat.on{border-color:var(--moss); box-shadow:inset 0 2px 0 var(--moss)}
.st-l{font-family:var(--f-display); font-weight:600; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft)}
.adm-stat b{font-family:var(--f-display); font-weight:800; font-size:40px; line-height:1; font-variant-numeric:tabular-nums}
.st-row{font-size:12.5px; color:var(--ink-soft); display:flex; align-items:center; gap:6px; flex-wrap:wrap}
.dot{width:7px; height:7px; border-radius:50%; display:inline-block; margin-left:4px}
.dot:first-child{margin-left:0}
.dot.ok{background:#5FB37A} .dot.dr{background:#8A8D94} .dot.ft{background:var(--moss)}
.adm-bar{display:flex; justify-content:space-between; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:16px}
.adm-bar h2{margin:0; font-size:clamp(22px,2.4vw,28px)}
.adm-list{list-style:none; margin:0; padding:0; border-top:1px solid var(--line)}
.adm-row{display:grid; grid-template-columns:auto 56px minmax(0,1fr) auto auto auto; align-items:center; gap:16px; padding:14px 0; border-bottom:1px solid var(--line)}
.ord{display:flex; flex-direction:column; gap:2px}
.ic{width:30px; height:26px; display:grid; place-items:center; border:1px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer; font-size:13px}
.ic:hover:not([disabled]){color:var(--moss); border-color:var(--moss)}
.ic[disabled]{opacity:.3; cursor:default}
.ic.del:hover{color:#E0572B; border-color:#E0572B}
.thumb{width:56px; height:42px; background:var(--paper-2); border:1px solid var(--line); display:grid; place-items:center; overflow:hidden; font-family:var(--f-kanji); color:var(--moss)}
.thumb img{width:100%; height:100%; object-fit:cover}
.ttl{display:flex; flex-direction:column; gap:3px; min-width:0}
.ttl b{font-family:var(--f-display); font-weight:700; font-size:16px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.ttl span{font-size:13px; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap}
.chip{font-size:11px; font-family:var(--f-display); font-weight:600; letter-spacing:.08em; text-transform:uppercase; padding:5px 9px; border:1px solid var(--line); white-space:nowrap}
.chip.ok{color:#7FCB97; border-color:rgba(95,179,122,.4)}
.chip.dr{color:var(--ink-soft)}
.star{display:inline-flex; align-items:center; gap:6px; padding:6px 10px; border:1px solid var(--line); background:transparent; color:var(--ink-soft); cursor:pointer; font:600 12px var(--f-body); white-space:nowrap}
.star:hover{border-color:var(--moss)}
.star.on{color:#15171C; background:var(--moss); border-color:var(--moss)}
.row-act{display:flex; align-items:center; gap:6px; justify-content:flex-end}
.cf{font-size:13px; color:#E0572B; margin-right:4px}
.adm-form .grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px}
.fld{display:flex; flex-direction:column; gap:8px; min-width:0}
.fld.wide{grid-column:1/-1}
.fld > span, .fld > label > span{font-family:var(--f-display); font-weight:600; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft)}
.fld small{font-size:12.5px; color:var(--ink-soft)}
.adm-form input:not([type=checkbox]):not([type=file]), .adm-form textarea, .adm-form select{width:100%; padding:12px 14px; background:var(--paper-2); color:var(--ink); border:1px solid var(--line); border-radius:0; font:15px/1.5 var(--f-body)}
.adm-form textarea{resize:vertical; min-height:70px}
.adm-form input:focus, .adm-form textarea:focus, .adm-form select:focus{outline:none; border-color:var(--moss)}
.fld.chk{flex-direction:row; align-items:center; gap:10px; align-self:end; padding-bottom:12px}
.fld.chk span{font-family:var(--f-body); font-size:15px; letter-spacing:0; text-transform:none; color:var(--ink)}
.fld.chk input, .ch-chip input{width:18px; height:18px; accent-color:var(--moss)}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.ch-chip{display:inline-flex; align-items:center; gap:8px; padding:8px 12px; border:1px solid var(--line); cursor:pointer; font-size:14px}
.ch-chip:has(input:checked){border-color:var(--moss); color:var(--moss)}
.kp-grid{display:grid; grid-template-columns:repeat(3, minmax(0,.7fr) minmax(0,1fr)); gap:8px}
.up{display:flex; align-items:center; gap:12px; flex-wrap:wrap}
.up-prev{width:120px; height:80px; object-fit:cover; border:1px solid var(--line)}
.up-btn{cursor:pointer}
.sr{position:absolute; width:1px; height:1px; opacity:0; pointer-events:none}
.form-err{margin:16px 0 0; color:#E0572B; font-size:14px}
.form-act{display:flex; align-items:center; gap:12px; flex-wrap:wrap; margin-top:28px; padding-top:24px; border-top:1px solid var(--line)}
.form-act small{font-size:13px; color:var(--ink-soft)}
@media (max-width:900px){
  .adm-row{grid-template-columns:auto 48px minmax(0,1fr) auto; row-gap:10px}
  .adm-row .chip{grid-column:3; justify-self:start} .adm-row .star{grid-column:4; grid-row:1}
  .row-act{grid-column:2 / -1; justify-content:flex-start}
  .thumb{width:48px}
}
@media (max-width:640px){
  .adm-stats{grid-template-columns:1fr; gap:8px}
  .adm-stat{flex-direction:row; align-items:center; flex-wrap:wrap; padding:14px 16px}
  .adm-stat b{font-size:28px; order:-1}
  .adm-form .grid{grid-template-columns:1fr}
  .kp-grid{grid-template-columns:minmax(0,.7fr) minmax(0,1fr)}
  .star span{display:none}
}

/* Страница панели: шапка и экран входа */
.admin-page .top{position:sticky}
.brand-tag{margin-left:6px; padding:3px 8px; border:1px solid var(--line); font-family:var(--f-display); font-size:10px; font-weight:600; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft)}
.adm-user{display:flex; align-items:center; gap:14px; font-size:14px; color:var(--ink-soft)}
.adm-user .btn{color:var(--ink)}
.gate{min-height:calc(100vh - 70px); display:grid; place-items:center; padding:40px max(16px, env(safe-area-inset-right, 0px)) 40px max(16px, env(safe-area-inset-left, 0px))}
.gate-card{width:min(440px,100%); display:flex; flex-direction:column; align-items:flex-start; gap:6px; padding:40px 36px; background:var(--paper-2); border:1px solid var(--line); box-shadow:0 30px 60px -30px rgba(0,0,0,.6)}
.gate-card h1{font-family:var(--f-display); font-weight:800; font-size:30px; letter-spacing:-.02em; margin:4px 0 6px}
.gate-card p{margin:0 0 18px; color:var(--ink-soft); line-height:1.6}
.gate-card .eyebrow-s{margin:14px 0 0}
.gate-card .btn{margin-top:4px}
.hanko.big{width:52px; height:52px; font-size:30px; border-radius:6px}
.gate-foot{margin:22px 0 0!important; padding-top:16px; border-top:1px solid var(--line); width:100%; font-size:12.5px}
.gate-spin{width:28px; height:28px; border:2px solid var(--line); border-top-color:var(--moss); border-radius:50%; margin:4px 0 8px}
@media (prefers-reduced-motion:no-preference){ .gate-spin{animation:spin .8s linear infinite} }
@keyframes spin{to{transform:rotate(360deg)}}
.adm-stats{grid-template-columns:repeat(4,minmax(0,1fr))}
.adm-row.hist{grid-template-columns:minmax(0,1fr) auto}
@media (max-width:900px){ .adm-stats{grid-template-columns:repeat(2,minmax(0,1fr))} .adm-row.hist{grid-template-columns:1fr} .adm-row.hist .row-act{grid-column:1} }
@media (max-width:640px){ .adm-stats{grid-template-columns:1fr} .adm-user span{display:none} .brand-tag{display:none} }

/* Вход по логину и паролю */
.gate-card .fld{width:100%; margin-top:14px}
.gate-card .fld input{width:100%; padding:12px 14px; background:var(--paper); color:var(--ink); border:1px solid var(--line); border-radius:0; font:15px/1.5 var(--f-body)}
.gate-card .fld input:focus{outline:none; border-color:var(--moss)}
.gate-card .form-err{margin:12px 0 0}
.btn.wide{width:100%; justify-content:center; margin-top:20px; padding:15px}
.gate-back{margin-top:16px; font-size:14px; color:var(--ink-soft); text-decoration:none}
.gate-back:hover{color:var(--moss)}
.chip.bad{color:#F08A66; border-color:rgba(224,87,43,.45)}
.adm-stats{grid-template-columns:repeat(5,minmax(0,1fr))}
.adm-form.sec{max-width:720px}
.adm-form.sec input{width:100%; padding:12px 14px; background:var(--paper-2); color:var(--ink); border:1px solid var(--line); border-radius:0; font:15px/1.5 var(--f-body)}
@media (max-width:1100px){ .adm-stats{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:640px){ .adm-stats{grid-template-columns:1fr 1fr} }
.mt48{margin-top:48px}

/* Разделы кейса: кнопка «Вставить картинку» */
.sec-tools{display:flex; align-items:flex-start; gap:14px; margin-top:8px}
.sec-tools small{margin:0; padding-top:6px}
.sec-tools .btn{flex:none}
