/* ============================================================
   Lampyris Command — Villa Cipro
   Дизайн-система: токены, сетка, компоненты. Светлая и тёмная схемы.
   ============================================================ */

/* PF Agora Sans Pro — фирменный шрифт.
   Файлы .woff2 в архив не входят (лицензируются отдельно), поэтому
   @font-face по умолчанию ОТКЛЮЧЁН — иначе браузер даёт 404 и шумит в консоли.
   Пока файлов нет, работает запасной стек (см. --font).
   Как включить: положите файлы в assets/fonts/ (имена — в fonts/README.txt)
   и раскомментируйте блок ниже.
*/
/*
@font-face{ font-family:'PF Agora Sans Pro'; src:url('../fonts/PFAgoraSansPro-Regular.woff2') format('woff2'); font-weight:400; font-style:normal; font-display:swap; }
@font-face{ font-family:'PF Agora Sans Pro'; src:url('../fonts/PFAgoraSansPro-Medium.woff2') format('woff2'); font-weight:500; font-style:normal; font-display:swap; }
@font-face{ font-family:'PF Agora Sans Pro'; src:url('../fonts/PFAgoraSansPro-Bold.woff2') format('woff2'); font-weight:700; font-style:normal; font-display:swap; }
@font-face{ font-family:'PF Agora Sans Pro'; src:url('../fonts/PFAgoraSansPro-Black.woff2') format('woff2'); font-weight:800; font-style:normal; font-display:swap; }
*/

:root{
  color-scheme: light;
  /* бренд */
  --green:#5CBF20; --blue:#02B8E3; --red:#D1222E; --navy:#005062;
  --green-soft:#A2D97B; --n-grey:#EBECEC; --slate:#32555E;
  /* поверхности (светлая) */
  --bg:#EFF3F4; --bg2:#E6ECED; --paper:#FFFFFF;
  --ink:#083039; --ink2:#254852; --mut:#5C7A83; --faint:#93AAB1;
  --line:#E1E7E8; --line2:#D2DADC;
  --navy2:#0A6076; --navy-deep:#013A47;
  --glass:rgba(255,255,255,.62);
  --field:#FFFFFF; --field-line:#D2DADC; --field-focus:var(--blue);
  --r-lg:26px; --r:18px; --r-sm:12px;
  --font:'PF Agora Sans Pro','Manrope','Golos Text',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
  --sh-sm:0 1px 2px rgba(0,50,62,.05), 0 2px 8px rgba(0,50,62,.05);
  --sh:0 2px 6px rgba(0,50,62,.06), 0 18px 40px rgba(0,50,62,.10);
  --sh-navy:0 20px 60px rgba(0,40,52,.35);
  --tap:44px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#04222B; --bg2:#073039; --paper:#0B3A46;
    --ink:#EAF3F5; --ink2:#CFE2E7; --mut:#9FBAC1; --faint:#6C8B93;
    --line:#12414E; --line2:#1B4F5D; --glass:rgba(10,58,70,.5);
    --field:#0A3743; --field-line:#1B4F5D;
    /* акцентный текст на тёмных поверхностях должен читаться */
    --navy2:#7FE0F5;
  }
}
:root[data-theme="dark"]{
  --bg:#04222B; --bg2:#073039; --paper:#0B3A46;
  --ink:#EAF3F5; --ink2:#CFE2E7; --mut:#9FBAC1; --faint:#6C8B93;
  --line:#12414E; --line2:#1B4F5D; --glass:rgba(10,58,70,.5);
  --field:#0A3743; --field-line:#1B4F5D;
  --navy2:#7FE0F5;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);
  -webkit-font-smoothing:antialiased;line-height:1.5;letter-spacing:-.005em}
h1,h2,h3{text-wrap:balance;margin:0}
img{max-width:100%}
[hidden]{display:none!important}
a{color:inherit}
button{font-family:inherit}
:focus-visible{outline:2.5px solid var(--blue);outline-offset:2px;border-radius:6px}
.wrap{max-width:1160px;margin:0 auto;padding-left:22px;padding-right:22px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skiplink{position:absolute;left:12px;top:-60px;z-index:200;background:var(--navy);color:#fff;
  padding:10px 16px;border-radius:10px;font-weight:700;font-size:13px;transition:top .15s}
.skiplink:focus{top:12px}

/* ===== 4-цветный разделитель (порядок фиксирован: зелёный · голубой · красный · тёмно-синий) ===== */
.bar4{display:flex;height:5px;border-radius:99px;overflow:hidden;width:100%}
.bar4 i{flex:1}
.bar4 i:nth-child(1){background:var(--green)}
.bar4 i:nth-child(2){background:var(--blue)}
.bar4 i:nth-child(3){background:var(--red)}
.bar4 i:nth-child(4){background:var(--navy)}

/* ===== nav ===== */
.nav{position:sticky;top:0;z-index:50;
  background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(16px) saturate(1.3);
  border-bottom:1px solid var(--line)}
.nav .in{display:flex;align-items:center;gap:14px;padding:12px 22px;max-width:1160px;margin:0 auto}
.logo{display:flex;align-items:center;gap:11px;color:var(--ink);flex:none}
.logo svg{height:19px;width:auto;display:block}
.navlinks{margin-left:auto;display:flex;gap:4px;flex-wrap:wrap;align-items:center}
.navlinks a{font-size:13px;font-weight:600;color:var(--mut);text-decoration:none;padding:8px 13px;border-radius:99px;transition:.15s;white-space:nowrap}
.navlinks a:hover{color:var(--ink);background:var(--bg2)}
.navlinks a.on{color:#013A47;background:var(--blue);font-weight:700}
.navtools{margin-left:auto;display:flex;align-items:center;gap:8px}
.navlinks+.navtools{margin-left:0}
.btn-ghost{font-size:13px;font-weight:700;color:var(--mut);background:none;border:1px solid var(--line2);
  border-radius:99px;padding:8px 14px;cursor:pointer;transition:.15s;min-height:38px}
.btn-ghost:hover{color:var(--ink);border-color:var(--mut)}
/* мобильная лента чипов */
.navchips{display:none;gap:8px;overflow-x:auto;padding:10px 22px 12px;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 90%,transparent)}
.navchips::-webkit-scrollbar{display:none}
.navchips a{flex:none;font-size:13px;font-weight:600;color:var(--mut);text-decoration:none;
  padding:9px 15px;border-radius:99px;background:var(--bg2);white-space:nowrap;min-height:var(--tap);display:inline-flex;align-items:center}
.navchips a.on{color:#013A47;background:var(--blue);font-weight:700}

.pagegut{padding-block:0 76px}

/* ===== hero ===== */
.hero{position:relative;margin-top:22px;border-radius:var(--r-lg);overflow:hidden;
  background:radial-gradient(120% 120% at 12% 0%, #0A6076 0%, #005062 45%, #013A47 100%);
  color:#EAF7FA;box-shadow:var(--sh-navy);isolation:isolate}
.hero .dots{position:absolute;inset:0;opacity:.5;z-index:0;
  background-image:radial-gradient(circle, rgba(162,217,123,.5) 1px, transparent 1.4px);
  background-size:26px 26px;mask-image:linear-gradient(105deg,#000 0%,transparent 62%)}
.hero .glow{position:absolute;z-index:0;width:420px;height:420px;border-radius:50%;
  right:-120px;top:-160px;background:radial-gradient(circle,rgba(2,184,227,.55),transparent 65%);filter:blur(20px)}
.hero .in{position:relative;z-index:1;padding:38px 40px}
.hero .eye{font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#7FE0F5}
.hero-grid{display:grid;grid-template-columns:1.55fr .95fr;gap:26px;margin-top:14px;align-items:end}
.hero h1{font-size:clamp(34px,5vw,52px);font-weight:800;letter-spacing:-.03em;line-height:.98}
.hero .loc{margin-top:12px;font-size:15px;color:#B9DBE2;max-width:46ch;line-height:1.5}
.hero .facts{display:flex;flex-direction:column;gap:10px;background:rgba(2,32,42,.34);
  border:1px solid rgba(255,255,255,.12);border-radius:var(--r);padding:18px 20px;backdrop-filter:blur(6px)}
.hero .facts .f{display:flex;gap:11px;font-size:13px;line-height:1.4}
.hero .facts .f b{color:#EAF7FA;font-weight:700;min-width:78px;flex:none}
.hero .facts .f span{color:#AFD2DA}
.hero .facts .facts-tag{align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;
  color:#9FE6F5;background:rgba(127,224,245,.12);border:1px solid rgba(127,224,245,.28);border-radius:99px;padding:4px 10px;margin-bottom:4px}
.hero .foot4{position:relative;z-index:1;padding:0 40px 26px}
.hero .status1{display:inline-flex;align-items:center;gap:10px;margin-top:22px;
  background:rgba(92,191,32,.16);border:1px solid rgba(92,191,32,.4);color:#DFF3CB;
  padding:9px 16px;border-radius:99px;font-size:13.5px;font-weight:600}
.hero .status1 .d{width:9px;height:9px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(92,191,32,.25)}

/* ===== section frame ===== */
section{margin-top:64px;scroll-margin-top:84px}
.shd{display:flex;align-items:flex-end;gap:16px;margin-bottom:6px}
.sno{font-size:13px;font-weight:800;color:var(--blue);letter-spacing:.02em;font-variant-numeric:tabular-nums}
.shd h2{font-size:clamp(23px,3vw,30px);font-weight:800;letter-spacing:-.02em;line-height:1.05}
.sub{font-size:14.5px;color:var(--mut);max-width:74ch;margin:10px 0 22px;line-height:1.55}
.sdiv{width:100%;margin-bottom:22px;height:5px}

/* ===== MAP ===== */
.mapshell{border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-navy);
  background:radial-gradient(130% 120% at 80% -10%, #0A6076 0%, #024E60 40%, #012E39 100%);
  display:grid;grid-template-columns:1fr 336px}
.mapcanvas{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:center;
  background-image:radial-gradient(rgba(127,224,245,.11) 1.1px, transparent 1.5px);background-size:24px 24px;background-position:center}
.mapcanvas svg{width:100%;height:auto;display:block}
.mapcanvas .mapname{position:absolute;left:22px;top:16px;z-index:2;font-size:16px;font-weight:800;letter-spacing:.01em;color:#EAF7FA;text-shadow:0 1px 8px rgba(1,30,40,.5)}
.mapcanvas .cap{position:absolute;left:20px;right:20px;bottom:16px;font-size:12px;font-style:italic;
  color:#9FC6CF;background:rgba(1,40,50,.5);border:1px solid rgba(255,255,255,.12);
  padding:5px 12px;border-radius:12px;backdrop-filter:blur(4px);max-width:max-content}
.mappanel{background:rgba(3,38,48,.42);border-left:1px solid rgba(255,255,255,.1);
  padding:20px 18px;backdrop-filter:blur(8px);color:#DCEBEF}
.mappanel h3{font-size:14px;font-weight:800;color:#EAF7FA}
.mappanel .psub{font-size:12px;color:#93B9C2;margin:3px 0 14px}
.mpbtns{display:flex;gap:8px;margin-bottom:12px}
.mpbtn{flex:1;font-family:var(--font);font-size:12px;font-weight:700;color:#BEDDE4;cursor:pointer;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:10px;transition:.14s;min-height:var(--tap)}
.mpbtn:hover{background:rgba(255,255,255,.13);color:#fff}
.grp{border:1px solid rgba(255,255,255,.11);border-radius:14px;margin-bottom:9px;overflow:hidden;transition:.15s}
.grp.off{opacity:.4}
.ghead{display:flex;align-items:center;gap:10px;padding:0 0 0 0;position:relative}
.gbar{width:4px;align-self:stretch;border-radius:0 3px 3px 0;flex:none}
.gtoggle{flex:1;display:flex;align-items:center;gap:10px;min-width:0;background:none;border:none;
  color:inherit;font-family:var(--font);text-align:left;cursor:pointer;padding:11px 4px 11px 8px;min-height:var(--tap)}
.gtoggle:hover .gname{color:#fff}
.gname{flex:1;min-width:0;font-size:13px;font-weight:700;color:#EAF7FA;line-height:1.15}
.grp.active .gname{color:#fff}
.gcount{font-size:10.5px;font-weight:700;color:#8FB6BF;background:rgba(255,255,255,.08);border-radius:99px;padding:2px 8px;font-variant-numeric:tabular-nums}
.grp.active .gcount{background:rgba(127,224,245,.22);color:#DFF7FC}
.geye{width:var(--tap);height:var(--tap);flex:none;border:none;background:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#7FA6AF;border-radius:8px}
.geye:hover{color:#fff;background:rgba(255,255,255,.1)}
.geye svg{width:16px;height:16px}
.gsub{padding:0 12px 10px 18px;display:flex;flex-direction:column;gap:7px}
.gs{display:flex;align-items:baseline;gap:8px;font-size:11.5px;line-height:1.3}
.gs .nm{color:#CFE6EB;font-weight:500}
.gs .co{margin-left:auto;color:#7FA6AF;font-size:10.5px;white-space:nowrap}
.mk{transition:transform .34s cubic-bezier(.34,1.56,.64,1), opacity .26s ease;transform-box:fill-box;transform-origin:center}
.mk.hide{opacity:0;transform:scale(.4);pointer-events:none}
.mk.dim{opacity:.16}
.pulse .halo{animation:pl 1.5s ease-out 2}
@keyframes pl{0%{transform:scale(1);opacity:.5}55%{transform:scale(2.1);opacity:0}100%{opacity:0}}

/* ===== equipment ===== */
.eqblock{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);
  box-shadow:var(--sh-sm);margin-bottom:12px;overflow:hidden}
.eqhd{display:flex;align-items:center;gap:12px;padding:15px 20px;cursor:pointer;user-select:none;width:100%;
  background:none;border:none;font-family:var(--font);text-align:left;color:inherit;min-height:var(--tap)}
.eqhd .ic{width:34px;height:34px;border-radius:10px;flex:none;display:flex;align-items:center;justify-content:center;color:#fff}
.eqhd .ic svg{width:18px;height:18px}
.eqhd .tt{flex:1;min-width:0}
.eqhd .tt b{font-size:15px;font-weight:700;display:block;line-height:1.2}
.eqhd .tt span{font-size:12px;color:var(--mut)}
.eqhd .chev{width:20px;height:20px;color:var(--faint);flex:none;transition:transform .2s}
.eqblock.open .chev{transform:rotate(180deg)}
.eqbody{display:none;padding:0 20px 6px 20px}
.eqblock.open .eqbody{display:block}
.eqrow{display:flex;gap:14px;padding:11px 0;border-top:1px solid var(--line);align-items:baseline;font-size:13px}
.eqrow .lbl{flex:none;width:150px;font-weight:600;color:var(--ink)}
.eqrow .val{flex:1;color:var(--ink2);line-height:1.5}
.eqrow .val .m{font-weight:600;color:var(--ink)}
.eqrow.integ{border-top:1px solid var(--line2)}
.eqrow.integ .lbl{color:var(--navy2)}
.eqrow .m{font-weight:600;color:var(--ink)}

/* ===== completeness ===== */
.compwrap{display:grid;grid-template-columns:300px 1fr;gap:26px;background:
  radial-gradient(120% 140% at 90% 0%, #0A6076, #024C5E 55%, #012E39);
  border-radius:var(--r-lg);padding:30px 34px;color:#EAF7FA;box-shadow:var(--sh-navy);align-items:center}
.ring{position:relative;width:200px;height:200px;margin:0 auto}
.ring .lab{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring .lab b{font-size:46px;font-weight:800;letter-spacing:-.02em;line-height:1;font-variant-numeric:tabular-nums}
.ring .lab span{font-size:11.5px;color:#9FC6CF;margin-top:5px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}
.ring .method{text-align:center;font-size:11px;color:#8FB6BF;margin-top:12px;line-height:1.4}
.compright h3{font-size:19px;font-weight:800;margin-bottom:4px}
.compright .lead{font-size:13.5px;color:#B9DBE2;margin-bottom:18px;line-height:1.5;max-width:60ch}
.cbars{display:flex;flex-direction:column;gap:15px}
.cbar .top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:7px;gap:10px}
.cbar .top .n{font-size:13.5px;font-weight:600;color:#DCEBEF}
.cbar .top .wt{font-size:10.5px;color:#7FA6AF;font-weight:600;margin-left:6px}
.cbar .top .v{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;flex:none}
.cbar .track{height:8px;border-radius:99px;background:rgba(255,255,255,.12);overflow:hidden}
.cbar .fill{height:100%;border-radius:99px;width:0;transition:width 1s ease}

/* ===== registry ===== */
.upd-row{margin:-8px 0 16px}
.upd-badge{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--mut);
  background:var(--bg2);border:1px solid var(--line);border-radius:99px;padding:6px 13px}
.upd-badge .udot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 22%,transparent)}
.regcard{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--sh-sm);overflow:hidden}
.regh{display:grid;grid-template-columns:1.4fr 1.3fr 1.5fr;gap:16px;padding:13px 22px;
  font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);border-bottom:1px solid var(--line)}
.regh span{text-align:left}
.regrow{display:grid;grid-template-columns:1.4fr 1.3fr 1.5fr;gap:16px;padding:14px 22px;border-bottom:1px solid var(--line);align-items:center;font-size:13.5px}
.regrow:last-child{border-bottom:none}
.regrow:hover{background:var(--bg2)}
.regrow .sy{font-weight:600;color:var(--ink)}
.regrow .cp{font-weight:600;color:var(--ink2)}
.regrow .ct{color:var(--mut);font-size:12.5px}
.regrow .ct.no{color:var(--faint)}

/* ===== FORM (пошаговый запрос) ===== */
.formwrap{background:var(--paper);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden}
.formhead{padding:22px 26px 0}
.fprogress{display:flex;align-items:center;gap:12px;margin-bottom:16px}
.fprogress .track{flex:1;height:8px;border-radius:99px;background:var(--bg2);overflow:hidden}
.fprogress .fill{height:100%;background:linear-gradient(90deg,var(--green),var(--blue));border-radius:99px;width:0;transition:width .4s ease}
.fprogress .pct{font-size:13px;font-weight:800;color:var(--navy2);font-variant-numeric:tabular-nums;flex:none;min-width:42px;text-align:right}
/* сетка равных колонок: чип в неполном ряду не растягивается */
.steplist{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;padding-bottom:16px}
.stepchip{display:flex;align-items:center;gap:10px;background:var(--bg2);border:1.5px solid transparent;
  border-radius:14px;padding:10px 14px;cursor:pointer;font-family:var(--font);color:var(--ink2);transition:.15s;min-height:var(--tap);text-align:left}
.stepchip:hover{border-color:var(--line2)}
.stepchip .num{width:26px;height:26px;flex:none;border-radius:50%;display:flex;align-items:center;justify-content:center;
  font-size:12.5px;font-weight:800;background:var(--paper);color:var(--mut);border:1.5px solid var(--line2)}
.stepchip .lbl{font-size:12.5px;font-weight:700;line-height:1.15;min-width:0}
.stepchip .state{font-size:10.5px;color:var(--faint);display:block;font-weight:600;margin-top:2px;text-transform:lowercase;letter-spacing:.01em}
/* состояния: не начат — приглушённо, частично — синий курсив, заполнен — зелёный */
.stepchip.part{background:color-mix(in srgb,var(--blue) 8%,var(--bg2))}
.stepchip.part .num{border-color:var(--blue);color:var(--navy2)}
.stepchip.part .state{color:var(--navy2);font-style:italic}
.stepchip.done{background:color-mix(in srgb,var(--green) 11%,var(--bg2))}
.stepchip.done .num{background:var(--green);color:#173d05;border-color:var(--green)}
.stepchip.done .state{color:#3C7F13}
.stepchip.cur{background:color-mix(in srgb,var(--blue) 13%,var(--paper));border-color:var(--blue)}
.stepchip.cur .num{background:var(--blue);color:#013A47;border-color:var(--blue)}

.fbody{padding:8px 26px 26px}
.fstep{display:none}
.fstep.show{display:block;animation:fadein .25s ease}
@keyframes fadein{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.fstep .intro{background:var(--bg2);border-radius:var(--r-sm);padding:14px 16px;margin:10px 0 20px;font-size:13px;color:var(--ink2);line-height:1.5}
.fstep .intro b{color:var(--ink)}
.fgroup{margin-bottom:26px}
.fgroup>h4{font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin:0 0 12px;padding-bottom:8px;border-bottom:1px solid var(--line)}
.field{margin-bottom:18px}
.field>label{display:block;font-size:14px;font-weight:700;color:var(--ink);margin-bottom:4px;line-height:1.35}
.field .hint{font-size:12px;color:var(--mut);margin-bottom:9px;line-height:1.45}
.field .hint b{color:var(--ink2);font-weight:700}
.control,select.control,textarea.control{width:100%;font-family:var(--font);font-size:14px;color:var(--ink);
  background:var(--field);border:1.5px solid var(--field-line);border-radius:12px;padding:12px 14px;transition:.15s;min-height:var(--tap)}
textarea.control{min-height:96px;resize:vertical;line-height:1.5}
.control:focus{border-color:var(--field-focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent);outline:none}
.control::placeholder{color:var(--faint)}
select.control{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%235C7A83' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:40px}
/* choice chips (да/нет/не знаю, выбор) */
.choices{display:flex;flex-wrap:wrap;gap:8px}
.choices label{position:relative;cursor:pointer}
.choices input{position:absolute;opacity:0;width:0;height:0}
.choices span{display:inline-flex;align-items:center;min-height:var(--tap);padding:9px 16px;border-radius:99px;
  background:var(--field);border:1.5px solid var(--field-line);font-size:13.5px;font-weight:600;color:var(--ink2);transition:.15s}
.choices input:checked+span{background:color-mix(in srgb,var(--blue) 14%,var(--paper));border-color:var(--blue);color:var(--navy2)}
.choices input:focus-visible+span{outline:2.5px solid var(--blue);outline-offset:2px}
/* документ: файл или ссылка */
.docfield .doctabs{display:flex;gap:6px;margin-bottom:8px}
.doctab{font-size:12px;font-weight:700;color:var(--mut);background:var(--bg2);border:1px solid transparent;
  border-radius:99px;padding:7px 13px;cursor:pointer;min-height:36px}
.doctab.on{background:color-mix(in srgb,var(--blue) 12%,var(--paper));border-color:var(--blue);color:var(--navy2)}
.filebtn{display:flex;align-items:center;gap:10px;border:1.5px dashed var(--field-line);border-radius:12px;
  padding:14px;color:var(--mut);font-size:13px;cursor:pointer;background:var(--field);min-height:var(--tap)}
.filebtn:hover{border-color:var(--blue);color:var(--ink2)}
.filebtn input{display:none}
.filebtn .fname{color:var(--ink);font-weight:600}
.filelist{list-style:none;margin:8px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}
.filelist li{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--ink2);
  background:var(--bg2);border-radius:10px;padding:8px 12px;word-break:break-word}
.filelist li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--blue);flex:none}
/* повторяющиеся блоки */
.repeater{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.rep-item{padding:16px;border-bottom:1px solid var(--line);position:relative}
.rep-item:last-of-type{border-bottom:none}
.rep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}
.rep-del{position:absolute;top:10px;right:10px;width:32px;height:32px;border:none;border-radius:8px;background:var(--bg2);
  color:var(--mut);cursor:pointer;font-size:16px;line-height:1;display:flex;align-items:center;justify-content:center}
.rep-del:hover{background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red)}
.rep-item.empty .rep-del{display:none}
.rep-add{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;background:var(--bg2);border:none;
  color:var(--navy2);font-family:var(--font);font-weight:700;font-size:13px;padding:13px;cursor:pointer;min-height:var(--tap)}
.rep-add:hover{background:color-mix(in srgb,var(--blue) 10%,var(--bg2))}
.rep-mini{font-size:11px;font-weight:700;color:var(--mut);margin-bottom:3px;display:block}

.fnav{display:flex;align-items:center;gap:12px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font);font-weight:700;
  font-size:14px;border-radius:12px;padding:13px 20px;cursor:pointer;border:1.5px solid transparent;min-height:var(--tap);transition:.15s}
.btn-nav{background:var(--bg2);color:var(--ink2);border-color:var(--line2)}
.btn-nav:hover{border-color:var(--mut)}
.btn-nav[disabled]{opacity:.4;cursor:not-allowed}
.btn-primary{background:var(--navy);color:#fff;margin-left:auto}
.btn-primary:hover{background:var(--navy-deep)}
.btn-blue{background:var(--blue);color:#013A47}
.savednote{font-size:12px;color:var(--mut)}
.savednote b{color:#3C7F13}

/* confirmation / submit result */
.fresult{text-align:center;padding:40px 26px}
.fresult .ok{width:64px;height:64px;border-radius:50%;background:color-mix(in srgb,var(--green) 18%,transparent);
  display:flex;align-items:center;justify-content:center;margin:0 auto 16px}
.fresult .ok svg{width:32px;height:32px;color:var(--green)}
.fresult h3{font-size:22px;font-weight:800;margin-bottom:8px}
.fresult p{color:var(--mut);font-size:14px;max-width:52ch;margin:0 auto 8px;line-height:1.55}
.fresult .subid{font-weight:800;color:var(--navy2)}
.fresult .acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:22px}
.formalert{margin:0 26px 16px;padding:12px 16px;border-radius:12px;font-size:13px;line-height:1.45;display:none}
.formalert.err{display:block;background:color-mix(in srgb,var(--red) 12%,transparent);color:#a11722;border:1px solid color-mix(in srgb,var(--red) 30%,transparent)}
.formalert.info{display:block;background:color-mix(in srgb,var(--blue) 10%,transparent);color:var(--navy2);border:1px solid color-mix(in srgb,var(--blue) 26%,transparent)}

/* footer */
.foot{margin-top:60px}
.foot .in{padding:22px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;align-items:center;font-size:12px;color:var(--faint)}
.foot .wm svg{height:15px;opacity:.55;display:block}

/* ===== LOGIN ===== */
.loginbody{min-height:100dvh;display:flex;flex-direction:column;background:
  radial-gradient(130% 90% at 85% -10%, #0A6076 0%, #024E60 42%, var(--bg) 78%)}
.login-top{padding:22px 24px}
.login-main{flex:1;display:flex;align-items:center;justify-content:center;padding:24px}
.logincard{width:100%;max-width:400px;background:var(--glass);backdrop-filter:blur(18px) saturate(1.3);
  border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--sh);overflow:hidden}
.logincard .lc-in{padding:30px 30px 26px}
.logincard .lc-eye{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}
.logincard h1{font-size:24px;font-weight:800;margin:6px 0 4px;letter-spacing:-.02em}
.logincard .lc-sub{font-size:13px;color:var(--mut);margin-bottom:22px;line-height:1.5}
.loginform .field{margin-bottom:16px}
.login-foot{padding:18px 24px;text-align:center;font-size:11.5px;color:var(--faint)}
.login-err{display:none;margin-bottom:16px;padding:11px 14px;border-radius:12px;font-size:13px;
  background:color-mix(in srgb,var(--red) 12%,transparent);color:#a11722;border:1px solid color-mix(in srgb,var(--red) 28%,transparent)}
.login-err.show{display:block}

/* ============================================================
   Адаптив: 1440 / 1024 / 768 / 390 + альбом телефона
   ============================================================ */
@media(max-width:1024px){
  .hero-grid{grid-template-columns:1.35fr 1fr}
  .mapshell{grid-template-columns:1fr 300px}
  .compwrap{grid-template-columns:260px 1fr}
}
@media(max-width:860px){
  .mapshell{grid-template-columns:1fr}
  .mappanel{border-left:none;border-top:1px solid rgba(255,255,255,.1)}
}
@media(max-width:768px){
  .hero-grid{grid-template-columns:1fr}
  .hero .in{padding:28px 22px}.hero .foot4{padding:0 22px 22px}
  .compwrap{grid-template-columns:1fr;gap:22px;padding:26px 22px}
  .ring{width:180px;height:180px}
  .navlinks{display:none}
  .navchips{display:flex}
  .regh{display:none}
  .regrow{grid-template-columns:1fr;gap:2px;padding:13px 20px}
  .regrow .sy{font-size:14px}.regrow .cp{font-size:12.5px;color:var(--mut)}.regrow .ct{font-size:12px}
  .eqrow{flex-direction:column;gap:3px}.eqrow .lbl{width:auto}
  .btn-primary{margin-left:0;width:100%}
  .fnav .btn-nav{flex:1}
}
@media(max-width:420px){
  .wrap{padding-left:16px;padding-right:16px}
  .hero .in{padding:24px 18px}
  .fbody{padding:8px 16px 20px}.formhead{padding:18px 16px 0}
  .compwrap{padding:22px 16px}
  .rep-grid{grid-template-columns:1fr}
}
/* альбомная ориентация телефона */
@media(max-height:520px) and (orientation:landscape){
  .login-main{align-items:flex-start;padding-top:16px}
  section{margin-top:44px}
}

/* уважать prefers-reduced-motion */
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .pulse .halo{animation:none}
  .cbar .fill,.fprogress .fill,#ringArc{transition:none!important}
}
