/*
 * Law United production responsive contract
 *
 * This is deliberately the final authenticated cascade. Earlier feature
 * styles grew at different times and use several competing breakpoints. This
 * file gives every signed-in route the same rail, page edge, mobile dock,
 * control sizing and narrow-screen reading behaviour.
 */

:root{
  --lu-desktop-header:4.625rem;
  --lu-rail-width:15rem;
  --lu-rail-gap:2rem;
  --lu-mobile-header:4rem;
  --lu-mobile-dock:4.625rem;
  --lu-content-max:96.25rem;
  --lu-control-min:2.75rem;
}

body:is(.logged-in,.guest-workspace){
  min-width:20rem;
  color:#172d25;
}

body:is(.logged-in,.guest-workspace) :is(button,a,input,select,textarea,[role="button"]):focus-visible{
  outline:.1875rem solid #28735d;
  outline-offset:.1875rem;
}

body:is(.logged-in,.guest-workspace) :is(input,select,textarea){
  min-width:0;
}

body:is(.logged-in,.guest-workspace) :is(.job-search,.event-search,.conversation-search,.topic-search) input{
  font-size:1rem;
}

/* Small actions are still real controls. Keep their hit area dependable on
   laptops with touch screens as well as phones. */
body:is(.logged-in,.guest-workspace) :is(#skipArticleIdeas,#toggleSeoChecklist,.judgment-card-title){
  min-height:var(--lu-control-min)!important;
}

body:is(.logged-in,.guest-workspace) .judgment-card-title{
  display:flex;
  width:100%;
  align-items:center;
}

body:is(.logged-in,.guest-workspace).events-view .mobile-event-back{
  display:none;
}

/* The 1001px boundary is the first desktop-rail layout. The legacy header
   gave the account area width:100%, which crushed the global search down to
   an unusable icon. Give each region an explicit flex responsibility. */
@media (min-width:62.5625rem) and (max-width:71.875rem){
  body:is(.logged-in,.guest-workspace)>.topbar{
    display:flex!important;
    gap:1.25rem!important;
  }

  body:is(.logged-in,.guest-workspace)>.topbar .brand{
    width:11.25rem!important;
    min-width:11.25rem!important;
    flex:0 0 11.25rem!important;
  }

  body:is(.logged-in,.guest-workspace)>.topbar .search{
    width:auto!important;
    min-width:12rem!important;
    max-width:none!important;
    flex:1 1 auto!important;
  }

  body:is(.logged-in,.guest-workspace)>.topbar .topnav{
    width:auto!important;
    min-width:0!important;
    margin-left:0!important;
    flex:0 0 auto!important;
  }
}

@media (min-width:62.5625rem) and (max-width:66rem){
  body:is(.logged-in,.guest-workspace)>.topbar .profile-label{
    display:none!important;
  }
}

/* One desktop rail from the exact point at which the mobile dock ends. */
@media (min-width:62.5625rem){
  body:is(.logged-in,.guest-workspace){
    --auth-rail-width:var(--lu-rail-width);
    --auth-rail-gap:var(--lu-rail-gap);
  }

  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;
    position:static!important;
    width:auto!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!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,
  body:is(.logged-in,.guest-workspace).judgments-view .app-shell>.sidebar.sidebar-with-assistant{
    position:fixed!important;
    inset:calc(var(--lu-desktop-header) + 1.5rem) auto 1rem var(--auth-rail-left)!important;
    z-index:18!important;
    display:flex!important;
    width:var(--lu-rail-width)!important;
    min-width:var(--lu-rail-width)!important;
    max-width:var(--lu-rail-width)!important;
    height:auto!important;
    max-height:none!important;
    margin:0!important;
    padding:.6875rem .5625rem .75rem!important;
    box-sizing:border-box!important;
  }

  body:is(.logged-in,.guest-workspace):is(
      .profile-view,.jobs-view,.events-view,.firms-view,.colleges-view
    )>:is(.profile-page,.jobs-page,.events-page,.firms-page,.colleges-page){
    width:auto!important;
    max-width:none!important;
    margin-left:calc(var(--auth-rail-left) + var(--lu-rail-width) + var(--lu-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):is(.article-view,.article-editor-view)>:is(.article-page,.article-editor-page){
    width:auto!important;
    max-width:none!important;
    margin-left:calc(var(--auth-rail-left) + var(--lu-rail-width) + var(--lu-rail-gap))!important;
    margin-right:var(--auth-rail-left)!important;
  }

  body:is(.logged-in,.guest-workspace):is(
      .profile-view,.jobs-view,.events-view,.firms-view,.colleges-view,
      .article-view,.article-editor-view
    ) .mobile-nav{
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace):is(
      .profile-view,.jobs-view,.events-view,.firms-view,.colleges-view
    ) :is(.profile-page-top,.jobs-page-top,.events-page-top,.firms-page-top,.colleges-page-top),
  body:is(.logged-in,.guest-workspace):is(.article-view,.article-editor-view) :is(.article-topbar,.article-editor-top){
    max-width:none;
  }
}

/* Judgment Desk is the one route whose content lives inside app-shell. */
@media (min-width:62.5625rem){
  body:is(.logged-in,.guest-workspace).judgments-view .app-shell{
    display:grid!important;
    width:100%!important;
    max-width:var(--lu-content-max)!important;
    margin:0 auto!important;
    padding:1.5rem var(--page-gutter,2.125rem) 5rem!important;
    grid-template-columns:var(--lu-rail-width) minmax(0,1fr)!important;
    gap:var(--lu-rail-gap)!important;
    align-items:start!important;
  }

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

/* Laptop readers retain the contents rail only while it is genuinely useful. */
@media (max-width:68.75rem){
  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader-layout{
    display:grid!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    grid-template-columns:minmax(0,1fr)!important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
  }
}

/* A desktop rail plus a two-pane role browser cannot fit honestly on a
   1001–1200px canvas. Use a horizontally scrollable result shelf over a full
   detail panel, preserving context without collapsing the role title. */
@media (min-width:50.0625rem) and (max-width:75rem){
  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page .jobs-body{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page .jobs-list{
    display:flex!important;
    max-height:none!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
    scroll-snap-type:x proximity;
    scrollbar-gutter:stable;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page .job-card{
    flex:0 0 min(20rem,82vw)!important;
    min-height:10.25rem;
    border-right:1px solid var(--line)!important;
    border-bottom:0!important;
    scroll-snap-align:start;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page .job-detail{
    min-height:32rem;
    padding:2rem clamp(1.5rem,4vw,3rem) 3.5rem!important;
    overflow:visible!important;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .job-detail-head>div{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    flex:1 1 25rem!important;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .job-detail-head{
    flex-wrap:wrap;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page .job-detail h1{
    overflow-wrap:normal!important;
    word-break:normal!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-facts{
    grid-template-columns:1fr!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-facts>div{
    min-width:0!important;
  }
}

/* Tablet and phone: no hidden intermediate state, one compact product dock. */
@media (max-width:62.5rem){
  body:is(.logged-in,.guest-workspace){
    padding-bottom:calc(var(--lu-mobile-dock) + env(safe-area-inset-bottom));
  }

  body:is(.logged-in,.guest-workspace)>.topbar{
    min-height:var(--lu-mobile-header);
  }

  body:is(.logged-in,.guest-workspace) .app-shell{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  body:is(.logged-in,.guest-workspace):not(.judgments-view) .app-shell>.sidebar,
  body:is(.logged-in,.guest-workspace):not(.judgments-view) .app-shell>.right-rail{
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace)>.mobile-nav{
    position:fixed!important;
    left:50%!important;
    right:auto!important;
    bottom:max(.625rem,env(safe-area-inset-bottom))!important;
    z-index:85!important;
    display:grid!important;
    width:min(34rem,calc(100vw - 1.25rem))!important;
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    transform:translateX(-50%)!important;
  }

  body:is(.logged-in,.guest-workspace).drawer-open>.mobile-nav,
  body:is(.logged-in,.guest-workspace):has(.drawer.open)>.mobile-nav{
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace)>.mobile-more-panel:not([hidden]){
    position:fixed!important;
    z-index:86!important;
    display:grid!important;
  }

  body:is(.logged-in,.guest-workspace):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,.article-page,.article-editor-page){
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding-bottom:calc(6.5rem + env(safe-area-inset-bottom))!important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .app-shell{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:1rem clamp(.625rem,2.6vw,1.25rem) calc(6.5rem + env(safe-area-inset-bottom))!important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .app-shell>.sidebar,
  body:is(.logged-in,.guest-workspace).judgments-view .app-shell>#feed,
  body:is(.logged-in,.guest-workspace).judgments-view .app-shell>.right-rail{
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .judgment-app-page,
  body:is(.logged-in,.guest-workspace).judgments-view .judgment-app-content,
  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader-layout,
  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader{
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    margin-inline:0!important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-hero,.events-hero,.firms-hero,.colleges-hero,.judgment-app-hero){
    height:auto!important;
    min-height:0!important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-hero-action,.events-hero-action){
    min-height:2.875rem;
  }

  body:is(.logged-in,.guest-workspace) :is(.job-search,.event-search) input,
  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar) select,
  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar) .custom-select-trigger{
    font-size:1rem!important;
  }

  body:is(.logged-in,.guest-workspace) :is(.drawer,.story-viewer,.resume-studio){
    overscroll-behavior:contain;
  }

  body:is(.logged-in,.guest-workspace) .modal-backdrop>.modal{
    scrollbar-gutter:stable;
  }
}

/* Events use a list-first mobile flow; selecting a card reveals one clean
   detail sheet rather than squeezing two desktop columns into 320px. */
@media (max-width:50rem){
  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page.mobile-job-detail-open :is(.jobs-page-top,.jobs-hero,.jobs-toolbar,.jobs-list){
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page.mobile-job-detail-open .job-detail{
    display:block!important;
  }

  body:is(.logged-in,.guest-workspace).jobs-view .jobs-page.mobile-job-detail-open .mobile-job-back{
    display:flex!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .events-body{
    display:block!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .events-list{
    max-height:none!important;
    overflow:visible!important;
    border:0!important;
    background:transparent!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-card-row{
    min-height:0;
    margin-bottom:.625rem;
    padding:1rem;
    border:1px solid #d8ddd8;
    border-radius:.75rem;
    background:#fffdfa;
    box-shadow:0 .4375rem 1.25rem rgba(18,49,39,.055);
  }

  body:is(.logged-in,.guest-workspace).events-view .event-card-copy>:is(small,b,span,footer){
    display:flex;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-card-copy>small{
    display:block;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-detail{
    display:none;
    margin:0;
    padding:0 0 2rem;
    overflow:visible;
  }

  body:is(.logged-in,.guest-workspace).events-view .events-page.mobile-event-detail-open :is(.events-hero,.event-type-strip,.events-toolbar,.events-list){
    display:none!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .events-page.mobile-event-detail-open .event-detail{
    display:block!important;
  }

  body:is(.logged-in,.guest-workspace).events-view .mobile-event-back{
    display:flex;
    width:100%;
    min-height:2.75rem;
    align-items:center;
    margin:0 0 .75rem;
    padding:0 .875rem;
    border:1px solid #ced8d2;
    border-radius:.625rem;
    background:#fffdfa;
    color:#123f33;
    font-weight:800;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-detail-card{
    padding:1.125rem;
    border:1px solid #d8ddd8;
    border-radius:.875rem;
    background:#fffdfa;
    box-shadow:0 .5rem 1.625rem rgba(18,49,39,.06);
  }

  body:is(.logged-in,.guest-workspace).events-view .event-detail-card header,
  body:is(.logged-in,.guest-workspace).events-view .event-detail-card>footer{
    align-items:flex-start;
    flex-direction:column;
  }

  body:is(.logged-in,.guest-workspace).events-view .event-facts{
    grid-template-columns:1fr!important;
  }
}

@media (max-width:37.5rem){
  body:is(.logged-in,.guest-workspace)>.topbar{
    padding-inline:.75rem;
  }

  body:is(.logged-in,.guest-workspace)>.mobile-nav{
    width:calc(100vw - .75rem)!important;
    bottom:max(.375rem,env(safe-area-inset-bottom))!important;
    border-radius:1rem;
  }

  body:is(.logged-in,.guest-workspace)>.mobile-nav button{
    min-height:3rem;
    padding-inline:.125rem;
  }

  body:is(.logged-in,.guest-workspace)>.mobile-nav button>small{
    overflow:hidden;
    max-width:100%;
    font-size:.625rem;
    text-overflow:ellipsis;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar){
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:.5rem!important;
    overflow:visible!important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar)>*,
  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar) .custom-select{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    grid-column:1!important;
  }

  body:is(.logged-in,.guest-workspace) :is(.jobs-toolbar,.events-toolbar) :is(input,select,.custom-select-trigger){
    min-height:2.75rem!important;
  }

  body:is(.logged-in,.guest-workspace) .judgment-reader>header,
  body:is(.logged-in,.guest-workspace) .judgment-reader>section{
    padding-inline:clamp(1rem,5vw,1.375rem)!important;
  }

  body:is(.logged-in,.guest-workspace) .judgment-reader section :is(p,li){
    font-size:1rem!important;
    line-height:1.72!important;
    text-align:left!important;
    hyphens:none!important;
  }

  body:is(.logged-in,.guest-workspace) .judgment-reader section>h2{
    padding-left:1.75rem!important;
  }

  body:is(.logged-in,.guest-workspace) .judgment-table-wrap{
    max-width:100%;
    overflow:auto;
    border-radius:.625rem;
    outline:none;
    scrollbar-gutter:stable;
  }

  body:is(.logged-in,.guest-workspace) .modal-backdrop{
    padding:0!important;
    align-items:flex-end!important;
  }

  body:is(.logged-in,.guest-workspace) .modal-backdrop>.modal{
    width:100vw!important;
    max-width:none!important;
    max-height:94dvh!important;
    margin:0!important;
    border-radius:1rem 1rem 0 0!important;
    padding-bottom:max(1rem,env(safe-area-inset-bottom))!important;
  }
}

/* Four reader actions are clearer as a compact two-by-two tool palette than
   as a clipped horizontal strip on narrow phones. */
@media (max-width:28rem){
  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader-actions{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr));
    overflow:visible!important;
  }

  body:is(.logged-in,.guest-workspace).judgments-view .judgment-reader-actions button{
    width:100%;
    justify-content:center;
  }
}

@media (max-width:22.5rem){
  body:is(.logged-in,.guest-workspace)>.topbar .brand{
    width:6.375rem!important;
    min-width:6.375rem!important;
    flex-basis:6.375rem!important;
  }

  body:is(.logged-in,.guest-workspace)>.topbar .profile-menu{
    min-width:2.25rem!important;
  }

  body:is(.logged-in,.guest-workspace)>.topbar .account-menu-toggle{
    width:2rem!important;
    min-width:2rem!important;
  }
}

@media (prefers-reduced-motion:reduce){
  body:is(.logged-in,.guest-workspace) *,body:is(.logged-in,.guest-workspace) *::before,body:is(.logged-in,.guest-workspace) *::after{
    scroll-behavior:auto!important;
    animation-duration:.001ms!important;
    animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
}
