.pkbi-ip-public{max-width:720px;margin:20px auto;padding:22px;border:1px solid #e5e7eb;border-radius:18px;background:#fff;box-shadow:0 8px 28px rgba(15,23,42,.08);font-family:system-ui,-apple-system,Segoe UI,sans-serif}.pkbi-btn{display:inline-block;text-decoration:none;border:0;border-radius:12px;padding:13px 20px;background:#0f2e62;color:#fff!important;font-weight:700;cursor:pointer}.pkbi-btn.secondary{background:#475569}.pkbi-logout-public{margin-left:auto;background:#c62d2f}.pkbi-ip-public table{width:100%;border-collapse:collapse}.pkbi-ip-public td,.pkbi-ip-public th{padding:9px;border-bottom:1px solid #eee;text-align:left}.pkbi-ip-public td:last-child,.pkbi-ip-public th:last-child{text-align:right}.pkbi-public-header{display:flex;align-items:center;gap:16px}.pkbi-public-header img{width:210px;height:68px;object-fit:contain;object-position:left center;max-width:40%}.pkbi-public-header strong{font-size:18px;color:#0f2e62}.pkbi-public-header small{color:#64748b}@media(max-width:620px){.pkbi-public-header{flex-wrap:wrap}.pkbi-public-header img{max-width:100%;width:230px}.pkbi-logout-public{margin-left:0}}

/* v1.5.0 — Workforce Management Center */
.pkbi-public-brand{display:flex;flex-direction:column;min-width:0}.pkbi-public-system{font-size:16px;font-weight:800;line-height:1.25;color:#0f2e62}.pkbi-public-system-subtitle{display:block;margin:2px 0 9px;color:#56708d}.pkbi-public-header{max-width:920px;border-top:4px solid #194f97}.pkbi-public-header strong{display:block}.pkbi-public-header>img{flex:0 0 auto}
@media(max-width:620px){.pkbi-public-system{font-size:15px}.pkbi-public-system-subtitle{font-size:11px}}

/* v1.5.1 — official PKBI brand */
.pkbi-public-header{border-top:3px solid #e31b23;border-bottom:3px solid #0877d1;background:linear-gradient(110deg,#fff 0%,#fff 72%,#f2f8ff 100%)}
.pkbi-public-header img{width:290px;height:90px;object-fit:contain;object-position:left center;max-width:44%;background:transparent}
.pkbi-public-system{color:#093e86!important;font-weight:800}
@media(max-width:620px){.pkbi-public-header img{max-width:100%;width:280px;height:auto}}

/* v1.6.0 — Annual Leave */
.pkbi-leave-balance{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin:14px 0 18px}.pkbi-leave-balance>div{padding:14px;border:1px solid #dbeafe;border-radius:14px;background:#f8fbff}.pkbi-leave-balance small{display:block;color:#64748b;margin-bottom:5px}.pkbi-leave-balance strong{font-size:20px;color:#0f2e62}.pkbi-leave-form{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:end}.pkbi-leave-form label{display:flex;flex-direction:column;gap:6px;font-weight:600;color:#334155}.pkbi-leave-form label:nth-child(5){grid-column:1/-1}.pkbi-leave-form input,.pkbi-leave-form textarea{padding:10px;border:1px solid #cbd5e1;border-radius:10px;background:#fff}.pkbi-leave-form .pkbi-btn{width:max-content}.pkbi-leave-form p{grid-column:1/-1;margin:0;color:#64748b}.pkbi-table-wrap{overflow:auto}.pkbi-alert{padding:10px 12px;border-radius:10px}.pkbi-alert.success{background:#ecfdf5;color:#166534}.pkbi-alert.error{background:#fef2f2;color:#991b1b}@media(max-width:620px){.pkbi-leave-balance{grid-template-columns:1fr 1fr}.pkbi-leave-form{grid-template-columns:1fr}}

/* v1.7.0 — Anniversary-based Annual Leave Schedule */
.pkbi-leave-cycle{margin:14px 0 18px;padding:14px 16px;border:1px solid #cfe2f7;border-left:5px solid #0877d1;border-radius:12px;background:#f7fbff}.pkbi-leave-cycle p{margin:0 0 8px}.pkbi-leave-cycle ul{margin:6px 0 0 20px}.pkbi-leave-cycle li{margin:5px 0}.pkbi-leave-schedule .pkbi-leave-balance strong{font-size:15px;line-height:1.35}.pkbi-leave-schedule h4{margin-top:20px;color:#0f2e62}

/* v1.8.0 — Birthday Greeting on Employee Mobile Dashboard */
.pkbi-birthday-greeting{position:relative;overflow:hidden;text-align:center;border:1px solid #ffd7dd;border-top:4px solid #e31b23;border-bottom:4px solid #0877d1;background:linear-gradient(135deg,#fff7f8 0%,#ffffff 45%,#eef7ff 100%);padding:28px 24px}.pkbi-birthday-greeting:before,.pkbi-birthday-greeting:after{content:"";position:absolute;border-radius:50%;pointer-events:none}.pkbi-birthday-greeting:before{width:180px;height:180px;right:-80px;top:-80px;background:rgba(8,119,209,.07)}.pkbi-birthday-greeting:after{width:140px;height:140px;left:-70px;bottom:-75px;background:rgba(227,27,35,.06)}.pkbi-birthday-confetti{font-size:24px;letter-spacing:8px;margin-bottom:8px}.pkbi-birthday-badge{display:inline-block;padding:6px 12px;border-radius:999px;background:#0f2e62;color:#fff;font-size:11px;font-weight:800;letter-spacing:.8px}.pkbi-birthday-greeting h2{position:relative;margin:12px 0 8px;color:#093e86;font-size:28px;line-height:1.2}.pkbi-birthday-greeting p{position:relative;margin:0 auto;max-width:620px;color:#475569;font-size:16px;line-height:1.65}.pkbi-birthday-sign{position:relative;margin-top:16px;color:#b42318;font-size:12px;font-weight:700}.pkbi-birthday-greeting>*{z-index:1}@media(max-width:620px){.pkbi-birthday-greeting{margin:14px 10px;padding:24px 18px;border-radius:20px}.pkbi-birthday-confetti{font-size:20px;letter-spacing:4px}.pkbi-birthday-greeting h2{font-size:23px}.pkbi-birthday-greeting p{font-size:14px}.pkbi-birthday-sign{font-size:11px}}


/* v2.3.0 — Tiered birthday reminder on employee mobile dashboard */
.pkbi-birthday-reminder{display:flex;align-items:center;gap:16px;border:1px solid #d7e4f3;border-left:5px solid #0877d1;background:linear-gradient(120deg,#fff,#f5faff);padding:18px 20px}.pkbi-birthday-reminder-icon{display:flex;align-items:center;justify-content:center;width:58px;height:58px;flex:0 0 58px;border-radius:18px;background:#eef6ff;font-size:31px}.pkbi-birthday-reminder-copy{min-width:0}.pkbi-birthday-reminder .pkbi-birthday-badge{font-size:10px}.pkbi-birthday-reminder h3{margin:8px 0 5px;color:#0f2e62;font-size:19px;line-height:1.25}.pkbi-birthday-reminder p{margin:0;color:#52657b;font-size:13px;line-height:1.55}.pkbi-birthday-reminder.pkbi-birthday-tomorrow{border-left-color:#f59e0b;background:linear-gradient(120deg,#fffdf8,#fff7e7)}.pkbi-birthday-reminder.pkbi-birthday-tomorrow .pkbi-birthday-reminder-icon{background:#fff1d1}.pkbi-birthday-reminder.pkbi-birthday-week{border-left-color:#7c3aed;background:linear-gradient(120deg,#fff,#faf7ff)}.pkbi-birthday-reminder.pkbi-birthday-week .pkbi-birthday-reminder-icon{background:#eee6ff}.pkbi-birthday-reminder.pkbi-birthday-month{border-left-color:#0877d1}.pkbi-birthday-today{box-shadow:0 12px 35px rgba(227,27,35,.10),0 10px 28px rgba(8,119,209,.08)}
@media(max-width:620px){.pkbi-birthday-reminder{margin:12px 10px;padding:15px;gap:12px;border-radius:18px}.pkbi-birthday-reminder-icon{width:48px;height:48px;flex-basis:48px;border-radius:15px;font-size:26px}.pkbi-birthday-reminder h3{font-size:16px}.pkbi-birthday-reminder p{font-size:12px}}

/* v3.4.0 — Slip gaji bulanan, arsip, dan notifikasi HP karyawan */
.pkbi-payslip-notification{display:flex;gap:18px;align-items:flex-start;border:1px solid #b9d4ef;background:linear-gradient(135deg,#eef7ff,#fff7fa);box-shadow:0 10px 28px rgba(11,58,113,.08)}
.pkbi-payslip-notif-icon{width:58px;height:58px;border-radius:18px;background:#0a4a94;color:#fff;display:flex;align-items:center;justify-content:center;font-size:28px;flex:0 0 auto}
.pkbi-payslip-notif-copy h2{margin:0 0 10px;color:#0b376e;font-size:22px}.pkbi-payslip-notif-copy p{margin:7px 0;line-height:1.6}.pkbi-payslip-notif-actions{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 8px}
.pkbi-payslip-archived{position:relative}.pkbi-slip-stamp{display:inline-flex;padding:6px 10px;border-radius:999px;background:#e9f8ee;color:#236b3b;font-weight:700;font-size:12px;margin-bottom:10px}.pkbi-company-borne td{background:#f4efff}.pkbi-slip-company-cost{margin-top:12px;padding:12px 14px;border-radius:12px;background:#f6f2ff;border:1px solid #dfd3ff;color:#3d2d78}
.pkbi-payslip-archive h3{margin-top:0}.pkbi-slip-archive-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.pkbi-slip-archive-item{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid #d6e2ee;border-radius:12px;text-decoration:none;background:#fff;color:#183a65}.pkbi-slip-archive-item.active{border-color:#0a67c7;background:#eef7ff;box-shadow:0 0 0 2px rgba(10,103,199,.08)}.pkbi-slip-archive-item small{color:#6b7e95}
@media(max-width:680px){.pkbi-payslip-notification{display:block}.pkbi-payslip-notif-icon{margin-bottom:12px}.pkbi-payslip-notif-copy h2{font-size:19px}.pkbi-payslip-notif-actions .pkbi-btn{width:100%;text-align:center}}


/* v3.6.0 attendance production controls */
.pkbi-geo-clock-form{margin:14px 0}.pkbi-geo-clock-form .pkbi-geo-status{display:block;margin-top:7px;color:#58708f}.pkbi-attendance-window,.pkbi-attendance-incomplete,.pkbi-attendance-lock{padding:12px 14px;border-radius:12px;margin:12px 0;line-height:1.55}.pkbi-attendance-window{background:#fff8df;border:1px solid #efd987;color:#6e5612}.pkbi-attendance-incomplete{background:#fff1e8;border:1px solid #f0b68e;color:#8b3f12}.pkbi-attendance-lock{background:#fcebed;border:1px solid #efb9bf;color:#8a1f2a}.pkbi-geo-clock-form button[disabled]{opacity:.65;cursor:wait}

.pkbi-login-required{text-align:center;padding:28px 18px}.pkbi-login-required h3{margin:0 0 8px;color:#123b70}.pkbi-login-required p{margin:0 0 16px;color:#64748b}
