/* =========================================================
   PERSONALIA BATALYON — GLOBAL POLISHED THEME
   Batalyon Arhanud 8/MBC
   Visual only: no PHP/database/role logic changes.
   ========================================================= */

:root{
  --bg:#071913;
  --bg-2:#0a2119;
  --panel:#0d271e;
  --panel-2:#102d23;
  --panel-3:#14372a;
  --line:rgba(210,176,62,.22);
  --line-soft:rgba(255,255,255,.08);
  --gold:#d6b23f;
  --gold-2:#efd16a;
  --green:#176b4b;
  --green-2:#21835b;
  --text:#f3f6f4;
  --text-2:#d4ded9;
  --muted:#9fb1a9;
  --danger:#b93434;
  --danger-2:#e45b5b;
  --shadow:0 14px 35px rgba(0,0,0,.25);
  --radius:14px;
  --transition:180ms ease;
}

*{box-sizing:border-box}

html{scroll-behavior:smooth}

body{
  margin:0;
  min-height:100vh;
  background:
    radial-gradient(circle at 85% 8%,rgba(214,178,63,.055),transparent 26%),
    radial-gradient(circle at 18% 92%,rgba(33,131,91,.075),transparent 30%),
    linear-gradient(135deg,var(--bg),#06140f 55%,var(--bg-2));
  color:var(--text);
  font-family:Inter,Segoe UI,Roboto,Arial,sans-serif;
  font-size:14px;
  line-height:1.5;
}

/* Subtle military/HUD texture — intentionally very low contrast */
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  opacity:.22;
  background-image:
    linear-gradient(rgba(214,178,63,.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(214,178,63,.035) 1px,transparent 1px);
  background-size:42px 42px;
  mask-image:linear-gradient(to bottom,black,transparent 82%);
}

a{color:inherit}

button,input,select,textarea{font:inherit}

button,
.btn,
.btn-primary,
.btn-secondary,
.btn-danger{
  transition:
    transform var(--transition),
    box-shadow var(--transition),
    background-color var(--transition),
    border-color var(--transition),
    color var(--transition);
}

button:hover,
.btn:hover,
.btn-primary:hover,
.btn-secondary:hover,
.btn-danger:hover{
  transform:translateY(-1px);
}

button:active,
.btn:active,
.btn-primary:active,
.btn-secondary:active,
.btn-danger:active{
  transform:translateY(0);
}

/* ---------- TOP BAR ---------- */
.topbar{
  position:sticky;
  top:0;
  z-index:50;
  min-height:76px;
  padding:12px 28px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  color:var(--text);
  background:
    linear-gradient(110deg,rgba(5,25,18,.98),rgba(10,38,28,.96));
  border-bottom:1px solid var(--line);
  box-shadow:0 8px 25px rgba(0,0,0,.22);
  overflow:hidden;
}

.topbar::after{
  content:"";
  position:absolute;
  left:-20%;
  bottom:0;
  width:35%;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--gold),transparent);
  animation:topbarScan 7s linear infinite;
  opacity:.7;
}

.topbar strong{
  display:block;
  color:var(--text);
  font-size:19px;
  line-height:1.15;
  letter-spacing:.2px;
}

.topbar > div:first-child span{
  display:block;
  margin-top:3px;
  color:var(--muted);
  font-size:11px;
  letter-spacing:.65px;
  text-transform:uppercase;
}

.user-area{
  display:flex;
  align-items:center;
  gap:9px;
  color:var(--text);
  white-space:nowrap;
}

.user-area a{
  padding:8px 12px;
  border:1px solid var(--line-soft);
  border-radius:9px;
  background:rgba(255,255,255,.045);
  text-decoration:none;
}

.user-area a:hover{
  border-color:var(--gold);
  color:var(--gold-2);
  background:rgba(214,178,63,.08);
}

.role-pill{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  padding:3px 9px;
  border-radius:999px;
  background:rgba(214,178,63,.12);
  border:1px solid rgba(214,178,63,.3);
  color:var(--gold-2);
  font-size:10px;
  font-weight:800;
  letter-spacing:.5px;
}

/* ---------- APP LAYOUT ---------- */
.layout{
  display:grid;
  grid-template-columns:260px minmax(0,1fr);
  min-height:calc(100vh - 76px);
}

.sidebar{
  position:sticky;
  top:76px;
  height:calc(100vh - 76px);
  overflow-y:auto;
  padding:20px 14px;
  background:
    linear-gradient(180deg,#0a281e,#071b14 75%,#06150f);
  border-right:1px solid var(--line);
  scrollbar-width:thin;
  scrollbar-color:rgba(214,178,63,.35) transparent;
}

.sidebar::-webkit-scrollbar{width:5px}
.sidebar::-webkit-scrollbar-thumb{
  background:rgba(214,178,63,.35);
  border-radius:10px;
}

/* Works with common sidebar structures */
.sidebar a{
  position:relative;
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  margin:3px 0;
  padding:9px 12px;
  border-radius:10px;
  color:var(--text-2);
  text-decoration:none;
  transition:background var(--transition),color var(--transition),transform var(--transition);
}

.sidebar a:hover{
  color:var(--text);
  background:rgba(214,178,63,.075);
  transform:translateX(2px);
}

.sidebar a.active,
.sidebar a[aria-current="page"],
.sidebar .active{
  color:var(--gold-2);
  background:linear-gradient(90deg,rgba(214,178,63,.14),rgba(214,178,63,.045));
  box-shadow:inset 3px 0 0 var(--gold);
}

.sidebar .menu-title,
.sidebar .section-title,
.sidebar h3{
  margin:20px 9px 8px;
  color:var(--gold);
  font-size:10px;
  font-weight:900;
  letter-spacing:1.5px;
  text-transform:uppercase;
}

.sidebar hr{
  margin:13px 8px;
  border:0;
  border-top:1px solid rgba(214,178,63,.16);
}

/* ---------- CONTENT ---------- */
.content{
  min-width:0;
  padding:28px 32px 44px;
  animation:contentIn .38s ease both;
}

.content > h1,
.page-title h1{
  margin:0;
  color:var(--text);
  font-size:28px;
  line-height:1.15;
  letter-spacing:-.3px;
}

.welcome,
.page-title p{
  margin:5px 0 0;
  color:var(--muted);
  font-size:13px;
}

.page-title{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  margin-bottom:20px;
}

.page-title > div{min-width:0}

.page-title .actions,
.actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}

/* ---------- PANELS / CARDS ---------- */
.panel,
.card,
.stat-card,
.metric{
  position:relative;
  background:
    linear-gradient(145deg,rgba(16,45,35,.97),rgba(8,30,23,.97));
  border:1px solid var(--line-soft);
  border-radius:var(--radius);
  box-shadow:0 8px 24px rgba(0,0,0,.16);
}

.panel{
  padding:20px;
  margin-bottom:18px;
}

.panel::before,
.card::before,
.stat-card::before{
  content:"";
  position:absolute;
  top:0;
  left:14px;
  right:14px;
  height:1px;
  background:linear-gradient(90deg,transparent,rgba(214,178,63,.35),transparent);
  opacity:.7;
}

.panel h2,
.panel h3{
  margin:0 0 8px;
  color:var(--text);
  font-size:18px;
}

.cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:14px;
  margin:18px 0;
}

.card,
.stat-card{
  padding:17px;
  overflow:hidden;
  transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease;
}

.card:hover,
.stat-card:hover{
  transform:translateY(-3px);
  border-color:rgba(214,178,63,.3);
  box-shadow:0 14px 32px rgba(0,0,0,.25);
}

.card span,
.stat-card .label{
  display:block;
  color:var(--muted);
  font-size:11px;
  font-weight:700;
  letter-spacing:.35px;
}

.card strong,
.stat-card strong{
  display:block;
  margin-top:5px;
  color:var(--text);
  font-size:27px;
  line-height:1.1;
}

.stat-card.accent strong{color:var(--gold-2)}

.stat-card .icon{
  margin-bottom:7px;
  color:var(--gold-2);
  opacity:.9;
}

/* ---------- BUTTONS ---------- */
.btn-primary,
.btn-secondary,
.btn-danger,
.btn,
button[type="submit"]{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  min-height:38px;
  padding:8px 13px;
  border-radius:9px;
  border:1px solid transparent;
  cursor:pointer;
  text-decoration:none;
  font-size:12px;
  font-weight:800;
}

.btn-primary,
button[type="submit"]{
  color:#07130e;
  background:linear-gradient(135deg,#d9b847,#b88e22);
  border-color:rgba(239,209,106,.5);
  box-shadow:0 5px 16px rgba(214,178,63,.12);
}

.btn-primary:hover,
button[type="submit"]:hover{
  background:linear-gradient(135deg,#efd16a,#c79d2c);
}

.btn-secondary{
  color:var(--text);
  background:rgba(255,255,255,.055);
  border-color:var(--line-soft);
}

.btn-secondary:hover{
  border-color:rgba(214,178,63,.45);
  background:rgba(214,178,63,.09);
  color:var(--gold-2);
}

.btn-danger{
  color:#fff!important;
  background:linear-gradient(135deg,#a92d2d,#812222)!important;
  border-color:rgba(228,91,91,.35);
}

.btn-danger:hover{background:linear-gradient(135deg,#c13b3b,#922626)!important}

.btn-small{
  min-height:31px!important;
  padding:6px 9px!important;
  font-size:11px!important;
}

.btn-gold{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:38px;
  padding:8px 13px;
  border-radius:9px;
  text-decoration:none;
  background:var(--gold);
  color:#11170f;
  font-weight:800;
}

/* ---------- FORMS ---------- */
.form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:13px;
}

.form-group.full,
.full{grid-column:1/-1}

.form-group label{
  display:block;
  margin-bottom:6px;
  color:var(--text-2);
  font-size:12px;
  font-weight:700;
}

input,
select,
textarea{
  width:100%;
  min-height:40px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.11);
  border-radius:9px;
  outline:none;
  background:#081d16;
  color:var(--text);
  padding:9px 11px;
  transition:border-color var(--transition),box-shadow var(--transition),background var(--transition);
}

textarea{
  min-height:90px;
  resize:vertical;
}

input::placeholder,
textarea::placeholder{
  color:#758980;
}

input:focus,
select:focus,
textarea:focus{
  border-color:rgba(214,178,63,.7);
  box-shadow:0 0 0 3px rgba(214,178,63,.09);
  background:#0a2119;
}

select option{
  background:#0b2018;
  color:#fff;
}

/* ---------- TABLES ---------- */
.table-wrap{
  width:100%;
  overflow-x:auto;
  border-radius:12px;
}

table{
  border-collapse:collapse;
}

.table-wrap table{
  width:100%;
  min-width:720px;
  color:var(--text-2);
  background:rgba(4,19,14,.45);
}

.table-wrap th{
  padding:10px 9px;
  color:#f4e6ae;
  background:linear-gradient(180deg,#25361f,#182c20);
  border:1px solid rgba(214,178,63,.2);
  font-size:11px;
  font-weight:900;
  text-align:left;
  white-space:nowrap;
}

.table-wrap td{
  padding:9px;
  border:1px solid rgba(255,255,255,.055);
  font-size:12px;
  color:var(--text-2);
  vertical-align:middle;
}

.table-wrap tbody tr{
  background:rgba(10,35,26,.72);
  transition:background var(--transition);
}

.table-wrap tbody tr:nth-child(even){
  background:rgba(14,42,31,.78);
}

.table-wrap tbody tr:hover{
  background:rgba(214,178,63,.075);
}

.table-wrap td a{
  color:var(--text);
  text-decoration:none;
}

.table-wrap td a:hover{
  color:var(--gold-2);
}

/* ---------- SEARCH / FILTER ---------- */
.filter-row{
  display:grid;
  grid-template-columns:2fr 1fr 1fr auto;
  gap:9px;
  align-items:end;
  padding:11px;
  margin-bottom:16px;
  background:rgba(8,31,23,.85);
  border:1px solid var(--line-soft);
  border-radius:12px;
}

/* ---------- STATUS / BADGES ---------- */
.badge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:4px 8px;
  border-radius:999px;
  font-size:10px;
  font-weight:800;
  line-height:1;
}

.badge-green,
.badge.ok{
  color:#a9e4b6;
  background:rgba(46,135,75,.18);
  border:1px solid rgba(90,181,111,.18);
}

.badge-yellow,
.badge.warn{
  color:#f0d27c;
  background:rgba(214,178,63,.12);
  border:1px solid rgba(214,178,63,.2);
}

.badge-blue{
  color:#a9d4f4;
  background:rgba(61,125,170,.14);
}

.badge-red{
  color:#ffb1b1;
  background:rgba(185,52,52,.15);
}

/* ---------- NOTICES ---------- */
.notice{
  margin:0 0 16px;
  padding:11px 13px;
  border-radius:10px;
  border:1px solid rgba(214,178,63,.2);
  background:rgba(214,178,63,.07);
  color:#eadb9d;
  font-size:12px;
}

.error-box{
  border-color:rgba(228,91,91,.25);
  background:rgba(185,52,52,.09);
  color:#ffc1c1;
}

.notice ul{
  margin:0;
  padding-left:18px;
}

/* ---------- DASHBOARD HELPERS ---------- */
.dashboard-hero{
  position:relative;
  overflow:hidden;
  padding:25px;
  margin-bottom:18px;
  border:1px solid rgba(214,178,63,.2);
  border-radius:16px;
  background:
    radial-gradient(circle at 88% 30%,rgba(214,178,63,.1),transparent 28%),
    linear-gradient(125deg,#102f24,#071b14 70%);
  box-shadow:var(--shadow);
}

.dashboard-hero::after{
  content:"";
  position:absolute;
  width:210px;
  height:210px;
  right:-80px;
  top:-90px;
  border:1px solid rgba(214,178,63,.18);
  border-radius:50%;
  box-shadow:0 0 0 24px rgba(214,178,63,.025),0 0 0 48px rgba(214,178,63,.018);
  animation:radarPulse 5s ease-in-out infinite;
}

.hero-kicker{
  color:var(--gold);
  font-size:10px;
  font-weight:900;
  letter-spacing:1.6px;
}

.hero-title{
  margin-top:6px;
  color:var(--text);
  font-size:30px;
  font-weight:900;
}

.hero-subtitle{
  max-width:720px;
  margin:5px 0 13px;
  color:var(--muted);
  font-size:13px;
}

.hero-user{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
}

.user-badge{
  display:inline-flex;
  align-items:center;
  padding:6px 9px;
  border:1px solid var(--line-soft);
  border-radius:999px;
  background:rgba(255,255,255,.04);
  color:var(--text-2);
  font-size:11px;
}

/* ---------- SECTION TITLE ---------- */
.section-title{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:15px;
  margin:20px 0 10px;
}

.section-title h2{
  margin:0;
  color:var(--text);
  font-size:18px;
}

.section-title p{
  margin:3px 0 0;
  color:var(--muted);
  font-size:12px;
}

/* ---------- MISC ---------- */
.muted{color:var(--muted);font-size:12px}
.nowrap{white-space:nowrap}
.text-gold{color:var(--gold-2)}
.text-muted{color:var(--muted)}

hr{
  border:0;
  border-top:1px solid var(--line-soft);
}

::selection{
  background:rgba(214,178,63,.28);
  color:#fff;
}

:focus-visible{
  outline:2px solid rgba(214,178,63,.65);
  outline-offset:2px;
}

/* ---------- RESPONSIVE ---------- */
@media(max-width:1100px){
  .layout{grid-template-columns:225px minmax(0,1fr)}
  .content{padding:24px}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}

@media(max-width:800px){
  .topbar{padding:11px 16px}
  .topbar strong{font-size:16px}
  .layout{display:block}
  .sidebar{
    position:relative;
    top:auto;
    height:auto;
    max-height:none;
    border-right:0;
    border-bottom:1px solid var(--line);
  }
  .content{padding:18px}
  .page-title{align-items:flex-start;flex-direction:column}
  .form-grid,.filter-row{grid-template-columns:1fr}
  .form-group.full,.full{grid-column:auto}
}

@media(max-width:520px){
  .cards{grid-template-columns:1fr}
  .content > h1,.page-title h1{font-size:24px}
  .panel{padding:15px}
  .dashboard-hero{padding:19px}
}

/* ---------- ACCESSIBILITY / MOTION ---------- */
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
  }
}

@keyframes contentIn{
  from{opacity:0;transform:translateY(7px)}
  to{opacity:1;transform:translateY(0)}
}

@keyframes topbarScan{
  0%{left:-35%}
  100%{left:120%}
}

@keyframes radarPulse{
  0%,100%{transform:scale(.96);opacity:.45}
  50%{transform:scale(1.03);opacity:.8}
}


/* ==========================================================
   ARHANUD 8/MBC HEADER FIX V2
   Tempelkan PALING BAWAH assets/style.css
   ========================================================== */

/* Paksa semua logo/header memakai lambang PNG asli */
.topbar img,
.topbar .brand-logo{
    content:url("img/arhanud8_emblem.png") !important;
    width:52px !important;
    height:52px !important;
    min-width:52px !important;
    min-height:52px !important;
    max-width:52px !important;
    max-height:52px !important;
    object-fit:contain !important;
    display:block !important;
    box-sizing:border-box !important;
    border-radius:50% !important;
    background:#ffffff !important;
    border:2px solid #c9a227 !important;
    padding:2px !important;
    box-shadow:0 0 0 4px rgba(201,162,39,.08),
               0 0 20px rgba(201,162,39,.20) !important;
}

/* Header konsisten */
.topbar{
    min-height:78px !important;
    display:flex !important;
    align-items:center !important;
    justify-content:space-between !important;
    padding:12px 20px !important;
    box-sizing:border-box !important;
    background:
        radial-gradient(circle at 15% 50%,rgba(201,162,39,.10),transparent 25%),
        linear-gradient(90deg,#061a11,#082218 52%,#06140d) !important;
    border-bottom:1px solid rgba(201,162,39,.30) !important;
    position:relative !important;
    overflow:hidden !important;
}

/* Header pertama: pastikan logo dan tulisan sejajar */
.topbar > div:first-child,
.topbar .brand-wrap{
    display:flex !important;
    align-items:center !important;
    gap:12px !important;
    min-width:0 !important;
    position:relative !important;
    z-index:2 !important;
}

.topbar > div:first-child > div,
.topbar .brand-wrap > div{
    min-width:0 !important;
}

.topbar strong{
    display:block !important;
    color:#f4f7f4 !important;
    font-size:17px !important;
    line-height:1.15 !important;
    font-weight:900 !important;
    letter-spacing:.25px !important;
    white-space:nowrap;
}

.topbar > div:first-child span,
.topbar .brand-wrap span{
    display:block !important;
    margin-top:4px !important;
    color:#9fb1a7 !important;
    font-size:10px !important;
    letter-spacing:.75px !important;
}

/* User area */
.topbar .user-area{
    display:flex !important;
    align-items:center !important;
    gap:9px !important;
    position:relative !important;
    z-index:3 !important;
    color:#edf3ee !important;
}

/* Animasi garis scan halus */
.topbar::before{
    content:"" !important;
    position:absolute !important;
    top:0 !important;
    left:-25% !important;
    width:28% !important;
    height:100% !important;
    background:linear-gradient(90deg,transparent,rgba(201,162,39,.06),transparent) !important;
    transform:skewX(-18deg) !important;
    animation:arhanudHeaderScan 8s linear infinite !important;
    pointer-events:none !important;
}

.topbar::after{
    content:"" !important;
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    bottom:0 !important;
    height:2px !important;
    background:linear-gradient(90deg,transparent,#c9a227,#f0d46b,#c9a227,transparent) !important;
    opacity:.7 !important;
    pointer-events:none !important;
}

@keyframes arhanudHeaderScan{
    0%{left:-25%}
    100%{left:115%}
}

@media(max-width:700px){
    .topbar{
        min-height:68px !important;
        padding:9px 12px !important;
    }
    .topbar img,
    .topbar .brand-logo{
        width:42px !important;
        height:42px !important;
        min-width:42px !important;
        min-height:42px !important;
        max-width:42px !important;
        max-height:42px !important;
    }
    .topbar strong{font-size:13px !important}
    .topbar > div:first-child span,
    .topbar .brand-wrap span{font-size:8px !important}
}

@media(prefers-reduced-motion:reduce){
    .topbar::before{animation:none !important}
}
