.fab{position:fixed;right:16px;bottom:calc(74px + env(safe-area-inset-bottom));z-index:9;width:56px;height:56px;border-radius:50%;
  border:0;background:var(--accent);color:var(--accent-text);font-size:30px;line-height:1;box-shadow:0 4px 14px rgba(0,0,0,.25);cursor:pointer}
.fab:active{transform:scale(.94)}
.ov{position:fixed;inset:0;z-index:30;background:var(--bg2);display:none;flex-direction:column}
.ov.on{display:flex}
.ovh{display:flex;align-items:center;gap:10px;padding:12px;background:var(--bg2);border-bottom:1px solid var(--line)}
.ovh .back{border:0;background:none;color:var(--link);font-size:16px;padding:6px 8px;cursor:pointer}
.ovh b{font-size:17px}
.ovb{flex:1;overflow-y:auto;padding:12px;-webkit-overflow-scrolling:touch}
.ovf{padding:10px 12px calc(10px + env(safe-area-inset-bottom));background:var(--bg2);border-top:1px solid var(--line);display:flex;gap:8px}
.pbtn{flex:1;border:0;border-radius:12px;padding:14px;font-size:16px;font-weight:600;background:var(--accent);color:var(--accent-text);cursor:pointer}
.pbtn.sec{background:var(--card);color:var(--link)}
.pbtn:disabled{opacity:.5}
.menu{display:grid;gap:8px}
.menu button{display:flex;align-items:center;gap:12px;border:0;background:var(--card);color:var(--text);padding:14px;border-radius:14px;font-size:16px;text-align:left;cursor:pointer}
.menu .ic{font-size:22px;width:28px;text-align:center}
.menu small{display:block;color:var(--hint);font-size:12px}
.fld{display:block;margin:0 0 12px}
.fl{display:block;color:var(--hint);font-size:12.5px;margin:0 2px 4px}
.fh{display:block;color:var(--hint);font-size:12px;margin:3px 2px 0}
.fld input,.fld select,.rr input,.rr select{width:100%;border:1px solid var(--line);background:var(--card);color:var(--text);
  border-radius:10px;padding:11px 12px;font-size:16px;font-family:inherit;min-height:44px}
.fld select,.rr select{appearance:auto}
.calc{background:var(--card);border-radius:10px;padding:10px 12px;margin:-4px 0 12px;font-size:14px;color:var(--hint)}
.calc b{color:var(--text)}
.rows{margin-bottom:8px}
.row{background:var(--card);border-radius:12px;padding:10px;margin-bottom:8px}
.rr{display:flex;gap:6px;align-items:center}
.rr select{flex:1.4;min-width:0}
.rr input{flex:1;min-width:0}
.rr .x{flex:none;border:0;background:none;color:var(--neg);font-size:20px;padding:6px;cursor:pointer}
.chk{display:flex;gap:8px;align-items:center;font-size:13px;color:var(--hint);margin:8px 2px 2px}
.chk input{width:18px;height:18px;min-height:0}
.lot{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-top:8px;font-size:13px}
.lot span{flex:1;color:var(--hint)}
.lot input{width:110px;flex:none;border:1px solid var(--line);background:var(--bg2);color:var(--text);border-radius:8px;padding:8px;font-size:15px;min-height:0}
.lot a{color:var(--link);cursor:pointer;margin-left:6px;white-space:nowrap}
.smallbtn{border:0;background:var(--card);color:var(--link);padding:9px 14px;border-radius:10px;font-size:14px;cursor:pointer;margin:0 6px 12px 0}
.err{background:#fde7e7;color:#8a1c1c;border-radius:10px;padding:10px 12px;margin:0 0 12px;font-size:14px}
.warn{background:#fff4d6;color:#7a5a00;border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:14px}
.ok{background:#e4f6ea;color:#14663a;border-radius:10px;padding:10px 12px;margin:0 0 10px;font-size:14px}
.pv{background:var(--card);border-radius:14px;padding:14px;font-size:15px;line-height:1.5}
.pv div{padding:1px 0}
.pv .ind{padding-left:12px;color:var(--hint);font-size:13.5px}
.uop{display:flex;align-items:center;gap:10px;background:var(--card);border-radius:12px;padding:12px;margin-bottom:8px;font-size:14px}
.uop span{flex:1}
.uop small{display:block;color:var(--hint);font-size:12px}
.uop button{flex:none;border:0;background:#fde7e7;color:#8a1c1c;padding:8px 12px;border-radius:10px;font-size:14px;cursor:pointer}
.uop button:disabled{opacity:.4}
@media (prefers-color-scheme: dark){
  .err{background:#4a2020;color:#ffb4b4}.warn{background:#4a3d14;color:#f3d98a}.ok{background:#173d27;color:#9fe3b9}
  .uop button{background:#4a2020;color:#ffb4b4}
}
