/* NCET cross-page responsive improvements; additive to legacy styles. */
:root{--ncet-focus:#f6872a}
html{min-width:0}
body{min-width:0}
img,video,canvas{max-width:100%;height:auto}
*{overflow-wrap:break-word}
.container,.shell,.main,.content,.panel,.card,.service-card,.intro-grid>*,.experience-grid>*{min-width:0}
input,textarea,select{max-width:100%;min-width:0}
a,button{touch-action:manipulation}
.table-wrap,[class*="table-scroll"]{max-width:100%;overflow-x:auto;overscroll-behavior-x:contain}
table{max-width:100%}
.shell-head,.row,.nav-inner,.panel-header,.modal-top{min-width:0}
.user-details,.info-row>div,.service-card-content{min-width:0}
pre,code{white-space:pre-wrap;overflow-wrap:anywhere}
:where(button,a,input,textarea,select):focus-visible{outline:3px solid var(--ncet-focus);outline-offset:3px}
:where(.navlinks,.actions,.roster-tools){flex-wrap:wrap}

/* The supplied transparent crest has white lettering: keep the identity dark.
   No animation alters or rotates the institutional artwork. */
.identity-panel{background:linear-gradient(155deg,#102d62 0%,#0e2455 75%);color:#fff;border:1px solid #40577c}
.identity-panel-top,.identity-panel-bottom{border-color:#ffffff30}
.identity-kicker,.identity-heading,.identity-sub,.identity-panel-bottom{color:#fff!important}
.identity-heading{font-size:clamp(17px,2vw,21px)!important;font-weight:720!important}
.identity-halo{background:radial-gradient(circle,#79bd7822,transparent 70%)}
.identity-crest{display:block;width:min(380px,95%);max-width:100%;height:min(240px,35vw);min-height:130px;margin:0 auto;object-fit:contain;filter:drop-shadow(0 12px 21px #0003)}
.identity-panel-bottom img{max-width:110px;max-height:48px}
/* Original transparent college crest: no inversion or blending */
.identity-crest{filter:none;mix-blend-mode:normal}

.server-profile-links ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:10px 22px;list-style:none;padding:0;margin:18px 0 0}
.server-profile-links li{padding:10px 12px;border:1px solid #dde6f0;border-radius:9px}
.server-profile-links li a{font-weight:700;display:block}
.server-profile-links .muted{font-size:12px}
.cleanup-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));gap:16px}
.cleanup-card{background:#fff;border:1px solid #dfe5ee;border-radius:12px;padding:20px;display:flex;flex-direction:column;gap:12px}
.cleanup-card h3{font-size:16px;margin:0;color:#0e2455}
.cleanup-card p{font-size:13px;line-height:1.6;color:#526179;margin:0}
.cleanup-card .cleanup-footer{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cleanup-card .cleanup-count{font-size:22px;font-weight:750;color:#0e2455}
.cleanup-card .cleanup-risk{color:#9c2828;font-weight:700;font-size:12px}
.cleanup-confirm-phrase{background:#f4f6f9;padding:10px;border-radius:7px;user-select:all;font-weight:750;overflow-wrap:anywhere}
.cleanup-dialog .modal-body{max-height:calc(100dvh - 200px);overflow:auto}
.modal-layer .modal{max-width:min(680px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto}
.app-shell .main,.app-shell .content{min-width:0}
.app-shell .content{max-width:100%}

/* A restrained 1.5-second shine replaces rotating submit spinners.
   Busy state lasts as long as the actual network operation. */
button[aria-busy="true"]::before,
.btn[aria-busy="true"]::before{
 content:""!important;display:inline-block!important;flex:0 0 22px!important;
 width:22px!important;height:22px!important;margin-right:7px!important;
 border:0!important;border-radius:0!important;
 background:transparent url('/static/ncet-brand.svg') center / contain no-repeat!important;
 transform:none!important;opacity:.65;vertical-align:middle;
 animation:ncet-logo-shine 1.5s ease-in-out infinite!important
}
.spinner{display:inline-block!important;width:24px!important;height:24px!important;border:0!important;border-radius:0!important;background:transparent url('/static/ncet-brand.svg') center / contain no-repeat!important;animation:ncet-logo-shine 1.5s ease-in-out infinite!important}
@keyframes ncet-logo-shine{0%,100%{opacity:.5;filter:brightness(.95)}50%{opacity:1;filter:brightness(1.35)}}
@media(max-width:1000px){
 .experience-grid,.intro-grid{grid-template-columns:minmax(0,1fr)!important;gap:27px}
 .identity-panel{max-width:680px;margin-inline:auto;width:100%}
 .footer-content{grid-template-columns:repeat(2,minmax(0,1fr))}
 .app-shell .content{padding-inline:clamp(12px,2vw,24px)}
 .login-page{grid-template-columns:1fr!important}
 .login-art{min-height:230px!important}
 .login-right{padding:30px 20px!important}
}
@media(max-width:720px){
 .container{padding-inline:16px}
 .topnav{height:auto;min-height:64px}
 .nav-inner{align-items:flex-start;gap:10px;flex-wrap:wrap;padding-block:10px}
 .navlinks{width:100%;justify-content:flex-start;gap:4px}
 .navlinks a{font-size:12px;min-height:40px;display:inline-flex;align-items:center;padding:8px 10px}
 .brand{max-width:100%}
 .hero-content h1{font-size:clamp(32px,8.5vw,46px)!important}
 .intro{padding:46px 0}
 .identity-center{padding:16px}
 .identity-crest{width:min(300px,100%);height:180px}
 .identity-panel-top,.identity-panel-bottom{padding:12px 16px}
 .service-grid,.guide-grid,.cards,.feature-split,.split,.social-grid,.two,.manage-grid,.split-grid{grid-template-columns:minmax(0,1fr)!important}
 .footer-content{grid-template-columns:1fr}
 .footer-bottom,.shell-head,.panel-header{flex-direction:column;align-items:flex-start}
 .footer-bottom{gap:7px}
 .profile-search-row{flex-direction:column}
 .profile-search-row input,.profile-search-row button{width:100%}
 .shell{padding-inline:14px;margin-block:23px 50px}
 .panel,.card,.service-card{padding:clamp(14px,4vw,22px)}
 .edit-student-form{grid-template-columns:minmax(0,1fr)!important}
 .row{flex-wrap:wrap}
 .app-shell .main{width:100%;min-width:0}
 .app-shell .content{padding-inline:12px!important}
 .login-art{padding:26px!important}
 .user-item{flex-wrap:wrap;gap:10px}
 .user-item button{min-height:42px}
 .modal-layer{padding:10px!important}
}
@media(max-width:390px){
 .container{padding-inline:12px}
 .identity-panel-bottom{flex-wrap:wrap;gap:10px}
 .identity-panel-bottom img{height:35px}
 .actions .btn{width:100%}
 .topnav .brand span{font-size:13px}
 .navlinks a{font-size:11px;padding:7px 8px}
 .service-card{gap:9px}
}
@media(prefers-reduced-motion:reduce){
 button[aria-busy="true"]::before,.spinner{animation:none!important;opacity:1!important;filter:none!important}
 *{scroll-behavior:auto!important}
}
