:root {
  --bg:#f5f7fb; --card:#fff; --ink:#1a1f2b; --muted:#6b7280; --line:#e5e7eb;
  --brand:#2563eb; --ok:#16a34a; --err:#dc2626;
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Ubuntu, 'Noto Sans', sans-serif;
}
* { box-sizing: border-box; }
body { margin:0; background:var(--bg); color:var(--ink); }
.wrap { max-width: 760px; margin: 0 auto; padding: 0 16px; }
header { background:#fff; box-shadow:0 1px 4px rgba(0,0,0,.06); position:sticky; top:0; z-index:5; }
.head { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; }
h1 { font-size:18px; margin:0; }
h2 { grid-column:1/-1; margin:14px 0 4px; font-size:15px; color:var(--muted);
     text-transform:uppercase; letter-spacing:.03em; }
main { padding: 20px 16px 40px; }
footer { color:var(--muted); font-size:13px; text-align:center; padding:16px; }

/* переключатель языков */
.langs { display:flex; gap:6px; }
.lang { text-decoration:none; color:var(--muted); font-weight:600; font-size:13px;
        padding:5px 9px; border-radius:8px; border:1px solid var(--line); }
.lang.on { color:#fff; background:var(--brand); border-color:var(--brand); }

.card { background:var(--card); border-radius:16px; padding:20px;
        box-shadow:0 8px 24px rgba(0,0,0,.06); }
.center { text-align:center; }

/* сетка формы — 1 колонка на телефоне, 2 на широком */
.grid { display:grid; grid-template-columns:1fr; gap:12px 16px; }
@media (min-width:560px){ .grid { grid-template-columns:1fr 1fr; } }
label { display:flex; flex-direction:column; gap:6px; font-size:14px; color:#374151; }
/* звёздочка обязательного поля — ставится ПОСЛЕ текста подписи (внутри span.rq),
   чтобы не отрывалась на отдельную строку в flex-колонке */
label.req > .rq::after { content:" *"; color:var(--err); }
input { padding:12px; border-radius:10px; border:1px solid var(--line); font-size:16px;
        background:#fff; color:var(--ink); }
input:focus { outline:2px solid var(--brand); outline-offset:0; border-color:var(--brand); }
.fe { color:var(--err); font-size:13px; }

.actions { grid-column:1/-1; display:flex; justify-content:flex-end; margin-top:6px; }
button, .btn { padding:13px 22px; border:none; border-radius:12px; background:var(--brand);
        color:#fff; font-weight:700; font-size:16px; cursor:pointer; text-decoration:none;
        display:inline-block; }
button:hover, .btn:hover { filter:brightness(1.05); }
.btn .ico, button .ico { vertical-align:-3px; margin-right:4px; }

.banner { padding:12px 16px; border-radius:10px; margin-bottom:14px; }
.banner.err { background:#fef2f2; color:var(--err); border:1px solid #fecaca; }
.hint { color:var(--muted); }
.qr { width:240px; height:240px; image-rendering:pixelated; margin:10px auto; display:block; }
.ok .big { font-size:56px; color:var(--ok); line-height:1; }

/* ============ E-Gumruk мастер ============ */
:root { --navy:#1e3a5f; --navy2:#16304f; --green:#16a34a; }
body.eg { background:#eef1f6; }
.eg-head { background:var(--navy); box-shadow:0 2px 8px rgba(0,0,0,.15); }
.eg-head-in { display:flex; align-items:center; justify-content:space-between; padding:14px 16px; }
.eg-brand { display:flex; align-items:center; gap:10px; color:#fff; font-size:17px; font-weight:700; }
.eg-logo { display:inline-grid; place-items:center; width:34px; height:34px; border-radius:9px;
           background:linear-gradient(135deg,#2b6cb0,#38a169); font-size:13px; font-weight:800; }
.eg-head .lang { color:#c7d3e2; border-color:#33507160; }
.eg-head .lang.on { background:#2b6cb0; border-color:#2b6cb0; color:#fff; }
.eg-main { padding:18px 16px 40px; max-width:640px; }

.eg-steptitle { color:var(--navy); font-size:14px; margin:4px 0 10px; }
.eg-steptitle b { color:var(--navy); }
.stepper { display:flex; gap:6px; margin-bottom:18px; }
.stepper .seg { flex:1; height:6px; border-radius:4px; background:#d3dae5; }
.stepper .seg.done { background:var(--green); }
.stepper .seg.cur  { background:var(--brand); }

.eg-form { background:var(--card); border-radius:16px; padding:18px;
           box-shadow:0 8px 24px rgba(0,0,0,.06); display:flex; flex-direction:column; gap:13px; }
.eg-sec { margin:8px 0 0; font-size:12px; font-weight:700; letter-spacing:.05em;
          text-transform:uppercase; color:var(--brand); border-bottom:1px solid var(--line);
          padding-bottom:6px; }
.eg-form label { font-size:13px; font-weight:600; color:#4b5563; }
.eg-form input, .eg-form select { padding:12px; border-radius:10px; border:1px solid var(--line);
          font-size:16px; background:#fbfcfe; color:var(--ink); width:100%; }
.eg-form input:focus, .eg-form select:focus { outline:2px solid var(--brand); border-color:var(--brand); }
.row2 { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.note { background:#eaf1fb; color:#33507e; border-radius:10px; padding:11px 13px; font-size:13px; }
.hint.sm, .sm { font-size:12px; }

.eg-actions { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:16px; }
.eg-actions button, .eg-actions .btn { flex:0 0 auto; }
.eg-actions button.green { background:var(--green); }
.btn.ghost { background:#eef2f7; color:var(--navy); border:1px solid var(--line); }

/* груз */
.cargo-item { border:1px solid var(--line); border-radius:12px; padding:14px; margin-bottom:12px;
              display:flex; flex-direction:column; gap:11px; background:#fcfdff; }
.cargo-hd { display:flex; justify-content:space-between; align-items:center; }
.cargo-no { font-size:12px; font-weight:700; text-transform:uppercase; color:var(--navy); letter-spacing:.04em; }
/* крупная зона нажатия для удаления на телефоне */
.lnk-del { background:#fef2f2; color:var(--err); font-size:13px; font-weight:600;
           padding:8px 12px; border-radius:9px; border:1px solid #fecaca; }
.lnk-del:active { background:#fde0e0; }
.btn-add { width:100%; background:#eef2f7; color:var(--navy); border:1px dashed #b7c3d4;
           border-radius:12px; padding:15px; font-weight:700; font-size:15px; }
/* мягкая подсветка только что добавленного товара */
@keyframes cargo-flash { from { background:#e8f0fb; } to { background:#fcfdff; } }
.cargo-item.just-added { animation: cargo-flash 1.3s ease; }
.cargo-item.has-err { border-color:var(--err); }
.cargo-item.has-err input[name="r_plate"] { border-color:var(--err); outline:1px solid var(--err); }
.fe.tr-fe { display:block; margin-top:4px; }
input.inp-err { border-color:var(--err); outline:1px solid var(--err); }
@media (prefers-reduced-motion: reduce) { .cargo-item.just-added { animation:none; } }

/* подтверждение / verify */
.ok-banner { background:var(--green); color:#fff; font-weight:700; text-align:center; font-size:16px; }
.banner.warn { background:#fef7e6; color:#8a6d1a; border:1px solid #f2e0a8; font-size:13px; }
.regcard { margin-bottom:14px; }
.regno { font-size:26px; font-weight:800; color:var(--navy); letter-spacing:.02em; margin:2px 0 8px; }
.kv { padding:6px 18px; margin-bottom:14px; }
.kv-row { display:flex; justify-content:space-between; align-items:center; gap:12px;
          padding:11px 0; border-bottom:1px solid var(--line); font-size:14px; }
.kv-row:last-child { border-bottom:none; }
.kv-row span { color:var(--muted); }
.kv-row b { text-align:right; }
.st-wait { color:var(--green); }
@media print { .eg-head .langs, .eg-actions { display:none; } body.eg { background:#fff; } }

/* ============ Загрузка фото документов ============ */
.files-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(92px,1fr)); gap:10px; margin-bottom:12px; }
.file-tile { position:relative; aspect-ratio:1/1; border-radius:10px; overflow:hidden; border:1px solid var(--line); background:#f5f7fb; }
.file-tile img { width:100%; height:100%; object-fit:cover; display:block; }
.file-pdf { display:grid; place-items:center; width:100%; height:100%; font-weight:800; color:var(--err); text-decoration:none; font-size:15px; }
.file-del { position:absolute; top:4px; right:4px; width:24px; height:24px; border-radius:50%;
            background:rgba(0,0,0,.6); color:#fff; display:grid; place-items:center; text-decoration:none;
            font-size:13px; font-weight:700; line-height:1; }
.file-add { display:flex; align-items:center; justify-content:center; gap:8px; padding:16px;
            border:1px dashed #b7c3d4; border-radius:12px; background:#eef2f7; color:var(--navy);
            font-weight:700; cursor:pointer; position:relative; }
.file-add input[type=file] { position:absolute; inset:0; opacity:0; cursor:pointer; }
