/* Вход, камера, связь */
/* ---------- рабочая версия: вход, камера, сеть ---------- */
.btn svg{width:16px;height:16px;vertical-align:-3px;margin-right:6px}
.btn.needbtn{border-color:var(--bad);color:var(--bad)}
.mebtn{cursor:pointer;font-weight:600;color:var(--ink)}
.mark.big{width:44px;height:44px;border-radius:12px;font-size:22px}
.login{max-width:440px;margin:6vh auto 0;width:100%}
.lerr{color:var(--bad);font-weight:600;font-size:14px;min-height:1em}
.netbar{position:fixed;left:0;right:0;bottom:calc(62px + env(safe-area-inset-bottom,0px));z-index:8;background:var(--warn);color:#1b1300;font-size:13px;font-weight:600;text-align:center;padding-block:7px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
@media (min-width:900px){.netbar{bottom:0}}
body:has(.netbar:not([hidden])) .aifab{bottom:calc(112px + env(safe-area-inset-bottom,0px))}
@media (min-width:900px){body:has(.netbar:not([hidden])) .aifab{bottom:60px}}
.pinbox{border:2px dashed var(--accent);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;background:var(--accent-soft)}
.camwrap{position:fixed;inset:0;z-index:50;background:#000;display:flex;flex-direction:column}
.camwrap video{flex:1;width:100%;height:100%;object-fit:cover;min-height:0}
.camtop{position:absolute;left:0;right:0;top:0;padding:calc(12px + env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) 12px max(16px,env(safe-area-inset-left,0px));color:#fff;font-weight:600;font-size:15px;background:linear-gradient(rgba(0,0,0,.6),transparent);text-align:center}
.cambar{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px max(20px,env(safe-area-inset-right,0px)) calc(22px + env(safe-area-inset-bottom,0px)) max(20px,env(safe-area-inset-left,0px));background:linear-gradient(transparent,rgba(0,0,0,.7))}
.cambar .btn{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.35);min-width:72px}
.camspacer{width:72px}
.camhint{color:#fff;font-weight:600;font-size:14px}
.shutter{width:72px;height:72px;border-radius:50%;border:5px solid #fff;background:rgba(255,255,255,.25)}
.shutter:active{background:#fff}
.qrframe{position:absolute;left:50%;top:45%;width:min(64vw,300px);aspect-ratio:1;max-width:100%;transform:translate(-50%,-50%);border:3px solid #fff;border-radius:18px;box-shadow:0 0 0 100vmax rgba(0,0,0,.35)}
@media (max-width:520px){ .brand .obj{display:none} .top{gap:8px} .sel{max-width:150px} }
.syncchip{cursor:pointer;font-weight:600;font-size:13px;white-space:nowrap}
.syncchip.warn{background:var(--warn-soft);color:var(--warn);border-color:transparent}
.syncchip.bad{background:var(--bad-soft);color:var(--bad);border-color:transparent}
.syncchip.busy{background:var(--accent-soft);color:var(--accent);border-color:transparent}
