/* Staff Profile Directory v2.3 */
.spd-directory,.spd-profile,.spd-widget,.spd-publications{--b:#e5e7eb;--t:#172033;--m:#667085;--a:#1d4ed8;--soft:#f8fafc;font-family:inherit;font-size:16px;line-height:1.5;box-sizing:border-box}
/* Components size themselves by the space they get (content column, sidebar, full width), not the screen. */
.spd-directory,.spd-profile,.spd-widget{container-type:inline-size}
.spd-directory *,.spd-profile *,.spd-widget *{box-sizing:border-box}
.spd-directory,.spd-profile{width:100%;margin:24px auto}

/* ---------- Toolbar & filters ---------- */
.spd-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:16px;flex-wrap:wrap}
.spd-heading h2{margin:0}
.spd-count{font-size:13px;color:var(--m)}
.spd-view-buttons{display:flex;gap:5px;flex-wrap:wrap}
.spd-view,.spd-filters button{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;padding:9px 12px;cursor:pointer;font:inherit;font-size:14px}
.spd-view.is-active,.spd-view:hover{background:var(--a);border-color:var(--a);color:#fff}
.spd-filters{display:grid;grid-template-columns:minmax(200px,1.5fr) 1fr 1fr 1.2fr 170px auto;gap:10px;padding:15px;border:1px solid var(--b);border-radius:14px;margin-bottom:22px;background:#fff}
.spd-filters-search-only{grid-template-columns:1fr}
.spd-filters input,.spd-filters select{min-height:43px;border:1px solid #d0d5dd;border-radius:8px;padding:8px 10px;font:inherit;width:100%;background:#fff}
.spd-filters input:focus,.spd-filters select:focus,.spd-view:focus-visible,.spd-page:focus-visible,.spd-tabs button:focus-visible,.spd-profile-btn:focus-visible,.spd-car-btn:focus-visible{outline:3px solid color-mix(in srgb,var(--a) 35%,transparent);outline-offset:2px}
.spd-loading .spd-results{opacity:.45;transition:opacity .15s;pointer-events:none}

/* ---------- Cards ---------- */
.spd-grid{--gap:20px;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(190px,(100% - (var(--spd-cols,4) - 1) * var(--gap)) / var(--spd-cols,4)),1fr));gap:var(--gap)}
.spd-card{display:flex;flex-direction:column;border:1px solid var(--b);border-radius:16px;background:#fff;overflow:hidden;box-shadow:0 3px 14px rgba(16,24,40,.06);transition:transform .2s,box-shadow .2s}
.spd-card:hover{transform:translateY(-3px);box-shadow:0 8px 24px rgba(16,24,40,.12)}
.spd-card-media{display:flex;text-decoration:none!important;aspect-ratio:4/4.4;background:#f2f4f7;align-items:center;justify-content:center;overflow:hidden}
.spd-card-media img{width:100%;height:100%;object-fit:cover;object-position:top}
.spd-placeholder{font-size:60px;font-weight:600;color:#98a2b3}
.spd-card-body{padding:16px;display:flex;flex-direction:column;flex:1}
.spd-card .spd-name{margin:7px 0;font-size:19px;line-height:1.25;color:var(--t)}
.spd-name a{color:inherit;text-decoration:none}
.spd-name a:hover{color:var(--a)}
.spd-id{display:inline-block;align-self:flex-start;background:#eff6ff;color:var(--a);border-radius:999px;padding:4px 8px;font-size:11px;font-weight:700;letter-spacing:.02em}
.spd-designation{font-weight:600;color:#344054;font-size:15px}
.spd-department,.spd-education{font-size:14px;color:var(--m);margin-top:5px}
.spd-mini-stats{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0 0}
.spd-mini-stats span{font-size:12px;background:var(--soft);padding:5px 7px;border-radius:6px;color:#475467}
.spd-profile-btn{display:inline-block;align-self:flex-start;margin-top:auto;background:var(--a);color:#fff!important;text-decoration:none!important;padding:9px 13px;border-radius:8px;font-size:13px;font-weight:600}
.spd-card-body>.spd-profile-btn{margin-top:auto}
.spd-card-body>:nth-last-child(2):not(.spd-profile-btn){margin-bottom:14px}

/* List / compact views */
.spd-results[data-view=list] .spd-grid{grid-template-columns:1fr}
.spd-results[data-view=list] .spd-card{display:grid;grid-template-columns:180px 1fr}
.spd-results[data-view=list] .spd-card-media{height:100%;aspect-ratio:auto;min-height:180px}
.spd-results[data-view=compact] .spd-grid{grid-template-columns:repeat(2,1fr)}
.spd-results[data-view=compact] .spd-card-media{display:none}
.spd-results[data-view=compact] .spd-card-body{display:grid;grid-template-columns:1.5fr 1fr 1fr auto;gap:10px;align-items:center}
.spd-results[data-view=compact] .spd-card-body>*{margin:0}
.spd-results[data-view=compact] .spd-id,.spd-results[data-view=compact] .spd-education,.spd-results[data-view=compact] .spd-mini-stats{display:none}
.spd-results[data-view=compact] .spd-name{font-size:16px}

/* A–Z view */
.spd-az-index{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 18px;position:sticky;top:0;z-index:2;background:#fff;padding:8px 0;border-bottom:1px solid var(--b)}
.spd-az-index a,.spd-az-index span{display:inline-flex;align-items:center;justify-content:center;min-width:32px;height:32px;border-radius:7px;font-weight:700;font-size:14px;text-decoration:none}
.spd-az-index a{background:#eff6ff;color:var(--a)}
.spd-az-index a:hover{background:var(--a);color:#fff}
.spd-az-index span{color:#c7ced9}
.spd-az-group{margin-bottom:22px;scroll-margin-top:70px}
.spd-az-letter{font-size:26px;color:var(--a);margin:0 0 8px;padding-bottom:6px;border-bottom:2px solid var(--b)}
.spd-az-list{list-style:none;margin:0;padding:0;columns:2;column-gap:28px}
.spd-az-list li{break-inside:avoid;padding:8px 0;border-bottom:1px solid #f0f2f5;margin:0}
.spd-az-list a{color:var(--t);text-decoration:none}
.spd-az-list a:hover{color:var(--a)}
.spd-az-list span{display:block;font-size:13px;color:var(--m)}

/* Pagination & states */
.spd-pagination{display:flex;justify-content:center;align-items:center;gap:6px;margin:26px 0;flex-wrap:wrap}
.spd-page{border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;min-width:38px;height:38px;cursor:pointer;font:inherit}
.spd-page.is-active{background:var(--a);border-color:var(--a);color:#fff}
.spd-gap{color:var(--m);padding:0 4px}
.spd-empty{padding:35px;text-align:center;border:1px dashed #cbd5e1;border-radius:12px;color:var(--m)}

/* ---------- Profile ---------- */
.spd-profile{max-width:1120px}
.spd-profile-top{display:grid;grid-template-columns:250px 1fr;gap:30px}
.spd-profile-photo{aspect-ratio:1;border-radius:18px;overflow:hidden;background:#f2f4f7;display:flex;align-items:center;justify-content:center}
.spd-profile-photo img{width:100%;height:100%;object-fit:cover;object-position:top}
.spd-profile .spd-profile-name{font-size:clamp(28px,4vw,44px);margin:8px 0 5px;line-height:1.15}
.spd-profile-designation{margin:0 0 7px;font-size:20px;font-weight:600;color:#344054}
.spd-profile-dept,.spd-profile-education{color:var(--m);margin:5px 0}
.spd-completeness{float:right;font-size:12px;padding:5px 8px;background:#ecfdf3;color:#027a48;border-radius:999px}
.spd-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.spd-actions a,.spd-actions button{padding:9px 12px;border:1px solid #d0d5dd;background:#fff;color:#344054;border-radius:8px;text-decoration:none;cursor:pointer;font:inherit;font-size:14px}
.spd-actions a:hover,.spd-actions button:hover{border-color:var(--a);color:var(--a)}
.spd-actions a.spd-edit-profile{background:var(--a);border-color:var(--a);color:#fff;font-weight:600}
.spd-actions a.spd-edit-profile:hover{color:#fff;filter:brightness(.92)}
.spd-tabs{display:flex;gap:5px;flex-wrap:wrap;border-bottom:1px solid var(--b);margin-top:35px}
.spd-tabs button{border:0;border-bottom:2px solid transparent;background:transparent;padding:12px 15px;cursor:pointer;color:#475467;font:inherit;margin-bottom:-1px}
.spd-tabs button.is-active{color:var(--a);border-bottom-color:var(--a);font-weight:700}
.spd-tab-content{display:none}
.spd-tab-content.is-active{display:block}
.spd-section{margin-top:28px;padding-top:22px;border-top:1px solid var(--b)}
.spd-tab-content>.spd-section:first-child{border-top:0;padding-top:0}
.spd-section h3{font-size:22px;margin:0 0 15px}
.spd-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.spd-stat{border:1px solid var(--b);border-radius:12px;padding:16px;text-align:center}
.spd-stat strong{display:block;font-size:28px;color:var(--a)}
.spd-stat span{font-size:12px;color:var(--m)}
.spd-details{display:grid;grid-template-columns:280px 1fr;margin:0}
.spd-details dt,.spd-details dd{margin:0;padding:11px;border-bottom:1px solid #eef2f6}
.spd-details dt{font-weight:700}
.spd-table-wrap{overflow:auto}
.spd-table-wrap table{width:100%;border-collapse:collapse}
.spd-table-wrap th,.spd-table-wrap td{border:1px solid var(--b);padding:10px;text-align:left}
.spd-table-wrap th{background:var(--soft)}
.spd-docs{display:flex;gap:10px;flex-wrap:wrap}
.spd-docs a{padding:12px 15px;border:1px solid var(--b);border-radius:10px;text-decoration:none}

/* ---------- Publications ---------- */
.spd-publication{padding:15px 0;border-bottom:1px solid var(--b)}
.spd-publication h4{margin:0 0 5px}
.spd-pub-meta{color:var(--m);font-size:13px}
.spd-pub-links{display:flex;gap:12px;flex-wrap:wrap;font-size:13px;margin-top:4px}

/* ---------- Widget ---------- */
.spd-widget{margin:0 0 24px}
.spd-w-title{margin:0 0 14px}
.spd-widget .spd-grid{--gap:16px;grid-template-columns:repeat(auto-fill,minmax(max(170px,(100% - (var(--spd-cols,3) - 1) * var(--gap)) / var(--spd-cols,3)),1fr))}
.spd-widget .spd-card .spd-name{font-size:17px}
.spd-w-more{margin:14px 0 0;font-weight:600}
.spd-w-more a{color:var(--a);text-decoration:none}
.spd-av{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:96px;height:96px;border-radius:50%;overflow:hidden;background:#eff6ff;color:var(--a);font-weight:700;font-size:32px}
.spd-av img{width:100%;height:100%;object-fit:cover;object-position:top}
.spd-av-sm{width:44px;height:44px;font-size:17px}
.spd-avatars{--gap:18px;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(max(120px,(100% - (var(--spd-cols,3) - 1) * var(--gap)) / var(--spd-cols,3)),1fr));gap:var(--gap)}
.spd-avatars li{margin:0;text-align:center}
.spd-avatars a{display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none;color:var(--t)}
.spd-avatars a:hover strong{color:var(--a)}
.spd-avatars strong{margin-top:6px;line-height:1.25}
.spd-avatars small{color:var(--m);font-size:12.5px;line-height:1.35}
.spd-w-rows{list-style:none;margin:0;padding:0}
.spd-w-rows li{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--b);margin:0}
.spd-w-rows li:last-child{border-bottom:0}
.spd-w-row-main{min-width:0}
.spd-w-row-main a{color:var(--t);text-decoration:none}
.spd-w-row-main a:hover{color:var(--a)}
.spd-w-row-main small{display:block;color:var(--m);font-size:13px}
.spd-carousel{position:relative;display:flex;align-items:center;gap:8px}
.spd-car-track{display:grid;grid-auto-flow:column;grid-auto-columns:max(200px,calc((100% - (var(--spd-cols,3) - 1) * 16px) / var(--spd-cols,3)));gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:4px 2px 12px;flex:1;scrollbar-width:thin}
.spd-car-track>.spd-card{scroll-snap-align:start}
.spd-car-btn{flex-shrink:0;width:38px;height:38px;border-radius:50%;border:1px solid #d0d5dd;background:#fff;color:#344054;font-size:22px;line-height:1;cursor:pointer}
.spd-car-btn:hover:not(:disabled){background:var(--a);border-color:var(--a);color:#fff}
.spd-car-btn:disabled{opacity:.35;cursor:default}
.spd-block-preview .spd-card-body a,.spd-block-preview .spd-avatars a{pointer-events:none}

/* ---------- Responsive (container queries) ---------- */
@container (max-width:1000px){.spd-filters{grid-template-columns:1fr 1fr}.spd-stats{grid-template-columns:repeat(2,1fr)}}
@container (max-width:700px){
  .spd-profile-top{grid-template-columns:1fr}.spd-profile-photo{max-width:280px}
  .spd-details{grid-template-columns:1fr}.spd-toolbar{align-items:flex-start;flex-direction:column}
  .spd-results[data-view=compact] .spd-grid{grid-template-columns:1fr}
  .spd-results[data-view=list] .spd-card{grid-template-columns:120px 1fr}.spd-results[data-view=list] .spd-card-media{min-height:120px}
  .spd-az-list{columns:1}.spd-completeness{float:none;display:inline-block;margin-bottom:6px}
}
@container (max-width:560px){.spd-results[data-view=compact] .spd-card-body{display:block}}
@container (max-width:460px){.spd-stats{grid-template-columns:1fr}.spd-filters{grid-template-columns:1fr}.spd-av{width:76px;height:76px}.spd-car-track{grid-auto-columns:80%}}
@media(prefers-reduced-motion:reduce){.spd-card,.spd-car-track{transition:none;scroll-behavior:auto}}
@media print{body *{visibility:hidden}.spd-profile,.spd-profile *{visibility:visible}.spd-profile{position:absolute;left:0;top:0;width:100%;max-width:none}.spd-actions,.spd-tabs,.spd-completeness{display:none!important}.spd-tab-content{display:block!important}}
