/* === SIMPONI — Login page (v4: foto gedung + overlay biru) ===
   Ubah --login-overlay-a / --login-overlay-b untuk menebalkan atau menipiskan overlay biru. */
.login-page{
  --login-overlay-a:rgba(8,40,88,.80);
  --login-overlay-b:rgba(7,52,112,.84);
  min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;
  background:
    linear-gradient(var(--login-overlay-a),var(--login-overlay-b)),
    url('../img/login-bg.jpg') center/cover no-repeat,
    #0f2747;
  background-attachment:fixed;
}

.login-center{width:min(420px,100%);display:flex;flex-direction:column;align-items:center}
.login-card{position:relative;width:100%;background:#fff;border-radius:16px;
  padding:30px 28px 26px;box-shadow:0 24px 60px rgba(4,18,40,.45);
  display:flex;flex-direction:column;align-items:center;text-align:center}

.login-card .brand-mark{width:56px;height:56px;border-radius:50%;background:#eaf5fc;border:1px solid var(--border);
  display:grid;place-items:center;margin-bottom:14px;overflow:hidden}
.login-card .brand-mark:not(.brand-mark-logo){background:linear-gradient(135deg,#0f2747,#087fc9)}
.login-card .brand-mark img{max-width:72%;max-height:72%;object-fit:contain}
/* Logo instansi dibuat lebih besar: tanpa bingkai lingkaran kecil, gambar tampil penuh (110px). */
.login-card .brand-mark.brand-mark-logo{width:100px;height:100px;background:transparent;border:0;border-radius:0;overflow:visible;padding:0;margin-bottom:12px}
.login-card .brand-mark.brand-mark-logo img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain}
@media(max-width:480px){.login-card .brand-mark.brand-mark-logo{width:92px;height:92px}}

.login-card h1{margin:0;color:var(--primary);font-size:19px;font-weight:700;letter-spacing:.2px}
.login-subtitle{margin:5px 0 22px;color:var(--secondary);font-size:11.5px;font-weight:500}

.login-card form{width:100%;text-align:left}
.login-card form>label{display:block;font-size:10.5px;font-weight:600;color:#596575;margin:13px 0 6px;letter-spacing:.2px}
.login-card form>label:first-of-type{margin-top:0}

.login-card input[type=text],.login-card input:not([type]),.login-card input[type=password],.login-card select{
  width:100%;height:42px;border:1px solid var(--border);border-radius:8px;padding:0 13px;
  color:var(--text);outline:none;background:#f8fafc;transition:border-color .15s,background .15s,box-shadow .15s}
.login-card input:focus,.login-card select:focus{border-color:var(--secondary);box-shadow:0 0 0 3px rgba(8,127,201,.1);background:#fff}
.login-card input::placeholder{color:#a7b1bd}

.input-wrap{position:relative}
.input-wrap input{padding-right:38px}
.input-icon{position:absolute;right:5px;top:5px;width:32px;height:32px;border:0;background:transparent;color:#8b96a4;border-radius:6px}
.input-icon:hover{background:#eef2f6}

.radio-row{display:flex;gap:22px}
.radio{display:flex!important;align-items:center;gap:7px;margin:0!important;font-weight:500!important;font-size:12px;cursor:pointer}
.radio input{appearance:none;width:17px;height:17px;border:2px solid #c7d0da;border-radius:50%;margin:0;position:relative;cursor:pointer;flex:none;transition:border-color .15s}
.radio input:checked{border-color:var(--secondary)}
.radio input:checked::after{content:'';position:absolute;inset:2.5px;border-radius:50%;background:var(--secondary)}
.radio input:disabled{cursor:not-allowed;opacity:.5}
.login-card select{padding:0 10px;background:#f8fafc}

.login-card .btn{margin-top:22px;height:44px;width:100%;border-radius:8px;font-size:12.5px;letter-spacing:.4px;
  background:linear-gradient(90deg,var(--secondary),#0aa0e0);border:0;box-shadow:0 8px 18px rgba(8,127,201,.28)}
.login-card .btn:hover{background:linear-gradient(90deg,#076fae,#0891c2)}

.form-error{min-height:18px;color:var(--danger);font-size:10.5px;text-align:center;margin-top:10px;line-height:1.5;width:100%}
.login-foot{text-align:center;color:rgba(255,255,255,.85);font-size:10px;margin-top:20px}
.login-hint{margin-top:16px;font-size:10px;color:#7a8a99;text-align:center;line-height:1.6}
.login-source-hint{font-size:10.5px;color:#64748b;line-height:1.55;margin:7px 0 2px}
.radio input:disabled+span{opacity:.6}
.radio:has(input:disabled){cursor:not-allowed}

@media(max-width:420px){
  .login-card{padding:28px 22px 22px}
  .radio-row{gap:14px}
}
