:root{--bg:#f6f8f6;--card:#fff;--ink:#162018;--muted:#657068;--line:#dfe7e1;--primary:#2f6f4e;--primary2:#24583d;--soft:#eaf4ee;--danger:#b3261e;--warn:#9a6b00;--shadow:0 16px 35px rgba(22,32,24,.08)}
*{box-sizing:border-box}body{margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;background:var(--bg);color:var(--ink)}.topbar{position:sticky;top:0;z-index:10;background:rgba(255,255,255,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);padding:14px 28px;display:flex;justify-content:space-between;align-items:center;gap:16px}.brand{display:flex;align-items:center;gap:12px}.logo{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--primary),#8ab89a);color:#fff;display:grid;place-items:center;font-weight:800}.brand h1{font-size:20px;margin:0}.brand p{margin:2px 0 0;color:var(--muted);font-size:13px}.role-nav{display:flex;gap:8px;flex-wrap:wrap}.role-nav a{color:var(--primary2);text-decoration:none;border:1px solid var(--line);background:#fff;padding:9px 12px;border-radius:999px;font-weight:700;font-size:13px}.page{max-width:1240px;margin:0 auto;padding:28px}.panel{display:block}.hidden{display:none!important}.hero{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-bottom:18px}.badge{display:inline-flex;background:var(--soft);color:var(--primary2);border:1px solid #cfe3d5;border-radius:999px;padding:6px 10px;font-size:12px;font-weight:800}.hero h2{font-size:28px;margin:10px 0 6px}.hero p{margin:0;color:var(--muted);max-width:720px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow);margin-bottom:18px}.grid{display:grid;gap:18px}.grid.two{grid-template-columns:1.1fr .9fr}.grid.three{grid-template-columns:repeat(3,1fr)}.grid.four{grid-template-columns:repeat(4,1fr)}.compact{gap:12px}.form{display:grid;gap:12px}.form label,.inline-label{font-weight:700;color:#243127;font-size:13px}.form input,.form select,.form textarea,.toolbar input,.toolbar select{width:100%;margin-top:6px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:#fff;color:var(--ink);font:inherit}.inline-label select{min-width:170px}.toolbar{display:flex;gap:10px;align-items:end;margin-bottom:12px;flex-wrap:wrap}.toolbar.rich>*{flex:1;min-width:170px}.btn{border:0;border-radius:14px;padding:11px 14px;font-weight:800;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-size:14px}.btn.primary{background:var(--primary);color:#fff}.btn.primary:hover{background:var(--primary2)}.btn.secondary{background:var(--soft);color:var(--primary2);border:1px solid #cfe3d5}.btn.danger{background:#fbe9e7;color:var(--danger);border:1px solid #f3c2bd}.btn.small{padding:7px 9px;border-radius:10px;font-size:12px}.button-row{display:flex;gap:10px;flex-wrap:wrap}.notice{position:fixed;right:24px;bottom:24px;z-index:30;max-width:420px;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow);font-weight:700}.notice.ok{border-color:#bcdcc4;background:#f2faf4}.notice.err{border-color:#efc3bd;background:#fff4f2;color:var(--danger)}.school-list{display:grid;gap:12px}.school-item{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}.school-item strong{font-size:16px}.school-meta{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0}.pill{display:inline-flex;border:1px solid var(--line);background:#fafcfb;border-radius:999px;padding:4px 8px;color:var(--muted);font-size:12px}.quota{font-weight:900;color:var(--primary2)}.quota.low{color:var(--warn)}.quota.empty{color:var(--danger)}.summary.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.metric{border:1px solid var(--line);border-radius:18px;background:#fbfdfb;padding:14px}.metric span{display:block;color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.02em}.metric b{display:block;font-size:28px;margin-top:6px}.section-head{display:flex;justify-content:space-between;gap:16px;align-items:center}.section-head h3,.card h3{margin:0 0 6px}.muted{color:var(--muted);font-size:13px}.school-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(340px,1fr));gap:16px}.school-card{border:1px solid var(--line);border-radius:22px;background:#fff;overflow:hidden;box-shadow:0 8px 20px rgba(22,32,24,.05)}.school-card-head{padding:16px;background:linear-gradient(135deg,#f1f8f3,#fff);border-bottom:1px solid var(--line)}.school-card-head h3{margin:0;font-size:18px}.school-card-head p{margin:6px 0 0;color:var(--muted);font-size:13px}.student-list{display:grid;gap:10px;padding:14px}.student-row{border:1px solid var(--line);border-radius:16px;background:#fbfdfb;padding:12px}.student-main{display:grid;grid-template-columns:34px 1fr;gap:10px}.student-no{width:28px;height:28px;border-radius:9px;background:var(--soft);color:var(--primary2);display:grid;place-items:center;font-weight:900}.student-name{font-weight:900}.student-meta{color:var(--muted);font-size:12px;margin-top:3px}.advisor-box{display:grid;gap:8px;margin-top:10px}.advisor-box select,.advisor-box input{width:100%;padding:9px 10px;border:1px solid var(--line);border-radius:12px;background:#fff}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:16px;background:#fff}table{border-collapse:collapse;width:100%;font-size:13px}th,td{padding:10px 11px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{background:#f0f6f2;color:#203125;position:sticky;top:0;z-index:1}td select{padding:8px;border:1px solid var(--line);border-radius:10px;min-width:180px}.tabs{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.tab{border:1px solid var(--line);border-radius:999px;padding:10px 13px;background:#fff;color:var(--primary2);font-weight:800;cursor:pointer}.tab.active{background:var(--primary);color:#fff}.upload-box{border:1px dashed #bdd2c3;background:#fbfdfb;border-radius:18px;padding:16px;margin:12px 0;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.receipt-box dl{display:grid;grid-template-columns:120px 1fr;gap:8px}.receipt-box dt{font-weight:900}.receipt-box dd{margin:0}.footer{text-align:center;color:var(--muted);font-size:12px;padding:30px}.print-title{display:none}@media(max-width:860px){.topbar,.hero,.section-head{flex-direction:column;align-items:flex-start}.grid.two,.grid.three,.grid.four,.summary.cards{grid-template-columns:1fr}.page{padding:18px}.school-card-grid{grid-template-columns:1fr}}@media print{.topbar,.footer,.tabs,.toolbar,.btn,.notice,.upload-box{display:none!important}body{background:#fff}.page{max-width:none;padding:0}.card{box-shadow:none;border:0;padding:0}.print-title{display:block}.table-wrap{border:0}th{position:static}.school-card-grid{display:block}.school-card{break-inside:avoid;margin-bottom:14px;box-shadow:none}}

.export-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:14px 0 18px}
.export-box{border:1px solid var(--line);border-radius:18px;padding:14px;background:#fff}
.export-box h4{margin:0 0 10px;color:var(--green-dark)}
.export-box select{width:100%;margin-bottom:10px}
.export-preview-head{margin-top:10px}
@media(max-width:1000px){.export-grid{grid-template-columns:1fr}}

/* Revisi v5: kartu sekolah/kuota seperti versi lama */
.school-item{position:relative;transition:background .18s ease,border-color .18s ease,box-shadow .18s ease,transform .18s ease;cursor:pointer}
.school-item:hover,.school-item.selected{background:#edf8f1;border-color:#91cda4;box-shadow:0 12px 28px rgba(31,111,59,.12);transform:translateY(-1px)}
.school-item.full{cursor:not-allowed}
.school-item.full:hover{background:#fff7f6;border-color:#e7aaa3}
.school-topline{display:flex;gap:10px;align-items:flex-start}
.school-title-wrap{display:grid;gap:4px;min-width:0}
.quota-dot{width:17px;height:17px;border-radius:999px;display:inline-flex;flex:0 0 17px;margin-top:2px;border:2px solid #fff;box-shadow:0 0 0 2px rgba(33,47,38,.08)}
.quota-dot.empty{background:#21a45b}
.quota-dot.partial{background:#f4b740}
.quota-dot.full{background:#d94b3d}
.quota-label{font-size:11px;font-weight:900;letter-spacing:.01em;border-radius:999px;padding:3px 8px;width:max-content}
.quota-label.empty{background:#e8f8ee;color:#14733b;border:1px solid #b9e3c5}
.quota-label.partial{background:#fff6dc;color:#8a5b00;border:1px solid #f2d48a}
.quota-label.full{background:#ffe9e6;color:#a52c22;border:1px solid #efb4ad}
.quota-row{margin:10px 0 12px;display:grid;gap:7px}
.quota-text{font-size:12px;color:var(--muted);font-weight:700}
.quota-text b{color:var(--ink);font-size:14px}
.quota-track{height:8px;border-radius:999px;background:#eef3ef;overflow:hidden;border:1px solid #dfe8e2}
.quota-track span{display:block;height:100%;border-radius:999px;transition:width .25s ease}
.quota-track span.empty{background:#21a45b}
.quota-track span.partial{background:#f4b740}
.quota-track span.full{background:#d94b3d}
.choose-school-btn:disabled{opacity:.65;cursor:not-allowed;background:#bfc6c1;color:#fff}
.advisor-school-status{margin-top:10px;padding:9px 10px;border-radius:12px;background:#fff;border:1px solid var(--line);font-size:13px;color:var(--primary2)}.advisor-school-box{margin-top:10px;background:#fbfdfb;border:1px dashed #c7dccd;border-radius:14px;padding:10px}.advisor-school-box .btn{width:100%}


/* Revisi v7: mahasiswa pilih prodi dulu + kartu Prodi lebih hidup */
.student-prodi-toolbar{background:#f2faf5;border:1px solid #cfe3d5;border-radius:18px;padding:12px;margin:8px 0 16px}
.student-prodi-toolbar select{font-weight:800;color:var(--primary2);background:#fff}
.prodi-school-card{transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .18s ease;cursor:pointer;color:#102016}
.prodi-school-card:hover,.prodi-school-card.selected{background:#edf8f1;border-color:#8fc79f;box-shadow:0 18px 36px rgba(31,111,59,.14);transform:translateY(-2px)}
.prodi-school-card:hover .school-card-head,.prodi-school-card.selected .school-card-head{background:linear-gradient(135deg,#e4f5e9,#ffffff)}
.prodi-school-title{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.prodi-school-title h3{font-size:19px;color:#12351f;letter-spacing:.01em}
.prodi-school-number{width:32px;height:32px;border-radius:12px;background:var(--primary);color:#fff;display:inline-grid;place-items:center;font-weight:900;box-shadow:0 8px 18px rgba(47,111,78,.18);flex:0 0 32px}
.school-address{color:#304238!important;font-weight:650;line-height:1.45}
.school-count{color:#1f5135!important;font-weight:850}
.advisor-school-status.empty{background:#fff8e6;border-color:#ead292;color:#7a5400}
.advisor-school-status.filled{background:#edf8f1;border-color:#b9dfc4;color:#1b6338}
.student-row{transition:background .18s ease,border-color .18s ease}.prodi-school-card:hover .student-row{background:#ffffff;border-color:#cfe3d5}

/* Revisi v8: header hijau UIN seperti versi awal */
.topbar{
  background:linear-gradient(135deg,#0b6b3a 0%,#11834a 55%,#18a05c 100%)!important;
  color:#ffffff!important;
  border:0!important;
  box-shadow:0 18px 42px rgba(15,107,58,.20)!important;
}
.brand{align-items:center!important}
.logo-img{
  width:62px;
  height:62px;
  object-fit:contain;
  border-radius:18px;
  background:rgba(255,255,255,.96);
  padding:7px;
  box-shadow:0 8px 22px rgba(0,0,0,.15);
  flex:0 0 62px;
}
.brand-text h1{
  color:#ffffff!important;
  font-size:25px!important;
  letter-spacing:.02em;
  margin-bottom:4px!important;
}
.brand-text p{
  color:rgba(255,255,255,.94)!important;
  font-weight:650;
  font-size:14px;
}
.role-nav a{
  color:#ffffff!important;
  background:rgba(255,255,255,.14)!important;
  border:1px solid rgba(255,255,255,.25)!important;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
  transition:all .2s ease;
}
.role-nav a:hover{
  background:rgba(255,255,255,.24)!important;
  transform:translateY(-1px);
}
.role-nav a.active{
  background:#ffffff!important;
  color:#0b6b3a!important;
  border-color:#ffffff!important;
}
@media(max-width:860px){.logo-img{width:56px;height:56px;flex-basis:56px}.brand-text h1{font-size:21px!important}}


/* Revisi v9: logo UIN Jakarta dan label daftar mahasiswa di kartu Prodi */
.logo-img {
  width: 68px;
  height: 68px;
  object-fit: contain;
  background: #ffffff;
  border-radius: 18px;
  padding: 7px;
  box-shadow: 0 10px 24px rgba(0,0,0,.16);
}
.student-list-title {
  margin: 14px 0 8px;
  padding-top: 12px;
  border-top: 1px solid rgba(15, 107, 58, .16);
  color: #0f6b3a;
  font-weight: 900;
  letter-spacing: .2px;
}
.prodi-school-card.selected .student-list-title,
.prodi-school-card:hover .student-list-title {
  color: #075f46;
}


/* Revisi v10: sejajarkan judul Daftar Mahasiswa dengan angka nomor pertama */
.student-list-title {
  margin-left: 26px;
  margin-right: 14px;
}
@media(max-width:860px){
  .student-list-title {
    margin-left: 24px;
    margin-right: 12px;
  }
}


/* Revisi v11: Admin tab order, refresh sekolah visible, dan mode handphone */

.registration-card-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
}
.registration-card-head h3{
  margin:0;
}
.school-search-toolbar{
  align-items:stretch;
}
.school-search-toolbar input{
  flex:1 1 260px;
}
.refresh-schools-btn{
  flex:0 0 auto;
  min-width:190px;
  background:#e7f6eb!important;
  color:#0b6b3a!important;
  border:1.5px solid #94cfa5!important;
  box-shadow:0 8px 18px rgba(15,107,58,.10);
}
.refresh-schools-btn:hover{
  background:#d9f1e0!important;
  transform:translateY(-1px);
}
.admin-tabs{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:10px;
}
.admin-tabs .tab{
  width:100%;
  border-radius:16px;
  padding:12px 12px;
  white-space:normal;
  line-height:1.25;
}
@media(max-width:860px){
  .topbar{
    padding:14px 16px!important;
    gap:12px!important;
  }
  .brand{
    width:100%;
    align-items:center!important;
  }
  .role-nav{
    width:100%;
    display:grid!important;
    grid-template-columns:repeat(3,1fr);
    gap:8px;
  }
  .role-nav a{
    text-align:center;
    padding:10px 8px!important;
    font-size:13px!important;
  }
  .hero{
    gap:10px;
    margin-bottom:14px;
  }
  .hero h2{
    font-size:24px;
    line-height:1.2;
  }
  .card{
    padding:15px;
    border-radius:18px;
  }
  .toolbar.school-search-toolbar{
    display:grid;
    grid-template-columns:1fr;
    gap:9px;
  }
  .registration-card-head{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  .refresh-schools-btn{
    width:100%;
    min-width:0;
  }
  .admin-tabs{
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .admin-tabs .tab{
    border-radius:14px;
    min-height:48px;
    font-size:13px;
  }
  .upload-box{
    display:grid;
    grid-template-columns:1fr;
  }
  .upload-box .btn, .button-row .btn{
    width:100%;
  }
  .export-grid{
    grid-template-columns:1fr!important;
  }
  .student-main{
    grid-template-columns:30px 1fr;
  }
  .school-card-grid{
    grid-template-columns:1fr!important;
  }
}
@media(max-width:520px){
  .brand-text h1{font-size:18px!important;}
  .brand-text p{font-size:12px!important;line-height:1.35;}
  .logo-img{width:52px!important;height:52px!important;flex-basis:52px!important;}
  .page{padding:14px!important;}
  .role-nav{grid-template-columns:1fr 1fr 1fr;}
  .admin-tabs{grid-template-columns:1fr;}
  .summary.cards{grid-template-columns:1fr!important;}
  table{font-size:12px;}
  th,td{padding:8px;}
}


/* Revisi v13: pilihan sekolah masuk list antrian dan bukti pendaftaran siap screenshot */
.school-item.locked{opacity:.62;filter:saturate(.75);cursor:not-allowed}
.school-item.locked:hover{transform:none;background:#fff;border-color:var(--line);box-shadow:none}
.school-item.queued{background:#eaf8ef!important;border-color:#72bd89!important;box-shadow:0 14px 32px rgba(31,111,59,.16)!important}
.school-item.queued::after{content:'Masuk list antrian';position:absolute;right:12px;top:12px;background:#1f6f3b;color:#fff;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:900;letter-spacing:.02em}
.queue-notice{border:1px solid #b9d9c2;background:#f0faf3;color:#1f5b35;border-radius:14px;padding:10px 12px;font-size:13px;line-height:1.45;margin-top:-4px}
.receipt{scroll-margin-top:90px}
.receipt-box.screenshot-ready{border:1px solid #b9d9c2;background:linear-gradient(180deg,#ffffff,#f4fbf6);border-radius:18px;padding:16px;box-shadow:0 8px 22px rgba(22,32,24,.08)}
.receipt-official-head{display:grid;gap:2px;border-bottom:1px solid #d7e7db;padding-bottom:10px;margin-bottom:12px;color:#173f29}
.receipt-official-head b{font-size:17px;letter-spacing:.02em}.receipt-official-head span{font-size:13px;color:#54705d;font-weight:700}
.receipt-note{margin-top:12px;padding:10px 12px;border-radius:13px;background:#eaf8ef;color:#1f5b35;font-size:13px;font-weight:700}
@media(max-width:680px){.school-item.queued::after{position:static;display:inline-flex;margin-top:10px}.receipt-box dl{grid-template-columns:1fr}.receipt-box dt{margin-top:6px}.receipt-box dd{padding-bottom:6px;border-bottom:1px dashed #d7e7db}}


/* Revisi v14: urutan tab Admin dibuat lebih natural dan lebih cantik */
.admin-tabs{
  display:grid!important;
  grid-template-columns:1.25fr 1fr 1fr .9fr!important;
  gap:10px!important;
  align-items:stretch;
}
.admin-tabs .tab{
  width:100%;
  border-radius:18px!important;
  padding:13px 14px!important;
  min-height:54px;
  background:linear-gradient(135deg,#ffffff,#f4faf6)!important;
  border:1px solid #cfe3d5!important;
  color:#0b6b3a!important;
  box-shadow:0 8px 18px rgba(15,107,58,.08);
  transition:transform .18s ease, box-shadow .18s ease, background .18s ease;
}
.admin-tabs .tab:hover{
  transform:translateY(-2px);
  background:#eaf7ee!important;
  box-shadow:0 12px 24px rgba(15,107,58,.14);
}
.admin-tabs .tab.active{
  background:linear-gradient(135deg,#0f6b3a,#1d8a50)!important;
  color:#fff!important;
  border-color:#0f6b3a!important;
  box-shadow:0 12px 24px rgba(15,107,58,.22);
}
@media(max-width:860px){
  .admin-tabs{grid-template-columns:1fr 1fr!important;}
  .admin-tabs .tab{min-height:52px;font-size:13px!important;}
}
@media(max-width:520px){
  .admin-tabs{grid-template-columns:1fr!important;}
}


/* Revisi v20: link akses admin dan pembatasan menu sesuai role */
.link-list-admin{display:grid;gap:12px;margin-top:10px}
.link-item-admin{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px 16px;border:1px solid rgba(22,101,52,.14);border-radius:18px;background:linear-gradient(135deg,#ffffff,#f5fbf7)}
.link-item-admin div{display:flex;flex-direction:column;gap:4px;min-width:0}
.link-item-admin b{color:#11442a;font-weight:800}
.link-item-admin span{color:#4b6356;word-break:break-all;font-size:.96rem}
/* v24: Menu Mahasiswa/Prodi/Admin tetap tampil agar fitur tidak terlihat hilang.
   Pembatasan akses nanti dikunci dengan token saat backend sudah siap. */
.role-nav a{display:inline-flex}
.role-nav.role-admin a{display:inline-flex}
@media(max-width:700px){.link-item-admin{align-items:flex-start;flex-direction:column}.link-item-admin .btn{width:100%;justify-content:center}}

/* Revisi v25: Form Pendaftaran Mahasiswa tetap terlihat saat daftar sekolah discroll */
@media (min-width: 861px) {
  #studentView .registration-card {
    position: sticky;
    top: 96px;
    align-self: start;
    max-height: calc(100vh - 120px);
    overflow-y: auto;
  }
}

/* Revisi v27: status buka/tutup pendaftaran dan daftar terlambat */
.window-banner{
  border:1px solid #cfe3d5;
  border-radius:20px;
  padding:14px 16px;
  margin:0 0 16px;
  line-height:1.5;
  box-shadow:0 10px 24px rgba(22,32,24,.06);
}
.window-banner.ok{background:#eefaf2;color:#175c35;border-color:#aed7bb}
.window-banner.warn{background:#fff9e8;color:#7b5200;border-color:#f3d889}
.window-banner.err{background:#fff1f0;color:#8a1f16;border-color:#efb8b1}
.late-box{margin-top:18px;border-top:1px solid var(--line);padding-top:18px}
.late-box h3{margin-top:0}
.admin-tabs{grid-template-columns:1.25fr 1fr 1fr 1fr .9fr!important;}
@media(max-width:980px){.admin-tabs{grid-template-columns:1fr 1fr!important;}}
@media(max-width:520px){.admin-tabs{grid-template-columns:1fr!important;}}

/* v31: Admin kelola mahasiswa manual */
.admin-student-form {
  margin-top: 12px;
  padding: 14px;
  border: 1px solid rgba(31, 122, 75, 0.16);
  border-radius: 18px;
  background: rgba(248, 253, 249, 0.86);
}
.table-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.btn.danger {
  background: #fff1f1;
  border: 1px solid #fecaca;
  color: #9f1239;
}
.btn.danger:hover {
  background: #ffe4e6;
}
.small-note {
  margin: 4px 0 0;
  font-size: .92em;
}
@media (max-width: 720px) {
  .table-actions { flex-direction: column; }
  .table-actions .btn { width: 100%; }
}


#schoolProposalView .card{max-width:980px;margin:0 auto}
#schoolProposalResult{margin-top:14px}
@media(min-width:861px){.admin-tabs{grid-template-columns:repeat(5,minmax(0,1fr))}}

/* v34: Bar menu atas dapat disembunyikan untuk mode launching */
.role-nav.nav-hidden {
  display: none !important;
}
.nav-control-box {
  margin-top: 14px;
  padding: 14px;
  border: 1px solid rgba(18, 99, 61, 0.14);
  border-radius: 16px;
  background: rgba(236, 253, 245, 0.65);
}
.nav-control-actions {
  margin-top: 10px;
  justify-content: flex-start;
}
.pill.muted-pill {
  display: inline-flex;
  align-items: center;
  min-height: 34px;
  padding: 6px 12px;
  border-radius: 999px;
  background: #f3f4f6;
  border: 1px solid #e5e7eb;
  color: #374151;
  font-weight: 700;
}
@media (max-width: 720px) {
  .nav-control-actions { align-items: stretch; }
  .nav-control-actions .btn, .nav-control-actions .pill { width: 100%; justify-content: center; }
}


/* v38: Penegasan filter lokal agar pengguna tidak panik */
.local-filter-note {
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(18, 99, 61, 0.16);
  background: rgba(236, 253, 245, 0.68);
  color: #285943;
  font-weight: 700;
  line-height: 1.45;
}
.toolbar .btn.secondary {
  white-space: nowrap;
}
@media (max-width: 720px) {
  .toolbar.rich #resetStatusFiltersBtn,
  .toolbar.rich #resetAdminFiltersBtn { width: 100%; }
}

/* Tombol Tampilkan Semua dibuat jelas, tetapi tetap bersih: dasar putih, garis pink, teks pink kuat */
.btn.reset-attention {
  background: #ffffff;
  color: #be185d;
  border: 2px solid #f9a8d4;
  box-shadow: 0 8px 18px rgba(190, 24, 93, 0.10);
  font-weight: 800;
}

.btn.reset-attention:hover,
.btn.reset-attention:focus {
  background: #fdf2f8;
  color: #9d174d;
  border-color: #ec4899;
  transform: translateY(-1px);
  box-shadow: 0 12px 24px rgba(190, 24, 93, 0.14);
}
.field-help{display:block;margin-top:6px;color:var(--muted);font-size:12px;font-weight:600;line-height:1.35}

/* Revisi v46: pencarian online sekolah pada Pengajuan Sekolah Tambahan */
.online-school-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:8px}
.online-school-tools .inline-help{margin-top:0;display:inline-flex;align-items:center;min-height:30px}
.pac-container{z-index:99999!important;border-radius:14px;box-shadow:0 16px 35px rgba(22,32,24,.12);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif}
@media(max-width:700px){.online-school-tools .btn{width:100%}.online-school-tools .inline-help{width:100%}}

/* v48: Auto-isi nama dan alamat sekolah dari pencarian online */
.online-school-tools{align-items:stretch;position:relative}
.online-search-row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.school-suggestions{
  width:100%;
  margin-top:8px;
  border:1px solid rgba(18,99,61,.18);
  border-radius:18px;
  background:#fff;
  box-shadow:0 18px 40px rgba(15,72,43,.14);
  overflow:hidden;
  z-index:30;
}
.school-suggestion-item{
  width:100%;
  border:0;
  border-bottom:1px solid rgba(18,99,61,.10);
  background:#fff;
  text-align:left;
  padding:12px 14px;
  display:flex;
  flex-direction:column;
  gap:4px;
  cursor:pointer;
  color:var(--text);
}
.school-suggestion-item:hover{background:#eef9f2}
.school-suggestion-item b{font-size:14px;color:#0f5132}
.school-suggestion-item span{font-size:12px;color:#647067;line-height:1.35}
.suggestion-empty{padding:12px 14px;color:#be185d;font-weight:700;background:#fff7fb}
.text-danger{color:#be185d!important}
.text-ok{color:#0f7a45!important}
@media(max-width:700px){.online-search-row{width:100%}.online-search-row .btn{flex:1 1 100%}.school-suggestions{border-radius:14px}}
.school-suggestion-item em{display:block;margin-top:4px;font-size:11px;font-style:normal;color:#0f766e;font-weight:800}

/* v50: sekolah sebelumnya pada pengajuan sekolah tambahan */
.previous-school-box{
  border:1px solid rgba(21, 104, 61, .18);
  background:#f7fcf8;
  border-radius:20px;
  padding:18px;
  margin:10px 0 14px;
}
.previous-school-box h4{ margin:0 0 4px; color:#0f5132; }
.queue-notice.small{ font-size:.92rem; padding:12px 14px; margin-top:10px; }
.proposal-group-list{ margin:8px 0 0; padding-left:20px; }
.proposal-group-list li{ margin:3px 0; }
.warning-soft{ border-color:#f3c56a !important; background:#fff8e7 !important; color:#5f4610 !important; }


/* v51: Notifikasi admin untuk pengajuan sekolah yang diwakilkan */
.admin-alert-soft{
  margin: 14px 0 16px;
  padding: 14px 16px;
  border-radius: 18px;
  border: 1px solid #f9a8d4;
  background: #fff7fb;
  color: #9d174d;
  font-weight: 700;
  line-height: 1.45;
}
.admin-alert-soft.hidden{display:none!important}


/* v53: panggil data lama mahasiswa dari SIPENA */
.proposal-lookup-box{
  margin: 10px 0 14px;
  padding: 12px;
  border-radius: 18px;
  background: #f7fffb;
  border: 1px solid #bbf7d0;
  box-shadow: 0 10px 24px rgba(21,128,61,.08);
}
.proposal-lookup-box.hidden{display:none!important}
.lookup-head{
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-bottom:10px;
  color:#14532d;
}
.lookup-head span{
  color:#4b5563;
  font-size:.92rem;
  font-weight:600;
}
.lookup-results{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  gap:10px;
}
.lookup-item{
  text-align:left;
  border:1px solid #d1fae5;
  background:#ffffff;
  border-radius:16px;
  padding:12px;
  cursor:pointer;
  transition:.18s ease;
  font:inherit;
}
.lookup-item:hover{
  border-color:#22c55e;
  background:#ecfdf5;
  transform:translateY(-1px);
}
.lookup-name{
  display:block;
  font-weight:800;
  color:#064e3b;
  margin-bottom:4px;
}
.lookup-meta,.lookup-school{
  display:block;
  color:#475569;
  font-size:.92rem;
  line-height:1.35;
}
.lookup-school{
  margin-top:4px;
  font-weight:700;
}

/* v54: paksa bar role tampil untuk mode editing */
.role-nav, .role-nav.nav-hidden{
  display:flex!important;
  visibility:visible!important;
  opacity:1!important;
}
.sipena-version-badge{
  position:fixed;
  right:14px;
  bottom:14px;
  z-index:9999;
  background:#14532d;
  color:#fff;
  border-radius:999px;
  padding:8px 12px;
  font-weight:800;
  box-shadow:0 10px 24px rgba(0,0,0,.16);
  font-size:13px;
}

.lookup-action-row{
  display:flex;
  align-items:center;
  gap:10px;
  flex-wrap:wrap;
  margin:8px 0 10px;
}
.lookup-empty{
  padding:10px 12px;
  border-radius:14px;
  background:#fff7ed;
  border:1px solid #fed7aa;
  color:#9a3412;
  font-weight:700;
}

.required-mark{color:#dc2626;font-weight:900}


/* v56: daftar link akses lebih ringkas dan hidup */
.admin-links-card{padding:22px!important}
.link-list-admin{
  display:grid!important;
  grid-template-columns:repeat(auto-fit,minmax(280px,1fr));
  gap:12px!important;
}
.link-item-admin{
  min-height:auto!important;
  padding:14px 16px!important;
  border-radius:18px!important;
  background:#ffffff!important;
  border:1px solid #dbeee3!important;
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease, background .18s ease!important;
}
.link-item-admin:hover{
  background:#f0fdf4!important;
  border-color:#86efac!important;
  transform:translateY(-2px);
  box-shadow:0 12px 26px rgba(21,128,61,.12);
}
.link-item-admin > div{
  min-width:0;
}
.link-item-admin b{
  font-size:1rem!important;
  margin-bottom:2px!important;
}
.link-item-admin span{
  display:block!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  color:#476054!important;
  font-size:.92rem!important;
  font-weight:650!important;
}
.link-item-admin .btn{
  padding:8px 12px!important;
  white-space:nowrap!important;
}
@media(max-width:700px){
  .link-list-admin{grid-template-columns:1fr!important}
  .link-item-admin{gap:10px!important;align-items:flex-start!important}
}

.proposal-guidance{
  margin: 12px 0 18px;
  padding: 14px 16px;
  border-radius: 18px;
  background: #f0fdf4;
  border: 1px solid #86efac;
  color: #14532d;
  font-weight: 700;
  line-height: 1.5;
}
.proposal-guidance b{color:#064e3b}

.prodi-lecturer-manager-card{margin-top:16px}
.prodi-lecturer-list{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:10px;
}
.prodi-lecturer-item{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  padding:12px 14px;
  border:1px solid #fee2e2;
  border-radius:16px;
  background:#fff;
  transition:.18s ease;
}
.prodi-lecturer-item:hover{
  background:#fff7f7;
  border-color:#fca5a5;
  transform:translateY(-1px);
}
.prodi-lecturer-item span{
  font-weight:800;
  color:#334155;
}


/* v59: tombol Edit/Hapus dosen kecil, rapi, dan manis */
.mini-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:wrap;
}
.btn-mini{
  border:0;
  border-radius:999px;
  padding:6px 10px;
  font-size:.78rem;
  font-weight:800;
  line-height:1;
  cursor:pointer;
  transition:transform .16s ease, box-shadow .16s ease, background .16s ease;
}
.btn-mini:hover{
  transform:translateY(-1px);
  box-shadow:0 7px 16px rgba(15,23,42,.12);
}
.btn-mini.edit{
  background:#ecfdf5;
  color:#047857;
  border:1px solid #bbf7d0;
}
.btn-mini.edit:hover{
  background:#d1fae5;
}
.btn-mini.delete{
  background:#fff1f2;
  color:#be123c;
  border:1px solid #fecdd3;
}
.btn-mini.delete:hover{
  background:#ffe4e6;
}
.prodi-lecturer-item{
  padding:10px 12px!important;
  border-radius:14px!important;
}
.prodi-lecturer-item span{
  font-size:.95rem;
  line-height:1.25;
}
.prodi-lecturer-list{
  gap:8px!important;
}
@media(max-width:700px){
  .mini-actions{justify-content:flex-start}
  .btn-mini{padding:7px 11px}
}

.lecturer-edit-note{
  font-size:.9rem;
  color:#64748b;
  font-weight:650;
}

/* v61: pastikan tombol Edit/Hapus dosen selalu tampil */
#lecturerTable .mini-actions,
.prodi-lecturer-item .mini-actions{
  display:flex!important;
  gap:6px!important;
  align-items:center!important;
  justify-content:flex-start!important;
}
#lecturerTable .btn-mini,
.prodi-lecturer-item .btn-mini{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
}

.section-subcard{
  margin-top:18px;
  padding:16px;
  border:1px solid #dbeee3;
  border-radius:18px;
  background:#fbfffd;
}
.section-subcard h4{margin:0 0 6px;color:#14532d}
.mou-active{color:#047857;font-weight:800}
.mou-inactive{color:#b91c1c;font-weight:800}

.admin-feature-hint{
  margin:12px 0 16px;
  padding:12px 14px;
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  color:#14532d;
  border-radius:16px;
  font-weight:700;
}
.school-management-card{
  margin-top:20px;
  border:1px solid #bbf7d0!important;
  background:#fcfffd!important;
}
#adminMouPanel{
  border:1px solid #bbf7d0;
}

.mou-pdf-upload-card{
  margin-bottom:18px;
  border:1px dashed #86efac;
  background:#f8fffb;
}
.upload-result{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid #bbf7d0;
  background:#f0fdf4;
  color:#14532d;
  font-weight:700;
  line-height:1.45;
}
.upload-result.hidden{display:none!important}
.upload-result a{color:#047857;font-weight:900}

.btn-mini.copy{
  background:#eef2ff;
  color:#4338ca;
  border:1px solid #c7d2fe;
  text-decoration:none;
}
.btn-mini.copy:hover{background:#e0e7ff}
.btn-mini.view{
  background:#ecfdf5;
  color:#047857;
  border:1px solid #bbf7d0;
  text-decoration:none;
}
.btn-mini.view:hover{background:#d1fae5}
#mouTable .mini-actions,
#schoolManagementTable .mini-actions{
  gap:6px;
}

#mouReadOnlyView .btn-mini.view{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
