/* ============ Page-specific ============ */
.ap-card{background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:var(--ap-radius); box-shadow:var(--ap-shadow);}
.ap-card-head{padding:1.1rem 1.25rem; border-bottom:1px solid var(--ap-border);}
.ap-card-body{padding:1.25rem;}
.btn-ap-primary{background:var(--ap-primary); border-color:var(--ap-primary); color:#fff; font-weight:600; font-size:.85rem;}
.btn-ap-primary:hover{background:var(--ap-primary-600); border-color:var(--ap-primary-600); color:#fff;}
.btn-ap-light{background:var(--ap-bg); border-color:var(--ap-border); color:var(--ap-text-strong); font-weight:600; font-size:.85rem;}
.btn-ap-light:hover{background:var(--ap-border);}

/* Stat cards */
.ap-stat{padding:1.2rem 1.35rem; display:flex; align-items:center; gap:1rem;}
.ap-stat-icon{width:44px; height:44px; border-radius:var(--ap-radius-sm); display:flex; align-items:center; justify-content:center; font-size:1.2rem; flex-shrink:0;}
.ap-stat-label{font-size:.78rem; color:var(--ap-secondary); font-weight:600;}
.ap-stat-value{font-size:1.35rem; font-weight:800; color:var(--ap-text-strong); letter-spacing:-.02em;}

/* Top tabs */
.ap-tabs-nav{display:flex; gap:.25rem; border-bottom:1px solid var(--ap-border); margin-bottom:1.25rem;}
.ap-tab-item{padding:.7rem .9rem; font-size:.87rem; font-weight:600; color:var(--ap-secondary); border-bottom:2px solid transparent; cursor:pointer;}
.ap-tab-item:hover{color:var(--ap-text-strong);}
.ap-tab-item.active{color:var(--ap-primary); border-bottom-color:var(--ap-primary);}
.ap-tab-panel{display:none;}
.ap-tab-panel.active{display:block; animation:apFade .2s ease;}
@keyframes apFade{from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:translateY(0);}}

/* Project cards */
.ap-project-card{background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:var(--ap-radius); padding:1.2rem; height:100%; display:flex; flex-direction:column;}
.ap-project-top{display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:.7rem;}
.ap-project-icon{width:42px; height:42px; border-radius:var(--ap-radius-sm); display:flex; align-items:center; justify-content:center; font-size:1.2rem; color:#fff; flex-shrink:0;}
.ap-priority-tag{font-size:.68rem; font-weight:700; padding:.2rem .55rem; border-radius:6px;}
.ap-priority-tag.high{background:var(--ap-danger-100); color:var(--ap-danger);}
.ap-priority-tag.medium{background:var(--ap-warning-100); color:var(--ap-warning);}
.ap-priority-tag.low{background:var(--ap-info-100); color:var(--ap-info);}
.ap-project-name{font-size:1rem; font-weight:700; color:var(--ap-text-strong); margin-bottom:.2rem;}
.ap-project-desc{font-size:.8rem; color:var(--ap-secondary); margin-bottom:1rem; flex:1;}
.ap-project-progress-label{display:flex; justify-content:space-between; font-size:.76rem; color:var(--ap-secondary); margin-bottom:.35rem;}
.ap-project-progress-bg{height:6px; background:var(--ap-bg); border-radius:10px; margin-bottom:1rem;}
.ap-project-progress-bar{height:100%; border-radius:10px;}
.ap-project-foot{display:flex; justify-content:space-between; align-items:center; padding-top:.8rem; border-top:1px solid var(--ap-border);}
.ap-avatar-stack{display:flex;}
.ap-avatar-stack img{width:28px; height:28px; border-radius:50%; object-fit:cover; border:2px solid var(--ap-surface); margin-left:-8px;}
.ap-avatar-stack img:first-child{margin-left:0;}
.ap-avatar-more{width:28px; height:28px; border-radius:50%; background:var(--ap-bg); color:var(--ap-secondary); font-size:.65rem; font-weight:700; display:flex; align-items:center; justify-content:center; margin-left:-8px; border:2px solid var(--ap-surface);}
.ap-project-due{font-size:.76rem; color:var(--ap-secondary); display:flex; align-items:center; gap:.3rem;}
.ap-project-due.overdue{color:var(--ap-danger); font-weight:600;}
.ap-status-pill{font-size:.68rem; font-weight:700; padding:.2rem .55rem; border-radius:20px;}
.ap-status-pill.ontrack{background:var(--ap-success-100); color:var(--ap-success);}
.ap-status-pill.atrisk{background:var(--ap-warning-100); color:var(--ap-warning);}
.ap-status-pill.delayed{background:var(--ap-danger-100); color:var(--ap-danger);}
.ap-status-pill.done{background:var(--ap-primary-100); color:var(--ap-primary);}

/* Kanban (task board) */
.ap-kanban{display:flex; gap:1rem; overflow-x:auto; padding-bottom:.5rem;}
.ap-kanban-col{flex:0 0 280px; background:var(--ap-bg); border:1px solid var(--ap-border); border-radius:var(--ap-radius); display:flex; flex-direction:column; max-height:calc(100vh - 320px); min-height:340px;}
.ap-kanban-col-head{padding:.9rem 1rem; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--ap-border); flex-shrink:0;}
.ap-kanban-col-title{font-size:.83rem; font-weight:700; color:var(--ap-text-strong); display:flex; align-items:center; gap:.5rem;}
.ap-kanban-col-title .dot{width:8px; height:8px; border-radius:50%; display:inline-block;}
.ap-kanban-count{font-size:.7rem; font-weight:700; background:var(--ap-surface); border:1px solid var(--ap-border); color:var(--ap-secondary); border-radius:20px; padding:.1rem .5rem;}
.ap-kanban-cards{flex:1; overflow-y:auto; padding:.7rem; display:flex; flex-direction:column; gap:.7rem;}
.ap-task-card{background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:var(--ap-radius-sm); padding:.85rem; cursor:grab;}
.ap-task-card:hover{box-shadow:var(--ap-shadow);}
.ap-task-card.dragging{opacity:.4;}
.ap-task-proj-tag{font-size:.65rem; font-weight:700; padding:.15rem .45rem; border-radius:5px; display:inline-block; margin-bottom:.5rem;}
.ap-task-title{font-size:.85rem; font-weight:700; color:var(--ap-text-strong); margin-bottom:.55rem; line-height:1.35;}
.ap-task-foot{display:flex; justify-content:space-between; align-items:center;}
.ap-task-due{font-size:.72rem; color:var(--ap-secondary); display:flex; align-items:center; gap:.25rem;}
.ap-task-avatar{width:24px; height:24px; border-radius:50%; object-fit:cover;}
.ap-task-checklist{font-size:.7rem; color:var(--ap-secondary); display:flex; align-items:center; gap:.25rem; margin-bottom:.5rem;}
.ap-kanban-col.drag-over{outline:2px dashed var(--ap-primary); outline-offset:-4px;}

/* Team cards */
.ap-team-card{background:var(--ap-surface); border:1px solid var(--ap-border); border-radius:var(--ap-radius); padding:1.2rem; text-align:center; height:100%;}
.ap-team-card img{width:64px; height:64px; border-radius:50%; object-fit:cover; margin-bottom:.7rem;}
.ap-team-role{font-size:.76rem; color:var(--ap-secondary); margin-bottom:.7rem;}
.ap-team-stats{display:flex; justify-content:center; gap:1.5rem; padding-top:.7rem; border-top:1px solid var(--ap-border);}
.ap-team-stats div b{display:block; color:var(--ap-text-strong); font-size:1rem;}
.ap-team-stats div span{font-size:.68rem; color:var(--ap-secondary);}
