/* Lake Land College Branding for osTicket */




#header a, 
#top_bar a, 
.header a {
  color: white !important;
}

body {
  font-family: "Avenir", sans-serif  !important;
  background-color: #ffffff;
  color: #404040;
}

a {
  color: #be2026;
  text-decoration: none;
}
a:hover {
  color: #8f1717;
  text-decoration: underline;
}

h1 {
    font-family: "minion-pro", serif !important;
    font-size: 2em !important;
    color: #8a0307 !important;
  }
 
form#ticketForm .form-group:has(select[name="topicId"]) {
  display: none !important;
}
  

input, textarea, select, button {
  font-family: "Avenir", sans-serif !important;
  font-size: 16px;
  border-radius: 3px;
  border: 1px solid #ccc;
  padding: 8px;
}

button,
input[type="submit"],
input[type="button"] {
  background-color: #be2026 !important;
  color: rgb(255, 255, 255) !important;
  border: none;
  padding: 10px 16px;
  cursor: pointer;
}
button:hover {
  background-color: #8f1717;
}

/*client ticket page create ticket button*/
p.buttons input[type="submit"],
.flush-left #ticketSearchForm input[type="submit"]
 {
  background-color: #05ab0a !important;
}

p.buttons input[type="submit"],
.flush-left #ticketSearchForm input[type="submit"]:hover {
  background-color: #049609 !important;
}

/*landingpage buttons*/
.green.button,
.green.button:visited {
  background-color: #be2026 !important;
  display: none !important;
}
.green.button:hover {
  background-color: #8f1717 !important;
}
.blue.button,
.blue.button:visited {
  background-color: #be2026 !important;
  display: none !important;
}
.blue.button:hover {
  background-color: #8f1717 !important;
}

/* Header customization */
#header, .header, .navbar, .top-bar {
  background-color: #be2026 !important;
  color: white;
}

/* Ticket view & login box */
.box, .dialog, .content {
  border: 1px solid #ccc;
  background-color: #f9f9f9;
  padding: 20px;
}

span.faded.title.truncate {
  color: #ffffff !important;  /* white text */
  font-weight: bold;          /* optional */
}

#ticketForm table {
  table-layout: fixed;
  width: 800px;
}

#ticketForm table td:first-child {
  width: 100px;
  white-space: nowrap;
}

/* Hide non-azure login method 
#clientLogin > div[style*="display:table-row"] {
  display: block !important;

}

#clientLogin div[style*="display:table-cell"] {
  display: block !important;
  width: 100% !important;
  padding: 10px 0 !important;
}

#clientLogin .login-box {
  display: none !important;
}

/*legend code*/
.form-header h1 {
  position: relative; /* Needed so tooltip positions relative to the h1 */
  cursor: help;        /* Optional: shows the help cursor on hover */
}

.form-header h1 {
  position: relative;
  cursor: help;
}

/* Tooltip image */
.form-header h1 {
  position: relative;
  cursor: help;
}

/* Tooltip image */
.form-header h1 {
  position: relative;
  display: inline-block;  /* instead of block */
  width: auto;            /* don't force full width */
  margin: 0;              /* remove any big margins */
  padding: 0;             /* remove padding if any */
}

.form-header h1::after {
  content: "";
  position: absolute;
  top: 50%;  
  left: 110%;
  transform: translateY(-50%);
  width: 700px;   /* Bigger width on desktop */
  height: auto;
  aspect-ratio: 900 / 540; /* Keep proportions */
  background-image: url('../images/help-image.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-color: #fff;
  border: 1px solid #ccc;
  border-radius: 6px;
  padding: 4px;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.2s ease;
  z-index: 999;
}

/* Show tooltip on hover */
.form-header h1:hover::after {
  opacity: 1;
}

/*for fixing the description text box on the open form*/
table {
  width: 100% !important;
  max-width: 800px; /* match PHP max-width */
  table-layout: fixed;
}

td {
  max-width: 100%;
  word-wrap: break-word;
  padding: 10px;  /* optional */
}

.redactor-box {
  max-width: 100%;
  width: 100%;
  box-sizing: border-box;
  overflow-x: auto;
}

.redactor-toolbar,
.redactor-toolbar a {
  max-width: 100%;
  width: auto !important;
  white-space: nowrap;
  overflow-x: auto;
}

/*client/email table shrink*/
.client-info-row td {
  padding: 2px 6px !important;
  vertical-align: top;
  border: none !important;
}

.client-info-row td:first-child {
  white-space: nowrap;
  width: 35px !important;
  font-weight: bold;
  padding-right: 8px !important;
}

.client-info-row td:last-child {
  width: auto;
  padding-left: 6px !important;
  word-wrap: break-word;
  overflow-wrap: break-word;
}

/*Impact and Urgency fields*/
/* Match the width of the Subject text input */
#dynamic-form select {
  width: 40ch;       /* matches size="40" */
  max-width: 43ch;   /* matches maxlength="50" */
  box-sizing: border-box;
}
#dynamic-form select {
  width: 100%;
  box-sizing: border-box;
  text-align: center;       /* centers the option list text in some browsers */
  text-align-last: center;  /* centers the selected value */
}
/* Bold the labels wrapping the first two selects */
#dynamic-form tr td label span {
  font-weight: bold;
}



/*My Tickets table mobile responsive*/
#ticketTable {
  width: 100%;
  max-width: 800px;
  border-collapse: collapse;
  table-layout: auto; /* changed from fixed to auto */
}

#ticketTable thead th {
  white-space: normal; /* allow wrapping in headers */
}

#ticketTable tbody td {
  white-space: normal; /* allow wrapping in cells */
  word-break: break-word; /* break long words to prevent overflow */
}

/* Keep horizontal scroll container */
.table-responsive {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

/* Truncate only where you want */
#ticketTable td div.link.truncate,
#ticketTable td span.truncate {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  display: block;
}

/*open/closed heading overlapping table*/
.heading {
  display: flex;
  flex-wrap: wrap; /* allow wrapping on small */
  align-items: center;
  margin: 10px 0;
  gap: 1em; /* spacing between items */
}

.heading > a {
  flex-shrink: 0;
  white-space: nowrap;
}

.states {
  margin-left: auto; /* push states block to right */
}

#ticketSearchForm input[type="submit"] {
  margin-top: 4px; /* moves the button down from the text field */
  
}

.flush-left #ticketSearchForm{
  font-weight: bold;
}

/*navigation bar hamburger mode*/
.main-nav {
  position: relative;
  display: flex;
}

/* Hide hamburger on desktop, show menu */
.hamburger {
  display: none;
  font-size: 24px;
  background: none;
  border: none;
  cursor: pointer;
}

/* Default menu styles */
#nav {
  display: flex;
  flex-direction: row;  /* horizontal */
  width: 100%;          /* full width */
  position: static;     /* default flow */
  background: none;     /* remove gray on desktop */
  box-shadow: none;     /* no shadow on desktop */
}
/*client ticket table*/
#ticketInfo {
  width: 100%;
  border-collapse: collapse;
}
#ticketInfo th {
  font-weight: bold;
}




@media screen and (max-width: 600px) {
  #container {
    width: 100% !important;
  }
  #header {
    display: flex;
    justify-content: space-between;
    width: 100vw;
    box-sizing: border-box;
  }

  #logo {
    order: 1;
    display: block;
    width: 50%;
  }

  #header .pull-right {
    order: 2;
    width: auto;
    text-align: right;
  }

  #header .pull-right p {
    width: auto;
  }
  

  #landing_page {
    display: flex;
    flex-direction: column;
  }

  .main-content {
    order: 1;
    width: 100% !important;
  }

  .sidebar.pull-right {
    order: 2;
    width: 100% !important;
    float: none !important; /* Stop floating so flexbox works */
  }

  .form-header h1::after {
    width: 80vw;
    left: 0%;  /* still to the right */
    top: 100%;    /* vertically centered */
    transform: translateY(-50%);
    white-space: nowrap;
  }

  .redactor-box {
    font-size: 14px;
  }

  input[type="text"] {
    font-size: 18px;
    padding: 10px;
  }

  #ticketTable th,
  #ticketTable td {
    padding: 6px 8px;
    font-size: 14px;
  }

  #dynamic-form select {
    width: 100%;
  }

  .states {
    flex-basis: 100%; /* full width */
    margin-left: 0;
    margin-top: 0.3em;
  }

  .main-nav {
    display: inline-block;
  }

  #nav {
    display: none; /* hide nav links */
    flex-direction: column;
    position: absolute;
    top: 0;
    background: url('../images/nav_bg.png') top left repeat !important;
    height: 69px !important;
    left: 100%;
    z-index: 1000;
    margin: 0 0px !important;
  }

  #nav li a {
    padding: 0px 10px 3px 32px !important; /* adjust top/bottom for spacing */
    line-height: 10px;   /* tweak until the lines match */
  }
  

  #nav.open {
    display: flex; /* show nav links when open */
  }

  .hamburger {
    display: block;
  }

  /*body {
    overflow-x: hidden;
  }*/

  /*client ticket view screen*/
  .search .pull-right {
    float: none;
    width: 100%;
    margin-top: 10px;
  }

  .search .pull-right select {
    width: 100%; /* make dropdown full width */
  }

  .search .pull-right,
  .search input[type="submit"] {
    display: block;
  }

  /*Client Ticket Table*/
  #ticketInfo tr > td {
    display: block;
    width: 100% !important;
  }

  /* Remove fixed widths from nested tables */
  #ticketInfo table {
    width: 100% !important;
  }

  /* Style th and td for better readability */
  #ticketInfo th,
  #ticketInfo td {
    display: block;
    width: 100%;
    box-sizing: border-box;
  }

  /* Add spacing between stacked tables */
  #ticketInfo .infoTable {
    margin-bottom: 15px;
  }

  /* Adjust the header actions */
  #ticketInfo h1 {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
  }

  #ticketInfo .pull-right {
    margin-top: 10px;
    align-self: flex-start;
  }

  /*ticket status not signed in screen fixes*/ 
  #clientLogin,
  #clientLogin .login-box {
    max-width: 100%;
    box-sizing: border-box;
  }
  #clientLogin {
    background: #f6f6f6 !important;
  }

  /* Make inputs responsive */
  #clientLogin input[type="text"],
  #clientLogin input[type="email"],
  #clientLogin input[type="password"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /* Make the submit button fit */
  #clientLogin input[type="submit"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
  }

  /*client profile page*/
  input[type="text"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 16px; /* easier to tap on mobile */
    padding: 8px;
  }

  input[type="email"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 16px; /* easier to tap on mobile */
    padding: 8px;
  }

  input[type="password"] {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    font-size: 16px; /* easier to tap on mobile */
    padding: 8px;
  }

  .select2-container {
    width: 100% !important;
    max-width: 100%;
    box-sizing: border-box;
  }
  
}

@media screen and (max-width: 417px) {
  #header .pull-left {
    width: 100%;
  }

  #header .pull-right {
    width: 100%;
    float: left;
  }
}