/* Склад Банного дома. Язык из визуального концепта: бумага и шалфей, выпуклые кнопки без обводок, крупные цифры. */
@font-face{font-family:'Manrope';src:url('/web/fonts/manrope-normal-cyrillic.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:'Manrope';src:url('/web/fonts/manrope-normal-latin.woff2') format('woff2');font-weight:200 800;font-display:swap;unicode-range:U+0000-00FF,U+2000-206F,U+20AC,U+20BD,U+2212}
@font-face{font-family:'Cormorant';src:url('/web/fonts/cormorant-cyrillic.woff2') format('woff2');font-weight:300 700;font-display:swap}
:root{--paper:#f4f1ea;--card:#fbf8f0;--tile:#f5eee5;--ink:#171611;--mut:#6f6b5f;--sage:#8b9577;--sage-d:#626b51;--sage-s:#dfe4d2;--wood:#9b6b43;--wood-s:#efe3d3;--dark:#151713;--line:#e7e2d6;
  --r:22px;--ease:cubic-bezier(.16,1,.3,1);--sb:env(safe-area-inset-bottom,0px);--st:env(safe-area-inset-top,0px)}
*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}
html,body{height:100%}
body{background:var(--paper);color:var(--ink);font-family:'Manrope',system-ui,-apple-system,'Segoe UI',sans-serif;font-size:16px;font-weight:500;line-height:1.35;letter-spacing:-.012em;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;overscroll-behavior-y:none}
button,input{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;background:none;border:0}
ul{list-style:none}
#app{max-width:560px;margin:0 auto;min-height:100%;position:relative}
.vol{background:linear-gradient(180deg,#77816a,var(--sage-d));color:#fbf8f0;box-shadow:inset 0 1px 0 #ffffff59,0 14px 20px -14px #3d4433cc}
.vol--d{background:linear-gradient(180deg,#2a2d26,var(--dark));color:#fbf8f0;box-shadow:inset 0 1px 0 #ffffff33,0 14px 20px -14px #000000b3}
.vol--w{background:linear-gradient(180deg,#fffdf8,#f1ebdf);color:var(--ink);box-shadow:inset 0 1px 0 #fff,0 10px 16px -12px #6f6b5f80}
.btn{display:flex;align-items:center;justify-content:center;width:100%;min-height:58px;padding:0 22px;border-radius:18px;font-size:17px;font-weight:600;transition:transform .2s var(--ease),opacity .2s}
.btn:active{transform:scale(.98)}
.btn[disabled]{opacity:.45}
.chip{display:inline-flex;align-items:center;min-height:36px;padding:0 14px;border-radius:99px;background:var(--sage-s);color:var(--sage-d);font-size:14px;font-weight:600;white-space:nowrap}
.chip--w{background:var(--wood-s);color:var(--wood)}

/* вход */
.login{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;padding:calc(72px + var(--st)) 28px calc(36px + var(--sb));background:#2a1208 url(/web/img/stol.jpg) 38% 50%/cover no-repeat;color:#fbf8f0;text-align:center}
.login::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#140802cc 0%,#14080266 40%,#140802d9 100%)}
.login>*{position:relative}
.login h1{font-family:'Cormorant',Georgia,serif;font-weight:500;font-size:52px;line-height:1}
.login p{margin-top:8px;font-size:15px;color:#e9e2d6}
.dots{display:flex;gap:16px;margin-top:56px;height:14px}
.dots i{width:14px;height:14px;border-radius:50%;background:#fbf8f04d;transition:background .2s,transform .3s var(--ease)}
.dots i.on{background:#fbf8f0;transform:scale(1.1)}
.dots.bad{animation:shake .4s}
@keyframes shake{20%,60%{transform:translateX(-8px)}40%,80%{transform:translateX(8px)}}
.pad{display:grid;grid-template-columns:repeat(3,72px);gap:16px 24px;margin-top:auto}
.pad button{width:72px;height:72px;border-radius:50%;background:#fbf8f029;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);font-size:28px;font-weight:500;color:#fbf8f0;transition:transform .15s,background .15s}
.pad button:active{transform:scale(.94);background:#fbf8f04d}
.pad .x{background:none;-webkit-backdrop-filter:none;backdrop-filter:none;font-size:14px;color:#e9e2d6}
.pad .e{visibility:hidden}

/* основной экран */
.top{padding:calc(22px + var(--st)) 20px 0;background:linear-gradient(180deg,var(--sage-s) 0%,var(--paper) 100%)}
.top small{display:block;font-size:14px;font-weight:600;color:var(--sage-d)}
.top h1{margin-top:2px;font-size:32px;font-weight:600;letter-spacing:-.05em;line-height:1.05}
.seg{display:flex;flex-wrap:wrap;gap:6px;margin-top:16px}
.seg button{min-height:40px;padding:0 16px;border-radius:99px;background:var(--card);font-size:14.5px;font-weight:600;color:var(--mut);transition:background .2s,color .2s}
.seg button.on{background:var(--dark);color:#fbf8f0}
.find{display:block;width:100%;height:48px;margin-top:10px;padding:0 18px;border:0;border-radius:16px;background:var(--card);outline:none}
.find::placeholder{color:var(--mut)}
.list{display:grid;gap:6px;padding:14px 16px calc(150px + var(--sb))}
.row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;min-height:66px;padding:10px 18px;border-radius:20px;background:var(--card)}
.row--img{grid-template-columns:48px minmax(0,1fr) auto;padding-left:10px}
.row img{width:48px;height:48px;border-radius:14px;object-fit:cover}
.row b{display:block;font-size:16px;font-weight:600;letter-spacing:-.02em;line-height:1.2}
.row small{display:inline-block;margin-top:3px;font-size:13.5px;color:var(--mut)}
.row small.w{padding:2px 9px;border-radius:99px;background:var(--wood-s);color:var(--wood);font-weight:600}
.row em{font-style:normal;font-size:22px;font-weight:600;letter-spacing:-.04em;white-space:nowrap;text-align:right}
.row em i{font-style:normal;font-size:14px;color:var(--mut);font-weight:500;letter-spacing:0}
.row em.neg{color:var(--wood)}
.empty{padding:40px 24px;text-align:center;color:var(--mut)}
.empty b{display:block;margin-bottom:6px;font-family:'Cormorant',Georgia,serif;font-size:30px;font-weight:500;color:var(--ink)}
.fade{position:fixed;left:0;right:0;bottom:0;height:calc(130px + var(--sb));background:linear-gradient(180deg,transparent,var(--paper) 60%);pointer-events:none}
.fab{position:fixed;right:max(18px,calc(50% - 262px));bottom:calc(94px + var(--sb));display:flex;align-items:center;height:56px;padding:0 24px;border-radius:99px;font-size:16px;font-weight:600}
.nav{position:fixed;left:50%;bottom:calc(20px + var(--sb));transform:translateX(-50%);display:flex;gap:4px;padding:6px;border-radius:99px;background:#fbf8f0cc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 18px 26px -18px #6f6b5f99}
.nav button{height:44px;padding:0 20px;border-radius:99px;font-size:14.5px;font-weight:600;color:var(--mut)}
.nav button.on{background:var(--dark);color:#fbf8f0}

/* листы-формы */
.sheet{position:fixed;inset:0;z-index:20;display:flex;flex-direction:column;background:var(--paper);animation:up .35s var(--ease)}
@keyframes up{from{transform:translateY(24px);opacity:0}}
.sheet__h{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:calc(16px + var(--st)) 20px 10px}
.sheet__h h2{font-size:26px;font-weight:600;letter-spacing:-.04em}
.sheet__x{min-height:40px;padding:0 16px;border-radius:99px;background:var(--card);font-size:14.5px;font-weight:600;color:var(--mut)}
.sheet__b{flex:1;overflow-y:auto;padding:6px 16px 20px;max-width:560px;width:100%;margin:0 auto}
.sheet__f{padding:12px 16px calc(16px + var(--sb));max-width:560px;width:100%;margin:0 auto}
.sum{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:12px;padding:0 6px;color:var(--mut)}
.sum b{font-size:30px;font-weight:600;letter-spacing:-.05em;color:var(--ink)}
.sum b i{font-style:normal;font-size:17px;color:var(--mut);font-weight:500}
.lab{margin:18px 6px 8px;font-size:14px;font-weight:600;color:var(--mut)}
.ln{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:8px 10px;margin-bottom:6px;padding:14px 12px 12px 18px;border-radius:20px;background:var(--card)}
.ln b{font-size:16px;font-weight:600;align-self:center}
.ln__x{width:36px;height:36px;border-radius:50%;background:var(--paper);font-size:20px;line-height:1;color:var(--mut)}
.ln__f{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
.ln__f--1{grid-template-columns:1fr}
.inp{display:flex;align-items:center;gap:8px;height:50px;padding:0 14px;border-radius:14px;background:var(--paper)}
.inp:focus-within{box-shadow:0 0 0 2px var(--sage)}
.inp input{width:100%;min-width:0;border:0;background:none;outline:none;font-size:18px;font-weight:600;text-align:right}
.inp span{font-size:14px;color:var(--mut);white-space:nowrap}
.inp--t input{text-align:left;font-size:17px}
.add{display:flex;align-items:center;justify-content:center;width:100%;min-height:54px;border-radius:18px;background:var(--sage-s);color:var(--sage-d);font-size:16px;font-weight:600}
.acts{display:grid;gap:8px;padding:6px 0}
.acts button{display:grid;gap:2px;text-align:left;padding:18px 20px;border-radius:20px;background:var(--card)}
.acts b{font-size:18px;font-weight:600;letter-spacing:-.02em}
.acts small{font-size:14px;color:var(--mut)}
.doc{display:grid;gap:4px;padding:14px 18px;border-radius:20px;background:var(--card)}
.doc__h{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.doc__h b{font-size:16px;font-weight:600}
.doc__h em{font-style:normal;font-size:17px;font-weight:600;white-space:nowrap}
.doc small{font-size:13.5px;color:var(--mut);line-height:1.4}
#toast{position:fixed;left:50%;top:calc(14px + var(--st));z-index:50;transform:translate(-50%,-16px);max-width:calc(100vw - 32px);padding:13px 18px;border-radius:16px;background:var(--dark);color:#fbf8f0;font-size:15px;text-align:center;opacity:0;pointer-events:none;transition:opacity .25s,transform .3s var(--ease)}
#toast.on{opacity:1;transform:translate(-50%,0)}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* снимки накладных и состояние хранилища */
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips:empty{display:none}
.chips span,.chips>button{display:inline-flex;align-items:center;gap:6px;min-height:36px;max-width:100%;padding:0 12px;border-radius:99px;background:var(--sage-s);color:var(--sage-d);font-size:14px;font-weight:600;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.chips span button{display:grid;place-items:center;width:28px;height:28px;margin-right:-8px;font-size:20px;line-height:1;color:var(--sage-d)}
.chips span.wait{background:var(--wood-s);color:var(--wood)}
#lf-f{margin-bottom:8px}
.doc .chips{margin-top:6px}
.add--w{background:var(--card);color:var(--ink);cursor:pointer}
.shot{display:block;width:100%;height:auto;border-radius:16px;background:var(--card)}
.note{display:grid;gap:4px;margin-top:14px;padding:16px 20px;border-radius:20px;background:var(--card);font-size:14px;color:var(--mut)}
.note:empty{display:none}
.note b{font-size:15px;font-weight:600;color:var(--ink)}
.note span.w{color:var(--wood);font-weight:600}

/* приёмка по снимку */
#lf-read{margin-top:8px}
#lf-read[hidden]{display:none}
.note--w{margin:10px 0 0}
.ln .hint{grid-column:1/-1;margin-top:-4px;font-size:13.5px;color:var(--wood);font-weight:600;line-height:1.35}
.ln--todo{background:var(--wood-s)}
.ln--todo .add{min-height:46px;font-size:15px;background:var(--card);color:var(--ink)}
.ln--todo .add--w{background:#fbf8f08c}
input[type=date]{min-height:24px;font-size:16px}
.add--all{margin-bottom:6px;background:var(--wood-s);color:var(--wood)}
