/* ============ 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);}

/* Profile header */
.ap-profile-card{overflow:hidden;}
.ap-profile-cover{height:150px; background:linear-gradient(120deg,#3730A3 0%,var(--ap-primary) 55%,#7C74F0 100%); position:relative;}
.ap-profile-body{padding:0 1.5rem 1.5rem; position:relative;}
.ap-profile-avatar{width:104px; height:104px; border-radius:50%; object-fit:cover; border:4px solid var(--ap-surface); margin-top:-52px; background:var(--ap-surface);}
.ap-profile-top{display:flex; flex-wrap:wrap; justify-content:space-between; align-items:flex-end; gap:1rem; margin-bottom:1.1rem;}
.ap-profile-name{font-size:1.35rem; margin-bottom:.15rem;}
.ap-profile-meta{display:flex; flex-wrap:wrap; gap:1.1rem; font-size:.83rem; color:var(--ap-secondary); margin-top:.4rem;}
.ap-profile-meta span{display:inline-flex; align-items:center; gap:.35rem;}

/* Stat widgets */
.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;}

/* Tabs */
.ap-tabs-nav{display:flex; gap:.25rem; border-bottom:1px solid var(--ap-border); padding:0 1.25rem;}
.ap-tab-item{padding:.9rem .9rem; font-size:.85rem; 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);}}

.ap-info-row{display:flex; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--ap-border); font-size:.85rem;}
.ap-info-row:last-child{border-bottom:none;}
.ap-info-row .label{color:var(--ap-secondary);}
.ap-info-row .value{color:var(--ap-text-strong); font-weight:600; text-align:right;}
.ap-skill-tag{font-size:.72rem; font-weight:600; padding:.25rem .6rem; border-radius:6px; background:var(--ap-primary-100); color:var(--ap-primary);}

.ap-timeline{position:relative; padding-left:1.6rem;}
.ap-timeline::before{content:""; position:absolute; left:5px; top:4px; bottom:4px; width:2px; background:var(--ap-border);}
.ap-timeline-item{position:relative; padding-bottom:1.25rem;}
.ap-timeline-item:last-child{padding-bottom:0;}
.ap-timeline-dot{position:absolute; left:-1.6rem; top:2px; width:12px; height:12px; border-radius:50%; border:2px solid var(--ap-surface); box-shadow:0 0 0 2px var(--ap-border);}
.ap-timeline-time{font-size:.72rem; color:var(--ap-secondary);}

.ap-project-mini{display:flex; align-items:center; gap:.8rem; padding:.8rem 0; border-bottom:1px solid var(--ap-border);}
.ap-project-mini:last-child{border-bottom:none;}
.ap-project-mini-icon{width:38px; height:38px; border-radius:var(--ap-radius-sm); display:flex; align-items:center; justify-content:center; color:#fff; flex-shrink:0;}
.ap-progress-thin{height:5px; border-radius:10px; background:var(--ap-bg);}

.form-label{font-size:.82rem; font-weight:600; color:var(--ap-text-strong);}
.form-control, .form-select{background:var(--ap-bg); border:1px solid var(--ap-border); border-radius:var(--ap-radius-sm); font-size:.85rem; color:var(--ap-text-strong);}
.form-control:focus, .form-select:focus{border-color:var(--ap-primary); box-shadow:0 0 0 3px var(--ap-primary-100);}
