/* assets/css/auth.css - login page and public ID-card verification page */
:root{--bur:#6c0101;--burd:#3f0000;--gold:#c5a059;--goldl:#e8d6a6;--ink:#231615;--mut:#675752;--line:#e9e4e2;
--ok:#1f7a3d;--okb:#e8f5ec;--warn:#9a6700;--warnb:#fff4d6;--bad:#a3231a;--badb:#fde8e6;
--hf:Italiana,Georgia,serif;--bf:Montserrat,system-ui,-apple-system,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:#fff;color:var(--ink);font:400 15px/1.6 var(--bf);-webkit-text-size-adjust:100%}
h1,h2,p{margin:0}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}

/* ---------- login ---------- */
.portal-container{min-height:100vh;display:grid;grid-template-rows:auto 1fr}
.brand-panel{background:var(--bur);color:#fff;padding:26px 22px 30px;display:flex;flex-direction:column;gap:14px}
.brand-logo img{height:64px;width:auto}
.brand-text h1{font:400 clamp(34px,8vw,56px)/1.05 var(--hf);color:#fff;margin-bottom:12px}
.brand-text p{color:var(--goldl);font-size:14px;max-width:44ch;display:none}
.brand-footer{font-size:12px;color:#d9c18a;display:none}
.auth-panel{padding:34px 22px 44px;display:flex;flex-direction:column;justify-content:center;max-width:480px;width:100%;margin:0 auto}
.auth-header h2{font:400 clamp(32px,7vw,44px)/1.1 var(--hf);color:var(--bur);margin-bottom:8px}
.auth-header p{color:var(--mut);margin-bottom:26px}
.form-group{margin-bottom:18px}
.form-group label{display:block;font:600 13px var(--bf);color:var(--bur);margin-bottom:8px}
.form-group input{width:100%;min-height:50px;padding:12px 16px;border:1.5px solid #d9d2cf;border-radius:12px;font:400 16px var(--bf);color:var(--ink);background:#fff}
.form-group input:focus{outline:0;border-color:var(--bur);box-shadow:0 0 0 3px rgba(197,160,89,.4)}
.btn-authorize{width:100%;min-height:52px;border:0;border-radius:999px;background:var(--bur);color:#fff;font:600 15px var(--bf);cursor:pointer;transition:background .2s}
.btn-authorize:hover{background:var(--burd)}
.err{padding:13px 16px;border-radius:12px;background:var(--badb);border:1px solid #f3c7c2;color:var(--bad);font-size:14px;margin-bottom:20px}
@media(min-width:900px){
  .portal-container{grid-template-columns:1.05fr .95fr;grid-template-rows:1fr}
  .brand-panel{padding:56px;justify-content:space-between;gap:0}
  .brand-logo img{height:96px}
  .brand-text p,.brand-footer{display:block}
  .auth-panel{padding:56px;max-width:none;margin:0}
  .auth-panel>*{max-width:420px}
}

/* ---------- verify (ID card scan) ---------- */
.v-shell{max-width:480px;margin:0 auto;padding:22px 16px 40px}
.v-brand{display:flex;align-items:center;gap:14px;margin-bottom:12px}
.v-brand img{height:56px;width:auto;background:var(--bur);border-radius:12px;padding:4px 8px}
.v-brand-name{font:400 24px/1.1 var(--hf);color:var(--bur)}
.v-lang{display:flex;gap:8px;margin-bottom:18px}
.v-lang a{padding:7px 14px;border:1.5px solid var(--line);border-radius:999px;font:600 13px var(--bf);color:var(--mut);text-decoration:none}
.v-lang a.on{background:var(--bur);border-color:var(--bur);color:#fff}
.v-card{border:1px solid var(--line);border-radius:22px;overflow:hidden;background:#fff}
.v-status{padding:28px 22px;text-align:center}
.v-status h1{font:400 clamp(30px,8vw,40px)/1.1 var(--hf);margin:12px 0 8px}
.v-status p{font-size:14px}
.v-status-icon{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;margin:0 auto;background:#fff}
.v-status.ok{background:var(--okb);color:var(--ok)}
.v-status.warn{background:var(--warnb);color:var(--warn)}
.v-status.bad{background:var(--badb);color:var(--bad)}
.v-person{text-align:center;padding:26px 22px 8px}
.v-photo{width:112px;height:112px;border-radius:50%;object-fit:cover;margin:0 auto 14px;border:3px solid var(--gold)}
.v-initials{width:112px;height:112px;border-radius:50%;background:var(--bur);color:var(--goldl);display:grid;place-items:center;margin:0 auto 14px;font:400 40px var(--hf);border:3px solid var(--gold)}
.v-name{font:400 32px/1.1 var(--hf);color:var(--bur)}
.v-role{color:var(--mut);margin-top:6px}
.v-rows{margin:18px 22px 6px;padding:0}
.v-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line);font-size:14px}
.v-row dt{color:var(--mut)}.v-row dd{margin:0;font-weight:600;text-align:right}
.v-flag{margin:12px 22px;padding:12px 16px;border-radius:12px;background:var(--warnb);color:var(--warn);font-weight:600;font-size:14px}
.v-actions{display:grid;gap:10px;padding:18px 22px 24px}
.v-btn-primary,.v-btn-ghost{display:flex;align-items:center;justify-content:center;min-height:48px;border-radius:999px;font:600 14px var(--bf);text-decoration:none;border:1.5px solid var(--bur)}
.v-btn-primary{background:var(--bur);color:#fff}
.v-btn-ghost{color:var(--bur)}
.v-note{margin-top:18px;font-size:12px;color:var(--mut);text-align:center}
.v-time{margin-top:6px;font-size:12px;color:var(--mut);text-align:center}
