:root{--navy:#082b63;--blue:#0b3d91;--gold:#e6b325;--soft:#f4f7fb;--line:#dfe6ef;--ink:#172033;--muted:#667085;--ok:#127a49;--danger:#b42318}*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;background:var(--soft);color:var(--ink)}header{background:linear-gradient(135deg,var(--navy),var(--blue));color:#fff;padding:20px 0}.wrap{width:min(1120px,calc(100% - 34px));margin:auto}.head{display:flex;justify-content:space-between;align-items:center;gap:22px}.brand{display:flex;gap:14px;align-items:center}.brand img{width:58px}.brand h1{font-size:1.2rem;margin:0}.brand p{margin:4px 0 0;color:#dbe7fa}.links{display:flex;gap:10px}.btn{border:0;border-radius:999px;padding:11px 17px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;justify-content:center;background:var(--gold);color:var(--navy)}.btn.secondary{background:#fff;color:var(--navy)}main{padding:34px 0 70px}.hero{background:#fff;border:1px solid var(--line);border-radius:24px;padding:28px;display:flex;justify-content:space-between;align-items:center;gap:25px;box-shadow:0 12px 35px rgba(25,49,87,.08)}.hero h2{margin:0;color:var(--navy)}.hero p{color:var(--muted)}.login{display:flex;gap:10px;flex-wrap:wrap}.login input{border:1px solid var(--line);border-radius:12px;padding:11px 13px}.section{margin-top:24px}.section h2{color:var(--navy)}.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:22px;box-shadow:0 8px 25px rgba(25,49,87,.05)}.card h3{color:var(--navy);margin-top:0}.facts{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.fact{background:#f7f9fc;border-radius:13px;padding:12px}.fact span{display:block;color:var(--muted);font-size:.8rem}.notices{display:grid;gap:12px}.notice{background:#fff;border:1px solid var(--line);border-left:5px solid var(--gold);border-radius:15px;padding:16px}.qr-form{display:grid;grid-template-columns:repeat(2,1fr);gap:13px}.qr-form label{font-weight:800;color:var(--navy);display:grid;gap:6px}.qr-form input,.qr-form select{border:1px solid var(--line);border-radius:12px;padding:11px;font:inherit}.full{grid-column:1/-1}.qr-result{display:flex;gap:18px;align-items:center;margin-top:16px}.qr-result img{width:180px;border:1px solid var(--line);border-radius:14px}.empty{color:var(--muted);font-style:italic}.message{margin-top:10px;color:var(--danger)}@media(max-width:760px){.head,.hero{align-items:flex-start;flex-direction:column}.grid,.qr-form,.facts{grid-template-columns:1fr}.full{grid-column:auto}.login{flex-direction:column;width:100%}.login input,.login .btn{width:100%}.links{flex-wrap:wrap}}
.offline-banner{background:#fff3cd;color:#664d03;padding:10px 4vw;text-align:center;font-weight:700;border-bottom:1px solid #ffecb5}#installApp{background:#d6a318;color:#10254a}

/* Mobile application enhancements */
.mobile-install-card{margin-top:20px}
.mobile-install-card ol{padding-left:20px;line-height:1.7}
.mobile-bottom-nav{display:none}
@media(max-width:760px){
  header{padding-top:calc(12px + var(--safe-top))}
  main{padding:20px 0 calc(92px + var(--safe-bottom))}
  .wrap{width:calc(100% - 22px)}
  .head{gap:14px}
  .brand img{width:64px;height:54px;object-fit:contain;background:#fff;border-radius:10px;padding:2px}
  .brand h1{font-size:1rem}
  .brand p{font-size:.86rem}
  .hero,.card{padding:18px}
  .hero h2{font-size:1.55rem}
  .links{display:grid;grid-template-columns:1fr 1fr}
  .links .btn{padding:10px 8px;font-size:.86rem}
  .qr-result{flex-direction:column;align-items:flex-start}
  .qr-result img{width:min(100%,260px);align-self:center}
  .notice p{overflow-wrap:anywhere}
  .mobile-bottom-nav{
    position:fixed;display:grid;grid-template-columns:repeat(4,1fr);
    left:0;right:0;bottom:0;z-index:40;
    padding:7px max(6px,var(--safe-right)) calc(7px + var(--safe-bottom)) max(6px,var(--safe-left));
    background:rgba(255,255,255,.97);border-top:1px solid var(--line);
    box-shadow:0 -8px 25px rgba(16,38,74,.12)
  }
  .mobile-bottom-nav a{
    min-height:48px;display:grid;place-items:center;text-align:center;
    color:var(--navy);text-decoration:none;font-weight:800;font-size:.75rem;
    border-radius:10px;padding:4px
  }
  .mobile-bottom-nav a:active{background:#eaf1ff}
}
@media(min-width:761px) and (max-width:1100px){
  .grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .links{flex-wrap:wrap;justify-content:flex-end}
}
