:root{--g:#0f5132;--g2:#198754;--bg:#f3f5f4;--line:#d9dfdc;--txt:#1b1f1d;--mut:#66706b;--warn:#8a5a00;--wb:#fff4d6;--red:#b02a37}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,label,input,select{touch-action:manipulation}
body{margin:0;min-height:100dvh;overscroll-behavior-y:none;font:16px/1.4 -apple-system,system-ui,Segoe UI,Roboto,sans-serif;background:var(--bg);color:var(--txt);padding-bottom:env(safe-area-inset-bottom)}
header{position:sticky;top:0;z-index:5;background:var(--g);color:#fff;padding:calc(env(safe-area-inset-top) + 8px) calc(env(safe-area-inset-right) + 12px) 0 calc(env(safe-area-inset-left) + 12px)}
h1 small{font-size:11px;font-weight:400;color:#cfe3d8;letter-spacing:0}
h1{margin:0 0 6px;font-size:18px;letter-spacing:.5px}
nav{display:flex;gap:4px}
nav button{flex:1;min-height:44px;background:none;border:0;color:#cfe3d8;padding:10px 0;font-size:15px;border-bottom:3px solid transparent}
nav button.on{color:#fff;border-color:#fff;font-weight:600}
main{max-width:640px;margin:0 auto;padding:12px calc(env(safe-area-inset-right) + 12px) calc(env(safe-area-inset-bottom) + 24px) calc(env(safe-area-inset-left) + 12px)}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px;margin-bottom:12px}
button{font:inherit;cursor:pointer}
.kind{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:12px}
.kind button{padding:16px 0;border-radius:10px;border:2px solid var(--line);background:#fff;font-size:17px;font-weight:600}
.kind button.on{border-color:var(--g2);background:#e7f4ec;color:var(--g)}
.kind button{color:var(--txt);min-height:52px}
.alc button{padding:12px 0;font-size:15px;min-height:46px}
.alc button[data-alc=da].on{border-color:#b26a00;background:#fff4d6;color:#7a4a00}
.camera span{display:block;text-align:center;padding:22px 0;border:2px dashed var(--g2);border-radius:10px;color:var(--g);font-weight:600;font-size:17px}
.small span{display:block;text-align:center;color:var(--mut);font-size:15px;padding:12px 0;text-decoration:underline}
.primary{width:100%;padding:15px;border:0;border-radius:10px;background:var(--g2);color:#fff;font-size:17px;font-weight:600;margin-top:8px}
.primary:disabled{background:#a9c7b6}
.sec{width:100%;padding:12px;border:1px solid var(--line);border-radius:10px;background:#fff;margin-top:8px}
.hint{color:var(--mut);font-size:13px;margin:8px 0 0}
#thumbs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
#thumbs div{position:relative}
#thumbs img{width:60px;height:60px;object-fit:cover;border-radius:8px;border:1px solid var(--line)}
#thumbs img{width:72px;height:72px}
#thumbs button{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;border:0;background:var(--red);color:#fff;font-size:14px;line-height:1}
.spin{width:36px;height:36px;border:4px solid #cfe3d8;border-top-color:var(--g2);border-radius:50%;animation:s 1s linear infinite;margin:6px auto}
@keyframes s{to{transform:rotate(360deg)}}
#busy{text-align:center}
.big{font-size:34px;font-weight:700;letter-spacing:1px;color:var(--g);text-align:center;margin:6px 0;user-select:all}
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:12px;font-weight:600}
.ok{background:#d1e7dd;color:var(--g)}.new{background:#cfe2ff;color:#084298}.wr{background:var(--wb);color:var(--warn)}
.warn{background:var(--wb);color:var(--warn);border-radius:8px;padding:8px 10px;font-size:14px;margin:8px 0}
dl{display:grid;grid-template-columns:max-content 1fr;gap:4px 10px;margin:8px 0;font-size:14px}
dt{color:var(--mut)}dd{margin:0;word-break:break-word}
label.f{display:block;font-size:13px;color:var(--mut);margin-top:8px}
label.f input,label.f select{display:block;width:100%;margin-top:3px;padding:10px;min-height:44px;border:1px solid var(--line);border-radius:8px;font-size:16px;color:var(--txt);background:#fff;-webkit-appearance:none;appearance:none}
label.f select{background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%2366706b' stroke-width='2'/%3E%3C/svg%3E") no-repeat right 12px center;padding-right:32px}
.cand{border:1px solid var(--line);border-radius:8px;padding:8px 10px;margin-top:6px;font-size:14px}
.cand b{color:var(--g)}
.row{display:flex;justify-content:space-between;align-items:center;gap:8px}
.mut{color:var(--mut);font-size:13px}
.err{color:var(--red)}
a.btn{display:inline-block;padding:8px 12px;border-radius:8px;background:var(--g2);color:#fff;text-decoration:none;font-size:14px}
.jr{font-size:13px;border-bottom:1px solid var(--line);padding:6px 0}
.camera.off span{opacity:.4}
#who{font-size:13px;color:#cfe3d8}#who button{background:none;border:1px solid #cfe3d8;color:#fff;border-radius:6px;padding:2px 8px;margin-left:6px;font-size:12px}
.chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.chips button{border:1px solid var(--line);background:#fff;border-radius:20px;padding:6px 12px;font-size:14px}
.chips button.on{background:var(--g2);color:#fff;border-color:var(--g2)}
.chk{display:flex;align-items:center;gap:8px;margin-top:10px;font-size:15px;min-height:44px}
.chk input{width:22px;height:22px;accent-color:var(--g2)}
.ur{border-bottom:1px solid var(--line);padding:8px 0;font-size:14px}
.ur button,.mini{border:1px solid var(--line);background:#fff;border-radius:6px;padding:8px 12px;min-height:38px;font-size:14px;margin:6px 6px 0 0;color:var(--txt)}
.off-u{opacity:.5}
.lot{margin:10px 0;padding:10px;border:2px dashed #2e7d32;border-radius:10px}
.lot .row{gap:8px}.lot input{flex:1;font-size:18px;font-weight:600;letter-spacing:1px}
.lot .row button{width:auto;margin:0}
.ph{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0}.ph img{width:70px;height:70px;object-fit:cover;border-radius:6px}.ph .mut{width:100%}
.sec{color:var(--txt)}
a.btn{white-space:nowrap}
#who{display:flex;align-items:center;gap:4px;max-width:60vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#who button{min-height:32px}
@media (max-width:360px){nav button{font-size:13px}.big{font-size:28px}.kind button{font-size:15px}}
