/* ============================= */
/* Header Box */
/* ============================= */

.ta-headerbox{
    background:
        radial-gradient(circle at top right, rgba(255, 255, 255, 0.65), transparent 30%),
        radial-gradient(circle at left center, rgba(173, 220, 255, 0.35), transparent 28%),
        linear-gradient(135deg, #eef7ff 0%, #deefff 52%, #d4ebff 100%);
    border-radius: 18px;
    width: min(100% - 32px, 1088px);
    margin: 24px auto 30px;
    padding: 30px 24px 30px;
    box-shadow: 0 18px 40px rgba(30, 82, 133, 0.08);
}

.ta-headerbox__content{
    display: flex;
    flex-direction: column;
    gap: 18px;
    align-items: center;
}

.ta-headerbox__text{
    min-width: 0;
    text-align: center;
}

.ta-title{
    margin: 0;
    font-weight: 800;
    letter-spacing: -0.02em;
    font-size: clamp(26px, 2.4vw, 34px);
    color: #0B3A67;
}

.ta-subtitle{
    margin: 18px auto 0;
    color: #0B3A67;
    opacity: .82;
    line-height: 1.5;
    max-width: none;
    white-space: nowrap;
}


/* ============================= */
/* Quick Filters */
/* ============================= */

.ta-quickfilters-wrap{
    width: min(100%, 1040px);
    display: flex;
    flex-direction: column;
    gap: 12px;
    align-items: center;
}

.ta-quickfilters{
    display: grid;
    width: 100%;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 10px;
}

.ta-quickfilters .custom-filter-placeholder{
    background: rgba(255,255,255,.95);
    border: 1px solid rgba(17, 90, 166, 0.12) !important;
    border-radius: 14px;
    padding: 8px 12px;
    min-height: 44px;
    box-shadow: 0 8px 22px rgba(17, 90, 166, 0.06);
    transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.ta-quickfilters .custom-filter-placeholder:hover{
    background: rgba(255,255,255,1);
    border-color: rgba(17, 90, 166, 0.2) !important;
    box-shadow: 0 10px 24px rgba(17, 90, 166, 0.1);
    transform: translateY(-1px);
}


/* ============================= */
/* Search Area */
/* ============================= */

.ta-headerbox__search{
    width: min(100%, 1040px);
    min-width: 0;
}

#thesis_advisor_list_page .ta-headerbox__content {
    align-items: center;
}

#thesis_advisor_list_page .ta-headerbox__text {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
}

#thesis_advisor_list_page .ta-title-row {
    justify-content: center;
    width: 100%;
}

#thesis_advisor_list_page .ta-subtitle {
    max-width: 72ch;
    margin-left: auto;
    margin-right: auto;
}

.ta-searchbar{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto auto;
    gap: 12px;
    align-items: start;
}

.ta-searchbar__input{
    min-width: 0;
    min-height: 38px;
    display: flex;
    align-items: center;
}

.ta-searchbar__actions{
    justify-self: end;
    flex: 0 0 auto;
    display: flex;
    align-items: center;
    gap: 10px;
}

.ta-ai-searchfield {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

#thesis_advisor_search_bar{
    min-height: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

#thesis_advisor_search_bar.custom-nonacf-input-wrapper {
    padding: 0 16px !important;
    border-radius: 14px;
    box-sizing: border-box;
    background: rgba(255,255,255,.98) !important;
    border: 1px solid rgba(17, 90, 166, 0.14) !important;
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08) !important;
}

#thesis_advisor_search_bar img.search-icon {
    width: 16px !important;
    height: 16px !important;
    margin-right: 10px !important;
    flex: 0 0 auto;
}

/* Remove ALL borders, boxes, underlines */
#thesis_advisor_search_bar input,
#thesis_advisor_search_bar .form-control,
#thesis_advisor_search_bar textarea,
#thesis_advisor_search_bar select{
    width: 100%;
    height: 100%;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    outline: none;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 15px;
    line-height: 1.2;
    box-sizing: border-box;
}

/* Remove focus effects */
#thesis_advisor_search_bar input:focus,
#thesis_advisor_search_bar .form-control:focus{
    outline: none !important;
    box-shadow: none !important;
}

.ta-ai-search-helper {
    color: #5f7386;
    font-size: 12px;
    line-height: 1.45;
    padding-left: 2px;
}

.ai-search-btn {
    position: relative;
    overflow: visible;
    min-height: 48px !important;
    height: 48px !important;
    padding: 0 20px !important;
    border: 2px solid transparent !important;
    border-radius: 999px !important;
    color: #ffffff !important;
    font-weight: 700;
    letter-spacing: 0.01em;
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background:
        linear-gradient(120deg, #0c4f8f 0%, #1a73c9 50%, #0d477b 100%) padding-box,
        linear-gradient(120deg, #80e8cf, #9fd0ff 30%, #ffd89a 55%, #c4a0ff 80%, #80e8cf 100%) border-box !important;
    box-shadow: 0 12px 26px rgba(17, 90, 166, 0.28);
    transition: filter .2s ease, box-shadow .2s ease;
}

/* All motion is OFF by default (paused) and only runs on hover / focus /
   searching â€” nothing animates at idle. */
.ai-search-btn:hover,
.ai-search-btn:focus,
.ai-search-btn:focus-visible,
.ai-search-btn:active {
    color: #ffffff !important;
    filter: brightness(1.08) saturate(1.2) !important;
}
.ai-search-btn.is-searching {
    pointer-events: none;
    cursor: wait;
}
.ai-search-btn:hover::before,
.ai-search-btn:focus-visible::before,
.ai-search-btn.is-searching::before {
    opacity: .9;
    animation: ai-search-flow 4s linear infinite;
}
.ai-search-btn:hover .ai-search-star,
.ai-search-btn:focus-visible .ai-search-star,
.ai-search-btn.is-searching .ai-search-star {
    animation: ai-search-twinkle 1.8s ease-in-out infinite;
}
.ai-search-btn:hover > i,
.ai-search-btn:hover > svg,
.ai-search-btn:focus-visible > i,
.ai-search-btn:focus-visible > svg,
.ai-search-btn.is-searching > i,
.ai-search-btn.is-searching > svg {
    animation: ai-search-wand-pulse 1.2s ease-in-out infinite;
}
.ai-search-btn:hover::after,
.ai-search-btn:focus-visible::after,
.ai-search-btn.is-searching::after {
    opacity: 1;
    animation: ai-search-sheen 1.1s ease-in-out infinite;
}

/* "Flowing band" â€” a gradient overlay over the button face (z-index 0, below
   the label + stars). `screen` blend keeps the blue and lets the colours glow
   through. Hidden at idle; on hover/searching it fades in and flows via
   background-position (cheap animated-border trick). No rotation. */
.ai-search-btn::before {
    content: "";
    position: absolute;
    inset: -2px;
    z-index: 0;
    border-radius: inherit;
    background: linear-gradient(90deg, #80e8cf, #9fd0ff, #ffd89a, #c4a0ff, #80e8cf, #9fd0ff, #80e8cf);
    background-size: 300% 100%;
    filter: blur(4px);
    opacity: 0;
    transition: opacity .25s ease;
    pointer-events: none;
}

@keyframes ai-search-flow {
    0%   { background-position: 0% 50%; }
    100% { background-position: 300% 50%; }
}

/* Click flash â€” quick white ring pulse, cheap (box-shadow, one-shot) */
.ai-search-btn.ai-search-burst {
    animation: ai-search-burst-flash 0.5s ease-out;
}
@keyframes ai-search-burst-flash {
    0%   { box-shadow: 0 12px 26px rgba(17, 90, 166, 0.28), 0 0 0 3px rgba(255, 255, 255, 0.55); }
    100% { box-shadow: 0 12px 26px rgba(17, 90, 166, 0.28), 0 0 0 0 rgba(255, 255, 255, 0); }
}

/* =============================================================== */
/* Futuristic AI Search button: flowing colour band, glow, stars    */
/* Palette stays on theme: mint #80e8cf, sky #9fd0ff, gold #ffd89a  */
/* =============================================================== */

/* Keep label + icon above every effect layer, with a soft shadow so the white
   stays readable over the light flowing band. (FontAwesome may render the icon
   as <svg> or <i>, so target both.) */
.ai-search-btn > i,
.ai-search-btn > svg,
.ai-search-btn .ai-search-btn__text {
    position: relative;
    z-index: 4;
    text-shadow: 0 1px 3px rgba(8, 47, 86, 0.55);
}
.ai-search-btn > svg {
    filter: drop-shadow(0 1px 2px rgba(8, 47, 86, 0.55));
}

.ai-search-btn > i {
    font-size: 13px;
}

/* Twinkling stars layer (star spans injected by JS) */
.ai-search-btn .ai-search-stars {
    position: absolute;
    inset: 0;
    z-index: 1;
    pointer-events: none;
    overflow: visible;
}

.ai-search-btn .ai-search-star {
    position: absolute;
    width: 12px;
    height: 12px;
    background: #ffffff;
    clip-path: polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
    opacity: 0;
    transform: scale(.2);
    filter: drop-shadow(0 0 5px rgba(255, 255, 255, 0.95));
}

/* Spread across the full width, but only along the top & bottom edges so they
   stay clear of the vertically-centred label. */
.ai-search-btn .ai-search-star:nth-child(1) { top: 3px;    left: 14px;  width: 11px; height: 11px; animation-delay: 0s; }
.ai-search-btn .ai-search-star:nth-child(2) { bottom: 3px; left: 28%;   width: 8px;  height: 8px;  animation-delay: .3s; }
.ai-search-btn .ai-search-star:nth-child(3) { top: 4px;    left: 50%;   width: 10px; height: 10px; animation-delay: .6s; }
.ai-search-btn .ai-search-star:nth-child(4) { bottom: 4px; left: 68%;   width: 9px;  height: 9px;  animation-delay: .95s; }
.ai-search-btn .ai-search-star:nth-child(5) { top: 3px;    right: 16px; width: 11px; height: 11px; animation-delay: 1.3s; }
.ai-search-btn .ai-search-star:nth-child(6) { bottom: 3px; right: 44px; width: 8px;  height: 8px;  animation-delay: 1.7s; }

/* Glassy sheen sweep (only while searching) */
.ai-search-btn::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 3;
    border-radius: inherit;
    background: linear-gradient(100deg, transparent 32%, rgba(255, 255, 255, 0.45) 50%, transparent 68%);
    transform: translateX(-130%);
    opacity: 0;
    pointer-events: none;
}

@keyframes ai-search-twinkle {
    0%   { opacity: 0; transform: scale(.2) translateY(3px) rotate(0deg); }
    50%  { opacity: 1; transform: scale(1) translateY(-4px) rotate(140deg); }
    100% { opacity: 0; transform: scale(.2) translateY(3px) rotate(280deg); }
}

@keyframes ai-search-sheen {
    0%   { transform: translateX(-130%); }
    100% { transform: translateX(130%); }
}

@keyframes ai-search-wand-pulse {
    0%, 100% { transform: scale(1) rotate(0deg); }
    50%      { transform: scale(1.16) rotate(-10deg); }
}

/* Motion only plays on hover/focus (user-initiated); just drop the sheen sweep
   for reduced-motion users. */
@media (prefers-reduced-motion: reduce) {
    .ai-search-btn::after { display: none; }
}

/* iOS Safari composites the blurred ::before glow and the animated white ::after sheen
   as a full-layer white flash across the row (a known WebKit filter/animation bug; the
   button is overflow:visible so it isn't clipped). Desktop Safari doesn't support
   -webkit-touch-callout, so this targets iOS only and leaves the desktop animation
   intact. The gradient face + is-searching state still convey the loading. */
@supports (-webkit-touch-callout: none) {
    .ai-search-btn::before,
    .ai-search-btn::after {
        display: none !important;
    }
}

/* On small phones the "AI Search" label crowds the search input, so collapse the
   button to an icon-only circle. The icon still conveys the AI action; the input
   gets the reclaimed width. */
@media (max-width: 575.98px) {
    /* Extra-tight on small phones: shrink the actions gap + input padding so the
       search input gets a little more width (searchbar columns/gap are handled in
       the max-width:768px block above). */
    #thesis_advisor_list_page .ta-searchbar__actions {
        gap: 6px;
    }
    #thesis_advisor_list_page #thesis_advisor_search_bar.custom-nonacf-input-wrapper {
        padding: 0 12px !important;
    }
    #thesis_advisor_list_page .ai-search-btn .ai-search-btn__text,
    #student_list_page .ai-search-btn .ai-search-btn__text {
        display: none;
    }
    #thesis_advisor_list_page .ai-search-btn,
    #student_list_page .ai-search-btn {
        width: 48px;
        padding: 0 !important;
        gap: 0;
        justify-content: center;
        /* Rounded square (matches the input's 14px) rather than a full circle. */
        border-radius: 14px !important;
    }
    #student_list_page #student_search_bar.custom-nonacf-input-wrapper {
        padding: 0 12px !important;
    }
    #student_list_page #student_search_bar_wrapper {
        gap: 6px;
    }
}


/* ============================= */
/* More Filters Button */
/* ============================= */

.ta-morefilters-btn{
    background: rgba(255,255,255,.98) !important;
    color: #115AA6 !important;
    border-radius: 999px !important;
    border: 1px solid rgba(17, 90, 166, 0.14) !important;
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08) !important;
    height: 48px;
    padding: 0 16px !important;
    white-space: nowrap;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

#thesis_advisor_element_search_bar {
    min-height: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

#thesis_advisor_element_search_bar.custom-nonacf-input-wrapper {
    padding: 0 0 0 16px !important;
    border-radius: 14px;
    box-sizing: border-box;
    overflow: hidden;
}

#thesis_advisor_element_search_bar img.search-icon {
    width: 16px !important;
    height: 16px !important;
    margin-right: 10px !important;
    flex: 0 0 auto;
}

#thesis_advisor_element_search_bar.ta-publication-search-with-ai {
    gap: 0;
    min-height: 48px;
    height: 48px;
    border: none !important;
    border-radius: 14px !important;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08) !important;
}

#thesis_advisor_element_search_bar.ta-publication-search-with-ai input {
    flex: 1 1 0;
    width: 1%;
    min-width: 0;
    min-height: 46px;
    height: 46px;
    line-height: 46px;
}

#thesis_advisor_element_list_header .custom-dropdown,
#thesis_advisor_element_list_header .custom-filter-placeholder {
    height: 48px;
    border: none !important;
    border-radius: 14px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08);
}

#thesis_advisor_element_list_header .custom-dropdown > input,
#thesis_advisor_element_list_header .custom-dropdown.opened > input {
    height: 48px;
    line-height: 48px;
    border: none !important;
    border-radius: 14px;
    background: transparent;
}

#research_students_search_bar,
#research_alumni_search_bar {
    min-height: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    box-sizing: border-box;
}

#research_students_search_bar.custom-nonacf-input-wrapper,
#research_alumni_search_bar.custom-nonacf-input-wrapper {
    padding: 0 16px !important;
    border: none !important;
    border-radius: 14px;
    box-sizing: border-box;
    background: rgba(255,255,255,.98) !important;
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08) !important;
}

#research_students_search_bar img.search-icon,
#research_alumni_search_bar img.search-icon {
    width: 16px !important;
    height: 16px !important;
    margin-right: 10px !important;
    flex: 0 0 auto;
}

#research_students_search_bar input,
#research_students_search_bar .form-control,
#research_alumni_search_bar input,
#research_alumni_search_bar .form-control {
    width: 100%;
    height: 100%;
    border: none !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    outline: none;
    box-shadow: none !important;
    background: transparent !important;
    font-size: 15px;
    line-height: 1.2;
    box-sizing: border-box;
}

#research_students_search_bar input:focus,
#research_students_search_bar .form-control:focus,
#research_alumni_search_bar input:focus,
#research_alumni_search_bar .form-control:focus {
    outline: none !important;
    box-shadow: none !important;
}

#research_students_list_header .custom-dropdown,
#research_students_list_header .custom-filter-placeholder,
#research_alumni_list_header .custom-dropdown,
#research_alumni_list_header .custom-filter-placeholder {
    height: 48px;
    border: none !important;
    border-radius: 14px;
    background: rgba(255,255,255,.98);
    box-shadow: 0 12px 28px rgba(17, 90, 166, 0.08);
}

#research_students_list_header .custom-dropdown > input,
#research_students_list_header .custom-dropdown.opened > input,
#research_alumni_list_header .custom-dropdown > input,
#research_alumni_list_header .custom-dropdown.opened > input {
    height: 48px;
    line-height: 48px;
    border: none !important;
    border-radius: 14px;
    background: transparent;
}

.ta-publication-ai-search-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    align-self: stretch;
    min-height: 48px;
    height: 48px;
    padding: 0 12px;
    border: none;
    border-left: none;
    border-radius: 0;
    background: transparent;
    color: #0b4c8c;
    font-weight: 600;
    white-space: nowrap;
    overflow: hidden;
    flex: 0 0 auto;
    max-width: 100%;
}

.ta-publication-ai-search-btn:hover,
.ta-publication-ai-search-btn:focus-visible {
    background: rgba(17, 90, 166, 0.05);
    color: #0b4c8c;
}

.ta-publication-ai-search-btn[aria-disabled="true"] {
    pointer-events: none;
    cursor: wait;
}

.ta-publication-ai-search-btn__icon,
.ta-publication-ai-search-btn__text {
    position: relative;
    z-index: 4;
}

.ta-publication-ai-search-btn__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    transform-origin: center;
}

.ta-publication-ai-search-btn__icon svg {
    display: block;
    transform-origin: center;
}

.ta-publication-ai-search-btn.is-searching .ta-publication-ai-search-btn__icon,
.ta-publication-ai-search-btn.is-searching .ta-publication-ai-search-btn__icon svg {
    animation: ta-publication-ai-icon-pulse 1s ease-in-out infinite;
}

.ta-publication-ai-search-btn__stars {
    position: absolute;
    inset: 0;
    pointer-events: none;
    z-index: 3;
}

.ta-publication-ai-search-btn__star {
    position: absolute;
    width: 7px;
    height: 7px;
    background: #0b4c8c;
    clip-path: polygon(50% 0%, 61% 39%, 100% 50%, 61% 61%, 50% 100%, 39% 61%, 0% 50%, 39% 39%);
    opacity: 0;
    transform: scale(.45);
}

.ta-publication-ai-search-btn__star:nth-child(1) {
    top: 7px;
    left: 10px;
}

.ta-publication-ai-search-btn__star:nth-child(2) {
    top: 8px;
    right: 12px;
}

.ta-publication-ai-search-btn__star:nth-child(3) {
    bottom: 8px;
    right: 34px;
}

.ta-publication-ai-search-btn.is-searching .ta-publication-ai-search-btn__star:nth-child(1) {
    animation: ta-publication-ai-star 1.3s ease-in-out infinite;
}

.ta-publication-ai-search-btn.is-searching .ta-publication-ai-search-btn__star:nth-child(2) {
    animation: ta-publication-ai-star 1.3s ease-in-out .18s infinite;
}

.ta-publication-ai-search-btn.is-searching .ta-publication-ai-search-btn__star:nth-child(3) {
    animation: ta-publication-ai-star 1.3s ease-in-out .36s infinite;
}

@keyframes ta-publication-ai-star {
    0%, 100% {
        opacity: 0;
        transform: scale(.45);
    }
    50% {
        opacity: 1;
        transform: scale(1);
    }
}

@keyframes ta-publication-ai-icon-pulse {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.16);
    }
}

.ta-publication-ai-fallback-notice {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
    margin: 0 0 12px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fff8e8;
    color: #6f4d00;
    font-size: 14px;
    line-height: 1.45;
}

.ta-publication-ai-fallback-notice__pill {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: 999px;
    background: #fde7b0;
    color: #7a5200;
    font-weight: 700;
    white-space: nowrap;
}

.ta-publication-ai-fallback-notice__query {
    font-weight: 600;
}

.ta-publication-ai-fallback-notice__meta {
    color: #7a5a18;
}

.ta-morefilters-btn:hover,
.ta-morefilters-btn:focus,
.ta-morefilters-btn:active{
    background: rgba(255, 255, 255, 1) !important;
    color: #115AA6 !important;
    border: 1px solid rgba(17, 90, 166, 0.24) !important;
    box-shadow: 0 14px 30px rgba(17, 90, 166, 0.1) !important;
}

#thesis_advisor_list_page .ta-morefilters-text{
    font-size: 13px;
    letter-spacing: .01em;
}

#thesis_advisor_list_page {
    position: relative;
    padding-top: 28px;
    padding-bottom: 5rem;
    /* Modern layered mesh â€” blue / violet / teal blobs on a soft light base, cohesive with
       the search console. Static (no animation), for reliable, universal rendering. */
    background:
        radial-gradient(900px 560px at 2% -8%, rgba(17, 90, 166, 0.20), transparent 56%),
        radial-gradient(800px 520px at 100% 0%, rgba(124, 77, 226, 0.08), transparent 58%),
        radial-gradient(880px 660px at 84% 102%, rgba(37, 165, 190, 0.15), transparent 60%),
        linear-gradient(180deg, #f4f9ff 0%, #e6f0fb 100%);
}

/* Dot-grid texture, faded behind the hero, for a bit of modern depth. */
#thesis_advisor_list_page::before {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background-image: radial-gradient(rgba(17, 90, 166, 0.10) 1px, transparent 1.5px);
    background-size: 24px 24px;
    /* Keep the whole heading + subheading zone (top ~210px) dot-free so the centred text
       never looks speckled; fade the texture in only from the search console downward, then
       fade it out into the results. Fixed px stops so it stays anchored on a tall page. */
    -webkit-mask-image: linear-gradient(180deg, transparent 0, transparent 210px, #000 320px, #000 470px, transparent 660px);
    mask-image: linear-gradient(180deg, transparent 0, transparent 210px, #000 320px, #000 470px, transparent 660px);
}

#thesis_advisor_list_page > .container {
    position: relative;
    z-index: 1;
}

#thesis_advisor_list_page .ta-title-row {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

#thesis_advisor_list_page .ta-searchbar__input,
#thesis_advisor_list_page .ta-searchbar__actions {
    min-height: 48px;
}

#thesis_advisor_list_page #thesis_advisor_search_bar.custom-nonacf-input-wrapper {
    min-height: 48px !important;
    height: 48px !important;
    max-height: 48px !important;
    padding: 0 16px !important;
    border-radius: 14px !important;
}

#thesis_advisor_list_page #thesis_advisor_search_bar input,
#thesis_advisor_list_page #thesis_advisor_search_bar .form-control {
    min-height: 46px !important;
    height: 46px !important;
    line-height: 46px !important;
    padding: 0 !important;
    margin: 0 !important;
}

#thesis_advisor_list_page .ta-morefilters-btn {
    min-height: 48px !important;
    height: 48px !important;
}

#thesis_advisor_list_page .custom-dropdown,
#thesis_advisor_list_page .custom-filter-placeholder,
#thesis_advisor_list_page .custom-dropdown.opened input {
    border: none !important;
    box-shadow: none !important;
}


/* ============================= */
/* Refinement Bar (Below Header) */
/* ============================= */

.ta-refinebar{
    margin: 22px 16px 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.ta-refinebar__left{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.ta-refinebar__right{
    display: flex;
    gap: 10px;
    align-items: center;
}

.custom-refinement-tag {
    display: inline-flex;
    align-items: center;
    min-width: 0;
    max-width: min(46vw, 360px);
    border-radius: 999px;
    padding: 5px 10px;
    background: #f8fafc;
    border: 1px solid #dbe5ef;
    color: #1f3b57;
    font-size: 12px;
    line-height: 1.2;
    cursor: pointer;
    overflow: hidden;
    transition: background .16s ease, border-color .16s ease, transform .16s ease, box-shadow .16s ease;
}

.custom-refinement-tag:hover {
    background: #f2f7fc;
    border-color: #cbd9e8;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(24, 57, 92, 0.08);
}

.custom-refinement-tag-inner {
    display: flex;
    align-items: center;
    gap: 6px;
    width: 100%;
    min-width: 0;
}

.custom-refinement-tag-label {
    font-weight: 600;
    font-size: 10px;
    letter-spacing: .02em;
    text-transform: uppercase;
    color: #5b738e;
    white-space: nowrap;
    flex: 0 0 auto;
}

.custom-refinement-tag-value {
    color: #1f3b57;
    font-weight: 500;
    flex: 1 1 auto;
    min-width: 0;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

@media (max-width: 768px) {
    .custom-refinement-tag {
        max-width: min(88vw, 420px);
    }
}

.custom-refinement-tag[data-filter-key="full_faculty_list"] {
    background: #f5f8ff;
    border-color: #d8e2ff;
}

.custom-refinement-tag[data-filter-key="full_department_list"] {
    background: #f5faf8;
    border-color: #d8e8df;
}

.custom-refinement-tag[data-filter-key="research_keywords"] {
    background: #f7f6fc;
    border-color: #dfdbf0;
}

.custom-refinement-tag[data-filter-key="associated_scholarships"] {
    background: #fbf7f3;
    border-color: #eadfce;
}

.custom-refinement-tag[data-filter-key="mentoring_style"] {
    background: #f3f8fb;
    border-color: #d3e4eb;
}

.custom-refinement-tag[data-filter-key="taking_students"] {
    background: #f3f9f9;
    border-color: #d2e6e3;
}


/* ============================= */
/* Full Width Layout */
/* ============================= */

.ta-layout--full{
    padding: 0 16px 20px;
}

.ta-results--full{
    padding-left: 0;
}

/* Scholarship List */

.sc-headerbox{
    background: linear-gradient(180deg, #115AA6 0%, #0d4f93 100%);
    border-radius: 24px;
    padding: 20px 22px;
    box-shadow: 0 16px 32px rgba(17, 90, 166, 0.14);
}

.sc-headerbox__content{
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    gap: 24px;
    align-items: center;
}

.sc-title{
    color: #fff;
    font-size: clamp(2rem, 2.8vw, 2.4rem);
    line-height: 1.1;
    margin: 0 0 8px;
    font-weight: 700;
}

.sc-subtitle{
    color: rgba(255,255,255,0.86);
    margin: 0;
    max-width: 60ch;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.sc-quickfilters{
    display: flex;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
    max-width: 520px;
}

.sc-quickfilters > *{
    width: 100%;
    max-width: none;
}

.sc-headerbox__search{
    min-width: 0;
}

.sc-searchbar{
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 14px;
    align-items: center;
    width: 100%;
}

.sc-searchbar__input,
.sc-searchbar__actions{
    min-height: 42px;
}

.sc-searchbar__input{
    min-width: 0;
}

#scholarship_list_page #scholarship_search_bar.custom-nonacf-input-wrapper{
    min-height: 42px !important;
    height: 42px !important;
    max-height: 42px !important;
    padding: 0 12px !important;
    border-radius: 12px !important;
    border: none !important;
    box-shadow: none !important;
    background: rgba(255,255,255,0.98) !important;
}

#scholarship_list_page #scholarship_search_bar .search-icon{
    width: 17px !important;
    height: 17px !important;
    min-width: 17px;
    flex: 0 0 17px;
}

#scholarship_list_page #scholarship_search_bar input,
#scholarship_list_page #scholarship_search_bar .form-control{
    min-height: 40px !important;
    height: 40px !important;
    line-height: 40px !important;
    padding: 0 !important;
    margin: 0 !important;
}

.sc-morefilters-btn{
    background: #ffffff !important;
    color: #115AA6 !important;
    border-radius: 999px !important;
    border: none !important;
    box-shadow: none !important;
    height: 42px;
    padding: 0 12px !important;
    white-space: nowrap;
    font-weight: 600;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}

.sc-morefilters-btn:hover,
.sc-morefilters-btn:focus,
.sc-morefilters-btn:active{
    background: #ffffff !important;
    color: #115AA6 !important;
    border: none !important;
    box-shadow: none !important;
}

#scholarship_list_page .custom-dropdown,
#scholarship_list_page .custom-filter-placeholder,
#scholarship_list_page .custom-dropdown.opened input{
    border: none !important;
    box-shadow: none !important;
}

.sc-refinebar{
    margin: 0 16px 14px;
    padding: 12px 14px;
    display: flex;
    gap: 12px;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
}

.sc-refinebar__left{
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    align-items: center;
}

.sc-refinebar__right{
    display: flex;
    gap: 10px;
    align-items: center;
}

.sc-layout--full{
    padding: 0 16px 20px;
}

#scholarship_list_states{
    min-height: 460px;
    overflow: visible;
    padding-top: 8px;
    padding-bottom: 28px;
}

#scholarship_list_states:empty{
    display: none;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
}

#scholarship_list_states .overflow-y-auto {
    overflow: visible !important;
}

#scholarship_list_states img[alt="No Results"],
#scholarship_list_states img[alt="Error Occurred"],
#scholarship_list_states img[alt="Maintenance"] {
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    max-height: none !important;
    height: auto !important;
    margin-top: 0 !important;
}

#scholarship_list_states #loading-image {
    margin-top: -10% !important;
    max-width: 420px !important;
}

#scholarship_list_states #loading-text {
    text-align: center;
}

.sc-grid{
    display: grid;
    grid-template-columns: repeat(1, minmax(0, 1fr));
    gap: 18px;
}

.sc-card-skeleton{
    overflow: hidden !important;
}

.sc-card-skeleton #custom-card-image-wrapper{
    height: 190px;
    overflow: hidden;
}

#scholarship_hits .custom-card{
    overflow: visible !important;
    border: none;
    border-radius: 18px;
    background: #fff;
    box-shadow: 0 10px 26px rgba(17, 90, 166, 0.08);
    transition: transform .2s ease, box-shadow .2s ease;
    cursor: pointer;
}

#scholarship_hits .custom-card:hover{
    transform: translateY(-2px);
    box-shadow: 0 16px 34px rgba(17, 90, 166, 0.11);
}

#scholarship_hits #custom-card-image-wrapper{
    height: 220px;
    overflow: hidden;
    border-radius: 18px 18px 0 0;
}

#scholarship_hits #custom-card-image-wrapper img{
    width: 100%;
    height: 100%;
    object-fit: cover;
}

#scholarship_hits .custom-card-body{
    gap: 10px;
    padding-top: 14px;
    padding-bottom: 14px;
}

#scholarship_hits #custom-card-body-bottom{
    display: none !important;
}

#scholarship_hits .custom-card-title,
#scholarship_hits .custom-card-title a{
    color: #153654;
    font-size: 1.05rem;
    line-height: 1.35;
    font-weight: 700;
    text-decoration: none;
}

#scholarship_hits .custom-card-title a:hover{
    color: #115AA6;
}

.sc-card-tags .custom-tag{
    background: #F3F8FE;
    color: #115AA6;
    border: none;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
}

.sc-card-text{
    color: #5E6B78;
    font-size: 0.92rem;
    line-height: 1.45;
}

#scholarship_hits .custom-card .faculty-label{
    z-index: 3;
}

.sc-card-stipend{
    color: #115AA6;
    font-size: 0.9rem;
    font-weight: 700;
}

.sc-paginationwrap{
    margin-top: 18px;
    display: flex;
    justify-content: center;
}

#scholarship_pagination{
    width: fit-content;
    margin: 0 auto;
}

.sc-modal-filterstack{
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#scholarshipMoreFiltersModal .modal-content{
    border-radius: 18px;
}

#scholarshipMoreFiltersModal .modal-body{
    padding: 26px 26px 28px;
}

#scholarshipMoreFiltersModal .modal-header{
    padding: 20px 26px 14px;
}

@media (min-width: 769px) {
    #scholarshipMoreFiltersModal .modal-dialog{
        width: min(100% - 32px, 720px);
        max-width: 720px;
        height: auto;
        margin-left: auto;
        margin-right: auto;
        margin-top: 1.75rem;
        margin-bottom: 1.75rem;
    }

    #scholarshipMoreFiltersModal .modal-content{
        width: 100%;
        min-height: 0;
    }
}

@media (min-width: 768px){
    .sc-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px){
    .sc-grid{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 991px){
    .sc-headerbox__content{
        grid-template-columns: 1fr;
    }

    .sc-searchbar{
        grid-template-columns: 1fr auto;
    }

    #scholarship_primary_filter_origin{
        display: none;
    }
}

@media (max-width: 767px){
    .sc-headerbox{
        padding: 18px 16px 16px;
        border-radius: 20px;
    }

    .sc-quickfilters{
        grid-template-columns: 1fr;
    }

    .sc-subtitle{
        white-space: normal;
        overflow: visible;
        text-overflow: initial;
    }

    .sc-searchbar{
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .sc-searchbar__actions{
        justify-self: end;
    }

    .sc-morefilters-btn{
        min-width: 42px;
        width: 42px;
        padding: 0 !important;
        justify-content: center;
    }

    .sc-morefilters-btn i{
        margin: 0;
    }
}

/* Scholarship Single */

/* Scholarship single-page styles moved to the island stylesheet:
   src/frontend/scholarship/scholarship-single/scholarship-single.scss (loaded with the island). */

#thesis_advisor_list_states {
    min-height: 360px;
    overflow: visible;
    padding-top: 4px;
    padding-bottom: 28px;
}

#thesis_advisor_list_states:empty {
    display: none;
    min-height: 0;
    padding-top: 0;
    padding-bottom: 0;
}

#thesis_advisor_list_states .overflow-y-auto {
    overflow: visible !important;
}

#thesis_advisor_list_states img[alt="No Results"],
#thesis_advisor_list_states img[alt="Error Occurred"],
#thesis_advisor_list_states img[alt="Maintenance"] {
    width: min(100%, 420px) !important;
    max-width: 420px !important;
    max-height: none !important;
    height: auto !important;
    margin-top: 0 !important;
}


/* ============================= */
/* Results Grid */
/* ============================= */

.ta-grid{
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
    gap: 16px;
    margin-top: 12px;
}

@media (max-width: 768px) {
    #student_list_page .student-search-actions {
        flex-wrap: wrap;
    }
    #student_list_page #student_search_bar {
        flex: 1 1 100%;
    }
    #student_list_page .student-more-filter-btn {
        width: auto;
    }
    .ta-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
    }
}

@media (max-width: 480px) {
    .ta-grid{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 359px) {
    .ta-grid{
        grid-template-columns: repeat(1, minmax(0, 1fr));
        gap: 10px;
    }
}

#thesis_advisor_hits > *{
    border-radius: 16px;
    overflow: hidden;
}

#thesis_advisor_hits .custom-card {
    border: none;
    border-radius: 16px;
    background: linear-gradient(180deg, #ffffff 0%, #fbfdff 100%);
    box-shadow: 0 8px 24px rgba(15, 34, 58, 0.08);
    transition: transform .22s ease, box-shadow .22s ease;
    will-change: transform;
}

#thesis_advisor_hits .custom-card:hover {
    transform: translateY(-6px);
    box-shadow: 0 18px 38px rgba(15, 34, 58, 0.14);
}

#thesis_advisor_hits .custom-card-body {
    padding: 20px;
    gap: 10px;
}

#thesis_advisor_hits #custom-card-body-bottom {
    display: none !important;
}

#thesis_advisor_hits .custom-card-title {
    color: #0f2e4d;
}

#thesis_advisor_hits .ta-card-link {
    color: inherit;
    text-decoration: none;
}

#thesis_advisor_hits .ta-card-link:hover {
    color: inherit;
    text-decoration: none;
}

#thesis_advisor_hits .ta-department-label {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #5f7386;
    font-size: 13px;
    line-height: 1.45;
    font-weight: 500;
}

#thesis_advisor_hits .ta-department-label svg {
    width: 14px;
    height: 14px;
    flex: 0 0 14px;
}

#thesis_advisor_hits .ta-department-label svg path {
    fill: #7c92a6;
}

#thesis_advisor_hits .custom-btn.btn-dark-blue {
    border: 1px solid transparent;
    border-radius: 10px;
    background: linear-gradient(135deg, #0f4f93 0%, #136dcd 100%);
    box-shadow: 0 8px 18px rgba(15, 79, 147, 0.24);
    transition: transform .18s ease, box-shadow .18s ease, filter .18s ease, background .18s ease;
}

#thesis_advisor_hits .custom-btn.btn-dark-blue:hover {
    transform: translateY(-1px);
    box-shadow: 0 12px 22px rgba(15, 79, 147, 0.3);
    filter: brightness(1.04);
}

#thesis_advisor_hits .custom-btn.btn-dark-blue:active {
    transform: translateY(0);
    box-shadow: 0 6px 12px rgba(15, 79, 147, 0.22);
}

#thesis_advisor_hits .ta-accepting-badge {
    position: absolute;
    left: 0;
    bottom: 0;
    z-index: 2;
    display: inline-flex;
    align-items: center;
    justify-content: flex-start;
    width: min(100%, 230px);
    padding: 7px 12px;
    border-radius: 0;
    background: linear-gradient(90deg, rgba(0, 158, 63, 0.78) 60.28%, rgba(0, 158, 63, 0) 100%);
    color: #fff;
    border: none;
    box-shadow: none;
    font-family: "Segoe UI", "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(10px, 1.3vw, 12px);
    font-weight: 600;
    letter-spacing: .02em;
    line-height: 1.2;
    white-space: nowrap;
    text-transform: uppercase;
    text-align: left;
}


/* ============================= */
/* Pagination */
/* ============================= */

.ta-paginationwrap{
    margin-top: 18px;
    display: flex;
    justify-content: center;
}

.custom-search-pagination,
#thesis_advisor_pagination .pagination {
    display: inline-flex;
    gap: 0;
    align-items: center;
    margin: 0;
    padding: 6px;
    border-radius: 14px;
    background: #f7fafc;
    border: 1px solid #e2eaf2;
}

.custom-search-pagination .page-item,
#thesis_advisor_pagination .page-item {
    margin: 0;
}

.custom-search-pagination .page-item + .page-item .page-link,
.custom-search-pagination .page-item + .page-item .custom-custom-pagination-btn.page-link,
#thesis_advisor_pagination .page-item + .page-item .page-link,
#thesis_advisor_pagination .page-item + .page-item .custom-custom-pagination-btn.page-link {
    margin-left: -1px;
}

.custom-search-pagination .page-link,
.custom-search-pagination .custom-custom-pagination-btn.page-link,
#thesis_advisor_pagination .page-link,
#thesis_advisor_pagination .custom-custom-pagination-btn.page-link {
    min-width: 36px;
    height: 36px;
    padding: 0 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 0;
    border: 1px solid #d7e2ec;
    background: #fff;
    color: #21466f;
    font-weight: 600;
    line-height: 1;
    box-shadow: 0 1px 2px rgba(13, 34, 55, 0.06);
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease, color .16s ease, border-color .16s ease;
}

.custom-search-pagination .page-item:first-child .page-link,
.custom-search-pagination .page-item:first-child .custom-custom-pagination-btn.page-link,
#thesis_advisor_pagination .page-item:first-child .page-link,
#thesis_advisor_pagination .page-item:first-child .custom-custom-pagination-btn.page-link {
    border-top-left-radius: 9px;
    border-bottom-left-radius: 9px;
}

.custom-search-pagination .page-item:last-child .page-link,
.custom-search-pagination .page-item:last-child .custom-custom-pagination-btn.page-link,
#thesis_advisor_pagination .page-item:last-child .page-link,
#thesis_advisor_pagination .page-item:last-child .custom-custom-pagination-btn.page-link {
    border-top-right-radius: 9px;
    border-bottom-right-radius: 9px;
}

.custom-search-pagination .page-link:hover,
.custom-search-pagination .custom-custom-pagination-btn.page-link:hover,
#thesis_advisor_pagination .page-link:hover,
#thesis_advisor_pagination .custom-custom-pagination-btn.page-link:hover {
    background: #edf4fb;
    border-color: #c7d8e9;
    color: #173a60;
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(13, 34, 55, 0.1);
}

.custom-search-pagination .page-item.active .page-link,
.custom-search-pagination .page-item.active .custom-custom-pagination-btn.page-link,
#thesis_advisor_pagination .page-item.active .page-link,
#thesis_advisor_pagination .page-item.active .custom-custom-pagination-btn.page-link {
    background: linear-gradient(135deg, #0f4f93 0%, #136dcd 100%);
    border-color: #0f4f93;
    color: #fff;
    box-shadow: 0 8px 18px rgba(15, 79, 147, 0.28);
}

.custom-search-pagination .page-link:focus,
.custom-search-pagination .custom-custom-pagination-btn.page-link:focus,
#thesis_advisor_pagination .page-link:focus,
#thesis_advisor_pagination .custom-custom-pagination-btn.page-link:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(19, 109, 205, 0.22);
}


/* ============================= */
/* Back To Top */
/* ============================= */

.ta-backtotop{
    position: fixed;
    bottom: 20px;
    right: 20px;
    z-index: 20;
    border-radius: 999px;
    padding: 9px 14px;
    background: rgba(255, 255, 255, 0.96);
    color: #1f3b57;
    font-weight: 600;
    font-size: 13px;
    letter-spacing: 0.01em;
    border: 1px solid #d7e2ec;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.14);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}

.ta-backtotop:hover {
    transform: translateY(-2px);
    background: #ffffff;
    color: #173a60;
    box-shadow: 0 12px 24px rgba(17, 24, 39, 0.2)
}


/* ============================= */
/* Modal Filters */
/* ============================= */

.ta-modal-filterstack{
    display: flex;
    flex-direction: column;
    gap: 12px;
}


/* ============================= */
/* Responsive */
/* ============================= */

@media (max-width: 992px){
    .ta-quickfilters-wrap{
        display: none;
    }

    /* Same trade as the thesis advisor list: the always-visible filters cost three
       full-width rows on a phone and squeeze the search input, so they are hidden here
       and lent to the More Filters modal by initStudentMobileFilters(). Hiding the
       origin (not its parent) keeps it in the DOM as the restore target.
       !important is required: the origin carries Bootstrap's .d-flex, which is itself
       declared !important and would otherwise win. */
    #student_list_page #student_primary_filter_origin {
        display: none !important;
    }

    /* The search row's mt-4 spaces it from the filter row above, which no longer
       renders here â€” leaving 24px of dead blue and an off-centre panel (50px above the
       input vs 26px below). !important because mt-4 is a Bootstrap utility. */
    #student_list_page #student_search_bar_wrapper > * {
        margin-top: 0 !important;
    }

    .ta-quickfilters{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .ta-searchbar{
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .ta-morefilters-btn{
        width: auto;
        flex: 0 0 auto;
    }
}

@media (max-width: 768px){
    .ta-headerbox{
        padding: 22px 16px 18px;
    }

    .ta-headerbox__content{
        align-items: stretch;
        gap: 14px;
    }

    .ta-headerbox__text{
        text-align: left;
    }

    .ta-subtitle{
        margin-left: 0;
        margin-right: 0;
        white-space: normal;
    }

    .ta-headerbox__search,
    .ta-quickfilters-wrap{
        width: 100%;
    }

    .ta-searchbar{
        grid-template-columns: minmax(0, 1fr) auto;
    }

    .ta-quickfilters{
        grid-template-columns: 1fr;
    }
}


/* Student single (#phd-student-single) styles moved to the island stylesheet:
   src/frontend/student/student-single/student-single.scss
   (interleaved legacy AI-search list CSS removed here — superseded by the React .nusgs-aisupp*). */

/*
************************ Student List Page ********************
 */

.student-portal-showcase-card {
    position: relative;
    overflow: hidden;
    border-radius: 12px;
    width: 100%;
    aspect-ratio: 1 / 1; /* Ensures square shape */
    background-color: #fff;
    cursor: pointer;
}

@media (hover: hover) and (pointer: fine) {
    .student-portal-showcase-card:hover > .overlay {
        transform: translateY(0);
    }
}

.student-portal-showcase-card img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
    border-radius: 12px;
}

.student-portal-showcase-card .overlay {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    background: #F0F0F0;
    color: #003D7C;
    padding: 16px;
    font-weight: 500;
    height: 100%;
    transform: translateY(100%);
    transition: transform 0.3s ease;
    z-index: 2;
    @media only screen and (max-width: 500px) {
        font-size: 12px;
    }
}

.student-portal-showcase-card .quote-mark {
    font-size: 3.5rem;
    line-height: 0.5;
    color: #F57C00;
    @media only screen and (max-width: 500px) {
        font-size: 2rem;
    }
}

.student-portal-showcase-card .quote-text {
    font-weight: 700;
    font-size: 1.25rem;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
    margin-bottom: 12px;
    @media only screen and (max-width: 500px) {
        font-size: 1rem;
        line-height: 1;
    }
}

.student-portal-showcase-card .quote-name {
    margin-top: auto;
    font-size: 0.95rem;
    font-weight: 500;
    color: #6C757D;
    @media only screen and (max-width: 500px) {
        font-size: 12px;
    }
}
#student-portal-showcase-cover {
    max-width: 100%;
    overflow: hidden;
    --showcase-row: clamp(200px, 20vw, 260px);
    --showcase-gap: 8px;
    height: 0;
    padding: 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease;
}

#student-portal-showcase-cover.showcase-ready {
    height: calc((var(--showcase-row) * 2) + var(--showcase-gap));
    padding: 10px 0 14px 0;
    opacity: 1;
    visibility: visible;
    width: min(100%, 1240px);
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 1.6rem;
}

#student-portal-showcase-cover.showcase-ready.showcase-single {
    --showcase-row: clamp(200px, 24vw, 260px);
    --showcase-gap: 0px;
    height: var(--showcase-row);
    padding: 10px 0 12px 0;
}

#student-portal-showcase-cover.showcase-empty {
    height: 0;
    padding: 0;
    overflow: hidden;
    opacity: 0;
    visibility: hidden;
}
#student-portal-showcase-cover .swiper {
    max-width: 100%;
    height: var(--showcase-row);

    @media screen and (max-width: 768px) {
        max-width: 1000px;
        width: 100%;
    }
}

#student-portal-showcase-cover .swiper-top {
    @media only screen and (max-width: 1300px) {
        padding-left: 50px; /* Adjust as needed */
    }
}

#student-portal-showcase-cover .swiper-bottom {
    @media only screen and (max-width: 1300px) {
        padding-right: 50px; /* Adjust as needed */
    }
}

#student_list_page #student-profiles-potential {
    width: 40%;
    @media screen and (max-width: 767px) {
        width: 100%;
        text-align: center;
    }
}

#student_list_page #student-profiles-potential-image {
    max-width: 50%;
    margin-left: auto;
    @media screen and (max-width: 767px) {
        width: 100%;
        max-width: 100%;
        margin-left: 0;
    }
}

#student_list_page .quote-image-wrapper {
    width: 30%;
    @media screen and (max-width: 767px) {
        width: 100%;
    }
}

#student_list_page .quote-content {
    width: 60%;
    @media screen and (max-width: 767px) {
        width: 100%;
    }
}

#student-custom-pagination {
    display: flex;
    flex-direction: row;
    align-items: center;
    align-content: center;
    justify-content: center;
    margin-top: 30px;
}

#student-custom-pagination .student-list-pagination-button {
    padding: 10px;
    border-width: 1px 0px 1px 1px;
    border-style: solid;
    border-color: #E4E4E4;
    background-color: #f7f7f7;
    font-weight: 600;
    width: 40px;
    height: 40px;
    justify-content: center;
    align-items: center;
    text-align: center;
    cursor: pointer;
}

/* Student List Search Page Refresh */
#student_list_page {
    background:
        radial-gradient(900px 520px at 10% 10%, rgba(80, 170, 255, 0.2), transparent 60%),
        radial-gradient(720px 380px at 92% 16%, rgba(20, 120, 255, 0.18), transparent 62%),
        radial-gradient(520px 320px at 18% 78%, rgba(70, 220, 210, 0.2), transparent 60%),
        radial-gradient(420px 260px at 88% 70%, rgba(120, 210, 255, 0.16), transparent 60%),
        linear-gradient(180deg, #eef6ff 0%, #ffffff 100%);
    padding-bottom: 5.5rem;
    position: relative;
}

#student_list_page::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(800px 420px at 70% 0%, rgba(90, 160, 255, 0.2), transparent 60%),
        radial-gradient(520px 320px at 5% 90%, rgba(80, 220, 230, 0.18), transparent 62%),
        radial-gradient(1px 1px at 1px 1px, rgba(17, 90, 166, 0.12) 1px, transparent 0);
    background-size: 100% 100%, 100% 100%, 110px 110px;
    opacity: 0.6;
    animation: studentBgDrift 16s ease-in-out infinite;
    z-index: 0;
}

#student-portal-landing,
#student_search_list,
#student_portal_browse_cover_wrapper {
    position: relative;
    z-index: 1;
}

#student-portal-landing {
    z-index: 3;
}

#student_list_page .modal {
    position: fixed;
    z-index: 2000;
}

#modalStudentSearch.modal {
    z-index: 2000;
}

@keyframes studentBgDrift {
    0% {
        transform: translate3d(0, 0, 0);
    }
    50% {
        transform: translate3d(0, -12px, 0);
    }
    100% {
        transform: translate3d(0, 0, 0);
    }
}

#student-portal-landing.student-landing {
    padding-top: 2.5rem;
}

#student_list_page .student-landing-intro {
    padding: 5.8rem 0 2.4rem;
    max-width: 980px;
    margin: 0 auto;
}

#student_list_page .quote-hero-title {
    font-size: clamp(2rem, 3.2vw, 3.2rem);
    line-height: 1.08;
    margin: 0;
    color: #115aa6;
    letter-spacing: -0.02em;
}

#student_list_page .quote-hero-subtitle {
    margin: 0 auto;
    max-width: 760px;
    color: rgba(28, 39, 55, 0.8);
    font-size: clamp(0.98rem, 1.2vw, 1.1rem);
    line-height: 1.6;
}

#student_list_page .student-profile-cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.48rem 0.85rem;
    min-width: 0;
    width: fit-content;
    align-self: flex-start;
    white-space: nowrap;
    border-radius: 999px;
    border: 1px solid rgba(35, 120, 210, 0.45);
    background: transparent;
    color: #115aa6;
    font-weight: 700;
    text-decoration: none;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.25);
    text-shadow: none;
    transition: transform 0.18s ease, box-shadow 0.18s ease, filter 0.18s ease, color 0.18s ease, background 0.18s ease;
    font-size: 0.9rem;
}

#student_list_page .student-profile-cta-btn:hover {
    transform: translateY(-1px);
    background: linear-gradient(135deg, #0b3a7b, #1977ff 55%, #20c5ff);
    color: #fff;
    box-shadow: 0 12px 28px rgba(19, 109, 255, 0.35), 0 0 14px rgba(32, 197, 255, 0.25);
    filter: brightness(1.04);
}

#student_list_page .student-list-panel {
    margin-top: 0.8rem;
    position: relative;
}

#student_list_page .student-search-shell {
    position: relative;
    border-radius: 20px;
    padding: 1.6rem;
    background: linear-gradient(140deg, #115aa6, #0f4f93);
    box-shadow: 0 20px 40px rgba(17, 24, 39, 0.18);
    overflow: visible;
    margin-bottom: 1.4rem;
    z-index: 20 !important;
}

#student_list_page .student-search-shell .custom-dropdown {
    position: relative !important;
    z-index: 21 !important;
}

#student_list_page .student-search-shell .custom-dropdown-options {
    z-index: 22 !important;
}

#student_list_page .student-list-panel,
#student_list_page .student-cta-cards-shell,
#student_search_list .student-search-inner,
#student_portal_browse_cover_wrapper .container {
    width: min(100%, 1240px);
    margin-left: auto;
    margin-right: auto;
}

#student_search_list {
    display: none;
}

#student_search_list.is-visible {
    display: block;
}

#student_search_list .student-search-inner {
    padding-left: clamp(1.2rem, 2vw, 1.8rem);
    padding-right: clamp(1.2rem, 2vw, 1.8rem);
}

#student_list_page #student_page_states {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 320px;
}

#student_list_page .student-search-shell::before {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: linear-gradient(120deg, rgba(255, 255, 255, 0.16), rgba(255, 255, 255, 0));
    pointer-events: none;
}

#student_list_page .student-search-shell > * {
    position: relative;
}

#student_list_page .student-search-tabs-row {
    gap: 0.75rem;
    flex-wrap: wrap;
}

#student_list_page .student-search-by-label {
    color: rgba(255, 255, 255, 0.92);
    white-space: nowrap;
    font-weight: 600;
}

#student_list_page .student-portal-tabs {
    border-radius: 999px;
    padding: 0.58rem 0.9rem;
    border: none;
    background: rgba(255, 255, 255, 0.12);
    color: rgba(255, 255, 255, 0.88);
    transition: all 0.16s ease;
}

#student_list_page .student-portal-tabs:hover {
    background: rgba(255, 255, 255, 0.2);
}

#student_list_page .student-portal-tabs.active {
    background: #fff;
    color: #115aa6;
}

#student_list_page .student-search-actions {
    display: flex;
    align-items: center;
}


#student_list_page .student-search-visible {
    display: flex;
}

#student_list_page .student-search-hidden {
    display: none;
}

#student_list_page #student_search_bar {
    border-radius: 999px;
    min-height: 48px;
    background: rgba(255, 255, 255, 0.96);
    box-shadow: 0 12px 26px rgba(0, 0, 0, 0.12);
    /* Lets the field yield width to the buttons instead of forcing them to shrink:
       a flex item's default min-width:auto floors it at its content width. */
    min-width: 0;
}

#student_list_page #student_search_bar_wrapper {
    align-items: center;
}

/* The AI button sits in a flex row next to a grow-to-fill search field, which would
   otherwise shrink it until "AI Search" wrapped onto a second line. Scoped to the
   student page so the shared .ai-search-btn rule stays as the thesis advisor
   list defined it. */
#student_list_page .ai-search-btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

#student_list_page .student-more-filter-btn {
    border-radius: 999px !important;
    border: none !important;
    background-color: rgba(255, 255, 255, 0.12) !important;
    text-wrap: nowrap;
    white-space: nowrap;
    flex: 0 0 auto;
    height: 48px;
    min-height: 48px;
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

#student_list_page .student-more-filter-btn:hover {
    background-color: rgba(255, 255, 255, 0.2) !important;
}

#student_portal_showcase_cover_wrapper {
    position: relative;
    z-index: 2;
}

@media (max-width: 768px) {
    #thesis_advisor_list_page .ai-search-btn {
        padding: 0.6rem 0.9rem !important;
    }
    #thesis_advisor_list_page .ai-search-btn i {
        margin-right: 0 !important;
        font-size: 0.95rem;
    }
    #student_list_page .student-more-filter-btn {
        padding: 0.6rem 0.75rem;
    }
    #student_list_page .student-more-filter-btn i {
        margin-right: 0 !important;
        font-size: 1rem;
    }
    #student_list_page .student-more-filter-text {
        display: none !important;
    }

    #thesis_advisor_list_page .ta-morefilters-btn {
        padding: 0.6rem 0.75rem;
    }
    #thesis_advisor_list_page .ta-morefilters-btn i {
        margin-right: 0 !important;
        font-size: 1rem;
    }
    #thesis_advisor_list_page .ta-morefilters-text {
        display: none !important;
    }

    #thesis_advisor_list_page .ta-searchbar {
        /* Two children (__input + __actions), so two columns. The old "1fr auto auto"
           left an empty third track + trailing gap that ate into the input width. */
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 8px;
    }
}

#student_list_page .dropdown-search-options {
    outline: none;
    border: 1px solid rgba(17, 90, 166, 0.2);
    border-radius: 6px;
    box-shadow: none;
}

#student_list_page .dropdown-search-options:focus {
    outline: none;
    box-shadow: none;
    border-color: rgba(17, 90, 166, 0.35);
}

#modalStudentSearch .modal-dialog-scrollable {
    height: auto;
}

#modalStudentSearch .modal-body {
    overflow: visible;
    max-height: none;
}

#modalStudentSearch .custom-dropdown-options {
    z-index: 1200;
}

@media (max-width: 768px) {
    #modalStudentSearch .modal-dialog {
        margin: 0;
        height: 100%;
        max-width: 100%;
    }
    #modalStudentSearch .modal-content {
        border-radius: 18px 18px 0 0;
        position: absolute;
        bottom: 0;
        width: 100%;
        max-height: 80vh;
        transform: translateY(100%);
        transition: transform 0.25s ease;
        display: flex;
        flex-direction: column;
    }
    #modalStudentSearch.show .modal-content {
        transform: translateY(0);
    }
    #modalStudentSearch .modal-body {
        padding-bottom: 100px;
        overflow: auto;
    }


    .modal-sheet-mobile .modal-dialog {
        margin: 0;
        height: 100%;
        max-width: 100%;
    }
    .modal-sheet-mobile .modal-content {
        border-radius: 18px 18px 0 0;
        position: absolute;
        bottom: 0;
        width: 100%;
        max-height: var(--sheet-max-height, 92vh);
        min-height: var(--sheet-min-height, 72vh);
        transform: translateY(100%);
        transition: transform 0.25s ease;
        display: flex;
        flex-direction: column;
    }
    .modal-sheet-mobile.show .modal-content {
        transform: translateY(0);
    }
    .modal-sheet-mobile .modal-body {
        flex: 1 1 auto;
        min-height: 0;
        padding-bottom: 100px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;
    }

    #studentMoreFiltersModal.modal-sheet-mobile .modal-content {
        max-height: 96dvh;
        min-height: 82dvh;
    }

    /* Match the student sheet: size to the dynamic viewport (dvh) so the footer/Apply button stays
       on-screen and the body scrolls, instead of the sheet running behind the mobile browser chrome. */
    #thesisAdvisorMoreFiltersModal.modal-sheet-mobile .modal-content {
        max-height: 96dvh;
        min-height: 82dvh;
    }
}

@media (min-width: 769px) {
    .modal-sheet-mobile .modal-dialog {
        height: auto;
        margin-right: auto;
        margin-left: auto;
    }

    .modal-sheet-mobile .modal-content {
        position: relative;
        bottom: auto;
        width: auto;
        min-height: 0;
        transform: none;
    }

    .modal-sheet-mobile.show .modal-content {
        transform: none;
    }
}

#thesisAdvisorMoreFiltersModal .modal-header,
#thesisAdvisorMoreFiltersModal .modal-body,
#thesisAdvisorMoreFiltersModal .modal-footer{
    padding-left: 22px;
    padding-right: 22px;
}

#thesisAdvisorMoreFiltersModal .modal-header{
    padding-top: 20px;
    padding-bottom: 14px;
}

#thesisAdvisorMoreFiltersModal .modal-body{
    padding-top: 12px;
    padding-bottom: 20px;
}

#thesisAdvisorMoreFiltersModal .modal-footer{
    padding-top: 14px;
    padding-bottom: 20px;
}

#thesisAdvisorMoreFiltersModal .ta-modal-filterstack{
    display: flex;
    flex-direction: column;
    gap: 14px;
}

#studentMoreFiltersModal .modal-header,
#studentMoreFiltersModal .modal-body,
#studentMoreFiltersModal .modal-footer{
    padding-left: 22px;
    padding-right: 22px;
}

#studentMoreFiltersModal .modal-header{
    padding-top: 20px;
    padding-bottom: 14px;
}

#studentMoreFiltersModal .modal-body{
    padding-top: 28px;
    padding-bottom: 36px;
}

#studentMoreFiltersModal .modal-footer{
    padding-top: 14px;
    padding-bottom: 20px;
}

#studentMoreFiltersModal .student-modal-filterstack{
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 16px;
    row-gap: 16px;
    padding-top: 4px;
    padding-bottom: 4px;
}

#studentMoreFiltersModal .student-modal-filterstack > .custom-filter-placeholder{
    min-width: 0;
}

#thesisAdvisorWorldMapSection {
    margin: 72px 16px 60px;
    padding: 34px 0 14px;
    position: relative;
    isolation: isolate;
}

#thesisAdvisorWorldMapSection::before,
#thesisAdvisorWorldMapSection::after {
    content: "";
    position: absolute;
    z-index: -1;
    border-radius: 999px;
    pointer-events: none;
    filter: blur(4px);
}

#thesisAdvisorWorldMapSection::before {
    width: 220px;
    height: 220px;
    top: 18px;
    left: 6%;
    background: radial-gradient(circle, rgba(255, 211, 156, 0.3) 0%, rgba(255, 211, 156, 0) 72%);
}

#thesisAdvisorWorldMapSection::after {
    width: 280px;
    height: 280px;
    right: 4%;
    bottom: 24px;
    background: radial-gradient(circle, rgba(150, 219, 196, 0.26) 0%, rgba(150, 219, 196, 0) 72%);
}

#thesisAdvisorWorldMapSection .ta-worldmap-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--reveal-order, 0) * 110ms);
}

#thesisAdvisorWorldMapSection.is-visible .ta-worldmap-reveal {
    opacity: 1;
    transform: translateY(0);
}

#thesis_advisor_list_page .ta-footer-band {
    margin: 124px 16px 0;
    display: grid;
    grid-template-columns: 3fr 2fr;
    border-radius: 22px;
    overflow: hidden;
    position: relative;
    box-shadow:
        0 16px 40px rgba(17, 90, 166, 0.12),
        inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

#thesis_advisor_list_page .ta-footer-band::before {
    content: "";
    position: absolute;
    top: -28px;
    left: 16px;
    right: 16px;
    height: 1px;
    background: linear-gradient(90deg, rgba(74, 122, 171, 0) 0%, rgba(74, 122, 171, 0.2) 18%, rgba(74, 122, 171, 0.28) 50%, rgba(74, 122, 171, 0.2) 82%, rgba(74, 122, 171, 0) 100%);
    pointer-events: none;
}

#thesis_advisor_list_page .ta-footer-band > * {
    position: relative;
    z-index: 1;
}

/* The cursor-tracking "trace" glow is disabled â€” a whole-band hover effect implied the
   band was clickable when only the button is. Kept hidden so any JS-set styles never show. */
#thesis_advisor_list_page .ta-footer-band .ta-footer-trace {
    display: none;
}

#thesisAdvisorWorldMapSection .ta-worldmap-section__intro {
    margin: 0 0 14px;
    text-align: left;
    max-width: none;
    padding: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

#thesisAdvisorWorldMapSection .ta-worldmap-section__title-row {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

#thesisAdvisorWorldMapSection .ta-worldmap-section__title {
    color: #08203f;
    font-weight: 600;
    margin: 0 0 6px;
    font-size: 20px;
    line-height: 1.3;
    letter-spacing: 0;
    max-width: none;
    white-space: normal;
}

#thesisAdvisorWorldMapSection .ta-worldmap-country-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 0 10px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.42);
    color: #0f4d86;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

#thesisAdvisorWorldMapSection .ta-worldmap-section__subtitle {
    color: #4a7aab;
    font-size: 13px;
    line-height: 1.55;
    max-width: none;
    margin: 0;
}

#thesisAdvisorWorldMapSection {
    margin: 0;
    background:
        radial-gradient(90% 140% at 12% -10%, rgba(17, 90, 166, 0.10) 0%, rgba(17, 90, 166, 0) 55%),
        linear-gradient(180deg, #eaf3fc 0%, #d8e9f8 100%);
    padding: 34px;
    min-width: 0;
    isolation: auto;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.8);
}

#thesisAdvisorWorldMapSection::before,
#thesisAdvisorWorldMapSection::after {
    content: none;
}

#thesisAdvisorWorldMapSection .ta-worldmap-stage {
    position: relative;
    padding: 0;
}

#thesisAdvisorWorldMapSection .ta-worldmap-panel {
    position: relative;
    min-width: 0;
    background: transparent;
    border-radius: 8px;
    height: clamp(240px, 30vw, 360px);
    overflow: hidden;
    box-shadow: none;
}

#thesisAdvisorWorldMapSection .ta-worldmap-canvas {
    min-height: clamp(240px, 30vw, 360px);
    height: clamp(240px, 30vw, 360px);
    overflow: hidden;
    touch-action: none;
    background: transparent;
}

#thesisAdvisorWorldMapSection .ta-worldmap-loading {
    position: absolute;
    inset: 0;
    z-index: 6;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 14px;
    background: rgba(255, 255, 255, 0.78);
    backdrop-filter: blur(6px);
    color: #0c2d5a;
    font-weight: 600;
    letter-spacing: 0.01em;
}

#thesisAdvisorWorldMapSection .ta-worldmap-loading.d-none {
    display: none !important;
}

#thesisAdvisorWorldMapSection .ta-worldmap-loading__spinner {
    width: 52px;
    height: 52px;
    border-radius: 999px;
    border: 4px solid rgba(74, 122, 171, 0.14);
    border-top-color: #115aa6;
    border-right-color: #4a97dd;
    animation: taWorldMapSpin 0.9s linear infinite;
}

@keyframes taWorldMapSpin {
    to {
        transform: rotate(360deg);
    }
}

#thesisAdvisorWorldMapSection .ta-worldmap-empty {
    min-height: clamp(240px, 30vw, 360px);
    height: clamp(240px, 30vw, 360px);
    background: transparent;
    color: #0c2d5a;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 20px;
    font-weight: 500;
}

#thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip {
    position: absolute;
    left: 50%;
    top: 14px;
    transform: translateX(-50%);
    z-index: 5;
    max-width: min(320px, calc(100% - 24px));
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(12, 45, 90, 0.92);
    color: #ffffff;
    border: 1px solid rgba(100, 160, 220, 0.18);
    box-shadow: 0 10px 24px rgba(12, 45, 90, 0.18);
    backdrop-filter: blur(10px);
    pointer-events: none;
    text-align: center;
}

#thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip strong {
    display: block;
    font-size: 13px;
    margin-bottom: 2px;
}

.ta-profile-update-reveal {
    opacity: 0;
    transform: translateY(22px);
    transition:
        opacity 0.72s cubic-bezier(0.22, 1, 0.36, 1),
        transform 0.72s cubic-bezier(0.22, 1, 0.36, 1);
    transition-delay: calc(var(--profile-reveal-order, 0) * 120ms);
}

.ta-profile-update-section.is-visible .ta-profile-update-reveal {
    opacity: 1;
    transform: translateY(0);
}

.ta-profile-update-section {
    background: linear-gradient(135deg, #24558f 0%, #3f79b7 100%);
    padding: 34px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    overflow: hidden;
    min-width: 0;
    box-shadow:
        inset 0 1px 0 rgba(255, 255, 255, 0.1),
        inset 18px 0 32px rgba(255, 255, 255, 0.03);
    transition: background-position .35s ease;
}

.ta-profile-update-card {
    display: flex;
    align-items: center;
    min-height: 100%;
    padding: 0;
    position: relative;
}

.ta-profile-update-card__content {
    max-width: 400px;
    width: 100%;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: center;
    position: relative;
    z-index: 1;
}

.ta-profile-update-card__content > * {
    position: relative;
    z-index: 1;
}

.ta-profile-update-card__eyebrow {
    display: block;
    margin-bottom: 9px;
    color: #7bb8f0;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.ta-profile-update-card__title {
    margin: 0 0 10px;
    color: #ffffff;
    font-size: 19px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.32;
    max-width: none;
}

.ta-profile-update-card__text {
    color: #a8d0f5;
    line-height: 1.6;
    font-size: 13px;
    margin-bottom: 18px !important;
    max-width: none;
}

.ta-profile-update-card__steps {
    margin: 0 0 20px;
    display: grid;
    gap: 9px;
}

.ta-profile-update-card__step {
    display: flex;
    align-items: flex-start;
    gap: 8px;
}

.ta-profile-update-card__step-number {
    width: 16px;
    height: 16px;
    flex: 0 0 16px;
    border-radius: 999px;
    background: rgba(255, 255, 255, 0.12);
    color: #ffffff;
    font-size: 9px;
    font-weight: 500;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
    margin-top: 1px;
}

.ta-profile-update-card__step-text {
    color: #a8d0f5;
    font-size: 12px;
    line-height: 1.5;
    flex: 1 1 auto;
    min-width: 0;
    padding-top: 0;
}

.ta-profile-update-card__actions {
    flex: 0 0 auto;
    position: relative;
    z-index: 1;
}

.ta-profile-update-card__button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    height: 34px;
    padding: 0 18px;
    border-radius: 20px;
    background: #ffffff;
    color: #0a3d7a;
    text-decoration: none;
    font-size: 13px;
    font-weight: 500;
    width: fit-content;
    position: relative;
    border: none;
    cursor: pointer;
    white-space: nowrap;
    box-shadow:
        0 10px 24px rgba(8, 35, 72, 0.22),
        inset 0 1px 0 rgba(255, 255, 255, 0.9);
    transition: transform .18s ease, filter .18s ease, box-shadow .18s ease, background-color .18s ease, color .18s ease;
}

.ta-profile-update-card__button:hover,
.ta-profile-update-card__button:focus {
    background: #f2a24b;
    color: #08203f;
    transform: translateY(-1px);
    filter: none;
    box-shadow:
        0 16px 30px rgba(153, 88, 18, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.4);
}

#thesis_advisor_list_page .ta-profile-update-section .ta-cta-circle {
    position: absolute;
    border-radius: 50%;
    pointer-events: none;
    transition: transform .38s ease, opacity .32s ease;
}

#thesis_advisor_list_page .ta-profile-update-section .circle-1 {
    top: -50px;
    right: -50px;
    width: 180px;
    height: 180px;
    background: rgba(255, 255, 255, 0.06);
}

#thesis_advisor_list_page .ta-profile-update-section .circle-2 {
    bottom: -40px;
    left: -30px;
    width: 130px;
    height: 130px;
    background: rgba(255, 255, 255, 0.05);
}

#thesis_advisor_list_page .ta-profile-update-section .circle-3 {
    top: 50%;
    right: 20px;
    width: 60px;
    height: 60px;
    background: rgba(255, 255, 255, 0.04);
}

#thesis_advisor_list_page .ta-profile-update-card__button:hover {
    transform: translateY(-2px);
    box-shadow:
        0 16px 30px rgba(8, 35, 72, 0.28),
        inset 0 1px 0 rgba(255, 255, 255, 0.95);
}

#thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip span {
    display: block;
    font-size: 13px;
    color: #c7dcf3;
}

@media (min-width: 769px) {
    #thesisAdvisorMoreFiltersModal .modal-dialog{
        width: min(100% - 32px, 760px);
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
    }

    #thesisAdvisorMoreFiltersModal .modal-content{
        width: 100%;
        border-radius: 18px !important;
    }

    #studentMoreFiltersModal .modal-dialog{
        width: min(100% - 32px, 760px);
        max-width: 760px;
        margin-left: auto;
        margin-right: auto;
    }

    #studentMoreFiltersModal .modal-content{
        width: 100%;
        border-radius: 18px !important;
    }
}

/* The Back/Done bar belongs to the mobile drill-down only: above that breakpoint the
   panel is an ordinary popup that closes on an outside click. Hidden by default so a
   header built before a resize to desktop cannot linger; the drill-down rule below
   shows it. */
.filter-drilldown-sheet .filter-drilldown-head {
    display: none;
}

@media (max-width: 991.98px) {
    /* Stay two-up on phones. The sheet now also hosts the three relocated primary
       filters (nine in total), and one column made that a 480px scroll; two columns
       halve it. The three labels too long for a ~150px control get a short form via
       data-button-label-short. */
    #studentMoreFiltersModal .student-modal-filterstack{
        column-gap: 10px;
        row-gap: 12px;
    }

    /* The control reserves 64px on the right for an 18px chevron. At two-up on a 360px
       phone that leaves ~70px of a 150px box for the label, clipping even "Department".
       Reserving just the arrow plus a gap buys back ~30px and fits every label.
       Direct child only: the options panel nests its own "Type to search" input, which
       has no chevron to clear and gets clipped by the same reservation. */
    #studentMoreFiltersModal .student-modal-filterstack .custom-dropdown > input {
        padding-left: 12px !important;
        padding-right: 32px !important;
    }

    /* Drill-down, as mobile filter sheets conventionally do it: opening a filter shows
       its options as a panel over the whole sheet instead of a popup pinned to a ~165px
       grid cell. The options and their "Type to search" box get the full width, the grid
       never re-flows, and none of it depends on the column count or gap.
       .modal-content carries a transform, which makes it the containing block for a
       fixed descendant â€” so inset: 0 resolves to the sheet, not the viewport.
       !important: the panel carries Bootstrap's .w-100 and an inline margin. */
    .filter-drilldown-sheet .custom-dropdown.opened .custom-dropdown-options {
        position: fixed;
        inset: 0;
        width: auto !important;
        margin: 0 !important;
        max-height: none;
        z-index: 30;
        border-radius: 16px;
        overflow-y: auto;
        padding: 0 12px 12px !important;
        /* The popup styling is frosted glass (translucent + blur), which reads fine
           floating over content but leaves the filter grid showing through a panel that
           covers the whole sheet. Both are !important in filters.css. */
        background: #fff !important;
        backdrop-filter: none !important;
        box-shadow: none !important;
    }

    /* A full-sheet panel has no "outside" left to tap, and the framework only closes a
       dropdown on an outside click, so the drill-down supplies its own way back. */
    .filter-drilldown-sheet .filter-drilldown-head {
        display: flex;
        flex-direction: column;
        gap: 8px;
        /* One sticky block holding the back/title/done row plus the search box, so the
           options are the only thing that scrolls and nothing overlaps this header. */
        position: sticky;
        top: 0;
        z-index: 20;
        background: #fff;
        padding: 12px 0 10px;
        margin-bottom: 6px;
        border-bottom: 1px solid rgba(17, 90, 166, 0.12);
    }

    .filter-drilldown-sheet .filter-drilldown-row {
        display: flex;
        align-items: center;
        gap: 10px;
    }

    /* The search box now belongs to the sticky header; strip the sticky/padding it
       carried as a standalone panel child (neutralized inline in JS too). */
    .filter-drilldown-sheet .filter-drilldown-search {
        position: static !important;
        top: auto !important;
        z-index: auto !important;
        padding: 0 !important;
    }

    .filter-drilldown-sheet .filter-drilldown-title {
        flex: 1 1 auto;
        min-width: 0;
        font-weight: 700;
        color: #183b5b;
        font-size: 15px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    .filter-drilldown-sheet .filter-drilldown-back,
    .filter-drilldown-sheet .filter-drilldown-done {
        flex: 0 0 auto;
        border: 0;
        background: none;
        color: #115AA6;
        font-weight: 600;
        font-size: 14px;
        padding: 6px 8px;
        border-radius: 8px;
    }

    .filter-drilldown-sheet .filter-drilldown-done {
        background: rgba(17, 90, 166, 0.08);
    }

    #thesisAdvisorWorldMapSection {
        padding: 28px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-canvas,
    #thesisAdvisorWorldMapSection .ta-worldmap-empty {
        min-height: clamp(220px, 36vw, 300px);
        height: clamp(220px, 36vw, 300px);
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-panel {
        height: clamp(220px, 36vw, 300px);
    }

    .ta-profile-update-section {
        padding: 28px;
    }
}

@media (max-width: 767.98px) {
    #thesis_advisor_list_page {
        padding-top: 20px;
    }

    #thesis_advisor_list_page .ta-title-row {
        gap: 10px;
    }

    #thesis_advisor_list_page .ta-footer-band {
        grid-template-columns: 1fr;
        margin: 68px 12px 0;
    }

    #thesis_advisor_list_page .ta-footer-band::before {
        top: -18px;
        left: 12px;
        right: 12px;
    }

    #thesisAdvisorWorldMapSection {
        padding: 24px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-canvas,
    #thesisAdvisorWorldMapSection .ta-worldmap-empty {
        min-height: 190px;
        height: 190px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-panel {
        height: 190px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-loading {
        inset: 0;
        gap: 10px;
        font-size: 13px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-loading__spinner {
        width: 42px;
        height: 42px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip {
        left: 50%;
        top: 10px;
        max-width: calc(100% - 24px);
        padding: 9px 12px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip strong {
        font-size: 13px;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-inline-tooltip span {
        font-size: 12px;
    }

    .ta-profile-update-section {
        padding: 24px;
    }

    .ta-profile-update-card__title {
        font-size: 17px;
    }

    .ta-profile-update-card__text {
        font-size: 12px;
    }

    .ta-profile-update-card__step-text {
        font-size: 11px;
    }

    .ta-profile-update-card__button {
        align-self: flex-start;
    }
}

@media (prefers-reduced-motion: reduce) {
    #thesis_advisor_list_page .ta-footer-band,
    #thesis_advisor_list_page .ta-footer-band::after,
    #thesis_advisor_list_page .ta-profile-update-section .ta-cta-circle {
        transition: none;
    }

    #thesis_advisor_list_page .ta-footer-band:hover {
        transform: none;
        filter: none;
    }

    #thesis_advisor_list_page .ta-footer-band:hover::after {
        opacity: 0;
        transform: none;
    }

    #thesis_advisor_list_page .ta-footer-band:hover .ta-profile-update-section .circle-1,
    #thesis_advisor_list_page .ta-footer-band:hover .ta-profile-update-section .circle-2,
    #thesis_advisor_list_page .ta-footer-band:hover .ta-profile-update-section .circle-3,
    #thesis_advisor_list_page .ta-footer-band:hover .ta-profile-update-card__button {
        transform: none;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    .ta-profile-update-reveal {
        opacity: 1;
        transform: none;
        transition: none;
    }

    #thesisAdvisorWorldMapSection .ta-worldmap-loading__spinner {
        animation: none;
    }
}

@media (max-width: 479.98px) {
    #thesis_advisor_list_page .ta-footer-band {
        margin-left: 0;
        margin-right: 0;
    }
}

#student_list_page .student-page-states {
    min-height: 600px;
    display: flex;
}

#student_list_page .student-rank-options {
    display: none;
}

#student_list_page .student-rank-label {
    margin-right: 8px;
}

#student_list_page .student-showcase-refresh {
    margin-left: auto;
    margin-right: 0;
    display: none;
}

#student_list_page .student-swiper-stack {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--showcase-gap);
}

#student_list_page .student-swiper-top {
    margin-bottom: var(--showcase-gap);
}

#student_list_page .student-cover-hidden {
    display: none;
}

#student_portal_showcase_cover_wrapper,
#student_portal_browse_cover_wrapper {
    min-height: 0;
}

#student-portal-showcase-cover,
#student-portal-showcase-cover .student-swiper-stack {
    min-height: 0;
}

@media (max-width: 820px) {
    #student_portal_showcase_cover_wrapper,
    #student_portal_browse_cover_wrapper {
        min-height: 0;
    }

    #student-portal-showcase-cover,
    #student-portal-showcase-cover .student-swiper-stack {
        min-height: 0;
    }
    #student-portal-showcase-cover {
        --showcase-row: clamp(190px, 42vw, 240px);
        --showcase-gap: 6px;
    }
    #student-portal-showcase-cover.showcase-ready {
        padding: 10px 0 14px 0;
    }
    #student-portal-showcase-cover.showcase-ready.showcase-single {
        --showcase-row: clamp(170px, 40vw, 220px);
        --showcase-gap: 0px;
    }
}

#student_search_list .student-search-inner,
#student_portal_browse_cover_wrapper .container {
    margin-top: 2.6rem;
    margin-bottom: 1.2rem;
    border-radius: 18px;
    border: 1px solid rgba(17, 90, 166, 0.16);
    background: rgba(255, 255, 255, 0.95);
    box-shadow: 0 14px 30px rgba(17, 24, 39, 0.08);
    padding-top: clamp(1.2rem, 2vw, 1.8rem);
    padding-bottom: clamp(1.2rem, 2vw, 1.8rem);
}

@media (max-width: 480px) {
    #student_search_list .student-search-inner,
    #student_portal_browse_cover_wrapper .container {
        padding-left: 0.6rem;
        padding-right: 0.6rem;
    }
    #student_search_list .student-search-inner.container {
        max-width: 100%;
    }
}

#student_list_page .student-cta-cards-shell {
    display: grid;
    gap: 1rem;
    width: min(100%, 1240px);
    box-sizing: border-box;

    /* Mobile (default) */
    padding: 100px 2rem 50px; /* more horizontal breathing room */
    grid-template-columns: 1fr;
    grid-template-areas:
    "main"
    "upcoming-left"
    "upcoming-right";
}

/* Tablet and up â†’ 3 columns */
@media (min-width: 768px) {
    #student_list_page .student-cta-cards-shell {
        padding: 100px 1rem 50px;
        grid-template-columns: 1fr 1.2fr 1fr;
        grid-template-areas: "upcoming-left main upcoming-right";
    }
}

/* Desktop (optional fine-tuning) */
@media (min-width: 1024px) {
    #student_list_page .student-cta-cards-shell {
        padding: 100px 0 50px;
    }
}
#student_list_page .student-cta-card {
    border-radius: 18px;
    border: 1px solid rgba(255, 255, 255, 0.65);
    background:
        radial-gradient(120px 120px at var(--cta-x, 20%) var(--cta-y, 0%), rgba(255, 255, 255, 0.7), transparent 60%),
        linear-gradient(140deg, rgba(255, 255, 255, 0.58), rgba(255, 255, 255, 0.18));
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    box-shadow: 0 16px 30px rgba(17, 24, 39, 0.09);
    padding: 1rem 1.1rem 1.1rem;
    min-height: 220px;
    display: flex;
    flex-direction: column;
    gap: 0.7rem;
    animation: studentCardRise 0.45s ease-out both;
    position: relative;
    overflow: hidden;
    transform-style: preserve-3d;
    transition: transform 0.25s ease, box-shadow 0.25s ease, border-color 0.25s ease, background 0.25s ease;
    will-change: transform;
    backface-visibility: hidden;
    -webkit-font-smoothing: antialiased;
    --cta-x: 50%;
    --cta-y: 20%;
    --cta-rot-x: 0deg;
    --cta-rot-y: 0deg;
}

#student_list_page .student-cta-card::before {
    content: "";
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: linear-gradient(140deg, rgba(255, 255, 255, 0.75), rgba(17, 90, 166, 0.12), rgba(239, 124, 0, 0.18));
    opacity: 0;
    transition: opacity 0.25s ease;
    z-index: 0;
}

#student_list_page .student-cta-card::after {
    content: "";
    position: absolute;
    inset: 0;
    border-radius: inherit;
    background: radial-gradient(110px 110px at var(--cta-x, 20%) var(--cta-y, 0%), rgba(255, 255, 255, 0.7), transparent 65%);
    opacity: 0.65;
    mix-blend-mode: screen;
    transition: opacity 0.25s ease, transform 0.35s ease;
    z-index: 0;
}

#student_list_page .student-cta-card > * {
    position: relative;
    z-index: 2;
    backface-visibility: hidden;
    transform: translateZ(0);
}

@media (hover: hover) and (pointer: fine) {
    #student_list_page .student-cta-card:hover {
        transform: translateY(-6px) rotateX(var(--cta-rot-x, 0deg)) rotateY(var(--cta-rot-y, 0deg));
        box-shadow: 0 24px 50px rgba(17, 24, 39, 0.16);
        border-color: rgba(255, 255, 255, 0.9);
    }

    #student_list_page .student-cta-card:hover::before {
        opacity: 0.7;
    }

    #student_list_page .student-cta-card:hover::after {
        opacity: 1;
        transform: translateY(-6px);
    }
}

#student_list_page .student-cta-card:focus-within {
    transform: translateY(-4px) rotateX(var(--cta-rot-x, 2deg)) rotateY(var(--cta-rot-y, 0deg));
    box-shadow: 0 20px 44px rgba(17, 24, 39, 0.14);
}

#student_list_page .student-cta-card-student {
    grid-area: main;
    border-color: transparent;
    background:
        radial-gradient(140px 140px at var(--cta-x, 50%) var(--cta-y, 10%), rgba(185, 228, 255, 0.75), transparent 60%),
        linear-gradient(140deg, rgba(255, 255, 255, 0.65), rgba(17, 90, 166, 0.12));
    box-shadow: 0 20px 46px rgba(17, 90, 166, 0.18);
}

#student_list_page .student-cta-card-student::before {
    content: none;
}

#student_list_page .student-cta-card-student:hover::before,
#student_list_page .student-cta-card-student:focus-within::before {
    opacity: 1;
}

#student_list_page .student-cta-card-student .student-profile-cta-btn {
    margin-top: auto;
}

#student_list_page .student-cta-card-upcoming {
    border-style: solid;
    border-color: rgba(255, 255, 255, 0.45);
    background:
        radial-gradient(120px 120px at var(--cta-x, 20%) var(--cta-y, 0%), rgba(255, 255, 255, 0.55), transparent 60%),
        linear-gradient(140deg, rgba(255, 255, 255, 0.36), rgba(17, 90, 166, 0.08));
    box-shadow: 0 12px 26px rgba(17, 24, 39, 0.08);
    filter: saturate(0.92);
}

@keyframes studentBandFlow {
    from {
        transform: rotate(0deg);
    }
    to {
        transform: rotate(360deg);
    }
}

#student_list_page .student-cta-card:nth-child(2) {
    animation-delay: 0.06s;
}

#student_list_page .student-cta-card:nth-child(3) {
    animation-delay: 0.12s;
}

#student_list_page .student-cta-card-title {
    font-weight: 800;
    font-size: 1.05rem;
    color: #013d7c;
    letter-spacing: -0.01em;
}

#student_list_page .student-cta-card-copy {
    margin: 0;
    color: rgba(28, 39, 55, 0.82);
    line-height: 1.55;
    font-size: 0.93rem;
}

#student_list_page .student-cta-soon {
    margin-top: auto;
    align-self: flex-start;
    padding: 0.32rem 0.7rem;
    border-radius: 999px;
    background-color: rgba(17, 90, 166, 0.12);
    border: 1px solid rgba(17, 90, 166, 0.2);
    color: #115aa6;
    font-size: 0.78rem;
    font-weight: 700;
}

@media (prefers-reduced-motion: reduce) {
    #student_list_page .student-cta-card,
    #student_list_page .student-cta-card::before,
    #student_list_page .student-cta-card::after {
        transition: none;
        animation: none;
    }
}

@keyframes studentCardRise {
    from {
        opacity: 0;
        transform: translateY(12px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

/* Thesis advisor grid hard overrides (placed last to beat generic/mobile rules) */
@media (max-width: 480px) {
    #thesis_advisor_list_page #thesis_advisor_hits.ta-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 12px !important;
    }

    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-image-wrapper {
        height: 190px !important;
        min-height: 190px !important;
        max-height: 190px !important;
    }

    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-image-wrapper img,
    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-image-wrapper .skeleton {
        height: 190px !important;
        min-height: 190px !important;
        max-height: 190px !important;
    }

    #thesis_advisor_list_page #thesis_advisor_hits .custom-card-body {
        padding: 12px !important;
        gap: 6px !important;
    }

    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-body-top .custom-card-title:first-child {
        font-size: 14px !important;
        line-height: 1.3;
    }

    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-body-top .custom-card-title + .custom-card-title {
        font-size: 12px !important;
        line-height: 1.3;
    }

    #thesis_advisor_list_page #thesis_advisor_hits .custom-card-subtitle,
    #thesis_advisor_list_page #thesis_advisor_hits .custom-tag,
    #thesis_advisor_list_page #thesis_advisor_hits #custom-card-body-top span {
        font-size: 11px !important;
    }

    #thesis_advisor_list_page #thesis_advisor_hits .ta-accepting-badge {
        width: min(100%, 180px);
        padding: 6px 8px;
        font-size: clamp(8.5px, 2.5vw, 10px);
    }
}

@media (max-width: 359px) {
    #thesis_advisor_list_page #thesis_advisor_hits.ta-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr)) !important;
        gap: 10px !important;
    }
}
