/* Corvus — база стилів.
   Палітра взята з кадрів: туман, зелена поверхня столу, сині світлодіоди, лампа в бліндажі. */

:root{
  --fog:#E9EAE6;        /* фон — ранкове поле */
  --paper:#F3F2EE;      /* панелі поверх фону */
  --ink:#1F2429;        /* основний текст */
  --muted:#6C7168;      /* другорядний текст */
  --line:#C9C9C1;       /* лінії */
  --olive:#55604F;      /* поверхня столу — «вже є» */
  --blue:#2F6486;       /* світлодіод детектора — «у зборі» */
  --amber:#A3691F;      /* лампа — «закрито» */
  --maxw:820px;
  --r:10px;          /* радіус карток */
  --r-s:6px;         /* радіус дрібних елементів */
  --recess:#E2E3DD;  /* фон порожньої комірки — трохи глибший за тло */
  /* Якщо покладеш Fixel у assets — розкоментуй @font-face нижче і додай "Fixel" першим у --font */
  --font:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--fog);color:var(--ink);
  font-family:var(--font);font-size:17px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
img,video{display:block;max-width:100%}
a{color:inherit}

.wrap{max-width:var(--maxw);margin:0 auto;padding:0 22px}
.section{padding:56px 0}
.section + .section{border-top:1px solid var(--line)}

h1,h2,h3{font-weight:600;letter-spacing:-0.015em;margin:0}
h2{font-size:27px;line-height:1.2;margin-bottom:6px}
h3{font-size:19px;line-height:1.3}
p{margin:12px 0}
.lead{color:var(--muted);max-width:58ch}
.small{font-size:14.5px;color:var(--muted)}

/* ---------- шапка-відео ---------- */
.hero{position:relative;height:72svh;min-height:460px;overflow:hidden;background:#9aa3a6}
.hero video,.hero img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(233,234,230,.55) 0%,rgba(233,234,230,0) 38%,rgba(31,36,41,.62) 100%);
}
.hero-text{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:0 22px 34px}
.hero-text .wrap{padding:0}
.hero-name{
  font-size:13px;letter-spacing:.14em;color:rgba(243,242,238,.82);
  text-transform:none;margin-bottom:10px;
}
.hero-text h1{
  color:#F6F5F1;font-size:clamp(30px,7.4vw,46px);line-height:1.08;
  text-shadow:0 1px 24px rgba(20,24,28,.45);max-width:16ch;
}
.hero-text p{color:rgba(246,245,241,.9);max-width:34ch;margin:14px 0 0;font-size:16px}
.fade{opacity:0;transform:translateY(10px);animation:rise .9s cubic-bezier(.2,.7,.3,1) forwards}
.fade.d1{animation-delay:.15s}.fade.d2{animation-delay:.3s}
@keyframes rise{to{opacity:1;transform:none}}

/* ---------- навігація ---------- */
.nav{position:sticky;top:0;z-index:20;background:rgba(233,234,230,.92);
  backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;gap:20px;overflow-x:auto;padding-top:13px;padding-bottom:13px;
  scrollbar-width:none}
.nav .wrap::-webkit-scrollbar{display:none}
.nav a{text-decoration:none;font-size:15px;color:var(--muted);white-space:nowrap}
.nav a:hover,.nav a.here{color:var(--ink)}

/* ---------- хвиля ---------- */
.wave-head{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:4px}
.wave-no{font-size:13px;color:var(--muted)}
.sum{display:flex;align-items:baseline;gap:10px;margin:22px 0 8px}
.sum b{font-size:38px;font-weight:600;letter-spacing:-0.03em;font-variant-numeric:tabular-nums}
.bar{height:3px;background:var(--line);position:relative;margin:10px 0 6px}
.bar i{position:absolute;inset:0 auto 0 0;background:var(--blue)}

.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:26px}
@media(min-width:640px){.grid{grid-template-columns:repeat(3,1fr)}}
.slot{position:relative;aspect-ratio:1;border-radius:var(--r);overflow:hidden;
  background:var(--paper);border:1px solid var(--line);padding:14px;
  display:flex;flex-direction:column;justify-content:flex-end}
.slot.empty{
  border:1px dashed #C2C3B9;
  background:
    repeating-linear-gradient(135deg,
      rgba(85,96,79,.05) 0 7px, rgba(85,96,79,0) 7px 15px),
    var(--recess);
}
/* знак «тут зʼявиться фото» — тихий, у верхній частині комірки */
.slot.empty::before{
  content:"";position:absolute;left:50%;top:38%;transform:translate(-50%,-50%);
  width:30px;height:30px;opacity:.22;
  background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F2429' stroke-width='1.4'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Ccircle cx='8.5' cy='10' r='1.6'/%3E%3Cpath d='M21 16l-5-5-5 5-2-2-6 5'/%3E%3C/svg%3E");
}
.slot img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.slot .meta{position:relative;z-index:2}
.slot.filled .meta{color:#F3F2EE;text-shadow:0 1px 12px rgba(20,24,28,.6)}
.slot.filled::after{content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(180deg,rgba(20,24,28,0) 45%,rgba(20,24,28,.72) 100%)}
.slot .nm{font-size:15px;font-weight:600;line-height:1.25}
.slot .pr{font-size:13.5px;font-variant-numeric:tabular-nums;opacity:.85;margin-top:3px}
.slot .why{font-size:13px;color:var(--muted);margin-top:6px;line-height:1.35}
.slot.filled .why{color:rgba(243,242,238,.8)}
.tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;
  position:absolute;top:12px;left:12px;z-index:2;
  background:rgba(243,242,238,.92);border-radius:999px;padding:4px 10px}
.dot{width:7px;height:7px;border-radius:50%;flex:none}
.d-open{background:var(--blue)}.d-done{background:var(--amber)}.d-have{background:var(--olive)}

/* ---------- смуги-текстури ---------- */
.strip{height:190px;overflow:hidden;position:relative}
.strip img{width:100%;height:100%;object-fit:cover}
.strip.tall{height:280px}

/* ---------- підтримка ---------- */
.card{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:20px;margin-top:16px}
.btn{display:inline-block;margin-top:14px;background:var(--ink);color:var(--fog);
  text-decoration:none;padding:13px 22px;border-radius:var(--r-s);font-size:16px}
.btn:hover{background:#333A40}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--ink)}
.addr{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13px;
  word-break:break-all;background:#E3E3DD;padding:10px 12px;border-radius:var(--r-s);margin-top:10px}

/* ---------- список/таблиця ---------- */
.rows{margin-top:18px;border-top:1px solid var(--line)}
.row{display:flex;gap:14px;justify-content:space-between;align-items:flex-start;
  padding:13px 0;border-bottom:1px solid var(--line)}
.row .nm{font-size:16px}
.row .why{font-size:13.5px;color:var(--muted);margin-top:2px}
.row .pr{font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}

.empty-note{border:1px dashed #B4B5AB;border-radius:var(--r);padding:18px;color:var(--muted);font-size:15px;margin-top:16px}

footer{padding:40px 0 60px;color:var(--muted);font-size:14.5px}
footer a{text-decoration:none;border-bottom:1px solid var(--line)}
footer .links{display:flex;gap:18px;flex-wrap:wrap;margin-bottom:14px}

@media(prefers-reduced-motion:reduce){
  .fade{animation:none;opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- сума в навігації ---------- */
.nav .wrap{align-items:center}
.nav-sum{display:flex;align-items:center;gap:7px;text-decoration:none;color:var(--ink)!important;
  font-variant-numeric:tabular-nums;padding:0 14px;border-left:1px solid var(--line);
  border-right:1px solid var(--line)}
.nav-sum b{font-weight:600}
.nav-sum span:last-child{color:var(--muted);font-size:13.5px}

/* ---------- рядки списку потреб ---------- */
.row a.nm{text-decoration:none;border-bottom:1px solid var(--line)}
.row a.nm:hover{border-bottom-color:var(--ink)}
.qty{font-size:13px;color:var(--muted);white-space:nowrap;margin-left:6px;
  font-variant-numeric:tabular-nums}
.totals{display:flex;justify-content:space-between;align-items:baseline;
  padding:15px 0 0;font-variant-numeric:tabular-nums}
.totals b{font-size:20px;font-weight:600}

/* ---------- кнопки в картці ---------- */
.card .btn{margin-right:8px}
button.btn{font:inherit;cursor:pointer}

/* @font-face{font-family:"Fixel";src:url("FixelText-Regular.woff2") format("woff2");
   font-weight:400;font-display:swap}
   @font-face{font-family:"Fixel";src:url("FixelText-SemiBold.woff2") format("woff2");
   font-weight:600;font-display:swap} */

/* щільність тексту в плитці — довгі назви не мають розпирати квадрат */
.slot .nm{font-size:14.5px}
.slot .why{font-size:12.5px}
@media(min-width:640px){.slot .nm{font-size:15px}}

/* активний пункт навігації */
.nav a.here{color:var(--ink)}

/* журнал каси */
.log{margin-top:16px;border-top:1px solid var(--line)}
.log-row{display:flex;gap:14px;padding:11px 0;border-bottom:1px solid var(--line);
  font-size:14.5px;color:var(--muted)}
.log-date{font-variant-numeric:tabular-nums;flex:none;width:44px;color:var(--ink)}
.log-img{margin-top:9px;max-width:260px;border:1px solid var(--line);border-radius:var(--r-s)}

/* позначка живої суми */
.live{display:inline-flex;align-items:center;gap:5px;font-size:12.5px;color:var(--muted)}
.live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--blue);
  animation:pulse 2.4s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.25}}
@media(prefers-reduced-motion:reduce){.live::before{animation:none}}
.log-row a{color:var(--ink)}

.log-more{display:block;width:100%;margin-top:12px;padding:11px;font:inherit;font-size:14.5px;
  color:var(--muted);background:transparent;border:1px dashed #B4B5AB;border-radius:var(--r-s);cursor:pointer}
.log-more:hover{color:var(--ink);border-color:var(--muted)}

/* перемикач мови */
.lang{flex:none;margin-right:2px;font:inherit;font-size:13.5px;letter-spacing:.04em;
  color:var(--muted);background:transparent;border:1px solid var(--line);
  border-radius:var(--r-s);padding:4px 9px;cursor:pointer}
.lang:hover{color:var(--ink);border-color:var(--muted)}
