/* ==========================================================================
   Архив. Значения из Figma: 15 · Экран пароля и 16 · Архив · Desktop 1440.
   ========================================================================== */

/* ── 15 · Ввод пароля (1440×983) ───────────────────────────────────────*/
.v-lock{position:relative;min-height:983px;display:flex;flex-direction:column;
  align-items:center;justify-content:center;padding:120px var(--gutter);box-sizing:border-box;
  background:var(--ink-950) center/cover no-repeat}
/* Снимок под затемнением 86 % — как «fill: IMAGE, #15100c@0.86» в макете. */
.v-lock::before{content:"";position:absolute;inset:0;background:rgba(21,16,12,.86)}
.v-lock__inner{position:relative;width:100%;max-width:var(--container);
  display:flex;flex-direction:column;align-items:center}

.v-lock__card{width:560px;max-width:100%;box-sizing:border-box;padding:52px 52px 44px;
  border-radius:28px;background:var(--cream-50);box-shadow:0 28px 70px rgba(0,0,0,.45);
  display:flex;flex-direction:column;align-items:center;gap:22px;text-align:center}
.v-lock__ico{display:flex;align-items:center;justify-content:center;width:72px;height:72px;
  border-radius:var(--r-pill);background:var(--crimson-600);color:var(--cream-50)}
.v-lock__ico .v-ico{width:34px;height:34px}
.v-lock__title{margin:0;font-family:var(--font-display);font-weight:700;font-size:38px;
  line-height:1.24;color:var(--ink-950)}
.v-lock__text{margin:0;width:456px;max-width:100%;font-size:17px;line-height:1.6;color:var(--text-muted)}

.v-lock__form{width:456px;max-width:100%;display:flex;flex-direction:column;gap:22px}
.v-lock__input{width:100%;height:62px;box-sizing:border-box;padding:18px 22px;border-radius:14px;
  background:var(--cream-100);border:1px solid var(--cream-300);
  font-family:var(--font-text);font-weight:700;font-size:20px;letter-spacing:.08em;color:var(--ink-950)}
.v-lock__input::placeholder{font-weight:400;font-size:17px;letter-spacing:0;color:var(--text-muted)}
.v-lock__input:focus{outline:2px solid var(--crimson-600);outline-offset:2px}
.v-lock__input:disabled{opacity:.55}
.v-lock__btn{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;height:60px;
  border:0;border-radius:var(--r-pill);background:var(--crimson-600);color:var(--cream-50);
  font-family:var(--font-text);font-weight:600;font-size:17px;cursor:pointer}
.v-lock__btn:hover{background:var(--crimson-700)}
.v-lock__btn:disabled{opacity:.5;cursor:default}

.v-lock__error{display:inline-flex;align-items:center;gap:8px;margin:0;padding:10px 16px;
  border-radius:var(--r-pill);background:var(--a-crimson-12);
  font-weight:600;font-size:13px;line-height:1.3;color:var(--crimson-600)}
.v-lock__bang{font-weight:700}
.v-lock__link{display:inline-flex;align-items:center;gap:8px;font-weight:600;font-size:15px;
  line-height:19px;color:var(--crimson-600)}
.v-lock__link .v-ico{width:16px;height:16px}

/* Плашки «что внутри»: 4 × 180×93, зазор 14, отступ сверху 44. */
.v-lock__stats{display:flex;justify-content:center;gap:14px;margin-top:44px}
.v-lock__stat{display:flex;flex-direction:column;gap:4px;width:180px;box-sizing:border-box;
  padding:20px 28px;border-radius:var(--r-md);background:rgba(248,240,224,.07);
  box-shadow:inset 0 0 0 1px var(--a-cream-14)}
.v-lock__stat-value{font-family:var(--font-display);font-weight:700;font-size:24px;line-height:1.24;
  color:var(--gold-500)}
.v-lock__stat-name{font-size:15px;line-height:1.26;color:var(--a-cream-60)}

/* ── 16 · 02 · Статус доступа (1440×62, фон #22a793) ───────────────────*/
.v-archstatus{background:var(--teal-500)}
.v-archstatus__inner{max-width:var(--page-w);margin-inline:auto;padding:20px var(--gutter);
  display:flex;align-items:center;gap:16px;height:62px;color:var(--ink-950);box-sizing:border-box}
.v-archstatus__ico{display:flex;align-items:center}
.v-archstatus__title{font-weight:700;font-size:17px;line-height:22px}
.v-archstatus__text{flex:1;font-size:15px;line-height:19px;overflow:hidden;
  text-overflow:ellipsis;white-space:nowrap}
.v-archstatus__exit{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px;line-height:19px;
  color:var(--ink-950);white-space:nowrap}
.v-archstatus__exit:hover{opacity:.75}

/* ── 07 · Загрузить файлы (1440×890, фон #1e1710) ──────────────────────*/
.v-upload{background:var(--ink-900);padding:88px 0}
.v-upload__inner{max-width:var(--page-w);margin-inline:auto;padding-inline:var(--gutter)}
.v-upload__title{margin:0;font-family:var(--font-display);font-weight:700;font-size:38px;
  line-height:1.1;color:var(--cream-50)}
.v-upload__text{margin:14px 0 0;width:720px;max-width:100%;font-size:17px;line-height:1.66;
  color:rgba(248,240,224,.7)}
.v-upload__notice{margin:24px 0 0;padding:14px 22px;border-radius:14px;font-weight:600;font-size:15px}
.v-upload__notice--ok{background:var(--a-teal-14);color:var(--teal-400)}
.v-upload__notice--err{background:var(--a-crimson-12);color:var(--crimson-500)}

.v-drop{box-sizing:border-box;margin-top:32px;padding:50px 0;border-radius:20px;
  background:rgba(248,240,224,.05);border:2px dashed rgba(227,167,51,.5);
  display:flex;flex-direction:column;align-items:center;text-align:center}
.v-drop.is-over{background:rgba(227,167,51,.12);border-color:var(--gold-500)}
.v-drop__ico{display:flex;align-items:center;height:51px;color:var(--gold-500)}
.v-drop__ico .v-ico{width:40px;height:40px}
.v-drop__title{margin:14px 0 0;font-family:var(--font-display);font-weight:700;font-size:22px;
  line-height:27px;color:var(--cream-50)}
.v-drop__formats{margin:14px 0 0;font-size:15px;line-height:19px;color:rgba(248,240,224,.62)}
/* Настоящее поле скрыто — в макете видна только кнопка. */
.v-drop__input{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.v-drop__btn{display:inline-flex;align-items:center;justify-content:center;margin-top:14px;
  height:49px;padding:0 26px;border-radius:var(--r-pill);background:var(--crimson-600);
  color:var(--cream-50);font-weight:600;font-size:15px;cursor:pointer}
.v-drop__btn:hover{background:var(--crimson-700)}
.v-drop__input:focus-visible + .v-drop__btn{outline:2px solid var(--gold-500);outline-offset:3px}
.v-drop__chosen{margin:12px 0 0;font-size:13px;line-height:1.3;color:rgba(248,240,224,.55)}
.v-drop__chosen:empty{display:none}
/* Кнопка отправки нужна без JS: со скриптом выбор файла отправляет форму сам,
   и полоса выглядит ровно как в макете. */
.v-drop__send{margin-top:16px;height:44px;padding:0 26px;border:1px solid var(--a-cream-24);
  border-radius:var(--r-pill);background:transparent;color:var(--cream-50);
  font-family:var(--font-text);font-weight:600;font-size:15px;cursor:pointer}
.v-drop__send:hover{background:var(--a-cream-08)}
.v-drop.is-js .v-drop__send{display:none}

.v-queue{margin-top:32px;display:flex;flex-direction:column;gap:12px}
.v-queue__row{display:flex;align-items:center;gap:18px;height:74px;box-sizing:border-box;
  padding:0 22px;border-radius:14px;background:rgba(248,240,224,.06)}
.v-queue__ico{display:flex;align-items:center;color:var(--gold-500)}
.v-queue__info{flex:1;display:flex;flex-direction:column;gap:5px;min-width:0}
.v-queue__name{font-weight:600;font-size:16px;line-height:1.25;color:var(--cream-50);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v-queue__meta{font-size:13px;line-height:1.3;color:rgba(248,240,224,.55)}
.v-queue__pct{font-weight:500;font-size:15px;color:rgba(248,240,224,.6)}
.v-queue__chip{display:inline-flex;align-items:center;height:31px;padding:0 14px;
  border-radius:var(--r-pill);font-weight:700;font-size:13px;white-space:nowrap}
.v-queue__chip--ok{background:var(--a-teal-14);color:var(--teal-500)}
.v-queue__chip--wait{background:var(--a-gold-16);color:var(--gold-500)}

/* ── 08 · Описание материала (1440×1273, фон #f8f0e0) ──────────────────*/
.v-describe{background:var(--cream-100);padding:88px 0}
.v-describe__inner{max-width:var(--page-w);margin-inline:auto;padding-inline:var(--gutter)}
.v-describe__eyebrow{display:block;color:var(--crimson-600)}
.v-describe__title{margin:34px 0 0;font-family:var(--font-display);font-weight:700;font-size:38px;
  line-height:1.24;letter-spacing:-.018em;color:var(--ink-950)}
.v-describe__text{margin:34px 0 0;width:820px;max-width:100%;font-size:17px;line-height:1.7;
  color:var(--text-muted)}

.v-describe__form{display:grid;grid-template-columns:460px minmax(0,1fr);gap:40px;margin-top:34px}
.v-describe__file{display:flex;flex-direction:column;gap:14px}
.v-describe__shot{display:block;height:340px;border-radius:var(--r-md);overflow:hidden;
  background:var(--cream-200)}
.v-describe__shot img{width:100%;height:100%;object-fit:cover;display:block}
.v-describe__filerow{display:flex;align-items:center;gap:12px}
.v-describe__fileinfo{flex:1;display:flex;flex-direction:column;gap:3px;min-width:0}
.v-describe__filename{font-weight:600;font-size:15px;line-height:1.25;color:var(--ink-950)}
.v-describe__filemeta{font-size:13px;line-height:1.3;color:var(--text-muted)}
.v-describe__replace{font-weight:600;font-size:14px;color:var(--crimson-600)}

.v-describe__fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-content:start}
.v-dfield{display:flex;flex-direction:column;gap:8px}
.v-dfield--wide{grid-column:1 / -1}
.v-dfield__label{display:inline-flex;gap:6px;font-weight:700;font-size:13px;line-height:17px;
  letter-spacing:0;text-transform:uppercase;color:var(--text-muted)}
.v-dfield__req{font-style:normal;color:var(--crimson-600)}
/* Поля показаны как образец: это рисунок карточки, а не форма на сайте.
   Высоты — из макета (54 и 106); длинный текст прокручивается внутри. */
.v-dfield__box{display:block;box-sizing:border-box;height:54px;overflow-y:auto;padding:14px 18px;
  border-radius:12px;background:var(--cream-50);border:1px solid var(--cream-300);
  font-weight:600;font-size:16px;line-height:26px;color:var(--ink-950)}
.v-dfield--tall .v-dfield__box{height:106px}
.v-describe__buttons{grid-column:1 / -1;display:flex;gap:14px;margin-top:6px}
.v-describe__btn{display:inline-flex;align-items:center;height:52px;padding:0 26px;
  border-radius:var(--r-pill);font-weight:600;font-size:16px}
.v-describe__btn--main{background:var(--crimson-600);color:var(--cream-50)}
.v-describe__btn--ghost{border:1px solid var(--cream-300);color:var(--ink-950)}

.v-describe__sub{margin:34px 0 0;font-family:var(--font-display);font-weight:700;font-size:22px;
  line-height:1.24;color:var(--ink-950)}
.v-dtypes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;margin-top:34px;
  align-items:start}
.v-dtype{display:flex;flex-direction:column;gap:10px;padding:22px;border-radius:var(--r-md);
  background:var(--cream-50);border:1px solid var(--cream-300)}
.v-dtype__tag{align-self:flex-start;display:inline-flex;align-items:center;padding:6px 12px;
  border-radius:var(--r-pill);font-weight:700;font-size:12px;line-height:15px;color:var(--cream-50)}
.v-dtype__tag--crimson{background:var(--crimson-600)}
.v-dtype__tag--teal{background:var(--teal-500)}
.v-dtype__tag--gold{background:var(--gold-500)}
.v-dtype__tag--dark{background:var(--ink-800)}
.v-dtype__text{font-size:15px;line-height:25px;color:var(--ink-800)}

/* ── Узкие экраны ──────────────────────────────────────────────────────*/
@media (max-width:1200px){
  .v-describe__form{grid-template-columns:minmax(0,1fr)}
  .v-dtypes{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:900px){
  .v-lock{min-height:0;padding:72px 20px}
  .v-lock__card{padding:36px 24px 32px;gap:18px}
  .v-lock__title{font-size:clamp(26px,6vw,38px)}
  .v-lock__stats{flex-wrap:wrap;margin-top:28px}
  .v-lock__stat{width:calc(50% - 7px)}
  .v-archstatus__inner{flex-wrap:wrap;gap:8px 14px;padding:14px 20px}
  .v-archstatus__text{flex-basis:100%;white-space:normal}
  .v-upload{padding:56px 0}
  .v-upload__title{font-size:clamp(26px,5.4vw,38px)}
  .v-drop{padding:36px 20px}
  .v-queue__row{height:auto;flex-wrap:wrap;padding:16px 18px;gap:10px 14px}
  .v-queue__info{flex-basis:100%}
  .v-describe{padding:56px 0}
  .v-describe__title{font-size:clamp(26px,5.4vw,38px)}
  .v-describe__fields{grid-template-columns:minmax(0,1fr)}
  .v-dfield__box,.v-dfield--tall .v-dfield__box{height:auto;min-height:54px;overflow:visible}
  .v-dtypes{grid-template-columns:minmax(0,1fr)}
  .v-describe__buttons{flex-wrap:wrap}
}
