/* Container + responsive scroll */
.tsp-req-table { margin: 24px 0; overflow-x: auto; }
.tsp-req-table table { width: 100%; min-width: 760px; table-layout: fixed; border-collapse: collapse; }

/* Cells */
.tsp-req-table th, .tsp-req-table td {
  padding: 10px 12px;
  border-bottom: 1px solid rgba(255,255,255,.15);
  vertical-align: top;
}

/* Subtle zebra & hover */
.tsp-req-table tbody tr:nth-child(odd) { background: rgba(255,255,255,.03); }
.tsp-req-table tbody tr:hover { background: rgba(255,255,255,.06); }

/* Head */
.tsp-req-table thead th {
  font-weight: 600;
  border-bottom-color: rgba(255,255,255,.25);
  white-space: nowrap;
}

/* Column sizing (adjust ch values to taste) */
.tsp-col-model   { width: 20ch; }
.tsp-col-color   { width: 10ch; white-space: nowrap; }
.tsp-col-status  { width: 12ch; white-space: nowrap; }
.tsp-col-pin     { width: 8ch;  white-space: nowrap; }
.tsp-col-created { width: 20ch; white-space: nowrap; }
.tsp-col-spec,
.tsp-col-reason  { width: auto; }

/* Long URL display -> single line with ellipsis */
.tsp-col-model a {
  display: inline-block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: bottom;
  text-decoration: underline;
  text-decoration-color: rgba(255,255,255,.35);
}

/* Clamp multi-line text to ~3 lines, show full on title tooltip */
.tsp-clip {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    border: none;
    overflow-y: auto;
    max-height: 60px;
    height: 60px;
}   
@supports not (-webkit-line-clamp: 3) {
  .tsp-clip { max-height: 4.8em; line-height: 1.6; }
}


/* ===== New Request Form ===== */
#tsp-request-form {
    width: 100%;
    max-width: 760px;              /* centered max width */
    margin: 0 auto;                /* center */
    padding: 1.25rem 1.5rem;
    text-align: center;
  }
  
  #tsp-request-form h2 {
    margin: .25rem 0 1rem;
    font-size: 1.75rem;
  }
  
  #tsp-request-form p { margin: 0 0 .5rem; }
  
  .tsp-field {
    margin-top: 14px;
  }
  
  .tsp-label {
    display: block;
    margin: 0 0 6px;
    font-weight: 600;
    line-height: 1.4;
  }
  
  .tsp-input,
  .tsp-textarea {
    width: 100%;
    padding: 10px 12px;
    border-radius: 8px !important;
    border: 1px solid var(--color-primary-light-transparent, rgba(148,163,184,.35)) !important;
    background: var(--color-primary-transparent, rgba(15,23,42,.35)) !important;
    color: var(--color-white, #fff) !important;
    font-size: 1rem;
    outline: none;
  }
  .tsp-input::placeholder,
  .tsp-textarea::placeholder { 
    opacity: .6; 
    color:var(--color-white);
  }
  
  /* .tsp-input:focus,
  .tsp-textarea:focus {
    border-color: var(--color-primary-light, #60a5fa);
    box-shadow: 0 0 0 3px rgba(96,165,250,.25);
    background: rgba(15,23,42,.45);
  } */
  
  .tsp-checkbox-line {
    display: flex;
    gap: .5rem;
    align-items: center;
    margin-top: 12px;
  }
  
  .tsp-btn {
    display: inline-block;
    margin-top: 16px;
    padding: 10px 16px;
    border-radius: 8px;
    border: 1px solid var(--color-primary-light, #60a5fa);
    background: var(--color-primary, #38bdf8);
    color: var(--color-white, #061e30);
    font-weight: 700;
    cursor: pointer;
    transition: transform .02s ease, filter .15s ease;
    width: 100%;
  }
  .tsp-btn:hover { 
    filter: brightness(1.05);
    background-color: var(--color-primary-light, #60a5fa);
  }
  .tsp-btn:active { transform: translateY(1px); }
  
  .tsp-notice {
    padding: 12px;
    border-radius: 8px;
    margin: 0 0 14px;
    border: 1px solid transparent;
  }
  .tsp-notice.success {
    background: var(--color-success-transparent, rgba(34,197,94,.18));
    border-color: rgba(34,197,94,.45);
    color: #d1fae5;
  }
  .tsp-notice.error {
    background: var(--color-error-transparent, rgba(239,68,68,.18));
    border-color: rgba(239,68,68,.5);
    color: #fee2e2;
  }
  
  /* Make links match subtle underline treatment */
  #tsp-request-form a {
    text-decoration: underline;
    text-decoration-color: rgba(255,255,255,.35);
  }
  

  .tsp-col-actions { width: 12ch; white-space: nowrap; text-align: center; }

  .tsp-btn-outline {
    display: inline-block;
    padding: 6px 10px;
    border-radius: 8px;
    border: 1px solid var(--color-primary-light, #60a5fa);
    background: transparent;
    color: var(--color-white, #fff);
    cursor: pointer;
    transition: background .15s ease, color .15s ease;
    font-weight: 600;
  }
  .tsp-btn-outline:hover {
    background: #ff000f40;
    color: #e7f1ff;
  }
  .tsp-btn-outline:disabled {
    opacity: .6;
    cursor: not-allowed;
  }
  

  /* Add vertical dividers so headers/cells don't visually merge */
.tsp-req-table thead th + th,
.tsp-req-table tbody td + td {
  border-left: 1px solid rgba(255,255,255,.15);
}

/* Give the Special Instructions column a tad more breathing room on the right */
.tsp-req-table thead .tsp-col-spec,
.tsp-req-table tbody .tsp-col-spec {
  padding-right: 18px;
}

/* Slightly widen the Status column so the label never wraps/jams */
.tsp-col-status { width: 14ch; }

/* Make sure header cells keep their padding in case theme resets it */
.tsp-req-table thead th {
  padding-left: 12px;
  padding-right: 12px;
}

/* Optional: if your theme adds weird borders, force only our borders to show */
.tsp-req-table table {
  border-collapse: collapse;      /* keep it collapsed */
  border-spacing: 0;              /* and no extra spacing */
}

.tsp-col-collected { width: 20ch; white-space: nowrap; }
