/* ------------------
   COLOR TOKENS
-------------------*/

@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@200;300;400;500;600;700&display=swap');

:root{
  --brand-primary:      #25255B;
  --text-primary:       #1A1A1A;
  --text-secondary:     #4A4A4A;
  --white: #FFFFFF;
  
  --color-medium:       #25255B;/*#5D5DE3;  */       
  --color-medium-light: #B8B8F0;  
  --color-light:        #E7E7FA;        
}

body, input, button, select, textarea, label,
.shiny-input-container, h1, h2, h3, h4, h5, h6, p, div, span, table, td, th {
  font-family: 'Roboto', sans-serif !important;
  letter-spacing: 0.02em; /* Adjust to desired spacing */
}

.shiny-input-container > label {
  font-family: 'Roboto', sans-serif !important;
}

#app, .container, .container-fluid {
  max-width: 960px;
  margin-left: auto !important;
  margin-right: auto !important;
  padding-left: 20px;
  padding-right: 20px;
}


/*----------------------------------------------------------------------------*/

/* TAB NAVIGATION */

.nav-tabs {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  border: none !important;
  padding: 0;
  margin-bottom: 50px;  
}


.nav-tabs > li{
  /* make each <li> shrink to its <a> */
  float:none;
  display:inline-block;
}

/* inactive tab */
.nav-tabs > li > a{
  border:2px solid var(--color-light) !important;
  background:var(--color-light) !important;
  color:var(--brand-primary) !important;
  /*font-weight:500;*/
  padding:8px 20px;
  border-radius:9999px !important;   /* <-- full pill */
  transition:background .15s;
}

/* hover state */
.nav-tabs > li > a:hover{
  background:var(--color-medium) !important;
  border-color:var(--color-medium) !important;
  color:#FFF !important;
}

/* active tab */
.nav-tabs > li.active > a,
.nav-tabs > li.active > a:focus,
.nav-tabs > li.active > a:hover{
  background:var(--color-medium) !important;
  border-color:var(--brand-primary)   !important;
  color:#FFF  !important;
  font-weight:600;
}

/*----------------------------------------------------------------------------*/

/* Report Staffing, Safety, and Wellness message boxes */
div.message-box {
  background-color: var(--color-light) !important;
  color: #25255B !important;
  padding: 16px !important;
  /*border-radius: 6px !important;*/
    border-radius: 0px !important;
  margin: 0 auto !important;
  font-size: 14px;
  text-align: left;
  min-height: 160px;
  border: 1px solid var(--color-light) !important;

  /* 
  display: flex;
  align-items: center;   
  justify-content: center; */
}

/*----------------------------------------------------------------------------*/

/* BUTTONS */

/* ------------------
   BUTTONS
-------------------*/

/* Primary action button */
.btn-primary {
  display: inline-block;
  min-width: 150px;
  padding: 12px 24px;
  border-radius: 9999px;
  background-color: var(--brand-primary);
  color: var(--white);
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border: none;
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease;
}
.btn-primary:hover,
.btn-primary:active,
.btn-primary:focus,
.btn-primary:focus:active {
  background-color: black !important;
  color: var(--white) !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Secondary action button */
.btn-secondary {
  display: inline-block;
  min-width: 150px;
  padding: 12px 24px;
  border-radius: 9999px;
  background-color: transparent;
  color: var(--brand-primary);
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border: 1px solid var(--brand-primary);
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease;
}
.btn-secondary:hover,
.btn-secondary:active,
.btn-secondary:focus,
.btn-secondary:focus:active {
  background-color: black !important;
  color: var(--white) !important;
  border: 1px solid var(--brand-primary) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Tertiary action button */
.btn-tertiary {
  display: inline-block;
  min-width: 150px;
  padding: 12px 24px;
  border-radius: 9999px;
  background-color: var(--white);
  color: var(--brand-primary);
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border: 1px solid var(--white);
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease;
}
.btn-tertiary:hover,
.btn-tertiary:active,
.btn-tertiary:focus,
.btn-tertiary:focus:active {
  background-color: black !important;
  color: var(--white) !important;
  border: 1px solid var(--white) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Fifth action button */
.btn-five {
  display: inline-block;
  min-width: 150px;
  padding: 12px 24px;
  border-radius: 9999px;
  background-color: var(--brand-primary);
  color: var(--white);
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border: 1px solid var(--white);
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease;
}
.btn-five:hover,
.btn-five:active,
.btn-five:focus,
.btn-five:focus:active {
  background-color: black !important;
  color: var(--white) !important;
  border: 1px solid var(--white) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Save button */
.btn-save {
  display: inline-block;
  min-width: 150px;
  padding: 12px 24px;
  border-radius: 9999px;
  background-color: var(--color-light);
  color: var(--text-primary);
  font-family: 'Roboto', sans-serif;
  font-weight: 500;
  text-align: center;
  text-decoration: none;
  border: 1px solid var(--white);
  cursor: pointer;
  transition: background-color 200ms ease, color 200ms ease;
}
.btn-save:hover,
.btn-save:active,
.btn-save:focus,
.btn-save:focus:active {
  background-color: black !important;
  color: var(--white) !important;
  border: 1px solid var(--white) !important;
  box-shadow: none !important;
  outline: none !important;
}

/* Universal button reset for active/focus states */
button,
.btn,
.btn:focus,
.btn:active,
.btn:focus:active {
  outline: none !important;
  box-shadow: none !important;
  background-image: none !important; /* kills default gradient flashes */
}

/* Optional: if Safari adds blue inner border */
button::-moz-focus-inner,
.btn::-moz-focus-inner {
  border: 0 !important;
}

/*----------------------------------------------------------------------------*/

/* Section Headers */
.section-header {
  background-color: var(--color-light);
  /*border-radius: 6px;*/
    border-radius: 0px;
  padding: 32px;
  margin-bottom: 32px;
  text-align: center;
  max-width: 100%;
}

.section-header h4,
.section-header p {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.section-header h4 {
  font-size: 1.8rem;
  font-weight: 600;
  color: var(--brand-primary);
  margin-bottom: 12px;
}

.section-header p {
  max-width: 400px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
  margin-top: 0;
}

/*----------------------------------------------------------------------------*/

/* Question section */

.question-section{
  border:1px solid var(--color-medium-light);
  /*border-radius: 6px;*/
    border-radius: 0px;
  padding:32px;
  margin-bottom:32px;
}

.question-heading {
  display: flex;
  align-items: flex-start;
  justify-content: center;
  text-align: left;
  gap: 12px;
  max-width: 440px;
  margin: 0 auto;
  margin-bottom: 32px; /* space below question */
}

.step-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  background: var(--color-light);
  border: 2px solid var(--brand-primary);
  color: var(--brand-primary) !important;
  font-weight: 600 !important; 
  font-size: 12px;
  line-height: 1;
  flex-shrink: 0;                 /* prevent shrinking */
  margin-top: 2px;                /* nudge down for visual balance */
}

.question-label {
  max-width: 400px;
  white-space: normal;
  text-align: left;
  margin-top: 0;
  font-weight: 500 !important; 
  font-size: 1.7rem !important; 
}

/*----------------------------------------------------------------------------*/

/* QUICK WINS TABLES */

.quick-wins-table {
  padding-left: 50px;
  padding-right: 50px;
}

.quick-wins-table table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-weight: 400 !important;
}

/* Table cell styling */
.quick-wins-table td {
  padding: 0.75rem;
  vertical-align: top;
  text-align: left;
  font-family: 'Roboto', sans-serif;
  font-weight: 400 !important;
  border-bottom: 2px solid var(--color-light) !important;
  color: black !important;
}

/* Table header styling */
.quick-wins-table th {
  padding: 0.75rem;
  vertical-align: top;
  text-align: left;
  font-family: 'Roboto', sans-serif;
  border-bottom: 2px solid var(--color-light) !important;
  background-color: #fff !important;
  color: var(--brand-primary) !important;  /* purple */
  font-weight: 500 !important;
}

.quick-wins-table td:first-child {
  width: 50%;
  min-width: 300px;
  word-wrap: break-word;
  white-space: normal;
  font-weight: 400 !important;
  color: #000 !important;
  padding-right: 4rem;
}

.quick-wins-table th:first-child {
  width: 50%;
  min-width: 300px;
  word-wrap: break-word;
  white-space: normal;
  font-weight: 500 !important;
  color: var(--brand-primary) !important;
}

/* Add white space between header and first row */
.quick-wins-table tr:first-of-type td {
  padding-top: 1.5rem !important;
}

/* ADDING THIS SO EACH TAB HAS THE SAME HEIGHT - ADDS SCROLLBAR - PREVENTS SIZE SHIFTS*/
.tab-content > .tab-pane { /*min-height: 900px;*/
  padding-bottom: 40px; 
}

/*----------------------------------------------------------------------------*/

/* MATRIX TABLE – horizontal-only borders */

/* Matrix Table Questions */
.matrix-table {
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
}

.matrix-table th,
.matrix-table td {
  border: 1px solid #ccc;
  padding: 12px;
  text-align: left;
}

/* Column 1: Metric label */
.matrix-table th:nth-child(1),
.matrix-table td:nth-child(1) {
  width: 25%;
  min-width: 200px;
  white-space: normal;
  font-weight: 400 !important;
  letter-spacing: 0.03em;
  color: black !important;
}

/* Column 2: First dropdown – MAKE THIS WIDER */
.matrix-table th:nth-child(2),
.matrix-table td:nth-child(2) {
  width: 270px;
  min-width: 270px;
  max-width: 270px;
}

/* Column 3 and 4: Leave default for now */

/* 1. Remove all cell borders */
.matrix-table th,
.matrix-table td {
  border: none !important;
  padding: 0.75rem;
  vertical-align: middle;
  text-align: left;
}

/* 2. Add horizontal orange borders between rows */
.matrix-table tr {
  border-top: 2px solid white !important;
}

/* 3. Add white borders to the table’s sides */
.matrix-table {
  border-left: 2px solid white !important;
  border-right: 2px solid white !important;
  border-top: none !important;
  border-bottom: none !important;
  border-collapse: collapse;
}

.matrix-table th {
  font-weight: 400 !important;  /*Lighter than default bold */
  font-family: 'Roboto', sans-serif !important;
}

/*----------------------------------------------------------------------------*/

/* MATRIX TABLE – Dropdowns */

/* Set dropdown item hover and active style */
.selectize-dropdown .selectize-dropdown-content .option:hover,
.selectize-dropdown .selectize-dropdown-content .option.active {
  background-color: var(--brand-primary) !important;
  color: white !important;
}

/* Set selected item display style */
.selectize-control.single .selectize-input {
  background-color: #fff;
  color: #000 !important; /* changed from var(--brand-primary) to black */
  /*font-weight: 300;*/
}

/* adds purple to blue when selected ----------------------------------might remove?????????
.selectize-control.single .selectize-input.dropdown-active {
  border-color: var(--color-medium);
}*/

/* selected item inside the dropdown — make it look normal */
.selectize-dropdown .option.selected {
  background-color: #fff !important;
  color: #000 !important;          /* black text */
  font-weight: 400 !important;     /* normal font weight */
}

/* item you are hovering / arrow-keying over */
.selectize-dropdown .option.active,
.selectize-dropdown .option:hover {
  background-color: var(--brand-primary) !important;
  color: #fff !important;
}




/*----------------------------------------------------------------------------*/


.section-heading-purple {
  background-color: #E7E7FA;
  color: #4343A5;
  width: 800px;
  font-weight: 500;
  font-size: 18px;
  padding: 10px 16px;
  margin: 0 auto 10px auto;
  text-align: center;
  border-radius: 0px;
}

/* Tooltip wrapper */
.si-tooltip {
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* Tooltip box */
.si-tooltip__content {
  position: absolute;
  top: 120%;          /* below the icon */
  left: 0;
  z-index: 1000;
  max-width: 200px;   /* control tooltip width */
  min-width: 160px;
  white-space: normal; /* wrap text */
  background: #333;
  color: #fff;
  padding: 8px 10px;
  border-radius: 6px;
  font-size: 12px;
  line-height: 1.3;
  box-shadow: 0 6px 18px rgba(0,0,0,0.15);

  opacity: 0;
  transform: translateY(4px);
  pointer-events: none;
  transition: opacity 0.12s ease, transform 0.12s ease;
}

/* Show tooltip on hover */
.si-tooltip:hover .si-tooltip__content {
  opacity: 1;
  transform: translateY(0);
}

/* Prevent clipping if parent table has overflow hidden */
.matrix-table, .question-section {
  overflow: visible;
}

/* Headings in purple */
h1, h2, h3 {
  color: var(--brand-primary) !important;
}

