/* ======================================================================
   AIS css_utama.css - ZKoss 5.x Bootstrap-like UI Core
   Target: ZK 5.x Breeze, kompatibel dengan Java/ZUL/JSP lama.

   Catatan:
   - File ini menjadi pusat seluruh styling utama aplikasi.
   - File theme pilihan tenant/sekolah/PT hanya berisi token warna.
   - Urutan load: zk.wcs -> css_utama.css -> theme pilihan.
   - MyThemeProvider menambahkan timemilis agar cache browser tidak menahan CSS lama.
   ====================================================================== */
:root {
  --ais-theme-primary:#007131;
  --ais-theme-primary-rgb:0,113,49;
  --ais-theme-primary-dark:#005c28;
  --ais-theme-accent:#e27d21;
  --ais-theme-accent-rgb:226,125,33;
  --ais-theme-accent-dark:#b95f12;
  --ais-theme-primary-bg:linear-gradient(92deg,#006b32 0%,#0f8a4b 42%,#e27d21 100%);
  --ais-theme-contrast:#fff;
  --theme-primary:#007131;
  --theme-primary-dark:#005c28;
  --theme-light:rgba(var(--ais-theme-primary-rgb),.10);
  --theme-hover:#e27d21;
  --theme-gradient:linear-gradient(92deg,#006b32 0%,#0f8a4b 42%,#e27d21 100%);
  --theme-scrollbar-thumb:#007131;
  --theme-text-on-primary:#fff;
  --theme-text-shadow:0 1px 4px rgba(0,0,0,.28);
  --ais-bg:#f5f7fb;
  --ais-bg-soft:#f8fafc;
  --ais-surface:#fff;
  --ais-surface-2:#fbfdff;
  --ais-border:#dce6ef;
  --ais-border-soft:#edf2f7;
  --ais-text:#1f2937;
  --ais-text-muted:#64748b;
  --ais-link:#006b32;
  --ais-danger:#dc2626;
  --ais-warning:#e27d21;
  --ais-success:#16a34a;
  --ais-info:#2563eb;
  --ais-radius-sm:6px;
  --ais-radius:10px;
  --ais-radius-lg:16px;
  --ais-shadow-xs:0 1px 2px rgba(15,23,42,.06);
  --ais-shadow:0 8px 24px rgba(15,23,42,.10);
  --ais-shadow-lg:0 18px 45px rgba(15,23,42,.18);
  --ais-focus:rgba(var(--ais-theme-accent-rgb),.24);
  --ais-font:Poppins,Arial,Helvetica,sans-serif;
}
html,body{width:100%!important;min-height:100%!important;margin:0!important;background:var(--ais-bg)!important;color:var(--ais-text)!important;font-family:var(--ais-font)!important;overflow-x:hidden!important;}
body.breeze{background:radial-gradient(circle at top left,rgba(var(--ais-theme-accent-rgb),.10),transparent 28%),radial-gradient(circle at top right,rgba(var(--ais-theme-primary-rgb),.10),transparent 26%),var(--ais-bg)!important;}
*,*:before,*:after{box-sizing:border-box;}
.z-label,.z-a,.z-radio-cnt,.z-checkbox-cnt,.z-toolbarbutton-cnt,div.z-column-cnt,div.z-row-cnt,div.z-listcell-cnt,div.z-listheader-cnt,div.z-treecell-cnt,div.z-treecol-cnt,.z-window-embedded-header,.z-window-modal-header,.z-window-highlighted-header,.z-window-overlapped-header,.z-window-popup-header,.z-panel-header,.z-fieldset legend,.z-loading,input,textarea,select,button{font-family:var(--ais-font)!important;}
.z-label,.z-radio-cnt,.z-checkbox-cnt,.z-a,div.z-row-cnt,div.z-listcell-cnt,div.z-treecell-cnt{font-size:12px!important;line-height:1.45!important;}
.z-a,a.z-a,.z-a:visited{color:var(--ais-link)!important;text-decoration:none!important;}
.z-a:hover,a.z-a:hover,a.z-a span.z-label:hover{color:var(--ais-theme-accent)!important;text-decoration:none!important;}
::-webkit-scrollbar{width:8px;height:8px;}::-webkit-scrollbar-track{background:#eef2f7;border-radius:999px;}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--ais-theme-primary),var(--ais-theme-accent));border-radius:999px;border:1px solid rgba(255,255,255,.7);}::-webkit-scrollbar-thumb:hover{background:var(--ais-theme-accent-dark);}

/* =========================== SHELL UTAMA =========================== */
.main-responsive-root,.zk55-responsive-shell,.main-responsive-root .z-window-embedded-cnt,.main-responsive-root .z-window-embedded-cnt-noborder,.main-responsive-main-grid,.main-responsive-main-grid>.z-grid-body,.main-responsive-frame,.main-responsive-center,.main-responsive-tabbox,.main-responsive-tabpanels,.main-responsive-home-panel{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box!important;}
.main-responsive-root,.zk55-responsive-shell{background:var(--ais-bg)!important;}
.main-responsive-main-grid,.main-responsive-main-grid>.z-grid-body,.main-responsive-main-grid .z-row-inner,.main-responsive-main-grid .z-cell,.main-responsive-main-grid tr.z-row,.main-responsive-main-grid tr.z-grid-odd,.main-responsive-main-grid tr.z-grid-odd td.z-row-inner{background:transparent!important;border:0!important;padding:0!important;}
/* Menimpa inline height sangat besar, misalnya 3000px, agar area kerja mengikuti layar. */
.main-responsive-frame{height:calc(100vh - 112px)!important;min-height:520px!important;max-height:none!important;overflow:hidden!important;background:var(--ais-bg)!important;}
.main-responsive-center,.main-responsive-center .z-center-body,.main-responsive-tabbox,.main-responsive-tabpanels,.main-responsive-home-panel{height:100%!important;overflow:hidden!important;background:var(--ais-bg)!important;}
.main-responsive-home-panel{overflow:auto!important;padding:10px!important;}

/* =========================== HEADER / NAVBAR ======================== */

.gridHeader,
.headerHbox,
.rowHeader,
.ais-theme-header,
.navigasi {
    background: var(--ais-theme-primary-bg) !important;
    color: var(--ais-theme-contrast) !important;
}

.headerHbox .z-label,
.headerHbox .z-a,
.headerHbox .z-toolbarbutton-cnt,
.gridHeader .z-label,
.gridHeader .z-a,
.gridHeader .z-toolbarbutton-cnt,
.rowHeader .z-label,
.rowHeader .z-a,
.rowHeader .z-toolbarbutton-cnt,
.ais-theme-header .z-label,
.ais-theme-header .z-a,
.ais-theme-header .z-toolbarbutton-cnt,
.user_button_profile,
.users_online_button,
.menu_item {
    color: var(--ais-theme-contrast) !important;
}

.main-responsive-header,.main-responsive-header-grid{background:var(--ais-theme-primary-bg)!important;color:var(--ais-theme-contrast)!important;}
.main-responsive-header{position:relative!important;min-height:86px!important;box-shadow:0 10px 28px rgba(15,23,42,.16)!important;border-bottom:1px solid rgba(255,255,255,.18)!important;overflow:visible!important;z-index:20!important;}
.main-responsive-header:before{content:"";position:absolute;left:0;top:0;right:0;bottom:0;background:linear-gradient(135deg,rgba(255,255,255,.16),transparent 36%,rgba(255,255,255,.08));pointer-events:none;}
.main-responsive-header-grid,.main-responsive-header-grid .z-grid-body,.main-responsive-header-grid .z-row-inner,.main-responsive-header-grid .z-cell,.main-responsive-header .z-row-cnt{position:relative!important;z-index:2!important;background:transparent!important;border:0!important;overflow:visible!important;}
.main-responsive-header img,.headerHbox img,.gridHeader img{max-height:48px!important;object-fit:contain!important;}
.title1,.main-responsive-header .title1,.gridHeader .title1{display:block!important;color:#fff!important;font-size:18px!important;font-weight:800!important;line-height:1.2!important;letter-spacing:.1px!important;text-shadow:var(--theme-text-shadow)!important;white-space:normal!important;}
.motto,.main-responsive-header .motto,.gridHeader .motto,.alamat{display:block!important;color:rgba(255,255,255,.86)!important;font-size:11.5px!important;font-weight:500!important;line-height:1.25!important;text-shadow:0 1px 3px rgba(0,0,0,.24)!important;white-space:normal!important;}
.main-responsive-header .z-label,.main-responsive-header .z-a,.main-responsive-header .z-toolbarbutton-cnt,.fa-big{color:var(--ais-theme-contrast)!important;}
.user_button_profile,.main-responsive-header-actions .z-a,.main-responsive-header-actions .z-toolbarbutton,.main-responsive-header-actions .z-toolbarbutton-cnt{display:inline-block!important;padding:5px 8px!important;border-radius:999px!important;color:#fff!important;text-shadow:none!important;transition:background .15s ease,transform .15s ease!important;}
.user_button_profile:hover,.main-responsive-header-actions .z-a:hover,.main-responsive-header-actions .z-toolbarbutton:hover{background:rgba(255,255,255,.16)!important;color:#fff!important;transform:translateY(-1px);}
.users_online_button,.main-responsive-online-button,.main-responsive-online-button .z-toolbarbutton-cnt{display:inline-block!important;margin-top:3px!important;padding:4px 10px!important;border-radius:999px!important;background:rgba(255,255,255,.16)!important;border:1px solid rgba(255,255,255,.24)!important;color:#fff!important;font-size:10px!important;font-weight:600!important;line-height:1.3!important;text-shadow:none!important;}

/* Shortcut modul di bawah header dibuat horizontal-scroll agar tidak melayang. */
/* Baris tombol modul: transparan agar mengikuti background header tema */
.main-responsive-module-row,.headerHbox.main-responsive-module-row{min-height:38px!important;background:transparent!important;border-top:1px solid rgba(255,255,255,.14)!important;}
.main-responsive-module-row .z-row-cnt,.main-responsive-module-row .z-row-inner,.main-responsive-module-row .z-cell{background:transparent!important;border:0!important;}
.main-responsive-module-row .z-toolbarbutton,.main-responsive-module-row .z-toolbarbutton-body,.main-responsive-module-row .z-toolbarbutton-cnt{display:inline-block!important;vertical-align:middle!important;}
.main-responsive-module-row .z-toolbarbutton{margin:4px 3px!important;border-radius:999px!important;background:rgba(255,255,255,.11)!important;border:1px solid rgba(255,255,255,.16)!important;transition:background .16s ease,transform .16s ease,box-shadow .16s ease!important;}
.main-responsive-module-row .z-toolbarbutton-cnt{padding:6px 10px!important;color:#fff!important;font-size:11px!important;font-weight:600!important;line-height:1.2!important;}
.main-responsive-module-row .z-toolbarbutton:hover,.main-responsive-module-row .z-toolbarbutton-over{background:rgba(255,255,255,.22)!important;box-shadow:0 6px 18px rgba(0,0,0,.14)!important;transform:translateY(-1px);}
.main-responsive-module-row img{max-width:16px!important;max-height:16px!important;margin-right:3px!important;vertical-align:-3px!important;}

/* =========================== SIDEBAR ================================ */
.navigasi,.main-responsive-sidebar,.z-west.main-responsive-sidebar,.main-responsive-sidebar .z-west-body{background:var(--ais-theme-primary-bg)!important;color:var(--ais-theme-contrast)!important;}
.main-responsive-sidebar,.z-west.main-responsive-sidebar{height:calc(100vh - 112px)!important;max-height:calc(100vh - 112px)!important;min-height:520px!important;overflow-y:auto!important;overflow-x:hidden!important;border-right:1px solid rgba(255,255,255,.10)!important;box-shadow:inset -1px 0 0 rgba(255,255,255,.08),8px 0 24px rgba(15,23,42,.10)!important;}
.main-responsive-sidebar .z-west-header,.navigasi .z-west-header,.z-west-header,.z-center-header,.z-east-header,.z-north-header,.z-south-header{background:rgba(255,255,255,.12)!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.13)!important;color:#fff!important;font-size:12px!important;font-weight:700!important;line-height:20px!important;padding:7px 10px!important;text-shadow:none!important;}
.main-responsive-sidebar .z-grid,.main-responsive-sidebar .z-grid-body,.main-responsive-sidebar tr.z-row,.main-responsive-sidebar td.z-row-inner,.main-responsive-sidebar .z-cell,.main-responsive-sidebar .z-row-cnt,.navigasi .z-grid,.navigasi .z-grid-body,.navigasi tr.z-row,.navigasi td.z-row-inner,.navigasi .z-cell,.navigasi .z-row-cnt{background:transparent!important;border:0!important;color:#fff!important;}
.main-responsive-sidebar .z-a,.main-responsive-sidebar .z-label,.navigasi .z-a,.navigasi .z-label,.cari_menu{color:var(--ais-theme-contrast)!important;text-shadow:none!important;}
.main-responsive-sidebar tr.z-row:hover,.main-responsive-sidebar tr.z-row-over,.navigasi tr.z-row:hover,.navigasi tr.z-row-over{background:rgba(255,255,255,.12)!important;}

/* =========================== GRID / TABLE =========================== */
.z-grid,.z-listbox,.z-dottree,div.z-tree{background:var(--ais-surface)!important;border:1px solid var(--ais-border)!important;border-radius:var(--ais-radius)!important;box-shadow:var(--ais-shadow-xs)!important;overflow:hidden!important;}
.main-responsive-main-grid,.main-responsive-header-grid,.main-responsive-sidebar .z-grid,.navigasi .z-grid{border:0!important;border-radius:0!important;box-shadow:none!important;}
div.z-grid-body,div.z-listbox-body,div.z-dottree-body,div.z-tree-body{background:transparent!important;border:0!important;overflow:hidden !important;overflow-y:auto !important;width:100%!important;}
div.z-grid-header,div.z-listbox-header,div.z-dottree-header,div.z-tree-header{background:#f8fafc!important;border-bottom:1px solid var(--ais-border)!important;}
div.z-grid-header tr.z-columns,div.z-grid-header tr.z-auxhead,div.z-listbox-header tr.z-listhead,div.z-dottree-header tr.z-treecols,div.z-tree-header tr.z-treecols{background:#f8fafc!important;background-image:none!important;}
th.z-column,th.z-listheader,th.z-treecol{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;border-right:1px solid var(--ais-border-soft)!important;border-bottom:1px solid var(--ais-border)!important;padding:0!important;}
div.z-column-cnt,div.z-listheader-cnt,div.z-treecol-cnt{color:#334155!important;font-size:11px!important;font-weight:700!important;letter-spacing:.01em!important;padding:8px 9px!important;text-transform:none!important;}
tr.z-row td.z-row-inner,tr.z-row .z-cell,tr.z-listitem td.z-listcell,tr.z-treerow td.z-treecell{background:#fff!important;border:0!important;border-bottom:1px solid var(--ais-border-soft)!important;padding:0!important;}
tr.z-grid-odd td.z-row-inner,tr.z-grid-odd .z-cell,tr.z-listitem-odd td.z-listcell{background:#fbfdff!important;}
tr.z-row-over>td.z-row-inner,tr.z-row-over>.z-cell,tr.z-listitem-over>td.z-listcell,tr.z-treerow-over>td.z-treecell{background:var(--theme-light)!important;color:#111827!important;}
tr.z-row-seld>td.z-row-inner,tr.z-listitem-seld>td.z-listcell,tr.z-treerow-seld>td.z-treecell{background:rgba(var(--ais-theme-primary-rgb),.10)!important;}
div.z-row-cnt,div.z-listcell-cnt,div.z-treecell-cnt{color:#334155!important;padding:7px 9px!important;}
tr.z-group,td.z-group-inner{background:var(--ais-theme-primary-bg)!important;border:0!important;color:#fff!important;}
.z-group-inner .z-group-cnt,.z-group-inner .z-group-cnt .z-label{color:#fff!important;font-size:11px!important;font-weight:700!important;padding:5px 8px!important;text-shadow:none!important;}
.z-grid-empty-body td,.z-listbox-empty-body td{padding:18px!important;color:var(--ais-text-muted)!important;text-align:center!important;background:#fff!important;}

/* =========================== TABS =================================== */
.z-tabbox,.z-tabbox-ver{background:transparent!important;border:0!important;}
.z-tabs-scroll,.z-tabs,.z-tabs-ver-scroll,.z-tabs-ver{background:transparent!important;border:0!important;}
.z-tabs .z-tabs-cnt,.z-tabs-ver .z-tabs-ver-cnt{background:transparent!important;border:0!important;margin:0!important;padding:4px 4px 0 4px!important;}
.z-tabs-cnt li,.z-tab,.z-tab-seld,.z-tab-ver,.z-tab-ver-seld{border:0!important;background:transparent!important;margin-right:3px!important;}
.z-tab-hl,.z-tab-hr,.z-tab-hm,.z-tab-ver-hl,.z-tab-ver-hr,.z-tab-ver-hm{background:#fff!important;background-image:none!important;border:1px solid var(--ais-border)!important;border-bottom:0!important;border-radius:10px 10px 0 0!important;padding:0!important;}
.z-tab .z-tab-text,.z-tab-seld .z-tab-text{font-size:12px!important;padding:8px 13px!important;color:#475569!important;font-weight:600!important;}
.z-tab-seld .z-tab-hl,.z-tab-seld .z-tab-hr,.z-tab-seld .z-tab-hm,.z-tab-ver-seld .z-tab-ver-hl,.z-tab-ver-seld .z-tab-ver-hr,.z-tab-ver-seld .z-tab-ver-hm{background:#fff!important;border-color:rgba(var(--ais-theme-primary-rgb),.35)!important;box-shadow:0 -2px 10px rgba(15,23,42,.07)!important;}
.z-tab-seld .z-tab-text,.z-tab-ver-seld .z-tab-ver-text{color:var(--ais-theme-primary)!important;font-weight:800!important;}
.z-tabpanel,.z-tabbox-ver .z-tabpanels-ver{background:var(--ais-surface)!important;border:1px solid var(--ais-border)!important;border-radius:0 0 var(--ais-radius) var(--ais-radius)!important;padding:8px!important;overflow:hidden!important;}
.main-responsive-tabbox .z-tabpanel,.main-responsive-tabbox .z-tabpanels,.main-responsive-tabbox .z-tabpanels-cnt{height:100%!important;}

/* =========================== FORM & BUTTON ========================== */
.z-textbox,.z-decimalbox,.z-intbox,.z-longbox,.z-doublebox,.z-combobox-inp,.z-bandbox-inp,.z-datebox-inp,.z-timebox-inp,.z-spinner-inp,.z-doublespinner-inp,textarea.z-textbox,input[type=text],input[type=password],input[type=search],select{background:#fff!important;border:1px solid #cbd5e1!important;border-radius:6px!important;color:#111827!important;font-size:12px!important;min-height:24px!important;padding:4px 7px!important;box-shadow:inset 0 1px 2px rgba(15,23,42,.04)!important;}
.z-textbox:focus,.z-decimalbox:focus,.z-intbox:focus,.z-longbox:focus,.z-doublebox:focus,.z-combobox-inp:focus,.z-bandbox-inp:focus,.z-datebox-inp:focus,.z-timebox-inp:focus,textarea.z-textbox:focus,input:focus,textarea:focus{outline:none!important;border-color:var(--ais-theme-accent)!important;box-shadow:0 0 0 3px var(--ais-focus)!important;}
input[type=text]:disabled,.z-textbox[disabled],.z-combobox-inp[disabled]{background:#f1f5f9!important;color:#64748b!important;border-color:#dbe3ec!important;}
.z-combobox-btn,.z-bandbox-btn,.z-datebox-btn,.z-timebox-btn,.z-spinner-btn,.z-doublespinner-btn,.z-combobox-rounded-btn,.z-bandbox-rounded-btn,.z-datebox-rounded-btn,.z-timebox-rounded-btn,.z-spinner-rounded-btn,.z-doublespinner-rounded-btn{background:#f8fafc!important;border:1px solid #cbd5e1!important;border-left:0!important;border-radius:0 6px 6px 0!important;height:24px!important;width:22px!important;}
.z-button,input.button,button,.btn,.btn-primary{background:var(--ais-theme-primary-bg)!important;border:1px solid var(--ais-theme-primary-dark)!important;border-radius:6px!important;color:#fff!important;cursor:pointer!important;font-weight:700!important;font-size:12px!important;line-height:1.25!important;padding:6px 12px!important;text-shadow:none!important;box-shadow:var(--ais-shadow-xs)!important;}
.z-button:hover,input.button:hover,button:hover,.btn:hover,.btn-primary:hover{background:linear-gradient(92deg,var(--ais-theme-primary-dark),var(--ais-theme-accent-dark))!important;color:#fff!important;box-shadow:0 8px 18px rgba(15,23,42,.16)!important;transform:translateY(-1px);}
.z-toolbarbutton{border-radius:6px!important;color:var(--ais-theme-primary)!important;}
.z-toolbarbutton-cnt{padding:5px 7px!important;font-size:12px!important;font-weight:700!important;}
.z-toolbarbutton:hover,.z-toolbarbutton-over{background:rgba(var(--ais-theme-primary-rgb),.08)!important;color:var(--ais-theme-primary)!important;}

/* =========================== TOOLBAR / PAGING ======================= */
.z-toolbar,.ais-toolbar{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;border:1px solid var(--ais-border)!important;border-radius:var(--ais-radius)!important;padding:6px!important;color:var(--ais-text)!important;box-shadow:var(--ais-shadow-xs)!important;min-height: 46px;}
.z-paging,.z-paging-os{background:#fff!important;border:1px solid var(--ais-border)!important;border-radius:0 0 var(--ais-radius) var(--ais-radius)!important;padding:5px!important;box-shadow:none!important;}
.z-paging-os .z-paging-os-cnt{background:#fff!important;border:1px solid var(--ais-border)!important;border-radius:6px!important;color:#334155!important;font-size:12px!important;margin:0 2px!important;padding:3px 7px!important;text-decoration:none!important;}
.z-paging-os .z-paging-os-seld{background:var(--ais-theme-primary-bg)!important;border-color:var(--ais-theme-primary)!important;color:#fff!important;font-weight:800!important;text-shadow:none!important;}

/* =========================== WINDOW / PANEL / POPUP ================= */
.z-window-embedded,.z-window-modal,.z-window-highlighted,.z-window-overlapped,.z-window-popup,.z-panel{border:0!important;background:transparent!important;}
.z-window-embedded-cnt,.z-window-embedded-cnt-noborder,.z-window-modal-cm,.z-window-highlighted-cm,.z-window-overlapped-cm,.z-window-popup-cm,.z-panel-children{background:var(--ais-surface)!important;border:1px solid var(--ais-border)!important;border-radius:var(--ais-radius-lg)!important;box-shadow:var(--ais-shadow)!important;color:var(--ais-text)!important;overflow:hidden!important;}
.z-window-embedded-header,.z-window-modal-header,.z-window-highlighted-header,.z-window-overlapped-header,.z-window-popup-header,.z-panel-header,.z-panel-hl .z-panel-header{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;border-bottom:1px solid var(--ais-border)!important;color:#0f172a!important;font-size:14px!important;font-weight:800!important;padding:10px 12px!important;}
.z-window-modal-shadow,.z-window-highlighted-shadow{box-shadow:0 22px 70px rgba(15,23,42,.34)!important;}
.z-popup .z-popup-cl,.z-menu-popup .z-menu-popup-cnt,.z-combobox-shadow,.z-bandbox-shadow,.z-datebox-shadow{background:#fff!important;border:1px solid var(--ais-border)!important;border-radius:10px!important;box-shadow:var(--ais-shadow-lg)!important;color:var(--ais-text)!important;overflow:auto !important;}
.z-menu-popup .z-menu-popup-cnt,.z-menu-popup-cnt .z-menu a.z-menu-cnt,.z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt{background:#fff!important;color:#334155!important;border:0!important;}
.z-menu-popup-cnt .z-menu a.z-menu-cnt,.z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt{padding:7px 12px!important;font-size:12px!important;}
.z-menu-popup-cnt .z-menu-over,.z-menu-popup-cnt .z-menu-item-over{background:var(--theme-light)!important;color:var(--ais-theme-primary)!important;}
.z-fieldset{border:1px solid var(--ais-border)!important;border-radius:var(--ais-radius)!important;background:#fff!important;padding:8px!important;}
.z-fieldset legend,h2,h4{background:var(--ais-theme-primary-bg)!important;color:#fff!important;border:0!important;border-radius:999px!important;font-size:12px!important;font-weight:800!important;padding:5px 12px!important;text-shadow:none!important;}
.z-fieldset-cnt{overflow:auto!important;padding:7px!important;}

/* =========================== TREE / MENU ============================ */
tr.z-treerow,tr.z-treerow a,tr.z-treerow a:visited{background:transparent!important;color:inherit!important;font-size:12px!important;text-decoration:none!important;}
tr.z-treerow:hover,tr.z-treerow-seld{background:var(--theme-light)!important;}
.z-treerow-seld .z-treecell-text,.z-treerow-seld .z-a{color:var(--ais-theme-primary)!important;font-weight:700!important;}
.z-menubar-ver,.z-menubar-hor{background:transparent!important;background-image:none!important;border:0!important;}
.z-menubar-hor .z-menu,.z-menubar-hor .z-menu-item,.z-menubar-hor .z-menu-btn,.z-menubar-hor .z-menu-item-btn,.z-menubar-hor span,.z-menubar-hor a,.z-menubar-hor div,.z-menubar-ver .z-menu,.z-menubar-ver .z-menu-item,.z-menubar-ver .z-menu-btn,.z-menubar-ver .z-menu-item-btn,.z-menubar-ver span,.z-menubar-ver a,.z-menubar-ver div,.z-menu-cnt,.z-menu-item-cnt{font-family:var(--ais-font)!important;font-size:12px!important;font-weight:600!important;white-space:nowrap!important;}

/* =========================== CARD HTML MODERN DI VIEW SOURCE ========= */
.ais-profile-card,.ais-akad-card,.ais-card,.ais-panel,.ais-dashboard-card,.ais-soft-panel,.ais-mywindow,.ais-mygrid,.ais-mypanel,.ais-groupbox-styled,.ais-vbox-styled,.ais-hbox-styled,.ais-div{background:#fff!important;border:1px solid var(--ais-border)!important;border-radius:16px!important;box-shadow:0 12px 30px rgba(15,23,42,.08)!important;color:#0f172a!important;overflow:hidden!important;}
.ais-profile-head,.ais-akad-head{background:linear-gradient(135deg,rgba(var(--ais-theme-primary-rgb),.08) 0%,rgba(var(--ais-theme-accent-rgb),.10) 100%)!important;border-bottom:1px solid var(--ais-border)!important;border-left:4px solid var(--ais-theme-accent)!important;padding:14px 16px!important;}
.ais-profile-title,.ais-akad-title,.ais-title,.ais-section-title{color:#0f172a!important;font-weight:900!important;letter-spacing:-.01em!important;}
.ais-profile-desc,.ais-akad-desc,.ais-help,.ais-description,.ais-muted{color:var(--ais-text-muted)!important;}
.ais-profile-stat,.ais-akad-stat{background:linear-gradient(180deg,#fff 0%,#f8fafc 100%)!important;border:1px solid var(--ais-border)!important;border-radius:14px!important;box-shadow:0 6px 16px rgba(15,23,42,.06)!important;}
.ais-pill,.ais-badge{background:rgba(var(--ais-theme-primary-rgb),.10)!important;border:1px solid rgba(var(--ais-theme-primary-rgb),.24)!important;border-radius:999px!important;color:var(--ais-theme-primary)!important;display:inline-block!important;padding:2px 8px!important;font-weight:700!important;}

/* =========================== UTILITAS ================================ */
.no-highlight tr.z-grid-odd td.z-row-inner,.no-highlight tr.z-grid-odd .z-cell,.no-highlight tr.z-grid-odd,.no-highlight tr.z-row-over>td.z-row-inner{background:transparent!important;}
.profile_sclass{padding-top:0!important;}.gambar_profile{border:1px solid rgba(255,255,255,.75)!important;border-radius:16px!important;aspect-ratio:1;object-fit:cover;box-shadow:0 8px 20px rgba(15,23,42,.20)!important;}
.fa{display:inline-block;padding-left:6px;padding-right:4px;font-size:17px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;}.fa-small{font-size:14px!important;}.fa:hover{color:var(--ais-theme-accent)!important;}
.headerHbox_mobile{background:var(--ais-theme-primary-bg)!important;min-height:210px!important;height:210px!important;}
.z-north,.z-south,.z-west,.z-east,.z-center{border:0!important;border-radius:0!important;background:transparent!important;padding-top:0!important;}
.z-east-splt,.z-west-splt,.z-north-splt,.z-south-splt{background:transparent!important;}

@media screen and (max-width:900px){
  .main-responsive-header{min-height:96px!important;}
  .main-responsive-frame,.main-responsive-sidebar,.z-west.main-responsive-sidebar{height:calc(100vh - 132px)!important;max-height:calc(100vh - 132px)!important;min-height:460px!important;}
  .title1,.main-responsive-header .title1{font-size:15px!important;}
  .motto,.main-responsive-header .motto{font-size:10.5px!important;}
  .main-responsive-module-row .z-toolbarbutton-cnt{font-size:10.5px!important;padding:6px 8px!important;}
  .z-tab .z-tab-text,.z-tab-seld .z-tab-text{padding:7px 10px!important;font-size:11px!important;}
}
@media screen and (max-width:560px){
  .main-responsive-header{min-height:108px!important;}
  .main-responsive-header img,.headerHbox img,.gridHeader img{max-height:40px!important;}
  .main-responsive-frame,.main-responsive-sidebar,.z-west.main-responsive-sidebar{height:calc(100vh - 148px)!important;max-height:calc(100vh - 148px)!important;min-height:420px!important;}
  .z-window-embedded-header,.z-window-modal-header,.z-panel-header{font-size:13px!important;padding:8px 10px!important;}
  div.z-column-cnt,div.z-listheader-cnt,div.z-row-cnt,div.z-listcell-cnt{padding:6px 7px!important;}
}


/* =========================== UTILITY AIS ============================== */
.ais-m-0 { margin: 0 !important; }
.ais-mt-1 { margin-top: 4px !important; }
.ais-mt-2 { margin-top: 8px !important; }
.ais-mb-1 { margin-bottom: 4px !important; }
.ais-mb-2 { margin-bottom: 8px !important; }
.ais-p-1 { padding: 4px !important; }
.ais-p-2 { padding: 8px !important; }
.ais-p-3 { padding: 12px !important; }
.ais-w-100 { width: 100% !important; }
.ais-h-100 { height: 100% !important; }
.ais-text-right { text-align: right !important; }
.ais-text-center { text-align: center !important; }
.ais-font-bold { font-weight: bold !important; }

/* ======================================================================
   AIS INLINE-STYLE MIGRATION LAYER
   Style lama yang dulu tersebar di Java/ZUL dipusatkan di sini.
   File theme hanya mengubah token warna :root.
   ====================================================================== */
.ais-label-bold,
.ais-label-bold .z-label,
.ais-label-bold-config {
  font-size:14px !important;
  font-weight:800 !important;
}
.ais-label-bold-only {
  font-weight:800 !important;
}
.ais-label-bold-red {
  font-size:14px !important;
  font-weight:800 !important;
  color:var(--ais-danger) !important;
}
.ais-label-bolder {
  font-size:16px !important;
  font-weight:900 !important;
}
.ais-label-small,
.ais-label-small .z-label {
  font-size:11px !important;
}
.ais-label-small-bold {
  font-size:11px !important;
  font-weight:800 !important;
}
.ais-label-small-bold-red {
  font-size:11px !important;
  font-weight:800 !important;
  color:var(--ais-danger) !important;
}
.ais-label-small-bold-green {
  font-size:11px !important;
  font-weight:800 !important;
  color:var(--ais-success) !important;
}
.ais-label-small-bold-blue {
  font-size:11px !important;
  font-weight:800 !important;
  color:var(--ais-info) !important;
}
.ais-label-large {
  font-size:14px !important;
}
.ais-label-xsmall {
  font-size:9px !important;
}
.ais-caption-styled,
.z-caption.ais-caption-styled,
.ais-caption-styled .z-caption-cnt {
  background:var(--ais-surface-muted) !important;
  border:1px solid var(--ais-border) !important;
  border-radius:8px 16px !important;
  color:var(--ais-text) !important;
  display:inline-block !important;
  font-size:12px !important;
  font-weight:800 !important;
  padding:5px 8px !important;
  text-decoration:none !important;
}
.ais-caption-styled .ais-caption-text {
  margin-left:5px !important;
}
.ais-button-border-awesome,
a.ais-button-border-awesome,
.ais-button-border-awesome.z-a {
  background:#fff !important;
  border:1px solid var(--ais-border) !important;
  border-radius:8px !important;
  box-shadow:0 1px 2px rgba(60,64,67,.30),0 1px 3px rgba(60,64,67,.15) !important;
  color:var(--ais-text) !important;
  display:inline-block !important;
  padding:10px 5px 5px 5px !important;
  text-decoration:none !important;
}
.ais-button-border-awesome:hover {
  border-color:rgba(var(--ais-theme-primary-rgb),.35) !important;
  box-shadow:0 8px 18px rgba(15,23,42,.14) !important;
  color:var(--ais-theme-primary) !important;
}
.ais-button-config,
.z-button.ais-button-config {
  font-size:12.5px !important;
}
.ais-button-important,
.z-button.ais-button-important {
  font-size:15px !important;
  font-weight:800 !important;
}
.ais-checkbox-config,
.ais-checkbox-config .z-checkbox-cnt {
  font-size:11px !important;
}
.ais-checkbox-picked,
.ais-checkbox-picked .z-checkbox-cnt {
  font-weight:700 !important;
}
.ais-checkbox-xsmall,
.ais-checkbox-xsmall .z-checkbox-cnt {
  font-size:9px !important;
}
.ais-comboitem-small,
.ais-comboitem-small .z-comboitem-text {
  font-size:8px !important;
}
.ais-numberbox,
.ais-numberbox.z-intbox,
.ais-numberbox.z-doublebox,
.ais-numberbox input,
.ais-text-right-input,
.ais-text-right-input input {
  text-align:right !important;
}
.ais-groupbox-styled {
  border:1px solid #bdbbbb !important;
  border-radius:8px !important;
  background:rgba(255,255,255,.78) !important;
  box-shadow:0 1px 3px rgba(15,23,42,.12) !important;
  box-sizing:border-box !important;
  margin:auto !important;
  max-width:97% !important;
  overflow:hidden !important;
  padding:1px 2px 2px 0 !important;
  width:97% !important;
}
.ais-hbox-styled,
.ais-vbox-styled {
  border:1px solid #bdbbbb !important;
  border-radius:8px 8px 20px 20px !important;
  background:rgba(255,255,255,.78) !important;
  box-sizing:border-box !important;
  padding:10px !important;
  width:100% !important;
}
.ais-row-styled,
tr.ais-row-styled td.z-row-inner,
tr.ais-row-styled .z-cell {
  background:rgba(255,255,255,.50) !important;
}
.ais-row-transparent,
tr.ais-row-transparent td.z-row-inner,
tr.ais-row-transparent .z-cell {
  background:transparent !important;
  border:0 !important;
}
.ais-borderless-layout,
.ais-borderless-layout-region,
.ais-borderless-layout .z-borderlayout,
.ais-borderless-layout-region.z-center,
.ais-borderless-layout-region .z-center-body {
  border:0 !important;
  background:transparent !important;
}
.ais-div {
  min-height:40px !important;
  overflow:hidden !important;
  overflow-y:hidden !important;
  width:100% !important;
}
.ais-mypanel,
.z-panel.ais-mypanel {
  border:0 !important;
  background:transparent !important;
}
.ais-mygrid,
.dgrid,
.fgrid,
.dtabel,
.ftabel {
  background:transparent !important;
  border:0 !important;
}
.ais-spreadsheet {
  max-height:2000px !important;
  min-height:50px !important;
  overflow:auto !important;
}
.ais-ckeditor {
  min-height:450px !important;
}
.ais-borderlayout-bg {
  background:transparent !important;
}

/* ======================================================================
   AIS SHELL ALIGNMENT HOTFIX - MainAction/index.zul
   Menghindari header/frame hanya memakai separuh layar akibat kalkulasi
   width ZK Grid/Borderlayout lama setelah style inline dipusatkan.
   ====================================================================== */
.main-responsive-main-grid,
.main-responsive-main-grid > .z-grid-body,
.main-responsive-main-grid > .z-grid-body > table,
.main-responsive-main-grid > .z-grid-body > table > tbody,
.main-responsive-main-grid > .z-grid-body > table > tbody > tr,
.main-responsive-main-grid > .z-grid-body > table > tbody > tr > td.z-row-inner,
.main-responsive-main-grid > .z-grid-body > table > tbody > tr > td.z-row-inner > .z-row-cnt {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.main-responsive-main-grid > .z-grid-body > table,
.main-responsive-header-grid > .z-grid-body > table {
    table-layout: fixed !important;
}
.main-responsive-header-grid,
.main-responsive-header-grid > .z-grid-body,
.main-responsive-header-grid > .z-grid-body > table,
.main-responsive-header-grid .z-row-inner,
.main-responsive-header-grid .z-row-cnt {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.main-responsive-header-grid .z-column,
.main-responsive-header-grid th.z-column {
    box-sizing: border-box !important;
}
.main-responsive-brand-box,
.main-responsive-brand-box table,
.main-responsive-brand-box tbody,
.main-responsive-brand-box tr,
.main-responsive-header-right,
.main-responsive-header-actions,
.main-responsive-module-strip {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.main-responsive-brand-box {
    min-width: 0 !important;
    padding: 8px 12px !important;
}
.main-responsive-header-right {
    min-width: 0 !important;
    padding: 7px 12px 6px 8px !important;
}
.main-responsive-module-strip {
    display: block !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
    padding-left: 8px !important;
    padding-right: 8px !important;
}
.main-responsive-frame {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 560px !important;
    height: calc(100vh - 112px) !important;
    overflow: hidden !important;
}
.main-responsive-frame .main-responsive-sidebar,
.main-responsive-frame .z-west.main-responsive-sidebar {
    top: 0 !important;
    left: 0 !important;
    width: 250px !important;
    max-width: 250px !important;
    min-width: 220px !important;
    height: 100% !important;
    max-height: 100% !important;
}
.main-responsive-frame .main-responsive-center,
.main-responsive-frame .z-center.main-responsive-center {
    top: 0 !important;
    left: 250px !important;
    right: 0 !important;
    width: auto !important;
    max-width: none !important;
    height: 100% !important;
    overflow: hidden !important;
}
.main-responsive-center .z-center-body,
.main-responsive-tabbox,
.main-responsive-tabs,
.main-responsive-tabpanels,
.main-responsive-tabpanels .z-tabpanel,
.main-responsive-home-panel {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    box-sizing: border-box !important;
}
.main-responsive-tabbox,
.main-responsive-tabpanels,
.main-responsive-tabpanels .z-tabpanel,
.main-responsive-home-panel {
    height: 100% !important;
    max-height: 100% !important;
}
.main-responsive-home-panel,
.main-responsive-tabpanels .z-tabpanel {
    overflow: auto !important;
}
.main-responsive-home-panel .z-tabpanel-cnt,
.main-responsive-tabpanels .z-tabpanel-cnt {
    min-height: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
}
.main-responsive-footer {
    display: none !important;
}
@media screen and (max-width: 760px) {
    .main-responsive-frame .main-responsive-sidebar,
    .main-responsive-frame .z-west.main-responsive-sidebar {
        width: 220px !important;
        max-width: 220px !important;
    }
    .main-responsive-frame .main-responsive-center,
    .main-responsive-frame .z-center.main-responsive-center {
        left: 220px !important;
    }
}


/* ======================================================================
   AIS PROFILE / AKADEMIK HTML STYLE - dipusatkan dari ProfileUiHelper dan
   DashboardAkademikHtmlCssHelper. Jangan sisipkan lagi <style> di Java/Html.
   ====================================================================== */
.ais-profile-modern,
.ais-akad-card { font-family: var(--ais-font) !important; color: #0f172a !important; }
.ais-profile-card { margin: 10px 0 14px 0 !important; }
.ais-profile-head { padding: 14px 16px !important; }
.ais-profile-title { font-size: 15px !important; line-height: 1.35 !important; }
.ais-profile-desc { font-size: 11.5px !important; line-height: 1.55 !important; margin-top: 4px !important; }
.ais-profile-grid { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; padding: 12px !important; }
.ais-profile-stat { flex: 1 1 115px !important; min-width: 105px !important; padding: 11px !important; }
.ais-profile-stat .label { font-size: 10px !important; color: #64748b !important; text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; }
.ais-profile-stat .value { font-size: 18px !important; color: #0f172a !important; font-weight: 800 !important; margin-top: 4px !important; }
.ais-profile-stat .hint { font-size: 10.5px !important; color: #64748b !important; margin-top: 4px !important; line-height: 1.35 !important; }
.ais-profile-chart-wrap { padding: 12px !important; }
.ais-profile-trend { display: flex !important; align-items: flex-end !important; gap: 8px !important; min-height: 168px !important; padding: 14px 8px 22px 8px !important; border: 1px solid var(--ais-border) !important; border-radius: 12px !important; background: repeating-linear-gradient(to top,#fff 0,#fff 32px,#f1f5f9 33px) !important; overflow-x: auto !important; }
.ais-profile-bar-col { min-width: 46px !important; text-align: center !important; font-size: 10px !important; color: #64748b !important; }
.ais-profile-bars { height: 130px !important; display: flex !important; align-items: flex-end !important; justify-content: center !important; gap: 3px !important; }
.ais-profile-bar { width: 9px !important; border-radius: 8px 8px 2px 2px !important; display: inline-block !important; box-shadow: 0 2px 6px rgba(15,23,42,.10) !important; }
.ais-profile-bar.sks { background: linear-gradient(180deg,#38bdf8,#2563eb) !important; }
.ais-profile-bar.kum { background: linear-gradient(180deg,#34d399,#059669) !important; }
.ais-profile-bar.ips { background: linear-gradient(180deg,#fbbf24,#f97316) !important; }
.ais-profile-bar.ipk { background: linear-gradient(180deg,#a78bfa,#7c3aed) !important; }
.ais-profile-legend { display: flex !important; flex-wrap: wrap !important; gap: 8px !important; margin-top: 10px !important; font-size: 10.5px !important; color: #475569 !important; }
.ais-profile-dot { display: inline-block !important; width: 9px !important; height: 9px !important; border-radius: 50% !important; margin-right: 4px !important; vertical-align: middle !important; background: var(--ais-theme-primary) !important; }
.ais-profile-radar { padding: 12px !important; text-align: center !important; }
.ais-profile-table { width: 100% !important; border-collapse: collapse !important; font-size: 11px !important; }
.ais-profile-table th { background: rgba(var(--ais-theme-primary-rgb),.08) !important; color: #1e293b !important; text-align: left !important; padding: 8px !important; border-bottom: 1px solid var(--ais-border) !important; font-weight: 800 !important; }
.ais-profile-table td { padding: 8px !important; border-bottom: 1px solid #f1f5f9 !important; color: #334155 !important; vertical-align: top !important; }
.ais-profile-table tr:nth-child(even) td { background: #fbfdff !important; }
.ais-profile-badge { display: inline-block !important; border-radius: 999px !important; padding: 2px 7px !important; font-size: 10px !important; font-weight: 700 !important; background: rgba(var(--ais-theme-primary-rgb),.10) !important; color: var(--ais-theme-primary) !important; }
.ais-profile-loading { padding: 18px !important; text-align: center !important; color: #475569 !important; background: #fff !important; border: 1px solid var(--ais-border) !important; border-radius: 12px !important; margin: 8px 0 !important; }
.ais-profile-spinner { display: inline-block !important; width: 14px !important; height: 14px !important; border: 2px solid #cbd5e1 !important; border-top-color: var(--ais-theme-primary) !important; border-radius: 50% !important; animation: aisSpin .8s linear infinite !important; margin-right: 6px !important; vertical-align: -2px !important; }
.ais-akad-card { margin: 8px 0 12px 0 !important; }
.ais-akad-head { padding: 13px 15px !important; }
.ais-akad-title { font-size: 14px !important; line-height: 1.35 !important; }
.ais-akad-desc { font-size: 11px !important; line-height: 1.45 !important; margin-top: 4px !important; }
.ais-akad-body { padding: 12px !important; }
.ais-akad-empty { padding: 16px !important; color: #64748b !important; font-size: 11px !important; text-align: center !important; border: 1px dashed #cbd5e1 !important; border-radius: 12px !important; background: #f8fafc !important; }
.ais-akad-stats { display: flex !important; flex-wrap: wrap !important; gap: 10px !important; }
.ais-akad-stat { flex: 1 1 120px !important; min-width: 110px !important; padding: 10px !important; }
.ais-akad-stat .l { font-size: 10px !important; color: #64748b !important; text-transform: uppercase !important; letter-spacing: .04em !important; font-weight: 700 !important; }
.ais-akad-stat .v { font-size: 19px !important; color: #0f172a !important; font-weight: 800 !important; margin-top: 5px !important; }
.ais-akad-stat .h { font-size: 10.5px !important; color: #64748b !important; margin-top: 4px !important; line-height: 1.35 !important; }
.ais-akad-list { display: block !important; border: 1px solid var(--ais-border) !important; border-radius: 12px !important; background: #fff !important; overflow: hidden !important; }
.ais-akad-rowitem { padding: 10px !important; border-bottom: 1px solid #f1f5f9 !important; }
.ais-akad-rowitem:last-child { border-bottom: none !important; }
.ais-akad-rowtitle { font-size: 11px !important; font-weight: 800 !important; color: #0f172a !important; line-height: 1.35 !important; margin-bottom: 6px !important; }
.ais-akad-rowmeta { font-size: 9.5px !important; color: #64748b !important; margin-top: 2px !important; line-height: 1.35 !important; }
.ais-akad-line { display: flex !important; align-items: center !important; gap: 6px !important; margin: 5px 0 !important; }
.ais-akad-lname { width: 58px !important; min-width: 58px !important; font-size: 9.5px !important; color: #64748b !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.ais-akad-track { height: 8px !important; flex: 1 !important; background: #f1f5f9 !important; border-radius: 999px !important; overflow: hidden !important; }
.ais-akad-fill { display: block !important; height: 8px !important; border-radius: 999px !important; }
.ais-akad-lval { width: 42px !important; min-width: 42px !important; text-align: right !important; font-size: 10px !important; font-weight: 800 !important; color: #0f172a !important; }
.ais-akad-fill0 { background: linear-gradient(90deg,#bfdbfe,#2563eb) !important; }
.ais-akad-fill1 { background: linear-gradient(90deg,#bbf7d0,#059669) !important; }
.ais-akad-fill2 { background: linear-gradient(90deg,#fed7aa,#f97316) !important; }
.ais-akad-fill3 { background: linear-gradient(90deg,#ddd6fe,#7c3aed) !important; }
.ais-akad-fill4 { background: linear-gradient(90deg,#fecdd3,#e11d48) !important; }
.ais-akad-legend { display: flex !important; flex-wrap: wrap !important; gap: 9px !important; margin-top: 10px !important; font-size: 10.5px !important; color: #475569 !important; }
.ais-akad-dot { display: inline-block !important; width: 9px !important; height: 9px !important; border-radius: 50% !important; margin-right: 4px !important; vertical-align: -1px !important; background: var(--ais-theme-primary) !important; }
@keyframes aisSpin { to { transform: rotate(360deg); } }
@media screen and (max-width:360px){
    .ais-profile-grid{display:block!important;padding:10px!important}.ais-profile-stat{margin-bottom:8px!important;min-width:0!important}.ais-profile-head{padding:12px!important}.ais-profile-title{font-size:14px!important}.ais-profile-desc{font-size:11px!important}
    .ais-akad-body{padding:10px!important}.ais-akad-rowitem{padding:9px!important}.ais-akad-lname{width:54px!important;min-width:54px!important}.ais-akad-lval{width:40px!important;min-width:40px!important}.ais-akad-stat{min-width:100px!important}
}

/* Dynamic chart values converted from old inline styles. */
[data-ais-style-reset="width:0%"]{width:0%!important;}
[data-ais-style-reset="width:1%"]{width:1%!important;}
[data-ais-style-reset="width:2%"]{width:2%!important;}
[data-ais-style-reset="width:3%"]{width:3%!important;}
[data-ais-style-reset="width:4%"]{width:4%!important;}
[data-ais-style-reset="width:5%"]{width:5%!important;}
[data-ais-style-reset="width:6%"]{width:6%!important;}
[data-ais-style-reset="width:7%"]{width:7%!important;}
[data-ais-style-reset="width:8%"]{width:8%!important;}
[data-ais-style-reset="width:9%"]{width:9%!important;}
[data-ais-style-reset="width:10%"]{width:10%!important;}
[data-ais-style-reset="width:11%"]{width:11%!important;}
[data-ais-style-reset="width:12%"]{width:12%!important;}
[data-ais-style-reset="width:13%"]{width:13%!important;}
[data-ais-style-reset="width:14%"]{width:14%!important;}
[data-ais-style-reset="width:15%"]{width:15%!important;}
[data-ais-style-reset="width:16%"]{width:16%!important;}
[data-ais-style-reset="width:17%"]{width:17%!important;}
[data-ais-style-reset="width:18%"]{width:18%!important;}
[data-ais-style-reset="width:19%"]{width:19%!important;}
[data-ais-style-reset="width:20%"]{width:20%!important;}
[data-ais-style-reset="width:21%"]{width:21%!important;}
[data-ais-style-reset="width:22%"]{width:22%!important;}
[data-ais-style-reset="width:23%"]{width:23%!important;}
[data-ais-style-reset="width:24%"]{width:24%!important;}
[data-ais-style-reset="width:25%"]{width:25%!important;}
[data-ais-style-reset="width:26%"]{width:26%!important;}
[data-ais-style-reset="width:27%"]{width:27%!important;}
[data-ais-style-reset="width:28%"]{width:28%!important;}
[data-ais-style-reset="width:29%"]{width:29%!important;}
[data-ais-style-reset="width:30%"]{width:30%!important;}
[data-ais-style-reset="width:31%"]{width:31%!important;}
[data-ais-style-reset="width:32%"]{width:32%!important;}
[data-ais-style-reset="width:33%"]{width:33%!important;}
[data-ais-style-reset="width:34%"]{width:34%!important;}
[data-ais-style-reset="width:35%"]{width:35%!important;}
[data-ais-style-reset="width:36%"]{width:36%!important;}
[data-ais-style-reset="width:37%"]{width:37%!important;}
[data-ais-style-reset="width:38%"]{width:38%!important;}
[data-ais-style-reset="width:39%"]{width:39%!important;}
[data-ais-style-reset="width:40%"]{width:40%!important;}
[data-ais-style-reset="width:41%"]{width:41%!important;}
[data-ais-style-reset="width:42%"]{width:42%!important;}
[data-ais-style-reset="width:43%"]{width:43%!important;}
[data-ais-style-reset="width:44%"]{width:44%!important;}
[data-ais-style-reset="width:45%"]{width:45%!important;}
[data-ais-style-reset="width:46%"]{width:46%!important;}
[data-ais-style-reset="width:47%"]{width:47%!important;}
[data-ais-style-reset="width:48%"]{width:48%!important;}
[data-ais-style-reset="width:49%"]{width:49%!important;}
[data-ais-style-reset="width:50%"]{width:50%!important;}
[data-ais-style-reset="width:51%"]{width:51%!important;}
[data-ais-style-reset="width:52%"]{width:52%!important;}
[data-ais-style-reset="width:53%"]{width:53%!important;}
[data-ais-style-reset="width:54%"]{width:54%!important;}
[data-ais-style-reset="width:55%"]{width:55%!important;}
[data-ais-style-reset="width:56%"]{width:56%!important;}
[data-ais-style-reset="width:57%"]{width:57%!important;}
[data-ais-style-reset="width:58%"]{width:58%!important;}
[data-ais-style-reset="width:59%"]{width:59%!important;}
[data-ais-style-reset="width:60%"]{width:60%!important;}
[data-ais-style-reset="width:61%"]{width:61%!important;}
[data-ais-style-reset="width:62%"]{width:62%!important;}
[data-ais-style-reset="width:63%"]{width:63%!important;}
[data-ais-style-reset="width:64%"]{width:64%!important;}
[data-ais-style-reset="width:65%"]{width:65%!important;}
[data-ais-style-reset="width:66%"]{width:66%!important;}
[data-ais-style-reset="width:67%"]{width:67%!important;}
[data-ais-style-reset="width:68%"]{width:68%!important;}
[data-ais-style-reset="width:69%"]{width:69%!important;}
[data-ais-style-reset="width:70%"]{width:70%!important;}
[data-ais-style-reset="width:71%"]{width:71%!important;}
[data-ais-style-reset="width:72%"]{width:72%!important;}
[data-ais-style-reset="width:73%"]{width:73%!important;}
[data-ais-style-reset="width:74%"]{width:74%!important;}
[data-ais-style-reset="width:75%"]{width:75%!important;}
[data-ais-style-reset="width:76%"]{width:76%!important;}
[data-ais-style-reset="width:77%"]{width:77%!important;}
[data-ais-style-reset="width:78%"]{width:78%!important;}
[data-ais-style-reset="width:79%"]{width:79%!important;}
[data-ais-style-reset="width:80%"]{width:80%!important;}
[data-ais-style-reset="width:81%"]{width:81%!important;}
[data-ais-style-reset="width:82%"]{width:82%!important;}
[data-ais-style-reset="width:83%"]{width:83%!important;}
[data-ais-style-reset="width:84%"]{width:84%!important;}
[data-ais-style-reset="width:85%"]{width:85%!important;}
[data-ais-style-reset="width:86%"]{width:86%!important;}
[data-ais-style-reset="width:87%"]{width:87%!important;}
[data-ais-style-reset="width:88%"]{width:88%!important;}
[data-ais-style-reset="width:89%"]{width:89%!important;}
[data-ais-style-reset="width:90%"]{width:90%!important;}
[data-ais-style-reset="width:91%"]{width:91%!important;}
[data-ais-style-reset="width:92%"]{width:92%!important;}
[data-ais-style-reset="width:93%"]{width:93%!important;}
[data-ais-style-reset="width:94%"]{width:94%!important;}
[data-ais-style-reset="width:95%"]{width:95%!important;}
[data-ais-style-reset="width:96%"]{width:96%!important;}
[data-ais-style-reset="width:97%"]{width:97%!important;}
[data-ais-style-reset="width:98%"]{width:98%!important;}
[data-ais-style-reset="width:99%"]{width:99%!important;}
[data-ais-style-reset="width:100%"]{width:100%!important;}
[data-ais-style-reset="height:0px"]{height:0px!important;}
[data-ais-style-reset="height:1px"]{height:1px!important;}
[data-ais-style-reset="height:2px"]{height:2px!important;}
[data-ais-style-reset="height:3px"]{height:3px!important;}
[data-ais-style-reset="height:4px"]{height:4px!important;}
[data-ais-style-reset="height:5px"]{height:5px!important;}
[data-ais-style-reset="height:6px"]{height:6px!important;}
[data-ais-style-reset="height:7px"]{height:7px!important;}
[data-ais-style-reset="height:8px"]{height:8px!important;}
[data-ais-style-reset="height:9px"]{height:9px!important;}
[data-ais-style-reset="height:10px"]{height:10px!important;}
[data-ais-style-reset="height:11px"]{height:11px!important;}
[data-ais-style-reset="height:12px"]{height:12px!important;}
[data-ais-style-reset="height:13px"]{height:13px!important;}
[data-ais-style-reset="height:14px"]{height:14px!important;}
[data-ais-style-reset="height:15px"]{height:15px!important;}
[data-ais-style-reset="height:16px"]{height:16px!important;}
[data-ais-style-reset="height:17px"]{height:17px!important;}
[data-ais-style-reset="height:18px"]{height:18px!important;}
[data-ais-style-reset="height:19px"]{height:19px!important;}
[data-ais-style-reset="height:20px"]{height:20px!important;}
[data-ais-style-reset="height:21px"]{height:21px!important;}
[data-ais-style-reset="height:22px"]{height:22px!important;}
[data-ais-style-reset="height:23px"]{height:23px!important;}
[data-ais-style-reset="height:24px"]{height:24px!important;}
[data-ais-style-reset="height:25px"]{height:25px!important;}
[data-ais-style-reset="height:26px"]{height:26px!important;}
[data-ais-style-reset="height:27px"]{height:27px!important;}
[data-ais-style-reset="height:28px"]{height:28px!important;}
[data-ais-style-reset="height:29px"]{height:29px!important;}
[data-ais-style-reset="height:30px"]{height:30px!important;}
[data-ais-style-reset="height:31px"]{height:31px!important;}
[data-ais-style-reset="height:32px"]{height:32px!important;}
[data-ais-style-reset="height:33px"]{height:33px!important;}
[data-ais-style-reset="height:34px"]{height:34px!important;}
[data-ais-style-reset="height:35px"]{height:35px!important;}
[data-ais-style-reset="height:36px"]{height:36px!important;}
[data-ais-style-reset="height:37px"]{height:37px!important;}
[data-ais-style-reset="height:38px"]{height:38px!important;}
[data-ais-style-reset="height:39px"]{height:39px!important;}
[data-ais-style-reset="height:40px"]{height:40px!important;}
[data-ais-style-reset="height:41px"]{height:41px!important;}
[data-ais-style-reset="height:42px"]{height:42px!important;}
[data-ais-style-reset="height:43px"]{height:43px!important;}
[data-ais-style-reset="height:44px"]{height:44px!important;}
[data-ais-style-reset="height:45px"]{height:45px!important;}
[data-ais-style-reset="height:46px"]{height:46px!important;}
[data-ais-style-reset="height:47px"]{height:47px!important;}
[data-ais-style-reset="height:48px"]{height:48px!important;}
[data-ais-style-reset="height:49px"]{height:49px!important;}
[data-ais-style-reset="height:50px"]{height:50px!important;}
[data-ais-style-reset="height:51px"]{height:51px!important;}
[data-ais-style-reset="height:52px"]{height:52px!important;}
[data-ais-style-reset="height:53px"]{height:53px!important;}
[data-ais-style-reset="height:54px"]{height:54px!important;}
[data-ais-style-reset="height:55px"]{height:55px!important;}
[data-ais-style-reset="height:56px"]{height:56px!important;}
[data-ais-style-reset="height:57px"]{height:57px!important;}
[data-ais-style-reset="height:58px"]{height:58px!important;}
[data-ais-style-reset="height:59px"]{height:59px!important;}
[data-ais-style-reset="height:60px"]{height:60px!important;}
[data-ais-style-reset="height:61px"]{height:61px!important;}
[data-ais-style-reset="height:62px"]{height:62px!important;}
[data-ais-style-reset="height:63px"]{height:63px!important;}
[data-ais-style-reset="height:64px"]{height:64px!important;}
[data-ais-style-reset="height:65px"]{height:65px!important;}
[data-ais-style-reset="height:66px"]{height:66px!important;}
[data-ais-style-reset="height:67px"]{height:67px!important;}
[data-ais-style-reset="height:68px"]{height:68px!important;}
[data-ais-style-reset="height:69px"]{height:69px!important;}
[data-ais-style-reset="height:70px"]{height:70px!important;}
[data-ais-style-reset="height:71px"]{height:71px!important;}
[data-ais-style-reset="height:72px"]{height:72px!important;}
[data-ais-style-reset="height:73px"]{height:73px!important;}
[data-ais-style-reset="height:74px"]{height:74px!important;}
[data-ais-style-reset="height:75px"]{height:75px!important;}
[data-ais-style-reset="height:76px"]{height:76px!important;}
[data-ais-style-reset="height:77px"]{height:77px!important;}
[data-ais-style-reset="height:78px"]{height:78px!important;}
[data-ais-style-reset="height:79px"]{height:79px!important;}
[data-ais-style-reset="height:80px"]{height:80px!important;}
[data-ais-style-reset="height:81px"]{height:81px!important;}
[data-ais-style-reset="height:82px"]{height:82px!important;}
[data-ais-style-reset="height:83px"]{height:83px!important;}
[data-ais-style-reset="height:84px"]{height:84px!important;}
[data-ais-style-reset="height:85px"]{height:85px!important;}
[data-ais-style-reset="height:86px"]{height:86px!important;}
[data-ais-style-reset="height:87px"]{height:87px!important;}
[data-ais-style-reset="height:88px"]{height:88px!important;}
[data-ais-style-reset="height:89px"]{height:89px!important;}
[data-ais-style-reset="height:90px"]{height:90px!important;}
[data-ais-style-reset="height:91px"]{height:91px!important;}
[data-ais-style-reset="height:92px"]{height:92px!important;}
[data-ais-style-reset="height:93px"]{height:93px!important;}
[data-ais-style-reset="height:94px"]{height:94px!important;}
[data-ais-style-reset="height:95px"]{height:95px!important;}
[data-ais-style-reset="height:96px"]{height:96px!important;}
[data-ais-style-reset="height:97px"]{height:97px!important;}
[data-ais-style-reset="height:98px"]{height:98px!important;}
[data-ais-style-reset="height:99px"]{height:99px!important;}
[data-ais-style-reset="height:100px"]{height:100px!important;}
[data-ais-style-reset="height:101px"]{height:101px!important;}
[data-ais-style-reset="height:102px"]{height:102px!important;}
[data-ais-style-reset="height:103px"]{height:103px!important;}
[data-ais-style-reset="height:104px"]{height:104px!important;}
[data-ais-style-reset="height:105px"]{height:105px!important;}
[data-ais-style-reset="height:106px"]{height:106px!important;}
[data-ais-style-reset="height:107px"]{height:107px!important;}
[data-ais-style-reset="height:108px"]{height:108px!important;}
[data-ais-style-reset="height:109px"]{height:109px!important;}
[data-ais-style-reset="height:110px"]{height:110px!important;}
[data-ais-style-reset="height:111px"]{height:111px!important;}
[data-ais-style-reset="height:112px"]{height:112px!important;}
[data-ais-style-reset="height:113px"]{height:113px!important;}
[data-ais-style-reset="height:114px"]{height:114px!important;}
[data-ais-style-reset="height:115px"]{height:115px!important;}
[data-ais-style-reset="height:116px"]{height:116px!important;}
[data-ais-style-reset="height:117px"]{height:117px!important;}
[data-ais-style-reset="height:118px"]{height:118px!important;}
[data-ais-style-reset="height:119px"]{height:119px!important;}
[data-ais-style-reset="height:120px"]{height:120px!important;}
[data-ais-style-reset="height:121px"]{height:121px!important;}
[data-ais-style-reset="height:122px"]{height:122px!important;}
[data-ais-style-reset="height:123px"]{height:123px!important;}
[data-ais-style-reset="height:124px"]{height:124px!important;}
[data-ais-style-reset="height:125px"]{height:125px!important;}
[data-ais-style-reset="height:126px"]{height:126px!important;}
[data-ais-style-reset="height:127px"]{height:127px!important;}
[data-ais-style-reset="height:128px"]{height:128px!important;}
[data-ais-style-reset="height:129px"]{height:129px!important;}
[data-ais-style-reset="height:130px"]{height:130px!important;}
[data-ais-style-reset="height:131px"]{height:131px!important;}
[data-ais-style-reset="height:132px"]{height:132px!important;}
[data-ais-style-reset="height:133px"]{height:133px!important;}
[data-ais-style-reset="height:134px"]{height:134px!important;}
[data-ais-style-reset="height:135px"]{height:135px!important;}
[data-ais-style-reset="height:136px"]{height:136px!important;}
[data-ais-style-reset="height:137px"]{height:137px!important;}
[data-ais-style-reset="height:138px"]{height:138px!important;}
[data-ais-style-reset="height:139px"]{height:139px!important;}
[data-ais-style-reset="height:140px"]{height:140px!important;}



/* ======================================================================
   AIS INDEX LEGACY-COMPATIBILITY LAYER
   Hasil double-check dengan "index - lama.zul".
   Tujuan: style inline lama dipusatkan di css_utama.css, tetapi visual
   tetap familiar: header ramping, menu shortcut tetap sederhana, warna
   mengikuti theme aktif, dan konten tidak berubah terlalu drastis.
   ====================================================================== */
.main-responsive-root,
.zk55-responsive-shell {
    background: #f5f8fa !important;
}
.main-responsive-main-grid,
.main-responsive-main-grid > .z-grid-body {
    background: #f5f8fa !important;
    border: 0 !important;
    padding: 0 !important;
}
.main-responsive-header {
    min-height: 98px !important;
    background: var(--ais-theme-primary-bg) !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(0,0,0,.08) !important;
    box-shadow: 0 1px 3px rgba(15,23,42,.12) !important;
    overflow: hidden !important;
}
.main-responsive-header:before {
    display: none !important;
}
.main-responsive-header-grid,
.main-responsive-header-grid > .z-grid-body,
.main-responsive-header-grid > .z-grid-body > table,
.main-responsive-header-grid .z-row-inner,
.main-responsive-header-grid .z-row-cnt,
.main-responsive-header-grid tr.z-row,
.main-responsive-header-grid tr.z-grid-odd,
.main-responsive-header-grid tr.z-grid-odd td.z-row-inner {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}
.main-responsive-header-grid .z-grid-header,
.main-responsive-header-grid .z-grid-header-bg {
    display: none !important;
}
.main-responsive-header-grid .z-column,
.main-responsive-header-grid th.z-column {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}
.main-responsive-brand-box {
    padding: 0 0 0 6px !important;
    margin: 0 !important;
    min-height: 60px !important;
}
.main-responsive-brand-box table,
.main-responsive-brand-box tbody,
.main-responsive-brand-box tr,
.main-responsive-brand-box td {
    vertical-align: middle !important;
}
.main-responsive-header img,
.headerHbox img,
.gridHeader img {
    max-height: 50px !important;
}
.title1,
.main-responsive-header .title1,
.gridHeader .title1 {
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    color: #ffffff !important;
    text-shadow: 0 0 4px rgba(0,0,0,.45) !important;
}
.motto,
.main-responsive-header .motto,
.gridHeader .motto {
    font-size: 12px !important;
    font-weight: 400 !important;
    color: rgba(255,255,255,.92) !important;
    text-shadow: 0 0 4px rgba(0,0,0,.35) !important;
}
.main-responsive-header-right {
    padding: 0 20px 0 0 !important;
    margin: 0 !important;
    font-size: 9px !important;
    font-weight: bold !important;
    text-align: right !important;
}
.main-responsive-header-actions,
.main-responsive-header-actions table,
.main-responsive-header-actions tbody,
.main-responsive-header-actions tr {
    width: 100% !important;
}
.user_button_profile,
.main-responsive-header-actions .z-a,
.main-responsive-header-actions .z-toolbarbutton,
.main-responsive-header-actions .z-toolbarbutton-cnt {
    padding: 0 4px !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-size: 11px !important;
    font-weight: bold !important;
    text-shadow: 0 0 4px rgba(0,0,0,.35) !important;
    transform: none !important;
}
.user_button_profile:hover,
.main-responsive-header-actions .z-a:hover,
.main-responsive-header-actions .z-toolbarbutton:hover {
    background: transparent !important;
    color: #ffffff !important;
    transform: none !important;
}
.users_online_button,
.main-responsive-online-button,
.main-responsive-online-button .z-toolbarbutton-cnt {
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-size: 9px !important;
    font-weight: bold !important;
    line-height: 1.35 !important;
    text-shadow: 0 0 4px rgba(0,0,0,.35) !important;
}
.main-responsive-module-row,
.main-responsive-module-row .z-row-cnt,
.headerHbox.main-responsive-module-row {
    min-height: 34px !important;
    height: auto !important;
    background: transparent !important;
    border: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    white-space: nowrap !important;
}
.main-responsive-module-strip {
    text-align: right !important;
    padding: 0 8px 3px 8px !important;
    margin: 0 !important;
}
.main-responsive-module-row .z-toolbarbutton,
.main-responsive-module-row .z-toolbarbutton-body,
.main-responsive-module-row .z-toolbarbutton-cnt {
    display: inline-block !important;
    vertical-align: middle !important;
}
.main-responsive-module-row .z-toolbarbutton {
    margin: 2px 2px !important;
    border: 0 !important;
    border-radius: 4px !important;
    background: rgba(255,255,255,.08) !important;
    box-shadow: none !important;
    transform: none !important;
}
.main-responsive-module-row .z-toolbarbutton-cnt {
    padding: 4px 7px !important;
    color: #ffffff !important;
    font-size: 9px !important;
    font-weight: bold !important;
    line-height: 1.2 !important;
    text-shadow: 0 0 4px rgba(0,0,0,.28) !important;
}
.main-responsive-module-row .z-toolbarbutton:hover,
.main-responsive-module-row .z-toolbarbutton-over {
    background: rgba(255,255,255,.16) !important;
    box-shadow: none !important;
    transform: none !important;
}
.main-responsive-module-row img {
    max-width: 16px !important;
    max-height: 16px !important;
    margin-right: 3px !important;
    vertical-align: -3px !important;
}
.main-responsive-content-row,
.main-responsive-content-row > td.z-row-inner,
.main-responsive-content-row .z-row-cnt {
    background: #f5f8fa !important;
    border: 0 !important;
    padding: 0 !important;
}
.main-responsive-frame {
    background: #f5f8fa !important;
    min-height: 600px !important;
    border: 0 !important;
}
.main-responsive-frame .main-responsive-sidebar,
.main-responsive-frame .z-west.main-responsive-sidebar,
.navigasi {
    background: var(--ais-theme-primary-bg) !important;
}
.main-responsive-frame .main-responsive-center,
.main-responsive-frame .z-center.main-responsive-center,
.main-responsive-center .z-center-body {
    background: #f6f8fb !important;
    border: 0 !important;
    padding: 0 !important;
}
.main-responsive-tabbox,
.main-responsive-tabpanels,
.main-responsive-home-panel {
    background: #f6f8fb !important;
    border: 0 !important;
}
.main-responsive-home-panel,
.main-responsive-tabpanels .z-tabpanel {
    padding: 0 !important;
    overflow: auto !important;
}
.z-tabs .z-tabs-cnt,
.main-responsive-tabs .z-tabs-cnt {
    padding: 0 0 0 0 !important;
    background: transparent !important;
}
.z-tab-hl,
.z-tab-hr,
.z-tab-hm,
.z-tab-ver-hl,
.z-tab-ver-hr,
.z-tab-ver-hm {
    border-radius: 5px 5px 0 0 !important;
    box-shadow: none !important;
}
.z-tab .z-tab-text,
.z-tab-seld .z-tab-text {
    font-size: 12px !important;
    padding: 7px 11px !important;
}
.back_to_top {
    position: fixed !important;
    bottom: 15px !important;
    right: 20px !important;
    z-index: 9999 !important;
}
#customerService,
.customerService[id$="customerService"] {
    position: fixed !important;
    bottom: 15px !important;
    right: 75px !important;
    z-index: 9999 !important;
}
#menuService {
    position: fixed !important;
    bottom: 15px !important;
    left: 20px !important;
    z-index: 9999 !important;
}
@media screen and (max-width: 900px) {
    .main-responsive-header { min-height: 98px !important; }
    .title1, .main-responsive-header .title1 { font-size: 15px !important; }
    .motto, .main-responsive-header .motto { font-size: 10.5px !important; }
    .main-responsive-module-row .z-toolbarbutton-cnt { font-size: 9px !important; padding: 4px 6px !important; }
}

/* ==========================================================
   MAIN HEADER SHORTCUT BUTTON CONTRAST FIX
   Menjaga tombol shortcut utama tetap terbaca di atas header
   gradasi/biru tanpa memakai main-responsive-zk.css.
   ========================================================== */
#rowHeader2,
#rowHeader2 .z-row-cnt,
.main-responsive-module-row,
.main-responsive-module-strip {
    color: #ffffff !important;
}

#rowHeader2 .z-toolbarbutton,
#rowHeader2 .z-toolbarbutton-over,
#rowHeader2 .z-toolbarbutton-focus,
#rowHeader2 .z-toolbarbutton-selected,
.main-responsive-module-row .z-toolbarbutton,
.main-responsive-module-row .z-toolbarbutton-over,
.main-responsive-module-row .z-toolbarbutton-focus,
.main-responsive-module-row .z-toolbarbutton-selected,
.main-responsive-module-strip .z-toolbarbutton,
.main-responsive-module-strip .z-toolbarbutton-over,
.main-responsive-module-strip .z-toolbarbutton-focus,
.main-responsive-module-strip .z-toolbarbutton-selected {
    color: #ffffff !important;
    background: rgba(255, 255, 255, 0.10) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 7px !important;
    box-shadow: none !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45) !important;
}

#rowHeader2 .z-toolbarbutton-cnt,
#rowHeader2 .z-toolbarbutton-content,
#rowHeader2 .z-toolbarbutton-text,
#rowHeader2 .z-toolbarbutton .z-label,
#rowHeader2 .z-a,
#rowHeader2 a,
.main-responsive-module-row .z-toolbarbutton-cnt,
.main-responsive-module-row .z-toolbarbutton-content,
.main-responsive-module-row .z-toolbarbutton-text,
.main-responsive-module-row .z-toolbarbutton .z-label,
.main-responsive-module-row .z-a,
.main-responsive-module-row a,
.main-responsive-module-strip .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton-content,
.main-responsive-module-strip .z-toolbarbutton-text,
.main-responsive-module-strip .z-toolbarbutton .z-label,
.main-responsive-module-strip .z-a,
.main-responsive-module-strip a {
    color: #ffffff !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.50) !important;
}

#rowHeader2 .z-toolbarbutton img,
.main-responsive-module-row .z-toolbarbutton img,
.main-responsive-module-strip .z-toolbarbutton img {
    opacity: 1 !important;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.45));
}

#rowHeader2 .z-toolbarbutton:hover,
#rowHeader2 .z-toolbarbutton-over,
.main-responsive-module-row .z-toolbarbutton:hover,
.main-responsive-module-row .z-toolbarbutton-over,
.main-responsive-module-strip .z-toolbarbutton:hover,
.main-responsive-module-strip .z-toolbarbutton-over {
    background: rgba(255, 255, 255, 0.18) !important;
    border-color: rgba(255, 255, 255, 0.55) !important;
}

#rowHeader2 .z-toolbarbutton:hover .z-toolbarbutton-cnt,
#rowHeader2 .z-toolbarbutton-over .z-toolbarbutton-cnt,
.main-responsive-module-row .z-toolbarbutton:hover .z-toolbarbutton-cnt,
.main-responsive-module-row .z-toolbarbutton-over .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton:hover .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton-over .z-toolbarbutton-cnt {
    color: #ffffff !important;
}

/* ==========================================================
   MAIN HEADER + SIDEBAR MENU REPAIR LAYER
   Fix setelah tombol shortcut dibuat putih:
   - Header utama jangan ikut menjadi putih/transparan.
   - Shortcut header tetap kontras tanpa merusak menu samping.
   - Icon background SVG pada menu samping tidak boleh repeat.
   ========================================================== */
.main-responsive-main-grid tr.headerHbox.main-responsive-header,
.main-responsive-main-grid tr.headerHbox.main-responsive-header > td.z-row-inner,
.main-responsive-main-grid tr.headerHbox.main-responsive-header > td.z-row-inner > .z-row-cnt,
.main-responsive-header,
.headerHbox.main-responsive-header {
    background: var(--ais-theme-primary-bg) !important;
    color: #ffffff !important;
}

.main-responsive-header .gridHeader.main-responsive-header-grid,
.main-responsive-header .gridHeader.main-responsive-header-grid > .z-grid-body,
.main-responsive-header .gridHeader.main-responsive-header-grid > .z-grid-body > table,
.main-responsive-header .gridHeader.main-responsive-header-grid .z-row-inner,
.main-responsive-header .gridHeader.main-responsive-header-grid .z-row-cnt,
.main-responsive-header .gridHeader.main-responsive-header-grid tr.z-row,
.main-responsive-header .gridHeader.main-responsive-header-grid tr.z-grid-odd,
.main-responsive-header .main-responsive-brand-box,
.main-responsive-header .main-responsive-header-right,
.main-responsive-header .main-responsive-header-actions {
    background: transparent !important;
    color: #ffffff !important;
}

.main-responsive-header .title1,
.main-responsive-header .motto,
.main-responsive-header .z-label,
.main-responsive-header .z-a,
.main-responsive-header a,
.main-responsive-header .fa,
.main-responsive-header .z-toolbarbutton-cnt,
.main-responsive-header .users_online_button,
.main-responsive-header .users_online_button .z-toolbarbutton-cnt,
.main-responsive-header .user_button_profile,
.main-responsive-header .user_button_profile .z-label {
    color: #ffffff !important;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.38) !important;
}

.main-responsive-main-grid tr.headerHbox.main-responsive-module-row,
.main-responsive-main-grid tr.headerHbox.main-responsive-module-row > td.z-row-inner,
.main-responsive-main-grid tr.headerHbox.main-responsive-module-row > td.z-row-inner > .z-row-cnt,
.headerHbox.main-responsive-module-row,
.main-responsive-module-row,
.main-responsive-module-strip {
    background: transparent !important;
    color: #ffffff !important;
}

.main-responsive-module-row .z-toolbarbutton,
.main-responsive-module-strip .z-toolbarbutton {
    background-color: rgba(255, 255, 255, 0.12) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 5px !important;
    color: #ffffff !important;
    margin: 3px 2px !important;
    box-shadow: none !important;
}

.main-responsive-module-row .z-toolbarbutton-body,
.main-responsive-module-strip .z-toolbarbutton-body,
.main-responsive-module-row .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton-cnt {
    background: transparent !important;
    color: #ffffff !important;
}

.main-responsive-module-row .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton-cnt,
.main-responsive-module-row .z-toolbarbutton-cnt span,
.main-responsive-module-strip .z-toolbarbutton-cnt span {
    color: #ffffff !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.50) !important;
}

.main-responsive-module-row .z-toolbarbutton:hover,
.main-responsive-module-row .z-toolbarbutton-over,
.main-responsive-module-strip .z-toolbarbutton:hover,
.main-responsive-module-strip .z-toolbarbutton-over {
    background-color: rgba(255, 255, 255, 0.22) !important;
    border-color: rgba(255, 255, 255, 0.50) !important;
    transform: none !important;
}

.main-responsive-module-row .z-toolbarbutton img,
.main-responsive-module-strip .z-toolbarbutton img {
    max-width: 16px !important;
    max-height: 16px !important;
    opacity: 1 !important;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.45));
}

/* Sidebar ZK menu root: cegah SVG/folder icon repeat yang membuat tampilan seperti banyak tanda >>>. */
.navigasi .z-menubar-ver .z-menu-btn,
.navigasi .z-menubar-ver .z-menu-item-btn {
    background-repeat: no-repeat !important;
    background-position: 8px center !important;
    background-size: 14px 14px !important;
    padding-left: 28px !important;
    padding-right: 8px !important;
    text-align: left !important;
    color: #ffffff !important;
    line-height: 24px !important;
    min-height: 24px !important;
    height: 24px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.38) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.navigasi .z-menubar-ver .z-menu-body,
.navigasi .z-menubar-ver .z-menu-item-body {
    background-image: none !important;
    background-color: rgba(255, 255, 255, 0.06) !important;
    border: 1px solid rgba(255, 255, 255, 0.14) !important;
    border-radius: 4px !important;
    margin: 2px 4px !important;
    width: auto !important;
}

.navigasi .z-menubar-ver .z-menu-body:hover,
.navigasi .z-menubar-ver .z-menu-body-over,
.navigasi .z-menubar-ver .z-menu-item-body:hover,
.navigasi .z-menubar-ver .z-menu-item-body-over,
.navigasi .z-menubar-ver .z-menu-over .z-menu-body,
.navigasi .z-menubar-ver .z-menu-item-over .z-menu-item-body {
    background-color: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.32) !important;
}

.navigasi .z-menu-space,
.navigasi .z-menu-item-space {
    width: 0 !important;
    display: none !important;
}

.navigasi .z-menu-inner-l,
.navigasi .z-menu-inner-r,
.navigasi .z-menu-item-inner-l,
.navigasi .z-menu-item-inner-r {
    width: 0 !important;
    padding: 0 !important;
    background: transparent !important;
}

.navigasi .z-menu-inner-m,
.navigasi .z-menu-item-inner-m {
    background: transparent !important;
    padding: 0 !important;
}

.z-menu-popup .z-menu-img,
.z-menu-popup .z-menu-item-img,
.z-menu-popup .z-menu-cnt,
.z-menu-popup .z-menu-item-cnt {
    background-repeat: no-repeat !important;
}

/* Menu alignment repair for legacy ZK shell. */
#rowHeader2,
#rowHeader2 .z-row-cnt,
.main-responsive-module-row,
.main-responsive-module-row .z-row-cnt,
.main-responsive-module-strip {
    text-align: left !important;
}

.main-responsive-module-strip table,
.main-responsive-module-strip tbody,
.main-responsive-module-strip tr,
.main-responsive-module-strip td,
.main-responsive-module-row .z-hbox,
.main-responsive-module-row .z-hbox tbody,
.main-responsive-module-row .z-hbox tr,
.main-responsive-module-row .z-hbox td {
    margin-left: 0 !important;
    margin-right: auto !important;
    text-align: left !important;
}

#rowHeader2 .z-toolbarbutton,
.main-responsive-module-row .z-toolbarbutton,
.main-responsive-module-strip .z-toolbarbutton {
    display: inline-block !important;
    min-height: 26px !important;
    height: auto !important;
    margin: 3px 3px !important;
    vertical-align: middle !important;
}

#rowHeader2 .z-toolbarbutton-body,
#rowHeader2 .z-toolbarbutton-cnt,
.main-responsive-module-row .z-toolbarbutton-body,
.main-responsive-module-row .z-toolbarbutton-cnt,
.main-responsive-module-strip .z-toolbarbutton-body,
.main-responsive-module-strip .z-toolbarbutton-cnt {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    min-height: 22px !important;
    line-height: 1.2 !important;
    text-align: left !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}

#rowHeader2 .z-toolbarbutton-cnt img,
.main-responsive-module-row .z-toolbarbutton-cnt img,
.main-responsive-module-strip .z-toolbarbutton-cnt img {
    flex: 0 0 auto !important;
    margin: 0 2px 0 0 !important;
    vertical-align: middle !important;
}

.navigasi .z-menubar-ver,
.navigasi .z-menubar-ver table,
.navigasi .z-menubar-ver tbody,
.navigasi .z-menubar-ver tr,
.navigasi .z-menubar-ver td {
    width: 100% !important;
    text-align: left !important;
}

.navigasi .z-menubar-ver .z-menu-body,
.navigasi .z-menubar-ver .z-menu-item-body {
    display: block !important;
    width: auto !important;
    text-align: left !important;
}

.navigasi .z-menubar-ver .z-menu-btn,
.navigasi .z-menubar-ver .z-menu-item-btn,
.navigasi .z-menubar-ver .z-menu-cnt,
.navigasi .z-menubar-ver .z-menu-item-cnt,
.navigasi .z-menubar-ver .z-menu-inner-m div,
.navigasi .z-menubar-ver .z-menu-item-inner-m div {
    display: block !important;
    width: 100% !important;
    box-sizing: border-box !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.navigasi .z-menubar-ver .z-menu-inner-m div,
.navigasi .z-menubar-ver .z-menu-item-inner-m div {
    background-repeat: no-repeat !important;
    background-position: 7px center !important;
    background-size: 12px 12px !important;
    padding-left: 24px !important;
    padding-right: 8px !important;
}

/* ======================================================================
   AIS SIDEBAR MENU COMPACT & UNIFORM POPUP FIX
   Tujuan:
   - Main menu kiri tidak terlalu renggang.
   - Tombol menu tetap full-width, rata kiri, dan tidak ikut style global button.
   - Sub menu / nested sub menu seragam dengan sidebar, bukan putih berbeda-beda.
   ====================================================================== */
.navigasi .z-menubar-ver,
.navigasi .z-menubar-ver table,
.navigasi .z-menubar-ver tbody {
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver tr,
.navigasi .z-menubar-ver td,
.navigasi .z-menubar-ver td.menu_item,
.navigasi .z-menubar-ver .menu_item {
    height: auto !important;
    min-height: 0 !important;
    line-height: 1.15 !important;
    padding-top: 1px !important;
    padding-bottom: 1px !important;
    background: transparent !important;
    border: 0 !important;
}

.navigasi .z-menubar-ver td.menu_item,
.navigasi .z-menubar-ver td.z-menu,
.navigasi .z-menubar-ver td.z-menu-item {
    padding-left: 5px !important;
    padding-right: 5px !important;
}

.navigasi .z-menubar-ver .z-menu-body,
.navigasi .z-menubar-ver .z-menu-item-body {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 1px 0 !important;
    padding: 0 !important;
    background: rgba(8, 43, 101, 0.78) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 5px !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.navigasi .z-menubar-ver .z-menu-body:hover,
.navigasi .z-menubar-ver .z-menu-body-over,
.navigasi .z-menubar-ver .z-menu-over .z-menu-body,
.navigasi .z-menubar-ver .z-menu-item-body:hover,
.navigasi .z-menubar-ver .z-menu-item-body-over,
.navigasi .z-menubar-ver .z-menu-item-over .z-menu-item-body {
    background: rgba(21, 96, 167, 0.92) !important;
    border-color: rgba(255, 255, 255, 0.36) !important;
}

.navigasi .z-menubar-ver .z-menu-inner-l,
.navigasi .z-menubar-ver .z-menu-inner-r,
.navigasi .z-menubar-ver .z-menu-item-inner-l,
.navigasi .z-menubar-ver .z-menu-item-inner-r,
.navigasi .z-menubar-ver .z-menu-space,
.navigasi .z-menubar-ver .z-menu-item-space {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver .z-menu-inner-m,
.navigasi .z-menubar-ver .z-menu-item-inner-m {
    display: table-cell !important;
    width: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver .z-menu-inner-m > div,
.navigasi .z-menubar-ver .z-menu-item-inner-m > div {
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    overflow: hidden !important;
}

.navigasi .z-menubar-ver .z-menu-btn,
.navigasi .z-menubar-ver .z-menu-item-btn {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 24px !important;
    min-height: 24px !important;
    line-height: 24px !important;
    margin: 0 !important;
    padding: 0 8px 0 25px !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 4px !important;
    background-color: transparent !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M6.2 3.1a.75.75 0 0 1 1.06 0l4.37 4.37a.75.75 0 0 1 0 1.06L7.26 12.9a.75.75 0 1 1-1.06-1.06L10.04 8 6.2 4.16a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: 8px center !important;
    background-size: 13px 13px !important;
    color: #ffffff !important;
    cursor: pointer !important;
    font-family: var(--ais-font) !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: left !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Popup menu dibuat seragam dengan main menu kiri. */
.z-menu-popup,
.z-menu-popup .z-menu-popup-cnt {
    background: var(--ais-theme-primary-bg) !important;
    border: 1px solid rgba(255, 255, 255, 0.28) !important;
    border-radius: 8px !important;
    box-shadow: 0 12px 26px rgba(15, 23, 42, 0.28) !important;
    padding: 4px !important;
    margin: 0 !important;
    overflow: hidden !important;
    min-width: 215px !important;
}

.z-menu-popup .z-menu-popup-cnt,
.z-menu-popup .z-menu-popup-cnt ul,
.z-menu-popup .z-menu-popup-cnt li,
.z-menu-popup .z-menu-popup-cnt .menu_item,
.z-menu-popup .z-menu,
.z-menu-popup .z-menu-item {
    background: transparent !important;
    border: 0 !important;
    color: #ffffff !important;
    margin: 0 !important;
    padding: 0 !important;
    list-style: none !important;
}

.z-menu-popup .z-menu-cl,
.z-menu-popup .z-menu-cr,
.z-menu-popup .z-menu-cm,
.z-menu-popup .z-menu-item-cl,
.z-menu-popup .z-menu-item-cr,
.z-menu-popup .z-menu-item-cm {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.z-menu-popup .z-menu-cnt,
.z-menu-popup .z-menu-item-cnt,
.z-menu-popup-cnt .z-menu a.z-menu-cnt,
.z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt {
    display: block !important;
    min-height: 27px !important;
    line-height: 27px !important;
    padding: 0 10px 0 28px !important;
    margin: 1px 0 !important;
    box-sizing: border-box !important;
    background: rgba(255, 255, 255, 0.10) !important;
    border: 1px solid rgba(255, 255, 255, 0.20) !important;
    border-radius: 5px !important;
    color: #ffffff !important;
    font-family: var(--ais-font) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-align: left !important;
    text-decoration: none !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.30) !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

.z-menu-popup .z-menu-over > .z-menu-cl > .z-menu-cr > .z-menu-cm > .z-menu-cnt,
.z-menu-popup .z-menu-item-over > .z-menu-item-cl > .z-menu-item-cr > .z-menu-item-cm > .z-menu-item-cnt,
.z-menu-popup-cnt .z-menu-over a.z-menu-cnt,
.z-menu-popup-cnt .z-menu-item-over a.z-menu-item-cnt,
.z-menu-popup .z-menu-cnt:hover,
.z-menu-popup .z-menu-item-cnt:hover {
    background: rgba(255, 255, 255, 0.22) !important;
    border-color: rgba(255, 255, 255, 0.40) !important;
    color: #ffffff !important;
}

.z-menu-popup .z-menu-img,
.z-menu-popup .z-menu-item-img {
    width: 14px !important;
    height: 14px !important;
    margin-left: -20px !important;
    margin-right: 6px !important;
    vertical-align: -2px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='13' height='13' viewBox='0 0 16 16'%3E%3Cpath fill='%23ffffff' d='M6.2 3.1a.75.75 0 0 1 1.06 0l4.37 4.37a.75.75 0 0 1 0 1.06L7.26 12.9a.75.75 0 1 1-1.06-1.06L10.04 8 6.2 4.16a.75.75 0 0 1 0-1.06z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 13px 13px !important;
}

.z-menu-popup .z-focus-a {
    height: 0 !important;
    width: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
}

/* ======================================================================
   AIS SIDEBAR MENU FINAL TUNING V2
   Fokus:
   - Menu kiri tidak melayang / tidak berubah ukuran saat hover.
   - Jarak antar menu proporsional dan konsisten.
   - Popup submenu level pertama dekat dengan tepi sidebar.
   - Batas antar menu lebih tipis dan warna submenu seragam.
   ====================================================================== */
.navigasi .z-menubar-ver {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver > table,
.navigasi .z-menubar-ver > table > tbody {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver > table > tbody > tr,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu-item {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 27px !important;
    min-height: 27px !important;
    max-height: 27px !important;
    line-height: 27px !important;
    padding: 0 4px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
    overflow: visible !important;
}

.navigasi .z-menubar-ver > table > tbody > tr + tr {
    margin-top: 1px !important;
}

.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > a > table.z-menu-item-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu-item > a > table.z-menu-item-body {
    display: table !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    margin: 0 !important;
    padding: 0 !important;
    table-layout: fixed !important;
    box-sizing: border-box !important;
    background: rgba(10, 49, 104, 0.84) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    overflow: hidden !important;
}

.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > table.z-menu-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-over > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-body-clk > table.z-menu-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > a > table.z-menu-item-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-item-over > a > table.z-menu-item-body {
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    background: rgba(22, 82, 150, 0.92) !important;
    border: 1px solid rgba(255, 255, 255, 0.20) !important;
    border-radius: 4px !important;
    box-shadow: none !important;
    transform: none !important;
}

.navigasi .z-menubar-ver .z-menu-body > tbody,
.navigasi .z-menubar-ver .z-menu-body > tbody > tr,
.navigasi .z-menubar-ver .z-menu-item-body > tbody,
.navigasi .z-menubar-ver .z-menu-item-body > tbody > tr {
    height: 25px !important;
    max-height: 25px !important;
}

.navigasi .z-menubar-ver .z-menu-inner-m,
.navigasi .z-menubar-ver .z-menu-item-inner-m {
    display: table-cell !important;
    width: 100% !important;
    height: 25px !important;
    line-height: 25px !important;
    padding: 0 !important;
    margin: 0 !important;
    vertical-align: middle !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver .z-menu-inner-l,
.navigasi .z-menubar-ver .z-menu-inner-r,
.navigasi .z-menubar-ver .z-menu-item-inner-l,
.navigasi .z-menubar-ver .z-menu-item-inner-r,
.navigasi .z-menubar-ver .z-menu-space,
.navigasi .z-menubar-ver .z-menu-item-space {
    display: none !important;
    width: 0 !important;
    height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    background: transparent !important;
}

.navigasi .z-menubar-ver .z-menu-inner-m > div,
.navigasi .z-menubar-ver .z-menu-item-inner-m > div {
    display: block !important;
    position: relative !important;
    width: 100% !important;
    height: 25px !important;
    line-height: 25px !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
    overflow: visible !important;
}

.navigasi .z-menubar-ver button.z-menu-btn,
.navigasi .z-menubar-ver button.z-menu-item-btn {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 25px !important;
    min-height: 25px !important;
    max-height: 25px !important;
    line-height: 25px !important;
    padding: 0 8px 0 24px !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    border: 0 !important;
    border-radius: 3px !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-position: 8px center !important;
    background-size: 12px 12px !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    cursor: pointer !important;
    box-shadow: none !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.30) !important;
    transform: none !important;
}

.navigasi .z-menubar-ver button.z-menu-btn:hover,
.navigasi .z-menubar-ver button.z-menu-item-btn:hover,
.navigasi .z-menubar-ver .z-menu-over button.z-menu-btn,
.navigasi .z-menubar-ver .z-menu-item-over button.z-menu-item-btn {
    height: 25px !important;
    line-height: 25px !important;
    padding: 0 8px 0 24px !important;
    margin: 0 !important;
    border: 0 !important;
    background-color: transparent !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}

/* Popup level pertama harus muncul dekat dengan sidebar, bukan mengikuti lebar text menu. */
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > table.z-menu-body .z-menu-inner-m > div > .z-menu-popup,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu > table.z-menu-body .z-menu-inner-m > div > .z-menu-popup {
    left: 248px !important;
}

/* Submenu: warna seragam, border tipis, dan tinggi lebih proporsional. */
.z-menu-popup,
.z-menu-popup .z-menu-popup-cnt {
    background: rgba(15, 55, 112, 0.98) !important;
    background-image: none !important;
    border: 1px solid rgba(255, 255, 255, 0.18) !important;
    border-radius: 7px !important;
    box-shadow: 0 10px 22px rgba(15, 23, 42, 0.22) !important;
    padding: 3px !important;
    min-width: 218px !important;
    overflow: visible !important;
}

.z-menu-popup .z-menu-cnt,
.z-menu-popup .z-menu-item-cnt,
.z-menu-popup-cnt .z-menu a.z-menu-cnt,
.z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt {
    min-height: 25px !important;
    height: 25px !important;
    line-height: 25px !important;
    margin: 1px 0 !important;
    padding: 0 10px 0 28px !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    border-radius: 4px !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 750 !important;
    box-shadow: none !important;
}

.z-menu-popup .z-menu-cnt:hover,
.z-menu-popup .z-menu-item-cnt:hover,
.z-menu-popup .z-menu-over > .z-menu-cl > .z-menu-cr > .z-menu-cm > .z-menu-cnt,
.z-menu-popup .z-menu-item-over > .z-menu-item-cl > .z-menu-item-cr > .z-menu-item-cm > .z-menu-item-cnt {
    height: 25px !important;
    line-height: 25px !important;
    background: rgba(255, 255, 255, 0.16) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    color: #ffffff !important;
    box-shadow: none !important;
    transform: none !important;
}

.z-menu-popup .z-menu-img,
.z-menu-popup .z-menu-item-img {
    width: 12px !important;
    height: 12px !important;
    margin-left: -19px !important;
    margin-right: 6px !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 12px 12px !important;
    vertical-align: -2px !important;
}

/* ======================================================================
   AIS SIDEBAR MENU POLISH V3 - border tipis + search form rapi
   Patch lanjutan untuk ZK 5.x menu kiri. Tidak memakai main-responsive-zk.css.
   ====================================================================== */

/* Border antar menu dibuat lebih halus agar tidak terlihat terlalu tebal. */
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > a > table.z-menu-item-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.z-menu-item > a > table.z-menu-item-body {
    border: 1px solid rgba(255, 255, 255, 0.075) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.055) !important;
}

.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > table.z-menu-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-over > table.z-menu-body,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-body-clk > table.z-menu-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item > a > table.z-menu-item-body:hover,
.navigasi .z-menubar-ver > table > tbody > tr > td.menu_item.z-menu-item-over > a > table.z-menu-item-body {
    border: 1px solid rgba(255, 255, 255, 0.13) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.075) !important;
}

.z-menu-popup .z-menu-cnt,
.z-menu-popup .z-menu-item-cnt,
.z-menu-popup-cnt .z-menu a.z-menu-cnt,
.z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt {
    border: 1px solid rgba(255, 255, 255, 0.075) !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.045) !important;
}

.z-menu-popup .z-menu-cnt:hover,
.z-menu-popup .z-menu-item-cnt:hover,
.z-menu-popup .z-menu-over > .z-menu-cl > .z-menu-cr > .z-menu-cm > .z-menu-cnt,
.z-menu-popup .z-menu-item-over > .z-menu-item-cl > .z-menu-item-cr > .z-menu-item-cm > .z-menu-item-cnt {
    border-color: rgba(255, 255, 255, 0.14) !important;
}

/* Search area di atas menu: hilangkan efek belang row grid dan buat seperti search bar. */
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child > td.z-row-inner,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-row-cnt {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox > tbody,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox > tbody > tr,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox td {
    background: transparent !important;
    border: 0 !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox {
    width: 100% !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-hbox > tbody > tr > td:first-child {
    padding: 5px 8px 6px 10px !important;
    box-sizing: border-box !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child input.z-textbox,
.navigasi input.z-textbox.cari_menu,
.navigasi .cari_menu.z-textbox {
    width: 156px !important;
    max-width: 156px !important;
    height: 25px !important;
    min-height: 25px !important;
    line-height: 25px !important;
    margin: 0 !important;
    padding: 3px 8px !important;
    box-sizing: border-box !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid rgba(255, 255, 255, 0.62) !important;
    border-radius: 5px !important;
    color: #0f172a !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, 0.08), 0 1px 0 rgba(255, 255, 255, 0.06) !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child input.z-textbox:focus,
.navigasi input.z-textbox.cari_menu:focus,
.navigasi .cari_menu.z-textbox:focus {
    border-color: rgba(125, 211, 252, 0.95) !important;
    box-shadow: 0 0 0 2px rgba(125, 211, 252, 0.25), inset 0 1px 2px rgba(15, 23, 42, 0.08) !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton {
    width: 28px !important;
    height: 25px !important;
    min-height: 25px !important;
    margin: 0 0 0 4px !important;
    padding: 0 !important;
    border: 1px solid rgba(255, 255, 255, 0.12) !important;
    border-radius: 5px !important;
    background: rgba(255, 255, 255, 0.12) !important;
    box-shadow: none !important;
    vertical-align: middle !important;
    transform: none !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton:hover,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton-over {
    background: rgba(255, 255, 255, 0.20) !important;
    border-color: rgba(255, 255, 255, 0.22) !important;
    box-shadow: none !important;
    transform: none !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton-body,
.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton-cnt {
    width: 28px !important;
    height: 25px !important;
    line-height: 25px !important;
    padding: 0 !important;
    margin: 0 !important;
    text-align: center !important;
    background: transparent !important;
    border: 0 !important;
}

.navigasi .z-grid-body > table > tbody.z-rows > tr:first-child .z-toolbarbutton img {
    width: 15px !important;
    height: 15px !important;
    max-width: 15px !important;
    max-height: 15px !important;
    margin: 4px 0 0 0 !important;
    vertical-align: top !important;
    opacity: 0.92 !important;
    filter: none !important;
}

/* ======================================================================
   AIS HEADER MODULE STRIP SCROLLBAR FIX V4
   Saat lebar layar kecil, browser menampilkan horizontal scrollbar pada
   bar shortcut modul sehingga terlihat seperti progress bar. Scroll tetap
   aktif, tetapi indikator scrollbar disembunyikan agar header tetap bersih.
   ====================================================================== */
.headerHbox.main-responsive-module-row,
.main-responsive-module-row,
.headerHbox.main-responsive-module-row .z-row-cnt,
.main-responsive-module-row .z-row-cnt,
.headerHbox.main-responsive-module-row .main-responsive-module-strip,
.main-responsive-module-row .main-responsive-module-strip,
.headerHbox.main-responsive-module-row .main-responsive-module-strip table,
.main-responsive-module-row .main-responsive-module-strip table {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -ms-overflow-style: none !important;
    scrollbar-width: none !important;
}

.headerHbox.main-responsive-module-row::-webkit-scrollbar,
.main-responsive-module-row::-webkit-scrollbar,
.headerHbox.main-responsive-module-row .z-row-cnt::-webkit-scrollbar,
.main-responsive-module-row .z-row-cnt::-webkit-scrollbar,
.headerHbox.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar,
.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar,
.headerHbox.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar,
.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
}

.headerHbox.main-responsive-module-row::-webkit-scrollbar-track,
.main-responsive-module-row::-webkit-scrollbar-track,
.headerHbox.main-responsive-module-row .z-row-cnt::-webkit-scrollbar-track,
.main-responsive-module-row .z-row-cnt::-webkit-scrollbar-track,
.headerHbox.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar-track,
.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar-track,
.headerHbox.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar-track,
.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar-track,
.headerHbox.main-responsive-module-row::-webkit-scrollbar-thumb,
.main-responsive-module-row::-webkit-scrollbar-thumb,
.headerHbox.main-responsive-module-row .z-row-cnt::-webkit-scrollbar-thumb,
.main-responsive-module-row .z-row-cnt::-webkit-scrollbar-thumb,
.headerHbox.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar-thumb,
.main-responsive-module-row .main-responsive-module-strip::-webkit-scrollbar-thumb,
.headerHbox.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar-thumb,
.main-responsive-module-row .main-responsive-module-strip table::-webkit-scrollbar-thumb {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
    background: transparent !important;
    border: 0 !important;
}

/* Tinggi bar shortcut distabilkan agar area kosong bekas scrollbar tidak tampak. */
.headerHbox.main-responsive-module-row,
.main-responsive-module-row {
    min-height: 32px !important;
    height: 32px !important;
    max-height: 32px !important;
    padding: 0 !important;
}

.headerHbox.main-responsive-module-row .z-row-cnt,
.main-responsive-module-row .z-row-cnt,
.headerHbox.main-responsive-module-row .main-responsive-module-strip,
.main-responsive-module-row .main-responsive-module-strip,
.headerHbox.main-responsive-module-row .main-responsive-module-strip > tbody > tr > td,
.main-responsive-module-row .main-responsive-module-strip > tbody > tr > td {
    height: 32px !important;
    max-height: 32px !important;
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

.headerHbox.main-responsive-module-row .z-toolbarbutton,
.main-responsive-module-row .z-toolbarbutton {
    margin-top: 3px !important;
    margin-bottom: 3px !important;
}

/* ======================================================================
   AIS ZK55 PICKER BUTTON VISIBILITY FIX V9
   Menampilkan kembali icon dropdown/picker pada combobox, bandbox,
   datebox, timebox, spinner, dan doublespinner. Pada ZK 5.x tombol picker
   dirender sebagai elemen <i class="z-bandbox-btn"></i> / sejenisnya;
   beberapa theme lama membuat background icon tidak terlihat.
   ====================================================================== */
.z-combobox,
.z-bandbox,
.z-datebox,
.z-timebox,
.z-spinner,
.z-doublespinner,
.z-combobox-rounded,
.z-bandbox-rounded,
.z-datebox-rounded,
.z-timebox-rounded,
.z-spinner-rounded,
.z-doublespinner-rounded {
    display: inline-flex !important;
    align-items: stretch !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    white-space: nowrap !important;
}

.z-combobox-inp,
.z-bandbox-inp,
.z-datebox-inp,
.z-timebox-inp,
.z-spinner-inp,
.z-doublespinner-inp,
.z-combobox-rounded-inp,
.z-bandbox-rounded-inp,
.z-datebox-rounded-inp,
.z-timebox-rounded-inp,
.z-spinner-rounded-inp,
.z-doublespinner-rounded-inp {
    min-height: 22px !important;
    height: 22px !important;
    line-height: 18px !important;
    box-sizing: border-box !important;
    border-radius: 5px 0 0 5px !important;
    border-right: 0 !important;
    background-color: rgba(255, 255, 255, 0.92) !important;
}

.z-combobox .z-combobox-btn,
.z-bandbox .z-bandbox-btn,
.z-datebox .z-datebox-btn,
.z-timebox .z-timebox-btn,
.z-spinner .z-spinner-btn,
.z-doublespinner .z-doublespinner-btn,
.z-combobox-rounded .z-combobox-rounded-btn,
.z-bandbox-rounded .z-bandbox-rounded-btn,
.z-datebox-rounded .z-datebox-rounded-btn,
.z-timebox-rounded .z-timebox-rounded-btn,
.z-spinner-rounded .z-spinner-rounded-btn,
.z-doublespinner-rounded .z-doublespinner-rounded-btn {
    display: inline-block !important;
    visibility: visible !important;
    opacity: 1 !important;
    width: 22px !important;
    min-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    line-height: 22px !important;
    padding: 0 !important;
    margin: 0 !important;
    box-sizing: border-box !important;
    cursor: pointer !important;
    vertical-align: top !important;
    overflow: hidden !important;
    border: 1px solid #bfd0e3 !important;
    border-left: 0 !important;
    border-radius: 0 5px 5px 0 !important;
    background-color: #eef5ff !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 11px 11px !important;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.70) !important;
}

.z-combobox .z-combobox-btn,
.z-bandbox .z-bandbox-btn,
.z-timebox .z-timebox-btn,
.z-combobox-rounded .z-combobox-rounded-btn,
.z-bandbox-rounded .z-bandbox-rounded-btn,
.z-timebox-rounded .z-timebox-rounded-btn {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%230f172a' d='M3.2 5.7a1 1 0 0 1 1.4 0L8 9.1l3.4-3.4a1 1 0 0 1 1.4 1.4l-4.1 4.1a1 1 0 0 1-1.4 0L3.2 7.1a1 1 0 0 1 0-1.4z'/%3E%3C/svg%3E") !important;
}

.z-datebox .z-datebox-btn,
.z-datebox-rounded .z-datebox-rounded-btn {
    background-size: 13px 13px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%230f172a' d='M4 1a1 1 0 0 1 1 1v1h6V2a1 1 0 1 1 2 0v1h1a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h1V2a1 1 0 0 1 1-1zm10 6H2v6h12V7z'/%3E%3C/svg%3E") !important;
}

.z-spinner .z-spinner-btn,
.z-doublespinner .z-doublespinner-btn,
.z-spinner-rounded .z-spinner-rounded-btn,
.z-doublespinner-rounded .z-doublespinner-rounded-btn,
.z-timebox .z-timebox-btn-upper,
.z-spinner .z-spinner-btn-upper,
.z-doublespinner .z-doublespinner-btn-upper {
    background-size: 10px 10px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%230f172a' d='M8 4l4 5H4l4-5z'/%3E%3C/svg%3E") !important;
}

.z-timebox .z-timebox-btn-lower,
.z-spinner .z-spinner-btn-lower,
.z-doublespinner .z-doublespinner-btn-lower {
    background-size: 10px 10px !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%230f172a' d='M8 12L4 7h8l-4 5z'/%3E%3C/svg%3E") !important;
}

.z-combobox .z-combobox-btn:hover,
.z-bandbox .z-bandbox-btn:hover,
.z-datebox .z-datebox-btn:hover,
.z-timebox .z-timebox-btn:hover,
.z-spinner .z-spinner-btn:hover,
.z-doublespinner .z-doublespinner-btn:hover,
.z-combobox .z-combobox-btn-over,
.z-bandbox .z-bandbox-btn-over,
.z-datebox .z-datebox-btn-over,
.z-timebox .z-timebox-btn-over,
.z-spinner .z-spinner-btn-over,
.z-doublespinner .z-doublespinner-btn-over {
    background-color: #dbeafe !important;
    border-color: #93c5fd !important;
}

.z-bandbox .z-bandbox-inp,
.z-combobox .z-combobox-inp,
.z-datebox .z-datebox-inp {
    max-width: calc(100% - 22px) !important;
}

/* ======================================================================
   Enhancement tampilan header & sidebar (patch 2026-06-11)
   1) Logo dan judul dirapatkan secara proporsional
   2) Info & profil di kanan dirapikan
   3) Border antar menu sidebar dibuat sangat tipis
   4) Module strip (e-Learning..Info Kegiatan) rata kiri
   ====================================================================== */

/* (1) Brand: logo + title */
.main-responsive-brand-box {
    align-items: center !important;
    padding-left: 10px !important;
}
.main-responsive-brand-box > .z-image,
.main-responsive-brand-box > img {
    margin-right: 8px !important;
}
.main-responsive-brand-text {
    line-height: 1.1 !important;
}
.main-responsive-brand-text .title1 {
    margin: 0 !important;
    padding: 0 !important;
}
.main-responsive-brand-text .motto {
    margin: 0 !important;
    padding: 0 !important;
}

/* (2) Header kanan: info + profile + akses, dirapikan sebagai stack rapi */
.main-responsive-header-right {
    padding-right: 12px !important;
    gap: 4px !important;
}
.main-responsive-header-right #headerHboxButton {
    display: inline-flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    justify-content: flex-end !important;
    gap: 6px !important;
    width: auto !important;
    margin-left: auto !important;
}
.main-responsive-header-right #headerHboxButton .z-toolbarbutton,
.main-responsive-header-right #headerHboxButton .user_button_profile {
    margin: 0 !important;
    padding: 4px 12px !important;
    font-size: 12px !important;
    white-space: nowrap !important;
    line-height: 1.3 !important;
    border-radius: 999px !important;
}
.main-responsive-header-right .users_online_button,
.main-responsive-header-right .main-responsive-online-button {
    margin-top: 2px !important;
    padding: 3px 10px !important;
    font-size: 11px !important;
    line-height: 1.3 !important;
    text-align: right !important;
    border-radius: 999px !important;
    background: rgba(255,255,255,.14) !important;
    border: 1px solid rgba(255,255,255,.22) !important;
    color: #fff !important;
}

/* (3) Tipiskan border antar item menu sidebar */
.navigasi tr.z-treerow td.z-treecell,
.main-responsive-sidebar tr.z-treerow td.z-treecell {
    border-bottom: 1px solid rgba(255, 255, 255, .06) !important;
}
.navigasi tr.z-row td.z-row-inner,
.navigasi tr.z-row .z-cell,
.main-responsive-sidebar tr.z-row td.z-row-inner,
.main-responsive-sidebar tr.z-row .z-cell {
    border-bottom: 1px solid rgba(255, 255, 255, .06) !important;
}
.navigasi tr.z-row:last-child td.z-row-inner,
.navigasi tr.z-treerow:last-child td.z-treecell,
.main-responsive-sidebar tr.z-row:last-child td.z-row-inner,
.main-responsive-sidebar tr.z-treerow:last-child td.z-treecell {
    border-bottom: 0 !important;
}

/* ======================================================================
   Messagebox / dialog konfirmasi bawaan ZK (Pertanyaan, Informasi, dst).
   Modernisasi konten + tombol OK/Cancel (struktur tabel 3x3 ZK 5 diratakan).
   ====================================================================== */
.z-window-highlighted-cnt {
    padding: 16px 18px 14px 18px !important;
    background: #ffffff !important;
}

/* Ikon question/info/warning diberi napas */
.z-msgbox {
    margin: 2px 12px 0 0 !important;
}

/* Teks pesan */
.z-messagebox {
    padding: 0 !important;
}

.z-messagebox .z-label {
    font-size: 12.5px !important;
    line-height: 1.65 !important;
    color: #334155 !important;
}

/* Pemisah antara pesan dan tombol */
.z-window-highlighted-cnt .z-separator-hor-bar {
    background: transparent !important;
    border: 0 !important;
    border-top: 1px solid #eef2f7 !important;
    margin: 12px 0 10px 0 !important;
    height: 0 !important;
    overflow: hidden !important;
}

/* Tombol messagebox: ratakan tabel slice 3x3 menjadi tombol pill modern */
.z-messagebox-btn .z-button-tl,
.z-messagebox-btn .z-button-tm,
.z-messagebox-btn .z-button-tr,
.z-messagebox-btn .z-button-cl,
.z-messagebox-btn .z-button-cr,
.z-messagebox-btn .z-button-bl,
.z-messagebox-btn .z-button-bm,
.z-messagebox-btn .z-button-br {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    width: 0 !important;
    height: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.z-messagebox-btn {
    display: inline-block !important;
    margin: 0 4px !important;
}

.z-messagebox-btn .z-button-cm {
    display: inline-block !important;
    min-width: 84px !important;
    padding: 7px 20px !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    color: #475569 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .08) !important;
}

.z-messagebox-btn:hover .z-button-cm {
    border-color: #94a3b8 !important;
    background: #f8fafc !important;
}

/* Tombol pertama (OK/Yes) = aksi utama, warna tema */
.z-window-highlighted td:first-child > .z-messagebox-btn .z-button-cm,
.z-window-modal td:first-child > .z-messagebox-btn .z-button-cm {
    background: var(--ais-theme-primary, #0c71c3) !important;
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    color: #ffffff !important;
    box-shadow: 0 4px 12px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
}

.z-window-highlighted td:first-child > .z-messagebox-btn:hover .z-button-cm,
.z-window-modal td:first-child > .z-messagebox-btn:hover .z-button-cm {
    filter: brightness(1.08);
}

/* ======================================================================
   E-Learning Portallayout (TampilanELearningAction.initPortalRootLayout)
   3 panel modern: Perkuliahan | Aktivitas Pembelajaran | Tugas-Ujian-Materi.
   ====================================================================== */
/* Shell = satu-satunya scroller halaman e-learning.
   height tidak memakai !important agar JS (pasangAutoFitTinggiPortal)
   bisa memaskan tinggi shell ke viewport. */
.elearning-portal-shell {
    width: 100% !important;
    height: 100%;
    box-sizing: border-box !important;
    padding: 10px !important;
    background: transparent !important;
    /* overflow tanpa !important: JS memutuskan — embedded di MainAction
       memakai 'visible' (scroll menyatu ke root), standalone memakai 'auto'. */
    overflow-y: auto;
    overflow-x: hidden !important;
}

/* Cegah scrollbar ganda: area dalam panel tidak memunculkan scroll sendiri
   kecuali benar-benar diperlukan (konten melebihi tinggi panel). */
.elearning-portal-body .z-west,
.elearning-portal-body .z-east,
.elearning-portal-body .z-west-body,
.elearning-portal-body .z-east-body,
.elearning-portal-body .z-center-body {
    overflow-x: hidden !important;
}

.elearning-portal {
    width: 100% !important;
    background: transparent !important;
    border: 0 !important;
}

.elearning-portal-col,
.elearning-portal .z-portalchildren {
    padding: 4px !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 0 !important;
}

/* Kartu panel modern */
.elearning-portal-panel {
    border: 1px solid #e2e8f0 !important;
    border-radius: 14px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    box-shadow: 0 10px 24px rgba(15, 23, 42, .07) !important;
}

.elearning-portal-panel .z-panel-header {
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .10) 0%,
        rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .03) 100%) !important;
    border: 0 !important;
    border-bottom: 1px solid #eef2f7 !important;
    color: #0f172a !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    letter-spacing: .01em !important;
    padding: 9px 14px !important;
    cursor: move !important;
}

.elearning-portal-panel-body {
    padding: 0 !important;
    background: #ffffff !important;
    border: 0 !important;
}

/* Tinggi area kerja panel diatur otomatis oleh JS (mengikuti tinggi parent
   .elearning-portal-shell); nilai di sini hanya fallback awal sebelum JS jalan. */
.elearning-portal-body {
    min-height: 320px !important;
    overflow: hidden !important;
    border: 0 !important;
    background: #ffffff !important;
}

.elearning-portal-body .z-west,
.elearning-portal-body .z-east,
.elearning-portal-body .z-west-body,
.elearning-portal-body .z-east-body {
    border: 0 !important;
    background: #ffffff !important;
}

/* Mobile / layar sempit: kolom portal otomatis menumpuk penuh.
   Tinggi panel tetap mengikuti nilai dari Java/JS (tinggi minimal frame),
   tidak dipotong max-height agar scroll tetap milik parent. */
@media screen and (max-width: 900px) {
    .elearning-portal-col,
    .elearning-portal .z-portalchildren {
        width: 100% !important;
        float: none !important;
        display: block !important;
    }
    .elearning-portal-shell {
        padding: 0px !important;
    }
}

/* ======================================================================
   Form filter pencarian (grid di region North, mis. mahasiswa.zul).
   Lebar input di ZUL banyak yang hardcoded 40-70px sehingga form tampak
   kecil-kecil; di sini ukuran minimum dipaksa lebih manusiawi, hbox
   diratakan menjadi flex agar field turun baris (wrap) bila sempit.
   ====================================================================== */

/* Label filter */
.z-north .z-grid .z-row-cnt > .z-label {
    font-size: 11.5px !important;
    font-weight: 700 !important;
    color: #475569 !important;
    line-height: 1.35 !important;
}

/* Sel filter diberi napas */
.z-north .z-grid .z-row-cnt {
    padding: 5px 8px !important;
}

/* Hbox di dalam sel filter diratakan menjadi flex yang bisa wrap */
.z-north .z-grid .z-row-cnt .z-hbox,
.z-north .z-grid .z-row-cnt .z-hbox table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
}

.z-north .z-grid .z-row-cnt .z-hbox tbody {
    display: block !important;
    width: 100% !important;
}

.z-north .z-grid .z-row-cnt .z-hbox tr {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    gap: 4px !important;
    width: 100% !important;
}

.z-north .z-grid .z-row-cnt .z-hbox td {
    display: block !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
}

.z-north .z-grid .z-row-cnt .z-hbox td.z-hbox-sep {
    display: none !important;
}

/* Input teks & angka: tinggi dan lebar minimum yang nyaman */
.z-north .z-grid input.z-textbox,
.z-north .z-grid input.z-decimalbox,
.z-north .z-grid input.z-intbox,
.z-north .z-grid input.z-longbox,
.z-north .z-grid input.z-doublebox {
    min-width: 56px !important;
    height: 28px !important;
    padding: 4px 8px !important;
    box-sizing: border-box !important;
    font-size: 12px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    background: #ffffff !important;
}

.z-north .z-grid input.z-textbox:focus,
.z-north .z-grid input.z-decimalbox:focus,
.z-north .z-grid .z-combobox-inp:focus,
.z-north .z-grid .z-bandbox-inp:focus {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    outline: none !important;
}

/* Combobox / bandbox: paksa lebar minimum agar nilai terbaca,
   dan lebar input dalam mengikuti lebar luar (menimpa width inline px
   hasil kalkulasi JS ZK yang sering cuma 0-2px) */
.z-north .z-grid .z-combobox,
.z-north .z-grid .z-bandbox {
    min-width: 92px !important;
    max-width: 100% !important;
    display: inline-flex !important;
    align-items: center !important;
    box-sizing: border-box !important;
}

.z-north .z-grid .z-combobox-inp,
.z-north .z-grid .z-bandbox-inp {
    width: calc(100% - 20px) !important;
    min-width: 0 !important;
    height: 26px !important;
    padding: 3px 8px !important;
    box-sizing: border-box !important;
    font-size: 12px !important;
    border: 1px solid #cbd5e1 !important;
    border-right: 0 !important;
    border-radius: 8px 0 0 8px !important;
    background: #ffffff !important;
}

.z-north .z-grid .z-combobox-btn,
.z-north .z-grid .z-bandbox-btn {
    height: 26px !important;
    box-sizing: border-box !important;
    border: 1px solid #cbd5e1 !important;
    border-left: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    background-color: #f8fafc !important;
}

/* Baris checkbox: beri jarak antar pilihan dan izinkan wrap rapi */
.z-north .z-grid .z-checkbox {
    display: inline-flex !important;
    align-items: center !important;
    margin: 2px 10px 2px 0 !important;
    white-space: nowrap !important;
}

.z-north .z-grid .z-checkbox-cnt {
    font-size: 11.5px !important;
    color: #334155 !important;
    padding-left: 4px !important;
}

/* Toolbar aksi di bawah filter */
.z-north .z-toolbar {
    padding: 6px 8px !important;
    background: #f8fafc !important;
    border-top: 1px solid #eef2f7 !important;
}

.z-north .z-toolbar .z-toolbarbutton {
    margin: 2px 4px 2px 0 !important;
}

/* Layar sempit: kolom label di atas field tetap terbaca */
@media screen and (max-width: 900px) {
    .z-north .z-grid .z-row-cnt {
        padding: 4px 6px !important;
    }
    .z-north .z-grid .z-combobox,
    .z-north .z-grid .z-bandbox {
        min-width: 80px !important;
    }
}

/* ======================================================================
   Tombol aksi standar (MyToolbarbuttonConfig) — Simpan/Batal/Keluar.
   Styling dipusatkan di sini; Java hanya menempelkan sclass.
   ====================================================================== */
.ais-btn {
    display: inline-block !important;
    border-radius: 8px !important;
    padding: 3px 12px !important;
    border: 1px solid transparent !important;
    cursor: pointer !important;
    box-shadow: 0 1px 2px rgba(15, 23, 42, .15) !important;
    text-decoration: none !important;
    vertical-align: middle !important;
    box-sizing: border-box !important;
}

.ais-btn .z-toolbarbutton-body,
.ais-btn .z-toolbarbutton-cnt {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
    color: inherit !important;
    font-size: 11.5px !important;
    font-weight: 700 !important;
    line-height: 17px !important;
    white-space: nowrap !important;
    text-decoration: none !important;
}

/* Ikon selalu sejajar di kiri teks; <br> sisa orient vertical disembunyikan */
.ais-btn .z-toolbarbutton-cnt br {
    display: none !important;
}

.ais-btn .z-toolbarbutton-cnt img {
    width: 14px !important;
    height: 14px !important;
    vertical-align: -2px !important;
    margin-right: 5px !important;
}

.ais-btn:hover {
    filter: brightness(1.07);
    box-shadow: 0 2px 6px rgba(15, 23, 42, .22) !important;
}

.ais-btn:active {
    filter: brightness(.95);
}

.ais-btn-hijau {
    background: #10b981 !important;
    border-color: #059669 !important;
    color: #ffffff !important;
}

.ais-btn-merah {
    background: #ef4444 !important;
    border-color: #dc2626 !important;
    color: #ffffff !important;
}

.ais-btn-merah-tua {
    background: #b91c1c !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

.ais-btn-hijau .z-toolbarbutton-cnt,
.ais-btn-merah .z-toolbarbutton-cnt,
.ais-btn-merah-tua .z-toolbarbutton-cnt {
    color: #ffffff !important;
}

/* Ikon SVG diputihkan agar kontras di atas tombol berwarna */
.ais-tbar-icon-white .z-toolbarbutton-cnt img,
.ais-tbar-icon-white img {
    filter: brightness(0) invert(1);
}

/* Kompatibilitas: class lama tombol kecil */
.ais-tbar-small {
    border-radius: 8px !important;
}

/* Toolbar di region South (footer MyWindow) sering diberi tinggi inline
   28px + overflow hidden oleh ZK sehingga tombol pill .ais-btn terpotong.
   Biarkan tingginya mengikuti isi dan jangan memotong tombol. */
.z-south .z-toolbar {
    height: auto !important;
    min-height: 36px !important;
    overflow: visible !important;
    padding: 4px 8px !important;
    box-sizing: border-box !important;
}

.z-south,
.z-south-body {
    overflow: visible !important;
}

.z-south .z-toolbar .ais-btn {
    margin: 1px 4px 1px 0 !important;
    vertical-align: top !important;
}

/* ======================================================================
   Papan Pengumuman modern (MainAction.appendModernPengumumanPanel)
   Class main-announcement-* sebelumnya hanya ada di main-responsive-zk.css
   yang tidak lagi dimuat; dipindahkan & dimodernkan di sini.
   ====================================================================== */
.main-announcement-panel {
    background: #ffffff !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .16) !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 28px rgba(15, 23, 42, .08) !important;
    overflow: hidden !important;
}

/* Hero / kepala panel */
.main-announcement-hero {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: flex-end !important;
    justify-content: space-between !important;
    gap: 8px !important;
    padding: 16px 18px 12px 18px !important;
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .10) 0%,
        rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .03) 60%,
        #ffffff 100%) !important;
    border-bottom: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .12) !important;
}

.main-announcement-hero-text {
    min-width: 0 !important;
    flex: 1 1 260px !important;
}

.main-announcement-eyebrow {
    display: block !important;
    font-size: 10px !important;
    font-weight: 800 !important;
    letter-spacing: .12em !important;
    text-transform: uppercase !important;
    color: var(--ais-theme-primary, #0c71c3) !important;
    margin-bottom: 2px !important;
}

.main-announcement-title {
    display: block !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    line-height: 1.25 !important;
    color: #0f172a !important;
    letter-spacing: -.01em !important;
}

.main-announcement-subtitle {
    display: block !important;
    margin-top: 3px !important;
    font-size: 11.5px !important;
    line-height: 1.5 !important;
    color: #64748b !important;
    white-space: normal !important;
}

.main-announcement-count {
    display: inline-block !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .10) !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .20) !important;
    color: var(--ais-theme-primary, #0c71c3) !important;
    font-size: 10.5px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

/* Panel pencarian */
.main-announcement-search-panel {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 12px 18px !important;
    background: #f8fafc !important;
    border-bottom: 1px solid #eef2f7 !important;
}

.main-announcement-search-panel .main-announcement-search-input,
.main-announcement-search-input {
    flex: 1 1 220px !important;
    min-width: 160px !important;
    width: auto !important;
    height: 34px !important;
    padding: 6px 14px !important;
    border: 1px solid #dbe3ee !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    color: #0f172a !important;
    font-size: 12px !important;
    box-shadow: inset 0 1px 2px rgba(15, 23, 42, .04) !important;
}

.main-announcement-search-input:focus {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 0 0 3px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .15) !important;
    outline: none !important;
}

.main-announcement-search-button,
.main-announcement-search-button .z-toolbarbutton-cnt {
    cursor: pointer !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    white-space: nowrap !important;
}

.main-announcement-search-button {
    margin: 0 !important;
    padding: 7px 16px !important;
    border-radius: 999px !important;
    border: 1px solid #d4dce8 !important;
    background: #ffffff !important;
}

.main-announcement-search-button .z-toolbarbutton-cnt {
    background: transparent !important;
    color: #475569 !important;
}

.main-announcement-search-button:hover {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
}

.main-announcement-search-primary {
    background: var(--ais-theme-primary, #0c71c3) !important;
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 4px 12px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
}

.main-announcement-search-primary .z-toolbarbutton-cnt {
    color: #ffffff !important;
}

.main-announcement-search-primary:hover {
    filter: brightness(1.08);
}

/* Daftar & grup */
.main-announcement-list {
    padding: 4px 18px 16px 18px !important;
}

.main-announcement-group {
    margin: 14px 0 6px 0 !important;
    padding: 0 !important;
}

.main-announcement-group .z-label {
    color: #64748b !important;
}

.main-announcement-group-primary .z-label {
    color: var(--ais-theme-primary, #0c71c3) !important;
}

/* Kartu pengumuman */
.main-announcement-card {
    border: 1px solid #e5eaf2 !important;
    background: #ffffff !important;
    box-shadow: 0 4px 12px rgba(15, 23, 42, .04) !important;
    transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}

.main-announcement-card:hover {
    border-color: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .35) !important;
    box-shadow: 0 10px 24px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .12) !important;
    transform: translateY(-1px);
}

.main-announcement-card-primary {
    border-left: 4px solid var(--ais-theme-primary, #0c71c3) !important;
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .06) 0%,
        #ffffff 65%) !important;
}

.main-announcement-meta {
    display: flex !important;
}

.main-announcement-chip {
    background: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #e2e8f0 !important;
    text-transform: uppercase !important;
    letter-spacing: .03em !important;
}

.main-announcement-chip-primary {
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .12) !important;
    color: var(--ais-theme-primary, #0c71c3) !important;
    border-color: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .25) !important;
}

/* Judul (link) & deskripsi */
.main-announcement-link,
.main-announcement-link .z-toolbarbutton-cnt {
    color: #0f172a !important;
    background: transparent !important;
    border: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    text-decoration: none !important;
    cursor: pointer !important;
}

.main-announcement-link:hover .z-toolbarbutton-cnt,
.main-announcement-link:hover {
    color: var(--ais-theme-primary, #0c71c3) !important;
    text-decoration: underline !important;
}

.main-announcement-desc {
    color: #64748b !important;
}

/* Pager */
.main-announcement-pager {
    margin-top: 12px !important;
}

.main-announcement-page-button {
    margin: 0 3px !important;
    padding: 5px 12px !important;
    border-radius: 999px !important;
    border: 1px solid #d4dce8 !important;
    background: #ffffff !important;
    cursor: pointer !important;
}

.main-announcement-page-button .z-toolbarbutton-cnt {
    background: transparent !important;
    color: #475569 !important;
    font-size: 11px !important;
    font-weight: 800 !important;
}

.main-announcement-page-button:hover {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
}

.main-announcement-page-active {
    background: var(--ais-theme-primary, #0c71c3) !important;
    border-color: var(--ais-theme-primary, #0c71c3) !important;
}

.main-announcement-page-active .z-toolbarbutton-cnt {
    color: #ffffff !important;
}

/* Kosong */
.main-announcement-empty-box {
    padding: 8px 0 !important;
}

.main-announcement-empty {
    color: #64748b !important;
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .05) !important;
    border: 1px dashed rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
}

/* Mode rapat: kurangi seluruh spacing agar profil di bawah cepat terlihat */
.main-announcement-hero {
    padding: 10px 14px 8px 14px !important;
}

.main-announcement-title {
    font-size: 14.5px !important;
}

.main-announcement-subtitle {
    margin-top: 1px !important;
    font-size: 10.5px !important;
    line-height: 1.4 !important;
}

.main-announcement-count {
    padding: 3px 10px !important;
    font-size: 10px !important;
}

.main-announcement-search-panel {
    padding: 7px 14px !important;
    gap: 6px !important;
}

.main-announcement-search-panel .main-announcement-search-input,
.main-announcement-search-input {
    height: 28px !important;
    padding: 4px 12px !important;
}

.main-announcement-search-button {
    padding: 4px 12px !important;
}

.main-announcement-list {
    padding: 2px 14px 10px 14px !important;
}

.main-announcement-group {
    margin: 8px 0 2px 0 !important;
}

.main-announcement-group .z-label {
    font-size: 10.5px !important;
}

.main-announcement-card {
    margin: 4px 0 !important;
    padding: 8px 12px !important;
    border-radius: 10px !important;
}

.main-announcement-meta {
    margin-bottom: 3px !important;
}

.main-announcement-chip {
    padding: 2px 7px !important;
    font-size: 9px !important;
}

.main-announcement-link .z-toolbarbutton-cnt {
    font-size: 12.5px !important;
    line-height: 1.3 !important;
}

.main-announcement-desc {
    margin-top: 3px !important;
    font-size: 11px !important;
    line-height: 1.4 !important;
}

.main-announcement-pager {
    margin-top: 8px !important;
}

/* ----------------------------------------------------------------------
   Penyempurnaan papan pengumuman: responsif mobile + aksesibilitas.
   Reusable: komponen mana pun yang memakai class main-announcement-*
   (lihat MainStyleHelper/MainAction) otomatis mendapat aturan ini —
   tidak perlu menulis style per halaman.
   ---------------------------------------------------------------------- */

/* Deskripsi dibatasi 3 baris agar tinggi kartu seragam dan daftar rapi. */
.main-announcement-desc {
    display: -webkit-box !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
    overflow: hidden !important;
}

/* Fokus keyboard terlihat jelas (aksesibilitas). */
.main-announcement-link:focus,
.main-announcement-search-button:focus,
.main-announcement-page-button:focus,
.main-announcement-search-input:focus-visible {
    outline: 2px solid var(--ais-theme-primary, #0c71c3) !important;
    outline-offset: 2px !important;
}

/* Transisi halus kartu; dimatikan bila user memilih reduce-motion. */
.main-announcement-card {
    transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease !important;
}

@media (prefers-reduced-motion: reduce) {
    .main-announcement-card {
        transition: none !important;
    }
}

/* Layar sempit (HP): susun ulang agar nyaman disentuh dan dibaca. */
@media (max-width: 768px) {
    .main-announcement-hero {
        align-items: flex-start !important;
        flex-direction: column !important;
    }

    .main-announcement-count {
        align-self: flex-start !important;
    }

    /* Input pencarian satu baris penuh, tinggi memenuhi target sentuh 38px. */
    .main-announcement-search-panel .main-announcement-search-input,
    .main-announcement-search-input {
        flex: 1 1 100% !important;
        min-width: 100% !important;
        height: 38px !important;
        font-size: 13px !important;
    }

    /* Tombol Cari & Reset berbagi satu baris, sama lebar, mudah disentuh. */
    .main-announcement-search-button {
        flex: 1 1 calc(50% - 4px) !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        min-height: 36px !important;
        padding: 8px 12px !important;
        box-sizing: border-box !important;
    }

    /* Kartu lebih lega untuk jari, judul tetap maksimal 2 baris. */
    .main-announcement-card {
        padding: 12px 13px !important;
    }

    .main-announcement-link,
    .main-announcement-link .z-toolbarbutton-cnt {
        display: -webkit-box !important;
        -webkit-box-orient: vertical !important;
        -webkit-line-clamp: 2 !important;
        overflow: hidden !important;
    }

    /* Pager: tombol target sentuh >= 34px, rata tengah, boleh turun baris. */
    .main-announcement-pager {
        display: flex !important;
        flex-wrap: wrap !important;
        justify-content: center !important;
        gap: 4px !important;
    }

    .main-announcement-page-button {
        min-width: 38px !important;
        min-height: 34px !important;
        margin: 0 !important;
    }
}

/* Panel kehadiran dosen/guru di atas pengumuman */
.main-teacher-presence-panel {
    margin-bottom: 10px !important;
}

.main-teacher-presence-hero {
    padding: 9px 14px 7px 14px !important;
}

.main-teacher-presence-body {
    padding: 8px 14px 12px 14px !important;
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

.main-teacher-presence-body img {
    max-width: 64px !important;
    height: auto !important;
    border-radius: 10px !important;
}

.main-teacher-presence-body table {
    max-width: 100% !important;
}

/* Responsif mobile */
@media screen and (max-width: 768px) {
    .main-announcement-hero {
        padding: 13px 14px 10px 14px !important;
    }
    .main-announcement-title {
        font-size: 15px !important;
    }
    .main-announcement-count {
        white-space: normal !important;
    }
    .main-announcement-search-panel {
        padding: 10px 14px !important;
    }
    .main-announcement-list {
        padding: 4px 12px 14px 12px !important;
    }
}

@media screen and (max-width: 480px) {
    .main-announcement-search-panel .main-announcement-search-input,
    .main-announcement-search-input {
        flex: 1 1 100% !important;
    }
    .main-announcement-search-button {
        flex: 1 1 auto !important;
        text-align: center !important;
    }
    .main-announcement-card {
        padding: 11px 12px !important;
    }
}

/* (4) Module strip rata kiri + flow layout (wrap otomatis di layar sempit).
   ZK Hbox dirender sebagai table; struktur table diratakan menjadi flex
   sehingga tombol modul (e-Learning..Tampilan Baru) turun baris sendiri. */
.main-responsive-module-strip,
.main-responsive-module-row > .z-row-inner > .z-cell > .z-hbox,
.main-responsive-module-row .z-hbox {
    justify-content: flex-start !important;
    text-align: left !important;
    padding-left: 10px !important;
}
.main-responsive-module-row .z-hbox > .z-hbox-inner,
.main-responsive-module-strip > .z-hbox-inner {
    justify-content: flex-start !important;
    text-align: left !important;
}

.main-responsive-module-strip,
.main-responsive-module-strip table {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}

.main-responsive-module-strip tbody {
    display: block !important;
    width: 100% !important;
}

.main-responsive-module-strip tr {
    display: flex !important;
    flex-wrap: wrap !important;
    align-items: center !important;
    width: 100% !important;
}

.main-responsive-module-strip td {
    display: block !important;
    width: auto !important;
    height: auto !important;
    padding: 0 !important;
}

/* Sel pemisah hbox tidak diperlukan pada layout flex */
.main-responsive-module-strip td.z-hbox-sep {
    display: none !important;
}

.main-responsive-module-strip .z-toolbarbutton {
    margin: 3px !important;
    white-space: nowrap !important;
}

/* Baris/sel pembungkus strip tidak boleh memotong tinggi saat wrap */
.main-responsive-module-row,
.main-responsive-module-row .z-row-inner,
.main-responsive-module-row .z-cell {
    height: auto !important;
    overflow: visible !important;
}

/* ======================================================================
   THEME ADAPTER DASHBOARD (patch 2026-06-11)
   Semua class Dasboard*/Dashboard* (DasboardSop, DasboardAkuntansi,
   DashboardTimelinePertemuan, dst) memakai warna biru hardcoded sebagai
   inline style. Aturan di bawah memetakan pola warna tersebut ke variabel
   tema (--ais-theme-*) yang didefinisikan file tema pilihan user
   (ytb.css, hijau.css, merah.css, ... dimuat MyThemeProvider), sehingga
   seluruh dasbor otomatis mengikuti tema tanpa mengubah tiap class Java.
   CSS !important menang atas inline style.
   ====================================================================== */

/* --- Hero gelap dasbor (navy #0f172a + biru royal + cyan) --- */
[style*="#0f172a"][style*="#1d4ed8"],
[style*="#0f172a"][style*="#2563eb"] {
    background: linear-gradient(135deg, rgba(0, 0, 0, .38) 0%, rgba(0, 0, 0, 0) 55%),
        linear-gradient(135deg,
            var(--ais-theme-primary, #1d4ed8) 0%,
            var(--ais-theme-primary, #1d4ed8) 45%,
            var(--ais-theme-accent, var(--ais-theme-primary, #06b6d4)) 100%) !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
}

/* --- Strip/garis aksen gradien biru --- */
[style*="linear-gradient(90deg,#2563eb,#06b6d4)"],
[style*="linear-gradient(90deg,#2563eb,#38bdf8)"],
[style*="linear-gradient(90deg,#2563eb,#14b8a6)"],
[style*="linear-gradient(90deg,#2563eb,#22c55e)"],
[style*="linear-gradient(90deg,#1d4ed8,#0891b2)"],
[style*="linear-gradient(90deg,#4338ca,#06b6d4)"],
[style*="linear-gradient(135deg,#2563eb,#06b6d4)"],
[style*="linear-gradient(135deg,#0d6efd,#6610f2)"],
[style*="linear-gradient(135deg,#0d6efd,#20c997)"] {
    background: linear-gradient(90deg,
        var(--ais-theme-primary, #2563eb),
        var(--ais-theme-accent, var(--ais-theme-primary, #06b6d4))) !important;
}

/* --- Kepala kartu terang kebiruan --- */
[style*="linear-gradient(135deg,#eff6ff"],
[style*="linear-gradient(135deg,#e0f2fe"],
[style*="linear-gradient(180deg,#f8fafc 0%,#eef6ff"] {
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .10) 0%,
        #ffffff 100%) !important;
}

/* --- Ikon/chip metrik biru --- */
[style*="#dbeafe"][style*="#1e40af"] {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .14) !important;
    color: var(--ais-theme-primary, #1e40af) !important;
}

/* --- Tombol/elemen solid biru --- */
[style*="background:#2563eb"],
[style*="background: #2563eb"],
[style*="background:#1d4ed8"],
[style*="background:#0d6efd"] {
    background: var(--ais-theme-primary, #2563eb) !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
}

/* --- Teks & border aksen biru --- */
[style*="color:#2563eb"],
[style*="color: #2563eb"],
[style*="color:#1d4ed8"],
[style*="color:#0d6efd"] {
    color: var(--ais-theme-primary, #2563eb) !important;
}

[style*="border-left:4px solid #2563eb"],
[style*="border-left: 4px solid #2563eb"] {
    border-left-color: var(--ais-theme-primary, #2563eb) !important;
}

/* --- Kartu profil/akademik (style di-inject dari Java: ais-profile-*,
       ais-akad-*) — komponen biru dipetakan ke tema --- */
.ais-profile-head {
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .12) 0%,
        #f8fafc 60%, #ffffff 100%) !important;
    border-left-color: var(--ais-theme-primary, #2563eb) !important;
}

.ais-akad-head {
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .10) 0%,
        #f8fafc 60%, #ffffff 100%) !important;
}

.ais-profile-table th,
.ais-akad-card th {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .08) !important;
}

.ais-profile-badge {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .12) !important;
    color: var(--ais-theme-primary, #3730a3) !important;
}

.ais-profile-spinner {
    border-top-color: var(--ais-theme-primary, #2563eb) !important;
}

.ais-profile-bar.sks,
.ais-akad-fill0 {
    background: linear-gradient(90deg,
        rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .45),
        var(--ais-theme-primary, #2563eb)) !important;
}

/* --- Perluasan adapter: token biru lain yang dipakai class-class dasbor --- */

/* Latar tint biru muda */
[style*="background:#eff6ff"],
[style*="background: #eff6ff"],
[style*="linear-gradient(135deg,#ffffff,#eff6ff"] {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .08) !important;
}

[style*="background:#e0f2fe"],
[style*="background: #e0f2fe"] {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .12) !important;
}

[style*="background:#dbeafe"],
[style*="background: #dbeafe"] {
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .15) !important;
}

/* Latar solid biru sedang/terang */
[style*="background:#0ea5e9"],
[style*="background:#0891b2"],
[style*="background:#3b82f6"],
[style*="background:#38bdf8"] {
    background: var(--ais-theme-primary, #2563eb) !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
}

/* Gradien biru lain (vertikal/diagonal) */
[style*="linear-gradient(90deg,#0ea5e9"],
[style*="linear-gradient(90deg,#38bdf8"],
[style*="linear-gradient(180deg,#38bdf8"],
[style*="linear-gradient(180deg,#2563eb"],
[style*="linear-gradient(180deg,#3b82f6"],
[style*="linear-gradient(135deg,#1e3a8a"] {
    background: linear-gradient(135deg,
        var(--ais-theme-primary, #2563eb),
        var(--ais-theme-accent, var(--ais-theme-primary, #38bdf8))) !important;
}

/* Border biru muda */
[style*="border:1px solid #bfdbfe"],
[style*="border:1px solid #dbeafe"],
[style*="border:3px solid #bfdbfe"],
[style*="border-bottom:1px solid #dbeafe"],
[style*="border-bottom:2px solid #bfdbfe"],
[style*="border-color:#dbeafe"],
[style*="border-color:#38bdf8"] {
    border-color: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .30) !important;
}

/* Teks biru tua (judul/angka aksen) */
[style*="color:#1e40af"],
[style*="color: #1e40af"],
[style*="color:#1e3a8a"],
[style*="color:#075985"],
[style*="color:#3b82f6"],
[style*="color:#0ea5e9"] {
    color: var(--ais-theme-primary, #1e40af) !important;
}

/* Teks biru muda di atas latar gelap (hero) -> warna kontras tema */
[style*="color:#dbeafe"],
[style*="color:#bfdbfe"],
[style*="color:#e0f2fe"],
[style*="color:#eff6ff"] {
    color: var(--ais-theme-contrast, #ffffff) !important;
}

/* ======================================================================
   Menu utama sebagai dropdown di header (ZKoss 5.5)
   ====================================================================== */
.main-responsive-header-menu-button,
.main-responsive-header-menu-button .z-toolbarbutton-body,
.main-responsive-header-menu-button .z-toolbarbutton-cnt {
    display: inline-block !important;
    vertical-align: middle !important;
}

.main-responsive-menu-popup,
.z-popup.main-responsive-menu-popup,
.main-responsive-menu-popup .z-popup-cl,
.main-responsive-menu-popup .z-popup-cm,
.main-responsive-menu-popup .z-popup-cr,
.main-responsive-menu-popup .z-popup-cnt {
    width: 340px !important;
    max-width: 92vw !important;
    height: 85vh !important;
    max-height: 85vh !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}

.main-responsive-menu-popup .z-popup-cnt,
.main-responsive-menu-popup .z-grid,
.main-responsive-menu-popup .z-grid-body,
.main-responsive-menu-popup .z-rows,
.main-responsive-menu-popup .z-row-cnt {
    background: #1f4b86 !important;
}

.main-responsive-menu-popup .z-popup-cnt,
.main-responsive-menu-popup .z-grid-body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
}

.main-responsive-sidebar-dropdown-hidden,
.main-responsive-sidebar-dropdown-hidden.z-west,
.main-responsive-sidebar-dropdown-hidden .z-west-body {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    overflow: hidden !important;
}

.main-responsive-frame .main-responsive-center {
    min-width: 0 !important;
}

/* Patch 2026-06-11: dropdown menu header - tombol Menu paling kiri, kontras,
   popup rapi, dan hilangkan ruang kosong bekas West/sidebar. */
.main-responsive-module-row .main-responsive-header-menu-primary,
.main-responsive-module-strip .main-responsive-header-menu-primary,
.main-responsive-module-row .main-responsive-header-menu-primary .z-toolbarbutton-body,
.main-responsive-module-strip .main-responsive-header-menu-primary .z-toolbarbutton-body,
.main-responsive-module-row .main-responsive-header-menu-primary .z-toolbarbutton-cnt,
.main-responsive-module-strip .main-responsive-header-menu-primary .z-toolbarbutton-cnt {
    background: linear-gradient(135deg, #f59e0b, #f97316) !important;
    border-color: rgba(255, 255, 255, 0.72) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.38) !important;
    box-shadow: 0 7px 18px rgba(249, 115, 22, 0.32) !important;
}
.main-responsive-module-row .main-responsive-header-menu-primary,
.main-responsive-module-strip .main-responsive-header-menu-primary {
    margin-left: 0 !important;
    margin-right: 8px !important;
}
.main-responsive-module-row .main-responsive-header-menu-primary:hover,
.main-responsive-module-strip .main-responsive-header-menu-primary:hover,
.main-responsive-module-row .main-responsive-header-menu-primary.z-toolbarbutton-over,
.main-responsive-module-strip .main-responsive-header-menu-primary.z-toolbarbutton-over {
    background: linear-gradient(135deg, #fb923c, #ea580c) !important;
    border-color: #ffffff !important;
    box-shadow: 0 9px 24px rgba(249, 115, 22, 0.42) !important;
}

.main-responsive-menu-popup .z-menubar-ver,
.main-responsive-menu-popup .z-menubar-ver table,
.main-responsive-menu-popup .z-menubar-ver tbody,
.main-responsive-menu-popup .z-menubar-ver tr,
.main-responsive-menu-popup .z-menubar-ver td {
    background-image: none !important;
}
.main-responsive-menu-popup .z-menubar-ver .z-menu-btn,
.main-responsive-menu-popup .z-menubar-ver .z-menu-item-btn,
.main-responsive-menu-popup .z-menu-popup .z-menu-btn,
.main-responsive-menu-popup .z-menu-popup .z-menu-item-btn {
    background-repeat: no-repeat !important;
    background-position: 9px center !important;
    background-size: 13px 13px !important;
    padding-left: 29px !important;
    padding-right: 8px !important;
    box-sizing: border-box !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}
.main-responsive-menu-popup .z-menu-img,
.main-responsive-menu-popup .z-menu-item-img,
.main-responsive-menu-popup .z-menu-cnt-img .z-menu-img,
.main-responsive-menu-popup .z-menu-item-cnt .z-menu-item-img {
    display: inline-block !important;
    width: 14px !important;
    min-width: 14px !important;
    max-width: 14px !important;
    height: 14px !important;
    min-height: 14px !important;
    max-height: 14px !important;
    margin-right: 6px !important;
    background-repeat: no-repeat !important;
    background-position: center center !important;
    background-size: 12px 12px !important;
    vertical-align: -2px !important;
}
.main-responsive-menu-popup .z-menu-popup-cnt,
.main-responsive-menu-popup .z-menu-popup-cnt li,
.main-responsive-menu-popup .z-menu-popup-cnt .z-menu-item-cnt,
.main-responsive-menu-popup .z-menu-popup-cnt .z-menu-cnt {
    background-repeat: no-repeat !important;
    background-image: none !important;
}

.main-responsive-frame .main-responsive-sidebar-dropdown-hidden,
.main-responsive-frame .main-responsive-sidebar-dropdown-hidden.z-west,
.main-responsive-frame .main-responsive-sidebar-dropdown-hidden.z-west-noborder,
.main-responsive-frame .main-responsive-sidebar-dropdown-hidden .z-west-body {
    display: none !important;
    visibility: hidden !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    left: -9999px !important;
    overflow: hidden !important;
}
.main-responsive-frame > .main-responsive-center,
.main-responsive-frame > .z-center,
.main-responsive-frame > .z-center-noborder,
.main-responsive-frame > div[class*="z-center"],
.main-responsive-frame .main-responsive-center {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}
.main-responsive-frame > .main-responsive-center .z-center-body,
.main-responsive-frame > .z-center .z-center-body,
.main-responsive-frame > .z-center-noborder .z-center-body,
.main-responsive-frame > div[class*="z-center"] > .z-center-body,
.main-responsive-frame .main-responsive-center .z-center-body {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
}


/* Patch 2026-06-11: hilangkan total ruang kosong bekas West saat menu utama dipindahkan ke dropdown header.
   Catatan: <popup id="popupmenu"> tidak mengambil ruang layout. Ruang kosong berasal dari region West/Borderlayout
   dan aturan lama yang memberi left:250px pada Center. Selector berikut dibuat lebih spesifik daripada aturan lama. */
.ecampus-dropdown-menu-active .main-responsive-frame .z-west.navigasi.main-responsive-sidebar,
.ecampus-dropdown-menu-active .main-responsive-frame .z-west-noborder.navigasi.main-responsive-sidebar,
.ecampus-dropdown-menu-active .main-responsive-frame .z-west.main-responsive-sidebar-dropdown-hidden,
.ecampus-dropdown-menu-active .main-responsive-frame .z-west-noborder.main-responsive-sidebar-dropdown-hidden,
.main-responsive-frame.main-responsive-frame-dropdown .z-west.navigasi.main-responsive-sidebar,
.main-responsive-frame.main-responsive-frame-dropdown .z-west-noborder.navigasi.main-responsive-sidebar,
.main-responsive-frame.main-responsive-frame-dropdown .z-west.main-responsive-sidebar-dropdown-hidden,
.main-responsive-frame.main-responsive-frame-dropdown .z-west-noborder.main-responsive-sidebar-dropdown-hidden,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-sidebar,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-sidebar-dropdown-hidden,
.main-responsive-frame.main-responsive-frame-dropdown .navigasi {
    display: none !important;
    visibility: hidden !important;
    left: -9999px !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}
.ecampus-dropdown-menu-active .main-responsive-frame .z-west.navigasi.main-responsive-sidebar .z-west-body,
.ecampus-dropdown-menu-active .main-responsive-frame .z-west-noborder.navigasi.main-responsive-sidebar .z-west-body,
.main-responsive-frame.main-responsive-frame-dropdown .z-west.navigasi.main-responsive-sidebar .z-west-body,
.main-responsive-frame.main-responsive-frame-dropdown .z-west-noborder.navigasi.main-responsive-sidebar .z-west-body,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-sidebar .z-west-body,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-sidebar-dropdown-hidden .z-west-body {
    display: none !important;
    width: 0 !important;
    min-width: 0 !important;
    max-width: 0 !important;
    overflow: hidden !important;
}
.ecampus-dropdown-menu-active .main-responsive-frame .z-center.main-responsive-center,
.ecampus-dropdown-menu-active .main-responsive-frame .z-center-noborder.main-responsive-center,
.ecampus-dropdown-menu-active .main-responsive-frame .main-responsive-center,
.main-responsive-frame.main-responsive-frame-dropdown .z-center.main-responsive-center,
.main-responsive-frame.main-responsive-frame-dropdown .z-center-noborder.main-responsive-center,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-center,
.main-responsive-frame.main-responsive-frame-dropdown > .z-center,
.main-responsive-frame.main-responsive-frame-dropdown > .z-center-noborder,
.main-responsive-frame.main-responsive-frame-dropdown > div[class*="z-center"] {
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box !important;
}
.ecampus-dropdown-menu-active .main-responsive-frame .z-center.main-responsive-center .z-center-body,
.ecampus-dropdown-menu-active .main-responsive-frame .z-center-noborder.main-responsive-center .z-center-body,
.main-responsive-frame.main-responsive-frame-dropdown .z-center.main-responsive-center .z-center-body,
.main-responsive-frame.main-responsive-frame-dropdown .z-center-noborder.main-responsive-center .z-center-body,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-center .z-center-body,
.main-responsive-frame.main-responsive-frame-dropdown .main-responsive-center .z-center-body-noborder {
    left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    box-sizing: border-box !important;
}

/* Patch 2026-06-11: stabilkan tampilan mobile saat menu utama memakai dropdown header.
   Masalah lama: setelah ClientInfo/Timer, MainAction membangun ulang header mobile legacy sehingga logo/menu lama muncul
   sebagai panel putih besar dan ruang West terlihat kembali. Selector ini menjaga header dropdown tetap kompak. */
@media (max-width: 768px) {
    body.ecampus-dropdown-menu-active .main-responsive-header,
    .main-responsive-header.main-responsive-header-mobile-dropdown,
    .headerHbox.main-responsive-header-mobile-dropdown {
        min-height: 88px !important;
        height: auto !important;
        max-height: none !important;
        overflow: visible !important;
        background: var(--ais-theme-primary-bg) !important;
    }
    body.ecampus-dropdown-menu-active .headerHbox_mobile.main-responsive-header,
    .headerHbox_mobile.main-responsive-header-mobile-dropdown {
        min-height: 88px !important;
        height: auto !important;
        max-height: none !important;
        background: var(--ais-theme-primary-bg) !important;
    }
    .main-responsive-header-grid,
    .main-responsive-header-grid .z-grid-body,
    .main-responsive-header-grid table {
        width: 100% !important;
        max-width: 100% !important;
    }
    .main-responsive-brand-box img,
    .main-responsive-header img#idLogo {
        max-height: 42px !important;
        height: 42px !important;
    }
    .main-responsive-header .title1 {
        font-size: 13px !important;
        line-height: 1.15 !important;
        white-space: normal !important;
    }
    .main-responsive-header .motto,
    .main-responsive-header .alamat {
        font-size: 9.5px !important;
        line-height: 1.15 !important;
    }
    .main-responsive-header-right,
    .main-responsive-header-actions {
        max-width: 100% !important;
        overflow: hidden !important;
    }
    .main-responsive-online-button,
    .users_online_button {
        max-width: 180px !important;
        overflow: hidden !important;
        text-overflow: ellipsis !important;
        white-space: nowrap !important;
    }
    .main-responsive-module-row,
    .main-responsive-module-row-mobile-dropdown,
    .main-responsive-module-strip {
        min-height: 34px !important;
        height: auto !important;
        max-height: 42px !important;
        overflow-x: auto !important;
        overflow-y: hidden !important;
        white-space: nowrap !important;
        -webkit-overflow-scrolling: touch !important;
        background: transparent !important;
    }
    .main-responsive-module-strip {
        display: block !important;
        padding: 3px 5px 5px 5px !important;
    }
    .main-responsive-module-row .z-toolbarbutton {
        margin: 3px 2px !important;
        display: inline-block !important;
        float: none !important;
    }
    .main-responsive-module-row .z-toolbarbutton-cnt {
        font-size: 10px !important;
        padding: 5px 8px !important;
        line-height: 1.1 !important;
    }
    .main-responsive-module-row img {
        max-width: 14px !important;
        max-height: 14px !important;
    }
    .main-responsive-header-menu-primary,
    .main-responsive-module-row .main-responsive-header-menu-primary {
        background: linear-gradient(135deg, #f97316, #ea580c) !important;
        border-color: rgba(255,255,255,.75) !important;
        box-shadow: 0 6px 16px rgba(249,115,22,.35) !important;
    }
    .main-responsive-frame.main-responsive-frame-dropdown,
    .ecampus-dropdown-menu-active .main-responsive-frame {
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
    }
    .main-responsive-frame.main-responsive-frame-dropdown .main-responsive-sidebar,
    .main-responsive-frame.main-responsive-frame-dropdown .navigasi,
    .ecampus-dropdown-menu-active .main-responsive-frame .main-responsive-sidebar,
    .ecampus-dropdown-menu-active .main-responsive-frame .navigasi {
        display: none !important;
        visibility: hidden !important;
        width: 0 !important;
        min-width: 0 !important;
        max-width: 0 !important;
        left: -9999px !important;
    }
    .main-responsive-frame.main-responsive-frame-dropdown .main-responsive-center,
    .ecampus-dropdown-menu-active .main-responsive-frame .main-responsive-center {
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        margin-left: 0 !important;
    }
    .main-responsive-menu-popup {
        width: 92vw !important;
        max-width: 360px !important;
        min-width: 280px !important;
        max-height: 82vh !important;
        overflow: auto !important;
    }
}

/* Patch 2026-06-11: Pengumuman lebih berwarna namun tetap lembut. */
.main-announcement-modern-v6.main-announcement-board-panel,
.main-announcement-board-panel {
    background:
        radial-gradient(circle at top left, rgba(59,130,246,.12), transparent 34%),
        radial-gradient(circle at top right, rgba(16,185,129,.10), transparent 30%),
        linear-gradient(180deg, #ffffff 0%, #f8fbff 100%) !important;
    border: 1px solid #dbe7f5 !important;
    box-shadow: 0 14px 32px rgba(15, 23, 42, .07) !important;
}
.main-announcement-board-panel .main-announcement-hero {
    background: linear-gradient(135deg, rgba(37,99,235,.09), rgba(14,165,233,.06) 55%, rgba(16,185,129,.06)) !important;
    border-bottom: 1px solid rgba(148,163,184,.22) !important;
    border-radius: 16px 16px 0 0 !important;
    padding: 16px 18px 12px 18px !important;
}
.main-announcement-board-panel .main-announcement-eyebrow {
    color: #1d4ed8 !important;
    letter-spacing: .14em !important;
}
.main-announcement-board-panel .main-announcement-title {
    color: #0f172a !important;
}
.main-announcement-board-panel .main-announcement-subtitle {
    color: #52627a !important;
}
.main-announcement-board-panel .main-announcement-search-panel {
    background: rgba(255,255,255,.72) !important;
    border-top: 1px solid rgba(226,232,240,.88) !important;
    border-bottom: 1px solid rgba(226,232,240,.88) !important;
    backdrop-filter: blur(6px) !important;
}
.main-announcement-board-panel .main-announcement-group .z-label {
    color: #1d4ed8 !important;
}
.main-announcement-board-card {
    position: relative !important;
    overflow: hidden !important;
    border: 1px solid rgba(203,213,225,.85) !important;
    box-shadow: 0 9px 20px rgba(15,23,42,.045) !important;
}
.main-announcement-board-card:before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 5px;
    background: #2563eb;
    opacity: .92;
}
.main-announcement-board-card:hover {
    transform: translateY(-1px) !important;
    box-shadow: 0 12px 28px rgba(15,23,42,.09) !important;
}
.main-announcement-tone-primary.main-announcement-board-card,
.main-announcement-tone-primary .main-announcement-board-card {
    background: linear-gradient(90deg, rgba(37,99,235,.075), rgba(255,255,255,.98) 32%) !important;
}
.main-announcement-tone-primary.main-announcement-board-card:before { background: #1d4ed8 !important; }
.main-announcement-tone-1.main-announcement-board-card { background: linear-gradient(90deg, rgba(14,165,233,.08), rgba(255,255,255,.98) 32%) !important; }
.main-announcement-tone-1.main-announcement-board-card:before { background: #0284c7 !important; }
.main-announcement-tone-2.main-announcement-board-card { background: linear-gradient(90deg, rgba(16,185,129,.08), rgba(255,255,255,.98) 32%) !important; }
.main-announcement-tone-2.main-announcement-board-card:before { background: #059669 !important; }
.main-announcement-tone-3.main-announcement-board-card { background: linear-gradient(90deg, rgba(245,158,11,.10), rgba(255,255,255,.98) 32%) !important; }
.main-announcement-tone-3.main-announcement-board-card:before { background: #d97706 !important; }
.main-announcement-tone-4.main-announcement-board-card { background: linear-gradient(90deg, rgba(168,85,247,.08), rgba(255,255,255,.98) 32%) !important; }
.main-announcement-tone-4.main-announcement-board-card:before { background: #7c3aed !important; }
.main-announcement-tone-5.main-announcement-board-card { background: linear-gradient(90deg, rgba(244,63,94,.075), rgba(255,255,255,.98) 32%) !important; }
.main-announcement-tone-5.main-announcement-board-card:before { background: #e11d48 !important; }
.main-announcement-board-card .main-announcement-chip {
    border-color: rgba(148,163,184,.28) !important;
    background: rgba(241,245,249,.88) !important;
    color: #334155 !important;
}
.main-announcement-board-card .main-announcement-chip-primary {
    background: linear-gradient(135deg, #dbeafe, #eef6ff) !important;
    color: #1e40af !important;
    border-color: #bfdbfe !important;
}
.main-announcement-board-link .z-toolbarbutton-cnt,
.main-announcement-board-link {
    color: #0f172a !important;
}
.main-announcement-board-desc {
    color: #52627a !important;
}

/* Patch 2026-06-11: filter pencarian ZUL otomatis collapsible. */
.ecampus-filter-togglebar {
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    width: 100% !important;
    padding: 7px 10px !important;
    margin: 2px 0 6px 0 !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, rgba(239,246,255,.95), rgba(255,247,237,.78)) !important;
    border: 1px solid #d8e5f6 !important;
    border-radius: 12px !important;
    box-shadow: 0 5px 14px rgba(15,23,42,.055) !important;
}
.ecampus-filter-toggle-button {
    border: 0 !important;
    outline: none !important;
    cursor: pointer !important;
    border-radius: 999px !important;
    padding: 8px 15px !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #1d4ed8, #0ea5e9) !important;
    box-shadow: 0 7px 16px rgba(37,99,235,.24) !important;
    line-height: 1.1 !important;
}
.ecampus-filter-toggle-button:hover {
    filter: brightness(1.04) !important;
    transform: translateY(-1px) !important;
}
.ecampus-smart-filter-collapsed {
    display: none !important;
}
.ecampus-smart-filter-expanded {
    border-radius: 12px !important;
    box-shadow: 0 8px 20px rgba(15,23,42,.06) !important;
}
@media (max-width: 768px) {
    .ecampus-filter-togglebar { padding: 6px 8px !important; border-radius: 10px !important; }
    .ecampus-filter-toggle-button { width: 100% !important; padding: 9px 12px !important; }
}

/* Patch 2026-06-11: dropdown menu close button + informasi perubahan tampilan */
.main-responsive-menu-searchbar {
    padding: 10px 10px 8px 10px !important;
    gap: 7px !important;
    background: linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,.04)) !important;
    border-bottom: 1px solid rgba(255,255,255,.18) !important;
    box-sizing: border-box !important;
}
.main-responsive-menu-searchbar .z-hbox-sep {
    width: 7px !important;
}
.main-responsive-menu-search-input,
.main-responsive-menu-searchbar .z-textbox {
    height: 32px !important;
    border-radius: 9px !important;
    border: 1px solid rgba(191,219,254,.9) !important;
    background: rgba(255,255,255,.96) !important;
    color: #0f172a !important;
    padding: 5px 10px !important;
    box-shadow: inset 0 1px 2px rgba(15,23,42,.08) !important;
}
.main-responsive-menu-search-button,
.main-responsive-menu-search-button .z-toolbarbutton-body,
.main-responsive-menu-search-button .z-toolbarbutton-cnt {
    width: 34px !important;
    min-width: 34px !important;
    height: 32px !important;
    border-radius: 9px !important;
    background: #173b73 !important;
    border: 1px solid rgba(191,219,254,.55) !important;
    box-shadow: 0 5px 12px rgba(15,23,42,.22) !important;
}
.main-responsive-menu-popup-close-button,
.main-responsive-menu-popup-close-button .z-toolbarbutton-body,
.main-responsive-menu-popup-close-button .z-toolbarbutton-cnt {
    height: 32px !important;
    line-height: 30px !important;
    border-radius: 9px !important;
    background: linear-gradient(135deg, #ef4444, #b91c1c) !important;
    color: #ffffff !important;
    border: 1px solid rgba(255,255,255,.75) !important;
    font-weight: 800 !important;
    padding: 0 10px !important;
    box-shadow: 0 6px 14px rgba(185,28,28,.28) !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.28) !important;
}
.main-responsive-menu-popup-close-button:hover,
.main-responsive-menu-popup-close-button.z-toolbarbutton-over,
.main-responsive-menu-popup-close-button:hover .z-toolbarbutton-body,
.main-responsive-menu-popup-close-button.z-toolbarbutton-over .z-toolbarbutton-body {
    background: linear-gradient(135deg, #f87171, #dc2626) !important;
}
.ais-ui-update-info-window,
.ais-ui-update-info-window .z-window-embedded-cnt,
.ais-ui-update-info-window .z-window-modal-cnt,
.ais-ui-update-info-window .z-window-highlighted-cnt {
    border-radius: 20px !important;
    overflow: hidden !important;
    background: #ffffff !important;
    border: 1px solid rgba(37,99,235,.18) !important;
    box-shadow: 0 24px 70px rgba(15,23,42,.26) !important;
}
.ais-ui-update-info-body {
    padding: 18px 20px 16px 20px !important;
    background: linear-gradient(145deg, #ffffff 0%, #eff6ff 100%) !important;
    box-sizing: border-box !important;
}
.ais-ui-update-info-head {
    padding-bottom: 12px !important;
    border-bottom: 1px solid rgba(37,99,235,.12) !important;
    margin-bottom: 12px !important;
}
.ais-ui-update-info-icon {
    width: 42px !important;
    height: 42px !important;
    line-height: 42px !important;
    text-align: center !important;
    border-radius: 14px !important;
    margin-right: 12px !important;
    background: linear-gradient(135deg, #f97316, #2563eb) !important;
    color: #ffffff !important;
    box-shadow: 0 10px 24px rgba(37,99,235,.25) !important;
}
.ais-ui-update-info-title {
    display: block !important;
    font-size: 17px !important;
    font-weight: 900 !important;
    color: #0f172a !important;
    line-height: 1.25 !important;
}
.ais-ui-update-info-subtitle,
.ais-ui-update-info-text,
.ais-ui-update-info-note {
    font-size: 13px !important;
    color: #475569 !important;
    line-height: 1.6 !important;
}
.ais-ui-update-info-note {
    padding: 12px 14px !important;
    border-radius: 14px !important;
    background: rgba(37,99,235,.08) !important;
    border: 1px solid rgba(37,99,235,.13) !important;
    margin: 8px 0 12px 0 !important;
}
.ais-ui-update-info-actions {
    padding-top: 4px !important;
}
.ais-ui-update-info-ok,
.ais-ui-update-info-ok .z-toolbarbutton-body,
.ais-ui-update-info-ok .z-toolbarbutton-cnt {
    border-radius: 999px !important;
    background: linear-gradient(135deg, #16a34a, #15803d) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    padding: 5px 18px !important;
    border: 1px solid rgba(255,255,255,.72) !important;
    box-shadow: 0 10px 20px rgba(21,128,61,.25) !important;
}
.ecampus-menu-update-callout {
    position: fixed !important;
    z-index: 999999 !important;
    width: 280px !important;
    max-width: calc(100vw - 24px) !important;
    padding: 12px 14px !important;
    border-radius: 14px !important;
    background: linear-gradient(135deg, #fff7ed, #ffffff) !important;
    border: 1px solid rgba(249,115,22,.35) !important;
    color: #7c2d12 !important;
    box-shadow: 0 18px 44px rgba(15,23,42,.24) !important;
    font-family: inherit !important;
    opacity: 0 !important;
    transform: translateY(-6px) !important;
    transition: all .18s ease !important;
}
.ecampus-menu-update-callout:before {
    content: "" !important;
    position: absolute !important;
    top: -8px !important;
    left: 24px !important;
    width: 14px !important;
    height: 14px !important;
    background: #fff7ed !important;
    border-left: 1px solid rgba(249,115,22,.35) !important;
    border-top: 1px solid rgba(249,115,22,.35) !important;
    transform: rotate(45deg) !important;
}
.ecampus-menu-update-callout-show {
    opacity: 1 !important;
    transform: translateY(0) !important;
}
.ecampus-menu-update-callout b {
    display: block !important;
    margin-bottom: 4px !important;
    font-size: 13px !important;
    font-weight: 900 !important;
    color: #9a3412 !important;
}
.ecampus-menu-update-callout span {
    display: block !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    color: #7c2d12 !important;
}
@media (max-width: 640px) {
    .main-responsive-menu-popup,
    .z-popup.main-responsive-menu-popup,
    .main-responsive-menu-popup .z-popup-cnt {
        width: 92vw !important;
    }
    .main-responsive-menu-popup-close-button,
    .main-responsive-menu-popup-close-button .z-toolbarbutton-body,
    .main-responsive-menu-popup-close-button .z-toolbarbutton-cnt {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }
}
.main-responsive-menu-popup,
.z-popup.main-responsive-menu-popup,
.main-responsive-menu-popup .z-popup-cl,
.main-responsive-menu-popup .z-popup-cm,
.main-responsive-menu-popup .z-popup-cr,
.main-responsive-menu-popup .z-popup-cnt {
    width: 360px !important;
}

/* Patch 2026-06-11 V2: Papan Pengumuman lebih tajam, tetap clean. */
.main-announcement-modern-v7.main-announcement-board-panel,
.main-announcement-board-panel {
    background:
        radial-gradient(circle at 2% 0%, rgba(37,99,235,.18), transparent 29%),
        radial-gradient(circle at 98% 0%, rgba(14,165,233,.16), transparent 28%),
        radial-gradient(circle at 35% 100%, rgba(245,158,11,.10), transparent 34%),
        linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%) !important;
    border: 1px solid rgba(59,130,246,.28) !important;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .09) !important;
}
.main-announcement-board-panel .main-announcement-hero {
    background:
        linear-gradient(135deg, rgba(30,64,175,.13), rgba(14,165,233,.09) 52%, rgba(16,185,129,.08)),
        linear-gradient(180deg, rgba(255,255,255,.72), rgba(255,255,255,.38)) !important;
    border-bottom: 1px solid rgba(96,165,250,.28) !important;
}
.main-announcement-board-panel .main-announcement-eyebrow {
    color: #1e40af !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.75) !important;
}
.main-announcement-board-panel .main-announcement-title {
    color: #081b45 !important;
}
.main-announcement-board-panel .main-announcement-subtitle {
    color: #334155 !important;
}
.main-announcement-board-panel .main-announcement-count {
    background: linear-gradient(135deg, #dbeafe, #eef2ff) !important;
    border-color: rgba(37,99,235,.34) !important;
    color: #1d4ed8 !important;
    box-shadow: 0 6px 14px rgba(37,99,235,.12) !important;
}
.main-announcement-board-card {
    border: 1px solid rgba(148,163,184,.50) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.065) !important;
}
.main-announcement-board-card:before {
    width: 6px !important;
    opacity: 1 !important;
}
.main-announcement-board-card:after {
    content: "";
    position: absolute;
    right: -38px;
    top: -38px;
    width: 86px;
    height: 86px;
    border-radius: 999px;
    background: rgba(37,99,235,.055);
    pointer-events: none;
}
.main-announcement-tone-primary.main-announcement-board-card,
.main-announcement-tone-primary .main-announcement-board-card,
.main-announcement-card-primary.main-announcement-board-card {
    background: linear-gradient(90deg, rgba(29,78,216,.14), rgba(255,255,255,.98) 36%) !important;
    border-color: rgba(37,99,235,.32) !important;
}
.main-announcement-tone-1.main-announcement-board-card { background: linear-gradient(90deg, rgba(2,132,199,.14), rgba(255,255,255,.98) 36%) !important; border-color: rgba(2,132,199,.24) !important; }
.main-announcement-tone-2.main-announcement-board-card { background: linear-gradient(90deg, rgba(5,150,105,.14), rgba(255,255,255,.98) 36%) !important; border-color: rgba(5,150,105,.24) !important; }
.main-announcement-tone-3.main-announcement-board-card { background: linear-gradient(90deg, rgba(217,119,6,.16), rgba(255,255,255,.98) 36%) !important; border-color: rgba(217,119,6,.25) !important; }
.main-announcement-tone-4.main-announcement-board-card { background: linear-gradient(90deg, rgba(124,58,237,.14), rgba(255,255,255,.98) 36%) !important; border-color: rgba(124,58,237,.24) !important; }
.main-announcement-tone-5.main-announcement-board-card { background: linear-gradient(90deg, rgba(225,29,72,.13), rgba(255,255,255,.98) 36%) !important; border-color: rgba(225,29,72,.23) !important; }
.main-announcement-board-card .main-announcement-chip {
    background: rgba(255,255,255,.78) !important;
    color: #1f2937 !important;
    border: 1px solid rgba(148,163,184,.38) !important;
    box-shadow: 0 4px 10px rgba(15,23,42,.045) !important;
}
.main-announcement-board-card .main-announcement-chip-primary {
    background: linear-gradient(135deg, #1d4ed8, #0ea5e9) !important;
    color: #ffffff !important;
    border-color: rgba(255,255,255,.70) !important;
    text-shadow: 0 1px 1px rgba(15,23,42,.25) !important;
}
.main-announcement-board-link,
.main-announcement-board-link .z-toolbarbutton-cnt {
    color: #020617 !important;
}
.main-announcement-board-desc {
    color: #334155 !important;
}

/* Patch 2026-06-11 V2: Filter pencarian global memakai Popup Window, bukan collapsed panel. */
.ecampus-filter-popup-togglebar {
    width: 100% !important;
    min-height: 42px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    padding: 6px 10px !important;
    box-sizing: border-box !important;
    background: linear-gradient(135deg, #f8fafc, #eff6ff) !important;
    border: 1px solid rgba(147,197,253,.65) !important;
    border-radius: 12px !important;
    box-shadow: 0 6px 14px rgba(15,23,42,.055) !important;
}
.ecampus-filter-popup-toggle-button {
    border: 0 !important;
    outline: none !important;
    cursor: pointer !important;
    border-radius: 999px !important;
    padding: 8px 16px !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #1d4ed8, #0891b2) !important;
    box-shadow: 0 8px 18px rgba(37,99,235,.25) !important;
    line-height: 1.1 !important;
}
.ecampus-filter-popup-toggle-button:hover {
    filter: brightness(1.06) !important;
    transform: translateY(-1px) !important;
}
.ecampus-filter-popup-mask {
    position: fixed !important;
    z-index: 99999 !important;
    left: 0 !important;
    top: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding: 72px 18px 18px 18px !important;
    box-sizing: border-box !important;
    background: rgba(15,23,42,.38) !important;
    backdrop-filter: blur(3px) !important;
}
.ecampus-filter-popup-window {
    width: min(980px, calc(100vw - 36px)) !important;
    max-height: calc(100vh - 110px) !important;
    background: #ffffff !important;
    border: 1px solid rgba(37,99,235,.22) !important;
    border-radius: 18px !important;
    box-shadow: 0 24px 70px rgba(15,23,42,.26) !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
}
.ecampus-filter-popup-head {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 13px 16px !important;
    background: linear-gradient(135deg, #1e3a8a, #0f766e) !important;
    color: #ffffff !important;
}
.ecampus-filter-popup-title {
    font-weight: 900 !important;
    font-size: 15px !important;
    letter-spacing: .02em !important;
}
.ecampus-filter-popup-x,
.ecampus-filter-popup-close {
    border: 0 !important;
    cursor: pointer !important;
    border-radius: 999px !important;
    font-weight: 900 !important;
}
.ecampus-filter-popup-x {
    width: 30px !important;
    height: 30px !important;
    line-height: 28px !important;
    color: #ffffff !important;
    background: rgba(255,255,255,.18) !important;
    border: 1px solid rgba(255,255,255,.35) !important;
    font-size: 20px !important;
}
.ecampus-filter-popup-x:hover { background: rgba(239,68,68,.92) !important; }
.ecampus-filter-popup-info {
    padding: 10px 16px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
    color: #334155 !important;
    background: linear-gradient(135deg, #eff6ff, #f8fafc) !important;
    border-bottom: 1px solid rgba(226,232,240,.95) !important;
}
.ecampus-filter-popup-body {
    padding: 14px 16px 8px 16px !important;
    max-height: calc(100vh - 250px) !important;
    overflow: auto !important;
    box-sizing: border-box !important;
    background: #ffffff !important;
}
.ecampus-filter-popup-body .z-grid,
.ecampus-filter-popup-body .z-grid-body,
.ecampus-filter-popup-body table {
    width: 100% !important;
    max-width: 100% !important;
}
.ecampus-filter-popup-body .z-toolbar {
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    align-items: center !important;
}
.ecampus-filter-popup-foot {
    display: flex !important;
    justify-content: flex-end !important;
    padding: 10px 16px 14px 16px !important;
    background: #f8fafc !important;
    border-top: 1px solid rgba(226,232,240,.95) !important;
}
.ecampus-filter-popup-close {
    padding: 8px 18px !important;
    color: #ffffff !important;
    background: linear-gradient(135deg, #0f172a, #334155) !important;
    box-shadow: 0 8px 18px rgba(15,23,42,.18) !important;
}
@media (max-width: 768px) {
    .ecampus-filter-popup-mask { padding: 56px 10px 10px 10px !important; }
    .ecampus-filter-popup-window { width: calc(100vw - 20px) !important; max-height: calc(100vh - 74px) !important; border-radius: 15px !important; }
    .ecampus-filter-popup-body { max-height: calc(100vh - 210px) !important; padding: 12px !important; }
    .ecampus-filter-popup-togglebar { padding: 6px 8px !important; }
    .ecampus-filter-popup-toggle-button { width: 100% !important; padding: 9px 12px !important; }
}

/* Patch 2026-06-11 V3: rapikan tombol popup informasi/dropdown agar tidak terlihat berlapis. */
.ais-ui-update-info-ok,
.ais-ui-update-info-ok.z-toolbarbutton,
.main-responsive-menu-popup-close-button,
.main-responsive-menu-popup-close-button.z-toolbarbutton {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: visible !important;
    text-shadow: none !important;
}
.ais-ui-update-info-ok .z-toolbarbutton-body,
.main-responsive-menu-popup-close-button .z-toolbarbutton-body {
    display: block !important;
    height: auto !important;
    min-height: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    background: transparent !important;
}
.ais-ui-update-info-ok .z-toolbarbutton-cnt,
.main-responsive-menu-popup-close-button .z-toolbarbutton-cnt {
    display: inline-block !important;
    box-sizing: border-box !important;
    color: #ffffff !important;
    border-radius: 999px !important;
    border: 1px solid rgba(255,255,255,.70) !important;
    font-weight: 900 !important;
    text-align: center !important;
    text-shadow: 0 1px 2px rgba(0,0,0,.20) !important;
}
.ais-ui-update-info-ok .z-toolbarbutton-cnt {
    padding: 10px 28px !important;
    min-width: 142px !important;
    background: linear-gradient(135deg, #22c55e 0%, #16a34a 50%, #15803d 100%) !important;
    box-shadow: 0 12px 24px rgba(21,128,61,.28) !important;
}
.ais-ui-update-info-ok:hover .z-toolbarbutton-cnt,
.ais-ui-update-info-ok.z-toolbarbutton-over .z-toolbarbutton-cnt {
    background: linear-gradient(135deg, #4ade80 0%, #16a34a 55%, #166534 100%) !important;
    box-shadow: 0 14px 28px rgba(21,128,61,.34) !important;
}
.main-responsive-menu-popup-close-button .z-toolbarbutton-cnt {
    height: 32px !important;
    line-height: 30px !important;
    padding: 0 16px !important;
    min-width: 72px !important;
    background: linear-gradient(135deg, #ef4444 0%, #dc2626 52%, #991b1b 100%) !important;
    box-shadow: 0 8px 16px rgba(185,28,28,.30) !important;
}
.main-responsive-menu-popup-close-button:hover .z-toolbarbutton-cnt,
.main-responsive-menu-popup-close-button.z-toolbarbutton-over .z-toolbarbutton-cnt {
    background: linear-gradient(135deg, #fb7185 0%, #ef4444 52%, #b91c1c 100%) !important;
}
.ecampus-menu-update-callout button {
    display: inline-block !important;
    margin-top: 10px !important;
    padding: 7px 14px !important;
    border: 1px solid rgba(249,115,22,.28) !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #f97316, #ea580c) !important;
    color: #ffffff !important;
    font-size: 12px !important;
    font-weight: 900 !important;
    cursor: pointer !important;
    box-shadow: 0 8px 18px rgba(234,88,12,.25) !important;
}
.ecampus-menu-update-callout button:hover {
    background: linear-gradient(135deg, #fb923c, #f97316) !important;
}

/* Patch 2026-06-11: Papan Pengumuman warna lebih tajam namun tetap nyaman. */
.main-announcement-board-panel,
.main-announcement-modern-v6.main-announcement-board-panel {
    background:
        radial-gradient(circle at 0% 0%, rgba(37,99,235,.20), transparent 31%),
        radial-gradient(circle at 100% 0%, rgba(20,184,166,.16), transparent 30%),
        radial-gradient(circle at 18% 100%, rgba(249,115,22,.10), transparent 26%),
        linear-gradient(180deg, #ffffff 0%, #f6faff 100%) !important;
    border: 1px solid #bfd4ee !important;
    box-shadow: 0 18px 42px rgba(15,23,42,.09) !important;
}
.main-announcement-board-panel .main-announcement-hero {
    background:
        linear-gradient(135deg, rgba(29,78,216,.16), rgba(14,165,233,.10) 52%, rgba(16,185,129,.12)) !important;
    border-bottom: 1px solid rgba(96,165,250,.28) !important;
}
.main-announcement-board-panel .main-announcement-eyebrow,
.main-announcement-board-panel .main-announcement-group .z-label {
    color: #174ea6 !important;
    text-shadow: 0 1px 0 rgba(255,255,255,.85) !important;
}
.main-announcement-board-panel .main-announcement-title {
    color: #071933 !important;
}
.main-announcement-board-panel .main-announcement-search-panel {
    background: rgba(255,255,255,.86) !important;
    border-top: 1px solid rgba(147,197,253,.38) !important;
    border-bottom: 1px solid rgba(147,197,253,.28) !important;
}
.main-announcement-board-card,
.main-announcement-card.main-announcement-board-card {
    border: 1px solid rgba(148,163,184,.42) !important;
    box-shadow: 0 10px 24px rgba(15,23,42,.07) !important;
    background: linear-gradient(90deg, rgba(37,99,235,.08), rgba(255,255,255,.99) 24%) !important;
}
.main-announcement-board-card:before {
    width: 6px !important;
    opacity: 1 !important;
    box-shadow: 2px 0 10px rgba(37,99,235,.17) !important;
}
.main-announcement-board-card:hover {
    border-color: rgba(37,99,235,.34) !important;
    box-shadow: 0 16px 34px rgba(15,23,42,.12) !important;
}
.main-announcement-tone-primary.main-announcement-board-card,
.main-announcement-tone-primary .main-announcement-board-card {
    background: linear-gradient(90deg, rgba(37,99,235,.14), rgba(255,255,255,.99) 28%) !important;
}
.main-announcement-tone-primary.main-announcement-board-card:before,
.main-announcement-tone-primary .main-announcement-board-card:before { background: #1d4ed8 !important; }
.main-announcement-tone-1.main-announcement-board-card { background: linear-gradient(90deg, rgba(14,165,233,.14), rgba(255,255,255,.99) 28%) !important; }
.main-announcement-tone-1.main-announcement-board-card:before { background: #0284c7 !important; }
.main-announcement-tone-2.main-announcement-board-card { background: linear-gradient(90deg, rgba(16,185,129,.14), rgba(255,255,255,.99) 28%) !important; }
.main-announcement-tone-2.main-announcement-board-card:before { background: #059669 !important; }
.main-announcement-tone-3.main-announcement-board-card { background: linear-gradient(90deg, rgba(245,158,11,.17), rgba(255,255,255,.99) 28%) !important; }
.main-announcement-tone-3.main-announcement-board-card:before { background: #d97706 !important; }
.main-announcement-tone-4.main-announcement-board-card { background: linear-gradient(90deg, rgba(168,85,247,.15), rgba(255,255,255,.99) 28%) !important; }
.main-announcement-tone-4.main-announcement-board-card:before { background: #7c3aed !important; }
.main-announcement-tone-5.main-announcement-board-card { background: linear-gradient(90deg, rgba(244,63,94,.14), rgba(255,255,255,.99) 28%) !important; }
.main-announcement-tone-5.main-announcement-board-card:before { background: #e11d48 !important; }
.main-announcement-board-card .main-announcement-chip {
    background: #eef6ff !important;
    border-color: #cfe0f5 !important;
    color: #173b73 !important;
}
.main-announcement-board-card .main-announcement-chip-primary {
    background: linear-gradient(135deg, #bfdbfe, #dbeafe) !important;
    border-color: #93c5fd !important;
    color: #0f3b82 !important;
}

/* Patch 2026-06-11: Filter pencarian ZUL dipindah statis ke window popup, tanpa timer DOM mover. */
.ecampus-zul-filter-launcher-north,
.ecampus-zul-filter-launcher-north .z-north-body,
.ecampus-zul-filter-launcher-north .z-north-cnt {
    background: linear-gradient(135deg, #f8fbff, #eef6ff 56%, #fff7ed) !important;
    border: 0 !important;
    overflow: visible !important;
    box-sizing: border-box !important;
}
.ecampus-zul-filter-launcher {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    width: 100% !important;
    padding: 9px 14px !important;
    border-bottom: 1px solid rgba(148,163,184,.22) !important;
    box-sizing: border-box !important;
}
.ecampus-zul-filter-open-button,
.ecampus-zul-filter-open-button .z-toolbarbutton-body {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.ecampus-zul-filter-open-button .z-toolbarbutton-cnt,
.ecampus-zul-filter-open-button.z-toolbarbutton-over .z-toolbarbutton-cnt {
    display: inline-block !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    font-size: 12px !important;
    line-height: 18px !important;
    padding: 8px 15px !important;
    border-radius: 999px !important;
    background: linear-gradient(135deg, #1d4ed8, #0ea5e9) !important;
    border: 1px solid rgba(255,255,255,.62) !important;
    box-shadow: 0 9px 18px rgba(37,99,235,.24) !important;
    text-shadow: 0 1px 1px rgba(15,23,42,.22) !important;
}
.ecampus-zul-filter-open-button:hover .z-toolbarbutton-cnt,
.ecampus-zul-filter-open-button.z-toolbarbutton-over .z-toolbarbutton-cnt {
    transform: translateY(-1px) !important;
    filter: brightness(1.06) !important;
}
.ecampus-zul-filter-launcher-hint {
    color: #52627a !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
.ecampus-zul-filter-window,
.ecampus-zul-filter-window .z-window-highlighted-cnt,
.ecampus-zul-filter-window .z-window-popup-cnt,
.ecampus-zul-filter-window .z-window-overlapped-cnt {
    border-radius: 18px !important;
    overflow: hidden !important;
    border: 1px solid rgba(37,99,235,.18) !important;
    box-shadow: 0 22px 60px rgba(15,23,42,.24) !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
}
.ecampus-zul-filter-window .z-window-highlighted-header,
.ecampus-zul-filter-window .z-window-popup-header,
.ecampus-zul-filter-window .z-window-overlapped-header {
    background: linear-gradient(135deg, #1e3a8a, #1d4ed8) !important;
    color: #ffffff !important;
    font-weight: 900 !important;
    padding: 10px 14px !important;
}
.ecampus-zul-filter-window-body {
    padding: 14px !important;
    background: linear-gradient(180deg, #ffffff, #f8fbff) !important;
    box-sizing: border-box !important;
    overflow: auto !important;
}
.ecampus-zul-filter-window-info {
    color: #475569 !important;
    background: #eff6ff !important;
    border: 1px solid #dbeafe !important;
    border-radius: 12px !important;
    padding: 10px 12px !important;
    margin-bottom: 8px !important;
    display: block !important;
    font-weight: 700 !important;
}
.ecampus-zul-filter-window .z-grid,
.ecampus-zul-filter-window .z-grid-body,
.ecampus-zul-filter-window .z-rows,
.ecampus-zul-filter-window .z-toolbar {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.ecampus-zul-filter-window .z-grid {
    border-radius: 14px !important;
    overflow: hidden !important;
    border: 1px solid rgba(203,213,225,.62) !important;
}
.ecampus-zul-filter-window .z-toolbar {
    border-radius: 12px !important;
    background: linear-gradient(135deg, #f8fafc, #eef6ff) !important;
    padding: 9px 10px !important;
    border: 1px solid rgba(203,213,225,.56) !important;
}
@media (max-width: 768px) {
    .ecampus-zul-filter-launcher {
        flex-direction: column !important;
        align-items: stretch !important;
        gap: 6px !important;
        padding: 8px !important;
    }
    .ecampus-zul-filter-open-button .z-toolbarbutton-cnt {
        text-align: center !important;
        width: 100% !important;
        box-sizing: border-box !important;
    }
    .ecampus-zul-filter-launcher-hint {
        display: none !important;
    }
    .ecampus-zul-filter-window {
        width: 96vw !important;
        max-width: 96vw !important;
        height: 82vh !important;
        max-height: 82vh !important;
    }
}

/* ======================================================================
   FILTER PENCARIAN ZUL SEBAGAI POPUP (addWindowPencarian -> <popup>)
   Popup bukan IdSpace sehingga autowire GenericAutowireComposer tetap
   berfungsi. Styling popup + launcher + pencarian cepat.
   ====================================================================== */

.z-popup.ecampus-zul-filter-window,
.ecampus-zul-filter-window .z-popup-cl,
.ecampus-zul-filter-window .z-popup-cnt {
    background: #ffffff !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .25) !important;
    border-radius: 14px !important;
    box-shadow: 0 24px 60px rgba(15, 23, 42, .30) !important;
    overflow: hidden !important;
}

.ecampus-zul-filter-window .z-popup-cnt {
    max-height: 72vh !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding: 12px 14px !important;
    box-sizing: border-box !important;
}

.ecampus-zul-filter-window-body {
    width: 100% !important;
    height: auto !important;
}

.ecampus-zul-filter-window-info {
    display: block !important;
    padding: 8px 12px !important;
    margin-bottom: 6px !important;
    border-radius: 10px !important;
    background: rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .08) !important;
    color: #334155 !important;
    font-size: 12px !important;
}

/* Launcher: tombol buka filter + pencarian cepat + tambah, sejajar rapi */
.ecampus-zul-filter-launcher {
    display: flex !important;
    align-items: center !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    padding: 8px 10px !important;
    box-sizing: border-box !important;
}

.ecampus-zul-filter-launcher .z-toolbarbutton {
    margin: 0 !important;
}

.ecampus-zul-filter-launcher-hint {
    color: #94a3b8 !important;
    font-size: 11px !important;
}

/* Field pencarian cepat */
input.ecampus-zul-quick-search,
.ecampus-zul-quick-search {
    height: 30px !important;
    padding: 5px 14px !important;
    box-sizing: border-box !important;
    font-size: 12.5px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 999px !important;
    background: #ffffff !important;
}

input.ecampus-zul-quick-search:focus {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 0 0 3px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .15) !important;
    outline: none !important;
}

/* Baris jarak di sekitar grid data (atas: jarak dari filter/paging,
   bawah: agar baris terakhir tidak tertutup footer) */
.ecampus-grid-gap-row,
.ecampus-grid-gap-row .z-row-inner,
.ecampus-grid-gap-row .z-cell,
.ecampus-grid-gap-row .z-row-cnt {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

.ecampus-grid-gap-atas {
    height: 12px !important;
}

.ecampus-grid-gap-bawah {
    height: 64px !important;
}

/* ======================================================================
   PENTING: hormati visible="false" ZK di baris tombol modul header.
   ZK menyembunyikan komponen dengan inline style="display:none"; rule
   display:!important di atas sempat memaksa tombol tersembunyi ikut
   tampil. Pengecualian ini mengembalikan perilaku visible per-role.
   ====================================================================== */
.main-responsive-module-row .z-toolbarbutton[style*="display:none"],
.main-responsive-module-row .z-toolbarbutton[style*="display: none"],
.main-responsive-module-strip .z-toolbarbutton[style*="display:none"],
.main-responsive-module-strip .z-toolbarbutton[style*="display: none"],
.main-responsive-module-strip td[style*="display:none"],
.main-responsive-module-strip td[style*="display: none"],
.main-responsive-module-strip td.z-hbox-sep[style*="display:none"] {
    display: none !important;
}

/* Pengecualian serupa untuk pola umum lain yang memaksa display */
.z-north .z-grid .z-hbox td[style*="display:none"],
.z-north .z-grid .z-hbox td[style*="display: none"],
.ecampus-filter-popup-body .z-hbox td[style*="display:none"],
.ecampus-filter-popup-body .z-hbox td[style*="display: none"],
.ecampus-zul-filter-launcher .z-toolbarbutton[style*="display:none"],
.ecampus-zul-filter-launcher .z-toolbarbutton[style*="display: none"] {
    display: none !important;
}

/* Pengaman generik: semua class yang di-styling dengan display:...!important
   tetap harus menghilang bila ZK menyetel visible=false (inline display:none) */
.ais-btn[style*="display:none"],
.ais-btn[style*="display: none"],
.z-north .z-grid .z-checkbox[style*="display:none"],
.z-north .z-grid .z-checkbox[style*="display: none"],
.ecampus-filter-popup-body .z-checkbox[style*="display:none"],
.ecampus-filter-popup-body .z-checkbox[style*="display: none"],
.ecampus-filter-popup-body .z-combobox[style*="display:none"],
.ecampus-filter-popup-body .z-bandbox[style*="display:none"],
.ecampus-filter-popup-body .z-datebox[style*="display:none"],
.z-north .z-grid .z-combobox[style*="display:none"],
.z-north .z-grid .z-bandbox[style*="display:none"],
.main-responsive-header-right .users_online_button[style*="display:none"],
.elearning-portal-shell [style*="display:none"][class*="z-toolbarbutton"] {
    display: none !important;
}

/* ======================================================================
   Filter inline (selalu tampil) untuk halaman pembayaran/daftar ulang.
   Dipakai daftarulang_mahasiswa_{calon,baru,lama}.zul; dikecualikan dari
   mekanisme popup-filter otomatis.
   ====================================================================== */
.ecampus-inline-filter-north {
    background: transparent !important;
}

.ecampus-inline-filter {
    box-sizing: border-box !important;
    padding: 8px 10px !important;
    background: linear-gradient(135deg,
        rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .08),
        rgba(255, 255, 255, .9)) !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 37, 99, 235), .20) !important;
    border-radius: 12px !important;
    margin: 4px 6px !important;
    box-shadow: 0 5px 14px rgba(15, 23, 42, .06) !important;
}

.ecampus-inline-filter-grid,
.ecampus-inline-filter-grid .z-grid-body,
.ecampus-inline-filter-grid tr.z-row td.z-row-inner,
.ecampus-inline-filter-grid .z-cell {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.ecampus-inline-filter-grid .z-row-cnt {
    padding: 3px 6px !important;
}

.ecampus-inline-filter .z-label {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: #475569 !important;
}

.ecampus-inline-filter .z-bandbox-inp,
.ecampus-inline-filter .z-combobox-inp {
    height: 26px !important;
    padding: 3px 10px !important;
    box-sizing: border-box !important;
    font-size: 12.5px !important;
    border: 1px solid #cbd5e1 !important;
    border-right: 0 !important;
    border-radius: 8px 0 0 8px !important;
    background: #ffffff !important;
}

.ecampus-inline-filter .z-bandbox-btn,
.ecampus-inline-filter .z-combobox-btn {
    height: 26px !important;
    box-sizing: border-box !important;
    border: 1px solid #cbd5e1 !important;
    border-left: 0 !important;
    border-radius: 0 8px 8px 0 !important;
    background-color: #f8fafc !important;
}

/* ======================================================================
   NORMALISASI FINAL MENU DROPDOWN (patch 2026-06-11c)
   1) Item menu level-atas: TRANSPARAN penuh (tanpa kapsul/border) agar
      menyatu dengan background tema apa pun.
   2) Hover/aktif: kapsul putih translusen yang selalu kontras dengan
      warna dasar tema - bukan hitam dari sprite bawaan ZK/tema lama.
   Ditaruh paling akhir + selector html body agar menang kaskade &
   spesifisitas atas semua patch sebelumnya.
   ====================================================================== */

/* --- Keadaan normal: polos --- */
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item,
html body .main-responsive-menu-popup .z-menubar-ver td.z-menu,
html body .main-responsive-menu-popup .z-menubar-ver td.z-menu-item,
html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-item-body,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-inner-l,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-inner-m,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-inner-r,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-inner-l,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-inner-m,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-inner-r,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-space,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-space {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border: 0 !important;
    box-shadow: none !important;
}

html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-item-body {
    border-radius: 8px !important;
    overflow: hidden !important;
}

/* --- Hover / sedang dibuka / diklik: kapsul terang kontras --- */
html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-body:hover,
html body .main-responsive-menu-popup .z-menubar-ver table.z-menu-item-body:hover,
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item:hover > table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item.z-menu-over > table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver td.z-menu.z-menu-over > table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item.z-menu-body-clk > table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver td.z-menu.z-menu-body-clk > table.z-menu-body,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-body-over,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-body-over,
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item.z-menu-item-over > a > table.z-menu-item-body,
html body .main-responsive-menu-popup .z-menubar-ver td.z-menu-item.z-menu-item-over > a > table.z-menu-item-body,
html body .main-responsive-menu-popup .z-menubar-ver td.menu_item > a:hover > table.z-menu-item-body {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
    border-radius: 8px !important;
    box-shadow: none !important;
}

/* Sel di dalam keadaan hover juga tidak boleh menggambar sprite gelap */
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-body-over .z-menu-inner-l,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-body-over .z-menu-inner-m,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-body-over .z-menu-inner-r,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-body-over .z-menu-item-inner-l,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-body-over .z-menu-item-inner-m,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-body-over .z-menu-item-inner-r {
    background: transparent !important;
    background-image: none !important;
    border: 0 !important;
}

/* --- Teks & ikon: selalu warna kontras tema (normal maupun hover) --- */
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-btn,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-btn,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-body-over .z-menu-btn,
html body .main-responsive-menu-popup .z-menubar-ver .z-menu-item-body-over .z-menu-item-btn {
    background-color: transparent !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
    text-shadow: none !important;
}

/* --- Submenu bertingkat: hover terang kontras, bukan hitam --- */
html body .z-menu-popup-cnt li.z-menu-over,
html body .z-menu-popup-cnt li.z-menu-item-over,
html body .z-menu-popup-cnt li.z-menu:hover,
html body .z-menu-popup-cnt li.z-menu-item:hover {
    background: rgba(255, 255, 255, .22) !important;
    background-image: none !important;
    border-radius: 8px !important;
}

html body .z-menu-popup-cnt .z-menu-over a.z-menu-cnt,
html body .z-menu-popup-cnt .z-menu-item-over a.z-menu-item-cnt,
html body .z-menu-popup-cnt li:hover a.z-menu-cnt,
html body .z-menu-popup-cnt li:hover a.z-menu-item-cnt {
    background: transparent !important;
    background-image: none !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
}

/* ======================================================================
   MODE KANVAS TINGGI + SATU SCROLL TERPUSAT (patch 2026-06-12)
   Frame utama dibuat setinggi konfigurasi (tinggi_iframe_baru_banget /
   tinggi_iframe_mobile_baru; nilai dialirkan JS ke --ais-kanvas-tinggi,
   bisa diset mis. 20000px). Semua tab/panel mengikuti tinggi penuh
   tanpa scroll lokal; scroll tunggal berada di area konten utama.
   Footer dibuat melayang tetap di bawah.
   ====================================================================== */

/* Frame utama: tinggi kanvas penuh, tidak lagi pas-viewport */
.main-responsive-frame {
    height: var(--ais-kanvas-tinggi, 1750px) !important;
    min-height: 600px !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Rantai tab utama: penuhi tinggi frame, tanpa scrollbar lokal */
.main-responsive-center,
.main-responsive-center .z-center-body,
.main-responsive-tabbox,
.main-responsive-tabpanels,
.main-responsive-tabpanels .z-tabpanel,
.main-responsive-tabpanels .z-tabpanel-cnt,
.main-responsive-home-panel,
.main-responsive-home-panel .z-tabpanel-cnt {
    height: 100% !important;
    max-height: none !important;
    overflow-y: hidden !important;
    overflow-x: hidden !important;
}

/* Grid body di dalam tab: hanya scroll horizontal bila tabel lebar */
.main-responsive-home-panel .z-grid-body,
.main-responsive-tabpanels .z-grid-body {
    overflow-y: visible !important;
    max-height: none !important;
}

/* Sidebar (mode lama) ikut tinggi frame */
.main-responsive-frame .main-responsive-sidebar,
.main-responsive-frame .z-west.main-responsive-sidebar {
    height: 100% !important;
    max-height: none !important;
}

/* Footer DIHILANGKAN total: area bawah benar-benar full frame */
.main-responsive-footer,
.headerHbox.main-responsive-footer {
    display: none !important;
    height: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    overflow: hidden !important;
}

/* Baris grid yang dulu menampung footer ikut dikempiskan */
.main-responsive-main-grid {
    padding-bottom: 0 !important;
}

/* Sub-konten di dalam tab dipaksa tinggi penuh mengikuti kanvas:
   iframe/include/window-embedded yang jadi anak langsung tabpanel */
.main-responsive-tabpanels .z-tabpanel iframe,
.main-responsive-tabpanels .z-tabpanel .z-iframe,
.main-responsive-tabpanels .z-tabpanel-cnt > iframe,
.main-responsive-tabpanels .z-tabpanel-cnt > .z-iframe,
.main-responsive-tabpanels .z-tabpanel-cnt > .z-include,
.main-responsive-tabpanels .z-tabpanel-cnt > .z-window-embedded,
.main-responsive-tabpanels .z-tabpanel-cnt > .z-window-embedded > .z-window-embedded-cnt,
.main-responsive-home-panel .z-tabpanel-cnt > .z-include {
    width: 100% !important;
    height: 100% !important;
    min-height: 100% !important;
    max-height: none !important;
    border: 0 !important;
    box-sizing: border-box !important;
}

/* ======================================================================
   PMB / PSB MODERN (pmb.zul & psb.zul, patch 2026-06-12)
   Shell publik penerimaan mahasiswa/siswa baru: kop bertema, toolbar
   menu pill yang wrap di mobile, kontainer kartu, footer rapi.
   Mengikuti variabel tema (--ais-theme-*).
   ====================================================================== */

.pmb-zk-window {
    background: #f1f5f9 !important;
}

/* Shell dipusatkan di desktop, penuh di mobile */
.pmb-zk-shell,
.pmb-zk-shell .z-grid-body {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.pmb-zk-shell tr.z-row td.z-row-inner,
.pmb-zk-shell .z-cell {
    background: transparent !important;
    border: 0 !important;
    padding: 0 !important;
}

.pmb-zk-shell .z-row-cnt {
    padding: 0 !important;
    max-width: 1240px !important;
    margin: 0 auto !important;
    float: none !important;
}

/* Kop: kartu gradien tema dengan logo + judul */
.pmb-zk-window #kopBox,
.pmb-zk-window .headerHbox {
    border-radius: 0 0 18px 18px !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .16) !important;
    overflow: hidden !important;
}

.pmb-zk-window .title1 {
    font-size: 20px !important;
    font-weight: 800 !important;
    letter-spacing: -.01em !important;
}

.pmb-zk-window .motto {
    font-size: 12.5px !important;
    opacity: .92 !important;
}

/* Toolbar menu utama: pill bertema, wrap otomatis di layar sempit */
.pmb-zk-toolbar,
.pmb-zk-window .z-toolbar {
    background: transparent !important;
    border: 0 !important;
    padding: 10px 4px 2px 4px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 6px !important;
    justify-content: center !important;
}

.pmb-zk-toolbar .z-toolbarbutton {
    margin: 0 !important;
    border-radius: 999px !important;
    background: #ffffff !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .25) !important;
    box-shadow: 0 2px 8px rgba(15, 23, 42, .06) !important;
    transition: transform .15s ease, box-shadow .15s ease !important;
}

.pmb-zk-toolbar .z-toolbarbutton .z-toolbarbutton-cnt {
    padding: 7px 14px !important;
    color: var(--ais-theme-primary, #0c71c3) !important;
    font-size: 12px !important;
    font-weight: 700 !important;
}

.pmb-zk-toolbar .z-toolbarbutton:hover {
    transform: translateY(-1px);
    box-shadow: 0 6px 16px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .22) !important;
    border-color: var(--ais-theme-primary, #0c71c3) !important;
}

/* Kontainer konten: kartu putih lega */
.pmb-zk-container {
    background: #ffffff !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 16px !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .07) !important;
    padding: 14px !important;
    margin: 10px 0 14px 0 !important;
    box-sizing: border-box !important;
    overflow-x: hidden !important;
}

.pmb-zk-container .fgrid,
.pmb-zk-container .dgrid {
    border-radius: 12px !important;
    overflow: hidden !important;
}

/* Footer publik */
.pmb-zk-window #footer {
    border-radius: 18px 18px 0 0 !important;
    margin-top: 6px !important;
}

/* Mobile */
@media screen and (max-width: 768px) {
    .pmb-zk-shell .z-row-cnt {
        max-width: 100% !important;
        padding: 0 4px !important;
    }
    .pmb-zk-window .title1 {
        font-size: 16px !important;
    }
    .pmb-zk-toolbar .z-toolbarbutton .z-toolbarbutton-cnt {
        padding: 6px 11px !important;
        font-size: 11.5px !important;
    }
    .pmb-zk-container {
        padding: 8px !important;
        border-radius: 12px !important;
    }
}

/* ======================================================================
   SCROLL ASSIST (patch 2026-06-12b)
   Scrollbar default scroller utama disembunyikan; navigasi vertikal
   memakai panel tombol melayang (bisa ditahan untuk scroll kontinu).
   ====================================================================== */
.ais-scroll-host {
    scrollbar-width: none !important;       /* Firefox */
    -ms-overflow-style: none !important;    /* IE/Edge lama */
}
.ais-scroll-host::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;               /* Chrome/Safari */
}

.ais-scroll-assist {
    position: fixed !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    z-index: 1900 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 6px !important;
    padding: 8px 6px !important;
    background: rgba(255, 255, 255, .92) !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
    border-radius: 999px !important;
    box-shadow: 0 10px 26px rgba(15, 23, 42, .22) !important;
}

.ais-scroll-assist-btn {
    width: 34px !important;
    height: 34px !important;
    border: 0 !important;
    border-radius: 50% !important;
    cursor: pointer !important;
    font-size: 12px !important;
    line-height: 1 !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
    background: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 3px 8px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .35) !important;
    -webkit-user-select: none !important;
    user-select: none !important;
}

.ais-scroll-assist-btn:hover {
    filter: brightness(1.12);
}

.ais-scroll-assist-btn:active {
    transform: scale(.94);
}

@media screen and (max-width: 768px) {
    .ais-scroll-assist { right: 4px !important; }
    .ais-scroll-assist-btn { width: 40px !important; height: 40px !important; }
}

/* Label field pencarian cepat (pengganti placeholder ZK 5) */
.ecampus-zul-quick-label {
    font-size: 11px !important;
    font-weight: 700 !important;
    color: black !important;
    margin: 0 2px 0 6px !important;
    white-space: nowrap !important;
}

/* Tombol proxy Tambah/Cari/Refresh di launcher */
.ecampus-zul-launcher-proxy {
    border-radius: 999px !important;
}

/* ======================================================================
   PENERAPAN TEMA PENUH PMB/PSB (patch 2026-06-12c)
   Pilihan tema (buatTema: Sekolah.css/Pendaftar.css/PerguruanTinggi.css)
   sudah dimuat MyThemeProvider untuk pmb.zul & psb.zul; blok ini
   memastikan SEMUA elemen halaman ikut variabel tema tsb.
   ====================================================================== */

/* Sisa warna hardcoded di PMBAction/PSBAction & helper pmb/psb */
[style*="#4CAF50"],
[style*="background:#4CAF50"],
[style*="background: #4CAF50"] {
    background: var(--ais-theme-primary, #4CAF50) !important;
    border-color: var(--ais-theme-primary, #4CAF50) !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
}

.pmb-zk-window [style*="#F5F5F5"],
.pmb-zk-window [style*="#f5f5f5"] {
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .06) !important;
}

.pmb-zk-window [style*="#bdbbbb"] {
    border-color: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
}

/* Semua tombol ZK standar di halaman PMB/PSB: pill warna tema
   (struktur slice 3x3 z-button diratakan, pola sama dgn messagebox) */
.pmb-zk-window .z-button-tl, .pmb-zk-window .z-button-tm, .pmb-zk-window .z-button-tr,
.pmb-zk-window .z-button-cl, .pmb-zk-window .z-button-cr,
.pmb-zk-window .z-button-bl, .pmb-zk-window .z-button-bm, .pmb-zk-window .z-button-br {
    background: none !important;
    border: 0 !important;
    padding: 0 !important;
    width: 0 !important;
    height: 0 !important;
    font-size: 0 !important;
    line-height: 0 !important;
}

.pmb-zk-window .z-button-cm {
    display: inline-block !important;
    min-width: 86px !important;
    padding: 8px 20px !important;
    border-radius: 999px !important;
    background: var(--ais-theme-primary, #0c71c3) !important;
    border: 1px solid var(--ais-theme-primary, #0c71c3) !important;
    color: var(--ais-theme-contrast, #ffffff) !important;
    font-size: 12.5px !important;
    font-weight: 800 !important;
    text-align: center !important;
    cursor: pointer !important;
    box-shadow: 0 5px 14px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .30) !important;
}

.pmb-zk-window .z-button:hover .z-button-cm {
    filter: brightness(1.08);
}

/* Link & aksen */
.pmb-zk-window .z-a {
    color: var(--ais-theme-primary, #0c71c3) !important;
}

/* Header grid/listbox & panel di konten PMB/PSB */
.pmb-zk-window .z-grid-header tr.z-columns,
.pmb-zk-window div.z-grid-header,
.pmb-zk-window .z-panel-header {
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .08) !important;
    color: #1e293b !important;
}

/* Input fokus mengikuti tema */
.pmb-zk-window input.z-textbox:focus,
.pmb-zk-window .z-combobox-inp:focus,
.pmb-zk-window .z-bandbox-inp:focus,
.pmb-zk-window .z-datebox-inp:focus {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 0 0 3px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .15) !important;
    outline: none !important;
}

/* Progressmeter / paging aktif ikut tema */
.pmb-zk-window .z-paging-button-seld,
.pmb-zk-window .z-progressmeter-img {
    background-color: var(--ais-theme-primary, #0c71c3) !important;
}

/* ======================================================================
   HALAMAN LOGIN CALON (PMB & PSB) - kartu modern bertema
   login_calon_mahasiswa.zul & login_calon_siswa.zul
   ====================================================================== */
.ecampus-login-window {
    background:
        radial-gradient(circle at 18% 12%, rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .14), transparent 42%),
        radial-gradient(circle at 85% 90%, rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .10), transparent 40%),
        #f1f5f9 !important;
}

/* Kartu login dipusatkan */
.ecampus-login-card {
    max-width: 620px !important;
    margin: 26px auto !important;
    background: #ffffff !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .22) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .14) !important;
    overflow: hidden !important;
}

.ecampus-login-card .z-grid-body,
.ecampus-login-card tr.z-row td.z-row-inner,
.ecampus-login-card .z-cell {
    background: #ffffff !important;
    border: 0 !important;
}

.ecampus-login-card .z-row-cnt {
    padding: 10px 16px !important;
}

.ecampus-login-card .z-label {
    font-size: 12.5px !important;
    font-weight: 700 !important;
    color: #475569 !important;
    line-height: 1.45 !important;
    white-space: normal !important;
}

/* Input utama besar dan jelas */
.ecampus-login-card input.z-textbox {
    width: 100% !important;
    height: 40px !important;
    padding: 8px 14px !important;
    box-sizing: border-box !important;
    font-size: 14px !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
}

.ecampus-login-card input.z-textbox:focus {
    border-color: var(--ais-theme-primary, #0c71c3) !important;
    box-shadow: 0 0 0 3px rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .16) !important;
    outline: none !important;
}

/* Grid tanggal lahir: tiga kolom rapi, combo cukup lebar */
.ecampus-login-tgl,
.ecampus-login-tgl .z-grid-body,
.ecampus-login-tgl tr.z-row td.z-row-inner,
.ecampus-login-tgl .z-cell {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
}

.ecampus-login-tgl .z-combobox {
    display: inline-flex !important;
    align-items: center !important;
    min-width: 92px !important;
}

.ecampus-login-tgl .z-combobox-inp {
    width: calc(100% - 20px) !important;
    height: 32px !important;
    padding: 5px 10px !important;
    box-sizing: border-box !important;
    font-size: 13px !important;
    border: 1px solid #cbd5e1 !important;
    border-right: 0 !important;
    border-radius: 10px 0 0 10px !important;
    text-align: center !important;
}

.ecampus-login-tgl .z-combobox-btn {
    height: 32px !important;
    box-sizing: border-box !important;
    border: 1px solid #cbd5e1 !important;
    border-left: 0 !important;
    border-radius: 0 10px 10px 0 !important;
    background-color: #f8fafc !important;
}

.ecampus-login-tgl .z-vbox .z-label {
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    color: #64748b !important;
}

/* Tombol LOGIN sudah berbentuk pill tema dari rule .pmb-zk-window .z-button-cm;
   di sini hanya diperlebar agar menonjol */
.ecampus-login-card .z-button-cm {
    min-width: 150px !important;
    font-size: 13.5px !important;
    letter-spacing: .14em !important;
}

/* Info bantuan di bawah form */
.ecampus-login-info {
    display: block !important;
    padding: 10px 14px !important;
    border-radius: 12px !important;
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .07) !important;
    border: 1px dashed rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .35) !important;
    color: #475569 !important;
    font-weight: 500 !important;
}

/* Mobile */
@media screen and (max-width: 600px) {
    .ecampus-login-card {
        max-width: 96vw !important;
        margin: 10px auto !important;
        border-radius: 14px !important;
    }
    .ecampus-login-card .z-row-cnt {
        padding: 8px 10px !important;
    }
    .ecampus-login-tgl .z-vbox {
        margin-bottom: 6px !important;
    }
    .ecampus-login-card .z-button-cm {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* ======================================================================
   SATU SCROLL GLOBAL - index.zul / pmb.zul / psb.zul
   Hanya <center sclass="main-scroll-center"> (pembungkus grid utama
   main-responsive-main-grid / pmb-zk-shell) yang boleh overflow.
   Semua elemen lain: hidden / visible (pass-through), TANPA scrollbar.
   Blok ini harus tetap di paling bawah file agar memenangkan cascade.
   ====================================================================== */

/* Halaman yang memakai pola ini: matikan scroll di html/body */
html:has(.main-scroll-center),
html:has(.main-scroll-center) body {
    height: 100% !important;
    overflow: hidden !important;
}

/* Window & borderlayout terluar: rantai 100% tanpa scroll */
.main-responsive-root,
.pmb-zk-window,
.main-responsive-root > .z-borderlayout,
.pmb-zk-window > .z-borderlayout {
    height: 100% !important;
    max-height: 100% !important;
    overflow: hidden !important;
}

/* Region center pemilik scroll: dirinya hidden ... */
.z-center.main-scroll-center {
    overflow: hidden !important;
}

/* ... dan body-nya = SATU-SATUNYA scroller global */
.z-center.main-scroll-center > .z-center-body {
    height: 100% !important;
    max-height: 100% !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
}

/* Grid utama di dalam scroller: tinggi mengikuti konten (auto),
   overflow visible agar semua anak ikut memanjang ke 1 scroll */
.main-scroll-center .main-responsive-main-grid,
.main-scroll-center .main-responsive-main-grid > .z-grid-body,
.main-scroll-center .pmb-zk-shell,
.main-scroll-center .pmb-zk-shell > .z-grid-body {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: visible !important;
}

/* Scrollbar scroller global dibuat tipis & ikut tema */
.z-center.main-scroll-center > .z-center-body::-webkit-scrollbar {
    width: 10px;
}
.z-center.main-scroll-center > .z-center-body::-webkit-scrollbar-track {
    background: transparent;
}
.z-center.main-scroll-center > .z-center-body::-webkit-scrollbar-thumb {
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .45);
    border-radius: 999px;
    border: 2px solid transparent;
    background-clip: padding-box;
}
.z-center.main-scroll-center > .z-center-body::-webkit-scrollbar-thumb:hover {
    background: rgba(var(--ais-theme-primary-rgb, 12, 113, 195), .70);
    border: 2px solid transparent;
    background-clip: padding-box;
}

/* ======================================================================
   STATUS WARNA BARIS PEMBAYARAN (DetailPembayaranMahasiswaRenderer
   .ubahWarnaStatus dan helper Aktifitas* lain)
   Java menandai status via inline style pada <tr class="z-row">:
   - rgba(169,169,169,.4) = lunas/selesai (abu-abu)
   - rgba(205,92,92,.4)   = kurang bayar/terlambat (merah)
   Rule modern memaksa background sel dengan !important sehingga warna
   inline tr tertimpa. Blok ini meneruskan warna status ke sel-selnya.
   ====================================================================== */

html body .z-grid tr.z-row[style*="rgba(169,169,169"] > td.z-row-inner,
html body .z-grid tr.z-row[style*="rgba(169,169,169"] > td.z-row-inner > .z-row-cnt,
html body .z-grid tr.z-row[style*="rgba(169,169,169"] .z-cell,
html body tr.z-row[style*="rgba(169,169,169"] > td.z-row-inner,
html body tr.z-row[style*="rgba(169,169,169"] > td.z-row-inner > .z-row-cnt,
html body tr.z-row[style*="rgba(169,169,169"] .z-cell {
    background: rgba(169, 169, 169, .40) !important;
}

html body .z-grid tr.z-row[style*="rgba(205,92,92"] > td.z-row-inner,
html body .z-grid tr.z-row[style*="rgba(205,92,92"] > td.z-row-inner > .z-row-cnt,
html body .z-grid tr.z-row[style*="rgba(205,92,92"] .z-cell,
html body tr.z-row[style*="rgba(205,92,92"] > td.z-row-inner,
html body tr.z-row[style*="rgba(205,92,92"] > td.z-row-inner > .z-row-cnt,
html body tr.z-row[style*="rgba(205,92,92"] .z-cell {
    background: rgba(205, 92, 92, .40) !important;
}

/* Hover jangan menelan warna status */
html body tr.z-row[style*="rgba(169,169,169"]:hover > td.z-row-inner,
html body tr.z-row[style*="rgba(169,169,169"]:hover .z-cell {
    background: rgba(169, 169, 169, .55) !important;
}
html body tr.z-row[style*="rgba(205,92,92"]:hover > td.z-row-inner,
html body tr.z-row[style*="rgba(205,92,92"]:hover .z-cell {
    background: rgba(205, 92, 92, .55) !important;
}

/* Varian dengan spasi: browser menormalkan ulang atribut style menjadi
   "rgba(205, 92, 92, 0.4)" saat di-set lewat AU update (cssText). */
html body tr.z-row[style*="rgba(169, 169, 169"] > td.z-row-inner,
html body tr.z-row[style*="rgba(169, 169, 169"] > td.z-row-inner > .z-row-cnt,
html body tr.z-row[style*="rgba(169, 169, 169"] .z-cell {
    background: rgba(169, 169, 169, .40) !important;
}
html body tr.z-row[style*="rgba(205, 92, 92"] > td.z-row-inner,
html body tr.z-row[style*="rgba(205, 92, 92"] > td.z-row-inner > .z-row-cnt,
html body tr.z-row[style*="rgba(205, 92, 92"] .z-cell {
    background: rgba(205, 92, 92, .40) !important;
}
html body tr.z-row[style*="rgba(169, 169, 169"]:hover > td.z-row-inner,
html body tr.z-row[style*="rgba(169, 169, 169"]:hover .z-cell {
    background: rgba(169, 169, 169, .55) !important;
}
html body tr.z-row[style*="rgba(205, 92, 92"]:hover > td.z-row-inner,
html body tr.z-row[style*="rgba(205, 92, 92"]:hover .z-cell {
    background: rgba(205, 92, 92, .55) !important;
}


/* ======================================================================
   MODUL DROPDOWN OTOMATIS (patch 2026-06-12)
   Pada layar sempit (<=900px) deretan tombol modul rowHeader2
   (.main-responsive-module-strip di index.zul) otomatis dilipat menjadi
   satu tombol "Modul" yang membuka panel dropdown vertikal.
   Tombol toggle (.ais-modul-dd-toggle) dibuat oleh JS injeksi
   MainStyleHelper.injectResponsiveShellCss; strip ZK asli tidak diubah
   sehingga id/forward semua toolbarbutton tetap hidup, dan tombol modul
   yang visible="false" tetap tersembunyi di dalam panel.
   ====================================================================== */
.ais-modul-dd-toggle {
    display: none;
}

@media (max-width: 900px) {
    /* Baris/sel pembungkus tidak boleh memotong panel absolute */
    .headerHbox.main-responsive-module-row,
    .main-responsive-module-row,
    .main-responsive-module-row .z-row-inner,
    .main-responsive-module-row .z-cell,
    .main-responsive-module-row .z-row-cnt {
        overflow: visible !important;
        max-height: none !important;
        height: auto !important;
    }
    /* Sel induk strip jadi anchor posisi dropdown */
    .ais-modul-dd-host {
        position: relative !important;
        display: block !important;
        overflow: visible !important;
    }

    /* Tombol toggle "Modul" */
    .ais-modul-dd-toggle {
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px;
        margin: 5px 8px !important;
        padding: 7px 16px !important;
        border-radius: 999px !important;
        border: 1px solid rgba(255, 255, 255, .4) !important;
        background: rgba(255, 255, 255, .16) !important;
        color: #fff !important;
        font-family: inherit !important;
        font-size: 11.5px !important;
        font-weight: 700 !important;
        line-height: 1.2 !important;
        cursor: pointer !important;
        -webkit-tap-highlight-color: transparent;
    }
    .ais-modul-dd-toggle:hover {
        background: rgba(255, 255, 255, .28) !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .ais-modul-dd-toggle {
        background: var(--ais-theme-accent, #06b6d4) !important;
        border-color: rgba(255, 255, 255, .7) !important;
    }

    /* Saat tertutup: strip disembunyikan, hanya toggle yang tampak */
    .ais-modul-dd-host .main-responsive-module-strip {
        display: none !important;
    }

    /* Saat terbuka: strip menjadi panel dropdown vertikal bertema.
       position:fixed (top/left diisi inline oleh JS dari posisi tombol
       toggle) supaya panel tidak terpotong ancestor overflow:hidden
       di dalam grid header ZK. */
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip {
        display: block !important;
        position: fixed !important;
        right: auto !important;
        z-index: 99990 !important;
        width: auto !important;
        min-width: 260px !important;
        max-width: 92vw !important;
        /* "SCROLLBAR FIX V4" mengunci height:32px pada strip/td;
           saat jadi panel dropdown tinggi harus mengikuti isi */
        height: auto !important;
        min-height: 0 !important;
        max-height: 62vh !important;
        overflow-y: auto !important;
        overflow-x: hidden !important;
        margin: 0 !important;
        padding: 8px !important;
        background: linear-gradient(165deg, var(--ais-theme-primary, #1d4ed8), var(--ais-theme-accent, #06b6d4)) !important;
        border: 1px solid rgba(255, 255, 255, .25) !important;
        border-radius: 14px !important;
        box-shadow: 0 18px 44px rgba(0, 0, 0, .38) !important;
    }
    /* Bebaskan semua pembungkus internal dari klem tinggi 32/42px
       (SCROLLBAR FIX V4 dan blok mobile lama) */
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip table,
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip tbody,
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip tr,
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip td,
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip > tbody > tr > td {
        height: auto !important;
        min-height: 0 !important;
        max-height: none !important;
        overflow: visible !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip table {
        display: block !important;
        width: 100% !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip tbody {
        display: block !important;
        width: 100% !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip tr {
        display: flex !important;
        flex-direction: column !important;
        flex-wrap: nowrap !important;
        align-items: stretch !important;
        width: 100% !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip td {
        display: block !important;
        width: 100% !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip .z-toolbarbutton {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        margin: 2px 0 !important;
        border-radius: 9px !important;
        text-align: left !important;
        white-space: nowrap !important;
    }
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip .z-toolbarbutton-body,
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip .z-toolbarbutton-cnt {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 8px 10px !important;
        font-size: 11.5px !important;
        text-align: left !important;
    }
    /* Modul nonaktif (visible="false" -> inline display:none) tetap tersembunyi */
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip .z-toolbarbutton[style*="display:none"],
    .ais-modul-dd-host.ais-modul-dd-buka .main-responsive-module-strip .z-toolbarbutton[style*="display: none"] {
        display: none !important;
    }
}

/* Penanda sclass dari ubahWarnaStatus (lebih kokoh daripada deteksi
   inline style yang bisa dinormalkan ulang browser) */
html body tr.z-row.ais-status-lunas > td.z-row-inner,
html body tr.z-row.ais-status-lunas > td.z-row-inner > .z-row-cnt,
html body tr.z-row.ais-status-lunas .z-cell {
    background: rgba(169, 169, 169, .40) !important;
}
html body tr.z-row.ais-status-kurang > td.z-row-inner,
html body tr.z-row.ais-status-kurang > td.z-row-inner > .z-row-cnt,
html body tr.z-row.ais-status-kurang .z-cell {
    background: rgba(205, 92, 92, .40) !important;
}
html body tr.z-row.ais-status-lunas:hover > td.z-row-inner,
html body tr.z-row.ais-status-lunas:hover .z-cell {
    background: rgba(169, 169, 169, .55) !important;
}
html body tr.z-row.ais-status-kurang:hover > td.z-row-inner,
html body tr.z-row.ais-status-kurang:hover .z-cell {
    background: rgba(205, 92, 92, .55) !important;
}


/* ======================================================================
   PROFIL DROPDOWN MODERN (patch 2026-06-12)
   Menupopup profil pengguna (tombol nama di kanan header, MainAction)
   diberi sclass "ais-profil-menu". Gaya global .z-menu-popup (panel gelap
   + ikon chevron) ditimpa khusus untuk popup ini: kartu putih membulat,
   ikon SVG asli ditampilkan (ikonnya berwarna gelap sehingga justru
   tenggelam di panel gelap lama), item identitas non-klik di atas,
   "Keluar" sebagai aksi destruktif terpisah, dan di mobile panel
   menempel rapi ke tepi kanan dengan target sentuh >= 44px.
   ====================================================================== */
.z-menu-popup.ais-profil-menu {
    background: #ffffff !important;
    border: 1px solid rgba(15, 23, 42, .10) !important;
    border-radius: 14px !important;
    box-shadow: 0 18px 44px rgba(15, 23, 42, .22) !important;
    padding: 8px !important;
    min-width: 250px !important;
    max-width: calc(100vw - 16px) !important;
    overflow: hidden !important;
}
.z-menu-popup.ais-profil-menu .z-menu-popup-cnt {
    background: transparent !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    padding: 0 !important;
    margin: 0 !important;
    min-width: 0 !important;
}

/* Item: baris bersih, teks gelap, sudut membulat */
.z-menu-popup.ais-profil-menu .z-menu-item-cnt,
.z-menu-popup.ais-profil-menu a.z-menu-item-cnt,
.z-menu-popup.ais-profil-menu .z-menu-popup-cnt .z-menu-item a.z-menu-item-cnt {
    display: block !important;
    min-height: 38px !important;
    line-height: 38px !important;
    padding: 0 12px 0 38px !important;
    margin: 1px 0 !important;
    box-sizing: border-box !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    border-radius: 10px !important;
    color: #1f2937 !important;
    font-size: 12.5px !important;
    font-weight: 600 !important;
    text-shadow: none !important;
    text-align: left !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
}

/* Hover/fokus: tint warna tema (kontras ringan, bukan blok gelap) */
.z-menu-popup.ais-profil-menu .z-menu-item-cnt:hover,
.z-menu-popup.ais-profil-menu .z-menu-item-over a.z-menu-item-cnt,
.z-menu-popup.ais-profil-menu .z-menu-item-over > .z-menu-item-cl > .z-menu-item-cr > .z-menu-item-cm > .z-menu-item-cnt {
    background: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .10) !important;
    border-color: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .20) !important;
    color: var(--ais-theme-primary, #1d4ed8) !important;
}

/* Ikon SVG asli ditampilkan kembali (chevron global dibuang) */
.z-menu-popup.ais-profil-menu .z-menu-item-img {
    background-image: none !important;
    width: 16px !important;
    height: 16px !important;
    margin-left: -26px !important;
    margin-right: 10px !important;
    vertical-align: -3px !important;
    opacity: .85;
}

/* Identitas pengguna: header non-klik paling atas */
.z-menu-popup.ais-profil-menu .ais-profil-identitas .z-menu-item-cnt,
.z-menu-popup.ais-profil-menu .ais-profil-identitas a.z-menu-item-cnt,
.z-menu-popup.ais-profil-menu .ais-profil-identitas.z-menu-item-disd a.z-menu-item-cnt {
    background: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .08) !important;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .16) !important;
    border-radius: 10px !important;
    margin: 0 0 6px 0 !important;
    min-height: 42px !important;
    line-height: 42px !important;
    color: var(--ais-theme-primary, #1d4ed8) !important;
    font-weight: 800 !important;
    opacity: 1 !important;
    cursor: default !important;
}
.z-menu-popup.ais-profil-menu .ais-profil-identitas,
.z-menu-popup.ais-profil-menu .ais-profil-identitas .z-menu-item-cnt {
    pointer-events: none !important;
    filter: none !important;
    opacity: 1 !important;
}

/* Keluar: aksi destruktif, dipisah garis tipis, merah */
.z-menu-popup.ais-profil-menu .ais-profil-keluar {
    display: block !important;
    border-top: 1px solid rgba(15, 23, 42, .08) !important;
    margin-top: 6px !important;
    padding-top: 5px !important;
}
.z-menu-popup.ais-profil-menu .ais-profil-keluar .z-menu-item-cnt,
.z-menu-popup.ais-profil-menu .ais-profil-keluar a.z-menu-item-cnt {
    color: #dc2626 !important;
}
.z-menu-popup.ais-profil-menu .ais-profil-keluar .z-menu-item-cnt:hover,
.z-menu-popup.ais-profil-menu .ais-profil-keluar.z-menu-item-over a.z-menu-item-cnt {
    background: rgba(220, 38, 38, .08) !important;
    border-color: rgba(220, 38, 38, .22) !important;
    color: #b91c1c !important;
}

/* Mobile: panel menempel ke tepi kanan, item lebih tinggi (touch target) */
@media (max-width: 768px) {
    .z-menu-popup.ais-profil-menu {
        left: auto !important;
        right: 8px !important;
        width: calc(100vw - 16px) !important;
        max-width: 400px !important;
        min-width: 0 !important;
    }
    .z-menu-popup.ais-profil-menu .z-menu-item-cnt,
    .z-menu-popup.ais-profil-menu a.z-menu-item-cnt {
        min-height: 44px !important;
        line-height: 44px !important;
        font-size: 13px !important;
    }
    .z-menu-popup.ais-profil-menu .ais-profil-identitas .z-menu-item-cnt,
    .z-menu-popup.ais-profil-menu .ais-profil-identitas a.z-menu-item-cnt {
        min-height: 46px !important;
        line-height: 46px !important;
    }
}

/* ======================================================================
   PAGING KONTRAS (mold default ZK)
   Tema tenant lama mewarnai bar .z-paging biru tua sehingga teks, input
   nomor halaman, dan info "[1 - 10/539]" nyaris tak terbaca. Samakan
   dengan gaya paging mold "os" yang dipakai paging utama: latar putih,
   teks gelap, input jelas. Paging kembar (paging2) kini juga otomatis
   ikut mold "os" via MyPagingKembar, blok ini penjaga sisanya.
   ====================================================================== */
html body .z-paging {
    background: #fff !important;
    border: 1px solid var(--ais-border, #e2e8f0) !important;
    border-radius: 8px !important;
    padding: 4px 8px !important;
    color: #334155 !important;
    box-shadow: none !important;
}
html body .z-paging td,
html body .z-paging .z-paging-cnt {
    background: transparent !important;
    color: #334155 !important;
}
html body .z-paging input.z-paging-inp {
    background: #fff !important;
    color: #0f172a !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
    padding: 2px 6px !important;
    width: 44px !important;
    text-align: center !important;
    font-weight: 600 !important;
}
html body .z-paging .z-paging-info {
    color: #475569 !important;
    font-size: 12px !important;
    font-weight: 600 !important;
}
html body .z-paging .z-paging-text {
    color: #334155 !important;
}
/* Tombol first/prev/next/last mold default: kotak putih ber-border agar
   ikon sprite tetap terlihat di atas latar terang */
html body .z-paging .z-paging-first,
html body .z-paging .z-paging-prev,
html body .z-paging .z-paging-next,
html body .z-paging .z-paging-last,
html body .z-paging .z-paging-btn {
    background-color: #f8fafc !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 6px !important;
}


/* ======================================================================
   NOTIFIKASI INFO DROPDOWN (patch 2026-06-12)
   Popup tombol lonceng "Info" (MainAction.notif) memakai dasar kartu
   putih ais-profil-menu plus penyesuaian: judul "Notifikasi" di atas,
   item notifikasi boleh membungkus 2-3 baris (subjek bisa panjang),
   dan empty state "Tidak ada informasi baru" tampil netral non-klik.
   ====================================================================== */
.z-menu-popup.ais-notif-menu {
    min-width: 280px !important;
}

/* Item notifikasi: teks boleh wrap, padding nyaman, tetap klikabel */
.z-menu-popup.ais-notif-menu .ais-notif-item .z-menu-item-cnt,
.z-menu-popup.ais-notif-menu .ais-notif-item a.z-menu-item-cnt {
    min-height: 0 !important;
    line-height: 1.45 !important;
    padding: 9px 12px 9px 38px !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    word-break: break-word;
}
.z-menu-popup.ais-notif-menu .ais-notif-item .z-menu-item-img {
    vertical-align: top !important;
    margin-top: 2px !important;
}

/* Empty state: netral, terpusat, tanpa kursor aksi */
.z-menu-popup.ais-notif-menu .ais-notif-kosong .z-menu-item-cnt,
.z-menu-popup.ais-notif-menu .ais-notif-kosong a.z-menu-item-cnt,
.z-menu-popup.ais-notif-menu .ais-notif-kosong.z-menu-item-disd a.z-menu-item-cnt {
    background: rgba(15, 23, 42, .04) !important;
    border: 1px dashed rgba(15, 23, 42, .14) !important;
    border-radius: 10px !important;
    color: #64748b !important;
    font-weight: 600 !important;
    text-align: center !important;
    padding: 10px 12px !important;
    min-height: 0 !important;
    line-height: 1.4 !important;
    white-space: normal !important;
    opacity: 1 !important;
    cursor: default !important;
}
.z-menu-popup.ais-notif-menu .ais-notif-kosong,
.z-menu-popup.ais-notif-menu .ais-notif-kosong .z-menu-item-cnt {
    pointer-events: none !important;
}
.z-menu-popup.ais-notif-menu .ais-notif-kosong .z-menu-item-img {
    display: none !important;
}

/* Mobile: tinggi baris mengikuti isi (menimpa line-height 44px profil),
   panel maksimal setinggi 60vh dengan scroll sendiri bila notifikasi banyak */
@media (max-width: 768px) {
    .z-menu-popup.ais-notif-menu {
        max-height: 60vh !important;
        overflow-y: auto !important;
    }
    .z-menu-popup.ais-notif-menu .ais-notif-item .z-menu-item-cnt,
    .z-menu-popup.ais-notif-menu .ais-notif-item a.z-menu-item-cnt {
        min-height: 0 !important;
        line-height: 1.45 !important;
        font-size: 13px !important;
    }
}


/* ======================================================================
   AKTIFITAS TABBOX MODERN (patch 2026-06-12)
   Tabbox pada helper ais.action.master.helper.Aktifitas* (Perkuliahan,
   Skripsi, TugasAkhir, KKN, PKL, KRS, GrupPertemuan, Pembelajaran sekolah,
   jadwal ujian PMB/PSB/pegawai, integrator feeder) diberi sclass
   "ais-aktifitas-tabbox". Penyesuaian: deret tab boleh wrap (9 tab tidak
   terpotong di layar sempit), tab pill membulat mengikuti tema, kartu hero
   identitas di tab Home, dan catatan kaki bergaya hint.
   ====================================================================== */
/* Deret tab boleh turun baris, tidak overflow horizontal */
.ais-aktifitas-tabbox .z-tabs,
.ais-aktifitas-tabbox .z-tabs-cnt {
    height: auto !important;
    overflow: visible !important;
}
.ais-aktifitas-tabbox .z-tabs-cnt {
    display: block !important;
    white-space: normal !important;
}
.ais-aktifitas-tabbox .z-tabs-cnt li,
.ais-aktifitas-tabbox .z-tab {
    display: inline-block !important;
    float: none !important;
    vertical-align: bottom !important;
    margin: 2px 3px 0 0 !important;
}

/* Tab pill membulat penuh; selected diberi tint tema */
.ais-aktifitas-tabbox .z-tab-hl,
.ais-aktifitas-tabbox .z-tab-hr,
.ais-aktifitas-tabbox .z-tab-hm {
    border-radius: 10px !important;
    border: 1px solid var(--ais-border, #e2e8f0) !important;
}
.ais-aktifitas-tabbox .z-tab .z-tab-text,
.ais-aktifitas-tabbox .z-tab-seld .z-tab-text {
    padding: 7px 12px !important;
    font-size: 12px !important;
}
.ais-aktifitas-tabbox .z-tab-seld .z-tab-hl,
.ais-aktifitas-tabbox .z-tab-seld .z-tab-hr,
.ais-aktifitas-tabbox .z-tab-seld .z-tab-hm {
    background: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .10) !important;
    border-color: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .45) !important;
    box-shadow: none !important;
}

/* Panel isi: lebar penuh, tidak overflow horizontal */
.ais-aktifitas-tabbox .z-tabpanel,
.ais-aktifitas-tabbox .z-tabpanel-cnt {
    max-width: 100% !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
}

/* Kartu hero identitas (tab Home AktifitasPerkuliahanHelper) */
.ais-aktifitas-hero {
    border-radius: 14px;
    padding: 14px 16px;
    margin: 2px 0 8px 0;
    color: #fff;
    background:
        linear-gradient(135deg, rgba(0, 0, 0, .35), rgba(0, 0, 0, 0) 55%),
        linear-gradient(135deg, var(--ais-theme-primary, #1d4ed8) 0%, var(--ais-theme-primary, #1d4ed8) 45%, var(--ais-theme-accent, #06b6d4) 100%);
    box-shadow: 0 10px 26px rgba(15, 23, 42, .18);
}
.ais-aktifitas-hero-judul {
    font-size: 16px;
    font-weight: 800;
    line-height: 1.25;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .3);
}
.ais-aktifitas-hero-sub {
    font-size: 11.5px;
    opacity: .92;
    margin-top: 3px;
    line-height: 1.4;
}

/* Konten Home: input/teks selalu muat lebar panel */
.ais-aktifitas-home textarea,
.ais-aktifitas-home input.z-textbox,
.ais-aktifitas-home iframe {
    max-width: 100% !important;
    box-sizing: border-box !important;
}
.ais-aktifitas-home img {
    max-width: 100%;
    height: auto;
}

/* Catatan kaki: hint lembut, bukan teks merah 9px */
.ais-aktifitas-catatan {
    display: inline-block;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    color: #b45309 !important;
    background: rgba(245, 158, 11, .12);
    border: 1px solid rgba(245, 158, 11, .30);
    border-radius: 8px;
    padding: 5px 10px;
}

@media (max-width: 768px) {
    .ais-aktifitas-tabbox .z-tab .z-tab-text,
    .ais-aktifitas-tabbox .z-tab-seld .z-tab-text {
        padding: 6px 9px !important;
        font-size: 11px !important;
    }
    .ais-aktifitas-hero {
        padding: 12px;
        border-radius: 12px;
    }
    .ais-aktifitas-hero-judul {
        font-size: 14px;
    }
}


/* ======================================================================
   FORM PPDB MODERN (patch 2026-06-12)
   Semua form pendaftaran siswa baru (PPDB, PPDB1/2, PPDB_Alumni,
   PPDB_Simple..6 - turunan ais.action.master.sekolah.psb.form.PPDB)
   diberi sclass "ppdb-form-window". Input dirapikan (membulat, fokus
   ber-ring tema), label tebal, dan pada layar sempit label otomatis
   bertumpuk di atas input (pola form mobile standar).
   ====================================================================== */
.ppdb-form-window .z-row-inner,
.ppdb-form-window .z-cell {
    vertical-align: top !important;
    padding: 5px 8px !important;
}
.ppdb-form-window .z-label {
    font-weight: 600;
    color: #334155;
    line-height: 1.4;
}
.ppdb-form-window input.z-textbox,
.ppdb-form-window input.z-intbox,
.ppdb-form-window input.z-decimalbox,
.ppdb-form-window input.z-datebox-inp,
.ppdb-form-window input.z-combobox-inp,
.ppdb-form-window input.z-bandbox-inp,
.ppdb-form-window textarea.z-textbox {
    border: 1px solid #cbd5e1 !important;
    border-radius: 8px !important;
    padding: 6px 9px !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
    transition: border-color .15s ease, box-shadow .15s ease;
}
.ppdb-form-window input.z-textbox:focus,
.ppdb-form-window input.z-intbox:focus,
.ppdb-form-window input.z-decimalbox:focus,
.ppdb-form-window input.z-datebox-inp:focus,
.ppdb-form-window input.z-combobox-inp:focus,
.ppdb-form-window input.z-bandbox-inp:focus,
.ppdb-form-window textarea.z-textbox:focus {
    border-color: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .65) !important;
    box-shadow: 0 0 0 3px rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .15) !important;
    outline: none !important;
}

/* Popup bandbox (Daftar Siswa, dsb) tidak boleh keluar layar */
.z-bandbox-pp,
.z-bandbox-pp .z-bandpopup,
.z-bandpopup {
    max-width: calc(100vw - 24px) !important;
    box-sizing: border-box !important;
}

@media (max-width: 768px) {
    /* Label bertumpuk di atas input: tiap sel baris jadi blok penuh */
    .ppdb-form-window .z-row > .z-row-inner {
        display: block !important;
        width: 100% !important;
        box-sizing: border-box !important;
        padding: 3px 8px !important;
    }
    .ppdb-form-window .z-row > .z-row-inner:first-child {
        padding-bottom: 0 !important;
    }
    .ppdb-form-window input.z-textbox,
    .ppdb-form-window textarea.z-textbox,
    .ppdb-form-window .z-combobox,
    .ppdb-form-window .z-bandbox,
    .ppdb-form-window .z-datebox {
        width: 100% !important;
    }
    .z-bandbox-pp,
    .z-bandpopup {
        max-height: 80vh !important;
        overflow-y: auto !important;
    }
}


/* ======================================================================
   PENCARIAN LANJUT BANBOX (patch 2026-06-12)
   Semua popup banbox AmbilData* mendapat tombol "Pencarian Lebih Lanjut"
   (dibuat JS injeksi MainStyleHelper): hanya baris filter pertama (kode/
   nama/NIM) yang tampil, baris filter lain disembunyikan sampai tombol
   diklik - meniru pola launcher pencarian pada halaman *.zul.
   ====================================================================== */
.ais-bp-cari-grid.ais-bp-cari-sembunyi tr.ais-bp-baris-lanjut {
    display: none !important;
}

.ais-bp-cari-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    margin: 4px 8px 6px 8px;
    padding: 6px 14px;
    border-radius: 999px;
    border: 1px solid rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .35);
    background: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .08);
    color: var(--ais-theme-primary, #1d4ed8);
    font-family: var(--ais-font, inherit);
    font-size: 11px;
    font-weight: 700;
    cursor: pointer;
    transition: background .15s ease;
}
.ais-bp-cari-toggle:hover {
    background: rgba(var(--ais-theme-primary-rgb, 29, 78, 216), .16);
}

/* Popup banbox: input filter nyaman disentuh & tidak meluber di mobile */
.z-bandpopup input.z-textbox,
.z-bandpopup input.z-combobox-inp,
.z-bandpopup input.z-bandbox-inp,
.z-bandpopup input.z-decimalbox {
    border-radius: 7px !important;
    padding: 5px 8px !important;
    box-sizing: border-box !important;
    max-width: 100% !important;
}

@media (max-width: 768px) {
    .ais-bp-cari-toggle {
        font-size: 12px;
        padding: 8px 14px;
    }
}
