/* DOC.CHK — Soft Paper aesthetic */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500&display=swap');

:root { color-scheme: light; }

html, body {
  background: #fafaf6;
  color: #1a1a1a;
}

body {
  /* very subtle warm radial accent at top — отступаем, но не давим */
  background-image:
    radial-gradient(ellipse 70% 40% at 50% -10%, rgba(201, 92, 37, 0.04), transparent 70%);
  font-feature-settings: "cv02", "cv03", "cv04", "cv11", "ss01";
}

[x-cloak] { display: none !important; }
input:focus, button:focus { outline: none; }

/* ============ Indeterminate progress (work in progress, unknown ETA) ======
   Applied to the inner bar after upload completes — a segment slides across
   the track so it's visually obvious that something is still happening. */
.bar-indeterminate {
  width: 35% !important;
  transition: none !important;
  animation: bar-indet 1.05s ease-in-out infinite;
}
@keyframes bar-indet {
  0%   { transform: translateX(-120%); }
  100% { transform: translateX(400%); }
}

/* ============ Activity log row fade-in ===================================
   New rows ease in from below so the user notices what just appeared
   without it feeling janky. Used on /batch/<id> processing view. */
.animate-fadein {
  animation: fadein 280ms ease-out both;
}
@keyframes fadein {
  from { opacity: 0; transform: translateY(2px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ============ Gallery: wheel-zoom + drag-pan ============ */
.gallery-img-wrap {
  position: relative;
  overflow: hidden;
  display: block;
  flex: 1 1 0;
  min-width: 0;
  background: #f5f3ed;
  border: 1px solid #e8e6df;
  border-radius: 6px;
  transition: border-color 180ms, box-shadow 180ms;
  touch-action: none;
}
.gallery-img-wrap:hover {
  border-color: #c95c25;
  box-shadow: 0 4px 16px rgba(201, 92, 37, 0.18);
}
.gallery-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform-origin: center center;
  display: block;
  cursor: zoom-in;
  will-change: transform;
  user-select: none;
  -webkit-user-drag: none;
}
