/* ===== SIREKOMEDIKA — override di atas Sneat (lihat docs/DESIGN.md §11) ===== */

/* Loading overlay global */
#app-loading{position:fixed;inset:0;z-index:99999;display:none;align-items:center;justify-content:center;
  background:rgba(255,255,255,.65);backdrop-filter:blur(3px)}
#app-loading.show{display:flex}
.app-loading-box{text-align:center}
.app-spinner{width:52px;height:52px;margin:0 auto;border-radius:50%;
  border:4px solid rgba(5,110,79,.18);border-top-color:#056e4f;animation:appspin .8s linear infinite}
.app-loading-text{margin-top:14px;font-weight:500;color:#056e4f}
@keyframes appspin{to{transform:rotate(360deg)}}

/* Badge lonceng notifikasi + denyut */
.badge-notify{position:absolute;top:2px;right:2px;font-size:.65rem;padding:.2em .45em}
.badge-notify::after{content:"";position:absolute;inset:0;border-radius:50%;
  box-shadow:0 0 0 0 rgba(255,62,29,.6);animation:apppulse 1.6s infinite}
@keyframes apppulse{70%{box-shadow:0 0 0 8px rgba(255,62,29,0)}100%{box-shadow:0 0 0 0 rgba(255,62,29,0)}}

/* Indikator scroll tabel di layar kecil */
@media (max-width:991.98px){
  .table-responsive{position:relative}
  .table-responsive::-webkit-scrollbar{height:6px}
  .table-responsive::-webkit-scrollbar-thumb{background:rgba(5,110,79,.4);border-radius:3px}
}

/* Timeline riwayat status */
.timeline-simple{list-style:none;padding:0;margin:0;position:relative}
.timeline-simple::before{content:"";position:absolute;left:7px;top:6px;bottom:6px;width:2px;background:var(--bs-border-color)}
.timeline-simple li{position:relative;padding:0 0 1.1rem 1.8rem}
.timeline-simple li:last-child{padding-bottom:0}
.timeline-simple .dot{position:absolute;left:0;top:4px;width:16px;height:16px;border-radius:50%;
  background:#fff;border:3px solid #056e4f}
.timeline-simple li:last-child .dot{background:#056e4f}

/* Langkah alur (stepper) di detail berkas */
.alur-steps{display:flex;gap:.25rem;overflow-x:auto;padding-bottom:.25rem}
.alur-steps .step{flex:1 0 110px;text-align:center;font-size:.78rem;color:var(--bs-secondary-color)}
.alur-steps .step .bullet{width:30px;height:30px;border-radius:50%;margin:0 auto .35rem;display:flex;align-items:center;
  justify-content:center;background:var(--bs-gray-100, #f2f2f3);border:2px solid var(--bs-border-color);font-weight:600}
.alur-steps .step.done .bullet{background:#056e4f;border-color:#056e4f;color:#fff}
.alur-steps .step.current .bullet{border-color:#056e4f;color:#056e4f;box-shadow:0 0 0 4px rgba(5,110,79,.15)}
.alur-steps .step.done,.alur-steps .step.current{color:var(--bs-heading-color);font-weight:500}
.alur-steps .step.bad .bullet{background:#ff3e1d;border-color:#ff3e1d;color:#fff}

/* Definisi data (label : nilai) */
.dl-data dt{font-weight:400;color:var(--bs-secondary-color);font-size:.8rem;margin-bottom:.1rem}
.dl-data dd{font-weight:500;margin-bottom:.75rem;word-break:break-word}

/* ===== Halaman login ===== */
.login-page{min-height:100vh;display:flex;background:var(--bs-body-bg)}
.login-hero{flex:1 1 55%;position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(135deg,#034d37 0%,#056e4f 55%,#0b8a64 100%);display:flex;flex-direction:column;
  justify-content:space-between;padding:3rem}
.login-hero::before,.login-hero::after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.06)}
.login-hero::before{width:520px;height:520px;right:-180px;top:-160px}
.login-hero::after{width:380px;height:380px;left:-140px;bottom:-140px}
.login-hero > *{position:relative;z-index:1}
.login-logos{display:flex;flex-wrap:wrap;gap:1.25rem;align-items:flex-start}
.login-logo{display:flex;flex-direction:column;align-items:center;width:112px;text-align:center}
.login-logo .img-wrap{width:84px;height:84px;border-radius:18px;background:rgba(255,255,255,.95);display:flex;
  align-items:center;justify-content:center;padding:10px;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.login-logo img{max-width:100%;max-height:100%;object-fit:contain}
.login-logo .ph{font-size:2rem;color:#056e4f}
.login-logo small{margin-top:.5rem;font-size:.72rem;line-height:1.25;opacity:.92}
.login-hero h1{color:#fff;font-weight:700;letter-spacing:.5px;font-size:2.6rem;margin-bottom:.25rem}
.login-hero .sub{font-size:1.05rem;opacity:.95;font-weight:500}
.login-hero .tagline{max-width:520px;opacity:.85;font-size:.92rem;margin-top:1rem}
.login-hero .foot{font-size:.8rem;opacity:.75}
.login-form-side{flex:1 1 45%;display:flex;align-items:center;justify-content:center;padding:2rem 1.5rem}
.login-card{width:100%;max-width:400px}
.login-logos-mobile{display:none}
@media (max-width:991.98px){
  .login-page{flex-direction:column}
  .login-hero{display:none}
  .login-logos-mobile{display:flex;justify-content:center;gap:.75rem;margin-bottom:1rem}
  .login-logos-mobile .img-wrap{width:56px;height:56px;border-radius:14px;background:#fff;border:1px solid var(--bs-border-color);
    display:flex;align-items:center;justify-content:center;padding:6px}
  .login-logos-mobile img{max-width:100%;max-height:100%;object-fit:contain}
  .login-logos-mobile .ph{color:#056e4f;font-size:1.4rem}
}
