/* Reset, typography and the (light-themed) login screen. */
*{ box-sizing:border-box; }
html,body{ height:100%; }
body{
  margin:0; background:var(--bg-page); color:var(--text-primary);
  font-family:var(--font-sans); font-size:14px; -webkit-font-smoothing:antialiased;
}
h1,h2,h3,p{ margin:0; }
button{ font-family:inherit; }
.hidden{ display:none !important; }

/* ── Login screen ── */
#loginScreen{ min-height:100vh; display:flex; align-items:stretch; }
.login-bg{
  flex:1; min-width:320px; position:relative; overflow:hidden;
  background:linear-gradient(155deg, #eaf2fc 0%, #e3f7f4 55%, #fdf3d9 100%);
  display:flex; align-items:center; justify-content:center;
}
.login-bg svg{ width:78%; max-width:460px; height:auto; }
.login-panel{
  width:420px; flex-shrink:0; background:var(--bg-card);
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:48px 44px; box-shadow:-8px 0 30px rgba(16,24,40,.06);
}
@media (max-width:760px){
  #loginScreen{ flex-direction:column; }
  .login-bg{ min-width:unset; min-height:200px; flex:0 0 200px; }
  .login-panel{ width:100%; padding:36px 28px; box-shadow:none; }
}
.login-panel img.login-logo{ width:170px; margin-bottom:26px; }
.login-panel h2{
  font-size:13px; text-transform:uppercase; letter-spacing:.08em;
  color:var(--text-secondary); margin-bottom:28px; font-weight:600;
}
.login-form{ width:100%; }
.login-form .field{ margin-bottom:16px; width:100%; }
.login-form .field label{
  font-size:12px; color:var(--text-secondary); font-weight:600;
  display:block; margin-bottom:6px;
}
.login-form .field input{
  width:100%; background:var(--gray-25); border:1px solid var(--border);
  color:var(--text-primary); padding:11px 14px; border-radius:var(--radius-sm);
  font-size:14px; font-family:inherit;
}
.login-form .field input:focus{
  outline:none; border-color:var(--slt-blue-500); box-shadow:0 0 0 3px var(--focus-ring);
}
.btn-primary{
  width:100%; margin-top:6px; padding:12px; font-size:14px; font-weight:700;
  border-radius:var(--radius-sm); border:none; cursor:pointer;
  background:var(--slt-navy-700); color:#fff; letter-spacing:.02em;
}
.btn-primary:hover{ background:var(--slt-navy-800); }
.btn-primary:disabled{ opacity:.6; cursor:default; }
.login-hint{ color:var(--status-bad-text); font-size:12.5px; margin-top:12px; min-height:18px; }
.login-version{ margin-top:18px; color:var(--text-secondary); font-size:11.5px; font-variant-numeric:tabular-nums; }

@media print{
  .topbar, .tabbar, .download-bar, #loginScreen{ display:none !important; }
  body{ background:#fff !important; }
}
