/* 小普择校 · 扫码登录页（自建版式：左海报 + 右登录卡，配色沿用应用橄榄绿体系） */
:root{
  --navy:#5f6a17; --navy-d:#3d450e; --amber:#a7b338; --amber-l:#f5f6e3;
  --ink:#2c3020; --muted:#73776a; --line:#e4e6d9; --bg:#f7f8f1;
}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"PingFang SC","Microsoft YaHei","Noto Sans SC","Hiragino Sans GB",sans-serif;
  display:flex;align-items:center;justify-content:center;padding:28px}
.panel{width:100%;max-width:1040px;display:grid;grid-template-columns:1.05fr 1fr;background:#fff;border-radius:22px;overflow:hidden;
  box-shadow:0 18px 50px rgba(45,55,20,.13),0 2px 6px rgba(45,55,20,.05)}
.poster{position:relative;background:#e9efe0;min-height:520px}
.poster img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 22%}
.poster .tag{position:absolute;left:18px;bottom:16px;background:rgba(255,255,255,.88);border-radius:999px;padding:6px 14px;
  font-size:12px;color:var(--navy-d);font-weight:600}
.login{padding:44px 46px 32px;display:flex;flex-direction:column;align-items:center;text-align:center}
.brandrow{display:flex;align-items:center;gap:11px;margin-bottom:8px}
/* V183 · 登录页品牌区换放大镜 logo（胡晟伟指定用 logo-square，文字版「普」方块退役） */
.brand-ico{width:50px;height:50px;border-radius:14px;background:#fff;object-fit:contain;display:block;box-shadow:0 4px 12px rgba(61,69,14,.18);flex:none}
.brandrow h1{font-size:22px;font-weight:700;margin:0;letter-spacing:.3px}
.brandrow .sub{font-size:12px;color:var(--muted);margin-top:2px;text-align:left}
.h20{height:18px}
.title{font-size:18px;font-weight:700;margin:0 0 22px;color:var(--navy-d)}
.qrbox{position:relative;width:232px;height:232px;border:1px solid var(--line);border-radius:14px;background:#fff;
  display:flex;align-items:center;justify-content:center;overflow:hidden}
.qrbox img{width:198px;height:198px;display:block}
.mask{position:absolute;inset:0;background:rgba(255,255,255,.94);display:none;flex-direction:column;align-items:center;
  justify-content:center;gap:11px;padding:0 14px;font-size:13px;color:var(--muted);line-height:1.65}
.qrbox.scanned .mask,.qrbox.expired .mask,.qrbox.ok .mask{display:flex}
.qrbox.ok .mask{background:rgba(245,246,227,.96)}
.hint{margin-top:20px;font-size:14px;line-height:1.7}
.hint b{color:var(--navy-d)}
.hint .st{display:block;font-size:12px;color:#a3a79a;margin-top:4px}
.hint .st a{color:var(--navy);cursor:pointer;text-decoration:none;border-bottom:1px solid #cfd6b3}
.foot{margin-top:auto;padding-top:26px;font-size:11.5px;color:#a3a79a;line-height:1.85}
.foot a{color:var(--muted)}
.err{margin-top:12px;font-size:12.5px;color:#b60005;display:none}
.err.show{display:block}
@media (max-width:760px){
  body{padding:14px;align-items:flex-start}
  .panel{grid-template-columns:1fr;border-radius:16px}
  .poster{min-height:224px;order:-1}
  .login{padding:26px 20px 22px}
  .qrbox{width:198px;height:198px}.qrbox img{width:168px;height:168px}
}
