*{box-sizing:border-box}body{margin:0;font-family:Arial,sans-serif;background:#f4f6f9;color:#1f2933}.app-shell{display:flex;min-height:100vh}.sidebar{width:250px;background:#343a40;color:#dfe5ea;flex:0 0 250px}.brand{padding:18px 22px;border-bottom:1px solid #4b535b;font-size:20px}.brand small,.profile small{display:block;font-size:12px;margin-top:4px}.profile{display:flex;gap:12px;align-items:center;padding:18px 20px;border-bottom:1px solid #4b535b}.avatar{width:38px;height:38px;border-radius:50%;background:#f3f4f6;color:#343a40;display:flex;align-items:center;justify-content:center;font-size:20px}.sidebar nav{padding:10px 8px}.sidebar nav span{display:block;font-size:12px;color:#58b7e8;padding:14px 10px 6px}.sidebar nav a{display:block;color:#d8dee3;text-decoration:none;padding:10px 12px;border-radius:4px;margin:2px 0}.sidebar nav a:hover,.sidebar nav a.active{background:#007bff;color:#fff}.sidebar nav a.disabled{opacity:.45;pointer-events:none}.main{flex:1;min-width:0}.topbar{height:62px;background:#fff;border-bottom:1px solid #d9dee3;display:flex;align-items:center;justify-content:space-between;padding:0 22px}.topbar a{color:#dc3545;text-decoration:none}.content{padding:20px}.footer{padding:16px 20px;background:#fff;border-top:1px solid #ddd;color:#64707c}.footer span{float:right}.welcome,.panel{background:#fff;border:1px solid #d6dbe0;border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.09);margin-bottom:16px}.welcome{border-left:4px solid #007bff;padding:20px}.cards{display:grid;grid-template-columns:repeat(4,minmax(170px,1fr));gap:15px;margin-bottom:16px}.card{background:#fff;border:1px solid #d6dbe0;border-radius:5px;box-shadow:0 1px 3px rgba(0,0,0,.09);padding:16px}.card .number{font-size:28px;font-weight:700;margin:8px 0}.card.blue{border-top:4px solid #007bff}.card.green{border-top:4px solid #28a745}.card.cyan{border-top:4px solid #17a2b8}.card.yellow{border-top:4px solid #ffc107}.panel{padding:0}.panel h3,.panel-title{margin:0;padding:13px 16px;border-bottom:1px solid #ddd;font-size:18px}.panel-body{padding:16px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.input{padding:9px 11px;border:1px solid #ced4da;border-radius:4px;min-width:220px;background:#fff}.input.full{width:100%;min-width:0}.btn{display:inline-block;padding:9px 13px;background:#007bff;color:#fff;text-decoration:none;border:0;border-radius:4px;cursor:pointer}.btn.green{background:#28a745}.btn.secondary{background:#6c757d}.btn.danger{background:#dc3545}.btn-sm{padding:5px 8px;font-size:12px}.table-wrap{overflow:auto}.panel.table-wrap{padding:0}table{width:100%;border-collapse:collapse;white-space:nowrap}th,td{padding:10px;border-bottom:1px solid #e5e8eb;text-align:left}th{background:#f4f6f9}.badge{display:inline-block;padding:4px 8px;border-radius:4px;font-size:12px;background:#28a745;color:#fff}.badge.off{background:#6c757d}.badge.warn{background:#ffc107;color:#212529}.alert{padding:12px;border:1px solid #ffeeba;background:#fff3cd;border-radius:4px;margin-bottom:14px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(220px,1fr));gap:14px}.form-group{margin-bottom:12px}.form-group label{display:block;margin-bottom:6px;font-weight:600}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:#e9ecef}.login-box{width:380px;background:#fff;padding:28px;border-radius:6px;box-shadow:0 4px 20px rgba(0,0,0,.15)}.quick{display:flex;gap:10px;flex-wrap:wrap;padding:16px}.summary{background:#eef7ff;border:1px solid #b8daff;border-radius:4px;padding:14px;margin-top:14px}.summary strong{font-size:21px}.text-right{text-align:right}.muted{color:#6c757d}.split{display:grid;grid-template-columns:2fr 1fr;gap:16px}@media(max-width:1000px){.cards{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.sidebar{width:215px;flex-basis:215px}}@media(max-width:700px){.sidebar{display:none}.cards,.form-grid{grid-template-columns:1fr}.content{padding:12px}}
.trend-up{color:#198754;font-weight:700}.trend-down{color:#dc3545;font-weight:700}small{color:#6c757d}.badge.warn{background:#ffc107;color:#212529}

/* Beta 5 attendance */
.form-row{display:flex;gap:12px;align-items:flex-start;flex-wrap:wrap}.form-row>div{min-width:180px}.form-row input,.form-row select{width:100%}.stats.compact{grid-template-columns:repeat(7,minmax(90px,1fr));margin-bottom:14px}.stats.compact .stat{padding:14px}.stats.compact .stat strong{font-size:22px}.grid-2{display:grid;grid-template-columns:1fr 1.5fr;gap:16px}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.check{display:block;margin:14px 0}.alert.success{background:#e9f8ef;border-color:#a8dfbc;color:#176b36}@media(max-width:900px){.stats.compact{grid-template-columns:repeat(2,1fr)}.grid-2,.form-grid{grid-template-columns:1fr}}

.badge.danger{background:#dc3545;color:#fff} textarea.input{font-family:inherit;resize:vertical}
.sheet-table{min-width:2200px}.sheet-table th{white-space:nowrap;position:sticky;top:0;z-index:2}.sheet-table .sticky-name{position:sticky;left:0;background:#fff;z-index:1;min-width:210px}.sheet-table thead .sticky-name{z-index:3;background:#eff3f7}.money-cell{min-width:130px;text-align:right}.text-cell{min-width:150px}.date-cell{min-width:145px}.mini{min-width:115px}.pagination{display:flex;gap:5px;flex-wrap:wrap;margin:15px 0}.muted{color:#6c757d}.success{padding:12px 15px;background:#d4edda;color:#155724;border-radius:5px;margin-bottom:15px}.badge.ok{background:#28a745}.badge.no{background:#dc3545}.badge{color:#fff;padding:4px 8px;border-radius:4px;font-size:11px}

/* RC-1 unified AdminLTE-style shell */
:root{--sidebar-width:250px;--sidebar-mini:74px;--header-height:58px;--primary:#007bff;--sidebar:#343a40;--sidebar-text:#d7dce0}
html,body{min-height:100%}body{overflow-x:hidden}.wrapper{min-height:100vh;background:#f4f6f9}.main-header{position:fixed;top:0;right:0;left:var(--sidebar-width);height:var(--header-height);z-index:1030;background:#fff;border-bottom:1px solid #dee2e6;display:flex;align-items:center;justify-content:space-between;padding:0 18px;transition:left .25s ease}.navbar-left,.navbar-right{display:flex;align-items:center;gap:12px}.pushmenu-button{border:0;background:transparent;font-size:22px;cursor:pointer;padding:8px 10px;border-radius:4px}.pushmenu-button:hover{background:#f1f3f5}.logout-link{color:#dc3545;text-decoration:none}.main-sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar-width);background:var(--sidebar);color:var(--sidebar-text);z-index:1040;overflow:hidden;transition:width .25s ease,transform .25s ease}.brand-link{display:block;height:76px;padding:16px 20px;color:#fff;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap}.brand-link strong,.brand-link small{display:block}.brand-link small{margin-top:4px;color:#c9ced3}.sidebar-inner{height:calc(100vh - 76px);overflow-y:auto;overflow-x:hidden}.user-panel{display:flex;align-items:center;gap:11px;margin:12px;padding:13px 8px;border-bottom:1px solid rgba(255,255,255,.12);white-space:nowrap}.sidebar-nav{padding:4px 8px 18px}.sidebar-nav .nav-item,.nav-group-toggle{width:100%;display:flex;align-items:center;gap:10px;color:var(--sidebar-text);text-decoration:none;background:transparent;border:0;border-radius:4px;padding:10px 12px;margin:2px 0;font:inherit;text-align:left;cursor:pointer;white-space:nowrap}.sidebar-nav .nav-item:hover,.sidebar-nav .nav-item.active,.nav-group-toggle:hover{background:var(--primary);color:#fff}.nav-icon{display:inline-flex;align-items:center;justify-content:center;width:20px;min-width:20px}.nav-group-toggle{justify-content:space-between;font-size:12px;font-weight:700;color:#77c7ef}.nav-group-toggle>span:first-child{display:flex;align-items:center;gap:10px}.chevron{font-size:22px;transform:rotate(0);transition:transform .2s}.nav-treeview{display:none;padding-left:10px}.nav-group.menu-open>.nav-treeview{display:block}.nav-group.menu-open>.nav-group-toggle .chevron{transform:rotate(90deg)}.content-wrapper{margin-left:var(--sidebar-width);padding-top:var(--header-height);min-height:100vh;display:flex;flex-direction:column;transition:margin-left .25s ease}.content-header{padding:18px 22px 8px}.content-header h1{font-size:24px;margin:0 0 5px}.breadcrumb{display:flex;gap:8px;align-items:center;font-size:13px;color:#6c757d}.breadcrumb a{color:var(--primary);text-decoration:none}.content-wrapper>.content{flex:1}.main-footer{display:flex;justify-content:space-between;gap:20px;padding:15px 20px;background:#fff;border-top:1px solid #dee2e6;color:#66717b}.sidebar-collapse .main-sidebar{width:var(--sidebar-mini)}.sidebar-collapse .main-header{left:var(--sidebar-mini)}.sidebar-collapse .content-wrapper{margin-left:var(--sidebar-mini)}.sidebar-collapse .brand-link strong,.sidebar-collapse .brand-link small,.sidebar-collapse .user-panel>div:last-child,.sidebar-collapse .nav-text,.sidebar-collapse .chevron{display:none}.sidebar-collapse .brand-link{padding:24px 0;text-align:center}.sidebar-collapse .brand-link:after{content:'GI';font-weight:700;color:#fff}.sidebar-collapse .user-panel{justify-content:center;margin:12px 8px;padding:13px 0}.sidebar-collapse .sidebar-nav .nav-item,.sidebar-collapse .nav-group-toggle{justify-content:center;padding-left:0;padding-right:0}.sidebar-collapse .nav-treeview{padding-left:0}.sidebar-collapse .nav-group.menu-open>.nav-treeview{display:none}.panel-title-row{display:flex;align-items:center;justify-content:space-between;padding:13px 16px;border-bottom:1px solid #ddd}.panel-title-row h3{padding:0;border:0}.progress{height:10px;background:#e9ecef;border-radius:20px;overflow:hidden;margin-bottom:18px}.progress>div{height:100%;background:var(--primary);transition:width .3s}.payroll-steps{display:grid;gap:8px}.payroll-step{display:grid;grid-template-columns:42px 1fr 20px;align-items:center;gap:10px;border:1px solid #dfe3e7;border-radius:5px;padding:11px 13px;color:#26323c;text-decoration:none;background:#fff}.payroll-step:hover{border-color:#8fc4ff;background:#f5faff}.payroll-step.done{border-left:4px solid #28a745}.step-number{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#e9ecef;font-weight:700}.payroll-step.done .step-number{background:#dff3e5;color:#198754}.payroll-step small{display:block;margin-top:3px}.step-arrow{font-size:24px;color:#8a949e}.period-chip{min-width:210px;background:#eef7ff;border:1px solid #b8daff;border-radius:6px;padding:12px 15px}.period-chip small,.period-chip strong,.period-chip span{display:block}.period-chip strong{font-size:18px;margin:3px 0}.payroll-welcome{display:flex;align-items:center;justify-content:space-between;gap:18px}.compact-list{display:grid;gap:12px}.compact-list>div{display:flex;justify-content:space-between;border-bottom:1px solid #eef0f2;padding-bottom:9px}.compact-list>div:last-child{border-bottom:0}.quick.vertical{display:grid}.money{font-size:20px!important}.payroll-grid{grid-template-columns:minmax(0,2fr) minmax(280px,1fr)}
@media(max-width:768px){.main-header{left:0}.main-sidebar{transform:translateX(-100%);width:var(--sidebar-width)}.content-wrapper{margin-left:0}.sidebar-collapse .main-sidebar{width:var(--sidebar-width)}.sidebar-collapse .main-header{left:0}.sidebar-collapse .content-wrapper{margin-left:0}.sidebar-mobile-open .main-sidebar{transform:translateX(0)}.user-status{display:none}.payroll-welcome{align-items:stretch;flex-direction:column}.payroll-grid{grid-template-columns:1fr}.main-footer{flex-direction:column}.page-caption{font-size:14px}}


/* YIT navy-gold AdminLTE + ExtJS grid theme */
:root{--primary:#0b3b86;--navy:#062e69;--navy-dark:#032454;--gold:#ffd21a;--gold-deep:#e6ad00;--sidebar:#062e69;--sidebar-text:#f4f7fb}
.main-sidebar{background:linear-gradient(180deg,var(--navy-dark) 0%,var(--navy) 62%,#05285c 100%);border-right:1px solid rgba(255,210,26,.55)}
.main-header{background:linear-gradient(90deg,var(--navy-dark),var(--navy));border-bottom:2px solid var(--gold);color:#fff}
.main-header .page-caption,.main-header .user-status{color:#fff}.pushmenu-button{color:var(--gold)}.pushmenu-button:hover{background:rgba(255,255,255,.1)}.logout-link{color:var(--gold);font-weight:700}
.brand-link{height:84px;padding:10px 14px;display:flex;align-items:center;gap:11px;border-bottom:1px solid rgba(255,210,26,.55)}.brand-logo{width:52px;height:52px;object-fit:contain;flex:0 0 52px}.brand-copy{min-width:0}.brand-copy strong{font-size:18px;color:var(--gold)}.brand-copy small{font-size:10px;letter-spacing:.6px;color:#fff}.sidebar-inner{height:calc(100vh - 84px)}
.user-panel{border-bottom:1px solid rgba(255,210,26,.35)}.user-panel strong{color:var(--gold)}.nav-group-toggle{color:var(--gold)}.sidebar-nav .nav-item:hover,.sidebar-nav .nav-item.active,.nav-group-toggle:hover{background:linear-gradient(90deg,rgba(230,173,0,.45),rgba(255,210,26,.85));color:#fff}.sidebar-nav .nav-item.active{box-shadow:inset 3px 0 0 var(--gold)}
.sidebar-collapse .brand-link{padding:13px 10px;justify-content:center}.sidebar-collapse .brand-link:after{content:none}.sidebar-collapse .brand-logo{width:44px;height:44px;flex-basis:44px}.sidebar-collapse .brand-copy{display:none}
.btn{background:var(--primary)}.btn.gold{background:linear-gradient(180deg,var(--gold),var(--gold-deep));color:#14233a;font-weight:700}.badge{background:#168345}.grade-chip{display:inline-block;background:#e8f0ff;color:var(--navy);border:1px solid #acc4ee;border-radius:4px;padding:3px 8px;font-weight:700}
.panel{border-color:#cbd5e1}.panel h3,.panel-title,.panel-title-row{background:#f7f9fc}
/* ExtJS-inspired grid */
table.ext-grid, .table-wrap table{border-collapse:separate;border-spacing:0;font-size:13px;min-width:100%}.ext-grid thead th,.table-wrap table thead th{position:sticky;top:0;z-index:2;background:linear-gradient(180deg,#174b8e,#0b356f);color:#fff;border-right:1px solid rgba(255,255,255,.16);border-bottom:1px solid #06295b;padding:7px 9px;font-weight:700}.ext-grid tbody td,.table-wrap table tbody td{padding:7px 9px;border-right:1px solid #d8e0ea;border-bottom:1px solid #d8e0ea;background:#fff}.ext-grid tbody tr:nth-child(even) td,.table-wrap table tbody tr:nth-child(even) td{background:#f6f8fb}.ext-grid tbody tr:hover td,.table-wrap table tbody tr:hover td{background:#eaf2ff}.ext-grid th:first-child,.ext-grid td:first-child,.table-wrap table th:first-child,.table-wrap table td:first-child{border-left:1px solid #d8e0ea}.employee-grid td:nth-child(1),.employee-grid td:nth-child(6),.employee-grid td:nth-child(7){text-align:center}.table-wrap{border-radius:5px}
.input{border-color:#b9c6d6;border-radius:3px}.input:focus{outline:0;border-color:#3e78c8;box-shadow:0 0 0 2px rgba(62,120,200,.14)}
.modal-backdrop{position:fixed;inset:0;background:rgba(2,20,45,.56);z-index:2000;display:none;align-items:center;justify-content:center;padding:20px}.modal-backdrop.show{display:flex}.modal-card{width:min(560px,100%);background:#fff;border-radius:7px;box-shadow:0 18px 60px rgba(0,0,0,.28);overflow:hidden}.modal-head{background:linear-gradient(90deg,var(--navy-dark),var(--navy));color:#fff;padding:14px 17px;display:flex;justify-content:space-between;align-items:center}.modal-head button{border:0;background:transparent;color:#fff;font-size:25px;cursor:pointer}.modal-actions{padding:12px 16px;border-top:1px solid #dce3ec;display:flex;justify-content:flex-end;gap:8px;background:#f7f9fc}.readonly-box{border:1px solid #d1d9e3;background:#f4f6f9;padding:9px 11px;border-radius:4px;font-weight:700}
.main-footer{border-top:2px solid var(--gold)}

/* Data Pegawai - Amanah khusus penggajian */
.amanah-grid{min-width:900px}
.amanah-grid th:nth-child(1),.amanah-grid td:nth-child(1){width:72px;text-align:center}
.amanah-grid th:nth-child(2){width:28%}
.amanah-grid th:nth-child(3),.amanah-grid th:nth-child(4),.amanah-grid th:nth-child(5){width:20%}
.amanah-grid th:nth-child(6),.amanah-grid td:nth-child(6){width:80px;text-align:center}
.amanah-grid .employee-name strong{font-size:13px;color:#102a4c}
.amanah-grid .amanah-empty{color:#667085}

/* Amanah otomatis dari jadwal JIBAS */
.amanah-chip{display:inline-block;padding:3px 8px;border-radius:999px;background:#e8f7ed;border:1px solid #b8dfc4;color:#187333;font-weight:700;font-size:11px}

/* Pagination Data Pegawai */
.pegawai-filter{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grid-footer{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 12px;background:#fff;border:1px solid #ccd7e5;border-top:0;font-size:12px}
.pagination{display:flex;gap:3px;align-items:center}
.page-btn{min-width:31px;height:29px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;border:1px solid #c9d5e5;background:#fff;color:#0c3971;text-decoration:none;border-radius:3px}
.page-btn:hover{background:#eef5ff}
.page-btn.active{background:#07366e;color:#fff;border-color:#07366e;font-weight:700}
.page-btn.disabled{opacity:.45;pointer-events:none}
.page-gap{padding:0 3px;color:#738197}
.amanah-structure{white-space:normal;line-height:1.35}

.amanah-academic{white-space:normal;line-height:1.35}

.amanah-modal-card{width:min(780px,94vw)}
.amanah-editor{border:1px solid #d4deea;border-radius:5px;padding:10px 12px;margin-top:10px;background:#fafcff}
.amanah-editor>label{font-weight:700;color:#123b70}
.amanah-auto-note{font-size:12px;color:#667085;margin:4px 0 8px}
.amanah-editor-row{display:grid;grid-template-columns:190px 1fr;gap:8px}
.amanah-new{grid-column:2}
@media(max-width:700px){.amanah-editor-row{grid-template-columns:1fr}.amanah-new{grid-column:1}}

.golongan-2526{text-align:center;font-weight:700;color:#123b70;white-space:nowrap}
.amanah-grid th:nth-child(6),.amanah-grid td:nth-child(6){width:135px;text-align:center}
.amanah-grid th:nth-child(7),.amanah-grid td:nth-child(7){width:80px;text-align:center}

/* Inline Amanah + Golongan tahun berjalan */
.amanah-select{width:100%;min-width:150px;border:1px solid #c8d5e6;border-radius:4px;background:#fff;padding:5px 26px 5px 7px;font-size:12px;color:#172b4d;transition:.15s}
.amanah-select:focus{outline:none;border-color:#1b69b6;box-shadow:0 0 0 2px rgba(27,105,182,.10)}
.amanah-select.saved{border-color:#28a745;background:#effaf2}
.amanah-inline{padding:5px 6px!important}
.golongan-current{text-align:center;font-weight:800;color:#08712d;white-space:nowrap;background:#f3fbf5!important}
.amanah-grid th:nth-child(6),.amanah-grid td:nth-child(6){width:125px;text-align:center}
.amanah-grid th:nth-child(7),.amanah-grid td:nth-child(7){width:125px;text-align:center}

/* Amanah tampil teks, dropdown saat diklik */
.click-edit-amanah{position:relative;cursor:pointer}
.amanah-display{display:block;min-height:24px;padding:4px 6px;border:1px solid transparent;border-radius:4px;line-height:1.35}
.amanah-display:hover{background:#eef5ff;border-color:#c6d8ee}
.amanah-editor-inline{min-width:100%}
.amanah-editor-inline .amanah-select{width:100%;min-width:150px}
.click-edit-amanah.editing{background:#fffdf3}

/* Final Data Pegawai layout */
.amanah-grid{
  width:100%;
  min-width:1040px;
  table-layout:fixed;
}
.amanah-grid thead th{
  vertical-align:middle;
  text-align:center;
  white-space:normal;
  line-height:1.15;
  padding:8px 6px;
}
.amanah-grid thead th span,
.amanah-grid thead th small{
  display:block;
}
.amanah-grid thead th small{
  margin-top:3px;
  font-size:11px;
  font-weight:700;
  color:#fff;
}
.amanah-grid th:nth-child(1),
.amanah-grid td:nth-child(1){
  width:62px;
  text-align:center;
}
.amanah-grid th:nth-child(2),
.amanah-grid td:nth-child(2){
  width:240px;
  text-align:left;
}
.amanah-grid th:nth-child(3),
.amanah-grid td:nth-child(3){
  width:145px;
}
.amanah-grid th:nth-child(4),
.amanah-grid td:nth-child(4){
  width:185px;
}
.amanah-grid th:nth-child(5),
.amanah-grid td:nth-child(5){
  width:220px;
}
.amanah-grid th:nth-child(6),
.amanah-grid td:nth-child(6){
  width:135px;
  text-align:center;
}
.amanah-grid th:nth-child(7),
.amanah-grid td:nth-child(7){
  width:125px;
  text-align:center;
}
.amanah-grid td{
  vertical-align:middle;
  overflow-wrap:anywhere;
}
.click-edit-amanah{
  position:relative;
}
.amanah-display{
  display:block;
  min-height:24px;
  padding:3px 5px;
  border:1px solid transparent;
  border-radius:4px;
  line-height:1.3;
  cursor:pointer;
}
.amanah-display:hover{
  background:#eef5ff;
  border-color:#c6d8ee;
}
.amanah-editor-inline{
  position:relative;
  z-index:5;
}
.amanah-editor-inline .amanah-select{
  width:100%;
  min-width:0;
  max-width:100%;
  height:30px;
  font-size:12px;
}
.golongan-2526,
.golongan-current{
  font-weight:700;
  white-space:nowrap;
}
.golongan-current{
  color:#0a7a31;
  background:#f2fbf5;
}
@media(max-width:1100px){
  .table-wrap{overflow-x:auto}
}

/* Hard alignment fix: exactly 7 columns */
.amanah-grid{width:100%;min-width:1080px;table-layout:fixed}
.amanah-grid th,.amanah-grid td{box-sizing:border-box;vertical-align:middle}
.amanah-grid th:nth-child(1),.amanah-grid td:nth-child(1){width:6%;text-align:center}
.amanah-grid th:nth-child(2),.amanah-grid td:nth-child(2){width:22%}
.amanah-grid th:nth-child(3),.amanah-grid td:nth-child(3){width:12%}
.amanah-grid th:nth-child(4),.amanah-grid td:nth-child(4){width:16%}
.amanah-grid th:nth-child(5),.amanah-grid td:nth-child(5){width:22%}
.amanah-grid th:nth-child(6),.amanah-grid td:nth-child(6){width:11%;text-align:center}
.amanah-grid th:nth-child(7),.amanah-grid td:nth-child(7){width:11%;text-align:center}
.amanah-grid thead th span,.amanah-grid thead th small{display:block}

/* Menu Gaji Pokok */
.gapok-grid{width:100%;min-width:820px;table-layout:fixed}
.gapok-grid th,.gapok-grid td{vertical-align:middle}
.gapok-grid th:nth-child(1),.gapok-grid td:nth-child(1){width:75px;text-align:center}
.gapok-grid th:nth-child(2),.gapok-grid td:nth-child(2){width:auto}
.gapok-grid th:nth-child(3),.gapok-grid td:nth-child(3),
.gapok-grid th:nth-child(4),.gapok-grid td:nth-child(4){width:135px;text-align:center}
.gapok-grid th:nth-child(5),.gapok-grid td:nth-child(5),
.gapok-grid th:nth-child(6),.gapok-grid td:nth-child(6){width:155px}
.gapok-grid thead small{font-size:11px;color:#fff}
.grade-old{font-weight:700;color:#123b70}
.grade-now{font-weight:700;color:#08772e;background:#f3fbf5}
.money{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}

/* Gaji Pokok - compact numbers + editable percentage */
.gapok-grid .money{
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.25;
}
.gapok-grid .grade-old,
.gapok-grid .grade-now{
  font-size:12px;
}
.gapok-tools{
  display:flex;
  gap:12px;
  align-items:flex-end;
  flex-wrap:wrap;
  justify-content:flex-end;
}
.persen-form{
  display:flex;
  flex-direction:column;
  gap:4px;
}
.persen-form label{
  font-size:12px;
  color:#5f6f82;
  font-weight:600;
}
.persen-input-wrap{
  display:flex;
  align-items:center;
  gap:5px;
}
.persen-input{
  width:78px !important;
  min-width:78px !important;
  text-align:right;
}
.persen-input-wrap>span{
  font-weight:700;
  color:#123b70;
}
@media(max-width:900px){
  .gapok-tools{width:100%;justify-content:flex-start}
}

/* Master Tunjangan Jabatan */
.tj-panel{margin-bottom:14px}
.tj-form{display:grid;grid-template-columns:120px 1.6fr 1fr 1fr auto;gap:10px;align-items:end;padding:14px}
.tj-form label{display:block;font-size:12px;font-weight:700;margin-bottom:5px}
.tj-actions{display:flex;gap:6px}
.tj-grid{width:100%;table-layout:fixed}
.tj-grid th{text-align:center;vertical-align:middle}
.tj-grid th:nth-child(1){width:90px}
.tj-grid th:nth-child(2){width:auto}
.tj-grid th:nth-child(3),.tj-grid th:nth-child(4){width:190px}
.tj-grid th:nth-child(5){width:90px}
.tj-level{text-align:center;font-weight:800}
.tj-grid .money{text-align:right;font-size:13px;font-weight:600}
.tj-action{text-align:center}
.tj-note{margin-top:12px;padding:12px 14px;border:1px solid #d4dfec;background:#f7faff;font-size:12px}
@media(max-width:950px){.tj-form{grid-template-columns:1fr 1fr}.tj-actions{grid-column:1/-1}}

/* Tunjangan Jabatan v2 - rapikan kolom nominal */
.tj-grid{
  width:100%;
  table-layout:fixed;
}
.tj-grid th,
.tj-grid td{
  box-sizing:border-box;
  vertical-align:middle;
}
.tj-grid th:nth-child(1),
.tj-grid td:nth-child(1){
  width:9%;
  text-align:center;
}
.tj-grid th:nth-child(2),
.tj-grid td:nth-child(2){
  width:43%;
}
.tj-grid th:nth-child(3),
.tj-grid td:nth-child(3),
.tj-grid th:nth-child(4),
.tj-grid td:nth-child(4){
  width:16%;
}
.tj-grid th:nth-child(5),
.tj-grid td:nth-child(5){
  width:16%;
  text-align:center;
}
.tj-grid td.money{
  padding:8px 12px !important;
  text-align:right !important;
  font-size:13px !important;
  font-weight:600 !important;
  white-space:nowrap;
  overflow:hidden;
}
.tj-grid thead th{
  text-align:center;
}
.tj-grid .btn.small{
  font-size:12px;
  padding:6px 12px;
}
.tj-form{
  grid-template-columns:120px minmax(220px,1.5fr) minmax(160px,1fr) minmax(160px,1fr) auto;
}

/* Tunjangan Jabatan v3 - font lebih compact */
.tj-grid th{font-size:12px !important}
.tj-grid td{font-size:12px !important}
.tj-grid td strong{font-size:12px !important;font-weight:600}
.tj-grid td.money{font-size:12px !important;font-weight:600 !important}
.tj-grid .tj-level{font-size:12px !important}
.tj-grid .btn.small{font-size:11px !important;padding:5px 10px}
.tj-form label{font-size:11px !important}
.tj-form .input{font-size:12px !important}

/* Master Jam Ajar */
.jam-toolbar{align-items:flex-end}
.jam-filter{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.jam-filter select{min-width:190px}
.jam-rekap-grid{width:100%;table-layout:fixed}
.jam-rekap-grid th:nth-child(1){width:55px}
.jam-rekap-grid th:nth-child(2){width:27%}
.jam-rekap-grid th:nth-child(3){width:22%}
.jam-rekap-grid th:nth-child(4),.jam-rekap-grid th:nth-child(5),.jam-rekap-grid th:nth-child(6),.jam-rekap-grid th:nth-child(7){width:11%}
.jam-rekap-grid .jp{text-align:center;font-weight:700}
.jam-rekap-grid .diniyah{color:#7b3f00}
.jam-rekap-grid .umum{color:#0c4f91}
.jam-rekap-grid .total{background:#f2f8ff;color:#0a396d}
.jam-rekap-grid .belum{color:#8b6200}
.section-title{margin:18px 0 8px}
.section-title h3{margin:0 0 3px;font-size:16px}
.section-title small{color:#6b7788}
.mapel-kategori-grid{width:100%;table-layout:fixed}
.mapel-kategori-grid th:nth-child(1){width:55px}
.mapel-kategori-grid th:nth-child(2){width:22%}
.mapel-kategori-grid th:nth-child(3){width:110px}
.mapel-kategori-grid th:nth-child(4){width:auto}
.mapel-kategori-grid th:nth-child(5){width:180px}
.kategori-form{margin:0}
.kategori-select{width:100%;font-size:12px}

/* Master Jam Ajar v2 - pivot per pengajar */
.jam-pivot-wrap{
  overflow-x:auto;
}
.jam-pivot-grid{
  width:max-content;
  min-width:100%;
  table-layout:auto;
}
.jam-pivot-grid th,
.jam-pivot-grid td{
  white-space:nowrap;
  vertical-align:middle;
  font-size:12px;
}
.jam-pivot-grid th{
  text-align:center;
}
.jam-pivot-grid th:first-child,
.jam-pivot-grid td:first-child{
  min-width:48px;
  text-align:center;
}
.jam-pivot-grid th:nth-child(2),
.jam-pivot-grid td:nth-child(2){
  min-width:220px;
  text-align:left;
  position:sticky;
  left:0;
  z-index:2;
}
.jam-pivot-grid thead th:nth-child(2){
  z-index:4;
}
.jam-pivot-grid tbody td:nth-child(2){
  background:inherit;
}
.jam-pivot-grid .dep-head{
  min-width:130px;
}
.jam-pivot-grid .jp{
  min-width:62px;
  text-align:center;
  font-weight:700;
}
.jam-pivot-grid .umum{color:#0c4f91}
.jam-pivot-grid .diniyah{color:#7b3f00}
.jam-pivot-grid .total-head{
  background:#0d3d72;
}
.jam-pivot-grid .total-umum{
  color:#0c4f91;
  background:#eef6ff;
}
.jam-pivot-grid .total-diniyah{
  color:#7b3f00;
  background:#fff7ef;
}
.jam-pivot-grid .total{
  color:#0a396d;
  background:#edf5ff;
}

/* Jam Ajar v3 - semua subkolom Umum/Diniyah sama dan compact */
.jam-pivot-grid .dep-head{
  min-width:112px !important;
}
.jam-pivot-grid .jp{
  width:56px !important;
  min-width:56px !important;
  max-width:56px !important;
}
.jam-pivot-grid thead tr:nth-child(2) th{
  width:56px !important;
  min-width:56px !important;
  max-width:56px !important;
  padding-left:5px !important;
  padding-right:5px !important;
}

/* Jam Ajar v5 */
.jam-pivot-grid td.jp:empty{
  background:#fff;
}

/* Jam Ajar v7 - Data Anak editable */
.jam-pivot-grid .anak-head,
.jam-pivot-grid .data-anak-cell{
  width:76px;
  min-width:76px;
  max-width:76px;
  text-align:center;
}
.data-anak-input{
  width:54px;
  height:25px;
  padding:2px 4px;
  border:1px solid transparent;
  border-radius:3px;
  background:transparent;
  text-align:center;
  font-size:12px;
  color:#17365d;
}
.data-anak-input:hover,
.data-anak-input:focus{
  background:#fff;
  border-color:#9db9dc;
  outline:none;
}
.data-anak-input.saving{opacity:.55}
.data-anak-input.saved{background:#edf9f0;border-color:#91cda0}
.data-anak-input.save-error{background:#fff0f0;border-color:#df8f8f}
/* browser number arrows only when editing/focus */
.data-anak-input:not(:focus)::-webkit-inner-spin-button,
.data-anak-input:not(:focus)::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}

/* Jam Ajar v9 - header lebih ringkas */
.jam-pivot-grid th,.jam-pivot-grid td{padding-top:5px !important;padding-bottom:5px !important;}
.jam-pivot-grid thead th{font-size:11px !important;line-height:1.05 !important;padding:4px 4px !important;}
.jam-pivot-grid .dep-head{min-width:92px !important;}
.jam-pivot-grid .jp,.jam-pivot-grid thead tr:nth-child(2) th{width:46px !important;min-width:46px !important;max-width:46px !important;padding-left:3px !important;padding-right:3px !important;}
.jam-pivot-grid .anak-head,.jam-pivot-grid .data-anak-cell{width:62px !important;min-width:62px !important;max-width:62px !important;}
.data-anak-input{width:44px !important;}
.jam-pivot-grid th:first-child,.jam-pivot-grid td:first-child{min-width:42px !important;width:42px !important;}
.jam-pivot-grid th:nth-child(2),.jam-pivot-grid td:nth-child(2){min-width:205px !important;}

/* Tunjangan Keluarga & Masa Depan */
.tunj-keluarga-grid{width:100%;table-layout:fixed}
.tunj-keluarga-grid th,.tunj-keluarga-grid td{font-size:12px;vertical-align:middle}
.tunj-keluarga-grid th:nth-child(1){width:60px}
.tunj-keluarga-grid th:nth-child(2){width:25%}
.tunj-keluarga-grid th:nth-child(3){width:80px}
.tunj-keluarga-grid th:nth-child(4){width:90px}
.tunj-keluarga-grid th:nth-child(n+5){width:145px}
.tunj-keluarga-grid .anak-value{text-align:center;font-weight:700}
.tunj-keluarga-grid .total-tunj{font-weight:800;background:#eef6ff}

/* Tunjangan Keluarga v11 */
.tunj-keluarga-grid.compact{width:100%;table-layout:fixed}
.tunj-keluarga-grid.compact th,.tunj-keluarga-grid.compact td{font-size:12px;vertical-align:middle;padding:7px 9px}
.tunj-keluarga-grid.compact th:nth-child(1){width:62px}
.tunj-keluarga-grid.compact th:nth-child(2){width:31%}
.tunj-keluarga-grid.compact th:nth-child(3){width:90px}
.tunj-keluarga-grid.compact th:nth-child(4),
.tunj-keluarga-grid.compact th:nth-child(5),
.tunj-keluarga-grid.compact th:nth-child(6){width:20%}
.tunj-keluarga-grid.compact .money{font-size:13px !important;font-weight:600 !important;white-space:nowrap}
.tunj-keluarga-grid.compact .total-tunj{font-size:13px !important;font-weight:700 !important;background:#eef6ff}
.anak-edit-cell{text-align:center}
.anak-inline-input{width:54px;height:27px;padding:3px 5px;text-align:center;border:1px solid transparent;background:transparent;border-radius:4px;font-size:12px;font-weight:600}
.anak-inline-input:hover,.anak-inline-input:focus{border-color:#8db6e8;background:#fff;outline:none}
.anak-inline-input.saving{opacity:.55}
.anak-inline-input.saved{background:#eaf8ef;border-color:#79c88e}
.anak-inline-input.save-error{background:#fff0f0;border-color:#e59a9a}
.tunjangan-tools{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;justify-content:flex-end}
.persen-tunjangan-form{display:flex;align-items:center;gap:5px;flex-wrap:wrap}
.persen-tunjangan-form label{font-size:11px;font-weight:600;color:#5f6f82}
.persen-tunjangan-form>div{display:flex;align-items:center;gap:3px}
.persen-mini{width:66px !important;min-width:66px !important;text-align:right}
.persen-tunjangan-form span{font-weight:700}

/* Master Kehadiran v12 */
.mk-toolbar{align-items:flex-end}
.mk-filter{display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.mk-filter select{min-width:120px}
.mk-grid{width:100%;table-layout:fixed}
.mk-grid th,.mk-grid td{font-size:12px;vertical-align:middle}
.mk-grid th:nth-child(1){width:70px}
.mk-grid th:nth-child(2){width:auto;text-align:left}
.mk-grid th:nth-child(3),.mk-grid th:nth-child(4),.mk-grid th:nth-child(5),.mk-grid th:nth-child(6){width:125px;text-align:center}
.mk-cell{text-align:center;padding:4px 6px!important}
.mk-input{width:58px;height:27px;text-align:center;border:1px solid transparent;background:transparent;border-radius:4px;font-size:12px;font-weight:600}
.mk-input:hover,.mk-input:focus{border-color:#83afe2;background:#fff;outline:none}
.mk-input.overridden{background:#fff6d8;border-color:#e6bf49}
.mk-input.saved{background:#eaf8ef;border-color:#79c88e}
.mk-input.saving{opacity:.55}
.mk-input.save-error{background:#fff0f0;border-color:#e59a9a}

/* Penggajian Kehadiran v16 */
.kehadiran-tools{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;justify-content:flex-end}
.tarif-kehadiran-form{display:flex;gap:5px;align-items:center;flex-wrap:wrap}
.tarif-kehadiran-form label{font-size:11px;font-weight:600;color:#5f6f82}
.tarif-mini{width:78px!important;min-width:78px!important;text-align:right}
.honor-hadir-grid{width:100%;table-layout:fixed}
.honor-hadir-grid th,.honor-hadir-grid td{font-size:12px;vertical-align:middle}
.honor-hadir-grid th:nth-child(1){width:65px}
.honor-hadir-grid th:nth-child(2){width:25%}
.honor-hadir-grid th:nth-child(3),
.honor-hadir-grid th:nth-child(4),
.honor-hadir-grid th:nth-child(5),
.honor-hadir-grid th:nth-child(6){width:15%}
.honor-hadir-grid th:nth-child(7){width:17%}
.honor-hadir-grid thead small{font-size:10px;color:#eaf2fb}
.honor-cell{text-align:center}
.honor-cell .qty{display:block;font-size:11px;color:#687789;margin-bottom:2px}
.honor-cell .money{display:block;font-size:12px;font-weight:600}
.total-honor{font-size:13px!important;font-weight:800!important;background:#eef6ff}

.tr-grid th:nth-child(1){width:70px}.tr-grid th:nth-child(3),.tr-grid th:nth-child(4){width:180px}.tr-input{width:120px;text-align:right;border:1px solid #d7dde5;border-radius:4px;padding:5px 7px;font-size:12px}

/* Tunjangan BPJS */
.bpjs-grid{width:100%;table-layout:fixed}
.bpjs-grid th,.bpjs-grid td{font-size:12px;vertical-align:middle}
.bpjs-grid th:nth-child(1){width:70px}
.bpjs-grid th:nth-child(2){width:auto}
.bpjs-grid th:nth-child(3),.bpjs-grid th:nth-child(4),.bpjs-grid th:nth-child(5){width:180px;text-align:right}
.bpjs-grid td:nth-child(3),.bpjs-grid td:nth-child(4),.bpjs-grid td:nth-child(5){text-align:right}
.bpjs-input{width:120px;height:28px;text-align:right;border:1px solid #d7dde5;border-radius:4px;padding:4px 7px;font-size:12px}
.bpjs-input:focus{border-color:#83afe2;outline:none}
.bpjs-input.saved{background:#eaf8ef;border-color:#79c88e}
.bpjs-input.saving{opacity:.55}
.bpjs-total{font-size:13px!important;font-weight:700!important;background:#eef6ff}

/* Proses Gaji: urutan mengikuti Data Pegawai dan tombol detail selalu terlihat */
.proses-gaji-grid{min-width:1350px!important}
.proses-gaji-grid th:nth-child(1),.proses-gaji-grid td:nth-child(1){width:60px;min-width:60px;text-align:center}
.proses-gaji-grid th:nth-child(2),.proses-gaji-grid td:nth-child(2){width:250px;min-width:250px}
.proses-gaji-grid th:nth-child(3),.proses-gaji-grid td:nth-child(3){width:100px;min-width:100px;text-align:center}
.proses-gaji-grid th:nth-child(4),.proses-gaji-grid td:nth-child(4){min-width:250px;max-width:360px;white-space:normal}
.proses-gaji-grid th:nth-child(n+6),.proses-gaji-grid td:nth-child(n+6){text-align:right}

/* Proses Gaji v23 - layout mengikuti SIMULASI 26-27 */
.proses-simulasi-grid{min-width:2100px!important;font-size:11px!important}
.proses-simulasi-grid th{padding:5px 6px!important;text-align:center!important;vertical-align:middle!important;line-height:1.15}
.proses-simulasi-grid td{padding:5px 6px!important;vertical-align:middle}
.proses-simulasi-grid th:nth-child(1),.proses-simulasi-grid td:nth-child(1){width:55px;min-width:55px;text-align:center}
.proses-simulasi-grid th:nth-child(2),.proses-simulasi-grid td:nth-child(2){width:225px;min-width:225px}
.proses-simulasi-grid .money{text-align:right;white-space:nowrap}
.proses-simulasi-grid .center{text-align:center}
.pending-mark{display:inline-block;padding:2px 5px;border-radius:3px;background:#fff3cd;color:#856404;font-size:10px;font-weight:700}
.total-col{background:#edf6ff!important}
.terima-col{background:#eaf8ef!important;color:#12652b}
.simulasi-note{font-size:12px;color:#5f6f82;margin:8px 2px 16px}
.simulasi-note strong{color:#1e416c}

/* Proses Gaji v24 - nominal proporsional + 10/page */
.proses-simulasi-grid{font-size:10.5px!important}
.proses-simulasi-grid th{font-size:10px!important;padding:4px 5px!important}
.proses-simulasi-grid td{font-size:10.5px!important;padding:5px 5px!important}
.proses-simulasi-grid .money{font-size:11px!important;font-weight:600!important}
.proses-simulasi-grid .total-col,
.proses-simulasi-grid .terima-col{font-size:11.5px!important}
.proses-simulasi-grid td:nth-child(2) strong{font-size:11px!important}
.proses-simulasi-grid td:nth-child(2) small{font-size:9.5px!important}
.pending-mark{font-size:9px!important;padding:2px 4px!important}
.proses-simulasi-grid .btn-sm{font-size:9.5px!important;padding:4px 6px!important}
.proses-pagination{
  display:flex;justify-content:space-between;align-items:center;gap:10px;
  padding:9px 2px 14px;font-size:11px;color:#5f6f82
}
.pager-links{display:flex;gap:4px;align-items:center}
.pager-links .btn{min-width:28px;text-align:center}

/* Slip v25 - sumber simulasi */
.salary-slip .slip-list td{padding-top:3px;padding-bottom:3px}


/* Proses Gaji v57 - tabel lebih rapat */
.proses-simulasi-grid{min-width:1720px!important;font-size:10px!important}
.proses-simulasi-grid th{padding:3px 4px!important;font-size:9.5px!important;line-height:1.08!important}
.proses-simulasi-grid td{padding:4px 4px!important;font-size:10px!important}
.proses-simulasi-grid .money{font-size:10px!important;font-weight:600!important}
.proses-simulasi-grid th:nth-child(1),.proses-simulasi-grid td:nth-child(1){width:44px!important;min-width:44px!important}
.proses-simulasi-grid th:nth-child(2),.proses-simulasi-grid td:nth-child(2){width:205px!important;min-width:205px!important}
.proses-simulasi-grid td:nth-child(2) strong{font-size:10px!important}
.proses-simulasi-grid td:nth-child(2) small{font-size:8.5px!important}
.proses-simulasi-grid .total-col,.proses-simulasi-grid .terima-col{font-size:10px!important}

/* Proses Gaji v67 - rapatkan Job/Apresiasi dan header 2 baris */
.proses-simulasi-grid .col-job{width:112px!important;min-width:112px!important;max-width:112px!important}
.proses-simulasi-grid .col-transport{width:100px!important;min-width:100px!important;max-width:100px!important}
.proses-simulasi-grid .col-kehadiran{width:100px!important;min-width:100px!important;max-width:100px!important}
.proses-simulasi-grid th.col-job,.proses-simulasi-grid th.col-transport,.proses-simulasi-grid th.col-kehadiran{white-space:normal!important;line-height:1.05!important}

/* Proses Gaji v68 - kolom tunjangan lebih rapat */
.proses-simulasi-grid{min-width:1600px!important}
.proses-simulasi-grid .col-job{width:88px!important;min-width:88px!important;max-width:88px!important;padding-left:3px!important;padding-right:3px!important}
.proses-simulasi-grid .col-transport{width:82px!important;min-width:82px!important;max-width:82px!important;padding-left:3px!important;padding-right:3px!important}
.proses-simulasi-grid .col-kehadiran{width:82px!important;min-width:82px!important;max-width:82px!important;padding-left:3px!important;padding-right:3px!important}

/* Proses Gaji v69 - kunci lebar Job/Apresiasi agar benar-benar rapat */
.proses-simulasi-grid{table-layout:fixed!important;min-width:1540px!important}
.proses-simulasi-grid .col-job{width:82px!important;min-width:82px!important;max-width:82px!important;padding-left:2px!important;padding-right:2px!important;white-space:nowrap!important}
.proses-simulasi-grid .col-transport{width:82px!important;min-width:82px!important;max-width:82px!important}
.proses-simulasi-grid .col-kehadiran{width:82px!important;min-width:82px!important;max-width:82px!important}

/* v70 - colgroup controls Proses Gaji widths explicitly */
.proses-simulasi-grid{table-layout:fixed!important;min-width:1711px!important;width:1711px!important}
.proses-simulasi-grid .col-job{width:auto!important;min-width:0!important;max-width:none!important;padding-left:3px!important;padding-right:3px!important;white-space:nowrap!important}
.proses-simulasi-grid .col-transport,.proses-simulasi-grid .col-kehadiran{width:auto!important;min-width:0!important;max-width:none!important;padding-left:3px!important;padding-right:3px!important}


/* Proses Gaji v71 - paksa Job/Apresiasi rapat pada kolom fisik ke-6 */
.proses-simulasi-grid{table-layout:fixed!important;min-width:1546px!important;width:1546px!important}
.proses-simulasi-grid th:nth-child(6),
.proses-simulasi-grid td:nth-child(6){width:105px!important;min-width:105px!important;max-width:105px!important;padding-left:3px!important;padding-right:3px!important}
.proses-simulasi-grid th:nth-child(7),
.proses-simulasi-grid td:nth-child(7),
.proses-simulasi-grid th:nth-child(8),
.proses-simulasi-grid td:nth-child(8){width:82px!important;min-width:82px!important;max-width:82px!important;padding-left:3px!important;padding-right:3px!important}
