/* Shared account control (far right of the campus header) and contextual sign-in dialog.
   State is carried by glyph shape and accessible text; colour is never the only cue.
   Minimum 44×44px activation target, visible focus, reduced-motion aware. */
[data-lv-identity-concealed]{display:none!important}
/* Standalone login/enrollment pages: the requested destination is named above the form. */
.login-return-intent{margin:0 0 .85rem;padding:.55rem .75rem;border-radius:10px;background:#e7f0ec;color:#2b4744;font-size:.9375rem;line-height:1.5}
.login-return-intent strong{color:#173d3b;font-weight:650}
.lv-account{flex-shrink:0;position:relative;margin-left:4px}
.lv-account-button{display:inline-grid;place-items:center;position:relative;width:44px;min-width:44px;height:44px;padding:0;border:1px solid #b2c7be;border-radius:50%;background:#fff;color:#173d3b;cursor:pointer;list-style:none;text-decoration:none;box-sizing:border-box}
.lv-account-label{display:none;font:650 14px/1 Inter,system-ui,sans-serif;white-space:nowrap}
.lv-account-button::-webkit-details-marker{display:none}
.lv-account-menu>summary{display:inline-grid}
.lv-account-glyph{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.lv-account-avatar{font:700 15px/1 Inter,system-ui,sans-serif;letter-spacing:.02em}
.lv-account-badge{position:absolute;right:-4px;bottom:-4px;width:18px;height:18px;padding:2px;border-radius:50%;border:2px solid #f7faf8;background:#173d3b;color:#fff;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;box-sizing:border-box;display:none}
.lv-account-badge-text{display:none;place-items:center;font:700 11px/1 Inter,system-ui,sans-serif;stroke:none}
.lv-account[data-state=authenticated] .lv-account-badge-check{display:block;background:#17645a}
.lv-account[data-state=anonymous] .lv-account-badge-login{display:block}
.lv-account[data-state=expired] .lv-account-badge-warning{display:block;background:#8a4b12}
.lv-account[data-state=unknown] .lv-account-badge-unknown,.lv-account[data-state=checking] .lv-account-badge-unknown{display:grid;background:#617973}
.lv-account[data-state=study] .lv-account-badge-text{display:grid;background:#254b73}
.lv-account[data-state=checking] .lv-account-button{opacity:.75}
.lv-account[data-stale=true] .lv-account-badge-check{display:none}
.lv-account[data-stale=true] .lv-account-badge-unknown{display:grid;background:#617973}
.lv-account-button:hover{border-color:#17645a}
.lv-account-button:focus-visible{outline:3px solid #aa6137;outline-offset:3px}
.lv-account-menu{position:relative}
.lv-account-panel{position:absolute;right:0;top:calc(100% + 8px);width:min(300px,calc(100vw - 32px));padding:14px;border:1px solid #d5dfdf;border-radius:14px;background:#fff;box-shadow:0 12px 32px #163e3826;z-index:60;color:#173d3b;font:500 14px/1.5 Inter,system-ui,sans-serif}
.lv-account-identity{margin:0 0 10px;padding:0 4px}
.lv-account-identity strong{display:block;font-size:16px}
.lv-account-identity small{display:block;color:#486460;font-size:12px;margin-top:2px}
.lv-account-impersonation{margin:0 0 10px;padding:8px 10px;border-radius:8px;background:#fff0d0;color:#705013;font-size:12px}
.lv-account-links{display:grid;gap:0;margin:0 0 8px}
.lv-account-links a{display:block;padding:10px 8px;border-radius:8px;color:inherit;text-decoration:none;min-height:44px;box-sizing:border-box}
.lv-account-links a:hover{background:#e7f0ec;text-decoration:none}
.lv-account-logout{display:block;width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid #b2c7be;border-radius:10px;background:#f7faf8;color:inherit;font:inherit;font-weight:650;text-align:left;cursor:pointer;text-decoration:none;box-sizing:border-box}
.lv-account-logout:hover{border-color:#17645a}
.lv-account-panel .logout-status{margin:8px 4px 0;font-size:12px;color:#486460}
.lv-navigation .lv-account-panel a:focus-visible,.lv-account-logout:focus-visible{outline:3px solid #aa6137;outline-offset:2px}

/* Contextual sign-in dialog: native modal; the page behind stays untouched. */
.lv-account-dialog{width:min(480px,calc(100vw - 24px));max-height:min(92vh,calc(100dvh - 24px));margin:auto;padding:0;border:1px solid #d5dfdf;border-radius:20px;background:#fff;color:#173d3b;box-shadow:0 24px 64px #163e3840;font:400 16px/1.55 Inter,system-ui,sans-serif;overflow:auto;box-sizing:border-box}
.lv-account-dialog::backdrop{background:#0f2523a6}
.lv-account-dialog-inner{position:relative;padding:28px clamp(18px,5vw,32px) 24px}
.lv-account-dialog-close{position:absolute;top:10px;right:10px;margin:0}
.lv-account-dialog-x{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:transparent;color:#486460;font:400 28px/1 Inter,system-ui,sans-serif;cursor:pointer}
.lv-account-dialog-x:hover{background:#e7f0ec;color:#173d3b}
.lv-account-dialog-x:focus-visible{outline:3px solid #aa6137;outline-offset:2px}
.lv-account-dialog-eyebrow{margin:0 44px 6px 0;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#486460}
.lv-account-dialog h2{margin:0 44px 8px 0;font:650 clamp(1.15rem,4vw,1.5rem)/1.25 Inter,system-ui,sans-serif;letter-spacing:-.3px;hyphens:manual;overflow-wrap:normal}
.lv-account-dialog-intent{margin:0 0 18px;padding:10px 12px;border-radius:10px;background:#e7f0ec;font-size:14px}
.lv-account-dialog-intent strong{font-weight:650}
.lv-account-dialog .login-fields{display:grid;gap:12px}
.lv-account-dialog form{display:grid;gap:10px;margin:0}
.lv-account-dialog label{font-weight:600;font-size:14px}
.lv-account-dialog input,.lv-account-dialog select{width:100%;min-height:44px;padding:10px 12px;border:1px solid #b2c7be;border-radius:10px;font:inherit;font-size:16px;color:inherit;background:#fff;box-sizing:border-box}
.lv-account-dialog input:focus-visible,.lv-account-dialog select:focus-visible{outline:3px solid #aa6137;outline-offset:2px}
.lv-account-dialog button[type=submit],.lv-account-dialog-button{display:inline-block;min-height:44px;padding:10px 18px;border:1px solid #17645a;border-radius:24px;background:#17645a;color:#fff;font:650 15px/1.4 Inter,system-ui,sans-serif;cursor:pointer;text-decoration:none;box-sizing:border-box}
.lv-account-dialog button[type=submit]:focus-visible,.lv-account-dialog-button:focus-visible{outline:3px solid #aa6137;outline-offset:3px}
.lv-account-dialog .login-resend,.lv-account-dialog #otp-change-contact{min-height:44px;padding:8px 12px;border:1px solid #b2c7be;border-radius:24px;background:#fff;color:inherit;font:inherit;font-size:14px;cursor:pointer}
.lv-account-dialog .login-channel summary{cursor:pointer;font-size:14px;color:#486460;padding:6px 0;min-height:44px;display:flex;align-items:center}
.lv-account-dialog .login-contact-summary{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:14px}
.lv-account-dialog .login-contact-summary p{margin:0}
.lv-account-dialog #otp-status{margin:0;font-size:14px;color:#486460;min-height:1.4em}
.lv-account-dialog .login-task-context{margin:0;font-size:14px;color:#486460}
.lv-account-dialog .login-enroll{margin:6px 0 0;font-size:14px}
.lv-account-dialog .login-legal{margin:8px 0 0;font-size:12px;color:#486460;display:flex;gap:8px}
.lv-account-dialog a{color:#17645a}
.lv-account-dialog-note{margin:12px 0 0;font-size:13px;color:#486460}
.lv-account-dialog [aria-busy=true]{opacity:.7}
body:has(.lv-account-dialog[open]){overflow:hidden}
@media(prefers-reduced-motion:no-preference){.lv-account-dialog[open]{animation:lv-account-dialog-in .16s ease-out}@keyframes lv-account-dialog-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}}
/* The workspace shell stacks its studio navigation above the header; an open account menu must win. */
.site-header.lv-workspace-header:has(.lv-account-menu[open]){z-index:45}
@media(min-width:901px){
  .lv-account:not([data-state=authenticated]) .lv-account-button{width:auto;padding:0 14px 0 10px;border-radius:22px;grid-auto-flow:column;gap:8px}
  .lv-account:not([data-state=authenticated]) .lv-account-label{display:inline}
}
@media(max-width:900px){
  .lv-navigation-utilities .lv-navigation-actions{order:30}
  .lv-workspace-header .lv-navigation-utilities{flex:1 1 100%;flex-wrap:wrap;justify-content:flex-end;max-width:100%}
  .lv-workspace-header .lv-navigation-actions{flex:1 1 100%;min-width:0;justify-content:flex-end}
  .lv-account{margin-left:0}
  .lv-account-panel{right:0}
}
