:root { --sim-hijau: #2e7d32; --sim-hijau-tua: #1b5e20; --sim-latar: #f4f7f4; }
body { background: var(--sim-latar); font-size: .95rem; }
.sim-topbar { background: linear-gradient(90deg, var(--sim-hijau-tua), var(--sim-hijau)); }
.sim-sidebar { width: 240px; min-height: calc(100vh - 56px); background: #fff; border-right: 1px solid #e3e8e3; }
@media (min-width: 992px) { .sim-sidebar { flex: 0 0 240px; position: sticky; top: 56px; height: calc(100vh - 56px); overflow-y: auto; } }
.sim-sidebar .nav-link { color: #344; padding: .55rem 1.1rem; border-left: 3px solid transparent; }
.sim-sidebar .nav-link i { width: 1.4rem; display: inline-block; }
.sim-sidebar .nav-link:hover { background: #eef5ee; }
.sim-sidebar .nav-link.active { color: var(--sim-hijau-tua); background: #e3f0e3; border-left-color: var(--sim-hijau); font-weight: 600; }
.sim-submenu .nav-link { padding: .35rem 1rem .35rem 2.9rem; font-size: .88rem; font-weight: 400 !important; border-left: 0; background: transparent !important; }
.sim-submenu .nav-link.active { color: var(--sim-hijau); text-decoration: underline; }
.sim-main { min-width: 0; }
.card { border: 0; box-shadow: 0 1px 3px rgba(0,0,0,.08); }
.card-header { background: #fff; font-weight: 600; }
.stat-card .angka { font-size: 1.8rem; font-weight: 700; line-height: 1; }
.btn-sim { background: var(--sim-hijau); color: #fff; }
.btn-sim:hover { background: var(--sim-hijau-tua); color: #fff; }
.tabel-ilmiah th, .tabel-ilmiah td { text-align: center; vertical-align: middle; font-size: .85rem; padding: .3rem .4rem; }
.tabel-ilmiah .i1 { background: #c5e1a5; } .tabel-ilmiah .i2 { background: #bbdefb; } .tabel-ilmiah .i3 { background: #f8bbd0; }
.tabel-ilmiah td.kosong { background: #bdbdbd; }
.auth-wrap { min-height: calc(100vh - 140px); background: linear-gradient(160deg, #e8f5e9, #c8e6c9); }
.auth-card { max-width: 440px; }
.auth-card .card-header { background: var(--sim-hijau); color: #fff; text-align: center; }
.scaffold-note { border-left: 4px solid #f9a825; background: #fffde7; }
.fc .fc-toolbar-title { font-size: 1.1rem; }
.fc a { text-decoration: none; color: inherit; }
.publik .nav-link.btn-link { text-decoration: none; }
.beranda-hero { background: linear-gradient(120deg, var(--sim-hijau-tua), var(--sim-hijau)); color: #fff; }
.blok-teks p:last-child { margin-bottom: 0; }
/* ---- Dashboard berwarna ---- */
:root { --w-biru: #1e88e5; --w-hijau: #43a047; --w-oranye: #fb8c00; --w-ungu: #8e24aa; --w-tosca: #00acc1; --w-merah: #e53935; --w-indigo: #3949ab; --w-merah-muda: #d81b60; }
.sim-sidebar .nav-link[data-m] i { font-size: 1.05rem; }
.nav-link[data-m="dashboard"] i, .pintas[data-m="dashboard"] { --m: var(--w-hijau); }
[data-m="kegiatan"] { --m: var(--w-biru); } [data-m="jadwal"] { --m: var(--w-oranye); } [data-m="komponen"] { --m: var(--w-indigo); }
[data-m="evaluasi"] { --m: var(--w-ungu); } [data-m="pengembangan"] { --m: #f9a825; } [data-m="seleksi"] { --m: var(--w-tosca); }
[data-m="pengguna"] { --m: var(--w-merah-muda); } [data-m="presensi"] { --m: #6d4c41; } [data-m="report"] { --m: #546e7a; } [data-m="pengaturan"] { --m: #455a64; }
[data-m="dashboard"] { --m: var(--w-hijau); }
.sim-sidebar .nav-link[data-m] i { color: var(--m); }
.dash-hero { border-radius: 1rem; padding: 1.25rem 1.4rem; color: #fff; position: relative; overflow: hidden;
  background: radial-gradient(circle at 92% 10%, rgba(255,255,255,.18) 0 70px, transparent 71px), radial-gradient(circle at 80% 120%, rgba(255,255,255,.12) 0 120px, transparent 121px), linear-gradient(120deg, #1b5e20 0%, #2e7d32 35%, #00897b 70%, #1565c0 100%); box-shadow: 0 6px 18px rgba(27,94,32,.25); }
.dash-hero h4 { font-weight: 700; }
.dash-sapa { opacity: .85; font-size: .95rem; }
.dash-peran { background: rgba(255,255,255,.22); font-weight: 500; }
.dash-pintas { display: grid; grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)); gap: .55rem; }
.dash-pintas .pintas { display: flex; align-items: center; gap: .5rem; background: #fff; color: #263238; text-decoration: none; border-radius: .7rem; padding: .5rem .65rem; font-size: .85rem; font-weight: 600; box-shadow: 0 2px 6px rgba(0,0,0,.12); transition: transform .15s; }
.dash-pintas .pintas:hover { transform: translateY(-2px); }
.dash-pintas .pintas i { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; flex: 0 0 1.9rem; border-radius: .55rem; color: #fff; background: var(--m, var(--w-hijau)); }
.blok { --a: var(--w-hijau); border-top: 4px solid var(--a); border-radius: .75rem; overflow: hidden; }
.aksen-biru { --a: var(--w-biru); --a-l: #e3f2fd; } .aksen-hijau { --a: var(--w-hijau); --a-l: #e8f5e9; } .aksen-oranye { --a: var(--w-oranye); --a-l: #fff3e0; }
.aksen-ungu { --a: var(--w-ungu); --a-l: #f3e5f5; } .aksen-tosca { --a: var(--w-tosca); --a-l: #e0f7fa; } .aksen-merah { --a: var(--w-merah); --a-l: #ffebee; }
.aksen-indigo { --a: var(--w-indigo); --a-l: #e8eaf6; } .aksen-merah-muda { --a: var(--w-merah-muda); --a-l: #fce4ec; }
.blok > .card-header { background: linear-gradient(90deg, var(--a-l, #e8f5e9), #fff 85%); border-bottom: 1px solid var(--a-l, #e8f5e9); color: #263238; }
.blok-ikon { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; border-radius: 50%; background: var(--a); color: #fff; font-size: .95rem; box-shadow: 0 2px 5px rgba(0,0,0,.15); }
.blok .table:not(.tabel-ilmiah) thead th, .blok .table-light th { background: var(--a-l, #f1f8f1) !important; }
.stat-card { border-radius: .8rem; padding: .9rem 1rem; color: #fff; box-shadow: 0 4px 12px rgba(0,0,0,.12); }
.stat-card > i { font-size: 2rem; opacity: .9; }
.stat-biru { background: linear-gradient(135deg, #42a5f5, #1565c0); } .stat-hijau { background: linear-gradient(135deg, #66bb6a, #2e7d32); }
.stat-oranye { background: linear-gradient(135deg, #ffa726, #ef6c00); } .stat-ungu { background: linear-gradient(135deg, #ab47bc, #6a1b9a); }
.ikon-bulat { display: inline-grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; color: #fff; }
.warna-0 { --c: var(--w-biru); } .warna-1 { --c: var(--w-hijau); } .warna-2 { --c: var(--w-oranye); } .warna-3 { --c: var(--w-ungu); } .warna-4 { --c: var(--w-tosca); } .warna-5 { --c: var(--w-merah-muda); }
.ikon-bulat, .tgl-agenda { background: var(--c, var(--w-hijau)); color: #fff; }
.viz-root .progress { background: #eceff1; border-radius: 1rem; }
.viz-root .progress-bar { border-radius: 1rem; }
.viz-root .progress-bar.bg-success { background: linear-gradient(90deg, #66bb6a, #2e7d32) !important; }
.viz-root .progress-bar.bg-info { background: linear-gradient(90deg, #4fc3f7, #1e88e5) !important; color: #fff !important; }
.viz-root .progress-bar.bg-warning { background: linear-gradient(90deg, #ffd54f, #fb8c00) !important; }
.viz-root .progress-bar.bg-secondary { background: linear-gradient(90deg, #b0bec5, #78909c) !important; }
.dash-pintas .pintas span { min-width: 0; line-height: 1.15; overflow-wrap: anywhere; }
