/* App-wide layout and dashboard styles extracted from dashboard.php */
/* Global box sizing to prevent overflow caused by padding */
*, *::before, *::after{ box-sizing:border-box }

body.app-web{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  background:#f3f5fc;
  color:#16204a;
}
.dashboard-app{min-height:100vh;display:flex;flex-direction:column}
.app-bar{display:flex;align-items:center;justify-content:space-between;gap:32px;padding:24px 40px;background:#fff;box-shadow:0 12px 32px rgba(22,46,109,0.08);position:sticky;top:0;z-index:10}
.brand{display:flex;align-items:center;gap:12px;font-weight:600;font-size:18px;color:#1a2762}
.brand .logo{width:36px;height:36px;border-radius:14px;background:linear-gradient(135deg,#1c59ff,#3e8bff);display:flex;align-items:center;justify-content:center;color:#fff;font-size:20px;box-shadow:0 12px 22px rgba(28,89,255,0.28)}
.app-nav{display:flex;gap:24px;flex:1;max-width:800px}
.app-nav a{text-decoration:none;color:#5c6693;font-weight:500;padding-bottom:6px;border-bottom:2px solid transparent;transition:color .2s ease,border-color .2s ease}
.app-nav a:hover{color:#2c3c7f}
.app-nav a.active{color:#1c59ff;border-bottom-color:#1c59ff}
.user-meta{display:flex;align-items:center;gap:16px}
.icon-button{width:40px;height:40px;border:none;border-radius:14px;background:#edf2ff;display:flex;align-items:center;justify-content:center;font-size:18px;color:#1c59ff;box-shadow:0 10px 24px rgba(28,89,255,0.18);cursor:pointer}
.icon-button:hover{background:#dce6ff}
.user-info{display:flex;align-items:center;gap:12px}
.user-info img{width:44px;height:44px;border-radius:50%;object-fit:cover}
.user-info div{display:flex;flex-direction:column;gap:2px}
.user-info strong{font-size:15px;color:#1b2557}
.user-info span{font-size:12px;color:#6a729c}
.logout-link{text-decoration:none;font-size:13px;color:#6a729c;padding:8px 14px;border-radius:10px;border:1px solid rgba(106,114,156,0.3);transition:background .2s ease,color .2s ease}
.logout-link:hover{background:#1c59ff;color:#fff}
.dashboard-main{flex:1;display:flex;justify-content:center;padding:32px 24px 64px}
.dashboard-container{width:100%;max-width:1200px;display:flex;flex-direction:column;gap:32px}
.hero-banner{background:linear-gradient(135deg,#f6f8ff 0%,#ffffff 100%);border-radius:26px;padding:32px 36px;display:flex;justify-content:space-between;gap:32px;box-shadow:0 18px 48px rgba(22,46,109,0.12);align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:12px;max-width:520px}
.hero-copy .heading-eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;color:#8090d0;margin:0}
.hero-copy h1{margin:0;font-size:28px;color:#1b2557}
.hero-copy p{margin:0;font-size:15px;color:#5a6391}
.hero-actions{display:flex;gap:14px;align-items:center}
.date-range-btn,.primary-btn{border:none;border-radius:14px;padding:14px 22px;font-weight:600;cursor:pointer;font-size:14px;transition:transform .2s ease,box-shadow .2s ease}
.date-range-btn{background:#edf2ff;color:#1c59ff;box-shadow:0 12px 26px rgba(28,89,255,0.16)}
.date-range-btn:hover{transform:translateY(-2px)}
.date-range-btn.is-active{background:#1c59ff;color:#fff}
.primary-btn{background:linear-gradient(135deg,#1c59ff,#3e8bff);color:#fff;box-shadow:0 16px 36px rgba(28,89,255,0.26)}
.primary-btn:hover{transform:translateY(-2px)}
.summary-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.summary-card{background:#fff;border-radius:24px;padding:22px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 18px 44px rgba(22,46,109,0.12)}
.summary-header{display:flex;align-items:center;gap:14px}
.summary-icon{width:46px;height:46px;border-radius:16px;background:#edf2ff;display:flex;align-items:center;justify-content:center;font-size:20px;color:#1c59ff}
.summary-meta h3{margin:0;font-size:14px;color:#616aa0;font-weight:500}
.summary-value{font-size:26px;font-weight:600;color:#1b2557}
.summary-note{font-size:12px;color:#6f7ab0}
.content-layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(320px,1fr);gap:24px}
/* .content-layout.equal{grid-template-columns:1fr 1fr} */
.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.control{padding:12px 14px;border-radius:12px;border:1px solid #e1e6ff;background:#fff;color:#1b2557}
.control:focus{outline:none;border-color:#b8c6ff;box-shadow:0 0 0 3px rgba(28,89,255,0.12)}
.check{display:flex;align-items:center;gap:12px}

.panel{background:#fff;border-radius:26px;padding:26px 28px;box-shadow:0 18px 44px rgba(22,46,109,0.12);display:flex;flex-direction:column;gap:24px;width:100%;max-width:100%}
.panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.panel-header h2{margin:0;font-size:20px;color:#1b2557}
.panel-subtitle{margin:6px 0 0;font-size:13px;color:#6f7ab0}
.secondary-link{border:none;background:transparent;color:#1c59ff;font-weight:600;font-size:13px;cursor:pointer;padding:6px 0}
.calendar-row{display:flex;gap:12px;flex-wrap:wrap}
.calendar-pill{min-width:88px;padding:12px 14px;border-radius:16px;background:#f2f4ff;border:none;color:#59639a;font-size:13px;cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.calendar-pill:hover{transform:translateY(-2px)}
.calendar-pill.active{background:#1c59ff;color:#fff}
.timeline{position:relative;padding-left:24px;display:flex;flex-direction:column;gap:24px}
.timeline::before{content:'';position:absolute;top:4px;bottom:4px;left:8px;width:2px;background:linear-gradient(180deg,#dce3ff,#f5f7ff)}
.timeline-item{display:flex;gap:18px;align-items:center}
.timeline-icon{width:36px;height:36px;border-radius:12px;background:#edf2ff;color:#1c59ff;display:flex;align-items:center;justify-content:center;font-size:18px;box-shadow:0 8px 18px rgba(28,89,255,0.18)}
.timeline-content{display:flex;justify-content:space-between;align-items:center;flex:1;gap:16px}
.timeline-content .info{display:flex;flex-direction:column;gap:6px}
.timeline-content .info strong{font-size:15px;color:#1b2557}
.timeline-content .info span{font-size:12px;color:#7983b4}
.timeline-content .time{text-align:right}
.timeline-content .time strong{display:block;font-size:18px;color:#1b2557}
.timeline-content .time span{font-size:12px;color:#54b37b}
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px}
.stat-card{background:#f7f8ff;border-radius:18px;padding:18px 20px;display:flex;flex-direction:column;gap:6px;color:#4d5788}
.stat-card strong{font-size:20px;color:#1b2557}
.activity-log{display:flex;flex-direction:column;gap:16px}
.activity-item{border-radius:20px;padding:18px 20px;background:#f7f8ff;display:flex;justify-content:space-between;align-items:center;gap:16px}
.activity-item .details{display:flex;align-items:center;gap:14px}
.activity-item .symbol{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:18px;color:#1c59ff;background:#fff;box-shadow:0 12px 26px rgba(28,89,255,0.16)}
.activity-item .details div{display:flex;flex-direction:column;gap:4px}
.activity-item .details strong{font-size:14px;color:#1b2557}
.activity-item .details span{font-size:12px;color:#7882b4}
.activity-item .status{text-align:right;display: flex;flex-direction: column;}
.activity-item .status strong{font-size:15px;color:#1b2557}
.activity-item .status span{font-size:12px;color:#59b483}
/* Approvals page layout */
.approvals-controls{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end}
.approvals-controls .field{display:flex;flex-direction:column;gap:6px;min-width:160px}
@media (max-width:900px){ .approvals-controls{grid-template-columns:1fr; } .approvals-controls .field{min-width:0} }
/* Expandable member details */
.member-extra{display:none;margin-top:8px;color:#6a729c}
.activity-item.open{flex-direction:column;align-items:stretch}
.activity-item.open .member-extra{display:block}
.team-card{border-radius:20px;background:linear-gradient(135deg,#1c59ff,#3e8bff);color:#fff;padding:22px 24px;display:flex;flex-direction:column;gap:16px;box-shadow:0 18px 44px rgba(28,89,255,0.3)}
.team-card h3{margin:0;font-size:18px}
.team-progress{display:flex;align-items:center;gap:16px}
.team-progress meter{flex:1;height:12px;border-radius:8px;overflow:hidden;background:#1748d6}
meter::-webkit-meter-bar{background:#1748d6;border:none}
meter::-webkit-meter-optimum-value{background:#8bd4ff}
.team-card footer{font-size:13px;color:rgba(255,255,255,0.86)}
.cta-bar{margin-top:8px;border-radius:22px;background:#fff;padding:20px 24px;display:flex;justify-content:space-between;align-items:center;box-shadow:0 18px 44px rgba(22,46,109,0.12)}
.cta-bar p{margin:0;font-size:15px;color:#303968}
.cta-bar button{border:none;background:linear-gradient(135deg,#1c59ff,#3e8bff);color:#fff;border-radius:14px;padding:12px 20px;font-weight:600;cursor:pointer;box-shadow:0 16px 36px rgba(28,89,255,0.24)}
footer.app-footer{padding:24px 0 40px;text-align:center;font-size:12px;color:#7c86b8}
@media (max-width:1140px){.summary-row{grid-template-columns:repeat(2,minmax(0,1fr))}.content-layout{grid-template-columns:1fr}}
@media (max-width:860px){.app-bar{flex-wrap:wrap;padding:18px 24px;gap:18px}.app-nav{order:3;width:100%;justify-content:space-between;flex-wrap:wrap}.dashboard-main{padding:24px 16px 40px}.hero-banner{flex-direction:column;align-items:flex-start}}
@media (max-width:640px){.summary-row{grid-template-columns:1fr}.hero-actions{flex-direction:column;width:100%}.hero-actions button{width:100%}}

/* Responsive polish */
@media (max-width:1024px){
  .hero-banner{padding:24px 24px}
  .panel{padding:20px 20px}
}
@media (max-width:768px){
  .hero-copy h1{font-size:clamp(20px,5vw,26px)}
  .summary-value{font-size:clamp(18px,4.5vw,24px)}
  .timeline-content{flex-direction:column;align-items:flex-start;gap:8px}
  .activity-item{flex-direction:column;align-items:flex-start}
  .cta-bar{flex-direction:column;gap:12px;align-items:flex-start}
  .panel{overflow-x:auto;-webkit-overflow-scrolling:touch}
}
@media (max-width:560px){
  .calendar-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch}
  .calendar-row::-webkit-scrollbar{display:none}
  .calendar-pill{flex:0 0 auto}
  .user-meta{gap:10px}
  .user-info span{display:none}
  .dashboard-main{padding:16px 10px 28px}
  .panel{border-radius:18px;padding:18px}
}

/* Lightweight modal for filters */
.wp-modal{position:fixed;inset:0;background:rgba(12,18,44,.28);display:none;justify-content:center;z-index:2000;padding:24px}
.wp-modal.show{display:flex}
.wp-modal-card{overflow: scroll; background:#fff;border-radius:20px;box-shadow:0 30px 60px rgba(22,46,109,.25);width:min(92vw,640px);padding:22px 24px;display:flex;flex-direction:column;gap:16px;max-width:1100px}
.wp-modal-card h3{margin:0 0 8px 0;color:#1b2557}
.wp-modal-actions{display:flex;gap:10px;justify-content:flex-end}
.btn-light{border:1px solid #e1e6ff;background:#fff;color:#1b2557;border-radius:12px;padding:10px 16px;cursor:pointer}
.wp-modal-card::-webkit-scrollbar {
  display: none;
}
/* Modal form look & feel */
.wp-modal-card .form-grid.two{gap:16px}
.wp-modal-card label{font-size:13px;color:#44518a;margin-bottom:6px;display:block}
.wp-modal-card .control{background:#f6f8ff;border:1px solid #dde6ff;border-radius:14px;padding:12px 14px;width: 100%;}
.wp-modal-card .control:focus{outline:none;border-color:#b8c6ff;box-shadow:0 0 0 3px rgba(28,89,255,0.12)}

/* Sidebar navigation */
:root{ --sidebar-w: 240px; }
.side-nav{overflow: scroll;position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-w);background:#fff;box-shadow:0 8px 30px rgba(22,46,109,0.12);padding:calc(18px + env(safe-area-inset-top)) 12px 18px;display:flex;flex-direction:column;gap:8px;z-index:1000}
.side-brand{display:flex;align-items:center;gap:10px;padding:6px 8px 14px 8px;color:#1a2762;font-weight:600;font-size:16px}
.side-brand .logo{width:32px;height:32px;border-radius:12px;background:linear-gradient(135deg,#1c59ff,#3e8bff);display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px}
.side-menu{display:flex;flex-direction:column;gap:6px;}
.side-link{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:12px;color:#5c6693;text-decoration:none;font-weight:600}
.side-link:hover{background:#f1f3ff;color:#2c3c7f}
.side-link.active{background:#1c59ff;color:#fff}
.side-section{margin:10px 8px 4px;color:#66709e;font-size:12px;text-transform:uppercase;letter-spacing:.08em}
.side-nav::-webkit-scrollbar {
  display: none;
}

/* Shift app content to accommodate sidebar on desktop */
.app-nav{display:none}
.app-bar{margin-left:var(--sidebar-w)}
.dashboard-main{margin-left:var(--sidebar-w)}
.app-footer{margin-left:var(--sidebar-w)}

/* Mobile nav toggle */
.menu-toggle{display:none}
@media (max-width:860px){
  .menu-toggle{display:inline-flex}
  .app-nav{display:none !important}
  /* Sidebar becomes overlay */
  .side-nav{transform:translateX(-100%);transition:transform .2s ease;box-shadow:0 12px 40px rgba(22,46,109,0.2)}
  body.nav-open .side-nav{transform:translateX(0)}
  /* Content not shifted on mobile */
  .app-bar{margin-left:0; padding:24px 20px; padding-top:calc(24px + env(safe-area-inset-top))}
  .dashboard-main{margin-left:0}
  .app-footer{margin-left:0}
}

/* Backdrop for mobile sidebar */
.nav-backdrop{position:fixed;inset:0;background:rgba(12,18,44,.28);opacity:0;pointer-events:none;z-index:90;transition:opacity .2s ease}
body.nav-open .nav-backdrop{opacity:1;pointer-events:auto}

/* Responsive grids and panels */
@media (max-width: 980px){
  .summary-row{grid-template-columns:repeat(2,minmax(0,1fr))}
  .content-layout{grid-template-columns:1fr}
  .hero-banner{flex-direction:column;align-items:stretch;gap:16px}
  .panel-header{flex-direction:column;align-items:flex-start;gap:10px}
}
@media (max-width: 640px){
  .summary-row{grid-template-columns:1fr}
  .form-grid.two{grid-template-columns:1fr}
  .panel{padding:20px;border-radius:20px}
  .user-info img{width:36px;height:36px}
  .activity-log .activity-item{flex-direction:column;align-items:stretch;gap:8px}
  .activity-log .activity-item .status{align-self:flex-end}
}

/* Leave allocation grid (admin): responsive columns */
.alloc-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:end}
@media (max-width:560px){ .alloc-grid{grid-template-columns:1fr} }

/* Kanban board */
.kanban{display:grid;grid-template-columns:repeat(4, minmax(0,1fr));gap:14px}
.column{background:#f7f8ff;border:1px solid #e9eef6;border-radius:16px;padding:12px;display:flex;flex-direction:column;min-height:340px}
.kanban-header{font-weight:700;margin:2px 0 8px;border-radius:12px;padding:8px 10px;color:#fff;display:inline-block}
.kanban-header.todo{background:#7C3AED}
.kanban-header.progress{background:#F59E0B}
.kanban-header.review{background:#EC4899}
.kanban-header.done{background:#10B981}
.column-list{display:flex;flex-direction:column;gap:10px;min-height:280px;height: 100%;}
.task-card{background:#fff;border:1px solid #e1e6ff;border-radius:12px;padding:10px 12px;box-shadow:0 8px 20px rgba(22,46,109,.08);cursor:grab}
.task-card:active{cursor:grabbing}
.task-title{font-weight:600;color:#1b2557;margin:0 0 6px}
.task-meta{display:flex;gap:8px;align-items:center;color:#6a729c;font-size:12px}
.pill{display:inline-block;border-radius:10px;padding:3px 8px;font-size:11px;font-weight:700}
.pill.high{background:#fee2e2;color:#b91c1c}
.pill.medium{background:#e0e7ff;color:#3730a3}
.pill.low{background:#dcfce7;color:#065f46}
.pill.pending{background:#fff7ed;color:#c2410c}
.pill.approved{background:#ecfeff;color:#155e75}
.pill.declined{background:#fee2e2;color:#b91c1c}
.pill.cancelled{background:#e5e7eb;color:#374151}
@media (max-width:1100px){ .kanban{grid-template-columns:repeat(2, minmax(0,1fr));} }
@media (max-width:720px){ .kanban{grid-template-columns:1fr;} }

/* Resume editor helpers */
.list-plain{display:flex;gap:8px;flex-wrap:wrap}
.chip{display:inline-flex;align-items:center;gap:8px;background:#f6f8ff;border:1px solid #dde6ff;border-radius:999px;padding:6px 10px}
.chip button{border:none;background:transparent;color:#6a729c;cursor:pointer}
.list-cards{display:grid;grid-template-columns:1fr;gap:12px}
