/* =========================================================
   Portal Kakitangan V2 — Extended Styles
   (supplements portal.css from V1)
   ========================================================= */

/* ─── SSO Button ─────────────────────────────────────────── */
.pkg-sso-btn {
  width: 100%;
  padding: 11px 16px;
  background: #fff;
  border: 1.5px solid #d0d5dd;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 500;
  color: #344054;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  transition: background 0.15s, box-shadow 0.15s;
  margin-bottom: 16px;
}
.pkg-sso-btn:hover {
  background: #f9fafb;
  box-shadow: 0 1px 4px rgba(0,0,0,0.1);
}
.pkg-sso-divider {
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 16px 0;
  color: #aaa;
  font-size: 12px;
}
.pkg-sso-divider::before,
.pkg-sso-divider::after {
  content: '';
  flex: 1;
  height: 1px;
  background: #e4e7eb;
}

/* ─── Elementor Widget Base ───────────────────────────────── */
.pkg-widget-empty {
  text-align: center;
  padding: 24px;
  color: #bbb;
  font-size: 13px;
}
.pkg-widget-empty i { font-size: 24px; display: block; margin-bottom: 8px; }

/* ─── Announcements Widget ────────────────────────────────── */
.pkg-ann-widget-filters {
  display: flex;
  gap: 6px;
  flex-wrap: wrap;
  margin-bottom: 14px;
}
.pkg-ann-widget-filters .pkg-filter-btn {
  padding: 5px 12px;
  font-size: 12px;
}
.pkg-fc {
  display: inline-block;
  background: rgba(0,0,0,0.08);
  border-radius: 10px;
  padding: 0 6px;
  font-size: 10px;
  margin-left: 3px;
  font-weight: 600;
}

/* List style */
.pkg-ann-widget-list { display: flex; flex-direction: column; gap: 8px; }
.pkg-ann-list-item {
  display: flex;
  background: #fff;
  border-radius: 8px;
  border: 1px solid #e8ebef;
  overflow: hidden;
  transition: box-shadow 0.15s;
}
.pkg-ann-list-item:hover { box-shadow: 0 2px 10px rgba(0,0,0,.06); }
.pkg-ann-list-stripe {
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 1px;
  padding: 12px 7px;
  min-width: 26px;
  text-align: center;
}
.pkg-ann-list-body { padding: 12px 14px; flex: 1; }
.pkg-ann-item-title { font-size: 13.5px; font-weight: 600; color: #1a1a2e; margin-bottom: 4px; }
.pkg-ann-item-excerpt { font-size: 12px; color: #666; line-height: 1.5; margin-bottom: 6px; }
.pkg-ann-item-date { font-size: 11px; color: #bbb; display: flex; align-items: center; gap: 4px; }

/* Cards style */
.pkg-ann-widget-cards {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
  gap: 12px;
}
.pkg-ann-card {
  background: #fff;
  border-radius: 10px;
  border: 1px solid #e8ebef;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: transform 0.15s, box-shadow 0.15s;
}
.pkg-ann-card:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.07); }
.pkg-ann-card-top { padding: 16px; flex: 1; }
.pkg-ann-badge {
  display: inline-block;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .5px;
  text-transform: uppercase;
  padding: 3px 10px;
  border-radius: 20px;
  margin-bottom: 10px;
}
.pkg-ann-card .pkg-ann-item-date { padding: 10px 16px; border-top: 1px solid #f0f2f5; }

/* Compact style */
.pkg-ann-widget-compact { display: flex; flex-direction: column; gap: 0; }
.pkg-ann-compact-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 9px 0;
  border-bottom: 0.5px solid #f0f2f5;
}
.pkg-ann-compact-item:last-child { border-bottom: none; }
.pkg-ann-compact-dot {
  width: 8px; height: 8px;
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 5px;
}
.pkg-ann-compact-item .pkg-ann-item-title { font-size: 12.5px; margin-bottom: 2px; }
.pkg-ann-compact-item .pkg-ann-item-date  { font-size: 11px; color: #bbb; }

/* Ticker style */
.pkg-ticker-wrap {
  display: flex;
  align-items: center;
  overflow: hidden;
  background: #0d2e4a;
  border-radius: 8px;
  height: 42px;
}
.pkg-ticker-label {
  flex-shrink: 0;
  background: #f5a623;
  color: #0d2e4a;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .5px;
  padding: 0 14px;
  height: 100%;
  display: flex;
  align-items: center;
  gap: 6px;
}
.pkg-ticker-track {
  flex: 1;
  display: flex;
  overflow: hidden;
}
@keyframes pkg-ticker-scroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
.pkg-ticker-track { animation: pkg-ticker-scroll linear infinite; }
.pkg-ticker-inner {
  white-space: nowrap;
  padding: 0 16px;
  display: inline-flex;
  align-items: center;
  gap: 0;
}
.pkg-ticker-item { display: inline-flex; align-items: center; gap: 6px; margin-right: 32px; }
.pkg-ticker-badge {
  display: inline-block;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  text-transform: uppercase;
  padding: 2px 7px;
  border-radius: 10px;
}
.pkg-ticker-text { color: rgba(255,255,255,.85); font-size: 13px; }

/* ─── Org Chart ───────────────────────────────────────────── */
.pkg-org-wrap { width: 100%; }
.pkg-org-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 10px 16px;
  background: #fff;
  border: 1px solid #e8ebef;
  border-radius: 10px 10px 0 0;
}
.pkg-org-controls { display: flex; gap: 6px; }
.pkg-org-btn {
  width: 32px; height: 32px;
  background: #f7f8fa;
  border: 1px solid #e4e7eb;
  border-radius: 7px;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer;
  font-size: 16px;
  color: #555;
  transition: background 0.15s;
}
.pkg-org-btn:hover { background: #eff0f2; }
.pkg-org-edit-hint { font-size: 12px; color: #aaa; display: flex; align-items: center; gap: 5px; }
.pkg-org-container {
  border: 1px solid #e8ebef;
  border-top: none;
  border-radius: 0 0 10px 10px;
  background: #f7f8fa;
  overflow: auto;
  min-height: 400px;
  position: relative;
}
.pkg-org-loading {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  color: #aaa; font-size: 14px;
  display: flex; align-items: center; gap: 8px;
}

/* OrgChart.js custom node styles */
#pkg-org-chart .node rect  { rx: 8; ry: 8; }
#pkg-org-chart .node .title { font-weight: 600; font-size: 13px; }
#pkg-org-chart .node .name  { font-size: 11px; fill: #888; }

/* ─── Import Staff ────────────────────────────────────────── */
.pkg-import-dropzone {
  border: 2px dashed #c5cad4;
  border-radius: 10px;
  padding: 32px;
  text-align: center;
  cursor: pointer;
  transition: border-color 0.15s, background 0.15s;
  background: #fafbfc;
}
.pkg-import-dropzone:hover,
.pkg-import-dropzone.pkg-drag-over {
  border-color: #0d2e4a;
  background: #f0f4f8;
}
.pkg-import-dropzone i { font-size: 36px; color: #c5cad4; display: block; margin-bottom: 10px; }
.pkg-import-dropzone p  { color: #888; font-size: 14px; margin: 0 0 8px; }
.pkg-import-dropzone small { color: #bbb; font-size: 12px; }

.pkg-import-preview {
  margin-top: 16px;
  background: #fff;
  border: 1px solid #e8ebef;
  border-radius: 8px;
  overflow: hidden;
}
.pkg-import-preview-header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px;
  background: #f7f8fa;
  border-bottom: 1px solid #e8ebef;
  font-size: 13px;
  font-weight: 500;
  color: #333;
}
.pkg-import-preview table { width: 100%; font-size: 12px; }
.pkg-import-preview th { padding: 7px 10px; background: #f0f2f5; color: #555; text-align: left; }
.pkg-import-preview td { padding: 6px 10px; border-bottom: 0.5px solid #f5f5f5; }

.pkg-import-options {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  flex-wrap: wrap;
}
.pkg-import-options label { font-size: 13px; color: #444; display: flex; align-items: center; gap: 6px; cursor: pointer; }

.pkg-import-result {
  margin-top: 14px;
  padding: 14px 16px;
  border-radius: 8px;
  font-size: 13px;
  line-height: 1.7;
}
.pkg-import-result.success { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.pkg-import-result.error   { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }

/* ─── Email Notification Panel ────────────────────────────── */
.pkg-email-config { display: flex; flex-direction: column; gap: 14px; }
.pkg-email-test-row { display: flex; gap: 8px; align-items: flex-end; }
.pkg-email-test-row input { flex: 1; }

/* ─── SSO Config Panel ────────────────────────────────────── */
.pkg-sso-config-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.pkg-sso-status {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 10px 14px;
  border-radius: 7px;
  font-size: 13px;
  margin-bottom: 14px;
}
.pkg-sso-status.connected    { background: #d4edda; color: #155724; }
.pkg-sso-status.disconnected { background: #fff3cd; color: #664d03; }

/* ─── Layout variants for login widget ───────────────────── */
.pkg-layout-card .pkg-login-right {
  background: transparent;
  padding: 0;
}
.pkg-layout-card .pkg-login-card {
  max-width: 100%;
  box-shadow: 0 2px 20px rgba(0,0,0,0.1);
}
.pkg-layout-minimal .pkg-login-card {
  box-shadow: none;
  border: 1px solid #e4e7eb;
  max-width: 400px;
  margin: 0 auto;
}
.pkg-layout-minimal .pkg-login-right { background: transparent; padding: 0; }

/* ─── Spin animation ─────────────────────────────────────── */
@keyframes pkg-spin { to { transform: rotate(360deg); } }
.pkg-spin { animation: pkg-spin 1s linear infinite; }

/* ─── Admin V2 Extensions ────────────────────────────────── */
.pkg-import-page { max-width: 800px; }
.pkg-sso-page    { max-width: 900px; }

/* ─── Dir widget ─────────────────────────────────────────── */
.pkg-dir-widget .pkg-staff-grid { margin-top: 14px; }

/* ─── Org Chart Frontend ─────────────────────────────────── */
.pkg-org-tree { display: flex; flex-direction: column; align-items: center; padding: 20px; }
.pkg-org-node { display: flex; flex-direction: column; align-items: center; padding: 0 8px; }
.pkg-org-node-box { background: #fff; border: 1.5px solid #e4e7eb; border-radius: 10px; padding: 12px 14px; text-align: center; min-width: 130px; max-width: 170px; cursor: grab; transition: box-shadow 0.15s, border-color 0.15s; }
.pkg-org-node-box:hover { box-shadow: 0 2px 10px rgba(0,0,0,.08); border-color: #0d2e4a; }
.pkg-org-root > .pkg-org-node-box { background: #0d2e4a; border-color: #0d2e4a; }
.pkg-org-root > .pkg-org-node-box .pkg-org-node-name { color: #f5a623; }
.pkg-org-root > .pkg-org-node-box .pkg-org-node-title { color: rgba(255,255,255,.7); }
.pkg-org-node-av { width: 38px; height: 38px; border-radius: 50%; background: #E6F1FB; color: #185FA5; font-size: 13px; font-weight: 700; display: flex; align-items: center; justify-content: center; margin: 0 auto 7px; }
.pkg-org-root > .pkg-org-node-box .pkg-org-node-av { background: rgba(245,166,35,.2); color: #f5a623; }
.pkg-org-node-photo { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; margin: 0 auto 7px; display: block; }
.pkg-org-node-name  { font-size: 11.5px; font-weight: 600; color: #1a1a2e; }
.pkg-org-node-title { font-size: 10.5px; color: #888; margin-top: 2px; }
.pkg-org-node-dept  { font-size: 10px; color: #bbb; margin-top: 1px; }
.pkg-org-children { display: flex; position: relative; padding-top: 18px; }
.pkg-org-children::before { content:''; position:absolute; top:0; left:50%; width:1px; height:18px; background:#ddd; }
.pkg-org-node::before { content:''; display:block; height:18px; width:1px; background:#ddd; }
.pkg-org-root::before { display:none; }
.pkg-org-children .pkg-org-node { position:relative; }
.pkg-org-children .pkg-org-node::after { content:''; position:absolute; top:0; left:0; right:0; height:1px; background:#ddd; }
.pkg-org-drop-target > .pkg-org-node-box { border-color:#f5a623!important; box-shadow:0 0 0 2px rgba(245,166,35,.3)!important; }


/* Gilawebsite.com premium polish v2.1 */
.pkg-login-wrap,.pkg-dashboard,.pkg-portal-shell{font-family:var(--e-global-typography-text-font-family,Inter,Arial,sans-serif)}
.pkg-login-wrap{background:linear-gradient(135deg,var(--pkg-bg,#f5f7fb),#ffffff);border-radius:var(--pkg-radius,18px);overflow:hidden;box-shadow:0 24px 80px rgba(13,46,74,.12)}
.pkg-login-left{background:radial-gradient(circle at top left,rgba(245,166,35,.22),transparent 35%),linear-gradient(145deg,var(--pkg-navy,#0d2e4a),#071b2c)!important}
.pkg-login-card,.pkg-card,.pkg-stat-card,.pkg-panel,.pkg-section-card{border-radius:var(--pkg-radius,18px)!important;box-shadow:0 16px 45px rgba(16,24,40,.08);border:1px solid rgba(13,46,74,.08)}
.pkg-btn-primary,.pkg-filter-btn.active{background:linear-gradient(135deg,var(--pkg-navy,#0d2e4a),#185fa5)!important;color:#fff!important;border:0!important;box-shadow:0 12px 24px rgba(13,46,74,.18)}
.pkg-brand-badge,.pkg-ticker-label{background:var(--pkg-gold,#f5a623)!important;color:var(--pkg-navy,#0d2e4a)!important}
.pkg-sidebar,.pkg-dash-sidebar{background:linear-gradient(180deg,var(--pkg-navy,#0d2e4a),#071b2c)!important}
.pkg-dashboard,.pkg-page-wrap{background:var(--pkg-bg,#f5f7fb)}
.pkg-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px}.pkg-pro-card{background:#fff;border:1px solid rgba(13,46,74,.08);border-radius:var(--pkg-radius,18px);padding:18px;box-shadow:0 14px 35px rgba(16,24,40,.06)}
.pkg-pro-title{margin:0 0 8px;font-weight:700;color:#101828}.pkg-pro-meta{font-size:13px;color:#667085}.pkg-pro-badge{display:inline-flex;padding:4px 10px;border-radius:999px;background:rgba(13,46,74,.08);color:var(--pkg-navy,#0d2e4a);font-size:12px;font-weight:700;margin-bottom:10px}
.pkg-searchbar{width:100%;padding:13px 16px;border:1px solid #d0d5dd;border-radius:14px;margin-bottom:18px;background:#fff}.pkg-page-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.pkg-page-head h2{margin:0;color:#101828}.pkg-page-head p{margin:4px 0 0;color:#667085}

/* v3.0.3 - Kadence Header Login Button */
.pkg-header-login-wrap{display:inline-flex;align-items:center;gap:10px;line-height:1;}
.pkg-header-login-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:11px 18px;border-radius:999px;background:linear-gradient(135deg,var(--pkg-navy,#0d2e4a),#174866);color:#fff!important;text-decoration:none!important;font-weight:700;font-size:14px;box-shadow:0 10px 24px rgba(13,46,74,.18);border:1px solid rgba(255,255,255,.14);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease;white-space:nowrap;}
.pkg-header-login-btn:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(13,46,74,.24);filter:brightness(1.03);color:#fff!important;}
.pkg-header-login-btn .ti{font-size:17px;line-height:1;}
.pkg-header-login-btn.is-logout{background:#ffffff;color:var(--pkg-navy,#0d2e4a)!important;border:1px solid rgba(13,46,74,.18);box-shadow:0 8px 20px rgba(13,46,74,.08);}
.pkg-header-login-btn.is-logout:hover{color:var(--pkg-navy,#0d2e4a)!important;}
.pkg-header-login-btn.is-dashboard{background:linear-gradient(135deg,var(--pkg-gold,#f5a623),#ffd166);color:#1d2939!important;}
@media(max-width:767px){.pkg-header-login-btn{padding:10px 14px;font-size:13px}.pkg-header-login-btn .pkg-btn-text{display:inline}}


/* v3.0.4 - Mobile dashboard header fix
   Prevent date/title from becoming vertical on small screens. */
.pkg-topbar-title{min-width:0;}
.pkg-topbar-title h1,
.pkg-topbar-title p{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.pkg-topbar-actions{min-width:0;}
.pkg-search-wrap{min-width:0;}

@media(max-width:767px){
  .pkg-portal{width:100%;overflow-x:hidden;}
  .pkg-main{width:100%;min-width:0;}
  .pkg-topbar{height:auto;min-height:64px;padding:10px 14px;gap:10px;flex-wrap:wrap;align-items:center;}
  .pkg-topbar-title{flex:1 1 150px;min-width:150px;max-width:calc(100% - 54px);}
  .pkg-topbar-title h1{font-size:15px;line-height:1.25;}
  .pkg-topbar-title p{font-size:11px;line-height:1.35;max-width:100%;}
  .pkg-topbar-actions{flex:1 1 100%;width:100%;display:grid;grid-template-columns:1fr 44px 40px;gap:8px;}
  .pkg-search-wrap{width:100%;box-sizing:border-box;}
  .pkg-search-wrap input{width:100%;min-width:0;}
  .pkg-icon-btn{width:44px;height:44px;justify-self:end;}
  .pkg-topbar-avatar{width:40px;height:40px;justify-self:end;}
}

@media(max-width:380px){
  .pkg-topbar-title{min-width:120px;}
  .pkg-topbar-title p{display:none;}
  .pkg-topbar-actions{grid-template-columns:1fr 42px;}
  .pkg-topbar-avatar{display:none;}
}
