/*
 * Law United authenticated experience
 *
 * This final layer tightens the signed-in product without changing the public
 * or authentication surfaces. It intentionally loads after ultimate-polish.css.
 */

/* Professional type scale: editorial, not poster-sized. Long legal names and
   holdings must remain scannable without pushing useful content below fold. */
body:is(.logged-in,.guest-workspace) .sidebar .nav-item{
  min-height:2.5rem;
  padding-inline:.6875rem;
  gap:.6875rem;
  font-size:.875rem;
  font-weight:550;
  line-height:1.25;
}
body:is(.logged-in,.guest-workspace) .sidebar .nav-item.active{font-weight:700}
body:is(.logged-in,.guest-workspace) .sidebar .nav-icon{
  width:1.0625rem;
  min-width:1.0625rem;
  flex:0 0 1.0625rem;
  font-size:1rem;
}
body:is(.logged-in,.guest-workspace) .sidebar .nav-icon svg{width:1.0625rem;height:1.0625rem}
body:is(.logged-in,.guest-workspace) .sidebar .nav-group-label{
  margin:1.125rem .6875rem .375rem;
  font-size:.625rem;
  line-height:1.25;
  letter-spacing:.0875rem;
}
body:is(.logged-in,.guest-workspace) .sidebar .nav-group-label:first-child{margin-top:0}
body:is(.logged-in,.guest-workspace) .sidebar .badge{font-size:.625rem;line-height:1.2}
body:is(.logged-in,.guest-workspace) :is(.judgment-app-hero,.jobs-hero,.events-hero,.firms-hero,.colleges-hero) h1{font-size:clamp(2rem,2.8vw,2.625rem)!important;line-height:1.08!important;letter-spacing:-.035em!important}
body:is(.logged-in,.guest-workspace) .judgment-reader>header h1{max-width:48rem;font-size:clamp(2.25rem,3.1vw,3rem)!important;line-height:1.08!important;letter-spacing:-.035em!important}
body:is(.logged-in,.guest-workspace) :is(.name-row,.firm-profile-name,.college-profile-identity,.event-detail-card,.job-detail-card) h1{font-size:clamp(1.75rem,2.35vw,2.125rem)!important;line-height:1.13!important;letter-spacing:-.025em!important}
body:is(.logged-in,.guest-workspace) :is(.article-hero,.article-editor-intro) h1{font-size:clamp(2rem,3.2vw,2.75rem)!important;line-height:1.08!important}
body:is(.logged-in,.guest-workspace) .judgment-reader section>h2{font-size:clamp(1.375rem,1.8vw,1.625rem)!important;line-height:1.28!important}
body:is(.logged-in,.guest-workspace) .judgment-reader section>h3{font-size:clamp(1.125rem,1.4vw,1.25rem)!important}
body:is(.logged-in,.guest-workspace) :is(.judgment-news-card,.firm-card,.college-card) :is(h2,h3){font-size:clamp(1.125rem,1.5vw,1.375rem)!important;line-height:1.3!important}
@media(max-width:50rem){body:is(.logged-in,.guest-workspace) .judgment-reader>header h1{font-size:clamp(1.875rem,8vw,2.25rem)!important}body:is(.logged-in,.guest-workspace) :is(.judgment-app-hero,.jobs-hero,.events-hero,.firms-hero,.colleges-hero) h1{font-size:clamp(1.75rem,7.5vw,2.125rem)!important}}

.drafting-assistant-slot a.drafting-assistant-btn {
  color: #24483c;
  cursor: pointer;
  text-decoration: none;
}

.drafting-assistant-slot a.drafting-assistant-btn:hover,
.drafting-assistant-slot a.drafting-assistant-btn:focus-visible {
  border-color: #8da99e;
  background: linear-gradient(145deg, #f8faf7, #e4eee8);
  box-shadow: 0 8px 20px rgba(21, 63, 51, .12);
  outline: 3px solid rgba(193, 151, 82, .28);
  outline-offset: 2px;
}

:root {
  /* One invariant navigation rail across the signed-in application.  The
     home grid, directory views and detail views must never size it
     independently when the route changes. */
  --auth-rail-width: 15rem;
  --auth-rail-gap: 2rem;
  --auth-rail-top-gap: 1.5rem;
  --auth-rail-bottom-gap: 1rem;
  --auth-rail-left: max(
    var(--page-gutter, 2.125rem),
    calc((100vw - var(--page-frame, 96.25rem)) / 2 + var(--page-gutter, 2.125rem))
  );
}

/* Full-page routes carry their own page gutter. Offset that padding in the
   outer margin so their first visible panel starts on the same grid line as
   the home feed instead of receiving the gutter twice. */
@media (min-width: 62.5625rem) {
  body:is(.logged-in,.guest-workspace).profile-view > .profile-page,
  body:is(.logged-in,.guest-workspace).jobs-view > .jobs-page,
  body:is(.logged-in,.guest-workspace).events-view > .events-page,
  body:is(.logged-in,.guest-workspace).firms-view > .firms-page,
  body:is(.logged-in,.guest-workspace).colleges-view > .colleges-page {
    width: auto !important;
    max-width: none !important;
    margin-left: calc(var(--auth-rail-left) + var(--auth-rail-width) + var(--auth-rail-gap) - var(--page-gutter, 2.125rem)) !important;
    margin-right: max(0px, calc(var(--auth-rail-left) - var(--page-gutter, 2.125rem))) !important;
  }

  body:is(.logged-in,.guest-workspace).article-view > .article-page,
  body:is(.logged-in,.guest-workspace).article-editor-view > .article-editor-page {
    width: auto !important;
    max-width: none !important;
    margin-left: calc(var(--auth-rail-left) + var(--auth-rail-width) + var(--auth-rail-gap)) !important;
    margin-right: var(--auth-rail-left) !important;
  }
}

/* The responsive base layer previously narrowed the home rail at laptop
   widths while routed pages retained the full desktop width.  Keep the rail
   itself fixed; only the content area is allowed to flex. */
@media (min-width: 62.5625rem) {
  body:is(.logged-in,.guest-workspace) .app-shell > .sidebar.sidebar-with-assistant {
    position: fixed !important;
    top: calc(var(--desktop-header-height, 4.625rem) + var(--auth-rail-top-gap)) !important;
    left: var(--auth-rail-left) !important;
    z-index: 18;
    display: flex !important;
    width: var(--auth-rail-width) !important;
    inline-size: var(--auth-rail-width) !important;
    min-width: var(--auth-rail-width) !important;
    min-inline-size: var(--auth-rail-width) !important;
    max-width: var(--auth-rail-width) !important;
    max-inline-size: var(--auth-rail-width) !important;
    flex-basis: var(--auth-rail-width) !important;
    height: calc(100dvh - var(--desktop-header-height, 4.625rem) - var(--auth-rail-top-gap) - var(--auth-rail-bottom-gap)) !important;
    max-height: calc(100dvh - var(--desktop-header-height, 4.625rem) - var(--auth-rail-top-gap) - var(--auth-rail-bottom-gap)) !important;
    padding: 0.6875rem 0.5625rem 0.75rem !important;
    box-sizing: border-box !important;
  }

  body:is(.logged-in,.guest-workspace):not(.profile-view):not(.jobs-view):not(.events-view):not(.firms-view):not(.colleges-view):not(.article-view):not(.article-editor-view):not(.judgments-view) .app-shell {
    grid-template-columns: var(--auth-rail-width) minmax(0, 1fr) !important;
  }

  body:is(.logged-in,.guest-workspace):not(.profile-view):not(.jobs-view):not(.events-view):not(.firms-view):not(.colleges-view):not(.article-view):not(.article-editor-view):not(.judgments-view) .app-shell > .feed {
    grid-column: 2;
  }

  body:is(.logged-in,.guest-workspace):not(.profile-view):not(.jobs-view):not(.events-view):not(.firms-view):not(.colleges-view):not(.article-view):not(.article-editor-view):not(.judgments-view) .app-shell > .right-rail {
    grid-column: 3;
  }
}

@media (min-width: 71.9375rem) {
  body:is(.logged-in,.guest-workspace):not(.profile-view):not(.jobs-view):not(.events-view):not(.firms-view):not(.colleges-view):not(.article-view):not(.article-editor-view):not(.judgments-view) .app-shell {
    grid-template-columns: var(--auth-rail-width) minmax(32.5rem, 55rem) 18rem !important;
  }
}

/* Judgment Desk retains the common navigation rail, but its reader must use
   all remaining viewport width instead of inheriting the home feed/rail grid. */
@media (min-width: 62.5625rem) {
  body:is(.logged-in,.guest-workspace).judgments-view .app-shell {
    width: 100% !important;
    max-width: none !important;
    margin-inline: 0 !important;
    grid-template-columns: var(--auth-rail-width) minmax(0, 1fr) !important;
    justify-content: stretch !important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .app-shell > .judgment-app-page {
    grid-column: 2 !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-inline: 0 !important;
  }
}

/* Keep primary navigation available throughout desktop member workflows. */
@media (min-width: 73.8125rem) {
  body:is(.logged-in,.guest-workspace):is(
      .profile-view,
      .jobs-view,
      .events-view,
      .firms-view,
      .colleges-view,
      .article-view,
      .article-editor-view
    ) .app-shell {
    display: contents !important;
  }

  body:is(.logged-in,.guest-workspace):is(
      .profile-view,
      .jobs-view,
      .events-view,
      .firms-view,
      .colleges-view,
      .article-view,
      .article-editor-view
    ) .app-shell > :not(.sidebar) {
    display: none !important;
  }

  body:is(.logged-in,.guest-workspace):is(
      .profile-view,
      .jobs-view,
      .events-view,
      .firms-view,
      .colleges-view,
      .article-view,
      .article-editor-view
    ) .app-shell > .sidebar.sidebar-with-assistant {
    position: fixed !important;
    top: calc(var(--desktop-header-height, 4.625rem) + var(--auth-rail-top-gap)) !important;
    left: var(--auth-rail-left) !important;
    z-index: 18;
    display: flex !important;
    width: var(--auth-rail-width) !important;
    inline-size: var(--auth-rail-width) !important;
    min-width: var(--auth-rail-width) !important;
    min-inline-size: var(--auth-rail-width) !important;
    max-width: var(--auth-rail-width) !important;
    max-inline-size: var(--auth-rail-width) !important;
    height: calc(100dvh - var(--desktop-header-height, 4.625rem) - var(--auth-rail-top-gap) - var(--auth-rail-bottom-gap)) !important;
    max-height: calc(100dvh - var(--desktop-header-height, 4.625rem) - var(--auth-rail-top-gap) - var(--auth-rail-bottom-gap)) !important;
    padding: 0.6875rem 0.5625rem 0.75rem !important;
    box-sizing: border-box !important;
  }

  body:is(.logged-in,.guest-workspace).profile-view > .profile-page,
  body:is(.logged-in,.guest-workspace).jobs-view > .jobs-page,
  body:is(.logged-in,.guest-workspace).events-view > .events-page,
  body:is(.logged-in,.guest-workspace).firms-view > .firms-page,
  body:is(.logged-in,.guest-workspace).colleges-view > .colleges-page {
    width: auto !important;
    max-width: none !important;
    margin-left: calc(var(--auth-rail-left) + var(--auth-rail-width) + var(--auth-rail-gap) - var(--page-gutter, 2.125rem)) !important;
    margin-right: max(0px, calc(var(--auth-rail-left) - var(--page-gutter, 2.125rem))) !important;
  }

  body:is(.logged-in,.guest-workspace).article-view > .article-page,
  body:is(.logged-in,.guest-workspace).article-editor-view > .article-editor-page {
    width: auto !important;
    max-width: none !important;
    margin-left: calc(var(--auth-rail-left) + var(--auth-rail-width) + var(--auth-rail-gap)) !important;
    margin-right: var(--auth-rail-left) !important;
  }

  /* Home is already one click away in the rail; remove redundant chrome. */
  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page-top,
  body:is(.logged-in,.guest-workspace).events-view .events-page-top {
    display: none;
  }

  body:is(.logged-in,.guest-workspace).article-view .article-topbar,
  body:is(.logged-in,.guest-workspace).article-view .article-layout,
  body:is(.logged-in,.guest-workspace).article-editor-view .article-editor-top,
  body:is(.logged-in,.guest-workspace).article-editor-view .article-editor-shell {
    max-width: none;
  }

  /* Focus mode is intentionally distraction-free and must escape the rail. */
  body:is(.logged-in,.guest-workspace).editor-focus-mode .app-shell > .sidebar.sidebar-with-assistant {
    display: none !important;
  }

  body:is(.logged-in,.guest-workspace).editor-focus-mode.article-editor-view > .article-editor-page {
    width: 100% !important;
    margin: 0 !important;
  }
}

/* The rail reduces usable width before legacy viewport breakpoints engage. */
@media (min-width: 73.8125rem) and (max-width: 92rem) {
  body:is(.logged-in,.guest-workspace).article-view .article-layout {
    grid-template-columns: minmax(10rem, 12rem) minmax(0, 1fr);
    gap: 1.5rem;
    padding-inline: 0;
  }

  body:is(.logged-in,.guest-workspace).article-view .article-right {
    display: none;
  }

  body:is(.logged-in,.guest-workspace).profile-view .dossier-grid {
    grid-template-columns: minmax(10rem, 12rem) minmax(0, 1fr);
    gap: 1rem;
  }

  body:is(.logged-in,.guest-workspace).profile-view .dossier-left {
    grid-row: 1 / span 2;
  }

  body:is(.logged-in,.guest-workspace).profile-view .dossier-side {
    position: static;
    grid-column: 2;
    max-height: none;
  }

  body:is(.logged-in,.guest-workspace).article-editor-view .article-editor-layout {
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 17rem);
    gap: 1rem;
  }

  body:is(.logged-in,.guest-workspace).article-editor-view .editor-toolbar {
    overflow-x: auto;
  }
}

/* Dashboard density: retain the editorial welcome while surfacing content. */
.feed .welcome {
  min-height: 6.75rem;
  padding: 1.25rem 1.625rem 2rem;
}

.feed .welcome h1 {
  margin-block: 0.125rem 0.25rem;
  font-size: clamp(1.75rem, 2.4vw, 2rem);
}

.feed .composer {
  margin-top: -1.25rem;
  padding: 0.875rem 1rem;
}

.feed .composer-prompt {
  height: 2.875rem;
}

.feed .composer-actions {
  gap: 0.5rem;
  margin-top: 0.5rem;
}

.feed .composer-actions button {
  min-height: 2.625rem;
  padding-block: 0.375rem;
}

.feed .feed-heading {
  margin-top: 1.5rem;
}

/* A response field is a deliberate action, not repeated furniture. */
.post .comments {
  display: none;
}

.post:has(.comment-toggle.active) .comments {
  display: block;
}

/* Empty public-facing profile sections disappear; owners keep completion cues. */
.profile-page.viewing-other-profile .profile-section-empty,
.profile-page.viewing-other-profile .dossier-stats.all-zero,
.profile-page.viewing-other-profile .dossier-stats .is-zero,
.profile-page.viewing-other-profile .profile-section-nav .profile-nav-empty,
.profile-page.viewing-other-profile .completeness-card {
  display: none !important;
}

.profile-page:not(.viewing-other-profile) .profile-section-empty {
  border-style: dashed;
  background: #fbfaf6;
  box-shadow: none;
}

.profile-page:not(.viewing-other-profile) .profile-section-empty:hover {
  transform: none;
  box-shadow: none;
}

.profile-page:not(.viewing-other-profile) .profile-section-empty .profile-value,
.profile-page:not(.viewing-other-profile) .profile-section-empty .structured-empty,
.profile-page:not(.viewing-other-profile) .profile-section-empty .empty-state {
  color: var(--lu-muted, #596860);
  font-family: var(--lu-sans, sans-serif);
  font-size: 0.8125rem;
  line-height: 1.55;
}

/* Directory pages should lead with inventory, not repeat a landing page. */
@media (min-width: 50.0625rem) {
  :is(.jobs-hero, .events-hero, .firms-hero, .colleges-hero) {
    min-height: 17.5rem;
    gap: 2rem;
    padding: 2rem 2.5rem;
  }

  :is(.jobs-hero, .events-hero, .firms-hero, .colleges-hero) h1 {
    margin-block: 0.375rem 0.625rem;
    font-size: clamp(2rem, 2.5vw, 2.375rem);
  }

  :is(.jobs-hero, .events-hero, .firms-hero, .colleges-hero) > div > p:last-child {
    max-width: 38rem;
    font-size: 0.8125rem;
    line-height: 1.5;
  }

  :is(.career-stats, .events-stats) {
    gap: 1.125rem;
  }

  :is(.career-stats, .events-stats) strong {
    font-size: 1.25rem;
  }

  :is(.firms-directory-head, .colleges-directory-head) {
    margin-top: 1rem;
  }
}

/* One desktop directory-header frame. Feature-specific content may differ,
   but route changes must not move or resize the primary branded surface. */
@media (min-width: 62.5625rem) {
  body:is(.logged-in,.guest-workspace):is(.jobs-view, .events-view, .firms-view, .colleges-view)
      > :is(.jobs-page, .events-page, .firms-page, .colleges-page) {
    padding-top: var(--auth-rail-top-gap) !important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-page-top, .events-page-top) {
    display: none !important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-hero, .events-hero, .firms-hero, .colleges-hero) {
    box-sizing: border-box;
    width: 100%;
    height: 17.5rem;
    min-height: 17.5rem;
    max-height: 17.5rem;
    margin: 0 0 1rem;
    padding: 2rem 2.5rem;
    align-items: end;
    border-radius: 0.875rem;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-hero-action, .events-hero-action) {
    top: 1.5rem;
    right: 1.75rem;
    min-height: 3rem;
  }

  body:is(.logged-in,.guest-workspace) :is(.firms-page-top, .colleges-page-top) .primary-btn {
    top: 1.5rem;
    right: 1.75rem;
    min-height: 3rem;
  }

  body:is(.logged-in,.guest-workspace) :is(.firms-directory-head, .colleges-directory-head) {
    margin: 1rem 0;
  }
}

:is(.job-search, .event-search, .firms-hero label, .colleges-hero label) {
  min-height: 2.875rem;
  border-radius: 0.625rem;
}

:is(.jobs-page .jobs-toolbar, .events-toolbar) {
  border-radius: 0.75rem 0.75rem 0 0;
}

.directory-empty-state,
.events-empty,
.firm-card-grid > .empty-state,
.college-card-grid > .empty-state,
.jobs-list > .empty-state {
  display: grid;
  place-items: center;
  align-content: center;
  min-height: 15rem;
  padding: 2rem;
  border: 1px dashed #bdc9c1;
  border-radius: 0.75rem;
  background: var(--lu-ivory-050, #fffdfa);
  color: var(--lu-muted, #596860);
  text-align: center;
}

.directory-empty-state > span,
.events-empty > span {
  display: grid;
  place-items: center;
  width: 2.75rem;
  height: 2.75rem;
  margin-bottom: 0.75rem;
  border-radius: 50%;
  background: var(--lu-forest-100, #e7efe9);
  color: var(--lu-forest-800, #174c3d);
  font-family: var(--lu-serif, Georgia, serif);
  font-size: 1.25rem;
}

.directory-empty-state h3,
.events-empty h3 {
  margin: 0;
  color: var(--lu-ink, #172720);
  font-family: var(--lu-serif, Georgia, serif);
  font-size: 1.25rem;
  font-weight: 400;
}

.directory-empty-state p,
.events-empty p {
  max-width: 25rem;
  margin: 0.5rem auto 0;
  font-size: 0.8125rem;
  line-height: 1.55;
}

.directory-empty-state button,
.events-empty button {
  min-height: 2.75rem;
  margin-top: 1rem;
  padding-inline: 1rem;
  border: 1px solid #8da298;
  border-radius: 0.5rem;
  background: #fff;
  color: var(--lu-forest-900, #123f33);
  font-weight: 750;
  cursor: pointer;
}

.directory-empty-state button:hover,
.events-empty button:hover {
  border-color: var(--lu-forest-700, #23644f);
  background: var(--lu-forest-900, #123f33);
  color: #fff;
}

.directory-empty-state button:focus-visible,
.events-empty button:focus-visible {
  outline: 0.1875rem solid var(--lu-focus, #28735d);
  outline-offset: 0.1875rem;
}

/* Mobile product navigation uses one icon language and an accessible menu. */
@media (max-width: 62.5rem) {
  .mobile-nav {
    min-height: 4rem;
    padding: 0.375rem;
    border-color: rgba(174, 192, 182, 0.94);
    border-radius: 1.125rem;
    background: rgba(255, 253, 250, 0.98);
  }

  .mobile-nav button {
    min-height: 3.125rem;
    gap: 0.1875rem;
    border-radius: 0.75rem;
  }

  .mobile-nav button > span {
    display: block;
    width: 1.25rem;
    height: 1.25rem;
    flex: 0 0 1.25rem;
    background: currentColor;
    font-size: 0;
    -webkit-mask-position: center;
    -webkit-mask-repeat: no-repeat;
    -webkit-mask-size: contain;
    mask-position: center;
    mask-repeat: no-repeat;
    mask-size: contain;
  }

  .mobile-nav button > small {
    font-size: 0.6875rem;
    font-weight: 750;
  }

  .mobile-nav [data-mobile-route="home"] > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 12 4l9 7.5M5.5 10v10h13V10M9.5 20v-6h5v6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M3 11.5 12 4l9 7.5M5.5 10v10h13V10M9.5 20v-6h5v6' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .mobile-nav [data-mobile-route="network"] > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3.5 20v-2.4A4.6 4.6 0 0 1 8.1 13h1.8a4.6 4.6 0 0 1 4.6 4.6V20M16 6.5a3 3 0 0 1 0 6M17.5 14a4 4 0 0 1 3 3.9V20' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='9' cy='8' r='3' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M3.5 20v-2.4A4.6 4.6 0 0 1 8.1 13h1.8a4.6 4.6 0 0 1 4.6 4.6V20M16 6.5a3 3 0 0 1 0 6M17.5 14a4 4 0 0 1 3 3.9V20' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E");
  }

  .mobile-nav [data-mobile-route="messages"] > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v11H9l-5 4V5Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 5h16v11H9l-5 4V5Z' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .mobile-nav [data-mobile-route="jobs"] > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='7' width='18' height='13' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M8 7V4h8v3M3 12h18M10 12v2h4v-2' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Crect x='3' y='7' width='18' height='13' rx='2' fill='none' stroke='black' stroke-width='1.8'/%3E%3Cpath d='M8 7V4h8v3M3 12h18M10 12v2h4v-2' fill='none' stroke='black' stroke-width='1.8' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .mobile-nav [data-mobile-route="judgments"] > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3.5h10M8.5 3.5v17M15.5 3.5v17M5 20.5h14M8.5 7h7M8.5 12h7M8.5 17h7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M7 3.5h10M8.5 3.5v17M15.5 3.5v17M5 20.5h14M8.5 7h7M8.5 12h7M8.5 17h7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }

  .mobile-nav #mobileMoreButton > span {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='12' r='1.7'/%3E%3Ccircle cx='12' cy='12' r='1.7'/%3E%3Ccircle cx='19' cy='12' r='1.7'/%3E%3C/svg%3E");
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Ccircle cx='5' cy='12' r='1.7'/%3E%3Ccircle cx='12' cy='12' r='1.7'/%3E%3Ccircle cx='19' cy='12' r='1.7'/%3E%3C/svg%3E");
  }

  body:is(.jobs-view, .events-view, .firms-view, .colleges-view, .judgments-view,
      .profile-view, .article-view, .article-editor-view) .mobile-nav #mobileMoreButton {
    background: #e7eee9;
    color: var(--lu-forest-800, #174c3d);
  }

  .mobile-more-panel {
    left: 0.75rem;
    right: 0.75rem;
    bottom: calc(5.5rem + env(safe-area-inset-bottom));
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: auto;
    padding: 0.75rem;
    gap: 0.375rem;
    border-radius: 1rem;
    box-shadow: 0 0 0 100vmax rgba(8, 31, 24, 0.32), 0 1.5rem 4rem rgba(8, 31, 24, 0.24);
  }

  .mobile-more-panel::before {
    content: "Explore Law United";
    grid-column: 1 / -1;
    padding: 0.25rem 0.5rem 0.625rem;
    color: var(--lu-gold-700, #80602f);
    font-size: 0.6875rem;
    font-weight: 850;
    letter-spacing: 0.09rem;
    text-transform: uppercase;
  }

  .mobile-more-panel button {
    min-height: 3.25rem;
    padding: 0.625rem 0.75rem;
    border: 1px solid #e3e5df;
    border-radius: 0.75rem;
    background: #faf9f5;
    font-size: 0.8125rem;
    line-height: 1.3;
  }

  /* Restore access to Edit profile and Sign out on small screens. */
  .topbar .account-menu-toggle {
    display: grid;
    width: 2.25rem;
    min-width: 2.25rem;
    flex-basis: 2.25rem;
  }
}

/* Small tablets otherwise lose both the desktop rail and the mobile dock on
   full-page workflows. Keep the compact dock until the desktop rail begins. */
@media (min-width: 50.0625rem) and (max-width: 62.5rem) {
  body:is(.profile-view, .jobs-view, .events-view, .firms-view, .colleges-view,
      .article-view, .article-editor-view) .mobile-nav {
    position: fixed;
    left: 50%;
    bottom: max(0.75rem, env(safe-area-inset-bottom));
    z-index: 85;
    width: min(34rem, calc(100vw - 2rem));
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    transform: translateX(-50%);
    box-shadow: 0 1rem 2.6rem rgba(12, 42, 33, .22);
    backdrop-filter: blur(1rem);
  }

  body:is(.profile-view, .jobs-view, .events-view, .firms-view, .colleges-view,
      .article-view, .article-editor-view) .mobile-more-panel:not([hidden]) {
    position: fixed;
    z-index: 86;
    display: grid;
  }

  body:is(.profile-view, .jobs-view, .events-view, .firms-view, .colleges-view,
      .article-view, .article-editor-view)
      :is(.profile-page, .jobs-page, .events-page, .firms-page, .colleges-page,
      .judgment-app-page, .article-page, .article-editor-page) {
    padding-bottom: 6.5rem !important;
  }
}

@media (max-width: 35rem) {
  /* The invisible field remains tappable and expands into the existing search. */
  .topbar .search {
    position: relative;
  }

  .topbar .search input {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    padding: 0;
    opacity: 0;
    pointer-events: auto;
    cursor: text;
  }

  .topbar .search:focus-within input {
    position: static;
    width: auto;
    height: auto;
    padding-inline: 0.625rem;
    opacity: 1;
  }

  :is(.jobs-hero, .events-hero, .firms-hero, .colleges-hero) {
    min-height: 0;
  }

  .mobile-more-panel {
    grid-template-columns: 1fr 1fr;
  }
}

@media (max-width: 22.5rem) {
  .mobile-more-panel {
    grid-template-columns: 1fr;
    max-height: min(31rem, calc(100dvh - 9rem));
    overflow-y: auto;
  }
}

/* Branded replacement for blocking browser prompts and confirmations. */
.action-dialog-backdrop {
  z-index: 145;
  background: rgba(7, 29, 23, .68);
  backdrop-filter: blur(.75rem);
}

.action-dialog-backdrop > .action-dialog {
  width: min(34rem, 100%);
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(33, 82, 66, .18);
  border-radius: 1.125rem;
  background: #fffdfa;
  box-shadow: 0 2rem 6rem rgba(4, 27, 20, .34);
}

.action-dialog .modal-head {
  align-items: flex-start;
  gap: 1rem;
  padding: 1.5rem 1.65rem 1.25rem;
  border-bottom: 1px solid #dce4df;
  background: linear-gradient(135deg, #f8f5ed, #edf5f1);
}

.action-dialog .modal-head > div {
  min-width: 0;
  flex: 1;
}

.action-dialog .modal-head h2 {
  margin: .2rem 0 0;
  color: #17372d;
  font: 1.75rem/1.12 Georgia, serif;
}

.action-dialog .modal-head > button {
  width: 2.75rem;
  height: 2.75rem;
  display: grid;
  flex: none;
  place-items: center;
  border-radius: 50%;
  color: #244a3e;
}

.action-dialog .modal-head > button:hover,
.action-dialog .modal-head > button:focus-visible {
  background: #dfece5;
}

.action-dialog-message {
  margin: 0;
  padding: 1.35rem 1.65rem .25rem;
  color: #53645d;
  font-size: .9rem;
  line-height: 1.65;
}

.action-dialog-field {
  display: grid;
  gap: .5rem;
  padding: 1rem 1.65rem .25rem;
  color: #29493f;
  font-size: .8rem;
  font-weight: 750;
}

.action-dialog-field[hidden] {
  display: none;
}

.action-dialog-field :is(input, textarea) {
  width: 100%;
  border: 1px solid #bdcec5;
  border-radius: .625rem;
  background: #fff;
  color: #17372d;
  font: 500 .925rem/1.5 Inter, ui-sans-serif, system-ui, sans-serif;
  outline: 0;
}

.action-dialog-field input {
  height: 3rem;
  padding: 0 .8rem;
}

.action-dialog-field textarea {
  min-height: 8.5rem;
  padding: .75rem .8rem;
  resize: vertical;
}

.action-dialog-field :is(input, textarea):focus {
  border-color: #28735d;
  box-shadow: 0 0 0 .25rem rgba(40, 115, 93, .11);
}

.action-dialog-error {
  min-height: 1.25rem;
  margin: .35rem 1.65rem 0;
  color: #9b352f;
  font-size: .8rem;
}

.action-dialog .modal-footer {
  justify-content: flex-end;
  gap: .75rem;
  margin-top: .35rem;
  padding: 1rem 1.65rem 1.35rem;
  background: #faf9f5;
}

.action-dialog .modal-footer .outline-btn {
  min-width: 6.5rem;
  min-height: 2.75rem;
  margin: 0;
}

.action-dialog .modal-footer :is(.primary-btn, .danger-btn) {
  min-width: 8rem;
  min-height: 2.75rem;
}

@media (max-width: 35rem) {
  .action-dialog-backdrop {
    padding: .75rem;
    align-items: end;
  }

  .action-dialog-backdrop > .action-dialog {
    width: 100%;
    max-height: calc(100dvh - 1.5rem);
    border-radius: 1.125rem 1.125rem .75rem .75rem;
  }

  .action-dialog .modal-footer {
    display: grid;
    grid-template-columns: 1fr 1fr;
    padding-bottom: max(1.25rem, env(safe-area-inset-bottom));
  }

  .action-dialog .modal-footer :is(.outline-btn, .primary-btn, .danger-btn) {
    width: 100%;
    min-width: 0;
    min-height: 3rem;
  }
}
