/* Final application rhythm. Media, document paper and status colours keep
   their own design; interaction feedback never changes saved application data. */
@media screen {
html[data-ag-theme][data-ag-ui]{--ag-feedback-time:440ms;--ag-press-time:130ms}
html[data-ag-theme][data-ag-ui] :is(h1,h2,h3){overflow-wrap:break-word}
html[data-ag-theme][data-ag-ui] :is(button,summary,a,input,select,textarea){-webkit-tap-highlight-color:transparent}
html[data-ag-theme][data-ag-ui] :where(button:not(:disabled):not([aria-disabled=true])){
 transition:background-color .18s ease,border-color .18s ease,color .18s ease,box-shadow .22s ease,scale var(--ag-press-time) ease;
}
html[data-ag-theme][data-ag-ui] :where(button:not(:disabled):not([aria-disabled=true])):active{scale:.975}
html[data-ag-theme][data-ag-ui] :is(button,a,summary,input,select,textarea):focus-visible{outline:2px solid var(--theme-accent);outline-offset:3px}
html[data-ag-theme][data-ag-ui] :is(input,textarea,select)[aria-invalid=true]{border-color:var(--theme-danger)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--theme-danger) 13%,transparent)}
html[data-ag-theme][data-ag-ui] :is(input,textarea,select):disabled{cursor:not-allowed}

/* Expanded labels may wrap; counters always keep a place inside the rail. */
html[data-ag-ui=campus][data-ag-theme] .ag-campus-navigation .ag-nav-label{min-width:0;flex:1;white-space:normal;overflow-wrap:anywhere;line-height:1.4}
html[data-ag-ui=campus][data-ag-theme] .ag-campus-navigation :is(.pending-count,[data-message-count]){flex:none;margin-left:auto}
html[data-ag-ui=campus][data-ag-theme]:not([data-ag-nav=expanded]) .ag-campus-navigation :is(.pending-count,[data-message-count]):not([hidden]){position:absolute;top:1px;right:0;margin:0;min-width:15px;height:17px;padding:0 4px;font-size:9px!important}
html[data-ag-ui=campus][data-ag-theme][data-ag-nav=expanded] .ag-campus-navigation .ag-nav-items>a{min-height:44px;height:auto;gap:9px}

/* Page headings follow the same readable measure without fixed heights. */
html[data-ag-ui=campus][data-ag-theme] :is(.home-welcome,.studio-welcome,.messages-page-heading){min-width:0}
html[data-ag-ui=campus][data-ag-theme] :is(.home-welcome,.studio-welcome)>div{min-width:0}
html[data-ag-ui=campus][data-ag-theme] :is(.home-greeting,.home-intro,.studio-welcome-note,.home-username){overflow-wrap:anywhere}
html[data-ag-ui=campus][data-ag-theme] .education-section-band{border-radius:var(--theme-radius);gap:clamp(16px,2.2vw,28px)}
html[data-ag-ui=campus][data-ag-theme] .education-band-copy{min-width:0}
html[data-ag-ui=campus][data-ag-theme] .education-band-mark{flex:none}
html[data-ag-ui=campus][data-ag-theme] body>.admin-pending-notice{min-height:36px;padding:8px 14px;margin-top:12px;margin-bottom:0;font-size:12px;line-height:1.5}
html[data-ag-ui=campus][data-ag-theme] body>.admin-pending-notice+.admin-pending-notice{margin-top:6px}
html[data-ag-ui=campus][data-ag-theme] main:has(>.admin-workspace)>.back-modules{display:block;width:fit-content;max-width:100%;margin:20px 0 14px}
html[data-ag-ui=campus][data-ag-theme] main:has(>.admin-workspace)>.admin-requests-shortcut{display:inline-flex;align-items:center;justify-content:center;max-width:100%;min-height:40px;margin:0 8px 12px 0!important;padding:9px 14px;box-sizing:border-box;line-height:1.5;vertical-align:top;white-space:normal;text-align:left}

/* These finite signals confirm a visible update, never an assumed success. */
.ag-feedback-updated{animation:ag-feedback-arrival var(--ag-feedback-time,440ms) ease-out}
.ag-counter-updated{animation:ag-counter-arrival 380ms cubic-bezier(.2,.8,.2,1)}
@keyframes ag-feedback-arrival{from{opacity:.55;translate:0 3px}to{opacity:1;translate:0 0}}
@keyframes ag-counter-arrival{0%{scale:.8}50%{scale:1.13}100%{scale:1}}
@media(max-width:700px){
 html[data-ag-ui=campus][data-ag-theme] .education-section-band{padding:20px 18px}
 html[data-ag-ui=campus][data-ag-theme] .education-band-number{font-size:clamp(38px,10vw,60px)}
 html[data-ag-ui=campus][data-ag-theme] .education-band-copy h1{font-size:clamp(23px,5.5vw,34px)}
 html[data-ag-ui=campus][data-ag-theme] .education-band-mark{display:none}
}
@media(prefers-reduced-motion:reduce){
 html[data-ag-theme][data-ag-ui] :where(button),.ag-feedback-updated,.ag-counter-updated{animation:none!important;transition:none!important;scale:none!important;translate:none!important}
}
html[data-ag-motion=reduced][data-ag-ui] :where(button),html[data-ag-motion=reduced] :is(.ag-feedback-updated,.ag-counter-updated){animation:none!important;transition:none!important;scale:none!important;translate:none!important}
@media(forced-colors:active){html[data-ag-theme][data-ag-ui] :is(button,a,summary,input,select,textarea):focus-visible{outline-color:Highlight}}
}
