*{box-sizing:border-box}
body{margin:0;background:#F6F4EF;color:#1F2421;font-family:Manrope,system-ui,sans-serif}
.app{max-width:480px;margin:0 auto;min-height:100dvh}
.page{padding:24px 20px 110px;display:flex;flex-direction:column;gap:14px}
.page.center{align-items:center;justify-content:center;min-height:100dvh;text-align:center;font-weight:700}
h1{margin:0;font-size:28px;font-weight:800}
h2{margin:6px 0 0;font-size:17px;font-weight:800}
.muted{color:#5B625E;font-size:13px;font-weight:600}
.note{color:#5B625E;font-size:13px}
.row{display:flex;justify-content:space-between;align-items:center;gap:10px}
.two{display:flex;gap:10px}.two>label{flex:1}
.card{background:#fff;border-radius:20px;padding:18px;display:flex;flex-direction:column;gap:12px}
.big{font-size:40px;font-weight:800;line-height:1.1}
.cat{font-size:14px;font-weight:600}
.track{height:8px;border-radius:4px;background:#E4E0D6;margin-top:6px}
.fill{height:8px;border-radius:4px;background:#1F6B4F}
.item{background:#fff;border-radius:14px;padding:14px;min-height:60px;display:flex;justify-content:space-between;align-items:center;font-size:15px}
label{display:block;font-size:12px;font-weight:600;color:#5B625E}
input,select{display:block;width:100%;min-height:46px;margin-top:3px;border:1px solid #C9C5B9;border-radius:10px;padding:0 10px;background:#fff;font:600 15px Manrope,system-ui,sans-serif;color:#1F2421}
button{font-family:inherit;color:inherit;cursor:pointer}
.btn{min-height:52px;border:1px solid #C9C5B9;border-radius:26px;background:#fff;font-size:16px;font-weight:700}
.btn.primary{background:#1F6B4F;border:0;color:#fff;font-weight:800}
.btn:disabled{opacity:.5}
.link{border:0;background:none;min-height:44px;color:#1F6B4F;font-weight:700;font-size:14px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{border-radius:16px;padding:6px 12px;font-size:13px;font-weight:700}
.chip.good{background:#DDEFE5;color:#14513B}.chip.warn{background:#FCEFD2;color:#7A4A00}
p.warn{color:#7A4A00;font-weight:700}
.lines{padding:6px 14px;gap:0}
.line{border:0;background:none;text-align:left;min-height:56px;padding:8px 0;border-bottom:1px solid #EDEAE1;display:flex;justify-content:space-between;align-items:center;font-size:14px;width:100%}
.line.flag{background:#FCEFD2;margin:0 -10px;padding:8px 10px;border-radius:10px;width:calc(100% + 20px)}
.prev{width:100%;max-height:52dvh;object-fit:contain;border-radius:14px;background:#fff}
.ph{height:240px;border:2px dashed #9AA19C;display:flex;align-items:center;justify-content:center;color:#5B625E;font-weight:600}
.thumbs{display:flex;gap:10px;align-items:center;overflow-x:auto}
.th{width:52px;height:68px;object-fit:cover;border-radius:10px;border:2px solid transparent}.th.on{border-color:#1F6B4F}
.add{min-height:68px;padding:0 16px;border:1px dashed #1F6B4F;border-radius:10px;background:#fff;color:#1F6B4F;font-weight:700;font-size:14px;flex:none}
.bar{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;height:76px;padding:0 12px env(safe-area-inset-bottom);background:#fff;border-top:1px solid #E4E0D6;display:flex;align-items:center;justify-content:space-around}
.tab{border:0;background:none;min-width:80px;min-height:56px;font-size:13px;font-weight:600;color:#5B625E}.tab.on{color:#1F6B4F;font-weight:800}
.scan{min-height:52px;padding:0 28px;border:0;border-radius:26px;background:#1F6B4F;color:#fff;font-size:15px;font-weight:800}
.scrim{position:fixed;inset:0;background:rgba(31,36,33,.6);display:flex;align-items:flex-end;justify-content:center;z-index:5}
.sheet{width:100%;max-width:480px;background:#F6F4EF;border-radius:28px 28px 0 0;padding:20px 20px 24px;display:flex;flex-direction:column;gap:12px}
.opt{display:flex;flex-direction:column;gap:3px;text-align:left;min-height:84px;padding:14px 16px;border:1px solid #C9C5B9;border-radius:18px;background:#fff;font-size:16px}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:96px;max-width:90%;background:#1F2421;color:#fff;padding:12px 16px;border-radius:14px;font-size:14px;font-weight:600;z-index:9}
.login{min-height:100dvh;justify-content:center}
[hidden]{display:none!important}
.prev.small{max-height:180px}
.danger{color:#A33A2B}
.bbtn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:78px;min-height:56px;border-radius:18px;border:0;font-size:12px;font-weight:800}
.bbtn.fill{background:#1F6B4F;color:#fff}
.bbtn.out{background:#fff;border:1.5px solid #1F6B4F;color:#1F6B4F}
.tab{min-width:60px}
.two{align-items:flex-end}
