/* Remove browser default body margin that leaves white gap around the page */
body { margin: 0 !important; padding: 0 !important; }

/* Hide search results grid — it's normally JS-populated and should be invisible by default */
#win0hdrdivPTSRESULTS { display: none !important; }

/* Fix search bar height to match original 32px, and center children vertically */
.psc_search-subdued .pts_search_content:not(.pts_search_focused) .pts_search_controls {
  height: 32px !important;
  align-items: center !important;
}
/* pts_search_controls is flex row but missing align-items — input sits at top */
.pts_search_widget .pts_search_controls {
  align-items: center !important;
}

/* Fix icons that use absolute /cs/ server URLs (404 locally) — redirect to local copies
   or suppress with content:none to prevent broken-image dark boxes */

/* Search icon in navbar */
.psc_search-subdued .pts_search_content:not(.pts_search_focused)
  .pts_search_controls .pts_editbox .ps_box-control::before {
  content: url(../icons/pt_header_search_1.svg) !important;
}

/* Brand CSS icon overrides (SCX_PT_BRAND_CLASSIC_TMPLT) — redirect /cs/ server URLs
   to local copies. Selectors taken directly from the CSS file. */

/* Icons that have local copies */
#pthdr2home:after { content: url(../icons/pt_header_home_1.svg) !important; }
#pthdr2Search:after,
#pthdr2suggestionsearch::after,
#ptsSearchBoxPlaceHolderClassicHdr:before { content: url(../icons/pt_header_search_1.svg) !important; }
#pthdr2ActionList:after { content: url(../icons/pt_header_actions_1.svg) !important; }
#pthdr2navbar:after { content: url(../icons/pt_header_navbar_1.svg) !important; }
#pthdr2recentlyvisited:before { content: url(../icons/pt_mru_hdr_icn_1.svg) !important; }
#pthdr2favorites:before { content: url(../icons/pt_fav_hdr_icn_1.svg) !important; }
#classicbackbuttonlayout > #classicbackbuttoncontainer > .ps-button-wrapper > .ps-button:before {
  content: url(../icons/pt_nui_back_prim_img_1.svg) !important;
}

/* Icons with no local copy — suppress to avoid broken-image boxes */
.psc_form-xlarge .homePageHdr #pthdr2logofluid:before,
.psc_form-large .homePageHdr #pthdr2logofluid:before,
.psc_form-medium .homePageHdr #pthdr2logofluid:before,
.psc_form-small .homePageHdr #pthdr2logofluid:before { content: none !important; }
#pthdr2notify:after { content: none !important; }
#pthdrSrchHref:after { content: none !important; }

/* IntelliSearch category icons (no local copies) */
.pts_search_result_icon_1::before,
.pts_search_result_icon_2::before,
.pts_search_result_icon_4::before,
.pts_search_result_icon_5::before,
.pts_search_result_icon_7::before { content: none !important; }

/* Suppress missing tab background JPGs from PSSTYLEDEF_TANGERINE_6.css */
.PSBOTTOMLINE,
#PTGRIDTABNBO a span, #PSTABNBO a span,
.PTGRIDTAB a span, #PSTAB a span,
#PSTAB a:hover span, .PTGRIDTAB a:hover span,
#PTGRIDTABNBO a:hover span, #PSTABNBO a:hover span,
#PSTAB .selectedtab a span, .PTGRIDTAB .selectedtab a span,
#PTGRIDTABNBO .selectedtab a span, #PSTABNBO .selectedtab a span { background-image: none !important; }

/* Fluid header title container: collapse strip-height inflation so the search
   bar is centered in the dark navbar without an extra tall cream strip. Uses the
   specific ID to avoid touching the Classic inner page's ps_pagetitle_cont
   (#win0hdrdivPT_TITLE_CONT1) which holds the visible "Enrollment" title. */
#win0hdrdivPT_TITLE_CONT {
  display: flex !important;
  align-items: center !important;
  min-height: 0 !important;
  padding-top: 0 !important;
}

/* Fill navbar background across all header wrapper divs */
#PT_HEADER, #PT_HEADER_PANEL, #win0divPSPAGECONTAINER_HDR,
.ps_header_bar-container {
  background-color: #2F546F !important;
}


/* Mid section: rigid flex row — sidebar and content never overlap */
#PT_MID_SECTION {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  overflow: hidden !important;
  align-items: stretch !important;
}
/* Sidebar: lock size and position — override Fluid JS panel toggle behavior completely */
#PT_SIDE {
  display: block !important;
  flex: 0 0 286px !important;
  width: 286px !important;
  min-width: 286px !important;
  max-width: 286px !important;
  position: static !important;
  transform: none !important;
  overflow: visible !important;
}
/* Sidebar collapsed state */
#PT_SIDE.pt-closed {
  flex: 0 0 23.25px !important;
  width: 23.25px !important;
  min-width: 23.25px !important;
  max-width: 23.25px !important;
}
#PT_SIDE.pt-closed .pst_panel-content {
  display: none !important;
}

/* Force sidebar content visible regardless of Fluid JS visibility toggling */
#PT_SIDE .pst_panel-content {
  visibility: visible !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  transition: none !important;
}
#PT_SIDE0 {
  min-height: 80vh !important;
  position: relative !important;
}
#PT_SIDE.pt-closed #PT_SIDE0 {
  min-height: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}
#PT_SIDE.pt-closed {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  overflow: visible !important;
}
#PT_SIDE.pt-closed .pst_panel-tabcontainer {
  position: fixed !important;
  top: 50% !important;
  left: 0 !important;
  transform: translateY(-50%) !important;
  z-index: 9999 !important;
}
#PT_SIDE.pt-closed .pst_panel-button {
  margin-top: 0 !important;
}
#PT_SIDE .pst_panel-button,
#PT_SIDE .pst_panel-button .ps-button-wrapper,
#PT_SIDE .pst_panel-button .ps-button {
  height: 48.94px !important;
  box-sizing: border-box !important;
}
#PT_SIDE .pst_panel-button {
  width: 23.25px !important;
}
#PT_SIDE .pst_panel-button .ps-button {
  line-height: 48.94px !important;
  position: relative !important;
}
#PT_SIDE .pst_panel-button .ps-button::before {
  top: 50% !important;
  transform: translateY(-50%) !important;
  padding-top: 0 !important;
}
#PT_CONTENT {
  flex: 1 1 0 !important;
  min-width: 0 !important;
  overflow: auto !important;
}
#PT_MAIN,
#win0divPSPAGECONTAINER_MD {
  display: block !important;
  flex: none !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
}
#divPAGECONTAINER_TGT {
  display: block !important;
  overflow: visible !important;
  height: auto !important;
  padding: 0 !important;
}
/* Inner classic containers — ID was renamed to avoid conflict with outer Fluid shell */
.inner-classic-pagecontainer {
  display: block !important;
  flex: none !important;
  width: 683px !important;
  margin: 0 !important;
}
.inner-classic-pspagecontainer {
  display: block !important;
  flex: none !important;
}
table#ACE_width,
table.PSPAGECONTAINER[role="main"] {
  width: 683px !important;
  height: auto !important;
}
table.PSPAGECONTAINER[role="main"] > tbody > tr > td {
  padding: 0 !important;
}

/* Collapse HTML height= attributes on table cells.
   height:auto overrides the CSS height property, but browsers also apply HTML height
   as a minimum-height constraint — so min-height:0 is required to fully collapse
   PeopleSoft spacer rows (height=103, height=25, height=7, etc.). */
#inner-classic-pspagecontainer td {
  height: auto !important;
  min-height: 0 !important;
}

/* Remove cellpadding=2 from PABACKGROUNDINVISIBLEWBO wrapper tables.
   These appear at every nesting level and add 2px padding on all sides,
   which shrinks usable column widths (289px instead of 302px for the name cell)
   and adds unwanted vertical spacing. */
table.PABACKGROUNDINVISIBLEWBO > tbody > tr > td,
table.PABACKGROUNDINVISIBLE > tbody > tr > td {
  padding: 0 !important;
  min-height: 0 !important;
}
table.PABACKGROUNDINVISIBLEWBO,
table.PABACKGROUNDINVISIBLE {
  border-spacing: 0 !important;
}

/* PSPUSHBUTTON: the <a class="PSPUSHBUTTON Left"> wrapper carries the yellow gradient
   and orange border; the <input> inside must be transparent/borderless so the two
   elements don't fight each other visually. */
a.PSPUSHBUTTON.Left {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  height: 20px !important;
  padding: 0 !important;
  box-sizing: border-box !important;
  vertical-align: middle !important;
}
a.PSPUSHBUTTON.Left > span {
  display: contents !important;
}
a.PSPUSHBUTTON.Left input.PSPUSHBUTTON {
  background: transparent !important;
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
  height: 18px !important;
  padding: 0 !important;
  margin: 0 !important;
  cursor: pointer !important;
  font-family: Arial, sans-serif !important;
  font-size: 9pt !important;
  color: rgb(51, 51, 51) !important;
  -webkit-appearance: none !important;
  appearance: none !important;
}

/* Sidebar nav labels: prevent text from wrapping to a second line */
#PT_SIDE .ps_ag-step-link-label {
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  word-wrap: normal !important;
}
/* Sidebar step boxes: 286×53 per structure.md */
#PT_SIDE .ps_ag-step-button,
#PT_SIDE .ps_ag-step-group-button {
  height: 53px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
}

/* Tabs: restore original Tangerine span size; collapse inter-tab gap by overlapping borders */
#PSTAB a span,
#PSTAB .selectedtab a span {
  padding: 4px 10px 3px !important;
  font-size: 9pt !important;
  line-height: normal !important;
  border-radius: 0 !important;
}
/* PT_CP_PAGETABTD has pt_classic_plus padding-right:7.334px that creates the inter-tab gap */
.PT_CP_PAGETABTD {
  padding: 1px !important;
}
/* Remove the <a> right padding (2px gap) and pull each tab 1px left so
   adjacent 1px span borders overlap into a single visible line */
#PSTAB a {
  padding: 0 !important;
  margin-right: -1px !important;
  display: inline-block !important;
  position: relative !important;
  z-index: 0 !important;
}
#PSTAB .selectedtab a {
  z-index: 1 !important;
}

/* Goto dropdown: 224x18 per structure.md — override pt_classic_plus padding that inflates height */
select.PSDROPDOWNLIST {
  height: 18px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
  box-sizing: border-box !important;
}

/* Subnav bar: 604x18 container per structure.md.
   font-size:0 on the table collapses &nbsp; spacer tds to near-zero width
   while link spans keep their own style="font-size:11px" inline override. */
#win0divDERIVED_SSTSNAV_SSTS_NAV_SUBTABS > div {
  height: 18px !important;
  overflow: hidden !important;
  background-color: #F1F5F6 !important;
  display: flex !important;
  align-items: center !important;
}
#win0divDERIVED_SSTSNAV_SSTS_NAV_SUBTABS table {
  height: 18px !important;
  background-color: transparent !important;
  flex-shrink: 0 !important;
  font-size: 0 !important;
}
#win0divDERIVED_SSTSNAV_SSTS_NAV_SUBTABS td {
  height: 18px !important;
  white-space: nowrap !important;
  padding-top: 0 !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  vertical-align: middle !important;
}

a.PTBREADCRUMBCUR, a.PTBREADCRUMBCUR span {
  color: rgb(0, 0, 0) !important;
}

/* Remove left padding from course name header cell */
table.PAGROUPDIVIDER td { padding-left: 2px !important; }
span.PAGROUPDIVIDER { padding-left: 2px !important; text-indent: 0 !important; }

label.PSRADIOBUTTON { padding-left: 3px !important; }

/* Remove border on the span (inner outline) but keep it on the table (outer row border) */
.PAGROUPDIVIDER { border-style: none !important; }
table.PAGROUPDIVIDER { border-style: solid !important; border-width: 2px !important; }

/* Restore section spacing per structure.md measurements */
#win0divDERIVED_REGFRM1_SS_TRANSACT_TITLE { margin-top: 8px !important; }
#win0divDERIVED_REGFRM1_GROUP_BOX    { margin-bottom: 16px !important; }
#win0divDERIVED_REGFRM1_SSR_SCHED_FORMAT  { margin-bottom: 8px  !important; }
#win0divDERIVED_REGFRM1_SSR_STDNTKEY_DESCR { margin-bottom: 10px !important; }
#win0divDERIVED_REGFRM1_GROUP4        { margin-bottom: 8px  !important; }
