/* NOUN Student Portal 6.31.53 — device-native workspace + focused profile authority. */

/* --------------------------------------------------------------------------
   Focused Profile editor
   -------------------------------------------------------------------------- */
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-page-head{margin-bottom:18px!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-page-head .nsw-back-link{margin-bottom:10px!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-editor-layout{display:grid!important;grid-template-columns:minmax(245px,300px) minmax(0,1fr)!important;gap:18px!important;align-items:start!important;min-width:0!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-photo-column,
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-details-panel{min-width:0!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-details-panel{margin:0!important;padding:22px!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-section-title{display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:14px!important;margin:0 0 18px!important;padding-bottom:13px!important;border-bottom:1px solid var(--sm-line,var(--nsw-border))!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-section-title h2{margin:0!important;font-size:1rem!important;color:var(--sm-text,var(--nsw-text))!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-section-title span{min-width:0!important;max-width:54%!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:var(--sm-muted,var(--nsw-muted))!important;font-size:.72rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-centre-field{grid-column:1/-1!important}

/* Compact avatar manager: retain verification/cropping, remove explanatory clutter. */
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact{margin:0!important;padding:22px!important;border:1px solid var(--sm-line,var(--nsw-border))!important;border-radius:12px!important;background:var(--sm-surface,var(--nsw-white))!important;box-shadow:none!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-compact-heading{margin:0 0 16px!important;padding-bottom:13px!important;border-bottom:1px solid var(--sm-line,var(--nsw-border))!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-compact-heading h2{margin:0!important;color:var(--sm-text,var(--nsw-text))!important;font-size:1rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-body{display:flex!important;flex-direction:column!important;gap:17px!important;align-items:center!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-preview-wrap{width:100%!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-ring{width:112px!important;height:112px!important;margin:0 auto!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-fallback{font-size:1.9rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-controls{width:100%!important;text-align:center!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;width:100%!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions button{width:100%!important;min-height:44px!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-status{min-height:0!important;margin:9px 0 0!important;font-size:.76rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-status:empty{display:none!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-compact-hint{margin:10px 0 0!important;color:var(--sm-muted,var(--nsw-muted))!important;font-size:.68rem!important;line-height:1.45!important}

/* Security is secondary: reveal it only when the student needs it. */
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure{margin-top:18px!important;border:1px solid var(--sm-line,var(--nsw-border))!important;border-radius:12px!important;background:var(--sm-surface,var(--nsw-white))!important;overflow:visible!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary{list-style:none!important;display:grid!important;grid-template-columns:36px minmax(0,1fr) 18px!important;align-items:center!important;gap:11px!important;min-height:64px!important;padding:12px 16px!important;cursor:pointer!important;color:var(--sm-text,var(--nsw-text))!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary::-webkit-details-marker{display:none!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary>span:first-child{display:grid!important;place-items:center!important;width:36px!important;height:36px!important;background:var(--sm-green-soft,var(--nsw-green-100))!important;color:var(--sm-green,var(--nsw-green-700))!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary>span:first-child svg{width:17px!important;height:17px!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary>span:nth-child(2){display:flex!important;flex-direction:column!important;min-width:0!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary strong{font-size:.82rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary small{margin-top:2px!important;color:var(--sm-muted,var(--nsw-muted))!important;font-size:.68rem!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary>svg{width:16px!important;height:16px!important;color:var(--sm-muted,var(--nsw-muted))!important;transition:transform .16s ease!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure[open]>summary>svg{transform:rotate(180deg)!important}
body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-body{padding:18px!important;border-top:1px solid var(--sm-line,var(--nsw-border))!important}

/* --------------------------------------------------------------------------
   Tablet-native shell — persistent navigation rail instead of phone UI.
   Covers common 8–13 inch portrait/small-landscape widths.
   -------------------------------------------------------------------------- */
@media (min-width:760px) and (max-width:1100px){
  body.nsp-private-workspace #nsp-app#nsp-app .nsp-dash.nsp-workspace{display:grid!important;grid-template-columns:88px minmax(0,1fr)!important;padding-bottom:0!important;min-height:100dvh!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-workspace-column{grid-column:2!important;min-width:0!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar{display:flex!important;position:fixed!important;inset:0 auto 0 0!important;width:88px!important;height:100dvh!important;transform:none!important;visibility:visible!important;overflow:hidden!important;background:linear-gradient(180deg,#0d2b22 0%,#10251f 62%,#0c211a 100%)!important;color:#fff!important;box-shadow:none!important;z-index:1000!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-mobile-directory{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-brand-block{display:block!important;padding:16px 10px 13px!important;border-bottom:1px solid rgba(255,255,255,.1)!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-brand{justify-content:center!important;gap:0!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-brand>span:first-child{width:48px!important;height:48px!important;margin:0!important;border-radius:12px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-brand>span:last-child{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-student-compact{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav{display:flex!important;flex:1!important;flex-direction:column!important;gap:7px!important;padding:14px 10px!important;overflow-y:auto!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsp-nav-item{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;width:68px!important;min-height:62px!important;padding:7px 4px!important;margin:0!important;border-radius:10px!important;color:#c8d6d0!important;text-align:center!important;font-size:10px!important;font-weight:650!important;line-height:1.1!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsp-nav-item>svg{width:21px!important;height:21px!important;flex:0 0 21px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsp-nav-item>span{display:block!important;max-width:64px!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;color:inherit!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsp-nav-item.active{background:rgba(255,255,255,.11)!important;color:#fff!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsp-nav-item.active:before{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-primary-nav .nsw-nav-badge{position:absolute!important;top:4px!important;right:6px!important;min-width:18px!important;height:18px!important;padding:0 4px!important;font-size:9px!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help{display:flex!important;position:relative!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;width:68px!important;min-height:64px!important;margin:auto 10px 8px!important;padding:7px 4px!important;border:1px solid rgba(255,255,255,.13)!important;border-radius:10px!important;background:rgba(255,255,255,.055)!important;color:#fff!important;text-align:center!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help>span{width:28px!important;height:28px!important;background:rgba(94,224,161,.12)!important;color:#8af1bd!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help>span svg{width:16px!important;height:16px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help>div{display:block!important;min-width:0!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help strong{display:block!important;font-size:9px!important;line-height:1.15!important;color:#fff!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help small,
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-help>svg{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-support-badge{position:absolute!important;top:4px!important;right:5px!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-logout{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:4px!important;width:88px!important;min-height:64px!important;padding:8px 4px!important;border-top:1px solid rgba(255,255,255,.09)!important;color:#e7b7b7!important;font-size:9px!important;line-height:1.1!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-logout svg{width:20px!important;height:20px!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-mobile-nav{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-topbar .nsp-hdr-hamburger{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-topbar-inner{display:grid!important;grid-template-columns:minmax(90px,auto) minmax(220px,1fr) auto!important;gap:14px!important;min-height:66px!important;padding:9px 18px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-topbar .nsp-hdr-title{display:block!important;font-size:.9rem!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-global-search{display:flex!important;position:relative!important;inset:auto!important;width:100%!important;height:44px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-mobile-search-button{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-support-button{display:grid!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-user-button .nsp-user-name,
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-user-button .nsp-user-chevron{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-user-button{padding:4px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp-main.nsw-main{padding:24px 22px 38px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-footer{padding-bottom:18px!important}

  body.nsp-private-workspace #nsp-app#nsp-app :is(.nsw-service-grid,.nsw-account-grid,.nsw-tool-grid,.nsw-study-overview-grid,.nsw-minimal-recent-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-today-grid{grid-template-columns:minmax(0,1fr)!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-today-side{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:14px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-editor-layout{grid-template-columns:minmax(210px,250px) minmax(0,1fr)!important;gap:16px!important}
}

/* Touch tablets receive desktop-quality layout with touch-native hit targets. */
@media (min-width:760px) and (max-width:1100px) and (pointer:coarse){
  body.nsp-private-workspace #nsp-app#nsp-app :is(button,a,input,select,textarea){touch-action:manipulation}
  body.nsp-private-workspace #nsp-app#nsp-app :is(.nsw-icon-button,.nsp-user-button,.nsw-primary-button,.nsw-secondary-button){min-height:44px!important}
}

/* --------------------------------------------------------------------------
   Phone drawer — Need Support is fixed inside the OPEN drawer only.
   -------------------------------------------------------------------------- */
@media (max-width:759px){
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar{width:min(360px,94vw)!important;transform:translateX(-100%)!important;visibility:hidden!important;background:#fff!important;color:#17251e!important;overflow:hidden!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open{transform:translateX(0)!important;visibility:visible!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar :is(.nsw-primary-nav,.nsw-student-compact,.nsw-brand-block){display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-mobile-directory{display:block!important;flex:1!important;min-height:0!important;padding:20px 22px 154px!important;overflow-y:auto!important;overscroll-behavior:contain!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar .nsw-sidebar-help{display:none!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help{display:grid!important;position:absolute!important;left:12px!important;right:12px!important;bottom:62px!important;width:auto!important;min-height:58px!important;margin:0!important;padding:10px 11px!important;grid-template-columns:34px minmax(0,1fr) 18px!important;align-items:center!important;gap:9px!important;border:1px solid #cbd8d0!important;border-radius:9px!important;background:#f2f7f4!important;color:#17251e!important;box-shadow:0 8px 20px rgba(23,37,30,.08)!important;z-index:4!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help>span{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;background:#e0f0e6!important;color:#145c38!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help>span svg{width:18px!important;height:18px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help>div{display:flex!important;flex-direction:column!important;min-width:0!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help strong{color:#17251e!important;font-size:.8rem!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help small{display:block!important;margin-top:2px!important;color:#53645a!important;font-size:.67rem!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help>svg{display:block!important;width:16px!important;height:16px!important;color:#64756b!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar-support-badge{position:absolute!important;right:34px!important;top:7px!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar .nsw-logout{position:absolute!important;left:0!important;right:0!important;bottom:0!important;display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:10px!important;width:100%!important;min-height:52px!important;padding:10px 22px!important;border-top:1px solid #d8e1db!important;background:#fff!important;color:#8b2e35!important;font-size:.76rem!important;z-index:5!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar .nsw-logout svg{width:18px!important;height:18px!important}

  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-editor-layout{grid-template-columns:minmax(0,1fr)!important;gap:14px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-details-panel{padding:18px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-section-title{align-items:flex-start!important;flex-direction:column!important;gap:4px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-section-title span{max-width:100%!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-grid{grid-template-columns:minmax(0,1fr)!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-centre-field{grid-column:auto!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact{padding:18px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-body{display:grid!important;grid-template-columns:100px minmax(0,1fr)!important;gap:16px!important;text-align:left!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-ring{width:96px!important;height:96px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-controls{text-align:left!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions{display:flex!important;flex-wrap:wrap!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions button{width:auto!important;flex:1 1 120px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-body{padding:16px!important}
}

@media (max-width:430px){
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-body{grid-template-columns:minmax(0,1fr)!important;text-align:center!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-controls{text-align:center!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions{display:grid!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsp610-avatar-manager.is-compact .nsp610-avatar-actions button{width:100%!important}
}

/* Landscape phones / unusually short viewports: preserve reachability. */
@media (max-width:759px) and (max-height:560px){
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-mobile-directory{padding-bottom:128px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help{min-height:48px!important;padding-block:7px!important}
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-sidebar.open .nsw-sidebar-help small{display:none!important}
}

@media (prefers-reduced-motion:reduce){
  body.nsp-private-workspace #nsp-app#nsp-app .nsw-profile-security-disclosure>summary>svg{transition:none!important}
}
