/* SIGAB - identitas visual: biru laut dalam (mengikuti lambang Kemenimipas) + emas garuda */
:root{
  --sg-navy:#101f3c; --sg-navy-2:#182b52; --sg-navy-3:#22386a;
  --sg-gold:#d4a437; --sg-gold-soft:#f3e3bb;
  --sg-bg:#f4f6fa; --sg-line:#dfe4ee; --sg-ink:#1c2333; --sg-muted:#6a7284;
  --bs-primary:#182b52;
}
html,body{height:100%}
body{background:var(--sg-bg);color:var(--sg-ink);font-family:"Segoe UI",system-ui,-apple-system,sans-serif}

/* Sidebar */
.sg-sidebar{width:248px;min-height:100vh;background:linear-gradient(180deg,var(--sg-navy) 0%,var(--sg-navy-2) 100%);
  color:#cfd8ec;position:fixed;top:0;left:0;z-index:1040;display:flex;flex-direction:column;transition:margin-left .2s}
.sg-sidebar .brand{display:flex;align-items:center;gap:.65rem;padding:1rem 1.1rem;border-bottom:1px solid rgba(255,255,255,.08)}
.sg-sidebar .brand img{width:42px;height:42px}
.sg-sidebar .brand .t1{font-weight:800;letter-spacing:.14em;color:#fff;font-size:1.05rem}
.sg-sidebar .brand .t2{font-size:.62rem;color:var(--sg-gold);letter-spacing:.06em;line-height:1.2}
.sg-nav{flex:1;overflow-y:auto;padding:.75rem .6rem}
.sg-nav .lbl{font-size:.62rem;letter-spacing:.16em;text-transform:uppercase;color:#8593b3;padding:.9rem .6rem .3rem}
.sg-nav a{display:flex;align-items:center;gap:.7rem;color:#cfd8ec;text-decoration:none;padding:.55rem .7rem;border-radius:.5rem;font-size:.9rem;border-left:3px solid transparent}
.sg-nav a i{width:1.1rem;text-align:center}
.sg-nav a:hover{background:rgba(255,255,255,.07);color:#fff}
.sg-nav a.active{background:rgba(212,164,55,.14);color:var(--sg-gold);border-left-color:var(--sg-gold)}
.sg-content{margin-left:248px;min-height:100vh;display:flex;flex-direction:column}
@media(max-width:991px){.sg-sidebar{margin-left:-248px}.sg-sidebar.show{margin-left:0}.sg-content{margin-left:0}}

/* Topbar */
.sg-topbar{background:#fff;border-bottom:1px solid var(--sg-line);padding:.55rem 1.25rem;position:sticky;top:0;z-index:1030}
.sg-search{position:relative;max-width:420px;flex:1}
.sg-search input{padding-left:2.3rem;background:var(--sg-bg);border-color:var(--sg-line)}
.sg-search .bi-search{position:absolute;left:.85rem;top:50%;transform:translateY(-50%);color:var(--sg-muted)}
.sg-search-result{position:absolute;top:110%;left:0;right:0;background:#fff;border:1px solid var(--sg-line);
  border-radius:.6rem;box-shadow:0 12px 30px rgba(16,31,60,.14);max-height:380px;overflow:auto;z-index:1050}
.sg-search-result a{display:flex;gap:.7rem;align-items:center;padding:.6rem .85rem;text-decoration:none;color:var(--sg-ink);border-bottom:1px solid #f0f2f7}
.sg-search-result a:hover{background:var(--sg-bg)}
.sg-search-result .badge{font-size:.62rem}

/* Card & tabel */
.card{border:1px solid var(--sg-line);border-radius:.75rem;box-shadow:0 1px 2px rgba(16,31,60,.04)}
.card-header{background:#fff;border-bottom:1px solid var(--sg-line);font-weight:600}
.stat-card{border-left:4px solid var(--sg-navy-3)}
.stat-card .num{font-size:1.7rem;font-weight:800;color:var(--sg-navy)}
.stat-card .lab{font-size:.74rem;text-transform:uppercase;letter-spacing:.08em;color:var(--sg-muted)}
.stat-card.gold{border-left-color:var(--sg-gold)}
.stat-card.danger{border-left-color:#c23b3b}
.table{--bs-table-hover-bg:#f6f8fc}
.table thead th{background:var(--sg-navy);color:#fff;font-size:.78rem;text-transform:uppercase;letter-spacing:.05em;font-weight:600;border:0}
.table td{vertical-align:middle;font-size:.9rem}

/* Grafik batang vanilla */
.sg-bar{display:flex;align-items:center;gap:.6rem;margin-bottom:.45rem}
.sg-bar .k{width:110px;font-size:.78rem;color:var(--sg-muted);text-align:right;flex:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-bar .track{flex:1;background:#eef1f7;border-radius:.35rem;height:22px;overflow:hidden}
.sg-bar .fill{height:100%;background:linear-gradient(90deg,var(--sg-navy-3),var(--sg-navy-2));color:#fff;font-size:.72rem;
  display:flex;align-items:center;justify-content:flex-end;padding-right:.4rem;border-radius:.35rem;min-width:1.4rem}
.sg-bar .fill.gold{background:linear-gradient(90deg,var(--sg-gold),#b98d28)}

/* Timeline */
.sg-timeline{list-style:none;margin:0;padding:0;position:relative}
.sg-timeline::before{content:"";position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:var(--sg-line)}
.sg-timeline li{position:relative;padding:0 0 1rem 2.6rem}
.sg-timeline .dot{position:absolute;left:6px;top:2px;width:20px;height:20px;border-radius:50%;
  background:#fff;border:2px solid var(--sg-navy-3);display:flex;align-items:center;justify-content:center;font-size:.6rem;color:var(--sg-navy-3)}

/* Login */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(1200px 600px at 15% -10%,#22386a 0%,var(--sg-navy) 55%,#0a1428 100%)}
.login-card{width:min(420px,92vw);border-radius:1rem;overflow:hidden;box-shadow:0 25px 70px rgba(0,0,0,.45)}
.login-card .head{background:var(--sg-navy);color:#fff;text-align:center;padding:1.6rem 1.5rem 1.2rem}
.login-card .head img{width:74px;margin-bottom:.7rem}
.login-card .head h1{font-size:1.35rem;font-weight:800;letter-spacing:.22em;margin:0}
.login-card .head p{font-size:.72rem;color:var(--sg-gold);margin:.25rem 0 0;letter-spacing:.03em}
.login-card .body{background:#fff;padding:1.6rem}

/* Lain-lain */
.badge-conf-hijau{background:#1d7a46}.badge-conf-biru{background:#1f5da8}
.badge-conf-kuning{background:#b9860f}.badge-conf-merah{background:#b23434}
.btn-navy{background:var(--sg-navy-2);color:#fff}.btn-navy:hover{background:var(--sg-navy-3);color:#fff}
.btn-gold{background:var(--sg-gold);color:#3a2c07;font-weight:600}.btn-gold:hover{background:#c2932c;color:#2c2105}
.dropzone{border:2px dashed var(--sg-line);border-radius:.7rem;padding:1.2rem;text-align:center;color:var(--sg-muted);cursor:pointer}
.dropzone.drag{border-color:var(--sg-gold);background:var(--sg-gold-soft)}
.toast-container{z-index:2000}
a{color:var(--sg-navy-3)}
.page-link{color:var(--sg-navy-2)}
.page-item.active .page-link{background:var(--sg-navy-2);border-color:var(--sg-navy-2)}
.printonly{display:none}
@media print{
  .sg-sidebar,.sg-topbar,.noprint{display:none!important}
  .sg-content{margin-left:0}
  .printonly{display:block}
}
