/* =======================================================================
   REPOSITORY FKIP UNSA — Custom Theme
   Palet warna diambil dari logo: biru royal, merah, biru langit
   ======================================================================= */
:root{
  --brand:        #0d3b8f;   /* biru royal (teks logo)      */
  --brand-dark:   #082a68;
  --brand-2:      #1657c9;
  --accent:       #c62828;   /* merah (sayap logo)          */
  --accent-dark:  #9e1f1f;
  --sky:          #7cc9e6;   /* biru langit (perisai)       */
  --sky-soft:     #e8f4fb;
  --ink:          #1b2333;
  --muted:        #64748b;
  --line:         #e6ebf2;
  --bg:           #f5f8fc;
  --card:         #ffffff;
  --radius:       .85rem;
  --shadow-sm:    0 1px 2px rgba(13,59,143,.06), 0 2px 8px rgba(13,59,143,.05);
  --shadow-md:    0 6px 24px rgba(13,59,143,.10);
  --shadow-lg:    0 18px 48px rgba(8,42,104,.18);
}

*{ scroll-behavior:smooth; }
body{
  font-family:'Inter','Segoe UI',system-ui,sans-serif;
  color:var(--ink);
  background:var(--bg);
  font-size:.95rem;
  line-height:1.6;
}
h1,h2,h3,h4,h5,.brand-font{ font-family:'Poppins','Inter',sans-serif; font-weight:700; letter-spacing:-.01em; }
a{ text-decoration:none; }
.text-brand{ color:var(--brand)!important; }
.bg-brand{ background:var(--brand)!important; }
.text-accent{ color:var(--accent)!important; }

/* ------------------------------------------------ NAVBAR / TOPBAR */
.topbar{
  background:linear-gradient(90deg,var(--brand-dark),var(--brand));
  color:#cfe0ff; font-size:.8rem;
}
.topbar a{ color:#cfe0ff; }
.topbar a:hover{ color:#fff; }

.navbar-brand img{ height:46px; }
.navbar{ box-shadow:var(--shadow-sm); }
.navbar .nav-link{ font-weight:500; color:var(--ink)!important; padding:.5rem .9rem!important; border-radius:.5rem; }
.navbar .nav-link:hover,.navbar .nav-link.active{ color:var(--brand)!important; background:var(--sky-soft); }
.brand-title{ font-size:1.05rem; line-height:1.1; color:var(--brand); }
.brand-sub{ font-size:.72rem; color:var(--muted); letter-spacing:.02em; }

/* ------------------------------------------------ BUTTONS */
.btn-brand{ background:var(--brand); border-color:var(--brand); color:#fff; }
.btn-brand:hover{ background:var(--brand-dark); border-color:var(--brand-dark); color:#fff; }
.btn-accent{ background:var(--accent); border-color:var(--accent); color:#fff; }
.btn-accent:hover{ background:var(--accent-dark); border-color:var(--accent-dark); color:#fff; }
.btn-outline-brand{ color:var(--brand); border-color:var(--brand); }
.btn-outline-brand:hover{ background:var(--brand); color:#fff; }
.btn{ border-radius:.55rem; font-weight:500; }

/* ------------------------------------------------ HERO */
.hero{
  position:relative; overflow:hidden; color:#fff;
  background:linear-gradient(135deg,var(--brand-dark) 0%,var(--brand) 45%,var(--brand-2) 100%);
}
.hero::before{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(900px 400px at 85% -10%, rgba(124,201,230,.35), transparent 60%),
    radial-gradient(700px 350px at 10% 120%, rgba(198,40,40,.28), transparent 60%);
}
.hero .container{ position:relative; z-index:2; }
.hero h1{ font-size:2.4rem; }
.hero-search .form-control{ border:0; padding:.9rem 1.1rem; font-size:1rem; }
.hero-search .btn{ padding-inline:1.6rem; }
.hero-search{ box-shadow:var(--shadow-lg); border-radius:.75rem; overflow:hidden; }
.watermark{
  position:absolute; right:-60px; top:50%; transform:translateY(-50%);
  width:420px; opacity:.08; z-index:1; pointer-events:none;
}

/* ------------------------------------------------ CARDS */
.card{ border:1px solid var(--line); border-radius:var(--radius); background:var(--card); box-shadow:var(--shadow-sm); }
.stat-card{ border:0; border-radius:var(--radius); box-shadow:var(--shadow-md); overflow:hidden; }
.stat-card .icon{ width:52px;height:52px;border-radius:.75rem;display:grid;place-items:center;font-size:1.4rem; }
.stat-card .num{ font-family:'Poppins'; font-weight:700; font-size:1.75rem; line-height:1; }
.stat-card .lbl{ color:var(--muted); font-size:.82rem; }

.doc-card{ transition:transform .18s ease, box-shadow .18s ease; height:100%; }
.doc-card:hover{ transform:translateY(-4px); box-shadow:var(--shadow-md); }
.doc-card .type-chip{ font-size:.7rem; font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--brand); }
.doc-card h3{ font-size:1rem; line-height:1.35; }
.doc-card h3 a{ color:var(--ink); }
.doc-card h3 a:hover{ color:var(--brand); }
.doc-meta{ font-size:.8rem; color:var(--muted); }

.type-tile{ transition:.18s; border:1px solid var(--line); }
.type-tile:hover{ border-color:var(--brand); background:var(--sky-soft); transform:translateY(-3px); }
.type-tile .ico{ width:48px;height:48px;border-radius:.6rem;display:grid;place-items:center;background:var(--sky-soft);color:var(--brand);font-size:1.3rem; }

/* ------------------------------------------------ AVATAR */
.avatar{ width:40px;height:40px;border-radius:50%;display:grid;place-items:center;
  background:var(--brand); color:#fff; font-weight:600; font-size:.85rem; object-fit:cover; }
.avatar-lg{ width:96px;height:96px;font-size:1.8rem; }

/* ------------------------------------------------ SECTION HEADINGS */
.section-title{ position:relative; padding-left:.9rem; }
.section-title::before{ content:""; position:absolute; left:0; top:.15em; bottom:.15em; width:5px;
  border-radius:4px; background:linear-gradient(var(--brand),var(--accent)); }

/* ------------------------------------------------ DASHBOARD */
.app-shell{ display:flex; min-height:100vh; }
.sidebar{
  width:260px; flex:0 0 260px; background:linear-gradient(180deg,var(--brand-dark),var(--brand));
  color:#dbe6ff; position:fixed; inset:0 auto 0 0; height:100vh; overflow-y:auto; z-index:1040;
  transition:transform .25s ease;
}
.sidebar .brand{ padding:1.1rem 1.25rem; border-bottom:1px solid rgba(255,255,255,.12); }
.sidebar .brand img{ height:38px; }
.sidebar .nav-link{ color:#c7d6f5; border-radius:.55rem; margin:.15rem .6rem; padding:.6rem .85rem; font-weight:500; font-size:.9rem; }
.sidebar .nav-link:hover{ background:rgba(255,255,255,.10); color:#fff; }
.sidebar .nav-link.active{ background:#fff; color:var(--brand); box-shadow:var(--shadow-sm); }
.sidebar .nav-link i{ width:1.3rem; }
.sidebar .cat{ font-size:.68rem; text-transform:uppercase; letter-spacing:.08em; color:#89a6e0; padding:.9rem 1.4rem .35rem; }
.main-wrap{ margin-left:260px; flex:1; min-width:0; display:flex; flex-direction:column; }
.app-topbar{ background:#fff; border-bottom:1px solid var(--line); padding:.7rem 1.25rem; position:sticky; top:0; z-index:1030; box-shadow:var(--shadow-sm); }
.app-content{ padding:1.5rem; flex:1; }
.sidebar-backdrop{ display:none; }
@media (max-width:991.98px){
  .sidebar{ transform:translateX(-100%); }
  .sidebar.show{ transform:translateX(0); }
  .main-wrap{ margin-left:0; }
  .sidebar-backdrop.show{ display:block; position:fixed; inset:0; background:rgba(8,42,104,.4); z-index:1035; }
}

/* ------------------------------------------------ TABLES */
.table thead th{ background:var(--sky-soft); color:var(--brand-dark); font-size:.78rem; text-transform:uppercase; letter-spacing:.03em; border-bottom:0; }
.table td{ vertical-align:middle; }

/* ------------------------------------------------ FORMS */
.form-label{ font-weight:500; font-size:.88rem; }
.form-control,.form-select{ border-radius:.55rem; border-color:var(--line); }
.form-control:focus,.form-select:focus{ border-color:var(--brand-2); box-shadow:0 0 0 .2rem rgba(22,87,201,.15); }
.required::after{ content:" *"; color:var(--accent); }

/* ------------------------------------------------ AUTH */
.auth-wrap{ min-height:100vh; display:grid; place-items:center;
  background:linear-gradient(135deg,var(--brand-dark),var(--brand) 60%,var(--brand-2)); padding:2rem 1rem; }
.auth-card{ max-width:440px; width:100%; border-radius:1rem; box-shadow:var(--shadow-lg); }

/* ------------------------------------------------ DETAIL */
.detail-cover{ border-radius:var(--radius); box-shadow:var(--shadow-md); background:var(--sky-soft);
  aspect-ratio:3/4; display:grid; place-items:center; color:var(--brand); overflow:hidden; }
.detail-cover img{ width:100%; height:100%; object-fit:cover; }
.meta-table th{ width:180px; color:var(--muted); font-weight:500; white-space:nowrap; }
.abstract-box{ background:var(--sky-soft); border-left:4px solid var(--brand); border-radius:.5rem; }

/* ------------------------------------------------ FOOTER */
.footer{ background:var(--brand-dark); color:#b9cbef; }
.footer a{ color:#d5e2ff; }
.footer a:hover{ color:#fff; }
.footer h6{ color:#fff; letter-spacing:.02em; }

/* ------------------------------------------------ MISC */
.badge{ font-weight:600; }
.breadcrumb{ --bs-breadcrumb-divider:'›'; font-size:.85rem; }
.empty-state{ padding:3rem 1rem; text-align:center; color:var(--muted); }
.empty-state i{ font-size:3rem; color:var(--sky); }
::selection{ background:var(--sky); color:var(--brand-dark); }
